pax_global_header00006660000000000000000000000064151365012300014506gustar00rootroot0000000000000052 comment=2e10c1c43b8a629b266430b3c109867c0fa30282 fenrir/000077500000000000000000000000001513650123000123375ustar00rootroot00000000000000fenrir/.gitignore000066400000000000000000000001601513650123000143240ustar00rootroot00000000000000__pycache__/ *\.pyc fenrir.egg-info/ fenrir_screenreader.egg-info/ dist/ build/ *.kate-swp .directory CLAUDE.md fenrir/CREDITS000066400000000000000000000011541513650123000133600ustar00rootroot00000000000000# Fenrir Screen Reader Credits ## Current Maintainer * **Storm Dragon** - Project leader and maintainer ## Current Contributors * **Jeremiah** - Developer ## Previous Developers * **Chrys** - Original creator and main developer ## Special Thanks * **F123 Consulting** - Suggestions, funding, and extensive testing * **Stormux Community** - Continuation of the project and ongoing support * **All contributors** - Bug reports, feature requests, and community support ## Community * IRC: irc.stormux.org #stormux * Email list: stormux+subscribe@groups.io * Wiki: https://git.stormux.org/storm/fenrir/wiki fenrir/LICENCE000066400000000000000000000167441513650123000133400ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. fenrir/README.md000066400000000000000000000623531513650123000136270ustar00rootroot00000000000000# Fenrir A modern, modular, flexible and fast console screen reader for Linux. This software is licensed under the LGPL v3. **Current maintainer:** Storm Dragon **Previous developer:** Chrys ## Key Features - **Multiple Interface Support**: Works in Linux TTY, and terminal emulators - **Flexible Driver System**: Modular architecture with multiple drivers for speech, sound, input, and screen - **Review Mode**: Navigate and review screen content without moving the edit cursor - **Table Navigation**: Advanced table mode with column headers, cell-by-cell navigation, and boundary feedback - **Progress Bar Monitoring**: Automatic detection and audio feedback for progress indicators with ascending tones - **Multiple Clipboard Support**: Manage multiple clipboard entries - **Configurable Key Bindings**: Desktop and laptop keyboard layouts - **Sound Icons**: Audio feedback for various events - **Spell Checking**: Built-in spell checker with word management - **Language Support**: Multiple speech synthesis languages and voices - **Bookmark System**: Quick access to specific screen areas - **Auto-announcement**: Automatic reading of incoming text and time announcements - **Tutorial Mode**: Built-in help system for learning keyboard shortcuts ## Platform Support Fenrir is a Linux screen reader. Linux is the only officially supported platform. **Other platforms (macOS, BSD, Windows):** Pull requests adding support for other operating systems may be accepted provided they do not break Linux functionality. However, no special care will be taken to preserve functionality on secondary platforms. If changes to Fenrir break support on a non-Linux OS, it is the responsibility of third-party contributors to submit fixes. - Linux (ptyDriver, vcsaDriver, evdevDriver) - Full support - macOS (ptyDriver) - Community-maintained, no guarantees - BSD (ptyDriver) - Community-maintained, no guarantees - Windows (ptyDriver) - Community-maintained, no guarantees ## Core Requirements - Python 3 >= 3.9 (recommended 3.13+) - Screen, input, speech, sound driver dependencies (see "Features, Drivers, Extras" section) - For full functionality on Linux: evdev, speech-dispatcher, sox ## Features, Drivers, Extras, Dependencies ### Input Drivers: 1. **evdevDriver** - Linux evdev input driver (recommended for Linux) - python-evdev >=0.6.3 (This is commonly referred to as python3-evdev by your distribution) - python-pyudev - loaded uinput kernel module - ReadWrite permission: - /dev/input - /dev/uinput 2. **ptyDriver** - Terminal emulation input driver (cross-platform) - python-pyte 3. **atspiDriver** - AT-SPI input driver for desktop environments - python-pyatspi2 ### Remote Drivers: 1. **unixDriver** - Unix socket remote control (default) - socat (for command-line interaction) 2. **tcpDriver** - TCP socket remote control (localhost only) - netcat or telnet (for command-line interaction) ### Screen Drivers: 1. **vcsaDriver** - Linux VCSA devices driver (recommended for Linux TTY) - python-dbus - Read permission to the following files and services: - /sys/devices/virtual/tty/tty0/active - /dev/tty[1-64] - /dev/vcsa[1-64] - read logind DBUS 2. **ptyDriver** - Terminal emulation driver (cross-platform) - python-pyte ### Speech Drivers: 1. **speechdDriver** - Speech-dispatcher driver (recommended) - Speech-dispatcher - python-speechd 2. **genericDriver** - Generic subprocess speech driver - espeak or espeak-ng (or any TTS command) 3. **debugDriver** - Debug speech driver for testing - No dependencies ### Sound Drivers: 1. **genericDriver** (default) - Generic subprocess sound driver - Sox with opus support (recommended) 2. **gstreamerDriver** - GStreamer sound driver - gstreamer >=1.0 - GLib 3. **debugDriver** - Debug sound driver for testing - No dependencies ## Extras: 1. spellchecker - python-pyenchant - aspell-YourLanguageCode (example aspell-en for us English) 2. Unix daemon (also needed for Systemd): - python-daemonize 3. Modify system volume: - pyalsaaudio (needs libasound2's headers). ## installation If there is a package for your distrobution of choice, please let us know so we can add it here. - Archlinux: PKGBUILD in AUR - fenrir: stable release - fenrir-git: Bleeding edge release - Manual: - install "espeak" and "sox" with your package manager - sudo pip install -r requirements.txt - run install.sh or uninstall.sh as root - You can also just run it from Git without installing: Requires root privileges cd src/ sudo ./fenrir Settings are located in: - **After installation**: `/etc/fenrir/settings/settings.conf` - **Development**: `config/settings/settings.conf` By default Fenrir uses: - **Sound driver**: genericDriver (via sox) - **Speech driver**: speechdDriver (via speech-dispatcher) - **Input driver**: evdevDriver (Linux) or ptyDriver (other platforms) - **Screen driver**: vcsaDriver (Linux TTY) or ptyDriver (terminal emulation) ## Audio Configuration Both PulseAudio and PipeWire require special configuration to allow console applications running as root (like Fenrir) to route audio to your regular user session. This is normal audio system behavior, not a Fenrir issue. ### Quick Setup - Direct Script Download For non-Fenrir users or quick setup, download and run these scripts directly: #### PulseAudio Configuration ```bash # Download the script wget https://git.stormux.org/storm/fenrir/raw/branch/master/tools/configure_pulse.sh chmod +x configure_pulse.sh # Run twice: once as user, once as root ./configure_pulse.sh sudo ./configure_pulse.sh ``` #### PipeWire Configuration ```bash # Download the script wget https://git.stormux.org/storm/fenrir/raw/branch/master/tools/configure_pipewire.sh chmod +x configure_pipewire.sh # Run twice: once as user, once as root ./configure_pipewire.sh sudo ./configure_pipewire.sh ``` **Direct links:** - [configure_pulse.sh](https://git.stormux.org/storm/fenrir/raw/branch/master/tools/configure_pulse.sh) - [configure_pipewire.sh](https://git.stormux.org/storm/fenrir/raw/branch/master/tools/configure_pipewire.sh) ### Using Installed Scripts If you have Fenrir installed, the scripts are available at: **PulseAudio:** ```bash /usr/share/fenrirscreenreader/tools/configure_pulse.sh sudo /usr/share/fenrirscreenreader/tools/configure_pulse.sh ``` **PipeWire:** ```bash /usr/share/fenrirscreenreader/tools/configure_pipewire.sh sudo /usr/share/fenrirscreenreader/tools/configure_pipewire.sh ``` **Note:** These scripts work for any console application that needs root audio access, not just Fenrir. ## Getting Started ### Basic Usage 1. **Start Fenrir**: ```bash sudo systemctl start fenrir # If installed as service # OR sudo fenrir # Run directly ``` 2. **Basic Navigation**: - **Fenrir Key**: By default `Insert`, `Keypad Insert`, or `Meta/Super` key - **Tutorial Mode**: `Fenrir + H` to learn all commands interactively - **Quit Fenrir**: `Fenrir + Q` 3. **Essential Commands**: - `Ctrl` - Stop speech (shut up) - `Fenrir + Keypad 5` - Read current screen - `Keypad 8` - Read current line - `Keypad 5` - Read current word - `Keypad 2` - Read current character - `Fenrir + T` - Announce time - `Fenrir + S` - Spell check current word - `Fenrir + Keypad *` - Toggle table mode / highlight tracking ### Keyboard Layouts Fenrir supports two main keyboard layouts: - **Desktop Layout**: Uses numeric keypad for navigation (recommended for desktop users) - **Laptop Layout**: Alternative bindings for keyboards without numeric keypad Configure in `/etc/fenrir/settings/settings.conf`: ```ini [keyboard] keyboard_layout=desktop # or 'laptop' ``` ### First Time Setup 1. **Enable Fenrir at boot**: ```bash sudo systemctl enable fenrir ``` 2. **Configure audio** (if needed): - For PulseAudio: Run configure_pulse.sh script (see below) - For PipeWire: Run configure_pipewire.sh script (see below) 3. **Test speech**: ```bash # Test speech-dispatcher directly sudo spd-say "Hello World" ``` ## Remote Control Fenrir includes a powerful remote control system that allows external applications and scripts to control Fenrir through Unix sockets or TCP connections. This is particularly useful for automation, integration with other applications, or providing alternative control methods. ### Configuration Enable remote control in `/etc/fenrir/settings/settings.conf`: ```ini [remote] enable=True driver=unixDriver # or tcpDriver port=22447 # for TCP driver socket_file= # custom socket path (optional) enable_settings_remote=True # allow settings changes enable_command_remote=True # allow command execution ``` ### Remote Drivers 1. **unixDriver** (recommended): Uses Unix domain sockets - Socket location: `/tmp/fenrirscreenreader-deamon.sock` (TTY mode) or `/tmp/fenrirscreenreader-.sock` - More secure, local-only access - Works with `socat` 2. **tcpDriver**: Uses TCP sockets on localhost - Default port: 22447 - Works with `netcat`, `telnet`, or any TCP client - Local connections only (127.0.0.1) ### Using socat with Unix Sockets The `socat` command provides the easiest way to send commands to Fenrir: #### Basic Speech Control ```bash # Interrupt current speech echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Speak custom text echo "command say Hello, this is a test message" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Temporarily disable speech (until next keystroke) echo "command tempdisablespeech" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Settings Control ```bash # Enable highlight tracking mode echo "setting set focus#highlight=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change speech parameters echo "setting set speech#rate=0.8" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#pitch=0.6" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#volume=0.9" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change punctuation level (none/some/most/all) echo "setting set general#punctuation_level=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set general#punctuation_level=none" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Voice and TTS engine control echo "setting set speech#voice=en-us+f3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#module=espeak-ng" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Disable sound temporarily echo "setting set sound#enabled=False" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set sound#volume=0.5" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Keyboard and input settings echo "setting set keyboard#char_echo_mode=1" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set keyboard#word_echo=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Screen control (ignore specific TTYs) echo "setting set screen#ignore_screen=1,2,3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Multiple settings at once echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuation_level=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset all settings to defaults echo "setting reset" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Save current settings echo "setting save" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting saveas /tmp/my-fenrir-settings.conf" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Clipboard Operations ```bash # Place text into clipboard echo "command clipboard This text will be copied to clipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Export clipboard to file echo "command exportclipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Window Management ```bash # Define a window area (x1 y1 x2 y2) echo "command window 0 0 80 24" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset window to full screen echo "command resetwindow" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### VMenu Control ```bash # Set virtual menu context echo "command vmenu nano/file" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset virtual menu echo "command resetvmenu" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Application Control ```bash # Quit Fenrir echo "command quitapplication" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` ### Using TCP Driver If using the TCP driver, replace socat commands with netcat: ```bash # Using netcat echo "command say Hello from TCP" | nc localhost 22447 # Using telnet echo "command interrupt" | telnet localhost 22447 ``` ### Remote Command Reference #### Command Format ``` command [parameters] setting [parameters] ``` #### Available Commands **Speech Commands:** - `command say ` - Speak the specified text - `command interrupt` - Stop current speech - `command tempdisablespeech` - Disable speech until next key press **Clipboard Commands:** - `command clipboard ` - Add text to clipboard - `command exportclipboard` - Export clipboard to file **Window Commands:** - `command window ` - Define window area - `command resetwindow` - Reset to full screen **VMenu Commands:** - `command vmenu ` - Set vmenu context - `command resetvmenu` - Reset vmenu **Application Commands:** - `command quitapplication` - Quit Fenrir #### Available Settings **Settings Commands:** - `setting set
#=` - Set configuration value - `setting reset` - Reset all settings to defaults - `setting save [path]` - Save current settings - `setting saveas ` - Save settings to specific file **Common Settings:** *Speech Settings:* - `speech#enabled=True/False` - Enable/disable speech - `speech#rate=0.1-1.0` - Speech rate (speed) - `speech#pitch=0.1-1.0` - Speech pitch (tone) - `speech#volume=0.1-1.0` - Speech volume - `speech#voice=voice_name` - Voice selection (e.g., "en-us+f3") - `speech#module=module_name` - TTS module (e.g., "espeak-ng") - `speech#driver=driver_name` - Speech driver (speechdDriver/genericDriver) - `speech#auto_read_incoming=True/False` - Auto-read new text *Sound Settings:* - `sound#enabled=True/False` - Enable/disable sound - `sound#volume=0.1-1.0` - Sound volume - `sound#driver=driver_name` - Sound driver (genericDriver/gstreamerDriver) - `sound#theme=theme_name` - Sound theme *General Settings:* - `general#punctuation_level=none/some/most/all` - Punctuation verbosity - `general#debug_level=0-3` - Debug level - `general#emoticons=True/False` - Enable emoticon replacement - `general#auto_spell_check=True/False` - Automatic spell checking *Focus Settings:* - `focus#cursor=True/False` - Follow text cursor - `focus#highlight=True/False` - Follow text highlighting *Keyboard Settings:* - `keyboard#char_echo_mode=0-2` - Character echo (0=none, 1=always, 2=capslock only) - `keyboard#word_echo=True/False` - Echo complete words - `keyboard#char_delete_echo=True/False` - Echo deleted characters - `keyboard#interrupt_on_key_press=True/False` - Interrupt speech on key press *Screen Settings:* - `screen#ignore_screen=1,2,3` - TTY screens to ignore - `screen#autodetect_ignore_screen=True/False` - Auto-detect screens to ignore - `screen#screen_update_delay=float` - Screen update delay *Time Settings:* - `time#enabled=True/False` - Enable time announcements - `time#present_time=True/False` - Announce time - `time#present_date=True/False` - Announce date changes - `time#delay_sec=seconds` - Announcement interval - `time#on_minutes=00,30` - Specific minutes to announce ## Table Navigation Fenrir includes advanced table navigation capabilities for working with tabular data in terminal applications, CSV files, and formatted text output. ### Entering Table Mode Table mode is activated through the **toggle_highlight_tracking** command, which cycles through three focus modes: 1. **Highlight tracking mode** (default) - Follows text highlighting 2. **Cursor tracking mode** - Follows text cursor movement 3. **Table mode** - Enables table navigation **Key bindings:** - **Desktop layout**: `Fenrir + Keypad *` (asterisk) - **Laptop layout**: `Fenrir + Y` Press the key combination repeatedly to cycle through modes until you hear "table mode enabled". ### Table Navigation Commands #### Column Navigation (Desktop Layout) - **Next column**: `Keypad 6` - Move to next table column - **Previous column**: `Keypad 4` - Move to previous table column - **First column**: `Fenrir + Keypad 4` - Jump to first column of current row - **Last column**: `Fenrir + Keypad 6` - Jump to last column of current row #### Column Navigation (Laptop Layout) - **Next column**: `Fenrir + L` - Move to next table column - **Previous column**: `Fenrir + J` - Move to previous table column - **First column**: `Fenrir + Shift + J` - Jump to first column of current row - **Last column**: `Fenrir + Shift + L` - Jump to last column of current row #### Cell Character Navigation - **First character in cell**: `Fenrir + Keypad 1` (desktop) or `Fenrir + Ctrl + J` (laptop) - **Last character in cell**: `Fenrir + Keypad 3` (desktop) or `Fenrir + Ctrl + L` (laptop) ### Setting Column Headers For better navigation experience, you can set column headers: 1. **Navigate to header row**: Use normal navigation to reach the row containing column headers 2. **Set headers**: Press `Fenrir + X` to mark the current line as the header row 3. **Navigation feedback**: Column headers will be announced along with cell content ### Table Detection Fenrir automatically detects table structures using multiple strategies: - **Delimited text**: CSV, pipe-separated (`|`), semicolon-separated (`;`), tab-separated - **Aligned columns**: Space-aligned columns (2+ spaces between columns) - **Flexible parsing**: Handles various table formats commonly found in terminal applications ### Table Mode Features - **Cell-by-cell navigation**: Navigate through table cells with precise positioning - **Column header support**: Set and announce column headers for better context - **Boundary feedback**: Audio cues when reaching start/end of rows - **Empty cell handling**: Blank cells are announced as "blank" - **Independent tracking**: Table position is maintained independently of cursor movement ### Speech Output in Table Mode When navigating in table mode, Fenrir announces: - **Cell content** followed by **column header/name** - **Boundary notifications**: "end of line", "start of line" - **Position indicators**: "first character in cell [column name]" ### Example Usage ```bash # Working with CSV data cat data.csv Name,Age,City Alice,30,New York Bob,25,Los Angeles # 1. Press Fenrir + Keypad * until "table mode enabled" # 2. Navigate to "Name,Age,City" line # 3. Press Fenrir + X to set headers # 4. Use Keypad 4/6 to navigate between columns # 5. Each cell will be announced with its column header ``` ## Progress Bar Monitoring Fenrir provides intelligent progress bar detection and audio feedback for various progress indicators commonly found in terminal applications. ### Enabling Progress Monitoring **Command**: `progress_bar_monitor` (no default key binding - assign manually) To enable progress monitoring: 1. Add a key binding in your keyboard layout file 2. Or use the remote control system: `echo "command progress_bar_monitor" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock` ### Progress Detection Patterns Fenrir automatically detects various progress indicator formats: #### 1. Percentage Progress ``` Download: 45% Processing: 67.5% Installing: 100% ``` #### 2. Fraction Progress ``` Files: 15/100 Progress: 3 of 10 Step 7/15 ``` #### 3. Progress Bars ``` [#### ] 40% [====> ] 50% [**********] 100% ``` #### 4. Activity Indicators ``` Loading... Processing... Working... Installing... Downloading... Compiling... Building... ``` ### Audio Feedback #### Progress Tones - **Ascending tones**: 400Hz to 1200Hz frequency range - **Percentage mapping**: 0% = 400Hz, 100% = 1200Hz - **Smooth progression**: Frequency increases proportionally with progress #### Activity Indicators - **Steady beep**: 800Hz tone every 2 seconds for ongoing activity - **Non-intrusive**: Beeps don't interrupt speech or other audio ### Progress Monitoring Features - **Automatic detection**: No manual configuration required - **Multiple format support**: Handles various progress indicator styles - **Prompt awareness**: Automatically pauses when command prompts are detected - **Non-blocking**: Progress tones don't interrupt speech or other functionality - **Configurable**: Can be enabled/disabled as needed ### Usage Examples ```bash # Enable progress monitoring echo "command progress_bar_monitor" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Common scenarios where progress monitoring is useful: wget https://example.com/large-file.zip # Download progress tar -xvf archive.tar.gz # Extraction progress make -j4 # Compilation progress pacman -S package # Package installation rsync -av source/ destination/ # File synchronization ``` ### Customization Progress monitoring can be configured through settings: - **Default enabled**: Set `progress_monitoring=True` in sound section - **Sound integration**: Works with all sound drivers (sox, gstreamer) - **Remote control**: Enable/disable through remote commands ### Scripting Examples #### Bash Script for Speech Notifications ```bash #!/bin/bash # notify_fenrir.sh - Send notifications to Fenrir SOCKET="/tmp/fenrirscreenreader-deamon.sock" fenrir_say() { echo "command say $1" | socat - UNIX-CLIENT:$SOCKET } fenrir_interrupt() { echo "command interrupt" | socat - UNIX-CLIENT:$SOCKET } # Usage examples fenrir_say "Build completed successfully" fenrir_interrupt ``` #### Python Integration ```python #!/usr/bin/env python3 import socket import os def send_fenrir_command(command): """Send command to Fenrir via Unix socket""" socket_path = "/tmp/fenrirscreenreader-deamon.sock" if os.path.exists(socket_path): sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: sock.connect(socket_path) sock.send(command.encode('utf-8')) finally: sock.close() # Examples send_fenrir_command("command say Processing complete") send_fenrir_command("setting set speech#rate=0.9") ``` ### Security Considerations - Unix sockets are accessible only to the user running Fenrir - TCP driver binds only to localhost (127.0.0.1) - Socket file permissions are set to write-only (0o222) - Commands are processed with Fenrir's privileges - Settings changes can be disabled via `enable_settings_remote=False` - Command execution can be disabled via `enable_command_remote=False` ### Troubleshooting **Socket not found:** - Verify Fenrir is running: `ps aux | grep fenrir` - Check socket location: `/tmp/fenrirscreenreader-*` - Ensure remote driver is enabled in settings **Commands not working:** - Verify `enable_command_remote=True` in settings - Check Fenrir debug logs: `/var/log/fenrir.log` - Test with simple command: `echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock` ## Command Line Options Fenrir supports several command-line options for different use cases: ``` fenrir [OPTIONS] ``` ### Options: - `-h, --help` - Show help message and exit - `-v, --version` - Show version information and exit - `-f, --foreground` - Run in foreground (don't daemonize) - `-s, --setting SETTING-FILE` - Path to custom settings file - `-o, --options SECTION#SETTING=VALUE;..` - Override settings file options - `-d, --debug` - Enable debug mode - `-p, --print` - Print debug messages to screen - `-e, --emulated-pty` - Use PTY emulation with escape sequences for input (enables desktop/X/Wayland usage) - `-E, --emulated-evdev` - Use PTY emulation with evdev for input (single instance) - `-F, --force-all-screens` - Force Fenrir to respond on all screens, ignoring ignore_screen setting - `-i, -I, --ignore-screen SCREEN` - Ignore specific screen(s). Can be used multiple times. Combines with existing ignore settings. ### Examples: ```bash # Run in foreground with debug output sudo fenrir -f -d # Use PTY emulation for desktop use sudo fenrir -e # Override settings via command line sudo fenrir -o "speech#rate=0.8;sound#volume=0.5" # Force Fenrir to work on all screens (ignore ignore_screen setting) sudo fenrir -F # Ignore specific screens sudo fenrir --ignore-screen 1 sudo fenrir -i 1 -i 2 # Ignore screens 1 and 2 ``` ## Localization Translation files are located in the `locale/` directory. To install translations: ```bash # Copy translation file to system location sudo cp locale/your_language/LC_MESSAGES/fenrir.mo /usr/share/locale/your_language/LC_MESSAGES/fenrir.mo ``` Available languages: - German (de) - Spanish (es) - Polish (pl) - Portuguese (pt) - Russian (ru) ## Documentation and Support - **Email list**: [stormux+subscribe@groups.io](mailto:stormux+subscribe@groups.io?subject=subscribe) with the subject subscribe - **Fenrir Wiki**: [https://git.stormux.org/storm/fenrir/wiki](https://git.stormux.org/storm/fenrir/wiki) - **IRC**: irc.stormux.org #stormux - **Issues**: Report bugs and feature requests on the project repository fenrir/RELEASE_CHECKLIST.md000066400000000000000000000126361513650123000153420ustar00rootroot00000000000000# Fenrir Release Validation Checklist This checklist ensures thorough validation before releasing Fenrir packages. ## šŸ”§ Setup Tools (One-time setup) ### Install Pre-commit Hook ```bash # Safely install composite hook (preserves existing version management) ./tools/install_validation_hook.sh # Test the hook ./.git/hooks/pre-commit ``` ### Validation Scripts - `tools/validate_syntax.py` - Python syntax validation - `tools/validate_pep8.py` - PEP8 compliance checking with safe auto-fix - `tools/validate_release.py` - Comprehensive release validation - `tools/cleanup_cache.py` - Remove Python cache files and directories - `tools/pre-commit-hook` - Git pre-commit validation ## šŸ“‹ Pre-Release Checklist ### 1. Code Quality Validation āœ… ```bash # Comprehensive release validation (includes syntax, imports, structure) python3 tools/validate_release.py # If issues found, try auto-fix python3 tools/validate_release.py --fix # Quick validation (skips slow dependency checks) python3 tools/validate_release.py --quick ``` **Expected Result**: All tests pass, no syntax errors ### 2. Dependency Validation āœ… ```bash # Validate all dependencies are available python3 check-dependencies.py ``` **Expected Result**: All required dependencies reported as available ### 3. Core Functionality Test āœ… ```bash # Test core imports (safe to run without sudo) cd src python3 -c " import fenrirscreenreader.core.fenrirManager import fenrirscreenreader.core.commandManager import fenrirscreenreader.core.eventManager print('Core imports successful') " cd .. ``` **Expected Result**: No import errors ### 4. Installation Script Validation āœ… ```bash # Validate setup.py syntax python3 -m py_compile setup.py # Check setup.py can be parsed python3 setup.py --help-commands >/dev/null ``` **Expected Result**: No syntax errors, setup.py functional ### 5. Configuration Validation āœ… ```bash # Verify config files exist and are parseable ls -la config/settings/settings.conf ls -la config/keyboard/desktop.conf ls -la config/punctuation/default.conf ``` **Expected Result**: All core config files present ### 6. Manual Testing (User/Package Maintainer) āš ļø **Important**: These require user interaction as they need sudo access or specific hardware. ```bash # Test basic functionality (ask user to run) sudo ./src/fenrir --help # Test in emulation mode (safer for desktop environments) sudo ./src/fenrir -e --version # Quick functionality test (3-5 seconds) sudo timeout 5 ./src/fenrir -e -f || echo "Timeout reached (expected)" ``` **Expected Result**: No immediate crashes, basic help/version output works ### 7. Package-Specific Validation āœ… ```bash # Test the same compilation process used by package managers python3 -m compileall src/fenrirscreenreader/ -q # Verify no __pycache__ permission issues find src/ -name "*.pyc" -delete find src/ -name "__pycache__" -delete ``` **Expected Result**: Clean compilation, no permission errors ## 🚨 Known Issue Categories ### Critical Issues (Block Release) - **Python syntax errors** (SyntaxError, unterminated strings) - **Missing core dependencies** (dbus-python, evdev, etc.) - **Import failures in core modules** (fenrirManager, commandManager) - **Missing critical config files** (settings.conf, desktop.conf) ### Warning Issues (Address if Possible) - **PEP8 violations** (cosmetic, don't block release) - **Missing optional dependencies** (for specific features) - **Command structure issues** (missing methods in command files) - **Very long lines** (>120 characters) ## šŸ” Root Cause Analysis ### Why These Errors Weren't Caught Previously 1. **No automated syntax validation** - The codebase relied on manual testing 2. **No pre-commit hooks** - Syntax errors could be committed 3. **No CI/CD pipeline** - Package compilation happens only during release 4. **Manual PEP8 cleanup** - F-string refactoring introduced syntax errors during batch cleanup ## šŸ“– Usage Instructions ### For Developers ```bash # Before committing changes git add . git commit # Pre-commit hook will run automatically # Before creating tags/releases python3 tools/validate_release.py ``` ### For Package Maintainers ```bash # Before packaging python3 tools/validate_release.py # If validation fails python3 tools/validate_release.py --fix # Quick check (if dependencies are known good) python3 tools/validate_release.py --quick ``` ### For Release Managers ```bash # Complete validation before tagging python3 tools/validate_release.py # Manual verification (requires sudo) sudo ./src/fenrir --version # Tag release only after all validations pass git tag -a v2.x.x -m "Release v2.x.x" ``` ## šŸŽÆ Future Improvements ### Recommended Additions 1. **GitHub Actions CI/CD** - Automated validation on every push 2. **Automated testing** - Unit tests for core functionality 3. **Integration testing** - Test driver interactions 4. **Package testing** - Validate actual package installation ### Modern Python Packaging - Consider migrating to `pyproject.toml` (PEP 621) - Use `build` instead of `setup.py` directly - Add `tox.ini` for multi-environment testing ## šŸ“ž Support If validation fails and auto-fix doesn't resolve issues: 1. **Check the specific error messages** in validation output 2. **Review recent commits** that might have introduced issues 3. **Run individual validation steps** to isolate problems Remember: **Working code is better than perfect code** - especially for accessibility software where reliability is critical. fenrir/autostart/000077500000000000000000000000001513650123000143655ustar00rootroot00000000000000fenrir/autostart/runit/000077500000000000000000000000001513650123000155265ustar00rootroot00000000000000fenrir/autostart/runit/fenrir/000077500000000000000000000000001513650123000170135ustar00rootroot00000000000000fenrir/autostart/runit/fenrir/run000066400000000000000000000000631513650123000175410ustar00rootroot00000000000000#!/bin/sh [ -r ./conf ] && . ./conf exec fenrir -f fenrir/autostart/systemd/000077500000000000000000000000001513650123000160555ustar00rootroot00000000000000fenrir/autostart/systemd/Arch/000077500000000000000000000000001513650123000167325ustar00rootroot00000000000000fenrir/autostart/systemd/Arch/fenrir.service000066400000000000000000000004301513650123000215760ustar00rootroot00000000000000[Unit] Description=Fenrir screenreader Wants=systemd-udev-settle.service After=systemd-udev-settle.service getty.target [Service] Type=forking PIDFile=/run/fenrir.pid ExecStart=/usr/bin/fenrir ExecReload=/usr/bin/kill -HUP $MAINPID Restart=always [Install] WantedBy=getty.target fenrir/autostart/systemd/Debian/000077500000000000000000000000001513650123000172375ustar00rootroot00000000000000fenrir/autostart/systemd/Debian/fenrir.service000066400000000000000000000007031513650123000221060ustar00rootroot00000000000000[Unit] Description=Fenrir screenreader Wants=systemd-udev-settle.service After=systemd-udev-settle.service sound.target [Service] Type=forking PIDFile=/run/fenrir.pid ExecStart=/usr/local/bin/fenrir ExecReload=/usr/bin/kill -HUP $MAINPID Restart=always #Group=fenrirscreenreader #User=fenrirscreenreader [Install] # start as early as possible in boot process #WantedBy=sound.target # start as soon the login prompt is available WantedBy=getty.target fenrir/bugs000066400000000000000000000006661513650123000132320ustar00rootroot00000000000000Please report bugs and feature requests to: https://git.stormux.org/storm/fenrir/issues For bugs, please provide a debug file that shows the issue. How to create a debug file: 1. first delete old stuff: sudo rm /var/log/fenrir.log 2. start fenrir in debug mode sudo fenrir -d 3. stop fenrir (fenrirKey + q) the debug file is in /var/log/fenrir.log please be as precise as possible to make it easy to solve the problem. fenrir/check-dependencies.py000077500000000000000000000107271513650123000164240ustar00rootroot00000000000000#!/usr/bin/env python3 import os import sys from dataclasses import dataclass from typing import List, Optional @dataclass class Dependency: name: str depType: str # screen, input, sound, speech, core moduleName: str checkCommands: Optional[List[str]] = None # Command-line tools to check pythonImports: Optional[List[str]] = None # Python packages to check devicePaths: Optional[List[str]] = None # Device files to check def check_dependency(dep: Dependency) -> bool: """Check if a single dependency is satisfied.""" isAvailable = True if dep.pythonImports: for package in dep.pythonImports: try: moduleName = package.split('.')[0] __import__(moduleName) print(f'{package}: OK') except ImportError: print(f'{package}: FAIL') isAvailable = False if dep.checkCommands: for cmd in dep.checkCommands: if os.path.exists(f'/usr/bin/{cmd}') or os.path.exists(f'/bin/{cmd}'): print(f'{cmd}: OK') else: print(f'{cmd}: FAIL') isAvailable = False if dep.devicePaths: for path in dep.devicePaths: if os.path.exists(path): print(f'{path}: OK') else: print(f'{path}: FAIL') isAvailable = False return isAvailable # Define all dependencies dependencyList = [ # Core dependencies Dependency('FenrirCore', 'core', 'core', pythonImports=['daemonize', 'enchant', 'pyperclip', 'setproctitle']), # Screen drivers Dependency('DummyScreen', 'screen', 'dummyDriver'), Dependency('VCSA', 'screen', 'vcsaDriver', pythonImports=['dbus'], devicePaths=['/dev/vcsa']), Dependency('PTY', 'screen', 'ptyDriver', pythonImports=['pyte', 'xdg']), # Input drivers Dependency('DummyInput', 'input', 'dummyDriver'), Dependency('DebugInput', 'input', 'debugDriver'), Dependency('Evdev', 'input', 'evdevDriver', pythonImports=['evdev', 'evdev.InputDevice', 'evdev.UInput', 'pyudev']), Dependency('PTYInput', 'input', 'ptyDriver', pythonImports=['pyte']), # Sound drivers Dependency('DummySound', 'sound', 'dummyDriver'), Dependency('DebugSound', 'sound', 'debugDriver'), Dependency('GenericSound', 'sound', 'genericDriver', checkCommands=['play', 'sox']), Dependency('GStreamer', 'sound', 'gstreamerDriver', pythonImports=['gi', 'gi.repository.GLib', 'gi.repository.Gst']), # Speech drivers Dependency('DummySpeech', 'speech', 'dummyDriver'), Dependency('DebugSpeech', 'speech', 'debugDriver'), Dependency('Speechd', 'speech', 'speechdDriver', pythonImports=['speechd']), Dependency('GenericSpeech', 'speech', 'genericDriver', checkCommands=['espeak-ng']), # Additional dependencies Dependency('Pexpect', 'core', 'pexpectDriver', pythonImports=['pexpect']) ] defaultModules = { 'FenrirCore', 'VCSA', 'Evdev', 'GenericSpeech', 'GenericSound', 'Pexpect' } def check_all_dependencies(): print('Checking dependencies...\n') availableModules = [] # Group dependencies by type for organized output for depType in ['core', 'screen', 'input', 'sound', 'speech']: print(f'{depType.upper()} DRIVERS') print('-' * 20) depsOfType = [d for d in dependencyList if d.depType == depType] for dep in depsOfType: print(f'\nChecking {dep.name}:') if check_dependency(dep): availableModules.append(dep.name) print('') print_summary(availableModules) def print_summary(availableModules: List[str]): print('=' * 20) print('SUMMARY') print('=' * 20) missingModules = defaultModules - set(availableModules) if missingModules: print('Default Setup: FAIL') print('\nUnavailable Default Modules:') for module in missingModules: print(f'- {module}') print('\nYou may need to install the missing dependencies for the modules above or reconfigure fenrir to not use them.') else: print('Default Setup: OK') print('\nAvailable Modules:') for module in availableModules: print(f'- {module}') if __name__ == '__main__': check_all_dependencies() fenrir/config/000077500000000000000000000000001513650123000136045ustar00rootroot00000000000000fenrir/config/keyboard/000077500000000000000000000000001513650123000154045ustar00rootroot00000000000000fenrir/config/keyboard/Readme.md000066400000000000000000000202651513650123000171300ustar00rootroot00000000000000 # Fenrir Keyboard Configuration This directory contains keyboard layout files for Fenrir screen reader. ## Available Layouts - **desktop.conf** - Desktop layout using numeric keypad (recommended) - **laptop.conf** - Laptop layout for keyboards without numeric keypad - **nvda-desktop.conf** - NVDA-compatible desktop layout - **nvda-laptop.conf** - NVDA-compatible laptop layout - **pty.conf** - PTY emulation layout for terminal use - **pty2.conf** - Alternative PTY emulation layout ## Key Features ### Table Navigation - **Toggle table mode**: `Fenrir + Keypad *` (desktop) or `Fenrir + Y` (laptop) - **Column navigation**: `Keypad 4/6` (desktop) or `Fenrir + J/L` (laptop) - **Row boundaries**: `Fenrir + Keypad 4/6` (desktop) or `Fenrir + Shift + J/L` (laptop) - **Set headers**: `Fenrir + X` in table mode ### Progress Bar Monitoring - **Monitor progress**: `progress_bar_monitor` command (assign key binding manually) - **Auto-detection**: Percentage, fractions, progress bars, activity indicators - **Audio feedback**: Ascending tones (400Hz-1200Hz) for progress ### Review Mode - **Basic navigation**: `Keypad 7/8/9` (lines), `Keypad 4/5/6` (words), `Keypad 1/2/3` (characters) - **Exit review**: `Fenrir + Keypad .` - **Screen reading**: `Fenrir + Keypad 5` (current screen) ## Configuration To change keyboard layout, edit `/etc/fenrir/settings/settings.conf`: ```ini [keyboard] keyboardLayout=desktop # or laptop, nvda-desktop, nvda-laptop, pty, pty2 ``` ## Available Key Constants Keymap for Fenrir KEY_RESERVED KEY_ESC KEY_1 KEY_2 KEY_3 KEY_4 KEY_5 KEY_6 KEY_7 KEY_8 KEY_9 KEY_0 KEY_MINUS KEY_EQUAL KEY_BACKSPACE KEY_TAB KEY_Q KEY_W KEY_E KEY_R KEY_T KEY_Y KEY_U KEY_I KEY_O KEY_P KEY_LEFTBRACE KEY_RIGHTBRACE KEY_ENTER KEY_LEFTCTRL KEY_A KEY_S KEY_D KEY_F KEY_G KEY_H KEY_J KEY_K KEY_L KEY_SEMICOLON KEY_APOSTROPHE KEY_GRAVE KEY_LEFTSHIFT KEY_BACKSLASH KEY_Z KEY_X KEY_C KEY_V KEY_B KEY_N KEY_M KEY_COMMA KEY_DOT KEY_SLASH KEY_RIGHTSHIFT KEY_KPASTERISK KEY_LEFTALT KEY_SPACE KEY_CAPSLOCK KEY_F1 KEY_F2 KEY_F3 KEY_F4 KEY_F5 KEY_F6 KEY_F7 KEY_F8 KEY_F9 KEY_F10 KEY_NUMLOCK KEY_SCROLLLOCK KEY_KP7 KEY_KP8 KEY_KP9 KEY_KPMINUS KEY_KP4 KEY_KP5 KEY_KP6 KEY_KPPLUS KEY_KP1 KEY_KP2 KEY_KP3 KEY_KP0 KEY_KPDOT KEY_ZENKAKUHANKAKU KEY_102ND KEY_F11 KEY_F12 KEY_RO KEY_KATAKANA KEY_HIRAGANA KEY_HENKAN KEY_KATAKANAHIRAGANA KEY_MUHENKAN KEY_KPJPCOMMA KEY_KPENTER KEY_RIGHTCTRL KEY_KPSLASH KEY_SYSRQ KEY_RIGHTALT KEY_LINEFEED KEY_HOME KEY_UP KEY_PAGEUP KEY_LEFT KEY_RIGHT KEY_END KEY_DOWN KEY_PAGEDOWN KEY_INSERT KEY_DELETE KEY_MACRO ['KEY_MIN_INTERESTING', 'KEY_MUTE'] KEY_VOLUMEDOWN KEY_VOLUMEUP KEY_POWER KEY_KPEQUAL KEY_KPPLUSMINUS KEY_PAUSE KEY_SCALE KEY_KPCOMMA ['KEY_HANGEUL', 'KEY_HANGUEL'] KEY_HANJA KEY_YEN KEY_LEFTMETA KEY_RIGHTMETA KEY_COMPOSE KEY_STOP KEY_AGAIN KEY_PROPS KEY_UNDO KEY_FRONT KEY_COPY KEY_OPEN KEY_PASTE KEY_FIND KEY_CUT KEY_HELP KEY_MENU KEY_CALC KEY_SETUP KEY_SLEEP KEY_WAKEUP KEY_FILE KEY_SENDFILE KEY_DELETEFILE KEY_XFER KEY_PROG1 KEY_PROG2 KEY_WWW KEY_MSDOS ['KEY_COFFEE', 'KEY_SCREENLOCK'] ['KEY_DIRECTION', 'KEY_ROTATE_DISPLAY'] KEY_CYCLEWINDOWS KEY_MAIL KEY_BOOKMARKS KEY_COMPUTER KEY_BACK KEY_FORWARD KEY_CLOSECD KEY_EJECTCD KEY_EJECTCLOSECD KEY_NEXTSONG KEY_PLAYPAUSE KEY_PREVIOUSSONG KEY_STOPCD KEY_RECORD KEY_REWIND KEY_PHONE KEY_ISO KEY_CONFIG KEY_HOMEPAGE KEY_REFRESH KEY_EXIT KEY_MOVE KEY_EDIT KEY_SCROLLUP KEY_SCROLLDOWN KEY_KPLEFTPAREN KEY_KPRIGHTPAREN KEY_NEW KEY_REDO KEY_F13 KEY_F14 KEY_F15 KEY_F16 KEY_F17 KEY_F18 KEY_F19 KEY_F20 KEY_F21 KEY_F22 KEY_F23 KEY_F24 KEY_PLAYCD KEY_PAUSECD KEY_PROG3 KEY_PROG4 KEY_DASHBOARD KEY_SUSPEND KEY_CLOSE KEY_PLAY KEY_FASTFORWARD KEY_BASSBOOST KEY_PRINT KEY_HP KEY_CAMERA KEY_SOUND KEY_QUESTION KEY_EMAIL KEY_CHAT KEY_SEARCH KEY_CONNECT KEY_FINANCE KEY_SPORT KEY_SHOP KEY_ALTERASE KEY_CANCEL KEY_BRIGHTNESSDOWN KEY_BRIGHTNESSUP KEY_MEDIA KEY_SWITCHVIDEOMODE KEY_KBDILLUMTOGGLE KEY_KBDILLUMDOWN KEY_KBDILLUMUP KEY_SEND KEY_REPLY KEY_FORWARDMAIL KEY_SAVE KEY_DOCUMENTS KEY_BATTERY KEY_BLUETOOTH KEY_WLAN KEY_UWB KEY_UNKNOWN KEY_VIDEO_NEXT KEY_VIDEO_PREV KEY_BRIGHTNESS_CYCLE ['KEY_BRIGHTNESS_AUTO', 'KEY_BRIGHTNESS_ZERO'] KEY_DISPLAY_OFF ['KEY_WIMAX', 'KEY_WWAN'] KEY_RFKILL KEY_MICMUTE ['BTN_0', 'BTN_MISC'] BTN_1 BTN_2 BTN_3 BTN_4 BTN_5 BTN_6 BTN_7 BTN_8 BTN_9 ['BTN_LEFT', 'BTN_MOUSE'] BTN_RIGHT BTN_MIDDLE BTN_SIDE BTN_EXTRA BTN_FORWARD BTN_BACK BTN_TASK ['BTN_JOYSTICK', 'BTN_TRIGGER'] BTN_THUMB BTN_THUMB2 BTN_TOP BTN_TOP2 BTN_PINKIE BTN_BASE BTN_BASE2 BTN_BASE3 BTN_BASE4 BTN_BASE5 BTN_BASE6 BTN_DEAD ['BTN_A', 'BTN_GAMEPAD', 'BTN_SOUTH'] ['BTN_B', 'BTN_EAST'] BTN_C ['BTN_NORTH', 'BTN_X'] ['BTN_WEST', 'BTN_Y'] BTN_Z BTN_TL BTN_TR BTN_TL2 BTN_TR2 BTN_SELECT BTN_START BTN_MODE BTN_THUMBL BTN_THUMBR ['BTN_DIGI', 'BTN_TOOL_PEN'] BTN_TOOL_RUBBER BTN_TOOL_BRUSH BTN_TOOL_PENCIL BTN_TOOL_AIRBRUSH BTN_TOOL_FINGER BTN_TOOL_MOUSE BTN_TOOL_LENS BTN_TOOL_QUINTTAP BTN_TOUCH BTN_STYLUS BTN_STYLUS2 BTN_TOOL_DOUBLETAP BTN_TOOL_TRIPLETAP BTN_TOOL_QUADTAP ['BTN_GEAR_DOWN', 'BTN_WHEEL'] BTN_GEAR_UP KEY_OK KEY_SELECT KEY_GOTO KEY_CLEAR KEY_POWER2 KEY_OPTION KEY_INFO KEY_TIME KEY_VENDOR KEY_ARCHIVE KEY_PROGRAM KEY_CHANNEL KEY_FAVORITES KEY_EPG KEY_PVR KEY_MHP KEY_LANGUAGE KEY_TITLE KEY_SUBTITLE KEY_ANGLE KEY_ZOOM KEY_MODE KEY_KEYBOARD KEY_SCREEN KEY_PC KEY_TV KEY_TV2 KEY_VCR KEY_VCR2 KEY_SAT KEY_SAT2 KEY_CD KEY_TAPE KEY_RADIO KEY_TUNER KEY_PLAYER KEY_TEXT KEY_DVD KEY_AUX KEY_MP3 KEY_AUDIO KEY_VIDEO KEY_DIRECTORY KEY_LIST KEY_MEMO KEY_CALENDAR KEY_RED KEY_GREEN KEY_YELLOW KEY_BLUE KEY_CHANNELUP KEY_CHANNELDOWN KEY_FIRST KEY_LAST KEY_AB KEY_NEXT KEY_RESTART KEY_SLOW KEY_SHUFFLE KEY_BREAK KEY_PREVIOUS KEY_DIGITS KEY_TEEN KEY_TWEN KEY_VIDEOPHONE KEY_GAMES KEY_ZOOMIN KEY_ZOOMOUT KEY_ZOOMRESET KEY_WORDPROCESSOR KEY_EDITOR KEY_SPREADSHEET KEY_GRAPHICSEDITOR KEY_PRESENTATION KEY_DATABASE KEY_NEWS KEY_VOICEMAIL KEY_ADDRESSBOOK KEY_MESSENGER ['KEY_BRIGHTNESS_TOGGLE', 'KEY_DISPLAYTOGGLE'] KEY_SPELLCHECK KEY_LOGOFF KEY_DOLLAR KEY_EURO KEY_FRAMEBACK KEY_FRAMEFORWARD KEY_CONTEXT_MENU KEY_MEDIA_REPEAT KEY_10CHANNELSUP KEY_10CHANNELSDOWN KEY_IMAGES KEY_DEL_EOL KEY_DEL_EOS KEY_INS_LINE KEY_DEL_LINE KEY_FN KEY_FN_ESC KEY_FN_F1 KEY_FN_F2 KEY_FN_F3 KEY_FN_F4 KEY_FN_F5 KEY_FN_F6 KEY_FN_F7 KEY_FN_F8 KEY_FN_F9 KEY_FN_F10 KEY_FN_F11 KEY_FN_F12 KEY_FN_1 KEY_FN_2 KEY_FN_D KEY_FN_E KEY_FN_F KEY_FN_S KEY_FN_B KEY_BRL_DOT1 KEY_BRL_DOT2 KEY_BRL_DOT3 KEY_BRL_DOT4 KEY_BRL_DOT5 KEY_BRL_DOT6 KEY_BRL_DOT7 KEY_BRL_DOT8 KEY_BRL_DOT9 KEY_BRL_DOT10 KEY_NUMERIC_0 KEY_NUMERIC_1 KEY_NUMERIC_2 KEY_NUMERIC_3 KEY_NUMERIC_4 KEY_NUMERIC_5 KEY_NUMERIC_6 KEY_NUMERIC_7 KEY_NUMERIC_8 KEY_NUMERIC_9 KEY_NUMERIC_STAR KEY_NUMERIC_POUND KEY_NUMERIC_A KEY_NUMERIC_B KEY_NUMERIC_C KEY_NUMERIC_D KEY_CAMERA_FOCUS KEY_WPS_BUTTON KEY_TOUCHPAD_TOGGLE KEY_TOUCHPAD_ON KEY_TOUCHPAD_OFF KEY_CAMERA_ZOOMIN KEY_CAMERA_ZOOMOUT KEY_CAMERA_UP KEY_CAMERA_DOWN KEY_CAMERA_LEFT KEY_CAMERA_RIGHT KEY_ATTENDANT_ON KEY_ATTENDANT_OFF KEY_ATTENDANT_TOGGLE KEY_LIGHTS_TOGGLE BTN_DPAD_UP BTN_DPAD_DOWN BTN_DPAD_LEFT BTN_DPAD_RIGHT KEY_ALS_TOGGLE KEY_BUTTONCONFIG KEY_TASKMANAGER KEY_JOURNAL KEY_CONTROLPANEL KEY_APPSELECT KEY_SCREENSAVER KEY_VOICECOMMAND KEY_BRIGHTNESS_MIN KEY_BRIGHTNESS_MAX KEY_KBDINPUTASSIST_PREV KEY_KBDINPUTASSIST_NEXT KEY_KBDINPUTASSIST_PREVGROUP KEY_KBDINPUTASSIST_NEXTGROUP KEY_KBDINPUTASSIST_ACCEPT KEY_KBDINPUTASSIST_CANCEL KEY_RIGHT_UP KEY_RIGHT_DOWN KEY_LEFT_UP KEY_LEFT_DOWN KEY_ROOT_MENU KEY_MEDIA_TOP_MENU KEY_NUMERIC_11 KEY_NUMERIC_12 KEY_AUDIO_DESC KEY_3D_MODE KEY_NEXT_FAVORITE KEY_STOP_RECORD KEY_PAUSE_RECORD KEY_VOD KEY_UNMUTE ['KEY_DATA', 'KEY_FASTREVERSE'] KEY_SLOWREVERSE ['BTN_TRIGGER_HAPPY', 'BTN_TRIGGER_HAPPY1'] BTN_TRIGGER_HAPPY2 BTN_TRIGGER_HAPPY3 BTN_TRIGGER_HAPPY4 BTN_TRIGGER_HAPPY5 BTN_TRIGGER_HAPPY6 BTN_TRIGGER_HAPPY7 BTN_TRIGGER_HAPPY8 BTN_TRIGGER_HAPPY9 BTN_TRIGGER_HAPPY10 BTN_TRIGGER_HAPPY11 BTN_TRIGGER_HAPPY12 BTN_TRIGGER_HAPPY13 BTN_TRIGGER_HAPPY14 BTN_TRIGGER_HAPPY15 BTN_TRIGGER_HAPPY16 BTN_TRIGGER_HAPPY17 BTN_TRIGGER_HAPPY18 BTN_TRIGGER_HAPPY19 BTN_TRIGGER_HAPPY20 BTN_TRIGGER_HAPPY21 BTN_TRIGGER_HAPPY22 BTN_TRIGGER_HAPPY23 BTN_TRIGGER_HAPPY24 BTN_TRIGGER_HAPPY25 BTN_TRIGGER_HAPPY26 BTN_TRIGGER_HAPPY27 BTN_TRIGGER_HAPPY28 BTN_TRIGGER_HAPPY29 BTN_TRIGGER_HAPPY30 BTN_TRIGGER_HAPPY31 BTN_TRIGGER_HAPPY32 BTN_TRIGGER_HAPPY33 BTN_TRIGGER_HAPPY34 BTN_TRIGGER_HAPPY35 BTN_TRIGGER_HAPPY36 BTN_TRIGGER_HAPPY37 BTN_TRIGGER_HAPPY38 BTN_TRIGGER_HAPPY39 BTN_TRIGGER_HAPPY40 fenrir/config/keyboard/desktop.conf000066400000000000000000000116501513650123000177270ustar00rootroot00000000000000KEY_FENRIR,KEY_H=toggle_tutorial_mode KEY_CTRL=shut_up KEY_FENRIR,KEY_KP9=review_bottom KEY_FENRIR,KEY_KP7=review_top KEY_KP8=review_curr_line KEY_KP7=review_prev_line KEY_KP9=review_next_line KEY_FENRIR,KEY_KP4=review_line_begin KEY_FENRIR,KEY_KP6=review_line_end KEY_FENRIR,KEY_KP1=review_line_first_char KEY_FENRIR,KEY_KP3=review_line_last_char KEY_FENRIR,KEY_ALT,KEY_1=present_first_line KEY_FENRIR,KEY_ALT,KEY_2=present_last_line KEY_KP5=review_curr_word KEY_KP4=review_prev_word KEY_KP6=review_next_word KEY_FENRIR,KEY_SHIFT,KEY_KP5=review_curr_word_phonetic KEY_FENRIR,KEY_SHIFT,KEY_KP4=review_prev_word_phonetic KEY_FENRIR,KEY_SHIFT,KEY_KP6=review_next_word_phonetic KEY_KP2=review_curr_char KEY_KP1=review_prev_char KEY_KP3=review_next_char KEY_FENRIR,KEY_SHIFT,KEY_KP2=review_curr_char_phonetic KEY_FENRIR,KEY_SHIFT,KEY_KP1=review_prev_char_phonetic KEY_FENRIR,KEY_SHIFT,KEY_KP3=review_next_char_phonetic KEY_FENRIR,KEY_CTRL,KEY_KP8=review_up KEY_FENRIR,KEY_CTRL,KEY_KP2=review_down KEY_FENRIR,KEY_KPDOT=exit_review KEY_KPDOT=cursor_position KEY_FENRIR,KEY_I=indent_curr_line KEY_FENRIR,KEY_KP5=curr_screen KEY_FENRIR,KEY_KP8=curr_screen_before_cursor KEY_FENRIR,KEY_KP2=curr_screen_after_cursor #=cursor_read_to_end_of_line #=review_screen_last_char #=review_screen_first_char #=cursor_column #=cursor_lineno #=braille_flush #=braille_return_to_cursor #=braille_pan_left #=braille_pan_right #=cursor_read_line_to_cursor KEY_FENRIR,KEY_CTRL,KEY_1=clear_bookmark_1 KEY_FENRIR,KEY_SHIFT,KEY_1=set_bookmark_1 KEY_FENRIR,KEY_1=bookmark_1 KEY_FENRIR,KEY_CTRL,KEY_2=clear_bookmark_2 KEY_FENRIR,KEY_SHIFT,KEY_2=set_bookmark_2 KEY_FENRIR,KEY_2=bookmark_2 KEY_FENRIR,KEY_CTRL,KEY_3=clear_bookmark_3 KEY_FENRIR,KEY_SHIFT,KEY_3=set_bookmark_3 KEY_FENRIR,KEY_3=bookmark_3 KEY_FENRIR,KEY_CTRL,KEY_4=clear_bookmark_4 KEY_FENRIR,KEY_SHIFT,KEY_4=set_bookmark_4 KEY_FENRIR,KEY_4=bookmark_4 KEY_FENRIR,KEY_CTRL,KEY_5=clear_bookmark_5 KEY_FENRIR,KEY_SHIFT,KEY_5=set_bookmark_5 KEY_FENRIR,KEY_5=bookmark_5 KEY_FENRIR,KEY_CTRL,KEY_6=clear_bookmark_6 KEY_FENRIR,KEY_SHIFT,KEY_6=set_bookmark_6 KEY_FENRIR,KEY_6=bookmark_6 KEY_FENRIR,KEY_CTRL,KEY_7=clear_bookmark_7 KEY_FENRIR,KEY_SHIFT,KEY_7=set_bookmark_7 KEY_FENRIR,KEY_7=bookmark_7 KEY_FENRIR,KEY_CTRL,KEY_8=clear_bookmark_8 KEY_FENRIR,KEY_SHIFT,KEY_8=set_bookmark_8 KEY_FENRIR,KEY_8=bookmark_8 KEY_FENRIR,KEY_CTRL,KEY_9=clear_bookmark_9 KEY_FENRIR,KEY_SHIFT,KEY_9=set_bookmark_9 KEY_FENRIR,KEY_9=bookmark_9 KEY_FENRIR,KEY_CTRL,KEY_0=clear_bookmark_10 KEY_FENRIR,KEY_SHIFT,KEY_0=set_bookmark_10 KEY_FENRIR,KEY_0=bookmark_10 KEY_FENRIR,KEY_KPSLASH=set_window_application 2,KEY_FENRIR,KEY_KPSLASH=clear_window_application KEY_KPPLUS=progress_bar_monitor #KEY_FENRIR,KEY_KPPLUS=silence_until_prompt KEY_FENRIR,KEY_F2=toggle_braille KEY_FENRIR,KEY_F3=toggle_sound KEY_FENRIR,KEY_F4=toggle_speech KEY_KPENTER=temp_disable_speech KEY_FENRIR,KEY_CTRL,KEY_P=toggle_punctuation_level KEY_FENRIR,KEY_RIGHTBRACE=toggle_auto_spell_check KEY_FENRIR,KEY_BACKSLASH=toggle_output KEY_FENRIR,KEY_CTRL,KEY_E=toggle_emoticons KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_E=cycle_key_echo key_FENRIR,KEY_KPENTER=toggle_auto_read KEY_FENRIR,KEY_CTRL,KEY_T=toggle_auto_time KEY_FENRIR,KEY_KPASTERISK=toggle_highlight_tracking KEY_FENRIR,KEY_KPMINUS=toggle_barrier KEY_FENRIR,KEY_Q=quit_fenrir KEY_FENRIR,KEY_T=time 2,KEY_FENRIR,KEY_T=date KEY_KPSLASH=toggle_auto_indent KEY_KPMINUS=attribute_cursor #=toggle_has_attribute KEY_FENRIR,KEY_S=spell_check 2,KEY_FENRIR,KEY_S=add_word_to_spell_check KEY_FENRIR,KEY_SHIFT,KEY_S=remove_word_from_spell_check KEY_FENRIR,KEY_BACKSPACE=forward_keypress KEY_FENRIR,KEY_ALT,KEY_UP=inc_sound_volume KEY_FENRIR,KEY_ALT,KEY_DOWN=dec_sound_volume KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_C=clear_clipboard KEY_FENRIR,KEY_HOME=first_clipboard KEY_FENRIR,KEY_END=last_clipboard KEY_FENRIR,KEY_PAGEUP=prev_clipboard KEY_FENRIR,KEY_PAGEDOWN=next_clipboard KEY_FENRIR,KEY_SHIFT,KEY_C=curr_clipboard KEY_FENRIR,KEY_C=copy_marked_to_clipboard KEY_FENRIR,KEY_CTRL,KEY_C=copy_last_echo_to_clipboard KEY_FENRIR,KEY_V=paste_clipboard KEY_FENRIR,KEY_F5=import_clipboard_from_file KEY_FENRIR,KEY_F6=export_clipboard_to_file KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_X=remove_marks KEY_FENRIR,KEY_X=set_mark KEY_FENRIR,KEY_SHIFT,KEY_X=marked_text KEY_FENRIR,KEY_F10=toggle_vmenu_mode KEY_FENRIR,KEY_SHIFT,KEY_F10=voice_browser_safe KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_F10=apply_tested_voice KEY_FENRIR,KEY_SPACE=current_quick_menu_entry KEY_FENRIR,KEY_CTRL,KEY_SPACE=current_quick_menu_value KEY_FENRIR,KEY_RIGHT=next_quick_menu_entry KEY_FENRIR,KEY_UP=next_quick_menu_value KEY_FENRIR,KEY_LEFT=prev_quick_menu_entry KEY_FENRIR,KEY_DOWN=prev_quick_menu_value KEY_FENRIR,KEY_CTRL,KEY_S=save_settings # linux specific KEY_FENRIR,KEY_F7=import_clipboard_from_x KEY_FENRIR,KEY_F8=export_clipboard_to_x # Read-all functionality KEY_FENRIR,KEY_CTRL,KEY_DOWN=read_all_by_line KEY_FENRIR,KEY_CTRL,KEY_PAGEDOWN=read_all_by_page KEY_FENRIR,KEY_SHIFT,KEY_V=announce_fenrir_version KEY_FENRIR,KEY_LEFTCTRL,KEY_F4=cycle_keyboard_layout fenrir/config/keyboard/laptop.conf000066400000000000000000000122211513650123000175500ustar00rootroot00000000000000KEY_FENRIR,KEY_H=toggle_tutorial_mode KEY_CTRL=shut_up KEY_FENRIR,KEY_SHIFT,KEY_O=review_bottom KEY_FENRIR,KEY_SHIFT,KEY_U=review_top KEY_FENRIR,KEY_I=review_curr_line KEY_FENRIR,KEY_U=review_prev_line KEY_FENRIR,KEY_O=review_next_line KEY_FENRIR,KEY_SHIFT,KEY_J=review_line_begin KEY_FENRIR,KEY_SHIFT,KEY_L=review_line_end KEY_FENRIR,KEY_CTRL,KEY_J=review_line_first_char KEY_FENRIR,KEY_CTRL,KEY_L=review_line_last_char KEY_FENRIR,KEY_ALT,KEY_1=present_first_line KEY_FENRIR,KEY_ALT,KEY_2=present_last_line KEY_FENRIR,KEY_K=review_curr_word KEY_FENRIR,KEY_J=review_prev_word KEY_FENRIR,KEY_L=review_next_word KEY_FENRIR,KEY_ALT,KEY_K=review_curr_word_phonetic KEY_FENRIR,KEY_ALT,KEY_J=review_prev_word_phonetic KEY_FENRIR,KEY_ALT,KEY_L=review_next_word_phonetic KEY_FENRIR,KEY_COMMA=review_curr_char KEY_FENRIR,KEY_M=review_prev_char KEY_FENRIR,KEY_DOT=review_next_char KEY_FENRIR,KEY_ALT,KEY_COMMA=curr_char_phonetic KEY_FENRIR,KEY_ALT,KEY_M=prev_char_phonetic KEY_FENRIR,KEY_ALT,KEY_DOT=next_char_phonetic KEY_FENRIR,KEY_CTRL,KEY_I=review_up KEY_FENRIR,KEY_CTRL,KEY_COMMA=review_down KEY_FENRIR,KEY_SLASH=exit_review KEY_FENRIR,KEY_SHIFT,KEY_DOT=cursor_position 2,KEY_FENRIR,KEY_I=indent_curr_line KEY_FENRIR,KEY_SHIFT,KEY_K=curr_screen KEY_FENRIR,KEY_SHIFT,KEY_I=curr_screen_before_cursor KEY_FENRIR,KEY_SHIFT,KEY_COMMA=curr_screen_after_cursor #=cursor_read_to_end_of_line #=cursor_column #=cursor_lineno #=braille_flush #=braille_return_to_cursor #=braille_pan_left #=braille_pan_right KEY_FENRIR,KEY_CTRL,KEY_1=clear_bookmark_1 KEY_FENRIR,KEY_SHIFT,KEY_1=set_bookmark_1 KEY_FENRIR,KEY_1=bookmark_1 KEY_FENRIR,KEY_CTRL,KEY_2=clear_bookmark_2 KEY_FENRIR,KEY_SHIFT,KEY_2=set_bookmark_2 KEY_FENRIR,KEY_2=bookmark_2 KEY_FENRIR,KEY_CTRL,KEY_3=clear_bookmark_3 KEY_FENRIR,KEY_SHIFT,KEY_3=set_bookmark_3 KEY_FENRIR,KEY_3=bookmark_3 KEY_FENRIR,KEY_CTRL,KEY_4=clear_bookmark_4 KEY_FENRIR,KEY_SHIFT,KEY_4=set_bookmark_4 KEY_FENRIR,KEY_4=bookmark_4 KEY_FENRIR,KEY_CTRL,KEY_5=clear_bookmark_5 KEY_FENRIR,KEY_SHIFT,KEY_5=set_bookmark_5 KEY_FENRIR,KEY_5=bookmark_5 KEY_FENRIR,KEY_CTRL,KEY_6=clear_bookmark_6 KEY_FENRIR,KEY_SHIFT,KEY_6=set_bookmark_6 KEY_FENRIR,KEY_6=bookmark_6 KEY_FENRIR,KEY_CTRL,KEY_7=clear_bookmark_7 KEY_FENRIR,KEY_SHIFT,KEY_7=set_bookmark_7 KEY_FENRIR,KEY_7=bookmark_7 KEY_FENRIR,KEY_CTRL,KEY_8=clear_bookmark_8 KEY_FENRIR,KEY_SHIFT,KEY_8=set_bookmark_8 KEY_FENRIR,KEY_8=bookmark_8 KEY_FENRIR,KEY_CTRL,KEY_9=clear_bookmark_9 KEY_FENRIR,KEY_SHIFT,KEY_9=set_bookmark_9 KEY_FENRIR,KEY_9=bookmark_9 KEY_FENRIR,KEY_CTRL,KEY_0=clear_bookmark_10 KEY_FENRIR,KEY_SHIFT,KEY_0=set_bookmark_10 KEY_FENRIR,KEY_0=bookmark_10 KEY_FENRIR,KEY_CTRL,KEY_8=set_window_application 2,KEY_FENRIR,KEY_CTRL,KEY_8=clear_window_application KEY_FENRIR,KEY_SEMICOLON=last_incoming KEY_FENRIR,KEY_F2=toggle_braille KEY_FENRIR,KEY_F3=toggle_sound KEY_FENRIR,KEY_F4=toggle_speech KEY_FENRIR,KEY_ENTER=temp_disable_speech KEY_FENRIR,KEY_SHIFT,KEY_P=progress_bar_monitor KEY_FENRIR,KEY_SHIFT,KEY_ENTER=toggle_auto_read KEY_FENRIR,KEY_SHIFT,KEY_CTRL,KEY_P=toggle_punctuation_level KEY_FENRIR,KEY_RIGHTBRACE=toggle_auto_spell_check KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_ENTER=toggle_output KEY_FENRIR,KEY_SHIFT,KEY_E=toggle_emoticons KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_E=cycle_key_echo KEY_FENRIR,KEY_CTRL,KEY_T=toggle_auto_time KEY_FENRIR,KEY_Y=toggle_highlight_tracking #=toggle_barrier #=cursor_read_line_to_cursor KEY_FENRIR,KEY_Q=quit_fenrir KEY_FENRIR,KEY_T=time 2,KEY_FENRIR,KEY_T=date KEY_FENRIR,KEY_BACKSLASH=toggle_auto_indent KEY_FENRIR,KEY_MINUS=attribute_cursor #=toggle_has_attribute KEY_FENRIR,KEY_S=spell_check 2,KEY_FENRIR,KEY_S=add_word_to_spell_check KEY_FENRIR,KEY_SHIFT,KEY_S=remove_word_from_spell_check KEY_FENRIR,KEY_BACKSPACE=forward_keypress KEY_FENRIR,KEY_ALT,KEY_UP=inc_sound_volume KEY_FENRIR,KEY_ALT,KEY_DOWN=dec_sound_volume KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_C=clear_clipboard KEY_FENRIR,KEY_HOME=first_clipboard KEY_FENRIR,KEY_END=last_clipboard KEY_FENRIR,KEY_PAGEUP=prev_clipboard KEY_FENRIR,KEY_PAGEDOWN=next_clipboard KEY_FENRIR,KEY_SHIFT,KEY_C=curr_clipboard KEY_FENRIR,KEY_C=copy_marked_to_clipboard KEY_FENRIR,KEY_CTRL,KEY_U=copy_last_echo_to_clipboard KEY_FENRIR,KEY_V=paste_clipboard KEY_FENRIR,KEY_F5=import_clipboard_from_file KEY_FENRIR,KEY_F6=export_clipboard_to_file KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_X=remove_marks KEY_FENRIR,KEY_X=set_mark KEY_FENRIR,KEY_SHIFT,KEY_X=marked_text KEY_FENRIR,KEY_F10=toggle_vmenu_mode KEY_FENRIR,KEY_SHIFT,KEY_F10=voice_browser_safe KEY_FENRIR,KEY_CTRL,KEY_SHIFT,KEY_F10=apply_tested_voice KEY_FENRIR,KEY_SPACE=current_quick_menu_entry KEY_FENRIR,KEY_CTRL,KEY_SPACE=current_quick_menu_value KEY_FENRIR,KEY_RIGHT=next_quick_menu_entry KEY_FENRIR,KEY_UP=next_quick_menu_value KEY_FENRIR,KEY_LEFT=prev_quick_menu_entry KEY_FENRIR,KEY_DOWN=prev_quick_menu_value KEY_FENRIR,KEY_ALT,KEY_RIGHT=inc_speech_pitch KEY_FENRIR,KEY_ALT,KEY_LEFT=dec_speech_pitch KEY_FENRIR,KEY_CTRL,KEY_S=save_settings # linux specific KEY_FENRIR,KEY_F7=import_clipboard_from_x KEY_FENRIR,KEY_F8=export_clipboard_to_x # Read-all functionality KEY_FENRIR,KEY_CTRL,KEY_DOWN=read_all_by_line KEY_FENRIR,KEY_CTRL,KEY_PAGEDOWN=read_all_by_page KEY_FENRIR,KEY_SHIFT,KEY_V=announce_fenrir_version KEY_FENRIR,KEY_LEFTCTRL,KEY_F4=cycle_keyboard_layout fenrir/config/keyboard/pty.conf000066400000000000000000000050311513650123000170660ustar00rootroot00000000000000# This file contains terminal escape sequences as shortcut # It is used for PTY screen / Input driver (Terminal emulation) # ^[ is used as escape # f1 - fenrir help ^[OP=toggle_tutorial_mode # double tap control+end read attributes 2,^[[1;5F=attribute_cursor #=toggle_has_attribute # escape - stop speech ^[=shut_up # context menu key - stop speech ^[[29~=shut_up # alt+shift+down - review to bottom ^[[1;4B=review_bottom # alt+shift_up - review to top ^[[1;4A=review_top # alt+down - review current line ^[[1;3B=review_curr_line # alt+left - review previous line ^[[1;3D=review_prev_line # alt+right - review next line ^[[1;3C=review_next_line # alt+shift+left - beginning of line ^[[1;4D=review_line_begin # alt+shift+right - end of line ^[[1;4C=review_line_end # control+down - review current word ^[[1;5B=review_curr_word # control+left - review previous word ^[[1;5D=review_prev_word # control+right - review next word ^[[1;5C=review_next_word # shift+down - review current character ^[[1;2B=review_curr_char # shift+left - review previous character ^[[1;2D=review_prev_char # shift+right - review next character ^[[1;2C=review_next_char # control+shift+down - current character phonetic ^[[1;6B=curr_char_phonetic # control+shift+left - previous character phonetic ^[[1;6D=prev_char_phonetic # control+shift+right - next character phonetic ^[[1;6C=next_char_phonetic # f2 - toggle sound ^[OQ=toggle_sound # f3 - toggle highlight tracking ^[OR=toggle_highlight_tracking alt+f12 - quit fenrir ^[[24;3~=quit_fenrir # alt+f12 - time ^[[24;3~=time # 2,alt+f12 - date 2,^[[24;3~=date # alt+[ - previous clipboard ^[[=prev_clipboard # alt+] - next clipboard ^[]=next_clipboard # control+f6 - Read current clipboard ^[[17;5~=curr_clipboard # f6 - copy to clipboard ^[[17~=copy_marked_to_clipboard # shift+f6 - clear clipboard ^[[17;2~=clear_clipboard # f7 - paste clipboard ^[[18~=paste_clipboard # alt+f8 - export clipboard to X ^[[19;3~=export_clipboard_to_x # control+f8 - import clipboard from X ^[[19;5~=import_clipboard_from_x # alt+f9 - export clipboard to file ^[[20;3~=export_clipboard_to_file # control+f9 - import clipboard from file ^[[20;5~=import_clipboard_from_file # shift+f5 - remove marks ^[[15;2~=remove_marks # f5 - set mark ^[[15~=set_mark # f8 - Last utterance to clipboard ^[[19~=copy_last_echo_to_clipboard # lat+\ Toggle auto announcement of indentation ^[\=toggle_auto_indent # alt+end - temperarily disable speech ^[[1;3F=temp_disable_speech # control+end - toggle auto read ^[[1;5F=toggle_auto_read # F12 - cycle keyboard layout ^[[24~=cycle_keyboard_layout fenrir/config/keyboard/pty2.conf000066400000000000000000000020711513650123000171510ustar00rootroot00000000000000# This file contains terminal escape sequences as shortcut # It is used for PTY screen / Input driver (Terminal emulation) # ^[ is used as escape ^[h=toggle_tutorial_mode ^[/=shut_up ^[[D=shut_up ^[O=review_bottom ^[U=review_top #^[[1;3B=review_curr_line ^[i=review_curr_line ^[u=review_prev_line ^[o=review_next_line ^[J=review_line_begin ^[L=review_line_end ^[j=review_line_first_char ^[L=review_line_last_char ^[k=review_curr_word ^[j=review_prev_word ^[l=review_next_word ^[,=review_curr_char ^[m=review_prev_char ^[.=review_next_char ^[<=curr_char_phonetic ^[M=prev_char_phonetic ^[>=next_char_phonetic ^[OR=toggle_sound ^[OS=toggle_speech ^[8=toggle_highlight_tracking ^[Q=quit_fenrir ^[t=time ^[T=date ^[[5~=prev_clipboard ^[[6~=next_clipboard ^[C=curr_clipboard ^[c=copy_marked_to_clipboard ^[v=paste_clipboard ^[[15~=import_clipboard_from_file ^[X=remove_marks ^[x=set_mark ^[\=toggle_auto_indent ^[B=copy_last_echo_to_clipboard # alt+f8 - export clipboard to X # ^[[19;3~=export_clipboard_to_x # # control+f8 - import clipboard from X # ^[[19;5~=import_clipboard_from_x fenrir/config/punctuation/000077500000000000000000000000001513650123000161555ustar00rootroot00000000000000fenrir/config/punctuation/de.conf000066400000000000000000000043771513650123000174270ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:Leer &:===:Und ':===:Apostroph @:===:At \:===:Backslash |:===:Pipe !:===:Ausrufezeichen ^:===:Hoch ::===:Doppelpunkt ,:===:Komma -:===:Minus $:===:Dollar .:===:Punkt >:===:Größer als `:===:Grave #:===:Hash {:===:Geschweifte Klammer auf [:===:eckige Klammer auf (:===:Klammer auf <:===:Kleiner als %:===:Prozent +:===:Plus ?:===:Fragezeichen? ":===:GƤnsefüßchen ):===:Klammer zu }:===:Geschweifte Klammer zu ]:===:Eckige Klammer zu ;:===:Semikolon /:===:Geteilt durch *:===:Mal ~:===:Tilde _:===:Lienie unten =:===:Istgleich [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/default.conf000066400000000000000000000042421513650123000204520ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:-$~+*-/\@# most:===:.,:-_$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:space &:===:and ':===:apostrophe @:===:at \:===:backslash |:===:bar !:===:bang ^:===:carrot ::===:colon ,:===:comma -:===:dash $:===:dollar .:===:dot >:===:greater `:===:grave #:===:hash {:===:left brace [:===:left bracket (:===:left paren <:===:less %:===:percent +:===:plus ?:===:question? ":===:quote ):===:right paren }:===:right brace ]:===:right bracket ;:===:semicolon /:===:slash *:===:star ~:===:tilde _:===:line =:===:equals [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/en.conf000066400000000000000000000042411513650123000174270ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:-$~+*-/\@ most:===:.,:-$~+*-_/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:space &:===:and ':===:apostrophe @:===:at \:===:backslash |:===:bar !:===:bang ^:===:carrot ::===:colon ,:===:comma -:===:dash $:===:dollar .:===:dot >:===:greater `:===:grave #:===:hash {:===:left brace [:===:left bracket (:===:left paren <:===:less %:===:percent +:===:plus ?:===:question? ":===:quote ):===:right paren }:===:right brace ]:===:right bracket ;:===:semicolon /:===:slash *:===:star ~:===:tilde _:===:line =:===:equals [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/es.conf000066400000000000000000000044231513650123000174360ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:espacio &:===:et ':===:apóstrofo @:===:arroba \:===:barra inversa |:===:barra vertical !:===:Cerrar exclamación ^:===:circumplejo ::===:dos puntos ,:===:coma -:===:guion $:===:dólar .:===:punto >:===:mayor que `:===:grave #:===:signo de nĆŗmero {:===:abrir yave [:===:abrir corchete (:===:abrir parĆ©ntesis <:===:menor que %:===:porciento +:===:mĆ”s ?:===:cerrar interrogación? ":===:comillas ):===:cerrar parĆ©ntesis }:===:cerrar yave ]:===:cerrar corchete ;:===:punto y coma /:===:barra *:===:asterisco ~:===:tilde _:===:subrayado =:===:igual [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/fr.conf000066400000000000000000000045211513650123000174350ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:espace &:===:et ':===:apostrophe @:===:arobase \:===:barre oblique inversĆ©e |:===:barre verticale !:===:point d'exclamation ^:===:accent circonflexe ::===:deux points ,:===:virgule -:===:tiret $:===:dollar .:===:point >:===:suppĆ©rieur Ć  `:===:accent grave #:===:diĆØse {:===:accolade ouvrante [:===:crochet ouvrant (:===:parenthĆØse ouvrante <:===:infĆ©rieur Ć  %:===:pourcent +:===:plus ?:===:point d'interrogation ":===:guillemet ):===:parenthĆØse fermante }:===:accolade fermante ]:===:crochet fermant ;:===:point virgule /:===:barre oblique *:===:astĆ©risque ~:===:tildĆ© _:===:soulignĆ© =:===:Ć©gale Ć  [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/pl.conf000066400000000000000000000043731513650123000174460ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:spacja &:===:ampersant ':===:apostrof @:===:małpa \:===:bekslesz |:===:pionowa kreska !:===:wykrzyknik ^:===:daszek ::===:dwukropek ,:===:przecinek -:===:myślnik $:===:dolar .:===:kropka >:===:większe `:===:akcent #:===:hasz {:===:lewa klamra [:===:lewy nawias kwadratowy (:===:lewy nawias <:===:mniejsze %:===:procent +:===:plus ?:===:pytajnik ":===:cudzysłów ):===:prawy nawias }:===:prawa klamra ]:===:prawy nawias kwadratowy ;:===:średnik /:===:slesz *:===:gwiazdka ~:===:tylda _:===:podkreślnik =:===:równa się [customDict] [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/punctuation/rhvoice-en.conf000066400000000000000000000045421513650123000210700ustar00rootroot00000000000000# how to use this file? # the # on the beginning of the line is a comment # the different sections are seperated by [Dict] is the section name. Dict is a keyword # the entrys are seperated with :===: in words colon tripple equal colon ( to not collide with substitutions) [levelDict] none:===: some:===:-$~+*-/\@_ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ [punctDict] :===:space &:===:and ':===:apostrophe @:===:at \:===:backslash |:===:bar !:===:bang ^:===:carrot ::===:colon ,:===:comma -:===:dash $:===:dollar .:===:dot >:===:greater `:===:grave #:===:hash {:===:left brace [:===:left bracket (:===:left paren <:===:less %:===:percent +:===:plus ?:===:question? ":===:quote ):===:right paren }:===:right brace ]:===:right bracket ;:===:semicolon /:===:slash *:===:star ~:===:tilde _:===:line =:===:equals [customDict] regex;(?i)certificates:===:certiffikets regex;(?i)certificate:===:certifficate regex;(?i)lowblow:===:LowBlow regex;(?i)nginx:===:EngineX regex;(?i)shit:===:shitt regex;(?i)slither:===:slitther [emoticonDict] regex;(?:^|\s)(?::-\)|:\))(?:\s|$):===:smile regex;(?:^|\s)(?::-\(|:\()(?:\s|$):===:frown regex;(?:^|\s)(?::-D|:D)(?:\s|$):===:big grin regex;(?:^|\s)(?:;-\)|;\))(?:\s|$):===:wink regex;(?:^|\s)(?::-P|:P)(?:\s|$):===:tongue out regex;(?:^|\s)(?::-O|:O)(?:\s|$):===:surprised regex;(?:^|\s)(?::-/|:/)(?:\s|$):===:skeptical regex;(?:^|\s)(?:>:-\(|>:\()(?:\s|$):===:angry regex;(?:^|\s)(?::'\(|:'-\()(?:\s|$):===:crying regex;(?:^|\s)(?::-\||:\|)(?:\s|$):===:neutral regex;(?:^|\s)(?:8-\)|B-\))(?:\s|$):===:cool regex;(?:^|\s)8-X(?:\s|$):===:skull and crossbones regex;(?:^|\s)(?:X-X|x-x)(?:\s|$):===:knocked out regex;(?:^|\s)(?::-X|:-x|:X|:x)(?:\s|$):===:lips sealed regex;(?:^|\s)XD(?:\s|$):===:laughing hard regex;(?:^|\s)\^_\^(?:\s|$):===:happy regex;(?:^|\s)-_-(?:\s|$):===:annoyed regex;(?:^|\s)o_O(?:\s|$):===:confused regex;(?:^|\s)>_<(?:\s|$):===:frustrated regex;(?:^|\s)\\o/(?:\s|$):===:hurray regex;(?:^|\s)<3(?:\s|$):===:heart regex;(?:^|\s)(?:\s|$):===:Raves regex;(?:^|\s)-\.-(?:\s|$):===:bugged regex;(?:^|\s)>\.<(?:\s|$):===:laughing regex;(?:^|\s)(?:>:\)|>:-\))(?:\s|$):===:evil smile regex;(?:^|\s)\^\^(?:\s|$):===:enjoy smile regex;(?:^|\s)->(?:\s|$):===:arrow right regex;(?:^|\s)<-(?:\s|$):===:arrow left fenrir/config/scripts/000077500000000000000000000000001513650123000152735ustar00rootroot00000000000000fenrir/config/scripts/wlan__-__key_y.sh000077500000000000000000000005651513650123000205130ustar00rootroot00000000000000#!/bin/sh #output the ESSID and signal level #needs iw (for iwconfig) if [[ $(nmcli device wifi | wc -l ) -ge 2 ]]; then echo "Signal $(nmcli -f IN-USE,SIGNAL device wifi | grep "*" | tail -n1 | cut -f 2 -d '*') %" echo "Name $(nmcli -f IN-USE,SSID device wifi | grep "*" | tail -n1 | cut -f 2 -d '*') " else echo "Leider keine Wlan verbindung $(whoami)" fi fenrir/config/settings/000077500000000000000000000000001513650123000154445ustar00rootroot00000000000000fenrir/config/settings/settings.conf000066400000000000000000000313341513650123000201570ustar00rootroot00000000000000[sound] # Turn sound on or off: enabled=True # Select the driver used to play sounds, choices are genericDriver and gstreamerDriver. # Generic driver uses fewer dependencies but spawns a process for each sound played including progress bar beeps # Gstreamer is the default. driver=gstreamerDriver #driver=genericDriver # Sound themes. These are the pack of sounds used for sound alerts. # Sound packs may be located at /usr/share/sounds theme=default # Sound volume controls how loud the sounds for your selected soundpack are. # 0 is quietest, 1.0 is loudest. volume=0.7 # shell commands for generic sound driver # the folowing variable are substituted # fenrirVolume = the current volume setting # fenrirSoundFile = the soundfile for an soundicon # fenrirFrequence = the frequency to play # fenrirDuration = the duration of the frequency # the following command is used to play a soundfile generic_play_file_command=play -q -v fenrirVolume fenrirSoundFile #the following command is used to generate a frequency beep generic_frequency_command=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence # Enable progress bar monitoring with ascending tones by default progress_monitoring=True [speech] # Turn speech on or off: enabled=True # Select speech driver, options are speechdDriver or genericDriver: driver=speechdDriver #driver=genericDriver # The rate selects how fast Fenrir will speak. Options range from 0, slowest, to 1.0, fastest. rate=0.5 # Pitch controls the pitch of the voice, select from 0, lowest, to 1.0, highest. pitch=0.5 # Pitch for capital letters capital_pitch=0.9 # How to indicate capital letters: # pitch = change speech pitch (uses capital_pitch value) # beep = play Caps.wav sound icon # both = play beep AND change pitch # none = no special indication capital_indicator=pitch # Volume controls the loudness of the voice, select from 0, quietest, to 1.0, loudest. volume=1.0 # Module is used for Speech-dispatcher, to select the speech module you want to use. # Consult Speech-dispatcher's configuration and help Fenrir find out which modules are available. # The default is specified in speechd.conf. #module=espeak-ng # Voice selects the voice you want to use, for example, en-GB-scotland will use the Scotish English voice in Espeak, # To find out which voices are available, consult the documentation provided with your selected synthesizer. # This also sets the voice used in the generic driver. # You can add a variant by adding +name onto the end. # voice=en-us # Select the language you want Fenrir to use. #language=en # Read new text as it happens? auto_read_incoming=True # Speak individual numbers instead of whole string. read_numbers_as_digits = False # Flood control: batch rapid updates instead of speaking each one # Number of updates within rapid_update_window to trigger batching rapid_update_threshold=5 # Time window (seconds) for detecting rapid updates rapid_update_window=0.3 # How often to speak batched content (seconds) batch_flush_interval=0.5 # Maximum lines to keep when batching (keeps newest, drops oldest) max_batch_lines=100 # Only enable flood control if this many new lines appear in the window flood_line_threshold=500 # genericSpeechCommand is the command that is executed for talking # the following variables are replaced with values # fenrirText = is the text that should be spoken # fenrirModule = may be the speech module like used in speech-dispatcher, not every TTY need this # fenrirLanguage = the language # fenrirVoice = is the current voice that should be used. Set the voice variable above. # the current volume, pitch and rate is calculated like this # value = min + settingValue * (min - max ) # fenrirVolume = is replaced with the current volume # fenrirPitch = is replaced with the current pitch # fenrirRate = is replaced with the current speed (speech rate) generic_speech_command=espeak-ng -a fenrir_volume -s fenrir_rate -p fenrir_pitch -v fenrir_voice -- "fenrir_text" # min and max values of the TTS system that is used in generic_speech_command fenrir_min_volume=0 fenrir_max_volume=200 fenrir_min_pitch=0 fenrir_max_pitch=99 fenrir_min_rate=80 fenrir_max_rate=450 [screen] # Screen driver: vcsaDriver (Linux TTY/virtual console), ptyDriver (terminal emulation) driver=vcsaDriver # Text encoding: auto (auto-detect), utf-8, latin1, etc. encoding=auto # Delay in seconds between screen updates (lower = more responsive, higher = less CPU) # Recommended: 0.05 for most systems screen_update_delay=0.05 # TTY number to completely ignore (e.g., 7 for X11/graphical login screen) ignore_screen=7 # Automatically detect and ignore graphical TTYs (X11, Wayland sessions) autodetect_ignore_screen=True [keyboard] driver=evdevDriver # filter input devices NOMICE, ALL or a DEVICE NAME device=ALL # gives Fenrir exclusive access to the keyboard and lets it control keystrokes. grab_devices=True # Ignore shortcut bindings and pass all keys through without processing Fenrir commands. # When True, Fenrir will only monitor screen content without intercepting keyboard input. # the current shortcut layout located in /etc/fenrirscreenreader/keyboard ignore_shortcuts=False keyboard_layout=desktop # echo chars while typing. # 0 = None # 1 = always # 2 = only while capslock (not compatible with capslock as fenrir key) char_echo_mode=1 # echo deleted chars char_delete_echo=True # echo word after pressing space word_echo=False # interrupt speech on any keypress interrupt_on_key_press=True # you can filter the keys on that the speech should interrupt (empty = all keys, otherwhise the given keys) interrupt_on_key_press_filter= # timeout for double tap in sec double_tap_timeout=0.2 [general] # Debug levels: 0=NONE, 1=ERROR, 2=WARNING, 3=INFO (most verbose) # For production use, WARNING (2) provides good balance of useful info without spam # The default is 0, no logging. debug_level=0 # debugMode sets where the debug output should send to: # debugMode=File writes to debug_file (Default:/tmp/fenrir-PID.log) # debugMode=Print just prints on the screen debug_mode=File debug_file= # Punctuation settings control how punctuation is spoken during text review. # Profile selects a punctuation definition file from config/punctuation/ (e.g., default.conf) punctuation_profile=default punctuation_level=some respect_punctuation_pause=True # Replace undefined punctuation with spaces instead of removing them # This improves readability of text with punctuation like [X]mute, IP addresses, etc. replace_undefined_punctuation_with_space=True # Pause speech briefly at newline characters for better readability new_line_pause=True number_of_clipboards=50 # used path for "export_clipboard_to_file" # $user is replaced by username #clipboardExportPath=/home/$user/fenrirClipboard clipboard_export_path=/tmp/fenrirClipboard # Convert text emoticons like :) to descriptive text (e.g., "smiling face") emoticons=True # Define the Fenrir modifier key(s) - used to trigger Fenrir commands # Examples: KEY_KP0 (numpad 0), KEY_META (Super/Windows), KEY_INSERT # Multiple keys: KEY_KP0,KEY_META,KEY_INSERT fenrir_keys=KEY_KP0,KEY_META,KEY_INSERT # Script key - used to execute custom scripts in script_path script_keys=KEY_COMPOSE # Time format using Python strftime codes (https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior) # Default: %%I:%%M%%P (12-hour format, e.g., "06:38pm") # 24-hour format: %%H:%%M (e.g., "18:38") # Common codes: %%I=12hr hour, %%H=24hr hour, %%M=minute, %%S=second, %%P=am/pm lowercase, %%p=AM/PM uppercase time_format=%%I:%%M%%P # Date format using Python strftime codes # Default: %%A, %%B %%d, %%Y (e.g., "Tuesday, December 10, 2024") # ISO format: %%Y-%%m-%%d (e.g., "2024-12-10") # Common codes: %%A=weekday name, %%B=month name, %%d=day, %%Y=year with century, %%m=month number date_format=%%A, %%B %%d, %%Y # Automatically spell check words when reviewing character-by-character auto_spell_check=True # Language for spell checking (format: language_COUNTRY, e.g., en_US, en_GB, es_ES) spell_check_language=en_US # path for your scripts "script_keys" functionality script_path=/usr/share/fenrirscreenreader/scripts # Override default commands or add custom commands without modifying Fenrir installation # Leave empty to use default commands only command_path= # Format string for announcing text attributes (colors, formatting) # Available variables: # fenrirBGColor = the background color # fenrirFGColor = the foreground color # fenrirUnderline = speak the underline attribute # fenrirBold = speak the bold attribute # fenrirBlink = speak the blink attribute # fenrirFont = the font name # fenrirFontSize = the font size attribute_format_string=Background fenrirBGColor,Foreground fenrirFGColor,fenrirUnderline,fenrirBold,fenrirBlink, Font fenrirFont,Fontsize fenrirFontSize # Automatically announce indentation level changes (useful for Python, YAML, etc.) auto_present_indent=False # How to present indentation changes: # 0 = sound and speak (both audio feedback and voice announcement) # 1 = sound only (just play a tone) # 2 = speak only (just voice announcement) auto_present_indent_mode=1 # Play a sound when text attributes (color, bold, etc.) change has_attributes=True # Shell to use for PTY emulation mode (empty = use system default shell) # Examples: /bin/bash, /bin/zsh, /usr/bin/fish shell= [focus] # Follow and announce text cursor position changes cursor=True # Follow and announce highlighted/selected text changes (useful in menus) highlight=False [remote] enable=True # driver # unixDriver = unix sockets # tcpDriver = tcp (localhost only) driver=unixDriver # tcp port port=22447 # socket filepath socket_file= # allow settings to overwrite enable_settings_remote=True # allow commands to be executed enable_command_remote=True [barrier] # Enable barrier detection - automatically detects table/box borders for improved navigation enabled=False # Characters that represent left-side barriers/borders (for table/box detection) left_barriers=ā”‚ā””ā”Œā”€ # Characters that represent right-side barriers/borders (for table/box detection) right_barriers=ā”‚ā”˜ā”ā”€ [review] # Announce line breaks during review mode line_break=True # Announce when reaching the end of screen during review end_of_screen=True # Exit review mode when cursor position changes (e.g., when typing) leave_review_on_cursor_change=True # Exit review mode when switching to a different TTY/screen leave_review_on_screen_change=True [menu] # Custom path for VMenu (virtual menu) profiles # Leave empty to use default location (/etc/fenrirscreenreader/vmenu-profiles/) vmenu_path= # Quick menu: Semicolon-separated list of settings for rapid adjustment via VMenu # Access with Fenrir+F10, navigate to "Quick Settings" # Format: section#setting;section#setting;... # Supported settings: # - speech#rate, speech#pitch, speech#volume (0.0-1.0) # - speech#module, speech#voice (speechdDriver only, auto-added) # Note: speech#module and speech#voice are automatically added when # speechdDriver is active. Do not add them manually. quick_menu=speech#rate;speech#pitch;speech#volume [prompt] # Custom prompt patterns for silence until prompt feature # You can add your own shell prompt patterns as regular expressions # Each pattern should be on a separate line, format: customPatterns=pattern1,pattern2,pattern3 # # Built-in patterns include: # - Shell prompts: $, #, >, user@host$, [user@host]$, bash-5.1$ # - Package manager prompts: [Y/n], [y/N], [Yes/No], (Y/n), (y/N) # - sudo prompts: [sudo] password for user:, Password:, user's password: # - Confirmation prompts: Press any key, Are you sure?, Please confirm # # Custom pattern examples: # For PS1='[\u@\h \W] \$ ' use: \[.*@.*\s.*\]\s*[$#>]\s* # For "[user@hostname ~] $" use: \[.*@.*\s.*\]\s*[$#>]\s* # For custom prompts ending with specific strings, use patterns like: .*your_prompt_ending$ # For custom package manager prompts: .*your_package_manager.*\[[YyNn]/[YyNn]\].* custom_patterns= # Specific prompt strings to match exactly (useful for very specific custom prompts) # Format: exact_matches=prompt1,prompt2,prompt3 # Examples: # exact_matches=[storm@fenrir ~] $,[root@fenrir ~] #,Continue installation? [Y/n] exact_matches= [time] # Enable automatic time announcements enabled=False # Announce the current time present_time=True # Announce the date (only when it changes, e.g., at midnight) present_date=True # Announce time every N seconds (0 = disabled) # If delay_sec > 0, on_minutes is ignored delay_sec=0 # Announce time at specific minutes of each hour (comma-separated) # Examples: # 00 = Only on the hour (1:00, 2:00, 3:00, etc.) # 00,30 = On the hour and half-hour (1:00, 1:30, 2:00, 2:30, etc.) # 00,15,30,45 = Every 15 minutes # Note: This is ignored if delay_sec > 0 on_minutes=00,30 # Play a sound icon before time announcement (non-interrupting) announce=True # Interrupt current speech to announce time immediately interrupt=False fenrir/config/sound/000077500000000000000000000000001513650123000147345ustar00rootroot00000000000000fenrir/config/sound/default/000077500000000000000000000000001513650123000163605ustar00rootroot00000000000000fenrir/config/sound/default/Accept.wav000066400000000000000000001131201513650123000202740ustar00rootroot00000000000000RIFFH–WAVEfmt (ž’€»ī  €Ŗ8›qfact€%data–¼§1jø©‚€6˜tĆéĆO G>Ū u³e 'óī ĶvĻż"ށāt„A}’}öÉöd®lĻ|ßļOø»`Œ#!h,ˆ"Ģč#%?E%€V&’åš'£æ?)oø‰*#¤Ī+gW-h§H.Õi}/īt¬0…ŸÕ1Įų2{±4•I,5±b<6ŪÖE7׀H8%iėX?o@2ąĻ@#Ap&B²ÄB0ĢZC‚QčC„+mDPDéD‡\EąĘE„<(FK‹€F »ĻFd¾G…RG†GU.°GĒłŠG]čG!PöG ĢśG5ĖõG4IēGēBĻGo¶­G1£‚GŚ NG^ģGūMČF<3wFó”FD”øEœ9KE·tŌDŸ]TD­ĖC…k8C­œBÆÕ÷AĪöIAN#“@UoÓ?Lš ?č¼9>#ķ_=;š}<²Ž’;I֟:ž¤9T”8ź–7< ƒ6įLh5įF4uP3üZė1öH³0Bt/šn..…łį,Æ +eŌ5*¦}Ö(v6q'×-&Ā“•$&™#Žo¤!¬J$ 3]ŸšŪ6ü‡$ōõžś_KGʇ)a•ˆ åo©>ﯕ˜Xź zß< & Ŗz܁ *”kv'ßĮŚ¢ ™õV’˜”żEEėūDĮ5ścŹ€ų‘ ĢöՃõD“gółq·ń żš•\īG{²ģ2ī ėć-féÉyÄē&ę«2‹ä%ōāŗaį>EŅßžGŽ'vĀÜŽéAŪ•ĘŁ ³PŲe~ąÖ1vÕxŌū0“Ņiī\Ѳs ŠķöĀĪO­€ĶĖḚƒĖX ēÉcĆČ@ØĒ‚P•ĘæģŠÅ A‰ÄĻzĆøĀ Ā‰BŗĮ$"ŻĄˆ Ą¢™?æ’z¾[Mɽü2½K{¼y³ć»ļˆV»gęÓŗUå[ŗšī¹z%Œ¹›‘4¹õēø’`¦øBåoøĄDø¹l$ø±†øpęøü’ø“‘ø°å,ø‘Pød“øņź¹øź“’ø¾ˆP¹ ¬¹”6ŗoŪ†ŗ™£»m€»aa!¼4Ą¼oäi½[\¾„ݾńA§æ”z{ĄČZĮ“åBĀ6Ų5Ć7Ę2ÄY‹9Å­Jʋdǟa‡Čēö³ÉĄ”éŹå (Ģw/oĶ˾Ί¬ЉŸvŃųmŽŅ\ąMŌǽÄÕäĖB×’ĪĒŲ ŠSڧ¾åŪ6-~ŻŚ”߀³ĄąļEjāĶ䬳Ģå…ē®AéÆmė ÷Ęģ±ī]?ZšZg(ņ$,łó‹@Ģõ¼V”÷O xłVNPūi‘)ż±™’÷޳øø.“&m‡OFY }ńō NĒÉ F‰œ6ęl:&-Śu̐äĄO$ ŁńĮŲŪsn” !¢ĪĒ"3>i$©—&b™'¤Ž')§9Æ*”Y/,Ü÷§-¹Ī/Ź™0Ņā1Ż:3H‰4Ļ"Ļ5›Ü 7J ?8th9݇: ;­Õ§<ś§= J> –‡?Æf@ g:A=“B‡ æB³„oC“?D µ¬Då8Eæ°øE]ū+F[Ŗ’Fc„ģF]Ö9Gt)zG ­G&ņÓG£KķG łG7“ųGZµźGĻGc@§GĆŹqG2/GŸ|ßF.³‚FóąF–¢E2[ETŹDłušC“uFCüāBŚĢAĪzż@å!@•<:?_§F>”MG=ŗY<<¤ų%;qY:­×8i( 7ü’]60l5!§ŗ3ķY2"|ļ0ʔ{/:yž-¼mx,nøé*N”R)+r³'—v &Śū]$ćPØ"@Ęė ®(ą[_Č$/_»Õbį¼ˆ+=„7•SL‰“]qĆk Bw »p€Ü®‡F^ņą‘Z™•jź˜ži7œüå柶¦S¤ų”ź©ö„ ±ōĖŗņŽÅšŠœÓī8Ńäģ’‚łź‰éč.ē _PåšŚvćēŗ¢įe_Ōß & Ž.nJܜ’Ś\ļŪŲ«Ž/׃¹‹Õ‰×ļÓóŽ\Ņ|4ŅŠLQĻģ”ŁĶ+ńkĢ~ĖŻ‡ÆÉČXaČ#9Ē.oęÅ ?ŗÄ³ź™Ćß±…ĀżŃ}Į#†‚Ąś”æ·Š²¾E޽ g½;^¼n™²»æž»ˆu…ŗW!ŗć"‘¹˜,¹›Öø“EøD«VøLŽ,øÄķø–åø”Īø|®øķ‡;øfZkøB"Ŗø·Ų÷øŅsT¹yęæ¹g :ŗ3ĆŗF™Z»é§¼>µ¼HŁw½īøH¾ū•'æ-GĄ/ Į©qĀA‰+Ƨ±MĚ²|ÅõPøĘ“NČkTÉLb“Ź7īĢĄÅ–ĶFĻ‘&„Šč<Ņ ŻÓ¹‡ÕZŹ;×OįųŲ ¢¾Ś®ŒÜ§¤bŽi#@ąŃÅ$ā•%äŖŚę]{łēgœöéŃųėüŖ’ķŚŗ šćņ=ø+ōĮ@öa6Xų©£qśn“ŒüœØž•!ÅDŅį@*žß±Uń3 ĖpL }øb ŅPv{†‰–“ŒVœ¬Œ Åß‚‡™xd@čz“”a!e A#żõ%µč&éńÆ(aBn*>#,–~Ī-0Ÿo/]=1¬ų‘2ęr4#P‡5ē6š6/ŠL8‘Ēœ9JĖß:\Œ<™¾==æX>‡Td?ŗ.b@DgQADĮ1BCöÄC³hwD*Eē­E³ī/FŤ¢FGWG`”˜G÷}ÉGŲ½éGŃEłG ųG¤ęGŽ:ĆG¶¢G{FKG-/öFjFoFo“E=ČūDōTDGœC,dŌB{žüAF#A#@aŅ??i>Ÿ#Ž<A«;ńj:¶9±ž½7ē S6öQŪ4‘ĀV3µ¶Å1œ‰(0„™.DHĖ,ėł +óB)Œn'8%³©#å!¹!¼æĄlĄ  øįÖ©Ļ”DylzX©³2ésÅ@Ś '”Ø )tó==˜ū–ŹØå’¶Użžƒū!ģąų!ĢØö}°rōš%?ņļøš‚õįķ"g¹ėš˜•éÜwēća^å‘ L憔@į…<ßĀ_@ŻŪ¦LۘŚaŁ[y€×z’ØÕēŪÓØŅŻ·bŠ?‰·ĪoŒĶĢ.†ĖÉŚŹŃ÷ˆČ)źĒÓĆÅtĻuÄ5z7Ć®iĀŹščĄÆ^Łæ„žŁ¾ė½ī ½üæ?¼Åȃ»?ŁŗdU@ŗ’9¹¹#D¹ įøĆAøłĪQøĶĖ%øŸJ øYøø‡C/øŠ"`øI˜£ø}™łøb¹żÜ¹"2jŗ¤˜ »Õ »»6j~¼{S½—":¾Ę2æ&;ĄŽUĮżĀ“^ŗĆL/ÅØ°_ĘNÉǁkBÉSķÉŹø°_̟OĪ `“Ļ"trŃZ=ӁŻÕäDöÖgŌćŲŖ ÜŚkŽÜ-jźŽ]’ąk%ćrČBåŚoēˆĒ£ééūŻė5ąīˆŪbš>S¬ņ«łōEJ÷wƒłÅņū*iIž7Ī ŪQųWQO­)„Ź7ł µŲJ øi™Hä—Ó*ōilČkØW:Ž88 ‚É4õST (?k"¹ōx$oą|&npv(Ze*ŠBH,'n.[ź/{ا1(³W3z“ł4%36ž¹8?ֆ9jģ:«A<Ł}…=8Õø>•ÉŚ?fė@ē/éA1ÕB\.®CstD’'EPĒE÷zSFāĖF^0GŚÉ€Gł½Gś’äG*ŸųG”Ų÷G„āG¹GK÷zGŅ‹(GĪŠĮF2ÜFFĖÉ·E5»EŽ×]DśL“C€MµBÄA Łæ@†ęØ?̓>÷’C=qÆö;’ė—:§(9œ§7"Ą6uv4­Ę2”1Ē®9/V^-Ž’u+¬ī)"÷}'Š=p%XW#ŅŽ3!‡nį¦Ļ¶*ƟH”®ł9¤+HH0ē”k $® ɬŖļ;0¹É7W QäżŪĄqū½@ł‹öęY#ōHg¹ń„lSļ2"ņģš?–ź*|@čć‹ńåz"ŖćxńjįVØ4ßCōŻöåŚróĶŲÓóĮÖ#ĀŌšĻŅŽ…éŠiėĻåHĶĖ³ĶäÉ£ĪJȇĮĘvtIÅ&ćĆyŹŽĀyMĮĆUĄińæĒDū½h§½įj(¼¶Ś]»B<Øŗ’ĪŗVŹ|¹Ęa¹ŽĄ§ø» ^ø¬a*ø’Ł øˆ…øDnøU—9øóütøo”Ęø-L.¹¦ ¬¹i³?ŗéŗØ»¬z|¼Ÿ’e½Šhd¾õmwæ(ĄžĄ÷ ŚĮzļ(Ćm‹ÄGž’ÅVP‡Ēߏ É>BĖŹē†Ģ#ųRĪ ź.ŠŌ+Ņp'ŌĶAÖŪ1؈NTŚ_ó‚ÜF½Žńį:1QćYÆ©åÖ č'ęsź!äģžµZļ3éÖńųģWōˆõÜö_5ełyŻļū˜|ž…$ P ––>"Ĭ¬Z˜4 4/¹ Ɵ9iµšĢ*Aė™öØ@;aąŁ·æ!æ'G#åS~%±†©'ÖČ)ĮŁ+ćÜ-įSŠ/޵1«Ķ‰3ĶM5Ų~7ZN”8_¬/:{«;8ō=KŻf>¹S¦? ēŠ@x-ęAÄåB½NĻC¾x¢Dmō^E{FaĻ’FĮø G6iG–°GƒBąG™õ÷GdŸ÷G÷7ßGpæ®G>fG’ĆGĀiFÅOżE”žUE†–Dć@ĄC~ ÓBü4ĻAšµ@LŻ„?®?>āä›b ŀĮéÅTx~Ņž–õ+üłß†łxĄćö¶‚CōŲ§ń-Xļß>}ģ”­ńé[ŠmēÕøńäkā»ąQīøŻXgŪPŌ!ŁŗžéÖŠ_ĄŌ7æ„ҵߚŠė~ Ī U·ĢąŹjɶūiĒ{iĢÅpLCÄĀ6ĻĀu³pĮ%F(ĄŪjö¾Õ•Ū½Z3Ų¼‰§ģ»6N»¹z^ŗŌw¼¹Š‡3¹ćĆøyŗmø 51ø¾pøa‚ø€uøZLAøÕ’…ø€äøŽ±\¹Örī¹ā–™ŗėē]»š&;¼Ā 1½E?¾¤xeæ1C£Ą¼8ųĮ™äcƔÉåÄb}Ęc *ȟnėÉ,ÆĄĖĄ<©Ķ¬j¤Ļ …±ŃŃĻӍžÕ+ń<Ų,/ŠŚ’råÜųāMß Āį]ĘBämĶęB§a鼃žėæ £ī'MNńĻF’óķü“ölonłOœ*ü €čžä§ZXe|A"SĖÜ >š“ W«FŚųó}֚ŪC:ÓBŃč×^¤ āõåY!xÅ#GÕ#&st(COµ*Ŗę,ēJ/^1ź3¾°ü4fiŅ6y‰“8’_?:¼CÕ;u“T=8¶¼>— @å;EAx˜dBÖ»jCń9WDR°)EHĘįE-F’ŸG›ähGĀŹ“G½,åG]ļłGóGĀ^ŠGJ ’G 8G(–ĀFyµ1F‚”…El”¾DņŅÜCP¬ąB,zŹA| š@aQ? ¹ļ=Š„u<ŖŽć:¼ł:9g•{7pY¦5}ö»3Ł%½1.©Ŗ/CJ…-­ŚM+‰3)(5¬&ŗĘC$ūÕĢ!ÜVHC·šÕ_sŸĀ³` HŗHæ Ū†µ ,å4Ėʂ<trfžŚŗū}¼ųļŁźõ8ņóåSšҐķeŌŌź©!čW€våĄUÖā——Aą…R¹ŻµŽ>ŪlOŅŲ›’uÖrP)ŌüzīŃ“żÅĻ'½°ĶŒ–ÆĖk_ĆÉ<åģĒķ,ĘE3„ÄkóĀv>{ĮšMĄĶ.×¾%n¬½=œ¼żØ»a;ĻŗE—ŗ7lr¹IļøīˆøŌk?øĖ”ø«3ø?Wø9Aø(+‹ør¼ņøR”w¹å„ŗ-TŲŗ%¼³»Ńj«¼\æ½7ī¾6:8ĄæäœĮųŒĆń›³ÄēodĘs\-ČÕŖ Ź4šĢē_ĪĘ'3ŠwiŅŹ?²Ō» ×wzŁq¾÷ŪB„ŽŒ įx Ēćf({ęC?:éĖ-ģĖŌīæé­ńYō—äq÷ˆUZś›rEżŽ2"Ĉ öóÜźŁ C"»Źa–ōpj¶6)ųJoÆĮZ$÷ų!µļˆ$@Ž 'U¼y)jŲ+ZŽ$.Ņ']0Ģ<2žŪ4ąˆ6 i8Ž2:b ā;)x=gØō>Y½U@.›AFgÄB¢ŽŠCžĄD!£‘E~EFc-ŚF-ŒPGkü§GOąG[błGV"óG„ˆĶGœˆGr$Gß,”FšüžE# >Eļį^DD›aCh²FBښA"Õ¹?„īH>l¼<ķ3;ĒøS9{Īx7#?…5ąy3¶‘W1Ī>/wÜŃ,ip*Qīū'ō{u%$,Ž"œ 7 ‚y‚¾Wļ"=$w1MLE?R hśX mu[šĪZD]X4zUż Sś©ÅS÷‘§WōL}`ńŠoīß]†ėq¦čŠå`}ćFŹGą(˜ŻDÓ÷Ś’gŲ¹ŁéՓ‰~Óš,'ќŁäĪYœøĢYx£ŹĢf¦Č[VĀĘæ*ųÄL¼HƇדĮĮ<=Ą¹Ÿā¾<§„½Õ솼{ü†»JT¦ŗ=då¹ńD¹s$Äø ldøš%øÜŌøƒ3 øļ½/ø³luø)ÜøśĢc¹ # ŗ­ęŌŗĽ»…XƼ82ī½ĮŠ4æ%„™ĄĀ:l»ĆeśvÅóõMĒ‹?É)ŁJĖ&ónĶõßŖĻꚿŃ!fŌ1ćÖĶsٶ¹ÜSæŹŽÅŽįŠ aäƼ@ēW,ź"ķŅ!šłč(óźW6öÆHłƒ}^üMv’ż§Žģ¦`"»GSĢ ·3Ų™OŻd5ŚĖvĶl©µ„g‘˜P_ ' #M@Ģ%o¦h(Ž÷ń*vųf-=uĘ/ūD2ŅH@4ĢlX6gØV8’9:ä€<®J¬=ن9?£mØ@’EųA×c(C¬,8D¦'EœōEY Föķ)G²‘G˜ÕGĖ÷GM·õG[ŃG# ŠG…ŚGQł’F¤ ćE‰EćÉDH C×ŌA•~@cō?VLt=ŃZĮ;üģš9ąŽ8żū5ä™×3Ęaš1÷…D/r&×,ToS*K˜ŗ'ä % ŸN"ų!~ĖyÆy;³†ź«uŽšĪŖ€ Č_ µr9÷:³āįpµżŹ‰ś1_÷9ō Čńɜ’ķ÷,ļź#éēd©ī䗞ā–_#ßwaUÜĖ™ŁåÕļÖ [Ō ÜŃtĻ+M$Ķ īŹĖsŅȘŅĘiļÄč*ĆāHƒĮŠüæÕD•¾‰O½å”+¼.*»MiKŗ!9¹ÆŽųøį°…øPō6øŪ ø„ø{ż&øØ?kø2ŌøĪØa¹*eŗ°éŗLVā»q°ž¼J›=¾ł{žæŁ„ ĮŹZĆĀŒĖ…ÄgĘ PfČXs‚ŹrŗĢĻ- Ļ‹yyѕžÓəÖf0KŁcšÜséŽŽĮÓįīÜĶäŠfÖē9ĪėźĆz īqĶ6ń!iōAĶ”÷ö"ßś±qž4aŃ+¢W-įļU ņQ2P€Ā„UĄX<ĻJ’ĻķLĮ x“”#pIo&{ī()6 Ķ+ż6Z.·Ļ0“?*3Ź‚j5NŸŽ7j•9ŃČ};k®F=Ąļ> 2v@A ŪAŗęC{ ;D;Ū4EÖĆ FŖJ¹FāCG¼§¦GĮźćGó„śGõĀźG@“Gˆ0WG¼ÓFl*FŠ«ZEĒeDėKCa§ B «@f‚&?¦ =åS¶;ø Ķ9ŗEÄ7 5Ā”X3dų0<Į|.øėē+ŗł:)āYw&͇ž#L ² ™w³~j¤~‹†ģŠ[ !% å h aO‘¢ü„ɧvJRżśżłk­¬öų8`óoš6Żģ ŖéEƒęĀęićw=`ą…ĶgŻA@‚Ś?5±×jAöŌīRŅ1øČĻFYĶŹTĖ<ŪĪČfå¶Ęž„¾Ä=ēĀ»1ĮƒŸæ7K0¾`ę¼ UĮ»“ŸĀŗÄ•ź¹Aŗ9¹mz°ø~-OøbøŒYøĖø87]ø#³ÅøTV¹ėŅŗÕŃÜõ»“h#½«Õv¾ImļædŒĮbŁLĆfŲ/ÅX4Ēś;YÉÉTĖļ`’ĶL ~ŠįõӖ¦ĖÕœ—Ų>DzŪĘ’qŽ["}įšó™ä ±Ęē¬ŽėvµHī’HšńĢcōō?Uųg†ŗū<­"’Q‹š`ó8X EŒ· J ¶’_V4¤o ÜÜ8*å §A$#{‰&°ó(7’·+šŻc.› õ0Ņj3ńQĮ5õ‘ł7[q:īÆ<ˆ Ū=Õ©Š?śFACzB³øC—„ĪD½E@Ą‚F?5Gį ’GLšŚG"³łG°5īGtøG1ƒXGéĪFŁćFZŪ=ESļ7DüÆ CÅ³A4š6@”>wųĖ<ńČß:š’Š8†Ÿ6²ęM4É Ż1˜cN/¤h£,ķŖŻ)Źž&'u$9jü ŅtÜ'mŖ7hŸĄŒ»†łS GÆä Q/o¾ŠõūÕy’–'žūņ–„ų;õ?) ńļs9ī\)ŻźWRēńK䬒įqoüŻ2'ņŚPž×Ļ!ÕōO_Ҭ5øĻū".Ķ8©ĀŹŅGwČRkMĘ~lFÄscĀŽ¦Ą)ßæŃ%Ÿ½²ĄW¼o9»ä Eŗ„>{¹`ÜøhņhøˆE!ø£øļø"cRø-ŃŗøsO¹»¬ŗõ^łŗk•¼°M½˜ōµ¾QFĄ$“žĮRśÜĆś¦ąÅæcČxäRŹńƾ̻“JĻæōя©»Ō‘”×Źć˜Śœ«ŻŪčÓą}×ä>j]ē—ŗź„I%ī c›ń›æõü0”ųö…,ü̈ŗ’+I‘µÕ¬l^ Ęīą ![g…Ź?-|éŽĆ/™ó!`9%Ę(oSü*ŚĢ-æ 0ņ²3ČKˆ5,CŪ7« :uaCĢ’ąAķļW@bå„>ÜĖOp@3@ AĀ;C“[TDO·hE^†MF„ Gjž…GŗŲGśśGĻŚéG$ØGĀ÷4G‘®F‚§»EVj¶DV CńB;°Œ@f€Ī>Æä<Ž…Š:k“8Ąć.6»¤3*ö0d‡%."•4+ŹW%(Ęéł$ōy“!2JWĪ­äš_łÉČŲq$Lˆt (Ÿ»ŠOü 89ōśtżT<²ł8 óõĖČ;ņvTī ÜźźģšVē9ŌćŲdą}— ŻJ»ŹŁ½”¤Ö-c›ÓYR±ŠÓxčĶvÖBĖ÷RĀČv¼hĘ0Ę7Ä61Ā@łUĄ‘÷§¾ķ=(½­ē×»Üī·ŗz+ɹĻR ¹Óöø¶…*øIøĘgøzįWøÜ’Ķø|3v¹ZVQŗ%j^»‹¹œ¼§k ¾“„©æüåuĮėOoƏa”Å/šćĒ-Z[ŹäłĢž]½ĻwŅ£Ņ<2«ÕrUŃŲ=żÜHÕpßouåārcoę³ ź šøķŸOsńĂ8õõĻł¾vŲü±­¶ø‚iĀTĘ! äĄä’0ŒžG*Zį§ægļ7Ų!ś:0%ŖQm(¦+%=.£ˆk1—Ų%4 %ŗ6+&9µi;fE€=Ehj?Ż&A^ō±B§Ž D8Ē5EČ+F? īFį4|GJ‘ÕGžēłGéG1£GÉ(GJxFBN”Eø°|D-52CsŵAŹp@.k+>„ <«Ļē9yQ„7“O÷47§B2åSh/õmj,)K)¾Ņ &iб"ö<ĆĖÆÕü åäYdF–mšÅ “¼ėb ōJ% ā>żAAZłäVzõ×¢ńMPŌķžūźčcęøįĘāL§?ßčŠŪÄA}Ųž>GÕWS1ŅAŻ=Ļp oĢõEĒÉ0ZHĒ)KōÄēĢĀŪŚÓĄĘ° æCĻr½øw ¼„ÅŪŗ­Ž¹ū¹†S…øÄ1*øiēøQœøVNbø<ŃāøŗĪ™¹ŖĘ†ŗV©»ßÕ’¼ŠоŹĘFĄJƒ4šćQÄŅQĘÉ~M·Ė‚ĪÕ sŃ5:ˆŌ,æ×uoŪwˆŽŽžād,ŗåęSsép7>ķŽźńBtżōFŃėų_ößü¹ŅÖARĶ`ĄĶč¬ ŻÉ3f¦ģ,hį:½’#‘Sq&öƾ)ˆÓė,öõ/ÅŚ2Ūõ—5†X+8`ߒ:ŻĢ<­ŹÖ>?ĮÆ@VB9ČC~4E<š Fz‘ŪFhsG˜ńŅGīŌłG‹ēēG<+G¼ĪG -^F,ŠjEöj@DsŽßBZ6JA䨀?ķ•„=ļ…W;ā(ū8õTq6.¼3ęWŻ0-×-­*Ä=`'³Ńó#}uj ŚõĘd5 ]*=PÜ\²an pŻt p|s sm~śeżTN`łÓ©_õ\EgńŁSzķ"œépjĻ劄┵wŽ"‹ņŚ‹×ćCŌü×Ńęr!Ī‹'KĖ JŸČ ĘÉĻĆmŒÆĮgöĮæėX¾%„¼£6»ģ ŗWīC¹ßi øš6ø"ćø vøŚ«YøÜWŚøŽ•¹Ōp‰ŗ]–¶»¤½ķ·¾tźˆĄžkŽĀ¦iĘċ/Ē6•ĘɽŠĢ:XyĻęŅ„GĢÕ1y+ّܪÜM—Gą½µžćj-Ķē„߯ėo›£ļZ!„óę$±÷ąOÄūųDŪ’Š¢ņj±  ‹W’×m÷&ŖŹ?‡F)#Ł Æ&¤™*ąZW-Ƒt0םi3:’36ĘXŃ8r?;†9|=ÜŅ?XZA]ųBbn^D|T‹E ~F?®5G‹£±GCrńG!ŲōGŒÅ»GÄ]FGŚö”F€ØEµ€€D8C܅A±…³?ž$¬=Šp;981d6£—3Į8Ÿ0Āk}-BŪ4*ŹGČ&d‘:#BµŽ9ĖĒ2遢õ ń醮 ®ØĮSåÓĀv’GĖOū߉,÷هóI’ī$Küźž ēĪÅ.ć½ōjß®ÉĀŪŌl9Ų ķŃŌ8=ŃŸ1tĪu}ƒĖ}°æČ»4+ĘSLČƁ™ĮŗjŸæčݽٵS¼Ģ”»)ēš¹e§¹œøW#ø"5ø,]%øLĄƒøØ ¹īł¹ŃŽ»;c¼Dhš½ź:·æø ¶Į’/ėĆ5ĮTʀ²šČjȼĖĮœ¶Ī– ŪŃl)Õx<œŲ’1Ü_Kē߬éøć…ˆ£ēbæ£ė„¶ļńÖó Ćų&į5üœl–A£ÖØ š¹!)3½42żS¼ė %ž$£ķ0(Ķ— +Iōé.ˆ 2z)ž4 Ć7 ÉW:Iƒø<ų–ć>w ×@9 ‘B;DŸżREøh”2³Ÿƒ/Ģś:,ĪcŹ(äé4%o¾}!62Øx²·ēÅÆ€ ”Z-h Wń/ Ź!#cüģ«ų> ćó×±ļ"šė¼\|ēśćTŸß4µŚŪf£6Ų>t¶ŌU]]ŃĪq.Ī{Ÿ,ˬZČĆ2»Åo”PĆ­6Į€’"æfÕc½’\į»Rŗ¤ū—¹DÓøpœOøŒŠ øX ø˜Oø‹Ņø*V—¹z̜ŗņ ā»›óe½ƒ.'æŪ*$ĮN [ÌŹÅÉnČÖäFĖšĪOĪXĆѤÖčŌ›īrŲżĪ!ÜrņߕGąć*ĀčēdŠģI„9š6azōfĘų•Ēż­un|Ćn¬ L+Yū™’7»>Ī}dÉ%ɧ"Æf&LŚ*>t-$¾0¶SŚ3:Ę6ł9ˆF<üoM>ą]^@ž3BzŠÉCN!E j7Flę GP§GgģGvÜöGßį½GŃNAGC‹F¬>EƒO;Dˆā¶BĆYó@\Sņ>%ص<’i?:ųį‘7=ŽÆ4Ö›10xW.x¦ē*ĒäN''•#n>°ōˆ±*;˜ 6h€q%–ųÓ ¹åwĒ^'‘°żĶ­Mł9åšōxcžš&LZģq¶(č)© äć ąŚ*ܑ±jŲ}<ŠŌ)÷^Ń{7Ī®)Ė6Ķ"ČÅńuŇ4ƿʥ"}ɾ#Ŗ ½n?Œ»fŗOŗXYV¹(”øC¹0øÅ°øč7 ø°B€ø×%¹übŗ=»u­¼¾6_¾N¾PĄN5€Ā›ˆėÄ8jĒrSlŹ;‡|Ķæ¾Š!Ś-Ō}‡Č×¢ŠŪS‡pßģpvćÓw˜ēR˜Ņė×µ šģž~ōLčų¾Xż§M̆d>ž¦Ŗ “½ įY`‹9”æ+˵ŚāńÉ#ųŻ–'Ź=+ ÷ø.’ 2Ž$5CŽ 8A“¾:_z6=]r?¾,oA“+CLź„D(LÜE<™ĶFÕxGvHŻGūśG×VŠG ć^Gp‰¦Fló§EtdD5ÜB‡zAü?«–»<‡†4: Es7y†z4W7M1›yī- ”a*ķ2Ŗ&ĀÜĖ"~vŹŲū©šˆnCVu“· E ÅČ“jG‚~Åū3ˆG÷ó ŅņԊiīMtź“+Ń办©įw"”ŻA®ŗŁa˜śÕޱdŅ”üĪ*įÅĖ*»ĆČTDłÅƒZiĆ.”Į„~æƒ2½eV¤»įÕ[ŗæņY¹zĄŸø .øēPø…Ģ%ø×iøTĖA¹1I<ŗéń}»‹½•’ѾŽ?ąĄĪ…/ƕ½Åõ[†ČŹˆĖÉ ĄĪ…S+ŅØ/ÅÕoŠŁI—wŻĄMˆįs‹øåR źībfīõŪņĮŸ]÷Péū‘y | Ś‘” šŖQ‰š¹éXĄ2/ō_Ēžl#Ŗ©U'®ā+AĄ©.€… 24¦=5ŽŹ68¹Ņõ:4Św=ē:ŗ?ŗAŸøvCŚģDÅaFwG/ΜG«īG'KōGꉯG~ūG“'FF™ć"ER·C(įB J @…ŽŅ=g÷V;(8W®§5ĢŚy2…ā/UI‚+FČæ'ĒIÓ#§åĄ×܌•;”ŃC{S‹Ę Šó-‹$msńūˆĄV÷éÄņ)Ä@īVĻé֟tåd÷5ḣݓٯ`MÕęĮ©Ń7Ī8żųŹ¢óĒg(Å;'œĀhQĄuI¾·¼1Ų »@ݹīW÷ø%#]ø\TøģLøKZøŅņøęāÖ¹o_»«¾¼[zA¾?¾IĄķi–Āõ%ÅZóĒVPżŹnµ@ĪÉæ¹ŃнdÕ Ē=ŁBĄ@ŻŠ_iį,2³å§žźOģ—ī÷F)ódÄČ÷”iqü0f ʆīo LŃ 굕Y® ¶įg‹‘„ Ą$÷³(ßz,0Ģžs3Ŗ>Ÿ6ŖK9Øč@20Ż@m¼ĀBŠ”_D”²E׉øFįąqG=ŻG«śG¢KČGå÷GG_yF^EÉvöCODBfI@ Ü>‚;/ßŗ8ƒ&µ5Ż8t2#Ÿū.” O+³¾r'ü°j#T`;Abéšsy uš`bS yP§żeńÖ6’uŚ|ś®Čõ׆ń&†ģ’äčZŠ™ć‡iOß°J)Ū|Ļ+××m[Óļj¼ĻXÖRĢy…"É&/ʏĒ{Će¼ Į]±į¾ó½’%i»ŸŗG"¹Ā‰tøÉóøš½ ø«MøgŒąøE¾Ć¹QŖõŗu¼Ģ7@¾>DUĄ”ä±ĀSņ+7Ȟ¶YĖj„·Ī9MŅsÖ8Ś’ŗ2Ž×µ|ā˜:čęĢRpė<ęšŸĄĮōo—€łāGžźÄOMÕĻA’ AAk@śŲjBdŠD\(…EĆ9œF‹·bGR°×G¦śGĪĖG4…IGaHvFˆKREŖĪŽCQmBÜ@c*¹=>8;;98Įv5lz¶1Ó.ćwN*äN&œó""mĻKFY_žÅøĘóZ (ɎĮŗ9oäürkųKG󳜋īżÜćé uUå¹±åąń½™Ü–œvŲ£"Ō~ń½Š|q1Ķ­ĢßÉēéĢĘ hüĆšqĮ\‚/æ›Ļ8½oŁ»n6ŗĄ¼.¹zyø½·ø÷ øWPø’”źøī Ų¹ °»%ؼj‡¾Öß³Ą–Ž*ĆŃÅčÅ×YėČøĶ.Ģ;WÆĻ6ćhÓ6W׃euŪlō¾ßŪĮ.ä)šæč-!lķ‚Ų.ņń%÷Ząū²¶Ć+v¦”т SVesHøæ*BD¦©!;|é%X›ü)ą%Ž-…w‰1+ś4q,8J};»Ä=Ó”$@ĢP8BEAżCšIqE÷Ÿ’F„Ü_Gįū×G6_śGjĪĘGźw=G¹š^Fķ3,E«”¦C©żĻA»:į¼óÕ¾„{Į`¬Ć»‡Ę†ē©ÉÖĶ@i²Šo5ŌX†£ŲœdēÜɛVįØĄėåĖ7”źeBÕ}\tŁdüׯ‰gā›5ēóėo½āš.ęõŽ»öś>‘Ŗ%÷ģ6 Ķ[;ƒ,æå„»įLM"-³&Hē*yä.$y„2+g%6¹“_9ā+P<Śōņ>›DAÉBCAøčD7]6FóA)G±ĄG€śG}ąÖG~ŒVGµyFiAE.ÆCśžÄA«I…?œėņ<.:¦Äć63Ćn3ž¶/Ö!Ą+Šm'Tģ,#gN›ŗįeŖŖĪJ ©Šå!WĀm•ū[F~öxkńIČjģŃƒēœ¬¼āŲ¢ŽqͦŁB dÕ YŃš‹ĶP&’É ŗĘ1'ĄĆZĮ<½¾€ńŗ¼ƒ.»M3¹óČĻøä>;øžhøEž.ø@ø¶øü¹²ąŗŒ¼:ųw¾CEĒĄzrjĆ'^Ęõ>žÉé¾&ĶŚźņŠĆżŌēōAŁnݹŻ!•_āuõ,ēc”ģĶ %ń ŠBö.Imū:jžĻ]$ų ²ģõ‡i=¹wÉÕĶg#• ×':,ī§0¦šĻ3TJ7d.z:\=^āė?s&BˆsDE®d¶F§+€GĻŅéGł»ņG ˚GXfāF@vŹE8dTD‚BmśU@čŅ=Ų7ü:€±Õ7Ɖc4Ä\Ŗ0(Æ,¹Cw(Ź[$+hhļ¤퉮Ā”Z"~ ½ JŸJ];Šū£’—ö¹jkńŽĪR쨱Tē…ćwāg ĆŻ”“<ٵźŌZÓŠ¾"üĢAVjÉdą"Ę;H*ĆRŖ„ĄŽ²5¾˜@¼õØŗ£on¹Ł\•øųø W øŠEWøˆ¹|=ŗžŠ»„ŻZ½üm†æ§Ā Ā×säÄs£Č!ˆĖÕHĻ üLÓ<łŽ×T÷܇ғąp Œåč8ˆź?¢ļ+ÓōśŅśõ\’ŲC§ōjė Ą"­#DāXJĀ-‡‘ē"1q'LÄ+c׌/ŚÆ3Æø;7Sµ{:ƒ~j=Ęń@_bDB”ž(DXō­E85ŅF¹“GLcńG*ŸźG@fGś=°F¢7~EļźCƈųAÉ®©?ƒ=BĻ:U—“6k|3U‚4/+”÷Ŗ&]O"jˆGVTʧ>WŸ  ‡Č^Ēv¬Üž›LĖųŠ›€óöAGīė”&é‹ü%äĆgLß;Ä Ś„³)Ö ŽķŃķ\ņĶzĖ=Źį$ÕʗI½ĆčØśĄz:‘¾~x„¼–Z×ŗkQŒ¹’B„øĪ‡#ø¦čøYRø3L¹G ŗ‚\’»’9m½š §æ§ø<Āņœ*ÅŲ™lȍžĖƒŚĻqõśÓś[ŲéžóÜóXæįļ>¶ęŒœŃėR' ńiXöDŹ“ūix)y;µŃ R’D(It’XćĖA Čwü$Ģ-‚)cĢ-uąŌ1!Ģ•5„± 93Š+<Äö>IgA9…yCŠk*EėzwFåĮ^G°įŽGa÷GH§GrbļFUāŠE™(MDWfBę@ĘĮz=‚}:³.*7· ‡3ėŠ˜/=/e+6ņ&§TF"¹Nhć2_kP2­,é ĮƒģįĆś‹Ēy‘ŹÄ‘bĪŖ=}ŅśuŪÖXĪvŪ/~HąŸjIåę0rź61»ļņ™õ1sŽśŠŖƒ ­õ ;XiÄ¢¹fĶ“lŠZ¤$±öA){Y¢-Ēņ¾1H–‘5i„9sBæ) Ń!%bśK ;E±]qĆ“3X Ū(ÉU¼7Ļśį3Põs įļž‰źĶSåWDą'WeŪė…½ÖLśSŅ=n/ĪŅ4VŹ|0ĪĘųɜĆčēĘĄ1ēP¾'”>¼–$“ŗ£2Q¹¢øzøŌ ø(äøēF†ønšd¹Öœ®ŗ«gb¼r}¾į–üĄPÜĆc–ĒŪ:ŖŹū˜ŽĪžÉ¾Ņ p4חĆčŪŹ™ŌąKqšå8}4ė±˜š­Ģömi ūw3 ď K ¾cæ¶»óÓN ¢Y!$\1& …Ī*Š÷)/’ņ<3#7’¬p:š4†=Tė<@Bt{}D”£F”G²“ĄG|ĘśG¼kÅGĖå GS"F"ŗŽDčī¤Bū§S@ nž=įe‰:,J7WdS3‰„=/ĖųŻ*cƒ;&}P]!!ėJ›1 QI©*’* –™˜E ü£­]ū;@Ęõž>šœĻźō‰€åø$[ąSżfŪ6ܫփ21ŅNžĶeŹĘ\ˆĘϚQĆ4āyĄĶ·¾Eł»ĄWŗx"¹\G]øæ«øE%øĪ÷²ø/ö°¹iĮ»­+÷¼[[:æHĻćĮdļÄ-ZXȳ]ĢŽ,Šb‡‹ŌKl/ٰšŽe(ć„ĀmčĖ·ŲķCµ`ó•ūüų䨤žųĘNoYņ žk†Æ ś½\¶¼·ÕŒ$R)āČÕ-šÉ2ŸIü5Až‘9š#Ģ<œ‡„?7B³;yūõ4œégżYŸ÷mäń¶Æ@ģL‡½ę&dįĆz=Ü>"R×^XŖŅzźMĪ"*DŹĄą“ĘDCƞėWĄĒÖ½ēÄ»ā_#ŗ o÷ø³JBøŠ3ø™¢@øxEōøQŗ󾻐rѽŠSĄc»?Ć'‡’Ę+ōEŹ»ŲSĪ‚qµŅŗlc×DöUܭĄįų&ēę tģ25"ņļžē÷Ö·»żx“ ¤e '(²YŃΧWŸµ±öoÖ$™½)'d].ZjÆ2†Ń«69ĢK:ū'‰=X^@Ł~ĘBŪv½D~Ł?F\KGļ"ŻGś'õGŁ’GÅ̶FöebE“֗CHZAīš¬>ÆŁ”;÷ 8õi94ʀ0„sy+Jō„&B6!Źß@ÖūĄšźžQU T }G›’„¹łhāó`Ęī'‚{čM’≖“Ż{¤Ųµ×Ó-VĻ7Ģ(ˇ­UĒZŅćĆ36ŁĄY$;¾{.¼$Vŗ ¹J$Pø”ĪøOŸ7øĮRåø@Ļ ŗĢ&Æ»šĘ½PĄ†ÜHĆÅEŖĘŗoŹéæĪ^?Ó¼ÜĶ×h^ŁÜ•"ā4Ļžē«Fķ+7ó•ķųŅ|Ųžq4Ę„é« ‡Y;_6_Ē“'!ЦN&=3+ÆÄĢ/¹-4’öž7³;‰;•æ«>ś`A$ ¤C-qEqéÄFzńœG¹÷G)ŌGŌž3GØļF d}D9¶lBÄsē?”÷ń<Źb‘9~“Ė55§1R3+-£°_(ŻõL#åūźĻuhÄt­ń dŻ=`@·ūj(õōJļ"²ŠéŹĻńć­5ŠŽ“w]Ł ÄtŌĢŅŲĻ[֑ĖÄl§Ē’ Ä}“Į€V¾=“¼ļ¤[ŗ~¹’&Nø(€øÆ¤<øøDóø6.(ŗNNŁ»Ą“¾Ó˜£ĄĶ_“ĆÖ¤0ĒYBĖÆ\RĻ néÓTĻŲ\]ū݊Ydć+©éŌNĘī׫ō;¤śT§c‹©G!  ęg€æÖ?›Ō73#ĶzS(•®+-f³1‰į5AuÆ9üų=†é@‘ß”B7A£DJ6F³KGJ›ßGpĄņG O„G~ū”FŸb&E1;C£MÖ@8vü=§•²:9Œž6fūę2$:s.ŲG«)¾—$OĮAaš²dSõœIÉvóÆ ŁēżūöõM<š 'źsiuä^võŽÖL±Ł†ˆ²Ō3IŠė!©ĖA ÆĒ™JÄ¢xōĄa@¾¼Q€CŗÉ¹=BøIøŃÅKø8E¹Åi`ŗŽč*¼-q¾Q?0Įī bÄ $ČūĢ>lŠ”ķ(ÕÆd4Ś n…ßńQåm芟䫶š<Ģøö®BĢüšååø~śZÜžaéēĄŖ@¾< ™™“% r„*Ļäh/ Õ3åį7kµ‡;öĀæ>Į „AebĻCŲwEŗćźFę*µG_ÄśGs»G!–öF“Š®EGåCA žAČśÜ>3$§;†k8…õ3Zč‡/BĀĮ*Ję«%A¾O ų8·ņ·ģ4üś_ķ0>Ī“å©üo{‹öLj~š’ź„SÅäš:/ßh*ÖŁų)ÄŌ¼½Я՚Ėr¼”ĒųĆ‰ĖĄ@B¾¬XŚ»§ ŗM¬ęøń–3ø\.øäŲaøV’B¹¾ ©ŗ v‘¼–“ų¾TVŚĮü1ÅČ|öČŻæ#ĶJū°Ń~©•ÖžČŪ @į“Īńę3ÓģjĘŲņ˚÷ų²$’ PRĀŚv ’†ūLtX~6©Į"¾G (µK -05²1#ż5-äį9ŒY=Pź[@ČÄäB¬µīD«ĖuF7 wG‚~šG‘%įGr IGzA)F•ÕƒDµŲ[BATµ?ĆC•<­‹9jī5Ä’š0­Ų+”=Į&X!`!’¾dčµ÷ēpŖČ ~[–āä\ż1(÷6$ń@…üźiēåą“pß tŚxüÜŌ¤ ŠĮ“Ėš€ĒւŚĆwć§Ąó’“»Œcž¹ē}Īø²Ŗ'øn> ø%ƒyø·q¹ēņŗ ¹÷¼ļß~æ'³‚¤qżÅžrčɹ2<ĪQbšŅ=õū×"4UŻĻńāńĘčmUÉīļ\ķōƒ$'ū)œjHž«@Ž ūĢõXēBR¦>N(%WLb*#J/ŃÖ3żmż7Iķ·;pFž>ÓŹAP­DM«ÜEģwGD’ĻG—‡÷Gö’G ¢F²(E=[&C„7”@Ų‡=‹ !:!Ä26øŚ1|Š-ZY (&iŖ"q=ā$¦Õ*óč ĆZ¤ ZVžźS ųGØĻń­›Æė?·å@Xņß JlŚ—ž/ÕŖŠGŠšw½Ė4õ™Ēw€åĆzx§ĄčSę½K”§»Üŗļ¹G?Āøˆ!øŖēø•Šø£Æ“¹Ż=(»Ģ1E½ŠnęæŠĆ85 ĘN‹«ŹÜ Ļ]÷Óņ€%Ł ”Žø_äw^Tź“ųtšiĆ“ö~Tż'`o² æńl” µĮ<Ā!³;'§"g,{/:1š+«5¼*±9WD=“\@kČōBEeRFČlŠGĮTöG£ŅGU’GALŪEy DÖµAÖ¹Ł>€;IÖ®7Om3ĄÄ.ù½)ä‰b$·ė½(0Ū½'Ęō ‹ Éa6‰źŌ’5€sł ów2äģt«Ļęä¶ķą¾÷ÄbAŠCņb³EŠJGG{ÉGRųGżZ“GøQ›F. E;ŪśB£¼Y@¾4=Ó]9?óu5y>ķ0ˆ’+õź¶&œ?!$AŖN+œ é÷ąˆĢ7õžūmu0õŲīŻÉ¢č‹ā_żŌÜėTׄŌ(҆|[Ķ«ćöČØ3Åś«‹Į‚”¾%¼kiBŗĪ{šøÄ"2øÆżøvuøa¾v¹4Ó »..½AaŻærõĆųŸÅƳŗšŹĀ¤ŠĻ=Ō‰ŌĶéćŁʍ߭ {å… ”ėŽuńńYs_ų‚¬Żž¶Ž^ Ō }ö1;ži“knł»3$]n­) žĻ.fš3į=å7YĆÄ;†ł&?~“BŻWD ~F¼ĪKGŒ;ęG¤kéG/DUGņč*FMŗlD™PBštD?€å;VC8ą³3&ń.ųæĢ)oO$©*…ż$z;t>Õ &VwMĖžXĪBųūhŹńˆŌoėż‹@匱Iߟņ—ŁŅl7Ō”3Ļ—Ź[×kĘ%¶ŗĀŸ‹æhå¼fÅĶŗ~=I¹‘[øgwø“IøWt%¹GۘŗØC ¼wm7æåXĀ’žÅh3ʜ’³Ī#s±ÓZ8Łpx¾Ž¶ä‹RčźųGńifĒ÷3øXžmŽķŲ¾x #Rė’Į7ä†P-…($])³)Iƒä.ó_±3Ša8Rõ;„Z?zģ6B„s…Dīš@F7•dG§ŁīG*ŽG6–2Gz{ķEį‚D{›¢AKņ„>‰ē!;37(Ū¢2āŗ-ųčøĢÄÆøß2ä¹Ų„±»ŠB¾AēĮ–6ƒÄņ¤Č¶ˆłĢŠ,įŃ„å-×#(Ōܽ¢Ēā'Xūč—»aļGĪģõ>Žüm„7ÕŚ 26gÆŠwYt‡#Ƭ(£~ž-Š ģ28Ńi7éåm;€aļ>n{ęA.šLD&bFŽĮQGSūéGsŖćGČ>GެüEä Dóē¬A„œØ>xæ;œ7Ÿ|2aG- !(iÄg"ebłAM.§ŗ" 3»`żĆ­ūćõG„rīAžč+¬ŃįŠ€ŽŪ“];ÖĖŌōК­Ģyɫǿ ¾ĆPCVĄ­|½ņ5»2ūˆ¹ŠyøNuøi8øŗ…¹Wwŗ耼q–!æOSĀ!ĘŹeLŹbĻ%Ō3d«Ł)G‡ß1"¬å3; ģ_P™ņż·Dł0’’a•ŗŚf ĻRõĒBWN~ ż™\&rģä+ÉÉ 1&‘Ā5į–:Ō<¾=Uš@§µC³H—EģG/ęĢGĢõGų\|Gœ”aF&ݧD“SBŸDh?2ī;OLģ73ßk3ļv.¢„)ģ]#k>QⷠɁ-× cłTwQüÉ“õ7ōėīA`kč[ āaÜjbÖS ŃóŸĢ– „Ēʃ­Ćµ#?Ą0Ģa½N»Cs¹Ā.køCHøˆŠEø4z(¹1&­ŗµ+м‹½Œæ ®Ü½øĘ?pĖƑļĻ€Ž5Õ1RŽŚLÜąMJ!ēŠĢŸķ5²Hō‹» ūehÜWØĒ8`»TõRLX©mz"¶˜M(ļ_Ä-b'Ņ2ņAk7| …;”?éB¢ø}Dr×GF˜pG”§óGUŃGT G ]E{£CœĪē@LļØ=krŪ9ˆ5ß·ø0,zx+õnÓ%šÖgĶ‰ ķŁ^ *7“9^ŗžŠ.ä÷½„ ńĪź”JäąąŻ“ļ’×w|ŅįŽbĶ(!¾Č šÄpł’Ąņeų½ģnŠ»kŠ»¹oԐøzH øŸv/ø"śøū†jŗĀ^}¼œę-æźuĀkÓMĘ.ø¬ŹerˆĻ“µÕŌC)ˆŚ„…’ąW²ęę)ēuķĪ0ō\©ū–sźē ÉpO“™S9‡w«į’Ś"‰ø(ż36. ōG3~_į7•–÷;čė€?„ūtBæĢDĮž‚Fē~’GŹłG©w·G­ĢF„9E+ŪC²Ó/@ö'Ä<ĒŲČ8ó;G4›ęI/Š”Ü)Š $Ņę'ūxzŌŅ$ €!")h5üaQõ…c†ī†Žäē £{į0ŽZŪՐգQ+ŠD27Ė\JĄĘ5FŃĀ4‘sæ?Ƽ[ųŠŗėé ¹pø5ø'w ø}¢Šømµ¹³8‡»½®ü½h·ĮT¹ÄŠšČ!“ŖĶÅŻŅä|Ų'ÆzŽäŽČä³hXė~¢ņhüų]Aš’DŠäū™Č *ė‹CźŚo!q'–Ā-v L28Č 7K„E;ąņ>ćfB½*~D¾PPFcyGšöGšiĘGHzéFV±aEč©2C®’a@."õ<‡õ8Tl4hld/ äé)„č $žŅS†¼šģ ŗ T‡ĮßĀū“ĢōėńķĶBē,ĻąĶõ¦Ś™ ŁŌj‰sϾ–ƒŹ<Ę}L3¼Eē¾=9¼É/ŗ°ńĻøS#øV&øÄøtŗi¼ü÷ƾøķ Ā»ūėÅ(ĒWŹ™FϤz¬Ō(M|Ś†ī§ąY ēŠČÕķ<ą·ōÓµū(Œ¾ŁĄ Y“«»Źm§īöźö6$‹*k(Ÿ/oE«4s69~5=¦…ž@ iCqJŽE¼ĄG%ÅŌG×LšGkžZGC3F¶ō$Dõ‹A‡„Q>‚}:‡H6˜/1¼{Ģ+æ,ż%£ńĻ¢ūS[A™”W° ¾HŖrj˜ż<3Œö3—ļņ4Źčõz6āŌ-ģŪĘēśÕČiqŠŽv]ĖØ±ĖĘÉ|ĒĀLŽZægf޼Óiŗļ_šøäō'øŻßøŠm®øÜ.ü¹ü÷»6üœ¾j°äĮŪĒÅJ_:ʃĄ3Ļ]Õ¦Ō †ŚyśĀąCöMē&Ēī]‰ õåüż;9gŠL QöF*=õ›©ł›š$‚Ū*Jv[0*©b5§vä9†Õ=÷ę+A:*ßCŪwčEu BG¾*źG»\ŻG”@Gś¤ØE †CFä¹@śųJ=äA9ŗ·Ø4bņŠ/lbõ)6ö#B雜žöōų¼  Ķ(ńŻĶś[­µó½ģ®ÄōåĪļmß9ŁBčeÓĻ/Ī”ɅÄÄĮuŲŚ½FŽ\»²‡Œ¹ˆnøŽµø2DSø~V¹?č » @r½dˆ€ĄŃ0ÄB˜wČEMLĶ”ż”ҹ*kŲł-™ŽA]å¶2äė‚vßņnjüłšö(ŁR'ŃgŽŠUÄ) <ŗv#hˆ)9Į//L6_44- 9æ¬!=ķ,ž@C²uC0å EK%G1˜ŻGį3éGxÄöųAcųˆDĖIgFwŽGuAśG4 ŖGźŸFIĮÜDŖeBŲ’@?ļäv;Č-7ĮG2­¢,vģ³&+2` Īq·aˆ/­ ?jp9ø'ż-2ęõĶį¾īĪÄē‚’ į–ŸŚa“—ŌRXĻߨėÉwņcÅŌ/vĮÉ,¾Ųw»ģ/عf yø¹AøŗQøæÖX¹įę»`ø’½޹ĄłˆÄ?wóČJZšĶŠØqÓēhٲ^Ęß Hyę#öoķ8˜ō@‹ŽūĪI0ļąy vØ$„§47f±ĻŃ%(^Ł+*Ųl1!d}6ż:Ü*į>‚śBIB«DA%‚FŖGnČśGJr˜G›–wF³›DżėBĮÄ>£<Ś:$¹R6’7:1p=ž+±%ó“”wPG G3 b3¼sšaū`ōv äģPčåSu1ßipŅŲ©ÜŅCW^ĶQ hČč‡ÄéœEĄām/½kVĢŗ7Ó"¹+p7øž» øļ>£ø‡|ł¹Ló ¼'Õ¾š°MĀ]NlĘāż%ĖnŠ {6ÖśžoÜĪĶć°Kšé؅ńD_ųŽæ’ņn!K p ÷—ŗŚ…Ū÷&#»[i))¶):ėn>>!·§A“\D¹öSFāŽ‰G?]śGJ$¤G ˆF‡ ©DĀ: Bš»ø>q«·:‡ 6™Ś0R¾+RWį$1B“OgśzR»Ī+BŲ=ÅłˆNYņ¦ųė–räVGݜičÖlūŠéāĖUģ·Ęg~Ā./ļ¾H7¼˜1ų¹pžø[Ą øŌą?øöś<¹?d’ŗnK‚½\žĄ¹ß«Äz¹>É“ jĪ“5!Ō ’RŚīuķą­vßēž2ļē†zö„Ēśżžł€ķ ų łK’e3"ķ”(C ž.uĶ4O9zI= ę@„ĢCÜ©ōEƒVXGRŒóGŻÄG/žĖF1Œ EΉBņRK?w0[;7»Ć6“Ļ‘1±’Ó+Żjš%~öūćæ»ßL uĆĶÅ4ś§*¶ņāŅ\늈=äulŻKźüÖ2'ŃP(ŠĖ(u§ĘJōfĀzĆŌ¾īū»Ųā¹ĄĀøŠżø`[LøŌ0\¹ā‘4»KXнÜ1(Į¬“2ÅJyäÉ :0Ļ1ūÕH/X۟ėā!éb„qš¤Ęī÷Į+ƒ’S>_›n#ōƒ;bÖ#ń.8*~µ!0s‚5·I:¶ k>ž)ŚA?%D.3|Fś“”GŃKśGÉā„GвBFr>7D KhA…ĪŻ=§Ł”9R|Ą4 £G/ļF)£ŒĻ"¼üó®åĒMŲ_ ŸŃņQ1ž”v–öįbļO­Ęē@e¼ą:Ö ŚHMČÓįĪ”=Ļȍs9ĉĢOĄe¤½ŃG¬ŗżŲ¹o:&øPø_hŪø›Xkŗ¼dļ\Śßæ¹Ó“ĆŚP8ČŪV]ĶėÓ»OŁĒKłß’Šē5zPīĮšÓõ—,uż<Ógø ‚.’in¬U"×XŽ(¦Œš.^–z4šLl9$?·=ŽNA¢(D*G:ž&5ho«/}„)²%#ķü>z|7EŽ $ļč^>ž:s’ö­Ōļ.«¢ē’ŠąbXĪŁ5āӚW·Ķō€Č3lėĆŗŹĄ‹·Ż¼[Žyŗjįø‡ø‚ä%øyŲ¹Üu“ŗ&ß/½ŽoĄ•śjÄ\‘ÉHśaζ­@Ō9r ŚéŽnį+—čT¼š€Ż”÷įõW’ŹG» “£®,ŽdE$Cüŗ*Įč²0 6ƒpć:KĘż>ŌŻ]B¤łDQKÉF^ĒG}ŌšGEGæĘE±%xC{ža@żµŒ<—8UŌ2…Q -蕡&Cz ĄįČNwsdŁ JåŠ[śz;ŖņS ėXŹÓć+ŪÜ×KÖnķ6Š[±Ź= ŹÅ{Įھ<\V»ƒh¹rŠMø"ÆøE䚸ÌŗļŒ;¼(V?æŌłĆ|CĒÅŁ¦ĢÖefŅĖĄ®Ų &mßnęqDśķŠmõš`ż Ź*Tę 3m{źIÓXŌ×"pģs)/ؓ/Տ$5ČÕ:™‰X>tÅßAwÕ DˆX“F!Z±Gīd÷G׍dGpwśEøM½C'ŗ³@8Šę<¬ņa8»±23²¢h-e1'lK ļÉ1ī§^fś •f.rƒ[śĒj™ņļ›’ź™ „ćŚF Üf]ÖµrėĻābŹņ'{ÅE”EĮø6νŖ»c)B¹v;ø'Ęø€¹¼øWCŗJž¼ēŻÅæ/1±Ć6TČ ć Ķ^'‡ÓuõŁ÷6׹ė‹č&£ļ^®_÷óļ6’Čą$ŠÕą1mč¢ĄKt¹$åMB+ė)G1s’µ6]Ś|;ĮPŽ?snŻBęü_E 6GĄÜāGŠMŪGP‡÷F,:EtyØBs9J? «);|cS6+(Ö0éĮĀ*åÉ+$÷p%’AÅ’ß!ĢĄRåožœŽ‘öÄõĻīÓžBē_šąi+#Ł/ę»Ņ}źßĢMX”ĒpmĆśR;æń-¼fÉń¹Łø³„øō„]øč呹  »7¤¾‡ģ-Āɘ™ĘŻ·ĖȏvŃņ]Ę׏ż’ŽkĒåO_Mķk õ„łļü1-Üs–¹ 6Ėo†Öę4ƒ#¤»)JYī/DQŒ5h„:īšÅ>°ĮDB*‚õD3¼ĻFł“ĶGåŚėG9*G0•ŠE¦BCJ¾Č?“1ø;³4ķ6ģ§v1®…e+%®Ģ$¾¬ĄixWM/ØÓĪŹßčמWčöNķļ¢+vēēń#ą£45Łó“æŅ¼×ĢzŪĒ²ųĀĢ· 懼€`ܹ^·€øaoø $løf«³¹ęŲ»ÉҾäušĀĶR#Ǭ1_̐®=ŅĶb¬Ų`—ß'čęŒ|ˆīd `ö–aVž*RN:§Śõ£elčY†$nB-+dL1cĻ6…»„;G¾æ?‡_Cā E}Ō-GÓtķGxÉGM7ĀF²ŪŚD„TBóE†> ķ,:ž5Öx`/w)ó;"‰ūį2e@’ äŗšŲ’ūń²›óC©Ėė˜;䕯„”:ÖbböĻūŲJŹw$JÅöFĮņ†½ćZŻŗ+¹Č÷$ø& øõtžøŚŠĄŗTĘ_½£ßÓĄ‰åŕ_ ʐx³Ļ‚0õÕ¹•½Ü÷ćåiŠėU‘_ó²m]ūikjŲĮl ÜÅJ#<ė.Ŗ5"’¤)…l/·¢-5˜­D:5Ó >įž3BŸņDĖÓF‹`ŃG£čG~ŽGKbEį³ĶB%’a?:*;‚36R"Ž0»L*C€#Ä/Dżs«ÅÄĻ _vŹņgµü°ŖōŠHÄģB»åhĶÉŻ„1ęÖä9‡ŠĮŹšķ§ÅĒéJĮg¶ø½xłüŗ&¤ ¹zÕ)øĶÅø”»öø øŗlZ½GtŌĄėÅw°"Ź©…ŲĻOņ*֗}Ż“šQ䤞ųėΰąówšūF½  9S¶œÆ|ž"ÜŖŚ)…0/0ćįę5 ļ::-7??±BXŃQEk9Gŗ­ęG'YŅGeÓFłģD¬3%B¦…>ŖZ:Uoķ40%/>‹¢(­Ŗ!‹NDg”‡œö ~kq`”Lś€%:ņz›TźMäµā wŪĒąÆŌM·vĪ1ąČ£SžĆi¦įæO —¼Å(+ŗ]P¤ø‡5øóXø&˜•¹I+ŗ» ¶æ¾ˆ[œĀ-xCǩʄ̙„±ŅA)SŁ„tą£<žēļy×ļćYę÷/DxB:[YI į"t଄]Ī&×µo-eźz3JéŪ8ŗŠ€=Ä*ZA-![D•ØyF€¢®G¦õõGIœNG]ØŗEt=?Cb€ä?}µ;)Ą6‹t1ϘÅ*ĢUč#‹o“<ß—Rå 7ĄĄ‹üXaōłs]ģ›äƙ3Żė?Öó2×ĻąŹüMśÄ§ƒŖĄHś-½9lŗ2­ŚøŒøŽ¾:øĆ×R¹qHW»XjA¾„•Ā„@Ęe(óĖe„÷ŃC@–Ų?¹ßȤHēć%+ļĮ[F÷÷’8Ų¹¼šŚńĒ+øc<0—&«GI-rqc3=Ń8ó=L%`A֒dD›ż‚Få+“GaōGĄAG ŸEÉņC““¢?¢Ņ\;£žN6ń‰0_*q¬'#ßøģ3ģļųŪ e£<^ū„q(óęÉė |YćVÖõŪ ä Õ1³ĪSÉ+ūĀģŪæ=ˆ¼Źŗšn–øƒ5øā!jø6śĄ¹:L¼={2æ-Ł:Ć&ŹČõń¦Ķ kēӾڇ‘āö'Ļén„Öń~[śė·Z·YŸ LĄ|8”ß'"uX:){Ą/]÷£5M„Š:īČ4?ćOĮBjjEĄ¼%G=qīG„[ĮGsüžFģ‹D¹ŒA$ü­=F ü8˜ā†3{a-m·Ÿ&µÄYŌ#Ø“(„¾BlŸ’ŪĒÉö×B™ī/¤ękäßz•Ų×Fõ4Ńā1Ė#äÅZą]ĮE䮽ßććŗļ’¹ātøšÅ+ø…m1¹+»Į˾VęŪĮOX|ĘŌCć˽žŃńā·Ų9tłß”Ń©ēTz®ļĀÅė÷ķBEzžOrŁSŃŚ’† gņĮ'ut.”…4ڐį9>u> ¹0BźüEŗīFöfßGl}×GĆaÖF@vßDŁrłA“N.>R‹9Žę4Cg’-¤×>'8 õk=eß/#źd‹ˆ’øM(÷ęī'ąę6Ž0ß?µó×MćAŃłĶ2ĖU§ŪÅ|#OĮÆ6½žÜŅŗ:ģłøŪšøW3ø8H¹7QT»<©P¾HĖ2ĀĻ9ķĘ2€o̘k¦ŅM|Ł GŁą"œ£č ĄšŚ5ł#ń|‰¾ā Ü)&u2*)±Ņ!=»)A§/Q(¢5—į:ė[Q?~7ćB¦ ŠEmˆŠ9éŹY4n8(.N_Q'¶„ķn¹źŖĮ„•’Õ¦…ö1d)īŠĘ ęTéLŽøž×=QŠ.UGŹ×/žÄšŖˆĄ—Žö¼Ź³UŗEµ®øoģøĢŹcøa Į¹¼$kiæV8 Ć©s°ČČų‡Ī«ŅÕg†6Ü.gÜćNņēėõ1<ō>%»ü.,F v¾ {pž5żūłˆ%q,ć3ń2­8–|=Šš}A„˜’DZQÆF†]ĢG€›åG–•śFn„E;D(BĮv<š9?G4ˆYĖ-v ß&GØeżzœį8T6Ą¾.ž–£õīÉ=ķ…āå4w[ŻĶĮÖ¢7nĻŽ(tÉ}g@ÄR÷åæČt¼ŗzł¹q2}øĄrøn ”ø 'ŗTŌø¼a@Ą# °ÄņĮųɝĪŠĻ=ÄÖą‚ŽķåčåżäīĖ›Šö¾0’‡E·Ęi3 Žt©u\ ”%Ī'ŌN®.ō²ć4ū€W:¤©õ>Š)­BDHpE„Ė4GhōG†e«G>”[F)` D±5½@öƒ<‡zj7g’…1D=ė*Čk²# öģ‡ŅHÉe ŚĢĪ 0-ś²¼ ńōHégšDįĪE±ŁišŖŅ ‘KĢōŗŖĘ(FŻĮõõ½or»š ¹7Šø1„4ø(ŌW¹:C€»Į¦¾’“½ĀŲøĒļż‚ĶƒņŌńč1ŪĻlćāj 듼ló6Rükź°ŠfI żā°+Č}/q%Au,«3h3Ä80­=Ą"±AņĮD_ŃFœgŚG:+ŲG—ŹFH}µDŌ‚ AÓ—=‹Ø8µå2ļ‡e,¢?%\šŽ#o¶O’ ŚĆ^Ŗž­ū—R óE›źŠyāĘŚõcÓuĶ}£UĒF–dĀøßY¾(·D»;æ0¹yŁ%øģ(ø4]7¹XūO»Y!j¾^GzĀIqĒ™<ĶRœĘÓmĶöŚE²āÜźŽwUóĻÅžūći·^ ŒŌÓż;÷¤-Ŗ%Õ„Ļ,—°L3“Ļ9ėVī=~æźAxķīDjļFtäGҦŹGóö”FEÄnD„A9ATr =‚żś7ō2!‰q+Væ)$Š YĶčFs” ųčß5 ś,rvń±méź*ēąēi@Ł¢2,ŅfÅĖxZ$Ę!y^Įėń…½Ór©ŗšÓø^y øŹVø©ćƹ”Į¼Ėŗ{æļś×ĆjÉöü*ĻŚöÕ/ŲbŻOČR呂Øķ VDöż’†±ŹS{rąŪŹę ś…t(—7h/K§5Ł;¤«?!BIC‚®ęE{1yGą®śGéiGķŒĘEk$Czk?ķ-Ź:³8H5B%ś.żų'Ɩ\ õDēŠżO‘śPžЉõś{źģ8”ät¤¦Üµž@Õz~Īė:zȀKĆūæy~ø»–ar¹–|;øę•øźN ¹  »;h¾šƒ#Ā-żĒžĘļĢoˆÓiŌĢŚ®Ģ āąHęźŪl}ó=EüįynjŽ öl·t£öŗd&č‘-å04ĮmĆ9J|˜>ȕ{B˜]EjC3GbõGĆé G‚7F’½Cū˜<@lĆ;!a6Ą&-0öž=)%Ü­!ē&›éČ$ź“kšb‘’T•øö§Œī“#”åx,‹ŻćļÖŁ³'ĻĖHÉ× øĆāqVæ;äļ»öN’¹GøT&øž÷ø ńŗUÕ÷½śHĀōĀśĘķÓĢåuÓJGÄŚ-„ā)łź­DŸó 1vü <[Žž+ÆÜÄ£LµšĢ&Hü-Š"x4}“&:ā¦ń>ĘB ł”EW"SG§łG_ą…G•włE”eZCāŁ²?&;-‡5IŠ*/Ķē( ;a 0.Ło›ļ2ĖnņßżAÅüō7ØDģ;ōŁćéÖŻŪ”ĻoŌČ2­Ķ0¶°Ē²’Ā_je¾¹o;»ˆ« ¹J†ø6øW!j¹÷“»Ø æxgĆb'°ČāŌĪDœŗÕ ”HŻó#`å]Sįķj‚Ŗö¼ī˜’Ų<‰X[ā§a"IČ£)ČOœ0BŌ6¶ą2<£Ē¢@ņBDų•sF·2½GĶąéG$ÓųF&¬ķDIpŠA+g­=±ė”8ß+›2jŁ×+.Ģe$ ˜b°ī>ī) ©9ėļ>ł*_š¾ēĆ)}ßŅ©½×՞Š×Z<ʹ–°ÄÖ~ĄĶŸq¼yß¹Ń§eøvš ø¶ńĶøc·®ŗ›Ł¤½t™¤ĮūžĘśg}Ģs6+Ӫ͌ŚM¬„ā ņņź×޵óĪYŖü«}¬›(˜+I ĀtNs'ϰŖ.ÉŻ&5„µĶ:@mˆ?·ėCC¼ńEÜ…GfłG‰&LGŠļEņā›B÷ˆ«>d„¾9¦÷č3hģA-÷?ä%9“ķŌō}j`· ź5½«³ś¬9æńą éƒj„ą(.ÅŲ 6ƒŃÕęüŹ3³LÅ>°‰ĄX7Ǽ—ŗKŌ|øŖ|ø ‹³ø^ŗćĆh½^ĮįWQĘnœ.̊.ŽŅWEŚ$(Eā_1¾ź’Ēóe-üxŃ øāšķåY Jŗł™'¬āŲ.Y5ćI;˜)¹?ØÓmC0FF&•GÆöG4 3G#9MEeÜLBĒ>>ÓW19±#;3c¶s,«¦ö$-uā‡XWOz Sbm¹@VłZZšÅ’ēī„Dß²qשYCŠl¾ŲÉ{›KĹĄ²æ0!¼·\„¹“ŅIøū&øŒQ¹Š‘»˜{H¾W…Ā'¾Ē'HŽĶļlĢŌ¬3lÜ÷[žäGAķO1öŁSJ’ļZfÅ`‰²†BZ"̱*""16xe7.ÕÄ<ģ*AģʂD BĮF-ÜGž›ĪGģ˜Fé?DÕ'Ķ@„ÉN< C×6Ü}0g[Z)ż‹Œ!øÓ3§rÜ/m.øHž8+õõń9ģešć%pŪ¶ ŻÓ¹ĶB$÷Ę$źŁĮ)¾½pµŗ~'Ėø“£øĒ¹pøRÖŗ”µ¼ģՀĄōSÅüĖ~¾ŃĪ…!ŁĻß&įiĬé‘Ėņ!«ūDŲš3ņ āŅŠ+SQ R'µP­.ŃEF5 V;»†Ę? ہC-Ø#F»× GüóGZņG„ÜE!ņAĆŗ=pG8ģl[2 Ņb+Ί“#§pа¹ß“ r…,’T÷[›Gīj™„åĢJ0Ż“£mÕ$;]Ī»Įȇ„ĘĀėżp¾sv.»%· ¹§Īø'źJø»B®¹˜9¼ūģąæœg–ÄĖŪEŹ_w׊ż¬/Ų>§/ą½Éµčż=žń܉ƶ-’&C* V'tµZÓŹ&6=.…Ęģ4ƒ<½:1ł•?’obCC|F•ŖšGfōGžGŽ*E_ōANćµ=š™r8ßT@2ƒ79+õģz#Õ,&1^)!H Su ’SĢöź“ķ©ČźäÕ=“܇·ŃŌ»,ĒĶĒXTKĀ×ņ ¾œ“⺻߸} øü7høĀõ¹Å0­¼æƒĄS.gÅ=ĻDĖęŅ_[…Ł„½«į*’Sź4Xó®’ü=Ü ² žŒķˆ œ>‰(”ĢÜ/”@d6¦<§ć¢@P".Dx#–FƒŠGĆä×G‘ ¬F[ąQDSTÓ@oA?<ģ&©6Ō×(0źŚ(šÜ ļQ¹—]Uó'² ×üN”óś{†źPFŌį§I£Ła¼Ņ<OĖ>ŽiŗˆĄ“<¦¼ŽNī¹d‰cø±Ŗ ø·Dėø€¶ūŗV:5¾j ŠĀ›ēLjé6Ī7Ž\ÕpĄ:Żŗ®åÜh”īvzÅ÷™Q€°j |fŽ`ż]d³$,“j,)b3Ęś{9Ֆ>–ø°BE©£EšiGxžśG§KTGHyE1qBņóI>k‰9p¶ē2A%Ž+Ū@$ó±±·ĶŌŹų„ 6Mōqņö-ć¾ķśIŚäČJkÜ4‘–ŌT0~ĶAĒG\śĮˆ!Į½LŌ§ŗ ¼ø§8øh•‰øųDŗö.½’3;ĮDŪYĘ"ŌsĢØžnÓGć+Ūįõ‰ććgdģ ¦”õ £ņž”€UŃF”¢”†ĒP#ŹTė*Å2f8ļŅæ=Õ² BˆŚ6EżR3GsOųGU‚GaKÓEétņB¾Pģ>ĖdŅ9"ņŗ3r”Ą,RĪ%P„ śhĮ€\‹ Ā&YѼ÷×ÜvīN”}åDųÜē" Õö4ŽĶłj‹Ēl¦0ĀTŠå½^½ŗY>Åø‰Óøé4…øS>ŗR“*½”=ĮbeĘ2©ŠĢ4?“Óčķ_Ū4aĪć v¹ģŽłõŪĖf’~§Ö“ÅņĖ ›#‡ą+š±¤2a×é8t‚3>Š8jBö<{E2āXG7ŹśGO ^Gl>…EÕtxBE>&£ż8«j¹2v”+@W­#Č(X*Ö)ŪC¬d’»–šõåØģGŌ¶ćB+BŪ™‰pÓģædĢz4>ĘĘVĮ¬$ ½$Ć%ŗv,xøaõø(*ŚøLDčŗ9*¾— ‘Āģō Čžē}Ī÷ĪĶÕ*!ŚŻię1–ļöųµvx2ģ Ćø,æķbk&½Č.Į“ž4ę™ō:üć?²ń³CæķUFĖ+½GÖFćG’vĒF6–nDø ć@–ž4<%0x6x_Ē/s@(Œ  c8ń­ضū2`•ńȂcč;t›ß µd×Õ>äĻŗÜ;ɇ“‰Ćvē¾Ŗai»ā< ¹-øł©OøD!̹uℼŠĘmĄKuÅŻ„Ėß@Ņ KŚ5)æāžˆ·ė0ø õ'£‘žÖM’—†‚żŸŽZA#%£C+ “‚2nUŻ8Ą7>ŽwB§a‹Et‰dGōŠśG¢”JGĄĢWEöĀ*BĢŃ=n`8Hvļ1Mɛ*‚”†"¶˜Ō ­"œ9E „żÄäō'{ĘźR7Ņį¢ŅfŁvžŖŃsÕĄŹ®śČĊIŽæé8¼ó…¹EŖ3ø)øŅ­e¹.äć»f}˜æ—²rÄ€\ŹZ;Ń$ļŲlUįįHźĒžóžé,ż(äČb,Fķfy;„8"[*ą½1”‰;8>żø=DBē2QEń’HGśGŠbG½¢ƒE4:fB!>@®8Y¤?2š£ź*p™Š",åŖäźźdńĀż ō*ōžÉźŸCČįżRŁšfŃ žŹźŪ£Ä‡ŗægµų»‰Éo¹ŽŠ+ø:ź1øä肹0”¼9!ēæ«!ŻÄšŅćŹō…ßŃͰŁć¢1āč<ėŗ>Øō£6Hž!fšš6t“§6U`#Ću+ķ’Ā2œó$9 K>ŚæøBT­½Er’G'u÷GÓĒ!G·Esų£A" =ąõj7Żæ0*”2)k ę Æłµ«=cƒ=aūµ@Åń3 kčy~ß’ā'×õ6Ļms×Č3ēĆ_>ƒ¾S»iCėø8/ øŃżwøīĶ2ŗhÆ2½óĘiĮhÄƚ)*Ķć|Ōf«šÜƒ¼]å°Gī|3.ųWäćq ‘ ž8$§&“ō{.ųĢw5Jöy;ĘCf@¶—%D˜P¦F¾œÜGÕ²ĀG4īXF|Ī„Ctڵ?—f›:r@n49@K-§ĀS%ˆ ­Į” ~ö »U>oæ„ö5_÷ģXĆć”۟>ÓŹEąĖ<„ÅĶ{Ąq}¼Ó’»¹0Dø=Ōø6[K¹Ć­Ä»$Dæ9¬iÄnŚlŹ$•lњųGŁ÷Śį¦‡śźÕ`~ōžÅ8ž,×ūō†™pä|­°#ŖŌ+Ėä)3ģ§9Q­į>„® CׯśEćCžGļGl‚ėF¤l˜D=„AO5<ĘIL6Š1b/r—'ÉćłŪö©rt ““¶öĪėų‚3BļR½ēåŒÖŻa„ĻŌuCcĶ’ēĘÉyĮFt5½Kf.ŗ6søÕ÷ ø¾ųśøSĻ;»įþ‚|‚ĆŽ'aÉn DŠEp ŲųdąĖbŖé0óDóüłÄ­ŲvyŚyĆ"Ÿł+CĻ{2œŁ9wįu>@¾ĄBŌĢE w‹G>3ōGÉõG\ĀD²M6A¬or<õ/6”¬¢/tźÓ'D8F­|"s” ÄŚÉŲ›ńųÕę:ļURŌå{ūźÜ=­©Ō8Ķ\÷¹Ęļ›NĮę½¾łŗB§eøŹRø„“¹„n»æ}—ģƑ1éɧ7źŠ ĪŲkĘnįFī¢ź=>ō“užKAšŲØß &ųė#Iā,ū23āEę9b6?%UCnń.FŲ¶G¢ŹāG:@“F10D•b@ūŠ\;iS85˜=.Ó &ƒOŲ*W }Ņwž–öóØį왉ć 7»ŚC@”ŅÜ cĖ2Ń#ÅÄńĄŚn¼jt¹&Č(økń9øų°§¹‚4k¼!,wĄ© øÅx^ĢģUmÓ;JŸŪŽp‚äW›ėķ¦­÷€C— z  3%™„iŲ.'ƒi /:‰6’<$¤’@śF£D„$ųF޾ņG 0ŽGFĢEżuµB8¹X>JCĖ8Ū(2Š›*;Š&" ƀ‹ej“'ߥūÓįńW›GčäB!ߤ›Ö†ŒąĪCļČb*]ĀTbҽŽö‹ŗ1šøNbøXŌÓø¼˜žŗŠ*|¾Čƒ;ưo%É{ūŠhŲy٧ą°źé™óāP…żā~GR„ŃēĶ#j…,"‹3" :źfW?–ČvC+ĀIF‡JĀGŽŁGt\F¹œåCŗæī?i9¼:ā–g4y-ł„Ł$ģķi!v"¼£ńX¦žGYÆōšźœ˜įĖ\×Ų'©×Š^*ĮÉŖ ·Ć8P×¾ƒ3:»ŗńø½Q ø™…øĖFdŗ§3œ½²†ĀaŅǰqĪń2^ÖŖŻķŽ["č~ņĢńµ¶¾ūĪčÅö²°bÅM¤Km"ŲŚį*T2£¶%9 Ž­>(žB’FhG§G[«čGNĘĆF->DkSd@pOI;Ÿ{5“łŗ-y‹%”ŸŸ%ćJ `lA’?·;õ:ƒkėŽŽā ß-Ł™³ŃöČóÉ žŁĆjļģ¾5]E»®õø~‘ øˆÄ…øųgŗVŪ¦½I2ĀŅ–óĒčĪĪ¢QŸÖjZ@ß÷č…čR†Aņ`dBüfRVĀøJé–ķÆ~#ļ‡+ø73ŒV¬9X± ?pĮWC8JĘV8ˆ{z1+¢)WÆõ ø ”ķõÓ ŁĄĖŹ˜ł;Ū‘ļdŽåćÆÜŠ65Ԙ®™Ģ¾.ĘÜf–Ą!&l¼ē˚¹EŁ0ø„5øØ7©¹ćC„¼ePøĄnż/ĘZqĻĢĀåtŌ SłÜs71ę tķļ>üłÄ*'ńBqlżg!s *VÆä1ü½·8V!h>O’ŲB+/ņE;ņ¤GučG>ń¹Fj„ D8\)@ĖWč:{{x4ļĀś,Ź™•$'tš ÅY{ŗdɇż|ƒaó‰é{éßõ ąpV<םq@Ļ„{?Čs”]Ā3M¹½TˆjŗV~‚øą" øõü¹uq»2=æ.’WÄĪ6¦Ź “Ņö˜XŚ=ikćŹ/ķ÷'?RˆŻ‚ :xĪÉžŽ7å'Meż/uX73 =ggęAćqWEaDaGė/łG§GéĪD>A׎<`ōŁ5t²…. ½?&mō2vGŽ Ąƒ ‚G’×¹õ7ˆėīšzįĄÉ…Ų_·]Š!:-ÉŠƝ0C¾µ¦Āŗs‹Ŗø`åø…-Ųø×;»e[ɾׅÉĆ:ÅŹū¹WьBŸŁ+AÆāī{Xģp’hö8«wBź Ēš·.ŠīE„'Õ°/ŠŅā6”Ēöž¼øœĘņŗE|ö”ĆKķÉ;jZѱeĀŁHé÷ā°’Éģ²÷’dl”ŗĪ gäń-^ŸG£(׀Ģ0†§ļ7ł ę=‚B ÓŅEmQžGf3čGĖ®FįųCćŌ?ĆSW:EžŸ3ŁŅ+'²# ¼ŸÜCž@Fō|Ņś”czšIÓuę¹īśÜuų<Ō,=kĢO°Å:õ/Ą×ŗ¼źöP¹Œ{ø„cø"%2ŗÆ&{½"c,ĀB,Č.F[Ļ|·‘×Ox£ąs_ź]šō®“’ź*v P—øąøŹPF»“+æ®­xÄ ąĖ śŃŅxéŪdå‰2ļ ā­łŽ¾LŖėÓıä²"Ä:š+tH3ŌČd:ž}ō?ō?D¬ĶFŠØšGc¼Gć1ƒEyB^Õ =YĀ6żņE/õĮ&8cB—`8ńYOž5ó¶ó“ībétTßJKmÖP6ξŖĒ B4Į‘ā²¼ŠīŖ¹Y‡-øø(Cø?zė¹MN½*ŌĘĮuśĶĒ Ļ60g×1Ę”ąęņŒźI’šōś„“’A¶8 H®¤&œUĖč'SdT0^°7įGŅ=Šc˜B×`ēEĶ{¬GDšŻGކyFģ÷‡CĮh?B»F9›®02”'’)ēPą H—mˆ¬ ƙ øŽZ÷ˆµÜģrŹāü ]ŁęÉŠ­AÉb¶īĀBõ½HtqŗģPwøø)øK\D¹C¼fYKĄ€‘ųńŪī̚ŁÕÓ½޽Lßēžž4ņœ;Łüł£-j0Ŗ@$¾Å%2†t.¹œ6įo<_:«AĄÕQE anGņ»ōG¬ĒįF.€;DōŲ@&jy:éė”3CƒŠ+ä‡"QPĄGpkīÄ»łWfqīŸ?äĢŽ«ŚµŌģŃr{4ʇų®Ć²Ÿ¾}Źŗ^Ēø,* øß¶¹ ²«»VRĪæ`Å 7AĢɁJŌNŻżdē#…qń&@ü~įœ}žÕµųO%ė¾.aŠ5:X<.A†AtÄ3fG:öGćčF”±DD1{@¬|:­ 3ŪÄz+PŪk"ߖrF4’ŗBǶųórī ŽŽć¾ćGŚ‚Į‰Ń ŽÖɶ£[ĆW=¾*šŗnS†øcyøåM5¹aNō»¢Å;Ą­$óÅĶŽłĢ •&Õ!KŽĒ}2軌£ņķ bż ņ/ŌĪ PĪkŒ&™ī8/ŸŌ6Śf3=(S0Bk®E [™GÖēåG’5’F Ņ„C-‹1?oO9ŸZ 2ņĪ)…÷Š ōŠį, ĪD<›čjöĮŻŠė±«įéP6Ų ·§ĻØ1Č£‘’ĮęŒ5½Q‹ļ¹Ć²@ø‰ģ2øŖĘ¹Sąņ¼$;„Į¤…ĀĒ.G'Ļ7Ø×ėņįČ”5ėß­ĻõX]„„’w <Ć Éuk)]ŁĪ1-ķ9]G?‰C;ăFŅåāGĆOžG1q·EåD9Bę8=±ūŠ6O)/7¶m&*ŃšŃ‹ģ“ŁD`łüŒw*ņŌ@¬ē2¼Żõˆ”ŌõjĢe\oÅĀŹæźSž»b§¹'ø$·±ø~žŗ–Uą¾Ü^@Ä>’Ź÷tõŅ%\ōŪF3ĒåV4šŽžś³yęD¬ńŹ0¹Ō$ĀHĮ-¬č 5s/E–Ā2LÖs*_*!ÕJūp‡ B`§iC½öųˆ ģ×fĖįÄd?Ų>öĻ9,ČU†ąĮ”ź½ ŹÖ¹ v6ø•Æ>øÜe﹫ŗ>½8ĀBbČ>ĄōĻŃó£Ųhƒ<āī§…ģw|B÷ff3ł Œ^®Ÿ¹!Óēū*"@3.6T:ėd@źsLD\õFü[ųGW%PG6EŒ*AX&©;ßLŁ4±Ļ,Óŗ#9?Šč LFÆmŒtł2”īƒs5äpönŚ-ˆŃµ¹µÉ(Ź&Ć>g¾6VgŗĆ6køhøJ¹u¹Dhv¼«B ĮµĒ&āuĪ”»żÖŸĆzą]“ź›|mõ®fŽ“\ ¬l™> M0­)ē¦"2ćNl9œq^?N[ÕCV2¶F¢™ļGxzGūRXEXč–AĻ/6¾Ż|…ŗˆ‡vø¹ŃøĆe¹Ņ—^¼$ŽīĄæNśĘ]ĪÅīėÖQųqą_¶ź€R{õ™ó°Ś ń§>š“u õč)€·_2³¦9ć‘?pżCšŒĪFÄōGc÷fGj*E7ĪKA gā;³Ķ5Ó-ś,$NÕ#Įj×č<[ęE ¾4ł›nLīēĻćĻü٬Aј˜>ÉB—¹Ā ݧ½VC(ŗą PøĘ*øõ8¹¹H(ņ¼ū&ĀĮŻ Čųś©Ļ—mŲŠĢ!āÕ¹‹ģ $l÷čų€™Ž† ZĶ:-§["JÄ«+ėjņ3])ż:5 ”@9›»D¦Ą3GÓOśGem GȬiDš'@8 _:&23nŌĢ*pHb!łÖ+cĄg Œ­W­?öŠŌaėÓ(į‚_×AĶ“Ī7Ǽ-Į˜Ąq¼`=l¹g>ø xøŗ2äO¾¶e¢ĆgfʈsŅ9¾–ŪY«™åƖ>š¼SDū®[g“kcž&õ“Ū% KŚ.|«¹6ÓoI=_8aB>¤įE¶µGŃ.ŠGą,2F;ŪäBšbü=·Ī–7TŪ/Öcł&ö‡'@¢>¹©żģü@Voń!¶ę\˜Üē`TÓÜS#Ė©Ā7ÄĀk¼¾|5Óŗo[”øK× øĢC¹żž,¼oĆøĄc†ĖĘk‰?ĪdäęÖl?Œą÷ōźE>ŽõTCÕ6* B’TL!ĆČ*Ņ<3ē!t:ēóA@č@‚D±™GfĢśG­JGN‡DN¹H@aø{:œD3œĪ*bO!«f1w$ —ģū™żĢõ‹ŻźŒpąŸĀĘÖå2μC©ĘēY™Ąń;¼Ö%3¹Ē øhd¢ø]õŗPö¾+m‹ÄPŲ’ĖIŗąÓĢzA݉Ėzē Mņóņtżéō¬'1Æ 7)Č(IRÕ0„w8žÄ¹>ŲŃtC ‹FéGėM†GģędEĀ’A˜%<­3A5Ü-ł«Ä#ަ™NĪJ¦źÄfųé²VķØ»āQuÖ؁³ęĻZą#Ȓ­¾ĮEß¼ L¤¹· "øZYbøõ…cŗb7¾MKlĆp{;Źw,\ҽw›Ū@iæå3jˆš=ϲūø€ų޲ß »F°&C²/T%ˆ7ćO>X²ōB± CFåk×GjƧGŒµEč‘ BĀ<čÕł5ķiŻ- ӟ$õ5{ånÆ€€‘å4łWŁīł‘c捇gŁkÉ^ŠZo‚Č0Ā& ½nʼ¹@,(øŲiYøŹnOŗ½ųż½ļāMƘ¶ʹ|BŅ)̈Ū] ¶åāė‰šģæū&Ś5̊ēÄiā&u.ē/¹Ÿ¼7£’0>1HCń0\F)÷ŽGfć™G‰ŽE ¾ÉAĆMc<²^}5ņ C-¤7ź#Ło¬IĖHŁ‹s–5ųȐ패cā+ĖrŲ”B}ĻĄ!¼ĒeŲ`Įöö“¼Ļ*t¹!yø‹½€ø°o³ŗQ±Ÿ¾®¤,Ä 7Ė{’ÓÜØŻōøƒe«»BkĄyż!Ę{xžĶųŻ^ÖĒ+ąeÄź+įåõ0ńHÕ¤ Ž®ū "–¢¶+Z44ŽØa;AžmEH²lGĪļGQ£FbwCöĒ>Ś}k8^÷¢0ó| '’žĪPÜ>… Ŗ33üb"Žše„źåf ŸŪ‡>Ņ(dŹ1õ(ðսē!.ŗę Jø§Ń5ø)ņ¹ŗs½Š7¤ĀÖbÉ:ŃzĆĪŚķ åSõłļOūuļĀø8 BŹŽ3d÷&¢z0¼ß÷7źDq>8‰UCxĢ„F@źGāÆ|G~Ą>E°ß>A’č–;—k4"ė+‘żL"‰ĻÉļ¶ ąVKµ×õ©‘¤źįŚüß?O%Ö³^ĶfsąÅ|KŻæõč{»ķ÷ŲøŅÉøyā¹ŅŲ»"]fĄ*ń’ĘŚc6Ī;÷×ŗœįænŠėJW÷ŠŲŽøķś Sņ ¹Œy#!†’,™‰_5¬¼b ¹ŽÉ(Zé<żōb`gš’ ėĒ|g!=J++’īŅ3iL%;Įņ@ĖE™;lG)ŗīGøĘ–FŁmCEr†>8:° 0ęŚ&śK§'0¶ĶO-mæśÅyQļ'‚QäģGŚVݹŠMā£Č“ėūĮŅī¼Ó œ¹tŃøIwøŠŚ¬ŗg­¾ŒĆ^İX›ĖCO3ŌĖķŻĄdŠč½ĪĀóB«L’„vŪ y‚"¤óÖ B²±*åBq39zŪ:—æ@V›ōD)3`G»ńGŠŹ¤Fa‚C[Ÿ> 8‡ą!0D8č&\r«‚Æ¬Č=Š¢śŪå)ļ܈!ä%ŽŅŁ3³Š| mČņÉŹĮåǼŖcƒ¹ėÉøā‡øā×ÖŗŃeó¾*=ĀÄøĢŚŃŌR•§Ž:M\鋨ō‡Ś@ÖĮ× ČĘuĶ!1W™+(ÕA4TģŒ;ļ“IAųŖQEÕ±‰GÕĖāG²€ZFBšśBܐŚ=šš7æ%ė.łś%)š]ü†t2¢Ķų@0W탯]ā­Ó*Ųī#Ļį-$ĒńęĀĄG ¼g&¹/eø=dÖø!ф»ĀĒ’æƒH)Ęõ’×ĶķZŲÖĖßķąłĆŌė ³C÷z»ķFT„žm¹č~A$(„Õ-lŻ46‰'=¢}B\ĢF=ŠGøŅØGnžEZ}½Aņ!<€zī4:QV, }’"±ąä+• ėš>¢EõŸ–āéĶß-b%Õ(›WĢżēÄR\æt<Żŗs ˆø±øłWŒ¹Ž=ß¼±łĮä4·Č+CģŠ€„`ŚńXŌä=šč™ū)ÆP wÖø®Ü¤w(hHD1ęÅ!9l{?Šś%DžGpĒśGćµ Gb„7Dł¦”?A!A9ėüg1Ź‚>(óŲŽśnPq¹Ģ“ūY=š‹Šį䑯fŚÜėŠŽ{±ČkėļĮµVÕ¼óŖ„¹b¦ø;ø‰HńŗtÆ*æß¼ÅHģ¤Ģ3ś‰Õu@‘ßćRvź~Ńīõ±c¬$Ļ^ ć¶:·d#¤†!-¢Ü©5BƓ‹57‘éē.²3V%EhĀ[„u¶Œ½ˆsė÷}éPģ()>į Ģ’ÖIøÜĶ65Ę\4Üæ–Ś_» S¾øMų øOĶG¹1^o¼•õjĮX1Č”īHŠ”‡ÄŁ2ZIäĖŽļā Fūܗč ĘЈė`¬A(Ŗ€1o>h9}nĮ?5`DKŅ#G xłGćŪF $ŠC®Īķ>.ŚU860I„Ę&6SIµńĻĢM°tołg†¾ķŚlŒā‰)'؟4×ĪƒŻĘšĄqĄVĖĄ»Jv븘„øóæ¹€¼Ģ$ķĄ3~ĒÕ_™ĻłÉن„ćĖeÉīvƆśģ„jż!ĀåZłęĘ'Z1Q9_å‹?†]?Dģ{GšDśG;SēFŠäCČS?ß1m8æ°I0f·Ó&CwMėīQ<×Sł“E˜ķŽN^āóķó×(E¢ĪĢĶŖĘG‹EĄN€Ÿ»łpŁø™śø°.¹¤F¼…2;Į éĒ)@!Š?ŖŁr Aä÷;›ļėiū’cWé``iG~§(@Æé1†Ģ9žk@Hē DÕåEG=”ōGg%ØFĪuiCOPO>}7Ń-$/`ł}%~ņĪeob& ‰oc–÷ZŽŽėBµąÓwhÖaWAĶd§€ÅP]æhÕ»"øŖø[홹R\½• ^³FbÉ)ÅčŃٵŪl/„ę"Nņ7±ķżW ć õš’ƒ© Ł*¢ Ł30ni;O€TAæ"pEQ ŸGų™ŃG@Fī—IBW¶<¶ s5‘“,ÄI·"EuĆ“l& ­·2ėP=ōźH›čZiŸŻē—ÓÅ6ĢŹł {Ćc˜Ų½6 ŗēÅ3øtßYø9€~ŗ‡’¾ĮyÄü Ģ)Õ Õų;>ß)Œ\źŁ‚ö„™īV”¹±k$ø ?.÷QČ6åjŹ=·(Cę§|FbīGĆß]GDĻDŽłS@¬¦ :¹×%2wś×(henEFųC§Z:ū'¢RļŁāćķČ:Łg©Ļq¤qǵ€ĻĄ—Uņ»W&żøÅMøµā¹Ē‚¼õ„ Į«’ĮĒ?£ ŠČR¬ŁĪŠaä qŻļ[ŽĶūzÜx²Z{ū÷e)®š¦2ČĄ{:Zō«@…ä EžłxG¬’äGó‚JF÷.¶B;A=Õ6^-d2c#­rhu½ 3Q¶6Į©ōÕ°īčŹŁŻ»Ó'¦ŪŹ««{Ć ~нĻ.ŗU/ø«IbøĮšŗóŌȾxpĪÄ£+€Ģ܀¦Õė\’ß;ū?ė`÷ĆŹ.ŠÓ/;3Ćp•%XžV/H>Ā7č·™>…ŗ«CfÓFĖøłG÷7G.0/Dó‰Y?4ø8¢*{0«Ž&I­&M”¢ž„„W`†ų ?ģ®­@įšEĆÖZTqĶ‘ÆŽÅiĘTæ-žšŗfƒøóĖø8ù±Ōg½BńĀ‚S7Ź2ÓĄŚݧļ.čEĢšó>Š ‘Ī$ ęęŹUś"XL-—ŲŪ5¤²=E¼„Bg†EFazäG[žvG/ļžDM@ƒūG:ä·V2Žmõ(‚hŗ*żbŖĄ€ÜśT£×īQPć šŲĄĻsqŌĘP)GĄrOŒ»øØĘøŪ¦ øIŠ]¹0•¶¼ “üĮüD ÉÄ©ŃČõœŪ$ģ›ęŚgUņŁosž -0yi°!ŅĻš+ī4+Ōg<Œp%Bw$żEįŅGĘG®8OE ¦AŖć:V 3ļ4æ)Ż„=īęÕąŻŪ{Ƨū(7“ļYq÷ćÕė)ٽNzĻ…0ĒÖeˆĄ›|“»`Ųø˜[ø‡‚K¹ˆY˜¼,«ÖĮiēßČź=€ŃkxŪPų}ę€@ņ’ŽhžWF †ƒĒ£Ć!g ,‰Į 5Æ…BF ŲGŌG©ļ1E,­Õ@3™:āŖ2ŚgD)rD¬į’0C`&(äęśĮėĢīø82ć>ēlؚīĢĪČĪ™Ęh|ĄŽša»™°øŃ’øT5†¹ś½‰d{Ā`øÉ…eˆŅ3éŖÜK^ŌēgÕ±ó|ė’%D% ŖWī2#’ĘZ->316ŹMt=ńćķB uF^]ļG«¬QGl DŸ‰ļ?lŁa9?(1Ņ„'›°ŖM Čå"›ųfž‡ģżśį^ kÖqĶutÅōAī¾48¤ŗ7‰`øXG4ø*ć ŗ¾„rüĆćķ”Ė}wĻԃy@ßšą¦źęb­öżł'–0^¬õ©ń%ųLŠ/żhI8ܼ?ņüD³G/\łGšÄFā¶{C¹Ń8>~ŗ"7‡„n.#o]$Žż:WĮZ ×ēźœČō«VĻči„ŻAė;ÓW"DŹoOąĀ*'H½ėᄹčūøŲc”ø–G»~bņæŪ)€ĘB8æĪ(‹qŲ+NćŚOļxĒ8ū2Ž’ŗƒ³l)@ÉTį)ŪĮF3 r);“ÅMAW?…E2ęÆG¶8½Gl¬¬E|“A’O;) Æ3ūX*™²Ą)ö8é0¹ū^+{ļ"~¹ć ŒĶŲ ĻI¹ĘĻ—Ątõ]»©#Ŗø€Ąøšlœ¹$§;½ÕĀ’‚>ʾ?Ó2Ÿ”ŻŽÜīčeųō§éU”© ×Ķ•Ą$zfÓ.Oƒ7 ©>ÕÕ¼CĢMéFšĢśGIéFe ¼Cfenrir/config/sound/default/Announce.wav000066400000000000000000003077101513650123000206550ustar00rootroot00000000000000RIFFĄWAVEfmt (ž’D¬˜ €Ŗ8›qfact”BdataxsźP4:ēÓńp‚öR¦õ™Ēų+łęŪĒ, S£@ż„ yWŸļī*ļ|ķ(;툁’ŗū’Ė’CüÄ ē} ~¦ō}ļó\ź/†źŠœłšśI¶MÕėü jōśˆ|ś@ ėæ;ėÓņLDņŖ Ż5īCa- é0‘3Tķć)ķ•ī Pī4ģ›{ēkˆ“„-®ĀšŃnš KėĪŽėĆücrüt‹±hG źł«ó÷«“éļ<éOō'3õ½J ‰ yzœ9$.^’±ģāõėCrķˆgķØž‡Ł6a„ ā‹ žJ ‚£õ6ÜōŒXźW$źøDųó^ł,Ę OßSéõ¦ÅüęėūaėŒėvxļՇļā‹Čś†ŸģözÓ¤ņĒžš‘ė4ė@–ż,xž\;¼O — ŲŽ÷‡ĢöĶé;Ÿé¬nóéóĶz ĆŚ ‚sd„õ‹§p]Ńģo”ģ1pķ•‹ķb°0\’A”9 ¹įó“ųń7!źóąéjųłųOę ­5,#*źbż­”üH䟦Aź“Ań·ėń3EÖj •ŲØŁŖŽ’ ļ«Ųī2%ėœ0ėń?ż2»żčĆŹF€\3š %Qųą†÷,źį#ź³7ö\ķö}ų Ø ‹”įyö’³Gž&ģ©ėęīo‘ī‚RMŸ›w†fÜ *Č 8`ó—eņĮėŅź†§ūT†üŒ’–ȬÖÖnśW?łŪ7źZŠékĖńą(ņzRų6 ab¦Ŗ«ŃzŪĒīDÓķ½ģ͜ģBZŒ‘e£P L _„ ×>õŠō9źÅé\ƒö˜žö©” ÄC }Aó‚fģ’ķ@’×1ģĒ9ė)1šŌ”š£iE Qdß`•&ń šp'ė×)ėÄ“ūĒuüR ą‚Ž#ÄĆ­ś”słŖź3 ź)cōwõĆZ Š ‘‰÷“Ÿ¤\œo[ķcģ%ķ ķE5ŃÓ‡U)!4 Ó ’Qõęō…źĪCźG¾ł5<ū…zšĮt‚e,üŸ ūŃśźć‚źÓ«šåļšp­čAƒ|Ó‘uÜĻ>Śšr²ļ•2ģŃ6ģP†’Ų†#c]ˆ [ ³÷ĮõL9ꉒéŪ6õ”“õ € ēl  Qi"'&ĶQķ:ģįļøkļłIÄRAå$¼oÖʁuņ"SńMė¶yźóaśŃśÉ/5āõ{:ĘÖüg–ūų„ė¢YźŅ,óQ ō ÷š "÷›Ō€vņīE‹ķ›¹ģj£ģMŖ’XĄżĮ ;u ”r÷ŅÜõłź…1źŽDų¦ł~)łI>p<žTąüՑģ.ūźoīļSōļIēźYéX‡{\z †¾z¹ņńØŹėwžėŹ·ż1œ’é‰ä Ŗ\#XłĒ‹÷ī ė–ėé*ōķyō¹ ö~ ¢’Ÿ?mmŲR-ŽīųQķ Rī·īŅ•nĻ7¤Üh¬ Č¢ óō#€ņOė›9źąųÖĶł¢>GŗSJD3ūž‹|żfTģ ėž"ņaūņ‚Ū<ź „5s„¦ø¤š“źī³«ģKģ"ž ’pj·ft @£ ł ų ,ėśjź­åö¤:ų3‚ oO fā{H’ƝķJRģ£5ļQXļĀ…2׃Žmš ŲŅ Ÿøō]ó}ģė[—ė¶ üY9žXżģ¤Ō™ói3ūūł'ģrŁźxó?©óvZ` „ņ@}»œhqŲš›>ļńńķŻ ī”ß›£ćUC" $i ²ölīōšėŹź÷Y3ų‡” óP4f{ķeģąUš4 ń£ü„ -Š5äūbŁłņ§3šõżėĻ„ė§@ü‘®ż!­€+ė-žĖNü•=śóŠėi…ź¢õ<öķ }#łė¦Fqž÷ ļ¶<ķhŖī„īŠH=·€žcw ±¶ ōö§õĀ“ė˜Ūźśoś"Éū‹óŻŃÅŗ#żnūčģ3Vėä+ņägņ–ė‰žø_Ŗ šż“oCņåŖše,ķķģ¬ ::B¹ņf^ 'J ’…ų“ŲöeQģė‰)öžŠöŅ, Šå ™!Ėš}•;lļ«`ķ„7šę'š\æ“0¬ŅĒ/ åŠUō¶œņI¶ģž·ėFŚś‹Éū@‡ēĻą„0žó§üŠ‘ģˆ"ėĻÕóKaō“a fm •T¬ˆ1Šv”tšžnī !īaķ+uiÉZcØ2}µųŲ×öA@ģÆėņ&łņKś ƒ“½łzĘ5„[’:Ąż1śķŽóė% ńeķš^RQŹ›śüQ ŲM 2Śó/æńæķĻbģąŽž°C“'”-œoŒÓNś*ųFģ Ųź–Øō%_õĶ s ś•%šXT ńā1š!īVyļIļD9ÖnĻ;žā ÷_ ¤õšpóāiģ¹#ėNŽł§śÉms X,¹p•’¤Éż©[ķ.’ėk'ó:©ó  –(LĄ£ē™āģńņ‚ļžįķEäģĖZžƒŚ’«“(R”ƒŸ{‘śģyųŻrģß¹źĢ÷~_ųĘP S²C=s‹•’ ķī–”ģž:šüĆļCŖ³”¤E~,”Ö „\ ņ³õĢmóŽųģ©ĆėĀüGžęCėܶ`}žģXü˜,śĮ¤ķ`"ė@¤ó–šó)P ŪŽ™.BNŁ6¹Āń;ļ§±īĢķC­ŚƊى Y Ąt÷sõŚ»ģļŲźķ÷ČŪųĖ īcćļmÓčŽ+ɕī3ģæīńõķń³Z=ē ^H;nŖ¶Åė€NóH‚šØzķŲõėŲüqIž&T+Óųü¢3üaśė¼ģN©źŚBöŅéö _Č ƒ> »¶ACŠ#š xķP“ļ ļ÷ÜĄųy6P~¤ą ń \€÷žėō–ķ$yė2<ūęžüģvN?‰wÜžėžū›>īJŒėŻņ°°ņ9ūna ‹lųcb^Z…M¾ņ®5šō8īŒ<ķ֟‰‹„ $„ƒ& K Sėų^Zö~$ķ÷Śź“õö[˜÷}ƒ ų0˜į”C¾FźœdØļ–čģ^QńŹšüyY’i}Fõ‚–ō×ń~‘ķtÄ끢ū¤ėüf#’é’ןśżóü|–ķ8EėŻõEUõ” ÆF ±ŁĒþuÆHš-ń«Iī’ī+Ńķ ^å@٬ÕLF’ 1-„ ł˜ö“Fķ•>ė üłKņśg~{kūżkxW’{ŖżĒī­žė^ōńańŪtó±VX§Ł ł^ OōŌŗńģéķŻ{ģ/ ’i£]y H4rś‘–śJųąUķ–ĖźÜzõhµõ½ –ø Æ?æ"ķ2üŅšsī{Tšśmļ²F…TÄąi„ “l Ų(öšzóĮqķōQė ś²ūś$ZĶųŚ® ƒÜ’ž3YīµŌėńō°ķóeN ‚× kéq ĪņšØlņ›ļ Żīxcķx’«±%÷©SԐ„ÄśxrųØuķö5ėžųDłLa ['ō®K=®•’Ęŗļuźģ -ńāhš–ė_¶ĆĪ*Ģa  öiópŻķG+ģaŽżŃéžq„z\S(¼7ü¤śy<īī{ė|Źō:¬ō³8> t†&+ “²WņWļŽļ›¹īäĻ’ÅQQsŠ ‡Ö ņ©÷½õbŪķ&~ė‘łž¦łŲ W°ų.Ő‰ ö’Eļ±{ģ„ó_†ņ4åQ ćę‘gŒ,ͳ`žó Ŗš|©ī«“ģŃøżś’ŸūöÆX“ę<übśKóķĆNėžo÷X÷¤1 @PŌū÷žSĘ3/³š/”ķ°Óš7u﬊4sqä²L% |g šw÷}ŪōSīµÄėCü?ż1‡ŗ†Ū¾rHd•żœĆū’»ī‰¬ėRÓólóRޱ qģ…k8ńa±;ó]cš~^ļ͘ķķŚTņ'@ńM¬®3éC"hŌ½ōņž¦ī»O쓟üŻużžÓłńˆ‹æ›ż€äū“¶ī(ėė—­ö×Möó’ b› ¾ŹłJ|‚#ę¾ńŚĄīŸš^Üī…h\’AOBSļ ø žŻųɅö6iīŅąėb7ūµūk#‘vTķž†ż”ŖļZŠģ¼SóæIņ?ėf9:UČ/˜ I bŚō{ņŚtļ»^ķŚõ’rBæķN  m k®¼—śd^ųݜīĒėčö“¤ö¢a Ō# }nČĒ@xȁŖ\ńr@ī§¼ń“JšŃå *Hģ^¤ B XVö­ƒóµ±īÖųėŸ5ūżĘūųõöóĒöq’•ŅżC%ļ5ģ¶3õ ƒō “ ( |.ō÷¶50Ų±åņPÉļ]šŠļķ¹Ü’J- ‰ō¬Ę!5C øś®yų$®īūĻėĒ«ł¤·ł)7 š5v–Äü‹«{’‹ščIķWšņ ń~Œu5ļ8ĆH čĆ ¬.öƒóVKļ1Č욨žŲq’}+ŪfM)ÖäÄū½ųłõļ–ĮėÕżõõÜüd€ ˜C­ęÓg|Ésņ^ļī$ńĆ1OćÅ9c€ įž Æh÷†ėō‹ßīr“ė75śśCÜ (ĻT"ń{Łū|Ō’ƒ2š ļģ&•ōr3ó`WC jüĪ «<'tqųóčšč šƒLķUŗž®}’°³óXæĆ{±ü=#ś+óī³Ē눪ųF#ųāY —1­ē½‰¤p @BńĀģķĮņ©žļĻD?ŅTŠóČõo ķa é|÷KüōŖļB;ģjż«»ż¢”EÓĀŲ‘;ż¹žū²—ļĻ#ģŲMõįźó|×D ³b&Z Q,Ē“óĪĀšäśš˜ī'mA•E:’œĀA ŌŅ ’Åųz öć^ļ³ģ `ł ÕųiÜ „£mZ“P.ĒsAÖšs¢ķóóž9ņ€_ĻM ‡ęP6żĪ=Īō”ņ½ŽļŠęģT©ż—žyČ?n…ó¢ubżtéūT1ļ²ģ„€÷ā™ö1S ē 'W‚XĶ õŁ*ņ‡Ņī’YńHģĢę5ó¢+Ą‚ × ßōųĪĶö’ļā"ģ\×ūgČū¤kp³hzņ>†ž€żš„­ģōWņmj6= )W8 ×fōVŃń%3š(œķå)ŠĒ˜’·%³0 ž^¤łĆųŠ ļ’æėėé÷ŃöB” —į ó’wkIq\bpńt:ī‰Rņ/4šē½šbA0{/Ƕ! ķÆõ¾…ó÷Pļć)ģ¹ü4Iü†Ą³{āß•s7Ģżž$żlļ ģ—÷¬}õŽ8 2 Ēæ©÷*ŽāG;Gņ1œļL/ńņEīō=jnn-„BŪ 6ś†æł ]ųéļ=ļėōś¾ūł{ä faĄĢBŅw3’c’|Mš&ķg¾ó»Ań’ž%o'ŗŲ¶P- ”Gõ­3óļš ķk4F•Ž—e¦ „3g)śØ)łƒļī®ėūu÷õ“õbģ Ū iœ‚­Ö¼ńźļ†ņ˜”ļ¬ęÕęń~6†" ō Fö lōŽ7ļŠŽė§Nūśnś«! Y±‹wļꬒ[T’įĢļ¶ĪģrRõ nóŸ- sĒ l°†źśŁń‚;óĄøšWŸšI–ķ4£’«’³„z "« ĶļŚģś„ĀłuŠīո벓łhų¦> E‚\‘~˜ŁV©wQ˜šo”ķäņšBšdĢ8y†g·T4 CÕ rPöģmōß*ļ"ģ®|ž_ž·=E£ņÅVįūe(ū;bļšģ„ö;ō!|@ įÕ)pżLÕņKRš>ń@īš]šŹŌę?Ÿ OÄ ¹½÷Ó*ö*Iļ^Ęė“ś’Ļų? "”yÕ‰ļ‹AÜM*Oš¤Uķź<ō„ųńGo\ ŌĮnå…¬ć­Oō4õń¦'šūŅģQLžNļżÆ9C-NģɇĻuü ’ūÕĖīa–ėŲ!ų—˜öŒ= ÷MžE“z8݃9ˆńœīć ņ‰3ļ,ÅŌ[Ć(Ę` µ ;— ˆå÷T6ö“āī Īė”Ńüō/üŖ[·é ŹĶhżNģüĀŌļ"–ģ€õTšņC°·ĘŠ€ ŖR’]2Ļór{ńŌ‚šÆĄķucFöcŽgŲ› Č nļųĶ•÷ƒAļ;ēė~×ų’q÷.- bV °M0QŻ»ī©Žš‘īÄó'Õš’Ŗ1æŸdD£ĄÄ2 vHõh%óVŁļk“ģ^ūü¬oüT:œžžkŽŪężH?żöDļ1ģķöaBõćą ™ø •V/†@9]ä‹Rņ–ļŖ”ńīy{%Õ‘y¶„B€ T—éłÜž÷"¾īl‘ėä^ūOuś`y­ʲ(Ŗ8§žaqžīš|įģ¼ōi”ń£ā Ę!!÷Ś”6 ÷óō¹ņRļFģōbōÖŻżē deĻdś.Kł­MļÉÖėŖs÷W¼õ„Č ėŌ ī…˜Ęœ\ŪĢæńĢłī<öńÕfļž–Ó~ģż3± gŪ ZqöŠ}ōŸ˜ļM(ģ‘ū¶śÄ0 Ėߦ¼ó5s’š ’£‘ļ ~ģsõŃ‹ó€‡ ņ- GææØĄ­W1óŖ’š²ßšbĒķeģ’[ ÅɈ铉 )Ōļ‹ś˜FłīČsė‘Õłøų3ƒ ÜÜb£h6 Ō«š!•ķ;3óZ„š“Œ*’[p\ŗĖģ ”r žõäöóvļīģ$Įžn‚ž]`¾@0Ó ™fQ€ū£ś OļgōėUöāyō»Ā&› \ĪŃ ž¤¼U\ņŖ¼ļXńž\īOØ?Csßį*T üK U}÷ČĢõÄAļõŁė 1ś0!ł J ŸŠ%·ę¶śčØĀčśļžłģK7ōOņS1¢ łŒK<.t½/ōFæń Iš+ķŚož/=ž,ŗ‡T§ ü5ūµī ~ėśUųęöpN Óv=÷)-Ä­B"{ńLzī Sņ{ļRž5¶—’k[/2 œ y÷‘¦õ™ķīA¹ė.!ż{ƒü{fI0Y«oQżĄ‘üżŁļNwģPõĘóģYXšJ؏s€—ó·ńī†š6 ķ) ŒgLīz` ś§ !Üų"r÷?oļµóė„ł’„÷ē v śV$Ćb’„„Īš˜×ķ"XóEūš4įM qń÷HYfĄč~õŠåņÄžļi¤ģ FżŽĆü€Y;I+Žįånż\øü/ ļčåė÷Ł{õZ) + ”UJޤž¤ų.ņKaļ³”ńŒ­īŸ4”嵕F  W+Ōų+I÷’øīK‹ėš“ūµÆś ƒįTwŹgh{žšFž­:š3 ķ*Bō Śń_ōī0„Ó4_0² L­ōaxņ/ÉļoŌģz”lLŲCŃ9ƒ “õo śLöųLļićėčæ÷Ķö! x ‡M™…¶|2MXń”ī6ņ „ļGpg=­ńW4¹°¶€ C ö=+ō/€ļEģÓū‹õśšu ÄüÓü±°Źž'dž>ļä(ģEĒõ¶ŻóČī {– ¦ˆļįG£<FÕņ8šÜššŒŠķ7LPaˆė’ ų c‚÷ł ±ų6”īaė’0śo ł…¢ „ü„(Š6>Ä’-Ņ’I‚šqiķÜ0ógššĆ©•ØDd뮇  ū°õ„¦ó›5ļ.ģ]šž­¬ž5LŃ,Š X2xbūųƒśųEļ‡ęėĆYövōģĄ ę‘§ĶF»÷ĢHņHØļ~Fń³šī»Ī~a}µĒß  G bN÷«¤õC8ļ\Ųė [ś!Fłg 5ŚeT5b;97äļÄčģ÷Ÿōˆņø‚}č ŽŅ•„Å™ūĘŹóžkń\JšÓķÉž&Œž™?…0"š ‡ū”ś’Æī4ė=°ų1F÷⃠–›RЉņ{C’©Ÿńy*īI@ņńvļjGńēfŻT Ń ±Ŗ EüöDõ™ÓīQ»ėœVż[·üŗ‹Ń8›‹ Vøü=üQzļü5ģ?õj ó‹„±üxœŽå÷ µ ;󵌚÷ušUŸķ9§rœSÉf21 ]n !uųĻ÷ﯯėœłT™÷Č= u ńŹ*įaźÜS|šæ›ķOóųšµāśžŃÓ3w+q§bĖōĮ¢ņR»ļąnģ<,ż›¤üņB|±ąR3żzYüšŌīI³ėO÷ßnõØ 8 ×']Œ¶ūU¶ŅńU ļTfńb{īw–ĒžŠ_z‹HŲ —ą „\ų?Šö¬īŌkėg¤ūŲŌś SŽ60Øžu»żrĶļa—ģŁ&ōĪń|Y›[§XÓM =9ōŅüńq¾ļÖŅģȒ>›”½ĮæU5 r—)®łŠų‡ļ „ė½”÷¶ö•ö  V L9 cžÕŻ7ńeyī¹5ņL¹ļA‚#b™‘Ł7q•* žöõ^ ō"vļHģ>·ūŌåśŽ0 JŌ¶wbRš¢žÜ?ž\ļ\JģéĖõāóšž tD K¬ŗ(Y—Ņņ}@šąš¬Źķ3/+="ŗ7ĪsŠ P%eÕł„šų­„īŒqėe1śŠł)c %æĢÕbė“˜’¬’…ˆšžnķRó°šDÆa”Ūqö) 7Š 2•õė–óKeļÄKģ"’žŠŖžNĶėA: ļŽÖ.ū’Vśž]ļų뻟öü­ōBÜ©§ aAžŹ”’—ņĄxļoń²īųą›yż{væ`½ Œ½ M÷’iõĀDļŌėK†ś8kłém ØīÖ&š/<qō’ńĀļ±·ģ; ōÉzņ&pēį ī”DóęŽņ¼å§óļ:ńQQšq ķņéžoŗžŃ3š1Į āDK,ū-śžØīuė×ÕųÕo÷¹n \›ūrŽ–Nņ»AŸ ńīÜwņŪøļlbF«Ū…X µ1 !½ö½žō©óīŲė¤yżęüįZ©)Jęü|üßļū^†ļ#JģŖjõĖNó®‰v “S\—™:ĮJź󳓚2›š|Čķ”E“Š[ä':ß ( ½PųŃīö‹ļ2Åė{&łÜÅ÷zQ zƒ d››°š‰ēĆ:Lšktķ&róFń ¦"®°ķ,ŻN}“ō§pņÄļ'Šģynż źü&mƒ3{Ø}Xō­üńü‰ÅėGN÷ä¢õĄ+ Z œņ-"bv8uĀń»’ī}•ń˜°īŻć¢Ct$šĪ 4„ łųć™ö0²ī5ƒėYāūGū"quž1žķŻ×ųżG«ż šļyĆģ”Yō¼ņV:ņ~0VŸ¢ż ’ņw'ō„éń„ķļõóģ{ø™½^Ø›Æø śm¾¦łyųŖļæĮė’ä÷1Lö…= AE MC2+f‡„ńENī)rņŗģĖl  <Ž“Fķ ĪÅõ½ŠóĖxļN0ģhüQPū e3l\t1É/žĒż6ļSģ7ö“;ō ī ö  5;²uAŚײ:ņˆš\ńī•sÆUē:šlƒ ¾Ģ·włš;ų‰³īA†ė%‚śŒ`ł†€ sŲ„ļ™&O’ĒH’Ē_š–ZķĖró÷š­“÷35·pv×µk ;õ+=óHjļ½Zģ<’™ļž­Šš ‹ßśŌžł•.ļCéė?ŗöoćōR „Õ Ķ;…quÓ;eÜńėEļ*}ńĒŹī‡’ˆ•¾c/2u X źŲö'õĒ2ļŠäė¶śŲ«ł†š Œ ƒõłļ£’÷‡’X’ģ ČōÆ¢ņ‹ńż "m µ%4rSxnóeń‹[šŲ<ķF#’|õž‘P@Dڇ … “ĢśĻł¾~īDė{ēų‚÷z €°°Röoė²rķŌš#Žķ‘wņ’Čt^<GF Āō ŲYö'‡ō“Õīk¢ėŅżżõl(9%’ ²¶Œ1ü£‰ū0Wļvģ"‘õ߃ó§ź0{ Äu€Ā2įoé8¦ņ³(š}‹š.Ŗķ“„Ūß™:{eʹ SŌ #ų«öU÷īøė)ał—ųJ³ ųś „©$Ęų3Ī] šm ķŠxóńŽ11g²Ą" ŚĀ weō/ņ+·ļž„ģv§żØ3żŒ·r‡Ŗ§}ZŅgü_³ū–ī3aė>_÷V¶õ$S ńR t…7JZ ā²ŽńŁĆīēŒńŲīÅ-ć—·ĘÄõ¢„ é£ @Å÷Ö<öš|ī9;ėmü÷!ū€±ŽOģńy»ż×dżü¢ļˆwģ eōņR„jźͦtū,}éŪ Źó…ńƒÄļ øģ£Ū4į.Ü„šč śntgłń3ųÖąī·뽒÷Ķiö  ČØ ¾:=w&ą3dĀšäīķMWņM¾ļ5©Ė’)Ćß f5PŚ Ÿ„õzŒó!Lļ ģ„6ütuūćę YŠŌ…Ćf ž  ż ėīĆėśõÅ ōz ČĮ '_J”·Ī~Ÿ–ZņqÄļÖštįķļ½5Ś­>MIķ” Ŗō{>ł#ųpfī§,ėŅgśbHłš ¢޽Ŗ²‹8’”'’[(š(ķb\ó…ķšp-Ż$s¬­ąžz ņ õEó9ļ!'ģµ/’zķžD( K ‡ķĆś#Łł.ļtĻė’¼öŲųōŅS † tlœŠem.­ń:ļNkń@½ī“¤²(xŅnj µ7 ēÆö”żō&ļćėKÕśŠÖł”Ü =ˆĢx‹’ŗt’)uļwģuĖōŒ±ņī  ¶v#©› f)kKóAņš&WšĘZķ=Q’'’Õ{ÓV܀ 3ų»śŲĒł:—ī³jė%łƒ«÷Ék  ™B&([œņĖÅēšĆīĘØņ­š€ÉÆvĻųš-ł æĶ ŖhöćŖō‚ļłėė»żL5ż7C żØĘ ^#üLyūŪzļ‘Yģ‹ĢõßŌóÅś‚ „S_†¶»xČūĖņ£dš’ŌšzīL‹\ęžśĮ ] ;~ ü÷3„öņ#ļĻńė0žłłbų¾ yé kn=Ę6Ą6šWķ~ĖóŒƒńy/‹eńm>™$t?°žWō]/ņĮ÷ļ/šģŸūżś“ż¹³~g¤C5Ż“,üŽzūŸÕīö¶ė““÷Į"öµG š@ O£ȬĆ j†„ń Óī,Śń½0ļUyŪč”}Ŗ– X ­Ŗ÷®'ö@ĻīY°ėb4ü“uūsœ‚”XO~ż¹ żĮļ”·ģ7Įōl£ņ0ĶĻ J v™SHüŅó̚ńš3šŪLķw\%Ÿƒ.“ %µ s%łCć÷ļõāė oųŪžö_¾ ,ŗ °Å?ŻĖ`±Ņ×Ńš© īYæņwHšĘŹ?ĒŅq>”j»-2 źAõWDó~ļč^ģ…ØüŻ’ūqś Œ’æuŃŽżĻżˆļÉäė”WöĖ€ōL “ą Ū9be õ#ņš‹ļņń9ī.*–XÅ;C ė_æÜųZ‘÷’‘īˆUėŻ½śy²łu  ”lNOųĶžŽžņžļ łģI®ó¹Pńœ¤¢ąU*•uH8Ś e»ō:Ŗņ zļ©cģ0†’)\’ā!)± °2SśšIłEķī²ėŽ'÷Årõ*·  „ Ü*jcęÉ †—|ń§Ķīńøń±ļłTµaķ–P Ę čKöģ}ō†ļJŲėłCūµUśc( Īü·¤Æ)õžwĪž—YļBģCõDóMŚl ī_›tĆ“³$ćņsqšĪUšYķ Ä’ŗ­’Eø]«ƒ –ż,śŠ#łˆīŽ;ė‡Płwü÷l© –ōš]"‰3J$hšzķÖØņ:ščGū Ī)ĢgK~ ĻU °Żõ8ōY ļÖėBž-żļ|‰Vā« 8DS”ū?ŪśÖżīĒėõīõ~ū󅎍# œ[iØQ:%MņVĆļöģš ī»ģåaŽ,é\> 5 xV÷)Įõŗīquėņł@Ąų³K |–@KŪfRR0tDČļöĀģO÷ó/¦ńŻ‘“ēś”ąŚ.$+U·óćpńÖ¦ļ3ģ&TžTśżv°ļp ².’ūhŹśņ’īZPėęā÷Qö \§ żµiŃ(²īsóš>'īϟńŖīī¬ŅdW ė]|Ę ‚Š #÷«õ>¤ī'gėā`üŽ­ū2¬§_ÆRd|,ż(¢üś3ļyģnŽōærņč o{„ćɶµōó.aó!ń‚ šCķčTķ“'Ģä³ ¾Ņ ¶ēų9Š÷Āī$CėG&ųźæö$ö å %’Y(m@Š¢pƒšéķF{ņf’ļŲ“šĢb«īš¦k n õĆōņŽī[¶ėVüŗū-¹ÜĪ>^xżäõüćĀī*Šė’ö|Iō³ Tš ŚNX€.˜(ĒŠńŠ&ļģ†š‹«ķ£_@śpē‹y+ msd«ųķI÷ßZī ė ¦ś;§ł~µ "Cr—ā{>ŗžéyžŅ“ļUģ bóˆńĒŗŠÄwtĒx õ› €jōŃBņ#rļ6QģE¶’’L¹Rö„ ĒĢśł-āų¢ˆīBėÅ)÷¶võP ä .(ßoQ~j!ń\īĶŽńl)ļŪ·¼‡³ßÓĶb€ ŲÅõ¼ēó…Åī—ƒėŁ…ūœśŲ… . >‹W{`žū*ž_ļNćėō\õqIóZ@ Œé ?w¤¾rm1S„eņ2āļ:0š”+ķ Ą ńżßdĶ @P;£ł$†ųüYī+ė~ ł‹Xųi obóį$Ó’Ū’ožļ‡ķŹ£ņEš»”÷q±S÷Ÿo% ż÷ čgõōwóLüī\Ąė½TžÓńżtĮć­LŸ \5rLūšvś°®ī$lė}ųõ¬ōŁĄ{ ņp Č3Ķ7Ė{óńQVļ—åš0īĄ$®U\Ŗš£8 œ* ¹÷yõрī’0ėõłÄÄųVz ŒŅ9Q‹tĄĮ)=ŠļMsģ5ńó¦£ń„“ ŗ¶C š$P„ŒóŪ6ńbyļVģ\ž›ž=Fœ+„Ėŗ'VūŪśŽ\ī… ėLć÷čVöKÆ 5Ž 8ŃNł¤®’WŅšōķB…ńÄīJįŃiaņD“ Ę .źö°8õd‚ī5ėpü@ĆūpĪ(—CĮņ„2 ż ‘üLļ£ßėd‚ōmTņ=|œyųY•‚ŪŠ"ó ·š‹öļÅšģĪAŀXŽĻ R° ZŻ Äų‹`÷ģnī ėĒFųĒŃöß( •I šō±0śėgMņEšeOķŸņyše’N$e»ØŅtB ~įō¬Įņ§ļī5¶ėj™üł÷ū^\„šRż[…ü\—īQėKSöy…ō0P D wQ&޹gwÓŗń„ļ˜šš°ķQ5µss“1ŗx łRĒ`ųŠóö.Aī%ģźöĖśõÕłęŁ vµ 7Šė»žjuž¶Œļoģ8Uó”ņš³Čžć ˜±ļ` *“ ?ō¼ ņ®SļT2ģ…³’٧’CYOkGĢ ø-ą&śčł°īĆ2ėĖśöGõsż šā ±M3˜_Ž ąńµ2īį·ńoļ£ń3Vź. ˜¹ 2śõōJ«īĮdėSIūøcśj… løÉ·īižX'ž6īī©»ė<õœ4óĆ6 „ī `‘Ūj§–„–€ņ³ōļńšĪķŅń’\ė’:"Œš Įj Žłubų_1ī1Ūźš—łs_ų… v88’@³ō’>ń’ōśļÓöģy}ņļļŠž¤y…|‘Ź‘' ģ 2õš4ó\ąīł©ė«pž!žŁćŪŚÉ® æ=ūLū{iśšī¼RėłčõZ’ó÷X„ Mć®¤c²ńļģšī3až’y3æķ(  ō÷?QõWtī—#ėC śęéųw« ;&QqknĘ’8Ä’—UļÓ5ģ½&ōwźńh‹‡ ½K&ń ńdó’š’ļ‰b쮕ž`Ržx]h¹Ū €tėś9ūłŃBī¢ėźqDųyĻö‚ M̹ČßęZ•ʤš·ķ‹ØńņīŪ8čŁå.KtŸa ~[ wrö½„ōĄ‰īÅ>ėŌńüīaü± D’ CH)¹ü?üīėjĀō>¦ņ! ® =’F³®ņ³(š*"š5&ķfÓ4C¢Y^_ Ģ| Xų Öö0]īžėA”ųVF÷+‘ ĪĶ ,ꉞbPŸÕīļÄįģƒóņƒš­Ž\ŲÆŠŲ1ĶgĄ`€ōHAņšžīŸÅėėż«†ü’Æ)… ܳ©:„üĄŠū,līĆėWĒö õÓĒ 7į 8.{āī°i±tńé īóÉšģķ½¦ †Ä¤ż¶± aį (ä÷‰MöćDīkčźOū{ś@/āīSeįKĪø^>`ņ¶µļP'š*ķÆ(H:*ĢGLĒ ×(“Ył8ų¬=ī ŽźÜłiĮųn- [½P е’t’’~żļķäģi³ņ8š»ĘŌĐlĄšŅ” >õ“łņļŻė䓞`…žÜ)źė] į¦ūKś¾īAoė/ö˜`ō= D× GaA­iķ0 ¶ńQ÷īŽ9ń–qī œ4Y…MčÆÅ ń— ,äöõVµīĪjėZUś~RłØ } ’“m’ĀxļDQģŸ…ō‰_ņ],<Å ün"µ‡<ŠŒ_ó ķšRÜļĻģ¬Ųž¢±žDVnGź‚  HČśRæłŠīI9ėŖ­ųĄR÷S īcXJTbyö_ Äš ×ķŚņy€ļækœ!éč vū IŌ ×iöłōkõī½ė\żĶäüXįPū ˜Ÿ}`üy¦ū,7ļcģLIõlMóņĄ>E Bƒļ²·ŗŪČņdCš7²šŒŃķ:7LŖ¾Ļ^ß° в fųӌö†Ńī“ė]4ł‚ų÷ł ®Ä 2Y6hĮś0*.š 0ķ}óĘLń»ß"2]Z#£'©³ęäZōc#ņE—ļ4„ģ—żé.ż@ŠYJ9]Żž,ü@lūFĪī“ė}÷Éčõ·ż ó žŸĒĮó2å˜Ötń|¶īézńŪĒī„%Ł–}›”8 W ų¦÷öźĀīõ‰ėŽü8FūAĶń.±Źr3œż]&żöŽļĢzģÉZōr5ņM‘GÓ©B xz’·CäĄó0sńQ š³ķ#ŠĒūrł‡!ø °č U7ł„š÷eÉī\•ėGųś”ö‘ Į‰ $Čfįk§ŌiÉšņķ‚‘ņš;Œ€™ĢgłØ<ķ×f }Nõ!Oó--ļūģAüӗūDĪ *a ×Õ‚¤ż5+żRžī ŌėsöqNōų× į± ķ;G=ŚG:)ņ•ļ“š±āķŪŗĻę™kĀ> Ly ł¶÷ī:BėĖhśįeł^ Œąķ‹Uq½’ėžˆłļ žģy=ó«ēš­$%#Y:ói‰†‘ Ą÷ōĀįņaXļICģš’TōžńąEÜ„ķ “TZ³śO±łHŻī€®ė]›öŪčō6 ˜ö },”VY0!ę<øńiļvlńÕ¼īTĖ-§:ßvĻr ü0 ‰°ö ķō‡Żī•°ė蓶ž”łt« KDė;Ö<ˆ’^’h…ļ mģ%•ō•ņŠ7Ļ }_{”‘]¢UōNóVéščöļgķźž²ČžUL,+‰ >žRąśąÖł‡īōAėŠ•ųB÷° óWžLSY4ī34æšÓąķņļā[ Iéß|) 6ś āŒöV¶ōIÓīf ė×%ż›®üŒž¢Ųhˆ¹ņoü©ŗūC-ļ ģ)õ:2ó&£^ ^ ˜%ņ ńąņŻ^škšłˆķRō“b‚ąA<č ķ K)ų¤©öµ²īĀyė¹łųĮ¹÷µt £  —N§ŒUĄ€Ÿ'šū(ķ 9ó“ßš(Øtō¦Š9׿īA6ocōŹ3ņ`ļāJģWSż®ąü³ˆ/D6”A{üŌĀū„žī)\ė» ÷}jõtä 0ö 4ź²päxcń¬©ī3ńšvī€ķzQ”›i“zm ‘„ —Ó÷xCöpī[)ė’žūÜŅśFOj’āyÖ=Įż^Zż€fļkQģwōŪßńśrŁØÄy¹ĢZ1³*ĘómzńĀ«ļ  ģč«äŸÕ»” E =łųT•ī†Yė°Ń÷źIöä‡ | ¾2¢¬F*­šƒŠķ8ņŸ£ļNt#ué¤(ņŠĻ© ˜9õ^Bó¶üīvŃėÅ!übcūÓÜ znM`'“ÅżØ\żÉĖīŸ•ėNŻõĘóó£å [¹ lQ£’Ø™f#ņsqļD“šIÆķ&¶¹Ļ1`3¼h ¼ƒłR½÷9FīęōźšJśY2łJŠ   “ҬW’ŗįžĪļ3ĻģŌ6óyĢšŁ:¬,]YŸ–L•4 cÖō<Āņ»'ļżė#’DņžˆRšņ Dl"yśR€ł‚»īŸ‚ė#“ößķōę]  Ņ>s{q'岄ńµĶī;Xńn“īń »n’¶ķL } 7föņ¤ō“ÖīœėbĖśÉł1Ö 4=óćć7U’S6’ĘRļĘ-ģŗ§ō«€ņŗ…} rv“ĘGŌó žššķ6’ż ’lńT\d 2ģ)™ś’łeīłė¹Īųp÷ē] Õ³>>W§…8Ŗš`„ķ+Yņ„Ąļø²rcÜ÷b.Ļé –Č <ö7`ōēŹīBˆė—ż żĶIM0žį ”Š łūž>ū½ļpćėJ„õ¶„ó|ųUz BU<žܧœ·DņišH„š•ķŸf"Ūē“S ‰ ‘ N²÷Ē'ö<½ī5xė„jłĪ'ųĄæ :ł `rEĀé½ęļŁģŗxógńX#ļ|ݘńqg³{ōĀń½’ļõsģÉĶż‡^żæ¹xƒīN¹R üæHūl|ī+ėōl÷.Ģõ«P Ōs Ź żčŽO‹(ńÆ^ī*‰ń)Ēī†]ŻŹéØ/ŃĮ / Ņr÷Õõ*vīŽ#ė’ üņJūؗüYнAsFż%ĪüYļ45ģ%yō±CņrÅŸqf7³j’1U ƒó'ńžĪļ:¾ģ±ó’¦½ąč\§ vä 1ćų0•÷ū«ī!eė™-ųe«ö!ø Ī» iā†~^ßÓ†‡šĖ›ķjņsŲļĆ2Ųč¢Ņł ĘG Åõļłņż%ļčōė,jü‰µū‹ņ “’"?g‡ż żq»īĖyė1ö¤2ō# š ™9Ķ|(_/ ĘéńµGļ­ĮšœŻķJķGé8ĮGŲ> p‘ĖÕų ~÷+Eī¹īźśžvł¬ \@¶!ĆžIžQÅģ-dóYžš3gueźXYžĪg 3Ŗōʉņģ2ļ4 ģ_Y’k:’“0:=ųĘ ˜3čCś48łŽ¹īO{ėŽįö#õęˆ °N ?9\y(ēƧ\ń+īeqńŗµī;Q4z¶Ä w× ‹2öÜbō4ŁīHŸėÉū‡ś3 yt3ŌŅ×’źžM£®»V€”<ēMńów²ńųĖģIžƒ¬żĄ…Æū ·ŖGČū£ū'±īhkėŒŹ÷T;ö’M Lr frb“ƬŠO8ńsī€Ęń¼ļ@‘Ö’”iµŪĄ ”Ō \V÷̹õ ÄīŹ€ėOOüū k.)@hV&@-żź«ü¦{ļĪ_ģ}¬ō˜ņāą•"@…Ļŗ; `Œóö4ń`%šõ%ķ H•t–²f F‘ Čķųō›÷ÖīM™ėjNų]Ņöņ¹ ]ŗ U²…޳3ė£Į“š6ŠķQ·ņZ7šÉÆnĢ«Gś‰¤e y-õž"ó­Lļ«$ģ8süGĀūįŽ Œ{µōŽĖ÷}żŗżļŲČėŁDöZvōHŽ JÉ Éāµ›dßå"ņGƒļŁš‘üķćZ „(Ō ;fŃäų%Š÷™ī)Dė•śÜ›łö\ 1šwNµ1²ŻžX”ž*ņļ¬źģõjó÷ ń³_;`“Bš…‘EŒ× ټōtšņ'zļš]ģg’JV’5ź²ó• {ó7Qś…>ł,Šī¤”ėööA<õ¤  ©i Z!(_·ØÓ``ń«Ÿīšæń—ļWY¾1=@«…ąŪA‹ Gö®Hō,īīŻµėCūĪNśƒ9 ͬķšī•ØžAvž06ļ]ģWBõĘ7óLų•Ø ½42xļqU&Øņü/š„OšRķaė’VĻ’ĖŲ½Ö ‘TįĻł±¶ų=~īĖ.ėŸłOaų§Ä .+‘É$Ī*Å’Ķ’Ą:šuJķsŹņ;š…€H@0#˜_Ÿ Åļ ¤‹õ—Ÿó­*ļŽöė3Zžśžxz]h½G ÖŃJūCxśöīEĮė.ö%ō.¬Ņ< =,‡ŪĪÅĖė"ņމļLńN<īÄ"ŖXŖAŽļ °Ś :7÷)™õ ĒīzƒėŌųł×Ćųß< ĄƒÖ,Fµ1eF Åļ³ģĻō„Īń^f ł[q©ō·½·óņšŒ7š©;ķŻE™‘†Šs¶J Õm |½ųG\÷įĮīXzėyoų;ūömč ü rØŠŲIłYUžš"Ŗķ,ęņxpšMęń9F””»rįŁ8õréņ•Uļk(ģb¦ü^üzś 㨵Ķ"” Dżå“ü›ļ'ĀėS‚öżĀōJ Æ ŅW1* ¾÷žńŠSļ\šš•īh(L%=Mģ «,éŗųĖK÷5 īfTėoĶśdåłe~ „{7–«žŪcžeŻļCĪģp†óē*ń2€pÕ:™ƒ¢!ˆ£ ·Ŗō«xņ¢Œļ„M œ fĒõ÷×ó %ļßüėˆ,ž™Śż|q‹U(i ĶļŹeū(˜ś£óī’ĘėHūõ$ ō.ƒš Š/±q”ķäąBņ—­ļĆńšFī<£”[@8ņ uŁ q'÷»”õdĘė*śšŠųž0 “r+ēz(ź8·Ņļ'Ģģ|-ōKõńł°/ »a¢ž\Ēõļ÷’óÓVń+Ģģxržrž”÷nĀ’» ā]Bdū‘ś–°īqsė53ųa·ö¼© Ģ ^aæs„C䛯źšj+ītźńB6ļĪļēdk„ßĒķe +j b÷Ą`õģī|·ė~ÅüŅ üžÆŅb>5PēĘæü`CünPļī;ģ=ļōłÄņ .Étō%!gŅSW“V]óńĪnš×€ķV„aĮm—ķØ6 9 ą…ųz>÷°Ļī‚™ė_¦ų+÷Zņ ō ²wč›`Ģ/ō¢šīĆķīóā©š¼H8üMm…;–¬AĻōķŅņßfļ‰Dģ—×üŒ&ümž šŹ$j¶ż˜—ü… ļfąėõ¾ö&żōœH ¦& šČhģžädŒ›ÕńśEļ¢ń4:īŻGUn¦Ė"żÆ Sļ ”ų@7÷ĪĄīŁ…ėŅūl)św« +· cåg^ž1žÕĻļš×ģƒĮó·ańCŖ3§Ź4R«Śō` 8—ō×xņ=Źļ“æģŲŁ’jĘ’šö|? ¬™ūłØüųWāīē³ėüC÷?ˆõø® år ±× #hövxńfĀī;ņŖyļ½—Źds)’WQ•„H öCFōļµéė3^ūHfśE Yx[\‘KŚ«ž tžSxļ`ģ|}õQ~óś£— W®7‡SūAęæņ+^š#rš:zķ†Š’ųÆ’‘‚smöø n*ś'ęų Įī…ėa¶ł~ų“© Éų=„›TČ’{ᒚešy‰ķ$Üņ OšrLŃĮÜPR ŁŁ ŃÄõ ŻóShļIHģžkžSž°[ś/? ˆ¤QIū2‹śf ļ‰ūė€,öQ:ōQ~ų %üÄ9C³±!XņKČļ_ń…šīY8óĆ—ÜŠ’3© Ų’ o)÷" õ÷žīAČė !śõķųq wXęŻ*ēƒ°lžļjśģŖuōEņT¹  ŲŖR£”ʽ®óuń@żļ”īģyž•žČŁū©-š F2:_ū0~śŻīt¢ėÓhų”ųö[Ÿ XÄ Ÿ#Æ0)æ{;ń DīéņVļšļuJšĀÉP rB łö{@õ ļŅŚėNņüö_üX©õb Ń®¦üüüvXļ=ģ&õŚäņˆHڦ%3ßtÆ1Tļ4óÕĘšŪ‰šķ©ķNÄ?øŸ øß ėņ ˆRųžōöńÅėüĶų9m÷ 3 :R \‚Üł~¹’fšnvķRó[üšP‚S»µR»Œ,įt7(}ō‚dņ?jļ2Lģ½4żS«üĖ\Ę瀕4‚”üčįūÉ×īŻ¢ė„0÷–õ±Ę ķČ ­FŹÕWX×)vńŽČī^Eń-~īÆį“;Śug‘ÕI ^^ [į÷‡OöØ·ī‚ė/Ōū¾ū3-iĻ³Lvt™ż†8ż“|ļ6lģ’<ōVņWy“±Iń‰ķieĪŅóŅ‚ńÉš}ķÕĘ kÓww’ ¬Å $ ł’Ń÷Œ¾īX„ėųx•ö˜ "˜ '¹q݉Pɳ ĢšeļķžĘņVšZĄ÷ÓóK¾…ŠL ń õ† óżIļĮ"ģ§üÖßūä u…÷̼“ Sż·Ēü*ļ(čėä›öeąōż& i £Ä÷źē÷'›ęń­Lļ7ń”9īb>t8v$ś­ Ż •ų™&÷ Ļīl—ė1ūbNś¬¦ R2=č½›<žSžż»×ļŚŅģéīóŽ›ń6Š“ę¬ōD£# –|ō5Jņ±łļKūģ”e%c¼9ļ 3;D·łØœųHłīĀėĮ ÷$öāė Ī ½ŖŌŅXŠģ\ń’•īprņ¢ģļš÷cčŸ€G®™± ū²õlŃó”Mļ½ ģ?äū™ū¼K xŌdŻÜ'žĀż•nļČNģćžõt&ōb w& ’Ńķż_»KŒsņļļĖš§äķØpćƒe²HÆS; l‚{nł$ųłŌīHŸėCTśMOłŲ īz¢M#13’˜’r*š/3ķśVóVīšęłÖķó(™xh Ķ7õ”%ó ļ‰˜ģ”’’S¦F•}„ Lū–śąœłķüīęŹė\ÉöK õÕ0 ó VļŻ™¢Æ<ŲńR*ńį%ļ·ų”Ć@ @:4 …Ą ®qö:­ōhļžĻėĄéśdłłōÄ 53Lœ.€D.’Mńž›ļM‹ģTõ™ó‡) 0ŻMĘ4¬gśņ“šø:š’Fķt’Lb’ßmXõ ,iÉ[ś:ł“ī‚ėēHłųtf ½Ū|ĢO#š*frš‹ķ ›ņĢšÆć“ī2c c øöõĮō£>ļ+.ģžōĶżEd v[ ÜÕ9}ūŌ¦ś ļ¬Žė…ųõ×ō©qī  !~QVņęČ˜_ņ'Īļw/ńc€ī‹Ć©ŽéšPŲ ¬ 8/÷‹õ3Śī¼„ėņśĘżųÖ2 ҃AżĢšķĢęļōēģ*\ō/Fņ¦ŗ6 ¦6šhϘ–£‡ó74ńįåļäćģ£žiž-õęؓ ql)ūų3śx¾īݐėóųė-÷LĶ ;č-¬-Sń Åš¤ļķĶņ{ƒļyV_üīĻdó tą īšö7Ōō\ļeģė?GżŌü>줱˜ą œsY4ü„ūļ(łėTYõ`]óŲČR oCw=¬GƉÉņ‡Vš•¼šåöķŃLlĮmÖ_ņŖ} r &¾÷š;ö[°ī…xėÕfły+ųŹ ”ü VNZČĘē„šG&ķ˜Įóż‰ńį Ņs¤`F•ķJŒ{eéóɱńgļz}ģ4ųż$•żäÖŪ—÷b¬YĶū½ūµ³ī·Šė›Ī÷SöŲX Ön l‡)•„„§ūwńå<īžžń³ļīŻÆ$-3æzŁɰ éØ |.÷óõžĖīFØėļƒüŗćūИæGæb× |ėü0aüń5ļDģŁ¹ō…žņ]3›ˆų[ö’‰pݟ JóŸõšÓOš„sķųxéĄĦń·9* > Óvų÷)”ī g뼟ų©?÷h, ³@ 5¢?¶š­„ūtš'šķżóQÄš¬D`o`Ū•A#¦w°™ōŗ|ņłKļĻ/ģL żƒü€Q€ż‹œP9Ēüz,üUåīŽĮėfõöRõ£‡ v} CĄŠŚOžŅՓńĶāīx#ńØ_QNewur wŽ #ų{«ö¬¼īː멂ū·ś¹é !‚×Ųe™Iņż–‹ż¶šļ9ˆģ° ō6ŅńF6h=>Śv_,ø—ō8éńƒüļĒ ķ†hī…Ē/­5KÖ Ÿ;qłR0ų&ČīŽėMĒ÷FöÓL ŒC  ČķéZ²&,ńPIīOŠņ5šQB¦FÕ0pf„õj mõ¬jów/ļN ģJ"ütūWØ Ź>µ ŠÅżUż®6ļģ/4öykōA° † Ü]!~ūµ+ņĄļĮÉš»ōķ#ĢKž`ŗõ ŠHćüų-«÷8¾īģ‹ė_­ś¹łČS ÆÕ 6į ĒÅžĖ€žzģļ.åģ8‚ój2ń4p‡’"Zʼ– ÖÄō¬ņž·ļ,µģu–’&‹’Ćß:Ł|b k¬Ń'ś łØŁīh¢ė%÷ę…õ¶® {‡ šģßtĆåzń›ĒīŅņĪ{﵃‚b7#ŗVļ ~4 oönō®ļęÜėólūɜś02 _±ń`ķ@¬‹žnEžĄhļ#Sģv‹õHŸó­ ¾ P3ø@Œ’ݟņ¾špšÕŒķ¼ž†³^©Ȝ q÷—Įł6–ų(·ī«€ėĀŻł¼ĮųCĘ U0šų}±œ’~y’÷=š‰Dķ`óņ—šBž3Š/‹7ŽUƒ Š€õõ‡óĄrļ°_ģj£žožzr^]ž `‰ū śļŃė-`ö¤ō Ų˜ ÓN8jl:Āņm€ļü†ń5Łī({’2ŽåĄ;u ü& žéö&õ>łīiĖėźsśšł k ŠĮ±³䨒°’#ŻļŅģD¾ōÆņ“ūH ŹĄ9ÉFģ']uóFń8šÓ/ķźžčŅž(ūĀF V¾ęśžāł~āīŃ©ėW×ų”’÷¹Ś >*¦čdÜ%æīæyŻšöōķŖWņÜļ°y©?B³sߏ Ē” ™„ö®ōēBļ$!ģ(€ż !żŗĢئš™ ¼!(üVJūcPļU'ģ}‹õ²óŪAp MJBvņnWŅņņMšß’šÄ7ī”kŹł£ģĖéD P <Ė÷ū ö”čī¹ė¶‰ł„sų¼¼ ö¾#E'ł Ų²B+šx-ķō­Īń"-·œé%É\C$$·ō®ń/Čļ{ĶģäžņŲż€Ć„’ Ś żm}„ū”Ķś}Õīąœėįų„ö®_ Ƒ ¢EIMw@Ÿ\ńŌHī(ßńĆNļ|Ó—p»£ÖÅ,h –X ļ÷øUõR’īJŠėCÓüGü÷’5Yˆ­¢å»ü÷üÓdļzFģ˜õŲóWŠÅÕ'Oa/Ł6ņ-óyÅšż¢šDĮķOŃ13ψH©æ ­± YNųČöĘźī¼ėł±Ē÷@ ×f æOHbĶG-ˆ°tšŃ†ķ›óī6ń©’IŚ»XŽŖłÖPŠōŅRņ“ļKÆģ/rżƒ żĪH„’¬-lÜ eüŗūŠļhĻė9w÷zŻõ±æ lŃ _€qœ'Üxµ”ń„ćī=žńšųī³ ģ{tDhY)ł 9 mŃ÷­Göt÷īL½ėü¢Lūå ·Nd½FŠż~üü³Ćļ-²ģ!Šōbtņž~yÄ ęBć33vßó|•ń Jš0QķŸēŻ×3ćIY Um ł0¾÷ ļ‘ŁėaBųæįö-€ Kƒ ʇv¦å=­¬lęšC ī”äņ”kš.Æ=ĶÆ¢TŹ{kĻJ<õž$ó<ļqģ=‰üŲöū>¼ FX°ŗ–—dż9ēüK(ļĒ÷ėŪŽösĖō„ł <é ŗ§ŗĒēU•C'ņ`ļC!ń¬hī,IVŻöéūKĢ ˆēĀųāa÷ńČīį†ė óś¼ śįm ųåõ†»„ŽžŁ*žhš•ķÉóʖńrœ8Šņ5l L³ō¬‰ņųŹļмģ8¹’±æ’£ŅÜÅ+ ˜`ō!ś§čųHļŗģėFI÷ŚÄõó— Év ģŅ_ś sēN}ńµ·īÉņw}ļԈÕ|¼ YEŪ‚;ż ńö$ō;ļ&ģboūW“ś² iXŗ3z“žåBž„aļ±9ģ)‡õ3œóī 4× õz Ž+4эµņO)šō•šĢķŌ “*ϬyŸæŸ Ēõ²łÆzųfœīōUėį賯ŌųUå dcŒŒhh s’9’ø;šśHķ›ó¬Ģš§Āųµ„ÖA€Ē\g &Eõ{=óĻYļ§:ģéßža¹ž–°I«Ł 6-¤øśū¦ł(óīXŠėvØöżõ+* ä „5Bå!­č¾ńUļ°ńŁīiīŌ·‘&e_Õ ūĄ ÓröAŸōżīąāėėś śŒĻ P1{Ŗ—„)’>’?ļšeģ8õ‡šņ‘ß8 ˜$|Y;¼+‹Lūņ͉šTQšŠw퇒Wz’OmŠKOž ÖoMQśøBłĒÆīphė\MłŽųée 'ČŹ{ŗb( ?ŠšüØķ9¾ņXXš_ķāqÕPś0S Ū žöŒō”PļŹ#ģcžDĮż+¦›?  ±…ū零x6ļģ­ö‡Oōē^²ó eü—+ķŻč|ņféļßEń3xīäųs—óĮæõIÅ yŠ ¼L÷Hœõ­ ļøīėO"ś4ł] pS¶×mŅŌ‡!ušĮķĒpō’>ņ*”# H®į‡®ó]XńMš‰.ķ«ž užŸģµĖr %ż7ūRś×éī„ė…‘ų*÷b® Äņ ā·Nšv _šš–!ī€FņÜČļkW†łLØĄĮcš tÕ >ÆöIļō„4ļ˜żėČQż»ŅücÅo›Y» «I½=ü—|ūõHļB5ģTyõ¶’ó½Ģ5< ARI=š|±ƒėņMtš˜ēšņī¾Dę·A§%Ó–h Q ĢŪ÷ OöĻŚīeŗėyrł”Eų¬® jŅ »2Ö8ŠĖµüĪ?š-Eķ”Üóˊńڧ[+4TtR«rƒōdŽń?Øļ­³ģéčżÉ‹żÄ³Ąd©Ŗ£wźūė.ū|äīč„ė¦Ń÷|Cö’$ šH 9f’x½Ē Z4ń”yīD¦ńļ‘F 1¢t®_³ •· łU÷™»õ!ńīm³ė&süÖČūve”%1ZT1żņ‚ü ZļOģ)­ō¬§ņ`Ų^ĮK€y«{łøśpóń)oš¾wķFež¬W{ŗ>* ē6 ĄŸųX7÷öøīš•ė•—ųÅE÷a +! ”’‚£ŠŖP™‘šü©ķw?ó…Īš”:’lŁ;½q|g×°ō5”ņŲ[ļŗXģ9żŒü Ieäs~Ÿ4²üōü\ļĢėB%÷noõļƒ i‡ ””øæ†Ø÷VžńŚõīc>ń’ī*Ģæ(a—a8> ža ’÷.ŠöŸåī}”ėŽĀū“ģśź Ī“”„Lj–Ķż5_ż,Ÿļœģh/ōū ņō^Ʉ…1^¼Æ|v’ó³Äń–:š½0ķó^Ī *ĄA½˜ WÉ `GłFųÓīĒ¬ė®ż÷¼†öó| œb ƻɽaÖåvśš_(ī”ÖņrHš½Š)“”!×fö¶«* ŗIõ/KóĖ@ļ0ģCZü­ūŪĶ QųŪa¦ xż żŪ5ļ¾ģė‡öf¬ōćē —Ē ī½÷ī‹C|ąĆņF€ļ¶įšqī«ų+ō ą Ć IĄųār÷¹ĪīdˆėžöśQõł@r ¶`Ŗń$žž“Zž.įļŽčģ’óNńH’L’.0øXDńÅx ˆ ō¦‡ņöÓļŖ»ģIĶ’„ŗ’źņ:I Ō›Šś“łųŁŠīż©ė%÷é‰õ¢Ć °ˆ ųūš`{ fń.­īA"ņzļ”Ÿ²|¾$g;œ&8 [öo!ōÜõī¹Łėg[ūē†ś¢A ׫Wv›Rø€žCžƒWļš6ģ •õ›•óĖ &Ō )hN\Kró˜ņŁšŽKš‡rķ+ö’Oł’{Öl¹ˆæ ¤“ł]ŽųgībWėWćł§·ųß čQ° „£’¬Š’Ę"š†4ķˆÉņægš ¤Ż 9q]išīš ]WõV`óĮWļz2ģėÄžk…žĶ¦Ķž’ £„śšśžśłfŹīM¢ė JöJ‹ō% ݱ GC®k÷T7*\ŅńĒ2ļ}ńē»ī+Ę]w%÷d·b „' XöTŽō0ĮīŁ˜ė?’ś”–ł Ä ó­Ū„ÉqN’;’šƒļ”qģméō÷Ęņ™yæ Ķ:‹€wöŃźöžņI˜šĄšgķ!I’$’½‚Uģ, ¤–Zś_łœ¢ī`ėėEłƒļ÷¬m Ą>éōÓ4šIĄmš3ķą~ņöžļĀ ½¾óž°qh 7 ±źõŻō_BļŲģx(ž »ż¤N/3œ^ 3ó&†ū[¹śeļéįėYēõęō‘h?ķ (#&Q‹ī(ģdņÆßļKJńżqī± 6ŻĻ4Ī ©¹ ō>÷nŸõšåīŚ²ėĪśEäų< @YņņśļPŽ&€õļ÷ņģ|sō”1ņ`ŗ˜( ±"?pažO»Ó§ó«VńœģļÄźģ!~ž5žźj®ęŒ ŁķBūVlśäīN£ėŖ‹ų$÷D« ä qO/ĘŚLĮ’š'īÄņ |ļżĮØQ n»" Ż zÓö0 õ„*ļˆšė<1ż›ü,³-ˆé× žŠƒüZÕū“_ļu6ģ.õŻ*óølüÖ‰ėNķģż $ó)¶š0ŠšįķĶ2cՈ…Ąf™ gŖ 26ų2³ö7éīž©ėšłqĀ÷TC ×h «I¤W›3inĖlš#xķØó•Fń‡“ž“"jy0™Qątō)8ņ'›ļš„ģKdż¦÷üĢUL ™<!åqYü¾Øū÷끇÷Ååõ@ą Éł énџĆW‚Ķ€ń@øīK{ńĢĘī`Æyńcūv F ҹ÷Ņ+öņķī°ėž*ü'jūØ1ī[lĀ8żoż:ļüaļ¬|ģ3xōWņ°–šŽ *^Ö¹ܽóąqń³]šjbķÓ,^z]˜„6A lr ēų\‹÷éäī@¦ėńVų3šöĖ“ i» „ģ¤¶üĖ_aøš/ŻķÆóķ¤šQ3301‚‹3}ŸCåōČņÅlļxLģ6Ėü:üo‰ ę”N…šüŽgüļäŁė÷å?õ“u Sk ä–?Š֔M!4½ńFļ¦:ńžrīBŠŠŁ×6–=g ‹ j*ųö¾öpĻī“’ėŠ£ūś¾ś}ō '—ZŗK™|ŻżŪ€żŒ¬ļż”ģ ōZŚńš"ńLŪ1ÓbÖa.Åčō7ėńĆš„üģJš÷Lod½Å ǽ\ł‹#ų ĪīhėÉ÷ņCödD Ņ1 ŅŠuīz¶‘= ÷šķ2ī–ƒņ“ōļÉp„hŲXę¦/é,z ÷RõSó  ļ›ōėųüŠ\ūvØ ŗ5»"īfĘżŲbżiļVäėé"ö›@ō§ß α "B4o¾#Zņųnļģ«šÜĪķŖ/×{ ¾»= Žz’üųF³÷}īBė+śu†ł ‡vdsTkĖžŌ–ž ĶļŃĮģŲ?ógźšE@HŻN.|ēflź Jŗō ¬ņ9dļ^Uģ¶w’ØW’du ×ÄBśį.łĮ¾ī €ėOŅöŸ+õ–| N ,QŒĪWyZjń½ī»ńėļ:lm:§Y¼ äåŚ ę öŁ?ō‘ŲīŃ”ė«ū/ś„ ˆŽ¦Åõ”·äž§žē;ļ+'ģi,õs)ó{÷‚¢ ÉB‹…ƒd¹ņ./šł4š{Aķy¤’Ŗ’¶«ā›Ļ 6\gūł7Łų{ī²?ėZ˜ł bųšĢ «2×Ȯжƒ$Ą’āEšDķä¶ņL?šžPį4BD 9 ƒą 1—õC©ó›2ļ“ģÓ~žD/žRŽd|*# V®c$ū <śžī…Ąė†.ö1aōŗ®H^ Š+Wp§æ{ ņŚ}ļVń›īó†!£K?~ :\ (Ųöį!õOåīgØė€[śaWłk JĆ{źĪŌG¹’£Ŗ’ł­ļ³ģį ō1~ņ)5Ÿ B6yŚ4‰D¼Jó·čšAšõķ åžĢ»žŗ+Ą‰h Ś’לøēł¾©īż~ė¶Õųuv÷" óS½Ą¦‰E¶"­šfÉķ>WņńČļˆ??eÅ…į>Ō -™ W_öžō±ļ*üė—£żŅ&żZ!ĪéÄ¢ ś?·āūt)ū‰ļŠņė‹õ$ óÓōC} æCŻhŒ‚Řņa+š*Čš¾īLŸ® ū‰G ŒA Ė–÷Kö7Éė“ył&TųĘĮ _ž įVķH7æłŅÓųļ?ķęÖóGœńeZ0Ŗ/^ǟķ"LćåómœńüŖļʙģĆšż£¦ż–ÅĎ»”ĻĮū¤ļśZīVtė~ź÷Ciöł~ ·˜ Øl†‹v%Ņģń‹8ńö頻{$u¬tÉĆĄ Ž£ }%÷1|õŗī”ė½üæ÷ū=§b_—6lņ]Óüö>ü ]ļJ,ģ Ėō[»ņQ 5y}<~nśj…?ó@ꚏ`šKƒķF­åš§3ÅÓč  ™aųŠõö6Īī$†ė3®ųĘ`÷Ā 6 ‘Ŗ™8”¶Żµ_šó…ķl<ó¦āš#ƒ¬śK’ļŃ:2v“ōŸgņb‹ļFiģ£żÆ®üc1\źĻŖ*„ü`łūµŌėŖ0÷µõÉ Væ \•4½I Ę˜ńåÕīv_ń˜”īÆĀƒ7ÕQJb‹J ģE łę÷1böz·ī—ėŸßū­ū{*ŠÄ –ć_¢”ż)żńšļÓ|ģĶ=ōYņ;UI¤ƒ=āhy,RaĶĶóE’ńłļķāĢfīūgNqG Ä #ł¬Ļ÷,Óī{ėuųS öEo Ų} O­%¶„]z³‡Źš“īōøņ‚Ošę¼šĆlM‹Š jõ†ūņĮCļ¼ģżsü•äūSį šŠōĢ  _ż\ĪügŌīGŗėŹZö·œō8  $]7Xp½)Óń*!ļoŲšSīDŒa·9ĻFß Ŗ"E ųĘ7÷‰fīö;ėäś®ņłf× ĀZšH½/obž$žu«ļMģ<—ó(Fń(®'ŲŚfžęx Qōż-ņ˜\ļ­^ģé’ÖÕ’ŁlGiŠc ŹēĮł6§ų¶ŸīJPėā2÷a‘õŸģ óŁ Å;ģ`Üg“ōēńš¹<ī¤Ćńy/ļtķj¼F˜ÉÖ7~|7 uœõ«øóףīO”ėÜyūĻ©śžs Œ«{Ļ[ž žļĒėŁVõ—có»† <, h×§Rč(7ņB©ļĀDšŸGķ5ą-|żvż(Ō ljjł3ų_īÜķźóŪł2“ųēL Ц¤Ā}Ą<’o:’ ņļYģģļōņ“yš¼½P²’/īb@Ūµh źõ'óļ0 ģÅģž8¦žßčĒ\į c¢”ś%¹ł½äīOžėʅö~ŗōć {Å (P'JIżm„ń’ ļŲ[ńeøīęņņ“l@õh’" Dū i{öjÅōźļ­Ćė ČśĖĖł¹£ e²1–«;’?’ilļoģTīōŸŪņ™” o"Õaq½ŖŠļóŗ®šĖXš·DķbN’4’ŽEÓ6 ńw+Sś1@łČ‚īOTėBAł:ņ÷sŠ —Ć¢Ų/ēfL2Ć}š…ķó­ņąšńgŠ+ābĆc Ä Éõ½ēóM’īéė7žĖ­żøy@¼Z «ų_ūS”ś ļ|Åė·öõōZåś Ī+…\r Ž?$ņÕ¢ļ©Żš¶!ī±™ƒŌž<qŲ ģŪ Ņ&÷N–õÅķī˜ė°üłˆŃų™’ ,YīS7}0k¬ļmøģōŚŽńfĢH Rg˜©åæŪ’óo>ńųķļįĮģBižL%žŪč"ŠŪŅ SSńNū%\śØfīś8ė÷7ųBĘörö kC\ }ČńnJÓšŃēķ{ņ"Rļ‡׿[Åņ’c\ ~/ [”öżŲōP¤ī™ėnżųˆüŌŻÖ}ś ½F?üž©ū8ļ¬źėø2õCó$}C :Jt”-)Äņ:Jš±dš“Šķķ-Ś~Zē¼ ņ ¶° ߎ÷föŹŅī^aėŃ!łūŹ÷+h ŗ tv ’Įõ7īļĢöģź[óĆńęŠ5§z€Š-p–āŌōĀŻńŸ~ļą)ģllż’õü uœZ3g3=üŅtū–ī“Yėkm÷~¾õ x m·žĖfÉińn‚īK¦ń‡Øī2į‰Qmšż ­ ¬÷3ģõ’°ī†oė>üƒeūjYEtCbżļÄüé•ļö>ģ›ō¤7ņ!ˆ‘īō}žŪÖĀ£óEńj)šķ'ķ’$;Ī`ℬ { XŠųµ‡÷Dļbƒė(WųžÉö} *µ Ž‚ńøĆOeĖžš+¼ķģņ-sš·[\7źQ ”ÆsŪō«»ņčļČ)ģP¹üEüKĄ õ˜÷˜d[A%ż&züqżīĻė›ÉöC õŁ^ §> e–øŚń’„C·Ļń{ļ“BńcDī0a ĆÅ"_W­™ š­ \HųVæö”īāmė»{ū’”ś<ų ¶‹G³“®aŪż“żĖÜģ—2ōÉĶńÓörTīĖkm{“O"ō/ÉńĀŻļćģ€]“ÕS’mž· XėRłOųŁŁī|Tė)ŗ÷_.öĄ! iV {Ų ĢĪ}šąšNśķ_ņĪåļqiäp)G\£ģĢui ~jõ">ó¬NļėėŸü3tū$ ČZł5Iń8ķż’JżHļĄćėDö¼XōHß Čø 1ÜŁ-ēE* &9ņ}qļVńžķڹÉĢpnż E%ßųčo÷YīLbėĘÉśµĻł'… žŃ’vžoOžZżļR»ģ¤’óĒ"ń$5kģńQJ@Ÿ ½Ńōg­ņĪļD™ģR”’¾z’”ę*é…0 2½µśołĆ&ļc¶ė¬6÷•‰õ Y Ōe ŽČž ¢«(j„ńJŁī üńtﬖ`^VÕdšqÓH Tö¦8ō\ZļAłėˆMū؅śĆ †p’Tą(gĪžnnžĄvļ“wģķvõגóøž֟ ]āŗ-Ż.@%öņįXš¦¶šŖķ÷«’ĀŚ’H4N8¬ ā䓜xŌų[ŠīĢ·ėĶÅłž³ųő óÄS)Y0®’­¤’·šo›ķó¢šž6f„ČßŲ т ¹õZ»ók^ļČuģʆžīWžV?AŽ āe2?ū Fś‡bļ} ģ„Eö‰˜ō©[=K |ńfT¾ŪWz.ņBŸļFVńXŠīÅg«/Ų\$f u@ !÷bMõ:ļĻčėaBś‘nł Æ*Ž”³PĻ’Ā’Hžļš­ģ/Œōh’ņ);“ *Üz04»@ŒwóDģš%š~ ķ,»žkÉžO©"Ė— ĄīEŲś1Ēł˜eīaGė¶¶ųņj÷›7 )}« ś5Ė~¦1¶šLœķ1aņ[Åļé‹&žÜO× ¤~ Uö”Cō©Å뒣żŖ1żčFŪ–¤ O_ŅūLūZļ†ĘėSˆõ"žó źŻ£ äC{=„jiÄnņ3š šā햐ųūęōŽ j: ī’÷6õõĄļj”ėxÆł”ų§ ö Ķ×ō[u{­ąļZķóó‰ĮńĶ|Ķæ@‹ĆŸÄó×kńžęģĶ4ž¦üżBĆ“£`Ū įWžoūŸšśvmīd[ė ųöŗÆ oĆ _CŠmŸ"XzHńŻ+ī…#ņwxļ§Ų„“zēQO ‹ Ó×ö>/õSĪīiĢė ńüóZü{·EfźÖ Œń•ü˜öūö°ļÄuģDõžHóķ„¢°éc  Móļæšt}šĻĮķpį/h‚k–‚€ ’“ mVųĒŃö@ļóė˜ūų¶Ģ÷zŅ Q ¬#· 5j׊`kšS¦ķ„]ó‘ńcz #Æ:ą“éĄōXƒņOõļ§ŠģąJż8īüąfĆt=źÉQrü˜Ćū§·īšØė=÷aŸõ›į üÓ ’qG  ČɝńČī2ŖńæäīŽ“^’!’4˜ | LØ÷f.öµoīĆSėfÅūˆźśeAŁÓ„ŒśjĮgż×ż ˜ļr^ģ©VōåņłDĄ—¹’JØ čLöœó0mń…ŃļŃēģ/ä*īt~Ō‡:X c¦ Üēų”÷lķī$—ė-ų¦µöµt ’} S¾<ĖĒ\ŸÉk}šåĢķ nņ öļĆͽ±@zē²>ŒŹ Ó õóĀJļ¢ģ£]üų·ūNĀ DZCķD›’Kżį×üĶ­īū©ė°SöG€ō<= ąī ߌQŹåĖ™ĶÓń<*ļ3ēšäīģņ*+S ȼä ńāųų2÷÷Zī®=ė±ķśßęł³¾ #üc×5žZłż„ÓļĢøģśČóęsńķŽ«N o.XÕü0 µWōqDņl‘ļ’”ģ„ µļ’‡>-(£ż [PŠłī`ų¦Ģī“~ėŪw÷åõõā Ń JźØõ™(ž7ń·Wī–ņɕļf[źķVży§Ģ® [«õ0·óĪQļ–ģć®ūųšś„ £[J¼rž¤ ž9>ļ8줸õšŲó9s w ±īL³±&x©vņ2Ųļģ»šõĘķn'ßKęž}žY‘ öÅu’łßKųž‚īōXėÕś’łü OzlZbG‚’¶’@6š^ķs(óĒ®š9Ÿ.¢·Į<4ć©a <3õß óG)ļ*ģBżžöÄžZō>ŚÅ L5ę]śæSłĶŖīÖMė€öA¹ō¼. ¤ ÆYø„ß@–ŪōZńŖīĄ*ń;Œī—']Ž§“† A½ fö 8ōčĢī ‚ėĘŌśłéłH¼ W5šĀå•Ó>’{õžYļUģļōpõņ_Ä H š`@]FÖņPZš%sš×lķ5d’DV’EČ ł „B¤_śA9ł5‘ī,pėZłé&ų.› £Š†”ŗˆĒ»’mÉ’“šµ”ķēōņnš¦łčŅG¬øÖrk 0 °öõuōĖļæ!ģ>žģż>†šHĮ1 .­v:ūsgśß%ļ źėmö$=ō’Gś Æ’†(ćšĀ«æ3ņŃ¢ļ“ń¹gī5ņÉĻL›‹ ] ¦īöĆ<õęōī(©ė8(ś łĀ ł„Ōļ\Ņ€2Ń’CÆļ'³ģzAōŃBņéėŅb ¾=ˆa¤C‡GÅhó›ńS3š±#ķ®ČžŒ«ž(Ņ£ĄäM 訋ū4źł—²īļėfŖų`h÷Uü "(ā/Õ"my™NŽšjļķϧņR’ļ}ja-—hüŸĄĪ Ż~ ö+¬ō ļ ģß”żA2ż/FÖ-a żņ°ūXū‰xļ@0ģ×ōõ ēóu¾aa Ū{'Ł’u,Įņn4šŹšK ī°-"¾šį ]ļ ,ś u÷%ķõ¶!ļ?¹ė=©łügųŗ… £ķ jOžc& ”€žļF’ģŃ óĖpńģZ¦^)™Ŗ÷dG ō[×ńT šŲČģ#ČżäjżĀL‡An­Äü ūŒ īżnė†Ģ÷_Nö€ .„ ¾E”fīG’ŘBń.fī0čń†ļµAĻ?V3„oń %ę 3r÷£µõÆīЇė³}üĶÓūU§ĄL†-ļü²Šü#ČļĮ‚ģÜōv•ņ®lāģź·R÷ō¶CĆó]SńE-š-Wķ/,›l#[ĪhĶē Ä% °ųza÷Ģ/ļ*Ä릂ųü÷a © &\ņ€ģ I.£xšī—ķüÓņ÷š?RWõ[]…üĄŃō†Äņ?—ļ„XģŲ±üŃ,ü"ø OŒŸ“_X2ż^tü[Ęīä¼ė¦öƒõE‡ ©Z ʰzĘρI2AĻń˜'ļ©RńólīUk Ó’*]a“ ¶— Z"ų•šöĶsīYnė#‡ū]æśk?-°pŽćø‘Ēż¾£żS³ļh˜ģ5ōI»ńę»lŁgĀZ—*ŚĖéó’±ń6®ļÓÜģȉG” h2V¢Ÿ W2?ł6ųØļJ“ėąųĻqöW' DZ `“Ńß ‘yķ’īš|ī²ņ—BšŅ£"•Ē8>Š’ņf °BõkIó˜ļ÷ė—fü«ūᚠø£²īåīŪ›żĆļü˜ļ޹ė¾höž—ōyß 7Ā „ną ņW„ļÅńļĻķ&\³»Ż{ļ v3 Īq§DłĖ‚÷vŸīmBė ’ś]ĶłW0 ¦õBŌŁÜo供ž®š&$ķ•ó„IńšČŽ’,ķ|v䐜[ į õ]ņ>™ļķŠž’‚I/ņČ÷”9 Dė@ś ŪųTļnģjēöŠŪõ÷‡ —° ĘR‡+|X„øęš–Ęīūńė2šķ+”pZœ¬Õgõ O“õ-üō€Yļ‰€ģ½ū” ś§5 –3˘8Ŗ­`ž§˜žlōīē6ģÆõß©óƓ €Ü Ņ_ÓBšÊņ‘Qš”ĢšŪķ÷ €ŖgćU¦œ ŅŃĻłŁžųעėķś‚’ųņ ”Jdą0C’Ÿw’;š@ķpAóÕÓšn®!ŸŚĢA¹Łśj ‚õ÷ŒóÕZļētģ.Õž £ž?‰'`†‰ 7(ąÄś‰ś¹[ļ­ģ%®öČōz†éq Øūė¢äHĄ@ņčqļįAń©¤ī ¦k~c0Rw¶ć¤· ģGö †ō˜Pļ± ģ»ū@śĮ} j„pŠY*•’ļE’ķļcßģDøō‘ĮņŃ.VĘ „*¢{ģšJ|dó‘ōš•†šŚiķ'óžwźžEŚīīš_ pĶ«(ūįśńī|¼ėĪųD÷‘ ›=Ć÷3"Æn<Ę‚ŅšÕēķoŃņך%»Ī}žå’ø %Œ ž…öÅōU„ļ…qģŒšżbż*·Įzs GSÓū”Vū Bļ[ ģĘčõ įóö[¾ }^sŚiҰņåQš% ńĒXŚ+ŸÄŗŃÓ Ļ ¶‘÷j$ö¼6ļ­ćėķļłHĪųu¦ å&ŹĆeÉY<ōļcķ’=ō+ņūK? iPt[dÆďó¤kńˆšļķL‚ž:XžCōńÉYŲ c/ŽUū>rś˜tīā˜ėŒųņF÷Ÿy ’hŖbśQ۟@śĪšo2īœņ¦Ÿļ|K¹ńģÖś ؑ wŅö“6õs>īKė‰±ü‰<üd…D<cµɒüb!üxŽļ7¦ģõ]<óoč„nAžŚśI5ÄśIóÉŹšŖ˜š»īß"ĄŽĘ¾°t ž~ Ėē÷Žöl÷īĮėÖ=ł±ųy ŃŃ ŗfØ‹eŒQ%ŻļŖųģ *ó„ńž4 yo ?=}æ„źóX¶ń¦RļS/ģ­–żąXż³²°¤„T'eü8]ū'dīi0ė³÷}¤õ% K8 šĄĄē£éµW¢DńD\ī—ńäĢī’ÉĢūMŒ’Į …Č €‰÷€£õ}īF Č©§Ćūē-ņćpšk}ńhE器Ģ•ÅŻĘƒĶ ‘B a„śŌŁłčtõœóȁžš"žĄS¾Å Żī‘’†Łž’§ż›\üīd¾UŒ¹± J¬HÓA¹ż8}żæVž×'ż½ "§½%†fåŌ1ŹžÓ2’ԈżØåüŽ÷ø_'SC+ėņ»Č8 Öe’›ßV»’ÜŖī“āŻ06oK‰½°Žݾ<Ö³åó’ę)tø’uq–!Æ̶5¾Ņć/Ą>¤X“®\¬Öżžī„4‘‘å#­mź•Ąo¢œW<K**~Nė€|Č•,fjQqdĮŗµs3 CŠüļ<eF¬ %a;īG6‘q«0:jåž·(°’ŽšD{xy^ąošuxØžÄiJöHĮĒ%ĮÄąēŹa¹•ųsó°Y©ĄĆo”k•½Ÿˆ±Qčq‘S…J¢"ĪŖŹØŻݶJĆy6Ŗ_抚 @ƒt¤ę3ī2­ĢŅX.3OLJ×P8|‚i|vƊµ"Ī žŠć/GsU.›=”fVO*0,+^JTq×¶±ņė¦xŃm t*:3>÷Ó õłx.‚.©Uń… ‚ Ä9³ T^ĀÓ"ų×ļ9;·AŽŠs~hŠȊżI¼¹ßć źØšüжa OzPņ`÷Ų÷ŹsÅ™ņź[ėJäX` ±ŸŠ7rdžĖńiEń&` …ŚÕī嬼œĶMÅH·²> :Ŗ,–CČ£³Ā[+_—ķŅBÉ+éŁņž„æū„>°÷ķ[ģQŻ/Z<:¬¢Ģėcs{¦ęœvB(ŪB*?2·ÕÓ:„vÄéįč…ŃŌI™Eõų-}j‘ŒĻˆ‹™^iGf ZĮƒPb*‚ÖZ}jĹB®ZóŠä¼X­ĻŖōud܅k…¬…„Ęś¬õ·ŖiŖĒ¼é•6²ČyBż‚–p\°£’ŒBžM u…½Hq4k¬WŠłöÕķhó¦ ¦Æ>Ē«v/pBƒŚdņŠ1uż§Y°ŻóõŸŽŠ•m$r ‚i1F+ĻvĆh”Æń'c2š w’’¾nUPŪ—„:] aż< Iū,a' K/ėÉ1ÆvŪŅŌAAF=š’Ńź’ą9C"ń£ą‰Õ¾C¶oy;!Y'j%_gŚE¢N‰ŹeRbAł’’’##öeRĆUM>Ė,Ļ /÷’ ų’ˆÕ’©Õ’2'O†iµVæDSł’,ń’ń’µķ’²NøHŖ€½u NĘ@<,­ œ_ ł’nņ’šM-GB£œ›a[QIž’š’jö’Ÿ?§7ƒhUg“K«IÜ€-Fō’(ų’Iģ’ł#æ (U`Uē!ź—ą’7Ķ’°ā’*Š’3¹†pÉyoŗsūś’—ģ’Ę’:¬’ŗņ’ ⒈*ž.˜GĮSl# oķ’KŌ’7Ū’iĄ’łą’¢Ū’W+ē93lźunćē„’l‡’Ģ®’›’ēŹ ?F“S'bü’GŽ’½r’—©’ŲŽ’nq źH9X‡>yD}Ł’†Ä’o’ n’ńĪ’}¼’Ž&/·;€I‚ö’_ī’»’Ęp’½£’ˆ’5ś ]:8G¤oī­’—’߁’ b’[钙ڒ77S>gī ŠÆ’z¢’į}’ņ`’ŵ’‡ ’gTrlĪŠ’oĢ’£’Œ’c™’6€’.ć’uŪ’….Ō5Šż(ž’ŲŽ’Åm’ W’Ć’ø’ö:£?/ ?äŽ’ķ„’3w’īa’j”’`†’ˆé’!ķ’d?¼Iō’^ņ’+o’!^’±t’4d’éć’dć’ŗ(k4†ģ’Eņ’³Œ’0x’ŗf’0š’c”’bō’łž’œ$L1d®’£­’€m’ž`’ģć’IŪ’µ Ķ|°’č»’†’‰’嘒J’ܖ’·Ž’Ž‹’¦’‘¾’,Ķ’”ū’ĖIÉ’QÄ’š’’懒PĀ’ Ą’9Õ’¼ß’ Ā’œĪ’ŲĢ’\Ļ’Æ’ŸØ’tŒ’ˆ’ś±’+ø’FÜ’Ļę’•Ų’ÄÜ’ «’§’ ’Ģ‹’HĻ’IŌ’‘é’ķ’cp’™k’j$’6’žr’w’4ģ’ų’\Å’}Ķ’„g’bd’ńw’‹o’+­’į«’:Ė’±Ō’ Ų’Éā’^Ą’Į’՚’„’’˜‚’}’Œ’Ī‘’ˆ“’ĒĄ’ä¼’…Ć’ģ³’%°’’Ī’õĒ’šė’Šė’ęń’Dų’Ņ’”Ö’¦‡’…’nv’@s’¹’+½’ź’Ųó’Øć’/č’ä”’Šš’™?’n4’†9’A9’mŗ’KČ’å:ČHÕ©”{’śj’œ’™ ’ŚU’²]’ŅÄ’vŁ’#& Šę’ĆŪ’Ō|’äg’dJ’ĘB’Q™’Ϧ’²õ’ųŲń’®ó’Ś¢’²’’£i’ŹZ’›‚’ż…’GĄ’„Š’[Ó’¤Ū’U”’‰’„8’£&’T’BO’Üģ’³ł’H)ś6\Ø’%„’Ö ’Y’7G’N;’4Ž’å’„³*-æ’Ä’“X’3K’åZ’*J’m»’Wŗ’)*÷8Ū3Ü?€“’¾®’Ŗ5’%’³Y’ÉR’JL`ˆqMõ’Ö÷’IU’>F’ÓF’«8’ž·’©¼’Ū(# ³’«®’b’‹S’}f’2c’‡Ä’'Ó’&é)‚ć’fę’“N’AC’—%’b’Ź®’?¹’Ė=+R(¬2‹’Q„’„’¼’^S’ĮV’“ā’-õ’X‘+¤¼’"¼’U<’ń0’oD’A’'Ė’’Ų’žt0ā’Ąē’ģh’Æ_’[>’ń5’š’c ’’’9LÖ’ŗŽ’yZ’5S’i<’Ž0’§’˧’߇#± ƚ’·”’µC’N4’hP’GJ’ØĄ’ōŹ’F$9Ņ’Ļ’?A’p.’f’{ ’k€’”„’ŽĖ  –¤’”“’~,’Ķ’@’ā9’­»’8Č’cõ’į’’Q¢’˜’[G’’.’üZ’»K’Ŗ’n±’Õā’„ń’bÕ’ėÓ’”ƒ’£m’OP’Æ:’S…’ø„’Ų’Įē’“Ō’ŪŪ’Yv’Żf’ļ4’‰’Ug’’_’ŌŠ’”ß’ZIcČ’Ā’ūS’<<’Ō.’~’ī“’ā’ŗ !õõ²r’`’Õ’+óža[’Ä]’„ E%l@"R^Ā’é¹’^)’†’!’’…·’ Ė’—:kT1LK’,8’¦ ’4ūžŗ™’y¤’ø*rF |’p’Å0’˜’j’†j’ ś’čƒ;ƒRĪÉ’ĮĘ’Ę:’%’CS’I’‘ć’Żō’Ÿ/ÉJ„ž’·½•’<ƒ’NL’n9’|†’̌’ '9AJZj¤’b˜’½%’ŗ ’źn’ši’„Ūf7gNÅę’Wä’R’“9’Ž’’™®’%ŗ’ĪGGaĒF ,P’‡=’F;’W$’*³’ė³’Ø #b„x¤’Vš’fD’W+’?b’PY’æõ’‹ī<HU$Õ’Ö’éQ’ļ:’āJ’É8’ҧ’ڱ’q <%ĘĖ(gŗ’÷«’pI’j2’)S’ńQ’ŠÓ’šģ’•4uL¼ż’bū’do’˜Y’«3’­(’¬‰’|š’‡ Ģ)š-E8ÕĆ’2µ’7L’½;’†Z’a’ją’zś’Į5 Hså’éß’[’,J’gO’¶M’?ŗ’Ļ’³Ÿxė’üķ’׉’9{’²Y’gR’”’%°’’i „‘·ž’E’’³G’”:’£i’ćq’Zß’ł’Š0‘B:ßł’Žk’(Z’Ž0’Ž.’“ŗ’ĶĻ’ĆSĄka3Ū6›’š‹’‘F’¢<’ś‚’ ’½ŸŸ>.Lõ’œģ’½t’€g’g’’k’Łė’‘’CļVįż’Kż’!’’T†’v’7’ŸÄ’^Ų’¾T(ä ²|¶’ܬ’ō{’Ęv’²©’¹ø’č S%O Y/p×’CŅ’ż“’­Š’ł‰’ō‘’Įø’±Ņ’$%;+¤.Ń’šĒ’óm’n’Ŗ’É©’–#–;ÓOYÜ’@Õ’ßs’6p’öž’ź­’ˆs3YŹg^C&–’ž‰’ˆm’q’”Ņ’£č’ShWY)[Ó’)Ę’ÜW’WQ’!{’=‡’Æh%…aNhžś’•ļ’ŌY’FL’ÜV’ŠX’ 뒈ś’šJßTIŖ”’ę’\[’vS’3‹’d“’o -•UTeAö’ū~’ŗo’vs’Šo’Rę’Ģź’Į;<^Ńl»’¤±’ē{’9y’Öŗ’¼’`9ö3h; ,»Ŗ’ż›’×T’¶R’Į²’<»’C”FNXÖK¦ī’2Ł’Fz’)n’d’ķi’”Ń’ŠŻ’+dėcBg€UŸĒ’œ²’2N’+G’"Ž’Š–’16?å„‚4#%†Œ’ž’ßt’4s’äč’뒘RŖO•.Ó%„’?ž’‹d’Ļd’YĆ’%Ę’.M(JfSgI)Č’ģ¾’8a’b_’zŸ’¬”’+ķF :ū’čķ’ ˆ’mƒ’æs’w’š’¦š’Ül`bœRaA2É’ā¼’åu’Æs’ėµ’¶’{8ś0KjLYÖ ż’Fz’Ÿr’ƒk’§j’7¬ęy$l¦<„+Qø’­’¦}’õx’īŹ’¢Ä’‘XaJĶlćZ2Ī’’Ā’?E’ØC’š’̚’)\¬T6}lœū’`ź’­”’¶™’«’«’~ó’Nņ’¦HA 5m+Ōŗ’E¶’܉’ŖŠ’ęᒜᒭ8š2¦—Ć’)Ā’ų«’²’Ó’‚Ł’=niB`<9ü’ ū’D‹’Ȕ’Ōž’Ó¬’Pˆ39Į6‚4ūĆ’ŚÉ’/»’Ź’ļč’īö’õ%*+dCĖBž¾ᣒް’˜¶’EĘ’|#:;c;Öö’Ę÷’õ¦’°’|ø’OĘ’Ń."^DÆE@–œÉ’ņĪ’K¢’¢­’»å’¢ī’H}G>5ƒ.Č’°Å’l‹’C’’żÅ’õĪ’79Ą9Z/Q$ @¼¬’!¬’青£’Ęż’žž’īVPNī"õ„·’ ®’Y ’Ÿ’ÜÜ’ČŻ’/0z*„E¶8’õ’¾½’Šø’ąĒ’™Å’,"ĆWkJ9#Ō=·’)°’Ÿ”’/ ’cō’Éń’oYQP/]ńOĒī’*å’N¤’*¢’ Ų’dŲ’Ć8Ū3°WFM8 Rž§’ß„’x®’ʰ’9čLHD7Ķ1Ū’¾Ų’w©’`«’Žļ’™ņ’H,H‡;9¦Ü’:Ż’CŖ’ĪÆ’Ųé’ąļ’^=ä>žFŅD3˜tŹ’×Ļ’|°’%ø’ń 7XŪX¼-[,Ź’…Ė’~°’˜¶’¼ļ’ķö’!.r1),“+„ü’Œü’ É’ŪĖ’ÄŹ’ņĶ’”_q>=*ų(Ļ’aĻ’ ×’hŲ’ >/.<p8ōŁ Ią’Ż’Wķ’Bź’)'a#5.+åų’j÷’ųā’Óą’qż’ų’ĖX–5¬/ļ6Ń3Xū’ ł’¾É’ÕÅ’]ģ’>ę’ż)b#©*›&ü’ü’ć’Īā’®ķ’é’#»=]8hF'GÄķĢ’Ķ’ū’:÷’]>'::X9h ń ļ’ŗó’čõ’t÷’’·4<Ę;‚?mDr fÖ’’Ś’€ü’>ż’$4u5¹'Ł,óó’Œū’Nß’;ę’øü’cU'*ó1*6’~ņ’8ś’<ö’8ū’ $X&ź,Ż0L÷’’’Xą’nč’ -b5O6.|0Ÿ„tś’Īä‰Ä!ā"‚>u=£"w#ā’Ųę’PŽ’Wć’2U„<‘8.¬+¼ „ę’Sź’9ö’÷’–,)äCY?ņē’{ē’oģ’Qī’Š8a#A‡šoü’]ż’ö’¾õ’›#† s8Ą5Ųć=ę’‹ę’Ź÷’čų’ 'k(Ó+n,LE„“‰Õ¶ē4g6Ę(¤,¤ų’ž’ī’Łń’ ”\3Ŗ5k,\1µ€Ą3 É 'ų!Õ%æ8V>&ŗ$]ī’=ö’ž’&-/ū9½<Ō&õ-‡ ÄšH ĢRø2ö4¢<RAbÕ…ģ’€ņ’&R/1ī3Ś5b%~)„F, č Ƽ:Ī:Q5U9Ų {ö’Q÷’4@ņ;9 11sĻ÷į Ļ -(…KZH20Ķ1üü’Ał’$ų’%­MAå<‡0d0Ī)Ļ ź¹Å/r,@ä?–Ų"žö’ ł’‹?,h'½=Č;t-Ķ1JĄŸ ö ¼°ć9³8F³I4O".ō’Qś’› Æ >5¶4:D<Ģ&°-P!¤Ńü%_'vD9GŠ>FÖ‰ś’QōA!śAQD:›?e"ź*•R®X²-Ÿ.čI%M~5X=y Ÿé''?ŗ?”409…d%Ų¤N‰43™IŹIE/œ2‰’’HŲF¦0 .ØFįD12”éš4 š#a ‘D¢BL|L:#³#8ł’Īö’S ¦6-0D„AŠ5˜6ó[ I  Ø‘IńD¶O:Ni)w÷’˜ó’’ā Ł9€5­?K>‘/[/Fč*“ A%HŪJH©@ķ@ŲAń’øģ’H;Q7E88K$ŗ$ō¾ ń  t/Õ*WMUKĀ44r’’ūż’:ņ’Nī’Dńi@J>Ž=G=±!ƒ nüx €X3(1ēL(Ló(ż&Łō’=š’øö’ˆń’$Į!d>•?Œ0y1“+R Ų†> <rA_C˜Šģļ’^ė’āŚ’’ß-D)@;ų:)*ņ " <"B“?<=5¬4Ddš’śģ’‘n ų1Ü0R4F4ä! Ž 4Ž Č^&ü$č>œ@Ļ-„.¶–ż’pó’eī’9u,3!4ā2Ē4 "æ!+  ”ē*¬*@5CŠ&õ'™ü’‹ł’nś’öõ’m?a69r0ę2±ll h :^56öDÓG§ÉNö’×ó’Sćü’œ$9$—5J8ń,‹.Z)O ³īō¬=ā?Ź?BŽĀš’Āķ’ŪE)--é9”<Ś,.ŠōžWlGJõ>Œ@V¤Śź’śē’-?7‘8õ6Ū86 Ó8&,3-ILn+¤,ö’wó’«š’nķ’öó'8Ā:Ī1[3_'|-±ź9Ü:ŸGŁIØDīč’„ę’X÷’lō’,$>$e6Ö8ū*Ē+\üē5V;:¦;Ä>w? Ö Ęč’Gę’v’’„ż’ź)=*I46°"„"p A öĒöÉ?ŁAR3m3ŗż’ ū’ē’:ä’¢ Ø Ą1r2—1t2é7&Z&]·&æ&ÉDßF‚)Ä)•󒬚’Zź’zē’ÉĮG3É4õ0N1Ésü’1ś’o ;4/‹/Š;N=¦ Śē’Ī咹ģ’Uķ˜.é0l"ņ" 3ž’ ü’Œī:4u5ų3Ņ4./ėć’äā’yś’Mł’&š&3,5a!4"Q ¤nØ‹9ö:½/ 0¼³·ė’ńź’.ž*g+q1S2°ÜeŃ$s$?VA[(“(&ų’]ö’'ź’ę蒚  y283œ2v2‹Fś’”ł’Xq:**¬<„=vėē’«å’’ē’xę’xéz6Ä7]*=*Ā›»ó’Qó’_ ± ™2Į2 9D9  8ć’ć’Éó’öņ’< w ’13ķœ ­Ń½ü’Uü’1WT8‚9Ŗ.Ė.Ģż’įż’9ć’Ūć’”ż’ž’H$’$‡)”*¦įšž’Øž’»V !7Ņ8Q ģ Źķ’{ķ’Ļß’Ką’)\£/@0«.ź.$ōöų’Āł’(F(ø;ģ<™ŒFź’ź’=ē’ē’x‰I.S/5((i€ü’@ż’ Ļā(ą(Ų3 4b @ ¤į’ļį’¤ķ’Mķ’Ę5ķ-&/S"Ć"ģ<ł’‡ł’õ " i- .;/1/lņØć’Ŗä’ķ÷’[ų’Ąō+,XŽ=Š7a×”020!½!‰õ’Öõ’Ūå’ ē’5ŸO)*Z)*7§źś’0ü’iņ$ų$Ō5†7‚ŲŽė’ģ’ē’Üē’ ¶Z*«+õ#$čĒ Aö’»÷’ )‹)[4[52”Xę’ē’®ļ’óļ’UEā+@-1ŃZ‚–ż’cž’½ßK1Ą1...[%Ęß’¬ą’§ó’×ó’!%!…3Z4ńĻž’Žž’;ö’Kö’É‘ 2Ł2µ*Ą*Eż’nż’Sß’!ą’Ęō’eõ’’—l+¶+e’’ž’’­ś’½ś’‹š'é(BŽĶņ’ōņ’Ńä’jå’fsU!ö!Ņ ĒŠłš’ņ’kū’ü’óRÕ+ŗ,åź’ė’ å’å’@:b"~#č|Ą>®ó’Æō’pvh ē £,- lä’Nå’U钵钏 :ę!Ä"`’’@’’}ń’Ųń’ƒ>%ü%b%s%ł’`ł’€Ś’Ū’ń’cń’|f< c Ó : įų’õų’Pł’ł’"3¶!ų!ģ×tī’*ī’ Ž’Ž’»÷’ą÷’Q6åa`Rõ’fõ’’ų’Tų’:š­³UbBå’å’’į’Zį’n’’‚’’ČŁčŃž’²ž’`钇钇ó’”ó’Ś½.*,*ßŗē’ąē’%Ū’Ū’’ó’«ó’„ļv£Ž — źõ’ö’yų’Źų’L}yŽÄż’śż’~ā’Ķā’Kę’vę’ł €²t².ž’Gž’Ķļ’×ļ’b…¢!Ę!ÖŲĖų’Ćų’°Ś’øŚ’nē’r璚 € O"-"K60ų’ų’`ę’*ę’Čü’Žü’™$f$‡'G'Oż’’ü’]Ł’ Ł’ä’Äć’ō š W'ö&”=„ł’?ł’ūė’’ė’Ę ] æ/T/“"E"æš’Tš’¼Ų’YŲ’]ņ’öń’<Ńļ-’-±^Oļ’óī’3š’Ųļ’ĒG77ŗĆå’zå’Ü’ÓŪ’ ’’žž’)^)a202‚t[é’Vé’%÷’÷’ē(Š(ę:ö:Ęį’»į’Žā’’ā’¼ ä K2m2C/D/«ø€č’“č’Ege1^1Ę4Ś4:w ā’&⒲ī’- 1=1 %%šŲ ÷’÷’9F9A9œ)x)ü’ü’“ä’Ńä’ś’łł’”#^#×4Ė4›œXų’ų’cų’ų’Ž"Õ"½=±=V!ž Ió’÷ņ’;ę’'ę’ńÉ(/Ā.x;); üNš’1š’Ä’’2Ģ1“@Æ@+ =ē’Ńę’Xź’ź’l‚m>S>Ż9…9”ˆģė’ģ’,ĀA‚A#C.C§ß]ć’[ć’ō’äó’§(Ū(IG§G3+3sėķ’2ī’“ń%M/M²<³<{Ł4å’¢å’CW 66bGĪGĪ%2&žų’ńų’Ļū’Ųū’¬."/ OWO<3%3 ž’'ž’Żė’Cģ’[›BqBĪIĶI!F!˜ś’¢ś’U9š8ŠNĀN % %Ŗó’Dó’8õ’õ’P m žGĄG(D®CvW ņ’ņ’UL–K.RR^b"ģ’§ė’ų’‰÷’/ /ÖR¹R¶=<=t  •õ’ƒõ’ÖOpOøGPGī’’ķ’PÖ¶4]4 K/K„0v0CĪ"÷›+Ź+eLHLo66S.ó’Aó’,\@ó?[BTB.d€ł’Nł’² R >>„P—PŠ'Œ'õ’õ’ņó’ēó’6R„CBCĀ>S>w/ł’4ł’Ø+Ā@@@LGCG|eÕó’Pó’Ńų’aų’""\A"A5h4^ Ķ ü’ķū’’+\A›@š<%<Z ' ÷ė’sė’é&.€-RAģ@A(Æ'Cž’rż’‰ł’šų’ź'Ø'’LL372ū’ƒś’ē’æę’å  ˆ;—:bBčAČnŚó’ó’Zū’ś’Ų*y*ĮEZE$?#żļ’Gļ’é’Ęč’FŪé:K:z< <£[­š’\š’MĢó4T4ˆA;A~Sī’xķ’Āō’5ō’‘œF<’;ß11`Šó’Äó’„ū=u=N8*8©ˆ;ę’ćå’”ś’)ś’a--„DKDL&Ū%ų’j÷’>ņ’ßń’¹vĢFHFq1Ę07õ’¾ō’šŽ’CŽ’*‡ņ5%5ĢBoBŖp$ī’lķ’ö’aõ’,11:NĖMŅ%%ģ’–ė’Éä’~ä’õcŖBBU<į;¹ A ī’ķ’*޳==kGG ¹ę’uå’Zó’öņ’x(k(°HqHó0i0Aż’ż’ƒė’‹ė’ó oFF£9«9Æū’¦ū’GŻ’ŲÜ’’’Āž’u4Q4ÆCYC«ļļ’»ļ’}š’Tš’ĖĄ‚@o@­)o)qļ’`ļ’0Ü’?Ü’Łł5Ģ5Å5õ5Ż ü lč’Jč’śõ’óõ’ó) *œ@~@RŖį’‡į’¾ß’Ķß’ĶĮŒ;u;ė,-Ėś’õś’«Ż’£Ż’ś’ś’c1v1Õ:ļ:ŲüĻŃ’õŃ’vŽ’ŖŽ’-x,8O89)óė’śė’?Ś’Nڒɳ9940W0&ļ’Tļ’uĖ’Ė’ī’ī’]'t'®:Ā:'Cä’<ä’HŻ’‰Ż’²Ī??T&&»å’Üå’pŠ’YŠ’až’fž’»4Ą4z7n71VaÜ’ŒÜ’āé’šé’}%¹%vBøB;<$Ś’>Ś’]Ö’«Ö’m š V=y=&1„1ųł’_ś’¤×’ā×’źó’+ō’į0E1`@“@’7©Ļ’Š’?ß’øß’å9AģAI#Ė# é’ųé’ĶŲ’Ł’^ŲļA;Bķ:;čõ’Uö’qÉ’¾É’Œķ’žķ’ļ2M3?I®IVueą’µą’@Ü’ŹÜ’`˜įLM}1ū1śę’Mē’śŹ’-Ė’×ż’Wž’l@ę@%IcIk˾ْؒ2ę’Cę’.!.STSj"—"Ł’]Ł’ĀŠ’LŃ’?¹÷MNN C†C–{Ó’ĮÓ’Šó’šó’s; <ŁNaOAÉ~Š’Ń’Ż’ŒŻ’Ļ$ż$R>R4“4Wń’Pń’\Ö’wÖ’”ōbF±FåC1D3’’–’’FĻ’‚Ļ’bķ’qķ’Ć2ó2ĮMNÅ"#×č’Ké’]ä’šä’p LLL»4ę4`ī’?ī’ŪÕ’©Õ’õōa@i@RC|C„2į’–į’«ń’õń’t/Ļ/;L|L“!ź!%į’ į’8Ś’×Ś’¹aKćKä;Æ<TŠ)į’į’ķ’’6V?e?™NČN/˜¢Ų’Ł’Ķč’Hé’ų(–)K}Kk/­/Lų’Øų’ā’hā’Ā  ūAŒB‹>D?2ž’Ēž’/Ō’³Ō’üó’vō’S00ģCŻC¶!Į!ń’"ń’ē’ ē’Ćń#DuDR3n3ęō’ūō’sŁ’¬Ł’P\ł5ö5Ō>.?įGģ’[ģ’Qė’Ļė’æK·CÕCĪ,ķ,Ró’§ó’ĪÜ’ĪÜ’ć’’Ļ’’4r4®>ę>OD#ę’sę’ķ’Tķ’m \ é?@}Ōā’Żā’ęÜ’Ż’ † ä8 9ć3ń3ŽżŪ’EŪ’ō’čó’¶.ņ.Ģ?@„a?Ų’IŲ’4ą’mą’BEB B‚+Å+#ö’[ö’ÅŻ’߯’Hsó;)<•8¬8Œž’¢ž’Ų’\Ų’Zļ’¢ļ’ą&'?@Æ@ąLź’(ź’į’Rį’Ą+Ø>¹>Ķ+, 풲풳ӒŌ’Óü’ ż’>4É4>Y>oSšß’ ą’ē’1ē’Ž Ó (BXB¼ņą’į’gŲ’Ų’~޲CC9ž8Ō’’Ė’’Ū’Ū’€ö’ö’·3Ė3_DvDóąDŁ’ßŲ’mč’ č’<&ė%(JšIŖ/B/oō’oō’ŠŻ’®Ż’ļŖŠMMšC~Ccū’ū’—Ņ’kŅ’”ų’žų’õ;<QLQ#H#éå’#ę’åā’ķā’Ź"¬"WļV“8R8Uģ’쒹ҒŅŅ’VV!GGėN-Oƒœzį’į’Oš’aš’@4™4½W’We+ˆ+!ä’Īä’ĀŲ’ąŲ’¢~ÉOP#IIļ g ¢Ž’{Ž’(ū’ū’ķ<}<jP>Pš¢ß’/ß’vä’ä’Ķ&Ē&+VėU=½<¹ū’śū’Ū’nŪ’ĘrF€FMŠMõ œ śŁ’…Ł’eš’©š’9222U£TB2_2mš’dš’ōÜ’UÜ’L'­N”NĘEHEæ’’ø’’īÕ’8Ö’āł’¼ł’®<®<„RÓR¦%Š%5ź’Žé’5č’*č’V$Y$RÄQĖ4n4ń’ń’ŖŚ’nŚ’z ¤6EĘDäJ¾Jd”Śā’_ā’`õ’§õ’·4^4ĒN[N#j#^č’ č’Ņä’%ä’1seJEJ(=‰<sč’>蒈Õ=÷<éI JiØć’øā’oó’ŗó’,k,žIŠIć.C/›ū’Ķū’Bź’%ź’ŁŹ†>Ž> 77ŌÕ§į’šį’p¶X7N7C/Cęį£š’š’Ęō’nō’% %H¼GY,$,Žō’Iõ’…é’qé’:ƁCzCś>»>,“sņ’Eņ’åź"5 5WF]FÅĮüė’Šė’ó’Īņ’Ž%&%ćE˜Ew3J3āš’;š’Ir_<H<ŗ=×=oé’üč’Šų’Ćų’@,~,ĄE™Eu)’)uü’÷ü’©ó’³ó’ķĶŌBīB8ž7šhYä’Wä’āōr:™:¬DæD  $ś’4ś’¤ū’pū’Ą!j!‘=ˆ=8'ų&”ł’=ł’Ąó’õó’ļÜ9>Ź==1u1­ļ’ļ’£°Č6’6Ø@@ēäNī’æī’Mų’ ų’ž)ę)FzFł,Ī,’’Łž’¼š’äš’ī:S:…;²;Nbš’{š’lž’ž’’'J(9·9E#)#.D«ü’öü’ę»7Ģ7-¶-Ėįö’Ļõ’øū5Ö56S5ž &÷’%÷’*Ą›,Ś,ŠA/Bķ(®(ś’ś’³š’Åš’īs =½<ī56ÓŃų’ų’ZŸ3Ģ3 BēA>ŁÅō’{ō’oś’3ś’*#¾"= =·/B0;Up’’—’’VÜp6=6R:é9É…ś’Žś’›  ^1+2Ź=X>—&m&j“T`Ń%’$s@#@Ć0å0Ļ}ų’+ų’„?š=£=ō=·=‡“<ōc Ž `,b, @G@%)+)O‹¦ü’ųü’^ <#<ą33rļXĶ«Āe22Ō:Ā:Ė‹ü’¾ü’R›'“'ä:;z*^*« ł “ Vk6¾6Ą56:ū?ū’ū’A @ V//į;Ö;9$†$¬¤;SÅ y9W9W/A/ Q ų’kų’)3Š3y6ˆ6“†’’’.O&…(((k<I<p&!&’’Mł’-ł’D"7ł6U.b.u}‹’’‘’’ų  ń-ś-Y;l;ž!·÷’Ą÷’"ś’Iś’Š! "r:y:›&²&ūiū’.ū’Ē–¹1¦1ć3”3ćŅŗń’ņń’%q&š&Š12ėēåū’Ōū’ž’ž’c=›4‘4¢&Ė&ņšīņ’õņ’l s 5/Ū.ł,,x / ų’}÷’Õšģ&'ö3Ž3hSų’ ų’ó’Żņ’xLŠ/ė/×$œ$āČõ’wõ’Ģ ó [*n*;0„0åé|ņ’6ņ’<ų’Sų’?,,”čŹ/šū’ü’ļDą,)->&/&čä,ī’Kī’’’’’B"U"+U+K‚.ł’1ł’Kż’Xż’ø/{/} R @ł’Wł’]ī’<ī’1  š(%))ö(ļš¤ų’Æų’›hÕR\+^+ ū ś’•ł’sł’‰ł’„§-Į, (¼:ł’óų’Ē Õ &b&]**ɶ©ł’ļł’É’’›’’ķ…*¼*&Ė’’‡’’ģū’źū’Äœ0*ų)°$½$†“Źó’üó’™Õ[#­#¦(į(xeż’ż’Õė„ju-^-Y"ž"tH×ų’“ų’7 N .'Ą&õ']'łāķ Ä >!ß!x0ó09#Z#Łż’ž’՝€/»/ø+Ž+“}3‘³ č ·)‘)[7m7×!‘!A¾&’’’’H1.5+5į.‰/„ĘbŽ/ž/“:g: E<7æ'$l$é8ł8/ˆ.Ō×p¬½ē6l6é8·8>å3?=ŠI0^0ņ:;ś- .F5ķl%J%Æ<Į<c7i7Ņ¢O M ˜sŲ9C9=Ū<6')'ć|u„0ł0‘F“F¾89Ņ‚RVv'—'B Bž@ A3'Q'8¹”ƒ 6q6õG$H144ļ±B[(++ćAĒA¦9å9z›9q°;:P:ś?@'L'  ;>Ļ3Ó3>B$BÕ/Ł/ngõ—%ž%nAUAA=&=d‹hE°‚n8®8¤=‘=š!Ķ!Ė 3 P:Ó+~+‰AįAń1É1z ņ äž’:’’ÓŅ“::u6Ś60ŁAŗ õ ć/ 0š>I>ī$ī$“’’É’’™ü’ķū’śÜ:Æ:e.Ń-C Æ’’Ū’’ņžÜ1¶1±4ļ4ēąœł’ ł’o¹“$Į$ž6¾6²%Ī%QOk·Žn2s2 1å0Ņ~}÷’7÷’ÅĘ4*X*ų4;56“č"^ }E3±3I&½&XĖ÷ó’/ō’… Ī `.¶._2^2•„ü’ēū’M®²J\121oü’ü’¾÷’#ų’)ų}/d/M''!  Ųū’9ü’ļ w *³)83B39õ\ō’Kō’ü’žū’!Ā «5·4™$Š#²Ģ™ų’{ų’Ūn}/Š/Q1‰1Sxń’6ń’ÄĖń)Ņ)Š6’6)“tńŽż’Ćż’ z1+1)t(‘ Äö’yö’eÕ .113u3¾Ēvż’}ż’¹_##ä6”6 ż łś’Mū’wö’nö’©"\5Ļ5=0B0„ Ų ö’1ö’·—$B$¤4>4­hīų’-ł’ßś’$ū’вą3%4Ņ%Ę%8'uų’Óų’G b ż./ā0™1*ÄÉō’Ņō’‹°š'Ą'ƒ6†6¤Ź·ž’¦ž’…ś’5ś’ßĆä2ą2²+Ļ+É ī’Īķ’qÕv+!+0ņ/ÜŻ0õ’Põ’1ś’)ś’ ŃČ.ˆ.8÷ß÷’æ÷’ī’äķ’Õ ` Œ(,('#k#cÜgō’oō’Ć’’c’’ĪZ9,Į+ę[š’Æļ’Źō’ŗō’Źæ£(‰(ņ避’„ż’'õ’Fõ’ ’4 R –æŌé’ź’ž÷’œų’Ķ©<###C¢ūų’Śų’·ō’æō’Ż dŒ®ö‹ü’śū’Ķģ’Zķ’×(beLģ] ˜ œś’jś’Õü’tż’ėuœ$^$Ķū’ü’Åó’©ó’7 E X%9%"l!ż”Žö’°ö’[ž’§ž’W‘*(Ł' ‚,ü’2ü’Ōó’$ō’  ģ%‹&ļ! "L  ł’ł’Vųµō%(į'­ŚŹł’ś’øū’ü’ 5É$Ķ$¢rpŹ}ś’ćł’‡ W ¦ y ¢ d ,Ćõ’bö’ūž’Ą’’āże%J%ŖĪĮ’’ü’°ū’Ó’M#o"›_Ś=ł’ƒł’•Ė>ö!™"Ī›†¶ŚgW0&!"!s±³ü’;ü’s  å¤<¢L C FPóÖŠIF!³ ] Iž’ž’-ž’„ž’ćNSŖæ 2 z—$ßęśK" "Ŗz·2‡%ļó P!ckśē…¢źĮe$Ń"E t Ž ©ż’Rž’ßo‰Fj&r&Ćźs³ īĒŗĘ(3'¤!:!(M Ļż’Źż’½ Ā $Ž$•(˜'ęVåĢų Ę„½,Ö,Õ"üŸ’’i¦fg**)*sšF’’X’’ <%ö$ź33¢2£rR’’"’’Śøł+ņ+­$X%9  æž’pž’¦ ž „&+&¬,Š,¤Ø„ö’öö’žü’Mż’…“+}*^!µ!…£ …ž’éž’Ŗ6Ņ' 'M'w&Žv$ś’Åś’4³±ąĪ)@)žĢbŁćݳ­(k*"$“ ] ü’(ü’+Ž æ#+$Ä*e*ņĻE ué2Ÿ,x-]#č"C+õü’…ü’¶¹(¶(Ŗ)ž)#8¢9Éš V"<"2/ .ģ9 ż)D#½(g)“"“"$ ę ’’j’’Y‚_'†'ę(3(ų| éł’xų’ń‡\V)K)§2¦aü’÷ü’Äœ®'č'×"–# “~ö’Ōõ’YOj%B&Ž%Jš4D’’o’’)%”$‡$-%’’ō’’³ł’@ł’`  aQįiy { ōü’ü’ĖÅv™5 q · õ’]õ’ū’lū’ūęÕó­Āž’˜’’ņł’Oł’. āÓj<ōfó’ó’¤ū’Śū’xķ*!Žż’ž’Ń 1 PžŒ÷ļŁžū’aū’ÅĀ$†»Ń_°1jOyBJ#ż’ż’Až’Yž’Æö]Dōœ#h9ž’’’§®Ņl°:ę Ūł’[÷’»ż’ ü’€ Ļ £n81 ś’’Šś’\ü’H„RæmłE|ęų’”ų’Ī’’p«Kź@x ‘ ƒ’’ó’’c’’Ū’’­ 9 •)}Ū³Oś’½ś’ų”b$QKU  [’’„„ £Ķn ¢Ą’’4’’žž’Pż’ ¦¤[\ ÅG ’’"č:™ų% ’’’’X¾ Ŗ b; › ‰‹ž’Wž’šŒ&·ŽŚ …ü’“ü’Ŗ—87ā † x’ĶJõ Ģ ł©¹]¹ŗž’Ųż’į–Gož ‚ !O<ķø Yēq¬hßm“]ö  p’ z ¹?Åjģš…ųQ ¢ØøŗŃžKū\Õ:·ī É <g%ŚĒ Ü eŠō … ńTzÕė ń üų›T Ü·p X Vī¹Q v-Ł’’!^Ł Š ž'  !=’’_ńĢ›3uj{¹U‹Ōß6ąß $ A­ × ¶üKz ÆŖÉś‚zDQ€k 5 6Ü«Cū« ^¹ė i ”Ł R č Ś°˜"3r‹JLZ Æ‚0’ ›ƒrJ pęSl/ą „6t2¶Ķ{Ó"Ś ¦ k ¹ .L5×čŅš 7‡Õ “ T{¼ī8 Č S ƒ15˜V Å ~…F & \{clø  Ł  ō(…IēĶ~³r  »Æę X \“vIżÄ‹źć¢g«d©Š @VH­ä‰Ée Į ö ³ Ļ¢ r’’§’’'ōž ŌÉ [Ł4Eż’Yž’ŗc—†^źŠł’Ÿś’Żż’˜ż’ł 2 ŽŽę × ż&Fż’Åż’㮺 Æ»ļMś’pł’œsœ b‡q‹Ēż’ēż’ķ’’ū’’ų Ņ 5“Ī  ģž’²ü’ņś’ųų’ĖćH;‰ę īų’/ś’X’’„ž’ķ ¤ N„Ž? Sś’ū’Kū’Žś’¬—«ņš.dœķü’Eż’ųŅk xšŻ?’ü’ßū’ĢJ’’@ ļ ķõ€Ł :’’,Ń0’’?  *yĘ8•MĆū’„ś’¤ž„ÉĄā J ķłŅĆZ¾ 9¢ Ń——-āü’¹8}?Ā —™*œ‘7^Ÿv ä 0ķĄ€O ] ÓK  Övl»’Lö©:}Hü’Bž’“‡0 b gDD OĻ’’ß< ē"ģvńæż’ż’rē i ! ± į±QŽīŒ ­ TøĻ’’4ž’Üž’Äż’Ļķ† Ī . ‘ 4¹RēŪ”>›ˆ  Ó0&U, ˆ †B— Ķ ÅDCš ž yw0KėZĮ”JF I ö£Š ‘ åM į /Łć2ŖØF ™ A‘m ¦ yĻˆ¹l v ¼ˆ ~ ~}ś3 e‡ˆ .æ %Æ|Ž ™2†øv’ ­Óe5 k €CM•Ō z Æ?Ü Ū €ŽT ®.OĆR_ ™ t±q˜+  } ‰ *=ÕGA$ f®Vƒ s ¦²—·5  žIŽ $ įxŠ/MH*Z Ś Ėą0“ō ß N µz » ˜ Ż  œåÆ~Ŗi Œ ]› G e Ü®i  ÷ ;B" Ū ƒę$`y" Õ =Ž ł š ļ÷[7 ˆ „ ® GOb[6 ¼ Y­ w M ÆiW 7 š — o ⠌ī°¼Ä ž U  ńąb’8 ż   µ}’’#ž’š’’ŁĄÉFńX—‰‰Ķ› ĪZķĒhŸž’½ż’æåĬŪxŒß­ˆĘĢ/0w”i™’’ʒ’’»+żŪń§‹’’¶’’Ūż’­ż’5P|R0’’Ÿž’›ü’kż’0ż’Ęü’‰°ž’G8’’ż’vż’<ü’öü’’’’’N-c1³ü’’ū’Jś’xś’Qü’mū’Š’’'ž’öŽÅ’’Ć)ż’ūü’Ćś’?ü’mū’†ü’»ž’ż’J’’tż’Łś’vś’å÷’ą÷’qś’׳’øż’Cü’żž’cż’Ēż’™ü’@ł’cų’ˆ÷’+÷’įū’.ü’Ņž’­’’mż’õż’łł’ł’/ö’šõ’‘÷’’÷’yü’Żū’Fü’‡ü’ņų’¢ś’F÷’’ų’÷’Į÷’cł’Įł’fś’ś’į÷’“ö’÷’Īõ’p÷’$÷’Ć÷’µ÷’žł’•ų’ü÷’ ÷’ ņ’cņ’ųń’Tń’)ö’Łõ’±ł’Øś’mū’µś’~÷’ļö’Ņņ’\õ’õō’åö’Xł’ŗų’bū’ū’¹ł’[ś’Nõ’ęõ’ ö’·õ’µū’Oś’'ž’Ōü’Zü’ļū’Sö’v÷’vń’©ó’~÷’°÷’^’’lż’ż’ķü’Œų’åł’Śō’”ö’Zō’#õ’Łū’ś’žž’­ś’Ņū’¼ó’@÷’ ō’śõ’{ł’ó÷’²ż’Źū’ż’Źū’ž÷’‘ö’¹õ’Žō’ł’[ł’2ż’~ż’Rū’ƒś’=ō’“ó’ń’“ń’īõ’Łö’zü’|ż’ž’üž’Ģś’ś’ˆö’µō’äõ’)ō’¤ś’ƒś’Ļ’’i\ž’L’’;ų’łł’óõ’Čö’ ś’”ų’Õ’’“ż’ū« ’’ž’Œū’/ś’’ü’Ÿū’öń.sq¾ż’©ü’Īż’®ü’”ś’’—Ž(ęV©éü’Ež’v’’e’’ƒ³".źżż’až’Fž’­ž’‰(&ÆäƒČ’’ėž’”ģŪūZ 6U’’ü’’ki¾b/ ģ · I#_0Æœ  š 4 Ō’X’’1ż~P : Ё5,©"į Y   Ę žr0ŻĪ³œ ģ } é > z L ŪŸ;A  ?īpu ¾  ųÅ • ’šu ) UB ź æģ²;émqĻB 4 \Ó 8tr  ź Ū ƒ ’ˆŹ8†šcÅ ä t žR0Ā€ęv p Ą  ? o~ųīĄ 2Ś Y Q a Š & Č s # _  Ļ ą ōŠG læŻ§I8ļ ˆ † Ī œ Æ -^! ¹ kŅ€z ” tr+‚;  Ž ž f Ž ö*ĄS ” æzY¶ń  i2”wĒ Ó ńü¢ ‘ °Ą €  „ÄėbC š <M é ™öę Y  ä F ž āžfžė ^ ² z ż$…>½œ¾ Ģ  Ė ` ņ FŠß’’–ż’ÕĀŸ Ü ü H y/ €E ® Ż !Ÿ·’’óū’¦ż’ ™# ž  m —ž’®ż’#^åĖ÷ąģ.zž’‚ż’‹ž’’’!D  ž Ōį ų’’*ŁNūgĘx?ž’’aū’hū’dü’”ü’Ƶ Üų,TĖž’’’叧7P»€’’m’’µū’/ü’õ’’Ž’’`R¶2 Ć’’>’’Óu¼Ž£ś0ž’ž’iü’—ū’Ę0$~Ņh|“ü’’’’’‰ģS„ø  Øįdl’’Åž’K“å   č 6_ón˜¬z ¼ v SĶä{YÉęšÄ Ų  § ÕķR¼N Ü Ÿ³Ü “ †(4÷Š ‡ Ūē™f˜T Bźw cŒīB ĄQDģ=m  Q_:źä¬  l ł ÷ Ō ä Ä4(”‘ |Ā J Z „ üA£QŚ š 2G ²Uč’’µõy©`† žRķ‹ł—5˜éž(Įc®ž’Ož’Ż„©& Õæ¬ŗŠ2ž9¦G¶ øŃ²łŻ@³ĄRźėŻ—¾’’w’’%ķj¼÷§"%ćHĶ(o ‡ Ā ® śә16ˆ ł)XŽĪĒģ®ź>9oÓBŗāž’Ū½’’aÓĶČŚ’­ąü’’’ģł’­ū’؊„ƒŖÅNĆ’’*ž’(ü’«ś’¢ū’1ž’†ž’ķŻW*Ļwķž’’x’’ūž’ņž’’’d²ƒT’’’’=’’ž;7%¼·M»ž’Äż’š½ $ Ž Ā ćšsåąž’³ż’žć g ¶d »\7ÅŹ÷“PÆlća„ DWĶłF)  1 ,nę ‘ 9 ¾ 4 äœź LŲ mM½ƒ Ŗ ‹“ {ŻÓž’õ  Ŗ0 „ Č ł   Œ äę !ö Š ˜æ S žB' ŹW®Ų õ “ ĮüŠ \ ;v öĖ X© Š ƒ_Č „ ź R £eļĄQs N7d ć @Ļlž‰k Ÿ ŗF ć®ĆhiųŸū BĶ™ Ģ4ųČ7 ī ³% t ¶Ä“ ī ī 2— tÉŗtж”ƒu   ˜ Œ„NŗĪź+U ŅĮ‰—‚ķ z - ó p ś 2*[J 9s  FͦÄ9…4_× ōßĻj C ¢Œ v æØĶŠcŗbCƒ   †  Øļż öSW_d©  ß ., -ŗ ½ ) ėÓ Ą į Ā i’’`ž’ ’’īż’ī ) ¼ žÄ ßįŚõ 3é tN“äł’÷’9ü’xų’7O’’ķõ’µõ’dż’iü’.H2Ę‘ęŠü’ĆKū’ ū’ ų’ü’6ü’£³) Ó ˜Eõ’ßō’ū’ż’~Ä •ĆX#ū’Q ŌŒFåų’>ų’õ’&ł’Fų’Ėż’½ü’ł’‘ü’O0Ūkśü’čÆY¦ ¤Ķīü’Õ’’j…’’¹v’’P’’’’źü’Qś’Ÿż’x÷’^ż’½ū’ńł’’ŪŻ é ł’jż’š’Śń’ū’>ų’r’’eż’źĮZ‹Å÷’÷÷’lų’ķ÷’Il³‚ ”ü’šž’#ö’Ąņ’õņ’ń’3ś’(ś’ÄüĖ’’aä÷’¢ł’Lü’÷’Žū’žł’lž’Ēž’ęęØż’Fś’ō’dõ’üü’x’’Ēż’µż’Ø÷’{ö’K’’D`…ż’\ü’yų’Pö’É`75 O é’Čė’Aš’ī’ Ļ.¤Öņ’\õ’µń’ņ’įĢŻ «‰Ėų’Nż’°ś’—ü’g d Ń3 Œ³ż’ū’œł’Čż’¬ž’ÆßŪįqW ‘ Vw ō\’’sū’Šō’Ŗ`õ©›Š mL U Ŗ’’^9} ’%,ž’. Ł ”£ōö’§ń’×ü’—ł’ļū’łū’dų’ ņ’Š Ś8Ä €ó’#ó’}÷’Öõ’{l ūä µł’kū’Ä÷’žł’  Ū ž’‘’’Óä ü’āś’ņ’1ė’5§©ž’ŗó’Žī’6ü’»ś’\qŗŽŖ’’g‚ó’Kó’ģų’Yō’v“` A NR# % 7‚” ^ ” å 6{ž’Ne$ h6ū’xł’«ö’Ąī’¾ü’#ō’)ü’ ś’Kņ’Ąņ’é.ęf 8¹Ü €B O¢ ož“„G-š£ū’Kū’'ō’%ļ’Vā‡ C XY r $ü’™ū’E©''m ·Ŗ°ÆnU’’£ “`Yģū’Ŗ$ ~' 0ų’`ž’Ó@ (č Õē€( § œ< T”Žō’²ų’­ū’tų’’Vż’įų’]ś’w 4 © Ūü’lBŠ | Ąž'š O fHŚ 2wž’iž’“ś’Õ`’’u{³į k’ż’\Ņ:-‹afĪž’OĪż’: ģž’? Ģ:ōž 9ķž’ŗ.ū’ā w ¬Nōé Yų’>ö’\ī’©ó’²ų’°ž’Ńö’Wń’‘3ū’” ß dų’Čś’8ö’jņ’?ž’źų’]r‰’2 v ģņ’“ņ’ż’×Ö~źö’åš’ę풚ė’^å’‚ź’Xź’ ķ’xü’lś’õ’“ó’°ņ’+ų’ų®Ō ‚÷’&ó’śż’\O ŗ(ü’Ģ÷’+ģ’Øč’™ę’Aō’ˆó’Šū’źö’ę’ ä’dß’Pā’Æź’Aņ’Wī’­ń’Oń’‚ę’öé’Cę’JŚ’tź’Ńą’Ļå’"ö’ź’É÷’’Zü’—ń’ß÷’}ī’Ķļ’ö’¾ķ’Ö1ž’‘Į Čń’Āõ’“ņ’:ń’² ‰u’’£’’Ģé’ūé’Vü’ćū’fó’Xī’`ą’Iā’bü’4g’’£ā’Öā’óå’\ę’?ļ’ļī’*ü’G’’ž Æ `ņ’Bė’śé’‰é’ż #łņž’°ł’Pž’h Ż œō’Qš’™ę’¤ā’õų’Óõ’ōå’7ä’HŚ’¼Ś’³õ’qō’Wó’ļó’@䒈é’äę’\ė’A咈ä’Aö’Üń’“ ń nū’›ż’ė’6é’ ī’Ėī’“ī’sņ’vų’)ń’½wł’¶3Y-w äó’Dö’čś’lņ’¦JZ7ü’ō’’pō’łó’„ū’ł’•|«õ!ė’6ķ’Bļ’Ūź’¼ /#’ņ’źõ’Óę’śä’æäż’ō$ō-ņ’‘ī’÷’”÷’= /l”Č÷’Põ’’˜’’ėŚļ’ ī’Ņś’éõ’×̲ĄfӁö’õ’&ó’Ģī’J’’Ѭ•G ž’מ’Ąź’Śī’ļ’Ŗķ’D į~ p .ī’’ó’Xš’ņī’„ż’ö’mō’»ń’ל’sų’r*ł’>ł’ƒą’Fź’öņ’¾õ’,ģ’’Öó’lö’Ōń’ųń’Ūõ’äų’Fõ’Eś’ų’›õ’iõ’±ń’@ļ’ķī’^ī’*ķ’ćģ’÷ķ’ó’õ’Nü’Qł’ļ’0ķ’å’ē’ ü’żł’T]*ł’‰ś’•’’²’’ž ģHō’ģó’,ė’ī’!ß’’÷’;ö’ī钉咬’’*  !š’)÷’°é’6ę’4÷’ö’‘ŁšÄ ø>~ż’rž’«ö’jś’÷’§8yIķł’śł’vņ’hī’ µ˜ż’éćū’ōū’ݶś’s{ż’+’’g;ü’Kdü’÷’Nō’›ļ’1ö’ß÷’„ūC¹ ³ś’eļ’­õ’æ ±jž’Ä3õ’õ’Ū÷’żü’Fō’’ž’źų’ž’Ž„ūöxü’Öś’ż[c ݆é’Gź’ä’³ä’Įzn }˜ų’=õ’āł’—ž’™’’ƒo Ų:’’Öķ’÷ļ’oź’ ī’Bü’Ę’’t e¾ ˜’’Ŗõ’Ųõ’åó’¤ū’ā’’Įœ‡Ė§šRš’ķ’Qż’$ż’Œ Š %‹"}šE÷’^ų’$ z ū’×ū’eū’Mō’[ž’Õõ’ŗ…§y5d7ī’!ō’²ļ’]ó’ż¢ ½ļÕ ±}ų’Šņ’/š’ąķ’ż’Y¦XE#2įĮöļ’Øö’ēć’Ļģ’†ó’nļ’æ¤ż’c @µé’“ń’fß’¼ā’ Åų’=Q Ųö’ö’Kč’ģ’q÷’”ž’‘ ° Üū’½ž’īķ’~ė’Zś’¬ņ’p Ūš Ć “Ī;ü’Vų’ž’’·ü’ŃŠļ %ž’Įł’|ž’Eż’ī^«£ Æģ ¤÷’÷’Ģ’’ŪU €˜ »Bä z. š÷’Y÷’rē’‘ė’Š“.œ%Ÿ$~ŻŽū’Z ~& z1ū’]>’’·!Ėé #ū’ų’Æ ‘]÷Qmņ’÷’fż’°9  Ø ˆ(/ż’ū’ ’’Xž’Ō× „?A D©iŖž’;%풛뒱ᒠڒgö’gū’,Ö%ėJFż’ļ’$ż’ƒõ’¦’’Äp` ļ$Viš’Žó’®Ć fWs#†$G„ö’ ņ’É ž 8Ķ;”&ų*E n(”ł’@ż’Žū’>ˆļ{'” éø|™^~X‡ō’3:h'F ½ ŗģ’­é’õń’_õ’śéc÷>Ó3ū’¾ł’ō’4ö’śž’žž’Ō Ķ ®y ų’—ū’qö’mó’^Īž’Į «ņV[ü’9Ež’:š’ö’įų’hž’Ŗ Ō…ó’°ž’Õä’źą’Ż’’/ņ’ x> ķ żĮ2I÷’Qž’Ēü’]ü’Ģ!`eFž’µqń’tó’3ń’Ėņ’?ū’Zś’24 oz DÅMoü’©ž’õ’jł’K"Óś’Ič’Sč’Žķ’Üł’©{Ę «d Qrō’āų’ŻŅ’’śŪfå’Ļå’Ł’kŲ’ ņ’?ó’ż … Ute@Ćś’Ėå’Ś’č’™é’ ©ź°§÷’ņś’Pē’ģ’†ų’äõ’ŽŸØ Ų@ļ’hš’¼ö’Sī’q’’“’š’5ō’&ņ’~ļ’©ū’Nū’ų’!ņ’Ļó’•ģ’`ģ’¶ō’hó’yų’Ÿƒ Š1ż’¦c÷’Qł’yž’žō’ļ÷’Ķš’Żó’hż’Śų’=’’ˆG!ę[ö’¤ö’Ņó’ņ’l³Xļį蒊ī’_=› †²ē’.ą’„ā’†č’éš’ ū’†õ’׳’æÅ('ū’$õ’“į’Iä’’ē’{é’lŅū’Žæž’Ųś’ ł’Rü’»·ś’‡œ÷’Yž’śųU˜µż’Rż’Aß’8ž’°ä’Šõ’ŠTń’^ū’xų’ą÷’ĻÕ’;ų’kę’d”ü’"ū’Uˆå’M $ļ’÷ź’£ņ’gÅ’¦ä’ęą’Ųń’( ;X08 ’’ž•Ē’+ó’ĀĶ’rė’A 4ö’°; Ė&Żˆį’²ü’Š’ž ÷ĪõG) ›$ēü’pŚ’’š’µ¾’8ń’3ń’s Ļ7sģA |ņ’Õ¶’ė’‡æ’JŠ?z7ó’,Ł’kŁ’Lõ’½’„<Ū’Ų ¼5ä’Ń&’Š’ē=ł’ŃĖ’Æm¼’õ’’–ī’TAjč’M“į’ Ź’’-»’ĀÅÜ’øõ’ 2ó’W Ęū’ś’.¢’ÆQĘ’•|40ż’)cö’.ż’…–’ ł’Ē”’°õ’#uē’>TšŽ’ž?°÷’ČĶ’Ō x”’l’’‚é’½ļ’)P|č’„Ofņ’ė’Fł’—’ķč’G‘’1ą’yŅļ’¢}Ķķ.ś‘’ķ’h{’<ę’Bæņ’Fj¤š’=1˒üó’p’:å’š’ ą’§:ź’qzßå’×å’¢i’ĒÜ’ća’ģĖ’óž’Łß’U€½ź’Ź3Ö’’ķ’8^’HĮ’Ž’Zß×’¢xŃļ’TÓ’ē’>’ą’g‹’Öä’õO|Ü’‚qŁ’©å’¬Ū’ŠS’pä’Źl’Eņ’óć’p8ß’ÄXŸč’ć‹’ß’×’šā’-Ä’ō’+‡ä’ČxįŁ’ĒÄ’Śå’Ć1’[ā’ów’µē’ėCmń’8‘ŖŲ’g#ÆĒ’|’ˆą’hC’æ’’½Ņ’Õż’>¶Ö’-oÖČ’ėĢ’rõ’ŸD’ ķj’šļ’ ?Ąį’¾¼ņ’¼/bō’³O’†į’ĪE’ŁŽ’Å$Ūī’„»éė’E7Ųį’µb’Óš’Ń9’0š’³’DÄ’é`„’ß¾’3Ķ’°ķ’X’@y’JĪ’lbŹ’d„(ą’! æ’bń’–°’‹ß’wtRĆ’<³×ö’¾’DŽļžlŪ’˜œ’Īö’{€Sõ’2nc©’*ń’*¹’N‚’C @’jPKę”FLŽ’ ¢’ńĻ’6Ā’’ž’x+ Z ņ’<ƒ×’Lų’ĮĆ’Š’FÕ’¹ On2¶ā’Ō’Ž’ŹĻ’‡ wė’)Ł’ōä’#Ä’ć’ų{ä’y-ć’€–ķō’7÷Ū’øŌ’nÜ’<Ū’f˜-O ōå’;<å’yź—ā’@óÉ’6ń’š’Šģ’ó’čŃ’ŖŃ’<Ņ’zÜ’oįė’ø Ō’«’ĄÓ’.Ė’ÉŠ6Ā!C;ł’óæ’GĢ’ßÖ’Ś’Ėśö’æž’·š’ńĶ’ńį’Ź’^Ō’Ų’»½’ŠŚ’‘Ē’ ź’³s ƒ-Ä,Ņ’ É’7¾’®½’“÷’cŁ’+kž’įó’o‚ķ’š”é’·Ü’Ģ’’Į’®ą’¾ą’ż’÷’łą’ģ’Ūä’’Ž’ų’7Ų’‹Ę’$į’¾’¼€ŽŲł’^ė’'Š’é’čł’.7 ź’1ŻŽ’Iń’ū§é’© ię’£ó’/×’"ć’ĘŁ’ŪŚ’y yé’Ä xįļ’wż’æŅ’ÄŌ’ ņ’©Ģ’mż’7ģ’śß’µķ’/Ē’¤Ģ’²’ŪÓ’Ė©’Rų’aŌ’Sļ’ ĮŌ’Ÿ \ą’ūå’1ö’˜Ų’œøč’#€=ż’!‘č’x ‚ł’Üæų’®ā’ńvń’ö÷’˜µź’é×’„ń’ŖÄ’qė’¹é’Z% Ņ’Ó Ł’‚Ń’”ė’Nŗ’vł’;#Icōģ’ó[Ę’éą’@ś’0ó’ ō¹ü’Ń(ž’‚*” åō’Ņ䒽ǒ×’²ļ’mģ’•#į’Jņ’{Rŗ$¼ž’ü Ś’£Ś’a’’źė’[" ż. é’ ! ó’Ÿp,žp'Šż’ńķ’9ņ’įį’|`“ƒ$¼.³ ūõ’8š’į æä’ Ęģ’4ü’ā²Ū’?ü’FÜŽŚ’ī×’·Ų’ŖÓ’æ’’ĒĘ’8D .ćóJ׊’X&Ö’×cõ’Œų’Ó’’sĻ’ tź’ųł’Š7Øė’`¦4›XFXÉ“ę’U¶’ˆ£’̼’ŠŻ’„8ś’'`eķ­3÷’œ$&'Ńļ’516ņ’܁¦ū’ź)×’ʶ’ ü’ń’š’Ż<“ä’ÅOę’UĶ’źē’QĻ’ŃÕ’ž’§Ņ’6ū’ÅWGÕ’gü’ŗĀ’ ą’cĆ’śē’咀꒐%ƒö’†Č7uŪ’Dó’”é’ŃŠ’Öł’|„ń’ož’Öü’Ą÷’ē’ģ*ń’”ū’!Ó’ œ ń’°&ū ų’BĒį’Žņ’Žé’/ö’fö’y ? Ģų’Į*Ž’“#ź’ŹöH^5 ž’õ’ĘĶ’”ż’©ž’Ż$R‡. ß’½t¶g®!į’l+}›V#¼8ś"s¼   I/ˆ&’cø#V?õĢź’€Ü’ŻgCg)ē(³õ)j6É;ķG§$·ł’/*š3^ [>Ž’! µō’Ŗ'£3įębS ćÓ½č’?X"ó:•’(Ņ®E’ņ’éĶó’ų±’a^Ō’¬BOŠå’‚Nńč’k ę&ßI;ü M)’’'0“:m4ēF:j ų’ä’Žīō’A&O ·q7Tų’·<Ōō’_ęł’UŸ6¢ć :ū’<ē’ēä’Jś’źą’#ż’jų’afō’Oń’÷÷Ń’rn%!ń,n5NK.±ž’¹ķ’ė’aŻ’Hč’Ćļ’Y Jž’ź’+ -ö’Ué’ī EĄ’ļIņ’ ę<Z#Ć0i†÷’&÷’‡Š’7é’eŌ’ƒ÷’¹ 厒Ę1ŹČ’„ ų’“ų’ĆŽņ’ūe•A“, CĒņ’¦Ļ’OŪ’Äü’’č’ķł’įē’£¾’ń’ŒÜ’¾#i&O*E±ü’ģü’Y&ó’ÅᒙĒŃ’ńļ’QģßBŃ’źą’ Ŗ’]ų’ēŽ’ē śš’čŅ’½Rš’%|ķć’ž‹Š’Ć’­’’ńµ’#·Ó’wŅ’{ó’Uģ’›Ź ×’}³Š’Hē’É’Ny÷.›ż’޳’łģ’«®’Āļ’äŃ’—Ń’–·’š£’;Ė’EĀ’Ńż2ź’2(ˆŗ’ˆå’ē’(Ž’Lõ’hĢ’EŅ’4¦’,Č’AŹ’ˆč’Ė’qĆ’’7„’7ŗ’©ģ’” NĒ’Rį’ÆŪ’Z™š’¤ņ’ ÷’©n’E﬒“ńó’żł’!Ó’Į6ü’<č’p²õ’ń ¹'ś’Kū’ķ’ņ’] LŪ’?¹Å’jÉ’żĪ’Ż»’²>A#Ŗ9“ž’ ‘ą’Ņ’“õ’,š’ų÷’K=(ć’ĖBö’Aó’rŽÜ’ܤÓü ,Ž’7ē’ Č’@ź’ Z cC|}DŪ’Ņć’‰7Ś’Ķ䒌ՒõŲ’É ©Ń’Ć •ł’毒ł3G¦’ž:?©’Ÿ$ćĘ’k kdł’3uē’‹6Óį’Õ¶Ž’łSµ’Ž=K!^ųį7ž#Å’Ć’§ü’¬žż’–ƒQž’żCx ĢĻ’°\•’dł’5‹’HĶ’Vž’œä’tcGxŃ’=ų’æF’·£Ł’9…sģ’o3Dš’*Ź’ŲÕ’ø’-Øx’¤"Aß’zž’eaż’šO Tó’2:Ä’]#-Ę’4 S+ą’Śzæ’Z ėĶ’ļ„’#öƒ2„eķü’Ä;TŚ’į’«÷’nÄ’ƒ‡ ÅøBeĄŌķ’Ā’ń×’č’ž w Ń&£ļ’éś’ćś’”ä’m7M’’č#’“Ł’ļ’Vļ’fŹ’d/ō’L‘ē’é’Ķ’’žį’(fBī’oż’Ö’ł’=Ē’:&{Ų’L}Ī’8:°’36ł’„(©D³½7#ҳ’ź¾’ēŲ’yņ’Ą Å"ö7– YO·’£į’r¢’ré’čž›pR "Æ’zĮ’Fī’ä÷’ų0RĄ ˜&A$QŽ>õĢ’÷ Ō’$į’ ż9÷’\Gō»’dē’@Ą’né’ėÓ bé’ėļ ‹Ū’ļK¬ü’< ü™ņ’v:›eK„rkAļż’ĶßU3ŒQ_ƒBĒ(l.E:#TĄū’ĪTyģ’€#žē’‹™ų’Ž*Ąf7©q B€EV}©IÖgš’Õ’pę’øW•`}üżœ\ DK ) ŸÓ éŌöøpõ²Īģ±&ź2›ųĖź÷&’ ÅE ”M źåź‹ü«TüŃėģµ'ź¼yń‹hļ”×ó÷‰óŸ9ų!šŒšĆīKįīÅ4쨁Ga\kK§~Ā;qžIóżŲńšźģĄ%źäĀśšĀłƒ. U6j "Ś?ÓśōDśE©ģNõéÜ%ōSóLLM ¹/ųŚG—Łū.ļÉŌģć­ī‡Pģųžž¬’¾RW_4€ l “÷q6õA\ģŲHé,[ų’ ÷1M µŅ i­ ©§…}żc“żžņķ^iėEkšęīÅ>Ņ’/x)Qm Q ōzOņ!ķšhź€ü¦üå °nķ ČeÅ,łœ™ų–8ģ5Xé’ĒóōėńĆżyĄQRÓ«æ-•*ŅļķļzuģÖ³eyŃU°nŪÖ“ eõ)Śóhģģ~Ā阚÷‚&÷­¶ Z ™÷uµysž:ž³˜ķ“ŪźėKņ>‰š4DŠĖ‘Ā0ŗå°ū¦¾ń€rļĻķ†$ėĄ”ü žü[Ī U¤s æĄ5.łų­ų×nģ%ŖéĒ”öOõ_< f‚ ĢėųīI˜’Ņ’ā’īW9ģ’“ļągķ(įœ<&÷Š«óß Įō…]óĢ›ķŒtź)ü‹ūwą u‰ŸŻ ų‚¢fś-=śŗøģü ź“uóąSń«x ÆČ(ŚXrŲ„˜BŽńśŖīKćī£/ģҶrŠZėĮ÷šŹ W tŒö¦įō{˜ģ¤é•=÷iWöż½ ŅÜ Tăe‚­’‚Ćėß|ņIOšy(B}°½ł¢QƒuČņxnšœĻķlģź@üŲóūČį ‘…*µ ģP…÷ś„ZśGėģ‰įéIūõ|ōh w) Ā!WµéÓN:"Hļėķ/}ļ$Öģ§+hMątA• hy ’1öķČō^ķ»pźŲōśmuśOŗ ¼ĪQߙ…_ü>.ü’ķėóöŹšCü¶õ%÷²Jņ8šå½īß ģ—™ēä —|iWŅ ®Č $1÷IözŹģcŃég÷©bõĻ‘ ś €†RćķhdĆ﹌ģ¹ņ=åļ‚éĘC8ŲēßoŽÓ]óUuń” ķī}ź“üÆ#ūˆ›½ ćbÄ<ü’–ūZĀķš½ź¬ öū~ō-x qż ÓŒü÷²’\šŌŲķ›Łļ;äģŖē¼? _Č©4O Ōq (÷=Žõs½ķ€dź8ūŖGś_Å tˆ£„V‚®€żŲü0šīėVœņ“@šŠ‚Gš"xėG[ż· 3ó\ćšŌ°īž^ėc’f·’)7ü—č S*Aßų-/÷ž„ķ”šéåö'ōō;q ¾ō [GaC˜ćīšEŃģtń’×ī(@-¤Ź ßKG ±Ÿō9Ļņōī©ąźl†ūČ\śś¶ Ņd­ų¹ż$Äü¢iī‚ė8tõ\×ó× Jx ½U£õ_;¦ßä,ńśńīń¶ļÕ÷ģO.śPķž"/j “f+Ÿų˜šö÷¾ķ)•źÅ:ś ”łģĆ _eļ‘pgžY1ž+ńī˜īėw—ņvRš”5]…£zšīØ čŸ Gō"ūń]Ķī_ģuF’CZ’})JCJ² tpāõł;9ł£īD¼ź‚öXqōį/ ØP žz0ˆ^V¤Ņšžīmńz÷īF8ęl—f‚¦ćŽ QVõų:ō Ęķ_ė^˜śŅ¹łäR p 6ĢÉø¦+žĘIžˆDīĒ”ė-øōīõņŃ $É žÆ×U„Ģņ°§ļĶ=ļEVģŖR’‚Z’š!Åņ WŖhłļjųƒłķńˆźœił“ė÷%Ū ĪQ„ę:kGŽ’–ä’søļh`ģUsņŠLļlś0¾jµ½ō etõwó:ļ'Äė·@žEķżŒ¼Y–€ œ÷†öś"#śUqī³Gė“ö‘ ō® *› |–æöÉ֜SµńMBļźÄš`īb‹C–³’ Ø  ˜³öčōōIīµ7ėśŚ4łB× ē"Oh0‘’”œ’ĶļˆģĘ3ōUƒņ\S޵ Ų”bŠ*iPPĪņ=Ėšņ¶ļaŌģĆ)’ŠÜžµ‘s ųŠUśęgłŗńķR먫ųuÖ÷D• Ś a¶HŒbĻV7Oš©Rķµ,ņA•ļŌ½’I? ģ ]ä žóõxłó܆īÅE볕ż:NżUw–µ£ļ GćĒŌūūżśIÆī/ūź£RõĢóŽu‚ Ń5HŒNt@›ņ¾kļøš{ īpŗŁW §šW 6U ?÷ õDmīüÄź¶łOJųim å`¼pHØl’µļērģ;Äóš„ńIJåˆ VÜž}ī!ŪF\„󙯚ļˆļiģBž«źżw#Ķ!XJÅėmĘū›ÜśõwīzNėŪ÷ėö(Ž Ø/¹ź…*å`aĄRpš#‹ķ±}ń©ŠīŃ-µōxX”žĖÄ Ž õ½ö"õ’īÅė=ż—ŃüŃ@˜qfõ2üėŹū[ļ²ŪėgöōLėņN€ ¼±-DŖa~śņ+åšŗżļŅUķ@ü—57®v[a n “ųœ§ö{īĪė"łü…÷pĘ ½Ś  K”ŃīpšcķHó™ńšĆ¹ēéšCÕO ōSŚń’Rļžßė{®żÉīüŖų³‹R®ü­łūüŅī,øė-o÷Ģõe\ Ļ< Ž9ĶQajÆč×ńĖUī¶ń»Uīd±×ŚRKe¹ ¾‰ ų÷;öö—īoĒėRRüķ±ūØūqRäjż"łüxļŸTģ)ōņhņ$ŠbEęļzߣ±†©¹ōćóń½ šć‡ķś$.N”ęŲ}ś ū”Ūų‡Ż÷äxėEųĖłö Ė ŌIå"٬o šŚš€NīHŪņ&„š`1+’BWNć› ČÓōĒšņ” ļ?äėz¼ü#ü*j‹#ˆvn;eÖżņEż¶-ļĖņė1 öO¬ō “ ’b ײĖÖdy[)ĮńöēīĢÖšļäķ×b…ęߕ4ü›B I{)īųf]÷éīō‘ė#…ū†xś’uøŚœŗH’ƏžĻaž¼µļ[­ģ¾ó~ńĘ"1PÕk}Ŗ¦Š …ōéšņJzļöģćXśo_÷ÓõŠ +Žøłģ•ųg€īn”ė‰÷§Lö1£ Ɵ LŹŚÆ-²=ōŒBńĀīō5ņŗõļyS0(‡51Ų↠¼ĪõõėóƒDļĒģµü-sū!ę 3–ĖźlŗžžÖxžzrļ)hģ*öļĄó“ 3O 5ų)=y֕m]ņĀšÄššāķRŪĒźĒ•¶V§ \ūŠł©×ų/øī•«ėMVśī-ł ņ Œü­>čÅ’Ż­’…łļéöģ Kó«Ćš©ŗDÉŌ Bå ‡ 0/õIó>”ģ(£’ˆ+’ģ—CóŠ ē0™Īśj׳³ībwėÅ-÷«Eõdm ( ~¾·Mēģńn’īN ņå"ļF‘Ä!Ž)źÆ a• FöPĢō"ļ ©ėʇūX`śJe &ģē!Mx’&ķž”ļ—qģ8kõq[ó7} ° Šę0äłILAósšŠš8ķØŁ’P"ņOX œ ą²Œś„ł ćīpėtś\>ų2K Ūs@Qķ›tUk|SĄš§{ķL ó JšųæI««Śļ.‹ \ą ¬öZ@ō9 ļ˜,ģM(’?iž‰^CO‘±Śū“ū1ļMźė[ök^ōĀl Ī }mPŠ.ķślņlÄļjń«īK•*JŽŪ&Fųr ii £÷ÉDõ#ļü¬ė¬üśĀŪł6ß éxkk Äh~Jh)ūļK ģ‚½ōĒmņü v P^|˜‘­Čō>—óÄFń拹Ģ@ķhL’’„²~ü07®ōŚHūĖCś Æī\ėu6łĢĒ÷ó …ŅD³"Įtį.p-čšēśķ·¦ņĀõļU_ ÅƇēń £] Ź÷‚=õ½cļRTģó=ž:”żĀ_ļKx“?ž üōøū¢šļ’-ģ¹õ™Åó™T  ¢ėžHfŌ5Bó­æš.Kń`uīTXLų—¬“ / ¢* \.ųŽöHļöŌė,ś¤Ūų²_ v¤¬ß~ē(_ć}}šØķ+"ō°ņ#ń©+ ņkŗv<·!?yōg+ņ" š4"ķfžØTž‰oÓGµąEŠü’vūźGļ ģ»Sų<÷Aü .@S$]¼Aŗ‚źcń¦nī°Lņ«„ļŖ™¬R1ƒ’Ģ“’ Šk Į"ųe`ö|WļAģDż•¤ü ŖÅ^u²¶Xżģ›üF¬ļx†ģzfõöIóŖDg eöTfM1~ȹókXń\ÅšÅ:ī!l„±T”<„Ä  ?ļ rćųėa÷ęOļ/įėKłĒKų¼ IGl6®G‡$iłŅšö,īŗÕóƋńKK‡}ØŒ0y Ż™#õ&ÉņS šxöģŚæżśjż žŗ~!äF żIü=iļPEģ&Ō÷PöēB 6K ·@ŹGL‡ÓņęVļ^łń04ļŃÉćN¦,Sž Āō RįųIN÷?†ļ<_ģTüN’ū–ߣn½lmJžŹøż¤šYķčžōµņ$ö4ņŃēō—ķś÷”wōńEņ#xšÜŁķtsö¤°Iv*Žq “{ĢĻłodųŽOļ†ģEuų÷9ł w( āckö(]KŌWńį‰īÉżņŹšĮAęSŽ>RW[jĆ Ü©õūgóD»ļ'lģ6ÅüVüõLJ4Äčr.ž†uż Dļö2왼ö:õXĻ h‰ 3¼¶ź5ģD„Uņ²ĄļŁ`ń›īƉŁ’\čmł ±Å®lł“ų’’īāėWūŖ„ś}1ķü3·§˜,’Ęqž¹JšŅķ}ōó†Æń«ü„SāÕįFŒ:ü yųōY²ņrIšE;ķׂv˜9™0Äāä jE•–śÅUł’Aļ;½ėēŻ÷‚öŽ ‹ ßIy©#“t%ćžńŽ6ļ\Īņ6š’VĶ’ó-Žōŗ¶ ¶Ūõ|ō…uļ3ģ\üŠ…ūüŗ Hƒ²±¾’š‹žćÕļȱģ”#öķYō ¾Ć [ĖSėķ]Eó/SšĮań.īŁÕ„č;`ē ęNöśc×ų .ļčģoŅś(˜ł_¾ ōä?č›ō¤’%®’š‘šŃXķÜÆóń‚b›lę˜ÄŖ„ Ū– Łõ5ģóhźļž횪’*&’iTT/š_ •Ī5+ūĀśS4ļˆģH÷żbõDæ Ė> >{w?g©$Fņ”œļ…ņµ‹ļ¢Xē<„ĢæēĖ Źi Ņ“ö€õēAļ0łėčuūOśN5 ‘«m’īvÅ’yg’µš5ķkcõފóaF { öźb$KNGIó)Ūšē·šT­ķč’°ń’愵u‡ ~Į¶ś‘¼łļ³’ė‚Öł”ųÆ) P…'L‘™ ÓšŠ÷ķ<ó+žšÄ‡Ń~?Lw„ĮÉ {E ŽPöxōM’ļ$Šģ žIdžęķČųÓ Ėz­ąūvūļé1ģ|öI£ō ĪŒ 3zļžŚV«6”»ņYhšu˜ń’īSš# €¦Ŗ’I ². —÷żōõņVļ.,ģbzśRrłšm éČČS GŅĄĶ2šĪjķ"˜ōiĀņ4»­ ŖLź*ėĖ%Pō«ńÆbškcķwŅžHŚž/P­4ŽŁuÉØūō±śéļhåė%Žų‡÷V> J‰Ŗ¢9ĆKlø®¬Tńrtī˜ņÖŽļD’·1¤§= Y ŚūöGõ/ļ›2ģW™ż6ż› "ścįó¦ü6ü£ļēcģ­õC”óÄ Ń„’ŁB_g7Ż5óŠĆš‰åš+,ī©£¬ńkQ_ś ­ w_ų%×ö6Pļµęė"£ł¾XųœŃ #W¼ŚĖx Žvš‚¤ķżéóøń[zœyŃFĮfJ”‘ōÜ]ņ»š¶Üģčžz«ż_īŲ£_®É.ށü1ēū6üīA ģMĻ÷KNöäŠ “ a\/[D¾E¹ń›ąīÉžńgBļH¦Ėę4p La o’÷öeö”ūīŹėtüµū\ęó’*ÉĻņ”ż.<ż×ļ“ģĆäō~žņcõ;ż—ĄÓūk²öō*±ńHš”hķ5iš‚± ›å 4łqš÷„)ļJŃėųa÷„ī ō Õw/āĪśžzžšŃ1īĆēņmŸšPST ÷Œ1įå € “fõņBóŻŗļ%bģ,ĢütHü³"Śö®Q©ųŅżūTżģ;ļü'ģ°¶ö»ćōŚ  Œa hnL±½{äHOUņ£”ļ``ńSeīN֍{bFe؁ V™„Fłń÷‘ŚīĄµėčūŖśiõ Āuõ›—³ ’Ščž1nš2XķĶżóŹ–ńT›øDeå o°Ź LFõ20óčļģģyŹ’ ’1LĻ7ģ ŌY Äś»µłüxļĖ!ģ|k÷–«õĒ“ l ö5^euü[!ņ ~ļ ņĶzA„’~·ß: < jæöś÷ō>‘ļ‹Yģ‡OūäsśP’ f} ’-Ń+ž’G’šŅļŗŹģ'Jõ=dóŁ .— +¢ĀĮ­ĆfóÖņš Āš%°ķ8Ø’s­’Tœ’‹z™ ²Į„ŁśC®ł~ŪīŖÓ묛ł-ių­ū 1-PB,8’‰ńeīsóė›šj$”(1}QŚō Ęz ŖMö$fō bļrYģŒežšž¦·F’ŅŃ NcQüģ1ū††ļüEģ8*öADō»{D+ ”€B»\ŸžmڹņK/šV-ń‡zī’B¾³Yyƍ#x ¼x ĪĻ÷Č;öģBļńėūś½ōų¬8 敚;ƒźQŲ±(šwAķōB’ńfĶ " Ū§Yn!Ŗs>ōĶÜń#š»÷ģkHžÅž_ó@Śqo īŚ=übRū[ķīŪ®ėķųՆöÄ× ,ź ™Ż PߍT?ŒńøøīŲ&ņ`ļ'µÜH¢Ź ū¢7 § ń÷ģžõā×īĆČ뻫üģžūŃ’ŒœĄ…\[żvźüćŠļuŖģ[üōdėņ0ł]~…¾ā1Ā=p½óäfń„6šqlķߏDĪåī!Œ œĖ ōł-·÷ZJļIīė”ų7N÷Ų !# -łØ]¾³Āš&ļķŠųņ¢›šcSk_¾ —ŗ. ēJõ“2óLČļģķĻüV`ü•ļÕé0|Ļńżųžüļnų룳ö™łōT— •x ä.£g¼;ÕļQņŒŒļxń3”īAرæ%›OÆ0 \D;üųx÷ ¼īWƒė‹3ūJśįq”“XFIž\ž—Ušu!ķ|*ōuČń›CŪß+v|=cʶ ¦āō Øņ!¼ļ¹ģJ p1iÜh Ū×:Aśg'łpyļ„ģ*Œ÷6ėõ³ F› 8²ļąa­ń—éīłņCŠļ~ņlƃ.¹P©@q ²\öBmōˬļrRģĻū)Åśøģ ü•¬˜wy%’Äž»ļ”~ģ‰õ±ˆó>T öī ™M[—āmGZ*+ó~“šÆņš1ļķżĻ’Čī’§t«- ¢u#gśŌ*ł³ī_ėuĆłų \¤īö8·Śš„Čķé󼑚zÕŽō9€³ ģC BöX!ō¤Dļß7ģ4yžž”“r X P®ūÜÓś‡ļ«5ģ-ö\ōZC™ ‚8®mshv!Ą ņž š5ńwīM<žæ-=[- ?ü µ’÷ßįõ¢\ļiģņśł€Ü *V>ę m£ „o+š*ķmPō;"ņ«ŪĻ; Œs¦ŗŃōż ōq„ńPbšßBķónžHžū«é§*ģ ŌiŚŠū£ŃśŚīü¬ė6Yų³ėömź į līĘTł°‘jń¤xī/Xņ1žļ!ĶސŁ…qĘW¶ „ ņF÷‰õyļīķŠėMłüOüĻś]§=GŻÕéüĖ]üĄļšzģĒ õČó” džæCv‡_¶ŗįtó"ńv]š‡‡ķæ¬śĶćH7 Ės ¼Čų[÷č%ė­ų1b÷®į Ą2 ?ŗ.ŠäO-žš÷¾ķ¾ó1žš$o8zO§;ż4dÅče’ōŌŁņƜļdģąüh\üĪ„ŁeūD²µKż„¬üDÜėøöĄõn° ]‰ -FZɏ¼\ņĻNļ6ńcTīéIm²×G)x· !ž²ų–+÷Ā“īEfė9ū€Eś€#›9\ŽQļužvFžBš)Ļģ-üó—’ń¼płVIņ—-&Ė‹ tˆōälņY ļ¤ģ~0Nž’ķ9jĒi 0Ż\ śī łņ#ļšŃėėp÷7ĶõņĒ ļ½ z%Č5ķŸDRNńž³ī& ņūˆļ®¤»|–ŁĘį“Yq Ą-öīAōŃ]ļvģy€ū:Äś‘/ »Āf¬«tĢžśržŠLļĮ<ģŠŒõŽó˜l Ÿ £g­§Æ~u%÷ņŹzš[¦šj¤ķ—å’lč’Ó³|Æė )V‹śūäųGī|ė©Äł=œų‹ KwŪZpp“š.•ķ“šņkyš÷O{UU²O „ Č RÜõOįóP*ļ~%ģ{tž*#žÓA©ē’ &źū>ŗśéPļ„ūė+ö$Nō>nÄB VK8d8ƒūTņČļĒńdīyX|Õ[ó„b  Öu÷ČÖõ%ļ8ĖėāśKōųk hMPö;u…īfmēļėõģC7ōpņdęÓC A“wڳ®;Ÿ ōQ„ńl š ļģ3MžŚžČĢ Ģ’ ęrĮūaĘś)ĻīY”ė%OųŃöGŪ ņź Ay€°ŅxÆå’fńgnīē0ņęhļ>ĶĒu”+ĢŹÆ j ]<÷(õŁżī=Öė‡łü!Kü_óA”„Xåņüxqü)«ļ§pģ•õ>ńņ°Ż•BāŠ”°ÆÕróÖ ń©pšœ˜ķ;ŹķįäųĶ* l Y“ųB\÷ż"ļī»ė“ĄųŁX÷¼ķ ¬* ° ĢW&AGŸšžĒķ83óSÓšö€šŒIéĶVGĶžüōģčņ€®ļõkģ0īü…_ü$ĻZÓ™{EżæŒü]ļ+šėčöCõ™° ­~ ¬ęć<Ö©ŠņīKļ+kńõyīN˜æÉ$DI“Ś jč ”ųķ"÷”Åīœė}~ū„ś‹Ŗ— jžLTžAžš°åģoō„¦ń>¹Tõ>0+zQ÷ńL ˆōĪVņGŪļ,åģDDp8‚XVŃ3 š¦’ūłóęų+ļČė¢y÷ØÓõ=» Ā ”üˆ'ļ}¼ųų^ńE¦īĘ:ņ×®ļÓ ¤įrhž°ˆ^H ‡ö#1ōAXļ§ģ(‡ūųŖś ’æ€x_b¹žBHž{]ļ Hģ„õœÅócp  „8 x}8«8†Žņ„Fšó³š€—ķ[ä’XšŪµóā ¾+|īłį³ųŸ”ī6uėĆžł[ĖųŻ kpĀ¦Ōż±’SČ’¾š˜nķęó>sšże@Z 4Pf; ¶Š ©šõŖ óäFļ­Aģw¾žtžæĻķ„£4 ųŹ63ū[eś–6ļŃŁė·Nöteōzs 3@Oz/ā<īņ'†ļ•Jń‡ ī^¤°0‘CU‚|® µ ’÷`õśļa„ėŪEś¹2łæN ÄŽ°b jņ’6¬ļÆģ&uōnOņ_=Ų„ źĪŠžˆѽ³Žóō3ńŌš:äģL”žngž?!NžŲ ?WFū8=śęīźaė®|ų÷,÷ń IČn5†ä htłšīŸ'ņ*^ļ™Ņ×ĖZh| BA hŚöõÖÖīź¼ėG,żŸ™ü“Łē:ļĢ‚üŖ÷ūśrļPģł7õĮód[bķ]UE™ĻU¹Q€óŖš5xšß§ķ5µfRńćĶŚ ä &PųIįöfžī«˜ė·ņųœ÷f. ±~ )Ÿ̳¼¦o¶WšŹiķ‚Qóœ ńĀĒ ł …)Łjźl%[Ąežńņż3ļģ4ŌõåóØ -W _$ņzŅé ķ̦ņēšĆĶš/Ÿķ«7’JĄĢöī#æ t ꫳÅdų—”īķ]ė='ś…śų5: –˜¤žn¼Vm’Ū’QgšÆCķr:ó( š×©3­¶Ok± 6§ ”qõ“jó_Xļ_5ģNģžźžžRŅĪÉ}ü €£÷śĆ$ś{:ļlŪ늘ö"šōXŪ[ž h,»„t¤@o’üń[ļøcńb²īŅSd¹HYxs uy ąö‘Eõģ&ļA½ė7‰ś„cłšp ķ5 > Xč’³½’¶¢ļį¤ģN’ōÖ{ņ@\Į iøÉL/‡óń;CšźķŁž_¦ž˜'®!µ Ł4ūāśś—ī.bėµµųæJ÷Ē9 Sby@Th&Ō4ūšī‘aņW–ļžKhõŅśzS «% ±ö’čōżćī“Źėä`ż Īü~-Oß™õ %øµ^üM×ū8~ļ6ģƒeõ‚Fó†¤  Rr—('&‚ųņhŽš¶‘š™æķ0;"‰“čĖ ¬° ]Ū ÷7ųČöœė[-łnŠ÷ńQ å Ū:œtrēsNšbķiuóŃ1ńCēEép³!¬“{•ōĀhņ¬Üļ*—ģéoż÷üP“('€Ń'6œüŖŚūö×īē°ė¶Z÷bĮõą ”÷ Ć¢GҐ@|ÖČń¾’īu³ńAĶīgćīQÄJ³~Š` źf © ųķpöYĮī;˜ė‚äūū=ĻĻϤ—„GĀżŲyż|šsČģčxōŗ"ņ9+”†/"sqAp‚„ÜōOŲńĀš¦ķØ±Ō½OD­Wö” œŒłčSųeIļJāė—ųsnöĻ ā+ ÷±’äkąK+ńŗXīs•ņBš;eUr1t+伎 €æõTĘóžØļUWģĀüź]ūZX · bęš žQ żIIļå&ģŠö!BōŖ§ ©k qŁT1Ŗæ}[ŖņCš ń¬īsy“×h X®K{łųg·ī)yė<_ś“Pł”4 É”•ZæX6’÷/’\ušyZķ|yó”ģš.ŌāÆPqĢćH ½ 8Fįßśźł‡SļąöėóŗöÓīō®ēĀŹ h 8NTqtžüń+DļbńČäī™ŁyŽ’jSÉ6 Ä ĮŻöWõQļ°źėa±ś’®łöu ėŻtٵ«’\t’¦ļv’ģxĆōoÆņcYfß ­-å|»4°wóÓ’šņUši4ķ³’:ķžA6Į=„ˆ Żż9éś’Ģł™›īĶXė¦ÓųЁ÷C2 #z/<9É®†ä{ēšųąķsņ&»ļĢ‚ÕO‹ét:`# %ļ śyöŁ—ō‡įėŖwż*ōüČ/ōŁ „—(üĶ€ū“Pļ>ģ ~õ÷ió‚Ō‚f BqīæäņÜīW¶ņĻ0š"š®ķ»ZfĘż 2¾— t® Ėė÷¤jö3ćīy€ėšMłłų/­ żā­NÅ62­@ƒōļģųģ6góń„õWĒ”Öä ÄļI=ōCūńˆ”ļpcģŻ¦ż“<żŠĮ2šdžjAÕAüŽzū†xīÖGėd\÷ļĆõŲF åH Ļśaī”sYń£ī{ń‡®ī?E½ÉŅĘł×f ½] ¾—÷‘ųõ7iī>ėśūj?ūh‘;ēŃ#¢ųxżżŲxļ[Fģ¶fō«0ņ±½Ch²är>ßwFó:ńQĄļ²ŃģÆóæ„ÅÜćµ iö Lżų˜·÷Ļ·īźeė *ų2ŖöG× éģ °$WHn~åŌšvšS ķ®dņ0ūļÜęēG¶”õ~ÉŽP v õdżņ#/ļßńė-üüßūī'½ŪnXĪ•…żžõüŚ ī&}ėČ&öJdōKI ”% ©>Gy=K‡ü@źńķ:ļĮŁšĘķķ™ ]x‚X ą‡¶ųjP÷«7īĖ믳śś»ł‹Ü r`Õ*o£ž7ržŹļ­ģŠó<&ńś¤ÄĮo“<Õ@iČÜ ŪƒōtbņY<ļĢ4ģ˜’‚’®LO-© „ .ś¹łĪī‡~ėp÷_õ†Č ź© Ac˜Å×w=Ań•ˆīsŽń„šīųpĆ?(‚aĆ£žu½ ,ö„Pō]łī٬ėŹ3ū/LśO8 Ą”ėSÕ’ĘæžK%ļ0ģOõōóņ”ėÌ 3o}¶‹ø§ŖŻņtWš…Kš.?ķZ«’ź ’ŃÄ!ĀÜQ ¼>śžłPī-ėÖ2ł›ń÷@¶ * ž\*ø*@²sš6tķŸņ®š''ųK>py¾ Ŗ{ YåõČ’ó¾×ī ³ėßźżŹ…żļš`µ© ”Gć°ū¦ęśąļĖŠė.ŠõÉŁój^Šū 6Ä®s–eLYņåĻļ®šEąķ…ø„6£_QVT śS ¦“÷ēśõ¤×ī„ė„«łyųį ĶQH„½iÅ„ŁNŁļāŻģxØóXbń,G+ā€`Ī"Uµ ō8ĄńĶ³ļ§ģoōżd˜żÉąP“Ż]“Sü'<ū‰Žī VėrŠ÷7ūõ¹E ß^ ©óŃGīQKń€vńśŚī¹l€źüĀmźm( B/ Ɇ÷Dėõ)’īūZėoüēUūsŲ'9«vDfż½ėüj|ļõOģRō#Mņ„Éėy™ĄŌ^˜¦óÜUń.ģļĄņģ„āŌ Vŗ«Į  ™Ž R ł\¾÷ąĶī~ė74ųY¶öø¹ DĘ  ģNņw¢ę[“šŠŽķ†ņŚš’£qŖŪnčøŻÅ^K r3õŅ(óeJļ¹ģ&qüÄūŚź Żņši„żŗ0żŃųīeĶė-ö Sōsė •Į ’ƒ<6h»­!ņÜ|ļ źšvī²š |ż,„/ yzłJµ÷š•ī=RėŖ‘ś’‚łh 6ź³P'EĄŃžqØžtš;öģq•ó -ńīfžiF.½nOTCč ōéōŸ×ņ’Žļśrģ_’d4’ŗŽŲŻaˆ ,üĮXśSłŅļ×¾ėu ÷/aõ› ³M öĮ1=Ķx‹ī¬ńJśī}Öń-ļ-9öéĆfŌƞ ¾Cötō0ļłéėqLūTś“ó iŌ}šyEżžaמA’ļ?rģr8õ„ó~µļM †­deˆ†ąēņ"mšéšŖtķŒĒ’*©’ńzSqTē WlŠHś=łq»īĒhė8]ł\ųčx QŅąŅ1óVƒ'myšõ|ķ\Ģņ„+š6”öķ1i GD  ö,ōC=ļ üėžżæ‡żó<¬)c )xū_Éśl0ļ…ģėö€ōŗUĆź 0GZ~*)-ߞņ“ šņń'.ī¹Į69ŃŹÓ  ,÷įõ žī°ė;ßł¦­ųć .#.Yž$¶I%š„ķŅėó œńģ/ē•7Cٜ!*\]²ōČÆńmŠļ÷³ģłžØŗżßµ—Šž w­‡ųūÆ$ū¢ĶėÆ÷F#öj, ˜\ рŠ®­ĶÅ~;ńz_ī±ńšüīūĻ Ī™ŹĆHē ‹ę 9…÷8×õwŹī›†ėó0üˆūXby0T Gż;ż/Øü8rļėAģ%¦ōˆņJć‘B¢A?…5Äłˆžó7ń0šO3ķ9\1}¶°] ˆ ĆŅų]g÷ĪŪīęė'ų÷~Ō sļ ö*²o K]нš]Ķķxņņ]yš«źBÖC2žĀWœĄóō¾Ėņ~ƒļ°WģåüTü\ł z©Ū™Ė])żü”ü‰ļtß냻ö€÷ōd3 ˜2 ū±óFŪIj~īń§3ļśNńUyī¦uāæ+ē'ęŒ ?æ ƒ‹ų÷bÖī‰ė0ūöCś„ iM©šAŪąGž7õżIźļ0Ķģ_ ōvŗńĘÜÕü=ĘH$ÆĶ% >‰ōėUņ˜Żļ£Ćģš’¾ķ’X®"( Ą†åłšøųņśīˆ²ėɇ÷ĶęõzŻ |æ ĢĖž÷C4āfńc›īōņŅqﳄƌĻ6—‹͐§9 {łõź ōĀ-ļ,ó뮕ūk¾ś‡2 µYQB=”žbMž_ļ3ģåiõ?fó’ ½ Š%osŸeE<^½ņö/šō|šH‡ķ]ó’Ėó’=”½˜Å ų-§łłšŃų<Ÿī-Qė–Šł*TųĀ© >ōÖ¾ąˆš’’č’÷fšĶhķ`×ņ Yš[¤3²śf1.7 pń ĒõˆÓó1ļ ģN*žŲż€d%[Øi ¢÷ƒ~ūæšśĢļjŽėæöM9ōųƒj% ·#¦_ĶšŪĢRņ ¹ļÉńT=īxō…ŒżüB¬ Įļ X÷¼ŖõGčīŖ©ėnśpģųĆ$ ,sńÖ<D_įļ®Óģ­ōLŚńu‰;’Ļ]­ĆōOiĘó•nńfßļŌģökžK%ž7ņéÄĘ #\ųuū>˜śÆīBiėäųį—öQŽ ŅÄ ŗqµ’s“ż ń"6īšōń¾Pļ{ō[‡Ž­=ŅĶj ą_ ü÷ŁPõķÜī¹Ÿė›Æüü¹©ŒuļK^ĮŽüüAüśeļ"@ģ¬õW÷ņŌJ©­*.škĀ? myFóŻŻš„gšųrķׇmŌšŸęŹ( W: xų5"÷_čīC«ė™Ųųp÷I ”5 ĄhWƒ5›é]ŒšDķB,󫻚Q9:jxQŸĆ, ‰½Ķō”Ŗņ©”ļŻwģ%żTü| Ļ–m6*¦Öü“<ü›ļīČė@ėöÄ.õĢg e #»īsĆßIwŁńć&ļb^ń~—ī%„÷öŖ'F:š^ ēˆ ĪLų>Õö<Šīd†ėP\ūģvśÉÉ m’šĪõ2žŁŪż¾ßļłĢģ¼#ōVāń½[/wEår±ß¬XōƒņóšļŪģ#’&,o1ņ ?gŁŹłÄų8ļØÄėæø÷@$ö~ ķ «*ŚKö—ˆAKńfyīįOņÆ«ļąĢĮ3\‚ń` ąŪõZīó‡MļšģkŪūūMJ ļÓźŠųO>žūčżnbļÜ/ģ%½õyæó+7 ś ŅļPG!Zņ9§ņØšē·šfŹķ EµP4¢4 d ½ÄqØł pųrĀīnėķšłtĮųÖ °M𠉧u”’"–’Š^šœaķ¬(óź°šo­‘›į.ęÄ t ‡õށórļĻ=ģ—ž2Mž9}źyč ¬·/ūŌIśą$ļ™éė1wö ō?ʹw iļ/ĶyČUa-ņ‚ļfgń“īąW]łkž|Gį± ‹˜ ®÷Ņdõ} ļrĒė,kśŅTłŖQ 6¬WÅ#̕Ғɒ$ŽļĆĄģÓzō¦>ņ"Ö„V ZBšž«¼ƒšóļ>ńįš!ķTƞʁžŃZį×t  )ū„9śXČīFvė(nų\ööK» ż 7Iq‘.CrełšAīa&ņ{{ļU3åĖx©>Ų% … ųÖöMõrļ=»ė"ńüGZüU½Ÿ”{(¦ē­±ü üĖ\ļ>.ģū*õ©óQsŻ"&ok6Q1ó ŗš—…š{ŽķÆl3§RŻI Ž, Äqų1÷€Żī8•ė2ķųĀ÷ŗ5 /X ąd]ƒ9\¶‚š‰ķŁ?ó–ŃšrNʈ=U;­^ šƒĄøōI’ņc‰ļa`ģ³2żį¦üb4ėéÄjU'†ĘüĆ!ü‚ļMÄėMśöčDõq Źw #¹;ō-ŗEAĢń7ļˆYńį†īĆÆ6Ż/¢G½V ž| aGų•ĘöœÜīœ”ė"hūńŒśēĀ įm½įēĆ6*žĶÓżŽßļåĆģĀ*ō ąń;7‘’Ń@fgœĢebōę"ņ` š.žģc*å9ĆFRł ĻMŪĘł–ų%ļZÉėČ÷.öy ŗķ °”rĀÄźKs'dń<’īÓsņNŽļĆß=Ųü ‚^į@ĮŻ ĖŽõ}éóiļ».ģšū¹#ū²? ļͽõŽÓ 6žœÖżĪ…ļiYģäõłó‰/ rż 4Łū9žķĘņ®ņHš1Üščķ)]¹mŸ‘‰“ž= _””łĮ_ųĖéīó”ėĆśżųfČ #H¤kakø{’įb’ljšs`ķ UóÆŪšÉƶ•Ģ$ ­š < #‚õhwóåļ*|ģͼž”‰ž€j›kć Ļd1ūś5ļ+ķė'«öŒŲōŲę¢ żÓŒ;K )+ņē~ļ˜ń÷Śīw~°5ćē1™q żF ģöż&õ„"ļ‚Öė©ś8žłµn ņŲ¢"£°ž’3„’¤Žļ;Åģ¹±ō“ņšžW’ ü%%yģˆöE0ō(n Ī= DÉļ ”„Ģevņ8Óļ.ń1ļĶ­—»’ zb=_łČųĆåī_ ėTś’;łI÷ mtßCÉ>#’ą’łLš„;ķĻ“ó®ń8& 7Ķ…Ö\]ž ąPõųHód°ļƓģ¼ūž›Ēž‰|¾¦ W!†¹śR¼ł/6ļīģė»óöż%õ° gŁ ¤ŗł *Ū’ņ­mń5Łe įöģ( šö ŗ·öušōłBļIūėzīśŌéłÉ śéWs;odn’ĢU’yąļvŅģŽō­Āņš®§ 3ĒFH ę^óTīšŠmš:aķŹA’é’ė żõ ’@ŌśÆŁłųēīŸ­ėŽŁų†‚÷aē x-bēöõž«Ą¾įš‰óķ²Ÿņš ¦Yz”!ÅK² =‹ דöåŹōb9ļßģQ`żäēü!Šė£S« *Jf&üšiūaeļ­-ģ{µõ¶óŪÓŪV ¬ō3”–Y£xžņPŠšķŅš·žķĻŽŽF¤Ļ9x 8w äń÷döPļ»ė!‚łÆBų)… ܼ Ū.ģ,gZšqkķn™óšOń޼| f?i„;„"æGō¤ņśĘﯧģ Ģż÷bż÷uc:9aæ›DüWū›äīµė _÷;ĶõōŽ œń “i“Ėöt4fń$˜ī§Øń,éī,L¶æ4gI†wų Ķ Ā÷ņ4öÅī8”ėÜū„!ūQ0vß$ؽj?xż-łüp†ļN^ģūŒōī\ņŲ®K÷ņ)6jā÷¬DéÖóߑńĪšķ]²±Żk†ƒ³¦ ‘× y ł·÷eĶīEƒė–Aų§ĒöA  W§ āØŽĪ§d¢ÖPŁš·ņČ šĶ|‹Æfż«-ĪE L"õļózCļöģZ€ü|ÖūÕ žvģC¼¬›żd)żļāėŸö^Hō„Ö &³ T¼FŃk,LžńRļ1Żš śķ’1„{  [Yjūųެ÷’ƒī0HėÅkśMkłłĀĮīųxė,šöG:õó€ =S .KÆėo„µ—ń1éīG}ńÓī’CČNXq™Å1 hę ³EögōķÜė)ūśļ ±hR¶Ī«~1’ó’hļÜQģš½ōN°ņU}Õ ehį«÷rŻāåņ!bš•švķļn’*]’'yn[4 W® ‚ś=ułĮ}ī™<ė²Śųö’÷ųQ ]Ŗ"3?;kkˆs²lš7pķ’kņ`ÜļļćA®|ń,ŗ ųˆ ų7öa\ōŗčīr½ė1€żĮż‹8†Ł n•āū¢ ū¹’īPæė¬õv®ó Q³ -=@ƒc„·„5£ņ1šWžšČķ’SšŌ“žœ5…‰ ‚z ü„÷3ö%±īreėm€łuSų£Ź ń PTdŹŚē÷_šķš€óG8ń«ū–\‡FŌŠ~䨀ūóĄ„ń‹‰ļFlģTŪżō…żę“ģ‹L1Śżü†Iūź¢ī]bėń_÷”Óõ¤ mF —Ä>éłśIńyAīļ~ńöÅīcfŅīāšwÉ—ū Ŗ ķ‰÷čõ—ī~Xėöņū9BūmnŚ/3Ƭ„”RżŸĄü*Jļ}ģhyōWTņSŅó/1NTš˜ć'ęœóqAńģļ3ļģĮŚļ8 -ČĘŖ öÕ µŻųŻu÷°žīćNė»Bų9×öcĒ Øā uøå˜:ŁK¤šę¼ķɈņ š±>Šē‹äŻŗ»š( ļōŪŹņÜ%ļÉņė}•üųüūŅū ÜÆ2ęå·cżwŻüƒßīr„ėB2ödōM śż r#~`dF Ü]Ģńļ¢Ńšóņķ"{gŽ1:N—÷ v82¼ųøV÷Ōoī#ėzšś`”łżŸ ¬:”{ŲfĄ¤žĪXž#«ļųŠģģó“)ńŽ—˶›>¤Šė!¦ ó”ōævņ#]ļO?ģNg’W’y"ą5ć¶ &ś’ųå©īĒZė÷0_õ© ūŽ ™ ›JŠ«ūTgń ī‡–ńęīĒ9 h@¹^ ļŗ SöŒ,ō ŚīŕėW+ūOOśi £™—0Œźž-Ŗž¼OļK#ģOńōųćņ²%f ³Z_Ŗ™¾3œÅņ(4šR6šä5ķÅ¢’>£’^…Ąˆ½ö AjC:śŽłĻ‡īü4ėˆ'łŃę÷ķw (åx­Ļ(ŗ%fdš9]ķä¤ņ‚šZ®ś'Žå"¬\  ±śõ>ōxļöāė5Üżļ€żQBc9ķˆ – ĄŸūč¼ś÷ļĪė šõ¹ ōŌHüó õ×Mņ€ņUāļĻōšīQ¬·=ä$,Ó# ä %t÷³ĀõūęīJ˜ėTŻłz¾ų«ć Į?öū0Aqtyq šõģPéóg”ń•;o®õK‰¦¢F@Ųåóv„ńGŠļ"“ģü*ž:åż²»”ĶÓ gtŗĮūāśĀī{rėŖĮ÷R;ö—= †u Z{Z©¼Æ8÷ž%ńK?ī'Äńwļą› 4jƒtøž¦ e£ šV÷“ŸõsÅī"}ėy=üŌ–ūk= |­Bā%ż—‹üōbļk*ģO±ōļ”ņpķYŻ)gv(œĪ3…óöńš"šŒ"ķ]ĖT<…×ŗ¾g d” yĒųW÷ØĆī÷qėųrųŗ÷}Š Ōö ®‡ ÆUüMż§šˆ²ķ Ļņ1Rš“ÕŗbVœ²»rµŽ6źōhæņ-`ļ/ģÕŹüj>üzń ē«ƚóa¹$ż*ü÷ļ6æė ŽöqÅōˆ! å ÆĢ^Xõ5ˆ įń‰"ļ~+ń1RīZ7«]}#5Š °¼ ‡ų8÷*½ī5mėŅ ūcśū˜ =J:ńTžIžśŻļݼģ‚ńó@”ńæĀĄź%š67µ§ ä‹ōœUņ&ŠļÓ³ģ©Ń’É’]ó œ) CŽNźłüĄųZ÷ī’Ŗė(u÷•Õõ„¹ @¤ m¬Iį?C»Üsń”¦īØņ)cļ?‚ŹbÖ Puö–"G o öō#-ļcīėœtūƒ”śŪ ø‹ CS*[§žĮZžélļ”@ģ"LõMEóƒŅ9Š eükIą]×Ńņ—Cšķfš(nķ/¶’<½’Sp—mėĪ 2H"śrõųžī&PėSł-ų| RéŸāIņLŹ%sšżq횄ņµ%šÓ™ītŻ‚ß` ¢ Aņõuūó\ļēėŪäżMżqEė9FŠ “!6¬ū+ĪśĖļ!ÕėnÓõZ÷óĄ;Æå ›ĮWŽ#YžlņśŠļ™åš<`KŠõ¦9Č- ž ­w÷€ĢõtÖėŸĀłŖų8ę d<i]jhi¢ļļOįģ‡ņóš²ń§`½ŠoV`¬¢1Łó@€ńĻļ¼ģ.0žõķż¾¼%•–É $Y,™ūµś·īüqė^ś÷“yöµs ģ„ tg~‘©|;É{ńJAī’åń×:ļ{¹‹Qõ{ŗ¢Dp s]  ÷PjõčßīĖ£ėPüČųū—aAa©åüßRütrļ…DģŅģōŻ×ņj &sķ ­G@UŒ{^óžöšę\š¾hķ’q µŠ’Ū¾Ż \J ŹųE7÷Ūźīē£ė §ųL÷ÅÖ Łō ¢_ētŠĀI x—šŌ­ķ@ óܙšĘķCKPS£1@»®ęō.Ęņ÷‚ļ"\ģ€Ōü3JüjŽ uŒĻ„:®ż[vüKļrĻėŹ¹öxųō”I Æ; Tŀ鱁¶öń)Dļ 4ńścī ;mŠļń[’S– ķø Üų÷@¼ī|ėļū‰,ś3§ „?ĪŹė…jž‡#ž„šŻģģ£ćó ›ńLŽo±įJ.ĄŪ' –ōqiņqĻļ?ĆģµŽ’ŻŌ’±ś- ¹ś=šų— ļ ąė‰_÷Åõ{ –a ķ—ź¹Qī⁁ńļĀīé(ņY‹ļ坒x&‚Z“~. ī)öPGōscļģ/ģąlūžœśåĒ »FYļ ž¼QžŒļqģéõ ”ó¦õ/¤ kēP,æH„)¬žņ|šī½šuĻķlĮ’¢Č’Ē+>Bƒ Ödś²Žų Ųīāœė÷»łō‡ų_— ßų”ˆƒŽ’Ł’Ż’X·šōĮķäóļ™š 9ōr„٬ ¦ łŽõišó¤rļģUģ2^ž§žĢEE,§ \¤¶uū_žśŠnļ0;ģV8ö@cō¢,ÜĻ øŗąĢĢ„qņżāļ¤Qń܏ī Ł®ŲŅ%9ø ē£ -d÷ĀõY=ļ£ģĀ ś¬ųųéæ | éµ³¤Ļ)X%WšYķ!Zō )ņD¬ ė#Yj’¬‘Óēóݘńg*šŪ"ķśSžļž½‹V”‚ –nū\śeĻīóžėQųžŚö9„ 1Ė 2ÉMm>«ŒŅ<ńlī˜'ņ…†ļÕæšU’Qh£B *" ‰÷>UõöīpĻėśęüGüŌ·YrgÖʰ½üÓ/ü¶•ļ’tģ+õĘ óafYģ%Ž1 ODBóźčšwšŃ–ķ+¹”ū;¦Į+č W Ӏų"÷Ö ļšŅėTÅųŠn÷ūĶ źā ŅGŪLśŸęi}šś¤ķÄ/ó4Ķšcć‚|VҘ5 —uIÕō7æņ°£ļF‡ģ6čüļ^ü7Ł |`uÕ~źü7Sü®ęī‰ÅėßöŸ(õʈ p ńijńѼŁT.ģńDļ°GńkībDƑö—÷0Ž •¦ ÅaųÖ÷ö!īøoėFū ]śØå ™p(’ÜŹ?ž:üż–ńļæęģAėót§ń™e¼*ł;#į¹~ ÄZō]8ņ$­ļ¹°ģGR ®<;Ŗ' EZßłbÅųĪļÉėC_÷öĘõß” ~~ ;ĘßeArŃW.ńż{īŪņ¾sļbāźøč^™7w# sīõRō‹6ļ)ģ6rūL”śŲ W~O.XržĒ$ž›"ļģ²~õߊó3W ‹ž ó3ļm-)Ø OŖņW-šłŽš‡¢ķ„ä’źé’E†ÉpUØ 0÷ÆłŒˆųźgīQ7ėAŃłP”ųŪ lļĀ'Į„—’R’OUš‡cķįõņ”~š/^&:čīÕ '¦  fõ|ó^ļ ģž~HžKĄ¾ž#( #³æūZFś'ļšēė >öŽgō•…?) ś<0žØ”€ųń(nļt"ń’fī¼vīŽ/^«§ d‘ J÷/oõŗ ļŸĻėa(śŒł£ P\ēā„Ó‡ņ’Ūģ’­£ļÓ©ģPō-#ņ­żmd 9WE™bˆ®ØókXńÜšÕķ|tžČ3ž¼ČM™L™ Ż5ūMRś‹īÖ[ėA\ų7éöŖį ŹÓA2[ŖŅeŌńÖFīĀ'ņļŻĖv’xē—)E ą% Óö"õmÕīē®ėņžü|büŌ–Ž'ü ³wžü¹ ü'“ļŚjģ=)õóڃü“0–#t?qó æšļpš(‘ķ™Ō>S«µĒ“É nģ önųŃ ÷ļf×ėāŁų’‚÷žŻ ’ ÅJ„XŒ‡RČöbš—ƒķ><óģŪšy|Z”#Dʇ¼ŻeEČÉōX«ņĢĀļdģĒ ż‰ˆüé ÷šQ_s i¼ü üŚī`²ėy ÷QWõ+¤ q‘ Z˜4ĘO|».ēńx4ļŽ}ń®®īģ|źÓO’`ƒ\ v Õ(ųÕ²öPØīv둇ū „śbö O‡$ø•°öżŠ«żĢśļućģ7ōĢļń>ßĻ UšĒ)Ęj ČŒōžļńÕļ×ģķfØeC=_A&Ē ¶±‘ł…mųģļ²Ųė€Ć÷ķ,ö+ē ŗÖ ¢Īʓה]å’š7@īcPņaĮļb<įė? ~sū£ šØõāæó’rļR9ģ\ķūj$ūG> ,ĶAäŪ˜śż:žżļÅõėāęõ÷ųóP„ ńV sõ!2ЧP}ņ¦ńļÖįšęķķ\ĖoɄ̄ÜO ‚ž Kł ųGxī&@ė«8śŚłk8 #›(jšh+’¾&’Nš®LķaSó5Łš¼Z¬ę•o¤ @ śõF"óƒCļr,ģ”÷ž®®žwÄ[«^Č UQ ĒśŻäł@'ļåė˜ö­ÄōZÓ] °ł–0śO÷zĀń &ļ Qń˜īr½ŅXÓ"WīP É5 ŸŠö õWļ{Öė°xśķmł5L ]µĢĆj¢’\ˆ’ųƒļ`{ģī…ōƒ`ņ<0›¤ Z6Ū|?8ŚUƒ~ó>ńG4šŽķsæžž‘žČöVįwx ĆöīšśQõł]~īvEė—ųt(÷ ž “0µ˜3 ÖÅcžšiī\Dņœļś'ŃõŸÕ"$ šų %•öXŹō%ĶīT£ėa,żQŸü°źϰ¦× Ό0bü€Įūłrļr8ģ!Eõū9ó8aŖéß"ģe¬ųU’$Žņugš×qš–ķķb^ķŗ®ą› {ŗ g3ų©»öyļγėłQ¼÷ō ›b 7VEh L;p”7š«Eķc\ó#ń6¬ ćÖ4r~œīų[˜ō­cņ½Ģļ’žģ@KżNßüķ†ģ‰Hīzüœ¹ū)ĪėšA÷”õ!Ä %Ć qjљ¦4øéĢńEļĀ”ńÆŅīA¹€1#;#) . Äö÷ī_öfĘī“ėkŹūgžśō ”œi°B·¶żŸVż š(Ųģ˜rōw6ņ“ X`Ū’!;(Ofč ōŽĄńźšJ"ķ6 ø¢$n ø» 0mł}0ųSCļJļė ü÷1|ö0÷ · ×v@šX¤T!ńe=ī—ņšįOIūs>|“ķK 9Ŗõ¾§ó•£ļ²dģwü¼gūt1 į’לøāżń\żÓ;ļ’ģ†"ö]Oō½• “\ Š„ ąźxŅ<£”ņńļ> ńÖīTh¤Ņ‰„Ÿ„& 0V»Iłšź÷ÆīJ|ė`śBXłg }€S,C’Óūžžušhaķ'sóå ń²÷Ė%¾“ž&‡`ł J8õCó„€ļ |ģT’×Üže…t¶Š Ķ„ŠśbŌłÕTļ9ģ,§öÓšōĒø› _Ņg’kBŗÜ¤ęńÉ9ļĄ‚ńRęīXµlžį’ø' Ü÷ šćöõÖ@ļųėz~ś™ł9 „æ÷®bŒ‡“’xL’Œœļ“챬ōī©ņY+̳ ĮC˜óE ńßBš=9ķIĖžłÅžÆõļü^ ²¶.לūµł“ŒīaėK³ų”o÷\ž A;£ńƒż\·½ąįśš¶ī”Pņq½ļx-×lž4Óƒ b¬ „|ö ™ōBįī®Ńė¼Oż‘āüźę„®J² ĘTĢDülŽūlļf,ģhPõ9bóØvœ h%-XÖą­S¼ņš;š {šjĮķ#%¤•ōĄģ߆ ²Ž Żų‰ö"īīŁžėz łLć÷łC ¾› ŻeœZ0'ķ!§ š…ķõ^óŹ-ńąĪļŃDéW†ČĻõkōŪ)ņҬļŪ‰ģĪ\żżN©'¬Q¾ŠAü…`ū̘īyėąO÷§ŠõŠ÷ }ū ^Ÿ  …"ńM¾īʁńÄīmÜŅspN tģ( \ +Æ÷CöĒī€xėóßū!/ū'-LŹS€vI“‘żB#żŖĄļ’ģĒRōV-ņB9£„įnS„!7=»ó©jń)ŪļČķüµCą TZrŠ É Dłāū÷QõīŲ£ėgÜ÷ćuö“/ :U *½Ę;’3Ļŗ¶šüėķaņGš÷p¾sy=uŖČ7S ŖsõŸhóČSļrģHüāqū%x ,-\}ø&½żäżzŻī^Īė+ųõ(Aōāæ :ˆ ęāé„õ=æVņŖ­ļHĄšŽķseø'Ō˜äŅT ³a/łŖ÷”Wī3?ėłKś$ZłQE Ą²Sa<¢’£įžž(šÖķx@ó čš£Ś% )<v‚Ō Ģ×ōŸ¼ņ—;ļTģ%+’t’µŌŗ/˜ φś „ł ļm¹ėŖ«öõó ł ØņƒĻ{ń]Śīżmń½ķīPU¼Eü OĪ "ŽöJĮō¦ļńŠėĄ¦śzŅłō€ »•³uź@’šéžžRļļ]ģcĮō}ÖņOv+ü Œ‡N!××v/󠹚Ż5šė5ķž ’į’„5ó%Ļ@ d|bmś.HłtQī#Aė/ģų¹÷Y\ ą·÷õ÷ųVś}ўš:­ķQ]ņØÕļŽEoąÖšłŃĮ IQ ōö&ō¾īrŹėƒ¦żė?ż >÷,• ›.NŌūŠū/*ļ®ńė õ£›óŃŹw Ų2‚N{žEÓ`ņuōļ8Šš¬čķTīNź]ųY@ "E wÆ÷»,öœŻī¤—ėSł*2ų.… Ń ”G%‘ĄbŗbŹļƒłģŒóģjńń-’eĆ[āˆ‚2ć~ōÕŃń4žļуģo£żūVż[Vb=c«Dįū/ūwPīųMėĒn÷šóõķT •C d¤V¹Ķ&JN+ńhīgń÷­ī•§ų’‹”™ ’č !H÷BøõļJīˆKėüęVūP’Ļ"&Tč,ż.Ńü~`ļĢ?ģĆ_ōZ5ņ†’õčŗHlj%ŚŠų‰JóńūČļ-ķÕ-ü§2˜%Y g” įÅųī•÷½ī*tėåų£ö †  Ŗ»jŗs/®„z\šN±ķ÷wņ³šäŁé¼Šma˜±~ 4õxó:;ļ-ģų=üģ“ū‡® ŌHöXž•]ż4ćüā©īv±ė‰5ö«iō„ RĒ ˆįYzķ3ņˆnļg깕ōķćƋņ—å‰ćī ĄŅų¼Z÷Ó]ī”KėYĻśŪ¹ł@ž pšŗYćožožøśļĆķģćó8'ńĒ;|A€ļ¦:’›w ]|ōI„ņÜpļZ{ģs­’sf’ųü”Õž2 =Ćöśm2łl’īź­ėī÷73õF X ÜÓ~śSł?õ@ńż³īć²ńŒļLq·)&X¶šŌŽ <)ö-uōĘļ”Āė<ūÖūł„Æ ¹%Ķk$R®ĮžÉšžČ/ļµ9ģN*õØó4ä~L 9’pLśQv‘āņtš%lšłAķMr’gM’°??4žĪ F> ųł ųųĀdī:ė²jłĶųˆœ żĘ©×łā’2Q‹šK‹ķ ŖņčķļuĢŖŌčĘL m 2ŹõĒ’óW ļ¼čėyžjzżĮ2ėūŲ$ dõŒūüīś™TļŒųė,ŚõĒæó ęń€ æÖ:"Ü„[ņ{äļxųšīöĪ„“±yē{Ī į „ˆ÷zöōļśžė\šłßKųżx mŃ ÕŽ.ųZf\ƒåėļTöģūóžń)RԈĄ kćĻ(C5ō•µń+ńļ…œģĢēżÓ€żGf;QE¹ ?d‰—ū'Īś ¢īßfėpī÷ŪDöT %^ J$w laų®PńÄ^ī ÜńRķīŒPœŁ 4öxę~ ę… Ų3÷‘õ—Īī-Žėˆtüī£ū2P¦~.ż„›üi®ļŁRģ*ŗōęjņ4‹śłćٵ8Š}ū·Źqóčńļ6šÆ3ķ{1 NkNP€Ó (m Éųhq÷^üī»xėMųµÉö,n Œ„ f[Š‘ģŹ@Šš&¢ķUÓņ„KšÜā ķi†#0ŅŅõž×ņµ{ļźģ|üšąū„‘ „dˆ˜V"ż ŒüRéīD±ėŸ‰ö?²ōĒ ų 2Ž ī-Ū<—Õ ņB7ļ4ń īīÜ2wŗš±« XÜ ›ųs&÷īĘHėŲś׳Ķk e ąuš1už/=ž šZĒģó£óÆ3ń0+ĢfZČh!ąęMQ ‰’ō>_ņ“ļ×zģ’憒%Ö¼ī®! P¦śæéų¶łī”„ė”÷ŚSõ D J 4Äź’V…€Hń „ī4°ń½ļÉ[91ń 2{Ó¢{k ģöš%ō…ļF ėcōś6&śēø å^œtJVĄæžĘežęļAģ õ“ó¢ą ‰ęoÓWDмņ"š=Fš5ķsv’’iV8g8Ļ e"čāł~­ųTīĖėźoł"=ų® ?›¤U¼¶’‹·’Ś_š2Dķäµņž+š¤ū„õÖ·åų} ›ŗ µõ͘óHļWéė_=žŽéżd‰Pō '²ö;ūĖVś†ļݹėVåõ ō˜$±ę TōÜ)Ā×ć£[ ņš}ļ¹ćš·)īź “šīT(³ ¹„ Ė+÷×tõœąīł‰ė.¼ł»Æųõ½ Ē$ųč2ڧڢļßŖģīō,Üńߜ£ ”&ÖqŸ—𽕲óyKńĶÓļøģ» žœ×żĮ’gqG² p,ŠTūšlśŠfīĆ=ėż÷œ‰ör’ —µ Ä=]i=µ…šńVī²ń:ļ>oæu6™±ƒ Į\ FŪö^-õ±|ī¤]ė€ühģūoØ&`)&×į/ĆüZ*üńNļŖģ2™ō*ˆņEÄÓ7‡ėM>ay ó›·š¼ šb2ķgoE­ Ž&©ō ¤ P…ųĀ÷żĢīq}ėsXų‚÷£ Č sq„yņ±LöT>šŠkķ¦×ņļuši(NBēCVˆĆL„DŠōķ§ņiTļ”'ģ:‡üˆü™Ź Q{dŸIÉåü[Pü&„ī҈ė/›ö$įōšZ 0> –®Øąż»„PKÕńgļk’šŲ+īš 'eó²U¦ §Į ”>ų2ŲösWī +ėĶ ūŽś²¼ ņGO÷ŽŪäOž,žSŲļ·ģ1–ó³Lń~`Po·8¤Ķ$3 œDōŅ$ņŅ|ļ¬|ģėŁ’UŹ’4 į š „vŌßł¶ųAŪėŽ÷7ˆõŚ £| ÄŁżļ4“Č{żšėIīeÖńO=ﶦŠ-5”zig~ 6ēõ‚ōóGļžŠėUDū¹zśßń ž|~D3YžŹ žžļtśėlõūnó;! ,Ķ ĖōÆ< šźŖņšršĄxķDŗ’žĶ’īo­l០ļö «łNƒų@dīx)ėa®łxų¶Ę {,fŠ™•˜’Ŏ’o\šGNķõŪņĮ`šn>.ÕŅ0  ļ¼˜ `õDpó™ļ@üėg…ž1ž…övśś ®ūf"śõ ļųĮėŅ*ö5ZōO1< £9÷jGćńEOļń;Pī»d@ūĪ`š— d éöA)õ‚Čī{ėcś|łY3 p™,O į䒦ܒųmļggģUōėń ėŖb Ģ_żµB‚řŚróžńŁļ¤ĘģvžĀLžFń…Ö9“ ,ūłśśgīč)ėcnųĆśö”ż :>5™[PŠ‚I¾š`ŹķśņØbļķv»ŒØ×L4 ¤ l›öCßō”øī-…ė żXlüŌŸ©Cķ C¦sü’æūėSļ°ģżõ!óų+r°ÅW§ģ6 żņ ‘š½Ršjķ¼Ź)"ǹIšĆŽ m÷ °SųxÉöCĒīUyės”ų0e÷ūõ ā. Å@‘Ź•äĻÖHšÓ\ķ\(ó·ÅšĶŠõČą`‹ŗóŲ;+ȅōüCņ(yļ;Xģb"ż'¾ü F ¶…t3éƒü‹Üū>›ī„hėĻ÷cpõßż ” ÜŚūŗ[…Šfxń¤©īŽ5ń xī3¶$.¦mŹ‹/r ‰ óē÷“iöØ}ī!Aė ŖūĀÓś÷DNöXéČü׿*gż£ļ_yģ ūózĶń³ųgAI.lIƒžŪIōµäńÕļnĶģtW§gx2#SkŽ 2*'¦ł\Yų;žī÷±ėƒ÷· ö‰Ę ßĒ Ļ“×’ų!x¹ ń‰?īš/ņԘļĘ”ųŻFė™KI× Døõ›Øó8ļhŠėņmū0Įśß# ŗƒDųr-žÓČżHļŠŁėž©õM·óöf V0 ņf7ĄĘSz/`ņ°³ļ1š`Ŗķŗ'UR]•…’š= ‚<ł‹ų÷øzī’/ė¢&śHł™÷ źrD?;9C’’^šTFķ+%ó&Įše=e»…{¶Ćwy ņRõĘGóCŽļeģ=éž©ž’c‰cpŠ æIĢśĻŗłļÅĶėšmöεōäÄ Š ³és5&pēj«ńŁžīŠKń4ƒī§¬TóZß[ Ž% ŸÓöÄ÷ō‚ńīY¬ė’QśębłcH µ`™ ˆŻU’K6’r—ļW{ģgÕō9¤ņˆ>įĖ ¼ż1TńJėČE󿥚7+š$ķķüžóäž ĻĖ ū•šsśkrł‰īö8ėeŻųMo÷Š ŗWō³a„.¾”ĘšKĒķy@ņh¬ļŠS X4͆µ _Œ ŠGö@wōGļ€Ąė†eż²Łü¬Ļ-µ÷² ¹:ż­Šüś°ļ‘œģ0¦ō0uņ `ŠŹNi…tw¾Žói£ń±Dšb9ķäA1D¶¢Ėז “Ń ™ßų?š÷vŚīL¢ė»SųĶ×ö,µ —§ 3Ūzż‰KtĪ"¶šÕćķ·ó\uša3N2Ė“ĶÜƉĶ ģņō6ķņ”bļŁ=ģž˜üpēūŪĻ ›^ā’šŅ6ŸżB:żJ-ļžūė¬öęĄōĢ* ’ü °Śæ9Utl6ņœ˜ļńš+ī˜ī»­āüÜżė r;QŽų@œ÷ĶīėļFū„)śMå {c‰ )9ež8ž‚°ļ°ģM—óZ7ńóÄ““ÆX&Š ™­ ›~ō)}ņįxļģUģ¬Ó’֛’.U Nc™ 77JśgNł!ÖīŽ«ėŚŠö½õĮ] ž mćėž·QšĮńw'ļ# ņ%Sļ9y9)ė'ū^Ÿc` IHö“ŽōÓQļg0ģ°"ū’(śX³ zL ;ŗćž=Łž¼ļĢ·ģōrõ@Uótæ¤G Bų/Ģ·‚ēEóėšŽš·ķ…4’ ’g 5ÖL 4}VośĢłˆĻė‚kłÆųüv ˼Uļ7īCV‚oŁ»šŚźķł’ņ4šOŸÉM\ČMćƧ ‚ ¢ö YōXfļ‚AģēLžSŪż #ŒüZ0 ŗĀZŠūūąœļd…ģµöÜ4ōśu EÓ'+ E4/¢ņō/šrń™ī¢/‘&”^Ņš÷ ź dī÷ŅaöØFļßģ7ŗłM‡ų±Ÿ FÉ ŸŚ!ęõY6 š“'ķā‘ō›<ņšéó> R#2ką£ó҆ĘóRŠń³ŌļĆĖģˆjžł’ż2  ŌņÓ C~ČKū’™ś}ī?ė* ųrö*£ þ Ą‡ė§+Ś3ń¢Ąīšń¦ļĘ?÷N ¤ P‡÷™żõ˜FļøģŁ™ü}ŻūHŚžņ ¢Ćį ż¶‡ü§»ļ%¬ģyŁō,¼ņnŃ Už‹,ƒJšÄuó‡.ńD–š\šķ3f –ųZ™r . Łųę€÷ö>ļēģ2œų¶0÷Du Ęd {!W2 Čv7Ÿåšpī@fó<ķšaĪ+µ =^=Tܰõ“ óŌ¤ļ›ģęŗüĮü Ø Ū2ĖŽÉM@żoĢüŃ:ļ£ģÕśöo<õśQ C Ė„Ī+č.t ņ4vļĆhńb¶ī:w«“īųGš[ Nø ių÷x“ėÕvū¤‘śŸ¬ÆČ+’WžP ži²ļµ¾ģą«óŅvńƒĒŅźEnwń+t ~nō,YņC–ļ~Žģ± j C‡K˜ fźł„ČųŌļéōėzu÷Žõ’ }a kadżėvœ†€ńÉĻī!™ņ“śļ–ÆćęĪ÷ Ų»øU žŪõKō¬ļz”ģt°ū‡ÕśłĀ i&›²Ī–(žńēżqaļČMģ2Īõ×Ļó¬G Nü °čR$vĻ…¤)xņ‹ šøvš“›ķ¹ø’o§’j”DI” °ō–łńŽųNnī~0ėy¼łĒųüĢ š/p;‰dt’Ąt’U<š_ķHŅņ/^šłõøŖ¤ÜĀ ė ½–õyĮóm ļmäė¦)žpĖżŻ49! Ū¤Krū<”ś=ļÅ"ģNäõģōĻõK ŚŖcŚ“łŃ£Tņ.ŁļÜ$ńWī¢0e¾<Īę‚ h ŗ÷J‰õtėī1Ķė åł~ĮųlÕ Ēiō¤ū7Nb±Žļ ģ įóė©ńܚĮ )kn¾;Ž’šóą·ń’¾ļŌĢģ ¶żY`żÕVę «¼ “Wū„ū®ćśzŸī¬jė'ź÷&qöųU ł… 7õŃ”=ĀzĢIńj‡ī“ń©ļ}2|°ņO;[x‚ Čx ±÷Ælõ2¬ī0vėŅRüē¹ūŠ5įüĻå SˆfóüNü„ļ^Žģāpō˜iņ;FĄ—+Ü– j™¬HóM김,š,?ķÆmIDeĢ %× ÷—ų$÷RęīͶė‡8ųČęöƒX ¦g 99PM\ŠMÜ\Tš|gķŒó–“šõPŠŠc¶›ŽØō9ņ…ļ‡pģeæüo2üŸ >ŠH~-æüƒ*üŠīn’ėYÖöŻõĻ# ē% =øh¬™A÷ń#FļģCń"ī©)Ćg÷£"”€: oh ŃPųVēöZŹī}ƒėŖkūė‚ś[Ž §+_ž1ŠųżÓ”ż»łļT÷ģÓōgŃńU½ļÄŖ®×_D?Į»Aō$ņļĶļŅĮģę1ņ÷Yæ ¼éÆł’ųHéīAÅė¾R÷,µõ“½ øx Ī„Ą»eāwЁń Sīßżń;^ļ ŌŽ©öE­s8āĘ «õ^ĶóĶļBńė¬vūś½1 –€a1śJž+Ńżąļ‰łė)šõ֔ó> Hą ‚M"ća”xņGśļ–šO±ķŲč’™ sh%… R×:_łx<ų¾hī!ė×ģłÓ°ųē %D–y¼…’¹p’ SšæbķqóuŽšpLr ĖĖ5ē Į ¼‰õæ™óųMļ—ģCžH'ž„1R 'ž ė~·”ūĪŖśé„ļžNģą%ö-Cōś‡ ģØōٳģéŲŽrņAŃļRgń)ƒīORµįg„!ę”\ ; å5÷=€õ˜+ļ”äėÕ9ś§ łŖ sCi§>Ŗ<Ą’`Ź’B£ļ„†ģķƒōk0ņUSˆ ņKCl)¾ArĶóqń÷3šÜ!ķź;žćżO\¬ėH 4įŗvū“Ÿś_ļk“ėėHųoĮöP c… o·}Õ/ES½qńŸīņÉqļ wGū3/ż> é GŚ ‘žöÜńō¢ ļĖŃėEżż„ü!Ń^–Ü `"€ņū6Hū6dļ$IģrfõŅaó÷E|“ą½ōÕŠu‹×ņƒošfćšöķówe`…ܜ4ø Ö« tmųåźö•óīLĒė²qų#(÷‰ {ˆ Wn-Z3Åõś“ŽšG£ķ™sóæńa]Ś•~ł§0Ņä/ßōĄÆņiĒļLĒģƒ ż±©üé ą|YOēY±üs üsļ ēėŠ÷Jćõ© /² ­_£€XōU\ü„ņ€ŌļłzńŌŅī‰5šŽLńPéQ© ü¾ ž…ų×÷ļŚīĮ›ė’¼ūāś¦ ą³Šȝ­ažBłżąśļĮńģDó˜Pńe}½ģ į„Ūļ¼Oō&#ņtūļƒēģFĄDIž­°Ž ųe ±šłųnųŻJļ: ģ­l÷7ÜõÆ ń{ IJµŃŠ×±: ńūVīT[ņcøļó?Ž$nÓ¼œSū ķöųBōŠļŽyģØūØÜś|| Mź=“Ķ™R[ž‚2žHļ9ģŖöŲōšŪ ‰› toĄŲšpvņ…š»š^·ķ”ķ’čō’ĘÄZ§~Ś EY¢ł¼–ųŗ°ī'yėu7śō łs× KOŗ,®13’Ą’±?šĢdķūbó£ń~ž?{ ¦Ėļ»x $‹õy©óĮŗļZ›ģ]śž8¼ž¢QpX—» ³Eøū-ś/)ļŠģ”öWßōqĒ;t ’ŪĶpˆ†y4ņØļL©ń²źīøß šĄ!l€W •: ėÉö"õąīyĢė>”ś¦łĖ ~źOĄ8Å)ę’Õó’O"š°ķĖÉōä”ņ·%ƒĄ ;]`¾čŗ-˱ó2`ńģšļGŗģĒYž2ž’e{4°5ĶĮˆ½ūźßśŲī}—ėųł®ö¢² Óæ–ϰzs[ ī’š3:īpĀń±Lļ-õi•ōä„ńJ6 Å vÓöx'õ²Jļ› ģP,ż‘©üSŝX›”¬`üą¹ū ļ“)ģųōØ$óvsŻŖt6’`žr#ŠŁņ‹š°“š”ČķkåąWĶÄQó ÷ żö ųc«ö –ī”ėhįųŒĒ÷Ź# ™6 V™N:bK°‡•šÉퟭó–kńR¤TÓ†šÓw†¼ō^Æņūµļäģ>ż,įü%é Ą€j= ŻŲÉüß6üļźė ?÷ƒ§õ>Æ Ä e“‹V‚ÉQń÷¾ī%=ń“īź*‰•„ЁŻ( õM ėŃ÷]mö™Œī„VėhÉūśś¾MkŒæ’›õ³ż½bż\Šļ€”ģ,#ōģņXĘxĒ š@­._³ÜVōŠ7ņy$šķBX÷ZIg ؕ „š &Šł4uųļ‰ųėÖ«÷8ö?ń ¶ ˆvCŸ¦øŗoņwńøīö†ņ­Źļ³²Ī‚ĪM=ū¤ Āõsōó&Uļ@:쟪ū†¼śĖ" u ŪɾŽŁżu®żRtļJģööóš/ KĶ ĖÆéč Ø‡ÅGņĶåšČÅķ6G*k³ż‚ė; ķŖó(ł)ųO”īzRėD-ś€ęųŽŁ 6>Œ•€”­|’p’øėļĮķ#Šņ$mšaØRqł0“Į’… <õˆMóĘ~ļčDģŹöžš„žsCpŠ bVzōśśó ļKėė_Ąö`öō} ¬© čžXŁćš­Ņ­šń¶6ļ„Īńåī3·ƒr‡1 s ļƒöį¾ōśŌīg”ė…ģśŻłMß @>«t…Ų’[žž$„ļZ8ģ«ćōԈņˆ©A> écŌÓ,ÜĀģĒžņ©ˆšū8šŽķŹj’n'’^@g-Ū „†Gśt“łI¶ī˜,ėZ©ųh÷% Nm"M›†ć±SėWµšpÅķGņNJļ7OäÖ=p‰£€” I” ^Œö%²ōAEļµÄėŪFż‰üŻæ”é” –PĘåūņ<ūUļ9ģP¼õ‰ó?§ņģĮųüé][‰AŃņĄ>š~Éšę—ķ5’'ŒzŖф ߖ Œß÷nö{ļī½Ŗė ł— ų m Ŗc ū’ó‹æž šaķõĄóš8ńzģ²!Hr~ŗØŁåsJōF ņ©xļ›kģķiż éü”WŚ÷]x¢ˆŸüG×ū1«ī“LėšöĢ9õę£ Ž“ 0»ŠŪż‰¼Žlń;›īńźZī™ļ²QRg‡v‡ż ­ü ”£÷wćõĆ“īg8ė¹üy;ūāV^_YxDż ©üW†ļŠDģōæ8ņƳ×åĘ3ąb óŌōĻó’/ń@Ęļeuģ;_mFbŖˆµń Ę8nł3ć÷2µī-ėėŽ÷¹ėõ| • ńmBš«ZģœŹćšł–ķU?ņ¾Nļ-ųfåĢNż¬bŽ ,õ#ņņ'įī«lėAöū ūo‡ ŪfĖ+‰żóü ļ7˜ė”æõžžó•I Cä 8©4ķ‰tņR„ļ rš^­ķėWZļ4čģ#¬ņ5źš0“źN遌¶_*æ „õ¼póšļķ®’Ž’+qķNF ×G Ė ż aü{4õ‚žóFoü”æūžÓdzń1Ż—U*YĻżGšūåŌ枆lŚäuŹŖfżßĀżlżĮ|üŲżDӝ0>Hüžš”’ŌUżBżūq–ę’Ÿ³«X(5āó¢ŻA— Ų/¦ā’ź’—ā’WīŅ,¾ōVpBŗw_DbšŒģt·’Żķ’Ÿ ué(ŖF‹~q{’rŹ…čĪ;¶¹Ó{ĶńĖc3čC×A6Č[R9ņ¹La¤TŪjŪE”<”sŗ®  S]F ZŁ…Ų.lS×0ꇇö§ŹNśū‡Ē–›‚\Ś„łķ- hØ|¦ŲÖ¼²ó?÷+“±Ā&6B‡8×RtŒ1¦Ź”€µi9GMf×¹–)Ü!Ÿ]ÆBłF½ ;jSsŒZĻ-üfęrpBū>C©Š†ØŽyīԌͽŌē†ö«F®P“søµ$­Ņ?āYŠ{ +4“ŗ¼Ę}”żĀ3óAēwPAp<Ü5]'«r6…™PÅĪZĀ©FI‡šWpĶų·Ė›×5¼¦k/¤Ż««óū>—P_ģŸćž…ųˆ¬-0cPßpŗČÆöIßѣЇųbw/ĮJĖ„~"A 3ŃĀ ó h#&A f“2@-ØæI˜mŸ§ąįQkO÷bŸņmŽB©ÕžØ؀żÓnt T_`—UĆ>¼¦W/ ‚†ķpüõJ' 9žßCöō®‚Ēø£ƒŽxӈ”*4™6v*^éµĮĖ©m~XŽ€-gł×'¼©śłÓVēč‰Ć¬”®ĒžN'¹×Rž^ăåDō2bb‰ō^äbŪłęߖ‰­“yøb°v›Š"Į—·ņCæć|ŠfÕŸŽ‚…»=låp˜K?=mQ+ØTŻQ÷Ś#Ö¼’©ŃŽ)PŠ­ż¦ÖéõĆ»ß„j^XeP˜cńq;…ć’āƒę|/bWj7VˆĶÕÜLE$›CoW -4Hęą’ŠPŚ’P^J_SJŚx&ó’ś õ’öź’M4œW—#>s@bż’#?­ä’Ŗ nÕ’;¤ś’‚`ķ\˜;?^<Å<²ģū’-ä’“ō’„Ė’v4֐5”×’3Ü’ūæ’ ’ õõ’+W¢cų8J7¬Ś’œĘ’ Ģ’³Į’Óė’ć’hż’ģ’|<.•’Ļ’£¹’@Ū’X¶’;’’Ķų’ē¢ ė’{ę’MĮ’ģ¶’·¹’£ø’Ż’öĶ’Įó’’wy¦’Ķ®’3&’S’Ńn’õ_’o„<-,(5Ī’¹’“p’žk’O‡’<—’Įō’Ųõ’Ż ,“ß’²Õ’„‡’ž{’TŽ’x’tū’rł’­)„C ö’‘į’Ģ’ÅŲ’¹Ę’æ’½½’ē’Ŗē’/,~2ī$ū.SÕ’BĘ’””’Q’\Ė’,Ę’Wö’€Ü’Źé’ł¹’b­’żŽ’ʄ’@~’|’€å’pä’FtNŽž`’}n’Ńj’ąQ’Į’īĖ’Ęü’,Ś’€ß’r²’£”’’¬’¼¢’µĻ’\Ļ’E? Fģe xńŹ’éŃ’;C’…)’–’œ{’gTĶ_FŪ©š÷’ķO’ŠH’[6’q,’śœ’ą’9~6 ]do*°’oŗ’%’E’³}’Ég’¤š øøę^’Qa’·ųžƒōž`e’]’Gü’?ļ’8!-!€Ņ’Ąį’]’>[’¶`’˜E’„é’EŪ’u+ī:]Ń’‰į’āY’/W’r]’%Q’«Ķ’¼æ’_ūų’jā’źķ’aŲ’«ē’Ćø’ά’’©c’‘’’öŌ’Cė’³ą’ź’±”’Q•’r’Łd’s™’)•’Ś“’»’ŁŽ’›’½ˆ’†’æ™’O’U–’u…’Å“’©Č’Ó’ī’§’}”’“[’Ę?’ĒL’·;’é—’śš’°Ł’’ē’Ź’5Ō’į«’ž’„’ēe’ŸX’ĀN’e’ „’Gé’ćł’×Ę’+»’µj’-V’éj’öa’µĄ’‡Ą’ Ü’’Ž’=‰’@Š’ŠX’XN’†’w’¶’+·’"Ķ’Õܒر’϶’¶Z’:P’•K’B’7®’xŖ’ž’Dü’|Ž’{ć’āp’‚y’„1’ś-’]b’ĮT’„Ą’eæ’€ż’)ČĢ’_Ž’ĮE’ŁL’<1’,’Į¶’”§’†\Uä’ķņ’ˆ’’š’7C’½H’Įc’źV’±ŗ’”·’ēń’rģŹ’æß’ug’ōq’øb’ _’ĖĒ’P½’Uķ’«ķ’ø’“Č’5|’ ˆ’vg’ź_’/„’&Ÿ’ś’& #Ū’ųö’$R’ƒ[’„’h’P’’·ƒ’ųBKDk&Ÿ9“z’p‹’¾’ƒ’„:’$’¬’ół7%ü’GĮd’*`’ū’MņžĀX’O’ļö’„Ę«’§’žY’¢C’fM’¶@’ƒ€’ӓ’,Ź’uč’±»’ę½’%i’M’½W’śA’l ’ Ø’į’0ų’”ŗ’$Ā’]’F’|C’ķ ’&s’Xl’ńÄ’•ä’¹œ%gÅ’‰Ć’?’!!’2’w’ō¬’æ“’B č ×’œß’Ūg’ĀW’°`’ŸI’½¶’p¶’å’«’’ÓĮ’øŚ’x’ux’2f’iX’Æ’āŖ’;Ų’Fä’<©’åø’w‚’°…’Dˆ’J|’’’Ÿˆ’•’!¢’pØ’%Ē’VÅ’ŠŪ’¦’¦„’”^’ T’Žk’ck’Ƚ’ Ķ’[ę’ūś’2Ź’ĀŅ’`z’Yq’ŹE’µ:’Ì’”’…$ Œm!¦†’Ž’ī3’¢.’ĒŽ’‰’Œ Łń’”ž’>“’꜒ R’P’˜T’N’“Æ’d²’×ü’² hĄ’Ī’łL’—Q’/O’OL’C¾’2»’ōį’”ä’ˆ’Ž’fenrir/config/sound/default/Cancel.wav000066400000000000000000001131201513650123000202620ustar00rootroot00000000000000RIFFH–WAVEfmt (ž’€»ī  €Ŗ8›qfact€%data–¦k\ SŒZ8Ÿ#kŃŌ-NŃ­6įē= ŠICz?­FCČ÷GµĮGŗ+DkB2?8@Y8ÄĖŌ/^¢å%:9×eżå_² Söo=źyłĢŽYXŌ¬².ĖW•÷Ž%³ė¹õP$ø_ā|ø$£ņŗwŠræ‹9ŪÅ®DūĶ1a•×’Ś`ā īI•>śv^œ­ėĒ`Qe_ą)I»2õ7 :īśē@½EE[®˜GĘjĻG?{čEł]ņA‡ <I_4„ē(+Œz­ ī<7ł* ĒÕüI\—šÉģĶä}ŃŁž®ōĻÕ¤ĒŲ·Ąj<Ź»¢æŻøž:ø3ĶO¹#³Ŗ¼'’Į1&ɼčѤGÜ«Ė/ē™]óż§Y’ባ žŹ•ÖĶÖ"G3-ÉNū5fO=£×BČ­jFßķG VGŪ»§D*9÷?ĄĮg9&—*1'†}'(©›hž‚ŲŌäk‡ų\*rģ­lļą†9UÖĆņĢ4Åoā¾Ņǜŗ‚å]øĒ6øTY&ŗL ¾ósÄ·TŖĖņŒÕŌ{™Bߛž£ź6®£öGBéŁPŸ×gĪ%^šŖ/?Ė#8H¤ś>€TüC ¶G€`śG0MŁFū©Cr>’‰7į¶ó.åz%ßZüHT6“ō²ĶČõ»ŌÖé=¾‰ŽŌk5Ō(~&Ė= Ć“ڽQöž¹vb+øō³løæąĄŗ{~æFMÅ©7ĶŲų˜Ö¤~-įī¦ģ2Ń­ų_sė€^ŸŚŽe'OI1…ž?9zżĻ??ڇDŅDGńÉņG2įŒF¤’CŠd¾=Ń*—6ÕŪÜ-» Š#e»„©ļ äÅ“&•ōXŗ¹čIŠŻ GYÓøŹqŹŠcĆÜ9z½ē~ɹBøzŖ„øL łŗšåjæļ ·Å5N±Ķ»×z–µįµ,ķ .łHaŠØlM¢÷=c­'gB?1g9ÆĶč?ł”D1SIG#ņG øŠFF„CłŅĆ=” „6/…õ-Īõ#é2ķĖ. YÕ¾éō&éųu诏ģµÓ_ČŹÓ`ĆĮ“½’ķ¹)ž'ø{+pø±äĆŗ ’æpŚ:Å#KĶ1ę[Ö)§Öąśā4ģˆy#ų 6K¦LS#ćć5’Ø& ĶR0Ÿœ8%H?įT&D:JGĖŅłG{‚ÓFFąØC %‘>ø’±7Ā\o%V²‘óģņ…–ēūcĒö©—źźö~§ßÄžOÕ}@/̈‡Ä³}¾Guŗ¤£SøĀģ:øÜ°+ŗó±¾OāýXaĖ=A^Ōō®—ŽVVĆéöõCIØ•,“ d\µoL$(5.•ˆĪ6¹›Ś=W&CZ}‹Få™ńGēÆNG!€§D d@cæ§9% Ÿ1/ˆ/(ļc¤5VTJ¹Ņ1śŽCīXÄÕāEų:Ųž¹æĪKoØĘ‰m/ĄuRƒ»{·Åø’@ øśV¹K®Ÿ¼®7ĻĮ+&æČ T=рj Ū”åå ¬zńgxżno‡ ģŽQ\‚ ÉŹČ*³ŪŚ3Ów;Č hA©āE†¦§Ge ŹGń8čEśįB»Ė\<Ų ų4ģę,õ;ł!­Ėē"2 ą^,’‡Ó,󦜉ē€5–Ü"”Ņp¼ńÉÓ6ĘĀ–ŽQ½®»¹ž9ø½õø.ģęŗ*Ń:æ#‚^Åē%ĶU0YÖ h¶ąNLóėcæ÷õ;Ę̱.Ö,³Kå%ö–Ž/ ½ć7VL©>įż®C(ŃFcKłG­ŠGJD~!?ŠĖ 9_˜ń0¢k{'-ŪėrKŽžŌ³‰’°ł›jŪķg‡ā£¢Ųå ĪķœĘŁö/ĄåaŠ»Ė4Ģø˜Ńø ‚E¹STy¼]Į¾\]ȇøб dŚggåS”š2ErüZŽm Q-Õ6]w.®)×2Ęė–:ä¶@|¢ E$vGn«ęGžXFķÆŲB;µ~=Éq6ųśį-ń$¶;,Ÿµ ŲnĻc·Üõõ2źķć!ßj…śŌŁŖ̳”|Ä[‡š¾hӆŗ†4^øżĒ/ø*±ü¹Łø½pqGĆOfƒŹĀ8ÓÄņ)ŻA¹č' ó~†’Äńo švRž!:P, ŻÓ4Õü.<üöįAŁĘÄE”0¼G–ŗG6äæE‹pŚAβ%ÅŠ&8’Ģ*0:2ķ&'Ņ«Ų;«ōņ4³ƒ•śnƒļĮŠä²6ĮŁ2>qŠ“Ø^Čæ1æĮ/ä¾¼Vö~¹īøŪŠø+<ŪŗÄĻų¾GĒÄŚĢt†ŃŌ[W¢ŽĄčPé—–ōŪļ&õw¶ }Ų÷G !ūh+:4Žó^;;c"A<)5E [|GŠūčG^xF%34C/I2>ē÷“7½A…/$®;&åōńõ¾-…ņüšłń6…īēzćJ^RŁßŒе ȗœŽĮEv ¼vp¹ÓløadøŲ–ęŗ+o槐ŃÄč$ĢļēĶŌ‘Q”Žö)7éC)pōN1õ’k7z y:³?8V!-+śiĒ3;+; ė@¤EYjGlļG•›F°¼uC d”>‹>83)0mOž&x5Ó°Åź$ɌĀūTMœļō” ä¼žXŚ] Ń“ĄķČŗU<Āłš ½gś»¹ģ—$øĀdø‘°zŗė‘X¾]čäĆš2ūʾŽlÓņyŻŖ }ēM˜ņµœ ž™©‰ öłÉģźh_k)WŠE2¬•Ö9{ķ?‘gaDXyG•æśG3‰Ge(FD7ĒÅ?Ųī¤9ÆÄ 2],)jÆ? „‡ĘåI ¬ÓĻż#Qdņ1ŲQēģ”ąÜWTÓ°šėŹaoŻĆČėV¾õF|ŗ·zføęų"øāU³¹_@ ½¦ĘĀhēŗČgjĀŠ[ūüŁŪ.ä|Ÿļ0thśÖWąEĆ1 2”>&Ō:p/9n7Œ3>c‡CÖĖWF¦¢ßG¾@•G­«zEsŖA"j<ŖŲ 5+ŗØ,²~$#ą¼Qµ GUŌkęöBæ²ė*¹įxt×Õš<Ī«u Ęž wĄS«č»¢h¹¦Œø@·Ėø°Ė\»“©æv­”ÅŠAłĢ:ü¦ÕŁĆeß'¤öé¢eõaFzgÉŪ ±š6q!+’­3āņ:é¼@‚ņåD§USG›”õG¾ČFĄ„ŌCš ,?ćhķ8·ā@1SźW(«Üka¼tŗŽ 4*żr,ŲńņRįę@ŒÜJ‡ӚdÉŹłāĶĆō²T¾ÄрŗØŖjø9|ø”¹Ō|弒Š×Į0XȂŁ<б&SŁ;Ó`ć·r%ī\łĮݼ3’Ų“ŚAV %eēL.ŹIg6@Ė%=źn]BFžģE”Ū½GaÄG¹FPĶ~BŹ@T=ż…¢6o”.Yv]%u8€*fž+gŠł›ćœīökŲćę‹ĒŁåNŖŠ'©ŗČĘ+Ā0%½“Č¹©ī*ø$)VøkIŗ­2÷½ŖōHĆ"oŹQ%FŅŻ!’ŪbBÅå;°žš,}Łū®Y.ēYU!¾k³'>0’™Õ7ƒE>š‰)CNdFćųąG’@–G-!†EØĶ½ALZU<["o5Ģģ6-Õą#°Øm,Ķ{•Č}Fų)ķƒāL—Ų@I„Ļ“§äĒʅ†Į3ü²¼Ńcˆ¹Ā—øzrø—½ŗˆö^¾ ńĶĆ»KøŹBRņŅ^HÜŗ¤~ę8”Uń™µˆünTŃŖqčųAˆŗńm'I[0"28Zt>óGCpsFĄäGŲ0‘GÜÆ|E·³A /N<Įn5°¾>-4˜ó#Ē‘ ł_͐#Šų¶łuķ"SÖā5¾ķŲ|EśĻĖė3ČkNĖĮņuč¼"Ż©¹Ä³#ø/b_øQP[ŗ£ń ¾£WĆĒzŹ< 6ŅNŃlŪÓc‡åĘ!GšBÕhū ķ¦‡/»Oq`ćDT&ʘX/:57%2¹=~ö»BhdFDĖG…ūøGiēEÅAbBŠ•?=’‚Ÿ6±h«.Čč”%ś¬”ōékŌ]Ņ›ś— …ļ\ÕäFDĪŚyö®ŃJĘÆÉQOĆ{ōϽią8ŗY?SøA·*øg!Ą¹‡ ½=aņĮ\ČĢЃ; ŁēāNģwķl{ų·9­vöĒZŪ†c§#‚åź,Į5Ü|ü;)mA”IE'ūxGõQīG/å¦FMæŖCõt ?9°č8ø}e1ß_±(%.RĒ“Ēž¦ ę-~ž+S_ó ©ŽčŌŽNŽĖßŌe„yĢćĄQÅŌ“æ.c»ŪŁøéOø’åģøģŠ»«‘Ģæ(šÅ-ÉĪĢ|:>Õ“o“ŽS%÷č6Ēóäāžd ’Iē DJ†Ėģ(ŗÄ“1v$ 94"?ÅØ¶C»†«F@ĖīGQŁxGq¦LE¦wA¹w…‡ČżI@Šģ+Łķ åā”(_ķ¹•Jųsødći=škÜ*#Qh,ø—4;y…;bW A«?EO+UG°÷Gė;ćF…Y DéUæ?¦ļŚ9(—2³ *C© Pal,™§ YVœŌ§õ„ؾź®čpą9ßāÖ«pNĪNēĘsŪĄHbM¼ŅZ¹łøYøā/ŗ9ę^¾dŌ­ĆŗiŹĀŗiŅV}ŪžŽmåf9žļāfļśļéžTęéHenÕćL%ŅI.Łł.6³ÅĢžE«8ān61 A™(Oøf‰»ĢÅņ ŁdīžB¼šóœš;éngßD«Õ¾ųDͦóĘ/q7ĄŻ¤¢8=ę41ŚT”(D§ØŪ7Ä ¶'’oü4ōåģˆéż.cߖ@Ö» ˜Ķ¤\ĘR yĄƒ<¼Šf<¹@ø×ƌøņ¢“ŗi!y¾üœĆĆ6ytŹ2ÉcҰ>bŪĻD:åą?±ļČźˆśŻÉ€ˆŖWÕ&Ķć#£$VBŸ-S8Œ5ģ ;<Ī-„A¾XHE‰SqG4nņG€ĢČF uūCÕ%›?>ļĮ9Š—’2žĢ7*ū"ć ’ńĖ . JH¢>[öՍ§ėE„lį…œę×üNĻō¼ÕǤ—©Įģ ī¼Ģš¾¹jł.ød>GøŅŗ1õc½ėöIĀ œČĢ4ŠsLēŲµ*€ā®¼Ęģœ_~÷GŽgžåB ȁĻ“Ļ!W?+ŹIC3RP:ßļ@,„BD’”ķF¬T÷GµĆYG$ÆE²xAAWÓź;,<45Ķ?E-L$åņ~…(óNiś%¤ļ­‰?å\xŪĪ(‡Ņ® ”Ź«öóüö¦¾ĶüŲŗņ3 ø0 øÄ/¹yóÅ»wūĄ†Z¶Å’˜¾ĢxņŌ™č!Ž:!čšŪ—ņ«fżę`Dų€ń³//Ć&tt/¼Č7ģi=·Œ]BFäĶE§GBŽGčrFą*lC­žÜ> ­ß87—1“!.)ī|ÕĀÄĆ5£3 šb œõ”łźŽ2ŽąZ x×7ĄżĪӃ Ēė ‹Įrą¼?¼¹ßµ/øžQDø±Oł¹Æ„D½OĀą Hȳ%ĮĻ9QŲo Ēį”óėė6܄ökTvü ¦#¬› W’Ū)'g*2NV9 N6?m†ØC@^“FŌęGŚ*™G x®E 31B¤5=±Ų6e4?/F'•&¢ €ŗÜnD@;~tżé®·ņć¾Gč#Ó`Žēņ;Õ£æ ͜FĘņņJĄ¦’»Żū;¹{¾ø-øź·ŽŗP+¾5qBƶ¶É"čbŃ9ŌŚØJ¬ćŒ@ąķń |ųaŗBVeö ŗŸY]Ń0"šC+uÖ]3FQ:rö?Ę ,D_ŪFžóG•pG&īSEęBŖA¬ˆ<¼© 6üs[.R)”%ƒĪÖ/Ž̦FĻĖ…üaŁń–}ē&f®Ż£‰£Ō\—Ģ—£ÅąūĄ¼ÄŃ»ŠĘ$¹?' øUŽøK^§ŗ6L¾¾HgĆŌ¼ŪÉŁ„Ń8’5ŚŁv¾ćø˜ēķP}wųéū1gŚ ģ23ä"ę*+V'3&t:0Ē?ąD†mÄFµļGKd‚GŃE31ńA)ķ<†6ęü.+_&žsč‰ĪaI“ž•żĘ“šņo•čŸ2æŽń‡„Õiå{ĶĢkpĘ3āŖĄ0ÖK¼åk¹ę1øe aøµČ;ŗŚŹ ½HÄ|Ā "“Č÷¬#Š;L”ŲśüįIŃģć8wöŠ$"ņaĘ ģ'D@ y¢;);\‚1 Ü±8@¾”>“©0CaEF8·ĶGĆĀGØ"F«•ųBģŌU>j—T8&¾1žÅ( ƒŽīÓ¦ßĮE Ĥ„³.öx—ė:ęžįwQŲņõāĻj‚ČøYĀ·Š½v0ŗ. ]ølNø.Īm¹œJ¼†¢ĄL7]Ę|cZĶ_ŪrÕ2:yŽOī:č Uņüģż$˜“¦ę*c;ŪŲ­%čM.phź5±śY<ĮnxAQM)E(XGćÉųG—łG ‹Dłś@‰-;<‘€4’¤Æ,ąłå#˜T×0s8³p'ū?ø”šÕ\ię\ ĢÜķóÓäcĢĢMÅž ŃæąBŗ»‘O¹L& øs™‰øßĻ“ŗVV¾ŗ`Ć}9cÉŚÜÜŠl¼[Łį¦°ā®Ī§ģź ÷8fo¦' CIn¤k8 ›ćO)¢k‚1ø¢8q‰>| Cww/FٲÄGĶG’¤HFśŠ?CȃĆ>ę¢ģ8yŠŪ10Y·)­ ™»īy² …“/؉”÷ĪĪAķé±IćõšŁ¾ŒhŃėėįÉ^›…Ć]Šv¾{xŠŗ0^§ønøq±ņø@e»Qæ„ Ä;6ĖīķŅĪŪĀųå/wļ¤e…łŖžāBƒČö¦\C"ē#+]33Šš9ü©?ĆžĶCɞšFRäG}*¤GŸ§ŪEx­”BfLį=Ź\Ū7š£0†šb([™DdŚ{ź= 4ĪĀ ÓCö@Rśėryā„ęŲęwƒŠeO$ÉäÄšĀ¤– ¾‘cŒŗi‰øó˜ ø\h¹ļŗ£»Zˆ„æ²ÜŔQ§Ė·ÆeÓfµÜæżŠåžļĖ:ģłM9j¢źĻMĘär"{ĄC+$ *3!Iś9ŗO?ÖüŹCŗp–FŠāGژØGē¼éEc¢ÆBvé >ŽŲ8kÓó0§Ę(u¹¼ōcŚ Ēmß·łör̶ģ‹Üā^; ŁZĒ3Ńø­ÄÉą {ĆĖx¾ąŲŗjÅ®øą øņ(āø¹Q>»;Ŗ æ|‚;ĔɫŹÓ¦;Ґ6ĀŚ[hä+ųöķ9~=ųz­Ŗč š)\FĒ ż#“)ž6Ą1?Ą8ļ¦Ž>II Cl!Fž¢¼G3_ÖGŃämFåŠCÄ=? |›9Z¬Ä2égŻ*ø4"/eŒ7…*+0eÅł„{ļŲ‹åu¤(܀†ÓH ÓĖŽF7ÅźÖæÕ™Ķ»Qā1¹>AøĆŸqø7ŚPŗ$ͤ½ [ĀŗĒ[Č%M…ϲ¼±×’Sµą’×_ꐙ}ō2ŠŲžóZ9 £„h0µ[&ƒŗ.Ė16‰c<×ĘeAīS EåŽ@G‰ĮśGo=5GXŽōD ŅDA²Ę9<{_ī5£4„.Ļ"&ŲŌö.1¢” Y}Ŗž4¹Vō?1AźVoŸą¤× /€ĻŹt]ČC(bĀķ­½m›Yŗę½vø»5ø%¹T²»nv©æčMõͱyĖӓņ›Ū>ää~¹»īļGīųŁńE Œ õ+ŠĆ  !õ/Ž)'KÓ19üĄ8Ā‚>EPśBĪ-Fž/“GĢŻG„HŒFń·ĘC,כ?ϼ!:!cu31ŗ+ʐ#Vt¾!Żž\ج2VūŸÜń$2ē-ŹŻśdÕo~DĶt‚}ĘełäĄ[1˜¼r„­¹‰4øxy4øRW­¹ŅH—¼näāĄ:ƒyĘ$¹=Ķ•š Õ:&»ŻĮēW‚ń*ˆ5ūś]ŗ°m]Œ ā"t ‚+ź‰=3Ąģ9eĶl?Ą”CĖsF—æÕG(€ĄG^4FDŽ9CHæß>HĘ=9F&q2Ņt*#Ÿė!‘‰øÓ¦:txW3śŅ/ šą¹8ę²×ėÜKļUŌ§£ĢÓżüÅł{„Ąi€V¼^®ˆ¹"~)ø0ó?ø>y˹“čü•²ĮŹ2¶Ę#'|Ķ”HHÕÖņŻ“LL碈&ńŖŒMū/¦Œ4­®ž[ Ė"éab+„3“ņÅ9ÓŹG?7ĮCa^FżĪG{MŹG…SFt+pC’€0?ō4Ŗ9Øņł2veB+l„«"ĆĀaa)•^xŽ?ūv­ńéĖLē¢łŻ ?VÕė ĶFOĢʂŽ0ĮI­Ų¼Zńڹ¦Fø1Ļ#ø­s¹Š]-¼}¼DĄCņ£Åļ?/ĢšāÄÓŻĆ=Ü~@nå 'ļÅ'6łÄŚgŸÅ‡ °źaļ¹Ć 6})ĆAa1ūÖG8ī‚ >tƔBX{ĘEg’G;qļGĖŚŪFwG]D䜀@ŖæY;,5Km-~uN%ÄŚ@Lü¢v¦“<}žJg\ōóVwź*•įŽp(Ų ŠbÉøžĆi?>¾ ŒĘŗ³°ø,møÄŠÉøł:łŗ~iˆ¾eĆŅmvÉl_ŠlµŲĪI•į »ė„vōōv’282 •E$·“‰ö²%ø[ń-¾F5Ēō‹;×9£@#rDDwåFäšGF;Gx‹ĀEZ”BL>–~Y8Üq12·®)Ę !“?¼‰÷ ;bģjØĶłh”Ī!ę\ü÷ÜĄ®Ō/“ćĢŅJĘffŌĄ)ž¼$M¼¹€y=øė )ø‚I¹ĢV9¼ŲQIĄ”žšÅeOĢŖ­Ó\ąģŪ—«’ä^FšīBŒų–~£Ē'­ Ś“vēĪ Į†("sr0Ź6j7ūK=’™÷As^XE …\Gī śGŃų-GMlüDшpAģ9œ<üŲ—6µ±/õh}'āH³ūuO÷ ūIy®ij÷Նķ䩏Ū”čÄŅI«fĖČŽÅé#ąæåRń»SūV¹™øĒiLø 'į¹06Ō¼+½Į’X“Ęʇ.Ķ‚7ĒŌīg7ŻaėTę9ņļSSßłˆ²ź=Aā xS”£žŠ å)i) 231¾8ئÅ=1©OB7ŒEOAuGYv÷G{ĀGŗ°ĪDØ3A ±T<J6Ž2/μ/'ŖkĢĄs L ¹P„O÷äÕxķÆ½žćĄŪŲŅĶm€ĖŚ -Åe6żæs} ¼aSh¹č£#ø|—Bø7vĹƬ”¼EóĖĄ2•.ĘŁ®ĢɅ,ŌȂ‚Ük‡åqļėöéų,‹ēY€Ö ŪŌ…ČÅ…Åh(LED0’œ17޽=ھAÕō*EśNBGŗśG«ČPGöŻGEšźA“.H=Ńūx7e.™0f©Ź(Ną3 ’š›Y ŻÓrÉe{łEA¤ļP°ę†jŻ2°ŗŌĢq3ĶŲ‡„Ę’0Įw|š¼o»ų¹Ī)Xø7¢ø G5¹=~®»væ4ZyÄdĄŸŹÖĖŃ(ŲŁō‘ŸāUöėĻĄ®õļM™’@‡… qöB­¢Šu%Č‘-¬ƒĪ4  ;G‘%@(DŚžFYWŻGuœ½Gc@Fm mC¶rQ?ø:Ļ—3Ŗ3,šn÷#f" »ŒŸ:Üü£óżzöōnypźīż4įRPŲ_©Šõo©ÉŌf±ĆN"޾ŖšF»óżøN« ø wød =ŗ;U½®×ÆĮƒP8Ē ‹ÓĶ„taÕPh½ŻCā¾ęaC:š„śØ¹å­¶ bEͼb Ųć(īž0 +o74š3=)}ŠAĄ«/E³ż@GV—śG×YG2Ø_E¢źBŽŹ‘=0ć7_’'1u):É!E;ng(øĻxŚśŅńo)™ē°’Ž“ß+։āŽĪģ˜ßĒÄ>Ā[ Ž @Šŗīʜø)ćøv>Čørąŗ÷OC¾…įµ|¤Č]‚pĻš$×p˜ß!xÆčz1ņ‚Hõū$Ģ–ś†µF÷īļ!õF*ežŃ1Ą”o8É}’=JgBn‰‘E„ŹoG_łGź*GHM E‚žA`šś<Ń47Āg0B“(*? ń•0Ųī³ čSö£&&śršžTēŒ”ŽŖ[Ä՟%<Īę¬ ĒŠAĀ®6ؽĪczŗ¤Å–øŽ6øŸGĖøŸ2āŗ`š@¾ h×½Č½·NĻÓGōÖü\ßöS^č(4Šń‹ś„ūż­NłžƒhæT]!B’“)8[F1ųī7Ź=ć BŪPE65NGRŹśGg‰SG’„[E²‡Bœ„=Ļ 8b`j1Oģß)/R!_Ķ¢f{A•˜„Õū(Œ&ņ¾óøč>,¹ßg‚Q×:q©ĻąčäČw¦#þŸ€¾_…»%^ęøŻ< øC~øĶ›BŗŠoN½é$“Į™üĘłPqĶķŅŌȽžÜ)dĪåX‡ļ±–±ųZ–l8ņ pS’—t££š$'åļ.b^Ż53›Ļ;åŖ@VD™„ĀF¼äG“¢¶GāŅ9F 0uCĆu?PN:ż4?įģ,,{ń$lJ¼ ;› (źź’ńD;öĄf¹ģ‘ćSīŚøŚ÷Ņ!ÓĖ*N”ÅŽĄM„¼ÕIù‹ĮHø©uøŠ<¹¾V„»kŚKæĆ—ÄŹ"Ē驔°¦Ų ŲįüźY^ƒó®P$ż„7ŅŽ<`#¢Šm"{l˜*fgž1£Ż|8@Śõ=ņ%PB¦ŗwE^GØśG< JGTRQEPłB^”­=p &8”øœ1».*+/ż!5Į/xī§düj¼ü¢"$óų]Ēé“4Ńą²ßjŲžūŗŠŠ×äɈŌÄqÓ>æō¼Ÿ»ˆ;¹ŹÕøóFø?’»¹™är¼¹T`ĄÓ¾qÅ¬ÅĖź>žŅMµ|Śzžć”įģ·Ėõ’Č(·g‹,hNĮōņ#±«ņ+M’(3u9n÷¹>4ąßBxŻÓE¬ŠˆG¹8öGćGūDŌ Aż˜=]F|7+įį0ˆ”h)µ³2!\›e·)EœØf/ü‰†ņC‰;é¶Yą8ęŲ»žjŠ.ą§Éą;ÜòX"懜»ś+4¹¢øVįGøœžŗ¹ Fm¼‘]RĄexXÅČ®hĖ"dgŅąÅ4Śø\­ā=®Ŗėģõ­Žžw®h—‹¹½§āęJ#^N+ڌ2“µę8mķ>>īk}BEŚ/fGQ{śG‹zIG¶jVEC7*BmPÓ=Łhe8–ł1|«*§‘"yĀóä-Õęūj£ßż)^ōM`ėÆ'#āĒ­»Ły¼ŅZĖøÅD“#ĄÉŠN¼ĄŖ¹¹—Bøéø{„:¹J–»#½$æ÷ÖĆ78–ÉśłIŠ)žÓ×Į@ą—ŪŻč ķņ )„ūˆ5 “by„o§2Ek I®(j0™Ż¾62n<»»A^ĶD?ŁFŖźēGz3µGXBF'3•C3ŗ?+Ć:¹IĘ4¼Ż-mĄ(&ŹÉ.=ęXĒ„ I®1“ų–LWļJžDꈋ„Ż«MŸÕIīUĪÉéLJ\wĀ̾ČuŪŗåœÓøņ+øŽ|øõ .ŗ®æ½£å'Į˜éOĘ\ĻwĢŅ.„Óq®UŪ1ÉćMGŗģP)öZr’µ*ęq‹2ą .¶ķ°#¬Ž•+¹2<éū8ȀB>]—uBÄ“‚Ew\GÄĢśG&[GÖ4€EįsrBģk?>Įł8„Šø2ÜH˜+ ®·#²Ī9])DÉFž@ ‘’$&öΦęģé­ūćcRŒŪ©½Ó ž±Ģ:>ˆĘ6p[Į->B½6“Nŗ”Mø=øšõŗøżąØŗć3ǽ×!ĀåXĒü¢ĶŃžĒŌņ=«Üx()åĢvī™ä]÷EŻÄż-( Dŗ^ź/@f·„$zj,Ról3X"Ž9Bq³>xĘBµEGÕsGÓņłG¶¬EG3ZEH@BpĘ>ü »8ƒüy2½ų\+Lƒ#Z¦tŠ$-§ėI0Œ’`ū.öķĶüģÓ«äg)øŪÜĆšÓžBéĢį&ĄĘł#ĮŠÆo½b pŗ‘ߟø&4ø$!£øÜvŗóYx½åsšĮµ ĖĘoÄóĢ\“łÓ¾ŪŽcäJłģfW%öBŹ{’ 0Ōļż­é,X#MG.+9I2Š89˜Ö=»®BB;EļT3G× ųG1†GAßEK C‡¤?˜F:“­4Ķ0-[Ž%ŪOJvVˆé2n #.!Ļų`šļxu¬ę§Ä+ŽōŌ<ÖbµĻŗj™ČŚjƃ'«¾‚ŖO»ßD¹oRøµHøŹ—¬¹rĖ>¼^ŠóæÕŗÄ@€Źœw*ѕVŲ.¶øą¦ĶYé [ņŒ—ū¾ę—SMäGXµ®óĘ'E./=øĖ5Cƒ;t<@N¢āCX4gF0-æGóģäGļ×F­ĖœDa"=A pĒ<ØŅN7±ź0K\¶)—Š!A[įy”ÕRWé žä‘ĻōTĀėü ćH;ĻŚYŹ1Ó`õRĢĢŁOĘ_ėAĮķˆ>½†¢VŗŽr–øāJøŻv„øø2tŗ\øi½nayĮśŻ‘ĘŠ~ĢR’‚ÓŅ#ŪÅß`ć€Īģ|· õlVXž§«–;”“*°‹ƒö!ę“Ń)Įū0…ŁV7ųČŚŠGžFÆVCD–pĶ@ėI<Š©Ė6¦œi0Ūf>)iźg!ćĢčī=³Ś1ņ+ž[óęō€ō낼Tć' ,ŪĒÓ“×ĘĢOĀÄƳ$°Į@÷½5ŸŗūŽæø&JøĢyø¶ļŗz*μqXŸĄķ”vÅöĮ?ĖdÜāŃ’_DŁž¹EįČÅé”a”ņĪé³ū“ę×ӛē §½½™5õŽ,'^».½ó5¼(Ń:½Õ˜?ó`ZC;kF|’G€ ÷G±Ų3G@»KE¤FBl1>˜9YY3XŁJ,ešĆ$O™„ 9¹, _¤;žųÄŁ’ļČ_Cē”˜ģŽ©×ۃöĻWg”ÉfĬüƒæ·ž»šä¹D`Aøfø‚¹94»Ąl¾rװ¼KļĒf™Īæ™ÕkźŸÜśaĪ䬏kķiDTöž"d’Ń2vwzeŖ’ ]š˜4&²WIé Yh(ŽöÆ/ļ6@ƒ;N1@b·ØC&»/F—P GCŻōG-,G0xIEQTB«‰X>f9Óf3Éęī,Ņ›%Y3“H\WĶh¦ ¼ĆłwŅś³ņõń’*Qé3<įōŪ5Ł4ÕžŃ>‘}Ėø§ĖÅ`z’ĄŻ+½Ī_ŗ¶9¦øLŠøĪ┺#n½¼ģmĄTpŧ‡ŖŹĢ2Ń>*Ų„āߊč­ššī|łM$fÕ¤E ķų\ń\śŗQ$fŃ·+Ų?r2·f8ō}=I¤A«ÉDQpąF8SāG ÓŹG!gšFĮŃUD A6$ø< }77i1G”*Ķ#Ķ7ē$©c‚ó –S«,7ų¬«uļ~ńōęųÖŽŹ8×ā–:бöÉMl…Ä/äūæžŖk¼†ā¹Ś8jø_`øĻ]¾ødR‰ŗq+b½Ö¾=ĮL÷ Ę۽ːŻ7ŅQ&dŁs&įN_éüšń ·ś.X’)q_ QüL GH!%ųšj, r3‘Eą8«āŪ=)čA]õDBų÷F]AčGß²ĀGł‡Fxīa“'9k[g3’©ć,“\µ%$Ö÷"•ČÄF ;Ā’ØĶū¼Éó 8•źCcāģ¢Ś—ŌnÓŖåĢVHĒ’~-ĀńG(¾»Ź»Nx¹”āø{ 3øČ@Z¹3MŒ»÷[Į¾”0ķĀ8ė’Ē%EęĶ׌‰Ō#ŃŪ„”ćV“ÜėŽcōŽ÷ż©Óōy]ēé3$˜(§&‹1¹- §4Öæ9O›†>vbBpCE­üGGĶšGKė²GeZgF8DĀō¾@,˜w<…*M70*S1å *l?M#JvŃ-8j² }Ļ|ģOłre“šHzRč±IąŃÆ·Ųģ-¹Ńć(hĖß3ÜÅ·ü)Į=’b½šD•ŗš/Ėø¼V øklXøŚ5±¹¼1†mæxo»Ć©#źČ6ęĪē>™Õ0źÜŗ²½äįöģÅvõz”ž'ŌÉ6ƒ]›¶·ˆ^¹ѹD'EÄ=.zžŠ4ķ:1Å>-B„“]ESc,GįņG(H®G;°_FČ D$¼@Å<|<H\7To1_hĖ*°0‰#0žĆēƒ—+# å…ɒ߳×2Pńii÷čˆ ōąn­cك5bŅ·u Ģ„ĢpĘŻĻ¬Į™Ļ½Ų‹åŗŽūøĘ˜ø­A;øŁoh¹ī²™»/ŻĘ¾|"äĀžDāĒ1Ģ®ĶXM4ŌC·ZŪP­ć‡čėžŸ‚ó°öü!m³?UA »FžP’«6²K%1¶b,³©Ö2’ņ8 §y=ĘŁAŅŚ™Dŗl¶FŚģĻGnāGeČķFm”õDŠ!B+X>w‘R9bø3Ya-#“d& ÜČģā„–Ę"3Ų}ż.žļōćƊģĖl䵚³Ü\Q{ÕF0ŽĪ?ōČŃōŅĆoꌿŗ—1¼Ļ͹Šhøfrø‚¬øŽĻTŗ>:ś¼ “Ą[ÅDśfŹ‘=~ŠÓ“A×“Ä˜Ž ¾hęÓ@•īR”÷oUŒ’’b.Ј®¼+ƒ• w¾ų'ėĖ.źó4Ø]:mķņ>ā „B“\fEbÅ,G ņG³GĢrF‹2Dčśü@°Ż<ēįį7H\2h¤+jŽ$’ųōy€ó%ަ Gł,łV¤ū,¬+ó3oįźEjćāPNŪRW=ŌzŌÉĶä ČČĆĄ#ś¾–³Č»”"Œ¹®]LøģÅ øŠ!Ńøš“ŗYĒN½\ĒųĄib„ÅE;įŹ€ üŠä¾×“†ß„²Łęˆˆūī$ķY÷ÉńÖ’p?T3ƒ³žŚÖ:>” üčö'»½.£–Ż4hµ@:²õÓ>‡BMEGĆķGvOæG½y‘FŽhDTULA8ųG=%×i8'VĆ2sžh,Vp%üNó&. Ä × q–ųüK!ŠōŚEģøOFäkŖÜuG‹ÕC$Ļnø(ɍ«Ä«ńĢæaŒl¼wVū¹µŚøv6øm‡ø»kŗy’z¼śŽæ†K%ÄōĆ>ÉĒNĻŹ0 ÕhR¼ÜŖ‘TäQNģĶɌōŗˆóü‹»dō„Ā §Ōļč„Ļœ F%d,9,q‰2Ūä58Fx=Ä7A BDrvF%†²G›HóGt†7GlģE+“ŲB éD?AÓ:Ź1”5×E™/kŅ÷(!Ē!m ų‰7†Ż Hz(łÄŒĀš’~ØčpIąą{…Ł+ƒ°ŅųczĢ3TųĘz=ĀyAZ¾f#\»wM¹cQ5øgøÆōø<ČŗĘ$½k9ĮŽ ĄÅq3Ė÷KŃšEĘ×ŽżŽŽń§ę€Ń©ī\¤ēöĄÄD’‰%¤ɶ螏õ—xÆSžś&æ-”kä3L±U9Ž$>ڱÓAø.ĆD²‰ÄFŻźŠGĖäGN’’F‚ø%EÆw\B„ö­> ':B^×4–lŃ.Ė*(˜Lų >UA£Z­$ yϦÄwų¼M:šįt3č$Ł~ą¤ł6Ł£ŚtŅŹÆOĢɌÜĘ\.Ā®eT¾ļ‹\»Ų«P¹©“7ø"RøÆąéøśl²ŗŁ¾h½poĮ4 vÅe8±ŹOö¢Š“Ń6×o0VŽgžčå½!Ōķ”żõņ’Hž@šę!ŌčDŪ†ü“Éģć%X$²,Rqē2°n8ó5=Äa*AØ0AD oFä ¬GKŹõGs©IG‡¢ŖEĀTCˆ†­?»d;̃P6Y„0#S*Āk#Ą~œ^ųĒƒ~° é•qmD'ūȱķņņĒąźrŌćč+¹ŪńŠŃŌ°}ĪŠČißĆ»—¹æ3óm¼Ż<ŗĢ}øŖ›øćHqø·’ι'¼°ˆJæš”UĆp’-Č,éĮĶjŗ’ÓąįŃŚKJ!āÉ;Õ餯ÓńkØś1C²†} >Ż“ Vkʎé!KVõ( w/føX5«Ć†:ēÉļ>¦ …Bā“:E†_GõzåGNŅG‰ĶFPZŪDÉ)B<žK>!CÄ9č]{4 ŗ‚.2mī'‰’Ō MÆśpī×Z ÷®%łģųƒ6Ģšŗ’Žčm‰>įNŽŚGøKÓLq'Ķ÷+­Ē¶ļ ż¾3仳M®¹o'cøÓŹøĘRšøaŗŗ¶ä…¼™®Šæy ńĆŻ%ŁČ˜xĪu™¼Ō[BŪ9ŃÜā¬ö‰ź„&~ņœķžś˜HŃ ’ł .żżä­Ā·R."Y()n«™/mżl5 :Ōśī>aO~Bo\1EńI’F7āG”O×GCĻŽFSüD~F5B›×“>WĪ#:ščó4+[/O˜›( œ!ģć-P¤i õh  =FQśYņÜ*ź¾”~āvc@Ū‚b{ŌwŹEĪKų³ČÕ*ŲĆ[GĀæč„¼ęŗŽĢ›ø¼+ø¤Ń^øŅ…”¹† Ė»­5Ō¾+õ²Ā„ZĒZ»Ģn\ÄŅaٲ|ą`łżē„*Īļ²Ó÷Ŗkņ’M©™<hōåīPg×ց&ł^-”a'30<‰83q2=fąA³÷ DzŪOF†™GæŻłG¼ĮoGÄ żEyަCųśs@Ńo¼'Ū^3.ŪÉ4§P9<Ó=Q!AroxD@å…Fƒ±G'&öG>…TGÄ@ĪEThC)†*@,P<»S7J5×1Ī`»+Ś%źųõ±‹x(޳sÜæsć¶žoO²öŗĖī†Xēx«¼ßĄ0ÄŲ×IŅn`ĢÆĒŻŪŒĀ–ųĮ¾gĒ»1f„¹OĻcø÷&ø{~øØų¹>A¼™°aæ'_OƑøżĒöÉ]ĶŽn^Ó.ˆģŁZ9óą+\č0ŅšL»õ÷Ł×ō’ĪóžHŁOIŒĶsō–^ś%ķŚ‡,;ˆ2T“č7^õ—iwÓ9&aĻ4r*/¾šõ(źÕD"“’+*ŃæR3 ¼ Lųsü#B„ō6:śģīP‰åiŽų?Æ×pч—¾Ė³ń«ĘĆ|GĀqyž¾iķ»»n‚ع°ljø Xø}`zøœ ȹ™Iź»3“Ś¾ĶźĀ8’ʄ[ĢYrŅŃiėŲ`ÉŃŽØ¦ńåoó_ķ7õīSĶüŻĶ•` ·ü(Ņ\?-j"Q‘)x9/æŌ4…ÄĻ9žR>ĢŠÆAź”|DoI{Fą¦Gó_łG*utGÓģFlņźCs(ń@Ł“4=W€Ą8ī]¢3˜é-÷f§'_›ī šeÓQkļĖ ²ŗ ›ÆDū&‹ó4÷ė'Ÿäb™Ż«śÖē¼ÖŠyą?ĖŻµFĘsśĮ:Šf¾Ną–»éQ“¹7Éaø]½øĀ(€øĶ†Ļ¹Łļ»ä³Ś¾ųQ‡Ā8ÆźĘ Ŗ÷Ėś*ŸŃRŠ×<©xŽ\„åØrŽģ#qō “%ü%}å^m™ ®*ŠÓ‚k Œ!‡Ć1(Ų`. Ż4sm9äīp=&~A˜TD{ē(F {G"ŠłG÷£G׊zFYDśu½Az÷7> ū9ŃP5KF/ģB)ˆ3õ"!iŸ_Į;A 1ēš‘äżßĒ3öF ī)³@ēÕÖ)ą ĒpŁ(8)ӌeͤ6ș «ĆĆÄŃæŪG“¼Ų6\ŗSZŠøA#øž,ø·o¹„ŅĻŗ¼£S½ŠpšĄ@ŽšÄu4HÉĮ¢•ĪHsŌüšĻŚ7ś˜įŸ‡ŗča¾š$³÷I4^’Œō W⢒Ż!I<‡E$±ń€*y¢r0×5š“ž:— »>™ł!B}ņĒDŗī„F<˜¶GPīöG¹MfGķqFkoŪCK§ė@“?=^Pā8Ž6ą3AżG.Qé)(eĮ—!‡˜¤ę–d:æģ űR¢m¬üõy™“ķ¤Lę:/Pß{^²Ų8@†Ņ*—ŻĢt§ČĒVĆjy’æ®Ąˆ¼Æ‰AŗJNĆø\Dø;R0øā ¹ÄŖÕŗX*U½5C”Ą‹Š‰ÄĶ‹)ÉźfĪ/‡2Ō4Æ{Ś(I0į( =č²ļü; ÷o$¦žh¢B½ęĢ ›Z/MŻT”)#ōB˜)AG/Ł5ń Ų9n‰ >Ņ•‹AČBQDžŗSFīWGm±śGʦšGkanFąPyDz ĮA¦M>‘Ķ(:;w^5@Zü/»Ś*ųŻÆ#õ™čCaĻÅkx’œųŠHe’aõÓ÷· Zšļ é€Iā[šJŪõüŌ\-)Ļ”ąÉµƒ0Å^Į'ĮN!ѽĆ6»s°]¹LMøĀøÖæøc²Ż¹ŽĶó»•ʾqXĀdĄ”ĘĻśrĖųPåŠPTÜÖ#GŻ,˜äŪ~.ėōȃņ¬Ēžł’eŠ*d {“~š½Ų„øóQ]%N֘+mšY1ƒ6Ņż+;5*"?ÅüfBŽ]ńD™BŗFĄ¼GKöGčĮeGxh FēšC?A2‚…=(ĄH9Wēk4ž£ü.˜7 )‰Q„"]ÜßHĶĢŒī Ø õŊž ? ÷½ł¦ļ ’oč% zį”ŚŚqž”Ōc@āĪĪŲ«ÉŅŁ Å{ Į„rƽß3»³%_¹‚…Oø7øé•†ø̹g7Õ»%›¾įĀyæ<Ę `ˊ«\Š%æ9ÖŽMŠÜĪ<ć…Ŗ>źŗu|ńO āųp0[ śŅäŚ4Ģml³Če”° $0ĻQ*ģä 0žųj5ƒ!:n–7>¢ARpWDģPFŻ×‡G|5śGźt¦Gž“F­²DŃńBB˜Ķ>­ČÓ:Xƒ86ׁ1«R+…ö$%“*’'Ä«“ø„5«0 Ö¶Ć’6RśŽšņoń²ė€.­ä2vņŻ(•×Q¢¦ŃT7Ģ9UĒ’hĆf:næc€~¼r*GŗL/Īø-}ø­ļ$ø9KöøN>‰ŗWhټ,fąæä•Ćœ“ļLJķįĢõ_ŅžXŲț¼Ž1\{åvčģ`"½óc`ū$£‚ŚĖä šŅ+OžCČ œ›%ö¶+-§[1sz6;pŗš>’s1Bų’¾D]’F£A§GeGśGՊGn.ZFæ kD+yÄAõõk>b2k:Ŗ Ķ5- ž0A:ģ*ńūĘ$&ķ>šÆe¼M‘0 xœ®ĢNś“žņ——ŃėšŪäiŠ-Ž—Ū×#^õŃsķŠĢÖ½ŖĒwŅaĆc–»æ`¾Į¼c/|ŗģéšøvś#ø)oøėRĖøĢ­=ŗŲŠj¼9LæˆNŚĀŲ ĒYÕĖ ÷)Ѷfūփ:݁DÕćDS»ź@ŃŁń¾ł‚¹sĢ6Č,±›ßčśĢ‘‰#u¹)ū)z/ s¼4éer9·=Ė AŅÕCÉjīE©eMGĀ5ļGoDŅGõöF%£_E œCą@ f<6W8›V>3cžŲ-£ś' Ö²!„<Ļb*ü ]‹ĪĆ~€žßÆ6÷eWš\lüč4r1āHµŪś˜ÕV”ģĻ@ł¾ŹŗĘöĀę5ƾÄUõ»›kī¹ŗµŸø} ø_6ø¦¹Ōļ¼ŗėį½_FĄgÅĆā­ČF©ģĢ»?OŅ G)Ų&_kŽžå*åėe‰łņšÆ/śŽ¾t7¶µ$£ßÓß+¤»”$*±2*’Ü/ÓH 5 ž«9~·=Ön"AyćCtņóEä#NGŚĀīG¾CŌGŲ’FŃ=qEW/C܁>@¤4§<;–r8–£«3$Ó^. ō™(ś l"ī%å:<dų+ē<¬’±rų“¦Lń{źLźä…ć‚ݧ=åÖ2Ļ,Ń †ķĖ_ß4Ē=śĆ x†ætd¤¼»pŗ /ļø¬q%ø>ŅøRe½ø±bŗz*1¼śNó¾!£\ĀvMdĘMß’Ź p#мĮÕtGĢŪ ƒ3āõęč­cÕļéķö™žęĄNˆt !y LlfŪ #i'.ķ,zŅP2J37G!‰;»\F?ÕaBŪ®ÓD顕F ¤£Gˆ½śGYEšG—GƒFS”øDĀų>Bė°?įŲY;Ź7ŪŽ2™Ęµ,š„ß&'­¦ $|MO ŠÄ1b‡žŚ“āöµÕļkÅšč7=GāōJéŪēÕ½œOŠH(1Ė3˜Ę,b‘Ā·æ%æ;^¼ ĘAŗ„£ÕøTø ”ø9TĶø}»3ŗŅ+J¼īK æBpĀ#ęoĘ˜Ėu™Š© „Õ>ćŪč ņį±Ž‘čZŗkļMoöa¢ŠżŅŚ«± Į ŸsøŖ“€o œ«?&μ,? 1(k6Š”Ī:öžž>ĢøŃAAó_DpżBFō3vG¬öGM:ĆGMuÜFh³DEC™'@y{ˆ<\ģe8śÜ¶3D ‡.½wć(ø:Ś"éjz‹ņÓ€h÷Żęõ/ąąōÉł ĆĀņ?ĆÜė)åtVøŽÉ~šŲZ²ŽŅ‘“ĶˆŪÄČėĮÄēWĪĄ²¹½m`I»įWƒ¹+čkøŽÆøB•Qø²ĒN¹æśŗĶCQ½zLĄšäĆS±Čõ\ČĢŻ?żŃęq£×ö¬ŻcŻ äŌk­źy?„ńśx~ųF劒(˜fę” »ńoČq~!·‘'3¦B-QĻ„2OµJ7°ˆ;{g4?JģDB·Ķ²D;+xF€ĀGałłGŹć²GE¼FŏEęŚĖBøŪŪ?/ÕO<-†08²ˆ3¬ļa.Ŗ¼Ź(”.Š"4逳[ģ:›"N;4M%2!o-ś–17ó“^`슘¹åĻSßŖ9<ŁšƒÓP8Ī)TeÉn|ÅĢäXĮś’2¾6¬»U„˹‚M•øŻO øĀ1øž3¹įŽ„ŗ¬¼3•væŠŻĀsm×ĘķĻ[Ė3I_ŠP«ÕÕ0µ±Ūź2åį\ ač£Ķļ'óõį2čümŒä˜9× ż|ÆNÜ\łGϬA÷$}Ę*A™-0Ó!5ģ”9PŽ}=“Ņ@L½‹Cc–¢E„.GR(×G~ĄļG‚Ń[G‰ÓFmŲ5D䃫Aõ’ƒ>¼ķĘ:½R}6炱1zo,ƒĀ&H“¹ ŠÆb¢ĶZ RŲ$ö2’šFCųĮUfńF}¬ź1Į%äØįŻ{ļ×Ī+\Ҿ 6Ķ*(‰Č_R`ÄsÅĄ  Į½ø1Z»n‰–¹.zø«­øć@øž’"¹+.­ŗŌܼ.Ŗæ^Ć®Žǹ„˱l}ŠĒóęÕ(Ų³Ū±UÖįĀą?čÖHįī˜ÜŖõŒüÜv.7W Ē ł]æ]Õ&tõF$X*Ņcx/mlo4ĄĻź8ą<§ńE@•…C‹FEEy"ÓF‡ŗGßiłG_LGš<}FĘÓÅDg,mB—Ūx?Óįļ;€šŚ7ķ§B3fÜ2.ƒ ·(łVÜ"(>°¹OA‹žžK³×hüĆūŃHō¼ķ[~ē¦ ±ą"ڧŚoųõŌĒžØĻgĢŹ3ÆkĘĒ}‘Ā;lFæĢ’¼œ„zŗ›š¹āB4ødl ø0¹‡ø1ńŖ¹w[q»öÄÖ½·ŠÕĄW§fijÁȢJ͈.҈—©×!ՁŻō„©ćeĀźąN®šTžl÷¹5?ž50“#ß ¹dĶ‹Ŗ—Y`Z%e(+;ÜJ0("5Ž«~9¶³V=Y_”@œ-WC_õqEUóģFŌÄG®½÷GŗN…GŒ£nFÖP¶DĄ]`BB:r?=²ņ;}Żé7Ģ a3<“b.ÜRś(X4#ō‚WŦÖ8Ƅ‡ ä²ĄląóūŚ–0õŖF†ī$čI¹įņ;³Ūp~Öé¾­ŠųĒĖh—WĒ,WiĆÓ4Ą©Ö2½©•ųŗuo[¹bū^ø·bø5\Oøå*<¹1 ÉŗM!ō¼ŹÆ¶æ\õ ÜRéʱšH˽ÕŠÄūbÕżiŪ,Pżąļ#:ēŽæ®ķ.‚Lō qūjYĒó…—1:|¹S„³5("±wņ'ćfb-GĶk2„^7Ń;Gõ“>QɽA=‹2D Ē F|eKGÆčG{WäGS}>GŲ©ųE%ĶD&7šA…‹>’¾š:^ńŃ6s82Į”.-ŲŌæ'vCų!ŹčäĶf“”ētżnW‚¹pvū°ŽRō;£æķ"nUēƊ"į Ę4Ū±O™Õ,\Š NŠĖ]-Ē“NĆ ]÷æłĶ.½ÄūŗŌ`¹÷·cø²ĪøOŌGøx!)¹R­§ŗmĄ¼¶–mæZ6ŖĀ±nƾœ²ŹtlĻ]°‘Ō鎌 »ļßāIę|ögģŚ°ėņĒ Œłåa:%ģēiģ… É-.Yū,r ŒZC&-ķæ+iŲŪ0Tē‹5ÕÅ9Šb€=zl³@„łWCŽLhEŌļßFμ»G"åłGŠō™GӜFłæEOÕB(_@2Å<…°ń8q¶”4_£Ž/µó²**%“P,Å1,²ÜUŖ^ čāÅ{Č ’mß}ų(¤ėńŒkxė²C2å\Õ&ßMFcŁĒōÓv$åĪōTAŹ+ŗĘĀ^bĀø88æn›¼.šŗX¹G¬Cø øūĀdø×^¹ˆņŗ~½rÕæŗāĆćāʍÉ&Ė„?ŻĻݰūŌ%üvŚ:Cą‘ÖSę߬›ģˆ# ó4JšłŃ÷42éĪŻßY ĖĄĒæ² < £_Ś%”øM+•c0é5ļ"L9WĘ =½łG@ ŚłBų®EćöØF6pžGõśGœU»G9¬āF³rEX•lC±ŗÖ@­¶= īF•ėTÉļHĪģĖ—"¦(čŖI-m(2t¤‡6§ƒ:Yv>Վ A¬I‰Cķœ}E›ćFŠzøG9œśG勩GcĘFiēQE’CPCĶCÅ@~+¶=eJ):lļ%6sY“1*¦Ż,Dæ«'üE)"<}av2`|„1koā ņh"żśķ±öé{ašy 1ź`"-äõaŽP:ŪŲC¤ÓG%ĒĪŖ NŹBĘr«Āõmæ™Eų¼żĶēŗ7!c¹ć=mølø«$4øÄ:ńøf²=ŗPټāx¾Cģ^ĮKĆÄbžČ³éĢl9&Ą`5BNė0Ō,Ģūę&Ļl!4ÆČo»@霙²_ ę.§āŗüśZlö“1š²cź{Z%äu²lŽĶ“öŲO$ĪÓH(żĪ«8Ź’ ‡ĘK„ņĀ ¤Öæb|9½’# »ÕŖŽ¹ÆˆøRYø O"øR½ĆøĘRń¹ķŖØ»ŽRę½pŠ„ĄZ«įĆEx“Ēŗå³ĖĆŹ:Š57Õ|…WŚæmŁß:šåØ<Žė$ŖńIÖį÷„")ž:¾s»Zµ ƽįcŁģhćŹflp"ęuŅ'“‡ę,#Ä¢1ūż5Ń»ļ9ėdp=.3y@YNC;Ō EéįŽFõš‡G°.õGVŪÖG1ļ,G«ĒųENΦ$Ä:8³ū6¦Ė2Įņ;.AU),Ū $7›ØŁöhV|* ­õā`ĢBŽ”śņ¼ō€~wīŖxŽč!ĄŃāŠLŻŃČŲ&·Óu'jĪŹĮ"Ź”}@Ęņ’ŹĀomĒæ@ <½Ü.»ŗę”¹#”˜ø„Įø°Rø/ øšE®¹$Š?»žżP½°³Žæ ×ćĀm¶ZʱĶ<ŹŅ‚ĪtĀ$Ó¤ńŲ”YŻXtŲā»čóLnī~9oō’V…śgU„‰×Ć÷ƒÕ (Ļݐ„‹NF9¾#üļė(ē®Ķ-yZ2šš‰6WfT:lē²=JŸ@ŗ8C; EEĄ†FŽ ~G¹§ńG§’ąGüKGŚQ2FÄc˜DwN€B žķ?q>ę[uø;Ä_(8Ó44źÓā/Ł><+ȹH& %!‹Ųž’ūād1¹¦J ģŻQU®QžkĘTų8ĢeņwJģŌŪęšāTįŃāÜłõÖz;.ŅšōøĶ^ ÉtĄįÅōœĀMy¦æ‚i1½r¶2»„Ö­¹Šg„øČ+øhøņņƒø7v¹o¶äŗ–4ͼM#,æ,CżĮŽŒ;Å«8įČ ĢēĢ#"HŃ4zśÕ …öŚķs3ąØåV£JėÖXńמńö„@āü$°×tŁĒśSØ>ÕnĖBŠĆ…DŅĀ${Kæ)śr.‚BŌ21öÜ6››…:ŅÜĒ=8ž@jCń“óDVØkFyĘhG9héGµæģGnŁrGć›|FøÅ Ecź"CemÅ@%|÷=f¾:nµ7ūį3łˆČ.4? *ö#/%ŹŅżaT•Ė’µDG6p Z¬‹uJ”żeK»÷Üßćńå%ģ{źˆę…ņį9ŽŪĄā֌.ŅQ“Č͸ϹÉŪµĘę’»ĀrŲæłb½(”`»ų:Ō¹…Ąø_:'øąO øĪęføhL?¹ūŗYŸY¼ó–¾©BĮ2ZÄwŌ×ǽ^µĖn&ģĻźtŌüŻGٹ\ފŪć‰ė(éÅĶī¬ōĖdś¶.CęÕ lĆó DzõQBéÉū¤"7'kē+e&f0OӒ4µf8”tŁ;-ē>&ŠAķß½CłĒ~E@ļÉFŗ6G»J÷Gę¤×G͌>G.-FŁ#„D@Z©B·$=@mŖd=%Č$:Ģƒ6ą–…2Ņ;3.hJ“)4—­$9jŠÖp2Æ®@ph7I !ÆzO™¦żĄ¾Ö÷¶ŽņœžjģŲyįęž±‚į`?WÜ"Āg×és¼Ņ<]Ī«łPŹŲɞĘkŖLĆ`Ą}čŻ½­8Ź».p(ŗ¾6ūøqDø0>øYõ=ø:&īø°™ŗTÆ»÷˜»½¢ļ5Ąl)ĆÄhcʉ) ŹuJĪtcŅžT×ELēŪ&ŲįŠrYęDÖėŌ/tńÕå)÷”šķüFŶœÓz•0ŸĪØ­KŠ·žŠś¾#f ¤(ŽE-@ߜ1Žń”5y„N9n˜œ<̆?VcBOODŖ4ĀEņpōF²GģśG…ųĖGŲ(G=¦Fįn„Dm‰BŽŚ @<ĪO=ż–:ų‚†6z™20ōY.)īĪ)}Ž’$ŃØōšµ4-KaX¾$# 5ÅaOޤžõÖéų@ń:ó·”ķOh%č“ĮŠāäČ«ŻAѾŲ+ŃŌ2U¬Ļüs•ĖōĀÓĒČKmÄӂgĮ|>Ǿ›Æ¼éZĒŗŒn¹Ęö†øČhø·øŚįˆøžq¹żŹŗ•”¼£Ź¾„ĄiĮ½mÄu)ŃĒpĖ“”ĻŻĄŌ3ļ¦ŲźŒŻiØā óēY eķōōņ„՗ų`#GžÓéų ¤ öm?(!ĀāT#DsZå+_$ ))JŌ±-™ņš1¢ą5Z y9ÅD¶<Õp’?Z$ BłDU·EøéFIń©GIĆųG× ÕGT?G‘\8F0ķĮD{iŽBrį@ Ż=PCĒ:¼xT7²1Š3K|n/’å+q]&v‰v!§ųZyŁ‹¦‹£ sāƒĶ"ßM9ūWI›õÖš šišźŸ HåXj ą¬5+ŪT1p։ÄöсķÅĶ”6äÉV¬WĘÉÓ%Ćc¢SĄ=vå½xß»—ŠCŗŚ[¹„KVøģsøĄ>)øće»ø{ó¼¹ĖC,»½)JJæĶqņĮ JūÄ9`ȤSĢ N'Š}ŌtŁŸķŻRŽųā™a0čõŒķķķóLĒ’ų±ß*že†ÅõZ ³Ąß NĄœŻlĆØ2ŗ#čiy(ūĀł,eQ41X–"5œŠ¾8²§<÷oA7ēCi‡IEĄ@—F–!xGrąźGĘŻīG©$„G†j«FČ fE¶C$žAč†!?D<[[ 9ćBy5ŽY–12”g-DŽó(Ęż@$*Wd¢=ŗ9ü/›Ž3" Ć4šāw ’Tz~łV“ūóWŒ‹ī3J6é” äܲüŽæä'Ś3óŒÕ+×2Ń*% Ķd[Ɍ éÅd«ĻĀKĄø½i–Į»ž°2ŗ,³ ¹€ITø{øČ¬'ø.›“ø…`­¹”s»«Ū¼i@ æ՞Į3wÄØŁĒśbxĖ%fĻÄõœÓūoŲßĖĖÜ9éµįFZĶęo ģą@eń¾Õö’øSüöģÖTWųķĖ LL-!s…‰•ēŁŒ!©Q&™ŪÜ*Ś­'/z¾+3Šć6W7H:vV=9@£”ZBEźIDū?ÓE{hōFVÅ«G"VųGĮ¹ŁG·.PG‘’\F``EO®=CJ*Aѐ>č@¬;8p8p:ą4Ü81RĒŪ,ws(h»Ī#ą›õÜķīÖ'Ā övž1 ÷ФŽ-’[køł“†Lō7-ņīĪ@±éJ{‘äĄcšßZCÓŚ¾CÖїšŃ āĶQcŹUØĘĘ;‡Ć OæĄĀ[T¾ßI¼éĒ¢ŗmra¹A„‡øÜŽøÄø‘?pøāa:¹Īņkŗ;#¼ż½ųEXĄĆÅĆŪ Ę<Œ„ÉFM8Ķ2Ū5Ń(ZwÕōŒöŁ:ެŽ.j“ćø£čōWŌķżĘó”}ų”ężŅRQ s·’„P-U™j}|źTo["ū'üŪq+Ͱ”/@wŒ3å‘,7œŠ|:ńwx=ĀG@-aBĶėGD*ŚĖE]-ėFģW¤GĪ_öG›ßąGčdGĒ™€Fzļ7EKš‹CšA W?jDO<›į39q°Ę5©¦ 2³& .×÷Ē)Ē=I%ŗo• O³gŻ©ŁR€=> ø£źšŸ%Æ.üFyÕöœ‰ń RģHī7ēOÅ@āM/tŻł÷ŲŲ £uŌcPŠäoĢ-#×ȧÅB9—Ā-’÷æĀ”³½4HͻƓGŗ<œ$¹ķeøĆƒ øĪø1ŖŠøŌfa¹‚Ä›ŗ„÷7¼„Ŗ3¾­ŒĄž¢=Ć¢°DĘ„ŪœÉ•aAĶA-ŃĘjZՅuĆŁ–śaŽ„t/ć9%čMū;ķ/ćlņœŠ°÷Ž’üų{R…ß”æJę a”į0±(ńćų Ųǚ%ßģ*z.:.ļ»+2R ×5ųI79h‘G<Ŗæ?ühAŪHqCc˜EśægF?QGD.×G—łG øG™.G ½ F`H£DŅŪBį·@Ōz:>ńg;ŁĘA8DÖĪ4ķ1ĘŌ-›‡Ö(Na$Šæ¹%ēę ?ļ`„Ł$­ MĻp€ģ+2·åū­o„öLrńnSģhŪOē—onāP×µŻś„,ŁiØŲŌ€&ĄŠ=‘čĢ3 Wɏ©ʝ›ĆįöuĄĖH)¾§6¼s« ŗÉpi¹ę’øŪøœŖ øt@Xø*d¹Śŗ‰Ņˆ»a–U½¤ß|æ@²ūĮœĪÄĹńĒ-¼`ĖlīĻb<Ó¾9D×x)°ŪµMą ˆå2ź^V ļ`!)ōė¢Xłzאž¾±Ź $’J*'—Ņ;fG6KŲüĀ!|F&17—*„o®.ó®†2‘Õ6U f9U/d<‡ ?ā+iAöyiCßUE ™XFĪ›CGž1ĻGC°śGœķÅG?@1GŌ~=FĄžėD-’>Co…7Aæ›Ł>^ (<&y&9|óŲ5ÅģC2R5l.×ōV*g£ &Š!5Ž< nkC³™ņÉōÉœœž7MqłOō™x<ļāc@ź.Wa嘽„ą›ŃÜ픱פȄӸå’ĻźįĖ-tČå¢PÅ8zĀÚõæsŽH»ė»Ģlŗ!ČG¹®€øh#øĆ' ø?_ø›Ö¹­ ŗŃŗˆ»ūK½’nfæUFÕĮ–E•ÄsĘ¢ĒŹ¾łŹŖÅ•Ī6rŅ„‰ÖŌ׌æŸTß ‡üćŻØČčh¾²ķż]“ņ‡Ē÷« äücÕ«¶") 7 Ē9;@Ę(~OłӜ¦ü¤*$ߕ(śŪŸ,Š)†0D}-4“(‘7)Ö¬:(Ž|=i¼ü?P4*B×4Dök‚ErłØFqtGoÜćG¶»öGd­G+GwF– «DUģ÷B<ńī@]Ē>¾zę;7ķ8ׯ«5Ķž%2Ų`_.O^*ĶÆ&&oÓ¾!Ļ,±[tj«9®³T¬ ącžÓŁŠ’ /xśŁlõRBošČĮ…ė-“¶ęōĪā¦bŻe #پDųŌĮUŃp6LĶ“ŌÉĖĘ”ĘpŃ·Ć]WĮ„šĢ¾‰wѼ a+»ó]ܹƒęø…‚Iøˆø×Z øėĖ“ø::a¹~“‡ŗĘU¼†‘Ų½7ģžæs£uĀ›9Åņ,GČ5–šĖš“/ĻH›ÓŲ ×ļ/IŪņI“ߝ•Gä§Qżč\“ĻķNøņœZ±÷o“üžw»ŌüæSĖ» ­Øž€C=ŌŁŲ-N#ž—'0ˆ®+°h/€ó43«š6œb¼9 B–<Ī$?aędAųĪSCÅ0ļDĶ5Fo$G!ķŗG’ łG_2ŽG+ŒjG7¹žFrÄ{E $De·6B·Ä@ö«= Uó:nJņ7h“¬4ėB&1™¹c-Ļ i)Óä<%­®ā ±]`Ż€»źĻłB$!æq7 \æBŹI’ü©Pśµq_õ€{šMĢŖėD4óęuZāo&ęŻƛŁ!C€ÕVۘѯ/źĶ“±xŹ/‡HĒB…]ÄŽ+»Į¢”dæ/°\½ģĄ„»;ŚAŗ42¹ĶCyøŒŸø¶ ø÷­Vøōųøń¹Cą=»U©Ż¼poξŸĢ ĮÄü˜ĆįlĘ"†ÉćąĢ«˜xŠ–IŌPōNŲ ŌƒÜ'湊gå)¤ ź\ŌÉīķdœó[‰}ų\egżļTk®=”S ž.š+~­›PJ’ÓL2#ĪPf'„k+¼Č;/¤õÓ2©X/6ĀüI9+; < æ®>-Œņ@šüčBpɏD} åEū8ēF11•GØ3īGćåńG¢R G¦éłF ’EJ²DČćCxD&A“Įė>( gā­@stÄ›) øŌ.M.Sėsž|Ā–ł‡gĮō‚łļqŖDė^Øę÷ż)āĘĪŻ½Ē›Ł«ć•ÕŒÄĮчŁ#Ī5QĄŹ×›ĒćĆ·ÄļÆĀķŲĆæŃéø½ž5ū»Ņ“ŒŗBo¹a^£øü£*øYQøÓ‚3øāó“ø’ˆ¹Z”®ŗv$¼;Ąč½ŪdłæuóSĀH¦õÄ6fŪĒuĪĖž0eĪ™ŅhÓŅÕģoŌŁBČŽ'Vā$ĢęČü^ėāG še¤Åō>žŽł€“^ž»_0Zžō\Ā  øw/ÉKE ~  ūM#ØSj'ā`Y+z¬/Uś2@Mė5cėś8cbÉ;2‹S>‡–@śāBĆY=DE ™­FQømG9©ÜGüłG§ŸÅGįÜ?GšZiFCE‚xĪC‘( B5@]ü¬=€-;Å68ė 5lŽĆ1S4.ŠĘp*aŅ}&Ž»_"\.Ōž“”&2Ų½—€õź ·1¶coŁC«ż› źų—1ō‹™…ļsāģźø lęrāįūÅŻõaŖŁį¹Õ?ŲųŃāokĪ©•Ė ųśĒMÅŃ؄µU/ĄĆ!¾Ą%\¼  āŗŸ ¶¹z„×øXYHøŲ¶øöø)öxøA>(¹}ż%ŗg q»Fī½éŅč¾Ļ˜Į£ĻĆ»0ĘįU!ɊUNĢŃ-“ĻŽOӅ×ĒĶې’4ß„ zćĄ2ŽēÕ \ģq^šš?`”õ“ŠCś·ųžxŗ®’i`S” H¢VW(@ߕF ęu,#†“'ĄDų*°­„.¤ō2ģWc5ŪRl8ƒ”7;&DĀ=^‚ @ōķ BfeÄC4E~XFām0G »GĀĒ÷G[vęG*6‡GŌ|ŚFĒįE6œDĮō CĖi5As?;’µs-—·ÉŌ„ó!"™ķ%‘hĄ)g-ß0^Ÿ#4dŗ17ķE:&\ž<źV÷>pŅA¢ÆāB5qDuvøE½Š·F­XmG 2ŁGWµśGĪŃGz“^G°ķ”F‚JœE¼ęNDĻ'»BA»ā@ՔĒ>gģk<„;Ņ9Ä:ż6ߎļ3‰U­09-ąy–)•€É%0Ö!īĄõ‹Jģ=µkŚĪōe åu\꫊ž”bFśč:ĀõĻHń¦¬Žģ{Pˆč£!Jä8m(ąūa'Ü KŲ5Q—ŌXģŃcjøĶu&”ŹŸF¦ĒĘøńÄĒ/yĀÕ ?ĄĮE¾†¼—»&åļ¹ ¹zņkøø’Ūøl*DøāĄĒø€ “¹É2„ŗ7ż»}C™½ xæéŖ—Į°ÄõĆēūĘ‹ØcÉŃémĢ$©«ĻTÓłM“ÖxŚn,aŽ%žkāż[“ęŚ9ŌźŻó)ļ¹2ó ųȚ|üŖŪłŖŁuvģ Ś:X,˵¤{œ 4ĘVL9OE#q 'ÅÉ*µŻM.>ā£1ZŽČ4“Ļø7KČq:qŅš<‚3?§7AĀQūBĄĻ|Dd²ŗEŸĶ³F…9gG SŌG‹¼śG^ŚGesGDĘF-“ÓEsƜDÄt"C„fAīœj?j½0=T»:G6 8­&5*c 2tiĆ.€’K+ Ŗ'®ā#4ųSŽīߏCɎܵ@čä l)} 9֑”ż&5łePŠōš@všó‡+ģbJōēś˜ŌćZlŠß8”ėŪ“ō)ŲďŌŃ8ŃnęŚĶ@&ČŹåčĒ+Ż?Ŝ“ĻĀVšĄ¦8¢¾é¼ ƒp»{ä9ŗÄSF¹ó­–øŽ+øXMøČ$øeƒ‡øab/¹¬ńŗµBI»n'¹¼ˆ3i¾ķ½WĄsā‚ĀĄƒčÄpM†Ē^¶YŹ/`ĶżH–Š9płÓ©7†×š79Ū-åߥ•ć{‚ēóĖ:ėŽ}uļߒæó\ųų\’qüu?ŃÆÜ/tI‰ qkŁ u2AœMHøia«l]³R"„*&śŠ¹)r3-£‚0Ū ¤3Ā”6 R9LmŁ;ø…(>ø:=@„Bµ°Cł E}%F?žF¦¤”G–.čGVœųG’ėÅG:ZPGša˜F²»žEü\dD(wźB>v2Aƒ’=?×ļ=äY§:„ 8Tę75Ī'52A/\Į§+į;#(­Ōy$õ® T&ʚƚV©Ü|3vA 0ū%–­U]’ŠT ūjzĀöŅg€ņ@Kī9*&źĢ£ę'āS@ŽÓ«‚Ś˜ē֎]rÓO&ŠÜÕĶVŹGTĒņČÄ»)r¤zTĄļōp¾>Eɼ)į^»3ŗĢ·F¹tĄšø'Æ/øõ×øŸSøš’uøM~¹€7é¹Y»ˆ×Y¼¬oī½<§¾æ ĪČĮ€ ĉ-ƒĘl /É’% ̌įĻ:uOŅŖņÆÕ§G6ŁAßÜr§ą¶Ą‹äŸVˆčO¶™ģ}5¼šæģōļ„%ł eż$x¦·"ę+= ¦Qļ³t¾¤‡ž4†Łl³8"u”ä%?+o)`™Ō,9ī0ÕP$3b 6”½8uŖ?;"ūŒ=ź“£?^¦A¹–%C=żDR§¹E˜§F3 WGLqĒGˆtųG²öéGŸœGžG÷CF–<:EōC¢>rBҶ@»EĮ>Ķv•<„4:wń 7øØÜ4fAź1˜YĢ.–“…+V8(åź‰$¶ļŚ Ń„ń’*—Ė0ūc$T 2ćµ9„"¬RüO›$ųQ§żóriįļspÓėz=×ēAšć-Ų!ąTIoÜĶĮŪŲšRjՍļŅgiłĪßn’Ė®ˆ2ÉĒ•ĘaS)ÄGńĮdŃīæĶ”#¾Š7‘¼‘į8»Ōŗŗ&¬:¹,j–ø!u/øƒøģjøNlø oūø—FǹæĻŗˆś¼ÕȎ½z3Dæo¹0Į3«RĆQ,ØÅ5/Č>”åŹ ńČ͌ĶÖŠˆ ŌZ^g×loäŚQ¾€Žš49ā„ ękĪńé"^ėķDóóńW!öIs$śYnEž•g6j‡¹s” ©=²]¶ćrŖ³.‹QU§°"ī7™%„ģ )Šļ],“€‰/kžŒ2]ėe5ņķ8"ӎ:Ś<ĖCó>8×@[å„B’īśC7)8E†—;FömG§’G:äGMśGX§ŌGTsG©°ÖFĆK’E‚äķDēi£Cģł Bƒąg@m–y>åæW<8+:,Ļ€7OÉĻ4"\ó1+ķķ.ģĀ+¶Br(tn%Qbr!TČå‡Bß-čDDšņKb.H D<ˆ+•Nž„ķśøżõrūśńżīb÷źŃFę•{…āƒ-ŻŽˆ#PŪM<į×ķ<“ŌŗĪhŃ)}dĪdzˆĖY¼×Č ½SĘĶžĆžƒŚĮqÕčæ4+¾‘ž¢¼_eQ»Bn7ŗ,ńU¹#˜­øČŽ>ø øPø;ˆNø{Ēø¦ŗy¹g«dŗ"„‡»Oį¼€źp¾" 5ĄŌ7,ĀÕTÄP­Ęi"3ÉRŲäĖĮ ĄĪnĀŃü‹éŌūŁ2Ų’°›ŪĶQ!ß0ēĄāIˆwęč:Bźöõīå£ņ-%üõŹRųłĆłż±ūJ$ūß?ö å,é sĢŠÆ ŖAÜqÆJ%³lĮ ymC$֍Ø'g&ī*Ÿ©.ø„1–Ęč3Ž×—6Å99žr;K–š=’?ČlWAŻqéBGåFD«ĄnE (`FUjGåGŹ”ēGūōłGf ŌGŚ@vGĻ«ąFāF=E2‰×CIĻiB€‰Č@}õ>uæš<õL½:o\8o Š5Š3^Ļ<0}^:-|'*³ Ļ&ŽXl#ˆóķ*WxĘŖŸ¢ėŻ„ŖĀ@ ZōZ ŹL#·@š'OBKi¶CūėėDŲīEf{¾FŠIZG?ÜĮG˜óōGvóGÅp½GÜSGĘĮ“F¬šāE HŽD'‘§Cg¹?B“ѧ@ž į>’Ąģ<ČaĢ:„…8åŽ 6ō=s3G޳0ÕŠ-2Ķ*ŁŖ'0l$øD!××¢ŪNT8…:/ŻŁ'ŗćg  /óŅCmü.4üŁógų(t”ōcćš®l0ķ4‹é«QöåųPtā0ÆßHٲŪL*xŲ¾éYÕśIZŅ·f{Ļ‹CæĢ‘Ź'Ź˶ĒYųmÅqčNĆ0[Į.ѓæäZś½āĒ¼U»7Kŗ7Rr¹įŽĖø‡!WøÅPøg?øaģ)øå2€ø‹Ź¹¢Gù€Æŗ•Ė»+į½› “¾€’;ĄPˆµRĐķ<ĘĖČ®A Ėæ§ĶaŅhŠ KÓß\LÖ7xjŁ:£ÜŽ]ōß³Ž[ć^iÖęā}bź7Qżķ _¤ńŽUõ+õ łaVÉüЧ‡ŖPE9»’ķS“ „Œ`~ŻćĒ•īÖ¾”‹ųĢč a /$h$\'Ŗėm*aLb-ÉE70|ķź2Ŗp{5Vē7w;,:^I<ź=>@č&£A”EC4|UD¢łhEé MFÆ%G€Ō„GĖ×GOÜłGüźGYA«Gmį:Gs4šFø²ÉEČōÉDö²›CĢÄ?Bj ·@ĶŁ?"$=ZF;QÆģ8¶ß–6‚s4¹15¬Ą.küā+č(ĢŹŃ%Ći¢"/ \ŻćŖ;“õa±‰›‹ņ üZR ««–•}ęS’Qō§ū‰1’÷‰ \ō’ņĄšLF0ķńc¬éüž7ęŠ?Ōā?„ߌ‘JÜʏ(ټˆ Öox4ÓEGfŠ$É·Ķ?¼*ĖČĄČ|{Ę O\Ä&ždĀÓ«•Ą:Ÿš¾xƒv½G(¼ »»,“ŗÓdL¹§“øM²Kø&ĄøWėø¶/+øLj~ø~Y¹C°¹x·ŽŗC š»ˆāѼsd5¾ Ćæˆ{Į6ō[ƶ¢cō8‘DzBćÉ 7XĢpuīĪÕH¤Ń`čwŌ„xg×ē qŚYؒŻr?ŹąK¹äńrē·ßźåŅYī"ßń7mõŲ‡łl@šüšŻ4»Ļ^„fĄńų B„ā–¦O{ će:;Ź©°"q'Ė%±NĶ(£:µ+./&/1!ø½35+6Īv8Šžœ:ė‰ž<ƀy>žæ,@Ō<·A©C/NND²SYE{8F>BėF,CqGU4ŹGØčõGØOōG[uÅG=‚iG »ąF–€+FcOJEcæ=DrƒCąh„AåV@öMi>!gā×ßK›ūŪC®śŲįÖõBÓx›Š®słĶ« ‚ĖŚ*É’FõĘę”āÄ%%ōĀØō*Į0ˆæĆ“ ¾5¹¼?Ŏ»ļŗĀC·¹ ; ¹o2ŠøMm4øæ ø”7 øLŹ7ø7§ø—޹Õ&Ą¹Ėü—ŗ„™»cļł¾šS‘æų92Į†ØųĀ|…ćĵ”ńĘo¹!ÉurĖjāĶäpŠ­üӅnŽÕMÄ»ŲÄB°Ū”!ŗŽlŒ×į¤åøEčÄ-’ė\µźījMņŃO·õŖV'łt!›üR¤8Ӆ-£ųu g ÉĻ †”.Ų¹ƒą‚ĢŁ3Z1¬­I!Z1N$ŗ$='ÆŌ*sœÓ,ęw/ø-2¬żj4ō¶6ųĄā8(ķ:ėÕ<ø7™>ģĶ8@ĄŚ²A؋CÄ$3D?8E”“FfČFšSG8k“G *ģGWAśG‹³ŽG'›™G„*+GM¬“FśÓEÕ$ėD%ŪC=)¤BnīFA.GÄ?D>gR<é:e:†ŗV85(6-ØŚ3Ā·o1•“č.¼G,āhŒ)]=ŗ&=7Ņ#ZÖ T]Ē‘Ø=Åy5r>å÷æü§ P ­ó “ÅĀ0žĪü¬‘nł§…öÅ^¼ņ±żmļź=)ģ±ōļč šĆå·õ¦āCĀšß ”ÜKn»Ł?ėÖ=ü2Ōß2“Ń4¦ Ļłø£ĢܽVŹĘö'Č3”ʑ“)Ĭc\Ā"š±Ąę<*æĖǽöˆ¼;pp»[~ŗ3z²¹Åķ ¹8ɐø“G;øPŽ ø¬øĒ™)øu:sø[äøå²|¹°ć;ŗģy!»ķ,¼% ]½Øį²¾zģ+ĄčĒĮ2é…Ć"ņdŜócĒ?́É@N½Ė6ĪY5ˆŠ0īÓnõ¹Õ7ÓuŲŚGŪÆų+Žų#įĀĀ*äŃKAēŽeźņ.”ķ‚Ķš:ī ōŽłT÷Zm śŽīż»f=äW‹™ŠÖ`8 ö]>ü•7™ÄąĄē#Ęż·žÜū ܾą#Ž ²&n„n)Åx,~˜¢.å‹1V r3ąÕ°5ėÅŅ7ʽÖ9H²»;4©€=Ϲ$?J §@%ßB“}CCĆI\D5øPEīP F±ÆŹF(„OGü‘®Gó°ēGšĢśGõåēGÆGdsPGÄKĢFĻč"F­TEKbD4šKCēB줵@ž“7?f„˜=qYŁ;Wū9’Šž7ķśä5ģvÆ3*-_1¶Yõ._Es, EŚ)šø+'ä i$²“!Ø*­'ś¶u®²›Ū”l†¬ a4R4 ’ ŽtŹp¤qĖU’K”üUØćų÷®ÆõÖLņö"ZļīĶ;ģå'é§łę–%ć"=:ą:i_ݦ‹–ŚŁ įץF@Õ޵ҽ'BŠ MēĶ›*¦ĖźŽÉ zuǦ’‡Å¾`øĆĀÓ3vĄĘ;æ’Jµ½ƒ‡¼ ņz»»—‘ŗż_˹I„(¹°©øp¶NøÜø 4ø°¼ø‘cLøü¦ø*g#¹~DŰAˆŗ ón»¬Ūw¼Čm¢½ ī¾ĘZĄ„œåĮĆB`XÅÄĆ=ĒŽ5?É£Æ[Ė/’Ķ9^įϧFHŅ/ŸÅŌō%X×1žŁŽ…·Üf¬ßR[āģCåp%9čŃŠ9ėmpDīQ‚Wńqōœä÷Ń"“św°Łżß³‹%²ĆHt!h )‚ S:•†ōŸŌ åd–ī8éYČ%"›gß$ų‡'µI*«Yœ,M/0ÅY1˜į”3ńÖ¶5Q¤¾7éU«9r|;”Ś/=F Ę>&Ü=@Č –A¼ĻB0 čCcĻąD¢Ū·E gmFó#GÕrG~MĀGČpļGõ2śG˜āGB¶ØGn±LGgæĪF%/Fm9nEŽ_ŒDt ŠCåÅgBŲ&A°Å?—3G>fb«<üó:wü9Ŗ$07Ÿq'5&ą3QxĢ0ņL|.{,e)œ)µ‡'SĪn$y=¾!“žAŗ/mjTō†mWn|:ƒ‚¶+ “Šy BŻmå½^ńßMް<žœ,ūīųŗwõj6ņD²ļĀKģū^2éżBQę2I|ć̼“ą,āūŻUöRŪY.»ŲҶ5Öb³ĆÓ+>fŃXgĻ„4ķĢń ÓŹĖ›ŅČ ėʕĄűkĆ/ÕĮV[Ą§ž¾£øæ½xŸ¼H2»‹ŗŗW_÷¹<T¹-öŠøl"nøzĆ+øī ø-Øøé'ø™gøo’Ēø^ G¹žē¹$঺ a…»k—‚¼ćž½(×¾Že-Ą{ Į–£.ĆĀ:ŲÄĖœĘ{yČvoŹ™'}ĢPž”Ī7ßŪŠę*ÓĻ„Õ3 Ų,ó‰Śn?!ŻōĀĒ߈L|āQ„=å`‘ č<Šįź{ĀķL1ŖšĮ˜óåŒöL„ł©O~üčĄy’#u¬&oĮ}fłŪY f÷G ‰/iMęšt²]gs¬'łĪ!ŒŠe$aäģ&™c)TĒ+ ».h7T0և{2ŗĆŒ4i ‡6’i8–}3:Śä;»z=t­ö>!YW@9.œA"©ÄB¹RŠCxĄ¾Dœ”EI~BF9×FɏMGW„GsŽG_ŌųGĄxōG/kŃG²ĆGN§/GóG±FYäFŽĒZE]JƒDŠŽCÉ}B¾±PAÓ@‹|¤>?&=öŽ;ĪaŽ9@‘80L56Żc>4§²12­0hŠŚ-@ņ‘+"N7) Ė&±šO$ŻNÅ!%Ļ,`‹‡.¢Öz6oVću‰ūwµ¤Ū ­,żĘB77ęQŚlżŪ)‰ś¶Ø÷žŹō³ ņńĪøļvŽTģ/ʑév€ŲęMŁ)äÉē†į¢½šŽÉfhÜłčīŁSC…×ūm,Õ³YåŅƒļ°ŠYĪø”ƒĢcLŒŹžŖČgąĘ-;-Å5$’ĆäĮĀ–©¦ĄfWæ{w"¾ŪR½Eb ¼‹&»*^ŗ.D³¹f$¹ī#²øź¢\ø¼ü#øb?ø2m øå|'øœYbøöā¹ø$ķ-¹A¾¹8œjŗU±2»’'¼½õ¢-¾‚Į`æ‰v­Ąē5ĀĖi‘Ćör'Å©ŌĘĄZ˜ČQĪqŹÆA`ĢąźbĪRųxŠ7‘”ŅÜÕŪŌ ą&×]ÁٓėŪ‰GcŽXōēą “xć]ęI¹čmÓgėįī“„Śš* ó_’cö•h.łE0ūūŽ>Éžœ{—Šd¦%0%gų F¼ åb{kż3@Eå)2޲æ-ˆķĀćæLÜ?Ź!Ķ{:$©‡œ&T}ļ(ō|2+G­d-š;…/Ā]“1 OŽ3ŅSu5(øG7YŠ91ł«:+˜<<°¶=Aū?©·a@"Ū’A|łŖBE°©Cą¦ŽD”ŽYEź" F1) FqGˆŌ{Gˆ7ĮGqˆėG׿śGˆąīGƒ÷ĒGź†Gön)Gą²FŹW F£atE ‚®D, ĻC›XÖB'ĻÄA²Üš@’÷X?€ ’=^<Į;cal9+ßŗ7Óįō54¢7.2ßü.0–*.Ŗ‰ü+ĢčŹ)&Š' ż:%iŽ"ƒDu ˆtGä€ҁ÷U>eæ Ėfę)§Ą‚–Ö tc& «#sŌ½ÖqåłPžĀh›ūŗēų5č6öģ‰ó¤¼įš’N?īś“£ė|é¦ņƒę'ąäś(ŠįU­ßéH½ÜšŅiŚ/$ŲņģÕüÅÓÉW­Ń c¦ĻCń°ĶĢÆĶĖxEżÉļQ@Ȑm—Ę@)Å<„ĆļĀĒQĒĄ›ŠæÜād¾Š‰V½č_¼JM»N»ŗO? ŗ¦?x¹Õ-üøx-™øCYOøżĀøsøĀj øÓŸ$øīYø„s¦øJŌ ¹N÷‹¹Ø#ŗ©Óŗx¶›»2{¼ “r½Uń€¾•Ó„æ£ķąĄßŹ1ĀTļ—Ćō×ÅĘś”ĘĒDČĀ„śÉKłĀĖ7Ķ?kˆĻŠ1„Ńõ¼ÓQTŖÕ§9Ó׀Ŗ Ś(ąLÜ÷œŽ™köąY![ći\Éå2E@虿źRµDķ)‚ŠļRˆaņ“ęöō8»÷#+ś&;Čü( f’ļmÅ ~Į;“Ō ē©h ŁųZ¶ƒéf† ėū2iķÕĢ R& ©Ét"śz·$’Øķ&Ÿ™)š1+ū=-Ž;/*=(1jŪ3ąTŠ4׊6Ķ”18HĘ9زG;ųYµ¶žS?ŗlƒ@iŁAüŽ¢B?‘Cx¢iDŅy+EÖEŽ«jFg­ēFšpMG ܛGŽŅGulņG…śG-ėGcqÄGf†GĆ(1G^ŪÄF_©AF ŧEļg÷D²Ņ0DMTC­%bB²ZAEN>@] ?ØGČ=D}oĒP6Ńɜ4z-Ų2~ˆ1ģu/i•,-łŠ++Ęž)åœ'#Ś$§"Adi «! «Š‰$wēÖĪ…­ö>+īŹ°5R [•Õ ¦ÖU•ĆÓo&PˆÉĖ÷vGž`ųĆū®BłÖ™ĀöŸHFō\čĶńµĄ½Y>Ҽeŗų»6ķ3»$ „ŗBé¹_¹c¹ń‘óø昸„ÉSøĢI$ø@m ø)4ø-˜øtŒ>ø¶żzøBŅĢøź3¹Ā°¹ĶCAŗu&ēŗģ”»e;p¼.źR½ČOI¾žSæ łoĄÆ‹ŸĮUsįĀ.J5Ä[„šÅ ǟ$˜ČÜZ/Ź:ÖĖ@ŒĶ ęPϦ£#Ń éÓ%ńŌ§ĀźÖJ)šŲt½Ū³ąŻŪń@ß9MoįĒL¦ć[Hååܕ+ču‰xźĖuĖģ*¬#ļĀ|€ńŃ6įóį(Eöö «ųĆģūąY}żü5ē’ĻP‘s¹«r h… éĮę —µDNKž˜ŲņŅ“Aa9ŠÜĮĖ>¬Y7+` ā‰";Ż”$’Ÿ&õŸ(`ā’*0hz,$U.Ք"0 =ā1Ŗ£“3ēS65dŻÉ6MŌM8lŃĮ9Ir%;@Yx<•-ŗ=Š›ź>sT @ĒA0†Bš{ųBCµĶC枏D )?E‘ ŪE,cF5hŲF€¬9Gb8‡G±żĄGĀóęGiłGņj÷GöįGĘøG„ķ{GC„+G™§ĒF zPFT#ĘEUŠ(E³xDX¶C>śąB|ŪłAœėAŚtö?ĘŚ>k2®=»q<ėæ#;Ę9{ Z8!yŽ6ųKT5•õ»3é2b0N‹¢.Ź0Ö,w ž*$¤)Vz,'4%ņ2#ŒÖ&!¾HM÷³Ō' ŖD“yō°CH—IÉŅ…… eĀ> QõūĢ©ŠŃ\ūå楒„'sżn`&ūŽ(Ūų ’öŹKōĄŅņóČÉļAķ1ĪYėd*éjēŅ•ŻäŠĀā0a®ąØ£Žn¢ Ü˜§ŚzpøŲ‹§ÓÖG¶łŌŽ+Ó/hŃ&{±ĻŹbĪnNjĢź¢ŚŹgĮXÉHåĒĪĘdk)ÅŠ0āĆąkŖĀ÷e‚ĮFdjĄĄ§bæ mk¾y섽ņYƼłä껚ø7»hū•ŗvĻŗNR‡¹öœ¹ēĆæø×vøŠį?øėøńōøiżø“żø¢ź:ø“oøkG¶øÄйĻax¹r«ó¹VB€ŗėü»~­Ģ»D"Œ¼k%\½+}<¾Łė,æų/-ĄN=Į÷\Ā6ŠĆļ÷ĘÄķĘŠ*kĒ·ėŃȤöEŹ–ėĘĖ gTĶ īĪb[“ŠØ’CŅY„’ӛyÅÕNm•×2ėnŁ}QۚŖ<Żś/ß©ļ*įj-ćĄ×5åŚĖDēĄiYép/sėš‘ķĖ%“ļoNŚńōsb/ö C]ų$«Œś½ü9ūķž;Ų'O;c~½¬_”× ¾ƒ kU&‰HfŸf§€P~”qO£ø¬V®:Ÿ©čz ×w‰"e&m$/H& å(!ā)Uh +ÜUT-<‰ż.I¤›0«K.2ķ&µ3ą/5&ž68Ø’7¤T9b4›:³ÆŌ;)J=µÄ>Æć,?ąn-@“1A“śB=œÕBģ™CäÄND˜ōDk†‰EŌ4Fųõ„F©µźFfc@G_ņ…GpY»G$“ąGƝõGģzśG\0ļGĒÓGģKØGĻlG]d!G6#ĘFp&[FTŒąE–vVEE ½DÄoD¹Ņ\Cb–B¶OĮAóŠŻ@ōģ?ńqģ> ß=M*Ä<‚œ;9 g:¦`%9–Y×7YF}6¬w5¬@¦3¶ö)2ań¢0ZŠ/Wv-Ń+Ų©"* dk(Ķ™«&dÆć$ź #Ģ=!Ä2_ĮŃzŅ[ = qāŖŲ¹°Ō1²ž¹Æ÷Ą©ø  †• 8‡ Ņ¢wÆĄf·UĶŁBš¶0’y ż^Bū¼Šžųq#ńö®ØåōŻĶÜņ“’Öšn©Ōī 6ÖģäÜźIœęč@Eöęro å&ćüÖGį1Ųoß9āžŻŃRÕŪļ…ڦÕYŲšØÖp)Õ¾×`Ó÷öŹŃįÖ>ŠżΤ EĶ”ö×Ė~ÉuŹJÉɖ7ÓĒoS“ĘKY_Ń7ÄŌĆ= Āņ Į`øĄy›-æŪÄR¾7[…½g‚żh[¼[o»}˜Ųŗ)0PŗŠąÕ¹ž¼i¹SŌ ¹ˆ3¼økäzøåķGø÷S#ø» øm7øj® ø2u øqCøĘtøń2“ø‡µ¹N8]¹£Ę¹żŚ=ŗ|ĀĀŗk9U» õ» H¢¼ž’\½xŅ#¾āŚ÷¾Ą|Ųæ”†ÅĄÉľĮ:ÄĀÉÕĆ#’ńÄįoʓ^LĒĖŠČ5kŅɜ%Ė’ĢŸõēĶ ĄWĻ?²ŠŠ™RŅŚÜÓžqoÕ¤ö ׏¬Ų |UŚŻŌÜ˜Ź¼Ż’zß01=įńńć‰ļÓäźĻ¦ę[8~čŒĶYź£39ģPīāšU®źńe¹Õó¢ÄĀõr±÷le”łÕ?’ūJ¤ƒżƒ5u’v–ffjWõTG8ś5Ćž" » ėŗö ̾ÜŸŗæqVŸ8;{ŌS,ˆ&2Gõ÷ü¾·WƒźBM»ś ō&­"SżX$Móż%@æ›'2);ŗĄ*Ī]G,‹ĄÅ-ā ;/æØ0åÜ 2N¾g3į(¹4 ä6|¹>7Vtr8 ā›9õŃŗ:}Ļ;€Ų' ²?vŽ@²Z_A~$BĢŻB)‹C|,D ®ĮD0ŖJEü]ĒE¹7Fƒ­›FO/óFä4>Gß¶|G°®G’ŌGšžģG¢TłGT#łG„pģG2DÓG‡Ø­GĢ©{GjV=Gä¾ņFĻõ›FŅ9F›#ŹEŻIOEDČDw:6D@˜CkĪīB:B÷zAPÆ@Š*Ł?żŒų>a >ōÓ=*<ŌQ;”¾ś9ƍŻ8ęó¶7&'‡6_N5TŌ 4BĮĀ26ap1Óš0ä­³.W×I-.­Ų+qp`*'cį(CČ[' ćĻ%ģł=$¢P¦"ū- !ąŲfߘæ!¶Wyc²+ÆÕ÷Ȅ;īæ|š»¼Čön,0L‰g °* \Ѳhœ6uAhnĖ’§Ėüż&/üŒgbśżŁ–ų™ĘĢö-võ1>óŪ>zńÖęøļrośķ€?ģ9‡źŒÓčaĮ"ēDµvå!Ļć|E,āœbŽąQ·õށbŻžŌŪ hMŚķūĖŲeńP×OÜÕ¹ānŌuKÓ šØŃŗQŠiøĻ¦>øĶ”ÅwĢ"{?Ė„‹ʳ!čČ#gÉĒŠƒ³Ę3ž¦ÅBŪ¢Äl^ØĆ“I·Ā ½ĻĮ“×ńĄX¶ĄģtSæG-“¾Å÷ܽ!ė0½y¼FŸ÷»`…j»łŽēŗ¢ŗoŗC%ŗ#*Ÿ¹āŅF¹}'łøK.¶øģ}ø»cPøę–-øY…øP-øi‹øŖš ø†T øŪ°=øś„eø„(˜ø,Õø¢¹£zn¹Ŗ¤Ź¹V 1ŗr ”ŗZH»üķ »åx/¼>ĻǼ×Õi½,p¾f€Ź¾hēˆæŠ„PĄ7!Į#ŪśĮ4MŻĀhČĆ@¼Äż·Å>(¼Ęī[ČĒūmÜČÓ2ųÉź}ĖÉ!FĢ šwĶv¹°ĪźMšĻ€|6щƒŅ‘ąÕÓr°.ÕSOÖµˆń×y'[ŁėõÉŚÉ½=ÜHH¶Ż%^3ߤǓąŸL:⌓ĆćƒĘPåOIįęjuč» źG6„ėŻ:Aķ|Žßī­öšć8"ņ€Ęóß`kõ^Ń÷c1¹ųgFaśüÕ üÕ„²żŃ{[’’ØR¬WąSߍśb" ^eD ®ē ’ˆ ŗ'LåĆęN^¬öK‹žĢ«•7śÉ¾Š„B²|Ā“> [µ »("ē•#Śž$ś®b&}9Į'UN)Ćm*+n»+ż&-ÓÅD.ź#€/rµ0–‡ć1}D 3M/,42&F5]Y6 ¶d7i8śe99V[:e I;0ł.Ļ,w? ę4@ŚTź@ff—AO OG*‚GN¬GHĶGä åGQōGµ›śG ųG:’ģGIŲGf2»G-U•Ga»fGo/GD}ļF ń¦F½ŲUF¼BüE¹>šELŻ/E0½D_IBDÖ<æCÅ4Cv”BB·4cAB®ø@~‰@ąL?fenrir/config/sound/default/Caps.wav000066400000000000000000000075201513650123000177710ustar00rootroot00000000000000RIFFHWAVEfmt (ž’€»ī  €Ŗ8›qfactĄdata “¹)Gۃ+OUD5E‘C¤G²å7*{ Ń’³"0UśĖ>±Ę‘¦QęŚüó"ąB”Gū–×gIŸ”8öR“ĪÅ)@Ļ?׶ӔUõīėJĪå}’NįfdŹč˜6 ź:žBńކ“Ż·÷(ĄMÓ6øl|ž»?½æ?BŌĒńŠÓ“Ą6Āæ×XĻłwŽīÕŲńÄŃń p\> }a&£.$Ł0ó]-Øū|5E’^AWļČĖZčēq‰ļå śvi†’1Č)LŒ²śQł{éd’ÓaŅŌbÕŌ<’įÄ Ņźi^ģģ·„ėłX|ś>›;öÆsrž‡”į°öĖćșŠĘwĪĆÓI3čĆÜĻę[GöĶTō#Ū©ŠpėŪx'š"9«Ōt>Ō¤GTčē?˜Xń(ś .OXp]ļ÷oVMĒwś—ļm‹ ćrżÅJÜ] °Ž²„õóśĆśĪ'`ĪGł&ÜŲ‹NķŖ$źč@!ā®­»é½“©īØéģS=SŻBā½¼餺®7é¼·KįÅdČĖӈ£QÕššĆō|Õ§"Uńēk˜ł'Č}Œ‹÷ł{"¬åp&Ģ·ī--’öG.†’õ€xóŚ“åorņŠ#ŗżJū*#&āŲīhż,šį²ä~×Jō ҳr×÷K°ę¦žńééÓóśæ“ųŽõ‰üō#Lų°¦¤ś³†‰äœfŒįÜĶ­ŃKŒoĻxXūŲ(%谖čē‡'Ķ µßTJsõŖ!Y/Äóū8ĄõĻE'‘¤E“Œ=EEšūęttkP r{öuž¹ŹŠŪõ½˜³$‘JyūȲ§Š¬I,ϵœźCųFÓļśūĢ$Ćfāß«ī:õĖēyß„ę>Ič|<ó Čé¶|āŁLmy½–µÅ¹2»ŚĮ—ŲÖĒ\ĒÖ¦o%ӉĢČĖ{Ų¾¼Ģößv£üĀQ} čšóZ'„7&M*¬¢ ˜ėeżŽƒØ÷CĻūŠcpįķ`õX É Ų×scˆlžīś–ų3ą =ÆÕC[Ć×ÓylÕ1Ędķ»ŲŁéN©÷„ģśĄ%Ėś ę–ünIźõ2PęįŲ`ą…źōĻ=QŌź‰oŚŹämė…[AåŠĶdŠ–ēāŖYē{ōæ3<ŻGZi§Eųfó?Q‘ė­7Š ‘Q9ĢÅéWBŲ…¾įõĆa|+dĒ q˜`Œš’¾‚yģę­ÆgŅłH+Ņ&KZāF??ō?ŗ3äÉą6ė Ł±čćŒó/ŅŠé\J®Ó(…ÓæFŖŗoSŔÕĢŻ2S֞'tŌąMĢŹŅ· ßhvųń4ŠBķ =Ŗ• %Ś(N»—$ ƒ?ż ‡0ł°zż&ó3öš€‰é€pżīz9)Ģ jĢ•€ņ¦÷ߏµŽBAļՅĄęŁķ_}Ų9šżķ*Ąļ‰,öŚŌń’°ų ‰8’+ßōóŲ‰†ä³2÷ßa»īĢ÷G!Ł Ī܎©)ģ„łä™p5Ń{Ž”čaćo w‡Ä:n<šĢśGēÕ^CNęy<į#³·£ø œų-YčĆNŚŽ0[Į}d%ʱŪ«šį Wń ņćŒü?£käĆ&•ŃMzÖÖŗäH7õ™D9ęWæÓéō©"ī%įļ•ėS‰0ĪY/9ĄIŸ»J†ÅHēŃL“ģŌŻjtÕŖ÷ˆĪjć„vü‰EĘÉž~#Cž*F*!k‡&Ų¬`‚ų]3ž›Āöā"¶čūEōX>Ž Sö·[ĖŲłģ?üZBż×wŹ1Ś%ārكrāܞܱīRn„ó, ų$ųš’üŽūß~ü‹öŽńUą†œnį«:÷ĖOyŽŪpå¦įŒTWźƒ¾å§KÆŅ(·ļī/ö :0B>ė¦>šĢśGĀÄĒCĘ?6J•66 Šķ 2=ęµ*ąŌ^ŃYF¤& ¼Wņ¤ ēN+³)÷FŚ żˆ×W­+Ö2-ź.hótöč>ŹyéÕ’gšzõ0šG”ę*MĪ @s¼;tŠĄĄÅ~OÖ&M€ÕT<ŌF>Ōś‘Qęį”'öW'Aō'+%Ƨl+¼ ęSjŪÖŲ šeõ„žz›Iöäø]é™r÷ȉF#ūŚ©ķųĒ„ö¢’ÜÜ6KŌß/“į°qŚOģ¹ōDŗAóQŒŒüŒ|‚ż)˜æżžŹś‰¢jōi”šą¼ƒØŻžÜŠhĀŚ"ŗēx†čĒūä§k ׁ…Ųó7c€:Q?\PAšĢśGÅ^GB7H2Z^Ėaą? M­*4@Śę(:åÆĶCv±&IB’pé ÖwŌ{žĢvŚG]ÓĖhŁßߞ–ęåyĄųnfĶååWäķÄ ²īœ”\ņZWUį|ŽqĶå7¼Ūč*¤¾°ÉŹ“Õ%<ˆŁĪuŃ> Ū”’0źŁ¬Źš%B Įµ•š8 'Jα*mhÅ“žü+ĘĘõ¤Ī’t’§÷÷C_čÖoOü3•”Ź+;ÉčģöŌŌ*ņ82˜ŻÆgwÕ,ōĄą¦uÓįŅq!ń1ēWū™CDłE»”"¢ōśiP}żjq¦ļŃåāü[Ś`K_Ņ`½Ż.¶_č~ėUA¬ąÕFhŽFžų# '.–A>ÆwAšĢśG'?'q)/‚yūŪ/ ø†-CVVęV!ķDīmŅ€_(£z¾xÉ „„Ŗž²—ū² Łsw!Ó~րć>åšź% źō(/¾ėß¼ŹéęV3ō~ówķØ§­įõČÓ“æįNgĮg®Ī¶–éÕ XŚą;VÓ>¢żÜ€|Ėń}ø%I Mw ”ŖŲ (ėēå*ż…}’!ćŁl!³ųöTæG’žÕ÷M¬½é‚ö¾žŌōĶ·}“ļ“,ö&Rķķ~)ŒŽ@yŲÖŖæąöˆę„rņ ŹIüRsŅżr< żNT/c9oų*Ś£ńģŖ®ŽąŒ†Üi“øŠ„BœćīĄƒēLŠĘģ42߄ҪāöČš ,ē-FŚž@šĢśG`Ó7<é0+,Le` ‡ÆŗüJ^ęV õ&·;=(ū†ój)čżõyóö£śåŁ›uÓĘQŽęy` īœēÜņŪu«ķÓ÷”두ņ¦NšOŸ9Ś5ö?Ź*ž¼ˆTžĘ¹oīĶדŚF€‡×K¦× ŹÓŽŹ¾v÷ˆ”ŹKQ?ĒT k²(ŌӚ+u’]GLhs‡ X÷É<Ż’…džöUAoģŗé"µē“”}[óŃź=ģ’–Żn’ļŁĀ ąCūź`,dō:ūŌü»Ōģ“ūĶ57?X’łN|ģz®įWŲ×iÖĘÖć=!ģW%éƒ`gā•<Ėä.A( ż”¤0šĢśGLcBšĢśGØæ [Įoö¹źåfgõߋāī^u*Pl%5˜Įļ²öźØÓtŻ>łžŪū’uᆠ"ķņ±(ųŅ.üØżi¾Ļęś}T’8AMśäøéĘEį–š3Ų©ģÖælč`Q’ésŖėÉ ąė[xķ±bŪ<ø„9Ą}°FwEBŠŪD›:Y½­!›–¬/)n4<ōœ‘Ōė{Ņ£‘»iœ$¤:M Y,…āųĢ5ņĘ ×Ųš&ف¢é5QĒóĶ—Ańåōķķ,ļēšUx!īÜaīž«ÄŌ7ų_Ä~ī,ĆÓÕ}Ēa$nÕv]ŪżŁŁ·NŪŌē€ē^µž°‘c ~ģ{ %&ć°+,H&éxš4Ž• Ćd Qųƒūž |ŗöż½ļœ_ ŠCæķ ŚģvåōčCįæŽä CÜWÚćč>ļ¢ūś;ŠūüzJŒbw6üö_ ż5~÷śčygę æŽßN”Yپ0čÖ8r›ėĒPŠźč.ņéŃ9HćuGńe³ō—ł;šĢśGŽ…’CÖ“±Fk4^?’!k$å %fJņń7d…ī„„nO~ŃĒ$›I®R$LvõX;š,. ×!¾Ūóē„ģŅ2kōäĀŁńy4šķĮ0_ņ™n¾ķ„°źCŌäĶ’Į³–Å4…Ź?55Ö^¬ŻŪk³Ųß»óݹIlģÖS— ó%ė-2©'’F)“ł&ŁŅ”F† »»üę)„ü¾E&ü:å{÷Ś‘’ņ¾˜: ³øŖėøžq Ąėüģ&ęĻ/²ą °Żw5å“6Gņ·ŠüÆģ”ž0vć”u4ż†ÄŚū{,‚ł ĒŅå8 ݜņHŪŹ{XŲŃ'ķ¾(*ģś 5čęŪOę¦+€÷Ć'Ä!mōxAšĢśGfwF‘zC» 2Bdó­[\ ¤Žõżņäzéīó4ęŽj⨙#Kw¬V˜°ōœyģns·Ų#ÄFÜ<”Iļ;4õęŽ£ńiYī—xņĆŖĻķĻÄŅęņ‰ŅäõēĄ’D0Ę£3Ī@ )ÖO׊ßP_ŁéŖųßw„ńŖO¾ų«o"F0Żū)b¬B*&\#c‘£ž)”ēæ§żŽogūš„žØmąócōųį "/R»śc méĢ5‚åFhŠą™—œßéć{åī8*öZżÄÅĪ’5Ø:żĆ>¶ūy’ņö$ɂå_±ŪłwóŪuĒŪZ‘Ÿķ· ī%ÓĢ潩Féžcšž6ā›'d$FšĢśGĪSFĮ¼ŁB”ī-g ¶4­ĮOÉ]³ržšŸ6*õ‘)RlaŽ!fenrir/config/sound/default/ChangeTTY.wav000066400000000000000000000703201513650123000206670ustar00rootroot00000000000000RIFFČpWAVEfmt (ž’€»ī  €Ŗ8›qfact data€p/q’‡~ń$S€ ;ōL9’ ɰžĆNRš9å…©3”ūØeó9šōæC“²9k+ž+ešćķ™ćy\ż@Qū”śĒGłś/į)üg÷JżÉ”śż žĶžŲ mÜĖīa9"Īł°leń ß“"ĶE}Ŗw³cR½t ˜ū cDź ]ėb‡¾ģ½żrSlł QŽē”žź=Ń®~™!2ČÉz³¾„’?½”ÄM@„0žŗŻöūŗ|įł}u^ų˜u§÷6œ‰÷]Nj÷)ƒööiŠöfR ÷ō@šųōźÆłČ ÉłuĄ ś*Š-ūPężß°­žRĻ’b>2ö"’łŪ żčß ś‘Sųα…öyXõ;-õÉ öøuä÷qsFłÖ%SłŹł÷ÅłŠŽūx}üūś€ü'‘/ż!ž‰ŅšžRmyž7ż¼nłśtĄłD‡÷×č÷õ÷ŌNō‰ųņ¦›žńī7ń"T1šr7ÆļŚÉPše Hņf<ēōcµ#÷üdOų<-yų,.KųlĮķ÷.e$÷1Žö×öO“ųÆ«Ēūv ²ž6ξ,ģ qWć\’{€żõ¶®ż†[ᆂwE‹Ų ŠŅt [ipĪ4@ eĖd ®2-  ƒ ĒPB”łŹ<%Ī`ŅYr‰GĀ ķĘwƋ…øČøą60¾|Ę]66¾­gb…łÓ@—@\¼oXżRé­ł”ÄØöOVAõ9I—õ3R~÷}/:śŹķü[č=’ƒSĀ.0b˜YĪ„’ż’”ož`ȤžS`AO‰cŠ*„˜'1›Åó[# šQÜć žm9/ ’Ņ£ -|Ö޶”nœ­'ō!Ž AsuŒc'ģfZå£ĻfĒž°Vū¬~śs±—śłŸūlŽėü^¾żä®Zžp½š’3į ‡’WÕõZ_@R¤—¹Ą>"N ,f"lÖ P³A Œ,Ø ŸnČ”£ęR%ųøü0Ø~épŚ: M5fF¦õēϧŖ[ēµO4"ēHõģ;’pžĖüÓžś%īĘųqkÄ÷g›~÷~÷Åß÷Ę®öŻ•÷c7lųœwˆłÆßĆłŌ:Éłö҆śŁ <üŲžß‚{’ŗV6r¦B嚱’pĶž Ė—ūÕKłŸM÷éќõ•łōK;…õV”÷ttīų›“zł"­łŃøHłś…{½ūŅJü¬•Śüģ׳żźzž+t·žyążŻWÕūÅB°ł¤Lų&K“öŖ}ęō›Œ[ó)-KņF5bńé2pšDR¬ļĆ0ŗļā Bńx Ņó„“föy„ ųὂųĻ|ZųN³ųæ„v÷fœö­söŽ Ÿ÷<xś»8°żM'芽Ķ@ü›rT’Īķżü©"żŠ;Čž®A _JÓ„– 2ŽĀ ‡?k©UtĒŖ ÉVŹ Ł Ų§ īYū?/:ø§3”(üs²5śF¦’ažR’5#@‘¢tõÅ•“‹a Ń»„ {hż Ģ”X ńā~ ŗ} J[ż vM9 Ķęuk©-séȧuJ÷ō€k2 ½Cį~“ᄪ!…O+jt“‡‹AĘ  iäRh˜•N3ø‹żž‡ūBLj÷›elõi”õ©äxö®µł„ÉźūyźožÖa&ō¼ÆĀ¹į’±ęD’R*˜žQMž#Tg’Ƙ”ßt=Ü®LūR.†ÆČĻü Ø*ŗ œ] ŻņJe¬~kɄؒG¶×»©ęV}øīĻ]TsLp®ė¼>²kJQ’”>ü@Ż śhVXśN®ūĖõqüė&‚żžw ž‡KźžłJև œ3»¹ŲŲĶĮ3ø–ŃHæW“«¶yCĪüÖ÷ ÉŗK žkŸ kė£D‡Z8 š53bDĮm³5NhgUä/ÆB‘„p‘øšßĀ(Ē)ÉĢuˆ ö’y³ż¢€fū~•^ł.ˆņ÷² }÷”¹y÷“•Q÷5*¹öy#±öu•Ī÷ģ3:łZHĒłj÷«ł śT4lūĚpżN’¹= )Ż_–?”uļžĢ üĶ%žłŠ•Į÷+ĶöPéśōņ>õCćSö&;MųųP‹łĮ]-łŁ#ėų©rńłó_ūA»"ü8lŒü‚ µ"c•„C½VĢŽ’tvužTI’ū5ĆśėR”ł©e²łAކł—·>ų² (öŲōFōyõV5¶÷%“ßłPńś ČZś”§Čų¾Ń×ö |"ō$yvšŹdBķö~–ģŽŒŒļhJŅōĪŻł÷%žÉ ņļÄņ›ē”ž˜Ń`üBWü,f”žXŠEö««_ 5[ŲSŽØ"'m,$ž¹  A 8cś ųˆ5 ĆÕØ z?~Μųƒ„ģ”R/’C)$žr°¤’£,IÅĘŒj4 qb Ü“µ© y˜ļ Ž%± bŽS|“;…Bw^žåęķß:jĶhW×× óŪ `y? ]Ś) zŪ× ž”| œ|/ ‡ŖV ؜@ E ”$Ŗ ‰x` £ ½ LoBü¤śłŒx÷-÷H¢2ų\¹®śD–żĮ¼WÜ1OŹ>pPš’ŪdĘżu¾ūśuśz‰ś¾öbū•·®ūŚÕ‰śGBĖų³°tų=śó_ż±;`Ē%Ū½»B\†µüi²ūŪŚĄżhy¼~šĶof‡Ūg:CO\BŖž[üīŖ{÷bø%óśoŗšµ©”š0ĘņÆĖ³ōźęöåw÷Oč÷ķ‘żłeöÜżs–VÅ@fž‚gEv9ŸXé{³6ś<óāéÉX›’.T/üöŠłT£Mų[“d÷ZšÄõ!ćdō€Uˆōį¶DöeĖtųCe’śõū„ū#$@ūgKPśöć>łć\ų"™öbŽČō ¾įōCŁõ ÷^ÉŹ÷ś­f÷q€Ēõ‚»ķó… *ōĖ÷ ÉCū„<ĶžśęMŚ'Ń«pų\²’›vEČ¢½žŸOkł-yō ’šÕī9ē1ķµ˜ŸķĆÜī*ōšŃ±Oō żLųĖĮ„ū[łīü»Ürż;l“ž”@ų’=MT³(Õ|ÖāEqAĆōÓg ŗ Æd ͤĪUÕž¹ÓµKÜk’Ąž²OwžkĄ›žŽ~:’ŠĮ7¢a4½¼ėĒįX³@Gß×kčü[,ł^Ō8öhYõņąö4ĖJśØéƒżIzĀ’3¤!6Ś?¬–#RZžonY>>k2 ü"0$ˆŲģfT¤‰ÓaØsÓŲĖ:¼¹•Œ— ĄJc >0{ ™ļõußĮG0né]”‡'PBīāa—ēÆc÷ćžą Ū”ß I«°„9Mˆ¾ wI^•,¹šŗ• ō ŸĶQ5œń«dĻeēą}?4åEėĘÆę‡=2ü¹<м­^ ŸSN Ō]õ~åS Ė»ųÜy_eājjBi±żč×äł@8éö!$ö,tDų4É^üńŌ¾€]Ū»÷Ęą“ »ōÖ35f„ž:gØū!†ÉśAp&ü ī1žq¢óžā;žjōżM~æ’“Qj¬|^lƒä ¼¶Ś ©‘3.ś1 ‰™9 :.ĀWėCSŠ6OŽL+śīP†Ņ]reŚuėŹqƀóynŲK+üĒZMś9gūb„’Œ} T Ќo4ŸU˜Q zƒ× Āżļ „Ūā ~æ *پD]Ł»^Š6KŲl ɳć +-Ć e@š£”å /˜ „†„ĮŸ§…å™öŃŽ»Œž™•ž@šóæ‚“OÅÄqĆži`0ü®Žwł‘–“öą¾|óE‹÷š‘Įš”łæńA?QņxR›ņ›‡óŹļö`½‡ųŪ‚ųįŠöWģ_ōiņźŹńkL š‘ ļŚ–{ī½ųīänˆķ_0ģ!ü*ė¹üźio"źõ¹č²XéŪ}vģd²žń6É-õ}“õy¢õŧõwõ¦÷ņ#š+ļā ģ©čęźģ6źÕļQé&øēÄ,Öåła¢ä˜] ćŻ1įŻ0Čą½£˜āŻåOAžå™!Dåjōžä¹ż„åՔšę²hEč÷ÖŽč…¼éˆ5éK:ķź%©„ė?ź>IIčF/:ē*ų”ēg€gźueĻļIv¬öY^čżüēŠ‹”dÓ’VĆ’«Å}Lņ?HI~ ™L2åAbkö^c „ŒįZ•Ko%š Ą¾[b̆¹§ 5ļ )ŠŁ ģĪĀ Š:Ļ#±p^XžŲ«ėūōęYłłĢ•ų'Ňł E ūŖ›¤ż2~~+ś©\cŪ”Ž„hŅ‹# śŒĻ ¹²ąq§]‡(̤~5ļ=’©yjķš}’±gūķ µ@Ł –‡I’SįÓüh§młĖķ‘ų…Ē?ū?ĖĢńŽ‚IŪ Į Õxļ†÷ ’ķZ³j’Ɋcų` ó2Iš|„ņGš‹õJ¦+ųž¹9ł„–žł‹@ż¢)döc ÄļRź,šÅī°ޤ5ʧu[ź¢ T± źĻ`yµPę ŽEA‘䥐oTMŗeæĪ…O ļöÖžŅc¬żN]’#ā³Qƒį̚B  ¦ \7Öå7¾Ė2b”=‹s æīĒ ‚ k SØ Ȧ< ĖÉ ˜ ø÷q zÖ@ kkå ģÄ Vœ Ćż@H—‘}Ņžž÷_qüł'yüĻåĖż©¤Äž+QļžcS’µ¾Sv§.(wżÓÅśų Nõ ‰“ó.¢bólyóøĮ»ņ >īóä“õ±o§ö,A÷9«ųüō!śDVŒł‘Y–÷A8Gö¢}a÷ U‘śJ1õüē9žŠ³Õ"Bø×埙7Æ}4pūJz žL|åyäŠ5ŠžÕū$&ŗ÷T}Žō=1÷óĄ÷ō ē¦ó÷äóńJĀJļ‰ÜģŽ‡Žė@½‡ģ*bÆģź˜Ä:ķØµ«ń•ęgõ)÷2²+ö,¾÷ōr÷ö ^Żūž„B?wĖ)Š Ō¤9 Hl<#‘ö±©QŻ”Ƙ«zõ DD,…Å«“…YõKŗ:%a3 \©éŃ{ī‘xöū Keh † ĒDGĻ0—n:Å1Y§Ē^Ęŗēå ńst Ū=* 3‰Q ¼ »_äįv“™Ōń Gƒ‰OåGAįés1҂Ʀ?‰ WrJKrS»”Ź»ØU’ߟˆ’#?r_’Ś.Ī—•ņz‡žĀ÷&ūüĖ2śW󜗐WūJG½üp%‘üdB6śsßģ÷;٬÷­¢i÷¤+õü4‚ńóüZļO ńˆ’ōÜĢjöݵU÷…ó$ųqAų~„=ö£µ.ó€:óībŽ—ėN|4츚±ėE63šNÓ³ųuć§ÅēšųAį¾üeTXłpvrł+Jś•gü¾kż„āAżŗūkś,ų°¬ßõ¤G§ō¤»õ7ąö„÷dCnö:Żčöż*ś÷5ä]÷ŗr#ōX ń½ń²…*÷~FžĪj5KY[aĻždŌķĄe ­•n—Zøjž¾ ąF²®‘1ć~rO†ē=ä÷b=o/ĆöŖ<—]S`% (ˆ„~Śź—£›’ ß £Z -g tT ńfCh„’¼Ķ0’wāębۘ4’»āü åüžb’m'éjIŪ{œā$ė‘q—×É ŗIą Rtw Cq5 Hö‘ &¾a°ät“Ōģ°$·õ0)ł 0óa/²7ĮPˆżß UśūW·ųv±ē÷ ?ö¤õŚōŖą•ō“”ŠōŽ«õKö|Ņ*ōH-ńr<ūķ„ß—ė2™£ėuˆHķéżŲī³­ļ8tšu]:šāžśļžzcļ܍Rīģ‰×ģőų뛉 Öņt ‚÷ī·øłdŁ«ųšŪõGø˜ō Rf÷ĻŲHżM1Z |ų€dQ¶aB9 7żåŪżśōqŽżčEa?`Ł$  —‘ ™”B 'ŠԚb”ß@jčÅt^S°Ąō{…\cĢżląPB¢żJ¤Ø÷é²|ōåWhõ|$»ł8H~ż/ÖCž€W:ż ‘‰ūę<¢śņ„ģū&’•žŁĆa±8ī'öR†ˆgĘā(QžyŌQI®āĄ²©1/2å6ōĻ”•P#;č_wÓäžBÉfżg–śūś2kł›#)ösšōąē!óßĖ‚ņ  óēöĪō‰ü?öN¶öó7÷ŃģY÷\öųk™ó¾I&ņÅH/óŠHõIŌæõlćNōø>;óqJķóöWö;„÷ŽAĘõLsoņ’ļoń¢ķŠCī2,ĻšĢ…óˆņĄō9žņ{Mļ~“Øī”Ķ/š ©ńĮαšse/š %nļ Ā„ļ§.Bšęł"ńuš£ļŲÅfī½egģŌæźņcčyČ^ę‰&’ᆳĶŪ–QkÖŃ{Õ!FšŲ»č·Ż?~³ćŗņdźNČń˜ItöF«Vś ¬±ś’U’ųL®÷Qæ€łt[ždlЧČĒ Ś² €›ħ…Lµ.$ą÷HwJIk+Ķļ:!śĮ¬:Ū3ib#ŽĢG³ßēć^įiVĖ Jö®Õ· D6øHüX5ŅöÖģĮó~Ąō.Ęłæ#/Qķ›·ōųu×9 :ž Ņ\õH„Į¹0< øõ© :r³ ©żŲ– ”W=” ÷k Cž?‰ ×Ŗź`Iūæ |†*ď9ÖŗEŖQ3Hž%UBüÉżś]pœōgHyģ(`óääą%Œą„Y>äO`é>Ŗźķ˜Cdń™2ō_BuõéĻóÄƒšš“ąnļ¬UŠļeÅIš²ģ·ņؔöĖ’ūåŚ¹‚ ePe¾ ø; €SC?`?’ČmaׇH"Ī sśŃG a>X ŠžóM ¢y7”Ŗ+” °o ižČŁ2ž>3ŗ+0| čII äģ ēĪ$ ?S‘?c¼<š¾7€ ņwø M,÷Ź%9Šéž¶˜4’5XjkĮ˜ Ņž~óźu-Ćė ōł75ˆ“ ē2fwŌ-E ‰ Ć äSWjĆwmY=“ P›– D®öE0{IlQ Ńb  [ŲŖ—…’’x ™ł1Hó–`åķŠ ķŗaī0Äš„ņcŌLōĀUļõ¦Žö~¢-ųÄ“‘ś‘ļ_žœø-GńŅwėõ²ž’˜ >’’\ŌžP.|2F |Å µńœĆ,‡Łž*Īs)‚" 9$–»ł^¬ā#‡ …ŖßAū™ p¤”€ˆņ€UżŌNÉśä«@ųó¬õµ pņHÄńŁóæĆöĘgų%3ƒ÷8@›÷.õł|c+žĖ“SŠø¼‰"Żę×µö ³ Cåw”/w’K ;¤ yŌ³æ*hė ZXØ|œļ™0ū‰|øŗ$čŹ£Ÿm˜L$ӒŽ ’v9֐%ßP¼üd“łz÷ϵ 󟈱ļ}į›ļ¦ægńŪ7õFA³ś`ėžŽT8,Ņ™f+›šjI¢w  øģåėĄ4‰¼ńüŠ%ś ’śīkp¶d]ÓT:L ö'3 „mźxĻ{h’‡üV¶JśnNŲżµ#č’ÕÅmńS~Lc¬żĆSöÉ%ēšŖńGīI\€ī\v&š‡ņś`×õbųe) ųL€bõ"ī8ó n ōšø¼ö{ˆwł½eƒūÖXsüšū’łž—Ćõ+5ņé”(óVnŁśāU©) %bzg¬ @P®AŲͳ\ ž¢dŠ’ĮXÜ`ø ŌhĘĖ\Ÿ§N’f^ Ēī³w<ŪčażŹÖł IHųhūŪś‘özž‘@ü¤2·ĮėńĀ›"¶™³~xŅ ŖżEzpżpx‚’L¹ lė½Ē†T’ ųˆżwjüé¬^ł.qóóÓäķĢ `éćZwēĆż÷ē#©Kź¤ĆģėŽķ„UHķõŚīō—įļʬķŻĀéÆuięŠdÕä2‘­ćhE–ćŖ’ā&CŁßlßĖĄØąGĒä8§åf|B岉ē~Öźؚķt„üķ.Hgķ×~¼ķo®ī|dLķߌčwłĪą“·)ڽ3ՙŠuÓ`>£ÕP8gÜ$ULćÉ)Čč-ōüēĒöåņ^äŽ8ßć#H(ą~ŻŲF\ߑ|æå5ĢÉģ°Żó[ņ«ų¢Éś¤žśi¶¼ś*“õö¦ĀšnHģ-š%źK¶īē,ßŌåžęZė5Pćņ˜ń±ü ‰R9Ģ r2³^<ķœ  ¶O—¾Ņ2ÉŠ6Z!÷A”#÷Hµ%tw:)äa+|Ŗų'ļn$NK'$—xt$s½$5x*#øJ#Ģxz#ż wšNē*ŃYŻ©?£=N²¬G Éø ’$ į4Į cļL ’mh ]żP ĖnĘ)`Ńv˟¢ żp".lY$cDä#ćéc$@x:'mÄ.'&żŽ#]W¬źtpLŪčW ųģw HÓ¦ mģÄ c-f Ę҉ Č*e³¶Ač‰I§_¾xkøVā4ćdš9Ś’Q䞶 [Æó“‹rķÓęBx…ą”łēßLräĀŽź°Šoń ­łן’±ģķž»[ŗüå ¶śAź4łŹPßś f«A6RĒ Ów ā^.fyņ:«9_įĄ|,1D#§„\'węW$p>TŌ»?Yŗź ™\}ĻŃ=ś"ą ž»Š%Df;źlŽ+{k†ó čӊĀÖV.¦ü¾b¼ų-—ż÷{@ˆ÷ōƒŠų·Ć;żųGtł( Õ.דE?ʃ¬²’·æĮT›K†_¬5|ÆŅN_ ņpvĀųov¬ µr y~ϼFćz’hūķ[{łÜÅxśƒ”\ü•¬ü&ó$üõÕiśĮ”0ōK˜1ķģļ’čq‰4å?^²įlŹßY[˜ßꈘߊ"žąo‰”ćiS©ę,é~@2čnC/ēÉPå‹;k㹨'ćiW䠊ŒęŪę9čK źĪķƒģō@ģK‘zčåĶä\ –ßšs®ŽCV‹āj(]čҬ<ī½9üńļ¦Oõė"6郶ęŽMßåsøźs_īŌŠ›ļ•(ŪšÓv”ń팮ķ-†ĖåęĢą¢ŪܼŁ>/čŁ5C¬Ū® .ÜGCŪßįŁ-ø:Ł1MYŚ8D%ßįüčä@r¦éķ;Wƒļ€SńYq@ņ®^ń“RšŠQńŖkĪó1@Bū”õĻwŃ. ©ÆWØTĮĮŽråżćn“Š«H› )¢UÓxå1A”ĒC@=Ę×m՛$XšGfSü׈žńvPķ łŁģlLžķe—KķT2ź`$é1ˆŁė°ŁūšÅ[čöLŸüœ£’\؋Šü•µœ¾,„– $›rH½ ›Ų‰Č$Dŗ‹ßļĮ9Ē5Mć_󝚙ó„bį“ŹQ.Ģ[ńć^õ„ 4C CL4ø^»ĀOž’ænšNBäŻ>sŽŗķņŽa¢¾ć+véąīiģl9¬ģ¦ŗūė6å:ėc­géāt„čöĪŹźV²ė. Tģšc£łī;šTī?ŠS1¾Ź±½ÖS5§ų÷Qõ "Hµ·ńĘą)žõ “—œ>„c²å¶ ŠĖm + ƒ“&Éč*kŃ)b±·#?†³Õ)ÆäQģ­’”U3ĒšĄź/ ­·6 (ÕvĶyĖßIś摳ģųź%–4 Ŗh±k†·ūöŒö¤mC÷ėEūWy:ž«;ķü8©ŽśžÅÖū¹ž×ó ŠCˆĮę@f} F×Ü=1O’nż™tĮu`i©Ē+Üśķ’} X1äžw6/ū½å–óīoaė^Š@ꔫ)ē®y`č ŁēēKż„鬤yėF„īŽš3ŁFņź0fųś¦æüŌ¾ż²X³ū°Ėrū·eźż 'ŹŹ÷XUŁLh <a5ų”īĒDłęžL×åx—źŹ*bļžŠ“ņŌ€Oō tc÷R2ŁžūĮ „"Sżچł,žĒł¤+MüāįĄo÷> ˜8]sūæö™÷WĢųæ›/üZd}%bo’—ŁüOž^ś«åųĢīŸ÷ŚŲœłs{k’Yגļß ˆ ģ ĀIoƒĆųŚ 01ó9å¦Ųæ;LLąä— Éų72| ]Ή ž… ”‘‘xŌŻ 1ØŽ`<Ŗӈ¾? leœZŹĄ•{bϳ«ą Œ„厄!’©V·śX öĪ*tóĢįņ]P‘õ‡ŖÓö„n õå HōĒŖöIسżĘį\†—„ä|ŲĘĶ’ōšūLĔ÷vs»÷čŌ°÷Čč÷‚Ū¼õ&š”ń‡üžńŃØ“öJ% žēĀŖ®®Kē.żx臿qĆŠ’˜!lĻ©’aįą¢×;GJ|żR“·ųĢBš"øAąi5Ņ“ixĢXĄdε˜Õ†œ?ߗK>é8ķŸóŲTś° püŸĄęż:{ĻżČxIżŚÓSüI@üž&ĢžĶ5åų" `¹jėĮX \Į÷‘ž oi„ĆflZX$’Œś+ijœ.Sé‰+ÄdÕ'™(a'ģˆ* K{,ę9Ŗ,üė’-š,`0Šž1LH/’ē(%©7ėaŒSŌ™+ é ģ-W˜ -B,Æ4.6(6?0p" [õ(|³)ń>W%&6"<ž¼#Č÷Ļ$ņM}&"78*<2G,żü+'$Ū$įMŸmԘ›?„+ZP~UŖ “äI?ā¹/„»§„]l)ę” G5’÷Ī “’ŪmÆ NI@Žpž°0Jõ¶.vštpMń®Q󋿏ōž—_ōū‘éō؟aųrtüž"ā^T’:Ėüż;N’ęįzž–Ÿµž,5R’õM†|p”Ź’ÜäūłšPöąž‹šE3Źīė“š“łOņé†õ'įvö=,Fō4 Žļ:ŻénįĮč ¹xģģˆķÉōŒķŠšISóDw"õćé]öBžyō²­ńay§ńyq8óĢéó…“°ń«F>ņÅĀĄńŌ„ļĮ³āļł¾Jņśef÷{”ēżæ­¤Ļ— Īiē,nń[.X!×ņO!x¦2:rÆĪŌģIqéøÓ³óż•GmÓ£{ ž¼Š{“É^’鄇 ?Ž£Ģn,ф6cužFÆż9æņż…Oż5؊łĢģõĢū‘ńQĖšWtöŹÆż×ėFō ģ‰Mgö ¬OķG~6ö{õA —^%Ģo=Em"¤¹Į%"ģ#9¬×_ļ+$=‚ ŻWÖ*ד-~s¤·U£Õ’ŠĮģÜ€|F īad1³h±žÖ ü“|°ū•ķižF|92c¤Fłź\ī> åäģ“PąEVįąĶ‡ō⾕Iå•fź˜Ćń2 ö©bņhP$ģmThé&„ēż8ēNv_ģ‘oxńź8żóāaßń·˜ļs­·š“Šśģj qŽGSō£gdV(mŸ 9é÷˜AG~leāˆÓMĢOZ³¢Ū˜ć¼x-õiHēåõ¾÷qBńāæ+šHOöšÆń.KoõXdł;\ŠūŅ*’ķę ŽõĘę•eüĻü #|d’Šŗ’ü’Išų5Ä ÷õ{łgĒI’ƹ‹ "Ż"K#Åœn6Ų7Oźs”i¬ü…ķOür;•ś·Ų׳ęO*śÓśŌśćY²÷ t’ń¢ŃĖźrų1ąjĖ”ÖT?Ņ£ÅŃ;O·Ņ 7ĻŌx ŁŌ۟Ü7ØųŻ ę3āŅ WéųĢļŻc†šĶķ+Ł®ģ:7‘ķń…}ī‘+Mģ—5!č;Så3{÷įÕ¾ßŖéŲčNģҶńÜŃKb²ÓXDmÓ½>ØŌmŪĮ·¶ć¬ ˜čtÜ6äŌÕße0ąŒ€»ÜżÖš4=Õ1ž×YČĢŚP\ ܁‚ĆŽxßł5(Ż¢݇k1į$õ@äœŅUęU qėRųķA”ÕķÉ £ģ—£ģ^ .ģßLģ¦ƒoļ*˜;órä(ö”mrõo‡ õ ’õ½Å|ö ’—ł7\×'d “4/®ģcÄēĄP?”?нÆ+÷…ސjď?‡ėy®E‹Ė)Œ&„ €²[¤mˆšäēFY˜ Gä¤Č ƒömüJŲ{ųĄ&ŒųÜ,ųœÕ1õv„Ųī7×ķœńuAü¬{i©+{ Ö<’żæžĪ¶ e,y »ü̳” T$K§S+TV¢šW„j”yŠż ?šćÓ.e0­¢É°Si“K·Š¢¤žõū``6÷8Ē ņšZ?šö'7ėw+żÜw”χ…~ĶEÆ Ńé9€ÖĒøŚwN?Ż!ō©ąŗOę`O~źDśķé%IŸę¬öäķĀ‚åśSä$ćę=Āļq_łH–1žĪØČ —[%Õ³GBģ Š·Éƒ¢);¹ 'A‚TPčŖŃ •ą, ZŸ§®ģVßyi? ZŹN!&ō"Aģc!Ę(Ó!ß ažc p9‹śŚxå»Ū".Ÿˆæ° „@ .Ń“ūŁ•Fū½˜ó÷9£÷ė8żų;Yøż÷ņH¬V2č“Ōó“Œūh0³o°Ü9Ż-5t” ˆW`ü­ƒęi$ρÕ$ĆøŖ!«:oÕń)Ö£ šb^TĖ› Č÷i W† š®É ¾…UIĆWżfć{śĀBõ Åāņ3”öä…ū‰;ü:›ūŽ53žsx1ļG;­8 „Ē”|_ UūüĢöH'b9TĘ!f¾H ÆgIüŅģ¢ūx#›0n=xŁ·vkŗ¢–ž!TŽWŠ"#³SGźgc$jøģ› vyŅ6ķ2»’¬śž!™’šė!—[#‰ģĒė7Ńm¤Ņ Gā€Ē'¢ ĘVt Ģ30<Ś=»Sgƒ\ÅL Ŗ3Aä[ø˜&_č½,nņ?¹Ž®AQg÷’s‘(^ū[äš%Ī%›ž$HYž²?ķP®žĄ 3D ÜEźq ©A"³\cŹōž™g[ż>=’¾W³¶; z ’ČFüŅ÷Ļž®(ÜC™ō nˆÅ ©…ѕās¾¤3¤u il Ń»”ńņPūGĪ’ī\ūĻé䩆ńpTšżš“l޾Z ˆYž*ūÖ {¼l3ÜóJżŁ÷C.ń£='ļ¢Bµš„BĖó·`źõz ’ģź?ūßŌZÉŪ•é»āx»~é ›jš«'ōßõζōäõ*ÖūóķYQń(ļóĢųåj„öXgSņ<ķ•öu§Äżįo“]ȑųqĮ1ķkœ#čst¬īĒėü—,ē ła<»‘„ļĆÕ]NröōéŪÖAź V_ī ?ēp (l]Ŗ6HŒ’æøĢłģü:ņž½Ėż·w’ažė[|žˆR\® Q?‚ßż;٤'Ż®;B&ó'²Ju,†$'’ÆyŅü–"ł¶ś“;’±t †#ŌĻ­ż.üóųåå£÷!Ō÷¢›õ®ZŻīøżéȌyėĖ׋ķXšEķ ²óÜ(aõt½?ōĻ0ńƒnņØ=ī.Õ|å0"–ąOŽįßaĆėßT®‰ą}«}ć—"ŠćõĀv䎽ėź-'“šĻV?ņ\xń÷SńīĄ!ņś›ņ×/TóõĒŲ†öz•ū†+DśŠ‚1÷ł?Čźä ‹ŻŠę“ÕÜģ ŌcW5Ų7(࿤ČęLęė;µæė«»²äµĻƒßaP}įĖõwŻ.=†Ļ`"ĖżLŽĶś «ÕŅPą×‘]č=Éģęßgó)Ł_ū$$§ü²Œ“ū©–Ōśw*¬ł$ńØļ•Ļ鏜„ėūŗåņ1rūń’yg„¼ĢĮxŻÕ4ŪŌ$rÖ&Ö'O&+=$!Ägž ‘m"2’4%Č`¢(Pć%té…#:£Ų z°ŻŽ8ėM‚G»t¤i7ø½Zń¬óąQ>m€õ Dķąšu;ü’Ģrž¦d‘¬ØœD n¤p×Ƀ[*^ä.+km*K “å’#¤v "‡ŪśʰVÆ#\6‡.@w¦7ń±)7U2-PNŁ%̦ƒ ¹3ŁQjf Žxx&‡  ‡¢SJH3VłiFŗ„’,ć÷¼ąņąØ4ōū(÷ePŲś7/ł!Ļ ».4¾ “ę‰ō)õėe+!ęé ēN(¾ķhUæņlDü `N„W Ųšæ§”€ś–möÆ^$ś$šćżkŽęņī£ÓšwhÉ ’3«½üJ RsM|e_%oƒ±,š’-ģ~ģ(Į»‚˜“§™ŁÖ *hØ Ü‰P OÜLtڱ'Äõøė=樵ɟķ`_m”ŁM żęł 8I †f"MUxWļ mõŁÕ·\“ļ߬1ŗuŸŒ7“É< T‚@ ½ ūÕ/ |6WĪJšlJ AīĖ ±g ģčѱ³øę?:a[ĒžrÜŅügęś6A÷ @°ņõ¾•ņž#ņŠö>īŖ öźĀYꞶß2–ŲšąÜ·Čīą2ŅfŽŁ\Śr9ĒŻ+'ć@£gä³ā[ä]Q-ź¢ą$ī;œŠķ€A?ēæ™ß ŗ8܈ɩؾƒS×öåūÓ#;TÓ5©ĆŁPż™ŽĮsüŻė8ÕčūĻ2†¢Ń@sÖR“ŁÜQ”ćķɟń-÷_Lš—gūć4I Żņ‚Ū|œ؜WrŚ8ßą™ĄčāTžųēZrź<±RåĢ[lŁ…•Óœ‹¢Ō:­2ŁČ$Ž2å ztģö ī=g*ļ.ņ”ėé>źsxæģKj_ņ×Ī÷ƒśå5Kł’üśśĖŠų‚Eõš7ĻtōÜåŒJI *9 ’Źŗ„#Wś'¬|¾±ōś„äftH ś’WįüSĒĀkm!ž† #r¦7+‰×²ŹuiŃļ Rqs“  śēžW÷ć3ˆó²ÅŅńWhąš,ż«ļ˜ó ĪĖżœ§( ĘÅŹKŖZH»Y‚bOśÜ~‚>”Yꦛ“¤‚õōčækć_ õ—‘™ÄjĻŪ¶?€ĘŖAÓPnō"wż+?2ĄĀķęķe’Õć™üQ÷Š/«õ£Ł9óų-;é8\…ą©HnäŲzēņę荼Vģ{¤ąķƑ"ķņœ•ķōĮvģ&‡äčŗ×ÜĢŽśŁA,jÜŅS¾į»åŒģ äū}Ė„…8^®×Č{–»Œī’śūŒ@6Ż ™l ¦ś Ąe™ÅYEZūõŠ‹ńč@ģķ=ŌŃų»ICŃøK`ėMߕ%Ńėż(UŃ-(ƅ¹!°^!Ä H:44„Ņ~ŁĪk“¾ĘØ ­É ]č" ¶~jå,4³_üŲGœųœĒIśŗłōąņCĶNļ節ī›bŗņ~x|ų¬ˆ·÷_ŖCż7{tyćō „-“ ×#* ¶2S1x’ 3qųø»ˆłqć ų™ł®•’×>’ ĻŲ K˜ż źBö ŹäĄeįŌśJ Źó»Dūš0ūiļ©č2ģ~O€ķ 4$õĒ×Oū·ÆūŖ†‹ö~;ų²źśs-ˆS’Ecż¶ »ą]ģėĶž>ścr£ė)Lējp“įØ0·ßĮ«Xę&5–ī=ōę õ ļ_ó7]Üī¶:żōóÄ<ņŽyķŪ×(ķŹJMóĶ ū!ē–ˆŒröњ!õ?QԱͭ„0żZ Mą_ ^Ģū3żŗ£Xųc*Éšó˜Jō(l¼ųiF½ż3-ōż£æ-J[ EO… ڊŌ­#®’ōŪ’äµJ ōņD ·W ‡>N¦čĄŸ!Æ4ŲX>óvÓ «Ć³ĪįožŒÜ=X 3“ąe-ØÉé‡Tü”!ümŃ»ū=8’“Āż˜[€łÓõ±÷!¹Ķł¦ŗ™ž$݃’<²wśLˆ©ņ(=ö‡!aœ²F œ×ļ p˜‘z +»¦±¹ų Äū=b®ŁŪŚŃ r’š¼å’0 E·×‰Ź’ †ĻG n4Q >1±ś…d>óö[2ģb¼Īåfččæ=ņšć/Šš@kõ(…‡śž9ś”ˆoųVšžń®ōå"3*ąļä0ķ?äācLķ—śr~2ż0j;ūsģBdž†eCށ V‡ų ­OU ÜwŚžži ƾ$¢4llt?$Ō tłüÜŁ :„„›ŽG+ōŒó3–œŻ8ó»/ĢńŹ#?Ų~‚mVšY-ō…Æ’YžŸ “5ŲČ #Z²!½ ‰0OĄŪ†Ø!hD×G,śmiķŚ"Ņmˆ#qCXl–!Ļ?"„Nbłk0Į0ń7"„ķ:$;” c¶#^½,ĪÕ-ę“O)&®ˆ A)BĒhZ ā…#'’S}§ł*™nóH’ŁņĒ ÷ß1¾’†¦! °r¼ 1Ą¼ ¾j” Żhég(żßį’äŠßżyzūh%¾÷ž¾ä÷Į”ł?Ö<łä†¤ü41Œž*œb©ąĢƒSŌu2 (Ą~a¬¤Óҹ÷„ŸŖū,AöūjPyõčź°ļ.̟źÅļčīćČdė8H(ļŹ{™ņ Ąēņz\#ė¦ānĮ'ÜįwĖßO$éēu3䔦ęįą„ģŌwöciŸ’iõt€\¶~’īI‚ł‡łUū\ūĄ0.öb‰&öč»1śS‚,÷SŗĀõVĪėų8Dˆś{ɍ ].(8c„£pü L=]šĪ;ä<ōd‰L)t‰¤üŠČP*ū/ ǐ „óŻūxqłķŏņ3—ół¹ī±Å<šd’FłN1"f7Ž$2‹Æ†BėēŃX(a}d«ęmüˆč\üN ^[””ö . oŪ£ D.1ń=9™ ‡šć Ed¬œß`äP#dĖ%Fo 'Ӑi*Óe0 ĄŖ›ģz—I• ŪWż’¾iSӈŁaāńų ’ģN)ž’×Vøƒö眿ļ¼ėšōžO2ń椣ģĀM”ōQ¬šł¦ä¶e£= ä§žMķ ź^õ÷åIü0äĪǤäõIœē >Ķźń qó‘Ņ śĖæäūTēWóæKėģ`E÷ģ¹ÖHóø īėó•ė²č¾ōøÖā’ēĻūKāźųSņ’ ”łtĆ7[IĒ·žQx… ·lū*¼6ļh|é„é™õ²"żFUN P"Ū ĄN}ĆÄpe–Z2Už..D’3hÕüiŠūĆFŃżi ŁT<£ĻŁŽ 頻,»å&°B8:µµT Žx\ DĘpƒ'üŽÕö]ū¶A@šüßīVÕ.RąRģ2| e0ļ@Fśŗ·ŒīX“GęąačŽl}čĘv čM%āå'GŗāwēwŲ€ßŸŁµsĀۜ2§ą!²Rßh×ßMfyŻõ¬QŽŽuóē§_ėćJvģqƒšä`–¬ēBŒˆéŌ·ä",ąž&Kįå}/éfĻlék+,ć’[Zą ĪįŪR·å¼@nęÜXEßE‘Ō/pĢŁčĪDNŽĶƒ͊).×üeśÕȕ×XįѝåČL“ŹĘšN*הā+ևńėĻ s)ŪęC³įhČcå_5éVŠēČ_ĮßĪŻ „ēżäó*Ž(ļIVbń@¦ńZzRń³fļ1ćō“SóšÜ¦ō·,iöoOGļN ķcŖ¼ėśĻ’õrŹX÷9æśHōˆhÄūW˜ §ev©Š­šhrÅR0PrčcųŒ3 0G}NFK`Å cĢķ ¼‹į•* tĘȽyŚÅ|Ś4cFó®2ŽĘrÉĮ’Bšµ‹üeTŽöBčń»Õź¶]źķõTņ#-Ÿżpz"‘7Š ن£XŁ(1Ś/ ³ 7µ³ ‹Żf’®£” Ā÷,ųüHõĒń8’ʾ62³›t™Ś{żL˜÷ļūFńXFōłHŗ ’E[łuH÷į.īó®Õõ)]‡ņBsXäĄÜ¬×õ‹ן»ÜwkÖJĖrŅŽœ×!ŒĮ×)›ŲžšÜl8ŅŪ¶[ą3īL £3Gsž>FųؘPöŪĖkłĖ¦.Ü yył ®ū\źļTߝd\“c 1OøéR°č@m~ī\™­] ŚĀ ž³=Żų–¢pōš+B÷qxŠŲ£ss ōŹé ū-¼‡'½éö:B!œZ 9Jžr1UEĢ/'†¹ėIūŹĢ‡ ūą®hZ¤µéw PF 8u Ī:“(?~R6° -HŌ Rˆź—0»Ķš¾qhł'!­³ę¾ÜĮbŅUź  ~Ņ•6ߚ 8äŖ”ŗ’U³ ›/C Ąiįq°¬÷АnD'žjhßļśh±)*…ƒ‰ õ‰ü ½€’F1žēn =b6’ )ų_H{’ÅŹĶś2é ®S¢ąŁ†gMłTÆ„üp’LŽéż›&ģSanż$Wb8żFķĀTMj ź,nž„łóHŒõņ«ėL YēĀ e÷v½nbYšæ4ĒX{ž5ć‘ūrō[óBło&äśrżŹUrł~ düĀb3ö'é~ł6*­ōójčDmģL˜¼ńĪīpļļI'īō8÷Z Žõ,Y(ņ¹Öķ…k­č”c»åѓė±ķšnŗŻīĻ”õeh,ūßIrżē«ņu-(é~&źŻßTēi%Æō.^vÜuŖæŽ>Ÿ āƒ-ż°büc¼ŠÉCš jy H=5F–ĻVU™ƒ2Ō”J=ŁÓ} ›—ŒČ–ūfNć’ó¢ĮRļņU*üżč „ z¶>k”ž3‡/+d L§ĶYÆ;Šś")­ ÄØ Č„H.3»)šALšś2Ęņļ3öģ:*męž·ßAĮÜŁučā×£WįķSč½üļD.ķČ÷MļIföŃśłó|Øź„Käžģ©×›ģHĻ“lZĢXaLüŁbĪptk֍ ÓČŽbĪ~'jĻē”%ŪłĖšįźĖ:Żū6DŁž’6čnŚįź\°Äķé2ƒū‰č€ŁCSž•žĢ ¦Ŗis nźŌ’Ōf>’ģ5÷B ś-fš’›–Qüįūŗ®d¬’ „{ö"GĮW SEĆ u9V)–3O&£1!$#n*«½É¶?żtӚ†P–łT@(7Ä €ĖōKˆMö–’OАśvÄ9łzŽäšFĘ‘QėcgB³é RĖEØ7 ö'U‹Ś+>ĪąŒ" i]g e! „‘XC1“Ėg2,ʦ#×NG 3Œ*=Iģ2ŅM8×#Ģ+y¾õ)ĆÖĻ'óŃģĮ%Vh ÖuołŅŪ‘ō0#ZÅ<34$Ü¢‰į¶"čL’ŠGņsKłŃ°Č’ ČeOŖ“0¢ āŠōĢŽžØ$ēęPńāWpéµ`>ėĻ/ō«•\†Ŗ½ £ę*\€_ž¢ƒ’õ¾KŽņšńõĖ3čAŻ‚?§ż(6į:" ,5äŃ`ÕG°&bŠūē§3ēiĮ„#¾n )ķn!(+gØ„ˆW æ?[“÷żĻšżĘ ņף")!/!t£%ŻŚŖČP~vįŠ*żGP=§|“ Q© /”/8 —:ķ äšÕUUr®é+±f÷yéMĻ‹^üųšt64 _wÉ R=\ Š$ž$:Ź÷}’dAzłśÄ]ķ¢ōéļ»üżóģƒłāšEōgČźucófb—õtMĢźŸÆäęlՔźÉGźN–ÜęØĪČęAe6ŽÅŖÜézŻsŖßJśå×ö-ćÓomEÜ5Īzźvļī潂šŚw Vӑ§ŸŲ\ ±āųRĶŌ;ʏÖŅ7Üį_‡vŽåVŪä|»Lį-·,ŌŪG¾Ņ+±ĢĒ)£Ņ\õё@cŚŚR„źöļĖėÄŃßālĪ_yįĆXGsŅśÕöŪ½l’Ś]x[ād˜ōżģĀĆ"ńĪ#Tķ²Ķ”ÜҵRÖ՞Ś&·é½feé¤ļ›ķ5ūy,Öžū[ŁõößEčŌRæąb§čļMŚżžNd²%*‹†Z qCo~É/׃ūĄ«’óŃēņ Ėō˜Wüœ"Ō’„—] +ÅŃńÅKčč)-®ąÄ8 Ļ^rū \ńŃå°–©óI `ŠÄ½¢ļ>v³±¬-rA”xš óŒŃa„[Ą»£ūą}ū¢Wń ½?ī§4¢ūÅp×|f‘Ōr.r¤ÕŻšRÆ7I)Ę«ż§ Ŗč¼Ē ŒkČ“ōŗ™łb¹”7ŻÅ ŃNnķ°ž_ļ‹ £¾ Ń6 D¬Ā’Łb«©+”䠟G™R’uč÷tņćÅĪ/Ł ߛ«ZåĖŠŻå5źģ Ię÷ᇂuå&ė”ā /©ŲŸ'Ū„ļ£ąōžOź1ßģÆ41ķCĄČ«&[ •ņūū‘ ‚ź,<źóÄnźŅWóŌĒtśM- Aš% SŲN{N?'ļŹ ųńwt½#…ÆW%zį6m/ńyY3 ö2ر‡&ŁĪ я •m"”ӌ’Ų›:iAJ(Ėqõ€‹)üęYÉąĻčćśČ]“ņż õ†÷į7÷ó̹äRzķæł8īADéōe’’ņn@Åģ•ŃŃ’rš £6Ģ{ŹXŽ|ļ ‰„‘2Ø- åå{ļ‚ł˜ÉążN°\zBZĄ›Ųā†%†f¾dEåS©œ±ļīĒśeķJÄŖ÷ņÆ%īÕŻ_įµÓŻāFų1ćLh÷`ņ£źµ“źŽjģČģEłųV­y•œgŗ3÷6Ž÷`Ź$÷āƒł’0%ÅCa’v§ź¾b„ «\ćĒĘūZ½0žź!eRņ{„pcŒŗÉ#‹P 6ķG-Qō_™į‘’µwó=6ōóčAūVšŚ†1¦)łłš‰Rjä­!ŌJ'\•%޼"ī ¬Cī§æ&˜ģž"ŸqŁ'V‚!Hļߨ8"¤ß"ØŲNb˜°’)æÖ¶&bVF 0ŠU\eģš'°ćˆ* ĮÕW»ę؃‹¶"AX;ŗ‹%lł=10ńžś5 Ā"ļŖRA8f6ųGmzö­ŠĶųĀBfż¾!Kū£>nüo›(HؕŸ>Y‰ØKø ¤ŗ ’”x+”MĢūÆŻ’|žø°čo > Ÿ˜—IĀžšåōōÜ迉Įæ÷) ±ĆZ·bœęßgS‘§ "ƒżšßĒłCLIīņīčk})ėV+*ļI9īöµkTń§Ū‰šĮŌģvhųnķ ż+œ ż”™÷'¹®ńž•,ź­ī–éuaČė̬ī%ˆ(JiG8Žssįż ą•ĮŸ$¹ L„Ä}Ö,…ku7‚ū¶jō2–ųVQš’ę&q PõIuw ktJœ¾$†Ļ¢( TŠ1«,ŚrEū’ßĒ“d«ĀH_Œ®A Īkr Įy”Ģf² )„2•0zžrū¦Zkł›—±ųlņģķ±vEī•2`ėźsöęĻnū8 ©ōW‹Žņ”ļ—‚Ćī-±Žķņ»FźHōüŒ‘ū8µƒĢųbāž¦õłżūČY±¢³VDī  ‹‰­r  ČłœEīü¢\åē‘­ <!Ų^ÅłŻū,×$īV ­źÜ=oäH7äroØ÷ź°}Öõ§˜0īŁĻ³čr:;鯟Zņā­š»ööœŸ 0t~b³·ŸL’˜·śs²ø’q_æļbTzģ>0/’]8‹¤µś|óŲśĄšö®¬±ōÜĮų ›Õü’fļžC— č=`é¶Ė¦ÕŖ<Ü`źlŌõš‚żśŗ„*g13;² €E " !„µEģD’“:j,4f ¶$óV|żŸH?'Ā’ˆZNG"Ö.³&Āö4O8šIĒ»n ŃwÄqۘ ŗCļ‰$&]ł 2@Ł »ķī«SM v€oR’¾ųLģT‡Ż­ÓpŁJnį€dÄēūŖķė‚ū¼ķÄ:€åi÷(ė¹äļwŪó¶GōÅŚžīYĒ­ņ=4Qš;Į&ļ‰-ču9ŠēŌhZ߯~AŃ0ü׎ń÷&ݽŪå¬uß’6]č9ņ°ņ“źYė»YJꙄīI€ńz7æģøśš¹Üźjr?ā×ø&āƒ„§ŪGń¦ą–,Įߔ² Ō¼Č-#Ō!8DŠ#`ɐŽČĻߌ›Õ|åuŠž Ū¼(mėQ–å’¤ęvzŌćJ­¶Ü×± Ķ&C<Ī”LŽŽéMēāŹ>†Ś¶Owć#]Ż”BŌŻpé ź •ī­Ō”ļć¾Mś#h ’tµß÷}Vzųä.-ļčÕ A7#iĶ•śōs³SĮ¢śĖZł›ĢõųŒ“ļ·Ģģ$cXõ2ąša‘“š‘)ņŠŁ…2ąu%»ńÜ8›O)#½y‡‰ĶSĆķwĆŃ‹²½Nąž‡<¹&R,aj(kR~ Iøæ\ĻKĀå ¢]Ż £¾ūPµłeż>õ¬ü›ļ°ÖŪėė)wē# `ń•Ķłč·‰é×I2ņ)Lżö~ųsD%īe÷济ėĘÆŖā æš?Õ#õEåļFKžöŪįWœJč ÷‡ķ0özpš<÷q÷ūLeŻ^ß }A9ņ+nżķDTšń¹›ļŽ[ģķĄ°Źļó•HėYOą¢č¶Ń„p‚ŽV­čē ÅÆåBŻvįAuLÕ X"Śt“Ķåč“?ŁĶ8ņÕAƒ‘ŁĻV²āŹŁvŚ~4ćŽ3zŽ ,ļāńˆ’ųćcM]9łōöüų^žźa{žŽCļŖļ¢ėĶL—č/ģ@ł ”^Pæ Ņ‹÷7“{yø>)•?R„ŌFūd“rtyģ‰E)•üG'Õ/ Õ.)“]Ļ,3ŹŲĆ't)żÉ \%׊“Ž8„@­pqäĒߤr%8ū=‹aūŃķūō1Ģ÷H©¢pž»»üsLŸ½Q¢¦N ’ZQO¾Ÿ÷·³Oaƒš²óö•$ÖįDc Ō ‡¤£ņ )ąÖµ}& åĆ)÷%Įt‚bžžĻ0S\\ L/˜æÜÖ÷Éčö yöö†1ī4o»õ¹=ł„†ż²Ć6żFåų’²#łłš|łžćk„ …ćq ¬Ę„ ¼õĒ#•ƒĶ9b÷¬)Ēų¼†ū£¶—śš=[~lWO€J,€ (Œ Ÿ¹G.ŌSłŖ* U£ŠEšŸÉēL+č ²ćj½³ŅĀATH6"œ¦øač÷v év×|K ¹S’Į¼Ź‘>ŽmkĆ#–xĻŌk`É“ Å»+a¢Ŗ1Ofōķ¾ ¾ŽeC. 96½%“z #Txƒ9;Ž:.ęŃh* l µIζČ/¹{r¬lĢ@Ņ÷ēk8uo!ü 蒾hG ś6ķ]·/^› uœģś!Κś Å<žœĻżĻ‹ÄśŽ}łŸ‡žńģō6źµĪ—ļŒ°{š_óėż'ž€ó×Å\ļƞ*źF%š` ói’õ4oĖų°‡Ž÷ėIõłDƳžoū’"ś›ģÖņ'lsźßz]é²źé‡1¼ö±`Rõ +‡ņåžtńĢåbM™š®œ9ōäWtńĮEÜī<÷ ҧhžjk󄽽ļnĘ!ģbf—ėö8ē'·éqw;ćyĘ„ę<¹Øóe5ü>#öóĘātō³łęé čƒUīčÕĪ+ń™õ"óäjģśœĪ#üL 6"¶ /|RćŹՋ=BlZ[÷ā |P4–B_ē“蛯ąĘ+“X$4e­r^cŪ5 Ū÷Š{ĢČį©Ę*Åā«,ņ?Ӗ#¾ŠäĆø Eö, Ėē* .& Ś>ūĄåš’£?õĶ1oł|ÕĪņz^ō %ļ)cīÜpźkŅšžę+ńn>xė”ĖĢź©‡‚ņ0lś”sž˜‰{ōmH”ų\ŪśK3ņļ •õ©żiżņńvżķxšśˆÓżOfx÷;dūķ˜ÜūvÄć÷*²Ął!™ü+ū‚’§ņ¼ū/¦Ó÷„Ėčõc=sś TōcĢdśy|»ūk-æżķ¶UšPm%å8‘é=RźˆPaėEććü 0čõü(äŁ`éå‚fÜŻŃdŻ&oÜP¹\ß 2įĘžÜQcŹŽTė•ŽĮ€QčLįąŃīXd ł3é<üó:$üōóĻ ą«h „‘YÓÖž£Ń ų~Īłp&Śżpj‡.žÄØeŚķ: ŻÕDV&óoPķÉ ¶’«Lc£¹?x0ŁĪ+ų]æk¢¼—„\® Ģrź’1ĆaH bClŒĆßZņ’U÷š›ž†ķxŗęō!’aüc!žž$1±÷‚(žōź&¦÷!†š÷†Ę$ūĄ‘ü„M±½ŖJ ь „yY ‘Vßśpo,éuū śä D2 ß®Ģ'g{))V6™>(<ø’pÖ4öÉÆ©m¾; ·-™8Ō~wµųó‰Dū·{7³Bežoä”÷=ńBń»lå ā9馜fśė1¢æń ĢŌÉż,ڵ[C¦ÆzūcTöÆ4śOmśńŚøņēvQžĆm®!{¾żKT[ūĻÕašƒšHa;õYĀśFśƒžŒ“?Ż8<;1Ęśt`NīQa„ū”k# c¢¼B€®Ób/McI’ Ą¾Iš²Šé ß źŪHnA¾ !’Į–aŗ!žµxµó[Mwg._ öm~»Ā; Ė95ÜßĮ_˜Įg›’ĒĮčį¾3æ˜ #Š©Ņö»čÉō÷¢ęņˆ” Ź ākIõ:hõ±Åżé«|:­éé§ éː;Ģšż§æs’n9÷„X(ķ‰œōl’jßś‰bŻ÷}Ėäóä ŁņĻ–•ēOĀĪā¬õŚįbŹ»ļž ķģ$ń._›ķ¢šó›0’żPńń„÷š§¬wģ©Ģśķ¹šūģ^é?Œ,źDĒčwuĘć6žG惈;Ų‘ģĒÜ+q«Ž^ø”ą&įštÕ<ā`ø…źk¾‰ā˜®•į_Teė:;ų UjóM¢ēÄH„ōbҧń*&źšĪoęŗēÓÜ>Ktއ߁ļ„åHū‰B÷4ń<ų¶ŪšģńĪšK‹IóN+õ5&4õl”•éqĪ9Ė J_hU}ņÆŠ’¤ø ū0CÄ’ČūĄā 08½e)xR€÷ź¹#ōc1łłŸMį ¦ ĆŒe·&[i~?ĖųŪw“Ü 59Ķ īQ’[üöż5ļõ/ł#TĆ÷ŌīūņMüū”čž”Žčć3é`«;žĖuņ‘JQó…#ķY:źä8ń. ōÕĄ`ķ«@Héń|ķSÆ„łn×Pü«ÜÕü)Gū'×Ćö ł€Cö7hDś3§&ś%Ÿ§ĆļÆ a¼ūTśźfķśühTżĒ÷(ųŒtŪž5m k70ĢiüņAč÷œœx’.¶zl*`ÕßõA1ū#YhūäōĘņā!‰õHĆ4Nģ '0é+qVźśŪƒč8™įNiåPfč¹—å/ŁZįäßÜŠ ⯌ŲGł±Ÿ7ž«c»O«Y/Õžcv/%\ų+–¶īņ\ič(…镽šy«1ņ£v²õ>Ńēų0q`üŃqėń'æ)ķ·żø2$ÆĢJš yN!cŗsg£eˆ‚½2Ÿõ­m꿉Ÿėų < łļ$ö^į ņL€Ēõ\m­ōź ļļoŸź”†ŹšW)ņ¼ ņ yņ.Ę/ģ©‘óčūŽ“ē®GåüŚüą½ ßsßźäĒuøģ°-Źõ©_°łĶŽ’V±%9E6!óÉIJö’Ī…óŠŅłÖ?lłn©•’ŗ> ‰XG ŽM89 A­ äņ®~gļ6_±čłŸ ēĶĪŠī7Ų°ėt"嚱ļļ“¾Łł¬3§Ųż7ę üĮō‰“W ꄨ AŃĮ–@Œ ×_ųŃžēż'×ļ²4³ę/į0ī•%ó«Õ©õ°ö.k¹žHc<hšlƋ›žLUeżŸd²ł2Óś}āóRrüšń_āłäVńūS.łiŽ™žq<?ĪŌ¾ ķ e.Œb ĄĪ8ŗńõ˜³®ōŠ"% bKō=;įäč’ÓŲ„ó w¢˜ł7„ž g^Ń8Z ¬IJ ƒ„ćlYøūz]Aūܼ½^w ‚ŃV – ¹< r(ųčō[4›Ž3®4¶ ‡ķ·Ä™“ šʗ’(7›’ī­Mófł•õņzqE*ŖSéS •Aņ»Ņ’_‰Z Qś„ vŹ›•Ģ¢z,A9č0üóHŽų$ś$õ_ü”œzų ±ńĶöuņR‘¬÷DĀ^¶0žŁG ülšŃüŁ’ƒC­ż)¬śÉÓSžIś)1ģĄ_źč«Žœņ6ąIžPčÕžÕ~žś©õ)Āvņ˜¼Bō"Õ²štżzõ’;Jł£Z*üe«÷įékćaģvb/ō²“ęö a÷¹“łØĘ×Å4 ±ąé 2h?ᆿ^ {9Ē8kpü ”ńs ._“ h±~xŁžˆU"ÄŻ+rÜń0Xƒ'*\­Į tNĀ(Š\ćŪYŸĄuŠӃō’I P]T#dö– &+ägK**õ “Įˆk€S9ę¼ё{<Å׿l) Ly oĖL²»į0qĶāĶęžS‰“ü¾f3ĮūÕ$÷«õhš!© ¾„ķ\Q"²fO ;Z\{XĖøöBYūOe}÷LDé#żą˜_ńæņ$¹4šo|īÓ'vš°ŽYóRG“żiÉt8InõƦŸńÅ{±÷t“’‚Nµé%Gdžä²ķĄm8 +' Ē{ś†«8öŠĶćó:ÖÕźwPķrjÄoāč³Ö’ŹIcžaōö “N©”|>9D ÷(‘ ŚcÄ ļŒ‰ĮŒ=ō{ģ”gś:Q”rwX’™óÕö/õC2Ķ÷Ī'óé²ēńŌ‹’ķĄŽę¹EļÖ|×ńBõ;˜RkżÓfmü«øYż€%žbč9ułŒ«ź' Nלŗōčūv¹ł¢Vģš¬!½óēŸłõcĒó“ ōHÖĢśo/½żżµ=½­œ$„7łÜ6ÆõŌ8„ō-œļÉeņ·²öšžēõ²ńŒóQ€ī1+1õ"ŠōśĘ®ŗ’rŠāWž’[Źņ„‰Kõ…‘-÷#?!óóńįśCœÓÓŁłČŖLß}ż#}žŚwžQ9ģG“A`rcI Aļ‚ĮāüQĢ#b»¢J9öH3śŖBKś(kū¹·óL]ńܽÖķF–»š3Ņ™īcóėķk¾tģvTFģėķ…³ļ}¤ī!ī©©ķį! ē ü1ō‹yū\5ĪūßJL ! 1Cił™ŲūĢĪń>3nķ]T±ķqvģī°ō¬ī9uļ’bt÷±“ńƒń%£ėł “äŪtØ!žĪ'ōBŗ >Łü C©Z ‘‰™–`¢TMžoVÖžē='ūŃż 7ś,\*÷i!ū¢'U÷å óVœ/ōTLōńtł™õ—ėęōÜ<^÷F–śńųĶ£÷’߀÷xŁä÷åpóō[†8é-ģIõŽ‚żrzSüØĪNüĶ€f? ļŠ™Żæ›łčIžłä—Ęv”’Ūis˜ –č$OI ‡ ”ļų „Y ó˜×üŌūzĄ™õė÷üĘć’ĪĆXīm1ąļĪ7’žœH ½” G&^öž+PŖzš {ö tyØ ±Dt ó–csIųÖ!œļüsšTdż/÷ōīžÄ.OG Å{_ „» ²­!ÄøyüŚ„ž1ÖSžĀ9ž/ŻeÕ %¶Ź ,ÕłŌ]—”pĻ]ˆ›CęSöæ_Wž9Į*©½-JiJŒ’ŒŅ#¦Wž h‹–æ„“böłmB ķ8p…܅ Z®śGć9‰Éž „Ą Zy‰ƒĮ’¶šu  Œ¾>ÅåK;»*¶©"ļFģšĄ‘¾§µĒt0žź”;ž³ÕAĖŗfżčŁwöß§Wūī_š ėQ >¢[ “-ß+TwęI” į9®Ł vMįqå§łDĆ-ž#̆ōŖ/õˆ_ż÷NA÷ŅO„ņŲŠ#ōĪ'’ėx<Ėš?¾I’zMѹ·÷œsŗ²³XńĮWĖåī2ś†ü}µvóR˜óö}‰ÜżüĪaĖõ$Ļf÷gõ]īF†Ģķœ38ńt01ö!Alż'śó0O¤&žJĻ=ņd¬€łé”{ü&Łtž*õūł#ņoTžÜā6Tī cĘ ē‡iōÅ@4„ž¤$š<{Č÷£ü®Ō¤'Łz ¾—ķ æuŹNgĮ±ų8J搸 §é²$rB3g_yŻ# ¤4ć“$”^„ žćc yp õ4¬™ č  ·K‚g„Śõ!t•0 ĆÄ)"@µ’³ń¼ž\ģ  Q ¶‘E•HžÉFę óŸ(½ŖYĻUųtØļórm?õgµcžF[žžG9ū÷pźöż}„ś®S ݹ` ‰Ē‘äb@ ć‚ėgļ%ZØȹ®ž‘PՓ ų»Eiīb†śł)œÓy $†~ļ;üŪóøĒ‚čM~gw9±ü?}ō©§) ü¾.ŻŅ gį… 3)üFłDö ÷QķģŻģĘ%4ńJņhÆńźöoFčĢÖŠę™jśōāäIü¦~łZŽņÕšōžś›łØŅWrō}ūfØūĢŅ“ų0ĢķMb+…„ü ξ²Į„ų ¼­’G“ļž)ķ昽–ų× \—ĀŪńvõŚū€ ÷ iƒ·7ü–Ķ ­Y$’źāŽœb½N|éüź’ö¼±„ö¦Ż…śĮ9}ōĪBiļOYćńyNnóӜ±īŻćIķ­÷ėė˜ćģŲ’‡ó8øś°+ł€”ū1ćŽõP…,ś;Å4łŌ“ńõŖ~5ņšµ ń—tż`üüż’×äXŌMu ŁßÅrŽū5sõšuw’ķaKīkĆ UUUƒJA>ĖÅ ķP d8ŃąÄm˜tż –‹`Ņ õŸśó¦4ųaæčœr‡ Ļ¼”ōĪ…üRwQü{äӏ ¾#-«ĄĀkǬäŠPĢ›7ś’g¶üœŠ‡žgĢm 14,!i;. Ć-"Ī ŪZ Äæ×žĖžö<ŒNłCmēųīaAśĆ2\ü‰™‡©ž,Xˆś†ģkżŖ²x!… ŅĖØ ¼€²Ē’Nµyat¾¼Zb ü{ćņ >r„µ 9ü¶"ķ4¼ a°ī Į‡.r掊`’”Õ23óĮ”ī~ŽĆC¾¬»1.¹ņ…?’*93ł{f°ł7P@÷„żžó֐™ų~°ņśŽćßō&ęQņĪĖōŖåżé’żh{„ų­|)õi«=łėŅÉ»Wš’Ķ»é—?Š×=Œlrq•ž“ˆSł%Ž@÷ÆTLō)āŻõ-ÓīJ†Äņ×SQūĪ€$żsüˆüĪtó’ģ>ō¦‰<§Ģ†š÷ųąt_śä¾‹NažėČ©ŃČ(N°ƒśĖõŠõܙŹ÷kēśćĄpńp° ļŚó>fņó‹ķT%šģ«ŖŖźjī?¶iö¦‹zū[5×ųDźaś¶«:õŅÄfūģŅÅ÷zNoō®–·šŪ_qól‘Ł’ó½žšQ©“ĪQ<6õ@ŸSņV ™Óülõf„ö’&¬Ū÷ŽŃū;¤4 :Pń o ŪpJuųģśj÷ż>T˜MÖ( ²"č8įĒ®X ‰³ž/-Pł„Ņ¢żł” Cē ŖŹmövĶ`„; 8Åä Uµ{l+›ś±ž/ö¤§ńłŁĒœų†VŪśuŌż‡]Śōzüņ±ś›Ļ984Ė äÅC _QĻjöųC­ŗ’‹,³›#‡Ā¹Y0ĻkźD`ō×č ÅśßJsˆžt ēōÕy“c©±—›É’ņæėč®NUBū‡“d“I¬œ@ü¾NŻf²øgüŹ/HųśK€łOŒ‡õ̓4ō±,jśõ{µł¼ąņxŲGņج0÷÷ĶI’±Gdūā<¾ön3õ½ŠīūąĄÉk‚’é~j\8tįĻįE­(éÉū‹Łų½½"öä9 ōŗ3šōcķØīõ=+żōfżeĢ;śł/öššzƒ÷ī0F5‹Āžį]öøM’ż•2õŽ>²żŚķ¾vH†ż²5Eųsnćō&62ł“Ł^ų5btīĒŲÕļmĒó ģ¢š§”øėG 쫪Ŗź^"ńFųųĢ(pū{Nųą‰łÕ2õg vüÆF…õćó]śļX*źöŽļ˜=’鶗bNIf© 2Ō-5wxšŅ ö7[Ęą2 @Ńl)žˆERUUUTY¶ēšt ,ßŖ[Æ÷;:’]qżÕiÕė’üˆ DöĮŸĻ’ĶČ[ŗø_I¢DWż;†ZśŪ@…ƒH BQšõP6ŚåV˹ń×~ł*X׳O¦’;ŽĒPU= _e¤¬nCń#į’ é×? NĘ@ÖöŌ“öōfśźØ7ųKśšū³A’jN¦.üūłšóÖś ÓŪi ”K ¦nßiÓ=»—öĶ9‚Z!ėCĒRŚ:¶«Ļ޽ŗåŲnm .Ō ¤ArQ{%u.Y’•lj,,µ"˜oSf£A‰°Ą @:]”£šŌłó«.ų™ Žų JŹót+gõDˆĘūnvV÷“ė šµPóc)ół°čŃĪųOõ? öŸĄĖžąčŚE{’Tnøß·“’ #÷oŌ±0öųFŚ#÷%õ*Éóæ¶Šņ7ˆķ›Hīł-žż c=üÕå9÷ž:Ģļ«!<üÓó…X¶śÉ Ēõ: AhŌ WɅżĮōaĄ¹ßłĆÆöHŃõKŁXśĢŹ`õ’M7ģÓ®”ń+a©óĪÄ`ī\¹ź'¤ėöŸņź`@ō1Ęśż†²ś{g“÷čn°ų<£xõ’ū÷ü0ķ†ņ,æņGŚ1še2ūŠ[ü¦Ÿ¾’½\³Ń/ Ęó ŸvłE«'ī™¶ĢüŅZķ OV?@zš ³Ė;ķPī@7YÄ Ō7A fenrir/config/sound/default/ContentChanged.wav000066400000000000000000000455201513650123000217710ustar00rootroot00000000000000RIFFHKWAVEfmt (ž’€»Ü  €Ŗ8›qfact` dataK€€%ÅD¢‚6J„ƒqD…2“F…‰†ę‡ō‡‰ƒˆŠīlˈh*®żŠÅ5ĢZ¦PŒėm’ņfŽRˆ•u?֏¶ ±—å/™‘/{Rš@8\“¼ŠóœˆX•]•Ÿ»ā–46¢Śą„˜ŪAפåHišø7x§ÜČ,œ©Ŗæ`šÆŪ¹¬Ž“ŸČ‰ZÆHŲw”öū±ļ·;£8ž›“Æ’¤<·’¾Ć¦÷Rܹj懨u‰|¼Ą%LŖØæ}¬®®¼Į0ģŌ­h\ÄIs™Æ6tüĘO^±3œÉAÉ"³Ś;Ģ˜ē“iŪĪč~¬¶9ązѝ}qøl?Ō>”6ŗ³†¹ÖĖĀū»¶XŁD Į½}Ķ÷Ū©g†æĶ–ŽśŻKĮ˜“5į6lĆD„Ōć_×Ä&&"ŚÜIéŪäzXųÆŻ½x SwßŖÉ“ :*>į«R gćĮ#ļĢ»Ģäź,Œw(”ę() ­[čy÷ŐI#źßøbžżźėYb’Xʲķēó›"ž®zļ‰m8%ŠŖBń?ĻŌ'ī¾ ó q*ųźŅōčJ -ī.›öŚd©/ϊcųįfE2ž+śüPį4VŠōū*#}7ü-½żmŻ:é…’Ä“< ½N/ P?sØÆ|ėAČ«ąB׆D Ē©é"G5śr„D½INE< tWXLRØ XRóNC#Ļ P5ŽQ¶˜\)Tē`b|³ĆV›#,°N^Y;žõųŃų[ĒšæU=“^?ū‰Ő-a£TJĢĒcņWāļaf.ŖčūūhU³Pļ•kh–}!%Ė/nh0H#ÉpSā% ;cs*¬Ż&ĻüuķØ(AK–x›‡s*{Æ/{6™>,ČūČ}¼Ā .ŌĻ/Õ/^³}] 1Ō®kzŲĪk36ĀŅwX75„ķ9u0ł7¾0”r>²Ī8ä‹p8ƒš:õžomlf<ó‰×jļl2>Ü,?h¬…ž?²ē¦eV¶ŹAsŗcėž–C „v`l_cE¹§Ž]Ś×/G>ĀF[3hüHÆō®XxÉJ ?VØŠ•LT”SÅØbN‰čPΘ/P©­PNĀ üQµW¹K£ĄÉS®"Ioų–U’óŠF'HdWbåóCĖÆ1Yļ\A[/’ZÅĘ>×ĘĢ\YJ//J g)šØ,‰ni0{*ć߯kö{·pŸ†×óFjĄnģuCń%šl%}ÆīˆkIœģ óNiZӇé;F~gV"ōęk­e>‰`䮤ÜcĶį° bŅž9ßr£:`~M¦Üņ~i^چB˜\šņ×.īĘZ éģŌźõXe÷YŅ»ż#W¬ĒϟaRUą[4͘­€S’±”Ź„į®Q ČÅżÜO¦|Åś NäCźĀCī8L³łWĄ ĀfJmĒŽ”H­3»—#ĀF¦Ŗ”ø0°ļD%Ą¶Ž$Cķ}³ŸJAå2ģ°uĘw?'Z®_ó¤=UÉ«]Ņ;o’7©o’9u7¦¦•ź+8gō¤Ļ·X6DɃ”m…4¶ņž€ ²2ĆŗaœöŽ0d׊™ż /ņ @— S7-kXƔӐc+м’™¶) 9ŽtÄ»']ĶżŒdŗē%†ymŠg˜$š=݇~^?"›M…Ŗ k ‡ ½‚颖_-€=!ĀŽĀb‚„‡ķ.‡ņ„ Ö’3‚‡° D ČŠT+o—D”Œ 2š7©0Ł Åģõ摹÷ļ“*O”®¶‘GŽ–¶]E ‚Lm™Óģo ‡9ü›dš ‹žHĆÄĶĖ”” ļqØ£:cž6¦QCĢsÅØ%Qm’JŃS«Ī8—żŪ⭌ĮūDp°]Ąźł;Zž²C`ų XŒµ=č=öė=øKXgōį Øŗm°ņėĮ5½£š¹š `Ćæķćī<ęPĀK) ķ‚TŽÄ¾!5ėŻŖkĒD^éLéųÉߏ†ēĪ†Ģ{ÆåeĻPŲć Ń'•āŠó,Ōž(ࣺ¹ÖOQފiFŁ%ˆy܅ÓŪL©”Ś•_އ²ÉŲ¹ęėą×£ńÖš5xć:}ÕAӜŒč>čhŃ”ėŽyĻ˜ƒØķ’ó·Ķ5[4šZUßĖåĄņ6ŸŹ©ĀKõ'Ń-ȂR×÷+ėTĘnŹbśDķ{Äo*īüpע„ry’±©ÉĄ­¢dš¾źŗo½;»ģ=»”£„ }d¹t0 "^Š·§,»Ü °µIĶE©ĖÖ³’UŠ‹Žü±ČĘZ€Ł"°¦åмH®˜`o؇n¬ž‰łŚ:”Ŗøšƒ Ö¹Øē“ #zYߦ)u—%čÄ„€>!(k*£źļŖ*TO”i‰4-¬wtŸü ¾/jƒ™£tG2=w¾›^ĘŠ4$Sć™-Z7˜"ć9.Ć,–,l‰Óu’2ų}AŌ7šfŗD3„¾Ž­dF§øāŒ ÷I/Õ‹yq KĖŁ*‰żÓ(NzĘN‡•±P?›r…AQ9SX–ƒlĮUż¹ÖnIX’u"€æYŃZꒁ»,Y]£ۃĢēą_…^ø…ńŠhb51•‡*šdŠr‰w‰wgWO‹ŲäžiŹ8,M(†l)k ÖS osµętg”qŖĒ%ctĶ‘””ėF¢vŪ#–Å)yÖĶ\˜³ĘÆ{¼:šµb6~Žiœ3CL[ö ­¼|ödԟĖX6zŒ†²”y°wĄ£ų)u{o„˜ė£rÕzM§ ÷pü+©f˜mL• «ÆUkiFé¬ä،hrČ®fg𦰗cH酲 2ü`śd“ļäv^Ķ"D¶ĄÆń[rc#ø|’lY¼ŗ%ēV,⻹ŸbTē“Į½9ŹŻQ@VUĮĢf{ŗ= µ”Ī1}6;©,‚Šč–²84¼bŅ‹Č.6«cCŌ«3#$֕s'1]śŲüģ£.˜éåŁN~ ,æšĘŪ')ŃØŻ·č'ŠF‰ßĪĮ–$ŗ•jįŠ²"üKć¾»S{-å˜Ü ē^‹›Ąščf!‡Ņź­Ī…’e“ģ7Oš[–ī¬ē€:jxš ˜ž oZņ[`| Ī<ō”@śž$ö¹8x—’ųŹHö|äłĒptM¶Ęūưņž l©ż„qü²9Œ’ExļłGoń’m÷ČR‰Ÿģō425WkņŒ_~&źļѤūŚ iķß " čźwĀ V$gč%¦uSę婉šećųemxłäąÄ:Q\pdŽ{'5+’ćŪ,ę„cŁ®HżdćÖ)}į!;cŌ‘ÉÅŸ)ćŃä-Ŗ 0cĻ#ŖŽ!aNćĢM>s#¤„cŹdźW%ŅŅćĒg®<'ģ8dÅUŠ!)ó¶äĀ0~+åLeĄö‰ė,Ćśå½Ø­Š.Ąf»Féµ0CžēøŠ<›2å“h¶F؀4r”鳨+f6ģĘj±öĘK8Qģ®/z1:£Ym¬UE<ąĘī©f(ż= Lp§c#ć?éń¤L6ÉAžs¢"aÆC kõŸć£•EåOwž{GŖLłš(qbIZa{˜­ūHK÷ż•ž/MŅ“zXOó.‘Ā*żPS£„Ž÷äR /ŒĖT×Ӊ‰#1²Vū ‡c™X d„’¬€ZP‚Īh\¬j€ŠˆO^@ē‚27`\d…ÅĆbÖį‡D…d?­]а^īe¼1ڌPÖgMžVJY¾iņņŅ‘yz¦k«/O””³ŽmxTĖ–šwoZaG™m_qOVƛkīGsY3?ž6‡0uwųŗ ģ7w©„6£Žyļ:²„įźzIø-ؗŁÓ|·©Ŗüé¼~9k$­°ķYŠ ŸÆr­p}z¾²HU‡{9ĕ“3åy ²·1]“wņ‡‹¹D½ŹuķE¼kįsü뀾¦5÷qzūĄõM pWšuĆXN#n¢NšÅĻ69l•jČZOjuĆ䏜ædhüŁ^Ķ­`zf˜ŲŲĻuédHæRŅQZ„b ŽĢŌA³ŗ`äDF×DōĻ^ŠćæŁ\å\Šj9܉.śZåŁ²ŽÉ'Y 1,į $WJp„ć†Ņ8Uš—ę„MS’¦—č“bQxžė7ŸvO~‰ķš‹M¦Eš½ZŸK[õzņž”³I$óō“¶ĒG l÷ĄŪEótäłŗ²ļCłÄ\üėŒBżŌž1O@@M‹ł*>‚%Åų‹><Ų=zR:Bī“ie8Ą®, ŗ³x6RW¤ xę‹4łēKŸ2³`“1²0‚Į ,ļÄ.d ‚:Ā×,[;ł]}ź*fTp” ż(…UēŽ«'ø>^!="%’Õ#°z4#[ÉK&8¾F!ŹjĀ(ÓéXNō8+‚żjåeÆ-Fł|‘æ%0ŻŽQœ2 © %+5 ]² =ˆ7łĆ 7ž9E}Õt<éę=ćé>Ń=ų v•_A5z Ā/ÕC®ž #²JF:«+—ĄH۟< o5K|M½©ŖMXA^nĢP5īn3הR&ƒž Ź U+üś¤~WEe śūgóYr²°ųh\³ēĄö:¦Ü^ Ńōx!Qas įņŹ„Åcš÷šš0Š9f‚ĶļŖ®h(‹ķ8"kā0 ėŚ"–m°¾/é‘ p“4?ē[ā}r‰’Nå:žńt“Ų]ć,Bew²mį3ĪŲyä|ßNBL|+‹Ż}žæ~†šŪ>Ķ~õĻØŁēšY|x†·×|Üęy%ĘÕüßsw»«ŌÓiūuzćŃĮ.ŽrMqńĻzp5°’Ķ6ŻØm1× ĢRX6k@ęŹZėĆhdŻ)ČN–Qfœ¼7Ę.YßcčƒEÄł3maH3S±&ū^½Ź`ĄT1‰\EJn¾äSZā±{¼_Ž„W’‰ŗĘą3UW9–øKĀR0Y£¶XĶPPa°“ƒgßMQ½²šnK3)ʰćüH\éÖ®‹Å‹F™‘ć¬fæDė!šŖ,Ń©APšüØßś8?Źś§}<ČśĀŠ|9üų¾Œżō4žņ£čŽ×…0qQ‘.,#&ŗ“Nļ'ZĆ"–ėĒ#„H‹˜uø¶óšźĄ w \Kį žHğ˜™n,¢ŃiH|”¤öŃ  rü¦R ćOd©źĻĢ«ģ™ĪĆ3®Ąa’āY›°€Aü Ų³-9łF>jµÅHö–ŒŃ·Ipó!śĀ8ŗøÆš#s៼ī%’ēæ\vė' ÖmĮżč)T­ŌĆÆœę+l;ĘŗSä-ś¢Č²"ā/ė”Ė• ą1šoĶdŽ3 xÕĻÜ56æ;ŅĘMŚ7xī”ŌY”Ų9Ķ××ņÖ;7nŁBiÕ=“ģÓۘ÷Ó?F¼9ŽŪŅAģsŸą \ŃC¦ć#2ŠEt›jå) ĻGV Šē&ĪILc5źłCĶKW£šģĆyĢMuĖ’īxĒĖOØŪdń-ĖQīÓÉó§ŖŹSI“.ö!@ŹUø|“ų†ķÉW;-ųś×²ÉYŅÅ\żÉ[}FĮ’=…É]=Æ%R’É_ŠR·Éa÷8ī?ōÉcóYR IŹec¶ ܵŹg&TŒ:Ėi^-~(×ĖkŖī᱋Ģm ˜E%XĶo)©…<Īq£ Š8Ļs£pMŠuTNÓ,yŃw€6!;½Ņyń™™#7Ō{Ž›ü%Õ}߅_(ń×ōWĀ*NC'~%-£‡%|Z“‡/ “#z¬>ź1‰Č!x±L4Åv‹ Æ6Ą©tN9yvrŗxs;G+pp‹Õ=)Čn:†7@Mli™B)ŗj 4ūDGhē\GyL f*‚¾Iæq dY Lb›pNˆt`ņĆāP R^]’CS”ż[Ü"„ULÅłYo.X [öW"gZŻŲņUŃżĒ\Ä>ļS Į(_ĄŒėQƒm‰aĻĀēO{źcņąćM†}Jf*ēßK¦įŖhuÕŪIŚ- kÕ«×G"bkmIjÓE~~ĖoŃĻCī‚+rmŸŹAro‹tĘ? DėvįtĮ=·Ky¹»¼;w„Ŗ{„ź·9L2 ~¦³7ŹX–ŗ®5Ķū6}ćēØ3¼¶×z ·£1—‰xxqnž/^tvÖ ™-wŗsO•“+Ƒ[qÜŽ):Äün}\ˆ'°žl3œ‚%q?jüĆ|#aėągŚÓv!›}‚eĢĖpĮ'$cŃ«jÓéÅ`ėsdŃĆg^$^»µ \[¼W‘æ«Y²Ł3ÌÜō¾²|1ovŌņ*k //HĢš;Ä,ÄīÅ#h*룻ģō# (č-³ź<°%ųŸŖčlT#ś”ę “ų U<™äź¢fāµ‹Ay‡ąlęxs~ŽÊVuܝ‚/ž lŚZŌOÓbŲ~IynYÖŃPīšOŌpĆ Ü[FŅ9§h Ż®<ŠOö óé2ĪQ]³ )Ģ?ÜX[Źsž’­ Čß!¤żē ʐčIūŽŖÄ.ĒļųVöĮ·½•öæéėæ-Ģ;ōueį½Žņįń@ÉÖ»Ū0ˆļ̹‡.ķIĮ·9õŌźe¶µI{{č4i«³F"ęcU ±/ĻČć¦)•Ɲoįžå‰­Ä‚ßiŠ~«p€½Üés©–dŚ|‹g§ŒĆ Ų$č[„ü³Õą,P£XfZÓ°YD” Ūєn8ŸÓh©Īk,ó QĢ™P ›žŹųɹ™öŸ ĒīŅ—ŁŒHÅ6pū”Ø‘šĀ“õī’c®˜Ąc␠ć@¾‰øÕŽ/é»"öȌ”‘¹Ļ¼Š†:·)ÆˆŻ¤ā“f¢†Q‹²Oż”„N4°MƇ‚hńÜ­^qz€n八~ų’`ń.©Dz ƒ>Ų¦ö®…Q¤”Å»‡¾¤*¢É‰_ԟ“p׋ķ“}õiåf/'›C{óĖāŠ˜|¤’®z–”å”Z‘$”³>–ƒŒĪ‘°Æ,˜˜Ÿx™8;š™Ź"nŁIœ… ͊.’Xž^hwˆŪbg "Ū!†tKv¢ÓẽųK…¤owid”¦ =ހŔ£Ø—j3ƒ ݲŖ7€ˆ…A=¬ė}݇aµŃ®³c2ŠmEį°1‡Œeķš²€ēŪŽI­µ„…0‘…· …“Ōt ¹ŹyŁ•{|0» Š-˜œ@½_‚šŽÓPæČ4֜ł"aĮEC*ŸPŠqĆ×9~”“ ‚Å|Ņ£Į ’Ē5ß%¦ÜO£ÉŽyØć“Ėå$ĶŖÕõÄĶŚ£ ­³ģÕĻä tÆ~ūęŃZDZ4"ųÓ4‘“Ö` Öz°m¶d·ŲÕ·ĄøŽ%,ŚC§»C¬=ÜÅ~f½•JOŽ\>¹æÓaąę ĀüĪrāÅu^ĵ„ä˜ķ°Ę³–ęMÉÉØčz•UĖŁöŗźŠÅ§Ķž<Ķģ­ŻłĻOšßīäŻKŅėņš0ʝŌtó–ļÖčBõOAŁI*÷‹ļ’Ū•Õ<ł'xäŻĶĀOū×č5ąņĒbż›A‡āåu’s‚Ų䞉_«)ēåfœ`¼zé¹ĖÆtµĖėyHƝ–ī$ŻÖ Ł_mš¼‰ź *¾ņ?Nž Ŗõ®*,_÷ &••ÆłP+:6ē’ūƒONģ Pž¢‹bµB ­ßv“Lš£K‹„>@†ĻŸŠTk“ ¤Śß É"Ņ„/ µźŻ$GĪņ&j‘ĪÅÉ)Ōó.Ż+R>m„2-åp¼ĘKG/‹‹ ó¦\1FŽZ r3y©„‡5ųKų H7ļG#į³9ś©•%ŖÕČ;5ä'_ĄŽ=LØ2*Ćō?“,ŒŻ BļFĻ.!D^r1jZ7Fā…k3ŗ¼MHz¹5ö6dJ&e8ÉzLę0U:3s‘Nŗä¢<35ØP¢€š>æRž>A÷ÖT®p‹Cŗ ķVÓÄŲEj,Y &Hf%sJ·2]¹1ĄL!J_.& O_¢aa·ZQ«;ycTǦSāģetóU¶ØgŹ@X—Ąi¤…ŒZŲk‘źŲ\õ šm“7%_ĒÉp©lqa† !r҉½c0c9t fĘÓQvb|UhH\jxČQ”j¶ü‚zCķlµ›|Ń“8oV…“~sB„qv’2*øĻsY’}ōvOz{Ó[fxZJēxʉ±zyĪv͟ü|«¢“tčGņ*›rē{m~M›p¤­"|¼ógnL÷×y@4NlįXw×\4jaŅBu‚mhĪcųrBff& ®pGęcjĪcnżĢaš§lłĄ±_¶˜Ļi Z—]¾”…g-Ū|[²Ā;eeDbY‘ūńb²•GW]LØ`Ļ,Uµ^^†šSø5\śöPGĪĖY¬ėŪNĀ~‚W\ÅĄL)G9U!‡„J|'šRś0ŠH»§PēĀnFę/^NčČ_;E¶5ä;ŽēņB8Č9@‡Ŗ@•"¬7Ž>b>#õ5h<ÅÆs3ŽõŃ9{RW1?õ‰7FŻ:/ B5$P-Ē;ś2«+삲0īä(żįj.7Č&śX#,f,«$äēŪ)©'Ž"¹Ž”' q yMM%kÖS&$#ź‰6ææ }%Cx$©ū“71ąŽnźÆhĄY¼£“¤¢"]ŠČ„­ –Ōf ¹6жČH ±ä‰ź¤* •ŖC 2i dˆż ī ~·’©ĻĒ‹qƒ&±[±+‹’žŚīåČ×süED ž‰ Uśœ±Zü^)6ųß6śG.öŌĻ÷Dųó)‰ŠõUšŲń/VEóz­¹ļ";ń“Ršķ8»īązėĖLvģcU[éy1źŲ²;ē#¾ģēbų屨å&üā+cć²;Üą‘įx9¼ŽćæŚŽRœÜ |–Ü@ķ{ŚJPRŚC£[Ų_<ŲYA;Ö`@ŹÕ„ĒŌN\†ÓĀ5śŃ'BŃŒŁĻģŪžĪ|ŹøĶ?»Ģ÷š—Ė:»wʆ’vÉĀN4Č)öUĒ7śšÅįŌ4ŗ½­Ć¬›Ćä˜jĮ‹JņĄŒ'æįо@—伇`ƼPŗ”ŗ£ĒŗLõ^øŅlø4H¶NJ¶³Ł³om(“Č5—±Ūt²sŠTÆ[däÆ ƒ­ļ;Ā­ŽMŠŖ˜ūŸ«ž/ŽØU£}©Y*L¦%3[§ < ¤ «8„ÓfČ” £ņ؆ŸSó üE1ƒŠžót›f›­œÖžĮ˜°›Šš¤ €– „g˜_Z?”TD–,ž‘ !”—½ž­ż‘|L6Ś0;‹§¶Õaśˆä’’‹«¹†Ī@o‰D y„ĢiK‡^…8‚Žz'…Ÿé€tƒ­@H‚?U߀Šˆ„tįD§Č†0iƒR¶‰š–…±­H‹²‡$ˆp«Ö‰«Tȏ½Yū‹G’ö Žö›G”žDŗ‡–+ōi’’ƒĘ˜(”}Ó›(“–} Eäe٘‘+„Ÿ¤»žš¹3Ć”P)$õ#¤č®IŸFü@¦lLo”Ŗ¼ØÜ•£#e¾Ŗ7Ļŗ„Æõü¬“ą§Pn;Ʋ±ŖĻy±ŅĘ,¬Īø³ŻóR®«HöµŌ8y°œa4ø·•Ÿ²”brŗ† Ę“ŗK°¼A—ģ¶čī¾ē;¹)Ö+Įzų9»wiĆųĢ`½č§Åc¹‡æfräǹ½®ĮųĖ!ŹūŁÕƞ _Ģ)żÅX7œĪCZ$Č&IŁŠI¾KŹ CÓ;:sĢ’$SÕΚΠļ×āyĀŠ(”ĢŁ˜=źŅ[; Ü9Õ¢½EŽĘ :׿'‚ą@bŁlz¾ā„;ŠŪļ“śäöv²Ż†×6ē3ŹŚß2āré[5āńŌ®ėpø+äÅÆźķqSTę¬r&š]}čØbņ5ф기ōś³ĪģÜ+ŁöŖ®÷īłFĮ ń`ŚOūĪėIóĄ ‹żB.sõ5)Ę’”ˆœ÷½,ķśÅłZ<%…ļū ģvH'žĻ§±WįBØKģ S³l•×& :––Ka ŸĄ«§›ĢøźÕėÕvź  4? c,J•iÉ(„ž”C ¾Y ¾ŃŁ÷ŸIérŽ1!Ń (+k#ļć>ņƤ%łŌiŃŽ'ļŻ”Ćq*Ńžæ É®P,Ÿ7ė"äӉ.Xˆ%įĀ0žšA'UÖū2qm)¬³45 ™+ym7vŗÄ-–&¦9Ė‚š/)¼Ž; c2Š9>9[H4ŒŸO@Rkt6[ķ‡BV“ 8?#ĄDGÓĢ:6AųF#+łŒtŹ-g1q\r։ųdPŒ,pĻÄb„üm³Æ`ĖzĢkƒf[^'Nœi?5'\— lgēóY­;e{æW³8 cū0‹U_¬Ś`g_WSŖ^¾„#QóKy\šNÜwHZ1z¼LŲ‹XL‰Jé‡ęUT®UH lµSGl"FF8„Q&BļC“ģROš/¼Aōˆ!M§5‰?i šJJSV=óy¾H؈#;ĪŒFSÖš8A [D¹;¾60)B ¹‹4į<÷?JNY2Ī1Å=tū&0Š“;ŠĄō-ęÓ`9‹Ā+.7y’)Nü4SŸ^'”“É2Ä,%ł–0Źū"Fd.gUÉ |1,šĮ—³™ž)eFfiŸĖ'Ēā44˜%—ce#LcŅ!2!qG” Ēž‚Cp)UĖ~W?XĖ—gƒ œ)d;ĒŻ óo0ū"­_žü§–|ß“Č?"Lr³”ĆÅš` 3ė’×h, T»ż§ųÖ?‹ū‹¾Ć C[łƒE)^+÷“Z4‘ūō± &,ÜĖņåJńż?œš.r¼ū޹l‡ł™L=ģüxR÷?÷ źXõҹŽē čņQ”ÆåČϲ𻆀ć‰g}ī‘Qį^ēGģT³"ßHOź‚ķóÜFŸÜēœ?ÅŚXצ墩–Ų~÷pć”+hÖø’:įrÅ9Ōšß;w ŅhČĪÜń@ŻĻވ˜Ś’"ÆĶi1bŲ ĖĀ+֙-SÉŗ:õÓžV%ǁ›¾ŃO˜÷Ä[ä‡ĻŒńÉĀJQ͵bœĄM.ĖŹėn¾e/ćČŹŒA¼¬Ę·EŗĻétďē·#£=ĀT’¹µŠDĄ³Īν `±–?—»(I3Æ9™_¹œ‘­ńŚ'·üńŁŖ¾š“Gj­Øžø²ś€¦’€°£¢T¤šņG®²b(¢·¼¬­:üŸēnש•*Š, Ÿ§h2¤›…‹f„'Rx™ņõ-£Ņ‰L—sHõ hŁ •ƒ¼žė@õ’±„ƒœZĄÉn°Jš“WžŽ@£˜ūsŒ%~Ų•-ĪGŠAŸ“K­ˆ,ģe‘U¤ń…N,K³Ęƒ„śņŒ-Ś›Ī]¹ŠēŽ€,©ˆN¹‚žÜE†Ø!ä„%ų „›‡æūс™ü8‰”h€0Fc‹ŅD¢‚ŪwūˆÜ„š‘·å‡m“į‘YQ‰T} ”žä‹‹OO5–×ˆĘ^ _˜œD‚«ˆšM<’¹5²œéw”ØŪžr²–e”ę"ķ˜ŁD.£FV(›`oW„’”cż€§ŹŸŸ­|©©īŚ”q_Ņ«ž¤I*ū­ś½Q¦6Ż#°ā€Ø6xL²µ[ÉŖKūt“uN­tf¶ YAƱ¹Åø·{}±õķŗ:¶¹³g½©öµą#>æs2ømfĮKõnŗóĆ~«¼Ä¶µÅAč¾bŻĒ§ %ĮköŹķaĆ]r,Ģ€ēžÅcÖSĪNłŪĒ}"{Š#Ź«V¢Ņ®dVĢķrÉŌ@¾“ĪCwšÖ¾/ŃŠ®cŁ(¹Ó,8>Ū}ZLÕæōdŻæŠ×f™‹ßģäĒŁ &²įĪÜļšŲć ĻCŽŅ÷žåüēąÉ<%裥āÕiKź¢ažäō~qģVĀ<ē'|—ī÷:{éoa½š„˹ėĖ.ćņüsųķ:äõa47š¾.÷± vņVTłķü“ōuyūōöĀŹžż)%3ł–Ä’)]rū.é­±ż{<ģń’Œ23°”0°X_,péÖ| ūŪÆ6…” ‚£ļ—Ęõ‚/ šźTzo •Ÿ‰Æ2O3Ö°ļä…Włļ/©¤{Gpƒ«Ÿ¶°pšĆé<ńrqē»Ū1ˆ0 "y’r²×.$#a³!šfR&¹Gō#BŽu(;F5&Ø=™*©\v(#…¼,‹·*±“ß.HŃų,TĢ1z/:/ Ģ%3—„{1Õ³H5”3½3“ƒk7–Łž5§;Ž9w—@8®Ū°;Dm‚:ÉcÓ=żZÄ<łÓõ?¢`?<,B3~HA”l:DƳŠC’”\FĶE„~HlfHž J¬ćQJ»~ĀLŁx”LwGäNń%×NGųQõźQ+‘'SåĒ\S#IUĄ¼ŸU0{jWˆÉāWPĢ‹Y<ī%Z…­[Ū*i\Ī&Ī]g¬^*0ļ_Žėļ`›!bAp3c ū0d we¹¼QfĖĄŗggfrhņŒži(ų’jqBlżq³lm†nēÓÓnī€ŹpåōpĬsöOs‡šRuj4u5L—wVlTwĻæŪy¤VtyUK |)”{Ēīd~}ć³}ŁUV†Ó‚}Yļ ~Y—Ģz¦|ķ{8”‡xß!Īy*yBvß®w1Fżs“uLū·q”ps{˜roü„Qq¾-mŃĀ2o‹ēj‘÷m€ą”h>Dõj’\fÖØÖh“Cd[%øf:QŠa˹™döFŠ_'f{bÅ$D]p*]`©źżZ¤?^”˜·XĆś \­.qVĻZͬ*TĒ*åWäQ«fĒUIaOzŗ©S¦—VM6&ŒQ¶KŻ©nO›¼ČHpEQM4«Fļų3Ką:DZÄI”@óA±§łFvē«?ō¢ÜD_vd="¶æB]ķ;=į¢@nLÕ8D$†>““66i<ĶĀE4ņL:Śż1Ž|08|ٵ/”6ņĄm-6Ś÷3|%+ĬŪ1HŻ(>—æ/Ģē”&¤™£-’oL$õ³‡+lß"3ęk)[7»\0P']wrq’4%tŸ)s #ŸÆą`žż ާ—9Hā1ˆNż Ē˜P®ć«¼KՐ¢™r ÓŽuE) H[ż‚ߨ9@ČӕōŠ%Ø L-ō œ-Quš ¤6ø’aÖ Ą'nż\滚$ūDˆ”4ĀŁųi‡Œkö×amųüDōƒrS’yvśń›9ż ŲÆļŪū¶!eķ 4łsSėg¤ģöDmĻč®,Óō)o„ęį̹ņ"Y9䅠š/+īį U‡īPå¢ß=n솇WŻćUóœÅ)æÆŗA„šaߨ­KW˜č¬’«ļŅ–[’|©Øwŗ“»f§tl‘„P„Uy=Ņ:£JÖΌ_%”S€ŠntŸqH1ˆi鳜¢]ā…OväšēZ“ƒ"ϘA@Dą×¹–Tņ Š¬¤”Ņ‚›ČœR„žŸųf††i”gāyˆ|ŗ£ė¦ŠĶŠ ¦‚S”Œ š[Ø.蓎2{¬ŖķdȐGtż¬ĮÉŪ’G…NÆ©ļ”3®Ÿ±„K— ļš³µh™ŠGB¶Łm(›€ø“ø[;Aåŗ]0NŸ£į6½¾ķ`”šˆæ2“s£wjŚĮ» †„ĀR,ÄX–˜§łR~ĘōŖ©kŠČĶ9½«,›"˦gĻ­'ćtĶ”}įÆCĒĻ•{ó±įŗŅŖa“ JlŌŌ/¶Jņ¾Öę(øį±Łc„:ŗc‰dŪÉ L¼Ņx·ŻBy]¾,€ ąŠĻnĄrŸ]ār€Ā¤Ö°ä)5‘ÄĀ%ēóC¢Ę̌WéŃ:³ČĀ «ėÄÄŹ£¢žķŹąŌĢqQRšååĪ*¦ņ'öŠŠöłōW¦ÓaķM÷® ÕŽū”ł]'×G"öū˜”7ٜ`Jž+“GŪŻ¶žÓ»WŻ %óŽ«gß"«G^ƒwį'IœAC‡ć’š 9ė–åóĢE E{¦ē»²šeóµép°ļ™SÅėĘDį›Ōķ›ó™>Ģćļ9ļ®äņńw–D2åōĒ šĖĶö™ļxžų*>E!9W.ś=ūš#ų<ü<Šš%÷€Kž'½F(ōńYžĮœ*KhĮŽņ,*ŒvpI/dµ„ `Ÿ1±Ę’‘Äõ3Ą  AL6‰”® bÕ¢8k¼¬ł:°ŹāEP=b¶×"§?(8åžA¢ņ "UDńó’ņE¬Fō- āI PÕZK5Z'+A²MsL4!ĄÄ PĘ&A#A`aR-éM%®¹TؓZ'ßW7&g)LĀhYŪ s+}½Ą[’€-šŠ^^NŒ/£ūp`=˜1—>Éb1œ¤3x™!e9Ÿ°5D zgTм7ü–Ņi„]Č9 9+lÉŌ;0ōƒn!¼ß=¬ĘÜpGė?±5s »öAh³Žu¢D§ĶēwJZ FÓ’@z†HźIš|Ų™#Jī«ó~½•.L!ڲ~¶y9NFHY|ĆEDPž’yäłNRĢÜ„w–YT-LucdV£ņrĄ†nX,˜p2ŪxZÉę=nøƒ\{­ćkQ<^A\‰i’H—`ó.gĮ=”brŌd—«d Łyb‚ß“f!(`€Œ¾hK_Ä]’!Čj‰~i[¹žŃlŪ…YōŪnBu³VBQäp½LXT„†ķrK żQ¤ötī³”O§©’v„CFMF—yp»źJłl{OHĮ*}Bc3FœŠ"J“×Cr”Ō~e«{Ao+Ģ|•«?WĶĆzŲ“Ć<+‡»x0dg:ėX³vœ 8—B«t½®5/D£r°ER3³]›pX¶õ0"“n™.~Ų‹låO<,Å9„jÉxß)ų²|h‰‚'DufĪ‚%%#ķmdļcČ"®fb$-k ż†_`mŽ ĢwX^Źw°†€Q\;łR-”JZĮbõæŁCXZ“—>*=Vī9ؒ6TÉÜž0RŸ~ @«)Pˆ n[#N†åĮˆ#L˜§cŽJ¾Q€ūHłć¦] FG^H’'3D©ĄéüÜr’A ‹ś~Źł?Ŗ=,ų :ō=IXĶõ„Įī;üZnóé`é9ĆEń:ä7ž°īwēŽ5ÓPģŸĪŁ3vńé“ĶŌ1§’ē“äĻ/Ót2å”Ė-ŠŅāyZĘ+fsą=¹Į)Ī>Žķ/½'JR³Ū‰¾ø%ŁMSŁe“#~1óօ#°!6ż’Ōäł«±2Ņ0č§āLŅĻhī£׊qĶ‹  ß<˚Bœü°Č•˜-ĶOĘ|ö”qńīĆOt‘ŹżĮ Ž7ņ,æ¹·Š ¹Ī˼O}‡ N“jŗŅZ„ ÷? ø@PµŌ§µ›]~†QF³į‚{l¶ä°Ąxfƒ®1v’s8!¬;‚sż•Uæ©1qūĖZ]§¤nłHū¤ąXl÷t™¢š%jõęŚ6 ? hóm€ŌŃfńr›Ndﶃ™·Gbķyᬖ Œ`ėP'J”Mč^é;Uē‘z\]ē:k„’č[åMi!—ŒZćtO¾Š‡HYį°[ˆdXß’Ó÷…,WŻcr”ƒą VŪŚų0€'Uٜ˜2 [T×üA–ƒ„¦SÕHś…č SӀÜ]ˆ8…RѤĶĮŠsRϳÖ%›ĆQĶÆ÷‰®†QĖ–0ī‘­aQÉjR”™TQĒ)ź¶–p_QÅŌj™3‚QĆk€›į¼QĮī³ä|Ræ]|I zR½ø\®¢uüR»’T„Ō–S¹1ex§IT·PŻ©UUµZĶB¬wõU³P%Ø®…ļV±2• ±XÆs³e+Y­ŗ¼Ųµ6mZ«`t>øōĘ[©ņC¤ŗ8]§p+ ½3Ā^„Ł*pæ“c`£/BÖĮ!b”pq<Ä{īcŸø¢ĘĄ×e¶ ÉńŲg›»ŽoĖ ņi™¬ÖĶ#l—‰Ä<Š ln•Rƒ£ŅėĢp“Z ÕøEs‘§Hq×pÖu3OŲŁx¬m?ܤ?{‹¤¦Ž ~‰`ņ įˆ‡œXućÜ„…ÄÖÜå1‡ƒŲlDčGiЁŲ¬ź£Fr€Ćąķ Žn‚›¾{ļ°^k„^“ćńÕĘg† ĀKōdˆ©ē³ö[O`Š0%ł¼o\Œ£z„ū1xXŽčģż»hTLmUXAP’ƒ ¾ L”¦æ&ĻŖG–“Œ©;C˜Æqų —“>š•na ™:œgƒŹÆ^5ž%°3Ł0 Ļōœ©+¢eQjŖ&¤ēÅoŠ“!¦TRŁKeØ®öBŁŖó²¬|Ą¬%‡"3J ®Bs€$ž»°Kwź&ݲ@“T)ŠWū³!Ǿ+ׁõµī).ó“ļ·§v“0"Žé¹Kņż2fpć»Ü…h5½:ݽX1Ó7)ķÖæĮō=:©‡ŠĮŠØ<= ŹĆUĆ?åtĆŁĪ~A”ǼǙńéCq¶É,UFV%ÆĖĄHN0ØĶhź+K[#”Ļ0m—M{ž™ŃćP°Į’ÓƒŗnRłl‹Õ…ŚTV„×…gFWĒ{|Łča²YLßtŪ7t\ę*mŻržŠ^“^eߘąö`Uz]į«:cc*~UćŖ¬ĻejMå”6EējŲØj$ś<é-’mJž4ėŪc‚o„*,ķuMļqŅž#ļūN\t4ūńlhÉv«?óŹ™6y5l õć£{Ō€÷ID~†}÷ų”BMbīś†±}(/åü¦zäŪžØG8xŅ×nŹu2É~\s]sæquīpœČµŻT€nš¬\lX+¢ šĖ£iÓ8˜ —c5gc.ŽSćĘd „#KXbæŃy›é_‹o’Ņz]ke ó [`“Z+ūœXhłO`ė-V…GEØĆ¾S¶}:„OQś›/ u,ąNS¢$"ś¼pLĄ$“5JAg&@–‘GÖ%(ß!E€Ģ÷)Ö²B=[ģ+æ(B@Ņą-½)Ņ=ō0Õ/Īb;īwÉ1ōćń8ū¦½3-6¾±5{>4S½„7ŻĒ 1¤™9S90/üs;Ż’æ,n+={ŌN*ōŹt?.žŻ'RhAōm%=Ā[CĪ ü"OE½ėŠ ×YBGĄµ5IÖgØĮ‘(K7Ō‰M@„ÅūiO“īS62Qū@ā†āóRv{pézęTžž aūŲV©ØŒ ķcĖXa›“½Z,vØ@ķÆ\ 96¢^äĆå”`wQžÕ†b$ņŽūŁąwdTUlłņ”if™ łöK[hńӆō_ÜLj^ļņ“U>lŽņ ļ·/nsŽ-ķ™!p²ŗź*2rŁmGčĻKtŖŌå‰Mōu`ćV7åwˆķą8 Öy–myŽ-ĆĘ{·±Ü7e·}ģŻ‘ŁUļ§6ņ×xžg~”ī©Ō2Dw|Ó5ŅŲ‡zŒŸĮĻiזx&TMĶēĦvŌšŲŹQʶt–udȦēĘrmāļÅč×pW7{ĆjēnVtĮ.Ļ÷lh™‘¾3Lk¦¼$įiŹ›§¹Ž)gy2·ŹR:e|>½“/KcóėG²$\a~ŅƬ0m_’\­$U~]ŃdēŖ‰‘[™²qØŁå Yučū„R²Wd†£=ÖĆUh ”QrÕS€ś™žQ&ēQ¬Š#œ<ņųOķŽ­™Ö NA57—×ŃL©ĆĄ”‡å.J&:J’"AH¶˜Ó©TSF[ß\°eDęŠ{#xBį$oˆĘ®Š@Ā#ų…żQ>· ƒ °<ĄŁ .ąĀ:$om)ĖÕ8óĻäƒĪč6®H\†įčū4TŁÓˆŸ3ęK‹Jf"1dBƍąČ5/Ī;aCI-$ ³’ĻÕ\+f+•)€p)”3£—nB„'®kš ˜%³»“œ½¬#„# ŸĘĄ!‚£„”»:ŌK;ż£tčėu¦iĘü”²īØ"0.’g«Ē±%§‰ą­XK: ™Y°ŌüN]ĄŅ²=Ęc™’Kµ‘§xĀVÅ·Ń ÖÅ>ŗż±¢ ÖLø¼Ū· Āė1æĶš¢«Į uā^q%Äåå÷XŸĘ¬n ŖVÉ`#1m“Ė’Ē8’„› Ī‹˜Nżā‡ŠdūP@Óezł‡¶|Õ“™÷ŖD÷×ļɦõ¹źqڽó“ØģÜ(rÓń›~gß'źéļmlāįzī,r]äč!ģ֏ŲęŖį-źmÅSéX¹DčļĻėņØ[ę]xJīx°rä·õÅšźĻ‰āżŠAóH”ą/8½õ’VøŽMż8ųǽĻÜWŚ“śé<ēŚLĻ0żöÓžŲ.ܬ’ļ‚×ū)ŌI.Õ“=„¦(FÓZ’!b^Ńėž .vĻhƒ  TŽĶŃ—!“¦Ė%Ōé¾Éf ęW×Ē’„ *ŽļÅ«€ŠZ|ÄÆ”v2!Ā Ą„:Ą| ręR¾D`"Räk¼ųÓü$ś„ŗ˜_z'Ö'žø#ų)ym·¶›¾u, ĖŠ“ž‘ó.„@ź²N}q1ėͱ‰€ļ3>sư›m6}07­ÄĪė8ØQ«Ćj;æņj©®|č=Ā÷„§„÷f@°Ÿ„GŠåB‹I¹£ö4dEQ–Ó”÷āGūķŸŅaJ¢wž‰ÄąL, #œēĪ_O¢ø=š1ńŽQ}X˜g+^TRYs–‰}ŻV‹MŽ”—ē\Y±Y©’‘iÜ[Ā}Đv\^Ą¹ßŽHµŪ`© ūŒ[c~y‹®`Ūe?ż1‰DZ[hģ˜M‡ÅkŪj…Li…2•[m …ƒ‹ÖŪo{ū Ļ/\r+ C€”Ütāõ&‚*]w®Ź „%ĖŻyއī…„^|,҇śTß~‰¹µ‰8Ÿ~„.™‹€Į|֋|Ü؝yŃ_LxwržB‘Š/›tß&“iĻr_ •W˜oōöė–ÖĘmÄΘŖ•jYz±š“^h*”œ†‘ežvž”–c Y ĘŽ`b;¢’n ^7 ¤L7‰[mĘ’„®ēY¶Ōį§#€„VĖĆ©­T†©„«JiQ p‡­ü¹üN¦iÆĀņyLTµJ±œ÷I4,³ŠtGģš µŒ ńD×éī¶£ęmBÕ ŠøĶ§ź?č?±ŗ Qg=G’¼^āć:I6s¾Å[`8˜ TĄ?½Ü5ūĢ4ĀĪY3rtÄq8Õ0żöÅ(RQ.{ÖĒōSĶ+PŪ¶ÉÓ=I)#—ĖĘÅ&óRwĶĪÉ@$ćjWĻék¼!ēj7Ńö7’RÓ]h³+#÷ŌµĀ.kŪÖÖ!Ŗæ{¶Ų”/%'–Ś5B ¤tuÜŻ<4ĶTޚ– Ł 4ąjź ’6āO‹^GņćH8?@ŃåU»€4!°ēu&ū=źŽé«yuž[›mėō“ļūŒ4LķQŲiłŃµ*ļĀććö+ ńH×]ō™pēņį²×ńŖÅōvQļ°Ė£öQ"ĖģZՁų&¶DźĒ_ś2¾ēź =ü–7åŃbž!ā°āĖ ł’G*ąŚžÖ2£Żü“Š6Ū3{‘2#•Ų~Ån©÷ ÖÜ÷K 4“†ÓO) ÓX’ŠÖ …åwĪr’āMZšĖ!Ņæ(·hÉ䌜üąĘ¼/y)YħŗU2>ŃĮ§-2];I滈 Į¼ćĖźńķ8ŗ÷ĘY£°·o £Õ@(µÓ!eƟ²KéZ# 4°Ų“6%Į‰Ž­xh'ŽĒ«-ī(nķ|Øö‡É*cūó„Ņó¤,lńj£ĆG€.ˆĻį Čƒ[0¹•Xžį§62žCĻ›“4WŚE™PØģ5ÅX¼–„„Ē7Fæ2”I¢9Ū ©‘õ|;…DŠW=Bc•ŒÄ2?j Š~k AśX‡LøęBō/÷„.ķĄDļl‚$ ›FŽi€/uHØŚ§‚MüNJ]c2…€Ń(L’½‡ĘŽNŒ¼GŠ!4ÜOŅŒĮµQku]7S¼u葪”hUłs”UŚAW"¾ž–Y7Š™čōZ8fœĻĶ\$Ž žĖ¦^żm,”ŚĻ~`Įø£ž…WbrÕC¦6$0d­Ļ؂Ŗf–œ[«āįg ¤ē­Vo¹ijĆs°ß­‘k¶ś’²{ŌimīIŒµ+ćAo±øšŁq!0„ŗÉøńrĒ1½¶Étv¾æ¶.”v×5°ĀI?JÅÜpHG?nUó6tE*Ŗå ö Cžu#å ĢAÅi&Ąų?tķ–(‡>$>‰'+:|P<–<ø-ŁŃ|: I0c?©8gėŁ2ŚÄÕ6²ęj5#ųmŌŒļ ŗD‹phP "~sč+M wϱuT|¶8Ex«*«ā¹ŲzļMŚśRl}‰ ü’:Ü83l}AGhž5RŲz5Ź—ünYDxeĒś»H°uß÷ų s–ā&÷ß‡p9ÅVõ‡ómĒæ†ó·_kBҶńhŽŹh©üęļ-ī5fū>ī6”c9™Gģōe ad xźö}w^z•Øč ~ā[|7Łę5fMYjń ås6øVDĆ:ćÅī"T ­kį,Q»®œß¦ųNXČĶŻ4ˆbLāłžŪ׹ĢIWC0Ś!7Gø¤aŲXJ”D“Ö7[ B?ÆÄŌ*Tu?cXöŅ15ßæéĻN'¦…„›OĶ’ģۃ!`µŹ›Ź‚° Č#ĄG€T”€Åk2‚ ęĀ LƒŲ‚KĄæĻ…øĻ°½‡z߆¬»c ©ˆ“!{øTˆrŠŠ&ąµXė;ŒE³q6ŽEé©°žiĪž¦®Ž„—‘ Ls«3ˆ`“‹Ł×؜s)• O<¦Gņ–ɬ £«»˜†ņ”P¦ƒšW iž 2Lœ=6͛ׄž641™øݟD•–®E„”ečų“øqm£›ž\‘Ö…5„å<ĄŽ‚ż¦CĆ#ŒNfÅØµ1‡‰Ø2Ŗ;ˆź†ēT¬ÕĘM„™ƒ®ƒķ°0䯼ģ€Śt«±ę ‰ƒ™Ér³ū-&†l:µüfƈS+·ź·`‹N8ČøĆ ž]-ŗˆ”›€ V¼8:9“øĻ¾ÕźÖ•}ćæ^³t˜cŖĮŅ“›ÖpĆ3Œ°^õ6ÅœN śBżĘ·Ä좪xĆČÜ‹„n–‰Źģ\)ØFœOĢčĢĒŖ2ŠĪĻTf­3`ŪĻ£ō°G”Ńc¬£²pÄfÓ|Bµ¬R,Õ¦cį·żČńÖ)c€ŗb'·Ų˜z½Ūm|Śó©¾æhœAÜ:ń]Ā ³ŽmPżÄæ±ĖߌǜLj˜į—V<ŹfgU捿ŪĢWåp¼{Ļ]½Žę>“ŅwD£čł»Ō„³gꟈ[×ē ,ģ1§ūŁ=JšķÆŻ›Ü§q“ļ,<ß%xńo’Üįøx<ó°}ä^Xõަē Äö÷T¾éēχųż_ģŹgKśīų’īĮēüĖī ńĢOŅż”üAōėŸ•’I"ćöŲXź_„łfųwµ%üĮßš"Ēž1ń”TØh“Éd„E LŠ' įś«ų2ź ČM øĆ¬ ­ļ ŒE°’Ø’H’L’č’š’Č’Ż’Āžŗž*žž±ž¢žk~F\Ī’Ņ’¹ž¹žšžÖž"$ŲŽŚć ’’’XżDżćü×üž žm’‚’Šė<Kaeū’ ųž’žž ž>žž7’’Mk@­’’źžÉžĮ’¶’eq6Ģī@t¤Ģé’Ē’ą’…¦%ĢĄ ē’­’ķŪ’’žźż^žNžp’d’Śßrzōż’Ū’»’‡ż_żŲū±ūržZž˜“OK')6Hwµ¤’Ó’ęüżn’’Ņģ…’†’ ü’œRB’żaż½żšżŖ’’?CžūĖÄšœ  ’+’ž’żM’L’-"š®—ćĆw’~’³’Ą’V’i’šżłżŌžąž„²ń*ĮP’A’<’=’ef\a)žīż‘żmżņž÷žHrē DRśEVa„xކü|üćüĆü”’…’jĒÆVE,$82ČŠė’ų’Õņ³¾DW™’Ÿ’:@os«®Ąæ‰&&Ķ’Ó’i’t’ž,žżżž$žĶŲ °’’x ’~’Qž6žC?įž½ž|ż=żĪż żŌżÅż’=’2’6’6ü#ü·ū–ūĪĻŌõ—²’’’™ż{żŗū­ū^żdż’#’°ž±žo’f’°£Ś×ĢŚ6’D’Tżcż ż żnżrż’’A5’q’„’h’C.ŚŹļżŚż\’@’žö¹øąāÜŻ;L’+’ ’*’Šż×żžšžėżł¬° hhĪŁ+'ŃÖJ[Wk:9ężŃż/- %~•W’J’ŚžÉžUKT_’ ’éžģžÆÆ)+—’‡’OP:’B’Ųź“Ā zžhž—žžR‚ō#qžyžüķū–ž‰ž8Q /„„öÜį’łMKÉŁ|‰,)¤–YF÷-FĖį,'žŠžõžåž"J]ĢŠhbZHŚŌR]Č’Å’a’k’sžežĮż»ż+žžĘžŹžZ’j’(9[fź’ź’@5„“Õē2F2’8’÷üÜüdü\ü·ü¬üÆžĄž…‹„—ØģųI\?O’’žOž/ž{’k’’ƒÕĶE=üö¾ż¬ż J‚Öż|ż‹ż#üü9žaž’Ē©’Ķ’zžrž@’)’æ·’ģT’?’£žƒžāžŹžÄżÆżŃż±żč’ą’ĄĄji“­B9£’°’ÅžČž=žCžžž’ž3E±Åihd’r’™»4`­Ī”’ž’ļüIVq„[’A’eżDż”żmż*’’«™9½¢·­”™'4čžīžć’÷’‘’¦’ōž’(3‘š‡ˆEHƒˆ~v|žežżżf’q’‡‘]żJżżkżC:#’0’¹ü°ü®ü¦üžž’Čė‰œR’l’7ƒ“~žƒž\’b’GX.6ĒŖfŠlŸ‹›’Ž’›ž‚ž‘žxžėžĶžo’Z’IV6VŠąążÕżZž\žm<mėž’e’s’`{ĮŁizĆ’Õ’jżš’ƒ’”üpüžłż”žŸžõüäüŃü£üśżĘż|_øØ§¬ŪžŁžēüąü|ż‹ż’¾’7Shē旙ō~‘å’ļ’Ŗż£ż”ž…ž‰†ü’ų’’%’ßžßž¢ż£ż”ü ügżWż²’Ø’„„oo·­¬ž›žü ülücüNžKžĆ’Ź’ŻŲZT“žvžœż•żŚżāż„ż‹żŗū±ū¤ü„ü ‘‘’’ö’;ż.żžžOif|Tcmnq”Iwg’žž<ż@ż/’A’ 9alūč‡dłŪĒažQžpżEżI:Ø–Ģ»M6³Ŗ{ ’’żż"ż4żĆ’䒌¶G\X’g’Õžšžs›2©»‹‡5ACJ‘žŸž:ż5ż£üŸütżqżQN©¶)5Ćž®žüüŃžÖž`‚FGõž×žŗž›ž4-ŗĻØ’°’(7£±+)L€ž›ž½ūĀū{üwüī’ļ’IS’ųaR ’•’ž’÷’’ ’œü‹üEū2ū]ü]ü[’l’¹ß„•ź’Ų’’õžĆŗml üü)ū ū½ż²żp’f’;ž ž_žDžĶ’³’Šžœžž0žh’˜’3Ņęa’\’ ’Żžń’æ’«’€’0żżØü«üKR|„ŽŲxlžķż\żVżżż?żVż6’'’į”Óoi5$’(’“’Ā’ĖrĮŒ’¬’Sž/žĖ’‘’˜€įžüžgž|žp’‚’­Ō"5xH¼’£’%’!’’ ’@żMżĒżĮż¹’’²€c'$ü4=z’¾’ł’_ˆ±c’A’ažžh"/=iŗž,’wžéž‚ĄńõM2ø­żżęžćžy–}‚HFöŖ~ķ’ü’ō’%…ž®žž/žó’å’“‚Ėv’;’šž”ž’’®’29K†ę’0b1Gž­žż ż¹ż°ż1ęįć’é’÷įwfye) ’|’^4˜oL’<’‰’†’²Ā Ė’ć’‘ŖŸ ž#ž¤ż±żzžvž’’õ’Vr"#Mäž’[’j’m’E’Z’$’±žžZž,ž’żžŁ’Š’Ć’Ī’y’‡’ˆ’†’žrž“ż©ż’’]N%‡’k’k’U’ @I_xd’„’ŠžŖžH`ŗŲQ’q’ņž’8’8’’’0$ ›’œ’č’ō’ĪŌŪĻj^¤’’$@*m_¬’”’uW;›§7ąõĀ’·’’éžĖ’Ø’‚`µ’¶’šž’6’x’Ø’ä’+Gé뿢'$’)’tžšžĢ’ė’&7rļ½’ī’ć’ź’ü’£ŅÉ’Ö’k’Y’:Øq”„ąĪ+/–’«’µĶÕĒÜ’Ģ’§ž¢žkžjž#’)’n2HŽņ‚„§śž’Ožvžāžźž†ž‰ž’’mTżųśÅ’Õ’I’\’’’ć’Ż’€aõĮŃ’¦’ŖžŒžg’^’ł’„’—’b’]’¤’™’ DU‡’©’€ž ž’ ’29nn°’¶’^’a’©’¶’Č’Ž’Ó’ż’B’o’£’¾’ ē’É’“’Ķ’B’’c’T’…v/ ‹’’ŚžŅžL’A’’’’’žĻŌŸ­ø’Ę’·’ą’ /ćłĒŚ’„’qgs˜’Ŗ’’’£’‘’cV0/¬žcG°’‘’t’J’Ė’®’²ž‡”†v‡;@į’į’Ŗ’©’Ļ’Ļ’=?›«BXj’‰’śž#’'D*FOh’’ÄāGFØ¤Ų’Ļ’œ’{’uZĄœ `O§ń’Ń’&’’Ę’¤’P9†ŠćņČÖpnė’ė’ /I4‹©7ˆ²X’„’„’“’~’„’2’>’"5'!ö}’t’’ ’ ÷’d4„’P’Įžœžł’qi—’§’ŅžÖž’’¶’”’”|ˆŠ/AEdŗ’Ū’H’f’1?ŁŲŅ’Ó’’’w’’Ķ’å’Ļ’ę’Į’ŗ’f’Q’rk !b’\’Ę’¼’|dѶ̪'# ŽŽÆ§»’æ’žžźžH’=’<.˜ŸAL…’š’3’G’’!’Y’h’¶’Ą’Ņ’ā’s…:X„’Ŗ’ؒ𒜟F7›’Œ’Å’±’ļ’ē’FPQah’c’ćžŗž|’E’Ż’Ÿ’÷’Õ’hZŗ’Ć’<’H’  ¶’ ’4$yuĖ’ź’Ļ’z”/Wb’’$’=’ų’ų’/’U’½’Ų’©4%%’ ’ėžĻž Ņ’Ģ”*«’ ’af÷å‰k’z’£’™’pvš’ˆ—ŗÅ¼ڒö’s’—’_ƒ1AŽžķž*’!’K<€r=D=’W’’ ’WMĖ»¾’”’®’•’š’Ļ’„’u’’–’lmˆ~œ’‘’¾ž½ž®ž£ž“’ž’7E}L’Q’īžčž„’©’kap’w’ÉžÕž˜’Æ’©æsˆ˜’™’+’"’’üž’|’¼’Ė’’’ ’Ś’ē’YVRFÆ’œ’m’Q’{’l’ā’Ō’z|‹ƒ\M³’„’+’#’>’C’³’¬’ ņ’õ’‚’’:’O’Š’é’C’c’ŸžĖžß’ä’…Œ %Dßõ.8]’X’v’k’\CQ2ob’ ’n’]’3Ļ’·’r’Y’F’.’’’‹’’" ’£’&’#’›’¶’^s®ŲJj|’ž’‡’”’Ś’Ų’|’‡’-’6’’"’ ~{Ģ’Ö’Š’s’F’4’£žˆžżżŽżO’2’kI'@B‰’†’"’’­’š’NEACņ’3YIųž ’śžśžō’ū’ś’„’³’¹’ą’Æ’Ć’b’n’Ÿ’”’»’š’D’$’3’’Œ’‘’‚’¹»ü’Å’°’n’`’Y’4’O’5’3’(’“’’ĄÅ’’ēżńżÜžŠž,?Ī’Ž’S’k’”ž¦žtžŒž’˜’­ Ń’Į’ģžķžŗ’Ļ’Rh,?•’•’Īž³žqžNžėžÅžē’ą’į’č’¬’¶’’’ō’Æ’’’’īž±ž™ž#’’„’{’p’p’]’n’’™’p’ƒ’ўמ¢žĮž’6’HSm’’sžšžA’W’±’“’U’F’y’_’”’s’K6"/ž1ž“żÆż[ž9žžSž’žĘžń’Ķ’Ē’~žžžóž’Ö’ā’’w’’ūž„’’«’²’’?’’W’Å’õ’•’Æ’~’t’~zPNõž’ŸžĪžl’’u’r’:’’4Ó”õ’>’?’Z’i’?>ϼD)Œ’m’ą’ź’’ ’±žŠžŚžņžq’n’Ć’Ą’ģžēž5žDž’’%’X’wž°ž’4’»’¶’M’,’¹žžž’’}’Œ’)’H’³žĄž›ž˜ž9’’ž’m’¤’’īžęž=žAž\žlžƒ’u’ĶĮ©÷’ą’ŁžĆž0ž1žyžžy’—’䞣ā*5„’ ’X’„’|’Ÿ’™’Æ’z’~’’’§’’’÷’ń’Q’T’cžtž’ ’86³’Ŗ’Å’¾’‹’…’ęžÖž’ūž’ꞥž›žmPXF i’‹’ß’ '“’®’õž’Āž»žłžäž®ž±žVžnžŽžūž©’Ć’/’C’Óžģž#$a]k’k’c’j’C’B’÷žāžv’]’2 ī’Š’Ķ’²žÅžüž’„’Ž’—žvžižOžžżėż$ž1žpžžT’x’f|kw3F’’ąžęž’’IžCžžzž,’’»’²’’Ŗ’’G’’*’ ’’žŒž¬ž‘ž‚’e’Ÿ’u’Äž§ž:ž'ž’’ńĶ5ŪŽ6’R’c‚Ų’é’Ńżčżž ž$ž žRž#ž#’$’‰’«’ \W‰D’m’„żøżÉż¾żĖž“žŅžĄž’ōžŚžŅž¢žžõžåž3’!’’÷ž–ž‚ž€ž{ž¦ž©ž!’+’*’.’cžXžVž7žņž»žóžÉžžž.žMž…’ŗ’"bŁ’Z’o’žžöž]’B’'CRĢ’å’d’v’éžźžœž—žÜžĖž•{ø’µ’¤’Æ’4>‡wĄ’©’מŗž ’ėžķ’39×żŽ ÅŁ%$\K4Ā’°’y’ƒ’#D®ćpYdÅ’Æ’’żžµ’¬’ߒꒈ’©’!n|ī’į’’’ŖÜ’Č’\’g’Ķ’Ų’Õ’Ū’˜’Š’d’Q’\’N’ż’š’ł’åžķžņž ’š’ęķ(%m’b’žžÓžĆžyœEXė’ ō’š’Ź’ā’#’5’Œ’Š’ś’ļ’”’‘’Ž’Č’’’ķ’Ą’”’.’%’ž…žž‰ža’X’«’Ø’}’y’BL”ž7Hū’ü’ä’č’ć’ą’e_IJ¢’«’4eo1’<’f’f’FUV’T’'’%’./Ō’Ō’B’@’‹w£— ż„}ķ’ś’õ’hkŒ’’68 ’’˜’’8E’’€’’nl™•Šˆ +ĻŽØ’±’"Ń×@8+ģžŃž³½¦·é’ī’^’N’ś£„ĢÄ®’Æ’’£’Ō’Ł’61uq ˆ•qy[’b’evĒŃĢŲƒ~Å’²’ŖÆĖÉ *ź’Ū’ˆ„3&j—‰Ž’ą’—’™’ƒ’‰’×ÖēŚ/%ppœ«Ģ’ć’ė’ <M^[OHA?‚’†’’’œ’Ō’ä’T_鯬›VJķęņņü’÷’DDčēG>:65@4…‚#’/’’’?`‡™¦’ž’ū’¬Ø)-’’Žž–žG7„ŠB3ćę%&Üéej­ØōSJ”„¤Ó’Ī’#*ÕŠ’ –’ UW:@üż!%\aBSš’ń’®„ŌĖod#ō’ķ’ž§/D$…qäŚÄÉüõ’ś’¹ŃŲß÷’C)x}>L’ ’õž’žó  7[CBIš’ņ’¹’æ’Łåųū’zt”ž+$i’k’OM‰ 43¶Äģévp’ĢŲfwę’÷’’’ng„q±•Ū’Ū’‹žžĪ’Õ’<7t_ž’ģ’¾’Ę’0GŖ¶ūž’Õ’Ó’($VI «žĘž–žŸž==meĄ³Š’É’“’­’‘œ15($·œN<I<obÜ’Ņ’½’ŗ’7Iļ’£’ž’€‰½ĮĄĪ½Ēį’ć’DU ½Ģ "äį"ņķ¾³ü05”ƒwüYü«ż¦ż2BĄĒ7’+’7ƒ–RT<N'/0’1’% 'LRl/SĢżćż‰ž›žYYˆgzžbž÷žåž'‰–_Xł’ļ’’Šrk0*žüu’†’>’P’_’n’¢¢YWt^’R’Ś’Č’ņśIS‚’ž’¶żŗż’’·ŗØ”+(‡’s’’’z„čšŗž¬žŠžÓž4/÷öž’“’“Æ[fÉ’É’ó’ņ’~‚ųüe’]’ģžåžt’[’7CPN å’ī’0B*¦¬ŽŪŻ<9}’i’¾’¦’vlEI%ŖžØžŌä2µ¶Ü’Ļ’aSF@Ć’Ā’Ŗ’”’a’o’x’n’XXōH\µ’Ņ’"’J’›’Ø’ID#yžYžHż4żk’x’žP]²’„’)WM“’§’¶ž°žžž6žBž«ž£žh’a’$(”»@^Ēžéžž-ž¬žŗžšžéž ’üžY’M’œ’Œ’¾’·’!‹Š••"!vk_SÄÆ°’™’ŗ’¦’m]ńņü«’²’ƒž„žÉ’Ö’“Īx’ž’•ž±ž¢’Ä’Wi‡•Ƶˆpóģ/){’m’Źż£żG’5’^J²}’>’†y=FŪžóžGżRżv’’ב–žģżzžYžØ"4’ž ’Dżaż5žXžĖžņžŒ™®MT±ž¾ž‡žtžœ’z’C«ŒŹ­Nž#žå’ųßĢĄ`T¬µSws’Ŗ’Šž±žY’i’×Óčäßą©’Ā’ˆż¬ż‡ż©żc’x’ŲÕ> „HqR":‹ž“ž™’ŗ’<^„§µƒ(’ŌžĆ’’ÓŠ}’}’ųśźśÓūĶū¦«źęXZč’‹žÉž0żużcżżßž’•’‡’h’>’½†¤z<’:’AżIż’3’Üē“‚£†K!ģę'4Ž’ µ’Ņ’OW’{]&ži ķ’7į·żÓż}žŽžĆøńēŪĘc”8ž€žWž†žÖÜ$ Ó{®Zcįü×üü3üØżŻż>w59;#±’£’s’’ĀžŻž±żŁżbżfż’ļžj ķ Ym ž>ž^’’žŹ2-0 uo¾ż¹ż1ż(ż|uTB õ’’‡’Ē’Ą’“ž“žHUŗĘžžœž˜²™Ē@žbžyž‡ž™¤ŚĒB ä’±’N’8’üü ż ż ż*’<’%U]`WėŽˆ—Īąü’X] źĆé& SS£øÅ’ń’ ž3ž’1’ NMż’i’c’ė’č’Ėæ1€YŽ’m’±’¤’µ’ø’   7C0@Ŗ’Ļ’ˆ’¢’:’\’’’S’J’Ŗ’~’I&Ü×§’²’Žż¢żžž¾Čϔœė.#  ¹’ķƁL˜Œž;ž7kRx$+ńм°;Cś’Ožož­żĶż}’”’Ū¤r(ī’Ņ’Ł’6’\’Źżž‘žÆžüqX€@ Ū’’šżČżqżØż¹żĶż±’Ø’ōćéŹQDīÅ’ ŒžÓž’’ƒtńŗ¼‰›gC"Śāؽ1\tsėćL@÷’ē’ćżĖżÆž¶ž”’“’\’t’J’B’–˜ĆĘ&4}†¹Ņ.n~ƒ’u’Ķ’²’yj@5Œ’ˆ’ Ō͈‚Ź’½’64—“'‚’ÜŚJGMeSi'’2’k’x’õ’ĻŚ*&up©±ßļōž¾Ļ #^EkK)’D$Šk`cĻŽ ’’:ž$žśąæ¹óėżż žeż‚żįž’ß’æ«ŠĒ™’˜’!’.’’)’Ųž ’m’‚’S?C& µ„ą’Š’tr+µ“įĒT(ķ°ŽžŚŹ’Į’ūž’ž’+’Ė’ó’Oq$Ių’\td’”’§’’ ’ Č·ōāÓž³ž×žĀžƒ…Ą¼- ų’=’*’õ’ļ’ ÷Č’¬’Ež4žužOžŌž®žé’Ķ’‰„’Ą’˜żĒż7’]’X™™Ä‰’©’“ż żīżüżQ’m’¹žĢžĘżĀżpžnžpXe@Ž©ȚW>l_‚s>K_T éL9­ž°žEżVżŗžßž—’»’}’—’‚ƒx’įżŽ’¾’īž ’ ’Ź’łā’ł’ š<#0’’Ėž¬ž’÷ž†qˆ…(’/’MžIžKžXžG’W’ę’ņ’N’[’ąžóž’<’=’^’¹žĢžE’V’|—ÓŌŪ’Ō’g’O’ęč%4x’€’7’8’ąŻ©ˆ?µ‹n’\’īžäž’’óžöžŃ’Ń’Ÿ!&¬Ē ŅMžž°üŃüÓüėüƒž‹ž­’™’’ąžpž8žužbžržžNžvžGžtž—ž£ž’¤’Ūā ¤ˆ@(Ęžæž7ż+żWżAżĘž­žs’c’T’c’°’Ź’v’®’Īžņžūž’e’l’ž’Œ’"ū’$ō’½’Ÿ’’’’Z’r’Łž’ķž$’=’^’¶ž”ž‹žežœ’f’ī’…’i’Ć’Æ’KZÆ’ą’#’d’Ā’ä’# ¢’€’‘’v’œ’’Śž­žzž&žĮžŠžnžožĻżóżXž_žD’/’*’=’’h’®’ū’É’Ļ’ü’£’'Ź’’’Y’~’M’½ntVy»’Y*’Ņ’Śż%ž.’’‡}“¶Æžvž<’§ž:œ’"’ųže’¾’ąEx’y’Śż³ż’ž’I ó’¬’_’Ų’”’Žž’tžżž’Ļ’N »’šž˜žßżž’’Zč’+’”’–’OT’š’ž¬ż“’’Ć˜‡Œk'‚’’+ž<žƒüHżÓżŚž„ńųžœžž_ž„’„’ų’s’j’„ž¹’N’,[Æ’%®’/tJ’¦’ŅżAžŽž¼ž ę’°’{’~žižäžÖžÖ’š’†’)’%’%’·’õ’L6’žžcžž—žŸžÖžN’©žÖž’…ž¼’ ’2’7’Kž’ ’“’XoĄ’vGæFŒö“ž~—’Ÿ’h’”ž‡’’7CDy’’kž(ž>žgž£žÕžcž!’ž ’pž?’’’å’Ęō’ˆ’l’Į’ƒ’ä’ś’·ž’žÆžž`Ų’Ģ,Ž’ŗ’’v’,ž±ž žUž­’¾’elV’<’r’’łžÜžÄž•ž`8ä銒±’‚ž›žž…žŹž¬ž0'«õwŒžČžzUƒg’”’{’’Z’ ’ƒ’hąć’Ļø’p’Yż żEż{żŁ’b<vA’’ĘžJžqż\żóżEžp’™’|’’,’cž’’‰’õžõ›’¾’”’‘’”Éśž{ i^čX~õ’åżcžcżĘżD’L’^Eć’ I’ž’o’’7ļ’Æ. ŗ’g’S’ >uŪĄ©’r’d’R’’Ū’/Ų’ מćž0 åŌķęU;Ž’J’x4©Ņ’Ą’ŗż„żažž›’\’›æ0†%’c’e0ŒŌ|÷žłž_žČž’’ˆŗņž ’«’ˆ’x=įĄ_hØ’ć’EżIżMžž}’Ó’o’aal ’‡’6ε"Ž’_’(’÷žož‰žę’1kW’j’€ż\żŽż”ż8’’ć’ Ł’.¢ž ’ˆžæžv‚4 m>ī’Ļ’Ļ’Ū’ō’~ƒžq÷’Æ’æ’Š’ˆ’ķž»žž’¤’Ø×9“Z’¦’éž ’$’-’m`öż’1„Ü籤³’d’’0’C"Z‰øž/’=ž±žSzAØ \’ĀžĢž‡ž³’Š’³ Ķ’ū’=’’?Ō’Żi%ūž\’>ž’6ž’ĪžD’šžąže’łž«1{T’%’WžŸž’£’ Ņókē’L’’Łž¶’č’ 8Ÿ=’|’ Ń’2Ē “ytvŠ,¢Ł’!E’/’ģž•žP®«T<U`SŪzĘ’…’‹žžŁżžžĪžė’õ’3ć./źÄ’ĖÜoL‡1¹’‰’…’—’½’%mKIč’„’ń’—’ö’'’f’ĶžP’’’ó’ Ā’u’Æ’J’Z,Ēī%X%’’辇žū’f’¼\>BŸ’Ń’gxœ’’’’Ćž¢’p’/?ņM²ģ÷/Ņaž žy·»’F{š’y’1’p —WĀĮ»Ģ÷’ą’£Z5Ģ’BžųżżžüüżQžYĢø Öē£žˆžéżźż‹’½’€’Ķ’žUž¶’­’õȲS’Ąžė’Ę’%9tž„ž8ž2žé’Ļ’~|‹ž-„’Ö’ @-JĮ§m’>’ĆŁ˜MRś²žĢžĢüżN’ ’\©ģ?ž<ž•śĶś®üĖüJA/SĶžpž3Ł’X'ķ䉕~’~’öūü²Üż<ü›üżżqWh=¤żzż™ū”ū%ūPūĻūüš’Ń’ū äßIž<ž9’3’÷w’[’Ģ‹U a.żłüČśĻśAūˆū¤ūü_ūµū»üśüŹ’÷’ÜłüŖŽŽ«ƒFTõ©’H’€Kj’c’¼ūŲū“śÕś ’<’®ū“ō‘żÉżŌżüżĘē<E2’’ĶžžüØ¾Ć‹žUžŹž­ž *’K’füŗüŌū6ü\żČż’‹’E’ˆ’Püsüžłéł¦ütü6’ŻžĆżHżJśČł˜ūūü’­’FA@øćv¼E”.‹žc“’Ųż,žČž’Żž’Zż\żiž?žCüŹi0ƹڒ†’t6)pTbi}›¤ź¾ž$’õūdü-śœśŻū)üc‹0Ü’©’ņøĘõĮDļüÓü-żżČžŪžÖżńż0ūIū„ś²śxū‚ūf’q’x‹2żGż:ūEūžžš}Q,Ā„MD¦ł³łgśś¼’Ó’±»j’Z’¢žž'żżÕūčū’ż%žp’†’žžµ T=ŪĄš’‰’X^JQ=’6’6žž:ž0ž’’žžGśUśLż^żEU4BĀżŅż±’Ō’ŌżõżMüUüuoX7 śdśŽłœłn>YBu’L’£ūtū·ü±ü5’l’Uż¶żVśČś¶÷#ų§łéłu|Ä‘ŠNžž|ūPū’üeüŠ’L’ødBT?h’’’ü[żīü_ż*ż’żxś§śk’g’xn\FgūHūßł¾łŠżqż¤’ž’”’‰’H’8’†’o’•s[<" 5I‚ś¦śÕśū:’œĒż#żīžŠž–—‡…ž~žéžĢž–wžSžŃ5£›’Æ’Ųžéžu€”ż¾żŁüżixü“üeõ^õS’(’ż Ō č©ž®ž8žžĄžśśuc‰uCü2üü*ü.€ü üœūŒū˜eo¤ķģŠ’Ų’¢žĆžY{°æ{€¤’Ķ’Ļ’ĖžąžńūŠūb-²mā®žūŲū­üøüšūüCżYż)"#ž žąž ’žHž“÷Ķ÷Ź÷Ų÷*ż żÕžĄž%’’Gżż’łŻłüüšžģžnž<žQ’#’ēŌŠŒźūėū”ł§łR’”’3{g’˜’ĆūÕūm‚%<õˆžwžµ»XTMžFžŽž·žL$šžrž§’w’ėø0ń›ž^žß’Ŗ’õę7X”oĶüHż»üBż|ļś=ž¾0żżžü¶ü†ž ž²ž,ž«(Ļ’Xųų"łłīXśˆśżTże’³’łżIžŗŁĢ¾5śc*īÉ•¢-ųTųÓśū9R^N‹Yȝōć8żPżŅžłžŒż“żB’g’°¼šųX|ŠćüŽ®nÆSCäRžņżvüGüm˜ńżž’[’‰žŻžFś©śIü‰ü?’Y’V’5’ßƁāū½ūšłšłŲüśü’µ’āžŅžXžžķ’±’R0’’”ü«üzü‹üŽż¬ż%:;¼ž™īżPżū(ū¶ž®žõĖź—}ü üżØüć‹{F,’’eżż&÷Z÷‡öĶöŚž’5[žRžµ¬¦¶N‡}üĪüR’¦’=‚䕇ļ’Ö’øųŒųūŅś:ägł’£ž,ĆF ½d§ūHū‚ūĄū$h<z’’’FOŃß>>ŖšĒžĖžųżž’C’²ūĀūłłĪż¢ż¼y4śÓ©f\+ž0žBQŻķĶŽ8u§Ńżžƒüšü ‚g€Qź½`Jļłżłž÷©÷mū{ū% ͹W5āfjMWS’v’źżž’2’P[Œ‡ņGžSžŽüŖü"4äńĹ߾q²–ņ’@ż<ż³ūŖūnžgžćį#b ~ Œ’©’šłś ’óąż¼ż±žžŌø ’Ÿ’uˆćž’6żZżY–Ŗ ®ü¶üĀł¼łTųOųŽü½ü<ōęÉōūćūIžCžż’ # ^T‹Ž‚“ 6€’Æ’Ņżž™»byųžīž-žž ų¹¦įżŁż"üüŗž”ž—’…’ćæµ”’œż“ż8?æžĻžņūü.’r„µÖż'DzŽž¹ž½’Ģ’”ŠÆ“Tż$żlż:żY’6’düIüLū;ūTž/žNHŪŹLWz†Į’Ō’ż+9B[ %ÅŚźõLg‰š­» ŲŌĒø(’ ’Ōžµž8)üüķüóūßū‚’|’įÕ$°ž„ž€żƒż„ż»żoˆ£Ęī –°9õ’¤ü«ü¦’’B.šż‚ż@’"’V8Æż”żD’?’”‘Œż…żłŻą;ż?żĢžŠžGLbkYh–Ø’‘’ ’'’žx|(`’N’YF ’’x’ńŅVEMDŃžĪž%’?’ę ¦ŠFbxˆJTń’”żšżSž\žj’^’¼’®’1ˆz#ž ž*ü"üÉž¼ž®ū†^H;󿖾¶ž ’4’NxĶģ# —£ƒ›õ%2õ’.wcēČ(žžQż>żĻ’»’™|bXĶēõ’bż‚żŻų/6F“ǐ ÕĄE/嵞؞kžXž!žžķžčžäķń’ö’’’‹˜Ż’å’SžXžĶ’Ļ’ńķĄĄŁŚ!)éžóž'’/’|SJš’‡’„żjż}’r’³«ŁžÜž“ž±ž“’“’)2œ£ōų„ž°žÉżĶżOV“’’ ŸĻ×%+äśźśĻüÕü–ž’’{żxżožaž¹ż“żāżŅż®Ø¶¤Õ’Č’įžĪžÄ’¼’³’¢’Č’Ī’’ęńMl/]’*’ūżž+1Ŗ—`žQž×ž¹žŅĀ„’t’3’#’E>ˆ|±©i’c’Õ’Õ’;A÷ż?Pųž’›ž³ž5M0J ŲĢ–G’9’ķžßžu’`’é’Õ’¢…u’_’Cż<ż®żæż·ž×žˆżžżlžžŽ“µ¹š–ŌĶ•‘ŃÉĻĻśö›£ļ ē§ĆĮž¼žõėģŠ\Äž¦ž}ż`żåžŻžöż‘¦Ž³€”Ś’å’w’p’sf»žŸž‚ūkū,’’  ńżłżŲżåżøĻJc~–ąė—‹ óģ’Č’ž’ˆžnžŸü™ü¢„ž±ĆŖžĀžüļÕüļüwūpūżŒżPž"ž8žžŅ’©’Y’@’ü ü9ś<śwüŠü&°Å£’«’8žDžåüüü\żkżĻż×żdż`ż2’-’ČƧ¢ßžŪžj’x’.’2’.ž4ž /ŗ[’7’č’Ģ’Ü’É’234EŚł #›Vd]ZžžżÅ’ŗ’‘„å’Ń’ŠÅŅÓķł)?’L’–ż”żJ’M’O@Å’³’Fž6ž\’T’Õ’Õ’Zžažģž÷ž™©’&’ńüņüæ’»’’öžžłżå’Ņ’³’²’msŽēŅā&™®ėśDNUU¤˜Ŗ’¢’¤Ÿ!ĆÉÆŗY\Q’S’Œ’}’ŃČ`PÆžž’ž{žĶŗ©°+:žžµž¤żĮż-„:1ä’č’f`8żFżŁłßłUü\üX`!"’’Õ’Ź’ žśż/ś)śŃśÅśāżĖżōżēżŃ’Å’²½\’k’’ūüt’š’3Ps’}’ ž÷ż«yY3Ŗžžqžqžš’A6Mēüie‘Š’īž4żż³ū ūčüįüĪžĮžĖ’Ź’ÖŚQgŹī5üAüžūü¶J4c’5’„’}’&BSž)žD’l’C˜¬jeV>žüßüśżŚżīžŲž®ž˜ž÷’ė’EJļ¤Āī’@’W’&é’ė’użcż$żżŗ©÷ļ(’’!’!’ŌÖÉßąžēžKW•“”›&I7d’c’·ž·ž2’B’ē’õ’z’ˆ’Ug7?ƽUżOż¦żœż]KŃ’½’žžpžXž’’’’s’‡’Č’Õ’Y’e’Ą’Ä’\’c’Ŗż¬żxžtžšģЁI’I’¹’ø’§’®’‹’›’)6?CÓżĪżx’s’š”h’W’Åü¼üµż¢żZž_ž³ż ż£’Ø’–›„’]žpž¢ž²žĢ’ā’‰ž‘žØžŸžxjubŖ’˜’'’’yžxžØ’ø’ĄÉ0’=’F’I’ÓäÖÕ ż żŪżÓżxnA1迊ż{pŒŠ®ü»üpžwžŲń8G’’™f’^’šž™ž\H?1Ęüµü–żżz}š“b’v’už‡ž’"’ĶŹ’‹mžSž§ü‘üųżģż‹Š—’‘’Ÿż¦ż#u‘$€žž¼’·’»’ŗ’†žyžŃžČžß’Ż’¹’¹’ŲžŌž™’”’ƒx åžŪžRžRžŸ’œ’?Iźī"Ÿ’¬’i’‰’†’’’zžwž€’m’ó’ėžÅž’šžģą  ėžöž©ž¶ž°Ę®Äū’ü’ ’’F1t’j’ĶżæżĒżÅż%ž4ž–’­’9 *©’¹’‰’˜’/*¾’¤’Püü:üü‘’b’ń’Õ’­żØżžž’GuG|š’-FO_ZžUžMż?ż£żżV=*ZLž„žŠ’Ų’ "‚‰™’’’Īü»üį’Ī’žņŗž³ž ž žēöéöļÖå6T” ’’®ž•žqҾ;;ž6žžžr’‡’”’¤’«’°’ĖĶOXŁüŁüÆū®ūūžłž…‡…… £Ø“ Ugē’ō’ńżņż“’‹’—“”†XżTżążŁż„’’O’H’ žžż~} ęüäüt‚é’u‡¦­©¬\’Q’ųžėžė×üõß’ę’²żĮż"’3’)48I‰”įŽŗū­ū»ü±ü”—(šüƒü’śžFD’…’žž­žŒžœž`žnžt’x’ś’÷’(’’K’;’ "’’žž+’/’`jPb«æĀžÕžƒ’–’Ø®<5Ń’Ą’įÓŽ’Ķ’żöüßžÕžzp ŖžńšŽ”>’P’^żsż^o]aś’š’U’>’»°’’ü‚ü”ūūż‘ż źškv“žĀž^ūfūHżNż²§öžŚžšüŅüķ’Ń’OH8’E’3z¢¬žÓždvDC ī’>S+žhž+žžNP)IŸ¾œ»ņÓėō’sżgżžż–żr’S’#5’’ļżįż('ĘāŻśŸµ¤£~i4œ_Dż ż™żtż^’W’Ó’ä’0RžĖB$Q’*’Ģ’Š’…z  žłżąüćü&žDžžŻU˜ ’B’ė’liöžŹżŌś“śīü°üŅžžžęĘ3p’q’¢žÆžŒ¤«’Ŗ’µüØüˆ_—]ĮŠt?’%’Złƒłąś$ūh_«æöTžzžq€˜QL0’"’†ūxū$żż!)ė’ ‡ż¢żŁūüūˆü‘üŸ•< Nžžō”_™žhž«ł–łµūµū»’Ü’ŖĶ?_±’¾’’’œ—éžĻž1ż żĖ³kZ-Ii@żxżˆžĻžiž§ž]ü‹üÅüŲüZ’O’šU0aDpżNż¾ż¶ż)&ÖąXübüźłķłÕūŻūž’żńżćżbüFü3žžcDF-żżCžHžŃ’õ’¶üŪü0żTżl…°¹#)5,’’Gż1ż±’¦’]’S’¦’ ’łū”· ¹żÉż żżõ’3 ¢‡xXłō"%2k’†’5S?\’¦ż³ż<ż<ż]’_’ ’’ļ’äüÜüß’×’ øü©üžżīż»Ŗ:,­ū”ūŠżwż™›YP÷’õ’3ż+ż.ż'żü’puUžWž>’N’Łā¤ø09GTŠŽ³¾mž|žžž*DšØćčGS‘Œ Žż}ż·ū„ū«’‹’äŹ¾’“’&ž ž\ž5žK’<’ūŻžĶžŽłŠłŃūĻūZ^_žižõūüž+ž4’F’$œÆ½žŽžų÷ųóųł’,’ĒŃÖÕ.’1’³ü®ü4ż<ż·ž½ž”ż•ż9ż7żõ’½³¬”÷üīü!żżjž]žYžAžJ,½ŸD(ß’Ź’ņē…ž{ž†ü’üŻ’Ś’Č’Ų’öüżüżž’ā÷m’l’’§’Œ’•’Ŗż½żžž8M) ’’óČŠ’’]’X’ ’’öž¹ü©ü`žUž³žØžÜüŌü‡ż}żßŃĻČD’2’łżäżiU®ž¶§ĶÉ’’ł’ƒ’˜’‹‘7Ś’Ś’ A@°ż·żļüōügm¢“ČĪo>BŲ’ė’-7e’o’ĆžĮž÷’ņ’­žĄ·ŽÓ÷’ö’)’2’?ž?žŃüÕüFž?žń卒{’ŪžČžž†žœ’’3"u’o’dż[żY’c’ßę?’N’čžöž’ž»Ó£’¬’gž{žBžHž†’’’MWźéńö°’¶’ ür’l’*ž%žĆ’Ą’ĪÄŽ’Ō’į’Ü’ž’ņ’ž ž½ż¶żj’b’—’Œ’h’W’Ą²īM’C’c’\’i’i’‡ż’ż3ž6žjt…Ž|„ft|’„’1?™«ļžżžž,žé’ō’_g>EÅ’Å’7ž;ž~ž}ž„ž‡ž^žWž/’&’>’-’+’’M?ī’Ū’Hž@ž9ž*ž’ ’ui:6ÕĪ ›’Ø’¹ž“žSž_ž®µVd+’.’š’·’š’ž’p’Š’(/¤™^’_’J;›•y’m’QHtu%’(’už{ž}’‚’§ ŻŪ0ń’Ż’½« 2ž5ž§ž°žSiŻ’ē’ó’÷’ĢžĢžvwŗ’“’mžmžŠ.3'÷éōŽēЇ'(ŲŠd\ė’ä’ęÜ.)ŠĪ_[Ž’‘’µż°żM’J’)$LB*$*(ŗž¼ž'’(’Œ’ĆŃ/ž-žŪżążœœ"(‘YS·’Į’•—S[ņō–’×Ö¤’œ’GHŗĄffYž_žnqłūfkČ’Ī’¶“ž’ö’č’6*ņUP²’¦’ŗ³42½¾*’'’x{GH1,+.’’WiģžżžLRŚŽ%(74įā³’²’[`EM ' Q] *340÷õ¾°­’™’¼±ˆ~{söžņž~x µÆć’Ü’.’$’å’Ū’;1tn ļł(8a’y’o‡;QļP["ū ’„’··x~TP % „’§’’’JžCž$’’īć“ž’Ó’Ą’*ėą)ŪŌņ’õ’ Üē=’F’ –žKLļ÷O’X’HYk{¶Ė'ž8žņj{’’H’F’…|viŌĘ`X  µ’“’Į¾2’+’ÕĢ¢–E’1’†t\EķŪśļ£™ē’ķ’Ļ’Ö’0>ęō†–¹’Ä’dqėņ˜ æÉenŌ’ą’½Ķ&0"ĒĻ÷(+ףµ¶UN¤žž*’’µ®jVOD)’’œžŽž{’r’š÷ź`Tłå|tį’Ō’šœ„’’X’b’ž¦U`PbD’P’¹žĻžY’m’!ž2ž»’É’}ŒO]Ļą’¤’’'’Ü’Ž’OW ž“žĀż·ż=2qdžž’žX’I’ˆ€ÖÉś’ęžÕž ’ļžąĢ³—I5@’,’®ż£ż/+qxę’ó’rž‡žU’q’h’†’˜»šh’|’Ž¢Ę˾Į8<Æ’¬’Ļ’Ś’HR>’J’Tž`žU’^’ŹĢ¼µD’-’§ž‹žsRjK4žž’ ’b’O’=ü<üŒü€üš˜F9Ē’¶’I>_O[žfžŲżåżā’Ż’>ždž9SuŠž”ž£ž’’ŠūÉūv’s’\Pc^żżžž<’J’ĖüŹüĘžĄžõŁāžæžžZžµ‹J4’‚’äžęžĻÖDL€’‘’¬ÓŽBżCż“žµžjf$#¬ž®ž»ČĖ’å’āśųś¹ūÜū–ŸŠęÜƾŒp¾’Ŗ’bL(!ÜüĶü5ž9žhbTYpżożļüāü±’­’}h2֞ʞ7!DKŹŚė oż™żż!żæ’Ū’BU3:49ūžžžs’„’Ź’Ł’óżžß’ā’ _QēżÅż8żżęž»žJžžŗžžmG’ņž¹ż²ż÷žóž5’E’ßżėżyż†ż°’¶’®µÉĻxˆĘé²żÖżaüœü 9Ė’sž–žš’ :Djq{’k’WL ’Œ’ÆžœžV’I’ä’Ī’ŃžŹžCż*żżżŹžšžV§žfžRżżŻžµžf’Z’ž’ż’’0G•·1 ’F’śżžn’’’ü':g°ų°šČ’F’ņżž“ĘÉĆrYWž5žÓż¶żsżXż›žƒž 咊’^’’ĆžöžØžżž”žł’Ÿ’cvž:žīżÄżQMb~9hhžŖž5üoü®żāżŻ’o€ˆŒ™š);L}#ü\üżųSłõūUüž_ž“üŪü:üSü^\ś<5ćažžq2N!š’‰’'śś{ü…ü?>€’f’ęž°ž‰'¤!Ń’rżIż—žžžZ¬ž’Ēł0ś‡’źe­äūüźžśž‚’£µ…„°ßbüücż¤żŪ×üķüī÷ē÷Įü—üŒFHżėüožžøUsż3ż%ų’ę’Ń’#żż£ž«ž-˜š+1‡†ŠŌ„ĻÖŽżźżžžēæęÄšw¬·ā?½ŪFdź’ś’’’ž’ąžéž”ż–ż:ž:ž=:i^†t+Ēž§ž üēūŸütü³’~’ ä’ēż±ż•żrż+’’āŲvz”žžž żż€’‘’ėō%&1ÆžÅžŹžćž{žžžž4ž8"G 7Q_~žsžåžŃž½’—’ēž¹žĆžf@ā’Ņ’Åžæž”y„ųž’-ž3žžž÷ūļū2ż)ż&äžķžėüśü·’Ś’‘Ā÷ž&’ ž?ž<].AŖž§žäžČžéž»ž’ėžė°;ßµ ŪŅŚŽ ',/ĘÉl’b’^’W’‰J’N’Nž^žT’u’Õ’ģ’ Įü#M±Ōqxs’e’Ķż­ż“żbżņ’¾’ä±g8°š|iĮžĮžžžw|.&ÅĮģ’ß’0.—’’‚ü“ü7üSü ž1ž†·Ęói––ž“žóž ’’­’’•wéĘąĀƒ’p’ū’č’=9B9ľˆ’’×Ė‚€čžŁž’’ņžģž žž}’†’µŗZhA’E’ĻžŁžĶžŃžBžDž©’«’ÓÓōų:ž:žLžLž‡’ˆ’¢ž žę’ė’$#:G†ž”žžž "¤«hk{’t’Gž=žńžÜž>*†qteD’6’ßÖ??8+LH·„fT«–y-%+:’ ’žžĄž?^Õüä’Ķ’ģ’ o’€’<<ŌŲŖÆq’s’ŠžŚž÷’ž’=>ÉĒ|meNJ’.’¼œĶÆ’öž^’I’_]ؤéé02˜Žrn™„|žpž£üü-’(’tvŠ–ężžż2żjžŒž/FøĪ:žEž.żAż¦ž¶žŽžÆž£żĘżD’i’N}:N…˜G3ź”d¾n-änž-ž^’+’¶ ia S_Ē’Ā’ŻżŻż’’{’±’£’Aż6ż]žhžŗā¢ę³}4•tµž’m’^’ŠūžūūÅśžŹż!žŲżŻż±ż”jv“ųäģ —±’‰’ĪB Ņ’Jž@ž«’ė’pČ0;Ź’±’ø’Ņž³žGüü^üü©’W’n0W<·ŗĒēn•Mošųū’풚ükü§üwüJżżōüąü‘ż’żž5žžPž”žöžr’Ń’j’»’Õžūžg’o’Ö’¶’÷ž¾žMx=M*ZOVOK`‰ę’ā’@Ž\מ–žæž€žr’G’~żpżżżx§ģ1tĮŹ_Hqמóž3’6’?ž<žżż÷ż¼°XU‡€¾’²’˜ž€ž”żrż/žłż¢n"’čžżūŌū߿ȿ")€­3`’B’oü”ü·žÕžO^ĆĪ=AŸ’­’’’‹’›’ŹĒE>ł’Śž¬ž4žųżu’3’®rP"ęĻor]{†®LŠ’Įįq’’äžīžQ’]’$ž1žž)ž 'ķä ę&&’'’ä’Ó”Źū­Zß-ĵĒĘƒ²² šžž×żŹżžžøż·żPžež¶’ā’¶žöž9ž‰žĪAŠ?©Ā”–j’U’Qż6żóžŠžéŠ_E2#̵m7.Ä’Ž’t’<’’`’Äž¢ž‘’€’×ēSlᐒ¾’ßž’7ž[žæžßž2’@’ļżõżŠżÓż“’»’‰1’@’łž’ä’ė’HHæ­īM) ų ’’Ī’³’³¬}€9Lęžžžh’„’ģ’’’ü’Š’Ó’]’T’?ž>ž,ž%žē’ź’– }ˆ×ę%•˜ūōČÆ ’’Ł’“•-8*¦¤z…ŗ’Ī’I_éŗ’Ķ’‚ž”ž5’C’Š’Ü’g’p’Ć’Ō’ģ’ż’~’’’.=·Äww1.ȵÜÅš’Ļ’ß’€_?ŽwźÓ+’&’QžJžŅ’Ū’žŖ”’Ø’’!’m’†’{’“’e’x’<’M’Z’f’„’‰’vžzž:ž8žī’ļ’–’Ÿž’g’_’¾’²’c’T’“’’Ė’ŗ’€’r’ƒ’y’ż’É’į’Š’č’’<’ķž’æ’Ń’‘›ZZn’a’¢’’’XC¤‘ū“ÆķčQGE’?’Č’ø’õ’šžßž·ž­žP’I’‰’“’Ö’į’ę’2NY}§’É’ĖÜĶ’×’¢’”’Ś’×’“žžžržĶČŽžÕžąžŃžō’ueĀ©C/"Ü’Š’ŹĢČ’Ó’X’g’ÄΤ¹ö’ł’³’Ź’žžżž„’µ’äē/3P’P’kfDB÷’“žŖž"LAś’õ’^k|’†’¬’Ć’µÉā’ņ’‹’š’gk’{’Āž¼ž¬’œ’ō’ė’k’c’Ü’×’deŪ’Ż’Y’T’Ą°½ž®žž žO’>’’žž£’ ’śBVęź’ÉžŅžL’X’ż’Œ’†’’’w’n’’•’āžćž’’=’@’Ø”…’žž€’u’$µ’¶’‚’ƒ’’œ’sƒ ĮžĘžžž‘žž‘’‰’0- ž’DC/!Š’Š’2%;1Ģ’¼’m’b’;’/’“’±’9;±’¼’u’€’2Ą’Ļ’ĮžÕžźžłž’%’‘žšžŌž×žFL‡æ’Ę’ė’ų’NPķ’ī’l’_’’v’b’C’€’^’U2;"’ ’š’ė’¢ŖŽķ2¹’Ļ’ž7žrż{żéžšž×ŻĘĄe’n’ÖžŲž’’C’U’€’Š’ųŅĶ›’‚’]Ņ’±’’ćž ’ųžH’>’ ŁķĖ敳͒ė’]žkž—ž„žV’R’u’t’O’I’öżņżGžLžCLś’ji/’’}’n’G+÷’’’¾ž©žicšņ Ē’Ū’)’-’äžōž¢’¬’!’œ’³žøž5žFžTž\žt’ƒ’e’n’āžļž+’.’Ž’ā’®Ŗyp-(n\¦œn\Ž+’’Hž9žqeč昞—žÉüĢüBžKždrõ\nz’†’7’A’OžZžöžōžˆqj&%õö·ž²ž[ż\ż¾’¼’ö’±’¬’T’A’=ž.žž÷żų’ē’ohĄ’Ļ’’%’’2’Ōžāž®žÄž ’’#’*’F’I’Ł’Ü’R’Q’ņžöžĻ’Ī’J’N’®ž²žóžļž9’<’Ł’Ė’īęq^2’’a’R’ š’žžīž!’’wv“¼TWo{% ĆżŠżķüųüVžgž’ ’žŖžÄžŠžĄ’Ō’óū'āžćžģ’å’GFŻ’Ī’ę’ß’Ī’·’¶’«’ęŠwe#’’žżż żżüō’é’½ž»ž_’l’ģ’ö’X_Õ’Ż’@’D’39Żēūżž’%’Śļéžõžwž…ž[]žŸč’į’x’h’B’;’ū’ķ’ŅŠ96ū™’œ’Ō’Ū’¹µ^aRG’†’įžŅžI’9’y’y’˜’œ’ĒŚŸ·ąžśžG’N’°§lcÅ’©’ė’ū’w’p’žžćžŸ’C’ō’ā’Cšģå„’‚’šżhž±žµžxž?žEż›ż”ž…žĀ’f’Æ’;V’<’ø’Ł·†&Ū’_żtż¤ż“üĄ’ ’ˆd¤žžžżFžŽ’ŅdHsūÕg,wpv’’ žƒżńü²žøžJ’¤6’Ž’Y’:’X’dż’Źž’Ą’ōž’«ž­’ĻžRžvž£üŃž2’ ’x5žŁžę’AĘϱ’±ž0žŗžžA’³żųžm’s’‘{ Cż—Y’,G’÷WĶžÉ’¤ž8TŒĀkŽ’¾’Mék1’H N·’Y¢’QĮˆō›L’m’Ö’oSßY’¢’T’j ͦī%ķ¦Ÿ.Ÿ’ĒżžžÅż Xłæ[®’JŃ’3ī’UŠüSżŒūĆüžž”Ų’X¾0.’m󾄡ū­üęłśėūÜūšżōżāżWž"ž…žž’Ü<É*Y’Ķż ū›’:üŖķ us’Ä@žČ’™żćžYüuüąūLüżzžĘžaÜžõ’’x’ā_ÓĻ)ŹdÕA¦Å®ē•€\ ć….:MŌ’Ūp¤å’ĘżŃżŁż{ż c: ę’Č’]’’³Y«(×’øe įÕ’ žÆż›ū“üŽüążģ©‰øEŸŲļ |ųä÷¦õvõ”õÓōšĄī§ķjģņŽš÷ŚõKü‚ūBI˜©ƒw% ” é  Y ö   OŠx/F_ę¦Ūzž’’ŌśEś*÷§öDų¶÷jūĒś¬ż$żüøū³÷F÷d÷.÷ÄūÖūSžhž’7’<³Ńc‡ ĻÆŽ©U’£‰ü^üŠūęū‡’o’Ćśqśņńxń^š°ļ§öėõśĻł¼öėõ®÷āöŚż:ż}č’¾žFžQśśÉöŸö"÷÷āłś_ūŸūūƒū£übż™’iZ@ a Śąģœģ vå ” J8ųé÷õõģōЦ¢.jSżƒüB’澄ż,ż<żoü2i ¹}ņņŚÜ ܟćĖćšōŸõ+d #$‡6b8s"į# Ÿ;:‰jKe$Ę$§qņh]žōżĀ’kžĢ™Éœ¹¶¶ÕņŅń™a>t-.IRJĆWYXļjFmWpRsfyJ{…}’…OR2)A*˜A1Bga‡a­0Œ/ęé5čéÖÅŌµß(Żį’ŽpÄóĮ/Āüæŗī5ķmdØ i žu Q ‰ ›4±'Q*6Ä83ł5$3%õWößķÓī`ßJßOÄūĀÕ²0±O±ZƱq®IµŻ²Åæä½ģĢ1Ė)ܹŚģē!ēōėˆėCé é­įµįŗŲي×Ų=ÜÖÜāŻāöå)ēoā”ć¦ŲŲŁ¦Ō Ö/ŪdÜéćé®óuōĘšVńĆņśņ žBž åż“ż€ż9żGżĄüęš"š¹āłįūŚŚoŪPځąˆßHęxåšī·ķtłČųŠ’g’Żžŗž ÆœÆJÄTeBĀźŠ/ üü õ*õvņ™ņRźKź*ąĻß²ąUąkēõęõīJī õaōÅõ,õ…óóAšįļÓģ™ģ%ķGķOķ¬ķ ģlģļļ“šóō¤ņl󔜛ūū#0śīś²õ`ö½ųbłåżžžzžäö‘öhšļ7ņ)ń@ńõļZęŗä9äØāEģĆźcóÕńńłæųxü³ū’ž1uÕ«Qņ`Ć ……XųŅ™N —8^’ā Ć œ ŽUsƒ@n šŒū(Te™’€ÄÆ:Ļl{_7”„Æh5Œ7QĘSOŖQC?ęA{EśGźLXNi*+ ē9ē­«×Ŗ¹|·fļŃķöś;ł ä ā1Š“ĪŅÓŒŅ®Ł—Ų1ÓŅIŁOŲ"ź“éońģškī'īi÷ų[rģ&M(f-e/%gWQnU{ūńū“ļ"ļGčLēkäć@ŽŒÜźą'ßZīŻģą÷ØöBńMš’āeā¼ŻjŻękęéóžóžö÷ųGųV’é’×zśäµ ˆś7ü1ōĮõŪ÷£łĮč ĢGŲv e D›’< ÷Ä .¼Æ’ü’éü‰śmü)śĘüéś±ōÕņßķDģ}óŁņ*żż L¼ģ÷“ Č ė÷‰‰ukˆ‡ŅØóņØź dõ a &¶ąĢžrö‰óźōpń·üłŠž ūēöó˜īė ķ źļšģó>ńŹ÷ÕöüüH’*Ķ®' ’ « ņ › ’^t Ē“JšÉą{Ÿż_’Iś'ūgų€ųįōō˜ļģķš™ķJōUń-ōŸš%óAļ¦õĖńGū‚÷“’¹É# Ī$ o "ÆØżØ×$CK'¤Į €zĆ &‘ f¹.sWż>%śbü!œžą’ĆņÖņ)ķģĆókņ“ł5÷1łÕöGų-öa÷Ķō¬üłłB1É YQ eTD’’ŃāÅŚ”#+žūŁžtūežCūQżō önģvļęčĀź+å°ę\ć å\ęĢēģ-ķņĪńxötõIś›śgžXžAD M,·}?( …P Ū» Ł ¬ [0ņī(ž9/žš’Īü8ž ś÷ū3łÉłÜłŹūDūÆžz’ģõď Å Ļ „i ņ µģ _Ņ hy²ČBh’ æl s ś  Ź7­“ą xOūü ’eżėü•üFśäś;ł8üŠü`’4Ő2ģtOz§Ų^nbŠž['’œ’^” Až^ž*ü…ū‰ś÷ūŠł`üaūśżAż7׿žyĮ’%_I³’sż[žż·żżżżēüHżüż„ū¼ü:ü ’mżÄŻ’.q Ė›śõ“Ē”<q@Õ’ė’7’Š„—枟Iüźżūūūųū8ųüŒų˜ü¦ųÜü¾śæžžĮN’”’äOżü’ū6ü!ū™żżą’Hżaž’ūŚżū!’ŲżĢž?žøžūĻž#ś‰ż•śpüł¾śt÷Ėų ų?łŸł(śGūwū’]ż ż’Ūż`Īżr”üe’1ż•’‰ž§žĒF’-č9±«’’ÜéՏĄ‹>øaAL• q|ęõÖ1‘i9 ‡uďd°×)]aśżƒŗ ý¤¼€EpLÜåĘßįÆ!Ā’–ŗßGU•\›’ø’Iž|žäżxž²ż†’+ž×žØžĶžöžē’ńżŁžÉż§żŖžœżDž¬żĖżØž®ž‚üźż;ł ü;üĒż2’’„’p<žKwž¾’’G’Gfbė«chw?;cV]R+:ÜŸĆ¹†ųIß#ji‰īzĮ%$:—f2”×±i„ˆHå°,7H’”•žĘpŪ}ž²¼žÓĮfR“f7Ć’2’9’ ž~žŌžfžŚž ’n’ŁnFöT XæK„‹’’=’ž‚żŌüćü˜ü{ž»üņ’bžŒ>\?ł’G’#rž³’C’m’„’/’Ęž/žØžØž+’G”Ŗb­Ö=¶žŚ¹@>¾ķß Ö haj•>:i h£*.m+M:.<šC’¤’5Ø‘¹›fEujęyn õ’Ą78ržÜ’ļżųžŁĘ§q¾?)1™Q0ū’’5ž{ž¹üx’¤żƒ’žżżMżAżż¢żīżVž`’L’‰¶žÉßž“¬óÜ’"’Jżeūwż¾ū’”KŖza³|5ĻŲ  ńč†!ÉžŅü#ū*ūĄżm’k’Č¢ž,ųżĶżžĮü9zž’"’Åż/ž¬üY‰žóa’§žžgżėż²ž£’ĀQ‡o>ī[u£žį’üū+žół’ūUüż  |–Ø’ß’mÆĒ¶ž Ōŗ N{XśĄš’Ō’ožhž‰ż=ż żOüšü§ūüYū‚ż£ś]żłŽūŲųZūfś(żüØžÜūŅžöüEOSrUICPŻūķ”#˜HN¢’ ˆ’kęžøżwüüūéüūü‹żžbūqüUłhūØś-ż–ż`[žOžĆ’h”ŗcyL[x• Šš‡øļ<Cher»ž« ž Łż—’!ža’RžĄ’1’T’©’čž”’öžŠ’T’Qž&„żl’żņžž‚’’š’ Y3LJć’(ż’ŠjɇA…#/ģ’õžˆ’8’E¢ę¦LŖŹüĀž\ü‹žåżdäż|¦żś’†ü”ž‘ł9ūFų5łÜł8śożż ’īżŁž1ż_’KżŃNžæD¾c:ś]’æOöž†ćŽ®-s%ŽŃž‚ņżh"ż\’(żĪžTž-’Čüī@¾žDż¬’•żXŲæ’”iże?ż™¢żT濏õ’ fŠU+z=$ƒčä\’h žH$ż(’Wū$ż~ūżūüžNżēż“üÄüģü³ü’iž•’·ž|ż{üüŁśņūÓś5żPü9’užlš’pCĒėļX‰4ł‚M¾{ õe&’W’¼ž\žÆžžiž˜żķüžū?żWüŪžóżņž1žž’’Ų‡ĘĪ3…ą’€³’”r‘ż’@ żZžńū+żž’+äOŖµ’¢’ū’p’MS’Āži’#LĒāČõ>ž)×~š ¼Ņą’q—ž¤’ĆüCž©üwžŽż¤’®żź’ćż‚ž­r’m³m^ģ’g66³)Z\’ ™žģ†ZBßž\ćż-æżq’CżhžüQż’ū9żü‹ž—žžßžQżŃžž1+žÉŠż‡GżR—ż‘Żž‚M[U³-’©’ļž†žW ’j’ožż$äżuRZĄžŠ’śż½Ż’öŽų•GCš<(J’]ģžčw’>0’­Xžh’šż•žŠžĖž“’’ˆ0š’y’Œžž†ž+žn’;’’Œ’»žóžÅ’Øų3`—„mü’²Š’Š’Ó6’@u’ķ’1’§ż,žžüįž[žÆ’ß’’ OžŒžš’v]}æß>Ž’ą]’į%·CČé[8œ’¾Fž–Šż¬Wżc1żI”ż7‚ž.Ąž\žZžž©’u’½ ’)³ü2Mż”·żAYżČxž^K…łs˜„’‰žxžFmžÉóżeżĢū’"ü’žC’{’V’1ģ’=“’*>żŠ«ūQĢżX“lŻ®’ł¬’TĶĖ’Łjž_Üżā¶ž%Ŗžœlż¶ņż%Š’¼že’²’[įžļż¦4žāž§ižiJfUĢš»Ŗį.ßųU¹ę’Bųb’?’ž }’“zŗž3’ ž’¾žē’Äż’øü-žÆż’/žZ’–ž”’Ś~–č~…ĘYŁM„½ōµę’æ’枎’!’5¢’†04 ©’Ł’­’NŻ¹Æžm’Õż žžēžqżQžęüŪżĄžŠ’(Ļ%ФĮīČȵ;Ź=»YŚ,‰Ž7ß;?«a hCLeP’…’Žż%žūž1’fƒ $’’’ūž£’ƒ’Ī’˜’·’ q8jš *ą0Oćo)PISsŚ"M»µLi#d’/Kž’²üvżāū‹üż†żAž”žD} ³ę’į’žłżøż“ż0žž.žžÅżĀżGžgž FųT.Æ…ś}‚æGg뒙㲒Ŗž’½ż2Į’Øįm’Ė’‚ž|’^ž9’ožūż}ż•ūū«üż²’”ū’N"’ŽX’Dw’’Ā’Õ›ˆ‡–ŁŁ‘InVęäč’³ ’Č’‚żĘ’Wż@ŹžĪ’LQ’³’†’|žHžĪżĶżžüżŗžņžWŃ’ØĘ’A’³ė’oŻF¶āLw½Ӆ^qĖJf`’ĒO…«pk’aM’(&>’zžżŃżĶüÅżDż‹ü’ü¢ü.żž’Žž[Ō’ Õ„’ģŚžhsż›žĮüqż<’‰’ī’Ł’(’m@—’n’Öż†’žż§äžÓF 蒟ž=ƒ’ägĒA³Dž—’üÓż®’9żéžžv’U’Ķ@Če’ lž#’žž’ōž’õ’¼’kŤā’Õ’ęžz’”P’mĻ’`’’Y’Ū’’17Ēü|ĆžT‰6čäž²’0ž“žūż9žxżČż żžü»żiż7žžéżĻżvžÉż0’AžC’|ž‡’’Ā’=’±’Õž’’"’œ2ļÕČ«HŲ’Ž’°’6_|s›n’G’y’ōž’$ž~žŻżhžqž¼žÜžßž™ž®žcžž¤ž±žšžņžšžļžūž¹žĻž—ž9’üž½’µ’TO5æ'½Ä ­© ¢Äųdō±nYįž^’žyžžžčžłžéžf’ĖžI’‚žŁžEž£žž¤ž‘žŹžK’“’Eó’ų’|’w’Mž’©3J~µ0Œe’‹’ūžM’Šž¦’ŽžĪ’D’"‹’ż’b’š’@’·’Ī’Ż’ä’“’~’īž’½żWž‘ü#żtü²üąü>żóü¾żØżĄžxž)’•žāž<žŠžŃż{žCžlž’;’1’i’Õ’™’¹g÷—×7Ģ3ó.m®’±•ļgk6Q’„’Hžæž5żžīüČżŹż‡žāż¼ž7ż9žåüÕżż£ż„żŻżž:žŌžŹž}’+’2Ć’Č<w¹ŁZ‰uäfĖ?’’ćž³žžŅżéżėżž,žž(ž×ż]žž“žMžØžŠž¶žžž+’‚’Ė’@Žz ¼’†’ƒ’’’Ŗ’T’$’}žGžPžYžYžržNžōż‰ž²ż|žńżDždžĻžĆž’¬ž’…ž–’’žé’’ń’Ė’1"**§’¤’$’(’Ōž9’•žG’wžJ’ž ’¤żhžŸżļżrżŅżżižķżŚž¢žŅž2’āžńž’œž’²žqž’;žv’Āž²’;’ń’–JŹuWaī’ź’ė’•’n’|’īž&’tžkžĆżįżcż‘żōüśü•ü¼üķüżīż˜ż’‚ž+’a’“’œ’÷’š’Õ.<<&m„Uė’Ž’A’Ÿ’Ņž’Ļž³ž®žĘžCžĪžģżpžĒż žŸżäżŅżöż:žÆžlž}’_ž›’ŲżŹž±żTž`žŲž’Ē’šž²’|žßžTž‹žž¦žųž.’™’¼’ŗ’”’ Ž’—Č’“Ē’µ›’ÅĢ’Ćū’ew’”’ŲžŽž¢ž™žYž¶žlžøžŸžHžUž^żŅżūüĪż€żƒžMžt’įžč’dž ’/ž_žR’õž­VŃś€I?zrˆ£bŸHf›’Ō’9’ž’Š’²’’ ’ž~žęžĘž ’]ž“ž>ż×żÕü3ż'ż¶żžĄžŪžøž‹žaž¬żož9žĮžv’z’ņ’O¹’LĪ’Ō’sß’Ņ4ŚxćqżŠø¬Ę’’Z’’~’Z’’”’‹žĒž³ż(ž'ż”żŽż˜żžžžAžyż¹ż†ż›ż)žžźžĄž1’5’:’ĖžC’Mžv’·ž9Œ’Į£’ÖČ’/ucþsś’į’¶’›’²’ķ’É’q’o’žžž·żžżÜż?žZž]žØžāżKžØż¼żóż ž~ž¾ž ’V’$’c’’{’’į’•’ö’ž’ %ż’ü’ˆ’„’Ķ’³’_ ^ e59ž’ž’[’Y’(’’’óžģž]’E’¼’Ŗ’x’†’f’r’±’²’ŗ’Ķ’§’¾’Ą’Ę’ķ’÷’073.ó’ć’Ģ’Į’®’š’x’”’o’Õ’¹’Å’·’§’ ’°’¤’”’„’’“’ź’ę’"0(|™†yPuM’’É’|’=’‡’L’ö’«’Ü’ Ž’ł’Å’™’l’‡’j’ä’Ņ’µ’Ą’_’|’z’©’ß’Ū’&’ß’w’Å’¦’é’ø’ü’Ó’õ’’’Ż’é’Ē’Ć’“’±’’…’ž’Ÿ’Ļ’Ü’±’Č’¢’Ī’·’ī’Ę’Æ’ł’‘’Ö’ƒ’É’{’³’r’”’’ž’‰’›’¤’Ŗ’ź’ę’ō’×’½’Ń’°’é’2(ń’"ę’Ž’Ü’ Ė’ż’Ķ’’’Ļ’Ę’’h’P’Š’°’1#ļ’Ū’­’š’‰’y’c’J’g’L’Ä’§’/ V4E(+ jO¶£¼­«§±·˜]we^„Bn’’-Ļ’å’/a?|%[’’7ģ’+4c„½y /Vå’ž’Õ’ą’õ’÷’ł’ī’¹’£’‹’k’‘’m’ˆ’^’o’J’o’F’¦’‰’ä’Å’Ż’Ģ’¼’©’Ż’Ų’ Ä’Ę’Ģ’Ē’QOf_ZPzi“wnM5ō’Ā’Ų’®’&ó’U0P1’’¬’Æ’Ś’ć’r•¹ŌĄŃóõ"ÕńĮÖ©µÆ¬Ā¾Ŗ—ƒv‚nŗ°źŻ°°TY>Jqˆ®Ę›æHn LU…iž:o;ß’ļ’7)71A^PfSG9 a&ž`¦i†NoBxR«—ŲŹ’JRZgs…bwj}™­Čß°¼¶Č čļ¾¶’‚:!&’’V*œi«wėŗŚŚøŠĀŹ»ĘŅšųų¾Ö¢ø–®gt(é’ī’Ź’Ģ’å’ć’/4`aOcp…•·GÕ’P Aū’/?n—­‹—whtSY%$ā’ž’ø’ž’“’é’Æ’ē’ŗ’ó’Ż’ė’ķ’ź’<b1wė’Æ’ś’Ø’Ņ’Ā’ķ’ż’Ó’Ū’«’ŗ’n’½’t’¾’?ü’: ž’USøÉćÜ"óRŚFoÜ5£w^5d*)ķ’Ų’ Ć’„’Ģ’S’ū’p’ZĶ’‘ %6Ɇüź  ¼šGŽę’Lģ’\Ų’N¶’+µ’!š’ń’w’Į’§’Ķ’Ś’š’ž’÷’š’-lƒA®Pց阰f]&45!@Eś’®’Ų’²’ę’÷’0b&[š’(Š’ś’4Nw‹ebnk­›±R="ū’ņ’«’§’Œ’’˜’Ÿ’‹’—’›’¬’Ņ’Ž’ś’ņ’ų’ń’ž’ D@N>L8”sĒŖwO2 F"O)dNK8 ¶’Ń’‡’Ŗ’†’²’æ’č’ö’'š’Ā’ā’ö’ =?icˆtŖ…Į›ŗ‡”`j@J3ų’Č’æ’™’ž’É’Ś’5'XGæ’ż’­’÷’½’ż’ö’/E€F`Ų’ł’Ē’É’Õ’Ć’Ģ’°’ī’²’ų’»’Ō’‡’ß’Š’Ņ’g8’’Ķ’Ö’Ć’Œ’Œ’h’w’‘’“’°’Ś’ņ’$Dć’Ā’Ü’"=lGt>zH\fAV=WWNaKÕ’×’9.“9­„>£[²tž˜µ¹GTń’|÷’Ķ0ÄZØ’e’s’ż’ˆ’Å’†’®’š’¢’Ē’w’Ļ’U’Ų’o’Ŗ’bŠ’Ź’wĖ’`ļ’RVE:[ _ī’Rø’:‰’*p’:ˆ’y’»’Q’Ć’z’č’č’’’#Ų’>Ć’DÓ’y¶’’„ˆ2y;W,3ó’ˆĮ>¢‡ń’zś’yo&wMMR9ajvū’rŻ’Zæ’8—’‚’Ł’Ÿ’Ü’­’Ģ’É’Ź’ģ’"ļ’ķ’²’Ü’’Ž’”’ž’Æ’P S%ų’A+å’×’Ź’Ā’Ł’Ś’¾’¾’‹’’…’Š’É’Ķ’ū’ļ’ō’Ī’ß’Ö’ā’ī’ %"I#K'SD7ApV…@_-*)x^„e],5ż’ Ń’ż’Į’ō’1 ų’ä’ā’Ē’Ū’ź’ E#Y:xc›f“i‘}Šyz‘{ÅžŹ”®l‰As)y3„FtAY8@1+* 3;B:i.[ę’Ė’å’ē’÷’ū’ę’Ņ’ß’Å’õ’&š’ś’Ś’ų’ē’ī’ą’Ņ’×’Ņ’į’ū’ś’2Ag:] ##+ū’ņ’å’Ś’æ’¼’¶’¹’·’Ä’™’±’‹’Ø’®’Ń’Č’ķ’Ę’ź’ī’&(7;8VI‰o„_]+i4’Tm3M#ņ’ü’ą’Ś’Ę’“’½’“’Æ’°’ć’ī’<č’;Ć’)Ł’:ó’OPż’-2D7`3q(‚ ypg!E@?>Z*fRŌ’5Ų’8ž’cbś’Fō’$ !#+ <B$ü’7`@xc˜‰‘]YBN&+!1596ü’ó’ē’') 0ymŖ©³¶±ž³©ĻĒź”Ī~¤V{)Dż’ ń’ų’7( ļ’ń’N$€Y[?"$2ARbYƒ:`ä’æ’ķ’½’ä’Ż’’’++0’’ī’ź’ž’Ó’Ē’ę’Ņ’ģ’É’õ’('2G(K @÷’0ī’6ū’@MXCś’å’ķ’ž’ū’ 9;F^)‹EwBl9rMfL?9eh–[y2]F :('*=DR?D:0ZRl|jcSbHXM^H8- ž’ź’Ś’ė’Ž’ł’č’ś’å’Ö’Ä’Ē’±’š’Ł’ ÷’+C2 )'4!9/,.'Ž’ķ’ė’ķ’ū’ż’ž’Ś’Ü’¹’½’Å’Ā’Ö’Ł’ē’ć’×’Ü’Ł’Ś’ä’ģ’ō’ż’.0'%'7(6,25930*.#N<=.ś’ń’ć’Ó’ż’0*.6ķ’ł’ß’ļ’<I88+)ż’Ü’ž’å’ ÷’ ū’ü’ę’Ü’Ó’Ō’Ó’Ų’ā’į’ö’ż’é’ō’×’ć’Å’Ö’Ļ’Ū’ö’#17 20#$ 3( ų’š’×’Ć’Ļ’°’Ė’ŗ’Ę’¬’Š’¾’į’Õ’ó’ź’ģ’é’ļ’ó’ł’ü’ ÷’ē’š’Ų’ą’ā’ī’å’ī’Ł’ć’Ł’ć’ä’ź’ģ’ń’ņ’ō’’’  ś’(&%ų’õ’å’õ’ķ’ų’š’ķ’Ų’Ü’Ļ’Ō’¼’É’Ķ’Ś’Õ’ć’Ī’ė’Ł’ä’Ū’ü’ż’ ö’ś’ņ’ņ’÷’ė’ļ’Ż’Ī’Ö’ß’õ’ó’ź’õ’ā’ī’Ų’į’Ę’Ł’ź’ō’ %$2+%ü’ģ’ņ’ķ’#! ķ’ś’ż’&"÷’$#3*% "ż’ķ’ę’Õ’ö’Ł’ł’ž’ š’š’ņ’ś’ń’÷’ō’ķ’ģ’ē’ģ’ä’ń’ķ’ė’ę’÷’ž’ž’ł’ų’÷’ū’÷’ł’ō’ł’ō’ł’ī’ō’š’õ’ ż’ž’ ś’  !ķ’ų’ź’ õ’ ’’ ż’ū’ģ’ņ’ļ’’’õ’õ’÷’ģ’ķ’č’ė’ā’ė’ī’ś’ž’ ž’  ’’   ų’ż’ü’ ž’ ü’ś’÷’ū’ī’ų’ż’÷’ž’ž’     ü’          ’’     $$*)##ż’    !%%$!  "(()&+)#&! ü’ż’ž’ !#$& !*+ !% ’’õ’ł’ś’ż’  !$'#)-0(*,0'516,/,/&-+*$$           #  ’’       $%'"% ÷’’’             ü’’’  õ’õ’ü’ł’       ż’ ’’ō’ž’ö’ü’÷’ś’    ż’’’ż’ł’ž’   ž’’’ł’ś’ ü’ś’ó’ų’ž’    ž’’’ü’ ś’ų’ż’ż’ö’ö’õ’÷’ś’’’ų’ö’ö’  ž’ł’ł’ū’õ’ž’ ż’ ÷’ž’’’õ’ł’ū’ž’ ž’ž’ ü’ö’ś’’’ż’ū’ü’  ż’ż’ż’ü’ž’ž’ū’ž’ü’ū’ü’ž’ś’ś’ł’ų’ū’ų’ł’’’ų’’’ ’’ž’ ū’ż’ö’ž’   ų’ż’’’ü’ž’ž’ž’  ō’ö’ū’’’ ’’ś’ū’ż’’’ś’ž’ ž’÷’ż’’’ ü’ż’’’  ś’’’     ’’’’’’ž’ü’ū’ū’      ū’ś’ž’’’ž’’’’’ų’÷’ų’ö’      ž’’’ż’   ’’   ž’  ’’ü’ü’ü’ų’ž’ż’’’ż’’’  ’’         ’’  ü’ū’’’ś’ü’’’ž’’’ū’   ż’  ’’ż’ż’     ż’ł’ż’ž’ž’ü’’’     ż’ś’      ž’ž’ū’’’ś’’’      ž’’’’’ū’ž’     ż’’’  ’’ž’ž’ž’’’ü’ü’      ż’’’ ’’ż’ż’  ’’ż’ ’’ś’ū’ ž’     ż’’’ż’  ’’   ž’’’ ū’’’              ż’ ž’ ž’   ’’ü’ ž’’’   ž’’’  ž’ž’ž’ü’    ł’ ’’ś’  ž’   ’’’’ ’’’’ ž’  ž’   ’’ü’ ü’ ż’’’ ’’ ü’   ü’ž’’’    ž’ ’’’’ ’’ž’   ’’   ’’  ž’  ž’   ’’     ’’  ž’ ’’  ž’ ’’   ’’  ž’  ü’ ’’ ’’  ü’’’ ū’ ’’ ž’  ’’ ž’ ’’  ż’ ž’ ž’  ž’ ’’ ’’’’’’  ’’ ż’ ’’ ž’ ż’ ’’ ż’ ’’ ’’ ’’’’ ü’ ž’ ’’’’ ’’’’ž’ż’   ž’        ž’   ž’ ’’ž’’’’’ž’ ü’ ž’ž’ ś’ ’’ž’ ’’’’ ž’ ’’’’’’ ż’ž’ ’’ ż’ž’ ü’ ž’ż’’’ż’ ż’’’’’ž’’’’’ü’ż’  ü’ ’’’’’’’’ż’’’’’ ž’’’ž’ ż’’’ž’’’ ž’ ’’ž’’’ž’ż’ ż’ ’’ž’ ū’’’ ž’ž’’’ž’ž’’’’’ž’’’ ü’ ż’ ž’ż’ ż’’’’’ž’ž’’’’’’’ž’ž’ž’ž’ ž’ ż’’’ž’’’ü’’’’’ż’ü’’’’’’’ż’ž’’’ž’’’ž’’’ž’’’’’ž’ż’ ż’’’ü’ü’ż’ż’ž’ž’ ž’ż’ž’’’ž’’’’’’’’’’’’’ż’ż’’’’’’’ž’ū’’’’’ž’ż’ž’’’ü’ż’’’’’’’’’’’’’ü’’’ ü’’’’’ž’’’’’’’’’’’ž’’’ż’ž’’’’’’’ž’ž’’’’’ż’’’’’ž’ž’ž’’’’’ž’’’ü’’’ż’’’ž’’’’’ż’ż’ż’ ū’’’ž’’’’’’’’’ž’’’ž’’’ż’ ś’ž’ž’ž’’’ž’’’ž’ž’’’’’ż’ż’’’ž’ž’’’ž’ü’ ł’ ž’’’ž’ż’’’ ż’ž’ż’’’ū’ž’’’ž’ż’’’’’ż’ż’ž’ ž’’’’’’’’’’’ž’ž’’’’’’’’’’’’’’’’’ż’ž’ż’ü’ż’ü’’’’’ž’ž’’’’’ž’’’’’ż’’’’’ž’ü’ü’’’’’ž’’’’’ž’ś’ž’’’ž’’’ž’ś’’’’’ü’’’’’ž’’’ž’’’ž’ż’ś’ž’ü’ż’’’ü’ ż’ž’ž’’’’’’’ü’ż’ż’ż’ż’’’ž’ž’ž’ž’ü’ž’’’ž’’’ž’ż’’’ž’’’’’’’ž’’’’’ž’’’ü’ž’ž’ž’’’ż’ž’ż’ż’’’’’’’ż’ü’ž’’’ż’ž’’’ż’’’’’’’’’’’ž’ü’ž’’’’’ü’ž’’’ž’ż’ž’ż’ž’’’ü’’’ż’ž’’’ż’ž’’’’’’’’’ž’ż’’’ž’’’ū’’’ž’ü’ž’ž’ž’’’ż’’’’’ū’ž’ł’ż’ ż’ü’’’ž’ž’ū’ž’ü’ž’ž’ż’ż’’’ü’’’ž’’’’’’’’’ž’ū’’’’’ž’ž’’’ž’ž’ž’’’ž’ž’ž’’’ü’ž’ż’ü’’’’’’’ž’ü’’’’’ž’’’ü’’’’’ž’ż’’’’’ż’’’ž’’’’’ü’’’’’’’’’ż’’’ż’ž’’’’’ž’’’ū’’’ ū’ü’ū’ž’ū’ž’ż’’’’’ü’’’ž’ž’ž’ž’’’’’’’’’ü’ż’’’ü’ž’ż’ž’ż’ž’ž’ż’’’’’’’ū’’’’’’’’’’’’’ž’ż’’’’’ž’ū’ż’ž’ž’ü’ż’ž’’’’’’’ü’ž’ż’’’ż’’’ū’’’ū’ž’’’’’’’’’ż’’’’’ž’ž’ż’’’ż’’’’’ž’ū’ ż’ų’ ü’ü’ž’ü’ü’’’’’’’ž’’’ż’ž’ū’ż’ż’ž’ż’ü’ü’’’’’’’’’’’ś’’’ž’’’’’ž’’’’’ü’ż’ž’ż’’’ü’ž’ž’’’ż’’’’’’’’’’’ž’ž’ż’’’ž’’’ž’ž’’’’’’’’’ž’ż’ž’ż’’’’’ż’ž’ž’’’’’ü’’’ł’’’ž’’’’’’’ü’ū’ż’ü’ż’ž’’’’’’’ž’ž’ž’’’’’ž’’’ž’ū’ž’ū’’’ž’’’ž’’’’’’’ž’ż’ü’ż’’’ž’’’ž’’’’’ż’ž’ž’ż’ū’ū’’’’’’’’’’’’’’’ū’ü’ł’ü’ü’’’ü’ż’ż’ü’’’’’’’ž’’’’’’’ž’’’’’’’ž’ž’ü’ž’ż’ū’ž’ü’’’ū’’’’’ž’ū’’’ü’ż’ż’ž’ś’ż’ž’ü’ż’ü’’’ž’’’ž’’’ū’ü’’’ś’ż’ž’’’ü’ü’ž’ ł’ ż’ū’ż’ż’ż’ż’ż’ż’ž’’’’’ž’ż’ł’’’ü’ž’’’ü’ž’’’ž’’’ü’ž’ü’ž’ż’ü’ü’ś’ü’ū’ś’ż’ż’ū’ ż’’’ū’ś’ż’ž’ž’ū’ž’ż’ż’’’’’’’ż’ż’’’ż’ż’’’ū’ż’ü’ś’ž’ž’ž’’’ż’ü’ž’ż’ž’ž’ž’’’ž’ż’ž’ž’ž’ž’’’’’ż’ž’ż’ž’ż’ś’ž’ż’’’’’’’ž’ü’’’ü’ž’ž’ż’ū’ž’’’ü’’’ž’’’’’ż’ž’ž’ż’ż’ż’ż’’’’’’’’’’’ž’ż’ü’ž’ž’ż’ż’ü’’’’’ž’ž’ž’ü’ż’’’’’ž’ž’ž’’’’’ż’ž’ž’’’’’’’’’ż’ż’’’ž’’’ū’ž’’’’’’’ž’ü’ś’ž’ ü’ž’ž’’’’’’’’’ü’’’’’’’’’ž’ū’ž’ż’ż’ž’’’’’’’ż’ż’ž’’’’’’’’’ž’’’’’ł’ż’ś’ž’’’ż’’’ż’’’’’’’’’ž’ž’ż’ž’ż’’’’’ż’’’ż’’’ż’’’ž’’’ü’ž’ž’ü’ž’’’ž’ž’’’ž’’’’’ū’ ų’ž’’’’’ž’ū’ž’ž’ü’ü’ü’ž’ü’’’ü’ž’ū’’’ż’ś’’’’’ž’ż’ś’ü’’’ž’ž’ž’’’ž’ž’ż’ż’ż’’’’’’’’’’’ü’’’ž’ž’’’’’ś’ž’’’ż’ż’ü’ž’ž’ż’’’’’ž’ü’’’ž’’’’’’’ż’ž’’’ū’ż’ž’ü’’’ž’ü’ü’ł’’’ü’ž’ü’ż’ü’ż’’’’’ś’ū’’’ž’ü’’’ż’ž’ż’’’’’ü’’’’’’’’’ž’ü’ž’ż’ž’’’ż’’’’’’’’’ž’ž’ż’’’ż’’’’’’’ž’’’’’ž’ü’ž’ż’ż’ž’ž’’’ż’ż’’’’’’’ż’ü’ż’ü’ü’ž’’’ż’’’ž’’’’’ž’ü’ž’’’’’ž’ž’’’’’’’’’’’ž’ż’ś’’’ū’ü’ü’’’ž’’’ż’’’’’ż’ż’’’’’ž’ž’ū’’’ż’ż’ż’ž’ż’ü’’’ū’ž’ż’ż’’’ū’ž’ś’ū’ż’ž’ž’ū’ś’ž’ż’ż’ū’ü’’’ž’ž’ū’ż’ł’ ż’ł’ż’ž’ž’ū’ü’’’’’ü’ž’’’’’ż’ś’ū’ü’ż’ž’’’ž’ū’ū’ü’’’’’ž’ü’ž’ž’’’ż’ž’ü’ž’ž’ż’ż’ü’ż’’’’’ž’’’ž’ž’ž’ż’’’’’’’’’ż’’’’’ž’ż’ü’’’’’’’ž’’’ż’ž’’’ž’’’ž’’’ž’’’ü’’’ž’ž’ü’ü’’’’’’’ż’ž’’’ž’’’ż’’’ż’ü’ż’ü’ż’ž’ū’ž’’’’’ż’ż’ž’ž’’’ü’ü’’’’’’’ż’’’’’ž’ū’’’ž’’’ž’ž’’’ü’’’ū’’’ż’ž’’’ū’ł’ż’ž’’’ś’ü’ż’ü’ž’’’ū’’’ż’’’ż’ż’ü’ż’’’ž’ž’ž’ž’ü’’’ś’’’’’’’ż’’’’’ü’ü’ż’ż’’’ż’’’’’’’ž’ž’ż’’’’’’’’’ž’’’’’ü’’’ž’ü’ž’’’’’’’’’ž’ž’’’ž’ż’ż’’’ż’’’ü’’’ł’ž’ž’’’’’ż’’’’’’’ž’ų’ ų’’’ż’ü’ü’ü’’’ü’ž’ü’ż’ž’ž’ž’ū’ż’’’’’’’ż’ž’’’ü’ż’ü’’’ż’’’’’’’’’ž’ł’ü’÷’’’ ż’ų’ś’ū’ż’ū’’’’’ž’’’ū’ż’ż’ū’’’’’’’ž’’’’’ü’ž’’’’’’’ü’ž’ż’ż’ū’’’ū’ü’’’ü’ž’ü’ž’’’’’ż’’’’’ż’’’ü’’’ž’ž’ż’ü’’’ż’ż’ų’ž’ū’ž’ž’ü’’’ū’ż’ž’ü’ū’ł’’’ü’’’ž’’’’’ū’ś’ž’ż’ž’ś’ū’’’ž’ż’ż’’’ž’’’ł’’’ż’’’ü’ž’’’ż’ż’ż’ż’’’ž’ż’’’’’ž’’’ū’ž’ż’’’ż’ž’ž’’’’’ž’ż’ž’ü’ü’ż’ž’ü’ż’’’’’ž’’’ż’’’ž’’’ū’’’ž’ž’’’’’ż’ū’’’ū’’’ž’’’’’’’ū’ž’ū’ż’’’ž’’’ž’ž’ż’ü’ž’’’ž’’’’’’’ū’ž’ż’ż’ż’’’ś’’’ž’ž’ż’ż’ž’ū’ż’ż’ü’ż’’’ż’ż’’’ž’ü’ż’’’ž’ž’ü’’’’’ü’’’ž’’’ž’’’ż’’’’’’’’’ż’ż’ż’ż’ż’’’’’ü’’’ū’ž’’’’’ż’ż’ū’’’ū’ž’’’ž’ü’ü’ū’’’ž’’’’’ś’’’ł’’’ž’’’’’’’’’ż’ż’ż’ż’’’ž’ž’’’’’’’ž’’’’’ž’’’’’ż’ü’ż’’’’’’’’’ś’ū’ü’ü’ü’ż’ü’ž’’’ž’ż’ž’’’ż’ž’ż’’’ž’ü’ž’’’’’’’’’ž’ž’ś’ž’’’ü’ż’ü’’’ž’ž’ż’ü’’’ż’ż’ž’ž’ż’ż’ž’ü’’’ž’ż’ż’ž’ü’ž’’’ž’ž’ż’ż’ż’ū’ū’’’’’’’’’ž’’’ż’ž’’’ż’’’ū’ż’’’’’ž’ž’ū’ü’ū’ž’ż’ż’ü’ž’’’’’’’ż’ž’ž’ž’ż’ž’ž’ž’’’’’ż’ž’ü’ś’ż’ü’ż’ž’’’’’’’’’’’ž’ž’ż’’’ż’ž’’’ü’ž’ü’ž’ž’ü’’’ż’ž’ż’ū’ż’ž’ž’ū’ū’ü’ż’ž’ż’ž’’’ų’ż’ū’’’ż’’’’’ż’’’ū’ü’ü’ž’ż’ü’ž’’’ż’ś’ü’ ÷’ż’ł’ž’ž’ž’’’ž’ż’ż’ü’ž’ż’ž’ż’ż’ż’ü’’’’’ż’ü’ž’ś’ż’’’ż’ž’ž’’’’’ž’ż’ž’ż’ü’ż’ü’ż’’’ž’ż’’’ü’ž’ż’’’’’ž’ż’’’’’ū’ż’ż’ż’ü’ż’’’ž’’’ž’ż’ż’ż’ū’’’’’ü’ż’ü’ł’’’ü’ž’’’ü’ü’ś’ż’ż’ü’ż’ž’ś’ü’ü’ū’ż’ü’’’ü’ž’ž’ż’ž’’’ž’ž’ś’ś’ü’ü’’’ż’’’ž’ż’ż’’’ż’’’’’ż’’’ś’ü’ż’’’ū’ż’ż’ž’’’ū’ž’ū’ż’ū’ü’ü’’’ų’’’’’ś’ž’’’ż’’’ž’’’ł’ū’’’’’ž’ž’ü’ü’ų’ų’ ś’ż’ü’ž’ü’ż’ü’ż’’’’’ž’’’ū’ü’ü’ż’ü’ž’ż’ż’’’’’ž’ż’ž’’’ž’ż’’’’’’’ž’’’’’ż’ś’’’ü’ü’ś’’’ū’ż’’’ś’’’ż’ž’’’ż’ü’ž’ū’’’ž’ü’ž’’’’’’’’’’’’’ž’ż’ū’ū’ž’’’ž’ž’ū’’’ž’ü’ś’’’ü’’’ż’ž’ū’ż’ü’ü’’’ż’ż’’’ś’ż’ž’ž’’’ž’ž’ž’ž’ż’ż’ż’ś’ü’ž’ū’ū’ż’ü’ż’’’ž’’’ž’ü’ü’ü’ü’ż’’’’’’’’’’’ū’ž’ś’ż’ž’ž’ż’’’ż’’’ż’ž’ü’ż’ž’ż’ż’ž’ų’ ’’ś’’’’’ž’’’ž’ż’ž’ü’’’’’ż’’’’’ż’ś’’’ü’’’ž’’’ū’ü’ż’ż’ū’’’ż’ū’ū’ś’ż’ż’ž’’’ż’ż’ż’ż’’’ż’’’ü’ż’ż’ś’ż’ł’ż’ž’ż’ž’ü’’’ż’’’’’ż’ż’’’ż’’’’’ž’ł’ś’ž’ž’’’ż’ž’’’ž’ž’ż’ż’ū’ż’ž’ż’’’ž’ž’’’ż’ž’’’’’ž’ü’ż’ż’ž’’’’’ž’ü’ž’ü’ž’ü’’’’’ż’’’ż’’’ż’ż’ü’ž’ü’ü’’’ž’ū’ü’ü’ž’ż’’’ž’’’’’ž’ž’ž’ž’’’ż’ž’ś’ž’ü’ü’’’ž’’’’’ž’’’ž’’’’’’’’’’’ž’ž’ś’ü’ū’ü’ž’ž’ž’ž’ü’ū’’’ž’ü’’’’’ż’ū’ū’’’’’ž’’’ż’ü’ž’’’ż’’’’’ž’ż’’’ü’ż’ü’’’ž’’’ž’’’’’’’ż’’’ż’’’ž’ž’ž’ü’ū’’’ū’’’ž’’’’’’’’’’’ž’ż’ü’ü’ż’ł’’’’’ś’’’ū’’’’’ü’’’ż’’’ž’ū’’’’’ś’’’’’ž’ž’ü’ž’’’ž’ž’ś’’’ū’ū’ü’’’’’ż’ü’ž’ž’’’’’ś’’’ü’ü’ž’ż’’’ž’ū’’’’’’’ś’ż’ž’ž’ü’’’ś’ž’ż’ž’ż’ū’ü’ž’’’ż’ž’ż’ž’’’ü’ü’ü’ū’ū’ż’ł’ś’ž’ż’ž’ż’ū’ü’ū’ž’ü’’’ž’ü’ü’ż’ż’’’’’ž’ü’ž’ś’ū’ż’ż’ü’ü’ž’ž’’’’’ž’ž’ž’’’ž’ž’’’ż’ž’’’’’’’’’ū’ž’ü’ż’’’’’’’’’ż’ż’ž’ż’ū’ż’ü’ū’ż’ż’ū’’’ż’’’’’ž’ū’’’’’ū’ż’ł’’’ś’ś’ü’ū’’’ż’’’’’’’ž’ü’’’ž’ž’ż’ž’’’ż’ž’ś’ż’ž’’’ż’ū’ž’’’ž’ż’ž’ü’ż’’’’’ž’’’ü’ž’ū’ü’ż’’’ü’’’’’ž’’’ž’ż’ž’ž’’’’’ż’ž’ž’’’ž’’’ū’ž’ü’ū’ū’ü’ž’’’ž’ü’ž’ž’ż’ü’ū’ū’ü’’’’’’’ż’ū’ž’’’ś’’’’’ż’’’ž’ż’ž’’’ż’ü’ž’ų’ž’’’’’ś’’’ū’’’’’ž’ż’ž’ü’ü’ż’ž’ż’ż’ž’’’ž’ž’ü’ž’ž’ż’ž’ł’ž’ū’ż’ž’ž’ž’ž’ū’’’ž’ž’ž’ü’’’’’ž’’’ü’’’ž’ż’ü’ż’ż’’’ü’ž’’’ž’’’’’’’’’ž’ž’ż’ž’’’ž’ž’ž’ž’ż’ż’ś’ü’ś’ś’’’ž’ü’’’ü’’’ż’ž’’’ū’ü’ž’’’ž’ü’ū’ž’ü’’’ü’’’ž’ż’’’ż’ž’’’ż’’’ś’ž’ü’ž’ū’’’ū’’’ž’ś’ż’ū’ž’’’’’ū’ü’ü’ü’ž’’’’’ł’ü’ś’ū’ž’ż’ž’’’ü’’’ł’ž’ž’’’ü’ü’ż’ž’ü’’’’’ż’ż’’’’’ż’ū’ż’ž’’’’’’’ü’ż’ż’ż’’’’’ż’ž’ś’’’ž’’’ž’’’’’ž’ū’ž’ū’ž’’’ž’ż’’’’’’’ž’’’ü’’’ü’ż’ż’ž’ż’ż’ś’ż’ś’ż’ü’ž’ż’ū’’’ž’’’’’ž’ū’ł’ū’ū’ü’ś’ž’’’ü’ü’’’ż’ž’ū’ü’’’’’’’ž’’’’’’’ū’ż’ż’’’’’ž’ū’’’ü’’’ż’ż’’’ž’ū’ż’ś’ü’ž’’’’’ž’ż’ū’’’ż’ž’ž’ü’’’’’’’ž’ż’ś’ū’ż’ś’’’ū’ū’ž’ü’’’ż’’’’’ž’ż’ž’’’ž’’’ś’ż’’’ž’ü’ü’ž’ż’ü’ż’’’ü’’’ż’ś’ü’ų’’’ž’ž’ū’ż’ū’ż’ü’ž’ž’ż’ś’ś’ų’ż’ū’’’ž’’’ū’ü’ü’ż’’’ś’’’ü’’’’’’’ž’’’ż’ž’ž’’’ž’ü’’’’’ż’ł’ž’’’ü’’’ü’ł’ü’ū’ū’ż’ž’ž’ž’ž’’’ž’ž’ž’’’’’ü’ü’ż’ų’’’’’ł’ś’ž’ū’ż’ž’ž’ž’’’ž’’’ž’’’ū’ż’ü’’’ü’ž’ž’ž’ż’ü’ž’ū’ų’ż’ż’ż’ś’’’ż’ū’ł’ž’’’ż’’’ż’ų’ü’ś’ž’ż’’’ü’ż’’’ü’ü’ž’ž’ü’ś’’’ū’ž’ü’ż’ż’ż’ž’’’ł’ū’ū’ü’’’ž’’’’’ż’’’ż’ż’ż’ü’ż’’’’’ż’’’ž’ž’’’ž’ż’ū’’’ž’’’’’’’ž’ż’ž’ż’ž’ü’ś’’’ü’ž’ž’ü’ž’’’’’ž’’’’’’’ž’ž’ž’’’ü’ū’ž’’’ż’ü’ż’ż’ż’’’ž’’’ż’ž’ż’’’ž’ž’ž’ü’’’’’ü’ż’ž’ś’ū’ž’’’ż’ż’’’ž’ž’ü’ū’ś’ł’ż’ł’’’ž’ü’’’ž’’’ż’ż’ž’ž’ž’ž’’’ž’ś’ž’ž’ü’ż’ł’ś’ż’ū’ū’ż’ś’’’ž’ż’’’’’ż’ż’’’’’ū’ü’ś’ū’ž’ż’’’ž’’’ž’ž’ž’ū’ü’ü’ż’’’’’ü’ż’ż’ž’’’’’ü’ž’ü’ż’’’’’ü’’’ż’’’’’’’ż’’’ū’ü’’’ż’ś’’’ł’’’ü’ż’’’’’ž’’’ż’ü’ž’ž’ż’’’ž’ł’ž’ü’ž’’’ż’ž’ż’ü’’’ż’’’ž’ū’ü’ū’ž’’’ż’ü’ž’ż’ž’’’ž’’’ż’ü’ż’ž’ż’ü’ž’ū’ž’’’ü’ü’’’’’ü’ü’ü’ž’ü’’’ž’ż’’’ż’ž’ž’ž’’’ž’ü’ž’ž’ż’’’ž’ū’’’ž’ž’’’ž’ž’ž’ū’ū’ü’ž’’’ż’’’ż’’’ü’ų’ż’ż’ž’’’ż’’’ž’’’’’’’ż’ü’ž’ż’ł’ż’ś’ü’ž’ś’’’ü’’’’’’’ž’’’ž’’’’’ū’ż’ż’’’ż’ś’ü’ż’ü’ž’’’’’ü’’’ü’ż’ż’ž’’’’’ū’ž’ü’ł’ž’ż’ž’’’ž’ż’ž’ż’ž’ž’’’ż’ż’’’ü’ž’ü’ž’ž’ś’ż’ś’ž’’’ž’ž’ž’ū’ž’ū’ż’ž’’’ž’ż’ū’ż’ż’ś’’’ś’ū’ž’’’ś’ż’ż’ū’ü’ś’ż’ł’ż’ž’’’ż’ż’’’ż’ü’ž’ü’ž’ž’ž’ū’ų’’’ü’ž’ž’ż’ž’ż’’’ü’ž’’’ż’’’ż’’’’’ž’ž’ū’’’ż’ū’’’ż’ž’ż’’’ż’ž’ż’’’ž’’’ü’ż’ś’ž’ü’’’ś’ž’ü’ż’ū’ž’ü’ż’ś’ž’’’ż’’’ś’ü’ż’’’ü’’’ž’ż’’’’’ü’ü’ž’ü’ż’’’ž’ś’’’ž’’’’’ż’’’’’ž’ż’ü’ś’ž’ż’ž’ż’ž’ž’’’ü’ž’ż’’’ü’ü’ż’’’ü’’’ü’’’ž’’’ś’ż’ś’ž’’’ü’ž’ž’ž’’’ž’ž’ż’’’ü’ž’ü’ż’’’’’’’’’ż’ż’’’ż’ž’ž’’’’’’’ū’’’’’’’ž’ż’ž’’’ž’ü’ž’ū’ż’’’’’ž’’’ż’ż’ž’ž’’’’’ü’ž’ž’ž’ž’ü’ū’ü’ü’ž’’’ž’ż’ż’ż’ž’ż’’’ü’ü’ż’ż’ž’ż’ž’’’ü’ž’ż’ż’ż’ū’’’ž’ü’’’’’’’’’’’ż’’’’’’’ž’ż’ž’ü’’’ü’’’ž’ž’’’ü’ż’’’’’ž’ū’ż’ż’ž’’’ž’ž’ü’ž’’’ž’ż’’’ū’ž’ż’ž’’’’’ż’ž’ł’’’’’ž’’’ż’ü’ü’ü’ü’ž’ü’ž’’’ž’ž’’’ž’ü’ž’’’ü’’’’’ž’’’ž’’’ž’’’ü’’’ż’’’ž’’’ż’ž’ž’ū’ž’ū’ž’ż’ż’ž’ż’ü’’’’’ł’’’ž’ž’ž’’’’’ž’ž’ž’’’ž’ž’ż’’’’’ž’ž’’’ž’’’ü’ż’’’ž’ž’ž’’’ž’ü’ł’ū’ł’ż’ü’ž’ü’ž’ž’ż’ū’’’ž’ü’ž’ž’ž’ü’’’ü’ž’ž’ü’ž’ū’ż’ż’ü’ü’ż’’’ż’ž’ż’ż’ż’ž’ś’’’ż’ž’ü’ū’ž’ž’ž’’’ž’ž’ż’’’ü’ż’’’ž’ž’ž’ž’’’’’’’ü’ż’ś’ż’ū’ž’ś’ż’ū’ž’ż’ü’ż’ž’’’ż’’’ū’ž’’’’’’’ś’ż’ł’ž’ž’’’ž’ū’ū’ü’ü’ž’’’’’’’ü’’’ū’ž’ž’’’’’ž’’’ż’’’’’ż’ž’ü’ü’õ’ś’ų’ś’ü’ż’’’’’ü’ž’ū’’’ü’ž’ż’ż’ż’’’ż’ž’ś’ż’ż’ū’ž’ł’ż’ż’ü’’’ü’’’ż’’’ż’’’ž’ż’’’ż’ū’ż’ž’ü’ü’ż’ž’ü’ü’ś’ś’ž’ż’’’ž’’’ż’’’’’ū’ū’ž’’’’’ś’ž’ū’ž’ü’’’ž’ū’ś’ū’ś’ū’ü’ž’ż’ž’’’ü’’’’’’’ū’ž’ž’ś’ž’ü’ž’ü’ž’ż’ż’ū’ü’ž’ż’’’ž’ž’ż’ü’ž’ü’ž’ż’ü’ų’ś’ł’ž’ż’ü’ż’ž’ž’ž’’’’’ž’’’ż’ż’ū’’’’’ż’ū’ż’ž’ž’ż’’’’’’’ü’’’ü’’’ü’’’ž’ł’’’ž’ü’ū’ü’’’ž’’’ü’ž’ü’ż’ü’’’ū’ż’ü’’’ż’’’’’ž’’’ž’ü’ü’ż’ū’ż’ż’’’ż’’’ü’ż’’’ž’ż’ż’ü’ž’ś’’’÷’ü’ś’’’ž’ž’ü’ž’’’ž’ž’’’ż’’’’’’’’’ż’ü’ž’’’ū’ž’ž’’’ž’’’’’’’ü’ž’ž’ü’ż’ū’ü’ś’ž’ū’ż’ž’’’ū’ü’ż’’’ż’ż’ž’ü’’’’’ž’ż’ū’ś’ż’ś’ū’ż’ż’ž’ż’’’’’’’ū’’’ż’’’’’ż’ū’ü’ż’ł’’’ū’ś’ü’ų’ż’ż’ž’ł’ū’ś’ü’ž’ż’’’ż’’’ü’ż’’’ž’ü’’’ž’ū’ü’ü’ü’’’ü’’’’’ū’’’ž’’’’’ž’’’ū’ž’’’ž’ż’ž’’’ü’ž’’’ž’ü’’’ū’’’ś’ž’ü’ū’ü’ż’ü’ū’’’ż’ž’’’ž’ü’ž’ż’ż’ž’’’ż’ż’ž’’’ž’’’ś’ü’ž’ž’ž’ż’’’ž’ž’ž’’’’’’’ž’ž’ž’ū’ž’ü’ž’ż’’’ž’ū’ž’ū’ż’ü’ž’’’ž’ž’ü’ż’ł’ü’ü’ž’ū’ł’’’ū’’’ż’ū’ž’ü’’’ż’ż’ž’ž’’’’’’’’’ž’ü’’’ż’ž’’’ü’’’ž’ž’ż’ž’ś’ż’ü’ž’ż’’’ž’’’’’’’ū’’’ż’ž’’’ž’’’ż’ž’ž’ł’ł’ų’ś’ž’ž’ü’ż’’’ü’’’’’ü’ś’ū’ū’’’ž’ž’ž’ś’’’ž’ž’ż’’’ż’’’’’ż’ū’ū’ū’ž’’’’’ž’ö’ü’ś’ü’ż’ž’ś’’’ų’’’ū’ž’ū’’’ż’ū’ś’ü’ž’’’ž’ż’’’ś’’’’’ü’ż’ü’ž’ż’ż’’’ü’ž’ż’ż’ż’ż’ž’’’ü’’’’’ž’’’’’ū’’’ū’’’ż’ž’ž’’’ž’ż’ž’ü’ž’ż’ž’ü’ż’ž’’’’’’’’’’’’’’’ż’ž’ś’ū’ū’’’’’ž’ū’’’’’’’ż’ū’ū’ü’’’ż’’’ž’ż’ż’’’’’ż’ž’ż’ū’ž’ų’ü’ū’ü’ż’’’ü’’’ü’ž’ū’ž’ł’ż’’’ż’ü’’’ž’ü’’’ū’’’ü’ž’ū’ž’’’ż’ž’’’ü’’’ż’ü’ż’ž’ü’ż’ż’ü’ū’’’ū’ž’’’ü’’’’’’’ż’ż’ż’’’’’ż’’’ż’’’ū’ü’’’ż’ż’ś’ž’ü’ž’’’ž’’’ž’’’’’ż’’’ł’’’’’ü’ż’ž’ü’ż’ü’ż’ž’ż’ü’’’ū’’’ż’ž’ų’ż’ų’ü’ż’ü’ż’’’ś’ü’ž’’’’’ż’’’’’ż’ž’ū’ł’ż’’’÷’ž’ś’ū’ż’ż’ż’ü’ž’ü’ż’’’ż’ž’’’ż’ž’ś’ż’ś’ž’ü’ž’’’ż’’’ž’ū’ž’’’ü’’’ś’ż’ž’ū’ž’ś’ž’ž’’’ž’’’ż’ż’ü’’’ż’’’ž’’’ž’ž’ž’’’ž’’’’’’’ż’ž’’’’’’’’’ż’ž’ü’ū’ü’ū’’’ü’’’’’ž’’’ū’’’ś’ž’ž’ż’ž’ų’’’’’ś’’’ż’ž’’’’’ü’ž’’’’’’’ż’’’’’’’’’ž’’’’’ž’ś’’’ž’÷’ž’ū’’’ž’ž’ż’ü’ū’ž’ž’’’ż’ż’’’ž’’’’’ž’ž’’’ž’ž’ü’ž’ž’ż’ü’ü’’’ž’ś’ū’ż’ž’ž’’’ü’’’’’ü’’’’’ż’’’ś’ž’ü’’’’’ž’ž’ś’’’ü’ś’ś’ž’ż’ž’’’ü’ü’ū’’’ż’ś’ś’ų’ü’ü’ž’’’ž’ü’ż’ž’’’ż’ž’ż’’’ś’ü’ś’ü’ż’ż’ż’ż’ž’ü’’’ž’’’ž’ž’’’’’ż’ž’ū’ż’’’ż’ü’’’’’’’’’’’ū’ž’ü’’’ū’ž’’’ž’’’ū’’’ż’ž’ž’ś’’’’’ž’’’’’ž’ż’ž’ž’’’ž’ž’ž’ż’ż’ś’ž’ż’ü’ż’ž’’’’’ž’ž’ż’ž’ż’ü’’’ž’ž’’’’’’’’’ż’ż’’’ž’ž’’’ž’’’ü’’’ž’ų’ż’ū’ż’ž’ü’ż’ż’ž’ü’ž’ż’’’’’’’ü’ž’ž’’’ż’’’ü’ü’ż’ž’’’’’ž’’’ż’ž’’’ž’ł’ų’ż’’’ż’ž’ł’ł’ż’ł’ū’ü’ż’ū’ż’ż’ü’ś’’’ž’ž’ż’ü’’’ü’’’ž’’’’’ž’ż’’’ż’’’ū’ż’ž’ü’’’ž’ž’’’’’ż’’’ž’ż’’’ū’’’ž’’’ž’ü’ž’ž’ü’ż’ś’ü’’’’’ś’ü’’’ż’ś’ž’ž’’’ü’ü’ż’ł’ü’ų’ū’ž’ž’ü’’’ų’’’ż’’’’’ž’’’ž’’’ž’ż’ž’ū’’’ü’ż’’’’’ż’’’ż’ž’’’’’ž’’’ž’ž’ż’ż’ż’ż’’’ü’ü’ś’ż’ś’ž’’’ž’ż’’’ž’’’ž’’’ż’’’’’ż’ż’ś’ü’ś’ž’’’ż’ż’ż’ż’’’ž’ž’’’ž’ż’ž’ü’ü’ż’’’ž’ü’ż’ü’ü’ü’ż’ü’ž’ž’ū’ż’’’ž’ž’ż’’’’’ü’ü’ū’ż’ż’ż’’’ü’ž’’’ū’ż’’’ż’ś’ü’ś’ž’ū’ž’ū’ż’ū’ų’’’ž’ž’ž’ü’ż’ż’ū’ü’ü’ž’ż’ž’’’ü’ü’ü’ž’ž’ž’’’ż’ž’’’’’’’’’ž’’’’’’’’’ž’ż’ž’ż’’’ž’’’ž’’’ž’’’’’ž’ż’’’ś’ž’ż’ż’ż’ž’ż’’’ż’ż’’’ł’’’ü’’’’’’’ū’’’ż’ž’ż’ś’÷’ś’ü’’’ż’ž’ż’’’ž’ż’ż’ž’ż’ż’ż’’’ż’ż’’’ż’’’’’ž’ż’ż’’’ś’’’ü’ü’ū’ż’ż’’’’’ž’ž’ł’’’ż’’’’’ž’ż’’’ż’ż’’’’’ż’ż’ü’ü’’’’’’’’’ž’’’’’’’ż’’’ż’’’’’’’ü’ü’ż’’’ż’ž’ž’’’ū’ü’ł’ż’ś’ž’ž’’’’’’’ž’’’’’ż’’’’’’’’’’’’’ū’’’ū’ü’ž’ś’ž’ü’ż’ü’ž’ž’ž’ü’ż’’’ū’ū’ū’ś’’’ū’ž’ś’’’ł’ž’ü’ž’ż’’’’’ü’’’ž’ų’ż’ż’’’ż’ž’ś’’’’’ū’’’ü’ü’’’ü’ž’ž’ü’’’ż’ž’ū’’’ż’ż’ż’’’’’ž’ž’ü’ž’ż’’’ž’’’’’ž’’’ż’ž’ž’ż’ž’ż’’’ų’’’ż’ū’ž’ü’ž’’’’’’’’’’’ž’’’ż’’’ü’ü’ż’’’ü’ž’ž’’’ż’ž’ž’ž’ü’’’ü’ž’’’’’’’ž’ž’ž’ż’ż’ü’ü’ū’ū’ž’ž’ž’ū’ų’ł’ś’ū’ż’ü’ż’ž’’’ż’’’’’ž’ž’ü’ü’ü’’’’’’’’’’’ž’ž’ž’ż’ž’ś’ü’ś’ū’ü’ü’ł’ü’’’’’ü’ū’ż’ś’ż’’’ü’’’ž’ż’ž’ż’ū’ž’ż’’’ž’’’’’ż’ż’ž’ü’’’ż’ż’ż’ū’’’ż’’’’’ž’ś’’’ż’ż’’’ž’’’ż’ü’’’ū’’’ś’ž’ž’ž’ś’ż’ö’’’ü’ž’ž’ż’ś’ü’ž’ž’ž’ż’ż’ś’ż’ū’ż’ž’ü’ž’ż’ü’ż’’’ł’ž’’’ž’ž’ž’’’ś’ž’’’’’ž’’’ż’ž’’’ž’ž’’’’’ž’ž’ż’’’ż’’’ž’ł’’’ł’ł’ü’ü’’’ž’ü’’’ü’ż’ü’’’ž’’’’’ż’ž’ž’’’ż’ž’ż’ž’ż’’’’’ż’ž’ž’’’ž’ž’’’ü’’’’’ż’’’ż’ž’’’ū’’’ż’’’ž’ž’ż’ž’ü’’’ż’ü’ż’ų’ ’’÷’’’ś’ü’’’ü’ż’’’ü’’’’’’’’’ū’’’ū’ū’ü’ż’’’ż’ž’ž’ž’ž’’’ž’’’ž’’’ü’ž’ų’’’ś’’’ż’ż’’’ž’’’ž’ż’ż’ż’’’’’ż’ü’ś’ü’ü’ū’ü’ś’ś’ž’ü’ž’ž’’’’’’’ž’ü’ż’ū’’’ü’ü’ü’ü’ž’’’’’’’ž’ū’’’ü’ū’ż’ż’ž’ž’ż’ż’’’’’ž’ž’ü’ż’ū’’’ü’ż’ü’ż’ž’ž’ž’ž’ū’’’ż’ž’’’ū’’’ü’’’’’ž’ž’ž’ś’ż’ż’ž’ž’ż’’’ś’ž’ż’ž’’’’’ż’’’ü’ž’ś’’’’’’’ż’ü’ü’ż’ž’ż’ś’ū’’’ż’’’ž’’’ż’’’ū’ž’ż’’’’’ž’ż’’’’’ż’’’’’ž’ž’’’’’ž’’’’’ł’ž’ū’’’ū’ž’ž’’’ū’ū’ü’’’’’ż’ž’ż’’’ž’’’ü’ž’’’ž’’’’’ž’ž’ž’ż’’’ż’ž’’’’’ž’ž’ü’ž’ž’ž’ż’’’ż’’’ü’ž’ś’’’ž’’’’’ū’ż’’’ų’ś’’’ż’ū’ž’ś’’’ż’ž’ż’’’ü’’’’’’’ž’ž’’’’’ž’ž’’’’’ž’ž’ż’’’’’’’’’ü’ü’ż’ž’’’ż’ż’ż’’’’’ž’’’ū’’’ü’ż’ū’’’’’ż’ś’’’ł’ü’ż’ü’’’ž’ž’’’’’ž’ż’ż’ż’ž’’’ś’ū’ö’ū’ū’’’ž’ż’ż’’’ü’ś’ż’’’ś’ž’ż’ž’ž’ż’’’ž’ž’’’ž’ū’ž’ś’ż’’’ž’ż’ž’ż’ż’ż’ü’ż’ü’ü’’’ü’ż’ü’ž’ž’ū’ž’ż’’’’’’’ż’ž’ž’ū’’’ż’ž’ü’’’ż’ž’’’’’ż’’’ś’’’’’’’ü’’’ü’’’’’ü’ž’ś’ü’ł’ż’ś’’’’’’’ž’ž’ž’ż’ż’ž’’’ż’ž’ž’ż’’’’’ü’’’ž’ü’ü’ż’’’ž’’’ž’ż’ž’ł’ż’ų’ž’ž’’’ü’ż’ž’’’ż’’’ż’ü’ž’ž’ü’’’ü’ū’ž’ž’’’ž’ż’’’ž’ś’ż’ś’ü’’’’’ž’’’ż’ž’ž’ž’’’’’ü’’’ü’’’ż’ū’ž’ś’ü’ż’ū’ž’ž’’’ž’ż’’’ü’ż’ž’ü’ż’ż’’’’’’’’’ż’ž’ü’ū’ś’ż’ū’ż’ž’’’ž’ž’ž’ž’’’ž’ž’ž’’’’’’’ż’ü’’’ž’ž’ū’ż’ż’ż’ż’ż’ü’ū’ż’ż’’’ü’’’ż’’’ś’’’ś’ž’ż’ü’ū’ż’’’ž’’’ü’ž’’’’’’’ż’ž’ž’ž’ž’ż’’’’’ü’’’ž’’’ž’ż’ž’ü’’’ü’ü’ž’ż’’’ž’ż’’’ü’ż’ž’ž’’’ž’ż’’’ż’ü’ū’ž’’’ż’’’ū’ż’ž’ż’’’ü’’’ś’ž’ž’ž’’’ü’ś’ü’ų’ž’ż’ü’’’ž’ż’’’ž’ü’ü’ū’ż’ž’ž’ž’’’ž’ž’ż’ž’ü’ü’ś’ż’ż’’’ž’ž’ž’’’ü’’’ż’ž’’’ž’ž’ż’ż’ż’ż’’’ž’ž’ż’ū’ž’ū’ž’ž’ż’ž’ž’ż’ž’’’’’’’ž’’’ż’ž’’’ž’ü’ž’’’ü’’’’’’’ū’ž’ż’’’ż’’’ž’ś’ż’ü’ü’ż’ü’’’’’ż’’’ż’’’ž’ü’ś’ü’ż’ū’’’ü’ż’ż’ż’ü’ž’ś’’’ż’ž’ū’ż’’’’’ż’ž’ż’’’ž’ž’’’’’’’’’’’ž’ž’’’ł’ū’ü’ü’ż’ž’ž’’’ś’ż’ü’ž’ż’’’ł’ż’ż’ż’ś’ü’ü’ž’’’ž’’’’’ū’ž’ł’’’ü’ž’’’’’ü’ü’ž’’’ü’ż’ż’ž’’’’’’’ż’ž’ü’ž’ż’ż’ū’ž’ż’ž’ü’’’’’ž’’’’’ż’’’ž’ž’’’ż’ž’ś’’’ž’’’’’ś’ž’ž’ż’ž’ū’’’ż’’’ż’ż’ž’’’ū’’’ü’’’’’ž’ż’ü’ž’ü’’’’’ž’ż’’’ł’ž’ū’’’ū’ž’ż’ż’’’ž’ż’ż’ü’ž’ś’’’’’ż’ž’ü’ž’ų’ś’ü’ų’’’ż’ž’’’ü’’’ž’ż’ż’ż’ż’’’’’ū’ż’ū’’’ż’ż’ż’ž’’’’’ü’ż’ū’ž’ś’’’’’ž’ż’ü’ž’ž’ü’ž’ž’ż’ü’ž’ž’ž’ž’ü’ž’ū’ž’’’’’’’’’ü’ü’ü’ž’ž’ž’ž’ż’ż’’’ü’ū’ū’ū’’’’’ż’’’ž’’’ž’ž’’’’’’’’’ż’ž’ł’’’ü’ż’ž’ž’’’ü’ü’ų’’’ż’ž’’’ž’’’’’’’ż’ż’ž’’’ž’’’ü’’’’’ž’ż’ü’ū’ž’’’ü’’’ž’’’ż’ž’ž’ż’’’’’ž’ž’ż’’’ž’ü’ü’ü’ū’’’ż’ž’ž’ū’’’ś’ž’ž’ž’ż’ü’ū’ž’ż’ż’ž’ž’’’ž’’’ż’ü’ü’ś’’’ś’’’ž’ż’’’ž’ū’ž’ü’ś’ū’ü’ž’ü’’’ž’ü’ż’’’ž’ū’ż’ż’’’’’’’ż’’’ż’’’ü’’’ž’ž’ż’ž’ü’ż’ū’ū’ż’’’ü’ż’÷’ż’ś’ż’ž’ž’ž’’’ż’ü’ż’ż’ż’ū’ü’ż’ś’ž’ł’ž’ž’’’’’ü’ū’ü’ž’ž’ų’ż’ż’ž’ž’ž’’’ż’ž’ü’’’ż’ž’ż’’’ż’ū’ś’ž’’’ž’ü’ū’ś’ż’ś’’’’’’’ż’ż’ž’’’ż’ł’ś’’’ü’ż’ū’ż’ż’’’ż’ž’ż’ś’ž’ł’ž’ū’’’ž’ž’’’ū’’’ž’ü’ž’ū’ž’ž’ü’ž’ü’’’ł’’’ž’ż’ł’ū’ł’ž’ž’ž’ž’ū’ü’ż’ž’ž’ū’ž’ż’ž’ž’ü’’’ś’ž’ż’ž’ž’ž’ž’ū’ü’ū’ü’ś’’’ż’ž’’’ž’’’’’’’ž’ž’ż’’’’’ž’ż’ž’ż’ü’ü’ž’ū’ü’ü’’’’’’’ž’ż’’’’’ū’ü’ū’ž’ž’ū’ż’ż’ü’ž’ż’’’ū’’’ż’ż’ž’’’ż’’’ū’ž’ż’ž’ž’’’ž’ž’ž’ž’ž’’’’’ū’’’ż’’’ž’’’ś’’’ż’’’ś’ž’ü’ū’ż’’’ž’ż’’’’’ż’ž’’’ż’ū’ž’ū’ž’ž’ž’ž’ż’ü’’’’’’’ż’ü’ū’ü’ž’ż’ż’’’ū’’’’’’’ż’’’’’’’ž’ž’ž’ž’ž’ż’ł’ü’’’’’ū’ž’ü’ż’ż’’’’’’’’’ż’’’’’ž’ü’ü’ū’ü’’’ū’ū’ż’ū’’’’’ų’’’ž’ų’’’ž’ū’’’ž’’’’’’’’’’’ž’ü’’’ū’’’’’ž’ū’ż’ž’’’ü’ü’ū’ž’ū’’’ž’’’ž’ü’’’ž’’’’’’’’’ž’’’ü’ü’ż’ū’ž’’’’’ž’ž’ż’’’ž’ś’ž’ž’’’’’’’ż’’’ū’’’’’’’ž’ž’’’’’ž’’’’’ż’ū’ū’ż’ž’ü’ž’’’ü’ż’ž’’’ž’ž’ü’’’’’ü’’’ž’ż’ž’’’ü’ü’ž’ž’’’ž’ü’ž’ü’’’ž’ž’ż’ż’ü’ü’ü’ü’ż’ū’ł’ū’’’ü’ž’ž’ż’ü’’’’’’’ż’’’’’ž’’’’’’’ü’ż’ż’ś’ż’ū’ž’ż’’’ś’ś’’’ż’’’ž’’’ž’’’’’ü’’’’’ż’ż’’’’’’’ž’ż’’’ü’ž’ś’ż’ü’ū’’’ü’ž’’’ż’’’ż’’’ž’’’ż’ü’ž’ż’’’ż’ž’’’ž’’’’’ž’ü’ž’’’’’ž’ü’ž’ś’ż’ž’ü’ż’ū’ū’ū’ś’ż’ū’ż’ü’ś’ż’ż’ż’ž’ś’’’ž’ū’ū’’’ž’’’ü’ü’ż’ū’’’ż’’’’’ż’ś’ū’ż’ž’ś’ž’ž’ž’ž’ž’’’ż’’’ž’ż’ż’ż’ż’ü’ž’ż’ż’ü’ś’ž’ž’ü’ū’ł’’’ž’’’’’’’’’ż’ż’ü’ū’ż’’’’’ū’ž’ü’ž’’’ż’ž’ż’ü’’’ż’ż’ż’ż’ž’ž’’’’’’’ž’ž’’’’’ž’ž’ü’ż’ū’’’ž’’’ü’ž’’’’’ż’ż’ž’ž’ž’ū’ż’ż’ż’ż’ż’ü’ł’ž’ü’’’ū’ż’ż’ü’ż’ž’ū’ü’ż’ż’’’ü’’’ś’’’ž’ū’ż’ü’ż’’’ž’ż’’’ž’’’’’’’ž’ü’ś’ł’÷’ž’ž’ü’’’ž’ž’ż’’’ž’ż’’’’’’’ž’ž’ü’’’ž’ż’ż’ž’’’ž’’’ü’ż’ż’’’’’ü’ü’’’ž’ž’ü’ż’ų’ž’’’ū’ž’ü’ž’ž’’’ż’ż’ž’’’ü’’’ž’’’ž’ž’ż’’’’’’’’’ü’’’ū’ž’ž’’’ś’ž’ū’ž’’’ż’ū’’’’’ś’ü’ż’ž’ž’’’ü’’’’’ż’’’’’ü’ż’ž’ü’ż’’’’’’’ü’’’ž’’’ż’ü’ž’ü’’’ż’ż’ž’’’’’ž’ž’’’’’ž’ż’ž’ž’ž’’’ż’ž’ö’ž’’’ł’’’ż’ü’ü’ś’ž’ż’ž’ž’ż’ü’ü’ž’’’ż’’’ü’’’ż’ü’ž’ü’’’ž’’’’’ž’ū’’’ż’ž’ž’ž’ž’ż’ū’ū’’’ś’’’ż’’’’’ż’ž’ż’ż’’’ž’ż’ł’ż’’’ž’ü’ü’ś’ż’’’ü’ž’ü’ż’ż’’’ž’ż’ż’’’ü’ü’’’’’ž’’’ü’ü’’’’’ū’ż’ż’ż’ż’ż’’’’’ū’ū’ü’ż’’’ü’’’ž’ž’ł’ż’ś’ż’ž’ž’ž’ü’’’ż’’’ž’’’’’ž’’’ü’ż’ž’ż’ž’’’ü’’’ž’’’’’ž’’’ž’’’ž’ü’ū’ś’ż’ü’’’’’ž’’’ż’’’ž’ż’ż’ü’ż’ž’ż’ž’ū’’’ż’ż’’’ž’ü’ž’’’ż’ż’’’ž’ż’ū’ž’’’ū’’’’’ż’ü’’’’’ž’ž’’’ž’’’ż’ż’ž’ž’ž’’’ż’ž’’’ü’ü’ż’ž’ü’’’ž’ž’ü’ż’ż’ž’’’ż’’’ü’’’’’’’’’’’’’ż’’’’’ż’ü’’’ü’ž’ū’ś’ž’’’ž’ž’ž’ż’’’ū’ž’’’ł’ż’ž’ž’ü’ž’ū’ū’’’ü’’’’’’’ü’ü’ü’ż’ż’ü’ž’ž’’’ž’ž’’’’’ż’’’ž’ż’ż’ž’ž’’’ž’ü’’’ž’ž’’’ü’ü’ž’ž’’’ü’ü’ū’ü’ž’ū’ž’ś’ž’’’ž’ż’ż’ž’ü’ż’ž’’’ž’ž’’’ż’ż’’’ü’ž’ž’ü’ż’ü’’’ü’ż’ü’ż’ś’ż’ż’ż’’’’’ž’’’ž’’’ż’’’ū’ż’ż’ü’ż’’’’’ū’ž’ü’’’’’ž’’’ż’ü’’’ż’ž’ü’ż’ż’ż’’’’’ż’ü’ž’ż’ū’’’ž’ż’ž’’’’’ż’’’’’ž’ž’ū’ż’’’ü’ž’’’’’’’’’ū’ł’ū’ž’’’ż’ś’ü’’’’’’’ż’ž’ż’ž’ż’ü’ż’ż’’’ū’ü’ü’ž’’’’’ż’ž’ł’’’ś’’’’’ž’ū’ž’’’ž’ū’ž’ž’’’ū’ł’÷’ś’ų’ü’ū’ż’’’ž’ž’ż’ü’ż’ł’ż’ż’ū’’’ż’ü’ż’ü’ž’’’ż’’’’’’’ž’’’’’ż’ū’ž’ż’ü’’’ż’’’ł’ż’ü’ż’ž’’’’’ž’ž’ś’’’ż’’’’’ż’ū’’’ż’ž’ü’ś’ž’ż’ż’ż’’’ž’’’’’ż’ž’ż’ž’ż’ž’ž’’’ž’ž’’’ž’’’’’ž’ž’ž’ū’ü’ż’ż’’’’’’’ž’ż’ž’ü’’’’’ž’ż’’’ž’ž’ž’ü’ū’’’ž’ż’ž’ż’ž’ū’’’ż’ž’’’ž’ł’ś’ł’ł’ü’ł’ł’ś’ū’ś’ż’ū’ž’ž’ž’ž’’’’’’’ū’ü’ż’ś’ž’’’ż’ż’ż’ž’’’ż’ü’ż’ū’ż’ž’’’ž’ž’’’’’ü’’’ż’ž’’’ż’ž’ż’ż’ž’ž’ż’ü’ż’ü’’’ż’ž’ü’ž’ś’ž’ž’ż’ž’’’ż’ž’ū’’’’’ū’ž’ś’’’’’ż’ż’ü’’’ž’ü’ž’ū’ż’’’ž’ž’’’ž’ż’ż’ü’ū’ü’ż’ū’’’ś’’’ü’ż’’’’’ż’ž’ś’ż’ż’ž’ž’ł’ż’ū’ż’ż’ż’ü’’’ū’ś’ž’ž’ż’ž’ž’’’ž’ü’ū’ū’ś’ū’’’’’ž’’’ż’’’’’ž’’’’’ü’ż’ü’ž’’’ž’ū’ż’ū’ü’ś’ż’ž’ż’ų’ż’ż’ū’’’ü’ż’ž’ü’ž’ü’’’ž’ż’ž’’’ž’ž’’’ü’ż’ž’ž’ł’ż’ü’ž’ü’ž’ü’ż’ż’’’ž’ū’’’ż’’’’’’’’’’’’’’’’’ž’ž’’’’’ż’’’ü’ž’ū’ü’’’’’’’ž’’’ž’ü’ž’ż’ž’ž’ž’’’’’ś’ž’ż’ż’ų’ų’ū’ü’’’ž’’’ż’’’ž’’’ś’’’ų’ž’ž’’’ū’’’ł’ž’’’ś’’’ż’ū’ż’ū’ü’ż’ž’ž’ż’ż’ž’’’ž’ū’ż’ż’ž’’’ž’’’ü’’’ū’ž’ü’’’’’’’’’’’ż’ü’ż’ž’ü’ž’ż’ü’ž’ü’ś’ż’ū’ž’ž’’’ü’ü’ž’ž’ü’ż’ü’’’’’’’ž’’’ž’’’’’ū’ü’ż’ł’’’ž’ż’’’’’ž’ż’ż’ż’’’’’’’ž’ü’’’ž’’’ü’ü’ü’ž’ż’ż’’’ż’’’ž’ž’ü’ž’ü’’’ž’ž’’’ū’’’ż’ū’ż’ł’ł’’’’’’’ż’’’ž’ü’’’ž’’’’’ž’’’’’ū’ž’’’ü’ž’ł’ü’ż’ż’’’ż’’’ū’’’ū’ž’ü’ü’ž’ū’’’ž’ž’ż’ž’’’ż’’’’’’’ü’ž’ü’’’ü’ū’ś’ś’ż’ł’ż’ū’’’ž’ż’ż’ū’’’ż’’’’’ž’’’ž’’’ü’ž’ž’’’ż’’’’’ž’ś’’’ū’ż’ż’’’’’’’’’ž’’’’’’’ż’’’ū’’’ł’ž’ų’ž’ü’ż’’’ü’’’ü’ž’’’ž’’’ü’ž’ū’ü’ž’’’ü’ž’’’ż’ż’ü’’’ü’ž’ž’ž’ž’’’’’ż’ž’’’ž’’’’’’’ū’ž’ü’’’ł’ž’ū’ž’ž’ü’ż’ž’ś’ż’ü’ü’ž’’’ž’ž’ż’ż’ū’ś’ś’ł’’’ż’ž’’’ü’’’’’’’’’ż’ż’ü’ś’ś’ż’ž’ž’ü’’’ż’ū’’’ś’ž’ž’ž’ž’’’ž’ż’ż’’’ü’ž’ž’’’ž’ū’’’’’’’’’’’’’’’ž’ž’ü’ū’’’ž’ż’’’ž’ž’ż’ż’’’ū’ž’ü’ż’ž’ü’’’’’ż’ž’ž’ž’’’’’’’ž’ū’’’ü’’’’’ü’ü’ś’ų’ž’ż’ž’’’ū’ū’ü’ū’’’’’ž’ż’ż’ż’ž’ż’ž’’’’’’’’’ž’ž’ū’ż’ž’ż’ž’ū’ž’ü’ü’ü’ś’ü’ū’ū’ł’ū’ü’’’ü’ü’ū’ü’’’ü’ū’ž’ż’’’’’ž’’’ü’ż’ž’ū’ü’ū’ü’ū’ž’’’ū’’’’’’’’’ž’ž’ü’ł’ž’ü’’’ü’’’ż’ż’ü’ż’ž’’’’’ż’ž’ż’ż’’’ž’ż’’’’’ż’ū’ž’ż’’’ž’ż’ž’’’’’ž’’’ü’ż’ū’ž’ž’’’’’’’’’ž’ž’ż’ü’ż’ü’ü’’’ž’’’ż’’’ü’ü’ż’ü’ž’’’’’ż’’’ū’’’’’ż’’’ž’’’ū’ü’ż’ž’ž’’’ž’ü’ś’ū’ś’’’ž’ś’ż’’’ś’’’ż’ü’ü’ū’ü’ž’’’ž’ż’’’ž’’’’’ü’ü’ś’ž’ś’ż’ž’ž’ü’ž’ż’’’ž’’’’’ż’ž’’’ž’’’’’’’’’ż’ü’ż’ü’ž’ū’ż’ł’ż’ż’ž’’’ż’ż’ś’’’’’ž’ü’’’ü’ż’ü’ż’ü’ü’ż’ü’’’ż’ž’ż’ž’ż’ż’’’’’’’’’’’’’’’ü’ž’ž’ž’’’ż’ż’’’ü’ż’ž’ū’ü’ż’ž’ž’ž’ü’ž’ż’’’ü’ż’’’ž’ū’ž’’’’’ž’ś’ū’ż’ž’’’’’’’ü’ū’ž’ū’’’ž’’’ż’ž’ś’ž’ż’ś’ż’ż’’’ž’’’ž’ż’’’ż’ū’’’ł’ž’’’ż’ž’ż’ū’ž’ü’ż’ž’ü’’’ū’ū’ü’’’’’ż’ü’’’ż’ż’ż’ż’’’ż’’’ž’ü’’’ž’ż’ü’ż’ž’’’’’ž’’’’’’’’’ž’ž’ž’ü’ż’ś’’’ż’ž’’’ž’ż’ü’ü’ż’ż’ü’ū’ś’’’ū’ž’ż’’’ū’ü’ū’ż’’’ż’ž’ž’’’’’’’ž’ž’’’ž’ž’ž’ż’ü’ū’ü’ž’ż’ü’’’ü’ž’ž’ż’ż’ü’ż’’’ż’’’ž’ž’ż’ż’’’’’ż’’’ś’ż’’’’’ś’ś’ł’ų’ū’ł’ś’ł’ž’ś’ś’’’’’’’ž’ž’ž’ž’’’ž’’’’’’’ž’ż’ż’ž’ż’ś’ż’÷’ž’’’ž’ż’ż’ż’’’ż’’’ž’ü’’’ś’ż’ś’ż’ü’ž’’’’’ż’’’’’ż’ž’’’ż’ü’ü’ü’ż’’’ž’’’ž’’’’’’’’’’’ü’’’ü’ž’ž’’’ž’ž’’’ż’’’’’’’ü’’’ż’’’ż’ž’’’ž’ž’’’ž’ż’ū’ž’’’’’’’ł’ü’ž’’’ż’ż’ś’ż’ü’ś’ž’ž’ž’’’ž’ż’ż’ž’ž’’’’’ū’ü’ż’ż’ž’ż’ż’’’ž’ū’ž’’’ü’’’’’ż’ž’ū’ż’ł’ü’ž’ž’ż’ū’ų’ü’ż’’’ž’ž’ž’ž’’’ż’ž’’’ż’’’’’ū’ž’’’’’ü’ś’ż’ž’ž’ž’ž’’’ż’’’’’ż’’’’’ž’ū’ü’ü’ż’ż’ū’ü’ü’ż’ū’ž’’’ž’ż’ż’ū’ż’ū’ž’ś’ū’ü’’’ü’ż’ü’ü’ž’ż’’’’’’’ž’ū’ż’ž’ž’ž’’’ż’’’’’ż’ū’ū’’’ž’’’ž’ü’’’ž’ż’’’ü’’’ž’’’ü’ž’ū’ż’ū’’’’’ü’ż’ž’ü’ü’ü’’’ż’ü’ž’ž’ż’ż’ż’ž’ś’ž’ł’ū’ū’ż’ü’ż’ž’’’ü’ż’ż’ž’ž’ž’’’ü’ž’ū’ž’’’ü’’’ž’’’ż’ų’ž’ū’ž’ż’ž’’’’’ü’’’ū’’’ż’ż’’’ż’ü’ż’ü’ż’ū’’’’’ū’’’ś’ž’ū’ü’’’’’ū’ü’ż’’’ż’’’’’’’ż’ż’ü’ž’’’ū’ü’ž’ś’’’ü’’’ü’ü’ū’ü’ž’ž’ü’ž’ž’ż’ū’’’ž’ż’ż’ż’ū’ż’ž’ž’’’’’ž’ž’ü’ü’ż’ż’’’’’ü’ū’ł’ż’’’ž’ż’ś’’’’’ż’’’ž’ž’’’ž’ž’ż’’’ż’ž’ž’’’’’ü’ū’ż’ü’ż’ż’’’’’’’’’ż’ū’ż’ū’ū’ż’’’’’ž’’’ż’ż’ž’ż’’’ż’’’’’ż’ü’’’’’ž’’’’’ž’ü’ü’ü’ż’’’ž’’’’’’’’’ü’ü’’’ū’ū’ü’ż’’’’’ū’’’ū’’’’’’’ž’ü’ż’ü’ż’ž’’’ž’’’ū’’’ü’’’ü’’’ż’ż’’’ž’ż’ż’’’ż’ü’’’÷’ž’ł’ž’ž’ž’ž’ž’ž’’’ž’ü’’’ü’’’’’’’’’ż’’’’’ż’ž’ž’’’ż’ż’ü’’’ż’’’’’ž’ü’’’ž’ž’ż’ü’ż’ų’’’ż’ż’ž’ū’ū’ś’ū’ž’ż’ž’ü’ü’ü’ž’ž’ž’’’ü’’’’’ż’’’ü’ž’ž’ž’’’’’’’’’ž’ž’’’ū’ż’’’ż’ż’ž’ż’’’’’’’ž’’’ś’ż’ž’ż’’’ž’’’’’ž’’’’’ż’’’ü’’’ž’’’’’ū’ü’ś’ż’ž’ż’’’’’ü’ż’’’ż’ž’ž’ž’’’ü’’’ū’ü’ž’’’ż’’’ł’ü’’’ž’’’ż’’’’’’’ž’’’ż’ž’’’’’ž’’’’’’’ż’’’ū’’’’’ż’ū’ū’ś’ū’ž’ū’ż’’’’’ü’ż’ś’ü’ż’’’ž’ż’ž’’’ż’ż’’’ž’ž’’’’’ż’’’ž’ž’’’ż’’’ž’ž’ż’ś’ł’ż’ž’’’’’ž’ū’ś’ś’ž’ż’’’ž’ś’’’ś’ü’ū’ü’ü’ü’ż’ś’ż’’’ž’ż’’’ż’’’ž’ż’ž’ü’ž’’’ž’ž’ž’’’ż’’’ū’ž’ž’ż’ś’ü’ž’ü’’’ž’’’’’ż’ż’ü’ž’ż’ž’ż’ž’’’ż’’’ż’ž’ž’’’ž’’’ž’’’ž’’’ū’ž’ü’ś’’’ü’ü’’’’’ū’’’ö’ž’ł’ü’ü’ž’ū’ł’ż’ś’ū’ž’ü’’’ū’ž’ž’’’ž’ü’ü’ż’’’ż’ü’ü’’’ż’’’’’ż’ž’’’’’ü’ż’’’ž’ś’ü’ū’ū’ū’’’ž’ž’’’’’ś’ü’’’fenrir/config/sound/default/EmptyLine.wav000066400000000000000000000133201513650123000210040ustar00rootroot00000000000000RIFFČWAVEfmt (ž’€»ī  €Ŗ8›qfact data€eŽāę¶aŌj(H×p&TWB{ Ō$¢1‚ ” W)$ŽĮųyµ gēmäś ÓźÅŗF)ō¾Ę šewt,;Ž<@¹÷ü;ŅE. ,žk’ŠF37¶ió&DküUń'©Qł+³ z…‡%F)<Ž2ō ‹£”rĪų8vŃaė?ļU‘ćä,£Ų”¬Śöżß–šŗÖFσ„?ĢFĢė0īMŌOAŃą›ŸöŸūĘņŹÜذ¼Å”iłŗØź‡8į„"kZv;ÄJų̱ų:§%歂`ćėBęóß`·,UŌżÄŪg‚9D˜ŁÜķīwł‹”Ęń۟}DŅŌ ĀQÜłŲEžµų°ļł7čZ4ŲśŗZÄńslš?ŁķēdBī8„…÷Ó Œ J"č÷l~rɒ»÷æ"R’¹ä#šamVżŹ¾óaĢčŁQā¢øļEěł^|‡üŌCvåhŗ>ö'¢-?Ų«åśŖ˜ü¶Iŗčį’®’QŌEœZæå: žī śæõŖ]šÕ)( ź $0ÅH8“jH¹õ‚Ņ‘÷õī„ē6&)čnOķuzłˆ<«’…3VńĶd c0`EųÜZį ę2`ō{`õ “x ŌčŸˆF `¹ļÕČ»ßF ŠÖ o/Ļ}źļ‡|¾ę°yłHŖ(ä?ßčs»žńᯓŽig3Ū„ ”ŚÓĶČŻW­ģŽŽfįš:ūzōģO ę÷©‡ēq€ŚŌšb©į—,IŃ$)ė‹SśÓ·IbßrēÕė™*>ķ6œōłfRQßņźžą`Ģ“Ō²=ģŠńä„NęŚ×7Ž§ŚśŠ(Oē4ŠÜypĒīŖŠ×=Ńč±īhß^,ŲsöŅč8×-žÓ4ūiCä m»š§Ķ’ś§"ōŠĒM nI¾¼öJē÷FCå"Šé溌øS2į° ¼į3såņ"Ąóä„ńżzrÜSVb~ ćm±-Œč¬Gó²ŌbākĄņkŸ " ńƧ“ ‘Š„As dØŃūš3nń(īžė¦XŁ—½ģ­įHåæ–ĢEŚé ŹŻš$žŁņV "¼!ńNČ,żn÷+ō›_ąū± ģæ‘kņ5, f’Äęå#čQ…'‚¬¾!Šķ.G]šPV›ųœnńžå˜ī³P… Ś#łB%µ øą» „Ÿń=;Zń_&śŠĆÉ>”hŪ*Ń:LžĢÄč̆… ¶ź¶ßü ͌÷QŜšKć¹ņŗvIõ2lh•E>×tõVMöFåĆa:ˆ÷Ė$žŠPīčė3|0=ńŠ©ł|³Ö9HF ń@ÆQdz/ņŠĆ,­ģ|öÕ{›īģLāD©ž6iüó搟*ōćRo@ėĻ»™ā4‘8ž‘ŗß3^lū‰[ Ķ^¼tߥ \tķ6ÉéJ’Ü8©§ņNåB^ž]ś²°æ”ĻgĄ>*%5'H&8eŹ~ąN W>ō2Æ$K9Z“%˜,37č™öüś4¢ż3¹łöz ćūƒŹ’÷ćrēžK¦\ü^+(śĶoó 'GpĶźx’(˜ķ°įŌDüęĶ®EÜŌ‘VŠĆ5’åĻjäü!ęš‡ķšļ%āJĻCžÕ>āˆWöāĆ’ž]qČÕŽÅ{ a¤³$~ø’0;9øź“ õt;Ķ‘‚nē)™ =ł%$N; ̱ƒĖų’¢¾A“k.-¹k”‹v(–śæ¦’Ž;”"DU5UłšńQĪ–»#źÓ»"Æ@YźQ%\×p)×Ŗ¤(W`“ €ƒõ5ŁõšĮcź§­»Å1Ł_WēĄėٵšwĪYä,ĶńI¾’łŃ«čüĪ—i[ŠŁ|Ę5ń;$§Iéž”f£ ¦ķŁńfŗ²ē#č~“*|śZ•‚ŗ‰i#œeŁQ ^ ż‰æ×"øQž.®0O5:‰ÖO pōŗ :ł®q!»Ēl 5j€ćājųMĻŻƒœi©Ė/wüjŚł¬®Ė ו,ļĶÜū¼ņõ>[ķˆč©LN¤bn ±Bd›Y ā 'üY/n²3õ”ń"źŸ ,H &Žh1Ż/‚QŽ(ģé#*K‹ht{–­Õ(6DćŲm’fåöŽĢßiYī«żøū”oVł?Q ź”zćZa¢Łž#jžMHÄ ńtż‚\_éˆŅĢēś|Š’õ0ĖuŽŁ|é ™¢ė°£@õZiAõcŗž÷:vČėÕ­īż:#üń˜`ś¦sšč«SRŚq¹Fß­pEŻ7jźP“ €6Ø÷Üs=ƒļUyął>Šż"ńDzśråć e³nöOÓFēATdōZŸŗ’YF" µXŚķmŸņńe䒍Ś*VēOrė+wņąµŠnÆ(ūŚŪƒ ‡ˆē©ļHy]ń_¤“źÖƒŪąłQ.Óh›ėĒŖł×t•5餍ÖlÕĮdYķ(žŲ"½ČĪŻŠŠÕ½ ń ­Āč^=ÖTåÓć˜µÉžhļžŠjÜĮI3öŃ£ßē$O”ŲüūöńŸµ<Õ÷ŗšPׯńax„å§äłLR€ ÄģG › g™ky…9蔁§å ’ųģÓ­Sü‚¾„?Tįż ĶĶ lOR`}9üƒ÷ćųisŅĖ!ĻŹ(:‡2ug-£:Ÿ*.œ4 %!Htę‚hdŽžą›-%ÄņÓŅü²Œ“%†ļf RĒ“Ń֖e‘~güOŲ¦%QJ >–;õ4µ”ļšĮ…FB^]—¶ ŽüŃ ®+#ĖNjį}7ƒ„ĶT .ģƒŚÖØP BšŽĄ›ńŒgåPŽšaż&ės¾eB TŚ&qį’õĪCKø’¹śC©'½qĢž‹TC „ķ7“$€õJ źhxĄł¼™é!E+ķĢŹśņaģpü˜÷Ög+”ŌöÉ;Œ Bš­Ć?w&,>Į ł÷+N× 4)•HT”HEŠ&’€śÕJf4¹P“ ”BāYŽź8g }IL§ ē• Œ ¤Ÿ' ó, GØ_Š)°øSH„żš=‹ļ·=¤Ų34eż’¤: ˜¾ńŃžīķ]D›OĶż–Ä÷Łs†š{ƒ!ü*}_ū@Į¦ź|<čU _ā8$œü{zTV‘āG>ž3ĻBž 8(šŒ )%#×īģ1Ėļ8l >@Ä# C”‹Ņ÷ųƒ4¶|¾š‚£z\¹Iś#)ŁģŹExÜĄŪ׏"Ūśo9” Z ×ĆčŹĀšķķł‹āųß”āÓ)nŌwŒWĖf›2ĢS£5ÕWŲė§Ūį×ķ]‚ģŽ ö’¾ņµįaķńŃ*ģŗ‹ćįłņcUÄß³ +r2ż¤ø'ØČZ i°¾!EśZŌ“äo)“’3 WܾżĖ¶iŸķšŠ#ŁP9o› ¤$æ¶µöTž‚ēÉ:Eižš©3źčSŽPCģĶEą7f :J zšhnę%’«³9ć*˵^ĖśLiDfī ,(Źø*ĶaK& ¢(ī/*tę¾ய 1ø¦ZŒł£)Ķ{£ÄQ~£¬³Q÷<) ˜$Ļ{d]ł‰m6ų*čŗ hmX.bŻ2„ĮCåt -% ŽÆ~°zmąÄB%żNC.ūSņÄ%ŠžŚ_žÜ—ÄeČ 6ŻÖÉS’&e½ŽXµfĻ}n'’5bĆ GoæĻOœĪö”Bos`ŠU ū, ń!” }”¼’IKŪ.$Q?wN`x*©aŚI$ŌŽ† ¼bįu܉žŽ$ū°ÄöCøįQJHn"¢Ģõ239 ĪĪDĒĢS(Ō ā"Ų-8WOŚ#»6(;j«?„ʂ3"×Ū'ĶšĶžc7ĢäpK"ŪI•ȅ;DĮō-@fļ2ź VCćˆ)lŚL2 E#-\įWńŲ łVyž)“Nļ*’5\gåķ'ÖaĮ )ļŚŠeK(Mhč.v،3YTMĒ„Aŗß Ē.Ÿ):ęėč¶„'«¤*tH ^Ø- Ā&®„«2sāl5œ"§=ćb’*W`ĀxŽ5Zźʼnš2ń?ā9‰¶.ˆŸŸ‚Y=ŖeUeģ –6ū—«nʱ–ń©7`d#GņŃ$)ś² AAƒPŽ\(ž?0Aö uŃ 3&S¼ō!žJ—ŗbu!®ž“ĒKµŅ— ?¢”ód§uŁÖķłĀĮOłCZSīečž é™Ļ ĄøFņnŚb|¤–bä­üś3 hč†fNZ*œˆw"+ĢQ2ļI1DŁß ØļŖ™A%, 7§ō “ Ś Ā?É ó"58­‘lūīxV™¢Æń6š”Vå1 ņ‚śņņµóåšę±åX?ćDrāęņšÖę5T¤ŪPŠößKÓŻqm¹ķ³BėY ­ź%˜…ŻlćŽuŃÅģ4ęČG¹ų,–ß ¬āx’2‰ČčN³FēLöٶM[å=Ÿī®ęöų¤ż.<és4öōa<ŠÖ U{ł®ró7`zņ¾¶Ün]śÉ–Ļ‘ź$°9B#Ź@@ä—ėµM<—ģ ·*ŚļH„^ā8÷ŁēQ&Ež…EńƒŌŗŠ÷Ö·§<čӍˆd"zŗōž F!S’ĢĪ ' ÅĖ‘É4½ž­-=ƒžż;Į}ü_ü¦żt–°ėČ»%—uĄė;ååź &üīˆ*ģzų§“ ĆčōéYśĪŲė  %X„ķöH]ōaÕéŪc}ųād·įž{ę›q@૯MÖ½e/ģ®ßÄ“ąģ`˜Ÿņ›viņ”pßł# ’-«YÓ?5žĻ÷gšb±¾īÄłōĄ¹›¶&^Ńź% ß ¢Ŗy°¦śbŗĖĆ÷ż‘Ī čO!Ri4óz-QwZāń ē$ŸöČmXDŒ/ļåšŻźĖ׎čĢüx Ķ%Āż…š­ČjšŸčŽöĒĶŪ’iįDPōHųūįXåõ)Żä 3Üļ5.ę{“Ōķ —󵟳ōØŽēFųł²”āßÉČįŽ-$Š8[³ŁŽ{÷ģ¶Zóo"åčĖ¬ŅłN·*Ž5Ōqį(Gnō±ŒrŪ-<å›(Įų„7tę,>|Ō±ńāęģ­:Ś-¶Č$»ę¾Ē½ Ęéųæź82Zī„Šæš˜łzšźŻaą ĢŽŪ«cÖęŌւSŚ“<Īš(ńŽ”4+BŸā–śÉų&lūāCī£>Õ Ä¹Ļy9’šÜC}ļł–xņCfųS€ķlŗ3īā›Cš§5fŽM]·łŸā-Ž.āņ(9ö¦rŒė·ū÷]č­¤÷Ė‘,ķ"kŲčš}BīQ˜pßjÓüš°' ’ÄėiŽDقމ÷wV® pN‰T‚š›Ęķ~ŁøĪł‘¬ų7 Ääŗ×õ ŹHĪ ¼HčÖ«m –Čę ¤Å>lłŅĶūÆMóÕWĶÖD³N<ķ杋üŹŠå·ņćū›»yż0GĀ /eó…$æµėś €«Ŗ ōłŠFĪš@D¾š:‚‘o÷¹īāQń<R?aö¢5łš|LįaŠÜgwÆßäÜŽŃ&ćØöm-? ÕĒÅąėėķYߓóļ²A4Š9ėĮŽ6ūi›mķ õg:W ēĮ8/ü WwĶ[{æ7ö¶Œöē ė¹ū£ZTfT Ą}ńél š^Åt ¾ŠŻpE‰•d5įNń6ļ.ģ^yhżd†’p·ųŒ€łż:Æū§ż %ŪŅöŒtāTÆÓ+į’ś|ą ¢ćś%‡ńžZ1 R `čz-”üīuÄ]‹}Č(Asń@£ļŹjYō¤”éŽüDµą×’–™‹×šņfTę՟ĖńōQ ž‡­÷8żˆ­Źš J) Šs2ŽčJB™"”Ł")‘‡śYŠ”QĖ%æ> lč†';E¹FĖr^Ē«Ąl$Ÿ)L '-! ;To" NĄÅPg:Ų>ż[²RīóÓżņ̶~†8KI}'ˆ l tū{gGiWš÷ɟžÕö‡õ4”ė+uVędĆęä½į4 ŌȊ8õ6Ń ķń„Ņå“ć‘’yžMlåė$ĖóKźŲµÜõ±œ'ż^m’éūåł×‹žŻaF„¶\öX„‡Fö†óŪØöVĶ( Üš½ś8>Čåģ;“ńSDHj(ź×<AÉņģ~š«įäūōō՞ōÆÓ—Æąś6iģĪ'į”1ͤ„ŻÖ½Yõׯ:±å6+ z÷ķYŅ"õš"hż“£–ō ѝķ 8 ōq:Åł͹ 1EŌ?˜“1Ņ÷łS¼%äD=AõńĻ^ųłµ•ń朔åģHŚænćä}Ś>ä‚%:ü–ÜIUlģ©"Õ‹ZóD ¢łō„õĪ`ękčėņ–³³Ū {f} ×§h©‚™ł‚—YŒĮįHōvļ@÷CübsšcŒŻņ_‚ł–°8Wé#Jr ȝg#ōėņ¹EX ®¬*ķŃ#šūĄq‚vžpń€ åśćŪaŅ0}€ųq¬Qé2Įńį2gŹŌS1’ŻcĒ×*ö21Lß'xż£ÖköÜ€ ,† j£VyķS «Śufķ<ĀŲÜ­•ūƒ„Ńį}ųZå²]čę_äW×ÉäpŻJłeėe¼“ŁĶżHŹyf;ŻÅ>­ČTęJޜIŹłøĄß}Ę"ׇģzÕŌL…åŅO€wŽśOćāģ0æäŹ›܈¾$õI ļā³õٳ<ėø‹Ū‚ōćtŽŽŲ•­ÄϱźÄļ+‚ņēąŪ÷˜)ŪżŽZpååŚ½ŻøżŁōĀņežŚ‘1ž—ĢÅšĆ¼Ūż׹ˆs³×2©RŽą× Ü|„ åvgøĻēĘõŚ`Ę+ųˆ³…ņ¹āģżŒ&=ūŃ^Cöh¬”įšŒåó — įv·•Q=q÷p0žŸs ų®ŽÅØŌfenrir/config/sound/default/EndOfLine.wav000066400000000000000000000265201513650123000207070ustar00rootroot00000000000000RIFFH-WAVEfmt (ž’€»Ü  €Ŗ8›qfact data-š™™ŁĪĢ̌Ž Ś«ŲaŽƒ”§Śˆäöw„.Ūeš‹‘k©µŪBü “`­<ܶ”T±ĆÜüK–HµJŻŁą—=¹Ńݶ+u™1½XŽ”7 ›%ĮߎpCŸœÅfßNO4žÉķß*[ɟĶtąg^”÷Šūąäró¢ėŌ‚įĀ~ˆ¤ßŲ āžŠ¦Ōܐā|–²§ČąćY¢G©½äžć6®ÜŖ±č%äŗq¬„ģ¬äšÅ®šš3åĶŃ›ÆŽōŗåŖŻ0±‚ųAę‡éŲwüČędõZ“kPēAšµ_×ē …·T^čū¹H åčŁ$Æŗ<léµ0D¼1óé“<ٽ%zźoHnæėMTĮ ˆė)`˜Ā$ģl-Äö'–ģćwĀÅė+ķĮƒWĒß/¤ķžģČŌ3+ī{›ŹČ7²īX§̼;9ļ5³«Ķ±?Ąļæ@Ļ„CGšļŹÕŠ™GĪšĢÖjŅŽKUń©ā’ӂOÜń†ī”ÕvScņcś)×kWźņ@æŲ_[qóTŚS_ųóśéŪHcōŲ)~Żł”»ėÓŠÅłz PķȎLśW¬åī¼’Óś4øzš°–ZūÄņ„šįūīϤó™žhüĖŪ9õ¢ļüØēĪö‚¦vż…ócųvŖżżc’ųłj®„ž? Žū_² ’#żS¶’’ł"øžHŗ×.M<¾ ³:ā0Ā'‘Fw%Ę®nR Ź5K^” μ(j6ŅCvĖ öÕŹā` źŁQæõ ߯Ųœ™ŠÓį_y„ĒåęV±“¼ém3½I°ķōÉŽ„ń{īŌs™õŹął‰Øģż „ų2v˜ bČj >]_ ¦ ņS - ų'‡!G“ Ö3#<; ³?±$0Ā KF&$I mWŪ'!Š Jcp) %W'o+)Ž{š,ö,eį†/.ź0ģ¾’Ä/Ž4s›žY1Ó8śxŖī2Ē<U¶ƒ4¼@3Ā6°DĪ­7¤HķŁB9˜LÉå×:P$§ńl<T«ƒż>vX2a —?j\¹=,A^`@!ĮBSdĒų,VDGhNÕ8ėE;lÕ²D€G0p\PI$tćl\ŖJxjIh?L |ń&tŌM€x€iOõƒ’ą‹žPꇆ½—“RŽ‹ š£(Tӏ”xƽUĒ“T»RW»—¢2ĒēXƛ)Ó|Z¤Ÿ°ģŽ\˜£7Čź¦]§¾¦ö;_«E ‚Ń`uÆĢ `fbj³S!=ūc^·Ś!&eR»a"÷1%gGæč"Ō=ŗh;Ćo#±IOj/Ēö#ŽUäk$Ė}$kaymĻ%Hmo Ӌ%%y£p×&…8r)ĶŁz*gTŚX6üŽŪŚ4B‘bŪN&’śéŪļY»“ļ!pÜĢeP•ć%÷Ü©qå–×)~݆}z˜Ģ-Žc‰šĄ1ŒŽ@•¤›“5ß”9©9šßś¬Īž=!ą×øc ‘AØą“Äų”†E/į‘Š£zI¶įoÜ"„nM=āKč·¦cQÄā)ōLØWUKćā©LYŅćć w«@]Yäæ ­4aąä#”®(egåy/6°iīåW;˱muę4G`³qüęSõ“śtƒēļ^жīx čĖjøć|‘č©v“¹×€酂I»Ģ„ŸécŽŽ¼Ąˆ&ź?šs¾“Œ­ź¦ĄØ4ėł±Į”»ė×½2Ƒ˜Bģ“ÉĒÜÉģ‘Õ\Ęz PķnįńĒn¤×ķKķ†ÉcØ^ī(łĖW¬åī±ĢK°lļāFĪ@“óļæŪĻ4øzšœ(pŃ(¼ńy4ÓĄˆńV@šŌÄņ4L/ÖȖņXÄלĖóīcYŁīϤóŹoīŚćÓ+ōØ{ƒÜ×ײō„‡ŽĖŪ9õb“­ßæßĄõ>ŸBį“ćGö«×āØēĪöł¶läėU÷ÖĀę‘ļÜ÷³Ī–ē…ócųŚ+éz÷źųm꥟nūqłJņUģb’ųł'žźķW€ś €ļKūįń? Žū¾!Ŗņ4ü›-?ō(œüy9Ōõ#żUEi÷Ŗż3Qžų1ž]“śś"øžķh(üī&?’Ét½żā*Ę’§€R’×.M„ŒēĖ2Ōa˜|æ6[>¤“:ā°¦Ø>ių»;œBšÕĒŠ‘Fw²Óe …Jžßś yN…lė nR I÷$bV“&ŗWZOK^”ąä?b(¾&y3fÆš2(j6x>£n½TJ8rD 2VĶvĖ bbłyR ģm÷ī}Ł ÉyŒ ā` ¦…!"Ö…ē ƒ‘¶#ˉn `K%æõ =©ą&³‘| µu(ؕ÷Ą *œ™ŠŌ̟+±Ų4-…”˜ŽäÉ.y„kš^0n©¦Iüó1b­-%‰3V±“5Jµ;ß³6?¹Ā½+H83½I™7Ż9(ĮŠwCr;ÅWSO=ÉŽ1[œ>Ķeg1@łŠģėrĘAķŌsČ~[CāŲś„ŠšDÖ܁‚–…FŹą_¢Hæä<®ÆI³čŗDK§ģöÅŁLœš$ÓŃnNō«°ŻP…ų2Žé˜Qyü¹jõ-SmAHĆTaČ$ XVVOķWJ ÖŽ$‚Y?]¼0[3ä˜<¬\'kvHA^ņSTÖ_ y 0`ka$! lcł'‡!źw•dķ+"ǃ*fį/•"¤ægÖ3#›TiŹ7£#^§éj¾;*$;³~l³?±$æn§C8%õŹØoœGæ%ÓÖ=qKF&ÆāŅrø‚Ś(ˆެ†‡Ś”–”ŠŪāŸ+‘•ޕۿ«Ą’‰’ܜ·U”~–£ÜyĆź•rš*ŻVĻ—fž±Ż3Ū™[¢8Ž穚O¦æŽķņ>œCŖFߏžÓ8®Ķß§ iŸ,²Tą…ž  ¶Ūąa"“¢ŗbį?.(¤ ¾éį:½„žĮpāłER§ņÅ÷āÕQēØęÉ~ć³]|ŖŚĶäi¬Ļьämu¦­ĆÕåJ;ÆøŁšå'Š°¬Ż!ę™e² įØęį¤ś³•å/ē¾°µ‰é¶ē›¼$·}ķ=čxȹørńÄčUŌNŗfõKé2ąć»ZłŅéģx½OżYźģ÷ æCįźŹ£Ą7hė¦8Ā, ļė„ĶĆ vģ`'bÅżģ>3÷Ę „ķ?ŒČż īųJ!Źń’īŌV¶Ėę ļ²bKĶŚ$ ļnąĪĻ('šlzuŠĆ,®šI† Ņ·05ń&’ŸÓ¬4¼ńž4Õ 8Cņą©É֕<Źņ¾µ^Ų‰@QóšĮóŁ}DŲóx͈ŪqH_ōTŁŻfLęō2岎ZPmõńGąOTōõģüÜįCX{öÉrć7\÷¦å,`‰÷ƒ œę dų`,1čh—ų=8Ęé lłD[ėżo„ł÷Ošģńs,śŌ[…īęw³ś±gšŚ{:ūsÆńĪĮūkDóƃHüI‹Łō·‡Ļü%—nö¬‹Vż£ų Żżß®˜ł”“dž½ŗ-ūˆ—ėž™ĘĀü}›r’wŅWžqŸł’TŽģ’f£€1źZ§öN«Žė¬CÆČ A7³œ„Ö+·#‚%k »Ŗ_1 æ1<=• ĆøI*żĘ?öTæńŹĘŌ`TåĪM°léŚŅŌŽx~ĪÖ[j„ĆŚāHØ·Ži$œ=«āšØŅ ęw ß³g”źž ¼æüˆī… ™Ė‘}ņ v×&!qö“ Sć»"eś 0ļP$Zž” ūå%N) ź{'B° Ē)7 7¤„*+¾*:, E_6Ļ-Ģ;Bd/SNł0üŚõYŽ2ń!aÓe#4å%čÆqø5Ś)o}M7Ī-öi‰ā8Ā1}G•w:·5$” <«9‹­”=Ÿ=Žø6?”A™»ÄĖ@ˆE ˜Š`B|I§uÜõCqM.RčŠEeQµ/ōGYU< µHNYĆé JJB]JĘßK7aѤ#tM+eX€/ Oiß^;žPmf:G3RqķSČSüttō^]UńxūŅjņVå|‚®v‡XŁ€ Œ‚ZĪ„iޱ[ˆFšF]¶Œž#¦Ū^«% ²p`Ÿ”¬ ݽb“˜3!ŗÉšcˆœŗ!—Õ/e| A"tįÄfp¤Č"QķYheØO#.łīiY¬Ö# „kN°]$émB“ä$Å®n6øk%£(Cp*¼ņ%4ŲqSó¬ŁųŁG÷3ŚÕ囎;ūŗŚ²ń00’AŪżÅ‘$ÉŪl [“PÜIš” ×Ü&!…–^Ż-˜õåŻą8ƙźl޽DD›ŽóŽ›PٜŅzßw\nžĒ"ąUh »&ˆą1t˜”°*į€-£¤.–įė‹Ā¤˜2āɗW¦Œ6¤ā„£ģ§:+ワ©u>²ć`»«jB9ä=Ē«¬^FĄäÓ@®RJGå÷ŽÕÆGNĪåŌźj±;RUę±ö’²/VÜꎕ“$Zcēk*¶^źēHæ· bqč%&T¹fųč2éŗõiéą=~¼émź¼I¾ŽqźšUØæŅuėva=ĮĒy›ėTmŅĀ»}"ģ0ygÄÆ©ģ…üÅ£…0ķź‘Ē˜‰·ķȜ&Ɍ>»Ź‘Åī‚“PĢu•Lļ_ĄåĶi™Óļ<ĢzĻ^ZšŲŃR”įšöć¤ŅF„hńÓļ9Ō;©ļń°ūĪÕ/­vņd×#±żņjłŲµ„óGŽŚ ¹ ō%+#ܽ’ō7øŻõĄõßBMßéÄ õ»NāąŽČ'ö™ZwāŅĢ®öuf äĘŠ5÷Sr”åŗŌ¼÷/~6ēÆŲCų ŠĖč£ÜŹųź•`ź˜ąQłĒ”õėŒäŲł¤­Šķ€č_ś¹ļuģęś^Å“šišmū;ŃIņ]ōōūŻŽóRų{üõčsõFüżŅō÷:ŠżÆžų/žŒ 3ś#˜žjČū ’G$]ż ¦’$0ņž-<‡õ“ŽGé;»S±ŻĀ˜_FŅ#IukŪĘ'ŠRwp»+W0ƒ Æ/Ž š £3eźš/ —7ģʦÄŒ;s¤²Y€?ś€¾īuC^ʃiG:Ö]Kā­ROõķBFSŅł×:W$ Æm/[« Œ#_2 i—c¹ F), g@ #5Į!kĒ AV#ōnN ŻLė$érÕ ŗX€&Żv\ —d(Ņzć upŖ)Ę~jQ|?+ŗ‚ń/ˆŌ,®†x ”i.£Š’韾/—ކÅ«“1Œ’ £·(3€–”ý4tš]ĻR6iž¢:Ūē7]¢)ē|9Q¦°ōņ;FŖ7Ńž¦<:®¾® <>.²E‹Ń?#¶Ģh"fAŗSE.ūB ¾Ś":DĀa’E%FōÅčÜQŗGéÉoŗ]OIŻĶö–iäJŃŃ}tuyLÅÕPNŗŁ‹.£O®Ż ™8Q£į™č¤ĶR—å İbT‹é§¢¼÷U€ķ.ȌWtńµ\Ō!Yhõ<9ą¶Z]łĆģK\QżJó÷ą]EŅŠv_:Y ­ a. ą Š b" g!g'5dī!D3Źe u"!?_gü"’Jōhōƒ#ŪV‰jč $¹blÜ$‘$•n³mŃ(%szHoÅ,Ÿ%O†Żpŗ0&&-’rrāgąŁ„7”ÖkgŚ‚C6ŹoīŚ_OːæsuŪ<[`’³wüŪgõ“§{ƒÜörŠ•œ ŻÓ~—ƒ‘ݱГ˜„‡Ž–Išy‹ŸŽk¢Ž›m&ßG®sb“­ß%ŗŸV—4ąʝ J›»ąßŃ2¢>ŸBį»ŻĒ£3£Éį™é\„'§Pāvõń¦«×āS‡ØÆ^ć0 Ŗ³åć ±«ł¶läź$F­ķŗóäĒ0Ū®į¾zå¤öÜģ»ā–Ę3ścķ˜ī+Č'žźķuśĄÉrīRVĖłī/ėĢ €ļ €Īų šé)ŠķŽšĘ5ŖŃįń£A?ÓÕœń€MŌŌŹ#ņ]YiÖ¾!Ŗņ;ež×²%1óq“٧)øóõ|(Ū›-?ōш½Ü1ĘōƔRŽ„5Mõ‹ ēßx9Ōõi¬|įl=[öEøćaAāö#ĦäUEi÷Š;ęJIš÷ŻŪŠē>Mwųŗēeé2Qžų—óśź'U…łt’ģY śQ %ī]“ś.ŗļaū #Ońųd”ūč.äņģh(üÅ:yōįlÆü¢FöÕp6ż€R£÷Ét½ż\^8ł¾xDž:jĶś²|Ėžvbü§€R’ō÷ż›„Ł’ŠŒ’ˆ`®™!„Œē‹„¶xnh±Kl”õE½ąa˜|"ÉuUœ’Ō I ŠÜąŸ >¤¹ģ4 2ؘ–ųÉ &¬s_°¦Pō“--‰ø“ (ų»;ē3³ģæĀÅ?HąĆI”KŻÕĒŠWrÉĖW [c¾ĻŽ 9oœ²Óe {1¦×ģ ó†Ę ›Ūs Š’["ßś ­žš#„だ‹Ŗ…%xē g¶'lė EĀÆ(`ļ!ĪD*Uó’ŁŁ+I÷$Ūån->ū«¹ń/2’2•ż˜0&ŗs .2APĆ3 Č-!X5O -ķ6ųÖē8‚8ģ]ÄD:ąä”P¬;Õk~\A=É"ņ[hÖ>½&y8tk@²*€B¦.‡ņ‹•C›2Š—*E6•¬£æFƒ:ŠÆTHw>£f»éIlB*DĒ~K`F± ÓMUJ8žŽØNINæŚź=P=RFøöŅQ2VĶ•hS&ZTrżT^ŪO’Vbb,&'Xfé 2¼Y÷ipę=Q[ģm÷ĆIę\ąq~ U{^Ōu }a`ÉyŒ Zm„a½}!7y:c²š!…Ļd¦…!"ńdfš‰Ø"ϜłgŽ/#«ØŽiƒ‘¶#‰“#kw•=$eĄøll™Ä$CĢMn`K%ŲāoT”Ņ%żćwqI„Y&Śļ sqÜŚR•;ŽeąšŚ/”ŠYä!Ū ­e‘NčØŪéøś’Bģ/ÜĒď”6š¶Ü£Š$–+ō=ܹ݁—ųÄŻ]čN™üKŽ;ōćšÓŽyœüZßõ žšįßŃ£Ÿå hąÆ#8”ŁļąŒ/Ķ¢Īvįi;b¤ĀżįFG÷„¶„ā#SŒ§« ć_!©Ÿ#’ćŻj¶Ŗ“'äŗvK¬ˆ+ ä—‚ą­|/'åtŽuÆp3®åQš ±e75ę.¦Ÿ²Y;¼ę ²4“M?Cēč½ÉµBCŹēĘÉ^·6GQč¢Õóø+KŲč€įˆŗO_é\ķ¼Sęé:ł²½WmźHæüZōźōŻĄš^{ėŃrĀåbģ®(ÄŁf‰ģ‹4œÅĶjķh@1ĒĀn—ķELĘȶrī"X[ŹŖv„ī’cšĖŸz,ļÜo…Ķ“~³ļ¹{χ‚:𖇯Š|†Įšs“DŅpŠHńQŸŁÓdŽĻń-«nÕY’Vņ ·×M–Żņē˜ŲBšdóÅĪ-Ś6žėó”ŚĀŪ*¢rōęWݦłō[ņģŽŖ€õ9žą®ö āü±Žöó¬ćšµ÷Š!Aå乜÷­-ÖęŁ½#ųŠ9kčĶĮŖųgEźĮÅ1łDQ•ė¶Éøł!]*ķŖĶ?śžhæīžŃĘśŪtTš“ÕMūø€éń‡ŁŌū–Œ~ó{Ż[ür˜õpįāüP¤Øödåiż,°=ųYéšż ¼ŅłMķwžęĒgūAńžžÄÓüü5õ…’ ß‘ž*ł ~ė&ż“[÷»8Q¢ęū)ņ{š °Ļ&ä7¬2„ Ų¾‰>: ĶEfJĻ ĮĢCVd¶ S!błŖ$ŚżmŽž(aŪy#’,č·…ø‡0o•‘M{4öqāp8}O©wd< +µ X@‹ Į”MD ęĢ6AH™ ĆŲĖ5L  ä`!*P§ }šõ"T. ZüŠ$Xµ 7 &\< µ'ū_Ć ńJ)ļcJĪ+ß*ägŃ«7t,ŲkXˆC .ĶoßfOž/ĮsfB[31µwķ gČ2©{tür]4žūŚ~ņ5’ƒ‚¶Š‡7‡‡ ”–9{‹p¢±:oN®Fć­¼»©.˜ÅćŠČP«"œLägŌ嬠ÓäDąz® ¤Zå"ģ°’§įåž÷¤±ō«hęÜ:³čÆļęøϓݳvē–d¶Ń·żēr'ł·Å»„čP3޹¹æ é,?#»®Ć’é Kø¼¢ĒźēVM¾—Ė źÄbāæ‹Ļ'ė”nwĮÓ®ė~z Ćt×5ģ[†”ÄhŪ¼ģ8’6Ę\ßCķžĖĒQćŹķņ©`ÉEēQīϵõŹ9ėŲī¬ĮŠĢ.ļ_ļ‰ĶĪ"óęļgŁ“Ļ÷mšCåIŃ ūōš!ńŽŅ’ž{ńżüsŌōņŪ ÖčŠņ·ž×Ü ó• 3ŁŠ˜óq,ČŚÅōO8]ܹ¦ō,DņŻ®-õ P‡ß¢“õę[į–";öĆg±ā‹&Āö sFä*I÷}Ūås.Š÷Z‹pēh2Wų7—é\6Žų£šźP:ełń®/ģE>ģłĪŗÄķ9Bsś¬ĘYļ-FśśˆŅīš"JūfރņNüBźō Rü ö­õ’UżüC÷óYżŚ Ųųē]$ž¶mśÜa«ž”%üŠe2’q1—żÅi¹’N=,’¹m@+IĮ­qĒUV¢uNå`ė–yÕĀl€Š}\Ÿxć|„Ŗs…jY? h‰ń7œŌ \xØi P‘’ń³žD•†Ķæ“9™ «Ė(-”‡×½"”ećR„¢Aļē ©)ū|’¬°üó°7 ٧瓾 ¶<ÜøE “*ŃŠ¼Ģ p6f ÄĄS MBū!¹ÄŚ *N#­Ča Z%%”Ģč äeŗ&–Šo ĮqO(ŠŌö ž}ä)Ų}|‰y+sÜX•-gą‹6”£.[ä­80P虚øĶ1Dģ ĢÄb39š§ŖŠ÷4-ō.†ÜŒ6!ųµdč!8ü<Aō¶9 ÄL;žKū į<óŅŲv>ē Yµ# @Ūą’/ AŠgo;5CÄīLGŹDøu)S_F­ü_ōG”#ƒćj‰I–' ĮvKŠ+‘‚³L~/{ŽHNr3ŸWšŻOg7&5¦rQ[;­²SP?4|TDC»ĖÉ1V8GB©ÕĘW-KɆį[Y!OPcķšZS×@ł…\ W^^žZåś°_ņ^l ×Eaēbó “(ŚbŪfz!‘4odĻj"n@fÄnˆ"KL™gør#(X.i­v–#dĆj”z$ćoXl•~¤$Ą{ķmŠ‚+%‡‚o~†²%z“qrŠ9&WŸ¬ršĮóŁĻDŪÅzŚ­PpƒÉŪ‰\‘x͈Ūghš’lŃÜCt/”`ՖÜ!€Ä•TŁŻż‹Y—IݤŻŪ—ī˜=į+Žø£ƒš2岎•Æœ&é9ßr»­ķĄßOĒBŸńGą,Ó× õĪą ßl¢÷ųUį꟤ģüÜįĆö–„ądā ,§Ōėā}ĮØÉrćZVŖ½ łć8&뫱€ä2€­¦åņ=ƚŽåĪIŖ°ę¬U?²ƒ œęˆaŌ³w$#ēfmiµk(ŖēByž¶`,1č …“øT0øčż(ŗI4?馜½»=8Ęé·ØR½1’ e_ß4"žžfSć»"ų©3hGēB#ÖµČi;ėÉ#²Į]k0ļP$Ķņl$ó×$lهn÷^%Jåp ūå%&ń±q52 ŁŸ–ąŒ)6'Ś|¢uŽ:®ŚY® >5Ū6ŗŸ‘B¼ŪĘ4“ūECÜšŃɔļIŹÜĪŻ^–ćMQŻŖéó—ŲQŲŻˆõˆ™ĢU_Žd›ĮYęŽB ³œµ]mßHž©aōßü$ݟe{ąŲ0r”’iį¶<£†m‰į“Hœ¤{qāpT1¦ou—āM`ʧcyć*l[©X}„ćxšŖL,ä䃅¬A…³äĀ®5‰:åž›ÆÆ)Įå|§D±‘HęX³Ł²•Ļę6æn“™Vē˶ūœŻēšÖ˜·ļ dčĶā-¹ć¤ėčŖīĀŗŲØr釶W¼Ģ¬łédķ½Ą°€źA‚浓ėĮ©øŽėū)¬Ā¼ģŲ5AĒĄœģµAÖņÄ#ķ“MkĒzČŖķoYÉoĢ1īMe•ŹcŠøī)q*ĢXŌ?ļ}æĶLŲĘļćˆTĻ@ÜMšĮ”éŠ4ąŌš ~Ņ)ä[ń{¬ŌčāńXøØÕģiņ5Ä=ךšņŠŅŲśówóļŪgŚļ÷žóĢēüŪćū…ō©ó‘Ż×’ õ†’&ßĢ”õc ¼ąĄö@Qā“ ¢ö#ęć©)÷ś.{坰÷Ų:ē‘7ų“F„膾ų’R:źzEłn^Ļėo#ĢłLjdķc'Sś(vłīW+Śś‚ŽšK/aūā#ņ@3čūĄ™øó47oü„Mõ);öüz±āö?}żW½wųCž4É śG‹žÕ”ūśJ’īą6żīN™’ĖģĖžćR Øų`×V§…öĢZ.c‹Ą^µ? “b<(µØfĆł3JjJ×?ß ‘nѳKt †rX‘W zvßmcžnzfKo3c~ķ({ČW‚t‡]K†ūā’ņ@Š‚枇4Ž œŖ(’y¶±– VĀFšž 3ĪŪž% Śpś”¬ ķå ī„3 Źńš!㩺 Øż/#×­A „ Å$Ė±Č bZ&æµO >!ļ'“¹Ö -„)ؽ]ų8+ĮäÖD®,‘Åk²PC.…Éņ\Ų/zĶymhm1nŃJt3bՇ'€—4WŁŒ,6KŻ•į—Į7?į¾£V94壛Æė:(é*x»€<ķ±UĒ>ń82ÓŖ?õæß?AśųFķźŌBīüĶÉöiDāU§’EÖ܃”GĖca)Iæ ź=&¾J“q2SLØų÷=čMœÕI}O‘²UQ… a§Ry$lmš“ŗ](@ÅwĄO_DL TĢä`HÓ 2ŲybLZ!ädłOį!ģļ£eķSh"Čū8gāWļ"¦ĪhÖ[v#‚cjĖ_ż#`ųkæc„$<+m³g %7"oØk’%÷B·pœo&ŌNLrĦӣLōzøŖZŚ)­®įŚ „”²hŪä:’•¶ļŪĄ#ϓкvܞ/d•~¾żÜz;ł–sĀ„ŻXGŽ˜gĘ Ž4S#š[Ź’Ž_ø›OĪßījMDŅ ßĢvāž8Ö'ą©‚w -Ś®ą†Ž ¢!Ž5įcš”£ā¼į@¦6„ ęCā²Ė¦žéŹāś½`ØņķQć×Éõ©ēńŲć“Պ«Ūõ_ä‘į­Ļłęänķ“®ÄżmåKłI°øõå)ß±¬|ęt³” ēć µ• Šēæ(ž¶Šč43ø~˜čy@ȹréWL]»f¦é3Xņ¼[!-źd‡¾O%“źīoĄD);ėĖ{±Į8-Ā먇FĆ,1Iģ…“ŪÄ!5ŠģbŸpĘ9Wķ?«Č =Žķ·šÉž@eīłĀ/ĖņDģīÖĪÄĢęHsļ³ŚYĪŪLśļęīĻĻPšnņƒŃÄTńKžÓøXń( ®Ō¬\ņCÖ”`ņā!Ųוd$óæ-mىh«óœ9Ū~l2ōyE—Ürp¹ōVQ,Žft@õ3]Įß[xĒõiVįO|NöītėāC€ÕöŹ€€ä8„\÷،ę,ˆć÷„˜Ŗē!Œjųb¤?éńų>°Ōź ”xł¼iģż—’łųĒžķņ›†śÖӓļęŸ ū³ß(ńŪ£”ūė½ņϧüm÷RōĆ«¢üJčõøÆ)ż'}÷¬³°żł ·7žį&§ś•»¾ž¾2<ü‰æE’›>Ńż}ĆĢ’xJf’rĒSUVūfĖŚ3bZĻan%OÓčķyŗC×oɅO8Ūö§‘ä,ß}ƒy ća© ē‹>µ£ ėĮ8żī™ųĢĶņņ ÕŲbęö§²ä÷Śś.šŒĻžµlü!Ć=I··Ä&L¬ K  į Ņ ą+v•Y ¾7 ‰ą šC  }g xO5"qī T[Ź#f"u 2g_%Z&ü sō&O*ƒ ģ~‰(C. Ȋ*72‘¦–³+,6ƒ¢H- :Ÿ`®Ż.>&=ŗr0 B­Ę2żE4÷ќ3ńI»ŌŻ15ęMB±éĘ6ŚQÉŽõ[8ĪUPkń9ĆY×H †;·]^%=¬aå%°> elß0E@”ió½<ŚAˆmz™HoC}qwTEquˆS`™Ffy1l.HZ}– xĆINėƒXKC…¤ȏķL7‰+„›‚N+²‚§P ‘9_³¬Q•Ą<æAS™GĖÖTżœĪöÖkVń UÓāXfenrir/config/sound/default/EndOfScreen.wav000066400000000000000000000133201513650123000212310ustar00rootroot00000000000000RIFFČWAVEfmt (ž’€»ī  €Ŗ8›qfact data€€˜į€0 Ē£‚^„ƒõ e„'F…$.'†»4‡R;釼AʈH«‰OŒŠÆUm‹G\NŒŽb/uiŽ pńޤvŅ;}³Ņƒ”‘iŠu’‘V“˜—7”/ž•ʤł•^«Ś–õ±»—Œøœ˜#æ}™»Å^šRĢ?›éŅ œ€ŁąāÆęƞFķ¤ŸŻó… uśf” H¢£)£: ¤Ņė¤iĢ„"­¦—(ާ//oØĘ5P©]<1ŖōB«ŒIó«#PŌ¬ŗVµ­Q]–®écwƀjX°q9±®w²F~ū²Ż„ܳt‹½“ ’žµ£˜¶:Ÿ`·Ń„Aøh¬"¹³ŗ—¹äŗ.ĄÅ»Åʦ¼]͇½ōÓh¾‹ŚIæ"į*Ąŗē ĮQīģĮčōĶĀū®ĆÄ®qÅERĘÜ3ĒtČ #õČ¢)ÖÉ90·ŹŃ6˜Ėh=yĢ’CZĶ–J;Ī.QĻÅWżĻ\^ŽŠódæŃ‹k Ņ"rÓ¹xbŌPCÕč…$֌דę×­™ĒŲE ØŁÜ¦‰Śs­jŪ “KÜ¢ŗ,Ż9Į ŽŠĒīŽgĪĻß’Ō°ą–Ū‘į-ārāÄčSć\ļ4äóõåŠüöå!Ųę¹ ¹ēPščē{é~\ź$=ė­*ģD1’ģŪ7ąķs>Įī E¢ļ”Kƒš8RdńŠXEņg_&óžeō•lčō-sÉõÄyŖö[€‹÷ņ†lųŠMł!”.śøšūO”šūē§Ńü~®²żµ“ž¬»t’DĀUŪČ6rĻ Öų”ÜŁ8ćŗĻé›fš|žö]•ż>, Ć  [ā ņĆ ‰¤ %… ø+fO2Gę8(}? Fź¬LĖCS¬ŚYr`n gO m08tĻzņfÓż‡“•Ž•,•vƛWZ¢8ņØ‰Æś ¶Ū ·¼¼!OƝ"ęÉ~#}Š_$×@%¬Ż!&Cä'Śźć'qńÄ( ų„) ž†*7h+Ī I,f*-ż .”ģ.+&Ķ/Ć,®0Z31ń9p2ˆ@Q3 G24·M5NTō5åZÕ6}a¶7h—8«nx9BuY:Ś{:;q‚<‰ü<ŸŻ=7–¾>̟?e£€@ü©aA”°BB+·#C½DYÄåDńŹĘEˆŃ§F؈G¶ŽiHNåJIåė+J|ņ KłķK«’ĪLB°MŁ ‘NprOSPŸ 4Q6'RĶ-öRe4×Sü:øT“A™U*HzVĀN[WYUuo5v<wžBįw5IĀxĢO£ydV„zū\e{’cF|)j'}Įp~Xwé~ļ}Źˆ„«€ ‹Œ·‘m‚N˜Nƒåž/„}„…¬ń…«²Ņ†B¹³‡Śæ”ˆqĘu‰ĶVŠŸÓ7‹7ŚŒĪąłŒeēŚüķ»Ž”ōœ+ū}Ā_‘Y@’ń!“ˆ”ć”¶"ĕN)„–å/†—|6g˜=H™«C)šBJ ›ŁPė›pW̜^­ŸdŽž6koŸĶqP ex1”ü~¢“…ó¢*ŒŌ£Ā’µ¤Y™–„šŸw¦‡¦X§­9ض³©Mŗū©åĄÜŖ|ǽ«Īž¬ŖŌ­BŪ`®ŁįAÆpč"°ļ±Ÿõä±6üŲͧ³d ˆ“üiµ“J¶*+·Į# øY*ķøš0ι‡7Æŗ>»¶Dq¼MKR½äQ3¾{Xæ_õæŖeÖĄAl·ĮŲr˜ĀpyyĆ€ZІ;Å5ĘĶ“żĘdšŽĒū æČ’§ É*®ŹĮ“bĖX»CĢļĮ$͇ČĪĻęεÕĒĻLÜØŠäā‰Ń{éjŅšKÓ©ö,ŌAż ÕŲļÕo ŠÖ±×ž’Ų5sŁĢ$TŚc+5Ūū1ܒ8÷Ü)?ŲŻĄE¹ŽXLšßļR{ą†Y\į`=āµfćLm’ććsąäzzĮ偢橇ƒē@ŽdčהEéo›&ź¢ėØčė4ÆÉģ̵Ŗķc¼‹īśĀlļ‘ÉMš)Š.ńĄÖņWŻšņīćŃó†ź²ōń“õ“÷töKžU÷ć7ųz łłłØŚś@»ū×%œün,}ż3^ž9?’4@ ĖFbMāśSĆ‘Z¤(a…ægfWnGīt(…{ ‚ź“ˆĖ K¬ ā• yœn £O Ø©0?°Ö¶ņn½ÓÄ“œŹ•3ŃvĖ×WbŽ8łäėś(ņŪæų¼V’ķ… `A³"J ā&äy-Å4¦ §:‡!?Ah"ÖGI#mN*$U %œ[ģ%3bĶ&Źh®'ao(łup)|Q*'ƒ2+¾‰,Vō,ķ–Õ-„¶.¤—/³Ŗx0J±Y1į·:2x¾3Åü3§ĖŻ4>Ҿ5Õ؟6m߀7ęa8›ģB92ó#:Źł;aę;ųĒ< Ø='‰>¾j?U!K@ķ',A„. B5īB²;ĻCJB°DįH‘ExOrFVSG§\4H>cIÕiöIlp×JwøK›}™L2„zMɊ[Na‘lwqmxn¦~įn=…ĀoŌ‹£pk’„q™eršŸFs1¦'tȬu`³éu÷¹ŹvŽĄ«w%njx½ĶmyTŌNzėŚ/{‚į|čń|±īŅ}Hõ³~ßū”yv€ W§8‚>ƒÖśƒm#Ū„*¼…›0†37~‡Ź=_ˆaD@‰ųJ!АQ‹'X㋾^ČUe„ķk†Ž„rgyH²)‘J† ’įŒė’x“̓𭔧 Ž•>§o–Õ­P—l“1˜»™›Įó™2ČԚÉε›aՖœųŪwāXž&é9Ÿ¾ļ Uöū ģüÜ”ƒ¾¢ Ÿ£²€¤Ia„ąB¦x$#§+ئ1åØ=8Ę©Õ>§ŖlEˆ«Li¬šRJ­2Y+®É_ Æ`fķÆ÷lΰsƱ&z²½€q³T‡R“ģ3µƒ”¶›õ¶±”Ö·IØ·øą®˜¹wµyŗ¼Z»¦Ā;¼=ɽŌĻż½kÖŽ¾Żææšć Ą1źĮČšbĀ`÷CĆ÷ż$ĎÅ% ēŽČĘT©ĒėŠČ‚%kÉ,Lʱ2-ĖH9Ģß?ļĢwFŠĶM±Ī„S’Ļ®˜4?EŸ@Ż„ö@t¬×A ³øB¢¹™C:ĄzDŃĘ[EhĶc­d“e­ŗįeDĮĀfÜĒ£gsĪ„h Õei¢ŪFj9ā'kŠčlgļél’õŹm–ü«n-oÄ np\Oqó0rŠs!$ņs¹*ÓtP1“uē7•v~>vwEWx­K8yDRzŪXśzs_Ū{ f¼|”l}8s~~Šy_i€@€‡!—‚/”ć‚ĘšÄƒ]”„„ō§†…Œ®g†#µH‡ŗ»)ˆQĀ ‰éČ뉀Ļ̊Ö­‹®ÜŽŒFćoŻéPŽtš1 ÷£żó:Õ‘Ń ¶’h—“x”—Y•.%:–Å+—]2ü—ō8ݘ‹?¾™"FŸšŗL€›QSaœčYB`#žgŸ®måŸEtĘ Üz§”tˆ¢ ˆi£¢ŽJ¤9•+„ћ ¦h¢ķ¦’ØĪ§–ÆÆØ.¶©Å¼qŖ\ĆR«óÉ3¬‹Š­"×õ­¹ŻÖ®Pä·Æčź˜°ńy±ųZ²­ž;³E“Ü ž“sßµ Ą¶¢”·9&‚øŠ,c¹g3Dŗ’9%»–@¼-Gē¼ÄMȽ\T©¾óZŠæŠakĄ!hLĮ¹n-ĀPuĆē{ļĆ~‚ŠÄ‰±Å­’ĘD–sĒۜTČs£5É ŖŹ”°÷Ź8·ŲĖŠ½¹ĢgÄšĶžŹ{Ī•Ń\Ļ-Ų=ŠÄŽŃ[å’ŃņėąŅŠņĮÓ!ł¢Ōø’ƒÕOeÖē F×~'Ų٬ éŁD'ŹŚŪ-«Ūr4ŒÜ ;mŻ”ANŽ8H/ßĻNąfUńąž[Ņį•b³ā,i”ćĆouä[vVåņ|7ꉃē ŠłēøŚčO—»éꝜź}¤}ė«^쬱?ķCø īŚ¾ļrÅāļ ĢĆš Ņ¤ń7Ł…ņĻßfófęGōżģ(õ”ó ö,śźöĆĢ÷Z­ųń Žł‰oś Pū·!1üO(żę.óż}5Ōž<µ’¬B–CIwŚOXqV9 ] cū7jÜĪp½fwžż}”„` +‹A Ƒ" Z˜ ńžä ˆ„Å ¬¦·²‡N¹håæI}Ę*Ķ «ÓģBŚĶŚą®qēīpŸōQ7ū2ĪeõüÖ”·+˜Ā"yY)Zń/; ˆ6!=ż!¶CŽ"NJæ#åP $|W%^b&«dC'Bk$(Łq)pxę)Ē*Ÿ…Ø+6Œ‰,Ķ’j-e™K.üŸ,/“¦ 0*­ī0³Ļ1Yŗ°2šĄ‘3‡Ēr4ĪS5¶Ō46MŪ7äįö7|č×8ļø9Ŗõ™:Aüz;Ł\

ž’>6ą?Ķ#Į@d*¢Aū0ƒB“7dC*>EDĮD&EXKFšQčF‡XÉG_ŖHµe‹IMllJärMK{y.L€MŖ†šMAŃNŲ“²Ooš“P”tQž§UR5®6SĢ“Td»ųTūĮŁU’ČŗV)Ļ›WĮÕ|XXÜ]Yļā>Z†é[š\µöį\LżĀ]ć¤^{ …_f`©Ga@(bŲ$ co+źc2Ėd8¬e5?fĢEngcLOhśR0i’Yj)`ņjĄfÓkWm“lļs•m†zvnWo“‡8pLŽq收qz›Ūr¢¼s©Øt@Æ~u×µ_vn¼@wĆ!xÉy4ŠćyĖÖÄzcŻ„{ść†|‘źg}(ńH~Ą÷)Yž €š쀇 ́®‚¶ƒMp„ä%Q…|,2†3‡Ŗ9ō‡A@ՈŁF¶‰pM—ŠTx‹žZYŒ6a:ĶgŽdnüŽūtŻ“{¾*‚Ÿ‘Įˆ€’Ya“š•B”‡œ#•£–¶©å–M°Ę—ä¶§˜{½ˆ™ÄišŖŹJ›AŃ+œŲ× pŽķåĪžžėƟ5ņ Ķųq”d’R¢ū4£’ ¤*ö¤ĮׄX ø¦ļ&™§‡-zØ4[©µ:<ŖLA«äGž«{N߬UĄ­©[”®Ab‚ÆŲhc°ooD±v%²ž|³5ƒē³Ģ‰Č“c©µū–ж’k·)¤LøĄŖ-¹X±ŗļ·ļŗ†¾Š»ű¼µĖ’½LŅs¾ćŲTæzß5ĄęĮ©ģ÷Į@óŲĀ׳¹Ćo›Ä|ŝ ]Ę4>ĒĢČc!Éś'įɑ.ĀŹ)5£ĖĄ;„ĢWBeĶīHFΆO'ĻVŠ“\éŠKcŹŃći«ŅzpŒÓwmŌØ}NÕ@„/Ö׊×n‘ńטŅŲž³Ł4„”ŚĖ«uŪb²VÜśø7Ż‘æŽ(ĘłŽæĢŚßWÓ»ąīŁœį…ą}āē^ć“ķ?äKō åāśęyćęÄ稄č?†éÖgźn"Hė))ģœ/ ķ36ėķĖ<ĢībC­ļłIŽšPoń(WPņæ]1óVdōķjóō…qŌõxµö³~–÷J…wųā‹Xły’9ś™ū§Ÿūū?¦ÜüÖ¬½żm³žžŗ’œĄ`3ĒAŹĶ"aŌłŚäįÅ'覾ī‡VõhķūI„+  ³ķ JΠᯠx# *q§0R>73Õ=mDõKÖ›Q·2X˜Ź^yaeZųk;r'yż¾ŽU†æ쌠„“šb² CI§$į­ x“ę »Ē!¦ĮØ">ȉ#ÕĪj$lÕK%Ü,&›ā '2éī'ÉļĻ(aö°)ųü‘*s+& T,¾5-U.ģ÷.ƒ$Ų/+¹0²1š1I8{2ą>\3xE=4L5¦R’5=Yą6Õ_Į7lf¢8mƒ9šsd:2zE;ɀ&<`‡=÷č=”É>&›Ŗ?½”‹@TØlAģ®MBƒµ.C¼D±ĀšDIÉŃEąĻ²Fw֓GŻtH¦ćUI=ź6JŌšKk÷ųKžŁLš»M1 œNČ}O`^P÷?QŽ% R%,S½2āST9ĆTė?¤U‚F…VMfW±SGXHZ(Yß` ZwgźZnĖ[„t¬\<{]ԁn^kˆO_0`™•a1œņaČ¢Ób_©“cöƕd޶ve%½Wf¼Ć8gSŹhėŠśh‚×Ūi޼j°äkHė~lßń_mvų@n ’!o„p< äpfenrir/config/sound/default/ErrorScreen.wav000066400000000000000000001357201513650123000213400ustar00rootroot00000000000000RIFFČ»WAVEfmt (ž’€»ī  €Ŗ8›qfactą.data€»3øXxDø ½ƒøéĆø2H¹zA¹ĆŅ€¹ Ą¹T]’¹¢>ŗåē}ŗ--½ŗvrüŗ¾·;»żz»OBŗ»˜‡ł»įĢ8¼)x¼rW·¼ŗœö¼ā5½K'u½”l“½Ü±ó½%÷2¾mք‡åĀĻ`$ƦcĆ`ė¢Ć©0āĆņu!Ä:»`ă ÄĖEßÄ‹Å\Š]ŤÅķZÜÅ6 Ę~åZĘĒ*šĘpŁĘXµĒ”śWĒé?—Ē1…ÖĒzŹČĀUČ U”ČTšÓȜßÉå$RÉ-j‘ÉvƊɾōŹ:OŹOŽŹ˜ÄĶŹą Ė)OLĖq”‹ĖŗŁŹĖ ĢKdIĢ”©ˆĢÜīĒĢ$4ĶmyF͵¾…ĶžÅĶGIĪŽCĪŲӂĪ!ĀĪi^ϱ£@ĻśčĻB.æĻ‹sžĻÓø=Šž|ŠeC¼Š­ˆūŠöĶ:Ń>zчX¹ŃĻųŃć7Ņ`(wŅ©m¶Ņń²õŅ:ų4ӂ=tÓĖ‚³ÓČņÓ\ 2Ō„RqŌķ—°Ō5ŻļŌ~"/ÕĘgnÕ­­ÕXņģÕ 7,Öé|kÖ1ĀŖÖzźÖĀL)× ’h×Sקלē×äa&Ų-§eŲvģ¤Ų¾1äŲw#ŁO¼b٘¢ŁąFįŁ(Œ ŚqŃ_ŚŗŸŚ\ŽŚK”Ū“ę\ŪÜ+œŪ%qŪŪm¶ܵūYÜž@™ÜF†Ų܏ĖŻ×WŻ V–Żi›ÕݱąŽś%TŽBk“Ž‹°ŅŽÓõß;Qßd€ß­ÅĻßõ ą>PNą‡•ąĻŚĢą į`eKᩪŠįńļÉį95 ā‚zHāĖæ‡āĒā\Jć„EćķŌ„ć5Äć~_äʤB䟁äW/Įä tåé¹?å1’~åzD¾å‰żå Ļ<ęS|ęœY»ę䞶ę-ä9ēu)yē¾nøē“÷ēOł6č˜>v蹃µč)Éōčq4é¹Ss陲éJŽńé“#1źÜhpź$®Æźmóīź¶8.ėž}mėFƬėģė×M+ģ “jģhŲ©ģ±éģśb(ķBØgķ‹ķ¦ķÓ2ęķx%īd½dī­¤īõGćī>"ļ†ŅaļĻ”ļ]ąļ`¢š©ē^šń,žš9rŻš‚·ńŹü[ńB›ń[‡Śń¤ĢņķYņ5W˜ņ~œ×ņĘįó'VóWl•ó ±Ōóčöō1ūh~ū±Z½ūłŸüūBå;üŠ*{üÓoŗüµłüdś8ż­?xżõ„·ż=Źöż†6žĪTužš“ž`ßóžØ$3’ńir’9Ʊ’‚ōš’Ź90o[Ä®¤ īģN-5”l}Ł«Ęėd*W©i īØč3č1y'y¾fĮ¦ IåSŽ$›Ócä£-^āu£!¾č`. Nsß—øßż](CqˆÜ¹Ķ[JXš“ŁŪā$(Xlm—µ²Öż÷ F=U Ž‚” ×ĒÓ  hRR ±—‘ łÜŠ A" ŠgO ҬŽ ņĶ d7 ¬|L õĮ‹ >Ė †L Ī‘I ׈ _Č Øaš¦F9ģ…‚1ÅŹv¼C[ƒ¤FĀģ‹5Ń@}€Ę[攞Wę= +}čp¼1¶ūyū:Į@z †¹RĖų›8äUw,›¶uąõ½%5ktN°³—õņß:2(€qpŰ¹ šP/J•n“Ś­Ūķ$e,lŖkµļŖż4źEz)ŽæhרJēh&±Ōeł„B_äФ#Ņéb/¢ctᬹ õž_=DŸ†‰ŽĪĪ]_Yœ؞Ūšć9)Zn™ʳŲł[>W¤ƒ–ģČÕ5}STؓŽŅV# ŸhQ 譐 0óĻ y8!Ā}N! ƍ!RĶ!›M "ć’K",؊"tŹ"½b #ØH#Nķ‡#—2Ē#ßw$(½E$p…$¹GÄ$%JŅB%’‚%Ū\Į%#¢&lē?&µ,&żq¾&F·ż&Žü<'ÖA|'‡»'gĢś'°:(łVy(Aœø(Šį÷(Ņ&7)lv)c±µ)¬öō)ō;4*=s*…Ʋ*Ī ņ*Q1+_–p+ØŪÆ+š ļ+9f.,«m,Éš¬,6ģ,[{+-£Ąj-ģŖ-4Ké-}(.ĘÕg.§.V`ę.Ÿ„%/ēźd/00¤/xuć/Įŗ"0 b0RE”0›Šą0ćĻ1,_1tZž1½ŸŻ1å2N*\2–o›2ß“Ś2(ś3p?Y3¹„˜3Ź×3J4’TV4Ś™•4#ßŌ4l$5“iS5ż®’5FōŃ5Ž96Ö~P6ď6g Ļ6°N7ų“M7Aٌ7ŠĢ7Ņc 8©J8cī‰8¬3É8ōx9=¾G9…‡9ĪHĘ9Ž:_ÓD:§„:š]Ć:9£;čA;Ź-;sĄ;Zø’;£ż><ėB~<4ˆ½<}Ķü<Å<=X{=Wŗ=Ÿāł=ē'9>0mx>x²·>Į÷ö> =6?R‚u?›Ē“?ć ō?,R3@t—r@½Ü±@"ń@Mg0A–¬oAßń®A'7īAp|-BøĮlB¬BJLėB’‘*CŚÖiC#©CkačC“¦'DüėfDE1¦DŽvåDÖ»$EdEgF£E°‹āEųŠ!FAaF‰[ FŅ ßFęGc+^G¬pGōµÜG\a&ø¤¦eøķ뤸51äø~v#¹Ę»b¹¢¹WFį¹ ‹ ŗčŠ_ŗ1Ÿŗz[ŽŗĀ » ę\»S+œ»›pۻ䵼,ūY¼u@™¼¾…ؼ˽OW½˜U–½ąšÕ½(ą¾q%T¾¹j“¾°Ņ¾Jõæ“:QæÜæ$ÅĻæm ĄµONĄž”ĄFŚĢĄ Į×dKĮ ŖŠĮhļÉĮ±4 ĀłyHĀBæ‡Ā‹ĒĀÓIƏEĆdԄìÄĆõ^Ä=¤BĆéÄĻ.ĮÄtÅ`¹?ÅØž~ÅńC¾Å9‰żÅ‚Ī<ĘŹ|ĘY»Ę[žśĘ¤ć9Ēķ(yĒ5nøĒ~³÷ĒĘų6Č>vČWƒµČŸČōČč 4É1SsÉy˜²ÉĀŻńÉ #1ŹShpʜ­ÆŹäņīŹ,8.Ėu}m˽¬ĖģĖNM+Ģ—’jĢą×©Ģ(éĢqb(͹§gĶķ¦ĶJ2ęĶ’w%ĪŪ¼dĪ$¤ĪlGćεŒ"ĻžŃaĻF”Ļ\ąĻ×”Šē^Šh,žŠ°qŻŠł¶ŃBü[ъA›ŃӆŚŃĢŅdYҬV˜Ņõ›×Ņ=įӆ&VÓĪk•Ó±ŌÓ`öŌØ;SŌń€’Ō9ĘŃŌ‚ ÕŹPPÕ–Õ[ŪĪÕ¤ ÖģeMÖ5«ŒÖ}šĖÖĘ5 ×{J×WĄ‰×ŸÉ×čJŲ0GŲyՆŲĮĘŲ `ŁS„DŁ›źƒŁä/ĆŁ,uŚuŗAڽ’€ŚEĄŚNŠ’Ś—Ļ>Ūß~Ū(Z½ŪqŸüŪ¹ä;Ü*{ÜJoŗÜ““łÜŪł8Ż#?xŻl„·ŻµÉöŻż6ŽFTuŽŽ™“Ž×ŽóŽ $3ßhirß°®±ßłóšßA90ąŠ~oąŅĆ®ą īądN-ᬓlįõŲ«į=ėį†c*āĪØiāīØā_3čāØx'ćš½fć9¦ć‚Hå欍$äÓcä[£ä£]āäģ¢!å4č`å}- åĘrßåøęWż]ęŸBęč‡Üę0Ķēy[ēĮWšē ŁēRāč›'Xčćl—č,²Öču÷é½Y/„˜xÉ×Į TVR™•šŽŌć#,iSt®’¼óŃ9M~P–ƏŽĻ'Np“MøŲŒĢIc ’ØJŚķ‰#3Ékx“½Gü‡EHĘŽÖŅD„g]ư¢ųēA@-‰rĄŅ·’ż>cB~«‡½ōĢü<<…W{͜ŗāł^'9§lxļ±·8÷ö<6ɁuĒ“Z ō£Q3 ė–r 3ܱ |!ń Åf0! ¬o!Vń®!Ÿ6ī!ē{-"0Įl"x¬"ĄKė" ‘*#QÖi#š©#ć`č#+¦'$tėf$½0¦$vå$M»$%–d%ŽE£%'‹ā%oŠ!&øa&[ &I ß&’å'Ś*^'#p'kµÜ'“ś(ü?[(E…š(ŹŁ(Ö)UX)gš—)°ßÖ)ų$*@jU*‰Æ”*ŃōÓ*:+bR+«Ä‘+ō Ń+2šX}2ā¼2+ćū2s(;3¼mz3³¹3Mųų3–=84Ž‚w4'ȶ4o ö4øR55˜t5Iݳ5‘"ó5Śg26#­q6kņ°6“7š6ü|/7DĀn7®7ÕLķ7’,8g×k8Æ«8ųaź8@§)9‰ģh9Ń1Ø9wē9b¼&:«f:óF„:<Œä:„Ń#;Ķc;\¢;^”į;§ę <ļ+`<8qŸ<€¶Ž<Čū=A]=Z†œ=¢ĖŪ=ė>4VZ>|›™>ÅąŲ> &?UkW?ž°–?ęõÕ?/;@x€T@ĄÅ“@ Ó@QPAš•QAāŚA+ ŠAseB¼ŖNBšBM5ĶB•z CŽæKC'‹CoJŹCø DÕHDHˆD‘_ĒD٤E"źEEk/…E³tÄEü¹FE’BFD‚FՉĮFĻGf@GÆYG÷ž¾G_JøØGøšŌ†ø9Ęø_¹Ź¤D¹ꃹ[/ù£tŗģ¹Aŗ4’€ŗ}DĄŗÅ‰’ŗĻ>»W~»ŸY½»čžü»0ä;¼y){¼Įnŗ¼ “ł¼Rł8½›>x½ćƒ·½,Éö½u6¾½Su¾™“¾NŽó¾–#3æßhræ'®±æpóšæ¹80Ą~oĄJĆ®Ą’īĄŪM-Į#“lĮlŲ«Į“ėĮżb*ĀEØiĀŽķØĀ×2čĀx'Ćh½fư¦ĆłGåĆA$ĉŅcÄŅ£Ä]āÄc¢!Ŭē`Åō, Å=rßņ·ĘĪü]ĘBĘ_‡ÜʧĢĒš[Ē8WšĒœŁĒŹįČ'XČ[l—Č£±ÖČģöÉ4Y󧃘óļČ×ó8ōSVōɘ•ōŽŌōZ#õ¢hSõė­’õ3óŃõ|8öÅ}Pö ƏöVĻöŸM÷ē’M÷/،÷xĢ÷Ąb ų ØJųQķ‰ųš2Éųćwł+½Głt‡ł¼GĘłśMŅDś–„śŽ\Ćś'¢ūoēAūø,ūrĄūI·’ū’ü>üŚA~ü"‡½ükĢüü³<żüV{żDœŗżįłżÖ&9žlxžg±·žÆööžų;6’@u’‰Ę“’Ń ō’Q3b–r«Ū±ō ńX}Z¼¢āūė';3mz|²¹Ä÷ų =8U‚wžĒ¶ę ö/R5x—tĄÜ³ "óQg2š¬qāń°*7šs|/¼Įn®MLķ•‘,ŽÖk'«oaź·¦)ģhH1Ø‘vēŁ»&"fkF„³‹äüŠ#Dc[¢Õ įę f+`ÆpŸ÷µŽ@ū‰@]хœĖŪb«UZóš™;ąŲ„%ĶjW°–^õÕ¦: ļT 7œ € Ó ČO!•Q!Yڐ!¢Š!źd"3ŖN"|ļ"Ä4Ķ" z #UæK#ž‹#ęIŹ#. $wŌH$Ąˆ$_Ē$Q¤%šéE%ā.…%+tÄ%s¹&»žB&D‚&L‰Į&•Ī'Ž@'&Y'ož¾'·ćż')=(Hn|(‘³»(Łųś(">:)jƒy)³Čø)ū ų)DS7*˜v*ÕŻµ*#õ*fh4+®­s+÷ņ²+?8ņ+ˆ}1,ŃĀp,°,bMļ,«’.-ó×m-;­-„bģ-̧+.ķj.]2Ŗ.¦wé.ļ¼(/7h/€G§/Ȍę/Ņ%0Ye0¢\¤0ź”ć03ē"1{,b1Äq”1 ·ą1Uü2žA_2ꆞ2/ĢŻ2w3æV\3œ›3PįŚ3™&4ākY4*±˜4sö×4»;5V5Lʕ5• Õ5ŻP6&–S6nŪ’6· Ņ6f7H«P7‘š7Ł5Ļ7"{8jĄM8²8ūJĢ8D 9ŒÕJ9ÕŠ9`É9f„:ÆźG:÷/‡:?uĘ:ˆŗ;Š’D;E„;bŠĆ;ŖĻ<óB<;Z<„ŸĄ<Ģä’<*?=]o~=¦“½=īłü=7?<>„{>ČÉŗ>ś>YT9?¢™x?źŽ·?3$÷?{i6@Ć®u@ ō“@U9ō@~3AęĆrA/ ²AwNńAæ“0BŁoBPÆB™cīBįØ-C*īlCs3¬C»xėC¾*DLjD•H©DŻčD&Ó'EngE·]¦E’¢åEHč$F-dFŁr£F"øāFjż!G³BaGū‡ GCĶßG«x)øó½hø<Øø…HēøĶ&¹Óe¹_„¹§]乚¢#ŗ8čbŗ€-¢ŗÉrįŗø »Zż_»£BŸ»ė‡Ž»4ͼ|]¼ÅWœ¼ Ū¼Vā½ž'Z½ēl™½/²Ų½x÷¾ĄÜQA~ܙ†½ÜāĖüÜ+<ŻsV{ݼ›ŗŻįłŻM&9Ž•kxŽŽ°·Ž&ööŽo;6ß·€ußĘ“ßI ōߑP3ąŚ•rą"Ū±ąk ńą³e0įüŖoįDš®į5īįÕz-āĄlāf¬āÆJėāų*ć@Õi扩ćŃ_čć„'äbźfäŖ/¦äótåä<ŗ$å„’cåĶD£åŠāå^Ļ!ę¦aęļY ę7Ÿßę€äēČ)^ēoēZ“Üē¢łčė>[č3„šč|ÉŁčÄé TXéU™—鞎Öéę#ź/iUźw®”źĄóÓź 9ėQ~Rė™Ć‘ėāŃė*Nģs“Oģ»ŲŽģĪģMc 함LķŽķ‹ķ&3Ėķox ī·½Iī‰īHHČī‘ļŁŅFļ"†ļk]Åļ³¢šüēCšD-ƒšŒrĀšÕ·ńż@ńfB€ńƇæń÷Ģžń@>ņˆW}ņќ¼ņāūņb';óŖlzóó±¹ó;÷ųó„<8ṓwōǶō^ öō¦Q5õļ–tõ7ܳõ€!óõČf2ö¬qöYń°ö¢6šöź{/÷3Įn÷|®÷ÄKķ÷ ‘,ųUÖkų«ųę`źų.¦)łwėhłĄ0ØłvēłQ»&ś™fśāE„ś*‹äśsŠ#ū»cū[¢ūL įū•å üŻ*`ü&pŸüoµŽü·śż@]żH…œżŹŪżŁž"UZžjš™ž³ßŲžū$’DjW’Æ–’ÕōÕ’:fT®Ä“÷ Ó?Oˆ”QŃŁŠbdŖ©Nóī;4Ķ„y ̾K‹]IŹ¦Ž ļÓH7ˆ€^ĒČ£éEY.…”sÄźø3žB{C‚ĈĮ ĪU@Xę¾.ćżw(=æm|³»Pųś™=: ā‚y *Čø s ų »R7 ˜v Lݵ ”"õ Żg4 &­s nņ² ·7ņ }1 HĀp ‘° ŁLļ !’. j×m ²­ ūaģ D§+ŒģjÕ1Ŗwéf¼(®h÷F§?ŒęˆŃ%Še\¤a”ćŖę"ó+b;q”„¶ąĢūA_]†ž„ĖŻī7V\››ČąŚ&YkY”°˜źõ×2;{€VĆŕ ÕUP•Sꦒ. ŅweæŖPšP5Ļ™zįæM*rJĢ» ÕJLŠ•_Éݤ%źGn/‡¶tĘ’¹H’DD„ىĆ"ĻjB²YūžĄCä’Œ)?Ōn~“½fłü®><÷ƒ{?ÉŗˆśŠS9™xaŽ·Ŗ#÷ņh6 ;®u ƒó“ Ģ8ō ~3!]Ćr!„²!īMń!6“0"Ųo"ĒÆ"cī"YØ-#”ķl#ź2¬#2xė#{½*$Ćj$ H©$Tč$Ņ'%åg%.]¦%w¢å%æē$&-d&Pr£&™·ā&įü!')Ba'r‡ '»Ģß'(LW^(•œ(ŻįÜ(&')nl[)¶±š)’öŁ)G<*X*ŁĘ—*! ×*jQ+²–U+ūŪ”+C!Ō+Œf,Ō«R,ń‘,e6Ń,®{-öĄO-?-ˆKĪ-А .ÖL.aŒ.©`Ė.ņ„ /:ėI/ƒ0‰/ĢuČ/»0]G0¦E†0īŠÅ06Š1D1ĒZƒ1 Ā1Xå2”*A2źo€22µæ2{śž2Ć?>3 …}3Tʼ3ü3åT;4.šz4vß¹4æ$ł4j85PÆw5™ō¶5į9ö5)56rÄt6ŗ “6Oó6K”27”Łq7ݱ7%dš7n©/8¶īn8’3®8Gyķ8¾,9Ųl9!I«9iŽź9²Ó):ūi:C^Ø:Œ£ē:Ōč&;.f;es„;­øä;öż#ƒm]>˲œ>ųŪ>\=?„‚Z?īĒ™?6 Ł?R@Ē—W@Ż–@X"Ö@”gAé¬TA2ņ“Az7ÓAĆ|B ĀQBT‘BLŠBå‘C-×NCvŽC¾aĶC§ DPģKD˜1‹DįvŹD)¼ ErIEŗFˆEŒĒEKŃF”FFÜ[…F%”ÄFmęG¶+CG’p‚GG¶ĮGÆa ø÷¦Jø@쉸ˆ1ÉøŃv¹¼G¹b‡¹ŖFƹó‹ŗ<ŃDŗ„„ŗĶ[Ćŗ”»^ęA»¦+»īpĄ»7¶’»€ū>¼Č@~¼†½¼YĖü¼¢<½ėU{½3›ŗ½{ął½Ä%9¾ kx¾U°·¾õö¾ę:6æ/€uæwÅ“æĄ ōæP3ĄQ•rĄ™Ś±ĄāńĄ*e0ĮsŖoĮ»ļ®Į5īĮMz-Ā•ælĀŽ¬Ā&JėĀn*Ć·ŌiĆ’©ĆH_čƑ¤'ÄŁéfÄ"/¦Äktåij¹$ÅūžcÅDD£ÅŒ‰āÅÕĪ!ĘaĘfY ĘƞßĘ÷ćĒ@)^LjnĒѳÜĒłČb>[ČŖƒšČóČŁČ;ɄSXÉ̘—ÉŽÖÉ^#ʦhUŹļ­”Ź7óÓŹ8ĖČ}RĖƑĖYŃĖ¢MĢź’OĢ3ŲŽĢ{ĪĢÄb Ķ ØLĶUķ‹Ķ2ĖĶęw Ī.½IĪw‰ĪĄGČĪĻQŅFĻ™†Ļā\ÅĻ*¢ŠrēCŠ»,ƒŠrĀŠL·ѕü@ŃŻA€Ń&‡æŃoĢžŃ·>Ņ’V}ŅHœ¼ŅįūŅŁ&;Ó!lzÓj±¹Ó³öųÓū;8ŌDwԌƶŌÕ öŌQ5Õf–tÕ®Ū³Õ÷ óÕ?f2ֈ«qÖŃš°Ö6šÖb{/×ŖĄn×ó®×;Kķ׃,ŲĢÕkŲ«Ų]`źŲ¦„)ŁīźhŁ70ØŁuēŁČŗ&ŚfŚYE„Ś”ŠäŚźĻ#Ū2cŪ{Z¢ŪğįŪ å ÜU*`ܝoŸÜ꓎Ü.śŻv?]Żæ„œŻŹŪŻPŽ™TZŽā™™Ž*ßŲŽs$ß»iWßƖßLōÕߔ9ąŻ~Tą&ēąn Óą·Nį’“QįHِįŠįŁcā!©Nājīā²3Ķāūx ćC¾KćŒ‹ćÕHŹćŽ äfÓH䮈ä÷]Ēä?£å‡čEåŠ-…åsÄåaøęŖżBęóB‚ę;ˆĮęƒĶēĢ@ēXē]¾ē„āżēī'=č7m|č²»čČ÷śč=:éY‚yé”Ēøéź ųé2R7ź{—vźĆܵź "õźUg4ė¬sėęń²ė.7ņėw|1ģæĮpģ°ģPLļ왑.ķįÖmķ*­ķraģķ»¦+īģjīL1Ŗī”véīŻ»(ļ%hļnF§ļ¶‹ęļ’Š%šHeš[¤šŁ ćš!ę"ńj+bń²p”ńśµąńCūņŒ@_ņŌ…žņĖŻņfó®U\ó÷š›ó?ąŚó‡%ōŠjYō°˜ōaõ×ōŖ:õņVõ;ŕõƒ ÕõĢOö•Sö]Ś’ö„Ņöīd÷6ŖP÷ļ÷Ē4Ļ÷zųYæMų”ųźIĢų2 ł{ŌJłĆŠł _ÉłT¤śéGśå.‡ś.tĘśw¹ūæžDūD„ūP‰Ćū˜ĪüįBü)YüržĄü»ć’ü)?żLn~ż”³½żŻųüż%><žnƒ{ž¶Čŗž’ śžGS9’˜x’ŲŻ·’!#÷’jh6²­uūņ“C8ō‹}3ŌĀr²eMń®’0ö×o?ƈbīЧ-ķla2¬©wėņ¼*:jƒG©̌čŅ']g„\¦ī”å6ē$,dĒq£·āXü!”Aa醠2Ģß{ĆV^ œTįÜœ& åk[ -±š vöŁ æ; X Pʗ ˜ × įP )–U rŪ” ŗ Ō f K«R ”š‘ Ż5Ń %{ nĄO ¶ ’JĪ G ÕLŲŒ!`Ėi„ ²źIś/‰CuČŒŗŌ’FE†eŠÅ­ĻöD>Zƒ‡ŸĀŠä*Aao€©“æņłž:?>ƒ„}Ėɼü\T;„™zīŽ¹6$łi8Ē®wō¶X9ö ~5éĆt2 “zNóƓ2 ŁqT±œcšåØ/-īnv3®¾xķ¾,Pl˜H«įź)Ó)riŗ]Ø£ēKč&”-fÜr„%øämż#¶Bc’‡¢GĶį!ŲW` ŸiāŽ±'śl]C²œ‹÷ŪŌ<‚ZeĒ™­ ŁöQ >—W ‡Ü– Ļ!Ö g!a¬T!©ń“!ņ6Ó!:|"ƒĮQ"Ė‘"LŠ"\‘#„ÖN#ķŽ#6aĶ#~¦ $ĒėK$1‹$XvŹ$ » %éI%1Fˆ%z‹Ē%ĀŠ& F&T[…&œ Ä&åå'-+C'vp‚'¾µĮ'ū(O@@(˜…(ąŹ¾()ž(rU=)ŗš|)ą»)K%ū)”j:*ÜÆy*$õø*m:ų*¶7+žÄv+G ¶+Oõ+Ų”4, Śs,i³,±dņ,ś©1-Bļp-‹4°-Óyļ-æ..en.­I­.öŽģ.>Ō+/‡k/Ļ^Ŗ/¤é/`é(0©.h0ńs§0:¹ę0ƒž%1ĖCe1‰¤1\Īć1¤#2ķXb25ž”2~ćą2Ē( 3n_3X³ž3 ųŻ3é=41ƒ\4zț4Ā Ū4 S5S˜Y5œŻ˜5ä"Ų5-h6v­V6¾ņ•68Õ6O}7—ĀS7ą“7(MŅ7q’8ŗ×P88KbĻ8”§9ÜģM9$29mwĢ9µ¼ :žK:FGŠ:ŒÉ:ŲŃ; H;i\‡;±”Ę;śę>‡V?>Ļ›~>į½>`&ż>Øk]½7„œ½É۽ȾTZ¾Y™™¾”ŽŲ¾é#æ2iWæ{®–æĆóÕæ 9ĄT~TĄĆ“ĄęÓĄ.NĮv“QĮæŲĮŠĮPc˜ØNĀįķĀ*3ĶĀrx Ć»½KĆ‹ĆLHŹĆ” ÄÜŅHÄ%ˆÄn]Ē͢ŒēEÅH-…ŐrÄÅŁ·Ę!żBĘiB‚Ʋ‡ĮĘśĢĒC@njWĒԜ¾ĒāżĒe'=Č®l|Čö±»Č?÷śČ‡<:ÉŠyÉĒøÉa ųÉ©Q7Źņ–vŹ;ܵʃ!õŹĢf4ˬsĖ]ń²Ė„6ņĖķ{1Ģ6Įp̰ĢĒKļĢ‘.ĶYÖmĶ”­Ķé`ģĶ2¦+ĪzėjĪĆ0ŖĪ véĪT»(ĻhĻåE§Ļ.‹ęĻvŠ%ŠæeŠ[¤ŠP ćИå"Ńį*bŃ)p”ŃrµąŃŗśŅ@_ŅL…žŅ”ŹŻŅŻÓ%U\Ómš›Ó¶ßŚÓž$ŌGjYŌÆ˜ŌŲō×Ō!:ÕjVÕ²Ä•Õś ÕÕCO֋”SÖŌŁ’ÖŅÖed×®©P×öī×?4ĻׇyŲŠ¾MŲŲaIĢŲ©Ž ŁņÓJŁ:ŠŁƒ^ÉŁĢ£ŚéGŚ].‡Ś„sĘŚķøŪ6žDŪ~C„ŪLjĆŪĪÜXBÜ”XÜ靡Ü2ć’Üz(?ŻĆm~Ż ³½ŻTųüݜ=<Žå‚{Ž-ČŗŽv śŽæR9ߘxßPݷߘ"÷ßįg6ą)­uąqņ“ąŗ7ōą}3įKĀrᔲįŻLńį%’0ān×oā¶ÆāžaīāG§-ćģlćŲ1¬ć!wėći¼*ä²jäśF©äCŒčä‹Ń'åŌgå\¦åe”åå­ę$ęö+dę>q£ę‡¶āęŠū!ēAaēa† ē©Ėßēńč:V^肛čĖąÜč&é\k[é„°šéīõŁé6;ź~€XźĒŗź ןXPė •Uė馔ė2 ŌėzeģĆŖRģ š‘ģT5ŃģœzķåæOķ-ķvJĪķ¾ īÕLīOŒī˜_Ėīᤠļ)źIļr/‰ļŗtČļŗšK’Fš“D†šÜ‰Åš%ĻńmDń¶YƒńžžĀńGäņ)AņŲn€ņ “æņiłžņ±>>óśƒ}óCɼó‹üóŌS;ō™zōe޹ō­#łōõh8õ>®wõ‡ó¶õĻ8öõ~5ö`Ćtö©“öņMóö:“2÷‚Ųq÷˱÷cš÷\Ø/ų¤ķnųķ2®ų6xķų~½,łĒlłH«łXźł Ņ)śéiś1]Øśz¢ēśĀē&ū -fūTr„ūœ·äūåü#ü-Bcüv‡¢ü¾Ģįü!żOW`ż˜œŸżąįŽż)'žql]žŗ±œž÷ŪžK<’“Z’Üʙ’$ Ł’mQµ–WžŪ–G!֏fŲ«T ń“i6Ó±{łĄQB‘‹KŠӐÖNeŽ­`Ķö„ >ėK†0‹ĻuŹ» `I©EˆńŠĒ:ŠƒFĖZ… Ä\å¤*Cķo‚5µĮ~śĒ?@…Xʾ žéT= 1š| yß» Ā$ū j: SÆy œōø ä9ų -7 vÄv ¾ ¶ Oõ O”4 —Łs ą³ (dņ q©1 ŗīp 4° Kyļ “¾.Ün$I­mŽģµÓ+žkF^Ŗ£éŲč( .his§±øęśż%BCeŠˆ¤ÓĶć#dXb­”õāą>( †m_ϲžųŻ`=؂\ńĒ›9 Ū‚RĖ—Yݘ\"Ų¤gķ¬V5ņ•}7ÕĘ|ĀSW“ LŅé‘1×PzĀaĻ §SģM›1ävĢ-¼ uK¾FŠŒÉOŃ—Hą[‡(”Ęqę¹+Eq„J¶Ć“ūÜ@B$†mĖĄµžU?F›~Žą½×%ż k<h°{±õŗś:śB€9 ŠÅx Ó ø P÷ d•6!¬Śu!õµ!>eō!†Ŗ3"Ļļr"5²"`zń"Øæ0#ńp#9JÆ#‚ī#ŹŌ-$m$[_¬$¤¤ė$ķé*%5/j%~t©%ƹč%’'&WDg&Ÿ‰¦&čĪå&1%'yYd'Āž£' äā'S)"(›na(ä³ (,łß(u>)½ƒ^)ɝ)OŻ)—S*ą˜[*(ޚ*q#Ś*¹h+®X+Jó—+“8×+Ū},$ĆU,m•,µMŌ,ž’-FŲR-Ž’-×bŃ-Ø.hķO.±2.łwĪ.B½ /ŠM/ÓGŒ/Ė/dŅ 0¬J0õ\‰0=¢Č0†ē1Ī,G1r†1`·Å1Øü2ńAD29‡ƒ2‚ĢĀ2Ź3WA3[œ€3¤įæ3ģ&’35l>4~±}4Ęö¼4<ü4W;5ŸĘz5č ŗ50Qł5y–86ĀŪw6 !·6Sfö6›«57äšt7,6“7u{ó7½Ą28r8NK±8—š8ßÕ/9(o9q`®9¹„ķ9ė,:J0l:’u«:Ūŗź:#*;lEi;µŠØ;żĻē;F'<Zf<ן„<åäӄ`>ʟ>dß>¬T?õ™]?=ߜ?†$Ü?Īi@ÆZ@_ō™@Ø9Ł@š~A9ÄWA‚ —AŹNÖA”B[ŁTB£”BģcÓB4©C}īQCĘ3‘CyŠCW¾DŸODčHŽD0ŽĶDyÓ EĮLE ^‹ER£ŹE›č Fä-IF,sˆFuøĒF½żGCFGNˆ…G–ĶÄGžxøG¾MøøŲHĢø Ž ¹iÓJ¹²йś]ɹC£ŗ‹čGŗÓ-‡ŗsĘŗdø»­żD»öB„»>ˆĆ»‡Ķ¼ŠB¼X¼`Ą¼©ā’¼ń'?½:m~½‚²½½Ė÷ü½=<¾\‚{¾„Ēŗ¾ķ ś¾6R9æ~—xæĒÜ·æ"÷æXg6Ą ¬uĄéń“Ą17ōĄz|3ĮĆĮrĮ ²ĮTLńĮœ‘0ĀäÖoĀ-ÆĀua-ĆģlĆO1¬Ć˜vėĆą»*Ä)jÄqF©Äŗ‹čÄŃ'ÅKgœ[¦ÅÜ åÅ%ę$Ęm+dʶp£ĘžµāĘGū!Ē@aĒׅ Ē ĖßĒiȱU^ČśšČCąÜȋ%ÉŌj[ɰšÉdõŁÉ­:ŹõXŹ>ŗʇ ׏ĻOĖ•UĖ`ڔ˩ŌĖńdĢ:ŖRĢ‚ļ‘ĢĖ4ŃĢzĶ\æOͤĶķIĪĶ6 Ī~ŌLĪĒŒĪ_ĖĪX¤ Ļ éIĻč.‰Ļ1tČĻz¹ŠĀžFŠ D†ŠT‰ÅМĪŃäDŃ-YƒŃužĀѾćŅ)AŅOn€Ņ˜³æŅąųžŅ)>>Óqƒ}ӺȼÓüÓKS;Ō“˜zŌÜŻ¹Ō$#łŌmh8Õµ­wÕžņ¶ÕG8öՏ}5ÖŲĀtÖ “ÖhMóÖ±’2׳×q×B±×‹bš×Ó§/ŲķnŲe2®Ų­wķŲõ¼,Ł>lنG«ŁĻŒźŁŅ)Ś`iŚ©\ØŚń”ēŚ:ē&Ū‚,fŪĖq„Ū·äŪ[ü#ܤAcÜ톢Ü5ĢįÜ~!ŻĘV`ŻœŸŻXįŽŻ &Žčk]Ž1±œŽyöŪŽĀ;ß ZßSʙߜ ŁßäPą-–WąuŪ–ą¾ ÖąfįO«Tį—š“įą5Óį({āqĄQāŗ‘āKŠāKć“ÕNćÜŽć$`Ķćl„ 䵟Käž/‹äFuŹäŗ å×’Hå EˆåhŠĒå±ĻęłFęBZ…ęŠŸÄęÓäē*Cēdo‚ē­“Įēõłč>?@膄čĻɾčžč_T=騙|éńŽ»é9$ūé‚i:źĖ®yźōøź\9ųź¤~7ėģĆvė5 ¶ė}Nõėʓ4ģŁsģW³ģ cņģčØ1ķ1īpķy3°ķĀxļķ ¾.īSnī›H­īäģī,Ó+ļukļ¾]Ŗļ£éļOč(š—-hšąr§š(øęšqż%ń¹Beńˆ¤ńJĶćń“#ņÜWbņ$”ņlāąņµ' óżl_óF²žóŽ÷Żó×<ō ‚\ōhĒ›ō± ŪōłQõB—YõŠÜ˜õÓ!Ųõgöd¬Vö¬ń•öõ6Õö>|÷†ĮS÷Ļ“÷LŅ÷`‘ųØÖPųšų9aĻų‚¦łŹėMł1ł[vĢł¤» śķKś5FŠś}‹ÉśĘŠūHūW[‡ūŸ Ęūčåü1+Eüyp„üµĆü ūżS@Bż›…żäŹĄż,žuU?ž½š~žą½žO%żž—j<’ąÆ{’(õŗ’p:ś’¹9ÅxJ ø“O÷Ū”6$Śulµµdōż©3FļrŽ4²×yńæ0hp°IÆłŽīBŌ-ŠmÓ^¬¤ėdé*¬.jōs©=¹č†ž'ĪCg‰¦`ĪåØ%ńXd9ž£ćāŹ("na[³ ¤ųßģ= 5ƒ^ }ȝ Ę Ż S W˜[ ŸŻš č"Ś 0h y­X Įņ— 8× S} ›ĀU ä• ,MŌ t’ ½×R ’ NbŃ —§ßģO(2qwι¼ MJGŒ’ŒĖŪŃ #Jl\‰µ”ČżęF,GŽq†×¶ÅühAD°†ƒłĖĀAŠVAŅ›€įæd&’¬k>ō°}=ö¼…;üĪ€;Ęz_ ŗØPłš•89Ūw ·Źeö«5[št£5“ģzó4Ą2}rĘJ±šWÕ/Ÿoč_®0„ķxź,Į/l u«Rŗź›’)äDi,ŠØuĻē½'ZfNŸ„–ääß)$(ocp“¢¹łį?!J„`’ÉŸŪß#Tl™]“ޜż#ÜEi Ž®Z ×ó™ 9Ł h~!°ĆW!ų—!ANÖ!‰“"ŅŲT"”"ccÓ"¬Ø#õķQ#=3‘#…xŠ#ν$O$_HŽ$§Ķ$šŅ %9L%]‹%Ź¢Ź%č &[-I&£rˆ&ģ·Ē&4ż'}BF'҅'ĶÄ'V(ŸWC(蜂(0āĮ(y')Įl@) ²)R÷¾)š<ž)ć=*,Ē|*t ¼*½Qū*—:+NÜy+–!¹+ßfų+'¬7,pńv,ø6¶,|õ,JĮ4-’t-ŪK³-#‘ņ-lÖ1.“q.ü`°.E¦ļ.Žė./Ö0n/v­/g»ģ/°,0łEk0A‹Ŗ0‰Šé0Ņ)1[h1c §1«åę1ō*&2=pe2…µ¤2Īść2@#3_…b3§Ź”3šį38U 4š_4Éߞ4%Ž4[j5£Æ\5ģō›54:Ū5}6ÅÄY6 ™6VOŲ6Ÿ”7ēŁV70–7xdÕ7Į©8 ļS8R4“8šyŅ8ć¾9+Q9tI9¼ŽĻ9Ō:NN:–^:ߣĢ:'é ;p.K;øsŠ;¹É;Iž<’CH<ڈ‡<#ĪĘÖmB>³>gųĄ>°=?ų‚??AČ~?‰ ¾?ŅRż?˜<@cŻ{@«"»@ōgś@<­9A…ņxAĶ7øA}÷A_Ā6B§vBšLµB8’ōB×3CÉsCb²CZ§ńC£ģ0Dė1pD4wÆD}¼īDÅ.E GmEVŒ¬EžŃėEē+F/\jFx”©FĮęčF ,(GRqgGš¶¦GćūåGJ§/ø“ģnøŪ1®ø$wķøl¼,¹µl¹žF«¹FŒź¹Ń)ŗ×iŗ \Øŗh”ēŗ±ę&»ł+f»Bq„»Š¶ä»Óū#¼Ac¼d†¢¼­Ėį¼õ!½>V`½†›Ÿ½ĪąŽ½&¾_k]¾Ø°œ¾ńõŪ¾9;悀ZæĖřæ Łæ[PĄ¤•WĄģŚ–Ą5 ÖĄ}eĮĘŖTĮš“ĮW5ÓĮ zĀčæQĀ1‘ĀyJŠĀĀĆ ÕNĆSŽĆ›_ĶĆä¤ Ä,źKÄu/‹Ä¾tŹÄŗ ÅN’HŗDˆÅ߉ĒÅ(ĻĘpFƹY…ĘŸÄĘJäĒ“)CĒŪn‚Ē$“ĮĒlłČµ>@ČżƒČFÉ¾ČŽžČ×S=É ™|Éh޻ɱ#ūÉłh:ŹB®yʊóøŹŅ8ųŹ~7ĖdĆvˬ¶ĖõMõĖ=“4̆ŲsĢϳĢcņĢ_Ø1ĶØķpĶš2°Ķ9xļ́½.ĪŹnĪH­Ī[ģΤŅ+ĻģkĻ5]ŖĻ}¢éĻĘē(Š-hŠWr§ŠŸ·ęŠčü%Ń1BeŃy‡¤ŃĀĢćŃ #ŅRWbŅ›œ”ŅćįąŅ,' Óul_Ó½±žÓ÷ŻÓN<Ō—\ŌßʛŌ( ŪŌpQÕ¹–YÕܘÕJ!ŲՒfÖŪ«VÖ$ń•Öl6ÕÖµ{׿ĄS×F“׎KŅ×֐ŲÖPŲhŲ°`ĻŲł„ŁBėMي0ŁÓuĢŁ» ŚcKڬEŠŚōŠÉŚ=ŠŪ†HŪĪZ‡Ū ĘŪ_åÜØ*EÜšo„Ü9µĆ܁śŻŹ?BŻ…Ż[ŹĄŻ¤ŽģT?Ž5š~Ž}ß½ŽĘ$żŽj<ßVÆ{ߟōŗßč9śß09ąyÄxąĮ øą O÷ąS”6į›Łuįćµį,dōįt©3ā½īrā4²āNyńā—¾0ćßpć(IÆćpŽīć¹Ó-ämäJ^¬ä’£ėäŪč*å#.jåls©åµøčåżż'ęFCgꎈ¦ęÖĶåę%ēgXdē°£ēłāāēA("čŠmačҲ čųßčc=鬂^éōĒé= Żé…RźĪ—[źݚź_"ŚźØgėš¬Xė9ņ—ė7×ėŹ|ģĀUģZ•ģ£LŌģģ‘ķ4×Rķ}’ķĘaŃķ§īWģOīŸ1īēvĪī0¼ ļxMļĮFŒļ ŒĖļRŃ š›Jšć[‰š,”Čštęń½+Gńq†ńN¶Åń–ūņß@Dņ'†ƒņpĖĀņ¹óVAóJ›€ó’ąæóŚ%’ó#k>ōk°}ō“õ¼ōż:üōE€;õŽÅzõ× ŗõPłõg•8ö°Śwöų·öAeöö‰Ŗ5÷Ņļt÷5“÷czó÷¬æ2ųōrų=J±ų…šųĪŌ/łoł__®ł§¤ķłšé,ś8/lśt«śŹ¹źś’)ū[Diū£‰ØūėĪēū4'ü|YfüŞ„üääüV)$żŸncżē³¢ż0łįżx>!žĮƒ`ž ɟžRßžšS’ć˜]’,ޜ’t#Ü’½h®ZNó™–8ŁŽ}'ĆWp—øMÖ“IŲT’”ŪbÓ#ØkķQ“2‘üwŠE½OÖGŽĶgŅ °Lų\‹A¢Ź‰ē Ņ,Irˆc·Ē«üōAF=‡……ĢÄĪWC_œ‚§įĮļ& 8l@ ± Éö¾ <ž [= £Ę| ė ¼ 4Qū |–: ÅŪy !¹ Vfų Ÿ«7 ēšv 06¶ x{õ ĮĄ4 t RK³ šņ ćÕ1+qt`°¼„ļė.N0n–u­ßŗģ',oEkøŠŖŠéI)’Zhڟ§#åęl*&“oeü“¤Eść?#քbŹ”gį°T ų™_Aߞ‰$ŽŅiÆ\cō›«9Ūō~<ÄY… ™ĶNŲ”_ŁV§–ļcÕ8©€īSÉ3“yŅZ¾£QėH4ŽĻ|ÓÅN ^V£Ģžč ē-K/sŠxøÉĮż CHRˆ‡šĶĘć+XEs„¼āĆ(MmB–²Ž÷Ą'=p‚?øĒ~ ¾IRż‘—< ŚÜ{ ""» kgś “¬9!üńx!E7ø!|÷!ÖĮ6"v"fLµ"Ƒō"ųÖ3#@s#‰a²#Ҧń#ģ0$c1p$«vÆ$ó»ī$<.%„Fm%Ķ‹¬%Ńė%^+&§[j&ļ ©&8ęč&€+('Épg'¶¦'Zūå'¢@%(ė…d(3Ė£(|ć(ÅU") ›a)Vą )ž%ą)ēj*/°^*wõ*Ą:Ż* €+QÅ[+š ›+ćOŚ++•,sŚX,¼˜,e×,MŖ-•ļU-Ž4•-'zŌ-oæ.øS.J’.IŃ.‘Ō/ŚP/"_/k¤Ī/³é 0ü.M0DtŒ0¹Ė0Öž 1DJ1g‰‰1ÆĪČ1÷2@YG2‰ž†2ŃćÅ2)3bnD3«³ƒ3ōųĀ3<>4„ƒA4ĶȀ4Ą4^S’4¦˜>5ļŻ}58#½5€hü5É­;6óz6Z8ŗ6¢}ł6ėĀ873x7|M·7Ēö7 Ų58Vu8žb“8ē§ó8/ķ29w2r9Ąw±9½š9Q0:šGo:⌮:+Ņķ:s-;¼\l;¢«;Mēź;•,*<Žqi<&·Ø"œc>kį¢>³&ā>ūk!?D±`?öŸ?Õ;ß?@gĘ]@Æ @ųPÜ@@–AˆŪZAŃ šAfŁAb«B«šWBó5—B<{ÖB„ĄCĶUCK”C^ÓC¦ÕDļRD7`‘D€„ŠDČźE0OEZuŽE¢ŗĶEė’ F3ELF{Š‹FÄĻŹF  GUZIGžŸˆGęäĒGNø—ÕPøßø(`Ļøp„¹øźM¹0¹Iu̹’ŗ ŗŪ’Jŗ#EŠŗlŠÉŗ“Ļ»żH»EZ‡»ŽŸĘ»Öä¼*E¼go„¼°“üųł½A?B½Š„½ŅÉĄ½¾cT?¾¬™~¾ō޽¾<$ż¾…i<æĪ®{æōŗæ_9śæØ~9ĄšĆxĄ9 øĄN÷ĄÉ“6ĮŁuĮZµĮ£cōĮģØ3Ā4īrĀ}3²ĀÅxń¾0ĆVpßHÆĆēīĆ0Ó-ÄxmÄĮ]¬Ä £ėÄRč*ś-jÅćr©Å,øčÅtż'ƼBgĘˆ¦ĘMĶåʖ%ĒßWdĒ'£Ēpāāǹ'"ČmaČI² Č’÷ßČŚ<É#‚^ÉkĒÉ“ ŻÉżQŹE—[ŹŽÜšŹÖ!ŚŹgĖg¬X˰ń—Ėų6×ĖA|̉ĮUĢŅ•ĢLŌĢc‘ͬÖRĶō’Ķ=aŃĶ…¦ĪĶėOĪ1Ī_vĪΧ» ĻšMĻ8FŒĻ‹ĖĻÉŠ ŠJŠZ[‰Š£ ČŠėåŃ4+GŃ|p†ŃŵÅŃūŅV@Dҟ…ƒŅēŹĀŅ0ÓxUAÓĄš€Ó ąæÓR%’Ӛj>ŌćÆ}Ō,õ¼Ōt:üŌ½;ÕÅzÕM ŗÕ–OłÕŽ”8Ö'ŚwÖp·ÖødöÖŖ5×Iļtג4“׌yó×#æ2ŲkrŲ“I±ŲüŽšŲEŌ/ŁoŁÖ^®Ł¤ķŁgé,ڰ.lŚųs«ŚA¹źŚ‰ž)ŪŃCiŪ‰ØŪcĪēŪ«'ÜōXfÜ=ž„܅ćäÜĶ($ŻncŻ^³¢Ż§ųįŻļ=!Ž8ƒ`ށȟŽÉ ߎSßZ˜]ߣݜßė"Üß4hą|­ZąÅņ™ą 8ŁąV}įžĀWįē—į0MÖįx’āĮ×Tā ”āQbÓ⚧ćāģQć+2‘ćtwŠć¼¼äOäNGŽä–ŒĶäŽŃ å'Låo\‹åø”Źåē ęI,Ię’qˆęڶĒę#üēkAF瓆…ēüĖÄēDčVCč֛‚čįĮčg&éÆk@éų°éAö¾é‰;žéр=źĘ|źb ¼ź«Pūźó•:ė<Ūyė… ¹ėĶeųė«7ģ^švģ§5¶ģļzõģ8Ą4ķ€tķÉJ³ķņķZÕ1ī£qīė_°ī4„ļī|ź.ļÅ/nļ u­ļUŗģļž’+šēDkš/ŠŖšxĻ隥)ń ZhńRŸ§ńšäęńā)&ņ+oeņs“¤ņ¼łćņ?#óM„bó–É”óŽįó'T ōo™_ōøŽžō$ŽōIiõ‘®\õŚó›õ"9Ūõk~ö“ĆYöü™öENŲö“÷ÕŲV÷–÷fcÕ÷ÆØųųķSų@3“ų‰xŅųҽłQłbHł«ĻłóŅś<Nś„]śĶ¢Ģśč ū^-Kū§rŠūļ·Éū8żü€BHüɇ‡üĶĘüZż¢WEżėœ„ż3āĆż|'žÅlBž ²žU÷Ąžž<’ę?’/Ē~’w ¾’ĄQż’ —<QÜ{š!»āfś+¬9sńx¼6ø|÷MĮ6•vŽKµ'‘ōoÖ3øsa²I¦ń‘ė0Ł0p"vÆk»ī³.üEmD‹¬ŠėÖ+[jf ©Æåč÷*(@pgˆµ¦Ńśå@%b…d«Ź£óćfŻ}Æ"½÷gü@­;ˆņzŃ7ŗ}łbĀ8ŖxóL·<’ö„×5Ķub“]§ó¦ģ2ī1r7w±€¼šČ0GoZŒ®¢Ńķź-3\l{”«Äęź ,*Uqiž¶Øęūē/A'w†fĄĖ„åQV$™›cāą¢*&āsk!¼°`öŸM;ß•€ ŽÅ] &  nPÜ ·•!ŪZ!H š!‘eŁ!ŁŖ""šW"j5—"³zÖ"ūæ#DU#ŒJ”#ՏÓ#Õ$fR$Æ_‘$÷¤Š$@ź%ˆ/O%ŃtŽ%ŗĶ%a’ &ŖDL&ó‰‹&;ĻŹ&„ 'ĶYI'Ÿˆ'^äĒ'¦)(īnF(7“…(łÄ(Č>)„C)Yɂ)¢Ā)źS*3™@*{Ž*Ä#æ* iž*U®=+ó|+ę8¼+.~ū+wĆ:,Ąz,N¹,Q“ų,™Ų7-įw-*c¶-rØõ-»ķ4.3t.Lx³.•½ņ.Ž2/&Hq/n°/·Ņļ/’/0H]n0¢­0Łēģ0"-,1jrk1³·Ŗ1ūüé1DB)2Œ‡h2Õ̧2ē2fW&3®œe3÷į¤3?'ä3ˆl#4ѱb4÷”4b<į4Ŗ 5ņĘ_5; Ÿ5ƒQŽ5Ģ–6Ü\6]!œ6¦fŪ6ī«77ńY76™7Č{Ų7Į8YW8”K–8źÕ83Ö9{T9Ä`“9 ¦Ņ9Uė:0Q:åu:.»Ļ:w;æEN;‹;PŠĢ;™ <āZK<* Š&…E>nŹ„>·Ä>’T?HšB?ß?Ł$Į?!j@jÆ?@²ō~@ū9¾@Dż@ŒÄ#ÓăbÓ É”ÓUįӞS Ōę˜_Ō/ŽžŌw#ŽŌĄhÕ ®\ÕQó›Õš8ŪÕā}Ö+ĆYÖs™Ö»MŲÖ“×MŲVו–׎bÕ×&ØŲoķSŲø2“ŲxŅŲH½Ł‘QŁŁGŁ"ĻŁjŅڳNŚü\ŚD¢ĢŚē ŪÕ,KŪrŠŪf·ÉŪÆüÜ÷AHÜ@‡‡ÜˆĢĘÜŃŻWEŻbœ„Ż«įĆŻó&Ž;lBŽ„±ŽĢöĄŽ<ß^?ߦĘ~ßļ ¾ß7Qżß€–<ąČŪ{ą!»ąYfśą¢«9įźšxį36øį{{÷įÄĄ6ā vāUKµāžōāęÕ3ć/sćw`²ćĄ„ńćė0äQ0pä™uÆäāŗīä+.åsEm弊¬åŠėåL+ę•Zjꯟ©ę&åčęo*(ē·og給ēHśåē‘?%裄dč"Ź£čjćč³T"éū™aéDß é$ąéÕiźÆ^źfōźÆ9Żź÷~ė?Ä[ėˆ ›ėŃNŚė”ģbŁXģŖ˜ģóc×ģ<©ķ„īUķĢ3•ķyŌķ]¾ī¦SīīH’ī7ŽŃī€ÓļČPļ^ļY£Īļ¢č šź-Mš3sŒš{øĖšÄż ń CJńUˆ‰ńžĶČńęņ/XGņw†ņĄāÅņ(óPmD󙲃óā÷Āó*=ōs‚Aō»Ē€ō ĄōLR’ō•—>õŻÜ}õ&"½õngüõ·¬;ö’ńzöH7ŗö‘|łöŁĮ8÷"x÷jL·÷³‘ö÷ūÖ5ųCuųŒa“ųÕ¦óųģ2łf1rłÆv±ł÷»šł@0śˆFośŠ‹®śŃķśa-ūŖ[lūó «ū;ęźū„+*üĢpiü¶Øü]ūēü¦@'żī…fż7Ė„żåżČU$ž›cžYą¢ž¢%āžźj!’3°`’{õŸ’Ć:ß’ €TÅ] ęOÜ.•wŚZĄšeŁPŖ™ļWį4—*zÖræ»UJ”LÓ•ŌŻR&_‘n¤Š·é’.OHtސ¹ĶŁž !DLj‰‹³ĪŹū DYIŒžˆŌćĒ)enF®³…÷ųÄ?> ˆƒC ŠČ‚ Ā aS Ŗ˜@ ņŻ ;#æ ƒhž Ģ­= ó| ]8¼ ¦}ū īĀ: 7z M¹ Ē’ų Ų7 Yw ”b¶ ź§õ 3ķ4{2tÄw³ ½ņT2Gq匰.Ņļw/æ\n¢­Pēģ™,,įqk*·Ŗrüé»A)‡hĻ”ēŻV&&œenᤷ&ä’k#H±bö”Ų;į! jĘ_² ŸūPŽD–ŒŪ\Ō œfŪe«®šYö5™?{ŲˆĄŠWK–aÕŖÕņT;`“ƒ„ŅĢź0Q]u„ŗĻī’7ENŠČĻĢ XZK”ŸŠéäÉ2* {oHĆ“‡ śĘU?„EåɄ.ÄvTæ™B߁P$Į™i į®? *ō~ r9¾ »~ż Ä6a ~6©O½6ņ”ü6:Ś;7ƒ{7Ģdŗ7Ŗł7]ļ88„4x8ķy·86æö8~69ĒIu9“9XŌó9”3:é^r:2¤±:zéš:Ć.0; to;T¹®;œžķ;åC-<.‰lr³f>ŗų„>>å>Kƒ$?”Čc?Ż £?%Sā?m˜!@¶Ż`@ž" @Ghß@­AŲņ]A!8Ai}ÜA²ĀBś[BCMšB‹’ŁBŌ×CXCeb—C­§ÖCöģD?2UD‡w”DмÓDE`GRE©Œ‘EńŃŠE:Fƒ\OFĖ”ŽFēĶF\, G„qLGķ¶‹G6üŹGž§øęģSø.2“øwwŅøæ¼¹Q¹QG¹™ŒĻ¹āŃŗ*Nŗs\ŗ»”Ģŗē »L,K»•qлݶɻ&ü¼oAH¼·†‡¼ĢƼH½‘VE½Ł›„½!įýj&¾³kB¾ū°¾DöĄ¾Œ;æÕ€?æĘ~æf ¾æ®Pżæ÷•<Ą?Ū{Ąˆ »ĄŠeśĄ«9ĮbšxĮŖ5øĮóz÷Į;Ą6Ā„vĀĢJµĀōĀ]Õ3ƦsĆī_²Ć7„ńƀź0ÄČ/pÄuÆÄYŗīÄ¢’-ÅźDmÅ2ЬÅ{ĻėÅÄ+Ę ZjĘUŸ©ĘäčĘę)(Ē.ogĒw“¦ĒæłåĒ?%ČP„dșɣČįćČ*T"És™aɻޠÉ$ąÉLiŹ•®^ŹŻóŹ%9ŻŹn~Ė·Ć[Ė’›ĖHNŚĖ‘“ĢŁŲXĢ"˜Ģjc×̲ØĶūķUĶC3•ĶŒxŌĶÕ½ĪSĪfH’Ī®ŃĪ÷ŅĻ?Pψ]ĻŠ¢ĪĻč Ša-MŠŖrŒŠó·ĖŠ;ż фBJŃ̇‰ŃĶČŃ]Ņ„WGŅīœ†Ņ7āÅŅ'ÓČlDÓ²ƒÓY÷ĀÓ¢<ŌźAŌ2Ē€Ō{ ĄŌĆQ’Ō —>ÕTÜ}՝!½ÕęfüÕ.¬;ÖwńzÖæ6ŗÖ|łÖPĮ8יx×įK·×*‘ö×rÖ5Ų»uŲa“ŲL¦óŲ•ė2ŁŻ0rŁ&v±Łn»šŁ¶0Ś’EoŚH‹®ŚŠķŚŁ-Ū![lŪj «Ū²åźŪū**ÜCpi܌µØÜŌśēÜ@'Że…fݮʄŻ÷åŻ?U$ވšcŽŠß¢Ž%āŽaj!ß©Æ`ßņōŸß;:ß߃ąĢÄ]ą ą]OÜą¦”įīŁZį6šįdŁįĒ©āļWāY4—ā”yÖāź¾ć2Uć{I”ćƎÓć ŌäTRä^‘ä壊ä.éåv.OåæsŽå¹ĶåPž ę™CLęįˆ‹ę*ĪŹęr ēŗXIēžˆēLćĒē”(čŻmFč&³…čnųÄč¶=é’‚CéGČ‚é ĀéŲRź!˜@źjŻź²"æźūgžźC­=ėŒņ|ėŌ7¼ė}ūėeĀ:ģ®zģöL¹ģ?’ųģ‡×7ķŠwķb¶ķa§õķŖģ4īņ1tī:w³īƒ¼ņīĖ2ļGqļ]Œ°ļ„Ńļļī/š7\nš”­šĒęģš,,ńXqkń”¶Ŗńéūéń2A)ņ{†hņĆ˧ņ ēņTV&ó›eóåą¤ó.&äóvk#ōæ°bōö”ōP;įō˜€ õįÅ_õ* ŸõrPŽõŗ•öŪ\öK œö”eŪöÜŖ÷%šY÷n5™÷¶zŲ÷’æųGWųJ–ųŲÕų!ÕłiTł²_“łś¤ŅłCźśŒ/QśŌtśŗĻśe’ū®DNūö‰ū>ĻĢū‡ üŠYKüŸŠüaäÉüŖ) żņnHż;“‡żƒłĘżĖ>ž„Ež\Ʉž„ÄžīS’6™B’ށ’Ē#Į’iX®?”ó~é8¾2~żzĆ<Ć| N»T“śŲ9åy.cøvØ÷¾ķ63vOxµ˜½ōį4)Hsr²»Ņń1K]p”¢ÆÜēī%-.mrm¶·¬’üėGB+‡jŲĢ©!éiW(²œgśį¦C'ę‹l% Ō±d ÷£ e<ć ®" öĘa > ” ‡Qą Ļ– Ü^ `!ž ©fŻ ņ« :ń[ ƒ6› Ė{Ś Į \Y „K˜ ķ× 6Ö~VĒ`•¦ŌXė”0Séu’2»ŃzĀEP ‹TŠĪœåZM- ŒvåĖæ* pJOµ‰˜śČą?)…GqʆŗĘUKšD”߃Ü$Ć%jmÆA¶ō€ž9ĄG’Ä>Ų ~!O½i”ü²Ł;ś{Bdŗ‹©łÓī84xey·­¾öö6>Iu‡Ž“ĻÓó3`^r©£±ńčš:.0‚soĖø®žķ\C-„ˆlķĶ«6ė~X*ʝićØX(č m'é²f2ų„z=åƂ$ ČcS £œRāä—! -Ż` v"  ¾gß ­!Oņ]!˜7!ą|Ü!)Ā"q["ŗLš"’Ł"K×#”X#Üa—#%§Ö#mģ$¶1U$žv”$F¼Ó$%ŲFR% Œ‘%iŃŠ%±&ś[O&C”Ž&‹ęĶ&Ó+ 'qL'd¶‹'­ūŹ'õ@ (>†I(‡Ėˆ(ĻČ(V)`›F)©ą…)ń%Å):k*‚°C*Ėõ‚*;Ā*\€+„Å@+ķ €+6Pæ+~•ž+ĒŚ=, },We¼, Ŗū,éļ:-15z-zz¹-Āæų- 8.SJw.œ¶.äŌõ.-5/u_t/¾¤³/źņ/O/20˜tq0ą¹°0)’ļ0qD/1ŗ‰n1Ļ­1Jķ1“Y,2ܞk2$äŖ2m)ź2¶n)3ž³h3Gł§3>ē3׃&4 Ée4h„4±Sä4ś˜#5BŽb5‹#¢5Óhį5® 6dó_6­8Ÿ6õ}Ž6>Ć7†]7ĻMœ7“Ū7`Ų8©Z8ńb™8:ØŲ8‚ķ9Ė2W9x–9[½Õ9¤:ķGT:5“:~ŅŅ:Ē;]Q;W¢; ēĻ;č,<1rNuœH>¾į‡>'Ē>Ol?—±E?ąö„?(<Ä?q@ŗĘB@ ‚@KQĮ@“–AŪŪ?A$!Alf¾Aµ«żAžšņE†E1FΊpFŠÆF`ļFØZ.GńŸmG9å¬G‚*ģGźÕ5ø2uø{`“øĆ„óø ė2¹T0r¹œu±¹åŗš¹.0ŗvEoŗæŠ®ŗŠķŗP-»˜Zl»įŸ«»)åź»r**¼ŗoi¼µØ¼Lśē¼”?'½Ż„f½%Ź„½nå½¶T$¾’™c¾Gߢ¾$ā¾Ųi!æ!Æ`æjōŸæ²9ßæū~ĄCÄ]ĄŒ ĄŌNÜĄ”ĮeŁZĮ®šĮöcŁĮ?©‡īWĀŠ3—ĀyÖĀa¾Ć©UĆņH”Ć:ŽÓƃÓÄĖRÄ^‘Ä]£ŠÄ„čÅī-OÅ6sŽÅøĶÅĒż ĘCLĘXˆ‹Ę”ĶŹĘé Ē2XIĒ{ˆĒĆāĒĒ (ČTmFȜ²…Čå÷ÄČ-=Év‚CɿǂÉ ĀÉPRʘ—@ŹįÜŹ)"æŹrgžŹŗ¬=Ėņ|ĖK7¼Ė”|ūĖÜĮ:Ģ%zĢnL¹Ģ¶‘ųĢ’Ö7ĶGw͐a¶ĶŲ¦õĶ ģ4Īi1tβv³Īś»ņĪC2όFqĻŌ‹°ĻŃļĻe/Š­[nŠö ­Š>ęģŠ‡+,ŃŠpkѶŖŃaūéŃ©@)Ņņ…hŅ:˧҃ēŅĖU&Ó›eÓ\ą¤Ó„%äÓķj#Ō6°bŌõ”ŌĒ:įŌ€ ÕXÅ_Õ  ŸÕéOŽÕ1•ÖzŚ\ÖĆœÖ eŪÖTŖםļY×å4™×-zŲ×væŲ¾WŲJ–ŲOÕؘŌŁįTŁ)_“Łr¤ŅŁŗéŚ/QŚKtŚ”¹ĻŚÜžŪ%DNŪm‰Ū¶ĪĢŪž ÜGYKܐžŠÜŲćÉÜ ) ŻinHݱ³‡ŻśųĘŻB>Ž‹ƒEŽŌȄŽÄŽeSß­˜Bßö݁ß>#Į߇hąĻ­?ąó~ą`8¾ą©}żąņĀ<į:|įƒM»įĖ’śįŲ9ā\yā¤bøāķ§÷ā6ķ6ć~2vćĒwµć½ōćX4ä”Gsä録ä1Ņńäz1åĀ\på ¢ÆåSēīåœ,.ęåqmę-·¬ęvüėę¾A+ē‡jēOĢ©ē˜éēąV(č)œgčqį¦čŗ&ęčl%éK±dé”ö£éÜ;ćé$"źmĘaźµ ”źžPąźG–ėŪ^ėŲ žė!fŻėi«ģ±š[ģś5›ģB{Śģ‹ĄķÓYķK˜ķe×ķ­ÕīöVī>`•ŌīĻźļ0Sļ`u’喙Ńļń’š:EPš‚ŠšĖĻĪšń\ZMń„ŸŒńķäĖń5* ņ~oJņĘ“‰ņśČņX?ó „GóéɆó1ĘózTōĀ™Dō ߃ōS$Ćōœiõä®Aõ-ō€õv9Ąõ¾~’õÄ>öO ~ö˜N½öą“üö(Ł;÷q{÷ŗcŗ÷©ł÷Kī8ų“3xųÜx·ų%¾öųm6łµHułž“łFÓół3ś×]rś £±śičšś±-0ūśroūBø®ū‹żķūÓB-üˆlüdĶ«ü­ėüõW*ż>iż‡āØżĻ'čżm'ž`²fž©÷„žń<åž9‚$’‚Ēc’Ė £’Rā’\—!¤Ü`ķ! 5gß~¬Ęń]7W|Ü Įč[1Lšz‘ŁĀÖ XSa—œ¦Öäė,1Uuv”¾»ÓOFR˜‹‘ąŠŠ)q[O¹ ŽęĶJ+ “pLܵ‹$ūŹm@ µ…IžŹˆFȏU ךF ą… h%Å ±j łÆC Bõ‚ ‹:Ā Ó Å@ d € ­Oæ õ”ž =Ś= †} Ļd¼ Ŗū `ļ: ©4z ńy¹ 9æų ‚8ŹIw¶[Ōõ¤5ķ^t5¤³~éņĘ.2tqW¹° žļčC/1‰nyĪ­Āķ Y,SžkœćŖä(ź-n)u³h½ų§>ēOƒ&—Čeą „(Säq˜#ŗŻb#¢Jhį“­ Ūņ_$8Ÿl}ŽµĀž]FMœ’Ū×× Zhb™°§ŲłģB2WŠw–Ó¼ÕdGT­Œ“õŃŅ=†\QĪ”ēĻ`,ØqNń¶9üĢ‚A ʆK̊[ʤV ģ›H5į‡}&ĒĘk±EWö„ ;Äč€ 1ĘB y ‚ ĮPĮ –!SŪ?!› !äe¾!-«ż!uš<"½5|"{»"NĄś"—:#ßJy#(ø#qÕ÷#¹7$`v$J„µ$“źō$Ū/4%$us%lŗ²%µ’ń%żD1&FŠp&ŽĻÆ&×ļ& Z.'hŸm'±ä¬'ł)ģ'Ao+(Š“j(Ņł©(?é(d„()¬Ég)õ§)>Tę)†™%*ĪŽd*$¤*_ić*Ø®"+šóa+99”+‚~ą+ŹĆ, _,[Nž,¤“Ż,ģŲ-5\-}c›-ĘØŚ-ī.W3Y.Ÿx˜.č½×.1/yHV/Į•/ ÓŌ/R0›]S0㢒0,čŃ0u-1½rP1ø1NżĪ1—B2߇M2(͌2pĢ2¹W 3J3Jā‰3“'É3Ūl4$²G4l÷†4µ<Ę4ż5EĒD5Ž „5×QĆ5—6hÜA6°!6łfĄ6B¬’6Šń>7Ņ6~7|½7cĮü7¬<8ōK{8=‘ŗ8†Öł8Ī99ax9_¦·9Øėö9š06:9vu:»“:Źō:F3;[‹r;¤Š±;ģń;5[0<} o<Åå®<+īĀŹi> ©>RUč>›š'?ćßf?,%¦?tjå?½Æ$@õc@N:£@—ā@ßÄ!A( aApO A¹”ßAŚBJ^B’dBŪ©ÜB#ļCl4[CµyšCż¾ŁCFDŽIXD֎—DŌÖDgE°^UEł£”EAéÓEŠ.FŅsRF¹‘FcžŠF¬CGōˆOG=ĪŽG…ĪGķ¾ø6Wø~I–øĒŽÕøŌ¹XT¹ ^“¹é£Ņ¹1éŗz.QŗĀsŗ ¹ĻŗSž»œCN»åˆ»-ĪĢ»v ¼¾XK¼žŠ¼Oćɼ—( ½ąmH½)³‡½qųƽŗ=¾ƒE¾KȄ¾“ ľÜRæ$˜Bæm݁æµ"ĮæžgĄG­?Ąņ~ĄŲ7¾Ą }żĄiĀ<Į±|ĮśL»ĮB’śĮ‹×9ĀÓyĀbøĀd§÷Ā­ģ6Ćö1vĆ>wµĆ‡¼ōĆĻ4ÄGsÄ`Œ²ÄØŃńÄń1Å:\pł”ÆÅĖęīÅ,.Ę\qmʤ¶¬ĘķūėĘ5A+Ē~†jĒĘĖ©ĒéĒXV(Č ›gČ鹦Č1&ęČzk%ɰdÉ ö£ÉS;ćɜ€"ŹäÅaŹ- ”ŹuPąŹ¾•ĖŪ^ĖO žĖ—eŻĖąŖĢ(š[Ģq5›Ģ¹zŚĢĄĶKYĶ“J˜Ķ܏×Ķ$ÕĪmVε_•Īž¤ŌĪFźĻ/SĻ×t’Ļ ŗŃĻi’бDPŠś‰ŠBĻĪŠ‹ŃÓYMŃŸŒŃdäĖŃ­) ŅõnJŅ>“‰Ņ†łČŅĻ>Ó„GÓ`ɆӨĘÓńSŌ9™DŌ‚ŽƒŌĖ#ĆŌiÕ\®AÕ¤ó€Õķ8ĄÕ5~’Õ~Ć>ÖĘ~ÖN½ÖW“üÖ Ų;×č{×1cŗ×zØł×Āķ8Ų 3xŲSx·Ų›½öŲä6Ł,HuŁu“پŅóŁ3ŚO]rژ¢±ŚąēšŚ(-0ŪqroŪ¹·®ŪżķŪJB-ܓ‡lÜÜĢ«Ü$ėÜmW*ݵœiŻžįØŻF'诎l'Ž×±fŽ ÷„Žh<厱$ßłĘcßB £ß‹QāßӖ!ąÜ`ąd! ą¬fßąõ«į=ń]į†6įĻ{ÜįĮā`[āØKšāńŁā9Öć‚XćŹ`—ć¦Öć[ėä¤0Uäķu”ä5»Óä~åĘERå‹‘åWŠŠåŸęčZOę1 ŽęyåĶęĀ* ē pLēSµ‹ēœśŹēä? č,…Ičuʈč½ČčUéNšFé—ß…éą$Åé(jźqÆCź¹ō‚ź:ĀźJė’Ä@ėŪ €ė$Oæėl”žėµŁ=ģž}ģFd¼ģ©ūģ×ī:ķ4zķhy¹ķ°¾ųķł8īBIwīŠŽ¶īÓÓõī5ļd^tﬣ³ļõčņļ=.2š†sqšĪø°šžļš_C/ń؈nńńĶ­ń9ķń‚X,ņŹkņćŖņ[(źņ£m)óģ²hó5ų§ó}=ēóʂ&ōČeōW „ōŸRäōč—#õ0Żbõy"¢õĮgįõ ­ öSņ_ö›7Ÿöä|Žö,Ā÷u]÷½Lœ÷’Ū÷N×ų—Zųßa™ų(§Ųųpģł¹1Włw–łJ¼Õł“śŪFTś#Œ“ślŃŅś“ūż[QūF”ūŽęĻū×+ü qNüh¶ü°ūĢüł@ żA†KżŠĖŠżŅŹżV žd›Hž¬ą‡žõ%Ēž=k’†°E’Īõ„’;Ä’_€ØÅBš ‚9PĮ‚•ŹŚ? [e¾£Ŗżģļ<45|}z»Ęæś:WJyŸøčŌ÷07y_vĮ¤µ źōR/4›tsć¹²,’ńuD1½‰pĻÆNļ—Y.ߞm'ä¬p)ģ¹n+“jJł©“>éۃ( $Ég l§ “Sę ż˜% EŽd Ž#¤ ×hć ®" hóa °8” ł}ą AĆ Š_ ŅMž “Ż cŲ ¬\ ōb› =ØŚ †ķĪ2Yx˜_½×§šGV8•ŅŌŹ]S[¢’¤ēŃģ,4rP}·ÅüĪBV‡MŸĢŒčĢ0W yœJĮበ'ÉRl›±Gćö†,<Ęt½ĘD „NQĆ—–ßŪA(!pfĄø«’ń>I6~’{½ŪĄü#<lK{“ŗżÕłE9Ž`xÖ„·ėög06°uułŗ“AōŠE3Ҋrбcń«Z0ōŸo=å®…*īĪo-µl_ś«Ø?ėš„*8Źi©ÉTčš'Zßf£$¦ģiå4Æ$ }ōc Å9£ ā VÄ!!Ÿ a!ēN !0”ß!xŁ"Į^" d"R©Ü"›ī#ć3[#+yš#t¾Ł#¼$IX$NŽ—$–ÓÖ$ß%'^U%p£”%øčÓ%.&IsR&’ø‘&ŚżŠ&#C'kˆO'“ĶŽ'żĪ'EX (ŽL(Öā‹((Ė(gm )°²I)ų÷ˆ)A=Č)‰‚*ŅĒF* †*cRÅ*¬—+ōÜC+<"ƒ+…gĀ+ͬ,ņ@,_7€,§|æ,šĮž,8>-L}-ɑ¼-×ū-Z;.£az.릹.4ģų.}18/Åvw/¼¶/Vö/ŸF50ē‹t0/ѳ0xó0Į[21 ”q1Rę°1š+š1ćp/2,¶n2tū­2¼@ķ2†,3MĖk3–«3ŽUź3'›)4pąh4ø%Ø4kē4I°&5’õe5Ś:„5#€ä5kÅ#6“ c6üO¢6E•į6ŽŚ 7Ö`7eŸ7gŖŽ7°ļ8ų4]8@zœ8‰æŪ8Ņ9JZ9c™9«ŌŲ9ō:<_W:…¤–:ĶéÕ:/;^tT;§¹“;ļžŅ;8D<‰Q<Éΐ<ŠÅ³K> łŠ>V>Ź>Ÿƒ ?ēČH?0ˆ?xSĒ?Ą˜@ ŽE@Q#…@šhÄ@ć­A+óBAt8‚A¼}ĮAĆBM@B–MBŽ’¾B'ŲżBo=Cøb|CØ»CIķśC’2:DŚwyD#½øDkųD“G7EüŒvEDҵEõEÖ\4F¢sFgē²F°,ņFųq1G@·pG‰üÆGŃAļG9ķ8ø2xøŹw·ø½öø[6¹¤Gu¹ģŒ“¹5Ņó¹}3ŗĘ\rŗ¢±ŗWēšŗŸ,0»čqo»0·®»yüķ»ĀA-¼ ‡l¼SĢ«¼›ė¼äV*½,œi½tᨽ½&č½l'¾N±f¾—ö„¾ą;å¾($æqĘcæ¹ £æQāæJ–!Ą’Ū`ĄŪ  Ą$fߥl«Įµš]Įž5ĮF{ÜĮŽĄĀ×[ĀKšĀhŁĀ°ÕĆłXĆB`—ĆŠ„ÖĆÓźÄ0UÄdu”ĬŗÓÄõ’Å=ERņŠ‘ÅĪĻŠÅĘ_ZOĘØŸŽĘńäĶĘ9* ǁoLĒŹ“‹ĒśŹĒ[? Č£„IČģɈČ5ČČ}TÉʙFÉ߅ÉW$ÅɟiŹč®CŹ0ō‚Źy9ĀŹĮ~Ė Ä@ĖS €Ė›NæĖ䓾Ė,Ł=Ģu}̽c¼Ģ©ūĢNī:Ķ—3zĶßx¹Ķ(¾ųĶp8ιHwĪ޶ĪJÓõĪ’5ĻŪ]tĻ#£³ĻlčņĻ“-2ŠżrqŠFø°ŠŽżļŠ×B/ŃˆnŃhͭѰķŃłW,ŅAkҊāŖŅŅ'źŅm)Ód²hÓ¬÷§Óõ<ēÓ=‚&Ō…ĒeŌĪ „ŌRäŌ_—#ÕØÜbÕš!¢Õ9gįՁ¬ ÖŹń_Ö7ŸÖ[|ŽÖ£Į×ģ]×4Lœ×}‘Ū×ÅÖŲZŲWa™ŲŸ¦ŲŲčėŁ01WŁyv–ŁĮ»ÕŁ ŚRFTŚ›‹“ŚćŠŅŚ,Ūu[QŪ½ ŪęĻŪN+ܖpNÜßµÜ'ūĢÜp@ ݹ…KŻˊŻJŹŻ’U ŽŪšHŽ#ą‡Žl%ĒŽ“jßżÆEßEõ„ߎ:ÄßÖąÅBąh ‚ą°OĮął”įAŚ?į‰įŅd¾įŖżįcļ<ā¬4|āōy»ā=æśā†:ćĪIyćøć_Ō÷ć§7äš^vä8¤µäéōäŹ.4åtså[¹²å£žńåģC1ę4‰pę}ĪÆęÅļęY.ēVžmēŸć¬ēē(ģē0n+čy³jčĮų©č >éčRƒ(éšČgéć §é+Sęét˜%ź½Żdź#¤źNh漖­"ėßņaė'8”ėp}ąėøĀģ_ģIMžģ’’ŻģŪ×ķ#\ķlb›ķ“§ŚķżģīE2Yīw˜īÖ¼×īļgGVﰌ•ļłŃŌļAšŠ\SšŅ”’šēŃšc,ń«qPńō¶ń=üĪń…AņΆMņ̌ņ_Ģņ§V óš›Jó8į‰ó&ÉóÉkō±GōZö†ō£;Ęōģ€õ4ĘDõ} „õÅPĆõ –öVŪAöž öēeĄö0«’öxš>÷Į5~÷ {½÷RĄü÷š<ųćJ{ų+ŗųtÕłų¼9ł`xłN„·ł–źöłß/6ś'uuśpŗ“śø’óśE3ūIŠrū’ϱūŚńū#Z0ükŸoü“ä®üż)īüEo-żŽ“lżÖł«ż?ėżg„*žÆÉižų©žAT辉™'’ŅŽf’$¦’ciå’«®$ōóc<9£…~āĶĆ! a_N §“ßšŲ8^cÉØÜīZ3[£xšė½Ł4|HXō—ÓÖVž]U碔/čÓx-ĄrR ø‘RżŠšBć‡O+ĶŽtμW LMā‹–'ĖŽl '²I p÷ˆ ø<Č ‚ IĒF ’ † ŚQÅ "— kÜC “!ƒ üfĀ E¬ ń@ Ö6€ |æ gĮž Æ> ųK} @‘¼ ‰Öū Ń;azc¦¹«ėųō08Ģ3*„ 4sÉJ4»Š4TÉ4M™5•ŽG5Ž#‡5'iĘ5o®6·óD69„6H~Ć6‘Ć7ŁB7"N7k“Ą7³Ų’7ü?8Dc~8Ø½8Õķü83<9fx{9ƽŗ9÷ś9@H9:ˆx:ŃŅ·:÷:b]6;Ŗ¢u;óē“;;-ō;„r3<Ģ·r<ż±<^Bń<¦‡0=ļĢo=7Æ=€Wī=Ȝ->āl>Y'¬>¢lė>ź±*?3÷i?|<©?āč? Ē'@U g@žQ¦@ę–å@.Ü$Aw!dAĄf£A¬āAQń!Bš6aBā{ B+ĮßBsC»K^C‘CLÖÜC•DŽ`[D&¦šDoėŁD·0EvXEH»—E‘×EŁEF"‹UFjŠ”F³ŌFūZGD RGå‘GÕ*ŃG=Öø…ZøĪ`™ø¦Ųø_ė¹§0W¹šu–¹8»Õ¹ŗŹETŗ‹“ŗ[ŠŅŗ£»ģZQ»4 »|åĻ»Å*¼pN¼Vµ¼ŸśĢ¼ē? ½0…K½xʊ½Įʽ U ¾RšH¾šß‡¾ć$Ǿ+jætÆEæ½ō„æ:ÄæNĄ–ÄBĄß ‚Ą'OĮĄo”ĮøŁ?ĮĮId¾Į’©żĮŪī<Ā#4|Āly»Ā“¾śĀü:ĆEIyƍŽøĆÖÓ÷Ć7Äg^vİ£µÄųčōÄA.4ʼnssÅŅø²ÅžńÅcC1Ę«ˆpĘōĶÆĘ<ļʅX.ĒĪmĒć¬Ē_(ģǧm+Čļ²jČ8ų©Č€=éČɂ(ÉČgÉZ §É£RęÉģ—%Ź4ŻdŹ|"¤ŹÅgćŹ ­"ĖVņaĖž7”Ėē|ąĖ0ĀĢx_ĢĮLžĢ ’ŻĢR×͚\Ķća›Ķ+§ŚĶtģμ1YĪw˜ĪM¼×Ī–ĻßFVĻ'Œ•ĻpŃŌĻøŠ\SŠI”’Š‘ęŃŠŚ+Ń#qPŃk¶Ń“ūĪŃü@ŅE†MŅĖŒŅÖĢŅV Óg›JÓÆą‰Óų%ÉÓAkŌ‰°GŌŅõ†Ō;ĘŌc€Õ«ÅDÕó „Õ×85~׀z½×Éæü×<ŲZJ{Ų¢ŗŲėŌłŲ49Ł|_xŁÅ¤·Ł źöŁV/6ŚžtuŚē¹“Ś/’óŚxD3ŪĄ‰rŪ Ļ±ŪRńۚY0ÜćžoÜ+ä®Üt)īܼn-Ż“lŻMł«Ż–>ėŻŽƒ*Ž'ÉiŽp©ŽøS讙'ßIŽfߑ#¦ßŚhåß"®$ąkócą“8£ąü}āąEĆ!įaįÖM į“ßįgŲāÆ^āųbā@ØÜā‰ķćŃ2[ćxšćc½Łć«äōGXä<—ä„ŅÖäĶå]Uå^¢”å§ēÓåļ,ę8rRꁷ‘ęÉüŠęBēZ‡Oē¢ĢŽēėĪē3W č|œLčÅį‹č 'ĖčVl 鞱Iéēöˆé/<ČéxźĄĘFź †źQQÅźš–ėāŪCė+!ƒėtfĀ뼫ģń@ģM6€ģ•{æģŽĄžģ&>ķoK}ķø¼ķÖūķI;ī‘`zīŚ„¹ī"ėųīk08ļ³uwļüŗ¶ļDöļE5šÖŠtšгšgóšÆZ2ńųŸqń@å°ńˆ*šńŃo/ņµnņbś­ņ«?ķņó„,ó<Źkó…«óĶTźóš)ō^ßhō¦$Øōļiēō7Æ&õ€ōeõÉ9„õäõZÄ#ö¢ cöėN¢ö3”įö{Ł ÷Ä`÷ dŸ÷U©Ž÷žīųē3]ų/yœųx¾ŪųĄłIZłQŽ™ł™ÓŲłāś+^Wśs£–ś¼čÕś.ūMsTū•ø“ūŽżŅū&CüoˆQü·ĶüŠüHXż‘NżŚāż"(Ķżkm ž³²Kžü÷ŠžD=ŹžŒ‚ ’ÕĒH’ ˆ’fRĒ’Æ—ųÜE@"…ˆgÄѬņBb7‚Ŗ|ĮóĮ<@„LĶ‘¾׿^=¦a|僚7ģś€1:Čvy¼øZų¢F7ė‹v3ѵ|õÄ[4 ”sUę²ž+ņęp1/¶pwūÆĄ@ļ †.QĖm™­āUģ*›+ sąj »%Ŗ ké M°( •õg Ž:§ &€ę oÅ% · e P¤ H•ć ‘Ś" Łb "e” kŖą ³ļ ü4_ Dzž ŒæŻ ÕJ\f›ÆŌŚ÷@_Yˆ¤˜Ńé×/btVŖ¹•óžŌ;D„‰SĢĪ’Ņ^Y¦žPļć7)Ļ€nȳMłŒY>Ģ¢ƒ źČJ3Š|SÉĘ ŽGU#‡hĘę­.óDw8„Ą}ĆĆQB™Mā’Ą*Ų’s?»b~ؽLķü•2<Żw{&½ŗoś·G9xHŅ·÷Ł\6!¢uj瓳,ōūq3D·rü±ÕAń‡0fĢo®Æ÷Vī?œ-ˆįlŃ&¬lėb±*Ŗöió;©;č„Ę' Ģ g Q¦ ]–å ¦Ū$!ī d!7f£!€«ā!Čš!"6a"Y{ "”Ąß"ź#2K^#{#ÄÕÜ# $U`[$„š$꟣$.0%wuX%æŗ—%×%PE&™ŠU&āĻ”&*Ō&sZ'»ŸR'å‘'L*Ń'”o(Ż“O(&śŽ(n?Ī(·„ )’ÉL)HŒ)‘TĖ)Ł™ *!ßI*j$‰*²iČ*ū®+CōF+Œ9†+Õ~Å+Ä,f D,®Nƒ,÷“Ā,?Ł-ˆA-Šc€-©æ-aīž-Ŗ3>.óx}.;¾¼.„ü.ĢH;/Žz/]Ó¹/„ł/ī]807£w0č¶0Č-ö0s51Yøt1”ż³1źBó12ˆ22{Ķq2Ʊ2 Xš2U/3ān3ę'®3.mķ3w²,4æ÷k4=«4P‚ź4™Ē)5į i5*RØ5r—ē5»Ü&6"f6Lg„6•¬ä6Żń#7%7c7n|¢7¶Įį7’!8HL`8‘Ÿ8ŁÖŽ8"9ja]9²¦œ9ūėŪ9C1:ŒvZ:Ō»™:Ł:fF;®‹W;÷Š–;?Ö;ˆ[<Š T<ę“ĖN>]Ž>„UĶ>īš ?6ąK?%‹?ĒjŹ?° @YõH@”:ˆ@źĒ@2ÅA{ FAĆO…A •ÄATŚBCBåd‚B.ŖĮBwļCæ4@CzCPæ¾C™žCįI=D)|DrŌ»D»ūD_:EL¤yE”éøEŻ.ųE%t7Fn¹vF¶žµF’CõFG‰4GĪsGŲ³G!YņG‰<øŃI{øŗøcŌłø«9¹ó^x¹<¤·¹„éö¹Ķ.6ŗtuŗ^¹“ŗ§žóŗļC3»8‰r»€Ī±»Éń»Y0¼Zžo¼¢ć®¼ė(ī¼3n-½|³l½Äų«½ >ė½Vƒ*¾žČi¾ę ©¾/Sč¾w˜'æĄŻfæ#¦æQh忚­$ĄāņcĄ+8£Ąs}āĄ¼Ā!ĮaĮMM Į•’ßĮŽ×Ā&^ĀobĀø§ÜĀķĆI2[ƑwšĆڼŁĆ"ÄjGXijŒ—ÄüŃÖÄDō\UÅÕ””ÅēÓÅg,ĘÆqRĘ÷¶‘Ę@üŠĘˆAĒцOĒĢŽĒbĪĒ«V Čó›LČ<į‹Č„&ĖČĶk ɱIÉ^öˆÉ¦;ČÉļ€Ź7ĘFŹ€ †ŹÉPÅŹ–ĖZŪCĖ¢ ƒĖźeĀĖ3«Ģ{š@ĢÄ5€Ģ {æĢUĄžĢž>ĶēJ}Ķ/¼ĶwÕūĶĄ;Ī`zĪQ„¹Ī™źųĪā/8Ļ+uwĻsŗ¶Ļ¼’õĻE5ŠMŠtŠ•Ļ³ŠŽóŠ&Z2ŃoŸqŃ·ä°Ń*šŃHo/Ņ‘“nŅŚł­Ņ"?ķŅj„,Ó³ÉkÓū«ÓDTźÓŒ™)ŌÕŽhŌ$ØŌfiēŌÆ®&Õ÷óeÕ@9„Ո~äÕŃĆ#Ö cÖbN¢ÖŖ“įÖóŲ ×<`ׄcŸ×ĶØŽ×īŲ^3]Ų¦xœŲī½ŪŲ7Ł€HZŁČ™ŁÓŲŁYŚ¢]WŚė¢–Ś3čÕŚ{-ŪÄrTŪ ø“ŪUżŅŪBÜę‡QÜ/͐ÜwŠÜĄWŻNŻQāŻ™'ĶŻāl Ž*²KŽs÷ŠŽ»<ŹŽ‚ ßMĒHߕ ˆßŽQĒß&—ąnÜEą·!…ą’fÄąH¬į‘ńBįŁ6‚į"|ĮįjĮā³@āūKāD‘¾āŒÖżāÕ=ća|ćf¦»ć®ėść÷0:ä@vy䈻øäŃųäF7åb‹våŖŠµåņõå;[4ꄠsęĢå²ę+ņę^p1禵pēļśÆē7@ļē….čČŹmč­čYUģ袚+éźßjé3%Ŗé{jééÄÆ(ź õgźU:§źęźęÄ%ė. eėwO¤ėæ”ćėŚ"ģQbģ™d”ģā©ąģ*ļķr4_ķ»yžķæŻķLī•I\īŻŽ›ī&ŌŚīoļ·^Yļ’£˜ļHé×ļ.šŁsVš!¹•šjžŌš³CńūˆSńDĪ’ńŒŅńÕXņžPņfćņ®(Ļņ÷mó?³MóˆųŒóŃ=Ģóƒ ōbČJōŖ ŠōóRÉō;˜õƒŻGõĢ"‡õhĘõ]­ö¦ņDöī7„ö7}ĆöĀ÷ČB÷M÷Y’Ą÷”×’÷ź?ų2b~ų{§½ųÄģüų 2<łUw{ł¼ŗłęśł.G9śvŒxśæŃ·ś÷śP\6ū™”uūāę“ū*,ōūsq3ü»¶rüü±üLAńü”†0żŻĖoż&ÆżnVīż·›-ž’ąlžH&¬žkėžŁ°*’!öi’j;©’²€č’ūÅ'C gŒP¦Õ•åŪ$f d®e£÷Ŗā?š!‡5aŠz ĄßaŖJ^ó;Õ܃Ģ_[„š]źŁ„/ītX7ŗ—’ÖČDŠUYĻ””ŌźY2ŸR{ä‘Ć)Ń oT“OłŽę>Ī.„ wÉL æŒ TĖ P™ ˜ŽI į#‰ *iČ r® »óF 9† L~Å ”Ć ŻD %Nƒ n“Ā ¶Ų ’A Hc€ Øæ Łķž !3>jx}²½¼śüCH;ŒzŌҹłe]8®¢w÷ē¶?-ö‡r5Š·tż³aBó©‡2ņĢq;±ƒWš̜/ān]'®„lķī±,6÷k<«ǁźĒ)Y i”QØź–ē2Ü&{!fĆf„ ¬äTń#6cå{¢.Įįv!æK`‘ŸPÖŽ˜į`])¦œrėŪ»0vZL»™”ŁŻE%‹WnŠ–¶Ö’ZG Tå“Ų*Ó!pjµQ²śū?ŠC…‹ŹNŌŽUĶeš ®ßKö$‹?jŹˆÆ ŠōH :ˆ aĒ ©Ä!ņ F!:O…!ƒ”Ä!ĢŁ"C"]d‚"„©Į"īī#64@#y#Ǿ¾#ž#XI=$”Ž|$éÓ»$2ū${^:%Ć£y% éø%T.ų%œs7&åøv&-žµ&vCõ&æˆ4'Īs'P³'˜Xņ'į1()ćp(r(°(ŗmļ(³.)Kųm)”=­)Ż‚ģ)%Č+*n k*¶RŖ*’—é*GŻ(+"h+Ųg§+!­ę+iņ%,²7e,ś|¤,CĀć,Œ#-ŌLb-’”-e׹-­ .öa_.>§ž.‡ģŻ.Š1/w\/a¼›/©Ū/ņF0:ŒY0ƒŃ˜0ĖŲ0\1\”V1„ę•1ī+Õ16q2¶S2Ēū’2AŅ2X†3 ĖP3é32VĻ3z›4ĆąM4 &4TkĢ4œ° 5åõJ5-;Š5v€É5¾Å6 H6OP‡6˜•Ę6įŚ7) E7re„7ŗŖĆ7š8K5B8“z8ÜæĄ8%9mJ?9¶~9’Ō½9Gż9_<:Ų¤{: źŗ:i/ś:±t9;ś¹x;C’·;‹D÷;Ō‰6<Ļuär=‡)²=Ļnń=“0>`ło>©>Æ>ņƒī>:É-?ƒm?ĖS¬?™ė?\Ž*@¤#j@ķh©@6®č@~ó'AĒ8gA~¦AXĆåA %BéMdB1“£BzŲāBĀ"C caCTØ CœķßCå2D-x^Dv½D¾ŻDHEO[E˜ŅšEąŚE)]Fr¢XFŗē—F-×FKrG“·UGÜü”G$BŌGŒķøÕ2]øxœøf½Ūø®¹÷GZ¹@™¹ˆŅعѺ]Wŗa¢–ŗŖēÕŗņ,»;rT»„·“»ĢüŅ»B¼]‡Q¼¦Ģ¼īм7W½œN½Čį½'ͽYl ¾¢±K¾źöо3<ʾ{ æÄĘHæ ˆæTQĒæ–ĄęŪEĄ.!…ĄwfÄĄæ«ĮńBĮQ6‚Į™{ĮĮįĄĀ*@ĀrKĀ»¾ĀÖżĀL=ƕ`|ĆŻ„»Ć&ėśĆn0:Ä·uyÄ’ŗøÄHųĐE7ÅŁŠvÅ!еÅjõųZ4ĘūŸsĘDå²ĘŒ*ņĘÕo1ǵpĒeśÆĒ®?ļĒ÷„.Č?ŹmȈ­ČŠTģČš+ÉaßjÉŖ$ŖÉņiéÉ;Æ(ʃōgŹĢ9§ŹęŹ]Ä%˦ eĖīN¤Ė7”ćĖŁ"ĢČbĢd”ĢX©ąĢ”īĶź3_Ķ2yžĶ{¾ŻĶÄĪ I\ĪUŽ›ĪÓŚĪåĻ.^YĻv£˜Ļæč×Ļ.ŠPsVŠ™ø•ŠįżŌŠ*CŃrˆSѻ͒ŃŅŃLXŅ”PŅŻāŅ%(ĻŅnmÓ·²MÓ’÷ŒÓH=ĢӐ‚ ŌŲĒJŌ! ŠŌiRÉŌ²—ÕūÜGÕC"‡ÕŒgĘÕÕ¬ÖņDÖe7„Ö®|ĆÖöĮ×?BׇL×Š‘Ą××’×a?ŲŖa~Ųņ¦½Ų;ģü؃1<ŁĢv{ټŗŁ]śŁ„F9Śī‹xŚ6Ń·Ś÷ŚČ[6Ū”uŪYę“Ū”+ōŪép3Ü2¶rÜzū±ÜĆ@ńÜ †0ŻTĖoŻÆŻęUīŻ.›-ŽvąlŽæ%¬ŽkėŽP°*ߘõißį:©ß*€čßrÅ'ą» gąP¦ąL•åą”Ś$įÜdį%e£įnŖāį¶ļ!ā’4aāHz āæßāŁć!J^ćić²ŌÜćśäC_[䌤šäŌéŁä/åetX容—åöžÖå?DꇉUęŠĪ”ęŌęaYē©žRēņć‘ē;)Ńēƒnč̳O賎č]>Ī脃 éķČLé6ŒéSĖéǘ źŽIźY#‰ź”hČźé­ė2óFėz8†ėĆ}Åė ĆģTDģMƒģå’Āģ.ŲķvAķæb€ķØæķPķžķ˜2>īįw}ī)½¼īrüīŗG;ļzļLҹļ”łļŻ\8š%¢wšmē¶š¶,öšžq5ńG·tńü³ńŲAóń!‡2ņjĢqņ²±ņśVšņCœ/ó‹įnóŌ&®ólķóe±,ō®ökōö;«ō?źō‡Ę)õŠ iõQØõa–ēõ©Ū&öņ fö:f„öƒ«äöĖš#÷6c÷]{¢÷„Ąį÷ķ!ų6K`ų~ŸųĒÕŽųłX`]ł”„œłéźŪł20śzuZśĆŗ™ś ŁśTEūœŠWūåĻ–ū-ÖūvZüæŸTüå“üP*Óü˜ożį“Qżnõ“ż¬—Õż¼œž½WžÉӖžžÖžu£’D§R’’@ģĢ’“/ ‹ßD5ż ‰ŗÖ…ōįņ-ČŃf‘#ŸBéÖÜ#`ŌDĻūz%›°`³åzEjRN+ہ°ą“ķcē×e]ēJoé{ül¬ļrÜ3ü “ ;Vœiµ—›TÅ|ņ',ŚeK*wzy¢UĶ̽÷[“!¢9KzNt·óœ,*Å­ņģ N=;—ĄabهAˆ­üĶŅ^«÷/! 30@ 2Łc ļ‡ ,ü© ŖwĢ *ī kF )›1 "R #s ®W“ ³-³ ×„Ņ ŃĄń V ā. ĪéL %—j Šź‡ |å¤ Ų‡Į ’ŅŻ UĘł Ėc ž«0 vžK ū‰ż}Öż’žžÖž²ųżܽż•hżłü·oü¢Ģūūi:śÅKłmDų $÷ģõžœōć4ó„µń"š”qī7­ģDŅźöąč†Łę.¼ä%‰ā„@ąåāŻpŪ„čŲQLÖ¹›ÓōÖŠ5žĶ²Ė”Č5žÄ¢×Įž¾ÖQ»ó·ԁ“}ž°/i­Ā©r ¦d?¢"džÜwšĮz–m’ČNŽH Š­į…&“ß4}ĒxĒItO½oŹ!kcwfG¾ažö\– XXčļT šy.,šīĶMšĀ2ošS]šżM±šŅš ƒņš'ČńÉŌ2ńK©RńFrńT«‘ńŁ°ńŃĻń’īń# ņpr+ņZ’Iņ6}gņY3…ņµ¢ņÄĄņ“Żņ8śņ¤¶óI73óy…Oó„”k󻋇ómD£óė˾óƒ"ŚóƒHõó9>ōō+ōšEō«`ō?8zō A”ōT®ōkĒĒō™Eįō&–śō^¹õ‰Æ,õļxEõŚ^õ†võXĖŽõ|ä¦õ?Ҿõé”Öõæ,īõšöŻö’õ3ö7åJöńŖaöqGxöūŗŽöĻ„ö0(»ö_"Ńö ōęö0ŸüöS"÷F~'÷K³<÷”ĮQ÷†©f÷9k{÷ų÷}¤÷’Ķø÷čųĢ÷?’ą÷Ōąō÷āų¦6ų[«/ų;üBų‚)Vųi3ių+|ųŽŽų$”ųĢż³ų3ZĘų‘”Ųų­źų¤üų ył. łrĮ1ł!4CłG†TłøełĢÉvł•»‡ł©˜ł=@©łƒÓ¹łÆGŹłöœŚłŠÓźłžėśłcå ś ĮśĶ~*śŌ:śT”Iś}YśNhśywśŲ‡†śŠy•ś×N¤śģ³śł¤Įś-&Šśµ‹ŽśæÕģśzūś ū·ū’ī$ūÓ±2ū¤Z@ū3éMūŖ][ū6øhūłuū9 ƒū.ū’"ū ž©ū”Ą¶ū_jĆūūĻūStÜūĻŌčū/õūšMü8f ü2güÆP%üŲ"1üŅŻ<üʁHüŚTü4…_üūäjüV.vüiaü[~ŒüQ…—üpv¢üŻQ­ü½øü5ČĀühcĶü{é×ü‘Zāü϶ģüXžöüN1żÕO żZż Pż)2)żM3ż­ŗ<żkaFżŖōOż‰tYż*įbż®:lż5użį“~żŃՇż&䐿’ߙż}É¢ż¾ «żįe“ż½żNŗÅżÕIĪż¹ĒÖż4ßżēżĖŲļżWųżÖ8žgOž&Už2Jž¦. ž (ž<Ę/ž–y7žŹ?žõÆFž33Nžž¦UžS ]žn^dž£kž<Ųrž'žyžįž‡ˆž3žżž•žŚœžX¦£ždŖže±žO“·žńF¾žfĖÄžÅAĖž)ŖŃž§Ųž[QŽž[äžĮĮźž£åšžüöž<żž#’åļ’šŃ’X¦’7n’L) ’°×%’xy+’»1’Ž—6’ <’A„A’LčF’?@L’1ŒQ’5ĢV’c\’Ī(a’ŒEf’²Vk’T\p’‡Vu’`Ez’ó(’S„’—Īˆ’А’H’’tō–’–›’Ż, ’ ¹¤’¦:©’æ±­’i²’·€¶’½Ųŗ’Œ&æ’7jÒѣǒlÓĖ’łĻ’ėŌ’ō&Ų’F/Ü’ó-ą’ #ä’”č’Ęšė’ŠÉļ’™ó’9_÷’Eū’4Šž’{¶ %F Ķ$LĀ}/T”±š!¤D%<(ŠÓ+œ/‚A2Jl58Į©;Œ¼>vĒAŽŹDāÅG¹Jv„MŌ‰PØfSž;Vē YoŠ[¤^•GaNųcŽ”fRDiøßktnŒqˆsÅv؀xŹņz:^}Ć3!‚×x„łÉ†§‰īX‹Ł–tĪĢ’‘ī*”ćO–ŗn˜}‡š7šœõ¦žĆ­ «®¢ŗ©¤łž¦vŽØ:xŖR\¬Ē:®„°ųę±É“³#}µ@·ŸżøÕµŗĄh¼h¾Ł¾æbĮ=ĆD™Ä=-Ę1¼Ē*FÉ2ĖŹRKĢ•ĘĶ=Ļ©®ŠŅŗƒÓ9ēŌFÖR ×’õŲ$GŚČ“ŪöŪÜ·Ž_ßšąæŠį!ćB1ä*[åį€ęp¢ēąæč9Łé„īźČ’ė ķ]īæļ;šŁń”ņœ óŃüóGėōÖõ½ö‚ ÷M€ų\ł!5ś: ūŃŪūī©ü˜tżÖ;žÆ’ž+Ą’Q}'7µķ”Qóż„§1Nńņ‘4/jÉœ`Šō † U “Ÿ .( É­ Œ0 }° ¢- Ø  …”·;vćPMķ“ói|Tܹ9ž” ķ’B†–£ē\6µ‚¶Ģa¾YќŸŻ.ƒX¢’‘ŹUó3peŠ”ĀOķw—=²bĪ…ļ¦ĘSćŸž‚/#EčXÖjózA‰ʕ† …©ǰQ¶&ŗK¼ļ•»ĀøO“@®™¦^“’<†]xłhX²E×1‡Ä”ķłÓ÷ø‘œĢ~«_1?bAśŅÕ°‰Š`I7… †ąP³ē„LU…$“ņzæ>‹ąUeĻē!Æ^uŠ:§ž·ĮĄƒĮDĄæĆĄĘ>ÕśīµpL)–įö˜nO³¹„mx ’Ņԃ?4Ųć ”’ ›@ Źķ /š ĪE Øš Įš D “ģ •” ¼; .ā ė‡ ö, QŃWųž śž`§üžåÉžž“č’Ó’H’/’K? ’äK ’ėT ’dZ’U\’ÄZ’·U’3M’=A’Ü1’’ź’fļ ’‹Ņ"’^²$’ęŽ&’(h(’)>*’ķ,’zą-’׬/’v1’<3’óž4’ŗ¾6’i{8’5:’“ė;’Ÿ=’•O?’ż@’—§B’%OD’ĄóE’o•G’54I’ŠJ’iL’F’M’›’O’#Q’Õ°R’Ä;T’ļĆU’[IW’ ĢX’LZ’QÉ[’ģC]’ß»^’,1`’Ł£a’źc’bd’Gģe’œTg’eŗh’¦j’d~k’£Ül’f8n’³‘o’Œčp’öˆ’:ʉ’튒ŹŒ’d4’ćTŽ’Ms’£’驑’#Ā’’TŲ“’ģ”’Øž•’Ņ—’˜’5)™’v3š’Ä;›’#Bœ’—F’#Iž’ÉIŸ’H ’qE”’z@¢’Ŗ9£’1¤’‹&„’C¦’. §’Nü§’ØźØ’?ש’ĀŖ’*««’†’¬’*x­’\®’S>Æ’ß°’½ż°’ņڱ’¶²’h³’Æh“’U?µ’a¶’Ńē¶’¬¹·’ń‰ø’„X¹’Č%ŗ’ańŗ’n»»’ōƒ¼’öJ½’u¾’uŌ¾’÷–æ’žWĄ’Į’¦ÕĮ’L’Ā’MĆ’GÄ’¢æÄ’“vÅ’,Ę’@ąĘ’“Ē’cDČ’gōČ’£É’]PŹ’UüŹ’ų¦Ė’HPĢ’IųĢ’śžĶ’aDĪ’}čĪ’R‹Ļ’į,Š’.ĶŠ’:lŃ’ Ņ’—¦Ņ’ģAÓ’ ÜÓ’ļtŌ’” Õ’!£Õ’p8Ö’‘ĢÖ’†_×’Qń×’óŲ’oْǟْż,Ś’¹Ś’DŪ’āĶŪ’¢VÜ’IŽÜ’ŁdŻ’SźŻ’»nŽ’ņŽ’Ytß’’õß’Ąuą’äōą’’rį’šį’%lā’3ēā’?ać’MŚć’\Rä’pÉä’‰?å’Ŗ“å’Ō(ę’ œę’J璚ē’łļē’j_č’īĶč’†;é’5Øé’üź’Ü~ź’×čź’ļQė’%ŗė’z!ģ’ń‡ģ’‹ķģ’IRķ’,¶ķ’7ī’k{ī’ÉÜī’S=ļ’ ļ’ļūļ’Zš’L·š’Ęń’uoń’YŹń’t$ņ’Č}ņ’VÖņ’.ó’$…ó’hŪó’ė0ō’ƅō’µŁō’ž,õ’Œõ’`Ńõ’{"ö’ßrö’ŒĀö’…÷’Ź_÷’\­÷’>ś÷’pFų’ó‘ų’ČÜų’ņ&ł’ppł’E¹ł’pś’õHś’ӏś’ Öś’¢ū’”`ū’ę¤ū’–čū’§+ü’nü’šÆü’*ńü’É1ż’Ļqż’;±ż’šż’P.ž’łkž’©ž’åž’!’’Ż\’’«—’’źŃ’’š ¾DV}bµåģŽ#OZ:žÅ}śŲ.Æb–ŲČ+ū-U^-ˆægļ˵M&|Ŗ”׬A1a]‰H“ße K3Ą\Ē…`®‹ÖJžž%‡Ls™Ǿ äźb-tQ#ul˜S»ׯś’¼! C d Ā„ „ šÄ {ä Ŗ ~" ÷@ _ Ż| Kš a· Ō ˆš š W( ĄC Õ^ –y ” "® ķĒ hį “ś n ś+ 8D )\ Ģs #‹ .¢ ķø bĻ å nū  V& _; P ™d Ķx ¼Œ f  ʳ ėĘ ČŁ cģ »ž Ѧ":4ŽE¢Vwg xeˆ˜\Øü·`LJÖtå&ōŚßŖ,<:—GŗT¦a\nŚz#‡8“ŸĮŖ7¶{Į‹Ģg×ā‹ģŅöčĪ ƒ^'…0}9GBćJRS“[ØckLsŻzC‚}‰t—0žƤ,«m±†·w½@ĆāČ]αÓßŲ诏ā‡ēģ“šāō łżłŗYÕ /g~sHü #X%Œ'¢)˜+p-*/Å0D2¤3č4678Ö8Œ9&:„:;Q;;’;Œ;l;3;ą:t:ļ9Q9œ8Ī7é6ė5Ö4Ŗ3g2 1ž/.{,Č*)#'0%)# !Ü—=ŠO»X Š Ŗ·±šžpū5ųčōŠńīšź ēgćµßņŪ Ų=ŌJŠHĢ7ČÄ濨»Z·ž²“®Ŗ”„”]œ­—š’%ŽM‰h„vxznuVp3kfČ`€[-VĻPeKšEp@å:O5®/Kńļ’š’™4š’čUš’żvš’Ł—š’{øš’åŲš’łš’ń’Š8ń’ZXń’­wń’ɖń’Ƶń’^Ōń’Ųņń’ņ’+/ņ’Mņ’¬jņ’ˆņ’\„ņ’gĀņ’>ßņ’ćūņ’Vó’–4ó’„Pó’ló’-ˆó’Ø£ó’ņ¾ó’ Śó’öōó’°ō’:*ō’–Dō’Ā^ō’Ąxō’’ō’2¬ō’§Åō’īŽō’ųō’õõ’µ)õ’JBõ’²Zõ’ļrõ’‹õ’ę¢õ’¢ŗõ’3Ņõ’™éõ’Õö’čö’Ń.ö’Eö’'\ö’–rö’ۈö’ųžö’ķ“ö’»Źö’aąö’ąõö’8 ÷’i ÷’s5÷’XJ÷’_÷’Æs÷’"ˆ÷’pœ÷’™°÷’Ä÷’}Ų÷’8ģ÷’Ļ’÷’Bų’‘&ų’½9ų’ĒLų’­_ų’orų’…ų’Ž—ų’ė©ų’%¼ų’>Īų’5ąų’ ņų’Įł’Uł’Č&ł’8ł’OIł’bZł’Vkł’)|ł’ތł’sł’ź­ł’A¾ł’{Īł’•Žł’’īł’pžł’1ś’Õś’Z-ś’Ć<ś’Lś’=[ś’Pjś’Eyś’ˆś’ܖś’}„ś’“ś’mĀś’¼Šś’ļŽś’ķś’ūś’éū’±ū’`$ū’ō1ū’n?ū’ĪLū’Zū’Bgū’Vtū’Qū’2Žū’üšū’¬§ū’D“ū’ĆĄū’*Ķū’zŁū’±åū’Ńńū’Łżū’Ź ü’£ü’e!ü’-ü’¦8ü’$Dü’ŒOü’ŻZü’fü’=qü’L|ü’E‡ü’)’ü’÷œü’°§ü’T²ü’ć¼ü’]Ēü’ĀŃü’Üü’Nęü’ušü’‰śü’ˆż’sż’Jż’"ż’¾+ż’[5ż’ä>ż’[Hż’¾Qż’[ż’Ldż’wmż’vż’•ż’ˆˆż’j‘ż’9šż’ö¢ż’¢«ż’<“ż’ļż’;Åż’ Ķż’õÕż’8Žż’jęż’‹īż’›öż’›žż’Šž’iž’8ž’öž’„%ž’C-ž’Ń4ž’O<ž’¾Cž’Kž’nRž’ÆYž’ą`ž’hž’ož’vž’}ž’õƒž’̊ž’–‘ž’Q˜ž’żžž’œ„ž’,¬ž’®²ž’"¹ž’‰æž’įÅž’,Ģž’iŅž’™Ųž’¼Žž’Ńäž’Łźž’Ōšž’Įöž’£üž’w’’>’’ų ’’¦’’H’’Ż’’f$’’ā)’’S/’’·4’’:’’\?’’œD’’ŃI’’śN’’T’’*Y’’1^’’,c’’h’’m’’Ūq’’Ŗv’’n{’’'€’’Ō„’’x‰’’Ž’’Ÿ’’’#—’’œ›’’  ’’p¤’’ŹØ’’­’’a±’’µ’’й’’ł½’’Ā’’,Ę’’8Ź’’:Ī’’2Ņ’’!Ö’’Ś’’毒’¶į’’€å’’@é’’ųģ’’§š’’Mō’’ź÷’’~ū’’ ’’’Œx į Ašź2r© Ł#' *8-H0P3P6I9:<$?BįDµG€JEMP¹RhUX±ZL]ß_lbńdpgčiZlÅn)q‡sŽu/xzz¾|ü~4fƒ‘…·‡Ö‰ļ‹Ž’”– ˜ü™ē›Ģ­Ÿ‡”\£+„õ¦¹ØyŖ3¬č­—ÆB±ē²‡“#¶¹·K¹×ŗ^¼į½_æŲĄL¼Ć'ōĘļĒLÉ„ŹłĖIĶ•ĪÜĻŃ]Ņ—ÓĶŌžÕ,×UŲ{ٜڹŪŅÜēŻųŽąįāćäåę÷ęęēŅčŗéžź~ė\ģ6ķ īŽī®ļyšBńņÉņˆóCōüō±õbö÷½÷eų ł­łMśéś‚ūü¬ü=żĖżVžŽžc’å’fā]ÕJ¼,™lŅ5•ōO©’T¦öDŲ c ¦ ę $ ` ™ Ń  : k › Č ó  C i Œ ® Ī ģ  ! : P d x ˆ ˜ ¦ ± ¼ Ä Ė Š Ō Ö Ö Õ Ņ Ī Č Į ø ® ” ” … u c P < &  ö Ü Į ¤ † g G %  Ž ø ’ j A  ė æ ‘ c 3  Š  h 3 üōSŽ”d&ę¦e#ąœWĖ„<ó©^Ēz,ŻŽ>ķ›Iö’¢’N’łž£žMžõżžż”’’§’’µ’’Į ’’É ’’Ķ ’’Ķ’’Ė’’Ä’’ŗ’’­’’’’‰’’r’’W’’9!’’#’’ó$’’Ģ&’’”(’’r*’’A,’’ .’’Õ/’’š1’’\3’’5’’Ö6’’8’’E:’’ų;’’§=’’T?’’ž@’’¤B’’ID’’éE’’ˆG’’#I’’»J’’PL’’ćM’’sO’’Q’’‹R’’T’’—U’’W’’™X’’Z’’[’’]’’|^’’ī_’’^a’’Ėb’’6d’’že’’g’’eh’’Ęi’’$k’’l’’Łm’’/o’’ƒp’’Õq’’$s’’qt’’¼u’’w’’Jx’’y’’Ļz’’|’’J}’’…~’’½’’ó€’’'‚’’Yƒ’’ˆ„’’µ…’’ą†’’ ˆ’’0‰’’UŠ’’w‹’’˜Œ’’·’’ŅŽ’’ķ’’‘’’’’’0“’’B”’’R•’’`–’’m—’’w˜’’™’’†š’’Š›’’œ’’Ž’’ž’’ŠŸ’’… ’’~”’’v¢’’l£’’`¤’’R„’’B¦’’1§’’Ø’’©’’ņ©’’ŁŖ’’æ«’’¤¬’’†­’’g®’’FÆ’’$°’’’°’’ڱ’’²²’’‰³’’_“’’3µ’’¶’’Ö¶’’¤·’’rø’’>¹’’ŗ’’Ńŗ’’™»’’_¼’’#½’’ę½’’§¾’’gæ’’&Ą’’楒’ŸĮ’’YĀ’’Ć’’ÉĆ’’Ä’’4Å’’ēÅ’’™Ę’’IĒ’’ųĒ’’¦Č’’SÉ’’žÉ’’ØŹ’’PĖ’’÷Ė’’Ģ’’BĶ’’åĶ’’ˆĪ’’(Ļ’’ĒĻ’’fŠ’’Ń’’ŸŃ’’:Ņ’’ÓŅ’’kÓ’’Ō’’™Ō’’-Õ’’ĄÕ’’SÖ’’äÖ’’t×’’Ų’’‘Ų’’Ł’’©Ł’’4Ś’’¾Ś’’FŪ’’ĶŪ’’SÜ’’ŲÜ’’\Ż’’߯’’aŽ’’āŽ’’aß’’ąß’’^ą’’Ūą’’Vį’’Ńį’’Kā’’Ćā’’;ć’’²ć’’(ä’’ä’’å’’ƒå’’õå’’fę’’×ę’’Fē’’“ē’’"č’’Žč’’śč’’dé’’Īé’’7ź’’Ÿź’’ė’’mė’’Ņė’’6ģ’’›ģ’’żģ’’_ķ’’Įķ’’!ī’’ī’’ßī’’>ļ’’›ļ’’÷ļ’’Sš’’®š’’ń’’ań’’ŗń’’ņ’’hņ’’æņ’’ó’’ió’’½ó’’ō’’cō’’µō’’õ’’Võ’’¦õ’’õõ’’Dö’’‘ö’’Žö’’*÷’’v÷’’Į÷’’ ų’’Uų’’žų’’ęų’’.ł’’uł’’»ł’’ś’’Fś’’‹ś’’Īś’’ū’’Tū’’–ū’’×ū’’ü’’Xü’’˜ü’’×ü’’ż’’Tż’’‘ż’’Īż’’ ž’’Ež’’€ž’’ŗž’’ōž’’.’’’g’’’Ÿ’’’×’’’ D{°åN‚µčK|­Ż <j™Ēō!Ny„Šū%Ox”ŹņAhޓڒ$Hm“Öł=_ Ąą  > ] { fenrir/config/sound/default/ErrorSpeech.wav000066400000000000000000001357201513650123000213300ustar00rootroot00000000000000RIFFČ»WAVEfmt (ž’€»ī  €Ŗ8›qfactą.data€»3øXxDø ½ƒøéĆø2H¹zA¹ĆŅ€¹ Ą¹T]’¹¢>ŗåē}ŗ--½ŗvrüŗ¾·;»żz»OBŗ»˜‡ł»įĢ8¼)x¼rW·¼ŗœö¼ā5½K'u½”l“½Ü±ó½%÷2¾mք‡åĀĻ`$ƦcĆ`ė¢Ć©0āĆņu!Ä:»`ă ÄĖEßÄ‹Å\Š]ŤÅķZÜÅ6 Ę~åZĘĒ*šĘpŁĘXµĒ”śWĒé?—Ē1…ÖĒzŹČĀUČ U”ČTšÓȜßÉå$RÉ-j‘ÉvƊɾōŹ:OŹOŽŹ˜ÄĶŹą Ė)OLĖq”‹ĖŗŁŹĖ ĢKdIĢ”©ˆĢÜīĒĢ$4ĶmyF͵¾…ĶžÅĶGIĪŽCĪŲӂĪ!ĀĪi^ϱ£@ĻśčĻB.æĻ‹sžĻÓø=Šž|ŠeC¼Š­ˆūŠöĶ:Ń>zчX¹ŃĻųŃć7Ņ`(wŅ©m¶Ņń²õŅ:ų4ӂ=tÓĖ‚³ÓČņÓ\ 2Ō„RqŌķ—°Ō5ŻļŌ~"/ÕĘgnÕ­­ÕXņģÕ 7,Öé|kÖ1ĀŖÖzźÖĀL)× ’h×Sקלē×äa&Ų-§eŲvģ¤Ų¾1äŲw#ŁO¼b٘¢ŁąFįŁ(Œ ŚqŃ_ŚŗŸŚ\ŽŚK”Ū“ę\ŪÜ+œŪ%qŪŪm¶ܵūYÜž@™ÜF†Ų܏ĖŻ×WŻ V–Żi›ÕݱąŽś%TŽBk“Ž‹°ŅŽÓõß;Qßd€ß­ÅĻßõ ą>PNą‡•ąĻŚĢą į`eKᩪŠįńļÉį95 ā‚zHāĖæ‡āĒā\Jć„EćķŌ„ć5Äć~_äʤB䟁äW/Įä tåé¹?å1’~åzD¾å‰żå Ļ<ęS|ęœY»ę䞶ę-ä9ēu)yē¾nøē“÷ēOł6č˜>v蹃µč)Éōčq4é¹Ss陲éJŽńé“#1źÜhpź$®Æźmóīź¶8.ėž}mėFƬėģė×M+ģ “jģhŲ©ģ±éģśb(ķBØgķ‹ķ¦ķÓ2ęķx%īd½dī­¤īõGćī>"ļ†ŅaļĻ”ļ]ąļ`¢š©ē^šń,žš9rŻš‚·ńŹü[ńB›ń[‡Śń¤ĢņķYņ5W˜ņ~œ×ņĘįó'VóWl•ó ±Ōóčöō1ūh~ū±Z½ūłŸüūBå;üŠ*{üÓoŗüµłüdś8ż­?xżõ„·ż=Źöż†6žĪTužš“ž`ßóžØ$3’ńir’9Ʊ’‚ōš’Ź90o[Ä®¤ īģN-5”l}Ł«Ęėd*W©i īØč3č1y'y¾fĮ¦ IåSŽ$›Ócä£-^āu£!¾č`. Nsß—øßż](CqˆÜ¹Ķ[JXš“ŁŪā$(Xlm—µ²Öż÷ F=U Ž‚” ×ĒÓ  hRR ±—‘ łÜŠ A" ŠgO ҬŽ ņĶ d7 ¬|L õĮ‹ >Ė †L Ī‘I ׈ _Č Øaš¦F9ģ…‚1ÅŹv¼C[ƒ¤FĀģ‹5Ń@}€Ę[攞Wę= +}čp¼1¶ūyū:Į@z †¹RĖų›8äUw,›¶uąõ½%5ktN°³—õņß:2(€qpŰ¹ šP/J•n“Ś­Ūķ$e,lŖkµļŖż4źEz)ŽæhרJēh&±Ōeł„B_äФ#Ņéb/¢ctᬹ õž_=DŸ†‰ŽĪĪ]_Yœ؞Ūšć9)Zn™ʳŲł[>W¤ƒ–ģČÕ5}STؓŽŅV# ŸhQ 譐 0óĻ y8!Ā}N! ƍ!RĶ!›M "ć’K",؊"tŹ"½b #ØH#Nķ‡#—2Ē#ßw$(½E$p…$¹GÄ$%JŅB%’‚%Ū\Į%#¢&lē?&µ,&żq¾&F·ż&Žü<'ÖA|'‡»'gĢś'°:(łVy(Aœø(Šį÷(Ņ&7)lv)c±µ)¬öō)ō;4*=s*…Ʋ*Ī ņ*Q1+_–p+ØŪÆ+š ļ+9f.,«m,Éš¬,6ģ,[{+-£Ąj-ģŖ-4Ké-}(.ĘÕg.§.V`ę.Ÿ„%/ēźd/00¤/xuć/Įŗ"0 b0RE”0›Šą0ćĻ1,_1tZž1½ŸŻ1å2N*\2–o›2ß“Ś2(ś3p?Y3¹„˜3Ź×3J4’TV4Ś™•4#ßŌ4l$5“iS5ż®’5FōŃ5Ž96Ö~P6ď6g Ļ6°N7ų“M7Aٌ7ŠĢ7Ņc 8©J8cī‰8¬3É8ōx9=¾G9…‡9ĪHĘ9Ž:_ÓD:§„:š]Ć:9£;čA;Ź-;sĄ;Zø’;£ż><ėB~<4ˆ½<}Ķü<Å<=X{=Wŗ=Ÿāł=ē'9>0mx>x²·>Į÷ö> =6?R‚u?›Ē“?ć ō?,R3@t—r@½Ü±@"ń@Mg0A–¬oAßń®A'7īAp|-BøĮlB¬BJLėB’‘*CŚÖiC#©CkačC“¦'DüėfDE1¦DŽvåDÖ»$EdEgF£E°‹āEųŠ!FAaF‰[ FŅ ßFęGc+^G¬pGōµÜG\a&ø¤¦eøķ뤸51äø~v#¹Ę»b¹¢¹WFį¹ ‹ ŗčŠ_ŗ1Ÿŗz[ŽŗĀ » ę\»S+œ»›pۻ䵼,ūY¼u@™¼¾…ؼ˽OW½˜U–½ąšÕ½(ą¾q%T¾¹j“¾°Ņ¾Jõæ“:QæÜæ$ÅĻæm ĄµONĄž”ĄFŚĢĄ Į×dKĮ ŖŠĮhļÉĮ±4 ĀłyHĀBæ‡Ā‹ĒĀÓIƏEĆdԄìÄĆõ^Ä=¤BĆéÄĻ.ĮÄtÅ`¹?ÅØž~ÅńC¾Å9‰żÅ‚Ī<ĘŹ|ĘY»Ę[žśĘ¤ć9Ēķ(yĒ5nøĒ~³÷ĒĘų6Č>vČWƒµČŸČōČč 4É1SsÉy˜²ÉĀŻńÉ #1ŹShpʜ­ÆŹäņīŹ,8.Ėu}m˽¬ĖģĖNM+Ģ—’jĢą×©Ģ(éĢqb(͹§gĶķ¦ĶJ2ęĶ’w%ĪŪ¼dĪ$¤ĪlGćεŒ"ĻžŃaĻF”Ļ\ąĻ×”Šē^Šh,žŠ°qŻŠł¶ŃBü[ъA›ŃӆŚŃĢŅdYҬV˜Ņõ›×Ņ=įӆ&VÓĪk•Ó±ŌÓ`öŌØ;SŌń€’Ō9ĘŃŌ‚ ÕŹPPÕ–Õ[ŪĪÕ¤ ÖģeMÖ5«ŒÖ}šĖÖĘ5 ×{J×WĄ‰×ŸÉ×čJŲ0GŲyՆŲĮĘŲ `ŁS„DŁ›źƒŁä/ĆŁ,uŚuŗAڽ’€ŚEĄŚNŠ’Ś—Ļ>Ūß~Ū(Z½ŪqŸüŪ¹ä;Ü*{ÜJoŗÜ““łÜŪł8Ż#?xŻl„·ŻµÉöŻż6ŽFTuŽŽ™“Ž×ŽóŽ $3ßhirß°®±ßłóšßA90ąŠ~oąŅĆ®ą īądN-ᬓlįõŲ«į=ėį†c*āĪØiāīØā_3čāØx'ćš½fć9¦ć‚Hå欍$äÓcä[£ä£]āäģ¢!å4č`å}- åĘrßåøęWż]ęŸBęč‡Üę0Ķēy[ēĮWšē ŁēRāč›'Xčćl—č,²Öču÷é½Y/„˜xÉ×Į TVR™•šŽŌć#,iSt®’¼óŃ9M~P–ƏŽĻ'Np“MøŲŒĢIc ’ØJŚķ‰#3Ékx“½Gü‡EHĘŽÖŅD„g]ư¢ųēA@-‰rĄŅ·’ż>cB~«‡½ōĢü<<…W{͜ŗāł^'9§lxļ±·8÷ö<6ɁuĒ“Z ō£Q3 ė–r 3ܱ |!ń Åf0! ¬o!Vń®!Ÿ6ī!ē{-"0Įl"x¬"ĄKė" ‘*#QÖi#š©#ć`č#+¦'$tėf$½0¦$vå$M»$%–d%ŽE£%'‹ā%oŠ!&øa&[ &I ß&’å'Ś*^'#p'kµÜ'“ś(ü?[(E…š(ŹŁ(Ö)UX)gš—)°ßÖ)ų$*@jU*‰Æ”*ŃōÓ*:+bR+«Ä‘+ō Ń+2šX}2ā¼2+ćū2s(;3¼mz3³¹3Mųų3–=84Ž‚w4'ȶ4o ö4øR55˜t5Iݳ5‘"ó5Śg26#­q6kņ°6“7š6ü|/7DĀn7®7ÕLķ7’,8g×k8Æ«8ųaź8@§)9‰ģh9Ń1Ø9wē9b¼&:«f:óF„:<Œä:„Ń#;Ķc;\¢;^”į;§ę <ļ+`<8qŸ<€¶Ž<Čū=A]=Z†œ=¢ĖŪ=ė>4VZ>|›™>ÅąŲ> &?UkW?ž°–?ęõÕ?/;@x€T@ĄÅ“@ Ó@QPAš•QAāŚA+ ŠAseB¼ŖNBšBM5ĶB•z CŽæKC'‹CoJŹCø DÕHDHˆD‘_ĒD٤E"źEEk/…E³tÄEü¹FE’BFD‚FՉĮFĻGf@GÆYG÷ž¾G_JøØGøšŌ†ø9Ęø_¹Ź¤D¹ꃹ[/ù£tŗģ¹Aŗ4’€ŗ}DĄŗÅ‰’ŗĻ>»W~»ŸY½»čžü»0ä;¼y){¼Įnŗ¼ “ł¼Rł8½›>x½ćƒ·½,Éö½u6¾½Su¾™“¾NŽó¾–#3æßhræ'®±æpóšæ¹80Ą~oĄJĆ®Ą’īĄŪM-Į#“lĮlŲ«Į“ėĮżb*ĀEØiĀŽķØĀ×2čĀx'Ćh½fư¦ĆłGåĆA$ĉŅcÄŅ£Ä]āÄc¢!Ŭē`Åō, Å=rßņ·ĘĪü]ĘBĘ_‡ÜʧĢĒš[Ē8WšĒœŁĒŹįČ'XČ[l—Č£±ÖČģöÉ4Y󧃘óļČ×ó8ōSVōɘ•ōŽŌōZ#õ¢hSõė­’õ3óŃõ|8öÅ}Pö ƏöVĻöŸM÷ē’M÷/،÷xĢ÷Ąb ų ØJųQķ‰ųš2Éųćwł+½Głt‡ł¼GĘłśMŅDś–„śŽ\Ćś'¢ūoēAūø,ūrĄūI·’ū’ü>üŚA~ü"‡½ükĢüü³<żüV{żDœŗżįłżÖ&9žlxžg±·žÆööžų;6’@u’‰Ę“’Ń ō’Q3b–r«Ū±ō ńX}Z¼¢āūė';3mz|²¹Ä÷ų =8U‚wžĒ¶ę ö/R5x—tĄÜ³ "óQg2š¬qāń°*7šs|/¼Įn®MLķ•‘,ŽÖk'«oaź·¦)ģhH1Ø‘vēŁ»&"fkF„³‹äüŠ#Dc[¢Õ įę f+`ÆpŸ÷µŽ@ū‰@]хœĖŪb«UZóš™;ąŲ„%ĶjW°–^õÕ¦: ļT 7œ € Ó ČO!•Q!Yڐ!¢Š!źd"3ŖN"|ļ"Ä4Ķ" z #UæK#ž‹#ęIŹ#. $wŌH$Ąˆ$_Ē$Q¤%šéE%ā.…%+tÄ%s¹&»žB&D‚&L‰Į&•Ī'Ž@'&Y'ož¾'·ćż')=(Hn|(‘³»(Łųś(">:)jƒy)³Čø)ū ų)DS7*˜v*ÕŻµ*#õ*fh4+®­s+÷ņ²+?8ņ+ˆ}1,ŃĀp,°,bMļ,«’.-ó×m-;­-„bģ-̧+.ķj.]2Ŗ.¦wé.ļ¼(/7h/€G§/Ȍę/Ņ%0Ye0¢\¤0ź”ć03ē"1{,b1Äq”1 ·ą1Uü2žA_2ꆞ2/ĢŻ2w3æV\3œ›3PįŚ3™&4ākY4*±˜4sö×4»;5V5Lʕ5• Õ5ŻP6&–S6nŪ’6· Ņ6f7H«P7‘š7Ł5Ļ7"{8jĄM8²8ūJĢ8D 9ŒÕJ9ÕŠ9`É9f„:ÆźG:÷/‡:?uĘ:ˆŗ;Š’D;E„;bŠĆ;ŖĻ<óB<;Z<„ŸĄ<Ģä’<*?=]o~=¦“½=īłü=7?<>„{>ČÉŗ>ś>YT9?¢™x?źŽ·?3$÷?{i6@Ć®u@ ō“@U9ō@~3AęĆrA/ ²AwNńAæ“0BŁoBPÆB™cīBįØ-C*īlCs3¬C»xėC¾*DLjD•H©DŻčD&Ó'EngE·]¦E’¢åEHč$F-dFŁr£F"øāFjż!G³BaGū‡ GCĶßG«x)øó½hø<Øø…HēøĶ&¹Óe¹_„¹§]乚¢#ŗ8čbŗ€-¢ŗÉrįŗø »Zż_»£BŸ»ė‡Ž»4ͼ|]¼ÅWœ¼ Ū¼Vā½ž'Z½ēl™½/²Ų½x÷¾ĄÜQA~ܙ†½ÜāĖüÜ+<ŻsV{ݼ›ŗŻįłŻM&9Ž•kxŽŽ°·Ž&ööŽo;6ß·€ußĘ“ßI ōߑP3ąŚ•rą"Ū±ąk ńą³e0įüŖoįDš®į5īįÕz-āĄlāf¬āÆJėāų*ć@Õi扩ćŃ_čć„'äbźfäŖ/¦äótåä<ŗ$å„’cåĶD£åŠāå^Ļ!ę¦aęļY ę7Ÿßę€äēČ)^ēoēZ“Üē¢łčė>[č3„šč|ÉŁčÄé TXéU™—鞎Öéę#ź/iUźw®”źĄóÓź 9ėQ~Rė™Ć‘ėāŃė*Nģs“Oģ»ŲŽģĪģMc 함LķŽķ‹ķ&3Ėķox ī·½Iī‰īHHČī‘ļŁŅFļ"†ļk]Åļ³¢šüēCšD-ƒšŒrĀšÕ·ńż@ńfB€ńƇæń÷Ģžń@>ņˆW}ņќ¼ņāūņb';óŖlzóó±¹ó;÷ųó„<8ṓwōǶō^ öō¦Q5õļ–tõ7ܳõ€!óõČf2ö¬qöYń°ö¢6šöź{/÷3Įn÷|®÷ÄKķ÷ ‘,ųUÖkų«ųę`źų.¦)łwėhłĄ0ØłvēłQ»&ś™fśāE„ś*‹äśsŠ#ū»cū[¢ūL įū•å üŻ*`ü&pŸüoµŽü·śż@]żH…œżŹŪżŁž"UZžjš™ž³ßŲžū$’DjW’Æ–’ÕōÕ’:fT®Ä“÷ Ó?Oˆ”QŃŁŠbdŖ©Nóī;4Ķ„y ̾K‹]IŹ¦Ž ļÓH7ˆ€^ĒČ£éEY.…”sÄźø3žB{C‚ĈĮ ĪU@Xę¾.ćżw(=æm|³»Pųś™=: ā‚y *Čø s ų »R7 ˜v Lݵ ”"õ Żg4 &­s nņ² ·7ņ }1 HĀp ‘° ŁLļ !’. j×m ²­ ūaģ D§+ŒģjÕ1Ŗwéf¼(®h÷F§?ŒęˆŃ%Še\¤a”ćŖę"ó+b;q”„¶ąĢūA_]†ž„ĖŻī7V\››ČąŚ&YkY”°˜źõ×2;{€VĆŕ ÕUP•Sꦒ. ŅweæŖPšP5Ļ™zįæM*rJĢ» ÕJLŠ•_Éݤ%źGn/‡¶tĘ’¹H’DD„ىĆ"ĻjB²YūžĄCä’Œ)?Ōn~“½fłü®><÷ƒ{?ÉŗˆśŠS9™xaŽ·Ŗ#÷ņh6 ;®u ƒó“ Ģ8ō ~3!]Ćr!„²!īMń!6“0"Ųo"ĒÆ"cī"YØ-#”ķl#ź2¬#2xė#{½*$Ćj$ H©$Tč$Ņ'%åg%.]¦%w¢å%æē$&-d&Pr£&™·ā&įü!')Ba'r‡ '»Ģß'(LW^(•œ(ŻįÜ(&')nl[)¶±š)’öŁ)G<*X*ŁĘ—*! ×*jQ+²–U+ūŪ”+C!Ō+Œf,Ō«R,ń‘,e6Ń,®{-öĄO-?-ˆKĪ-А .ÖL.aŒ.©`Ė.ņ„ /:ėI/ƒ0‰/ĢuČ/»0]G0¦E†0īŠÅ06Š1D1ĒZƒ1 Ā1Xå2”*A2źo€22µæ2{śž2Ć?>3 …}3Tʼ3ü3åT;4.šz4vß¹4æ$ł4j85PÆw5™ō¶5į9ö5)56rÄt6ŗ “6Oó6K”27”Łq7ݱ7%dš7n©/8¶īn8’3®8Gyķ8¾,9Ųl9!I«9iŽź9²Ó):ūi:C^Ø:Œ£ē:Ōč&;.f;es„;­øä;öż#ƒm]>˲œ>ųŪ>\=?„‚Z?īĒ™?6 Ł?R@Ē—W@Ż–@X"Ö@”gAé¬TA2ņ“Az7ÓAĆ|B ĀQBT‘BLŠBå‘C-×NCvŽC¾aĶC§ DPģKD˜1‹DįvŹD)¼ ErIEŗFˆEŒĒEKŃF”FFÜ[…F%”ÄFmęG¶+CG’p‚GG¶ĮGÆa ø÷¦Jø@쉸ˆ1ÉøŃv¹¼G¹b‡¹ŖFƹó‹ŗ<ŃDŗ„„ŗĶ[Ćŗ”»^ęA»¦+»īpĄ»7¶’»€ū>¼Č@~¼†½¼YĖü¼¢<½ėU{½3›ŗ½{ął½Ä%9¾ kx¾U°·¾õö¾ę:6æ/€uæwÅ“æĄ ōæP3ĄQ•rĄ™Ś±ĄāńĄ*e0ĮsŖoĮ»ļ®Į5īĮMz-Ā•ælĀŽ¬Ā&JėĀn*Ć·ŌiĆ’©ĆH_čƑ¤'ÄŁéfÄ"/¦Äktåij¹$ÅūžcÅDD£ÅŒ‰āÅÕĪ!ĘaĘfY ĘƞßĘ÷ćĒ@)^LjnĒѳÜĒłČb>[ČŖƒšČóČŁČ;ɄSXÉ̘—ÉŽÖÉ^#ʦhUŹļ­”Ź7óÓŹ8ĖČ}RĖƑĖYŃĖ¢MĢź’OĢ3ŲŽĢ{ĪĢÄb Ķ ØLĶUķ‹Ķ2ĖĶęw Ī.½IĪw‰ĪĄGČĪĻQŅFĻ™†Ļā\ÅĻ*¢ŠrēCŠ»,ƒŠrĀŠL·ѕü@ŃŻA€Ń&‡æŃoĢžŃ·>Ņ’V}ŅHœ¼ŅįūŅŁ&;Ó!lzÓj±¹Ó³öųÓū;8ŌDwԌƶŌÕ öŌQ5Õf–tÕ®Ū³Õ÷ óÕ?f2ֈ«qÖŃš°Ö6šÖb{/×ŖĄn×ó®×;Kķ׃,ŲĢÕkŲ«Ų]`źŲ¦„)ŁīźhŁ70ØŁuēŁČŗ&ŚfŚYE„Ś”ŠäŚźĻ#Ū2cŪ{Z¢ŪğįŪ å ÜU*`ܝoŸÜ꓎Ü.śŻv?]Żæ„œŻŹŪŻPŽ™TZŽā™™Ž*ßŲŽs$ß»iWßƖßLōÕߔ9ąŻ~Tą&ēąn Óą·Nį’“QįHِįŠįŁcā!©Nājīā²3Ķāūx ćC¾KćŒ‹ćÕHŹćŽ äfÓH䮈ä÷]Ēä?£å‡čEåŠ-…åsÄåaøęŖżBęóB‚ę;ˆĮęƒĶēĢ@ēXē]¾ē„āżēī'=č7m|č²»čČ÷śč=:éY‚yé”Ēøéź ųé2R7ź{—vźĆܵź "õźUg4ė¬sėęń²ė.7ņėw|1ģæĮpģ°ģPLļ왑.ķįÖmķ*­ķraģķ»¦+īģjīL1Ŗī”véīŻ»(ļ%hļnF§ļ¶‹ęļ’Š%šHeš[¤šŁ ćš!ę"ńj+bń²p”ńśµąńCūņŒ@_ņŌ…žņĖŻņfó®U\ó÷š›ó?ąŚó‡%ōŠjYō°˜ōaõ×ōŖ:õņVõ;ŕõƒ ÕõĢOö•Sö]Ś’ö„Ņöīd÷6ŖP÷ļ÷Ē4Ļ÷zųYæMų”ųźIĢų2 ł{ŌJłĆŠł _ÉłT¤śéGśå.‡ś.tĘśw¹ūæžDūD„ūP‰Ćū˜ĪüįBü)YüržĄü»ć’ü)?żLn~ż”³½żŻųüż%><žnƒ{ž¶Čŗž’ śžGS9’˜x’ŲŻ·’!#÷’jh6²­uūņ“C8ō‹}3ŌĀr²eMń®’0ö×o?ƈbīЧ-ķla2¬©wėņ¼*:jƒG©̌čŅ']g„\¦ī”å6ē$,dĒq£·āXü!”Aa醠2Ģß{ĆV^ œTįÜœ& åk[ -±š vöŁ æ; X Pʗ ˜ × įP )–U rŪ” ŗ Ō f K«R ”š‘ Ż5Ń %{ nĄO ¶ ’JĪ G ÕLŲŒ!`Ėi„ ²źIś/‰CuČŒŗŌ’FE†eŠÅ­ĻöD>Zƒ‡ŸĀŠä*Aao€©“æņłž:?>ƒ„}Ėɼü\T;„™zīŽ¹6$łi8Ē®wō¶X9ö ~5éĆt2 “zNóƓ2 ŁqT±œcšåØ/-īnv3®¾xķ¾,Pl˜H«įź)Ó)riŗ]Ø£ēKč&”-fÜr„%øämż#¶Bc’‡¢GĶį!ŲW` ŸiāŽ±'śl]C²œ‹÷ŪŌ<‚ZeĒ™­ ŁöQ >—W ‡Ü– Ļ!Ö g!a¬T!©ń“!ņ6Ó!:|"ƒĮQ"Ė‘"LŠ"\‘#„ÖN#ķŽ#6aĶ#~¦ $ĒėK$1‹$XvŹ$ » %éI%1Fˆ%z‹Ē%ĀŠ& F&T[…&œ Ä&åå'-+C'vp‚'¾µĮ'ū(O@@(˜…(ąŹ¾()ž(rU=)ŗš|)ą»)K%ū)”j:*ÜÆy*$õø*m:ų*¶7+žÄv+G ¶+Oõ+Ų”4, Śs,i³,±dņ,ś©1-Bļp-‹4°-Óyļ-æ..en.­I­.öŽģ.>Ō+/‡k/Ļ^Ŗ/¤é/`é(0©.h0ńs§0:¹ę0ƒž%1ĖCe1‰¤1\Īć1¤#2ķXb25ž”2~ćą2Ē( 3n_3X³ž3 ųŻ3é=41ƒ\4zț4Ā Ū4 S5S˜Y5œŻ˜5ä"Ų5-h6v­V6¾ņ•68Õ6O}7—ĀS7ą“7(MŅ7q’8ŗ×P88KbĻ8”§9ÜģM9$29mwĢ9µ¼ :žK:FGŠ:ŒÉ:ŲŃ; H;i\‡;±”Ę;śę>‡V?>Ļ›~>į½>`&ż>Øk]½7„œ½É۽ȾTZ¾Y™™¾”ŽŲ¾é#æ2iWæ{®–æĆóÕæ 9ĄT~TĄĆ“ĄęÓĄ.NĮv“QĮæŲĮŠĮPc˜ØNĀįķĀ*3ĶĀrx Ć»½KĆ‹ĆLHŹĆ” ÄÜŅHÄ%ˆÄn]Ē͢ŒēEÅH-…ŐrÄÅŁ·Ę!żBĘiB‚Ʋ‡ĮĘśĢĒC@njWĒԜ¾ĒāżĒe'=Č®l|Čö±»Č?÷śČ‡<:ÉŠyÉĒøÉa ųÉ©Q7Źņ–vŹ;ܵʃ!õŹĢf4ˬsĖ]ń²Ė„6ņĖķ{1Ģ6Įp̰ĢĒKļĢ‘.ĶYÖmĶ”­Ķé`ģĶ2¦+ĪzėjĪĆ0ŖĪ véĪT»(ĻhĻåE§Ļ.‹ęĻvŠ%ŠæeŠ[¤ŠP ćИå"Ńį*bŃ)p”ŃrµąŃŗśŅ@_ŅL…žŅ”ŹŻŅŻÓ%U\Ómš›Ó¶ßŚÓž$ŌGjYŌÆ˜ŌŲō×Ō!:ÕjVÕ²Ä•Õś ÕÕCO֋”SÖŌŁ’ÖŅÖed×®©P×öī×?4ĻׇyŲŠ¾MŲŲaIĢŲ©Ž ŁņÓJŁ:ŠŁƒ^ÉŁĢ£ŚéGŚ].‡Ś„sĘŚķøŪ6žDŪ~C„ŪLjĆŪĪÜXBÜ”XÜ靡Ü2ć’Üz(?ŻĆm~Ż ³½ŻTųüݜ=<Žå‚{Ž-ČŗŽv śŽæR9ߘxßPݷߘ"÷ßįg6ą)­uąqņ“ąŗ7ōą}3įKĀrᔲįŻLńį%’0ān×oā¶ÆāžaīāG§-ćģlćŲ1¬ć!wėći¼*ä²jäśF©äCŒčä‹Ń'åŌgå\¦åe”åå­ę$ęö+dę>q£ę‡¶āęŠū!ēAaēa† ē©Ėßēńč:V^肛čĖąÜč&é\k[é„°šéīõŁé6;ź~€XźĒŗź ןXPė •Uė馔ė2 ŌėzeģĆŖRģ š‘ģT5ŃģœzķåæOķ-ķvJĪķ¾ īÕLīOŒī˜_Ėīᤠļ)źIļr/‰ļŗtČļŗšK’Fš“D†šÜ‰Åš%ĻńmDń¶YƒńžžĀńGäņ)AņŲn€ņ “æņiłžņ±>>óśƒ}óCɼó‹üóŌS;ō™zōe޹ō­#łōõh8õ>®wõ‡ó¶õĻ8öõ~5ö`Ćtö©“öņMóö:“2÷‚Ųq÷˱÷cš÷\Ø/ų¤ķnųķ2®ų6xķų~½,łĒlłH«łXźł Ņ)śéiś1]Øśz¢ēśĀē&ū -fūTr„ūœ·äūåü#ü-Bcüv‡¢ü¾Ģįü!żOW`ż˜œŸżąįŽż)'žql]žŗ±œž÷ŪžK<’“Z’Üʙ’$ Ł’mQµ–WžŪ–G!֏fŲ«T ń“i6Ó±{łĄQB‘‹KŠӐÖNeŽ­`Ķö„ >ėK†0‹ĻuŹ» `I©EˆńŠĒ:ŠƒFĖZ… Ä\å¤*Cķo‚5µĮ~śĒ?@…Xʾ žéT= 1š| yß» Ā$ū j: SÆy œōø ä9ų -7 vÄv ¾ ¶ Oõ O”4 —Łs ą³ (dņ q©1 ŗīp 4° Kyļ “¾.Ün$I­mŽģµÓ+žkF^Ŗ£éŲč( .his§±øęśż%BCeŠˆ¤ÓĶć#dXb­”õāą>( †m_ϲžųŻ`=؂\ńĒ›9 Ū‚RĖ—Yݘ\"Ų¤gķ¬V5ņ•}7ÕĘ|ĀSW“ LŅé‘1×PzĀaĻ §SģM›1ävĢ-¼ uK¾FŠŒÉOŃ—Hą[‡(”Ęqę¹+Eq„J¶Ć“ūÜ@B$†mĖĄµžU?F›~Žą½×%ż k<h°{±õŗś:śB€9 ŠÅx Ó ø P÷ d•6!¬Śu!õµ!>eō!†Ŗ3"Ļļr"5²"`zń"Øæ0#ńp#9JÆ#‚ī#ŹŌ-$m$[_¬$¤¤ė$ķé*%5/j%~t©%ƹč%’'&WDg&Ÿ‰¦&čĪå&1%'yYd'Āž£' äā'S)"(›na(ä³ (,łß(u>)½ƒ^)ɝ)OŻ)—S*ą˜[*(ޚ*q#Ś*¹h+®X+Jó—+“8×+Ū},$ĆU,m•,µMŌ,ž’-FŲR-Ž’-×bŃ-Ø.hķO.±2.łwĪ.B½ /ŠM/ÓGŒ/Ė/dŅ 0¬J0õ\‰0=¢Č0†ē1Ī,G1r†1`·Å1Øü2ńAD29‡ƒ2‚ĢĀ2Ź3WA3[œ€3¤įæ3ģ&’35l>4~±}4Ęö¼4<ü4W;5ŸĘz5č ŗ50Qł5y–86ĀŪw6 !·6Sfö6›«57äšt7,6“7u{ó7½Ą28r8NK±8—š8ßÕ/9(o9q`®9¹„ķ9ė,:J0l:’u«:Ūŗź:#*;lEi;µŠØ;żĻē;F'<Zf<ן„<åäӄ`>ʟ>dß>¬T?õ™]?=ߜ?†$Ü?Īi@ÆZ@_ō™@Ø9Ł@š~A9ÄWA‚ —AŹNÖA”B[ŁTB£”BģcÓB4©C}īQCĘ3‘CyŠCW¾DŸODčHŽD0ŽĶDyÓ EĮLE ^‹ER£ŹE›č Fä-IF,sˆFuøĒF½żGCFGNˆ…G–ĶÄGžxøG¾MøøŲHĢø Ž ¹iÓJ¹²йś]ɹC£ŗ‹čGŗÓ-‡ŗsĘŗdø»­żD»öB„»>ˆĆ»‡Ķ¼ŠB¼X¼`Ą¼©ā’¼ń'?½:m~½‚²½½Ė÷ü½=<¾\‚{¾„Ēŗ¾ķ ś¾6R9æ~—xæĒÜ·æ"÷æXg6Ą ¬uĄéń“Ą17ōĄz|3ĮĆĮrĮ ²ĮTLńĮœ‘0ĀäÖoĀ-ÆĀua-ĆģlĆO1¬Ć˜vėĆą»*Ä)jÄqF©Äŗ‹čÄŃ'ÅKgœ[¦ÅÜ åÅ%ę$Ęm+dʶp£ĘžµāĘGū!Ē@aĒׅ Ē ĖßĒiȱU^ČśšČCąÜȋ%ÉŌj[ɰšÉdõŁÉ­:ŹõXŹ>ŗʇ ׏ĻOĖ•UĖ`ڔ˩ŌĖńdĢ:ŖRĢ‚ļ‘ĢĖ4ŃĢzĶ\æOͤĶķIĪĶ6 Ī~ŌLĪĒŒĪ_ĖĪX¤ Ļ éIĻč.‰Ļ1tČĻz¹ŠĀžFŠ D†ŠT‰ÅМĪŃäDŃ-YƒŃužĀѾćŅ)AŅOn€Ņ˜³æŅąųžŅ)>>Óqƒ}ӺȼÓüÓKS;Ō“˜zŌÜŻ¹Ō$#łŌmh8Õµ­wÕžņ¶ÕG8öՏ}5ÖŲĀtÖ “ÖhMóÖ±’2׳×q×B±×‹bš×Ó§/ŲķnŲe2®Ų­wķŲõ¼,Ł>lنG«ŁĻŒźŁŅ)Ś`iŚ©\ØŚń”ēŚ:ē&Ū‚,fŪĖq„Ū·äŪ[ü#ܤAcÜ톢Ü5ĢįÜ~!ŻĘV`ŻœŸŻXįŽŻ &Žčk]Ž1±œŽyöŪŽĀ;ß ZßSʙߜ ŁßäPą-–WąuŪ–ą¾ ÖąfįO«Tį—š“įą5Óį({āqĄQāŗ‘āKŠāKć“ÕNćÜŽć$`Ķćl„ 䵟Käž/‹äFuŹäŗ å×’Hå EˆåhŠĒå±ĻęłFęBZ…ęŠŸÄęÓäē*Cēdo‚ē­“Įēõłč>?@膄čĻɾčžč_T=騙|éńŽ»é9$ūé‚i:źĖ®yźōøź\9ųź¤~7ėģĆvė5 ¶ė}Nõėʓ4ģŁsģW³ģ cņģčØ1ķ1īpķy3°ķĀxļķ ¾.īSnī›H­īäģī,Ó+ļukļ¾]Ŗļ£éļOč(š—-hšąr§š(øęšqż%ń¹Beńˆ¤ńJĶćń“#ņÜWbņ$”ņlāąņµ' óżl_óF²žóŽ÷Żó×<ō ‚\ōhĒ›ō± ŪōłQõB—YõŠÜ˜õÓ!Ųõgöd¬Vö¬ń•öõ6Õö>|÷†ĮS÷Ļ“÷LŅ÷`‘ųØÖPųšų9aĻų‚¦łŹėMł1ł[vĢł¤» śķKś5FŠś}‹ÉśĘŠūHūW[‡ūŸ Ęūčåü1+Eüyp„üµĆü ūżS@Bż›…żäŹĄż,žuU?ž½š~žą½žO%żž—j<’ąÆ{’(õŗ’p:ś’¹9ÅxJ ø“O÷Ū”6$Śulµµdōż©3FļrŽ4²×yńæ0hp°IÆłŽīBŌ-ŠmÓ^¬¤ėdé*¬.jōs©=¹č†ž'ĪCg‰¦`ĪåØ%ńXd9ž£ćāŹ("na[³ ¤ųßģ= 5ƒ^ }ȝ Ę Ż S W˜[ ŸŻš č"Ś 0h y­X Įņ— 8× S} ›ĀU ä• ,MŌ t’ ½×R ’ NbŃ —§ßģO(2qwι¼ MJGŒ’ŒĖŪŃ #Jl\‰µ”ČżęF,GŽq†×¶ÅühAD°†ƒłĖĀAŠVAŅ›€įæd&’¬k>ō°}=ö¼…;üĪ€;Ęz_ ŗØPłš•89Ūw ·Źeö«5[št£5“ģzó4Ą2}rĘJ±šWÕ/Ÿoč_®0„ķxź,Į/l u«Rŗź›’)äDi,ŠØuĻē½'ZfNŸ„–ääß)$(ocp“¢¹łį?!J„`’ÉŸŪß#Tl™]“ޜż#ÜEi Ž®Z ×ó™ 9Ł h~!°ĆW!ų—!ANÖ!‰“"ŅŲT"”"ccÓ"¬Ø#õķQ#=3‘#…xŠ#ν$O$_HŽ$§Ķ$šŅ %9L%]‹%Ź¢Ź%č &[-I&£rˆ&ģ·Ē&4ż'}BF'҅'ĶÄ'V(ŸWC(蜂(0āĮ(y')Įl@) ²)R÷¾)š<ž)ć=*,Ē|*t ¼*½Qū*—:+NÜy+–!¹+ßfų+'¬7,pńv,ø6¶,|õ,JĮ4-’t-ŪK³-#‘ņ-lÖ1.“q.ü`°.E¦ļ.Žė./Ö0n/v­/g»ģ/°,0łEk0A‹Ŗ0‰Šé0Ņ)1[h1c §1«åę1ō*&2=pe2…µ¤2Īść2@#3_…b3§Ź”3šį38U 4š_4Éߞ4%Ž4[j5£Æ\5ģō›54:Ū5}6ÅÄY6 ™6VOŲ6Ÿ”7ēŁV70–7xdÕ7Į©8 ļS8R4“8šyŅ8ć¾9+Q9tI9¼ŽĻ9Ō:NN:–^:ߣĢ:'é ;p.K;øsŠ;¹É;Iž<’CH<ڈ‡<#ĪĘÖmB>³>gųĄ>°=?ų‚??AČ~?‰ ¾?ŅRż?˜<@cŻ{@«"»@ōgś@<­9A…ņxAĶ7øA}÷A_Ā6B§vBšLµB8’ōB×3CÉsCb²CZ§ńC£ģ0Dė1pD4wÆD}¼īDÅ.E GmEVŒ¬EžŃėEē+F/\jFx”©FĮęčF ,(GRqgGš¶¦GćūåGJ§/ø“ģnøŪ1®ø$wķøl¼,¹µl¹žF«¹FŒź¹Ń)ŗ×iŗ \Øŗh”ēŗ±ę&»ł+f»Bq„»Š¶ä»Óū#¼Ac¼d†¢¼­Ėį¼õ!½>V`½†›Ÿ½ĪąŽ½&¾_k]¾Ø°œ¾ńõŪ¾9;悀ZæĖřæ Łæ[PĄ¤•WĄģŚ–Ą5 ÖĄ}eĮĘŖTĮš“ĮW5ÓĮ zĀčæQĀ1‘ĀyJŠĀĀĆ ÕNĆSŽĆ›_ĶĆä¤ Ä,źKÄu/‹Ä¾tŹÄŗ ÅN’HŗDˆÅ߉ĒÅ(ĻĘpFƹY…ĘŸÄĘJäĒ“)CĒŪn‚Ē$“ĮĒlłČµ>@ČżƒČFÉ¾ČŽžČ×S=É ™|Éh޻ɱ#ūÉłh:ŹB®yʊóøŹŅ8ųŹ~7ĖdĆvˬ¶ĖõMõĖ=“4̆ŲsĢϳĢcņĢ_Ø1ĶØķpĶš2°Ķ9xļ́½.ĪŹnĪH­Ī[ģΤŅ+ĻģkĻ5]ŖĻ}¢éĻĘē(Š-hŠWr§ŠŸ·ęŠčü%Ń1BeŃy‡¤ŃĀĢćŃ #ŅRWbŅ›œ”ŅćįąŅ,' Óul_Ó½±žÓ÷ŻÓN<Ō—\ŌßʛŌ( ŪŌpQÕ¹–YÕܘÕJ!ŲՒfÖŪ«VÖ$ń•Öl6ÕÖµ{׿ĄS×F“׎KŅ×֐ŲÖPŲhŲ°`ĻŲł„ŁBėMي0ŁÓuĢŁ» ŚcKڬEŠŚōŠÉŚ=ŠŪ†HŪĪZ‡Ū ĘŪ_åÜØ*EÜšo„Ü9µĆ܁śŻŹ?BŻ…Ż[ŹĄŻ¤ŽģT?Ž5š~Ž}ß½ŽĘ$żŽj<ßVÆ{ߟōŗßč9śß09ąyÄxąĮ øą O÷ąS”6į›Łuįćµį,dōįt©3ā½īrā4²āNyńā—¾0ćßpć(IÆćpŽīć¹Ó-ämäJ^¬ä’£ėäŪč*å#.jåls©åµøčåżż'ęFCgꎈ¦ęÖĶåę%ēgXdē°£ēłāāēA("čŠmačҲ čųßčc=鬂^éōĒé= Żé…RźĪ—[źݚź_"ŚźØgėš¬Xė9ņ—ė7×ėŹ|ģĀUģZ•ģ£LŌģģ‘ķ4×Rķ}’ķĘaŃķ§īWģOīŸ1īēvĪī0¼ ļxMļĮFŒļ ŒĖļRŃ š›Jšć[‰š,”Čštęń½+Gńq†ńN¶Åń–ūņß@Dņ'†ƒņpĖĀņ¹óVAóJ›€ó’ąæóŚ%’ó#k>ōk°}ō“õ¼ōż:üōE€;õŽÅzõ× ŗõPłõg•8ö°Śwöų·öAeöö‰Ŗ5÷Ņļt÷5“÷czó÷¬æ2ųōrų=J±ų…šųĪŌ/łoł__®ł§¤ķłšé,ś8/lśt«śŹ¹źś’)ū[Diū£‰ØūėĪēū4'ü|YfüŞ„üääüV)$żŸncżē³¢ż0łįżx>!žĮƒ`ž ɟžRßžšS’ć˜]’,ޜ’t#Ü’½h®ZNó™–8ŁŽ}'ĆWp—øMÖ“IŲT’”ŪbÓ#ØkķQ“2‘üwŠE½OÖGŽĶgŅ °Lų\‹A¢Ź‰ē Ņ,Irˆc·Ē«üōAF=‡……ĢÄĪWC_œ‚§įĮļ& 8l@ ± Éö¾ <ž [= £Ę| ė ¼ 4Qū |–: ÅŪy !¹ Vfų Ÿ«7 ēšv 06¶ x{õ ĮĄ4 t RK³ šņ ćÕ1+qt`°¼„ļė.N0n–u­ßŗģ',oEkøŠŖŠéI)’Zhڟ§#åęl*&“oeü“¤Eść?#քbŹ”gį°T ų™_Aߞ‰$ŽŅiÆ\cō›«9Ūō~<ÄY… ™ĶNŲ”_ŁV§–ļcÕ8©€īSÉ3“yŅZ¾£QėH4ŽĻ|ÓÅN ^V£Ģžč ē-K/sŠxøÉĮż CHRˆ‡šĶĘć+XEs„¼āĆ(MmB–²Ž÷Ą'=p‚?øĒ~ ¾IRż‘—< ŚÜ{ ""» kgś “¬9!üńx!E7ø!|÷!ÖĮ6"v"fLµ"Ƒō"ųÖ3#@s#‰a²#Ҧń#ģ0$c1p$«vÆ$ó»ī$<.%„Fm%Ķ‹¬%Ńė%^+&§[j&ļ ©&8ęč&€+('Épg'¶¦'Zūå'¢@%(ė…d(3Ė£(|ć(ÅU") ›a)Vą )ž%ą)ēj*/°^*wõ*Ą:Ż* €+QÅ[+š ›+ćOŚ++•,sŚX,¼˜,e×,MŖ-•ļU-Ž4•-'zŌ-oæ.øS.J’.IŃ.‘Ō/ŚP/"_/k¤Ī/³é 0ü.M0DtŒ0¹Ė0Öž 1DJ1g‰‰1ÆĪČ1÷2@YG2‰ž†2ŃćÅ2)3bnD3«³ƒ3ōųĀ3<>4„ƒA4ĶȀ4Ą4^S’4¦˜>5ļŻ}58#½5€hü5É­;6óz6Z8ŗ6¢}ł6ėĀ873x7|M·7Ēö7 Ų58Vu8žb“8ē§ó8/ķ29w2r9Ąw±9½š9Q0:šGo:⌮:+Ņķ:s-;¼\l;¢«;Mēź;•,*<Žqi<&·Ø"œc>kį¢>³&ā>ūk!?D±`?öŸ?Õ;ß?@gĘ]@Æ @ųPÜ@@–AˆŪZAŃ šAfŁAb«B«šWBó5—B<{ÖB„ĄCĶUCK”C^ÓC¦ÕDļRD7`‘D€„ŠDČźE0OEZuŽE¢ŗĶEė’ F3ELF{Š‹FÄĻŹF  GUZIGžŸˆGęäĒGNø—ÕPøßø(`Ļøp„¹øźM¹0¹Iu̹’ŗ ŗŪ’Jŗ#EŠŗlŠÉŗ“Ļ»żH»EZ‡»ŽŸĘ»Öä¼*E¼go„¼°“üųł½A?B½Š„½ŅÉĄ½¾cT?¾¬™~¾ō޽¾<$ż¾…i<æĪ®{æōŗæ_9śæØ~9ĄšĆxĄ9 øĄN÷ĄÉ“6ĮŁuĮZµĮ£cōĮģØ3Ā4īrĀ}3²ĀÅxń¾0ĆVpßHÆĆēīĆ0Ó-ÄxmÄĮ]¬Ä £ėÄRč*ś-jÅćr©Å,øčÅtż'ƼBgĘˆ¦ĘMĶåʖ%ĒßWdĒ'£Ēpāāǹ'"ČmaČI² Č’÷ßČŚ<É#‚^ÉkĒÉ“ ŻÉżQŹE—[ŹŽÜšŹÖ!ŚŹgĖg¬X˰ń—Ėų6×ĖA|̉ĮUĢŅ•ĢLŌĢc‘ͬÖRĶō’Ķ=aŃĶ…¦ĪĶėOĪ1Ī_vĪΧ» ĻšMĻ8FŒĻ‹ĖĻÉŠ ŠJŠZ[‰Š£ ČŠėåŃ4+GŃ|p†ŃŵÅŃūŅV@Dҟ…ƒŅēŹĀŅ0ÓxUAÓĄš€Ó ąæÓR%’Ӛj>ŌćÆ}Ō,õ¼Ōt:üŌ½;ÕÅzÕM ŗÕ–OłÕŽ”8Ö'ŚwÖp·ÖødöÖŖ5×Iļtג4“׌yó×#æ2ŲkrŲ“I±ŲüŽšŲEŌ/ŁoŁÖ^®Ł¤ķŁgé,ڰ.lŚųs«ŚA¹źŚ‰ž)ŪŃCiŪ‰ØŪcĪēŪ«'ÜōXfÜ=ž„܅ćäÜĶ($ŻncŻ^³¢Ż§ųįŻļ=!Ž8ƒ`ށȟŽÉ ߎSßZ˜]ߣݜßė"Üß4hą|­ZąÅņ™ą 8ŁąV}įžĀWįē—į0MÖįx’āĮ×Tā ”āQbÓ⚧ćāģQć+2‘ćtwŠć¼¼äOäNGŽä–ŒĶäŽŃ å'Låo\‹åø”Źåē ęI,Ię’qˆęڶĒę#üēkAF瓆…ēüĖÄēDčVCč֛‚čįĮčg&éÆk@éų°éAö¾é‰;žéр=źĘ|źb ¼ź«Pūźó•:ė<Ūyė… ¹ėĶeųė«7ģ^švģ§5¶ģļzõģ8Ą4ķ€tķÉJ³ķņķZÕ1ī£qīė_°ī4„ļī|ź.ļÅ/nļ u­ļUŗģļž’+šēDkš/ŠŖšxĻ隥)ń ZhńRŸ§ńšäęńā)&ņ+oeņs“¤ņ¼łćņ?#óM„bó–É”óŽįó'T ōo™_ōøŽžō$ŽōIiõ‘®\õŚó›õ"9Ūõk~ö“ĆYöü™öENŲö“÷ÕŲV÷–÷fcÕ÷ÆØųųķSų@3“ų‰xŅųҽłQłbHł«ĻłóŅś<Nś„]śĶ¢Ģśč ū^-Kū§rŠūļ·Éū8żü€BHüɇ‡üĶĘüZż¢WEżėœ„ż3āĆż|'žÅlBž ²žU÷Ąžž<’ę?’/Ē~’w ¾’ĄQż’ —<QÜ{š!»āfś+¬9sńx¼6ø|÷MĮ6•vŽKµ'‘ōoÖ3øsa²I¦ń‘ė0Ł0p"vÆk»ī³.üEmD‹¬ŠėÖ+[jf ©Æåč÷*(@pgˆµ¦Ńśå@%b…d«Ź£óćfŻ}Æ"½÷gü@­;ˆņzŃ7ŗ}łbĀ8ŖxóL·<’ö„×5Ķub“]§ó¦ģ2ī1r7w±€¼šČ0GoZŒ®¢Ńķź-3\l{”«Äęź ,*Uqiž¶Øęūē/A'w†fĄĖ„åQV$™›cāą¢*&āsk!¼°`öŸM;ß•€ ŽÅ] &  nPÜ ·•!ŪZ!H š!‘eŁ!ŁŖ""šW"j5—"³zÖ"ūæ#DU#ŒJ”#ՏÓ#Õ$fR$Æ_‘$÷¤Š$@ź%ˆ/O%ŃtŽ%ŗĶ%a’ &ŖDL&ó‰‹&;ĻŹ&„ 'ĶYI'Ÿˆ'^äĒ'¦)(īnF(7“…(łÄ(Č>)„C)Yɂ)¢Ā)źS*3™@*{Ž*Ä#æ* iž*U®=+ó|+ę8¼+.~ū+wĆ:,Ąz,N¹,Q“ų,™Ų7-įw-*c¶-rØõ-»ķ4.3t.Lx³.•½ņ.Ž2/&Hq/n°/·Ņļ/’/0H]n0¢­0Łēģ0"-,1jrk1³·Ŗ1ūüé1DB)2Œ‡h2Õ̧2ē2fW&3®œe3÷į¤3?'ä3ˆl#4ѱb4÷”4b<į4Ŗ 5ņĘ_5; Ÿ5ƒQŽ5Ģ–6Ü\6]!œ6¦fŪ6ī«77ńY76™7Č{Ų7Į8YW8”K–8źÕ83Ö9{T9Ä`“9 ¦Ņ9Uė:0Q:åu:.»Ļ:w;æEN;‹;PŠĢ;™ <āZK<* Š&…E>nŹ„>·Ä>’T?HšB?ß?Ł$Į?!j@jÆ?@²ō~@ū9¾@Dż@ŒÄ#ÓăbÓ É”ÓUįӞS Ōę˜_Ō/ŽžŌw#ŽŌĄhÕ ®\ÕQó›Õš8ŪÕā}Ö+ĆYÖs™Ö»MŲÖ“×MŲVו–׎bÕ×&ØŲoķSŲø2“ŲxŅŲH½Ł‘QŁŁGŁ"ĻŁjŅڳNŚü\ŚD¢ĢŚē ŪÕ,KŪrŠŪf·ÉŪÆüÜ÷AHÜ@‡‡ÜˆĢĘÜŃŻWEŻbœ„Ż«įĆŻó&Ž;lBŽ„±ŽĢöĄŽ<ß^?ߦĘ~ßļ ¾ß7Qżß€–<ąČŪ{ą!»ąYfśą¢«9įźšxį36øį{{÷įÄĄ6ā vāUKµāžōāęÕ3ć/sćw`²ćĄ„ńćė0äQ0pä™uÆäāŗīä+.åsEm弊¬åŠėåL+ę•Zjꯟ©ę&åčęo*(ē·og給ēHśåē‘?%裄dč"Ź£čjćč³T"éū™aéDß é$ąéÕiźÆ^źfōźÆ9Żź÷~ė?Ä[ėˆ ›ėŃNŚė”ģbŁXģŖ˜ģóc×ģ<©ķ„īUķĢ3•ķyŌķ]¾ī¦SīīH’ī7ŽŃī€ÓļČPļ^ļY£Īļ¢č šź-Mš3sŒš{øĖšÄż ń CJńUˆ‰ńžĶČńęņ/XGņw†ņĄāÅņ(óPmD󙲃óā÷Āó*=ōs‚Aō»Ē€ō ĄōLR’ō•—>õŻÜ}õ&"½õngüõ·¬;ö’ńzöH7ŗö‘|łöŁĮ8÷"x÷jL·÷³‘ö÷ūÖ5ųCuųŒa“ųÕ¦óųģ2łf1rłÆv±ł÷»šł@0śˆFośŠ‹®śŃķśa-ūŖ[lūó «ū;ęźū„+*üĢpiü¶Øü]ūēü¦@'żī…fż7Ė„żåżČU$ž›cžYą¢ž¢%āžźj!’3°`’{õŸ’Ć:ß’ €TÅ] ęOÜ.•wŚZĄšeŁPŖ™ļWį4—*zÖræ»UJ”LÓ•ŌŻR&_‘n¤Š·é’.OHtސ¹ĶŁž !DLj‰‹³ĪŹū DYIŒžˆŌćĒ)enF®³…÷ųÄ?> ˆƒC ŠČ‚ Ā aS Ŗ˜@ ņŻ ;#æ ƒhž Ģ­= ó| ]8¼ ¦}ū īĀ: 7z M¹ Ē’ų Ų7 Yw ”b¶ ź§õ 3ķ4{2tÄw³ ½ņT2Gq匰.Ņļw/æ\n¢­Pēģ™,,įqk*·Ŗrüé»A)‡hĻ”ēŻV&&œenᤷ&ä’k#H±bö”Ų;į! jĘ_² ŸūPŽD–ŒŪ\Ō œfŪe«®šYö5™?{ŲˆĄŠWK–aÕŖÕņT;`“ƒ„ŅĢź0Q]u„ŗĻī’7ENŠČĻĢ XZK”ŸŠéäÉ2* {oHĆ“‡ śĘU?„EåɄ.ÄvTæ™B߁P$Į™i į®? *ō~ r9¾ »~ż Ä6a ~6©O½6ņ”ü6:Ś;7ƒ{7Ģdŗ7Ŗł7]ļ88„4x8ķy·86æö8~69ĒIu9“9XŌó9”3:é^r:2¤±:zéš:Ć.0; to;T¹®;œžķ;åC-<.‰lr³f>ŗų„>>å>Kƒ$?”Čc?Ż £?%Sā?m˜!@¶Ż`@ž" @Ghß@­AŲņ]A!8Ai}ÜA²ĀBś[BCMšB‹’ŁBŌ×CXCeb—C­§ÖCöģD?2UD‡w”DмÓDE`GRE©Œ‘EńŃŠE:Fƒ\OFĖ”ŽFēĶF\, G„qLGķ¶‹G6üŹGž§øęģSø.2“øwwŅøæ¼¹Q¹QG¹™ŒĻ¹āŃŗ*Nŗs\ŗ»”Ģŗē »L,K»•qлݶɻ&ü¼oAH¼·†‡¼ĢƼH½‘VE½Ł›„½!įýj&¾³kB¾ū°¾DöĄ¾Œ;æÕ€?æĘ~æf ¾æ®Pżæ÷•<Ą?Ū{Ąˆ »ĄŠeśĄ«9ĮbšxĮŖ5øĮóz÷Į;Ą6Ā„vĀĢJµĀōĀ]Õ3ƦsĆī_²Ć7„ńƀź0ÄČ/pÄuÆÄYŗīÄ¢’-ÅźDmÅ2ЬÅ{ĻėÅÄ+Ę ZjĘUŸ©ĘäčĘę)(Ē.ogĒw“¦ĒæłåĒ?%ČP„dșɣČįćČ*T"És™aɻޠÉ$ąÉLiŹ•®^ŹŻóŹ%9ŻŹn~Ė·Ć[Ė’›ĖHNŚĖ‘“ĢŁŲXĢ"˜Ģjc×̲ØĶūķUĶC3•ĶŒxŌĶÕ½ĪSĪfH’Ī®ŃĪ÷ŅĻ?Pψ]ĻŠ¢ĪĻč Ša-MŠŖrŒŠó·ĖŠ;ż фBJŃ̇‰ŃĶČŃ]Ņ„WGŅīœ†Ņ7āÅŅ'ÓČlDÓ²ƒÓY÷ĀÓ¢<ŌźAŌ2Ē€Ō{ ĄŌĆQ’Ō —>ÕTÜ}՝!½ÕęfüÕ.¬;ÖwńzÖæ6ŗÖ|łÖPĮ8יx×įK·×*‘ö×rÖ5Ų»uŲa“ŲL¦óŲ•ė2ŁŻ0rŁ&v±Łn»šŁ¶0Ś’EoŚH‹®ŚŠķŚŁ-Ū![lŪj «Ū²åźŪū**ÜCpi܌µØÜŌśēÜ@'Że…fݮʄŻ÷åŻ?U$ވšcŽŠß¢Ž%āŽaj!ß©Æ`ßņōŸß;:ß߃ąĢÄ]ą ą]OÜą¦”įīŁZį6šįdŁįĒ©āļWāY4—ā”yÖāź¾ć2Uć{I”ćƎÓć ŌäTRä^‘ä壊ä.éåv.OåæsŽå¹ĶåPž ę™CLęįˆ‹ę*ĪŹęr ēŗXIēžˆēLćĒē”(čŻmFč&³…čnųÄč¶=é’‚CéGČ‚é ĀéŲRź!˜@źjŻź²"æźūgžźC­=ėŒņ|ėŌ7¼ė}ūėeĀ:ģ®zģöL¹ģ?’ųģ‡×7ķŠwķb¶ķa§õķŖģ4īņ1tī:w³īƒ¼ņīĖ2ļGqļ]Œ°ļ„Ńļļī/š7\nš”­šĒęģš,,ńXqkń”¶Ŗńéūéń2A)ņ{†hņĆ˧ņ ēņTV&ó›eóåą¤ó.&äóvk#ōæ°bōö”ōP;įō˜€ õįÅ_õ* ŸõrPŽõŗ•öŪ\öK œö”eŪöÜŖ÷%šY÷n5™÷¶zŲ÷’æųGWųJ–ųŲÕų!ÕłiTł²_“łś¤ŅłCźśŒ/QśŌtśŗĻśe’ū®DNūö‰ū>ĻĢū‡ üŠYKüŸŠüaäÉüŖ) żņnHż;“‡żƒłĘżĖ>ž„Ež\Ʉž„ÄžīS’6™B’ށ’Ē#Į’iX®?”ó~é8¾2~żzĆ<Ć| N»T“śŲ9åy.cøvØ÷¾ķ63vOxµ˜½ōį4)Hsr²»Ņń1K]p”¢ÆÜēī%-.mrm¶·¬’üėGB+‡jŲĢ©!éiW(²œgśį¦C'ę‹l% Ō±d ÷£ e<ć ®" öĘa > ” ‡Qą Ļ– Ü^ `!ž ©fŻ ņ« :ń[ ƒ6› Ė{Ś Į \Y „K˜ ķ× 6Ö~VĒ`•¦ŌXė”0Séu’2»ŃzĀEP ‹TŠĪœåZM- ŒvåĖæ* pJOµ‰˜śČą?)…GqʆŗĘUKšD”߃Ü$Ć%jmÆA¶ō€ž9ĄG’Ä>Ų ~!O½i”ü²Ł;ś{Bdŗ‹©łÓī84xey·­¾öö6>Iu‡Ž“ĻÓó3`^r©£±ńčš:.0‚soĖø®žķ\C-„ˆlķĶ«6ė~X*ʝićØX(č m'é²f2ų„z=åƂ$ ČcS £œRāä—! -Ż` v"  ¾gß ­!Oņ]!˜7!ą|Ü!)Ā"q["ŗLš"’Ł"K×#”X#Üa—#%§Ö#mģ$¶1U$žv”$F¼Ó$%ŲFR% Œ‘%iŃŠ%±&ś[O&C”Ž&‹ęĶ&Ó+ 'qL'd¶‹'­ūŹ'õ@ (>†I(‡Ėˆ(ĻČ(V)`›F)©ą…)ń%Å):k*‚°C*Ėõ‚*;Ā*\€+„Å@+ķ €+6Pæ+~•ž+ĒŚ=, },We¼, Ŗū,éļ:-15z-zz¹-Āæų- 8.SJw.œ¶.äŌõ.-5/u_t/¾¤³/źņ/O/20˜tq0ą¹°0)’ļ0qD/1ŗ‰n1Ļ­1Jķ1“Y,2ܞk2$äŖ2m)ź2¶n)3ž³h3Gł§3>ē3׃&4 Ée4h„4±Sä4ś˜#5BŽb5‹#¢5Óhį5® 6dó_6­8Ÿ6õ}Ž6>Ć7†]7ĻMœ7“Ū7`Ų8©Z8ńb™8:ØŲ8‚ķ9Ė2W9x–9[½Õ9¤:ķGT:5“:~ŅŅ:Ē;]Q;W¢; ēĻ;č,<1rNuœH>¾į‡>'Ē>Ol?—±E?ąö„?(<Ä?q@ŗĘB@ ‚@KQĮ@“–AŪŪ?A$!Alf¾Aµ«żAžšņE†E1FΊpFŠÆF`ļFØZ.GńŸmG9å¬G‚*ģGźÕ5ø2uø{`“øĆ„óø ė2¹T0r¹œu±¹åŗš¹.0ŗvEoŗæŠ®ŗŠķŗP-»˜Zl»įŸ«»)åź»r**¼ŗoi¼µØ¼Lśē¼”?'½Ż„f½%Ź„½nå½¶T$¾’™c¾Gߢ¾$ā¾Ųi!æ!Æ`æjōŸæ²9ßæū~ĄCÄ]ĄŒ ĄŌNÜĄ”ĮeŁZĮ®šĮöcŁĮ?©‡īWĀŠ3—ĀyÖĀa¾Ć©UĆņH”Ć:ŽÓƃÓÄĖRÄ^‘Ä]£ŠÄ„čÅī-OÅ6sŽÅøĶÅĒż ĘCLĘXˆ‹Ę”ĶŹĘé Ē2XIĒ{ˆĒĆāĒĒ (ČTmFȜ²…Čå÷ÄČ-=Év‚CɿǂÉ ĀÉPRʘ—@ŹįÜŹ)"æŹrgžŹŗ¬=Ėņ|ĖK7¼Ė”|ūĖÜĮ:Ģ%zĢnL¹Ģ¶‘ųĢ’Ö7ĶGw͐a¶ĶŲ¦õĶ ģ4Īi1tβv³Īś»ņĪC2όFqĻŌ‹°ĻŃļĻe/Š­[nŠö ­Š>ęģŠ‡+,ŃŠpkѶŖŃaūéŃ©@)Ņņ…hŅ:˧҃ēŅĖU&Ó›eÓ\ą¤Ó„%äÓķj#Ō6°bŌõ”ŌĒ:įŌ€ ÕXÅ_Õ  ŸÕéOŽÕ1•ÖzŚ\ÖĆœÖ eŪÖTŖםļY×å4™×-zŲ×væŲ¾WŲJ–ŲOÕؘŌŁįTŁ)_“Łr¤ŅŁŗéŚ/QŚKtŚ”¹ĻŚÜžŪ%DNŪm‰Ū¶ĪĢŪž ÜGYKܐžŠÜŲćÉÜ ) ŻinHݱ³‡ŻśųĘŻB>Ž‹ƒEŽŌȄŽÄŽeSß­˜Bßö݁ß>#Į߇hąĻ­?ąó~ą`8¾ą©}żąņĀ<į:|įƒM»įĖ’śįŲ9ā\yā¤bøāķ§÷ā6ķ6ć~2vćĒwµć½ōćX4ä”Gsä録ä1Ņńäz1åĀ\på ¢ÆåSēīåœ,.ęåqmę-·¬ęvüėę¾A+ē‡jēOĢ©ē˜éēąV(č)œgčqį¦čŗ&ęčl%éK±dé”ö£éÜ;ćé$"źmĘaźµ ”źžPąźG–ėŪ^ėŲ žė!fŻėi«ģ±š[ģś5›ģB{Śģ‹ĄķÓYķK˜ķe×ķ­ÕīöVī>`•ŌīĻźļ0Sļ`u’喙Ńļń’š:EPš‚ŠšĖĻĪšń\ZMń„ŸŒńķäĖń5* ņ~oJņĘ“‰ņśČņX?ó „GóéɆó1ĘózTōĀ™Dō ߃ōS$Ćōœiõä®Aõ-ō€õv9Ąõ¾~’õÄ>öO ~ö˜N½öą“üö(Ł;÷q{÷ŗcŗ÷©ł÷Kī8ų“3xųÜx·ų%¾öųm6łµHułž“łFÓół3ś×]rś £±śičšś±-0ūśroūBø®ū‹żķūÓB-üˆlüdĶ«ü­ėüõW*ż>iż‡āØżĻ'čżm'ž`²fž©÷„žń<åž9‚$’‚Ēc’Ė £’Rā’\—!¤Ü`ķ! 5gß~¬Ęń]7W|Ü Įč[1Lšz‘ŁĀÖ XSa—œ¦Öäė,1Uuv”¾»ÓOFR˜‹‘ąŠŠ)q[O¹ ŽęĶJ+ “pLܵ‹$ūŹm@ µ…IžŹˆFȏU ךF ą… h%Å ±j łÆC Bõ‚ ‹:Ā Ó Å@ d € ­Oæ õ”ž =Ś= †} Ļd¼ Ŗū `ļ: ©4z ńy¹ 9æų ‚8ŹIw¶[Ōõ¤5ķ^t5¤³~éņĘ.2tqW¹° žļčC/1‰nyĪ­Āķ Y,SžkœćŖä(ź-n)u³h½ų§>ēOƒ&—Čeą „(Säq˜#ŗŻb#¢Jhį“­ Ūņ_$8Ÿl}ŽµĀž]FMœ’Ū×× Zhb™°§ŲłģB2WŠw–Ó¼ÕdGT­Œ“õŃŅ=†\QĪ”ēĻ`,ØqNń¶9üĢ‚A ʆK̊[ʤV ģ›H5į‡}&ĒĘk±EWö„ ;Äč€ 1ĘB y ‚ ĮPĮ –!SŪ?!› !äe¾!-«ż!uš<"½5|"{»"NĄś"—:#ßJy#(ø#qÕ÷#¹7$`v$J„µ$“źō$Ū/4%$us%lŗ²%µ’ń%żD1&FŠp&ŽĻÆ&×ļ& Z.'hŸm'±ä¬'ł)ģ'Ao+(Š“j(Ņł©(?é(d„()¬Ég)õ§)>Tę)†™%*ĪŽd*$¤*_ić*Ø®"+šóa+99”+‚~ą+ŹĆ, _,[Nž,¤“Ż,ģŲ-5\-}c›-ĘØŚ-ī.W3Y.Ÿx˜.č½×.1/yHV/Į•/ ÓŌ/R0›]S0㢒0,čŃ0u-1½rP1ø1NżĪ1—B2߇M2(͌2pĢ2¹W 3J3Jā‰3“'É3Ūl4$²G4l÷†4µ<Ę4ż5EĒD5Ž „5×QĆ5—6hÜA6°!6łfĄ6B¬’6Šń>7Ņ6~7|½7cĮü7¬<8ōK{8=‘ŗ8†Öł8Ī99ax9_¦·9Øėö9š06:9vu:»“:Źō:F3;[‹r;¤Š±;ģń;5[0<} o<Åå®<+īĀŹi> ©>RUč>›š'?ćßf?,%¦?tjå?½Æ$@õc@N:£@—ā@ßÄ!A( aApO A¹”ßAŚBJ^B’dBŪ©ÜB#ļCl4[CµyšCż¾ŁCFDŽIXD֎—DŌÖDgE°^UEł£”EAéÓEŠ.FŅsRF¹‘FcžŠF¬CGōˆOG=ĪŽG…ĪGķ¾ø6Wø~I–øĒŽÕøŌ¹XT¹ ^“¹é£Ņ¹1éŗz.QŗĀsŗ ¹ĻŗSž»œCN»åˆ»-ĪĢ»v ¼¾XK¼žŠ¼Oćɼ—( ½ąmH½)³‡½qųƽŗ=¾ƒE¾KȄ¾“ ľÜRæ$˜Bæm݁æµ"ĮæžgĄG­?Ąņ~ĄŲ7¾Ą }żĄiĀ<Į±|ĮśL»ĮB’śĮ‹×9ĀÓyĀbøĀd§÷Ā­ģ6Ćö1vĆ>wµĆ‡¼ōĆĻ4ÄGsÄ`Œ²ÄØŃńÄń1Å:\pł”ÆÅĖęīÅ,.Ę\qmʤ¶¬ĘķūėĘ5A+Ē~†jĒĘĖ©ĒéĒXV(Č ›gČ鹦Č1&ęČzk%ɰdÉ ö£ÉS;ćɜ€"ŹäÅaŹ- ”ŹuPąŹ¾•ĖŪ^ĖO žĖ—eŻĖąŖĢ(š[Ģq5›Ģ¹zŚĢĄĶKYĶ“J˜Ķ܏×Ķ$ÕĪmVε_•Īž¤ŌĪFźĻ/SĻ×t’Ļ ŗŃĻi’бDPŠś‰ŠBĻĪŠ‹ŃÓYMŃŸŒŃdäĖŃ­) ŅõnJŅ>“‰Ņ†łČŅĻ>Ó„GÓ`ɆӨĘÓńSŌ9™DŌ‚ŽƒŌĖ#ĆŌiÕ\®AÕ¤ó€Õķ8ĄÕ5~’Õ~Ć>ÖĘ~ÖN½ÖW“üÖ Ų;×č{×1cŗ×zØł×Āķ8Ų 3xŲSx·Ų›½öŲä6Ł,HuŁu“پŅóŁ3ŚO]rژ¢±ŚąēšŚ(-0ŪqroŪ¹·®ŪżķŪJB-ܓ‡lÜÜĢ«Ü$ėÜmW*ݵœiŻžįØŻF'诎l'Ž×±fŽ ÷„Žh<厱$ßłĘcßB £ß‹QāßӖ!ąÜ`ąd! ą¬fßąõ«į=ń]į†6įĻ{ÜįĮā`[āØKšāńŁā9Öć‚XćŹ`—ć¦Öć[ėä¤0Uäķu”ä5»Óä~åĘERå‹‘åWŠŠåŸęčZOę1 ŽęyåĶęĀ* ē pLēSµ‹ēœśŹēä? č,…Ičuʈč½ČčUéNšFé—ß…éą$Åé(jźqÆCź¹ō‚ź:ĀźJė’Ä@ėŪ €ė$Oæėl”žėµŁ=ģž}ģFd¼ģ©ūģ×ī:ķ4zķhy¹ķ°¾ųķł8īBIwīŠŽ¶īÓÓõī5ļd^tﬣ³ļõčņļ=.2š†sqšĪø°šžļš_C/ń؈nńńĶ­ń9ķń‚X,ņŹkņćŖņ[(źņ£m)óģ²hó5ų§ó}=ēóʂ&ōČeōW „ōŸRäōč—#õ0Żbõy"¢õĮgįõ ­ öSņ_ö›7Ÿöä|Žö,Ā÷u]÷½Lœ÷’Ū÷N×ų—Zųßa™ų(§Ųųpģł¹1Włw–łJ¼Õł“śŪFTś#Œ“ślŃŅś“ūż[QūF”ūŽęĻū×+ü qNüh¶ü°ūĢüł@ żA†KżŠĖŠżŅŹżV žd›Hž¬ą‡žõ%Ēž=k’†°E’Īõ„’;Ä’_€ØÅBš ‚9PĮ‚•ŹŚ? [e¾£Ŗżģļ<45|}z»Ęæś:WJyŸøčŌ÷07y_vĮ¤µ źōR/4›tsć¹²,’ńuD1½‰pĻÆNļ—Y.ߞm'ä¬p)ģ¹n+“jJł©“>éۃ( $Ég l§ “Sę ż˜% EŽd Ž#¤ ×hć ®" hóa °8” ł}ą AĆ Š_ ŅMž “Ż cŲ ¬\ ōb› =ØŚ †ķĪ2Yx˜_½×§šGV8•ŅŌŹ]S[¢’¤ēŃģ,4rP}·ÅüĪBV‡MŸĢŒčĢ0W yœJĮበ'ÉRl›±Gćö†,<Ęt½ĘD „NQĆ—–ßŪA(!pfĄø«’ń>I6~’{½ŪĄü#<lK{“ŗżÕłE9Ž`xÖ„·ėög06°uułŗ“AōŠE3Ҋrбcń«Z0ōŸo=å®…*īĪo-µl_ś«Ø?ėš„*8Źi©ÉTčš'Zßf£$¦ģiå4Æ$ }ōc Å9£ ā VÄ!!Ÿ a!ēN !0”ß!xŁ"Į^" d"R©Ü"›ī#ć3[#+yš#t¾Ł#¼$IX$NŽ—$–ÓÖ$ß%'^U%p£”%øčÓ%.&IsR&’ø‘&ŚżŠ&#C'kˆO'“ĶŽ'żĪ'EX (ŽL(Öā‹((Ė(gm )°²I)ų÷ˆ)A=Č)‰‚*ŅĒF* †*cRÅ*¬—+ōÜC+<"ƒ+…gĀ+ͬ,ņ@,_7€,§|æ,šĮž,8>-L}-ɑ¼-×ū-Z;.£az.릹.4ģų.}18/Åvw/¼¶/Vö/ŸF50ē‹t0/ѳ0xó0Į[21 ”q1Rę°1š+š1ćp/2,¶n2tū­2¼@ķ2†,3MĖk3–«3ŽUź3'›)4pąh4ø%Ø4kē4I°&5’õe5Ś:„5#€ä5kÅ#6“ c6üO¢6E•į6ŽŚ 7Ö`7eŸ7gŖŽ7°ļ8ų4]8@zœ8‰æŪ8Ņ9JZ9c™9«ŌŲ9ō:<_W:…¤–:ĶéÕ:/;^tT;§¹“;ļžŅ;8D<‰Q<Éΐ<ŠÅ³K> łŠ>V>Ź>Ÿƒ ?ēČH?0ˆ?xSĒ?Ą˜@ ŽE@Q#…@šhÄ@ć­A+óBAt8‚A¼}ĮAĆBM@B–MBŽ’¾B'ŲżBo=Cøb|CØ»CIķśC’2:DŚwyD#½øDkųD“G7EüŒvEDҵEõEÖ\4F¢sFgē²F°,ņFųq1G@·pG‰üÆGŃAļG9ķ8ø2xøŹw·ø½öø[6¹¤Gu¹ģŒ“¹5Ņó¹}3ŗĘ\rŗ¢±ŗWēšŗŸ,0»čqo»0·®»yüķ»ĀA-¼ ‡l¼SĢ«¼›ė¼äV*½,œi½tᨽ½&č½l'¾N±f¾—ö„¾ą;å¾($æqĘcæ¹ £æQāæJ–!Ą’Ū`ĄŪ  Ą$fߥl«Įµš]Įž5ĮF{ÜĮŽĄĀ×[ĀKšĀhŁĀ°ÕĆłXĆB`—ĆŠ„ÖĆÓźÄ0UÄdu”ĬŗÓÄõ’Å=ERņŠ‘ÅĪĻŠÅĘ_ZOĘØŸŽĘńäĶĘ9* ǁoLĒŹ“‹ĒśŹĒ[? Č£„IČģɈČ5ČČ}TÉʙFÉ߅ÉW$ÅɟiŹč®CŹ0ō‚Źy9ĀŹĮ~Ė Ä@ĖS €Ė›NæĖ䓾Ė,Ł=Ģu}̽c¼Ģ©ūĢNī:Ķ—3zĶßx¹Ķ(¾ųĶp8ιHwĪ޶ĪJÓõĪ’5ĻŪ]tĻ#£³ĻlčņĻ“-2ŠżrqŠFø°ŠŽżļŠ×B/ŃˆnŃhͭѰķŃłW,ŅAkҊāŖŅŅ'źŅm)Ód²hÓ¬÷§Óõ<ēÓ=‚&Ō…ĒeŌĪ „ŌRäŌ_—#ÕØÜbÕš!¢Õ9gįՁ¬ ÖŹń_Ö7ŸÖ[|ŽÖ£Į×ģ]×4Lœ×}‘Ū×ÅÖŲZŲWa™ŲŸ¦ŲŲčėŁ01WŁyv–ŁĮ»ÕŁ ŚRFTŚ›‹“ŚćŠŅŚ,Ūu[QŪ½ ŪęĻŪN+ܖpNÜßµÜ'ūĢÜp@ ݹ…KŻˊŻJŹŻ’U ŽŪšHŽ#ą‡Žl%ĒŽ“jßżÆEßEõ„ߎ:ÄßÖąÅBąh ‚ą°OĮął”įAŚ?į‰įŅd¾įŖżįcļ<ā¬4|āōy»ā=æśā†:ćĪIyćøć_Ō÷ć§7äš^vä8¤µäéōäŹ.4åtså[¹²å£žńåģC1ę4‰pę}ĪÆęÅļęY.ēVžmēŸć¬ēē(ģē0n+čy³jčĮų©č >éčRƒ(éšČgéć §é+Sęét˜%ź½Żdź#¤źNh漖­"ėßņaė'8”ėp}ąėøĀģ_ģIMžģ’’ŻģŪ×ķ#\ķlb›ķ“§ŚķżģīE2Yīw˜īÖ¼×īļgGVﰌ•ļłŃŌļAšŠ\SšŅ”’šēŃšc,ń«qPńō¶ń=üĪń…AņΆMņ̌ņ_Ģņ§V óš›Jó8į‰ó&ÉóÉkō±GōZö†ō£;Ęōģ€õ4ĘDõ} „õÅPĆõ –öVŪAöž öēeĄö0«’öxš>÷Į5~÷ {½÷RĄü÷š<ųćJ{ų+ŗųtÕłų¼9ł`xłN„·ł–źöłß/6ś'uuśpŗ“śø’óśE3ūIŠrū’ϱūŚńū#Z0ükŸoü“ä®üż)īüEo-żŽ“lżÖł«ż?ėżg„*žÆÉižų©žAT辉™'’ŅŽf’$¦’ciå’«®$ōóc<9£…~āĶĆ! a_N §“ßšŲ8^cÉØÜīZ3[£xšė½Ł4|HXō—ÓÖVž]U碔/čÓx-ĄrR ø‘RżŠšBć‡O+ĶŽtμW LMā‹–'ĖŽl '²I p÷ˆ ø<Č ‚ IĒF ’ † ŚQÅ "— kÜC “!ƒ üfĀ E¬ ń@ Ö6€ |æ gĮž Æ> ųK} @‘¼ ‰Öū Ń;azc¦¹«ėųō08Ģ3*„ 4sÉJ4»Š4TÉ4M™5•ŽG5Ž#‡5'iĘ5o®6·óD69„6H~Ć6‘Ć7ŁB7"N7k“Ą7³Ų’7ü?8Dc~8Ø½8Õķü83<9fx{9ƽŗ9÷ś9@H9:ˆx:ŃŅ·:÷:b]6;Ŗ¢u;óē“;;-ō;„r3<Ģ·r<ż±<^Bń<¦‡0=ļĢo=7Æ=€Wī=Ȝ->āl>Y'¬>¢lė>ź±*?3÷i?|<©?āč? Ē'@U g@žQ¦@ę–å@.Ü$Aw!dAĄf£A¬āAQń!Bš6aBā{ B+ĮßBsC»K^C‘CLÖÜC•DŽ`[D&¦šDoėŁD·0EvXEH»—E‘×EŁEF"‹UFjŠ”F³ŌFūZGD RGå‘GÕ*ŃG=Öø…ZøĪ`™ø¦Ųø_ė¹§0W¹šu–¹8»Õ¹ŗŹETŗ‹“ŗ[ŠŅŗ£»ģZQ»4 »|åĻ»Å*¼pN¼Vµ¼ŸśĢ¼ē? ½0…K½xʊ½Įʽ U ¾RšH¾šß‡¾ć$Ǿ+jætÆEæ½ō„æ:ÄæNĄ–ÄBĄß ‚Ą'OĮĄo”ĮøŁ?ĮĮId¾Į’©żĮŪī<Ā#4|Āly»Ā“¾śĀü:ĆEIyƍŽøĆÖÓ÷Ć7Äg^vİ£µÄųčōÄA.4ʼnssÅŅø²ÅžńÅcC1Ę«ˆpĘōĶÆĘ<ļʅX.ĒĪmĒć¬Ē_(ģǧm+Čļ²jČ8ų©Č€=éČɂ(ÉČgÉZ §É£RęÉģ—%Ź4ŻdŹ|"¤ŹÅgćŹ ­"ĖVņaĖž7”Ėē|ąĖ0ĀĢx_ĢĮLžĢ ’ŻĢR×͚\Ķća›Ķ+§ŚĶtģμ1YĪw˜ĪM¼×Ī–ĻßFVĻ'Œ•ĻpŃŌĻøŠ\SŠI”’Š‘ęŃŠŚ+Ń#qPŃk¶Ń“ūĪŃü@ŅE†MŅĖŒŅÖĢŅV Óg›JÓÆą‰Óų%ÉÓAkŌ‰°GŌŅõ†Ō;ĘŌc€Õ«ÅDÕó „Õ×85~׀z½×Éæü×<ŲZJ{Ų¢ŗŲėŌłŲ49Ł|_xŁÅ¤·Ł źöŁV/6ŚžtuŚē¹“Ś/’óŚxD3ŪĄ‰rŪ Ļ±ŪRńۚY0ÜćžoÜ+ä®Üt)īܼn-Ż“lŻMł«Ż–>ėŻŽƒ*Ž'ÉiŽp©ŽøS讙'ßIŽfߑ#¦ßŚhåß"®$ąkócą“8£ąü}āąEĆ!įaįÖM į“ßįgŲāÆ^āųbā@ØÜā‰ķćŃ2[ćxšćc½Łć«äōGXä<—ä„ŅÖäĶå]Uå^¢”å§ēÓåļ,ę8rRꁷ‘ęÉüŠęBēZ‡Oē¢ĢŽēėĪē3W č|œLčÅį‹č 'ĖčVl 鞱Iéēöˆé/<ČéxźĄĘFź †źQQÅźš–ėāŪCė+!ƒėtfĀ뼫ģń@ģM6€ģ•{æģŽĄžģ&>ķoK}ķø¼ķÖūķI;ī‘`zīŚ„¹ī"ėųīk08ļ³uwļüŗ¶ļDöļE5šÖŠtšгšgóšÆZ2ńųŸqń@å°ńˆ*šńŃo/ņµnņbś­ņ«?ķņó„,ó<Źkó…«óĶTźóš)ō^ßhō¦$Øōļiēō7Æ&õ€ōeõÉ9„õäõZÄ#ö¢ cöėN¢ö3”įö{Ł ÷Ä`÷ dŸ÷U©Ž÷žīųē3]ų/yœųx¾ŪųĄłIZłQŽ™ł™ÓŲłāś+^Wśs£–ś¼čÕś.ūMsTū•ø“ūŽżŅū&CüoˆQü·ĶüŠüHXż‘NżŚāż"(Ķżkm ž³²Kžü÷ŠžD=ŹžŒ‚ ’ÕĒH’ ˆ’fRĒ’Æ—ųÜE@"…ˆgÄѬņBb7‚Ŗ|ĮóĮ<@„LĶ‘¾׿^=¦a|僚7ģś€1:Čvy¼øZų¢F7ė‹v3ѵ|õÄ[4 ”sUę²ž+ņęp1/¶pwūÆĄ@ļ †.QĖm™­āUģ*›+ sąj »%Ŗ ké M°( •õg Ž:§ &€ę oÅ% · e P¤ H•ć ‘Ś" Łb "e” kŖą ³ļ ü4_ Dzž ŒæŻ ÕJ\f›ÆŌŚ÷@_Yˆ¤˜Ńé×/btVŖ¹•óžŌ;D„‰SĢĪ’Ņ^Y¦žPļć7)Ļ€nȳMłŒY>Ģ¢ƒ źČJ3Š|SÉĘ ŽGU#‡hĘę­.óDw8„Ą}ĆĆQB™Mā’Ą*Ų’s?»b~ؽLķü•2<Żw{&½ŗoś·G9xHŅ·÷Ł\6!¢uj瓳,ōūq3D·rü±ÕAń‡0fĢo®Æ÷Vī?œ-ˆįlŃ&¬lėb±*Ŗöió;©;č„Ę' Ģ g Q¦ ]–å ¦Ū$!ī d!7f£!€«ā!Čš!"6a"Y{ "”Ąß"ź#2K^#{#ÄÕÜ# $U`[$„š$꟣$.0%wuX%æŗ—%×%PE&™ŠU&āĻ”&*Ō&sZ'»ŸR'å‘'L*Ń'”o(Ż“O(&śŽ(n?Ī(·„ )’ÉL)HŒ)‘TĖ)Ł™ *!ßI*j$‰*²iČ*ū®+CōF+Œ9†+Õ~Å+Ä,f D,®Nƒ,÷“Ā,?Ł-ˆA-Šc€-©æ-aīž-Ŗ3>.óx}.;¾¼.„ü.ĢH;/Žz/]Ó¹/„ł/ī]807£w0č¶0Č-ö0s51Yøt1”ż³1źBó12ˆ22{Ķq2Ʊ2 Xš2U/3ān3ę'®3.mķ3w²,4æ÷k4=«4P‚ź4™Ē)5į i5*RØ5r—ē5»Ü&6"f6Lg„6•¬ä6Żń#7%7c7n|¢7¶Įį7’!8HL`8‘Ÿ8ŁÖŽ8"9ja]9²¦œ9ūėŪ9C1:ŒvZ:Ō»™:Ł:fF;®‹W;÷Š–;?Ö;ˆ[<Š T<ę“ĖN>]Ž>„UĶ>īš ?6ąK?%‹?ĒjŹ?° @YõH@”:ˆ@źĒ@2ÅA{ FAĆO…A •ÄATŚBCBåd‚B.ŖĮBwļCæ4@CzCPæ¾C™žCįI=D)|DrŌ»D»ūD_:EL¤yE”éøEŻ.ųE%t7Fn¹vF¶žµF’CõFG‰4GĪsGŲ³G!YņG‰<øŃI{øŗøcŌłø«9¹ó^x¹<¤·¹„éö¹Ķ.6ŗtuŗ^¹“ŗ§žóŗļC3»8‰r»€Ī±»Éń»Y0¼Zžo¼¢ć®¼ė(ī¼3n-½|³l½Äų«½ >ė½Vƒ*¾žČi¾ę ©¾/Sč¾w˜'æĄŻfæ#¦æQh忚­$ĄāņcĄ+8£Ąs}āĄ¼Ā!ĮaĮMM Į•’ßĮŽ×Ā&^ĀobĀø§ÜĀķĆI2[ƑwšĆڼŁĆ"ÄjGXijŒ—ÄüŃÖÄDō\UÅÕ””ÅēÓÅg,ĘÆqRĘ÷¶‘Ę@üŠĘˆAĒцOĒĢŽĒbĪĒ«V Čó›LČ<į‹Č„&ĖČĶk ɱIÉ^öˆÉ¦;ČÉļ€Ź7ĘFŹ€ †ŹÉPÅŹ–ĖZŪCĖ¢ ƒĖźeĀĖ3«Ģ{š@ĢÄ5€Ģ {æĢUĄžĢž>ĶēJ}Ķ/¼ĶwÕūĶĄ;Ī`zĪQ„¹Ī™źųĪā/8Ļ+uwĻsŗ¶Ļ¼’õĻE5ŠMŠtŠ•Ļ³ŠŽóŠ&Z2ŃoŸqŃ·ä°Ń*šŃHo/Ņ‘“nŅŚł­Ņ"?ķŅj„,Ó³ÉkÓū«ÓDTźÓŒ™)ŌÕŽhŌ$ØŌfiēŌÆ®&Õ÷óeÕ@9„Ո~äÕŃĆ#Ö cÖbN¢ÖŖ“įÖóŲ ×<`ׄcŸ×ĶØŽ×īŲ^3]Ų¦xœŲī½ŪŲ7Ł€HZŁČ™ŁÓŲŁYŚ¢]WŚė¢–Ś3čÕŚ{-ŪÄrTŪ ø“ŪUżŅŪBÜę‡QÜ/͐ÜwŠÜĄWŻNŻQāŻ™'ĶŻāl Ž*²KŽs÷ŠŽ»<ŹŽ‚ ßMĒHߕ ˆßŽQĒß&—ąnÜEą·!…ą’fÄąH¬į‘ńBįŁ6‚į"|ĮįjĮā³@āūKāD‘¾āŒÖżāÕ=ća|ćf¦»ć®ėść÷0:ä@vy䈻øäŃųäF7åb‹våŖŠµåņõå;[4ꄠsęĢå²ę+ņę^p1禵pēļśÆē7@ļē….čČŹmč­čYUģ袚+éźßjé3%Ŗé{jééÄÆ(ź õgźU:§źęźęÄ%ė. eėwO¤ėæ”ćėŚ"ģQbģ™d”ģā©ąģ*ļķr4_ķ»yžķæŻķLī•I\īŻŽ›ī&ŌŚīoļ·^Yļ’£˜ļHé×ļ.šŁsVš!¹•šjžŌš³CńūˆSńDĪ’ńŒŅńÕXņžPņfćņ®(Ļņ÷mó?³MóˆųŒóŃ=Ģóƒ ōbČJōŖ ŠōóRÉō;˜õƒŻGõĢ"‡õhĘõ]­ö¦ņDöī7„ö7}ĆöĀ÷ČB÷M÷Y’Ą÷”×’÷ź?ų2b~ų{§½ųÄģüų 2<łUw{ł¼ŗłęśł.G9śvŒxśæŃ·ś÷śP\6ū™”uūāę“ū*,ōūsq3ü»¶rüü±üLAńü”†0żŻĖoż&ÆżnVīż·›-ž’ąlžH&¬žkėžŁ°*’!öi’j;©’²€č’ūÅ'C gŒP¦Õ•åŪ$f d®e£÷Ŗā?š!‡5aŠz ĄßaŖJ^ó;Õ܃Ģ_[„š]źŁ„/ītX7ŗ—’ÖČDŠUYĻ””ŌźY2ŸR{ä‘Ć)Ń oT“OłŽę>Ī.„ wÉL æŒ TĖ P™ ˜ŽI į#‰ *iČ r® »óF 9† L~Å ”Ć ŻD %Nƒ n“Ā ¶Ų ’A Hc€ Øæ Łķž !3>jx}²½¼śüCH;ŒzŌҹłe]8®¢w÷ē¶?-ö‡r5Š·tż³aBó©‡2ņĢq;±ƒWš̜/ān]'®„lķī±,6÷k<«ǁźĒ)Y i”QØź–ē2Ü&{!fĆf„ ¬äTń#6cå{¢.Įįv!æK`‘ŸPÖŽ˜į`])¦œrėŪ»0vZL»™”ŁŻE%‹WnŠ–¶Ö’ZG Tå“Ų*Ó!pjµQ²śū?ŠC…‹ŹNŌŽUĶeš ®ßKö$‹?jŹˆÆ ŠōH :ˆ aĒ ©Ä!ņ F!:O…!ƒ”Ä!ĢŁ"C"]d‚"„©Į"īī#64@#y#Ǿ¾#ž#XI=$”Ž|$éÓ»$2ū${^:%Ć£y% éø%T.ų%œs7&åøv&-žµ&vCõ&æˆ4'Īs'P³'˜Xņ'į1()ćp(r(°(ŗmļ(³.)Kųm)”=­)Ż‚ģ)%Č+*n k*¶RŖ*’—é*GŻ(+"h+Ųg§+!­ę+iņ%,²7e,ś|¤,CĀć,Œ#-ŌLb-’”-e׹-­ .öa_.>§ž.‡ģŻ.Š1/w\/a¼›/©Ū/ņF0:ŒY0ƒŃ˜0ĖŲ0\1\”V1„ę•1ī+Õ16q2¶S2Ēū’2AŅ2X†3 ĖP3é32VĻ3z›4ĆąM4 &4TkĢ4œ° 5åõJ5-;Š5v€É5¾Å6 H6OP‡6˜•Ę6įŚ7) E7re„7ŗŖĆ7š8K5B8“z8ÜæĄ8%9mJ?9¶~9’Ō½9Gż9_<:Ų¤{: źŗ:i/ś:±t9;ś¹x;C’·;‹D÷;Ō‰6<Ļuär=‡)²=Ļnń=“0>`ło>©>Æ>ņƒī>:É-?ƒm?ĖS¬?™ė?\Ž*@¤#j@ķh©@6®č@~ó'AĒ8gA~¦AXĆåA %BéMdB1“£BzŲāBĀ"C caCTØ CœķßCå2D-x^Dv½D¾ŻDHEO[E˜ŅšEąŚE)]Fr¢XFŗē—F-×FKrG“·UGÜü”G$BŌGŒķøÕ2]øxœøf½Ūø®¹÷GZ¹@™¹ˆŅعѺ]Wŗa¢–ŗŖēÕŗņ,»;rT»„·“»ĢüŅ»B¼]‡Q¼¦Ģ¼īм7W½œN½Čį½'ͽYl ¾¢±K¾źöо3<ʾ{ æÄĘHæ ˆæTQĒæ–ĄęŪEĄ.!…ĄwfÄĄæ«ĮńBĮQ6‚Į™{ĮĮįĄĀ*@ĀrKĀ»¾ĀÖżĀL=ƕ`|ĆŻ„»Ć&ėśĆn0:Ä·uyÄ’ŗøÄHųĐE7ÅŁŠvÅ!еÅjõųZ4ĘūŸsĘDå²ĘŒ*ņĘÕo1ǵpĒeśÆĒ®?ļĒ÷„.Č?ŹmȈ­ČŠTģČš+ÉaßjÉŖ$ŖÉņiéÉ;Æ(ʃōgŹĢ9§ŹęŹ]Ä%˦ eĖīN¤Ė7”ćĖŁ"ĢČbĢd”ĢX©ąĢ”īĶź3_Ķ2yžĶ{¾ŻĶÄĪ I\ĪUŽ›ĪÓŚĪåĻ.^YĻv£˜Ļæč×Ļ.ŠPsVŠ™ø•ŠįżŌŠ*CŃrˆSѻ͒ŃŅŃLXŅ”PŅŻāŅ%(ĻŅnmÓ·²MÓ’÷ŒÓH=ĢӐ‚ ŌŲĒJŌ! ŠŌiRÉŌ²—ÕūÜGÕC"‡ÕŒgĘÕÕ¬ÖņDÖe7„Ö®|ĆÖöĮ×?BׇL×Š‘Ą××’×a?ŲŖa~Ųņ¦½Ų;ģü؃1<ŁĢv{ټŗŁ]śŁ„F9Śī‹xŚ6Ń·Ś÷ŚČ[6Ū”uŪYę“Ū”+ōŪép3Ü2¶rÜzū±ÜĆ@ńÜ †0ŻTĖoŻÆŻęUīŻ.›-ŽvąlŽæ%¬ŽkėŽP°*ߘõißį:©ß*€čßrÅ'ą» gąP¦ąL•åą”Ś$įÜdį%e£įnŖāį¶ļ!ā’4aāHz āæßāŁć!J^ćić²ŌÜćśäC_[䌤šäŌéŁä/åetX容—åöžÖå?DꇉUęŠĪ”ęŌęaYē©žRēņć‘ē;)Ńēƒnč̳O賎č]>Ī脃 éķČLé6ŒéSĖéǘ źŽIźY#‰ź”hČźé­ė2óFėz8†ėĆ}Åė ĆģTDģMƒģå’Āģ.ŲķvAķæb€ķØæķPķžķ˜2>īįw}ī)½¼īrüīŗG;ļzļLҹļ”łļŻ\8š%¢wšmē¶š¶,öšžq5ńG·tńü³ńŲAóń!‡2ņjĢqņ²±ņśVšņCœ/ó‹įnóŌ&®ólķóe±,ō®ökōö;«ō?źō‡Ę)õŠ iõQØõa–ēõ©Ū&öņ fö:f„öƒ«äöĖš#÷6c÷]{¢÷„Ąį÷ķ!ų6K`ų~ŸųĒÕŽųłX`]ł”„œłéźŪł20śzuZśĆŗ™ś ŁśTEūœŠWūåĻ–ū-ÖūvZüæŸTüå“üP*Óü˜ożį“Qżnõ“ż¬—Õż¼œž½WžÉӖžžÖžu£’D§R’’@ģĢ’“/ ‹ßD5ż ‰ŗÖ…ōįņ-ČŃf‘#ŸBéÖÜ#`ŌDĻūz%›°`³åzEjRN+ہ°ą“ķcē×e]ēJoé{ül¬ļrÜ3ü “ ;Vœiµ—›TÅ|ņ',ŚeK*wzy¢UĶ̽÷[“!¢9KzNt·óœ,*Å­ņģ N=;—ĄabهAˆ­üĶŅ^«÷/! 30@ 2Łc ļ‡ ,ü© ŖwĢ *ī kF )›1 "R #s ®W“ ³-³ ×„Ņ ŃĄń V ā. ĪéL %—j Šź‡ |å¤ Ų‡Į ’ŅŻ UĘł Ėc ž«0 vžK ū‰ż}Öż’žžÖž²ųżܽż•hżłü·oü¢Ģūūi:śÅKłmDų $÷ģõžœōć4ó„µń"š”qī7­ģDŅźöąč†Łę.¼ä%‰ā„@ąåāŻpŪ„čŲQLÖ¹›ÓōÖŠ5žĶ²Ė”Č5žÄ¢×Įž¾ÖQ»ó·ԁ“}ž°/i­Ā©r ¦d?¢"džÜwšĮz–m’ČNŽH Š­į…&“ß4}ĒxĒItO½oŹ!kcwfG¾ažö\– XXčļT šy.,šīĶMšĀ2ošS]šżM±šŅš ƒņš'ČńÉŌ2ńK©RńFrńT«‘ńŁ°ńŃĻń’īń# ņpr+ņZ’Iņ6}gņY3…ņµ¢ņÄĄņ“Żņ8śņ¤¶óI73óy…Oó„”k󻋇ómD£óė˾óƒ"ŚóƒHõó9>ōō+ōšEō«`ō?8zō A”ōT®ōkĒĒō™Eįō&–śō^¹õ‰Æ,õļxEõŚ^õ†võXĖŽõ|ä¦õ?Ҿõé”Öõæ,īõšöŻö’õ3ö7åJöńŖaöqGxöūŗŽöĻ„ö0(»ö_"Ńö ōęö0ŸüöS"÷F~'÷K³<÷”ĮQ÷†©f÷9k{÷ų÷}¤÷’Ķø÷čųĢ÷?’ą÷Ōąō÷āų¦6ų[«/ų;üBų‚)Vųi3ių+|ųŽŽų$”ųĢż³ų3ZĘų‘”Ųų­źų¤üų ył. łrĮ1ł!4CłG†TłøełĢÉvł•»‡ł©˜ł=@©łƒÓ¹łÆGŹłöœŚłŠÓźłžėśłcå ś ĮśĶ~*śŌ:śT”Iś}YśNhśywśŲ‡†śŠy•ś×N¤śģ³śł¤Įś-&Šśµ‹ŽśæÕģśzūś ū·ū’ī$ūÓ±2ū¤Z@ū3éMūŖ][ū6øhūłuū9 ƒū.ū’"ū ž©ū”Ą¶ū_jĆūūĻūStÜūĻŌčū/õūšMü8f ü2güÆP%üŲ"1üŅŻ<üʁHüŚTü4…_üūäjüV.vüiaü[~ŒüQ…—üpv¢üŻQ­ü½øü5ČĀühcĶü{é×ü‘Zāü϶ģüXžöüN1żÕO żZż Pż)2)żM3ż­ŗ<żkaFżŖōOż‰tYż*įbż®:lż5użį“~żŃՇż&䐿’ߙż}É¢ż¾ «żįe“ż½żNŗÅżÕIĪż¹ĒÖż4ßżēżĖŲļżWųżÖ8žgOž&Už2Jž¦. ž (ž<Ę/ž–y7žŹ?žõÆFž33Nžž¦UžS ]žn^dž£kž<Ųrž'žyžįž‡ˆž3žżž•žŚœžX¦£ždŖže±žO“·žńF¾žfĖÄžÅAĖž)ŖŃž§Ųž[QŽž[äžĮĮźž£åšžüöž<żž#’åļ’šŃ’X¦’7n’L) ’°×%’xy+’»1’Ž—6’ <’A„A’LčF’?@L’1ŒQ’5ĢV’c\’Ī(a’ŒEf’²Vk’T\p’‡Vu’`Ez’ó(’S„’—Īˆ’А’H’’tō–’–›’Ż, ’ ¹¤’¦:©’æ±­’i²’·€¶’½Ųŗ’Œ&æ’7jÒѣǒlÓĖ’łĻ’ėŌ’ō&Ų’F/Ü’ó-ą’ #ä’”č’Ęšė’ŠÉļ’™ó’9_÷’Eū’4Šž’{¶ %F Ķ$LĀ}/T”±š!¤D%<(ŠÓ+œ/‚A2Jl58Į©;Œ¼>vĒAŽŹDāÅG¹Jv„MŌ‰PØfSž;Vē YoŠ[¤^•GaNųcŽ”fRDiøßktnŒqˆsÅv؀xŹņz:^}Ć3!‚×x„łÉ†§‰īX‹Ł–tĪĢ’‘ī*”ćO–ŗn˜}‡š7šœõ¦žĆ­ «®¢ŗ©¤łž¦vŽØ:xŖR\¬Ē:®„°ųę±É“³#}µ@·ŸżøÕµŗĄh¼h¾Ł¾æbĮ=ĆD™Ä=-Ę1¼Ē*FÉ2ĖŹRKĢ•ĘĶ=Ļ©®ŠŅŗƒÓ9ēŌFÖR ×’õŲ$GŚČ“ŪöŪÜ·Ž_ßšąæŠį!ćB1ä*[åį€ęp¢ēąæč9Łé„īźČ’ė ķ]īæļ;šŁń”ņœ óŃüóGėōÖõ½ö‚ ÷M€ų\ł!5ś: ūŃŪūī©ü˜tżÖ;žÆ’ž+Ą’Q}'7µķ”Qóż„§1Nńņ‘4/jÉœ`Šō † U “Ÿ .( É­ Œ0 }° ¢- Ø  …”·;vćPMķ“ói|Tܹ9ž” ķ’B†–£ē\6µ‚¶Ģa¾YќŸŻ.ƒX¢’‘ŹUó3peŠ”ĀOķw—=²bĪ…ļ¦ĘSćŸž‚/#EčXÖjózA‰ʕ† …©ǰQ¶&ŗK¼ļ•»ĀøO“@®™¦^“’<†]xłhX²E×1‡Ä”ķłÓ÷ø‘œĢ~«_1?bAśŅÕ°‰Š`I7… †ąP³ē„LU…$“ņzæ>‹ąUeĻē!Æ^uŠ:§ž·ĮĄƒĮDĄæĆĄĘ>ÕśīµpL)–įö˜nO³¹„mx ’Ņԃ?4Ųć ”’ ›@ Źķ /š ĪE Øš Įš D “ģ •” ¼; .ā ė‡ ö, QŃWųž śž`§üžåÉžž“č’Ó’H’/’K? ’äK ’ėT ’dZ’U\’ÄZ’·U’3M’=A’Ü1’’ź’fļ ’‹Ņ"’^²$’ęŽ&’(h(’)>*’ķ,’zą-’׬/’v1’<3’óž4’ŗ¾6’i{8’5:’“ė;’Ÿ=’•O?’ż@’—§B’%OD’ĄóE’o•G’54I’ŠJ’iL’F’M’›’O’#Q’Õ°R’Ä;T’ļĆU’[IW’ ĢX’LZ’QÉ[’ģC]’ß»^’,1`’Ł£a’źc’bd’Gģe’œTg’eŗh’¦j’d~k’£Ül’f8n’³‘o’Œčp’öˆ’:ʉ’튒ŹŒ’d4’ćTŽ’Ms’£’驑’#Ā’’TŲ“’ģ”’Øž•’Ņ—’˜’5)™’v3š’Ä;›’#Bœ’—F’#Iž’ÉIŸ’H ’qE”’z@¢’Ŗ9£’1¤’‹&„’C¦’. §’Nü§’ØźØ’?ש’ĀŖ’*««’†’¬’*x­’\®’S>Æ’ß°’½ż°’ņڱ’¶²’h³’Æh“’U?µ’a¶’Ńē¶’¬¹·’ń‰ø’„X¹’Č%ŗ’ańŗ’n»»’ōƒ¼’öJ½’u¾’uŌ¾’÷–æ’žWĄ’Į’¦ÕĮ’L’Ā’MĆ’GÄ’¢æÄ’“vÅ’,Ę’@ąĘ’“Ē’cDČ’gōČ’£É’]PŹ’UüŹ’ų¦Ė’HPĢ’IųĢ’śžĶ’aDĪ’}čĪ’R‹Ļ’į,Š’.ĶŠ’:lŃ’ Ņ’—¦Ņ’ģAÓ’ ÜÓ’ļtŌ’” Õ’!£Õ’p8Ö’‘ĢÖ’†_×’Qń×’óŲ’oْǟْż,Ś’¹Ś’DŪ’āĶŪ’¢VÜ’IŽÜ’ŁdŻ’SźŻ’»nŽ’ņŽ’Ytß’’õß’Ąuą’äōą’’rį’šį’%lā’3ēā’?ać’MŚć’\Rä’pÉä’‰?å’Ŗ“å’Ō(ę’ œę’J璚ē’łļē’j_č’īĶč’†;é’5Øé’üź’Ü~ź’×čź’ļQė’%ŗė’z!ģ’ń‡ģ’‹ķģ’IRķ’,¶ķ’7ī’k{ī’ÉÜī’S=ļ’ ļ’ļūļ’Zš’L·š’Ęń’uoń’YŹń’t$ņ’Č}ņ’VÖņ’.ó’$…ó’hŪó’ė0ō’ƅō’µŁō’ž,õ’Œõ’`Ńõ’{"ö’ßrö’ŒĀö’…÷’Ź_÷’\­÷’>ś÷’pFų’ó‘ų’ČÜų’ņ&ł’ppł’E¹ł’pś’õHś’ӏś’ Öś’¢ū’”`ū’ę¤ū’–čū’§+ü’nü’šÆü’*ńü’É1ż’Ļqż’;±ż’šż’P.ž’łkž’©ž’åž’!’’Ż\’’«—’’źŃ’’š ¾DV}bµåģŽ#OZ:žÅ}śŲ.Æb–ŲČ+ū-U^-ˆægļ˵M&|Ŗ”׬A1a]‰H“ße K3Ą\Ē…`®‹ÖJžž%‡Ls™Ǿ äźb-tQ#ul˜S»ׯś’¼! C d Ā„ „ šÄ {ä Ŗ ~" ÷@ _ Ż| Kš a· Ō ˆš š W( ĄC Õ^ –y ” "® ķĒ hį “ś n ś+ 8D )\ Ģs #‹ .¢ ķø bĻ å nū  V& _; P ™d Ķx ¼Œ f  ʳ ėĘ ČŁ cģ »ž Ѧ":4ŽE¢Vwg xeˆ˜\Øü·`LJÖtå&ōŚßŖ,<:—GŗT¦a\nŚz#‡8“ŸĮŖ7¶{Į‹Ģg×ā‹ģŅöčĪ ƒ^'…0}9GBćJRS“[ØckLsŻzC‚}‰t—0žƤ,«m±†·w½@ĆāČ]αÓßŲ诏ā‡ēģ“šāō łżłŗYÕ /g~sHü #X%Œ'¢)˜+p-*/Å0D2¤3č4678Ö8Œ9&:„:;Q;;’;Œ;l;3;ą:t:ļ9Q9œ8Ī7é6ė5Ö4Ŗ3g2 1ž/.{,Č*)#'0%)# !Ü—=ŠO»X Š Ŗ·±šžpū5ųčōŠńīšź ēgćµßņŪ Ų=ŌJŠHĢ7ČÄ濨»Z·ž²“®Ŗ”„”]œ­—š’%ŽM‰h„vxznuVp3kfČ`€[-VĻPeKšEp@å:O5®/Kńļ’š’™4š’čUš’żvš’Ł—š’{øš’åŲš’łš’ń’Š8ń’ZXń’­wń’ɖń’Ƶń’^Ōń’Ųņń’ņ’+/ņ’Mņ’¬jņ’ˆņ’\„ņ’gĀņ’>ßņ’ćūņ’Vó’–4ó’„Pó’ló’-ˆó’Ø£ó’ņ¾ó’ Śó’öōó’°ō’:*ō’–Dō’Ā^ō’Ąxō’’ō’2¬ō’§Åō’īŽō’ųō’õõ’µ)õ’JBõ’²Zõ’ļrõ’‹õ’ę¢õ’¢ŗõ’3Ņõ’™éõ’Õö’čö’Ń.ö’Eö’'\ö’–rö’ۈö’ųžö’ķ“ö’»Źö’aąö’ąõö’8 ÷’i ÷’s5÷’XJ÷’_÷’Æs÷’"ˆ÷’pœ÷’™°÷’Ä÷’}Ų÷’8ģ÷’Ļ’÷’Bų’‘&ų’½9ų’ĒLų’­_ų’orų’…ų’Ž—ų’ė©ų’%¼ų’>Īų’5ąų’ ņų’Įł’Uł’Č&ł’8ł’OIł’bZł’Vkł’)|ł’ތł’sł’ź­ł’A¾ł’{Īł’•Žł’’īł’pžł’1ś’Õś’Z-ś’Ć<ś’Lś’=[ś’Pjś’Eyś’ˆś’ܖś’}„ś’“ś’mĀś’¼Šś’ļŽś’ķś’ūś’éū’±ū’`$ū’ō1ū’n?ū’ĪLū’Zū’Bgū’Vtū’Qū’2Žū’üšū’¬§ū’D“ū’ĆĄū’*Ķū’zŁū’±åū’Ńńū’Łżū’Ź ü’£ü’e!ü’-ü’¦8ü’$Dü’ŒOü’ŻZü’fü’=qü’L|ü’E‡ü’)’ü’÷œü’°§ü’T²ü’ć¼ü’]Ēü’ĀŃü’Üü’Nęü’ušü’‰śü’ˆż’sż’Jż’"ż’¾+ż’[5ż’ä>ż’[Hż’¾Qż’[ż’Ldż’wmż’vż’•ż’ˆˆż’j‘ż’9šż’ö¢ż’¢«ż’<“ż’ļż’;Åż’ Ķż’õÕż’8Žż’jęż’‹īż’›öż’›žż’Šž’iž’8ž’öž’„%ž’C-ž’Ń4ž’O<ž’¾Cž’Kž’nRž’ÆYž’ą`ž’hž’ož’vž’}ž’õƒž’̊ž’–‘ž’Q˜ž’żžž’œ„ž’,¬ž’®²ž’"¹ž’‰æž’įÅž’,Ģž’iŅž’™Ųž’¼Žž’Ńäž’Łźž’Ōšž’Įöž’£üž’w’’>’’ų ’’¦’’H’’Ż’’f$’’ā)’’S/’’·4’’:’’\?’’œD’’ŃI’’śN’’T’’*Y’’1^’’,c’’h’’m’’Ūq’’Ŗv’’n{’’'€’’Ō„’’x‰’’Ž’’Ÿ’’’#—’’œ›’’  ’’p¤’’ŹØ’’­’’a±’’µ’’й’’ł½’’Ā’’,Ę’’8Ź’’:Ī’’2Ņ’’!Ö’’Ś’’毒’¶į’’€å’’@é’’ųģ’’§š’’Mō’’ź÷’’~ū’’ ’’’Œx į Ašź2r© Ł#' *8-H0P3P6I9:<$?BįDµG€JEMP¹RhUX±ZL]ß_lbńdpgčiZlÅn)q‡sŽu/xzz¾|ü~4fƒ‘…·‡Ö‰ļ‹Ž’”– ˜ü™ē›Ģ­Ÿ‡”\£+„õ¦¹ØyŖ3¬č­—ÆB±ē²‡“#¶¹·K¹×ŗ^¼į½_æŲĄL¼Ć'ōĘļĒLÉ„ŹłĖIĶ•ĪÜĻŃ]Ņ—ÓĶŌžÕ,×UŲ{ٜڹŪŅÜēŻųŽąįāćäåę÷ęęēŅčŗéžź~ė\ģ6ķ īŽī®ļyšBńņÉņˆóCōüō±õbö÷½÷eų ł­łMśéś‚ūü¬ü=żĖżVžŽžc’å’fā]ÕJ¼,™lŅ5•ōO©’T¦öDŲ c ¦ ę $ ` ™ Ń  : k › Č ó  C i Œ ® Ī ģ  ! : P d x ˆ ˜ ¦ ± ¼ Ä Ė Š Ō Ö Ö Õ Ņ Ī Č Į ø ® ” ” … u c P < &  ö Ü Į ¤ † g G %  Ž ø ’ j A  ė æ ‘ c 3  Š  h 3 üōSŽ”d&ę¦e#ąœWĖ„<ó©^Ēz,ŻŽ>ķ›Iö’¢’N’łž£žMžõżžż”’’§’’µ’’Į ’’É ’’Ķ ’’Ķ’’Ė’’Ä’’ŗ’’­’’’’‰’’r’’W’’9!’’#’’ó$’’Ģ&’’”(’’r*’’A,’’ .’’Õ/’’š1’’\3’’5’’Ö6’’8’’E:’’ų;’’§=’’T?’’ž@’’¤B’’ID’’éE’’ˆG’’#I’’»J’’PL’’ćM’’sO’’Q’’‹R’’T’’—U’’W’’™X’’Z’’[’’]’’|^’’ī_’’^a’’Ėb’’6d’’že’’g’’eh’’Ęi’’$k’’l’’Łm’’/o’’ƒp’’Õq’’$s’’qt’’¼u’’w’’Jx’’y’’Ļz’’|’’J}’’…~’’½’’ó€’’'‚’’Yƒ’’ˆ„’’µ…’’ą†’’ ˆ’’0‰’’UŠ’’w‹’’˜Œ’’·’’ŅŽ’’ķ’’‘’’’’’0“’’B”’’R•’’`–’’m—’’w˜’’™’’†š’’Š›’’œ’’Ž’’ž’’ŠŸ’’… ’’~”’’v¢’’l£’’`¤’’R„’’B¦’’1§’’Ø’’©’’ņ©’’ŁŖ’’æ«’’¤¬’’†­’’g®’’FÆ’’$°’’’°’’ڱ’’²²’’‰³’’_“’’3µ’’¶’’Ö¶’’¤·’’rø’’>¹’’ŗ’’Ńŗ’’™»’’_¼’’#½’’ę½’’§¾’’gæ’’&Ą’’楒’ŸĮ’’YĀ’’Ć’’ÉĆ’’Ä’’4Å’’ēÅ’’™Ę’’IĒ’’ųĒ’’¦Č’’SÉ’’žÉ’’ØŹ’’PĖ’’÷Ė’’Ģ’’BĶ’’åĶ’’ˆĪ’’(Ļ’’ĒĻ’’fŠ’’Ń’’ŸŃ’’:Ņ’’ÓŅ’’kÓ’’Ō’’™Ō’’-Õ’’ĄÕ’’SÖ’’äÖ’’t×’’Ų’’‘Ų’’Ł’’©Ł’’4Ś’’¾Ś’’FŪ’’ĶŪ’’SÜ’’ŲÜ’’\Ż’’߯’’aŽ’’āŽ’’aß’’ąß’’^ą’’Ūą’’Vį’’Ńį’’Kā’’Ćā’’;ć’’²ć’’(ä’’ä’’å’’ƒå’’õå’’fę’’×ę’’Fē’’“ē’’"č’’Žč’’śč’’dé’’Īé’’7ź’’Ÿź’’ė’’mė’’Ņė’’6ģ’’›ģ’’żģ’’_ķ’’Įķ’’!ī’’ī’’ßī’’>ļ’’›ļ’’÷ļ’’Sš’’®š’’ń’’ań’’ŗń’’ņ’’hņ’’æņ’’ó’’ió’’½ó’’ō’’cō’’µō’’õ’’Võ’’¦õ’’õõ’’Dö’’‘ö’’Žö’’*÷’’v÷’’Į÷’’ ų’’Uų’’žų’’ęų’’.ł’’uł’’»ł’’ś’’Fś’’‹ś’’Īś’’ū’’Tū’’–ū’’×ū’’ü’’Xü’’˜ü’’×ü’’ż’’Tż’’‘ż’’Īż’’ ž’’Ež’’€ž’’ŗž’’ōž’’.’’’g’’’Ÿ’’’×’’’ D{°åN‚µčK|­Ż <j™Ēō!Ny„Šū%Ox”ŹņAhޓڒ$Hm“Öł=_ Ąą  > ] { fenrir/config/sound/default/PTYBypass.wav000066400000000000000000000235501513650123000207420ustar00rootroot00000000000000RIFF`'WAVEfmt €»wdata<'Öśćż Ķ—ū^ū_"Ęž‚ųŲśĆ åś özżŻƒßłˆüŌ¾Ōüdö{śGéXżdžŸ•·żHśYü‰ƒ÷@’ž;±׳Dõµū‹§ ’śŻś"}»žś'üpb§’Ėū±ü-šw’~ż“’Ļ‘‡Įü¦ż!‡’żæżžæ§Żžž!³²žŚż+4(¢žsū žé°ĪžZž3LāŹžKż`ž›ō7!’ž4’N9Še„’Ežōżs’RĻ*ÅžBž’žĒJ‹°1’H’Įf¹ü\üĘ’»[wœ©’’H’ŅžEt’÷’|Øx’dż,žŲ9b3ģ’ź’ŗ’Ļ’č’M’Ēžõ’ )钊žö’ØŌÖžŠž¹’ƒ$Fy²üeųæūe¤ lCżÉüsiWüōöüČ^ µ˜ųsöķü,·kk’L’Ą’ÕżÓś#ūHÜH€żdżžĖ)’ü®üł h`B’Mžpžż üzżŒ_Ū ĀūAū!žŌ’%’A’„†ŗ$üÅłŪūt’u‘«µ=–ŒžŁü“żU’’Æž.’“™š2"žvžrÕžbżļž0ū”•żĮł†ūmvkabŗAż–ū³żžøo„’ ž,’Ł¢ž8żČžį7·‹’Żž\’¦’Ę’“V,[żFün’”Ā2H䞃’Žžfü¤ū2’NnóWū7ś5žćń’—’­’Pž@ü|ü>å„üRüÜ’æH8­’Žnlžfž ’ˆ¤žŖž]gū•m’žž’bīšp’ćż¢żyžä’—'“ŁvžĒūü ’!Āö’’’E’@’Ō’ćŅąŠi’ėžĘ’ q¶ž’’A’.<t ’f’W’ļžųž†Ōvbž‹ż|ž­’=ÖĻ<Bh’öż±ż°ž¦¶ƒeH¾žXžžńž££{A’łž’=’©’£ˆsx’’9ū’Ķ’Ö’s0t,’)’: žhżŠsĢVµż“žöš’üAüėS˜žšūŁüöž\/Äį˜ ¦’Rżüóż±wĢ`’ ’+v°’x’Lš’Wś’z’_’°’½’^’b’C^į„Ѓ’Zžzž,"Ō*  ’fž†žf’¤ńæ „’Zżiż¬’‰J§’P•Ū’’>’rŃMR~’`žńžkE |B®’A’g’Ó’.¦CYjB’’³pÜ’Ūnč’ ’’Ę’ƒŠĢĖ̇š’¶’Dß'­d2Ž’n’^’õ@”Ø’W’°’(ZbČéJ’0’™’3]=lń\x’<’®’<—Žń^A’’ž’j6o?Cķ’P’'’Ö’å†f¹ę’M’I’į’¢č•08‰‹“’ Ó&•Ķ’·’E…ł’=’(’Ć’{S1a[’’±’v²¶FÄ­’’D’ń’k“ššxŠ’r’r’ž’õ’˜ElÅæ’’ ’’?Ś95°Ī’’ ’Ó’ęƒ^¬Š’’Õž<’8>°Rn‡’’ ’©’Š29ø8 I<Ś’‘’Š’lΟ&ü’ZŚŽCž’•’ Qæ’ō’x§Ué’¹’ø’ć’TĘØł’†’Ž’rnķ’Ą’[Ę’Ģ’ Jšļµ¶’Ėž’G.‹’Ä’ć’f’’Y+({å’Ī’ų’9om ±’Ō’?mM<[_š’_’’ŗĀ?ž’ū’Ę’i’n’ž’™Š°\½’’#’"ꯒwµq’Ä’ƒ 'ž’R[Ń’u’Ö’Z@Ւ󒎼'Æ’•xź’š’£į9’‘’·9ž×’¶’Ž’“’}’Ł’“éØHõ’,“œ ’’ń’»ä9©’ų’§™¬’ ’”’© yÕ’Ń’ą’õ’DAń’é’Fię’I’e’-²lÜ’Ć’,‹t¬’Ø’ė’2L,ß’›’³’>̿ВՒ~ƒĀ’G’×’Ś#p’E’ ’0Ž|’’–’Ü’ č=t’«’Æ3’’ž:T( +’)’“’;‡•MŁ’Ā’Fæg†’8’ą’¤­3ß’Ē’Ē’Ē Sz’¾’Øy’ežŃ’ž‚Ū’šž‚’8@[٧•’}’LžĒQżŽü‡’‘γ’’Ož«ž“ą«üqłżž3 H )rõĖöÜĖĻžiõ0łēŁ ŠŲżĄūåūoüŒ’÷ĶĄžķü Ć7ā÷Ģų )2ž•’\pü,ž »Ś’zža?šżŸś*ž—Ģ(ZżLžŅ¼ŽžxżĮž6b>Ķ?’üīūčž£s¦’¢’ėlÆüDüo’ ¢PÓž*ūü2ń“’,žs#$ ’ÅżižŖž’H{ńž"żg…ųü žĀKöĮ€w’źżWž³Ā/¶ž£’Bśt’’DG5ē’P’ ’S’Ņ’/®eЬµ’p’6’žČžĪ²Ą“ž5ż¢žbMĢ’Āó0$’Bžńžf’,’ä’īƒģžŹżtž„’P§–’’žŅžŒ’Ü’ū’€"EŒ’‘’ Xp©śź@’ƒ’ c< <|e-/1Ļ’h’·’‡Įˆ’ī’”k®’^’›’¢’m’×’ž£Óc’Öž]’ų’ ł’#R(Ć’{’p’¦’ «ŌmŃ’…’Š’†’n’Ÿ’AĪŖ Ę’,vó’?’—’ó“ĖG’łž䏻’ƒ’ņ’WhU9A’X’'!÷’’5’Ś’#B¶ R’ƒ’0<’’(½Ē’‰’å’å’’’Ū’·ēö’(’•’~u’'’¾’cX jÄi™’X’Ü’K¾’Ł’7[X‹ŃÜ’*’’µ’‘88b;’¹žG’,{;'UV’&’7’Õžą’ÉsĀ’ń’…’’õ’IQ’X’@°õ’-’k’"IWĮ{³’€’‡l’u’f[Ke]ś’ ’ó’āvߚ’’›’y QE\€’ƒ’t˜éJ枦ž'„ńY’óžė’zį’[’Ģ’lVó’ė’ū’½’’ō’G6KÆh’śżŲž­[µR“¾±’ō’č’J’#’¼’÷’Œ’Ń’x “žC’Gˆ’ ž”žHįĻé’S’­’|’†žŚż{ž|©ü½ž†ż’¦’/žĒüóż‘GldŽżÓł%üˆnżFłdżÅÓĶ’ūüżžķ’õ6qGżĮśy’P3żõ~ūzān³õ•öŠ®Hłķ‘ö7 Eüōł®„½«ć’ öóÓūœE’ūųż(­żźüĀM „` ’2Ņ’ūčööųL’.£¼ŗįūpųūl2Ųb’’żĪż%ż¦üLp¦ūņł³żä3ˆ¦õ¼ū‰ųbū(¾Œž©’:ųū%üŌ’6%MŠy@’ĢžŌ‚8’꿐’Ö żuū¤žt†,’­įżŹūrĶżoüz’ł“ žēžCØ_żüˆż°žn@„’›ž”’ż’1žÆü>ž_)Ÿž¼’±ÉžQüŒż‡C9žÆü«żKžÖż†žSܵČ{ż’Āžżųüõž‡.æ’~,)ž•ż–8ņ„žjż^ž\žżžmµ »’׿’½’žĀü4žėūRµ*”ž€ü`żNś‚’K’Æ’łž§żžž„:i_ž‰ž4’Łžžę’Ųķé’ž¾’4 żż©’ēėå’˜Ā’³ž>’0Ż×’_ż•ż1×®‘žLž)Lßg’żmžō!W®ū¢ł&žZTą1ż)ž”Ī’ßü§üj’½Ō±ž~ž’§’#e'Æ’_’’śžĄ’TłŽ£ž^žH’Š’„’ļĘŅ-ž\ü’ Ęfķž—ż+żužJFG’ü­ü_ž¾üżyEęż:ę÷éÄ" ®’Ań~ł7 ēÜüėėØļ’ę Ź‡żÜónó&’. ÄRś‹ń8ų Éˆ®’2ż©ų ö½õĖś,\V„ųęńģö‹ŅÅV?„ž>ś2ųIūeÓ  o?żTó5óYüļ›–ž’m’ēśXłZżš¬ōi«÷śƒų(üA„Č’ēi“Ī’ö’ |®žĒž•¤9žżĘ’ŒPš’›žIžXž’Wå0÷żŪż=ŅIÓz1’üHśĢūõgøNgžĢüRüūż5ŖKÉØĪüų&ł<ž\Ejżܰśy÷}łž‡ Č’‡żŒ’¬ģżVżd’Š#N$’,üŁśƒżČ«ć’Ćś÷ųńż“Üߎ’[žjžÉż$üzü)~üLūIž*{ > ģ’Qņčšžŗ)™üæ_ ņ»į¤šC ¾Ńķ÷= iļųģūļ ÖŪż8ś»ū8S! dūęļX÷P<-ż¤ųy§k÷īˆōä TūIł:ś,üW=Ų €ū¬żøžųłÜöFžA ¶ ¤ūķoļ’“ 1 œĶŖf’ó÷Ęõmł!ż ’ £ vWõČō“ń Ž ½8łłöõūŽŠ³żĮü=;ˆNž³Są³žŃł{öAųm’¦b ż*ś7žīād’ÉżnŪGŌž,üĖū)ū%śSū ’¦ŠI_>śü¹ū]ū“śZū‰’8ūū«ż§ū8üŲü’Xz p ’;ųÅõ²ūrŗū€ś w 1Qżeūēžōćv”äż„łūõ˜ö5üDYŗąŸždü>żŸµś<‘’@ł+öĆö:ųmłżPŹ ƒ –vķ7±“üˆū_’“Œž5śśž’Tżžh™g†žf’³ĄŽµ<žkūČż( &iżØżg ž»öoöWV xŠü`śåž i’ž‚”¤jÄüŁł[üO ĮKņ¹ō€„ 3÷Śé¤ųq ō·ņ öĪ  dīߐīż6óā芹±é±»žš‰ĪÖ;¬vŅNž (õ›üŻć³4«JŁs—’ŲŻÅĆ»¤ŗ{˲ō 6üŲŽęģcĮóŗ¹p«Ģé„=øOāæśÕ$\õCėsøÆŚg„ aŗ<BŅ'I żšÕ¾“ĀIܑģ>ļ_m%¬8O;īŅžŅ!ß,ė›óÉļŪ߬ŚUńh‹żÓ’š!9W"¾ōūćŪś÷ÖˆēāVż@d eā"”‰ūhŽwéȬ]ģ=ó't&ƒžSыÕųą’ģēąQüjD®r ˆ-šFŽŚäqō#óģ žā"e0ņ÷Ėö Ą žūūłļ ƒų•šnļ»ń­ö-’ © 9žjĆųIčFå”ōć’6õää ź4Ł i%Õņ· ¶e’ˆå°āµłz T‹ü‡t oūA~mž°öHła[’ĀōJź–ē$ģVō=žxŲ °¤źųīöčZī³÷|ūĘśæž! ”µä `*¤ū~śZĒ’}ö¼ńƒų¾’Œü%ö¶ł0± ÷ š ˜xłōņšō[ųJ÷÷LżĘMKż;’9& „3üv ” 'żĖų`öOõ]ö|ł“ż,Õ­Dį Pµ’AūŚų[öoōG÷©ž'Xūż~»°īIķ¾žóżžĄüŃūmż÷’淂¤t  ¼æEĘMžāž$ƒö’Żś#ś`žW‰‘zXn«‡’¾żv’Dż»ų÷ųėžčX®’sœŠjw+’’1šHžHūČżEÕ/©Ué&ņż}ż˜’ųåģžüĶüI\2y|žH’”‘Kt5’«ū‚±’’”’Ż N» …HSéž­žv’k’ļžś’FčÅ’ģnéˆ^žęžWŻĶ.XüI÷_÷ˆū”’sėž6Hi  —ūÉĢk­Ņ’¬’W7óüÆś¾ūi¹uf÷’œž’œ² žBł™ų§ü6Ē•’l/É @\’u–)žĒū»’.üh®“’µ’šš+ūž¼żaūčų7łążPo)%ƒf¶žży’īAĢ µ?}®ž°łmü^œdĒžD©ŌÜüĆų”ż&€§ü^ż®\Kƒ’’:8Œˆžõś•ścžUXŖ¾żé’õõj6’’˜Ū=ž”§žŠū•’Q*ż=żH¬ F’śhõĒūc" –cłŚłĶż5‰ód »ü’ł6ų żE˜ 2P’Ūö§ųP BPüŠüØo\gž}iͬž2¢żżśĖžŪgżģ÷]ü…F HÕžį.gž1ž[=:`1’Dų­÷ÉF9ūRūg·yüōż­Õž£ųVłw\+-üMżJ†7§’ƒ²aü,ł0ūuCń © ß ĄüÜōĘóvųEżóżńü’“Z ež·ž¦ ’Kś}ųgż„l Ō R¢%’ŻūDś†ūažw½üÆØāęžfū9śVū9ż“ž“’Š0™Isßüūū™ūÕūÄüģž™É5TīŹPµżōūüe’MB’Ģ’` ōjżÜž78 ķŽżųÉųēżÓDž„śü>ā žW…:ÄžŠł?śZū¹łśŽµw ĢS©Rś«ż›Ź<’Ļü£’:9Ėl:ż™ūŸž… ģÓžž»ž÷ž'žVžĖČē¹üūPż”’D’7žĆžҵ\а‰’O2CVž—žyžūĒEž§*z^ žżgŅ‘ž ’ ’›įtü’ł1üeóµŖ’ž¤>oż£łüUŚ5’·ū‘żgśnŹž‰üBW°Ę­ƹüĖū<ž‹˜,ž)G$Ÿżˆü‰üĻü¶ü`üµüLžŗ¦j)Erżšū”ü`’uĢsÕF8žtū,žŲ]#žnż*ļy\’ ŁNžX’›vžtżB’ƒaŲ)ś$’Źüžż@ņ’ÆżžżŖ9’ ’KĄü^žNH¾‡~’‹+’ż‡žVź!„`įĻ’ū.ż½éä’žwŽžž,ŖŸ/nū˜ūįIZx&‹ü_÷ļ÷Uüvœ5PzqF#]üTū CŠBżVū.’"Ä'Äżūż,Sś½?’ ż{żv’ŠĻ’óž"Ėf! ń– ·³ž[ü±ż!’Żžgž ’Õ’ł’œ&bō’ŗż’ŁÅĘūjł~ż#Ż ź(~ŹžD‡ÕŃśč÷ŗü­Øź76TɝæLŃ7–€żµüūžHążÕśŒū-’Cģ’\Œ.ćžĘž¾’v•g^ż‹żOĮ.śü¼żŲHJ 5Ž“šżz÷%łĪ’dJZž’ŸÅ¬œ\_’?üqśqūäżJ’~’ī³ų1 Ø’6’æ’’"žāžÜÕv#ē’āżĶü£żE’>©[ ›Ž’qž+’”_p’Ģ’ ńÕž“üLž ¦vN°#kT{’)žÕüĻżIš-æ’‰ż`žW4 żżü$Õ‹ż»ś1ż»Łs’0¼øbžŗžZĄŁž*żŁ’§ÆY„žŲ“ī”į’‡ÅŸk’’ 3*OłžżsüNžŁ^ü|ųśśsAa’­ģåB$ż üż”żW’×)¤’\žŲm/ ‚`žtž6žNż©ż™ŲŪX’˜‰¬u’¤žˆ’l’ž:ž+…|żĶśÆüĪ śüū’¬1ńüóūē’ĒżI’ke ¦•öč’æżƒžN*‹#ø@’Æž žeüDūīü³n“TZrÅż·ś3ł³ł€ūćügż’ń#łģžŹ’Ēržż;’Q ”H¾ž(’ČŲCž›ž]ŻkŚž3ż¾üMż’Ž:Āž³ž¶’øµ’HžŁžX kžbž’’3…ŽųžųžuW,äžNżümł‰÷“ł¶žąÓć/ƒ»ų_ēžBżšż•ż–üżŽ6«™TĻ 7J-ż®ü|ž`’Ķžž9żżQž @3Q•Ŗ%1·’Gć,Ļž’iTü1t_’XūZü’/žyż"Ę$Ū’Æ’æ¬źŃž„žtž@ühłśI’XYāZ™ ’Xż©żńž’Ā!ƒÉG™Ź‹üzūÉżMÄ ¦’e’Æž6ž¤žÜžŌżRżÄ’–ö’’–ū9ż‹Ņ}##CK’ ūūóü³żiż›žŁ²äżE÷@Š‚’1žnżżkż,’%$"i˜’ĶŖČ’żoūÄüŖžŅž¼ž7’Ŗ‚ZžCż5žJ’åžžž˜q®ßWžGž÷ž:ž*ż<ž’–Ā’ńž&’ū’¶É&Šāžž&’ƒ’wžģż"’·ļA8<æ_d2Wfü³ūžø’Ąž1żąż=~”’Šžšž€’±’’’żężB\]$žvžP˜3$7ę”’”üUżŹ7[]ócDņžÆž ’7’’¤žž3žć’ė“äžæüüżæ! ’yžzŌˆnĒ’)ÖBrÆ’į’:’}żdü÷üWž¬’lĮ{i’^Ų—użĒūĆü7žžŠż³ž4ˆĘŌWeEüŗ’¾ž¤ż!żTž_ž)’¶Ķ#}Ø’vżėżŻ¦HG’łDųūż6žhžt’q”ƒFåģ’©A’±ū2ū±ž—¦ źŹć4’`ž-’‚% Ļ’QIˆMXžż"żķż¾žf’5PØÓ’ž žc’L ļ’ŚŽĻyW9éHżŻ’ żüĄž\kĘć’F’J’2’o’g2RžĄżr’J·ž…ž»?ģ«üæś†ž& ’€ü¹ż!ŃņČĮ ž‘žóżÆž,’D’&œHƒALł’‘ś¢łü‚ż'żīż„Ć8Ńž§Õ ’œ’ßRĻĪÅhsü7ü¢ž¬’ĒžåžŁFKŖnŗ’ü’垎ž“"Céü°łaū¹žŽ’}’:ķ{ÆS7’’ß’Ž’Śż*ż.’Bv ®’`ź’žLžj“žÉü®’ć Å¢żķżæ’Bžcś ł ū²žĀ’-|˜% ¹Éb/3ī©š’ī’£’ā֕’Qžµż3żäüŁżĻ’.’'žė’Łš’ŠžąžCžäüKüż”ž+ Ļģ’±’±ą z5GŹ#½^×’tž žžż}żĒüuü¬üżA’lŒoå…ˆR’üż3ž}žóż¤ż…žÄ’~BX#}’¤üż”k’¾üsżŸ’ų’nżż”’õažžŌ’tÆoį’5žaž•’·b]o]’“’ÖŃpž‚ü]žØI30ż|üLž ’ž¤żŚžÕ’œ’’Ÿśv’¾żŃżĻžŪž‘žŪ’ WRĖžf’KØ’Ōžµ’= _’œža’ā’ÓzŻž~žĄå~”ż§ū·żöŻ[ņž0’[Üą’ųż„üūüžŚ’o® ²’Nžžb’Q]’žłžZłÉ’™ż’ż'4ųRä’Ā’nyŠŁż³ü>žd DY’ōžėžżžžž žÜż…żsž!Ķ”’Īżxż£žp’Ōžž!’ƽÕG>Ćž¢ž Ū=Ļ+’Äž ’Āžž†ž*tä§žOü±ū¶ż ÄŠjü­śŗüŠ’3į’s„G¹–ūžhżĄü%żūżž¶żˆžg{Šżū<ż ŹJQ€M7ū’H’£’č’G’'žėüż’.§żPżHĶZ«ż>üž¼’6žćżųž)ŲRƒ§’,žėż!žßż”ż†žŹ­|œI’ūż«•’ģż÷üž¢>œżķūÜüfž7žmż³ž³0älÖŚüēūžJr1€S×’Oēž:ü*ü†’Ų“’źū{ū©žfe[GĖÕbž’ŠžžS’{ŒÅžgüsżWe-€’®ÕT‘’œ’¶’>lŃżū­üWåś‚’@’ņ’¾śB’3ž5žŲż[üjūŚüĮ’vźēē”،DQ’eżFżž¶ż•ü;ż5”Ž’m’üŅ›_’Q|’yžf’½ ģpķ4Ł’Ž’q°8’bżżWž]’łžĪżPżž’äž\żyüžWCAų’’Ų’ęśīž\žb’¢Ź?ģž’†€€˜ž’sĻžæüöżą’Ÿ«nż…ś.üŖ®źžQž»Ÿ’¬ū ūl’,'e’&’`!z’-Š•ц’ŖµéżLū„ūmżIž’KgÕUÅž“ž£ž«žFa¶÷żBūüÉ’Ł¢’õžż’D¼ö$j±’sžµž†’|’ÉžĻž&¹ä$«żGü™üÆż©žž’I{Ć=Öžż9üķü›żżķüž’£!žYżzžšžtžˆžn’Cā¬KŖ’œž7’Hl©„÷žHż‰żļžĀ’«’š’ «žrž”W³ ż†ūäż-¢§’Jžōž¼’G’ČžĪ’£+yĶīvßžŽżČża’Č’üžCżKżfenrir/config/sound/default/PasteClipboardOnScreen.wav000066400000000000000000000455201513650123000234360ustar00rootroot00000000000000RIFFHKWAVEfmt (ž’€»ī  €Ŗ8›qfactĄdataKŽķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9rÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓĘrÓʎķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9Žķ,9fenrir/config/sound/default/PlaceEndMark.wav000066400000000000000000000455201513650123000213730ustar00rootroot00000000000000RIFFHKWAVEfmt (ž’€»Ü  €Ŗ8›qfact` dataK$WTmżCŠIČpŻ*żtó$ö^Śnu”ił`ä<ģĒ™äVĶL¬‡v'ߖcvŻĄ»ę—B3“jł ī>ģ&ŹdŲ“ā,‰Øx(uųhy_éƒä!ˆ­e>S »ł''“¢Ūųŗē’źI—ÕžÜŀüˆßœ™žÖCóÜLŚŁ–ęŽ½“ÄŪ6N“.TT‰üü*ˆ7ė™4„Į!>ųbŗ čy^¤ģkķÅņiÖ=XNmGžėGÖśbžń%ūÕYɵUŚZ!Ź)HÜ^}Ų”tńć]7ӫ鬼\MŽcżų›+ųźųķQč…Č”€œ »Õ"ė€ŠßĮ‚Ÿžˆ ¦å˜"ņ°²’žY­ż÷ł å3³ą˜}¢+IÖė€Ū‚ĆıßLPZÉlå \F°TĻķ§żmÉDz†éU”¼‚_jŪ†?’2ƒs—‰Z^aµĻ$ oP) «|!P¹Ó¹,{-2Ņ*Ņļw€vĻć1ųØ“čSØNāłųė¦Ÿ$ŲŽ:lS¹čł+ŗw±N eģ D.'Ģb4y&ke»ļ.2Ļ,RāŹ%õ¦`q+Ī ‚TjbÓ|zzvo¾¶9$\Esc<Y*µuv^IbUņv­ŪÕd“D^KŪĢā‘AIV$ĀŪm·¤A&&īÄr¼9ō4«Ü‘|±“u+ļT¼ŚĪž4ĮĆHéCKŚ»g ¦5"ņÖ)ōśƒ}Üš}ōPāxŻņ¦]Ų«ž‰ü‹Ī¢k²ÆĘa÷T%ę©Éä\ū\®&r¶ sV#))Č|Xčšu¹Š`^9½Ś¬7PbęšN&³AV^ķĆČ "QągšéĆμKAr 9 Wa«$lPīėDńŹĆ{adõq$-ąB> Ęŗ<$\g™6ĢCnrŹJW7;f„°2š4Él•ó\FĄŚ>˜½ŗČ8MĒ­OV ļB'Ē„uUŽ˼Ō`6~čU&·s , ƒ`]H@Ź¢#Ą^čj¬"@žhĄś$£–léĆ W}¹H$!+ŚlcŌr§é{Xö¼ō=ŪA·3ČØ÷ Wśęb`ē@}¶ČŠņ+XrŲ½ =6 ·Ū¾’<,’b¦Łž(óŒöéģį½ĘAח ~†ĒaK«ĆŽąKœ2‘żų•³ųź$€øģm€)Ę¢˜ęÉ.ZBńĖźĒÓcĄ^,Ž…šVĖ«ćżb«łX—ō Ę Ü³—„Ēš7Q‡éō•F»‡ŌŒå”}¦°;ćß䲩Ÿ®ŃĻ7żto§÷=»4öø1žāīAhŽĖÅ8›~…†ńz“ŌŠŖŚŽoœšŚUžŃū‚”ł†½ģ‡é–O}¼z³ŽÜo¬•æŪ×>‘Ć‚J†LšŃģļŃuĘĻ»G1×W<Äę/“L“1!ń”6cÓ ~Žaz›Ö„ńF<|é¶s¼$S«¼ŪL6“IF"éÜŅf»T89!ūØ«c{'±rv,®‚Ū ,†’9ķŽ«-ǜ²ćś«šu‚/ą_‡Ž "^če¹_ļx%ŽĶjpšŠ_Väž­h€é7»Åī0OĢŅ_OžuīśuCh^Ź84Tüū<ōDr¦÷ĶVóęĶĒ! ŗcėĒhēĀW:¶æŽŚä=œ®z |o ' Œś'¤ļDĶ?T9¬V}xRb2%—H6‘!]ó“dŚŹ.9^Œ«WHÓ×y¤— ģÅa8‚ŚÆ©†J'¬łŻuķāīą®§Ģ¢čę=øP²mpQ HQō) ¼|!4ƒņÄłŠ×Nķ±~™č|̹ų3Ōē›|Vœ¤õÕ:ģąń!ļŌYcĶT "9ü`f–gXĮ6 I¢¦Yņēó ף’‹øX6£$¾čm: ®Ļę o>²o½L8J ÅvįPdC,s2ļ„Y—Ķ„G÷š1Õå~ƒzŠ4H¤ŒŁģ„+{"żrg÷DādD¦.1Ž”ī©äĖ;ŠüvšpödŃųĪśč,jš›ŪĘŽŅ’TœAö;*Ćā7}“ų¦wŗé”»üä+1ö2ŪĢö—‘fä`֙ī!ƒĶ˳ó|ŪYwW<fµŖkāżB§\Ś#ŽišA§DąĀõĶ ąåˆ% ±šp5^–ųŸĆé?čL½3ø{¦Épó\DC†!ÉB’dlŹųųE_źź…Kā Tü«Šōr>ÓqJ÷xUßå„A ‹Ä$QR%( õox`÷ų9 åź­!)HĶózŲgŪ{rEE~ņÄŚ{×NF?ŅßHöŻŚā™ŗŽ:ć.¬Æ© 9N«źē„īŗµŽĖ*į6£[Ņ·w'5ž4¼ŚŪ4<H“TŲ÷µģ1å!Ęo|—ėNuĘĀAŦńĀOōŌM…ėóčĀŪV'v§X0Ź ‘^)eų÷1/éē>6»§£N/ÜGīŽ”×ŹkVAØŁÖ‡"Œ„—gCåįķÉÆ„ÉĻ®%l >o¹Ö>÷+„¼åi=Ąī<ø@Ģ[ė;㳩2/Ž–šńńOÓÓņօX]…Ży’˜mž.ņe‹Ö1Ź¬_V3T¢,üęF*@õ}ĄTß!BĶ#bĘgk°Ź!`_c%n°=WŽĢź>šfĄ§Ōžčö}ܹ9ÕG«4 $'yČńkYVÓō"FÜŪhŅ”’pÉ·Q\ Ėa šV"%Ńgo lfßE3ķ«jĒ@1§bšō'ĻIĮ÷?C²ę¬·@ł'Āė(9jóx«>Śp/ĖļPŽaĻLėāļåĮØĻLF ć×Ó!Üß0 •Ÿ’f‡ė2–ĀĖf™ `4Ģ}sIwZ ®™ķ ĶČ#ŗHŻh.Ś—qXö­T ć«lDDL+ó恣8Ų&ˆ2NrĶ\L g垉dīŁœ-ĖmņFłF×ŌėUĪVžj7Qóm#óŁIjš»Ģ#Ń3fk”äć­P ˜Č…ĒY‘¶¬s ![" ZöćĆxSIj[œ†Ō“C”ą¢ā¼”č§ź Nč½źøDboĖ&Nq«‡ģR—Åøł€'ķ‚=Ń'ćÆtw©§ļH0õĪ \ą`”½Ėå6/a±ü…óD@™śÕ"Źļhü‚Ėõˆb5”€MŚäčŽČ9ŌåY­|±.– ‰Ā=!¹šŚę+Ґ“’#5 żkŸõ_CķŽŹĒ;7EﲄĻĶ<©ä“}ü­£ä¦ ź­ōēu¦ļ¶aóĪ]EõąŠß¢ø×ß'‡ŸGĮóŠļDŪrĻ”ašā$Ń^;ėś²Įša³"# hY/ż Ž-÷SœrłŌWIrŚĒ$VWnž­ŲŪMˆļšŲ™ĪŅf2ćā3—©Øšŗ α/Ł„ė‹ńĀIé¬ŲÜ»¦öõńćįnE|KŠt ØFńÖłÓӓR6ń¹÷¢Ó¬čˆķŗšČVēر¶`c_ķ*ČŻ8“"˜Ŗhhż58ųG„©3ėüšĮ¶%`Ś"q Õō+ €Žƒ'ؚ$‡Šm0’!µdFJ8Ÿœō©ŻÕŻGq” ŌSä"žæņł=ŲM3žę°šśyˆźRk™æ1¬^“@źų(žæźzś“£ØėłÅļ†āNĻ”§–ƒ~ ĮŠ{(jƒź>оcƒ?ä(о¬gl5EOK§č½õõ¹9įIÅļÜKOĻš6Č%ФXqŠQ§ põõaž-üū8‡ōV=ØøE^ Yś% ļ–cĀ*7ϳĄ!nBeõ«×߇_ąd)Ÿ.| \õ?ąæ9čõä·įÆ­[n K'Ś“śļę%1 ±q“yJæėjß=ƈś®ī—ļ ̵PLņä9¤ršģWŃi~łW;{ģį<Śų£¶Žź=Ó=č·y¹ø~²\ za;¶L°"ę<́böh…'ć>·čŗ%ŗ(ō3üwܛō9vźė¬bæĆÜźN”J¾…W5õ ßdYģ- Å}Ķö÷xhäēĘń’ŻSÕø˜"į:f£>4|>ܜt»””ó äŚā=üšō²Ńµ1F÷•ŅåɁX&\… sŚ™lŪĶE’„-*šˆ~Š6 oP¢!YŸŸ ŽŽX$£ļlZéĪ?ę%ą½²q ŹQNš_õźŠāŠs÷§ Z悾¤ļ†;īĪkå“@°A?^łó¼ģŪ’óŻėżŪ™Ć'ĢétdM»ÄJWģMąœt¶Śŗ]#{rX-Ejō4Ļ>Ż}/¼xŽ45”Aż½.Ć÷¾C¹ł:Ė+ķÜ Hā•ā٦0s4‘Yušžķ`ŃüÉa6Ā"£FYTjéū>¼8Ŗˆ…źż™æR! öƒdż$„÷nŒR«r“!XeéuOś»aīī?‚LŪ¼†å‘`Ņ— wĒk<šBAµŠ"ŌŅf|xMŒ„@K‰”}łœ½xģū°įšG„»Ļ 2oDīõÉMß»Ü81M”Y·^Ž &›[¢„ē.JE‹ŽĻ.łŽ»ŠėZŒō ¤Ż5ę° Z²)pģT{PÅ9¦ū«ņ[ń¶“Ž#»Fš§³Zö4č]tļ¹]ĪĪ+»Żiƒ1™?°ōū¾Žól7ĄŽD¦@œā‚}ᄈx¤ÜVC铏»\ŚŹķ`Éwxśädiļ®”·Üä&”żŽŪ÷¬+‘ŲTˆžZ-.ŪÄ苑Nŗō®[!Ū d—čęśĘ¹“šNģ é­Åbł£Ūżėė’łsHģüZŁÄö¬ńC"ÕĖfńņāÓŲ,¦ ÄfīL4ĖS] Žś"šÓ±˜zŹCĮdģBA,ÅbŁwą&Œg”_Ą^óAŚwNŽ,eėš#Tæ jü=&fČŽ3YšĢ pc P\olžNEūŅŽL vœļIŻGĶŻ—2œŅ•Ōw WB"Ē]fÖŪļ,‘Ļv‹lįa¢E¤ÄĶÜMi–AĢŖ ŚcbŽņ#PńÖkšÓē!ĮŻ“eC™„%ĮäpC®ģ©˜ÅżÉRo¹³äL,®J…Ž=VŌīø}Ģ»ķ0É5± Ė #aĻįĶn„i½rfå8X3°i7N :¦ź!īƒšėŹ‹ĻĀą@X”Ā@ŗ•Ś×/Į÷ō-ŚåމŽŠĀūž[Fók8A©?gģ/5„ÅĖŚwēbg¶†Ń9ņ“t­Ö֬߂Ÿ5|D©ątĶū”³ćęč«“ŗIYŌķÜ }Ɉb ą—' L­č@äŗ­åöYÆäl"åEfƲŹĆż`Kłu=mö^øGćļ©YéĶż ¼¼øęš3*“ŅW_ß ž48ˆåØ˜°©‰#üœjEk#&AUir¤ēų*ģ¶ź‡U< ”µ`Žjt™@]Lįlü¤FFō„W~#š{j sį+Y7XØ> ł»<ź¬ æ&ÜõõX”įဠ”ꀼæMćę©VH ±a$Aœź!ÄŌæeYQ! ~ōc»ięŽ2=³œPMŌļē|\ßāSžØū9’xéXhC»KkażāA$ųÖ¢”!č½dx½oęi8O³³śĶšiJ”ūU ¼ņB&ŽĒršƚQŠ[Z²ą.¢S›$œŠmŌÜ3»ć“›1«ŽļRć©Īų©2T› —üŃ(’ׯ¶†8”ń7"ćŌ§f55å 0ŸÆ‚] †4;]ū ±ņūKęńšć²Õšż‘Šłµ˜ŻæȘ?8!€hd€9\Š$NŸm¾fi :4<%ØŻ)ī÷˜}Ź øVä_(­hĄ’8A’ŸŲŽ܉¬:J-;"އ±fc?*½TFÆĻ#Ņ ok-[‘ō‡“ŻM/ ē!TUr’V@6ģ7ݒŧ—’›oéŻŅN¼™JsĢņŻYeŲóv¢Ųdē[%›~łpŃ{ģ‚ŻÓ"‡˜{h?O¾ķTB>s'¹Yv ækFē=CÓµä²?å­æÆ/y²ÜŽk–œ ćÓ"©Qi}÷ō;xę%DœnĢŌFL: ć䮩 ^BŽ(ǚw³;üf³ō,‡ä:„•­b՞ %€ÜųĪ‹ūēl£ņŹÉ®_] /įKZź¤ćæ>ķ‡õŗĒ—ą) Ż|ט}%Yćxp Ŗ1’­”żėu <Įa1¼ż“4łlK ÆEā`ƒ±ŪöŠ“ä°1Ūł•‘ķ_±ā Ø#„½ļ8X³ĀüHöFź’Ó¾,ż/č$Žøn hå8Æ e?$/¾T<ŃĻ!“soeįłņ£ķŲāŹā¦`Ø;n±å°J±ł'źuH„÷żšęł5l žD'|V‚ s‡(HbD"Ų&ĶfJģ”ōŻÄåŻŽŒü©„IōŠė9įqĆ­£^˜TÉżWho'ņ7NvÖ­Ā„õHńąžB ŁĒ$N”įƒ椋@fÅD 1PĪ!LJgT—6åčzō°ŗpŻwŚ`f"wß»ež3 µ„#%ŽjtÖ[L‚LŸõ;äŻąĻŽ l¬"!ę¶.±$Œ?ļė?ĶŁĀĘé1R»lQšńEōĪŌĄšą^@Š”–dåĆ-±°lž-Dۈ?„øZžŒ)ūø–ōó)ÄŻŪ*»ż1łöWė įĀ&ƒü@‰õKśJåāīąÆkz–!BoĆd¬?㽩ķ‹ĒJ”7ŲpBއRĒšó ³ Ł&Ž&ķ«sĒ ūp ńRaÄF[&KŌsĮH’CGŲżī ŹV< ŻÜ`—–CõżŹßł<˜Tö“ČżāAČT ĀXž'“Zā8§½ˆēś6š¶šż’üöøõY=0H·?Ų=Ÿ ˆ¹Ż–m\’ĮHžžļƒ÷ŪĪ‹ęsӏčZzƹ܅ˆļ•‘™Ī=»·1ģØÅś®4ź4¾žK[āķā§É؛V<ūҵńē̵f;&x‹qh¢¹÷ZŪ*ē’ČFŽ WԚ#(㇠y©—%Ēßī,UŸĢ÷ćŁę䫍“»ĘK0Tć6}†.ęw“‹²XęŚ³įq£U ? V»(2~ž<zū¶h 77]¬²[öćĄ:•ŻA°æ˜“?Iėø¾ŪĮ¤ēģ¶2 ½Ź²ū8`ó:y歃lŖķź—ŚČĄĒ üfń(ō4Ō|¾yąs;m”ߕ?Į¾<õ“°Žßœ=ßŪ·’?čŻM½ø™å‰ °5›©ĖŅśbxYf2OH0—Ŗ;ųĘ’²čˆ“čI˜ŗ¤Öā냨SļÉł Ķ]ķbŲ”ż­‰åųxżūg[÷ó÷8HåŖH?j?¼>¾š€į΁ؤkĮ“ @D» ”Žį½Rš"> eŗ°(…męŽHF²W½~ā8|§n€J±.ĖNV`ģCµć‚ «ˆCp‹ ēQ¢%µHėU6ŲĮŌkT{CżN”āß¼¦Ÿ8@šVØĄŠŻŗ½ —09q^ĻčRnŗėCŖ#ĮĖžj)–jō{Ā?Ż~„Ę{šS ÓOJßzļŽV°ˆš /„Vļ33¼ņ˜™4Ųż• āöĮ¦ŽlźšFæū÷Õņē-„óˆļŚDRMĀń÷ēFՙ¤sźŹķZ掓Fķ«ŌĒ¢ŒģēU¤Åo%ŻLp—P "åfÆ“- ‰9gé"Æ6¼haLō[#åÜ[T¬äż®ŌÆÄū{Nó^šŪäĻ’®aÖĮ$ƒE2æLHż>ęŲ÷‡Cļ”OÉĶr©¦ņWüóמ!x Łdh"–Š ĀqMGA ’ŌĆ6ļ¢WĶmrõģHWąĘõšŁߊŒ8sn XK0ŽĪķŖkÉjX.= ‹ ,sŸū…YŽņ¬ĆÜK–½{ć68qŖĘ\ÕQ€DDwĢBes5YLZ„8śŒ©īé› ŗÓ6¢(¹#åy+k>)ģa¼{Äę˜m³ŹHčč“%·ŗqžæųś?ź„-yū‹ˆkņ“‚°÷ˆē+©-$€ūˆl/TnŽüJ~ ք{a–!āĮc¦ĪÕŌōi~Ž vš'bĻ@}G‚švֆŃW\2ł—ėŃ¾×tŽ‘n“K ?3,kš„AŠŗūčp0óŗ : ­įÆ!¬ŠqrU=; Ʋ<†é脓¼ŗĀ_‘śE“ļŚĆż÷KłēLOų’äķč’¬dŽ .«%»čÖß2ŗ„ŸNiÕė;€G5Jiå Ž;°@=ėXĄ·Į®ō Ž?<Ā}µFyU~ÕÕz€GJ2!Ž–cg6ˆ4£˜^qIūōSÜńŽŽ-Ģ竈d·śPńīņÓMZę Q…&ssYIdˆö ,™ć)°§[ķ÷ȓ9oø¬M[ą-yō”‰kŻgāŻ%4§™qÕ½¤9ī @ģįßĮÄ„­ „ BÉd¦\.óCsŗlÜZ/F•rÕõV€įGmœį GÕ¤ŒeÅ’„0P’¾. ķ9Œ`Ē„WƒīŠLžoŪł;M’ćĶ}ģØiył%܆p”цõs”ąG *]į#~¤eM‰ 0č›‰ŅŽØœwœ+–ēT¶“ćUøŖFZī>ĖMŒŽ 4¤«(J—ŖßÅ’a»„ō#2ŽŻX06ß‘¢ -!KZ—¤€ŪÅ큒B YņĒ$ לŅļx* ^ca*Uݶ ’–$)żŌń 3|՗qkčÅTB¹ß¼+ąœ6ƒ ƒ:ˆˆÆ˜ŲJå‰ąWÆśĪøāīl*ØrŽ!AV«d‰•-ߛĄˆó*ųŲP~č#AūhĆQńauŻ #`˜ ˆ'h˜v8^ŗõŽģ/įœĘE±Ą!ŠBeæXß>ž“IU%Ż’obüv%%õdpb5ä % ¬b–¤(ūĆķyńtčDä]¹Ī¬ƒ–ˉĆbŽ©=!šżøcN¹Üé+–Yś™ķļVĖȅŲHߎ‰Ś»äjś0®@ļę ¼±b4 ­“Ņ»wfP(ä1ńx¬*Oķ]6Ä’3’K’›ż&Œ–s¤ĆĄæłA=ķśK€īć€OZī ģĖ3Ł˜‹>0ū¬ŽšœPĆj®ŁJ@ S{– łqĆ"ŅąĶõw¢iį|ŚšuDй4H,žŲ7'Jō¦uŽÜŸ Ü]'wĻo enO%Ü_³“V/ĻźŪŽmĄ“1ž.”śŒėy8Ām©?ųĪ’élø+^č¹YX&Ūs‘sAüYăõŪÄĻ‘NoAXkRüB÷ōŖśr’ļXØm ÷H1±œā[Ö§¼nÉ4L\*Į?"}Cæf"&Šłgrpķōü×Üö‡ Ķæķh?VĒ£ģØåźÅś°°„O ńī$qh°T9UXÉūź \óĄÆ¾üV:ö¾Ś\:&8“rعCö¢ķāčČ,O·Āķ%H9EųŖĻčJ¶¦~!ō{[ŚŻ[ö™ćµµ ó!bŁnŖžJ’ūŁ  Š&?'8ėś©ĮDīā=ˆß„¹˜ž „ ,Œ%\Męč<²vO‡’cī•žno¢INē[–ę ĀF²b„DJīĶŽ]bÕ¾Ś%€<Z0$Ś‘lŽ1į=ż“£¹÷•—ą„ĄĘ”`ĮißD=ž -t '‡\'¦#6uņj‹ģå .ı kAķqJ ĘUß$5!lŸcĄHÖņAŚ‚Ų.=cü‹·)õł°ė&Ä*rL_Vj¦ ?ó(3cō™T)Ż2L+—ä\Žżł«ųķ³0$’lHK™nąĖK72§ń•õ~Ō$žlŚFÖQ ļõ!ĶÜXų“ é+o3óMšŁ’Üü–6%JNępŽź²³E®Ń M*©Y~ū Sœł}ÕÕĀR ~Hų!k÷½%@ę9q׊eš… 0Ń!3Ķžc™güÅZöGOći²’ž;øū½=‚ų7¹†éi†™é;“̼!ŗ!b.Pc›¦ą<Ńó”ēTµPĀėŚK‚š7|ЧtI8gųØT5évų|ģbévÅ˜Öł"ǃķhŗgZ -7%Ö³_ ‚%9äA«§­O¼~ī4\9kB«AīæDžÉ?ĪśH ėŁQĮGĘŁüÕRölČ»$CY3nKKŽ āįšbØ+6÷‚¢0ˆĀ$˜G/l¼+óą4ƒŁ¢šslŚŃ[E4#’i<żwE­ādŠ؟r(ēÜWyµAžøÄŚ)ŗ£¼.ė5_Ŗ–ķ!’ĆČeH¦ßŲņI@ØÜæų”m&IķGsŪĒó3ėŲ2™Įź/#æi P¶ń"=³··ę''““ˆ»š2ŗŲ?-Šæ?B3° ř)Y*„ Œ:»›1JŃ+¶–!#Äd²ū9×óĘJ”ŪQąć’ ļ–żĶÄųF&†Ņr’÷„m ęŽH’x8µi©]€Fī €ÓŹ6 Lö”äāˆĀäų™G®źņ –ŚÕ&ĀES®ėŠł Ćø‹č (£¹b-Ś ‡ŽŁäB¬©ĒT™īśĢ ŹšĪ ¤’kbģž±– ÄF'7®Hó„ ŚŁg„4’6šż9õ4«×ąć¢!ÜØčd”ź³Aõ½ÅßI`ČŚ Y8“=^ݹ˜ZVG ÖB0x[õhą=¢‡éøę–¼ź÷9źæē­¾OēųHķµźog¾M6;JD¹°Ķ+G€*;ၱ£¶¤Äī"īMĢu“†!_”dĘ9VR­4ܑŚņ•µŲ4µļœ5ĶŪ¾Pö’<ņā'˜ętȳD2Hų—EŲč’¾'Ž·;wšÕߋ’~Ÿ£žĻ(śļlzīĻé6Gźŗ¤Õ¾ø 6(PĒśV īІg“6eĶŃś.huš"GŻŪe՗“wĀ%NeGq‹’Ńę”·t“Ū搫P¹¦*ņFͱąh¢Ÿ§HāŽö٦}ćWxŖ=ʳ ^>÷× 9å‡#“’ņŗżŲ€•¶Ą#5ļ¢ėĢčRĮRIń!÷ŪÓe5øväŸ(d­°¼L6ę0Œ—ž’„Ęū’Y©\ ü–\ UĀ%@āšņ榊×>ź&’¹¾tż¾v©;düRJØžßų.ś/¼ņŽ4ÖŁ\ė‹Āø ź' ¾S¾Ü;–B²“Įą»D¢s—ļZRÅĪDėĢģĶĮfĘ­4¼ž4ČŽ# Xœk!^|rāuW§—1IīÅ”ŪŹ{Ä&śpMtīף†²RĆŁļHĻ,ŠDÜEžĶ”³<óG¶ŁG!œöÖcŌćŌ$Ś|n6ŽĆš’IŠž5źÖŠš¾„rҰä4’®žżÅ.)šOŒ{ŠŠHńpŚÓ¾H\ ;Ś%FMbÓē&7–uüźĆ`õĄ<öŪł³ā“ķ@7Ł æ„‹# ±,ꆾGW<õÖµß; ī±ąĖDŌäõ|D¬įłÅęźQ“2 EÓ#ĻyĪĄOļkBļĶ{Õ¼ķr€6É| īsŹä\}ā«x§ōŻ€äŻ™‚­6A[¢ĆI^» 2&›i¦ęŅ<ó³GwbÕe'żŽ÷œn1I„”HĢā'ŻeØw—`l@$ EĮlQ-Ż~ō‡—w]eXZŖ¹³ ż,bs–qYĆT7ھõŽ<8ß­4ģJœÄhæøī8>*Ģ•ŠJæŸI®7jž §>ūŖBīņżĒŹŲlŲóņE‰ŪŲ¹4Šę+žž³–ƒ.žĀŠ‹ś dĀß-G/„/įŁŽ£…n’ŽKžJÄćčM«_øöšŌįŠ}Hœ@ŁŌĮQ±›ĀõÓGįlyųäClé®E•lŪŠæE’ŗ<­Ś.¶¤Øīķł+ŹZß³ ž5(c˜ x)É%Ųéˆ,?»Äį“%K„»pŽĆ¶ņŖJ$ŲŃ üs)ōV£švėčŃdĀvócŚYZopMOPtžĶ \ūi ēlM µFč!VĶķXgɗės ÄĀ[DžĢńĖśfÕ>» õ»1&ß02|ߏ–tž…Ü •PڜüüÖõö܌Mü•¦čōœ1 šÓ”`Іį¾ļ’¤<ĻŠÉōo]Ž'¦¤vņķ ›į‡Ѥ—@MB²ļčĘĻYn‘$ K“mģōņĆ5ÜŲb›®ē%Ņ ·ĀūjEó@=BmhėĒG9Ā÷ŗēä0µTK¢ņżįę×ćŪĪؓlVń¢Ÿ ŌčŽaį8'%£Ŗuo qÉ#'S\käƬKVEhå" 7°h¬iŸ =Ž&ģU%sÄpłt'ź^v0q7mļR¦Gνq.8U‹-9üJō¬ōąÜ!]pābQ§Śū±Žó|U4ģsÄt÷8\Cå(—UęyųÖ[™!‚Ģd,?&~…½rLSšķ泊Év·ģ b&Ę Gö’Ōā,1»āć”1Ø«“ĶI¹h/ Ģš dŅ#"@© gĄū"(Ł<öy‹¶āxYķg LDzĆņÆJŲrIóV±ÜŁf¤&ń3ķsÓĘg R74 µ#ß kˆGūõ˜ÖńįN߯[ź™WX"  g +’żd;„-²ļ+ƒē– ˆ¶Ä%=#a ·i#"¶śØä!šś­Ōnķ{LČG-Čr‡XXU3W’V™žw„d:Œ7p/ Q4ģZŲäƉ®\ōŻ\9~Ōw#z}gj Š÷ą~qēV·dä&.­b3€'š€3Ņ€ž˜v‚ūÉu,&[a…rÕ] a.¶Æ‹"Pś€— ī‚ĘaŻtü^—^õ’ń6 żÕ¤$Žo«N ;5~!²Ÿzd ł3ķĖžĒc\ś?EJÜ¾ĻŽ”Ń× r‡) Ń ŠźrpĄĶŽ* f¬!u‘š_“Ńm„ö÷Hšćēõ1;Ž•±E¦L[ńåX;p²°P_j;įļ=²£Ļ_-ZˆIļ÷7ĶēVĖäb2¬ł"0ģhD ąĶ§" ßJŚ œąŽ#„ĒČõŒVZį‚x³‡i ö—ćāĒŖ>w»e„ÅR}OųwkøėB)ĆYF°Ó]\Ė©ž`żŪ+ę³ %F„pŅK2:±Ż•®™„ȇ‹Y—“a0ü%‘ō+ü…€ō‘Ib¾/ķ';Ē7ę:°ŹÉ‡śź[—ļĄgrZā6W§AŠūßĀpóŸÜżéC”ł½š“GžŃל„!Ųd2tŅü•\wö¼IÄč5ŻLŗÄЧMr÷LfĀ 2G `Ž»Ö«25Ā.ķGŒ­Čy<2ókµ–Łö“3ńā›Ó}į‚x¤GŽ·_«&@ŚŅsŽx[[櫊± +«Kā%ć¦q»£#&0ėjrµN£å ģé°ĻVŽām›Øźćõ½«ß®ß4 Ÿž ~‚åz‡°’€ G¶a”Ŗœć’ÕXėÜĮ”>u ŗ_^'Į3ID›Ū9äU«¬.“ ūŪ#ń“ģ[éÅ.»Źq’_U·äxܬ…i•`£Ż „ź˜zVmRšH•÷ĪŁæę;»±1;WRģöÄG‚\ś …ļ)żzæ÷öp>ēsA‹ōYÄ”Ż?}÷½wLå%įēÖp£·YŜ PÖ¾„;ń9ń²Ó„bRßš'÷d »Ž-1œDSAĢłµæž ?ü2žŽōōŪ«ŻŽ )lś"{Dļ˦LbōåEą\¦”@^ŗyż/mų`ŗ$^.n{c?õr*¾ßDžĶŚI’šžEżŅü•ͦپhōŒXƒ1ÜŠ””Ü»”,1c< $)µ!lvŽąa«4 ūÕAŪšÅ‘Søū!ś(óeåķż/ÆÉłj6=£]0¾j ‘:@Ūó5‘ŪéĖe»c1 „FīÓK “Ėq ŗbU%y˜AkÉ^ļVąŁĪ”Sę覜²ŗš Ļb -9©ˆ«ūCˆ²Ä™Nī7'ßɧuA™ż7ĆĖųæė¢Ż>Ć蘵-ö‡āÉįSŽZ„ūšb؂ī&ł‡ĖŹ®9ü] ­ō§fīö2ĖPROśšöķīßĢĮģœfEʵ꟟“ĄĄ-k›‡AŅ^„7÷¦­ę!>ķdZŗĒ³¤!éīd»­Ž}’œyžf½ 1^7 ‘8Žļ²©ŖĪ* ; }'±`Ą āė@ā§Ćów%Śg oś~‡ ī|–"µW  !2„) —Œ|`.@‹­Į*ö€ś’ć‚ļ’SLłłäė9"6ńŖf¢ÓIĘ=īŪR¹ŹSaĻ ų#n#k¹ A,t/ \Žų 2č)9Ö!-‚Sc•œ·%æÕ&q19lDĪģxÖĆjƒ,õeūƒß1ņm@ēHRĄµW‘ņ“×@}äŻĮw­™uG^ÕX²…ė‘Āü½ź3ō9ĄØLnē÷åJ¶øŌō'Ł}ŽV?ė¾}ĀÄ%2źKq–¾‰Ūšīš’ŠĖō’iķÜ’=ČģōNÄŽp“ķOÉĖĻóDaoŪ÷Š7śä ¦īŒŅą£:v¢|żåu=÷±6¬ü[¢öZΘ kŹ)ŻA |—ÅO:ūķ6®ńÓ}ć xyŖ)PS—ēšłÅ¶•)æ.§>Rõ»}^wŁĻ3Šo›KkŒB¤Fįųź£źĄAØ!£łdéĀ&ÜEt”DĄåī0@±Ģ”~āØ{L–ĆT>Ū#ŗ‘kȤWģ7ZKŽļāšĻ1@sį”ĄY¤h'„9vĘŽ/ćRœ©¦Ō"ó4|hy\Ük”‹’Ēź ·VĄ£«÷źē\††įā““¤Øcć)C©H-žØŁ‡śū †ņā“Ę| éRv%»Õ1÷+•åšę‹āŃ“£§3£ÆŽšéœ™>’ŹØ»żą9⯔­¦L]Ž å«%±vž dū ˜kčÉIA¹¾ĘŌ 9T~#<ū9õ“ń­ßB&<ÜĒr“”ųvHŪčdŁ‘eBœå0ĒŌ°Xpdł Q-ģmM G·.i"%Œ;gģ‡ĖŗbD;̉å²d°Ń¤®łtī ķpæN!Q>ģc‡xļ–iĶœŻHHԘƒų‰®éŠÕB€Č36¢©”ęüķ‰ĢȝeDĀyž;FmūŠćöŪp«ä“Ć?TõJæüß½·“7'_ŅĢŹķuf`É©V ūX'˜§ćÉõŖSdyś,lpT1ŻPż“—ā`ü§"õL» å1I€ Ü}%TøüW(Æū“ļ ó»ĪąnĘ”LS;9XŗŻ«/™L2žć–EśØę#÷³kļ§ Ģ÷0"~!ezd½åū7GÆóŪD‘Ī-v4bc&4kb_B'ØĖt÷b^+TXū ūņbE«źĪ­Ą®ß1ļ Ÿ•Ķs’`X·! ¤]ąķ:Œyń¤l^ÓQ8 ņKØ`*[īX~Ė™fKĖ3U궞$³šÜmT„ęłūļ³ķ—zē,Åo¶ņn(×Ly]īśz’ĖšpžP:&ļ9®r$– 9lĀ_æ’>ø£§ččö¹,ßRÓžųyJ‘•·²Ą&_^Pe"ń/gjuļī?`ĪĢtN\=ļŸčί޹ńGéŌ×» ERjńĻö>Ō…Kې⑓—ĆŗĘJ5äų£­źė3 ž™$Tśh]ń8Óå,®2„97IŚ¦Ū ŽĪźÖiĄ„MŽXN š ė!Ʀ˜šōÉѲżW ÷|·āAt&Øēsɵ[\S'JuŽZ3–ŁĻ Ìo&ÖśŲƒšŠAŽŪķXš“ÉĢ> |e¼!o’&"M·sfxPłhRšė€sZ˃xą ‰i”©B‡śśĒ•ļł 9åģ#«ÆÜ¤”ī^TgßX5ž RØ‹üłC”õZŚ ķ#Ē™@ó ŹĮŁ)_r$Wm;kų±Aé5$ž* lé©.ēŗż‹µ6~£TzIū!Lšeä šŪńŠ“Óž‰HūŁīŚÖʐ„’RN¶÷N$‹~łm”{ģAW ÄW%SY-Żų ˆ—š—zžĶĘoūŅ©- wżˆ!K3¦źą™ņædU+7 ¬ #]-Ł’‡‹Gż“ūyļómĪļ9ĄĢ­@ ĮC^CĖ4/$œl°Ÿžäßū®ĄQ¬ ?õ#æźÅē>ĄQ·ƒ*ģ‰R~Ä Bž%Ęśל÷…šē>‹N±ļ¢ėĻJ7qõß„SąÉ˜ńZʱŌĻ õŽn&ߜėx{įĀjr¤ņ‡Ö,•L Äßä`LŸŚŲ#Šk#6 3i¢!F=éÓ·».č@š‹øĀŠ÷\DęĶQ—ĢnßĘeLž®Ö „!>“~¹¹{^)wGū{eÖń}»Ō w2~ Ļ ä®n ¬į½Ą ¢9Bb†}“7)ü>|ō¼É W[ *ž Dś&]’šµ7*Šū«į ń„¾w‡÷;g–ęąIē蔯µŗżāČŻöØZ™Õźm €ĄIŁoQ‹Oō ÄŌL~VHNWŚ×źųƒć苪YØ  ła’"Ų’·gˆ’?_-½ˆ*5ā¹ŽŸ¦-œ{To"rżMgHHķŁŲƒČJš]ŻĪ'üóvō©ŚŠÉ§"o]÷g_Ž\ä›­›0ŖāŅ‘ž§zÅšoP2ŠkĶe@h1”‡]Žä–›™f©ßĢ3üžĘ¾$SY:n²SqžūSūD­>ėͼĮĒ–2UÄ@ŽæšVZ¦Ź-ó_‰QGåąāÕÆ¢Ø5#ŃžisD@‹JĄ”IMūŪ?ēń“©%ÓüpyJÓÅk#xQCjģBkĆČAÉÕwė\gĀÓ*o x€M(·ŁŅ %xb…yŽl@T÷„Óäńz\wļų®fĪźāœ¦ÖUKpÅåāPP±l6D7Uåģ6’ÆĘ ś ū`īāņ zLnåWóēß%Ų·ŸqŸŪEߒ,„"qīgSÄ|$ÜLvm”(7kśæ@ļ?S£'Æčv C‹ÆŹ”5£œƒéčՊ¼AĪxĀjj1“`’ū"·ņ‰K¤›āģUcw–ö*fĆćŻJۘą‘Ųk咈C°’/]ŚŽk-ųAO‡čŚ’šģŽ’ŠÅܓŹķ•»_Éó©ŁżL¹³’+’6CfŪ£É2’ZŠłqķ\›l«ŅE€„@ZY1ü ”ōøÅŽ)Qœ_.# ‹i-õ­_ß BąÕęĒ “+żƂ÷ST67ėż¢„Į揩`¾’/ō;øŽÜ®ĢĪō flŽ@æbĮ=(Cä"!¬h*cĪ„ćk\ļŖ‡8•„'7ˆót„˜Ś’Ż0’·˜’ż× ūļ†bńϾbģ9J&Å9wt«e]: œaŌØŚ.HėŒŲĮ®Zō _Ży…ųjé>[yņćl׫=„¶ļF€³ē·ęĒāŽ±W؜© å÷ūÆēͦÜfō^”žžōņłüŽŲåj‹Æ@¢¤ō)äķŻ}¬ļOŠĪļž1ĀŁFÆ.'ü4ŠuōK(ĘāxRAŲ鞉½Ü1Ķag%„41zÜ “n•m? F¾9īPžńĖņśÕø._ä(Œ­ńŒ·ŚÓ¦&Ō“€ł}‚ģĖōŲ`ފ>‚‡[B<=īĄū·ŹBóƒ5äˆCŸ¬”>ėčć»Įŗ-ļ!%‡Ķeoƒ”,…ĶŖ\ūžņ=‘sŚø³Zø> '¼!HĀ…ŽG‘›Jåi‡ŪÆ=–’Iˆۘ šW’ūĻ·ņü'h$ów8m2q½—S8_c"4(gœZn2ķI—Ēū ūōņ)ńŽ.ƙ‰I͹9Œą+­¤”’ŲKūżŠćńŽ*" «f!ÕMč~éøPÕqŒå€U„°p6£P£éŠ§ ƒq÷%ESš°ŠłŠėsķ Ā[Č#ĮH¾DŚ::LuįÆä_¤Ä¾ŠL< La|'#uv<óķČŲÉZ8 JŸ`ŽŻ[?½Ä“³CcĖ)FO•¢ėģæēĀžM»łé1J„cīų‹*ĖźNŚĮéėŽE½+Oöåķā±–()ėĀy{Į6±5£”9bp2%&Q—ošØĻł4@÷įĮå„>}=žvøŚWŚ”å+7Ń5¤s”’W,Üü…”‰AåšÄÆV’ĢÜįµe–„f%ž3p-ś6/Ü£”õ¼;ķą6³ĒyŪk’Ł7öĒņāWÖ“§Dž÷ĶśB9ź­Ē«¾§®®śõ šLՁä…+™T6Ėż3ˆ+•—‚æ4éļRœ»Ļ508 Ø-ībšWŹ(ŃGdŁņÖ,ŒŲ£Léä åö®…ć;¢q%ćåTp©šŸŪėĻŽ’Ć>Ōī#¹|ĢkŽÓwį«zg¤lĪ’Ckø^MšüģēŠöĘģ*=ŚÅ€·Žž'“źśw¹æ~³ėyGĆ-É/Ū‡[‘­xDjĶBĶ®dh .4¢øŗšå)0Ņż]÷^„{QļrŹ* š]€ŠsČażYY%ų?XȽY86Ž÷¢šŁęYXæ >#Šé["Ÿ¼g?“ń¼¹Ōd˜˜ +ÉÉa‡@•ØRµ&¦ó tņŚ0å Æ_Ųō戎?JĢ™ĮėdĶDĆó…ŁŁL÷¾›ę<Ó“Į|ÜŗDv•įl(¤Fy»—×N Ćģ!é6Z­¼‚N‡±ėE>Ś»-Ž5ś” ķ¾®%}ęĄv³B2ﱄćĪŽŖæ%“ų>qź‰ĶŃöœhuäūü¬Žšöœ"גčf…ø¹ķF4’ČԜż¬ÖāŁƒØæŅ„’=xńžµæ\ē?¶bśŪž&ļ“ü/čŒø 0ģµóÄ!ŪX’å*·°PAž"ļĆśhŽļݛϙēą}¶¢y^a¹õü",įö0ēģZµĘī½Ź9Æ ĀXKF 7­)ģ}ę!}ćĖdwŖÄīaÜMĢ%•÷€`ä‚!LóN Łģ`'źĮt¾E-åŁ#‡ÆkµīėĢĆDfbIó1'ÜŁbqšß%TĻžöc«ć+ V†Ü`“•l0ĆC‘IPIå!ŚÆ/cSōŌßłÜ~Ÿž{-ņŁrˆÖŅK~öućzćŽS×é™ū…½BLīĒäTŹČ6 üY¤ōd§4-öE«ą]_ Å·O…&> „œßšÕUWüµõ!Vs¦įZ^ņ¤Bq‰żÅSœų¾_×÷:†ēwż`ėfų"ĀØ+D÷‚ĢQŠ$ōžm0‰©õ›üß÷#–ģåkĀÅļ]̲[ĮĻ`ņBo"×Ķ $g)'lpƽŁP9ćV.šŖ‹Š÷=øä¹(Y%ÄF oLŌā„­$§ńnR˜ÅėõČPĆ&žĻ%rśoqJūÆßƒņ‚ <š‡įµŠl¶FE#ԃ™ałˆĢ$ģ’Ņé*żx½µĖgc74æ=›=¹HŁ’źłŠøæķŸ¹Ż^+2®€r ‚W4ņ,Ö\3ļ šĶ&vżH&cųŚr”x’ņćižŲ0ćś­Ŗš>$jö»l>ć.0A‰ĆWĮĢVļBfĪŹ8ŗ_Ŗ.PÕhP:7ʕĒāRĮVØŚ„"ÆšgߑR µ÷!Wā§EpŌQ^|ASĪŽśj šÓn<zLµTĮ®čB ø.kH‹AŁBłZ§źö^„—$*ŒĘm#ż¢žj÷čū™̱O0e5/ 0H]̇Że—˜MšvāęŠd§±ķ_ķÉČĖVūbņ,¾Uš 9Ń&£¤Üčķ”Ü&ką”tA”‘K‚ō“ā†ŻžŚŚū>%0,p„ M0꧑EźĢšæfŠF‡ņŪ”±×“ÕŒę¤³k…ŠļAŸĪץ\…B+T$żżl6÷kõåHAą±ŗ*.€E½ÓA 7{ÅœWKņŌāÖŗYó/ CŁ­‚žūˆŪņÅŻ 6O™Ė±b Š7럦Įž°™ŪĶRvN/Ūbė‘Ėgéb7~¼ŗ-ż-‰÷ÖĮ‡÷‚E—ę|Us±.LZäZ}Å­ŁvP !įÉ%b£]q®†~ ”{U±D;Ī?ŸźŻ„æVå²”°åŪԜ‘~ÖU} ž§xaļD‡ņĢĪ•×Vˆb™'X4ł³ļėĻŖVBćżĒ©žø”Ū)¾Ūŵļ‘Q!Ļķ ’żČ&¶ųއįꛗ¤“®²ü ö@ŒčæB¤¹V}x4æ{’=sŲžė5āĄ”H¦·j»ö%@2ä€zmoHI³”ž¼ū „Ų!`ļ‰eŪś|"‘švgæę×=“‡YˆC¹$—Ź+nźź ½Ææ#y˜k4ČC,gź„5.¾<`²µ 5ßåž#ž±Üj‘  #²%ąjÅĮśOE īj*> ~B]gŽ6›U]7‹.”UŠ kä7ZA­ģ¤üĆī~õĘ!īōSeŹŽäcŻü­+˜öHuąŲ_”5Ķ)!žg}cK¾+óį:ƒŁ7䄬A50ńćžÓ«Ž«J šą'ć®įØ2 „}j"Vw?g|18÷t”ØåNŻ’ é—’#Z¤šķ:Š0nĻ Jn£†Õź“€;‘bW³'O}Hw*o½fM84FEžĪEƒūM½ę72NPL“Łšä- 9 “Dś øĶī&Ü·|$”'vmp>P»6Ø”ŠųäqV'¶Ā%t"Hq3iۘ×<’Åær P?X"nļnęKĪL³5Ÿ§^*č.&øVŠrĄ @AQū Cš&É0‰dĒśœ-Všž¬½ū95U" žf“FŌŪŌ|“$ź l¾Zu#xé^jh¼ģ©ģōÄżÅŽ4|čå›t¹±¬  QäOY«ļ IŹböä_(殹¹#ź -k¾“~uņŗ{`×MČ»ŪčX3“"Ščf pŗ†Ņ‘w<毩8—}Oäwī?¬&?Eq½ĻQŒ’ķ£·ČVŌ¢čV|č¹s;ąY²9 ¤>4뻜Z%ó]#nŁjJĘŹńßR`Õbu°'`i :(6ė³1Į•%A}oĆw.Fx|ÓhŚ/‚†«'Däw̬F¬tŅ^FūW\ßņžÅpęNR²1† ’’Žö=TŖć ³źŚ!Ą×­=…A}†Öūw“ƒó\ėŠ÷Ārē­°©>”?ēā¾Kµ)÷o{åO=źTVŪæž’±J0깐²_ö*å〯iŒMü;„čōæ¦Ŗä<ō’­FŃõÓ9sįɶ³#[$koßWšMžŃsØAčYłÄø< ČłµXķHEŖŪ×Ļž’oéŠL¼ ”ĖņāaŲ,a „}$"Łß„ŠŸń Ī6Æk¤ |әėszĶĀH»CśŁ1ĖīJqŪŽS.‘Į€ŁC‚Œ7¹Ł¤]+‘4x"“hgĪ*™ j€Ė%®ė ;EĮž_ Ł:`n';ŪKv±‘fźbģ2æ(Ŕ5zą» n”L¼åå4;Æż÷Ś3÷ēŻ:˜—°ČU & %r``§ ōōÜG ŌH$‡!•d0QŹī~ō^Ģ{b„÷q'ęŻ;ƒē—³‰¶męĪF³l/R„×öŒ†VbŽŸ '«Ža ŠĶēąŸh··/Y%9#[Z×jÄģMKÄ)T¢züęI7J?„ŽZ~޹Ū{›-“9DńéŖĢÓ½¬įBń„ČÓķ3ĒY™×±Čų†ZźY½Š" 8rhõuPęßań²>R ŗ ö!Ä KG'[N/ėėĮkMźAč¾£^č^#1iKRĀöF\AŃī÷ĀsĢēM!\&ēcs#ą9h ­<ŹœŹ ^Ö_#w—dĘT?é¼»Hc»Có(2ĖŁćØ©śŚbŃŻŽ(t™CfźŹ2æN% źoSģŽłÄ\ši‰¼ <œ5&Žś†©ļ”+^ õ(ßM` č ]Yōž ŻüAģßēīß·ĢūŖ½ń9,(`Ģüy eöu†Ž`“«–°Ā7!īp"bŹRg°†÷”ę5ņč½õÕŗ9į{`.÷q!‹å §ķ(õȵŖłFķfenrir/config/sound/default/PlaceStartMark.wav000066400000000000000000000455201513650123000217620ustar00rootroot00000000000000RIFFHKWAVEfmt (ž’€»Ü  €Ŗ8›qfact` dataKĒsém˜&£$5qV¼%rµ\Ņŗ’Éščg.ÖÄĶdGģ Į“ėŪ-s\d&ßŅßFõ|¬Øü)äāžµóJēÆūąm޲õy/ęĆÆ“ØAåŪāJŃū›[ž‡f̬×Ģīer± "&;ą0]ŲµŗÉņ9EZhls½Š6ź/.=f "0ąž,/ Ŗ¹ÆŠēŒåš¢Ł±šV;Pr hūõĖĶS§ī†šnל¬$wĀO'(– ßC¹­ “ä7‚ś³g+žäP’…”Å’Ęļ”—ś[ąDĆ;@Aiģ¤ļŚł6„󔊉ąŲ- 4“…Ķg‘,ļåHė¢m*ł«#Ī9a[ļė’kNUyö$ūż¶SĄNUĄ@Ēźń~ĀØ¦ėānĪłĻD³żŲńóZPŸ»FAŠ>‰նīŲń<ś’†~ļ1‚ś ĶTƙ…ITc‚!Ś’zkžŖÓ#"æ¹ö •čüüŒ’UŁ Śø#äó’¶öĆUH^–!āõ›`K§Ž xÆÆŅåhŠ™ÆxE3åžē]°4MŠłŽ3.SJ ÉA‹²ķĒĆzČBA~ķų•é¹ż1£čaÆģŖv:¤ć½‚‚Ÿ”+ÖßșŖĒķŻ8ķɜ„$C47 ׀ųÕżÄįlj— y#Ļ’ E†!^õD¶tü"‹7Å Łgģ†ć%-”] \Õ!°G aīUY ś>XėōærNüŠgÖVƒ"ņšu”!ūŃ5 1Å÷D»AżcEŲ—!HŻŃ2ųF0fżÖ¦4ņŖŒė.{NŗÓĄOŁ™•óŻæHL•Wm÷‰rńż-&ūö§D§ā"® @¶äXœ¹¹ß“č¶qņdē%¦!»H>”m²ņŠsXQš{žēHĮUMė±ė¦!ę£7  IxXąm}ż.ģ’d_ł²Ż”‘ō†J˜OĆ2^„œZLŒ‰ssE’c&U!!$]Č`atķSõ¹ §čĖS·™Ęē¾dOä•!Åöć6 Ēö¼ ķÅ÷įŃģ§ š«:y³9¾}ęB}€ŪÕóÅä<Éģö¾ķ „}"7 © " 8¶Ė…nHD×$“KÜ^ó¬Æ'üŽ: `ĢĀiĖī@#öį/(RKe ķ ™_¤®Ż 1Y:{G—¾ÓŻĄūøč@©=ųłQœžØp‰ß;nΧ¾$šā—.|?Żd)ö©ģC§8¤(Ķ̧ø™™ā"øDU čR2°]få30ę9¼ŗLÜ3"ąō»`õ;ßbš?õ ·×…=,ßrΰŠ\ļH©]mćÕQ0#ņÅŗ §ÜWāVIĮŒgäė.Ķö 5jY g#į!Ogöµo"Sq5’{¼’x=ĶīÓiDśļķ”7PO‹āˆ—Ū -Żķ¢9¬O6ä{Ø»)8é½ÖH?ņ/D“+”l‘Ür ɍ{®ķŁ^Ė;uZīµ»A[<é—ŠēŻŲ÷I£Hn6dN0ĢÄ ˆ„EŲÖĮńÅūA«§OŚCžĒ·pø˜’%čPśė"ž£ øfĀĄ“wėź&|čI Ō¢³xø¬;(čŅhZń“"ģ¦ē²¤7Mę`“ј <›Ż®9$: u '^ ąX-S9ȹ…=“,æę÷Ļ=ؚUŃhH¾š"źĶ@W©šćŹ|&™)b{2_ä)fŹö€„śÄ€ŒSģz.פ~įÉ]˜tZėl‹ Ł$Ł ó“%é<·M -}ŌŪńó³…kC‘,y/ R"e®p p+£%¹įŗ50³čYS’pqŖ%`µKŅ ēĆšL²ŲÄo;HģŪx`ž}uŚß(" õb ž“øU1/čįÕp„KGŠį; @õiµjüia8]#ĖŌp윓zł–ž 4‡ßX;źłNµż¢2‚Z6f+6”*Zą8›ƽ3Õģä$KL •1÷åÜeR÷ɔ5¹˜1gč`G±Ė mīźŗ4©£“ćtĆvÄ|–'ģåõĆĖL§–īØ>ŽŁćJó—UI„ˆĆįrmŚ.{$žԃ×hGņ"v ±GŅ­åndź²$ĢųĆŌ‡aAœ‚ fÕ8"Gh3PÕ¼G 7+#½c¶7X¼Åh”ģ0īdéśvųŪt žŃ[ö†¾I§×”cC’¦!Į0āf Ōw®VńÖ_æMGuźX’s^[Ū5YgČ p=Ķ:%晋F„\ņ»“QéÆŪ³…“息曣’³3į’.—āÓŗ‡Kń’Ó7ŪÆ›„­õŒäQ1Ū¹÷»ó=ż$!śæ·µØźmĆīŽz–OŚPEź/ÅĮųO!‰p`ŲŅ$Fµ ³$ĄŻ‘a•ō‚k8+y½ ŲżšłTŽżÕNX»œoé‡/ĻU‚ŗļnÅ.ō%—üĻ:Ą E¾ź V:…Ēh TDŖ¤ĒŽįą±0K;šØē—38MŻk’L1Ī’nHšļ¼P„é×ā@_KĄŠź”ō›£1ü4˜;Ģˆ¾ī§ńåżā„L’$÷Nģ·§ołŪĵI[AēéĀ[čN–ųص¤Ī<Œļ(GT_cĀĘ·g .=͊X)ZøGXU²rµ±3ø<;čhÖtxG|²ąmę/ $VZYsĘh«RBxކo£-+%įaÆocv:%!Š›O°›ŽoåÅ$śĢB žīŪ_aōW cqĢ/“%ū¼Ö_ž>ņJń=VnPæÕõUG§øqNTč% Ÿų 5ØV`YĒŹi±T#;śQ©LžÅ˓ȬīęB䂽ų5”ż’^WŖUö~Ic§!+£Ļ﹋šśftźZĶ&NwļĻŅUśļąĶø¤Kļ’į]×2jŹGf#Ÿ1ąZŗß铫ŸųĶ6€D™^®£ˆ:į‘ p†V%k†ņĪ,^ūŻ_UĶJuļŁ²{ó~×-~ņ¹Ō#°ض:¬ā¾S²i?q;#R!rOq`{Ö2½¬ņ?äD±n°å$ZžŌ+ÉTœnŹ`¤Ļ˜uį¾_±ė”Źå ¤M²YįęI;8iŚŒnÕWŁ$Gf0weÆ”`²ą ęńҲFūš“PŚ‘póĘ9众h”é H<į®Ā¾õ Mē \Ä÷G–IļĀÜmś©yü[ć}©ŁNÜ\Hō;œP­Ž|‡t”Ō×&ÜJ¶Ć±^ēæmŗźĻčDnšąz„õēNŠLųĚ…±ź×åų”QÅó‹pģūÓÄÆ.FģöĢ)£żī į.ĄDŗźņy Ǧ(ķOs©p&ć‚>­€­üėYTł{u8lŌŃ$ø›%­“Ža䉎’Ų„­’7”>1h1j٧;ŅH¾š €­æÆ*źŻ²ŌśJęFž"¦Ć[ āėÖGWĀĒOZā^ö7Šh /š”WĒaąĒ— łm\SĻJńCŲnPĮņ˜d”3ĢUąķ‰÷ś¬-ż’}Į³’)ė2¢ÜY6ō˜_W9ŻZˆŒ’s-„Ū'×$ aŌ#ģGaWłk…qĪ×%~‡,‚¹×ö\H¬ü–¾!Ż” žųŠżi5Ʌx¼ķĀ«>–ŽæŽŚ…RŸó&ńYĻ·„Čļ€Šķ…ÕŲł)iP]øĶL\ÄsG|Ā {>ėé~æ£ųuą3lŅJ$h¦óKx7Q-Ÿ½Ģŗßéī¹› h>‰®"Ł;»ķóéł`]”[utąķ‹ķʤ.Oī²°’ķ‘å’ł©«#nŽŽ¶$@ć^ūkötžµ§¤“<įŪcOĒJvķ€s°łÕ{åż[8øFt½’ʕ“ģ1 h`o# %ĆCG[–mˇĀõD-–ü‰'ĒŲ·—ŚĮŽĆģ–Ÿ–łtĒŌѬ—ńZ€ŲŲsÕņņÉFCĀŸF<5Āų«žŚS9ŖóoŠ«2ŠŲćŪ”­@ō5ž&I5bVé÷CæNżkźq.ģŠ&ŗNšĀŽM\ė„Äń# ū °F“7ĀęZ`®E+ulͽ3]D?0j»xŚ©ä?ćöæÕąŻņ ōqšŽĪ{„Ÿļ\«·¹tŽ’čą_QõKupüжĪ'›ēD Š’zYE†ÓŚˆīó_-śēÅ_V¢ģ†–Ÿ×ÜßчPīš×śßģ@Ż łjō.åįņŗ” ūōfÖ!§wG ¤ÜOįž…¾.묔łxVģÕ(rłń "I ®`~>\`æ KÅü—©ŚbG vĀXečäŌĢ¢”ńĘ-±—d ā‡óāK-Qöø®ÉÖ=:Cņ4Š×¼ŲZņߏ’kõ˜Ū#šDń_ŽūJ#Faßš—‡ż„2-’3Ö@fGVrµOŃŁ‘EB™Olkˆe@ä"Ą¬ö[ćĪ«”ļćŅzę+ń(¢|QŌÅĘ8ÄF—½–‡æ0ՂźŗńEœ] 4ŗz"įé(¶õ#Äa4ģV>u»Ē'éˆ@Uƒ°j—ī›įݤŽõėZæ2¤sźŽCi…W#ņ½M\ūé{޳.~/‘yõ­pÓQ%Š+Nžšcoߥ -•]’}U½*ĒéŽĮbK/ė ć”xŹ”1(īņ=łūiؽ€a•”ÕuÜ÷­ö7R§b•Å:Ė1—w Ņ5(ąš²`{Ö; )ņę/j¢ŗxO‡ķ^p‚¤źkh–NyĶܰT{žq~’ÜĄ¾…I@źŖd‘įŽ!ŪõÆøéÓ:čMńę™±n÷Żå$š5pSūŠ amY Z$.æØŗ?­āšs0Ķ„&ļ ŽTJq¶$ŹŠ< Ō83Œń›ł‚24SÖz0.pÓŗd%« ŲŲŽ®ņņńzõ$¦ÓQ HjēĪ÷ÖØ Wķ #·śY¶ēj§ZšyāČś6¶:–½<¾Ü…Æ",å`Ķp±¢DŠåą|K°¬~nå‹ŁY„ó"©•¶ŖÜ»öé¬üTÅ(q— ¶ŸW4’ŠrÜkŸZĪ;­Ž§Ÿā-ŸÅĘdŠģģOĶ0³oDėsĶ7Nљś ”ÓžY1ńņd…éQ́ųƒģ˜-ł2{[^~V(Dō cĮ¦qō4¦Š¦āõ!xŸüµŅß6”7äg1½ö‰LøAƒčv ©}Y8 7 ń½¬ūŲ:Ś³hó•…}÷2×)żææ Vź?P‘õ^ŅügWƒšĶĒ+ŽÖ䮹”čy¤åE(ŒLjVlyĒ$U>\*Ƕō¢ 禋Eu!nĀѵ$]v—–t'ŻÜ峞L‘’Ś<Ŗ¬¾8ż<ŁVTóRąNļ oś:žŌ²ißFę¼7\é½='QÄ ģOžYp’Æ®9ƒ$å½+ KßŖ•nJŽÜęćĢ¢öī‡ •®ŲYÜä«nH–ŽĻĀÜŽhö5ŸĶüčä'¬ML ä‘Qś†pSÅx]—} wėsG}NцÆg-åw ®AÜ­äō5MśĀgÄØė§śįÕ7žõD¾ Pl?ąģ C¢OĮą)HTcX}’KsŌ0#C¢Ū Įąón+£ßĻc6õ>0_læŗ$  a§‹µuā½)²?c*ęų™ŃżŻ‰š@ɛIC‰ķäŠ,OLš@ `k² "¼nó ”ĻūżŚŠÄ’H.ģ ń½ĶZP?ļ€jõś+ĪQž†•* -‡c>”l’ÜĪ’?쫿Złß;ɹJi˜č‹–3¬.2ä:Ŗ<¾8•5ÅÜ…ģÄĆ#—–² `œ„au‰ V%A,ĒaĄÉ"Ćī¶ė/ōŗÕüčń ńš³ūˆę+aģ4d ¤Ļ×IEī«O#O9Å !Ķ# ļ īrE“śŠĮęv×”}ņ5īU“¤ ØkY«ā#Ć£V–6 WĮĢĀȕ™ė3f5‘¼ĢŪÉŲ…¤īņį ń]¬YPÕµĪeņ‘ļ!PĘMB°&3+-bfŒ,Ųé/dų)BEck‘Š«Ūšć¼ŃŻé›ōhPzxÅ( øĘ1˜čģeŻ»™,į”ˆ¹õæŗ›Tźč3Ź-Dī¹}ŻHō:Ä;Öģņ0ĻŽeš²ōę™I÷Żm ±óŖM¦ć¦ +^t¾'V?»Vōņ”Ǧūģ|e¬OŌ!ä˜!ź33 N‹>°.jå äßҌ÷Ÿ›Ł_&ä% b” 2If„§ćdÆ7”!ŝķŚģ‰¤ósp“éŃz†ų‘®™Ū䯙’P Ž’ūKož©nzߍ{Ä/)ģb}"ØĖ)¶ā(Åoø°A%‚,:H+dąŌs ń{mļd $„!ąō{·§§~’āł:½Øßé:C°Ų¾kåņže8iŖĢ#ą'cŚJ !'ʏ*øģ/Ļ“”µšŪ5ē}Ėr*³C&4ō¼ üØ ]XhĶ•ĘĶ™ÜģPb/¾pĖźŻ{øYJ)čä-ö÷¹üՖįņÜõģĄ ÆN@(€  ø*ą Śį»óKé}Š“«*šŪ懵v‚<Ņ“ćF<”ļ&9Pb*aüØĖžāėCˆpNĮ‚%œAfŚ4kwóW¹ķórčłūÜÓjŸ«›#×¢’0H6U`ŒćŽuŁKŚąŚ”½õHÜéüudl©|!$ÆŹŃ]:īEõ—^Bü‡īSłĻ„ĘżļŠ“_é.I¹Pj®Ćd):AĢ M<_ZľĄX…™•ׯŲ$Ī_aļųÜQ÷ØIżEĒ÷VlBżeo;ĢĻ“1t;øfŃčH\ĻĆEųķ³RO-µ^±¹‘ü±ł5’åżk8“R$h†NˆCło-Įż.²“–ęę܂¹+“Śb;”ŽĖÜōž2`Xß €%mĢ€ ĻīæśXźØUĘhzõķ"~üK›².nސz¶+~ē°æJ ź–Źā‡Cö­›é(ä3£ ’žŽ†’ō\ÕSVÉńŌ B÷œżū ˆpTƂ%;_įęu ÷ŠYU.ssг*њęjēŻF#MŸÜõ Ÿüą”²fLܐwb»ŽŒĖ“ŸŁś CĻSĮļXŸ ČßsŌ`|ń åŅĶŪLFļóØwl-ć'$ÉmkŅīyĪšr:ģ{Æhł£}„¦į)7āvR®aŅp #WH² ŅÅTŪšA’ėUł˜‘KˆZ0kć!’$”`Ūϲ©qš;ć%ü‡XÜ©‚ōķ§[¤ā‘u”ÜŪŃ5ōÉśŗīØŚčf(łWw S ó2®®ūńŁē6¦HM%C²apŖĶZ%ŽD%Y\į˜N.ӈoń$ŹŽ·˜ŸŚŸ‹ķąƒ±łQ֙’ĘœˆŪ¶äŸ”=L5ܞ„ęfßįL"VfO*rwéņęŻųP¢ō Ž8Jß:~8_i½¼tUé&;C¾k4›IHŽV)É-ķøķ¹łŗÆŲ“:²ņEY¶bsē 2FLfŚlŅNf•›owÜzųÜ~żōsM²·Ńęē6ī6rgO&4‘Šۚڨ–¬˜ć܎ŻX‹V¾Łź2f‘Æ"ŪP2ҳf›ę‘q›Z0{Ž÷óžżV¦ßP>éKpæMńĄöP@R{Ž&I~/b’`ēÖ’Ź÷hcĮxv@²øńEę’P»ÕōOéń¦`U2uĒėÄl(ł–y •ZÕܳČń“†¤<‚į`_žuŹVß©Y°—ŽČ:ŻżqģU’%¤°”j_å†#°ˆ¶];Ų<Rh Ę"†—¹7‚2“ÖšEI„l$īŖžaOŽßœ±+ś.īŪBeOI—ÖcåˆG!÷‚Q2ÆÅĆĒW Aķ]^Õt³ńų”-ØSܹā5"Ōg œŚ¦-X7«#rEä &ųeeęż!w÷mN`Åzou컿䐔źöڵ™Ļ¢ēŻļą˜#dΈ¶vļųq!+S{`-ØÕā<#°¾¬ @®™½ĄäŻé ņa°Yūuå‡s(;‚&øX¦÷Ps7ż¹ģF$>¤ ‡ÉŌX‚˜ńŠŖf°Ų8"ZĒɗŸ2>>5fæõ¢U™R6ĒŻ¢:PU‹p|GåļĀ”śs!Ś{ 3>Ųj¼ˆ>¬>ŲX"„Č`Œ“Ü@ó‘IĄū+qc)dŠĖ £~^įŌt‡s1÷Ų{żzn@)z]w§nŹ}ā$īĘZļ\—sśnCŲ`zH –b2³ HOXƬoVÜ¢eōą!«ķ“įäłŪõNśFQÅØ;96ŻihgōŌ‚šńÖś:T@äĄö*רc\ņāē 󢮓ūóV-±¦Ē¹åyV* Ó¤»¤įŖ“į~ŌrÕ«F&°Õ&;GbŚ…±aŸ,;ĖßW’Ŗr†ć’¾*†?Ų$ŪEH IŁ„a,H7ĖŻ7 ųJ½XżD¢Į\Śąp®'Šä ø²Ę^=ęģ×FŹ4ą]ąāJ@I0Ükō7ćā½KöżļMX’OoTN]ÉĒÄÉķ}ŅŻ›_ōĶÄŪ“DģóŪ™T“ŽĘ±ęŒ,Ł ŽśżŁŚØTóŌ¼'%G”b lß/,ϟŗäī¼?Lś>r«Ø{޲ā–g*Żwc ¤hŒ³"śę"…S¢ ö;<Æżåą“Ś †óŚō"*™Q¶øŻ\nĮŹz@ī墿ō÷ą?ü­cŃMvš¦ÆJķāĆłG¼›_”ŽBŖĪkć\ļißÕx*õń-¤-÷ŗ6żSvSČq'qķ§UG˜mŻŖā[;ŽKɇś|ßŲØ)õN&¹*bčŽ{,¾õÓźtł–ŃÆżÜNę®Ņo÷äš1} ż’`YÄÖŹģ§ kAµ#”¬X€ąŽiōó#üūö³Kż;d:¢Ew6U9żrh’õ’9ü0ß -'c !ŒÜN[ŁžoČ'OC W9ń³ChP‘’"Iē† Ć÷ ]N¬äŖSØ«ŽĘāćŸĒ•÷5ķ1żP‹BØŁĄā .Y°döv"ĪRŅ`ļńTdŌūĘvń­—C«2Įćł 'Ø5 J…Ū×Ɓžņ1+vĮ»c'먱ŻoćåI%Õn‘,ņ$Ū£xźqįŅų%ĀbųĢAvżī°ąŌ±: ńjÉ£ Īķ‹„‚aßր ŚGóŖ ź< ł¾…~X×_ŸI£Šį¬*2Ė9fī`Õōb Gü \fē¹tw¢čŲŌcņHœvūŸXc•ąrvÜŖ–d<އ!źžų£*ŠżL j.ąxIVÆNr:Ē HeB®Ā!2nÆéfĻųŒIp—Ūm%}Bˆ©k-ćRõIqümš¹ē‰č³÷­Ģӏ™F gĀĀZxė@J ›`XŽV×¢,rņąĶtAʚŃī h®^xą(ļ+  „˜\wˆÉ'[øÉ½čķéŃKSšĆÕt¬³&䔾ą“1ŖõŪ!ž!¶T źr°£{åTŹ«ī,˜ĢdŻīļLd£śn!įļh›/PxŽĖ^E™DŹĮŻ·@ŪJ=Ąó(åÖŹø”Gīā?¾¶öæ”ēį"K+_ ­Q=ü:æž6§øŗ½7ččZĆ62Éė¼Ģ'`Ā™buėõ`ūĒüŹSķÆFˆĖ:Ā‚ī%Šrb[E&¼­Ö7”䜑q&†…Š –}!2* xŃǬ(›BäŖA(Õ8k åˆć^¢-”øróŽ=&QŚé,€_NdÕ°!–`‡[˜ ˆ UI[µqā<ø”i=€Pt+pŃ$āG4aKm×RkäņpĪöĒ9±öķ½åüXG ²sĀęrĶjљ[#q«,ōŠćü’{@ŚŌjó4Pi’gÅĶ’®ü”Ę:TÜģFj¼ĀxWé¾HĪ1?šJˆŸšųj3Øū0Sržŗ&h¦J #āC8ī+Įśf€ųĶ*Ø¢ĘÄ6Bģ G‚ĘģĀ€—łĶx@¬™}HėćVĆ£öč .PMŗć¢ä[öąöõ<ƒ’§iÖ’}–²T‡;jW|*yr)0”¢?»56R]uH'Ґ0^›…e½™‹ćźŻƒö<č™MųŻP˧'pī7  M ²­²šóĆ;Žūėg¦T͉7¹]¾D>źDļšĮÕOŽ«ZØ!98 ł»Ś³ż“ó*X%ń¹r ū“ι„1ščįŖŌ;ć[ń‡ NÅ-`oģÓ7ČoF½B%³ƒ‘Ö ±Ÿ·];5=xņPŌÓPpńģ O³ąövögż|§"æxÄ5@(ģ¼mšP?Ļś”»ĒU6é— ¶{_YēÓ9½¾_”‰ičŲ#ųųF>üżlæžØųÄćRģķēO³Æ÷Ūaåž ÷»R%s>Ęa&c8Ģh ؏f“ŚĢŪMxƒżÄŅ+’SÆ­źĘäųŁöĄH²üź4GHžmm’@ś±jž#͉ŌaDƒńp+ X%¹•Ś~ ÜH*ą÷W4 żĒf-VŃķršł"ūśOažØü¶ō²T’Qęü±>,©æ .ėžŗ£ß+zMdÓh¶Ē1xē—!`˜Ó¶Ź2ńTŲ}ŪqŌóS: ƾ A¹üI“©šĒŪ‰B“ó ß’åYJU÷6/[Ÿ½ÉßV¦9ņnjhū™ma ˆ$Ė bŸNĒ!5ķj¼Ŗlyé8$>Ń…ØæE×āÄŸµ–±ß'°~·båŌēŒ…ćč/×KųÄ`Ŗ—uć\ct…!½įå”źõ”ą›ģiŽN#ėNĢŽNDŚU„ćßĒÖKõŒ¤+[„įc–s‡f‡&-"~@ą«jõrŗ„­Ščį–¢,@26dL‰łīÄ-Sś}µÉG*ēķ?{&Ą²Ó Y~ZČŌ»ļ9䔶½ö…Ū}2‚žŌ1¼qfé%ŠK,d.d!āˆMSö‚Ä,ˆA繂Ą÷Cöul§|ŪŠ®2Išä,½L¼¹énésÕźŅŃńųšAåUkL…3Fč­Ā¢äū?„©±æį&JćbĆUö.ūVežĀØ(ļėābśƒJ#,WĆ {sQ¼Ō{péӖ=ĪńÜiļŒbAŁ ¬_ŠĢ•uƒ™Ü:ŗķ¾²čł1jÉeĪķ!}1ēŪ)»÷ó‹gUQŁw›3ł‰¬»ż±­ø¤ä’į×ģUņVłB¬ŒŅĮŽŁšÜsō{ Y `±D\ʵīäF`ņ÷luūÕŪ:4ņóh mĒHÆyB[@Ž7Ą„¦ U2ĒI²31Ɛf!`&ø¶Ź čx÷.$Ó§ #“ēŗ¶Ū÷čĀßWAõķä^™OLŹŻnrŖ4z{ć%ĻF EĀŚBoak_z rmq°{${å_ d'uX! ą3éāõ»Mö/.VQŗI%än ²öödš(żv„ !šAU PkXÖŖČœ]ćXõZ§ū$\”ž¶Ü¹/’µ=eŪŸķ_²ßłĄ×’R@ŖióUx¦„dXÉW!Čķø]z=~ ł/“Se‘zMÅ:Ó—§¤F*ŒŒźÅ›/N—Žørü“{“žÄ¶W@A’rjTA­#kä˜7§H3½7üѾA’Eź®Ać kö³J)˜ęcŻEÅŌb—ń üŅ8ß’šõkåķJ$÷ł™č 3ųł³‰EØę-ēØāų8öūѤ:žEŒ×CŲŖņkć*ęG€c÷&¢Š8·ąŲaOħ ŖāL„T³oqę§ļ"Š8„ šøų=^ż0ņ»UWūįǶKķZēÕeÜVĢė½`[V”uŌ÷ūڜR©ó/JšķŗŽł;ŌŹåœC÷ {Ņø)FčJ”]ƆlQ $ąuŌŅFÕ•3^.Ü»tbHÖ¼Ėœé,f6Y¹Ģ¼‚~ÖžÖԜ’¦Š^ⲚK¦ņ²ŒūŪćuII”|ż…5ÄT×ģ I»ÆÆm>åÕŻĮżGŸ@’Dh@ĪlĶjļI „ŌYŒńÄ6rßA&õfĻ+ź"E¹ųg5ūœ"gžŽœ›Čc‰ŽB!i ĪY żTgŖq"z[Q~)d¬OĢŽbåČÓ!÷BńĶ«¼D9” ŲQ¹HX芘ejŁ2w#ąĆEd –l! ±O!Y +þ„Aź¾rģźŠNåšLmLŽn$=¶“±iēū•÷T‡ż’™üŪŻžŲā@Óó ńžĮŠŲUėŲņ½ % ź®aŅSbÕFqĖń„š„œ,ŽÖŽ“AøHŪG“\ĀŪgWH‘"ŪĮ&X@± mÄßU$ģĀ;i`ė# ŗ“Ä“‘Ayͽc~D?!3Üó*fIQk)y± zĶ"ü~D¶ž>ė^YjNŹĻ$tqšaŃ%f½ąqw”õ%tč"|­¢ #¹\¶=ÕŚė‰ĒIł-ķéŌCīNœśA93nĄ½»$öõĢčżQDų¶įfQ=K"¾¦?.źŒjm›²yVށ€IMÖ*ĆŠ«Ų/ęžM\’V„ė,ł`$m0ua$ź”kOł5ya!&>v`·™2R3fÅfc0B"!tSCi'q#d!QÕ̵Åńµž-;’’¹KSjŃnĘxšk5©>ĪćŠ9nµŲ½$=ÜŌjIœ ‰Ł. ó7Qŗ½²ÅčbŠÖæĖ؜źdų&&!Ø· ‚_±ŹåmŸSŚ$5qóÄ=1Aæe‘Sä†ĘŖöf6¬aͼŽ wŪĶŅóļąßY¬Kõä‘ōæo0ü?%ŸņżóąP’ūŗ|RG“)ĘOĢI®DĆäeµŽŃ"ē„šųrbS&v8me h$wåKž°”nßrv¬õ&ŅŽü>¶MÅæ‚¢7!č‹ ųJķ«O“ćxó’ŚŅū’šåðޔ–å 3­­»Ś$ŲÅYaģēäŒųö. ÅŪē—ž“÷ ‚µN®€<T9Ä qhAą­õĮ\äQėŖ;ĻŁćEóąųõ^żnL©AzćƤę:Œ÷Ś|*½ )?‹LŚ­„žäD ²1ąƒr2Ā,&fėnķBŪĻłĄó:Zf¾"ÓĢÉF²īķ\]¬4ÉɎē·”¢ =Ü&gģ¾ ĶNź¶K¬=äo²HÓz;ń>w;jŅi0č#ųƒś˜Z,ž2ļ^n„°$7ö¬Kh§9 ÕźÆń±ų 2ÄMÆģ޼ēžJ”¢ßŻpfõōzwü¤®M¶7:o灇9`+- jłŽŚĪż„óoĘĪz—ļ3ōŸüß}dŌ\! ĖįØŌ™ ń‡b†&-v× K ¼ZéšÖØŽņāżÆaJŖ:ĖŒNىo&QrN &ŌU‘^GĒ…Ÿ×µĶ5<ļ±¼;^ę>i>…T ×Ę ÉCVļ³R»‘éŚw²“(ę«ŪtØśŃ8žX”7 Ȇ1Ž%JX ē³P¢ę}·ĮŪ)=ėµIøėēm=ł5²\h¼É"ýĮ?–”@ʹ–FC“‡U~Får÷[zjÉ(ĪØSo8qz ŒZoŁ%Č<ģFC¤ӛgœŽw“’a²†Ŗ ęÕblƜĖĪģŸäģZŠ”łĻE²…b“Ś Zž™Ys߯\’Rf†"%¹ó™bčūŻG®øĀäčłł‡ØØ‚ J nĆXĻd“!µ²ęvK0ļ}neśoq¤«%{įć=g„SĶÖ'AJ ^Ąͤ“±™įۜuZf4'"ž©e#ßĢ ĮĒZ\@ķQ±¤ĘZįģ‹¤ÆƒŅq>›ń%jŽyh+äÓ"¹ö”Åo2‡ģĻĀe@šAwŽ ĶŽp®™Ÿ%ь¹šF„čśyp^ž(Štßé(D£ ²M5Ō±gńå|L³‰ūšŗā©3>öžóĮO’ū•ų*½DżøéćÉqÅLC{ģ…ÕKä×ńĆö͵»Eļ‘>zĪ<)ši›¦ÉŽŒ«ķH4r_&šI9 „™F[m3Ās$Śubŗž|ĖčFÜłŠmISšŹx°cīŅ:!Zģū/¤žPW\WÅǶžM’’-‘ńd0ūļoŹŗP%īč· L=ąnˆ!cŃ`vģā(5”ø!õÖ`üņŠó1¬ƒ¦ä1Š×VƒņPó \p¦®ĆĆœģė°ŽÆF»„éā ÅKZXģįĒGK퉱“VŲåŪĄ:8Ō•hń˜ŃŅ3››3-0’ŁŹ†Hī%³ū*bęSī g`śY" ’Ł”†H^ąü˜”V’2ÜŽh+Ūõ"¹óLōoĒoQ%ķęᤢ į¶÷:R=żh‚‡¹_‚čU’ ]UąĀįŠŌėõšńDØ žĮāY’|'õÆŌ·Qå€m+ĻŠĮšļ.ėˆś¤Dp ŒĮza“ā“ <öŪV“g]r‘">#’bj¶’ =m)pj$c%˜†ēa3‚¢ h@Q­ĶjpäāČC­”ķkäąČÜ¢õBōą‹/ŽŁ\ŗō±ūļ;©ś>aĘÄj Bģ k‹¤`΃įkÉÉ­y˜˜ä›ÖŃ4‰G›»Q`>˜:ŻW€Њø¢E.豌aH„ †ų’Z‚ż0%įš·õś‡™KłŲŻĆżéĢŅ/ųīšD(¾l ź„:­ÖW’‡ŌX1-œęµō M禅ß\"‚Jt Ē„ˆ0˜-æÓšź›°ś‚&ąH·JM šūĊ„ž'ŽŃUb/›>ƒŗ„jÖčįZbŒ(É „ s“Ńę)ŚĻ­žšäˆö[°‚§ŃÓš]F €e“€Ģęüujž’Ńxß5ōƘ¼¦–Żjś^#žĪœŖšZ‰ć;uĻLi|š`Æė\u:łŅvxšFŅŅśā½ Óöé ń·¾śøč”SčE·VĀē°[Š#ptEa%y.²}¦©Ä¬Œ8ģ1Ņ@Ī»šjļėspNщ%nÉ_ĻķWø!&čµ £ŃāįÆEöP˜'pŻ·rx®²ŠŅä±ļż3;„Tˆ¤ Ų6 į‚š KÖśĒĀ[B[ėwLäŅn«ö@ €Y+C…W-ńėŗdPłč¬)Ŗäc憑<&-Ū¾ (™­b“Żg²īi͐O#å—¢2“ßY¼² Č>ę¹óuœčūŃŽ*SÓŚcʛó%tņ |_ū$eÆ wåoåķŠ”¤qÕyM&GÓÓĮń ė¼kA?yĄ _Z-üŹČ¹žŚō*Iüø ŗBé³Ą@yµSk(ēVéCrųk –&śŹ2bSīŪĒPØō—ÅāM¹ĢÜÄ=Dōŗb²°“ːåq™GM{ˆĀ3uY“Ń>űjģ"j®9a#:Ō5bęńv÷ūå|Ģ©LŌīąrė—,&łavl©v'$暊|—ūš)Ż•ÅU ‡ģq–<—Īݾ‡ļ k£-y6’ł\˜1StŻhūS÷xžżī­ÉO«ķTećEqĢK ų\`żAβ]š;? ŪUjµóوŒ½ó‚Łé6h'²½" ę»ń“<”P<fŪ{²"I)ęże’ŒTwŖŁŅk,±Fy¹å SĖž­¾Šäņ[¦\W_s]šu&Žm Z$` ’üĮŖT됣)Ūį [ė µł ēĻŻŅµšIFēual]| $h*p®#ŠäCµ:šĮ‘ŽQąļ śƒwšÖ'ŽC\`t LĘx½ÄģŅé¢ķ‹¤­īU»°¤é)šżµøˆTēt‘'ŪŁJĒ.øĆ—č¹ ŽCčXŸŽ:āłŸöż"ĢܶīžĀÄAHAģQģ#M¤¶65Ÿg¼ŖßXKΐsnļŚ©93ė8ł=kLy_`†LÅu×nģߌ…>õ.×dęļ'w÷O °LÆģ;ďłĀž6D–’¼‡æ…DŲ?׊^`É.ŹŹķŪuØDōŃāłATTž·ĖščCP <Ö*_iGZR$s śŚA¬ØóҹÆkń=å#¹ń “*ū_Ė$ ­C įp'å % ÷tå‡É'÷×틯įĢ.åõīŚj._óxÅĆx¾BA(ź0P8ŠeŘĢ$E3D –üD2T²āÆēžö¢’ę6F„MĀįF*i$# bZfĖČĢŸÅc5ŠģĖM`o³ ”‚SØÜ€ĘāN2ŸāÅ5öb5źÜĖNō׳Āņ^Øė/I€ŗWZiŸ²ĶßÅĆBģAęX¬¢WäŁ÷ŒOžR„R Ęüj‘[TĪ…ō¦±¦*āŌØ¦œ77Q§½Å7Ń ›ÉģŚīNžm|iz)#<Ÿ†ŽiŠ×ō‡&M]‚·8ęŲ½LHAęĀEk÷@Čē’CM°’”éÕ1Xųń`Āń –Pčł|T£Ø)@Ć4AXęŒM„ßPĒŗ°ķčcŃŚķ!›ółrP‘ģ{ŅłÕ “G®ŪwäēŅöŖ÷IĄēč@Mų÷š&[Ø3b˲§Aīā˜ĮSˆ@±ĻSOš]¶4«< ż!^Ŗ`ÜÆ^Ɵ:Źģ)¹EI“la6pe Š!Īȁ•E˜€Ü׏˜9Hī2ņ#X¹¦¶rčG ˆ m®‚q„†&,‚Y“ė+1łńšć`PŽK ē ŽŒMYŸŁ³k?fę#"Čū‚ķSÖ_+Ś.už„°e'Œå! 2œ”»4ÜVO3ÕÅ»ń:O »Åé·^wŚ’}óN8Ņźo½šųläĖy”…īMķŻÆÄłIåé4¤ųfZį 8õDhü;„—i,ŻĪņCœļPĮŽ¢ _»‹®éiĖÅīxīAśĆSģq į`µÕõGŪęæI¢źĶĀ"§šė`āTW¬ä<ų©²¾Rć?¼FjélĻĮeš@Õ!Ķl2D“Īs­žB|äTšę0mP¢e$ ü䯮žö‚w}$Ņ) B®éĮäM€Hć0€mö·ęĖ= ¢ī‹ŒŠŚ„Łšó°Kˆ¤åƂį›S ‰Ęڬ™«䯀×8!€ņ U™pä3Šö“hĄŁÜ"@óSå8„Ę”½į.':D ¾5±¹_gč_”}*uą)ŻęWÆōLå07äHeL¼»_³>鱟ņ ;N¦ å“5÷“ŪķÆ4žOåfßp”ŲІU£?Ē‹*ių×#Øņ.Ą2e•» żęŽūT¢ŸžµćL,ēKÄV"XĒ ƒ÷ĢŪ+żīÄ«0ģć›J Ŗ4nYćDĢl\™yp~«z,ƒBĘdÖĄģŹÖ0­˜Gŗ9(Ķ“h ļ2?å“÷2Ga »Ė _Ś‘‘ ž0Ūl­3¾Ļ9źwōæ˜}Q•Ż?Ų€9Ąņ*=GćæZöļ“A°P1kåæ~Ö@*/ņø¶C=’^ ÉčX˜ųFļœ]śŽZYÅjÉ—#”œ ±64®å[kY yČ £4ZČģć_iŻLuxōæ°±g@"2ĄjV@Ī ļ^ēąOŹ÷¾Z{ć•s~öķą^¤Uõ+­Od ®_Æ ’ž= UŠ®ėzĪN~ļė°«£¬9ÄihA#nUBfz"­BG:³Ą|-) WVÓrńŻR^JĘ]Q,ł^p¹żŌŌ XœńX;’³ū¾0‘žŅ?†RF‚õ ķü°łN”¾œo1źŽ¾Życ?Ÿ(!µ„ˆł<,Ųż;d~VĢŌß'õ –»2é øvĖž“'™ßVzƒ rÓ+žÖ 5/ņ R…Æp,tń”°|P‹åvŪI}žW©žųHŽ’R ā¤ö6“#UU‘¶qkN2ŽĪÄŚ;äÄÕLģń§éģ8£łJ\“nÉŪż9V’½°ī©jµś#ē°ß~Ń埚fp˜%w%ˆ Ģq<¼D{i錢÷Ł6ż[AčtĄ¢”»%ą“Z 86JÉhgĆķ±½u’ęéŃ’¤ųlįR$—¹Æ½Ż=åéEæČl•ķ\é.o£%))<½cø¾éŽ\iŸ¬#óģ(ĶQ¤ ļ]°-­däåüŠ÷žŲ®õŸüŖß§įĀā] ė{Q®³~pęC¤z lį(h1@x…,®E¹ä Å —±@‰éĄ-]ųENīĀÄśTq­īqŠ9śšńē*Pū÷©‚Ü_Ž+ō§4ŅĢ8¼šīēÉ!O¢˜`0?O…€:cLÕhv]S¤tĘ\įNXR.Čp6£½‹Uų-NĘż¹Äģ09Ókń#¼)‚»?c+é[ū¼ųÉS”żŚ9cž!'ČĘ” ˜—ąū„.`©  yV5Ó ,v|ƹ|)å¢hŅ 6x›wźČŖ(N˜ćŸ S"5q På*®÷øä £Ö½Y6ņéöąŻäR ōö¾ƒńΕքļßÄGźõ–Āų-†{”‚~ą~ĀŪ”*–žąüyØbTÓā ©KŃÜćĆEō<§²“æ7ęęqļßę{śŸ÷õ7ų×§ØņźŠ¤±ųšįŠ!Yį›`Čõ5W¬ öDZ§Śźrūł\{žRž_`q’ 3>JŠfæsł“Ńżęśč…ŌSųń[˜6tݤ+hqįcĶ%Į—£¬•2įŻćŁ;ōKóƒkļŃÖ#„š—2D³‡»Ełü²Įżž•‘ūŅ܅žš3ą‚­fõ€ä“)?1cjćź|ĆLNŌė…‚ó׀«ū5åV™¼”ĒŻšē\4Ž÷ΊJE.nIĒā^Böš"~„ *šKPé3pųtPk¼Ńy魏ģ±:…łåfū¢"©²ą'/óø¬ū8T5Ó½ĘńSńµqPēśVæž•‡®łū‚ØžQ›=ļpŽiś†yF‚Æ}ć ³¤”‘į»Tą”VqõļJ$Pn4 —„6)Żį¼ „?ó׿“ūŽÕ)P…œøHØ#čĆā ųĻq±ļÆ% “ł®ężjlœ#¬ĪތØl/8$2HzfmÓŸ!–Š HŖŸ;mćß&TÆÆbq:å#nߛaĻŸŽ‘"Œ† „b“ŃfĖęE"w3ŹM(ī³×Ÿ <Šnį§ z āOÄhpģ"é®G N:m}ˆP-*ŲZänL¬$Ż–TYōÜĘ:ü¾ž³½1‘”WœųČW‰ż=źkæ«ų#”Č5هķóńŗE¦“lŚ„Mm7o$>bäjĖÕögÄÉĶ–˜ŚhżmÆĶ©$åāa±” ­å¬ZŽs/ŒKŁß~ՎŃÕń„š¤p7Š߆fH'-" 7'Z÷ żhSģ#qłS§»ŸĘ7éߘlžTŻĪTĪ«TNE9%ØõĶ·āQļSŽMEڲó£n;Qį$‡J'Ų+ żEi^T#v4VöŅfĒüÓUžżFĒT’,bŽ:dĖ„å~gLV"ė.jõNŗxü“&„C1bŒ‹qŹj„Š˜#é)†bNc× f†^w׌ĮĢÕų–™œż×}|ŌŌ~ńóčŲdü¢!|8µŌē)O»Åéy\ °}É Š9ģWƒhłŲeĢ–TĆ»2AéBÅVk쓐¤’‘…į’3ŸåfŠ÷o½›ÓŠé3ń­ mĻĻļ‡Fļ¬×lś|„ )07·£¢”苋ąEX×hĀrņ"ö–ߎ§‡JŚJõ ’§®’jĮĖ.y@™—iM\ˆxÄģš“ōOP1üÓB4œk„šÖ_ŹPņī 7Ż®g…ō2\™ fÉŻGŸmZŠ$«–r92&g?wEĶæ'S1| qŌŽ |˜õ®~Żwq7šŅ%½śē‡āįM-öõ+2¹ß_­)Ź9Õ d ģ°vYłģh™čł"3ų¢~@˜įŌjŻ45g]­²)Ć1;c–Ŗ'_9 ²…ĶŃ ‚D›]/xŹ(æ¢Óó@6ńūW) 6rønBÆ=ĻĄ@[&ĆĄs·ė O ‹ą "óŌŻ Qœō^žDŹWßA$8ū hž ·6µē¼ŚĆ„Rž–ŒˆdHŲ]!0™j*eˆ#tfI™'"ĆŻ³` ‘uģākĻł Īļq‚ĒJ{+ķh$ż£xaTįājޱ #ŚV:nhĒhĻ"Ō.ńd±”$VÖܶņ]€1Ź*W-0‰ƒ»¦ĘB”7BaV ­°–-^ݹtq*Šųx“żŅęŚ!Ö«H ņ"b[¶ ÉŚˆ%d Ųa!†‡įō--KüBć×”…ņPŔVÅAܤ2eŒ»Õ!Ļ:ÕćšhœöVp /Ēz®3I”¼m_ą.Ę1Oŗģe6vk Ņ#=;Ÿāæ5öėņgŁN¦"óóv*1ü|cĄj%•#W ųč¬ż‰Mä)ßnĶõ$ļń®śœP:žŽœ¾:¦ß”ā,Fł“ĀżļæĻ ś?EĮ”ė_ąŹ˜ī2ÕKy³}9gé9ĶMĖÆt”™:|ąh±«^ĶåćKl².Äΐ?ś!sĄØ`&B7¼Į¬géT»6Ē“g„esFĢ{1¾åįf?÷õ¾˜2•ŻÆāŚšböHŽ ‘Ae†]Ą!Cłćl]Øö§W°NāĒ:’•|Ō†Ü~ń@l^ ky©źī8/Nś˜oݬ%ś¦6©7ZēņšÉ÷PŽ.]>etæĆ¢ō.ģą¦ƒ·A,=kz}Ń×Ó)›ņŌŗ±ń²čåXÉļhs˜ś"*)ƒ>cÖ;ĀEľ@ģ’Ųi×Ŗxņö抧“Kšō}U£Qį¶EUēK _£Ä­į›J®‰ĆŚäÜWJ'ōĒ ›_Ļ4uÆļ\J VÉŽ2ØŚJfóKßręğ{÷o’~ż%U*’©»ćé('ˆõø·‚ü@ö” Ąü†©š]8 ޹^č³Vw±0;ŅåŗU8MóhÄū\C­ļtśZ×KµČGœČB+4˜k#a·h Ėē"©īøa8ś’ ?œÄ4ģśœ6Ā©‰g묲6];ÉŃdcC›!!° j;Æx)2’ c»’ Uõ÷rü§ńŌū]Vń©“c掆vźĘ+Ó—+ńźw“žN}†’·śNč’SųōĢŠ§™Egv9¬w'lܛ*$ō3QįyĶp (ļ,EP6¹Įa¾›Ė”Ž €AZ]ÕŒt„¹/|ŒčŪŁń_žHū‘NĖŪ‰oī@Z?V3ūc½fžĖé0'w2ebŅ®ŁąH…õ‰Ź€ŲīF„…ŒūOkžÅ#Ó„Įžńį•ßNć5oöł’Ø“°’ē|Ńų~š/’żeŖT Öõa5ņQ˳gCęwVóš5ęQPg÷_éÜl £I$ę¢ś-ā Ūµó#“˜ a‘ŻdnÅ!z_ģySjm~Ęx$ÓMbœÄŚ ŃKܶšĆžē:8Ži½„•ĀC‡ė\;¾ź±oĆBSŠėĄJ÷SķƧʳ7’ŪD½’óų­ÉØäķa²1v«-/JKdŗ,øM¹’ÆB- sćR|”KŠĮ4š•ÜUśŚIĒØóÉ(Üī^ ōrńˆ/{PŲŌ7L^G½nŽ“¼8Ÿ†éćģLZłeInŪ!Ć$šüń¬‰©Pä3“Ś-¼ęH7?Aǽæķ6\;gÉ/"pa¶z t²öFѐ§Ƨ Ł’śób‡Ō v‚ńŅŅÓFFń|k] Ō#ƒļˆ©,„-棱Iž”?¼ų6”ż[4ĆV¼ė”¼,‹é²Ī. TEŗ ]‡”- Ü!%·` ÕēFĖŠ“Cš™Ül3ōĪŃ /_›XŗąŻ(?KŸ  Z’&Ū†·óI +«mYŚø#lIč $šGcPm4!ŁÅļ\H—śéęKćN¢nö©‰.æŽŲdźöטżGˆėޤ/Œ„܎„ŒIŚ÷ņ²§€ūNOšoÕś¤°ž«6’MĶn$ļ$ ļG·(Pm’ .‚”±€ąŌi_ŚF#.`ÉZ CĻ/O@šŗo_B†’uk×’Żī©ō[OćŹ W™é›ŲEų3HKµ¶°n<’åžbÉI5v˜ģ«OXŽ£L„k6ÄÖ#Udœ^Ēv‰ķÓV*OńūõVžQr—Õ¾Łˆœ?óčgš)MĶś   -‹Y\ÉSt˜¬^j7ĪgĪ^ōؚüāC‚”jl+‹#ßń3JūÅķ)—°ł l”·yąēŗöeb“§Ģ č—|ŌMŻ~ńĖ„ØGīįāÅAI#ģĆ 8‡ƒh‚Ö 7/Ÿ°gŗßr ć&ąK×qp–ņ%ŠÜŗ½_éé«ńjD[¦#lķNµ¦¤o<āÕ¶QÓņ<ń‘ Į±…5ėō»éüü“ųž9kĘVhĪģ'éŁøMóÕd.]ņvl—²Ī‡‚±žŚ€’ĪĢø«DDč9ÖrźņŠų¾C_ž•u’‚(г+øšęÅ}w —Ō'ֈ›āGŲ3öīÄĮ„AėŁ÷tņ\R|ūwŹŽ}CŚąY»źõéų;+p[¹zõ+E§¦äE\7LŠĘbƒ—³ DŅ”óFÜūƒüšœ,TŽŽÕUōłœüżnR( %Ęb 5Õ$ąG ŗ›+0>‰ē>˜¢æUŻ$!g%ī;5ö7g§sӀóћÕū°;¤A;iį˜ų‰œ3ØŲŽ!¾£Ļ`?įļ~>Ŗjćš,‰°Žƒåż™„IŖˆŒæ²0,@ęŗ[ž’t’0ßn!Öėz`Głfenrir/config/sound/default/ScreenReaderOff.wav000066400000000000000000004313201513650123000220770ustar00rootroot00000000000000RIFFČ2WAVEfmt (ž’€»ī  €Ŗ8›qfact Œdata€2ŗTB80ķQ&. .ķ4'0Œ ń™€ž{Ū)¶jūv"ŪÜ.®Göڦܩ,`ō¾cf-A k“÷KkŻąńŠ!ę&Ēnęć9žf"ü걫åō7{Ģš`e²ų‰¶”÷eéK`1ÕDeŅŲ@·xÕŲÅŪŽ‘Õ˜éh|Ÿć—?ŲÆŸuļ''×öōƒFźõ•šäļPöŗ[Ä:{7ł|SÜ C{ ‰;ėq>ūßH \„ö¼˜Žķ–’ō°o)ś”Qā’t |ótŚÖmo¶ģM²åӜāī·ąļ3ó½õƦ ~Į HŲü•X¼īÄüŅJQ ²—%śL¢”ķ?MXģļąöžf‰tļ§néA¶™ßsŹųör‰ėŹØVéߏœ÷üŒŚķLó+łNwD Ž­“ ęšu͚œD£„Ņ$nž v „˜„W`‡B¶]²āq€ oŲī!„”J³:Ó$ē V$†Ÿš.t³+&Ē0ĄZŃŸUuµßG†U»C)U†!CGĄ8ī¶©ß4ņąa’Ļä¦ń˜Ÿ(õ?DõÕkŽõö‘źU”ųŹ} V-Ūuļ¢ĘJ;Wjh!÷.ܐrĀ# ¼u³­}Ÿ ń÷Öó°n­÷žĶe»`žĖ,ČGI5 ÕV’²ĻJ=AŻųĆXęž¢ųä8ʉźq€Ū~Łõꔤ% Žl¦·.ź°Ż£•ū— Nō ŁÓĮ25¦Ɣ š×ZÕ ZÜn« #ł“a(jöž‡Ævü` Ēžt餆ą·ČŽ2yŖ+0HS—"ņ&t#x†“يC~Ņ'"…A7źą‰ ĮQ2ž“īö*#²€hMT@  ą8_‰Įż8„ppQĖäBŒk*ŠD^9Ϥę>ĘČ8é-7¾A,Ŗ8č3s‰6śq,»±$!u{)±Šz1¤Ć/ģņ(5u Ž;[‡8*§—,ÕöŸ bŽjżR ų"™\ ź"I{„ś ńŒ s†Z ó Ź®žń|É ‘<1QHŃė0ž éllté`õÜęv%Ō _ŽXŗœā±+ŁćĀė쫬°õ7IŚ 82«c§b5“ lBļ0 é0$õŅt÷[׊ňóY“!õćfģā?ČZč'®ķưö'RūÜ}ž Ć=Ą1%óv~„śķŪŠ k¼GV6 g€r‡ M4 /ĮJĮņ‰PųųԟžTnė—/ņ„Ź ż°©«÷Oł÷Ė]ńÅŲ®ź«Ž+ņ¬ŒōéģŁneŻĘy>ĆŖŲœ³!•͇ž]é0āę!éŖÄ•vÓ0L=•["­c˜9zĪ»"Üź0`Ā“ė Uą:CƘjüDü‡\āš—*į„@åW&źįUīÜö|–±ī)Į༓På!Ęmųh½G¹Tؼ›ÉŪ|ų õāŖōŲÄ’ī3*°īSķ“×DĻ×ĻīĘŌl Ģ¾ßśzfģiięćŠ`Õ"UčՓHfį2ö8뼿ŻՃףuXŻ`ń×Õ\ćᆳRŽģ*ńuj“ū8õłŽ¦;ō]óTņä¹Kr ą[Y¢üź0¼1ę \Jé„‘ˆąYŻāÄŁ xśÜ/wsŅ÷Ė1ė0\ĶÓĆŃåōiČ~qĻŪ é9ģ1'ÜŽ§wÖ¼¢¾Ū_ŃåÜ3ÖѤŽ÷ŻH¶4ŻR¬kėÅŪ)Żrķķä+’(óVT{ģ§?ź(8ąęŐ~׬[‰ŻĖ\Ėę6NĄ~`{ÄsYūĻų“7Öņ:Gč·Vyļ ū¶÷U%ŸųāöōJˆÜåtŹē쀔šb­ õ²åač~įĢ袸^ķš/8äæ)ś©Šm–!«³—.²f5.#ß,†V m Wōœp!ō įÅå\’j½}Ę×& Ż·š·fķČ`‚šņCĶOäbŁ;膞Åģ^Ȍś1H$ķNćõżśńņĶ£ł³¦ōI™åGąń×g ŚčŲ‘Ė«āīP¤čöē„į+’(ßüé“ņ óP”ˆģ; jó°õ@ż¬_ Õםż°<) C2œü*s½šW^ѝ‹Ÿ§ńż¼0ęTųWs4ūÖō§żKVķÕŻÕM퐓ēN„Yš`ošš’Orū@¢G 8‚m{śóbP SŚm¦ ż0÷”ŠWļß­ šœg ś¹˜£]Gīóß:é ’ęŠ ļųó…ˆÓė īU*-ö[Āš]°ĀžfE“ |Wž ĻÖ¬t' ä·ĆLé‰Ož ķń¶¼OõŲžéĄP DṕaĄYĻü ,›V üūŽōl&ˆ?f,ŲĀĆ ūW žfW³Ć~ Ā1˜šė JT’|9BXgzG”÷ö䈹wm½ąžéB#ö‡TĻöMpąó»-{ī”ö žm¢$dQ‚b‚yyśN HĄd](W£“‘“üÄl˜õc‰°ųå…L)Š–•$µućĖ! o&ž=B4üüYĶ,’Xł¶¹E©ō ų!Ÿjł}ŹR$ęōQPo³Ė„[Fvä ɏńc(“Ÿõ#š_ēŪēč¾?Ćē»<ßé5™ō0”X ¼–Ž >‡­y ‚9YꭁŁ;­ŪĻŠ%7ŗH$·fß«† Ģ[$­×B#„ÖĆ謾ߜŻŠå—+ Š^e­!³Ź¾'wŅ’ņü#y’Ž"ÓvģŸ¬ÅœĮk!ó #Tž£51 žvg‘ś¬7 ōp‘… ˆ»}²ł’˜už'UĆÖŻAŃē-m:ż:Ā<Ļ4|5ŸS’-teå.aGÉ4ų4! *¼ $Ņ04,čeč0@1YVü6š’»:–¬5męJ*ˆāԐ{ ļd!X"“†{\A’§ü t½_H>U¹‰aHŽļAf+ūB uĪL’f*„ģ ūœėŠ\ē%ŹéŪ#Ņ)ŲJ՞ą>Ē<ćZć«ęŁ;¤ļŻUiś4ūF–gĖ@ ƒŠ X:µ āžtb=å kRÖŹļß׊Qōņƒ8šVåh96ė†2šIą?ųĒę!ü=0¼70‚pČtŒ ʃóžŽ3Ė÷Ų0!^5 ³Nśe³ ˜~’ÉØŲ’›ŗĮō†ņ„ūv?Ół³Ajķ÷Ģ\öPļūeł÷˶[÷ÉĀuš9(”ķ”>¶ó“Oqų…ńÓˆ›FpÅfĖ&÷ŁQL)ļ6€ŗB!„ŗcŗ‹œ]ļ|{źīWŠš€¤Ķu1EŽä.`Ći {Ų4 lŽĒąŠŪŠöx˜ć±Ņ,äØ&=å1y†ēZ³õƒóė 0ćöj'ė†HNū™×SųC~Īahœ.åŸXYČó^ŗšc“#źSKĒÖkÓœåÓØkFŃėbć°zźŚ9„ąäגÖrČ(ŚkØcä‚ +čᢉ܉3tŚ—łŻ“X榓āCyćFß}ōĖ¦×śųFČų( €ōÖ6’öś’Č£¹'ü“ą#ėνøčĻ7"č 3Źį7 ņį-H8Ū(ĀĶŪüĪĪĻŗöĒ/ĒĻ‘ oĻĘxŁĶ®·ÓஓčÓlźÜ®łŲ%Żč^ŌŚ„ė–ÕĖßź°ą’@×čößÅé8ūŖńĘGģT‚źĻĒä""üŁ"L½Ś|j5ÉžTƙ•ȵõŅkнŚ`ATź$yń‘­-ųV‡ā÷ޜņĻÕočaĪ'ļŠÖŁń!…ņ°ųčhÉ6ėqžÅėÕīéÄĘŲżKM¦ ϐ Q#ƒÄx.Ć_-Mbh'˜•;®Īōź!&Šńk+īŹŻB ×NVP’ )C£"˜‘CšļĪ #ēš“źxšW<¹÷źS0ļYvöµY”ōŗ:łĮŅQń¬nćØb’ŁJ},ŪI©Ū­Üįäēå+uįJ Ļä jó.+ˆń½ńÖīA“öÅź+ŲĪļųKÆb ż"~łSk=ö!šžA”d3óīūx@ģξłįnūIAśĢ0ź–mćŻ"Cķ.¾¢éWXrń33zóHOr’!Fe #«“kž”ō w9ī•~=µ mõĮ|#ńN7góó„übg9üŽ~ķQF+ź@k·ėļ}2ųĢ ń"“aķ”MŪš;øNõ_˜CōĶĮ~śęī qRG vĄ¬ŽqŃ-h|ƒÄ(Ęä h=GöŚ}=}į‚ œŹƒŸ–¹Jø Aył®öø¹iJ'Ä(ŠZīß`V 4.śČŌ “19Ž]Ž, n˜ā;+LZPīßśf2$ėõŌzPżO­÷eL÷ĢÄó¼Ļ ó‘Čeg&¾5če>R£A~źhę É ÄšŸJź2įģūūuū-Lš”Ÿ” O'&;":ÕŽÉ b °Ė龄#/"ųg 攬8ņ”ę©Õ!&“łĆ”ż”½"°²z†SÕź_ĖS ģĢč tŽ’o÷Gņ®ĖįčĢC9é$gęā=Aåń“Aū’q' …Ü ž[ Ķ3Y{ęĒ>\dØ1ŲƘ]äŁ'Ž@łĘ'Tį~ŒÓ#fČ Q‚ ½^%=… ˜ż„ó~Öģßi#ĆÄ$ņ°<š@$ų{!ƛ½*·5 }½e…ĢG ł€ižpģ„ż@Š™Į¾Ų±z“g£RTˆS {Å*‹öŅ!5a0ĖŽ9ĮLh:Īź3ŒøM.}6Æ0ļʄ4Č m1ʑĶ( Ķ”&e}-ģ‹0¾?2ÉÜĻ7’K,9õA×2ÅV¹'/¬µć>¢ƒČ¬ *Ér“»#‹čšŃ-É?j„Śl²OG S ū²ˆūœČwķĄŅģőDå€žŪ¹–eŪ#§üįģŠ:äTi?éØsņk5Ēż5f'¢ą½#°v† ”Y‘§©—ų•ŽćśSŚĄę~õJóŁ+ķn;fē”D^ķ/<ņˆ[_ł)ęĆż [ī*nØ “ȱĢ?Τ)ˬ—2„)× >÷h j“§ t} |¼ż` N÷Ģąüšs÷ömÄ6šdjŖų b䶊Ŗų%Yö”’HšjŹāļe<_õyŅ)ü¦ ¾Ź,'9ē± Ućęó§¶ģąf¾”ŅĘ-‚0/£æ(ØÜӐŃݾ‰MšsMvž žź e’Ź ś1 ½sņ< +åI‚Üå3­Fęcė^ĶvóAń é¬g:ę£Eŗļ ś@żšµx{?¾9įhgŠ|]šžó»ƒš[Ų4ęp×Ų@ńŌ‰3Ō^€=ր̖åsHiēŠ Ž7‡Ųo Ż’”™åČxå”=…ÜźšCÜūV6Ż€»ŻWęśā¬µKēHąVöU3ĪłĀė÷ˆĀ”õߐߜ}.łŚ@#¼RųĘC¶ė–wćéY‘@ēµÖyā¾ė<įōōóŪ.æńŁēk”ĪGā3Ė„³ŠZ˜_Ļ Ó L9ćĖ‚tåÄæKÜū4#Ū3VNŻū÷ŚLbŲu<ąiqŖāõ üę éŗįź]šģʟ"š.ĪŲėžE½éŒ­AāÜ9#ŪĪO²×ø©ŽČ¢®EĘŃ[ĮĖG"Ōr…Žė”ļėõædņ„ 'ų§~öt—7šŌ¤ĶźÓ«š[’ņ>I¤šifõé_jIģgR„ėØļķœ20÷Ep bŠŪü$ķÓ-bž#+fE#1pC„£€_»U ńF]ö)Ń ž =½¢( iSÄ ‚p†įŽ)`rī3‰éŌ¾æģ&rņ UĖõbu’šõĪök£õcŻ÷ a7ī’4āålˆŪģrO܏›W޵ŃįåŽūĘå&¼¶ā•|üč!ó+›š7ŗ9ńģžkł³„£©Iµ9ō.Š¢żź&™ų’OĄś‡©ēuœ¦ż,¬źīLØĪš@śwĮŁś\:ÉöC] él³Īęķ±tėč‰ņ”ķ7öRüOJ”[wü’×ÜĄ:Łę»Ōėy£ō)Wöņ½ ö/™©üŽ’”ų”ń9ķĢN²ėNé0ļ·Åöų’ōļQj ļ^¼dņW|@õÖÅ÷k%ĄēŲś ²ąĄk%¤ ö¤CĘÖ¹0ź@ ް1+ O‚k s§…½Ył0Ā{Į ģ¼åI“r2'j"Ź$@ŒJĆ\ršĮĮĘ5 ¾¾ Üp`"ēõ”JYs§ !Óø”JŌżs„dĻ“ŗz¦?üņš“÷l‰Åö‹rró“·x÷ž‘š3a<ōc?ļ#zŪgD^ł×õ–®wĻĄ ›`-p%züį5dšKōÖ!äż%Š ŗ|É*Zå9 ŪcÕōo ·Œ®šXŽųZ9 1ĀūĪZŠVgóŗ…)"%™ }šā 7¤mƀ¾L1ż½ü”šˆźfīhéé-•ęšź ėkŲ|’n‚« °ˆ~ ÜŲ §²ō“…rŪ#poTZi"»ćVõ¢Ó Y”Žü[‚S@qōy­#zĒ"Ė)K ×ÓĪ#š ¾†Ń>³¢ń™ņCVk ÆĶÉ¢’aŽ’®ž“kE†Vh*OFė’¢gš •$ĆŹł1øD 9.#8µć2›Ė/뵯1WM‚3ń[/õg(ø™(]ZD.sUy02OK3Ć{Õ7¹57²d 0ŒC%{ä5Ż"V÷"ŒŖĘ•ł7;2•© Z19īIг±:Ģūī•ęŖųņ1īHguėŖ4›ćĀ(ĀÜäŻĪj÷āŠ›ˆå [“ėn%õNv©ŸžV?ŗn½ꌐ ÕLÓŖ ō]½YāfdÅŽ“ßéé4$—ń¦Õ™ėŹ Œé<¹ļā ķógÆrś—ŠŃ’W ± &¼&`4 „Ļai€œę‚}%t$o Ń dT° ó3ł y-õd®ü5œ0łšOrū©HrõüŚņn$¼ł©ń ś#ļā÷¦@Võ„6žš¼łŃńÆ?÷©=ƒ’M†Z 6ģūpMšz(Ž ›iN‘\Ćģre,Au÷ćr©µš¹0øÄP¾>ŖV )]ʐ‘ O:g Ģ© lü%§’»DÉļ®ķ”ę*ųę1øŁēōž¦ķŒČń¤2kčņgé%Gó~‚žĻäŠ7„ŅOókKR:ž¾Ló^ļ­0ć”ļ£× ¬Ög5Õ|¹pڲhBęb”ųäĘż¢Ż!1£Ś!ˆ7ąŠ±å˘gć„cłÜ„”aŻŠ= ŻäŻķŽņōeäĖIēźŹO/÷ÆÖųÕ«‚÷ģø)÷Ē…Īż}˦ŁlŲ–Ö·õĶHģ§±:źń‚›ęj°ČāG ©ąFņÜw8 Ųmu‚ĪŌ_­ĶĄN ŃĮGŠĖł|×øRåć‘uęāĪKs܏„ˆÜÄŻYõŚ€ŪŲCįmµćļųę%é{äFī€š×īE[˜ė*ˆč~įĂ3Ū×)śŌß ŲČ ĢõČó8sĪ]s&׹ģØį¦ķCķvģYóņżÆ÷ŒŠłōų \ļ`HÕģ~|‰ń Ó¹ńv=YļŪīźhĖģ¬ąØģ8’øó(.3t4šÄ=ó’ &““,Ā”Æ(ų‹āń/św0Ye»†ūóƒŪŚū C :²š jž Kģ½ ›  Ē”ü“qķ9R•ė ‘īLbó„«„ōæ„ņ|÷5ęö¹ÆīõŁ¢˜ė<°”į±y¾Ü”ƒŽŻ`g‚ą•ś ꜑å1„Ÿä×ŅėļŅrņ£k“š7”ó§i¶ūž?SRŽQóį{šõ Ö趖™ńyž āžŲž•- sŠk,j Ü&Ēt ™y^„pZw„ ć^[×ėĆŌ‹#„R²E[ī PZ×%½ē!HW]šžléß[°f Wk s3ԃ˜—€šŪ¦ń ų½ŁčŽß’J^«ž•’E·„ūЌŅ÷[töłB±ō½ō~ū-šo ŠM.+_Lzšü“7'’–o“ 5o2}ūż;Ŗ pa!;Ą#©%æåå>K Č:ĪI[ėudtŌ²œZę‰C½żcUŗŻŌ/ž©BH ÖÓh ؛k§aW]œśnžļBzéź¹\鈯 č©›Mš\„ųq(n †·” æį Ą˜éfU33=¶ņzęh’ŹĻņ9~c,±€Ļīąuwˆe gÄĻfæ»j˜…óDY+#v—!„!ė’" Ģā,¦į“8~<1¾ēŌV~ņ2lĀÆŅńfŖ; :ž)ސ€fūgū¼ 'F˜Ų2·uŁ7S6!“91)Č/ü¾2†%2ÓJD-mø‡(ģŅ*@‹.—„0sĀ4ōĘ>7¾‚ 5 ¾\-[_$#ā* x@h—gµy!F®õī6pR‘Ƽöfus¦ Ɯė` †6óUF2ö””{īŲO`źŅ5„ā‚ÉÜŻ52ĖßČnŚćū”ē!¦ī#“÷å‰uŗī„=ėż•E śŽ# ó×é™Ilš9¾āś āen&ģnEāļ'&ė÷sėĶ4…ššYgõJ:„ū%•ķ»ó ĢM°75BZl“„ędBĶ¢l&•*Z/  €[ø r Śž”tLü_OśQj[śs–÷ōGžõ+÷ś˜ƒał‚ŗ€÷#ˆōü–HńEóuKłįRbĢ  4īÜf›cŌ<Ų£üjźM™nnā{ą,M»€Uü„6¶ć‰Be…„1Čy ¢÷dź¹£ ˆ-D )}Ŗé¬=ļKüõ2ītŁēÖ@ēē$…é¢~¬ī³8ņī ¹Ōč¢ qģōöLön’¤DīĻ),łĀ7ŠōŌūUćó>Óķ)Wį €UŲēłĶÖP“öÖĘ_¬ŻEdųå¶Öćž9mŻéĮ®Ü„ģłįY/åē¶żįøü–ŻæŒŽćEŽ •–ą†ŗ*ęšĪĘķ|²h÷mÓų’”÷ČŁšųāŖĘ’ ’yM*æžrļó‰%«ģK/źMŁ"꓁Öā}ą²k˜Ūķ)zÖ'9Ļ\³rĻiŃ™…ŅigÖŚ­Æ–ćb!į&+ņÜf NŻ ­Ü)\»ŚjZŻĶĄāųFä;Żå­‹ėę- ‚īöģiTś@Ź+ųF’ń@¹ém}ė9ÅLķ4tŠīœ!õ~ūš(,$­׿Ų`āÉö ½~EŠsżŽÖõóÅ-öēęų£dś4˜äóąbžķīī+­kņĪīóI­ķļĻ ¦ńPŠ ōf;(÷Å'ż­Iv‡Ł‡› L „ł+ Yµ²EŻ Ŗ², .¼ćČųŻGrbŚį Z=…*l$ĆU€ß߉“Äó(ą|!¾®$Č÷}i2Įø}š*ę·# ļĀ’ *:¢‹=AĶ\…),Q¢I#‚ŗV¬8›žIūś#čŁ÷Śueö÷‹ö&~łžCa ½ć Ÿ-“åż‰ EŅ”~æ3użÉ 6æbh#¹6m hi!9ä| Ūdņ īD€ą1_ߨaĖdxÉ0HWäŠXź* £“(ę_’Ūmˆ3m ʍŠĆ`Wģ ̧ ēkƒvC}^^ųWļ4óYėŗˆéžäYź#µōņTEoŸ ” }Ąį .SzĪ»:ߛN‘Ņób-_öLŸ?—¤āB±0ō°oD†Ó Ģ …—b ż›Ć¾ś‰>0M^"­Gõ hć|!* "”’k%’æ`+-xՏ¹ ūģmBÕłd ؆Dø×oU޹€ż7¾ å ŌTC÷œ ){Ė%3Ś›6é}i4ŌģÆ0ןC0ĘHĢ1ü/”0Ģ«ģ+ęī(J†+ƒƒ®.ubó0­^4C66k€Ę2ņŲ*Iu!eœ>”eŽāłbGC³é‰ķŸÄ }Ī:ģ,¾3 ?zŒŌ/ˆ5K’įō‚wSī@¾&édæ÷į“cߊHįIŃĶäėĢčUYš½ØłäõR™uPä;—:< \Õµg(ż”ŻķŪĆŪć]aŃåŽõ;ķŹŲ‚ī‹0Fė‚ķrGĶń Ēöūōūü^Ņ„÷ [£­ öž—w$†BĶąēīHnU“VŒļru Fxw ‘%…öžZĄ>üĖbÅśšKNłź,õó.¦öa-üłZKÖųv÷Šiōü*ņ£y:õ?lū7GĀ„ CõOÕ'bbKųfūåńu±ĖC.”ŸÄ?3„Ķ‚ÜȞj¦d×PÕ Ź1–KŁ„” NĮĀ Šī§õ tIčUł «Wķ @Õč„-Ōč*[żźœÉÜīĄZuķ(čņéłW1ļøč%ųaL»ÖTŃ­";Ŗ—ąųIöłŌæBņwĄäꁦ߲IūŲ³£×V+ŁOšńß0Ć.å~÷šįNVĀŻ‚Žx3 ćģ+rähśįkW6Ž8E­ŽpößVā4āI2č²āóļ ”M÷HQ÷ß=ų°¹©śĻ“Ü”¶Š+Žüѵņ£‚ŠģŽĄĆé?8ĘåżÅµāõO‡ß¼ćŚŠ­YՓŸŌĻÄW¶ŠńĖ ŅD“ĻŌƒ)Żų“Ųā$f ąŠŻJØŻ>HˆÜl±­ŪĘF©Ž#'ÅāT5®ä“éEę37Žčr”xīš·ķM³†źy„ņå„ēißļOnٚ$mŃćæĖō•Ķ؁QÓtfSÜŖĒuęŲ¢^ļEQōā§žõVɖņli\ļŲĶ«ļ<„ėńŖ‘š–h+īmrģÄęŪķĆ Čš Ćgū”*g <”·‚#Ņ %ļ&NŠc)PóŽ#ųDšČ,OTC Lļ£ż„ŅLł “ ¼—± 7¶~ BŚ KŽuaWiV÷×DīG3½īĄŪ ńŲäó…żó’©ō†īöäÅtõř•ńrØöēHŃUį¹³¾Ž&ą•`HćŪńįåõuyåĄšŸč ’®īwO‚ń6ĮBņö<¹÷D­ž|…~_Yh·]&Šš’d”ęūü‰°śż?…möxUó=}˜÷-°°ł(=”ö„¢š Š—źŽ$ģććĘķefšl–ö~¶żh:{/D4,ųkk^®^ikŪö¤·ū*>¾õ’­\÷=4IłšmÜųC¢›ņĮ3š„‰įņ#ūūņ~Œuš–’ņBŻĻōćŖųRv’-Dž^‡CŪÉŽ ”ĢŖ Ż3Ö ņČ āä6 ÜĮ2ķŒ™ 1c Ē8 õ#!į“!«Ųmõ’3‰–Ö¤x!—"Ēiq[Ēx"„ķZ ¤ó/ Ī{— q„Ŗ_ Üä+Č“„ęEĖż™‹ś[ŠĶ÷1¹öxB¹ųutŻŠ; їƒē¤|¾«! [Ź bxj"‚Łŗb§VĘģ g‹w FÆŠ|Ų aöcüJŁ8Ą—å{ķ Eį‹nŽ·¬1c Ė`n–õ=??DpB½{hy7t} »iŌĄĆ kžõ•‰öŁŃī)†˜ė—O"ź4ķĪ66ųd@ .s?čܹ ?0HŲüŖ„²mOõ—§<  YčŪ$4ńŅ?zģƒ}}« å¶|  ĢĢ~¼Øm‚Œ!˜*¤ ʁ€!*f4!„ēž(VÆk±—åķ|Ę 5e0™éjö’j61å* qå¦^œ “Š_¼čĒ”*Š‚3˜s%5šŃ 3;t_0@„|0Ż831Ć}/Cć+”†l)uęŠ+„ČĢ.RE1żdW4åß49‚0§&j„®éĒłų:ģpYå5ØFčŖŲœķXl—ķ(ißėń‡ītókNųc£fžƒW–w Ż|ź ŲØRCń•Ołö0IWaó·¶MkF 8øņ•¬z‚Ē˜Gü¶ŹÅśä«‚ųZŪ¾õ¾eĄ÷^G¶łu ]ų£|ö@6ĪóYZ0óĶMćö’Ŗ†ż³³­ˆåɹ„Ü)GÆ­I&§ ¦¾“ė½é ŽtĀŪ߯`°ų ŹęmŪÜytG1„m¤v ä¬ xs‡Ü”’Õäö8Ķõģ V¦éų"ÄéYģżŁ˜īxé¢ģ® {뢻›ń¢`Ķłzqņg…P‚X¢ųŗ"-fųp?ńūŲčō;ĘŽĒĮ•ŁÜY ŲĢ ŪMĶaį[ž:äéu¾ą‚ql޽3ąźĢ“ććp²ćK]«ąuĘČŽŸ=3ß\ ąHÕć{sśé7Œˆń"“÷žs÷4·ųƒ¾&ü‡Ē4ė‰ņ ÷åłĀśŃńɟ¾ģÅnTéė~wåüūpā”āŽ@ęŚiÕ©ŌᓺŠI±ŃąGÓå_ׄ¢ŽQ‘āT‘yßŖ‹ūŻnĄŹŻaĢ¢ÜqZĀÜę ņßŪ9Qć;åņKē"NźBå'īOµXģ“;æéĮ›ĆäėŠŽ7Ųf”Šų‚|Ģżó¦Ļ†ŖÕ7ŗŽĘ•Oč-š‹NbōFŃõRrćńŹ”Åļ›8š,йń>5šiīKßķDčĢī5ļYó(™žż4± ó~› j!(*Æ&æ:p'd4!£Ž.ī„)ļ·#żwŚSü~˜Lؖ ó Ö®Ń Š%AŌ«xžŚü¶õš„ļ`ÆåÕń*ąóóiū"ōZėPõ¾E¤öÅņŽōĘRļ“DÖę+Ņ}įrÖ«ßP†Eį&Ēä éŻåEGTęyzEźźSļd~ˆń€Pó¤dłfō’sę_éžķµÅ†ļ’_#ż*Õ’õˆ ü"ģųõŁÕōėÓOų„ ÖųöÓõ‹±ļóČ{ėµ÷ģāī{ī>³šńn@ ų9ņžd’9 ›÷׈Ó[ꆠRŒķ’ś’ö­Ļ2ųRį.ł²i÷؀įń›Ø”ļY'ńq<÷ņŽhņŖœń3æXóŗĪ¶õd+AśŌ$0¢©Dżh ØąĘ ×«ū ×' l  uœį„ŁLæ:H O`9/Q`¾CęD6nßoHĪ®x’ Ä{ Ā1umg>'¼ 8Vņ ÷Y I/Źu›ž˜@Ź*¶ 8ŽRUų©ä®żth,ś›’Ķ÷²`p÷®×ū'2Ųī Łū"ØqīŪ!_ļ¬Õ^JĆ­ŁB H‹wśt9*IƘ¾j;ĄĪ«ĄD¼8!˜Ō® p‡oM¼ ģ‡? n€öćßō¹JBŻ ejŗNZQв”ĖŲŝßī»¶ó{˜ ńü8õ£ø„īēLŅėY1ėC÷ļj°ęśņ^tN„9če^ LA'ćśZÄlT«ļLūŅź“‹ “éi—”¦ĘžMj’8Ź„Į  )`Ұ>ī„7uh¬»Ö ›hv F«@!‰n Ź ŗ_ ÄŌ÷ «¤Ģ1Ą ć5(Ņ×ĮŖœ¢[ĢĆP}N}āį4DM „É_\ų¹!/ˆŗ+RˆŸ2 @Ü3UĶõ1ć,*0:qq0Q\0R~Ļ-TČz*”hč)Ī I,|Tš. €‚1x‡ł3›S3°RM.öµ&{“UGŻ]ĶzmIÓS*ØškāaÅ7R£Ö£ģ¤mšOI;{ phh$S8”ūzĻó)uķWē‰ ā£ń]įź ćœē/o|ģŃmrō?mÉü]Ī/B Đ°Ä˜/µ ½éöó|\ėEńęŅ”źž“ ķ'Cķux±ģBŒĶļŠ×-ōœŠtłć[Ķ’ńo®|ė ēļ{ „šN?āg% c™?ĀF²ĶɾPh n9S<Ģ­ ³’ fDü”¾ƒśĆęų\©söv;nųua\łļGī÷«…ö•TßóĆQōžĻŽųn¤…’äŽ6ä„09Ėč!EĒm q/1qč÷bū.¾E6­ĄŅ­~śzpr†Śf ĮjqwIM Ž$ T?ē ’žĘśō/Żģ]źƒ¬źŌĮįģS-īéxmģg4ķ¢Ń°óµžū} ĮżŠT&9M<e·^žÉ­śö옱ļ¬*ēć}F޳0Ś ŖÄ٘)äÜD-āqŠTć šWą6@ß>Ŗ7į!xĮć žćh¤ą\»Mß“Äßlŗ8įgTvå7ō¼ėž„ņéŽöĀ?‘÷ —“ł6|MżÜhś*“’)µų§Pń—‚ģjaąč,š+åÆ ā2t0Ž{QŁVŽWŌöķœŃŗ_‘҉™KŌ äف"zßą§JįŪų>ßzzVŽ]‘ŪŻ›ųܛRŪŻ8aūąŽJĻćĖlå>ōčēę+Iėßµ¶ķ$ҹė‡ßčfkØćŖ”™Ż|ū׿Ū^ŠżĻĪCÕ£Ńą!÷×qņąĒ’āéöśŠšż\@ōŒ4ōK}ń}Ņ>š)„ń”¬mńV®ļžć īI_¾ķŅš[jö[t…śĶ ˜’łGŠ!æ‚&¬o%6› KŖBĀžŪć¾¢>Ÿrż…˜óžĮƒQg-n ¢&^ >ž ävv²üń”„ō³ŃļŁ’ŅšhąiņkĪōčkōž”øõ‡ś,ö\póß Čķ9Cęu‰Āįk¹‘ą dGāΦä…2ę„Pbē9G›ėG-Ęļ14äń*’ķōōąČś\ˆ*<2ö=g-z± $ŗž’żżj? ’Sųś©Hö(H ör”ų§Ž÷0Ę󳕔īcfNģ“ż¦ķü0`ļBĒnó=rtł®7¤’Œ“‘ī…0Ōäy2 k˜;I’fėęłD½W÷Ö^²ų ]ĀųrĄ,öŸu’ń»+_š ‹Īńs įņ7D&ņ0ŒĪńųĢō#ĪĮöŻ…Čū–¶Į¤åcs6jŃ 9ęŸ ō8 ÖP' Ʈߝ®Ęn^DX õīĒ1ˆ<D×­‰ŲŠĘ=ČĘOśq/ ˆē~ä·õ“0Ɔ6ję 0ł| N™Å©+9Āi×~Ó īQZåŸü~ŲČEå’3…Žü•ÉŻłņ±ņ÷²{ųŲ ;ż  ÷v^ I^Éć¶yÜ@'xknŽ2®Ø &ļ_uvų Śp1ņjĎl6žŅ¦k³vōv Ƒę_™üČÜ) TC„Æ ŅGĖĄ7¤ņ“tSˆuW?‘šĆ5)»t¦dķKf\ū2÷łóó€ŠīWb*ģI}¢ģ­³ņ.ļü€Xĉ}t6Bž ƋƬŪ#ŧ6w Ķótyس]u¤-ש|ų„ŌJ;Ēū³ć šqƒ׫ƒøŗ9Ф…x˜E o“N õÖ .ŹĀv#O7r„Āü"n•¤8ćÄįDØy&x“ĪČ«ŚDčŠp#ĖĻ©dqH{ļ\#[ö,4 2ݳ2X-1Öł/'Ł(0Tg/ß)¹,’ /*ĄU*U,P/i%›1üRQ3ā@©1Ō5,ó&Ż$7½+{NQ1K‹‹„”«#­Š×ķ¦ÅÆ“&kW•Ž ī 9³łė‰~Dxł \*ņRņ;ģ—ŻmęHsāˆeā²'“ä§õwč WVī«8öŸźż{Āp‘JNaŻ[+yp’ę—ōĖļė sča-Hė Śƒķ)"ķø•ķmä÷š1õZõ”’Éś°Šm' €p- ?Źaż€¾"4ś ²ā"‹YÆ@ʰī‡]¼Ÿ „ ’KA(ü¾ß(śžÖ÷Ż#÷į¹Źų!ßżųØ+ˆ÷*@°õÆē-ōQ …õ½W:śģ[šĒq ^ …#ó īõ±īyü””bk1•9_Ņ(ģd#,ńX.W>2—6€»¤)7¶N› 0P" ÓEü±ģ†óŪ†ļģtŲė2~ėėĘVķ0’ĪķÓ¢øģ1Ū÷ī%NxõN¾$ü^MÅ>}dɏŪIź»ü9”™õ//īĄ™“åĀĻ Žū!ÕŚŅ]ŪīgoŽTĢ…āÖVšāHśLąōąų&āC§·ćž’ā¶÷ƒąGHĖßɜjąppā™ēӉLķ’mó>SÄöŁč÷G¹wśČ ž XåsHż£ «ö£„šAA*ģZočų¶Śä`–įīĮzŻ×į©Ų±LŌ ŌsŅĢ©uÓöE¹Õ«ÕŚ#øęß ƒ¾ąŖD7ßt•ŽōWōŻaˆ|Żģ(ēŽ2=ÖįtĮLä»:ęēąĢčźÜåė“X9ķ{ė&ńēĢC›ā„PžÜs#Ö_‰Š_›Ļ·–Ó•93ŚoG÷āų9ė™MKńbüüóŖĻ~ó»ERń½š°š`%Kń2ļńĶlļj8īĒĮƒīf.šń2iØųpJV%æ•“DA’!0f5%d&t#Ī ¶\u©ōż ūä r!QžĪučŸ&o< Z‰² c½LG’·GAūUÆō7ś˜š<ŚŽńZiÜņĄń(ō='æōõ¶åõ_ƌõ¤H5ņĄ>EģęŽå²5ā@“mįč˜"ć‡õåwęp{€č\u«ģ³.š…ņėIöß×ģūœ~•‹o÷~ÖøĒüā橞s'ižī€ žiƒłø„]öĶģöźĄsųx°ŽöR·ņÕfī² ķ{ŗOīąæfšŖšŻō7»æśČ#… ŽwŻ»"’/Ģ]œsŗ-žų–łÜŠųŒ«åųŽæ(ų×Č2õ:ńŽ“ń#…9ņĀĮņ*m$ņ›²~ņ/«Īō'%ę÷śŚ*żœā7Ōµ᩺»ŗ 8 Q '…’ ޿Р²ć©9UŚćÄāgć e7U>lČŖidaØŃdQcYŒŚh'ŗ}I[§Ÿ;ų$ŪvŒ„ ,Żėg «„jxi”¦āU ĮÄœżæķū…c.’j¶üH^„łż5Hųē=Ćł!~J’÷‡wĀY¢ i@yėK$IŹJ–šōĻ PWW {&ŹĆĆø‡: €|›÷ŒUĄ3o£“”œń¹· Īoƒē:$ üŌ² …‹Cą\ oQÅ…Ē_«øHwȜŗ³†Mā{ÓZ“eƘģ ’µęłs‡ógtī]:µģ(fVīÉ.õ“żzžat ŁØ • ƅ*¹–RɑkńšƒžČµhƒō9ī!…µū\Mq¤ī֓—×Xy9ū ō’£ÄõI¦EĶųyŲÓŌ² ŚqW bp*ž¶ĆfŃtāM`ļķÆ$  ŠtCg o÷6<ļćØ@tĖ9•Œp ˜šļ3ųĘ$xsō,Ńü\1¹Ä®1s²u0ÄŌ¼/öć®/Ōāl.y¾Ś+:Ē *¶Ź®*ųŸŪ,±":/N†1$m2ōš/6C*Wr#‚•R†¬hęBŌØlŠ«»ń<¹×ZĄä@ @Œ-ü° ½ X t·±ĮkŃ’½<ų1JNń¹šfėR-ęż“łā3"^ćĮ]Ķåó ėé\Ņ!š½iĢ÷ųÓžiū§X}īč)|*IüüŃūŠņ’-ė-&Åé.šģJkķ!9ķ~¶’īX²ņĶ(‹ö6Öü.½:×Kx6:b K¢hƒ¤u*4Ž8įXēž»mҼŒÅS@µrUӞõ:ŸžČCōūc>Ńł–ŽŚ÷Üg¹÷g-īų¢ų³ā,÷zŪ~õMtÆōßÉö—ßūüŸ‘p ƒ!Ī †łöȽ¦–Wü•Qż.uהā½÷Ži7Pŗ ŹI&‘jøżLwĪ›Äy—ƒņ ­N~NŸĶś#ņvņ ģķiƞėJm0ģ†ü”ķC¬œķę‚cķāü¬šv¬üöŻÆüüš2½?Ś«2«7Ÿo3ū’v7ōcŸ¬ģKngäēŽŸ]ŠŪ„éAÜįę„ßĢ—˜ā)ācĒ‚ąf.īąw “āĶ?’ć=‹?āG•§ą kIąĖö*į¢¹ćžčč ¤īiĮžó<–ĶöL‚ių•7KūKņ|ž$ņr’ ŠØū‡yõ|=ōļJĮė÷Ųč '€äH įš©ŹÜ“)ŲÕsŌ]BÓHlŌŽÆ2×Su0܉‡ąNbąėFIߚĄĀŽūZ"Ž+,ŽōŅŻß6Ł‘ā¼ńŃä¶ĒčęXąšé²¢:ģ¦|øģ8¤yźżęoŹ—įā÷¦ŪĘKtÕ>ŃŃé0Ńļ(„ÕüWÜ[ēÉäZ\ģ —Ÿń@ūØóš-óņiPń_Rńü#dńż7Īš-’Jļ_„īó’nļō5ZóE\8ūÕa$0„-K õ!Š!$1”‡!2%y÷„– 6 ½0Żr’?+Ͷˆ­"īż j5ė VŒéČE ÷Éłq’³óOčMńĒ”%ņpę:óŚŽVōŚ0 õ18Žõ׏ōĮ»ōšHĪėČBåŖå„ād?<ā ‚Üć 6ŽåńE ēŹ™—éŅå‡ķŽ£šōŸV󾖏÷ĖOŁüŚ$ŪŚz°#E sŗ·ž‹‹tžŠģżėėŽųXbŠöĪ€÷µųżńčõ]ęēńWšnķ¤ļČRƒńī¬:öB˜čū’ (8—ŠśÉ‚ž4 Pæ6•žZ+FżO—€łń¹ƒų¦“Ūų5÷¾|ōS.µń²S¢ńĄłyņCŽŖņ»(QņŅ,ó2¢˜õ{ł ä_žŸ}0XŚ„ )x- ßpī ē ēŽ„ ¼r€€ĒDu{ ʇ ¼Ü²ImŅ[špų–‹ØIņ wž$댯£Śµp“ļC¹dć„ £\S(ętĒūå’+ õ1Ērµčxø¹Šž%A¬ū¶.ŠłįbŃųg.ūt"Į’©µŹ ća2!”ĄČŠs¢fk€µ š1Ueż²Ā<XX ‹ÜĪęcE03Ó÷»DĻ? ēb0˜ˆ )'å “¶P Óüč €~žŅŽ‚ 9Ų™£3?M§Ž…·™ąo‡v)Ąž ™ų{Guņ[•‘ī’Byķ›t,šJ>[÷?Ÿ°’I—ya™U ¼! Ā¢–r} ƒ§Č˜xqI•C"„śĒa±jNż=nßMžą›œ.{¢<,§VX"{ĒŻhĻł§™’Ę÷-‹ׅ| ±ˆy ®ŸÉyl!J …g&p’ž/ŗ¾ Ō ŗįŌĘŠō%1Œ(-݈Ø0ßĪ0Źé/=m/?ŗ/Ź+}-/+©=*ąųö*Ģ‹ -ķøO/Qu@1’.[1Ų78.ŌĀ}(k°G"xĖ’«ĪR‡Ų0h ŽBklŸ×äčeļņKžŖżÕ¶± y§õ–źŠ6žń=äö/ošLĀ„źŅ(Šå°’ć™aOä(óę»lė?øÖń<0łVd”’¾XŲ%ż•*LØSaÄśB*†ńņå…ėįłÜźĪ ģżqjķå¢ķ·÷ˆļ“s&óBj½÷śUżģ%(G+ųÖ œł3•„r;sI_v 94āš”%XšcøO†”'Ä< 6žƒ°ūŒłÕńų5Å,ųÜųėųŅMLų|ŽąöU võń7Zõpvų‹qwż³x#łA æ±gż8°~#ÜߔĢ2ÕÆĪŻ*†ķÕ^XGłŽ ĖcDźŃˆļ¾żķĄŌč( _’Ī væBb2łt9µń*ŠTķ³Ź-ģłæģŹćµķ㯣ķī Oī4cFņEœHųP=®żŌčV'ęåwÆy?ńX’{E¾łÜÖŅņńĄ>ė8k‚ćųoŽBOܱtsŻŲWą™ķˆāč”Ńį,sįą½÷¦įÕć<¦dćr9ā/šąąfĻą»³ā:J å2Rź’ĘļO²pō€čūöIŒłxżūŪ²’žŒižŗö5ś‰Kwōü•gļxāOėq—ēœ äŗxąQĆ(Ü ZŅ×($¾ŌĆŌÖbvÕxīžŲю:Ż›x#ąŠ@.ą7fß·ĢéŽĮęiŽX²ŅŽL°½ąĀ½:ćŽbåĘ“žē ĀGź9ŹZģ9m6ģļTĪééębåœą ĀŚr{ Õ]μŃ)«ĒŅusl×uē_ŽŌ­kęMœOķ÷ČÓń¬)Ró vņŁ|fń`SńhD`ńCźŽšģÅFļæUńī*„šĆ`>õ‰”Ŗżš‰«€³'¶¶!%5ź"1v­CSmqŚaŁ¢ [„»†§„ł(’U­ ĻĆ K/ށ’ž·ų›—›óŒ"ģń½Ä ņe>ŽóĆ­Œō|DõfŅØõ ęšó ÄæļZµ ź|” å1€÷ā'ūāøä}äµVęØĮ熓›ź•£CīoĢ0ńE}Eōøųx—żGŒyÜ_’Ó¼M˜ĀžĻ7ž.=üI‰ų/B÷–ÉĶ÷{§”÷ͽõXłRńŚ{™ī„/QīpśĮļ…%«ņŃŗ÷Dķü~ڧ ^‰¶%­*ĮwŖõæ4¬œĘ“üW#ŒłłØ×ų“„ų"eŚöėgōĢČōńŚņ˜œ ņ ŗ§ņ³žņ'ŠŪóźqö~č@ś8h’ļ]ū*īÉK kś' ĶV… ¢’Ž ’{B Ÿej0fÄ;( ! $Dķpd®!µ“с· õˆē!üĶz~Eā#¤13 +L‰Ąäž Ižļ•kC`_¹ƒ ×BŠæō‡Œü˜`“śż”Xū{鑳2ȉł25¦ü„|¾Čwm Óį yó„/o­k R«B.¦ HÆ¢C y€;ÉUå)\ŸęįČ™ggż€śĻÅÉš× Ę9ܬ5Ā Ļ ōHJ S,“\ēØS™Šæs±ć2#*"”…dqŻb,9iĘØŹpŸN{żQżw÷§„ųńöhĀīdArī“ķņh;łhj®’ģØ Ż Å˜£ XéńŽ46«Ļ1ŗ‚…fII—«)źr6?ŹOŹņöōõęcG¹¶Ģź Žxjo¦÷Љ³*ŻŻ.GųŽ`JDl~s: ³ø³ęœI Ó ,|“ęø$Č„LńĮWa`φõEŌ­ m”r¹ŌQøå&,-ˆ_÷/ā’0”5n/p1/ZM_.Ÿ©¢,®*Ń *“v0+%o2-ˆP/” Ģ0£(0?©‰,iiē&ÜzQ!›@³ō»)źvßͶs/ {Sź¾#Ź{ÜÓā¦…Ģ }c֏ž3’1½üsČõŚ’ļßųź×¢Źå§5äzs@åćP'č£óģKŠoóĘ4hśö[5¢ļžŌÄŌį/X²ČTŸÕųx„£š/–żėÄŻ»ė›ĆžģH؈ķ«V0īOŻ}š@E8ōČīųĘ=|žƒżßŪ•sņNõĀŒāNŠt˜J“lgµ®ŠöbG]n¤ —ŌżāfūV¹^ł†9ųh>}ų0Ņųćž÷¦§öL—õƒ%ö«óhł¾ūžoĄŚ+ń ō6HūŽ§Ø°éšy±½&½o¤@[y@ŽłtTĖó'ńūÕšPQĒ“f”ĖI’%C ņLJ‘–5’FéŠ÷OU/ń#ؕķö:ÆģSĆ/ķw¹Ļķ%åķR.aļZ)¾óļ¢eł·Aždčluæ—E<„"žžē8VųBRpń ¦ņé?>ŪāéXŽ,³Ż}gˆŽŽü2į`pāō¼įń—UįņEBāp^Xćø;ćqĶā€*į|bį5‚ōāw\ęuNjėĆu»šęĮÕōØÓJ÷4” łT)ƒü ócž²}PżķīķųĻ`–óšQÜīšŪź(`,ē ߨćy4āßoT›ŪŽW”× Ļ!ÕŚ’ßŌYĀŽÖ˜cķŁ»RŽ'(ąā^ąNA‡ßøß.ÉŽ„…Œß[łˆįŌ6Ść–÷ūåDcQč»ōĻź–&Uģl…²ė!2遣å<”¬ß„tūŁłqåŌąźŸŅq-_Ō1/MŁŠGąy<ßē.vīŒ=ļńÅjó)Qņæ/‡ńśg€ńYGLńŠ ašŌ_ļoVļ±>Įń„į6÷Šzū’ż>ƒ =Rƒ}ا†WH!i:œ!OåäÖ¦CÉ*U§÷šĪvüٶ)rF 6:'ń žžeÜā÷½y§ó„Ķsņ›¦óŠDŪó„ĘĆō­Odõ ĖLõVåóŃŃ”īo”FékÓåA¢oćAų©ćė/åąŠŽęq$ˆčąÓˆėcļīü×ń{2Aõ»}ĄłŠ¶-žłri” DŅŹ’l{¹ž²:Ėżd Qūž[jų z”÷^Hā÷¢÷ēEōÓļš;ŚīpYģī­“šīSÕófưųs2ĻżĢW mó‡_āĢ&;Ęl(9WĪ’™­üsc¤łW…łźŚQųŃ*Göv·ó]<ņĄciņłńŗņE‰ŗņtóó-ŽōąW÷śW_ū@ZI’īh2.MjH ź? ņ— ųt) ¤õ ÓĄ9 ʐˆŠOǼ>nŃ|żŁūŒvæłxhś¶ž 4 q Jßķ ÄĖølSŌĀ”ś*ß C¹² ZŌ;D.ĒS ū-®}ģ"ąśįEe-ƒŹ 4Ÿž “üy ֌7 Wž€ ¶‰D “ »Üax4÷&¦ŽŁ7wˆö“~5Ą³6Śė‹V–KDüCöŅĀ¢ń(äļ…•ﲓ×óß#לоorŃh ‡2"<;‚å‡ā€ńo¶LĆ¾aIłžlĢÓõ}µKÉ—}o+Ā >Ż6ø¾hŖū\8č­3<}ø‘,e\ÜA“AĆųfp5/hv-0d>į. 8ķ*‡!%ś‚ Ž4a܊Ŗdģ¶”#Ō’Ę8ß’{Į KjŽ<4ń  ē®ŲŽį?būäŁ¾ōxžĄī, ƒé”ūčå]aįä¾6ęå4hé wīsźō4ģå:+ė:h^袈&ä…䏎Z[ŁjFūŌB“¢Óź÷Õd¬"Ū)< āž™'éu©¾ī:™łńĮ©æņģĆ-ņ¾:©ń™ńAģ1ńhÄFšQܓļ”Ō4šä†!óVń6łäČ) ćR ø]ŗ_&K± ŗŲ@ š„+s“ÓŌ€SõÖ.bŁ­éĪ,Ž4 RĒĖzׅ¹ißü0¤C÷^Čó—ƒēņĒbcó‹­#ō%›õō²gõńĖŃō)Oņ-™”ķdV³č«“2åNĪéćī™Jäl¤›åd½$ēŗhVéäCaģ ;–ļR “ņy9=ö+w§ś“£žżI"²®īÜ'5•’į»–ž5©Hż*+ŗśKWlų”~å÷ąYŹ÷ų„yö $”ó)…µšGd*ļ'ӊļ)ąsń›čśōa™Ęł’™‘žzZiŠ‚iMF\‡§w]/ ’Z³ū„&»ł_(ł’¾ļ÷@ūĖõ½©’óA¤‚ņu,©ņgŃŅņ»»āņ YyóćGõµSEų€3jü’­ fÉĶ}%Ž¢¼¤ ėõŪ _» Ņ ²Rą @ūZ9 MV ŻÅų @.;£¾&2©Ķ„}„ oöć±t諟`ŲPł(pw‹HeéĀr‚XkÖĆ Ü` kīŌį}Wć$'˜’Ÿ:żgJöś÷žś®†bū}’„¤LQ¤› ¦Aņ Ь€4OĘ¢ ` ę I{;‡ `*Ź 8sēDUė[Å*””ē’“[ Ӑ p• ‡ģu Óš p3M ĪæõÜ>2ž&qb ĶgƒAŌŁjpa)|X ¢:<JĮ!ūāš²õ]1rńž?–ļ‘­Õšģыõō5:üÅRL,ū¹Ņń Qę„©¼rŖ„sķo7Ć`3¶AÉųMK†uĖhÄŌĄ7©z€n¦ü”æū†&ģļ“5ÆÜu’ĖgĻ”N˜Ī]*R˜³ķw/H Ó³• | Ā<”A-|ĻaHŽų‘W»>° ÷Šz.”iė ¼'(s°Ö,\“.·ßÕ.•Õ‚.4”.†ņč,ļ<+;- *±…)*T#+‚LX-±ü.@k/–-ąIh)SA$¾Štü)ŸüDrl Óµ¾ŻÓ T0ēæė ä© ń„ߍŒ§!śµ·Ćó\’ķQ=&éM^#ęIŲ”åŪt5ēs=²ź{!ņļŖłEöņhüµ.tŻLÜÉ&½;O8żĪżŻõPtĄļMšśģ\”ńģķĄ9!ī$ŖŽļ=eņ£\öųł5ūŃKj÷_ĄĶ=łą~ģ¬m3"|ś’qŁÅšęWŽ‚“Õ#UĶ1Ķ×y\Ū’÷ūż'}įś¢ńBłS?©ųč Ēų|¹ų č„÷Ż}ö¦GöNœųø] ünż¹żŪŚ£S 7,«Óļ{ ¼H?B®j–8"ö?h΢ߒęŽ^˜K97 Å£ThÆēue ŹA5_ ß4]ü¦ń³õĘƝš"iīš…ķøŲĪķ‹*ī?kśīJ›®ńlFöļ50ūż’įßb^£±5…Ä’ ć†ū("”õēĶīk5×ē‚E"āŅOß÷E掁ÅDąi'łįœp[āŖ6ā+ųHā½"ćŒmć€ ć°®*ā¤éᐹāEĘå§’ęčģµ½ķåJCņōÅ¢õqŚ)ųėśæśœ-żnžvżń“(ū—ŖČöcRņRmÉķ1ļéNŻNęK÷®āćzÄŽa§ŹŚu”דŖ Ö˜Ö³oÄŲKÜšt ßvh9ąÅŽ)ą®±Ńßäūˆß¹¹¾ßŁśą[\ņā å>ē Žé©»xėh’ė/Ÿźażœēq?ć¹¶üݬęŲpøDÕAq¼ŌERŽ×ÉłčÜw«ćGHź\ŠDļ¦ŁłńgŒņŚsņ¶ĒńC2¢ńj`ń4\Aš“fåļ$( ńSߝōĆÜ4ūņŽ5Ō ł ¶;Ą—¬,cžų×@Žßp(ļW źq™=‚0iö¾ZAS½3#ć[0»(ļ̦mŸtĪū”„ŠöŸ)ōóAŪJóæµó@gō Ÿõs{Nõ‰?ōĶO3ńK$ĀģZ"Ič#KY写cä+īßäf^&潬Ēē!h$źj—)ķÕŖ@šŖÄ^óĒ0÷’oūĖĻżž£0Āq]PV†›źd’(8[žC“ĮüļLśjĄ}ųó• ų’÷2·äõ½ų󊜚™Ć†ļg’0šŒ^ņŗ¾öą(ĆśN8’tœ˜2–v܅śźē 0šéŗbžĮ7qū½ĒłMGźų&°‰÷jõ²‡ó=$ĀņŽņŁņš¼īņĶJó¾üóŌ¼öųm4łxß^ż#k³ą7-Iē˲[¶ IŠ£ ¹„` ’ˆ X'Ľ¹¦$« ö›Ō TĘFŹQK©@óWX8s¦g]{ķ:/³\vīĶSqC®Śq@¬&÷A0€KkO9Œ`( ЉgžµŪe|˜F’£VøüŃ„ģś mˆśīélü—ØČ\JL ņ‹š VæG—ųfair¤A ŠRF ’k2Å(åž" zĖŚ ·T#}ō‚=>Ėäy ±?< ¬lj żżƒ ‚·y ‘4l śZ®š4Ø1J»D=ié„s„†<æZ*ü"ib&’qłśŻ` õlfńį!8šÄ%ņю÷Ÿ”pżYšf±ŒĶ>u >#ćr­™CbU‚õhĒ2E›Ć+RpżĘO8 ܧ•й“E)zķ™;_e˱Yź^Ż›™_X{§a>.–¼”ī-x ˆĢqP]Ż× ŹĀ£# `a2‹ S]ŽŻnfŠŖ÷ AŪSkĄØ×ö!ž.†(Gü‘,½z%.O.HQ.żk-®5,Z`±*ĻqÖ)~8*²Uš+ŽÖR-¤„.@ü‹.Œœ:,réż'Œ(#%˜.‹„–Ƙ€÷LėĢļmWJ‡ƒ+Všü Ķ0 ÷æĒUC’æ÷ųœÖņ’.SķĖvźčtę øPęf¹=čĘżģm\^ńĄƒ÷|Į:żv”Š N’V -æ cČį”ūx:Ģō™ļߋkķט^ķÕķS“ījóPšĻ(Yóõk÷÷ÕBüq7-Ūųl„°ČŒÕYŲ—Éy&˜‹³ø¬,õ}joÕāO²!V^ L[’ĪÅüz®śŗźIłØäÓųV6Ģų"ŚRųb†\÷łšöIĮĪöꌳ6sNż„šHS·m†x 0V×( tQĻ‹fPējΕ»l¼{ĘÜ­ˆW“JĻø®ģśĒ}øÄ Ł>ż  ²˜Œ’Ēūa|ķōŌ}šŒ‚^ī):Ūķ©…ī?{īųH¹ļuŪŃņ”Z÷_÷ēūx¾e’7’?^š®ÉĀžŸµGśTō<›ķsĻ ē³ā<‹ßŃO‚ßßõģąq7āÖkā¶ęHā˜XøājoćoćV“ ć„[āÖp^ā¬7}ćFņęÖ¹źE&¼īųvčņżCö«w§ųĪń.ū¶ż·PŌükū&ś`2ßõÜeńāŸBķļxéuŚå¶,-ā]­FާüˆŚXÉ׿U¶ÖźS}× fŠŁo’īÜ«oeߙMą*ņBąę+žßŽ’×ßFŻIą‡MØįšÅ˜ćy9®å„[ÜēĶżźūÅ ė¢9ŗė›¤ źqŲꮜbāF·FŻĘēœŲr˜¹Õ…ēÕ#ŁĒˆœŽō(å\Dė ‰°ļ)øõńn‘hņŒ/ņPåŻńt”ńÕńøĆQš+Tš…%ņk½.öc)żÜcŽu؈•Ēü(ųŅ$zoxތŽ|؏|¢Į zU’Ÿ±~Ś­#|÷’䃄āÕl8“įęś%7€öJ$ōJn”óJ ō«Š£ō§ŗ4õ‘‹õWkófTš¼Üģ_×čL÷Œå‚²ŪäsnmåW#“ęw“sčĻīķźcEēķÓüńš#r3ōu0ų¢¹ü3Ī@’éTē5'¼Ŗ<_I2’(£ ž„£Bü”³ś®×‘ųzų²éC÷…YõŹ÷¶ņõ7š/-īļpUßššOó»I%÷09§ū÷üĘ’‚aÉu®`<  –Åi0ćāęÆÕż­a@ūšÅłx »ųЃ'÷Ų}!õՊólEłņ=ņó2”ó–Õjó[c‹ōRhĢö°ģśū]=ž“‡IRׇ7¾*ø !īe µG c L ¬·ĻźÜYc ŌŪB s/ˆżoāĻ>QĀĆŲ#ówI 6q=ēUč¶ ņ=ßµŗ¢ņ:Õˆ»~-HT$ƒÆjČ zńS ¬|ģä·YØ妯ž-,sü‚ŌžśļļūUø}ż ™÷J( SŲV 5#é ¬U ŖŪż(8Ń Ū¶ƒ ŲkÕ1P|9A ˆdV S˜Ž¬Į%6«B@üE¼ÅJ* ’„j Üō“ 2Ėi LÜ I÷¤YŠįÖŚż3 MŒU}Ü#f9GH÷rņź?³7öYž[~)łā¢ˆō3›}ń2†łš­ yówu‘ų…ž$XĆlØģš Ķ 4Ҳmā1šP¼õ ęaąRŒäUź›m~¹›$ōp‚(Ą}B܆–†·įžóEAbČĪģé_jŗ" ˜“ķšĄł±ńģŻsL#;IŃ XŅM >äŒ$ut­A4mĪlFāī²lÖB lIÉLēdvŁ"8XĆ(½+E,>·”-;vŠ-ĪӇ-\ Ī,fŽ+ˆŅ<*č$±)j:E*'éØ+h•9-=ā/.O—-gź*@Æ&˜æ."Ct–s’ⶬŽø…ņ:Š9Ė»čŃņ~,U$ F›B¦~ž Lß÷“Āųń’Åæģā…Ģčõ5×ęēŻē–OéŚöOķZ¹ņ=£ų‰Ģńż¤ÕĻł„ÉŁB]rO€(6śäļõó]žŽļ ĻķGšŗķ\]'īՋļäńńŠŚMōīuųģŹ:żD5Ī]Óiē ?Ģø^q{E•§ƑCÜū-ē12(g2Ķyk˜¼4ęžĆvüė\‡śź,Wł¶PņųńĆųÆE)ųŲD÷źü½öbĮn÷^~śŲn‡ž§‰ ×»y ó3Ż ’œ—3°āq¼PSĒ3fĀ<pĶÓ’žrŽŃ¤/E›&ęæī…žä@iń‘ aĢīŸüBīŗżł NōŌżlš¹›īd 'ībłSī@­åī󶌹^’éókWRų­¹…ü™£š’Į^›puHrŗż\- ł3ÆóõMƒģB·dęGZżįL9 ąHų5ąg wįXżjā=eŒāTŸ™āÄģć±(ŖćiØć4ÄćÖ£œā-©āā\ONäóÖ&ēL’4ė9\¢ļ “‚ócNŠöØ#łIėū*ƒŁüH’"ü×é4ł{õ õsĮšęį½ģ_éBŌbåĒ­į{ŲŻĻ `ŚFŲ1 X×¢MdŲ—mŹŚ]f§Żńŗ±ß®hąbŠcą 2ąā2ą EŚą8>PāNŁ9äŗ JęÓérčßzźŌ§°ė{hė'Ÿvéķ‡ę²“į’±¬Üɜ~Ų¦xRÖG<×čø²Ś(‚:ąy÷ę¬)ģtīš{dńńmRņ J!ņÜ_ķńČØšń“ūš”Äxš?Äßš«`óµąĢ÷čś’ę·6ÉŁ;” ż4‰;‡[lJĻ?6š« ¹®Öi‰Flž8ćøŪ²„™Å¼¾ķ&’„Ø%śm„Jöm½Uō Jīó'EōĪ×ōØg;õĆĻō7=ņņ7R„ļ°neė”@Ōē¹;ŹåŒ½Qå7röå_®Fē%é«j±ė};ŸīĄŪŖńęÄ õ†0źų’6Ŗüxhp’z‰Å_gÅķ|ū’k$łž1N²żōAŅūsĻłŌ8 ųŽ\ų õčöŹHÜōR‘lņ#“šĪR`š~—ń1AōwO$ųtü¤Č@‡uķMŠ?H9śFČ*g:~:`ż‹ŸūŚ“łā#~ųg;ĪöķōSOó?~(óa&óķZ@ó$Ęóa#õ––÷‹ÄūD’}WŃōŁÜÚ. ­ ä¹& ł©Ä ½” XĆøĆŹ -φ ’ࢠqŠĀ œŸqé™®TBķ/ŚXö;Ó¢Zń`–Ė@9apē}ĪÓżtŒkEŃ0źÉ *2™ż@wŌEöžØ”wKžłßBüęė,ūqĒūĮˌž“ XŌy\˜ ųŗŪ QÉŌ-‹Ø- •Ü ƒI’¬ģ«V 6}`–¾ 泣’lu©°©c €yh¾śz ]mŒ°ļŃńĘeėFpEœ`śQd»#āī«óZŹ÷Yz(™–6 õ(ęĮS6‹-¶­r“ŒRĢi.ü®ō(ė±2ē ęĶܧŻy ƒ'QKy™fŹį(Ø µµd–.0÷˜ī­”#S‰å(eō+’Ų&-ų¼T-`Ŗ-ā1,éÕõ*ĄüŪ)ļ•)ÖRN*š’«+0Õ -–³Ÿ-'Ź“,“t£): {%A`M!»"e—ć•c„½?ż'\ß •ŲŌuBåŖ] E ĀŅJ@߁N×ü·FŲöŽ,ńFģ¦ Éč2^JēŽĘäēa”gź±›īŪ'ōÕØłŖŠžhż`ĶuJ)tō®ž91÷ų@CQó9>–ļ¦&ī’Õ„ī™į¬ļ™źńaBõøĖwłUžPYļĻ(¹āƒ* 'vÄIe`š+óʘėø7å’ž×|Ó(Ŗzžµ$.üuģjśćfłē¹łw0³ųTų¶T>÷•Ī÷?Ž"ųŪū6å±’į6& īč7 Ń*;ĀI]žņŽ&D*BöHDģA›/„}ĆÜ% !0ŒAlĒŪY ‘, |ķ” ŠėĀ2é’c-ł’šĪóåhšü¾Ōī|līŗ0ŸīY5hļ3¤lń·Lņō ų/łln ż’’¹’ Ģŗ‘ ¾’£®ü×LŲ÷šßńCŗˆėåzäå½Iās³Šą|Ųąc?éįęNœā<›¼āM¹īāžųrććŲćøsµć2ćõ™ģāō;ućZĪ)åÄ66č}ē?ģĀŽtšōa.÷üɕłžÆ·ū •üYbiūÉDRųXĮDōoA$š;ģ¾JŠčYéä.2įf«{Żō“NŚ:–X،xŲßźHŁu”ÆŪź.DŽńVõß䃉ąI ‹ąÕ‘nąÜ™ąŖślį—ŸņāŅZ×ä4³ćęABžč¢,Ļź‰ź«ėŒĘ ėÖŚč™+QåŃŌą{<1܉ˆŲ2ę×WŅ_ŲSČ:ÜįćĄįłĢŗē©LŻģ“OšLˆļń]bGņ¦ )ņ!]öńP"“ńfÖżš¢ž¶šk½‡ńd•CōØÄqł¦väĆĄ‹ ģóŖŽµI®?vA?G­µ‰ÄŌŪ®Š„Ē _r¶ė‰ȐP±śŽW2éłąķ®#žÅ•†ł§(ök†ōŽ®3ōŠB„ōSóõ~™/õ5pōJńCņw0Ęīy|äź_!¾ēå‘ę;Ęå_Ą}ę:Žē¦Ųéåoģš3Uļi’iņlßõ–;«łQ#żß’°³Ÿƒ”¾’ Jøž@HSż sūfz­łk¤ųA=į÷ī]ˆö¹woōįļ:ņŒƒŻšMŻšīqVņ$¤0õGžł‚m+ż†#Ø2Ā¢˜Éb*Ė ¢’ī žüDĢóśaŹ•łģ:ųB~€ö:Ėō»@²ó=‚Qó&FKóÜxó J.ōōŽĆõ!BaųIŻū0Ū¾’ß Mó*·Pkė— :xč — „ Q¾÷īĒŠe Ёė ÜE÷ ~śĶŚ„ķü ®o‘GłōŠRŌÄÆ}H‹:o÷œgŻ8UĞ£”bQ"_TD Oģń]uiŠåū5w‡ōż„T(ü )uūh]ƒüfō“’͵ż]l.Ė ü²Ē ,U€m³ Œ £P µŠyl”xZ=’ ¬÷?"4SŖ—_<’©”|É?9=µ¢ ”» ųĪķ }tŽ łŖ åc’²7;ąčą‰‡ķDHĢ2Č|9ź4+ž‚Žé_ż(ü–+£÷sāėóÉģņ;Ąņ-Ėö¦Būzgs,!œõ; T)Ģ ŹR²wĮMÉē‹ŻeöŠĒźŪxWwō*j¼Qnb÷T»U‡ø&–’ evŗõĪ×Ų–žßõ[®īļ¼fŸ i9$üg,˳_ ِ~њheŠŒ†“eЦŁI•eLu« Ā ŚaFPL­Č-$(¹ņ(Ī¢+c²,‚”Ł,ŅCw,r™–+™ƒl*4‡‹)ü~)ĘkR*Ķ +ÓźÅ,€!ų,üp‡+ź*i(śč_$l§~ WDn_“ ŠĖ¾˜ƒ"ŃW½čĆ0…ėŅŽļ:²2õ›%“śō˜’7Ųķ€6ųyŌYhżEä÷|©ŌņčØļ¤;sī£x`īė1īīūMš=m¾ņ×=5ö¦nśŸRćž*ƶlPE.ļö„Ń<(®gŠ7ŚŽ»s°$ÜŪəĀį_”Ø=d’ čŒž ļū\’Vśdsły’ ł %žųµˆė÷OöJ÷čc÷nęų(Ģ(üąHĢ“ś”FĄ r”Š~IS¶Č`]æü  ,.W¶Šg¤Nśj³“kĖÆE“ų3ĒYӕ•OI›N7Čõ® ®ŹŗČ—.³įżĘ¦"ųä;jóŽlšå# ļŲ§Æīöī’ļw&QņEźõ7õłi^zż‘5Ä’@[’ÕłžD¶Ÿū“Ŗöh³¾š¢¬źĪ!…åŻ:ā×D įÖ5hįÅIā[^Ļā#ųāxCćĢ5¾ćŅ”’ć± Čć‰[ć§¹Jćēäub ę?Õ>éäB9ķ£É6ńł¢„ōž:€÷^‡śłĖŃūo%9üL!®śō}÷öWŒó·ļ”ł¹ėĮ®čŸÖoäīCæą†#1ŻO™RŚJsŗŲYņµŲ4Y'ŚĘ:ÜIōŹŽł#4ąÅa°ąK³øą-“ąšĄįāökćTråžxēōü{éōtė2}•ėW„źm˜;č·N”äĀ$)࿬ÕŪ‡@·ŲW_×ײń„Ł ŠøŻ”}.榞Ōčj7‚ķ­§‹š:|ńńŸDņ‡2ņšśń‚-ŽńÆFń(Ī ńģ~Jņn…õ5ŹūŚQ¤“£ źó©Ÿ%¦@Œˆ:L…•O+ oÉ× ~n²ļ™ó[źźßö{ęׁ%ĤŖČ»9żAłśVö±“ōsō–¼ōĮ‰õ|†õø2ō—ń?ŗīź#~źe,ŗēBXę"{9ę~\ēzč=Œź•(ķ:ƒ šk -óE­öłóXśŠ¾‡ż—좒ŁļwŻE5‚’f©pžLõüŽT$ū°X”ł«m›ųEœ­÷ē½'ö&)ō^ņlńŚcń"oóߛöQĘļł›ÅĪżÜŚžÆqVŚøRŚŠ‘{Ī’o“Ŗü„ÓĶśbTkł!+ō÷Ł+?ö’ųµōdwÉóIŽvó‘‹sóŖ(¼óųš”ōŽ€jö›j+ł‡ «üÄ}fļķæjėpŪfæ¹{ Œó¬ PŖL „$ąśĆāä° “ĆH UžB  µ3&& Īā`ūqļŽ@ŗƒ «ʱ«&ĮéŅ€Ÿ­µZ­ˆ4dx„H!1į\ ®| >õX'i’Āķ"¼{Ļ’|a¬żųä#ü(ÕŌūO£JżUߎ!&׊®ģ‹Mņ Ź_¬ Īį/Ɛ xŹó ›Ÿā G†¾  Éč D_õ]Ćqeņד)¼QbŪūØ > „ 7äÓ ę.į d} g÷ į<äuü ē×n«RõŽē˜YV”ń¼µŸÄ Cy’½ˆJū ÷#łĪóƒ{„ņ7ń·óćcF÷gk4üÜN@#Č˜iĮ ؈* šą×½š¬Å;%H (ÄF‡UŌiL…¶ćĀÕާƒ·Į/13…©`CØšMĆ75ĀY ūr¬ddKą”į;]e^®¹Ć4ģi Œ».y@XY³”µŖ‚ró-Oæׯø –—Bæ!@¢в§$ĆĀļ(kO+B, §],Č„ź+Ź)+3Gņ)QOH)²Cl)ŒP* 2‡+I,k,9=,‚fw*nŽ='łZ#/ž½1@Ł&xr8i!²|™n@Äāę;ƒį^H ėŁ~ ä¦E¶F?ļ~¢ś}śōFŸĢļĢØžė°é [č Ōžé˜„ģf|ńģAPö Ŗeū;Sƒ’ ø Ā¢{hØv\O7üöłöł wņ5ņĄļ¢ą¹īü&“ī“-cļ&¶öšn•óū{$÷L÷Uūߒ’=l™øēe½a‚«įüƒ^>–į?öĄŲzŗž·ļ©>N•ŁG`«Æ#›X»żV°øūvIś”}łēó łĀOˆųeĀŪ÷føj÷VKÖ÷صłä1żŃÕ¦ĻõąJ ŅŽÖéztĀv Ü’’— •ŲvY“d)ć@Ģ Sč&•J¦½ȔPĻŁåÓ¢|ŲcųČ Bp„¼q<ÉĻü±°b÷ŽŹó“%ušŃ*=ļ€`ōīMZļą„š‡5óė¹Šö\t¤śėoÓżxܹ’QŠé’™#+ž2‘śkąõ>j±ļŲīéó€BåMūo≱‡į]²ēį¼%žā†Tćž;ćŒĻ”ćų6’ć›ę!䄉įćž‘ć–R¶ć]³ĄäĖņęĪy>źų!ī ‚ģńd2õŌ÷÷¤ßMś ŠūöØĖūu\ōł`r¶öIFŽņ¼ĒśīĘ>:ė}¤˜ē]Tų㮪VąłłÜĢ\jŚĖa*Łb•lŁŽ…üŚ ’9Ż“Æ@߈pążŪą ¶ģą† įJš|įšt’āt*ä· ę@øčĀ”źéŲ><ėźĆoė’)7ź;£šēbŃßćŅ“ßM4šŪfĢ٦,¹Ųē†īŚÉ˜)߀ۂäģÅŃéų›ī䐿šI–÷ń‚„Gņ:ņę9üńŌŅŽń3ų0ń1zń•ą%óM ÖöŻ4ŗü›{MŃļn ŠĢ!\/č&¹Č* Įš8ˆīXīR ɔ‚¼’ĄµOł(-wŚčcŹķLBū“µžpüG”œų¼Ÿ ö€dįōSņ¬ōģ ķōFk,õšcāōPs‰óØćššÜ‹…ķ \/ź]ļÄē:¦ę¾Ż¬ę儎ē³1é•>ėĄŻķ2Ćš-ńó!Rq÷µĀ󜌿ž¢«’:ŽO[a «sE’b$žėRœü‰ŌćśÄE~łŃ†ų==o÷CĖõ"‰Źózņę^ńšņóńģ„ćóz•üöHŪ»śÕ¦_žū8F"b¶—ūwŲĮ¶!” žg€aüųo¤śe–8ł=#°÷/ģ öļūŖōęzįóūš™ód*”óiā ō­õŅ»÷šIņłˆlżx>[š(ī­¶ĆsøčZ œtu « ^JŌ# ²Hż õȞ óˆ Š$pīl¬ńæB-A4j%‰ƒ«#CĄpźE÷ZvbWµ/R»:¶ĪQ³F—Z eąĆ ßJŹ™˜ õøI|p’˜Atżė?5üé{Hü TžLŅzQ˜—}ŃX 1“ EA‰ OQŲ į i V“ ‰°²Tyæ ø» CŽ‚ ģkšž@ÉQŲ»ą @Ā2 —Ām µŻ ‡7¾ ] ą|›xEÕĶÓ*źć¶ĶܛI®eņŻTń¾8ÕZŽė™žöĪ€ś!A’öߢŠó1˜óąJµōnųˆ;żp5 ū5i¼!? ™~  óʄµö^§|M2ČÅÄ“?ŽIeH~zH R$·1W)oŅ–ŗį„MĢ÷Ą1­Ķ_WØ/q€ļū’8BŠż8Ž:VÉFE0Ō­Ļ ōūéÖįHk†žÆ «µŚ•Q`×¢Ģ yZ¶žęóy5p%Nhą(™±ü*¾Ó+ņOą+W^+ēću*²'†)G‚):ŗZ)ŅöE*ŗ]+Ģū+Ņ&s+Š×g)ēx!&‹,i"%[²ÉB©åó­Nž²łH'ēzą£H\` +XĄ6 …z•X=Ææ&’Ÿ¦œł)R#ō%<ļoÆnė #Aét„öč5ł‡źÆnÄķ°öEņĻX÷Øx ü’źŲ’qīź)^܉mq’ģQūĄ4ö3ņ!ņÜļėIżī„ ļ'Æāļ”°§ń8mōøó ųƒµ-ü—+‹PCéW:“lś]Į} p£Ś«Ąw„ˆź[Ü^@Tė>!¬ŪÆ’¼fhż ‰Šū}ė>śa‚ł;ł@˜tų-1Ų÷©U÷W§[ųgŒśÜ3ž0VĪ.’ŲuČ ¢“8”®ŠŚÆūõę"—9šŌ+ø0śH9;HrEuG4ĻÄ3Ś²?aoŲŚ ØéutyT-]ŌūĒS½ö˜eÜņLG‚š@ˆoļāĖ=ļŠLĢļć‚Wńfō°w„÷Mū=ūµ[žµÉ›’s3h’ķ]Tż³G„ł$škō­Ž¹īeŗMé"qå2¦Æā>Ņżį7˜XāĀןāBæAć ,‚ćįćKś7äiĪBä/śäžtÓćm™.äš vå„Śēš×3ėVĘūī_`˜ņ‰ėŗõ ’gų(öś½¹·ū”QūŲ>>łļ$śõ@“8ņ)ĖlīŽ“»źīēōŁ„ćUśßŹOÓÜ­”ŚNź„ŁG€$ŚpPĘŪ/­įݵ©ß|ś«ą\’ į­['įö/Yį¹öįS”#ć]pĮäÅęÓėčK~Iź«Wėe¹<ėńĮéśęwe6ć =ßä~ŪDEsŁį4ŖŁ}³6ܤō‹ąŌ)¾å•Ė“ź»īŽī>åķš[~ņ:čMņ…HAņ~żńi’—ńšdńꓞńä3ōęå1ųŸUžiQŽŽŒ¬ ŠR~ <6*•rC{¬‰¤ hZ !ƒMŚr)œÄ{L¶Ž§њŅ NtŠ’Ł«ĮūõHų]Ÿ ö@ õéˆįōށõÓ-õ)¤ō‡ óØSš6mķ3õé’øŪēĒā÷ę›!ē”ŠčaŗéP.ļėāœ‘īś>|ńž”³ō~•)ų”Ž|ūåĘžuw¬’ ,'yīŌ’W’ŹÖżY˜JüĻH®śœ+gł¬Ieųók*÷_ėuõź2’ó3=!ņ–γń4ŒņÉÆ¬ōźÕŌ÷šAwūhaßž0œ¹MLœ]āćz™4žż2ü˜Čvś‘²ł’p÷®ßõ9b§ō&Łłó[Ľó^^Õóænaō{Æ£õt»Ć÷Ų“śNā!ž·¾*ވF¤įĪ#x÷7 ķB ģśRÓIŻ2 -ēH qiī Š“Ė Ó“°Ľv—[g;¤ē@‡ńÖH…”_9­Żģ+•—Iś`0ōt ®ØéŻä :X ĶCfDÆŃkOé’ÅMż€d[ü&FĢü’¾äž—uÄżÜ¾Ģł5öĪīóęÓÆóų®³õĄ ‡łš0žūģĻ—”•S“ £Č önɛŖz…=õ" ]Ę\gŠ‚YŅ w’ķ.ó’VųĄOxnóČc^…õģ–Ŗą:‡¤Æ8+V#ųj2WšBżß7c|=yBū =nG Øö­R9;Į¬æąi<vR§ ČTā 8$‹:Š÷łZ3 ®œP%1pĒ(ņ¹©*:2f+źÕa+fhÓ*fó)šĀ&)ŸŽ(uvH)š2*¢Ł#+‘„y+öģ*Ūū[(uŚ%ŗr‡!¾Vnj«ŹkSæM)QµJPƒĪ—vŲɾqGYc _ü§å†4§LžĖ‰¤ų. ]ó¶ŲĄī’T뺜éž„éõ!wėŖļąīĀøeóV{LųŽÄüķVŽø²„‚,NZpž8ń!śuīõ¢]ņ*“ūļŖ_@ļ7Škļ„kšL_^ņAEõ5‰ļų«ōüø­%Tqnņ`pływ{Ȧ°©ņ2ōi*įM,ßt±TŃLŸ¹ĻD’ȓżZ~cūAx6śyˆ‚łźÉśųUceųāį÷³ā÷ =šų’~gūĄÕ-’ƒ,¶¼yCN; #Õ_¶ˆÅšY™‘§šȓ¼<™’‡łJų š WFU˜ qHE±Ļį“éīµ Ič =CgCõB»ļśÄt/öó·«ņ Ų’šo£ļO4ŽļÆKšÕwņÕHģō5hų^īĀū&ŃFž# k’·ŻŲžq¤wüō½zųn_óŻ!ŁķŌČčµō嚇õāg‚lāmo½āw&3ćŃ%ć ¬ŹćP 'äšjäĒždä°-äĢā!äø²ä+ū2ęÖÖæč>fģī‡Čļā*<óĒ9?ö <ĶųŲ6ŗśØP‹ūõĪśšöŒų‚ŠGõo:šń{oāķ¬W>ꑨę†I㟓Ŗß æÜ^ŸĶŚ ”*Ś ŪŚ!ŠƒÜ‚xŽ·ØąAiēąTU@į[°hį4×¶įq”sā\4³ćjUåz'-ē év˜źņ›aėĒžź«dGéßä[ę’ušāģ­Ž]źŪ„ŚųٰצŚ+Ņ{ŻŽįģįę@L€ėKżīGzń_{ņC0VņrōFņYšņwŖń”i©ńLq™ņXoõŁL”ł(å’1…U›Ē¶ Ō¹ükkĖų½_Uyr0„ ;Ę 7ųTŲÉY–va 6z0Ÿåüžė«)ū$ų’?ö‰Ø4õšnõ62õĆ¢õźYōÉćņ‡:ĄļF“”ģ?ōĢéß{üē±ųLē^ć–ē\§čģ±\ź$ žģ°Dļ9ģ5ņ’čqõŚāŌųų‰ōūRžĒ2§’Ŗāž’"ž’ūˆÄžń‡żAąüoU€śvzLłŻŽ:ųĘŚāöŹĄ)õrjó=õ:ņ\uņķ¶*óVStõ‡2¢ų>ˆ"üO’ ƒŖŽMģ™źł®#äżĒż’cæÓżšÜąūX Eś!{Ęų¼÷6÷É æõĘ/©ōŹōÜĖćóÕōN Āōńƒ/ö©¹rųeoūį‘Ėžš,¶ŗß^* zuŠ` µ ¾ėŽńÜ*ėc ą”’ ¢Ś8 B +,õ¾¤^0&w3¼¼ [fTŠIć—9ōoāØź8N=)Q'8²õnm 1å4 !zx4ĮŠ$?&žź{TŠž17żčµ”üJ\ż°!Æ’Æį _ŗÖ0„ž ˜ż$ åJ+ ę :ŗ x‰ ĪoL ¾ŠQ •Ļ ` jÄ/ž- ^ŖūÕ`:ō9µ{;… c`F „$Ä @HF oĄ2 h§ŠŻŠõÖOüA™ŗVŲ,Ź€ös“{ŪūüŁ ąŁńL_[!_?’†ö ś ¶õų;†ņŽĖ¦š™ÅŁļtžęļ÷ąŌšÜČĢņK¹ŗõ·+łuł3üś‹bžŲå(’Šo=žXó–ūR`v÷@Ć`ņ:’ķ!_[č¦Sžä„½>ćSuÓāGČćFy柁ĆćBƒäü‘hä™ä?!‰ä¤`ä½Å{äĢ’@å×Qõę¢é,-žģŻō‰š”ŚŲó `½öåE&łr Óś"NūÕöFś¼į÷p¢PĘmœ5Š’üŪ{ż8†¤ūCśFŒųū÷yަõćÆō®å,ōj ō{ÓSō ß*õ-—Ąö!łŖj#üÉ1j’ŖWˆpˆ-?’-eKmĒļį\ļĘĢĪYķŹ˜ 1óŁ pq ¤õNՃ<4Æ](™]cr€€Eu=Ć£%»C…A æø *yRź*»LŖ Ō == (䆭CE4Ń䂌(ū‘žņ2żĻßüÖÉōżųžsżŒŚ)¤YėŻ; AĄ! rKń į“ ž” SU8 bŌO ēø ¬± ”„ŸæøVF»xV²cƒõ«,ĶC Źi. f`¢ ōlł CÅ‹#čɏyl= Kŗ(ø ŒĄł“ĆMwe ¼’VĪ?üÆæØųšµĢõT!tōo™õ•ߦ÷ «‹ū“Õš’ļ0:O~!±Ąƒ `AKCHš’(UgÕ×ČĮÉŠ^%…Ŗ‡ąŚnāónwSėÕ»żĖKIÉņF"2-L•?ń+`¹ŪI牲p?syZž=† ‚Ff ʵJˆÅ)’UßŗŹv~6‘$f š5 +¾ĀEŅ Ė[!%÷Ü(Ū`*4Š*†“d*ī Ė)Vś )Mæ‡(ī‹(e)ØÖė) f*ęsF*Ģ:ą(NŻW&šø&#āIéXSæż}Š—:óŁ5ü“‚‘~ —ł…ŸG*÷ö J“ ‚aÄu)š—üD£Žö—“ņ īēļ[ė+TźµZ ėĻö_ķ‚«ń’xõ„Ņõł°ŻĘżJ¶ tĢ®’¾ŠŒüōGvų7ĕōØĒń;!Aš×YĪļ¹ł>š0G”ńTēÖóų{īö`ķ“ś¹—Kž°^{ž¾­•žŅ~<[LLŽĘ3'p0ϊĄrF8…ÖŪŹ±?4‡ž!¼žüAŽ%ū<Š%śŌ xł›ćų[į[ųĘųkMœų9¤;śƒŅżķ#³VŪØz ™ņ å8מAĒz©lŖÉ d<Į–d”Ų/µŁÕ¦Ņm™W łš¦ ĻV1ņł cIłiÕT£+KžÆMgłÆ{Nõń!jņļ}¾šÉš»Hš¤™gńņV‰óaR~ö+ŗłs±‘ü"_kž.µÖž2ɗż>/“śŻņxö0”rńš\ģ=č­0厉ćĖž2ćˆölć,¾ć“™äÕRXäz~¤ä\Åä×°±äš>œäGąäO†Ųå~üŗēhźö”Óķ{Ań™ŗnō)µ3÷Š,qłƒŒŁś®Kūü»ł©Š:÷Qśó!pnšžŅÖģ-HéO®Āå~1Tā¹ę5ßēćĒÜ iŪ›©EŪŹy;Üvׯ† }ߛ„³ąĶ°`į6G¶įCŠžįdü‚āŸ¢rćäuĶ䔓sęČ@9č[—ßé+3ė{Kė?0dźŃIčL0åUą’į¹?,ŽwlÕŪ$AŪß5¶Ü0±óßJģMäPāčäŪģįo·ļ!²fńNQ.ņŚÖhņ0rRņ<\ņ·āōńŌkņŁ ōx¦O÷Šk]üŸŚ+>ó ˜ڰ½ųœ\,įåéĆź¢ī¹Ķ]ÉÜ3 8a\¢0ų„ßÖ6€+£g`čżj %żŖW6śö‚©÷p$öBE~õšæZõż©Lõ „Żō/§óӇ†ńéĄīāėė ūØéh7VčŻ3č ¼ˆč£PČé/¢ėķĒ÷ķ[O©šõ6¦óEŚöóśB‡·üķņ›ž™?’c„­’Ė /’n=žKŌóüƒūJ“/śüłÅBŅ÷M!Wö5 ±ō>IóN˜˜ņIĪóņ8§tōøö÷ö¤­ś?5Kżõ§Ū–1 ÆGcŗūŒ’æģ*ż>ūhūü×ŲłgŽSų[Ų×ö»å”õ Høō±īHō=¤;ō¤Ržō§öšõ‘yU÷³kĶł£šĻü\]ž’HÉöeręG a½įĶ&Ļ>2Ƶ .`Ļ 9Ź GpĆ ‘0…|Ÿ¦mÄäE[CRā“+,¶„/ž€^¼Į ˜"Ć ̰¹GŻ Ži< zķ ŖŗUpāÉĄ‹fµ{5ļĀ`ž±>ż÷:8żG^’ž$0ņԃ×ĖIl ¹6 ×/± Q 859 MNü Ö£h K' TD ¾3 ­ćbōŻ\@L“(įÜõt¶ ‚× [į µĀt Z ¦ N1\Ū³ĒŪ‚YJkĻŪč=•‹T „Š0²—R×7Ļ’ß”ūÜ`9ų”¹¾õ,°ÕōżœÖõ‘æ—ų3’yü]ī¾ fāš¤ĄūŻ öpĪNą'ˆĆZOU ü‚· e7ÓF/pSF/ƒ¶žĖfg?…Vpt0ęĪ_ÄFTą3ž'riü5# ūŸ³śī>oł“ÄŚų©Gdų•Rų¼”łu ķś~·ųżµŽ+Iµ½ “|^ R” ßlöü©ŒēÆŁ7,­g×ryĆt’ń©ń‰ ūå¶…Œé^9ņŠˆ KxįÜU£)gżŌ9Įų Löō·2Vņü‡Śš*CVšI³š‘īņm’Cō­6÷¼Iś¦Üü!8bžóuž¦Ąéü>+Ńłü „õc}•š˜yĄėdzĀēƗåłÓ濣‹ćĀź»ć0qä—;LäžQ›äuEÜäFöšäŅPßäĻ™įä'ROåJ£węu‚čćVėN8Ÿī*šń]”żō˜Ø ÷o$­łæIĻśJ•­ś^Ā/ł‡X™ö]ó9˜ßļæUģ 7ŠčĒ Vå¦ābĆß§āÜWšĘŪ ×ŪÜRā܇!oŽĒ!ļßk¢įbzŸįm ųį.RāčdļāOGóć0»WåīÆüę¢É³čeå7źL*ėäŠ-ėėü ź’ŹČē­¢¦äų*į{WŽūƒ$ÜRżŪėTĆŻĆ„"įŽßjå#|Ćéoķ§FšFd‹ń)±?ņ÷¢rņ~…ZņN|(ņŻž.ņ9čņ–Ķßōeyųīx½żģ:ų’ qOZačS+9~Õ °®ˆ&ŌŖÄz »Ń² 2B³SE!Ń'ÕJ ³x0uƒ=&œNĒ£ļüødÖłX*Š÷—2öv`žõ«ćtõxIõuc«ōė„EóQT ńyŁSī‡MÆė |©éĢ?č“^`čcé [źµµDģlF£ī0ÕZńāZō³*÷§ņ…ś¤WżƒĢ³ž…~’W“ƒ’ßöžUŲłż°ĆÆüĒxMūxjś¼RŽųõ˜˜÷o[öÜɆōžüMó2üŁņĄoóķ‚õż ±÷Į;Ćś8ÖɿɵFéįų÷mŅIė¶½ŽRā¼žG;ßüa¦-ūäĒ łCŠų³3²öĻöˆõĢxÄō9­gōH,oōōšōŁSöāŹģ÷ŠvśŽ³sżĘžˆžć[T˜®NĻZ{ Rn—®@’µ5‹ĮBŻ# ŁZ ea ‡ć QžŌābĶܦēˆ8ß‹)4x$w‰»—o{ķŅŽrrįMqÖ·ė`j2µf ß?¦ yóT ĖĶ·SnK/ē’>8=ž÷ÉZżT€ż+2’ęHćäl«Ę.ĀՐ Ä Ql °©ļ !DŽ :¾Ō ‹“ ”y™ 7É F½_f X6/ōšØ'IFõ_O iÓ ĮŽģ ėK= ) O &Öų¼Tv{F,BÉa{$>kLŽZ¤FÖĢ<#/5‘ųNž¶üųś Üą÷ĘŌĒõ ”GõīšöBmł†\żĻ³‚°‚&+ ō•/ ńššžUcÅ~y–O„ Ą3¦éÆnĆŌåCC<źœ€3i°^sن2\f’ ‰÷R}vOó5œĀ“ÕÄndgW‹ČXvf©ø?įU ĮÅ“ō(ƒe.c‘9üŖEÓS ?«; Ӎq£¹¢»R×U."č2Ń%»9"(6jS)qP¬)¤m)ŲŪ(n˜H(n (¤A(›3Ų(ŖÅu)²„Ÿ)Ķå(A§'šät$āœi!¦änž¾g9Yi44fSUBϹ¦40zx÷A4}p į!ś³£Żėa1’WB7ś#ėSõ!wśšŗ[ ķ`Ø©ė}ĘNė-Ÿ“ģ{Jļ8óyĮI÷Ž>MūFRpž¼ō% šē³&žżąāśŅš*÷–ģójq“ńK÷•š;Ćoš‘¹.ńn÷Óņ(ŃTõ܃ųÖZü{Č_’ĮžŸEŠfd¹½Ēģ~N› ‡TÆĶ‚żLOŌ€˜ĖIĆ6īß]į’“¦ēż{Ł9üJõś5Ćśō·ełeł¢@|AÓMK'±“6(0,vøŠÓ A ש‘#*Y‰ TØ+šļ é‹-J/5}4-“:šŻ0v"½Ņ»åpū•Bń Ö4FŃ­W@ öŁü Ń2ĄĢq ļŲ%›×g2×¶0_Š:×?[ķß÷NŁ"$Ļf¾‚焁šš{ęłļ/šEŗŖ÷vx•ół¤+ ®©(ž-?gć‰Fžļ—·üźüą”Ē?ČŖ$¤ŽU¼åᨌ™ēhĶFŪfŪæ 2Ļ×8>Ļ|Ÿټ@¢Ų¾rBßpFżó„ų;ółåķ^§żGqRīRm²æņńæČGéT ė-SMõN±?SaźHä¼Ķ ׎žeķYfåĵüÖw}CÓU,JŽ?"KŠRŪ7¦˜ėVĮ2ėņŁEä2€ØčÉ¢rżyęćF|ļŠ†4됆„ęf˜;ģ<<ąļ8Lö½€ Tµ ųP–óėł–m{L¾ šēź ˆÕõ‘źÓķQąRŗJéĆmÕó•xžöō’ž\1ńńüįaūō¬MSų“Œęõ(źŗōŹė&ŽģńĄ>ß0ŽņąĶ²Ł\ŒfŲ*+?N!Gtē…^)鹞+ńxz!öm±Ó²āِ2:-CģÜ5Łč0- “ŗ$µ"eyļØõc.zżUXĖņTā1ęQlŪņ;ė]‡‚ć{Ķź% ļĻØśS™ē˜)u l^¾²Ć“©Jöū ­;gņõ@ÜßA#tķ1ōøéc üµR/ļÖ-’v.įžJį üh 2oŃāk&u`!xRč Z^ū .¬j׉”сŒµ;oĮÅĆi€4ė]ŲŹŪ-qĻō€J ›ŃĻü]Ä~ģLśS1Øłūßļ9ĖĄóé%yćÆäqźņņīX„ł=Žä ŹŌ÷~Ū&y %£+rŠß¢.cÅM3?4ö1n|$°~5+.$,6¦t*<×5,ō:C2¼dš2ŌNsah%mķ!Ģ@Ū5=%µü¼čŸ>ūa{¢[īłYō…°Š d"Āų jØīil+ųąØY¤ ­{-ŹYi÷/¬BzF0%Ą’ ę!šöP@ž沄ūDšĢžW„s}.°›¬ ÜOUDĄ&(gč×gĀæŸ= ßNūȃ š‰s{%Į’ŗš€żY‡Ł•–Ł ʂ’B~+…“M” ¤³÷|‡Čłk™īnŃ­źÓĢöąCŽŲNÕÖģ<ų¾–[„ŗ¬ĪOÄarĻ»ĻÜ%Ąn™NÜa®ßūB„Õ³4Ų”g”ć”,éŲ`ZtŻĄŌCŻ>ģ7äՀ~ą¼klÓ÷łäĮŒÄćƒĀŗŽAGˆį;ó®Ō*üףTĖՖŒĘÜÉĒSuVŅKhŚōiēŠō§ūkä—ōQu”ˆõJʒń“«4÷äOZś’rō^ėčœ|ļļtŠ;åOOLėūjČ’ˆĄųl‚éaĶŅą”k®Ł ŠŽJŖiä‡×õzp!ڐ< «n6† ·uÓ–µoĪ ¤Ńų"€£ś%¬¤Jæ®xŌĢłKĮżŹźó@ŻG ke2ļØ.ŅęęžĪęó8ÉÖß7Öē² ęŌō7äµ~ģ®Q,ܒŖŲKŅÕĀŗĮō‹Ę‡'Ō¼ģćĖPŲ4ę¬Ęя’¾į££É¾u#ĘņešĒųiZŠ2½ĻĘ÷ŗĄ½±ŲZĀd\Ļ7åq×Ō٦a7Š~#Æį:¦\Ż1VRŅdJdÄσ„»˜9t°õ3µnŲĖŽģÕŻW¬ŁWĘYāu :ä–ōWїuŗÜŌā_×ä\dÄĘAĶ÷·ĮēĆ-īJa>ķ·oLäÕ/©ā9ŲQXxŃ čOĮŲóĀĘ<Ö) ÓI`Ė¹MŅ*2Åāž‡QÜ5gćOū’ā³ėlܧ Ō޽|ČuäķĘXŪĪ‘œ8Ōp4āčéńŖą©‹tŻ«młēšNĖńÄkų7yŹģŒ{ŪŪHń2œō“ÉŹĶџ8ƝĶZŠ—\ä`Ą>åG/Gģķ=„żwWņ‰ĒņŠż$ńą›±š&¬’ք”šĪm„˘Ģ£žĖŻVvč?Ņuįw»ęšgaõó*ūξūW|V…v@M Ė&18ü)w›¹®ĒŒ ²Ąˆ£Fū/L°Żž$eč_¹Tćü„Üōø‹‡łĢÆ÷ŽČ ā¶ÄĶ€ażßzśœźź[: īˆä÷ņ•łŅč\Œź(†nō]ÕķūTģBg—źŸOWļŸ› &øYγ7lo­0¦Žļ(›T¾ qÓ øYåҶ&©…Č |-N}- ų~BżÄ-żß}ņ¹_l’»¾>õėÄ÷ bĘüĮŠų„°ą±Õ įĪg×ėĶłŖķåŹøü„D[~Kś”…iī‚“Ņų§7WŽQž·¹ĮóŠ7Éūur7żOƅ"Ø* XłŁ&eĄ‘3œ.ŻU1i*nū•*¾×Š(½®²’U“üņżłCŃ'żq‘3ҾeoĆĢ6-»æ1åśśężĆ“bž\’Ūx“ Ƭśw×) zsīÆA /dZ-šdøVųļ"ļrSušĄUGļŚXÅłąØłöµ9öķjŠŃńĪõožCu½õĒHō6“ų«k¦U•ņmķ1ˆ öģ:ž9CpĢD7^NŌ!ūļ’\ˆk @sa J«# Šuįõx)łrķO?˜’żU ٟUŁ[ʮƊYh!C?‹~ÜvS/3‹ļéūÉø;üĢå@ūĪ!~ t΁±/ęõ©Ä‘ńE[ĮōŲi€’ŒøŃļ6”ķģI,bī÷ń×ļźŽ)īĪH¦®qŠ V Ż·µ ߈N8’b‚Čįl…aę’³”wf9Ó"ņ¤/āMš.°œķč ć(ę12ŽŚ±<¹<ĆT*Ņ[%ŒŸ-YĘĒ! %1RŽ,öµŸ7 —,8°āW'Ņ쉇WŌ,ˆ»śwżā•ē™Į­”ńœųŠ%ū(FćX?{;oŲ&õóU,‡Ō.ń‰æ3øœ1 "ŒA;*|4éæu1“7$”°•(:T>'cM’“ŚPI«‡J;RB4Sˆ2)oŠ(Ķ(- ō!4zLĪ:æį<ŚĄ,"ÜwPĒ!³żĀqĻ­ÖjĶz™|å+5!{`i‚å ‡ ¶ŁŁóéęź^}č€ćQÜ{ګАõņæ…ü²{Õö"¦ż>|ā "üG7q@1EĘ«ÉÖӅ÷%.‘r[2ņĶ›ŒeśhqĘōó™a  t EŽ]"<øYŲ‹P'·¬8#§÷ $? ą$P±'‰y”½o–L_©ž–Ł˜”  vł l@ˆiePG!?ō¤M‘ār0šū•3ß”r3"ƒ(éź'! -zk3nE0Ą¶\*ŅMā0ų7g<.iį=Tµ„Dļ¦÷KUtL§ÅįD¢U±:pō-³ėļ,T½š8¢8Ł5 Pą,#®Ń % Ÿ3'§Ė,'L?ϳ &4Ż FB+“Łīš1ķäxņ‚ä£nŗÖ[Õєj…ŌŖ1ĒŻ%ł®ŻyEXė·.ņEŌ§čK gÖųé×ĖsżHZ¶ā«|Ģ«CŒĘ†”™ŁßŻąüŽĻĢE Óļū×o[]ŻO×厞Šäé«÷³qQśĶĄ€ńeī-čēT7ņ“°ńaUJņµ|ņż2Yžo?3Ko†°QĮė‡ŻōZ ÷ū~įł$Rē4@Ęéoāœķ„ ē‰Uä&ŪÜcŽŅ8mi֌ӁՎ|Dācøļōųõœ/ĀõŹīļż»föyŪųęw1R.DœĢXę?Ć fŗų~Ā“‡§Ćƒ’]Ć"pWՏšā\;ŻLµSŪ‚õ§ąbå–ß$¶ŪĘv#į7ćÓųbéš°šą~QęhĘwīIVč„Hčæ{ß3I×/G—ÕūGUȀ›ĮĄÉlĘ …Ī"1JŚųõč2&±ó’Ü®śž”ŗb÷Š€šīž}ļK3*ņµ}šŪzčHłhē“Gkęy1øā†“Īņ ”øöR/ķNåxŅ£ŽŃ·ÜŽæńäÆ`Ńī²Č„‹Ź Ķ4ŒAŖZ¤1“ ŸÅ=«l¢īĒSųŽ2wń.ßEłµÜžé'ż)ź,į _µ;.m©ēē¾óꇣó]¦iėpŒėꯊaņį¬ėśų¢_Eó¶Ŗōv7‰óĖĒ·āŚż„ļŽ#ņGꀮėć]OŅÓbÄĘķ0Ča”Ļ*vMѓ€ß[ėß3” Ū’į¶įūŃ}ål€š8…łGžD°Rū U®æ” =Ś-| ś›Ų*ķx”œćóŸ×Ü/õĄčˆļ–óqø†ö“]Žł=¬ūj,=īf(|ēźwCéܝ+Ų@YÖ°ēōēÉ(rų–ü“Ųū7’eöu—mņ¼Įūčŗ sąń^˜Ł±ōMč 8¶šm³’īøöņÉTư(ՍĶ ÷cź™E ¦«čż“†*ųÉBeś®ü’yO” ߏp£Xį£č ­LJjŲ6’ o~ ;˜ Č}εUĆ ~Ė©xŅīUóuY»×Q›„Äŗ„b¾E u8 ĖRqņ¼9ś8×rč—-5ēŪ/‚ći{Šī­“7ūļ³įū :”śy¤ęb¢Ö ó2 @Mš)‰:%w‹k' Ȑ!–†wcæ$'.Ł_&”Ź0¬Y-Ōł2}³q2¼©|cŸK 'gŚ2ćģ~/ėAüÅ" c( ·Ś‚œŻō­õnŪ® ąAń²ŠŖ €Ż.ļKŽį·Ū¢Įžū£Ė!öėé/ńˆOžĄŌ­ 97n p ^Į˜ Dՙa`·זØŲjĆł¦Ģ Ņ1pd™ģ ”tūy5ł)ż«ó4$<ō/4łÅšóéŸ0ž¤żYµ£ó8¦n趏šņµtņ«©śÆd>²ĢļƒEłŒ*Œś“Ż,GN Ó*•VWō³/Č ‡£ll^א\³Z)ŻMźķ6¼_$ŸZ~)R^%Õ0 ,7MƏL# żéČž 25(§Čże/"®†G%ÕĖ!>WE²$|(¢uæŅĆd/%Øf Y}, s0o ÓB[ ū„„ŃEö«G¬ź‘"lįw„Žø0ŲŽāg›āŸ&ŪõÕnÜĢŃ&ę$ćźź—ņčĘ§ĖšČbūcRGä­ŗŠź9 -ūęæōŒÅīżö慳AĶź-lĪÜ<Ÿ(äŌ;öäó'ꊻʌ]EŃŅĄ/×G"ÖYłŚ&®0ŽŽ$iä ¦ƒń<łćļ%Dró^Cqõc’Œõü°ćųg¦(ó„CŠė)āań˳öPL¦żæ#ńKÆŌėp]včHœēīʉ“źæAåąŖ×ęįg•™ß£xöŻĄĶŠāŗŚ‡ģ\œ›é:Ēõé£ī~VōŻ?­ķAšżī°<ėRSÜļČńDv”ū Ż»ū;aóś{›Ī¹ņ©Ķ¼[Œ Ž žżLͰūŗšóƒ¾Eė)WįļŚ’ŸõżöTžƒgłĀĆļ謉ėx'Žņ×,÷GzÖóü9)ń”nöī×üiķFXké°~ö“®_ł ʱöøj@3W6Ā59$dų¹žĘåŪ®¶„"1ōe.[Ś—4śAŠ/ŸD'ęū\ģ Ų ~ 7DhžņūÉé’–:ü‘ū4üYBž“DüŒ©6ū$āę/CĻ_Ģä łŌ*wö±m<čPéܤå0Ū\GķÖqķfŌ½’“åņ]Ųųų¬ śƒżž»Ɣ ŽX¼«4ofsø"$°ĮD·’S÷Ł÷s» m€SŗiŲ QŖAYWēįZp‡ EčaŠ„ā'†ą“'WrćCjˆ¦yé“J! ŽJXvwĢŲuJųŁ}9ƒ™Ę­bŃ ° Ų™žŦM ¼ ¬§‰!Vš-¢×.[ź7,Ōm'ćot,Ūżä0»³3?(-^¹y-Č)ū30Ѷ7z9Uį£?į#6AĪK»=ųgm5¤Ė+;œ0&ʃ{-Ŗ4a2`˜.‘üĘ(ö;'7Ż|,@»­0ūh†+?ĻóųÖ—šT·Œ"c ?Łmų˜Pkķ¦s­ź Mģ÷~>ģsA„ķ0Čßō/!Ģü}’Ń’qs¢] Q¢ż Ÿ1¶ōA ®(„÷@Ę ÷^ÄŚõžķśś€/ų7ćüØ;ø7× I i āO¾Ē$$)„Ø…ūH¢’vŃÓpNÕōšχó5xč#ŌÅ5—@Ż)µ'DVįX ¦HžAīLł¤pūžČ’"üķQ*ł{*ˆō0Ģģvxˆģ(Ųiš{ģHų £ī]ā8™±/Z» ā#ōQ®!H€M,Ą 0Ɇ°-Ł¢‡*ŅØc+kė“-i§0,]0ĶV”1»~i--ÜS"¬cĻ#«Ž prøųaLŸ`×Ū_~•Zlļź/‡ źøż žĒ»’]müZ-DĀńšÕ0% CK ģŌÕ —7 čž“n7 ;ø,ø+gūśŠ¬żš&óü*€ę@Ƴą/fōŹ„ ‹Č­hÄ ‘l N?%Ś 0óä ˜µ\ jž” 'wŻ w€M߂˜pؾ§hP–5ńĶ£•jBp£Ģ8ÅńNœr<’™&¶÷ē+ņ™ėį`śćśčŁŪØ½Ģ©OŒČ2,Ēk¼TĀ™ŖČ\ü™Õ”Tc×|ŸGÕėˆŁŪč Ż¢­Üo=pßiƒņćÉæęĘcĢä¶1ÅąCœē;Ø0å2¹=ćö ZąfĮ,ŁŽ¦ŗ×™Ņ§ŠÉ9jpĖyźŃogōŚ.Šē›ĮGņńs/śĆ8’ō®Ūž)"łµā«÷‡‰ˆśPNūpļ÷—u¬ņiܬń½hĄķ·”Pó`$ücÌöŁbī-Łå‰½Żą{½Šįhm ēÜō|ō¦F+Ģ&½Ż0A‰~9 x¢ø ²yÄ36!3ŅŪqŖ Įą0 ĀĒrd³x õiÅÉÖ·%>”—‘ł½rÜń ?ģčÓĘā%ĆļäXwCź³µģœr^ģŠģfäiĻތ„ŽÖĪ\ŹÄō2͹7rŌ Ś®ŚżÄ ŌƒĆŹé•¾Ē‘*ĮŹ1­4Ģ.£ĻĮ9µŃ®™Č\Š~ĘIKĘśœöÉ%U;Ņ‘N×Rćó×cgŲ¼M-߄GÜß¼Ó×¾ŹhAĮæįE ŗ"ä9½č^ŠŹę]ŃÖķ[ŲHłŽoĪÆÜż^×ĢŚT1ŠŌ:+Ķ+6צņåk3|īå}ĢīńhģŹ€ē3|įœ#×Ļä“Ī!c ĻŽ©×֋ÓHÓo’ĀŃéPŲÖȲ–ݹ®€Žc]āS„ā|,Ż&u«ÖķrĢĶ\ńĶdĻ×ĻX&-Ųh!į„;˜ąLäįøtKėžƒ ņW"~÷~ļ÷åńįbtŌ h'ŃTå`Ķ/č'Éx0Ņp’åŪĆ°į74Øė­ėFō_ ŗņņŪyóęۃóųJģöĘŽŠ…Ō“HÖŠ#\-ŠpÕ“Ś'ŠPŻ^ņŽ™yćųCī·4µō—”ažz® 8ł kjŚėGī ¢¼³ .+ ·ė Ł•+!®¼ ĶÆ¼Ÿ·RŠžõŹ›{ņ#¶ų¶Ć~ś:õsžˆ±%¼?ķć+ ģyū£óußGõķRōéąųļļG]ń —‚óėš-UÜķ\+"ķ AÕō0ęŲ=r 3IÄ“ÄWį p €!‰¤[ķ¶DÄÆhh›ŒŠÓ§õ5 я”Xč{’]öYüfž7Ģ,ūšÆśó:ż}B óó=č™+ÖäI¶3ź³ō¼ķų_«łe¶ūü-¬§łCœČös/ž"÷­%0o’ŠHpüe 枃ęĖ"Ņ`ŸŠ-ēm"”m“ŸT8pŪ¦G*}$Ÿ‡&ĢÓņ ł§ī;üAݼRž@xĶ8-zt'E·å[ā~N³ÖƒĆėėmĆ.æÓ„Ōƒ Ų ¢ Ņrµ'ŽŗĶ©’ęążØC÷¢bįó“kåõńPł BĒųQÜōˆśÜÜäü}ŅśŖĻ¦ł5Z’€™jd ÉW\b÷ ä`ąÕw‹­|į÷q Sh_Ø1Höø¬ŹōŻ• ōš§oņ&E‡õ~›wž?†]śA×ÉDŠ ߉GžCšōŲ+®ŗF“:ÖL×Œčƒ’śd#{Ü5+3ģ8)Ęż%Q$+kŽ73Gļ~8ūm­6ˆƒ+5ah)“Ł' é#Ż(&snh-?Ą3Ś“(4=$Ć(ƒöÉōżłüĆŠK¦Ķm9 Œ ĘŹśV’DT©Š2AwŌ*ØrgÄ#"Z'ź’g+®)n/ĘW 6ט¶2”# .ęš)ŅZģ-3ż×=,`ĄF L«vGlŖ@»wŹ4ÄD/żłó0zf6sš¤;¼t48ŠŌN)ąŽj!²¶!Żkm®wø§Ł ]žr:¾*šW)PżĢ ³·Rž °÷b‰ļ.ĄƒēŽ»Ķé&ĘIöLHŠłĶÅiłŻhżB_ÄNe×¾ö¹^åėҬ¹‹5P årŒ·|W¬µ­;Ÿ’ų®‚¼ÆAX Ž € °MhҦķ3؋/Sö *Ų] ®ƒö"6ķ$˜˜–"÷½ņ…/~ȵ #ąp 4čƒwQœf¶ –]d 68 Q²øwĆV -"(¤ ,ś±k1z`ć/”ȧ+t¤)@ņ,Ćł_-z•+}*Ū(”®. E„40Lš9ļ‡U@# ”FõåÄFzä˜BÖŌķ9Ü_R2uVĒ1µł5źiR3ōūs-ČĻ(‰½õ(qˆš+IŁ])‰OĮsåTEyqÜsåõłĪvļ,%gčą6ęÜ”Ņš×P’|ŲFŚŪrÉ:ßhZiē:ˆ3ņ–ĻažĻńo”²B !š-!_½’óÆė¾C>ŪóʅÖG;0ÜEĶžŚÕ©zÕč$ļÖżŽŁ<-ĀŽ„üØć(¢éZ@ō}|ö’aššd”“śļźiŽš§4ņ‹EłNĆBū…¢uvRŹW¹Ļž™Öł~yśdī›ųŚüš2čƒń;@śšITDķHt¬éŗ]8ācÅŃ܈)¬ŪJŽźÜ°ŲäųŽFķĢĖ™ńŃĒVö­ĢÜųļ¤ž÷féūśf—_'+~ ‰žÄń+żf•®’äū“gĆŽ’Ų”9źO 2—SĖüҦYśkī5ó”;ļ چāNdŌ8ĻIÕYĢÖPŠ0Ž“Ų<ˆ ŁSžcŲŪµßĢ~”é•©ó©Ä÷¤lēłŹkžūׄś®ūTņļxBļWźRŸœį€±"ᆑā;bŚēÅĢõ(Æż«)-üĖČś÷®ö·™ųgėĆösÄešĀ kģ§ŖžźÅĢéē Éė¬Ļ’ķŖ}lõ(~Œł/Ā¢÷¬]TõwÆõW=ÉūĘNż1Ęd÷ė­ķ) čۘĖāŃ)Õܑ>Ųm­ŅHŁżUÉłū^eÆõö²Äõ ŌO@ ~õm,ö°ŠÓĶvĄsš \ yÜ]Ü s€ü ©ė1 &ū ÜŲ{ vÆ5L@‹ ³•X 5*żč ō®¦«ė{kŌēļ•œę[”åNįü±įøj§ęąQ蔌鐯Tļ“ĪcųŅz ’įy‹ŗ6é|” hĻčż² gkLÖūFQń¦rāéõDméŪ&Śč.ź.åœx«Ż{œ•ו†ćŲ+$Ų¾M‰ŪĪŌaߚŸdę°6±ķ“­ļ\x0ņp«†ó»vĆó‘Qō•ķŸļ|ä<ķsĶšt+)õü}"÷Ʊ½ņ¬°ļmõļų~šU*īą‘Žča®;čÜåcyQåņĪ£č\ŒĮģ„ōėL’cģ²”Uļ)!_š'Śļ@āłīAęQī–Ēķ…§'š“B¦ņcÓÕł!‡üfG€śl¦Zż_w1 ? OĮaÆ!œ %°¦¤¹<œų°Xō„øōŠ&õ÷Lń“łØżVõ&H4īqģ-vļlĮmņsęxńÜń¾zļvįīŗ™µī|—u÷ƒČT+ķ²· ®Oŗ ø†F2ę¾—ŚB„gj6 ń…Čko#;'.#Č2dSZ1©]œ(X7ĒցĶQ½‡ėšs6õ¦)ĄļM†vĖd‡Ü“mׄ߇žwŠ®žÆÉ–6Īze:–€żŲČī÷2`“ķĶ1Ŗäų äߗ IŚ›Y}Ū9Šqę×į£ń*1ö3Żü‡©KMfć™@Očŏń3¼;ZÜ’hÕIöjź…cÜ¢ö7 §Ÿ öµ‹ö› „•ėӎ™©„ +ķ²5/†×#¦ķ8e‚‚’“ź%Łõ~n źŠ$K? €œ’ ōę6pƒaérūŚxoź cZnn" %T(ĢØ^*3-)SV…'q²ø)éd€,éb_,…ŪŅ*ÆŃä+`=Š0^[ė3±UO8¾Ęe<»Ļ÷=ET”:Z‡40 ,Ī)óJo+öß-Ē=*‚*Ē'“Żæ'ŁŖŽ+#¤-Åz)"¬Å!Āµ(}@¶Örø6a ŗ1Cā»ū·1Ēó¬O^ń}-šÆFƒšĻP?ņzœ÷G’nžE©Ų±šYĶ* ƒcó §4Ļ P01CØkłé8µõ.¹łfWž‚ļŖūT2ū·'Eż&/\;·o™ ų}HbAŗ½T^KwY0›oĆ ɚ4ļuYüŚÄmY®hśSt(üŠ 8ČŖ—wé5,ć’‹t\žŽ!^‘Ÿąžō2äüžųŠœņ7±ÆšĪ5ņæ¹kųį2qjķ 1|nÅ,ł ļ˜ ņ6X' +ź>m*/ćF*މ*Z\,A\”,•±/(€Ų/ūy…+’—%ÆÆŪ"č ł$ÉŁ<&6='c«Ö XčČ<ż~‡ž ły« »%< „ń|+ŚĀ^” AįS‰RCDüō łˆdł@“°śļ”vuÅn ¢aĮ ŽÄÕ ģŹ 'ÄY HŸ8ÜȍeĘ` }–© ėhq Ķ̇ ¦Æ5źĶ #©?Tgõh܁­O Ąäz wEH‚B­å)Ż™śՀp”!ż°¬÷ę—„ńŽS ė,fNā<„Ś×„É6Ņp‹ĶŒÆ+ŹJĀęĶŅ/ÓLæŌ…å ŌōĄ–Ö_ŸŲ²lqŚž%lŽC„rćSŲę-gGēśī¾ēŃ\ꁻŒčdœŌåEķĶįŁ¾ŌŪ©•óשžŃ3]¾Ė œåĖ®R Š”ØźŲvq÷ć¼oīN»÷lŖ,üoć…ü* ś]—Åłńūŗū"½ųLēbö;“qō„/Wóo®/÷čÕjśQĄøö ]š!ƒ®é*kå-ģĻä2é5šņ=B³ś—ųžģ»]CĪżķ øØ ¼Łéü¹ĪlÖSė/rž ° :SŅ ƒEP ły ’×A'QžEkV÷łäńž•ėb-¶ģ<]£ļŸgńūMļļ*żźQ„:ćˆH/ŚWęüŃźŠ”Ń OÉŌ!xŚÕ"žCсɞŹy Åɤ™äŹ•Kł¬=Ÿü3ž'÷–ż€³kž å²ĻKŖ7ŲĮ¹Ēä¦ųĘ- ’}źń; —R9 dHi}ÉW SśĖ2Ŗē’^ˆżzČž¢äš’Ä5­Ę HIZÕŠ¢J¬Č¾a˜bMõid¾ł›²Ŗ—a\Dåē/ĖC>f2üĻpĮś ‰öūlŗcü\ ś+¶ųw–8ųRšöšDś•¦ žBČ¢Z—!­§ ( ¢ébć%źnżŻŒéž77!q&,&ģ-'Mi+(ŹŖ19°25T’24œĮ,Žć@)@Ģš%č O#^&›% §¦*På™/č$/”Y÷(£"TI˜S0UØ?O·Ž ˆE¦±†P®“ˆƒM=Ę­Ż“„ ī$õÅ([G,•W,ˆ()*@öų)ŻT/÷Šz:“ķ€BĻIĻF_¬“DėK>¹L6ÜY„1\Ķ 2= 06§Å9O§6>Ä·-•ōČ'-¶O%Y"‹I >īn ¬p!«ß×įHg’č„yn…°tō(žņ@åö›·„ńŹ’ĄónRWło^»ūÜJüJ”2ž{HīÖŹćQŪœ] D‡™]}„¶0`Ÿ™fŖżöÉŲFŽ >h­ HxQ½.w ^zŹxŽĢ 6#‰°~,Tń^‡Žź„0 ‡.O1““˜qd hł P;ĢżŒī¤6ś (?® ;ļļńņłmų˜Ć"I¤f*V}¦.ƒ .Ā,©µß*@£+“©*tl(üd'!Pa*ćÆź.房3†ā†:2ž[?×6Ł@:Ėį=ŚfZ8°J_3^„č2&~w3IU1*@-Ŷ¦*b*Ä<«+Ł9“(ø£¤!ˆLś# :ś@ ī‡ć¹ųyt3īLžTä4Ž2Ži!vܲžŖÜ€āß~‰ķåż›Dļš6©ųń]™’’¶ž3±é‹ȍD¹«ņ„0‰ęķąį]Õ豛Š"Žģ¼@Ś€AŚ,ʒŪa!dß{iĪć?eFź(akńŖ)Pów½IńÖ#'šC·ćļŪUęļ^^©ńśg9õčI*ųO%Ŗūū żž*Aūj‡ļł:ÆłŪ˜ų”@Ģō®g6õdö!ōœ†“ńņ퐔0čśµįć%såį‰õā‘œŅēÉ8,ķpDń?°ō łzö+ä÷bęöśŗ?…ž]%»žłdķżśĘ¹żæEežĻ=Š’ŁFUpm÷ ŹSōÉ†ė“ž–¹Ąū© U÷AžŁńq\@ē*i"Ü#ąÕÄ~“ŠO“÷ј‚ØŌ"Õø ńÖk.‡ŻĒų^ę(ļ#®§ō†’Kųū,RśŽeųĢŻ“óž‰Īī nJč¼(į!凎 =nŽøŻć¤ ¬ķ6[ õz”÷ü&8ųšIło00ūr‰‚ł4¦ õl.ń±š8ī2—ģģŲ×Üķ¬dBń)?ĒömOśś“śĄć:łō`øłņž©ü S6üĖfN÷żqÕš‚uUė+uę·XRįä/ĖÜC×óGĪŃ£Æ§ŹÕHĘwڱÄym2Ä|+9Čq“ÆĻIų²ŌrŃ֌ףõ¾BŪ88bÜ ƒŽŗTā@“å“™ēÆįéeŸ ģś·ņķģżķ³\łź±§ęųą–ą°š»ŁØf)Ńd‹/Ģ-ŁrĖW0Ļ‘CĶÖBD£ąÕ@5ź&ņŌ+3öĄzörŠŽõJ„GözĘžõ:ģó”Åžš€ź”īVqķāŽ‡īQ˜@ņĶmņżóķ§<¢čė’Åćˆ~rā‘’:åÕĢęģ]2ö…ZüM7 ’ꎻ‚ø+’U٘É0†˜żuśĄ¢-śŃ1½ś¾&¬ūе’-›sj ›aÅr„Å]GqLūŽŃ,÷™>}óä@…ó®÷žr°ūS£ž£®ōż#QßśgEõÉ.bīŖ¾iźŸŁeźõžééŠÆäHLŅŪØ„ĮŌ,F?ŃKē€ŠźįņŅzP<Öz¼DŲpy¾ŚHmąż,zę9ƒ/ļEŲ@ö׹vś©ąSż='eėøD…żļõ¤÷ÄÕš"įœėiĮ!ėąļ{’ō*¼÷[Kś+”Āųœ ōāČoš@Łnźō„?ä¢Äŗäś«|믯ņ47ųŗ#zśŒž–śf™¤÷ż>Xņ2ˆ|ģZ„ƒ’*e ­Ķ įĀ ?2Š Ž8ko\ķCĄxŲ’:ūeˆ4@–sܼr’Ó ‚ īŃB’®ł7üżĆś)öų$#šųnōRõ{qļüć(ģSŗ†ģ,žšĻö0ū;Yäūżdü%N“’e7‹¾:„ńˆ­š¹G Œ ­½:<Õr8į/]CŽ›žÌXv ”yķ"±ż#ö™ –› 5·KŠqŃ žHޖӐą ʐĮ,ĘšO! ūo0b”B˜ čćD ŹĆÓ -źŽ 'ď øƒnP·‚łœG™®. ¬[AÆSś†ćµóā†ļX×KķV7źĖŃRēµgŠę/učTÖ芔¤źbšßīNõ²Ä¹śč@8’‡¢‚¤*Ӑ­7šż°F;÷{gņ¼±ļfg3ķkˆųēuį7k^Ü4āņŚSÖ^Śļ=ŠÜ!ząß’1ęu:ŅėÕI³ī7@ńs< ņ*ĆLņ@éń ÅķžPģgßHīĪgń%»ņĘkń1šį)ńŻQĻń—ĆVšÜyõķ×TŽģ¦¼ÜźŠŹė_szķ“”ļ·É>ļuæRļlšF…źļå¤#ļ§Qī2į¹ķ`“ķl ÜļŃRóS:œ÷½}łDŽłn`żØ}<d®\ ¦¹v Ų‹ ” I•—øXG©üHøłJ,~ł¬baś »tł¦N„ōÄŌīyÖ:ģ]ēŠģĆ3āķīuJī°jxīD&;īSƒīgĖšičh÷5āž č’TYŸ ÆÆ a6±8IhĒüQņ=pŒkA÷ 5 ”_`*}*0Y0˜0g"ƒ*PV|!ŖŠ“e“Śøõ>@ ”MY”•Ā‚ CL”j꣐’ļ¶­³‘ńjiĻušG¹ž›Špłœ¶ńi¬lźAŗwärĻßM+ĒąwF‚ēB{īvÆó Īų°wįż·dZ<8, ’³ —ˆ Oŗ‘‰“óXy~ĮÖ* üÄķCųl‡ Im<Ł.}dʉ—Ć^ģ­š?³MĢū6ņķ€ ‰Ō›Ecćm åÅqŒå„ ać VÖ ~®# Œ8ēlY"éæ *P ē?wŪgętżź^ē!%-3™'-ģG'y—Ś&|Ŗ'rzÆ(N(% 'ś8)Aœ„,‘'0Į(„4§—8¶’ļ9QÅ7-śl2&¤,ér£)5ņČ)9”K)4m'”Ä%ļX& .·(sķŁ);»"'$ī—#Āæ –3£ä¼¾ÉX‚ dˆ„lž”®tų AƒõPó&ō@ 1ōGM9öAÅUśqö»’ŪÄŅ£Ųc>ņŹąg žŠ€\!ńłÕ„÷Ój“ł[Ķóū·ČīūP5aüȟ.žbóÆź•KĖv &RgR Ɂ޷ÜkŽ é\&čO1–s’”žŲhmXķ^c5P­ ģŁ(Ąm‚‰„nxX ė@F’䞐}Jū s÷ĪŁ6õksõé²łćkõ)© Įß5ŅHéīĶöÄ!ź#^%åNĆ&IŽø'‹Q­(?śķ)ąą+Dź£-+̵-j—*u¹²&C-#µlĖPI“ ,9yć% ”·KĶ` {f jČż ÷•¼[`Ÿi Ól} ‡é§H’,l›8€hR ł åmWŸ0ś "0öō õ°/÷Č:ēżć»ĘWīhWųj ŗżŖ × ĪͳQ ī ņo¤ |ˆ¾ ō(ˆ nĘ €VĢiaÅʰ {[Ÿl\ Ö0ž! ā–€™Ø7Ļ 6±ß’‘xŻūʇöņ@šEšč›·…ąšŠŚyńJÕĖvdŅ—ZÓ®ÖÅŌ'{ŌŪD$ŌłéČŌZ“»Õ#Ōŗ×ń%ŖŪ©„ą®v«ä5#u绊"źŚ! ģr…ė.üłčrŸäpZß,ÓkŁ“b§ŅUŚŖĶ9u¹Ģ¦†ŗĻz”“֑nąq—꤅ņ‘W&ųĖ™ļł:}ŚłÅ9"śŁūąś±Ŗś©ķzłā½ųŒvŌöA[÷ęƒvłc~ś½»¬÷H«£ņŽĶäģš{Īčćčŗ><ėĻ^ƒń–eéöLŪNś0ńÕż?”?!ŗš,_~v žŒD0Ģ[ŖĘt w ².ķ-‘u Oy! ‡ž]SY^»aśF¼ēōo?Žń‘:ņŌ$ō@õ]źóķƒBļ;—č”1 ąä Ł4į“ÖQÖęįĄŌė]gŠ#>ĪĖż Ź4b±Ź†ŗŠĶĮŖŃN1ęŅlvīŅŲ¶HÓU݇ŌĪÉüÖE_-ŚóŹ«ŪDZÜk‡Ż\ųŻ(^>Ū„wĢÕg_ĖĪfRÉĒdÄgÄ”ŃÅōĖlŹŌ~oĻ[ŌvzւY֑Å5Õz֚Ół9Ń£$ŅźmÕŲ7ā¬įtXé6Wīč@ŠļŗPī¹)…é‰?Æć6'ßUßēŻŪ«+ݲȖŪG°ۃ‡.ܓ|lŻś~ŹŽ!üŅßµ•%ßµ2܇šÕ×7UĀÓōr/ҵć¼Óq×Yå0Ū(ŅŻņ9dāk©”č{٧īV’€ńOD&ļ”éé/ižā”×ÜżS²×?ÕĪ{ÖCµŲnŻ<(ŹāļUlēœ2Ēź«V ķÉ'žģc¶čhÉ1āńĮŪœ­×؝¬Ö5 ”×y…Å×$^‹Ų­µŪxP¬ąE²č’x"ņ"×_żģÜŻpBĻ /¼¶ śõŗļŻģcżfĻ|Ė@Ä?é›/*ž   ’:”•’%““ļqŒ6Ÿ0ŗż3˾BžQ÷ś¶KĮłSXų0÷Ē÷‹sę÷¾H÷RŠāōSlŽņlóŗį†÷ėØŠżšÓ Ā•KĄVĮ ;žf/’\~jāow*ø`N(……kŒQ°K Ī<= ēėŽ‰@_§|:„/>Ž9’?¾>üDؤõHļK·ė>CSźZĻģ“ÖŪš¬kó»ZÉōšĀå÷ŗSWüźž›’hȧ)ø<ʃ:[KPߜ ¢8 ŪqfŸĪÖk?sŹæxa„|ēķEŗH!wtzsGŒ^J3 ¦!ĻcWØü~Y ƒūąd<…£‹Q_čå öŽ•ķJē‚Ö†ŁÖ'śČĶ6)ā Śä’ ¶ŅŸ -& ó*¬bł)’—3ļūNLū„Āū œÖś€žøūpīż4{’Ģ@#® æ-Dž8×oÖ/P²Å/ÕyϚńū0§PøGĄBYśPµJģ…»Ņ U—šžćHzž¢ż’’NՁĄ [²Ż’ci«D¾Œ~’Ž i¤V_…ŸŲž” ¢”wIbi+Į~?)Ørž}NÖü><°üuü’|ū©vū-®×śÄvūö›Jż!ę’Ž„¹’³Ō;E ²ż ' ˜ņ°MŠ,Ą_©Ö¼¼Ā÷!'³Ž#x3ō%;<*#1,/"µ 2¼X¬0Öõ,;#&):y%# '#üDo$ō“Ń'½­+\1ć**,n'šN—#ĘŲ Ūź(h/PVŹ£ÄĒ ĪÆŌ  ĢN ­5  ‘Ī{Źć’½{ÅüV•ÖÕ"Ēź‚$é?(%.  %›ś' *-d%76ŅĢĶ= üBÕ\XAĀ–ž<‹JČ6Żŗå2Ńž2….?5~” 7•”41§Æ/4‡+rBI(ź¢[%‰#3®#Lŗ›"¦ƒņ Y<½j®!Vć^B Į„ƒIżW5½ł×FńśŒTÖżÕ“y’µD2—ć­)ł÷—'r•3:£ę* UQö īę)«-2?—ėŠ%øtī t0¹‹ Ķē± ŽŸČ f¢O†}øŹBR‘«jHŽ÷źrEy‰ ±[xųō3ÖSQRM»] _?§'×ĖĒ ^züAżÖŹ%ż3“Jż^Ģżśüžp«ņ¾Ć¢Ż%4Übå-Nž=7ęū”u¬ų)cóž‚,ė>pKāĻnBŪ)fÖ8Õ’Ō~Y‚ŌĻ ŌÆLÉÕÕĆņŚ’vāŗ6źĄ*•šŻ8;õ×Y³÷#ĮĢö’–ó(¶ŃīŽw^č“,ćįRČŻE£Üļ ąü³Žę\fųģAšEń¤žōtj*ųņØĢśåżÕś•æ‚ų>ŃzõTŖmņS®•š„čæšu3dóĒ*Œ÷^æŖś\ÓūoÉKü±DżēÜUžņÄčü“A‘ųpļ.ón“źķæĪ-éŖīä§ Xą”źzŪŁqĒÕ"?“Ļ•cŠŹ¦ułĒā‡ĒEڦÉ:C+ĪĄAČŃ 8Ō­oÖĒFLŲŅ« ŚÆÜU‹Eą‰¦Ść нę<įxé^‡mģ\I)īõ‘ ī!ģÄå?č}0ćŌN¶Üh«ÕMźŠ~¾BĻ:ŲRŃÖĄÖĄg@Ž%CJęĻĮ3ķfZ£ńœ!«óŌR÷ōaBöėbZö)¢7õüKVó“mdńī‹jšauńŖ­óć“Lņ‘ļ5Dkźźe@ęԐ”ä†męóŃĻėēØVņĄ†u÷H£³ūļń’CÆj¼X ˆG‡µ­ŲżPū抔ś!;‘śģĀ}ūĒź÷ż5ŚŹųōąŁź>­jžģ†”ś‚ł÷:æėō¤õ±zĻųoĢFüA¦~ž9§*žčŏūÜ÷A#Ēń©ÄĆīŲżŖķBüÓėb$$ēZtLąx%Ś,w Ö ń1Ōė ”ŌžJČÕ ć×>™uŁy"ūݟmäæ‚@ģ‹ MóņÖ~ųt…ü!‰’2ė’‚¶Äūaų²ö„,čš¾žķ’oóģ1š™fō(ų™”ś‡nłć /öYR7ņ'śöģ6ŌčėōéwAķTuņŪšźö±žzłĒ; śģ#LųȚ§ōžDńŃ+8ļżī8sxī³Ć£ī^išS–¶óݱ`÷»nBūł©ž³Żž¶²·żū;ĖūIŲśEÅ,ü斀’ųv>܄Tµ 5OL%a h§;4œ–”ˆlųz ꉒ‹ģwiR§ųÖ­ 1µų_V}”ˆt^¼ó†ƒ*LŌełń Œļ?jćų·S*ń‰ļģ’ÓėæYžė}Oģąx+ļŹ>zó³Ģ€ł7o”©Ŗ- m½Ś;w°9-y9 ü‰#«ÉŠ%čźh(»v*žįé*©c(ż #4öe K* ¾l¢!Ćh0$x†&S`Ć&óĶ‹$¹żŖ ³H“™»5Æā·ƒĢš(ļf¢Ļ«¼· Øļ1 ģ(Ó B‡‚ éĶŃ P(žƒ%¼FębnSŗiSUŖ¼Åń ?š› 2‡U ĘJv9 Źjw üųĻl±@(*EŌ‰ż¹ūXźWłĶ= õRÆŲļćŠnģ cĮėr1'ī”’ƒņ¦u}ö7OŗųJĮ’śi¬džÕ®Ū«ßķ&ó-wX¬ Į/ōAfį‡M¤Ļa†Y^¶™ W9™"Ō „"ÜKā„kę@i f@˜źHtj²/›fÕ Īóąń*o™“§¼ ʹEīŹš $zs ²†Œ tņ6 ßB P«2±ē1®É6” qßęØłĶž‹ułõ¾õ“v ó*łļfωķ§Wģ1§ ģū|æė~Ą¶ģi“ļėµ§ó)ņ÷K±tūOŠż‹w5žKˆ‡’:ŪTĢ?_ž‚™ĘśOƒÆ÷‰Ąõ¬‡Óńų8˜ģ•hpę7a^įÄ SŽMé Żōö5޳prᵌüåĮW™źWfŠķ<-JšqNń=N-ń:¦~ŃģJķ‹ė4ęZģŻīmÅźī¤9“ī›2ļõi^šHgń{¤\ń·ž«šēkžļ±ÜPļ³ņåļĢ‘sń‚zņ‰ņæņ±aŃņēØņń’ń”hšļĶĆīge“ķ'ŽķPL¦Ų; ¢} ėŖ®"&„¾Ćū‡×cī|™ūćBXQ›0Y+½Ÿ{JfŻć\éŲÜčēxAŗų³o¼Oķx’]p ‚æ• œŠ,Å –Õ’ ØæB Üŝ{ ”BJ ‘ō Tß(Ł5#ŸēĄ%K¤,&å$&Ģ…I&0&Ż…\%Ńšõ$†¼&Łz“(q„,žŠF0Ż4‡Mœ5·|m4šŠ­0’•x,Z‰“)Äp(—,'Ā8%ķÆż#_I$×ĘØ%Ū &^Ė$”ųŌ">Y Źcе”Ŗ_äTž±µ@ē÷ūåéĆųhV÷;Qs÷PŅmł²łšü' ,i Œ®żō,Ī+šÉš=§’n{ėł²`“÷šjųČvŲł*¶üś’“]üū,rž/¶#’ī„ ²Cjk.‚p”aEō¢Sūč«€«ŗ|Č_ q’1ō‡oM^Ą( › e}”ļm„š] ‘qõņźÓ’¦łż,Öšś«YłCO€ł·ś0üÆskĖ^33 ų ŸĶP€ŠPŚų  .ļłr¬Eæ*"ęe$ =Į%ö={'2Ųo)q×++=rL+‰Tl) &9½a#ēHą4ųŖƒ ××ĒˆBų vĻGZōżŠ< €" –R t$ Lj¬ ę†ó ‘>ÉWRŁˆmć…. h—šPņ’F„łIząōĢ)¶ņ»aśóÕxÉųLöHžX-sĆ`vG'} "ŌŠ Ŗ š‡| ÷–Ś ¾R± ÉRÜ /4ŗ×ć'¤ārću'r`=«½ƒē€ž’CTčœ •t ~Ž& øź™8Āk’ø2Nś¾Qō|īńķ¢Yēėéµį ńÜĶ$ŚVĀqŁ*ÓÜŲć8˜×¢ń>ÖŃXÕ4Ž Õ¼Ė(Ö\/Ł`&)ŻŽoį'­ƒå½8réĶlSģæ\ ķĘ ‰ėĢ–×ē ›āŠūlÜ”½Õ昊—ļĪ-öŠKU<ÕWŌčÜĪ#£åD®°ķÕö—ó›\Ėö±,UųõBoł%,ś‚”1śŻ.‘ł2rČųWl[ųhI)ł6ŃÕśZB3ūsƒ÷ųvŌōCQüļJŽWģXøNėĀ!cķ›…ńó$[õcß[ųŽ2`ū(šzžµĒ‰jm;”ńžĀ?žżV`fži}¬’«Õ‚’Q4é5] ÷c %cįś[#¢Ą'üĢ Ć÷ÕŁrõF^µõWŚ?÷McKųSń`÷ÓµĶó3ćėķ°)ę^Ś*ą¤FÜ8  Ł`/PÖ¬V±Ń͇XĶÖåŹ øŹŪīÆĢˆ™Ļ ×ņŃėĮÓ·¹ÕÄĮ@Ų¬6WŪŌy8ŽÜ„Ņß°v”ą{śŹąŹŖĒߧٚܩ]\×EŽŃOöĖĢĻ ČÜŻ†Č_xšĖ5?’ĻćC%ÓnĄüŌ§ äŌm’ÕÓóōŃ*"gŠą`ßŃcÓD×\~±Ž©čåeČ[ė};īmŪYī?QĢėŁ‘žēĶmÜä/ćZøÜįžyąĆ>ßß®‡ńߣƒ>ąĢćą =^ąWżēŽL•ÜDIPŲéb#Õł¦×Ó"FįԊ_vר+QŚh FŻSׇįÆŻęĶzŲė£DxuķŻ)ćévČTå!T¾ą·§ÜN³]ŚķŚ{SFŪ™ūŠŻˆe>į˜ĀTäIēōńßčÕ«æčęļåxįeį ĘÜ+­Ł‡u]،ą&Ųł=š×a¦RŲņ,/Śc>¦Ż5‰ć÷ąėūXõ3ö½żĪ_}j„ Q¶Ņ Aźēݱ͵‡u™”Ģ*8N³~ ż)~ˆF4Y3Hxü8įWu©^"Ō»f/™“›^фż®~„ūŒ˜"śÉÅ«łķß«łvßõų^{÷5©öŸ mö éDłxŅpżNcbźQ!ĀūĶāź «ń÷į/hę£ˆ‘ŲJFŖĘU*j€ÖŒ Į ś =ē{!E7yūYĆx°Q/żµNĪ÷é¬Iņōa?“ģZyZķŃļ=ļ†^Ūš˜Ö“ņ @ØõqŒł\Äęü2žN’Yā’›)sižs &"bS¬g˜hY(Ģ4õāŽ"ńžc³{Ķ6Č?’śŽĖĖČ<rß0 $B¹L¬¬€ ~sa „č…Ļ„'! ¬©oĮc4D’ģWi(dæH?<„ųN»śį ˜¶ Xįt…Ļūńrø³adž•Wż÷׿üz!…ü1ÄażóQõž ™yĆ|ŹķĄéS h…!T41 ŃČŹ{õE5›ūloČ2;Į–„q }9Ąēļ`{ņxI¹=jē2ź’²I’U? bćÉ5±A­÷™ d^Zuō•Ā„5HwrGæ×Ź )žõ Åh ™ņß+n¼8O§W1¼ž×¼æżyžü<eüŒõEüģ‡˜üŒŲŖżØŸĢ’žƒäõäf ę§›ēš6Ęe2|źb åĢ 1²į ³Ć š{£Ģc6Ótrl ĆE¶#Bö(Ÿ­A,?“Ų.Åm.ŲņA,‘! ) Y¬%€#F¶#ås’%?%X'WŅ/'¶]+%ČaÕ"ƒ‘Ć ‰Ó›P@“c• ±¾&N8ī EN’’1>–!cŽ„’Ć!Ƶ é‚ ĢPūśĶ¤ŽœĶ›‘"nĄ(F×0ņq:8¼HĪ<œĒx=%z©:³6»˜3‡ 3ķ4ūF°4$34ē0Gä,-ļĶn*='(Ģ9g&? {%y&d$ °t"ĪąP©·Ž·™Éµgȵ”ź"(aˆØXĘŗµ°H{nQĶÓü.“§ĒAtB;“vJ“Ķ/¬¦ )ó¾ŪF{HĮÉĮCC7;’ŽVłłøŠųuް» «dż¤·ó”¼nńlmŖŁĖķŪ2­ćåė×MYĶ ĪĘ BJ ÖlT ēp ņś_'ėėՅ¤Ń|« /"Įō'-<„+[”,©ŸX,:°+ʦ­*'0õ(~dč&f¶%uVķ%{o£'k$ø*?8Ŗ.Óķ2 ©Į3¦^M3š1”0ӓi/¢Ū.ŗ¼u-gĹ+e*†/#*VX…)üī‚'ƒÆm$«ĆŌ -$īČä2õ†_ ‚Ų¾ēŲū,STóĮyģé¶ē(7å ­LåėÕ č5©Ķģž˜^ņK­²÷Õäœü!½. ĆÖ}©żXś÷8P„ņj‡ĶīyĻėŪ-žčT¤å,ó”ćėĆ÷āpyč愚ę’q‰źóŒGīä‡*šš¹šX&§šräišmŅxš<ū0ńˆ}rņģęó*¹*õŗĪ€õ›ß1õG1ūōŚ Ōō3љōȍēō#æÅõz=BöÕP¾õ¤‚õóp'ń p¤īFŒ:ķĒÆķ·)“ļÅó'ņ†|ZōՀŌõ“SØö4Z§÷#vPł93Ėś­e¤ū¢vü‹VˆüŸ*żƒ˜DžĒư’ełšæ6tļēžfZ=żŅ4:ūž&tųšnśót­žķąs®ęĪ1…ą³ÉåŪ¶©Ł[żūÖ½ŒÕ!ņ8֐ Ł%WTß`'ßåŹŒģQ&(ńx2ō«ßŠō­—ņڬœīŽŗüčż"ćęp”ŽöÜķ=Ž(Čā$`{ęzJĢźń†*ļļ_ĘóJ÷v¬ł×‹łĄ2ųQ1ö•ōWMōr¦Żõŗģ„ųF -ūoļü_2Pžćk§’X0«x’ž±žŗśv Ęõo›š8ŌÅė­¤Uēń%ćf„ŽJ²Ł` &ŌCV…Ļ2́®½ŹŻŪĖˆQĪ€=²Š…{ÆŅć}qŌ¶`Ö×Õ×#žwŚĖ/ŻŻ Õ~įµ_üä5Yvčč%ÆėŠŃĖķyõLķ7šī郾iå0A¤ß•"µŁgµLÕ[ OÓ5;HŌ²ńŲ°–ŻöWāć›Féeˆŗķg€š:Ī­ņµsō6unõM‹_õY҉ōįó}æó]ÅóŌ\^ō*Yó“|š0Ć‹ģŒ ąč‰ēŖ远§ėxī;š {ō)rų¦“Aü+’.˜ ńĘž;?»ü(5ū: ~śžżwśW1Zūµ,9ż{¦V’ż?X-R’ūb üž¤ił”ĢŠö?ź#õÜøöožźų !ü9¾Fž±až)’OüĘūŽųøōķåĶńZī"šA Üķ ó¾éĢ?äĖ§ļŽNŅŚNdŲ0”z×·ģkg[ķ49š–Yõ·~ üH›‡”¤ ·—9ŠńrÅpŒ }Ž#ßéÆ&ś³›(”P“(‹Åi&v¾"#ż“%!#Ż’ „=|"`Šó$˜é '‚'?Ćź%€É"å$zNÜtH0“ć=%t)ł·%G¶y>ē’ĖŹ×¹ēėĘ ĢżbķY ·cw>8«ņeÖ 0Y½ |f= ‹—$ Ē—q ,& xO S£*t78ń4†¼Žcfž;ūlj™ö=8Žńг¹ķŗģĖķh¾Ėļ¼ĒņÜÉpõš®œqšlĘåī!Ó„ģć×@ėh_ė.;Øė‹qżėž2ģqóžģ«fpī{ Üļ‹ÓšĒkń{sŃń¬Nņūkó&ÕŚōŲĮŚõ¼’Qö 2Qö&ˆµõ™ŽFōӋaņh&iš¢·ŻīõčxīöS‹ļ>.Üńh¤tōϦ‰öŃ,²ų&ŽÕū@’±’lćbæ®Ļ‡vą?ļyI½nx’bj žØĀž:aœžĮĢü$°Ōųä ōÓŹŃļD±“ģó>™źŖ*XéP*ēčęĄ@éZ/ė¬õŽī"Isō#@ZśäąY’¤åžo)óސtøYŁ£ć4 ®€WŪ Ś˜=³9G#$¦3(’#(J?ō$)Ņ· #żLa¼W–›Ū*󇂊ņj5› ŠĀ ~f 'Ōä؇öü+¤§)“ŗ£m6:üČ”æö2tńĖż½ģ Öé›Öé·Ģ/ģc•rļō"åņ7œoöÕüś2§śż‘³¢W!Ākgņd» Æ©V õŃÕ"Ļ_šĶm«“>ExµŃؽ‰‚’jj¹”Xƀ©‚ęQŃ@4dWf„aSåūŇ3Å­٬ģ 1<ȅ)Ó qµ EŁ‘7P2 ó_° 2£ méō¹f‚E"›£$¢Œ%ÅE±%I÷|%šŅ$"”Ė#6+#HāØ#ł"h%HL(olä+—v3/ź§ü0'µ0[ĶR.·Õo+½).X'_üŒ%¹f¶#5ƀ"ĘĖ["““Ž"z¶ę":Ä"s¢Ł œ$É„C5‹ēH蚅Tå7 šé īm’VĘ„ū7ŽśŌe!ś“óūvĖ’Ŗ¬WįĀ[_h& /|T%„ć'$y’‹Zśr‹÷[\ ÷ēę÷uKłšÕ>ūkĆż.¾Ō˜3¢:æ( ¤ōČ g“X=Ś„bå-²­cģ,¾ŖEē„yó–Ģwé©öķZKeBEܱ okE-sX^}"ej+‰Ūj°‰ŅžßĢ=żūĻiü“įü8®īžjüījÖKśč™#® c(嘓‚Aŗ/¬?Õ\.w°°I’!oZE$ģƒ‰&Ā’D(œĀ“(T²'»Ł¼%¾˜#qįŃaC†iėœÜ.ŻU ćP„’W©Ä“źP›¼éō“ Ēōb “Gpļ5ѲÓ*¤ē§O/ »ęĆRrR4ń¾śÕ6MõØ ņvĮłń„¼¹ōĪ?²ųĶlžü(6Oo”ū«ętņnō Ę< Ń#› \`• [ļČ ™+ń `~³é6Yčę„'8˜ˆ bų&Ū;Š’_ėUõxr„ƒÜi "-ī{޹ k™ż_Ģ#ų!&_ņæ#æģƀ»ēž„ćuįš“ß(#Ž7k?ÜŻŚ#)Ų’¦”ÖŲ×uÖvEė×5ѹŚdŽI®˜ā/īłęÅ˟źä)£ģe҈ģLŽ+źbHŪåX;ą–ĄŁŚ`yŌ€XŃŅ-ŗŃļ…ÕōŁńŚ&#!ā)’>é5 ļx_óÅĘõ즱÷‹óåųīŹ\łR1@ł¬\żų×'$łŠr*śa€ƒū¢ĒūĆ×&śæ«ąö ģņxq»ļS]…īóó„OņU"õ飩÷Ż" śĄüażAk»ü«4§ūn’ ūPsū£¤ÄüZįžĮ·h©æ@>Ū¶®ņŠˆĆ8 +ż3½±łžYļ÷h ų¢#gł—JpśøĖżłQ°b÷‚Ä„ņšŸģƒČēęTŲYāŌŠP޽ŚŁuÉŌ/+Š’včĢ+[±Ė.qĢ×t]Ī1¤ŠM^)Óģ%Ö|“Ł­l”ŻĻįĘHNćŹ|ä6¼äā2ćāĖSßžĀ ŚtõÓät„ĪabĖ®ĘĖĖ͎ ŠSŲŅz†dŌbhŌH)GÓ=kŃ^š6ŠgwŃ,ū°Õ““ÕŪĖd[āūźēb7Ÿė7ķĮ{X쟦yź’«ččBYēq6,ę”ėåE#v䷊äł;Śćˆėbć‘üJā!²$ą€įöÜ?»aŁ7sÖć‘&ÕĮ9·ÕN!™×’wŚaŅųÜęŗŁąŚŅaå8"{éģīÉėꅔėæ-ténO©æ} ĀmWxK=P5ū¼2µW|’‰āzŻ’Ķ³’ ‰7ù*B4åFi n[˜ {3I‘ĀØ>¹ưąŸ e&Beņ Ķ ØĮ‘ œ-l†Xüį«‡Õ Ä ,’÷9 žŸƒUż¤{-ż#ĄµżŌk!’ML"Zs»‘"F X‰äøZcæĪdĢä„t(v‚Š ŽiD $J.㟩ĪNԔɕˆk‘ ĘÉš$ōĢł(4žŒ+>S ,·bŃ*hź~(‰@Ņ%öš#^ļ}#L&$'1¼$)čI$$t×"f/!>²™$ėī¶ķŌźO6.Ū.vÄ]ˆ`Ėūf’ƈ‡ī–r?ØÉsUsŻM;m46/š&“ä‚ČOŠd#OĒ“* °Ė1#˜Õ6˜]Į8łŃ7 ė}5ŹD{3żÅ2~ü2…cą2Å|Ÿ1ś–/%{-§nt+ždĮ))(źn…'÷hB&wY8$įą!&xœ˜Ł¹K č²d ±¢ņ«KŹ›"šÓ4AqGĶ0ŒČł›Ų ŪžßN‰V¶„­Sß9ׇB Æ%A ČZ>Q%ģšŽ,…ÉbM~§ƒ:”žžŌį^ŚÉ©÷üØō epĖéžāŲš‰› ­ 1 ĆæĮ šń Ø2; ęfĘ H"žę]ż@ińg¤0!„Z­&5h*{r$,®­w,‹Gü+‰æŲ*\Ü)vE*'2“Ē% a%B%&VČ (ö±œ*nŽģ,„'.ńå .ķˆ+- r,ōJ!,…oÅ+Äł*ÉR’),ŃN)ŠŪķ( „7(Ūž&šģE$ū°4!{>śVödłµÅņFT ųjo{WÕł¢÷Ió«AīŽ ėŲ`ź//HėĻ5<ī5Öņ?`+ö°śQ™½üėEżöƒ:ūZ–÷ƒ ō•\ńaEļüĪģai•ź*ČčÄĢē;īłēp…é±ģ¹vīš,õļ}—˜šģ1·šFõ„š³XĶšˆTń;a-ņuó5žó’Ćó®’ój ņlxSņø@UņÜøõņĶōYõÖqoõ¾ĢŃō¼ŖtóŲ ņ--qńҲņ‹‚–ó¢ŗõŠ-÷EH4ų?°³ųŒQ.ł”īįłVb‚ś4tķśPŖFū“¤øūüƒnü¶|vżäāž2’į5¾žI’”ż–uüȝ5ś?Už÷6¬ĖóżČī1ēYéŁLWä-\Mąj07Ż9—Ś0ØŲMØSŲTŚVsꯊōŽāNŽ*čĪéģS}3š vńB#šš2‡øķĪĢ>éUCä~ĆōßM×|Ż"¹uŻNLWߎÄ&āBæŽåd éwÆ;īAćņ'žļõ‡!į÷)r~ųUĆ/ųņ§÷$M²÷CėøųŪ zś™śOüE’żQF„’n¾ó2©Z×ZJˆ$żSŌ¦ų}£óRÆī xź„¼åŠ’XįA?±ÜHŲālÓÓń9“ŠŲ²ŌĪzÖĪL]ąĻ8Ø'Ń@ķcŅh³…Ó”q®Ōāį4օ?|Ų÷ }ŪyņŽÖ|¤ā&ŅtęjĪūéT³’ģ>’¾ķ~Š9ķQūźEˆ2ēĶrGā9ŻOé?ŁģR2×Iø†×¹ņŚž“7Žnć¢0xēŹnėvŹÅķ$‚šĄĄņåó•ó!\ō¦ł‡ō3Q}ō{‰Įō÷Sjõ¶s¬õ_L©ōå±3ņĆNÓīšwėĻ;ĖéwØź'}SģÆś…ļ£ŽŽņŃg2öę~Lł·—ū plü¦ĖąūaØČś™Žķłfž™łųXćłoćśUŒyü žżO|„že€żmĘ4ū?bų”?źõ2Šō_°ÆõtV(ųV*ūnńtż8Ūž#”ĪüI©ūł ŅÅö ā7ōt,-ņøÉ²ļF4ģKגēk ćī]=ßq•Ü õŚÜųŁ §Ł“¬{Ś_²óÜ+€5įÖfČę“ZĖģägŽņ¾ūƒ÷Ÿ įś„ĘäūĘŃUś»?ĆödŲ~ņœ9JļCßhīńCźļ÷źóčŻ^öΤŗų<ĻJłĪų4‚GõlķńŅ!›ļ]IpļjüIńŁ>(ō õö8*Ūų%młÜ»¢ųÖä÷ŸŒ‹õų@»ō”feō^é9ōH RōĆÄōēx|õ"ujög‹K÷j{ø÷޹÷®Øś›7žėƒ°21Ę<» (>ó£ »]+ķßWC* ģ«£ MsÄgspēŌó oNŠś ]ōņŖ\G吓ˆĻ~O6gūŲø“ Ž7BLeūQ«ģõš%ųń¹!3ļŠ@Ÿķļģvķ‘Öõīäåhņ«“é÷c]Ńž’q灱 M¢t¬ė6Š iRĮ –ž $ä¼P&c“Ø&%æl×"¦$L!ƒh+!¬†"Ā’Ė$XKŻ&W*µ'ŹŪ&öӒ$蔏!źż†Ō¬»b =Ōkįރeę§ł/g9\Œä‰ūõh˜¬½ĶTõēW¾¤XUŽĖ÷²ŗģ¤ „[I „é ß6rŃXdlź±dß(¶āż•Ž®Ø*J‰żšł0d8ōøƒšm†£ķŅ?ķž¼hīßSNšžI”ņL•õC„ łN¢uü€„’tdvAy5Ś ®i ¢Ź’×<ĮFų§č€7²CX!“Ž"o."ꄼVß÷Ų@ēĪÆ( 2ÜÅP¬éXY÷<ÉõźŖĻ \ĢÆ D IĆ ¹ÅŚ×j+ØĀłzŖ ąąÜ ŗŒ 陾 „A ĀMD n|ÕV‡ķqBżĮqū€ˆłČ€ū÷ø¼ö%‘™õ3­ōīÄ[ōaĶäōN~ö¤Õ‹÷?"ĆųMwłØ FśŹL!ū³¹±ū®dœūĀ©9ū%ÄÄśŖłł@9"ųÜÖąōį—š|tģéˆ/čū]€å÷²‹äA^åćlƒē&8źĀÓģįzåī.fščžōļɎµīŁļßģņeėāFšźj:EźāČźUXźäøŃźŻ®ģ)¤«ķ‘ 1ļž“£š2į ņIŖ•ó‡Žiõ¾ <÷Zžų&3oł¤r™łæbśųžĻ„÷pŒrõd##ó‚c!ń£šˆLšZąŖńŃ,ó”‰õ#Ćß÷Ó}ŻśĮ.ž¢ęł”BvĻčŖu©HīD&’/_Öžå.’™A’ÅIśżŠ[ ūFI÷1®ķņ°ģļ[gģė®vé^|ņēp˜£ē€5éO—™ģ8…øń _÷ąüŲj€;A4ŌCs.”§‹pHŚ3 —Wśßj ū«yČøvX!Y2V#g„Ü"{‡!\FC,Ø­@ ޲ó;»ē刔ŽĆ¢”XJ ģv  £v Ż_b ż(Ł0‡XŠ--Ōż+¼åų0ōē±ēļ\|ķÅZOķŽĖęī¾ań½V(ō*÷½÷ł \÷üZeŹ’ŽJ{D±Ÿ•#) ąĖQ ¤yצ•ėœ'ŽD¾Ēžc“_ć“«ā­w”R×Üœ>b¤ÅņėśĻ•[ŪosčoN)·ČU #ĘdāõŽc¤?Č*GŅ×īo\¤ ^nū D²xCYĒÜ! FĮE!‡ćņ#Y1%ņ€%M’(%śzC$d`#bĀ3"§&%"Ą(#F =%R(8¶*"7f,[jŒ,A¶R+0Ŗ)L÷»'DV&œuO$Ś9“"©ŽO!—ßĮ zń› “F €½ŽŖ^tr)§›{ĖĒsć•JŠl¼ ¶4WBf­3øMžoŪ~ü­qgüvŸöż “¾å3ügGļž ģ ’š¼ÄŒ؊dń¢ū,;ų–ą©öĀNŽö{'“÷ĢhŠłUŠGüqŸ±’‘å²MC?ü# hE6HWb¹“óŗĖ_„=Q“Ķņf£Ż,OŸøÅ_ӎ#B R 1 Ķm ©ņ>&Z(1’”L^®"ŅśÄ’’X»žŽGtžŻ‘H’ęw7ŃÅLXpPĄŽKÖ –äE ˆ—ė-iÖ`mµ%t8rd³øüü` -¼ė"u=į$§;Ą%‹r%”?1$tR("eāIz…XyÅUĶ·ń/“( VLƳk^t“ńyČƲé Ååé 2Ć2·ÓĒäČēlī;¶#·‡w³R5 ‹éĪB]żd`4÷X²óĮŻńždņ¾³ōšB»÷eė8ūŌŁ ’X„Õåż ^<Ģ¢ ž  ĶX C Å ©%ļ{Tß7¾čŗäņʶŁś+å«Łˆ(ś!éՍ1ÖŌ2u’Am9 Ū¾ü•sĖłˆ€ūū0ö(ńøšøģ¼ō5étSŅꝚ-åłu…ćkwwį‡žŽ*2\ܽšŚL}¶Ų…²Ų$óŚ’j„Ü1Pżßö äķmÕēżŸź  ĮėcŪźJŚģē6ßJćĢ”ŠŻ6–ĶŲ s՝׍ŌѼ\ÖstŚ…ŽūߞöŲåŌėfQļüژņOb õšzéöžįõ÷˜BpųMøųpģLłÜ×kśłEŸūó`ūū¦tėś €ųWoõĖøĪņ颒ń6æ ņK“ó””Āõ4HÉ÷£ęšł.Öāś×1ūŒąuśßNKłÆ‘†ųœč„ų Åł¶=Śūb_ÆžVž«Lߟ^w‚l@ Iż)/ÜśwEyłŠ+œłPņ²śį+½ūVŽ“ūՌółDÅgöD ²ńi`Šģ`[=čŒ©ćĪi¢ŽĖ9Łe$ŌSl3ŠWµģĶÓõ`͵ #Ī oČĻ_¾6ŅŹ{ÕŪō‡ŁjłŻX✘VåšĮVēøĢĶēĶ‘]ę ŪäāĮ½ŻHŠ×ŗ_xҹŌūΌ±ÜĶIéÅĪźœŲŠIÖłŅZFŌ8ž\ŌŹæTÓę°Ń¢ŠŪvŃ”ĪœŌä҆ŁĢ$ßæ’_䈄`聨²źØfėŌæėi“—ź§øź1,„éaŪ÷čÖ²č‹0čÆK“ē¹VÕęX6å«ś˜ā#Ōß¾ŠaŪ|īJŲīŁ”ÖᣜÖēBį×׆÷كXÄÜNąćĘ4䬣ē(§éB©ÕéŲՄčņ®Zę?x’ćÓĀāāŌį¦įRu©įŲ§½ā"°Ńć¢R—äoÄģäK£äÜT1ćßĻąĄR鯒”AŪŗżyŁ?Ŗ«ŲQļvŲuG’Ų Łlå&Śy³<Üøü¹ß „äH:}źŃ鬚Hźö)żXJ(ŗ iÕł 6@{‘Óļ4¢—’/# …u#äU¼·¹.uęę}Ó ńļÆ ¹=āŃÕĄÄµ‚Š *‰ž" Cż+ßyü‘hŠūŁG9ū&£ ūW”Źū! żĆĪĄ’¶œy·ŌĢ[\å~”a Œ,ō čn² 7ż! 8zĘ ¶Ņ– OY= x{ŽL^•ō”Ž{”=Ķč<ŪļŸ@gŪ{’•ȳūŒ «÷Ą‡;ō‘šōń¹fךxkš’Ļmšļ£ńóH¤ņvŒģō8՜÷F—ś£ēļżH`ĄĮˆžł„ ²KĘ,óFõj³TŠ9ręé æœtĒ£@W 8R蓳ō“ šū6õ„%FU1Ń:[B ˜pn ° * Ś ‹ŃnOĮœLUųiodć Ćd“ŖZ Żļ»ŸØ”tļĘÉO;Ź·=’Óž”vĪž†Ļ)’Āŗó’Ū) ĀO\–ČOvx2]æZ °Ņ† ‰/Š HŽ ²ŚžšŲ±½šńį9ßGˆ Ä’Ņ’tż„’žī?’½įņž¬6įža K’(ģzŗÓš…š’ˆü Ż‹ B ¾ń;Mœ“†]üß&–Ū$Į¬¦õŻ  HgéZ|y„{n¬Ę“ s’s‰ž¤05žkQ§žęČh¤³XެQ“cĘž‰…e’ź ‹µiU‡źč”n °u ó(@˜S>«łRyl¬žč-!Ņ:%N(Āq*)‹ĢĖ(„ƒX'ė|%Ģķ$‚łc#³üS#µ %#ĘóP":ļ al-Ė€J˜‹@Õ$ج1 RyuVæåÜŻ¦Ć/ųw=>ĻŁ £Ī®“ß#`ü„噾†ūN^Ž$”ī +IŸ=0³i)3™Ó3l®"3M×@2éŽ1åŠ1ŅÜk1}žQ0ńݼ.©T-Ā”•+ķJl*(֚)”NŽ(Š Å'`Ķß%čĖć"-&Ɓ‘„ĢóB†øf± {÷}@v7–{ H!Ū :( Kھ ‹§ļ ߍ œ• µ€? ŠėUY2V„›˜ ŁĖ æŚ B³ ü:ƒųDm‘ĘZ“ē—@ø Bćżcœķ»sMā!u‘t<„,6^ ŃSU Ż fø½ { Żt  Čą› ˜ÉW ńi<JY{¤™ąĖߥĪ1%ā°)’Rd+U$R,؃0,?‹1+>u)ę¼'©™?&×cw%ŅՔ%T‹&}Ņ÷'š:)ģŪĖ)rś) ó(Wļ}(¦SS(ˊ1(Õ ę' œŒ'ŻV'źŃ)'†hž&ξh%rU‰#`}ē ĶŗF‘Ė”šgóō2 “•ÅJ$’ķm7łk iō¹ńæoﻋŽļ±{ń ‹…óxnLöäśčų\²śR4³śLĀła­sö2Wõóg’ņńįš?ILļd† ī¢śģśNģ[1Tģ:¢,ķŅ<–ī•@óļęĻšqü$ńCō#ń¦× ń š)ń¶Üńn¶%ņܱ®ņ FŲņiyņ>½Āń zń0jš6•HšvSĻštdįńŠ!óŅŪūó¾īMō•ī&ōæĮõó3W7ōE‚8õ$CÖöŁžų$öśY|ūŽbūj‚ū«łˆūNEoūL@ū{Ō&ūµKū6ĄĻūį¦üKƒżMmźżŁŠ—żłfœü­›%ū­·<łzr°öļDófŃļčļŗźĄ²ęaXćœD’ąĻé"ŽbC<Ü?÷lŪN’ܘPŽł§©įgŻ™åÕ^oé(Öjģmė’ķ³Ęāķ)쓺čõåĒäĒįu3©Ž2źŅŻļ[ްµŃßVāżž1å\ié«,0ķ" ń42 ōŠą\öŽ|Ń÷VĻÖųrŽł”>(ū@?ü žQo’¤ äś§3J ¼@ųŃÆ0I’i÷nūÓĆĖöŻÜēń<ķŲĮ†č®䇻“ß’6RŪ0mŠ×Ć=”Ōm„ÉŅV«1Ņq÷ZŅDļĖŅīUIӜĆÓwo`ŌjÕs%׊.™Ł–ɧÜRU.ą*łć…ZŸē]’ź’šWģ y™ģNņ:ėõWčēß^äū›(ą€õÆÜ‚oŗŚj²Ś‹ÜĻ*ßK°JćźŖÅę@h§é›’üė',īEÜļN9lńĆ ņÅé‚óćóMōyÖ<õN±/ö堒ömŒÕõĒ)Ūóݳń[}MīŽEŠģF$YģZE£ķrźŃļiłZņfĶõōóÆQ÷m}łų<‘“łņtCłĪ՘ų»ų’wųA¦ÆųüŽł¤>hū퓵üvųżPg/ü@”-ś^Ø÷ põ2bōĖRłōKo’ö³3®ł²4ü³ś#ż…r­üŽś!é{ųm&2öoBō7qń@*ī–óSźWjuę ÜćˆrtąžhŽŚ6ݦĀ{Ü^0¶Ü‚mFŽ"µQįU§–åĻź•q“ļ!jhōĢ9č÷™‚łe_īų&•ƒöµ­C󼳇šÕž\ļ‡Ōš°ŽAņ`8õćzR÷`Ķgų ę÷÷Y .öņ9Ńóż¦ņčßńŃ,ó?ę_õĄ’£÷ņp<łŪ½ł} %łČĮī÷·Īöc^+öŪö™™&ö¢1ŠöŠ÷Ʊ‘÷’:ķ÷Šķ÷Nū^÷g¬;öŖxŅōZĮóUøµóĢa õY¦÷Ä8ūqˆ ’ģ#rŻ ¶p8 7č‹Ń\^5bČõ  @! u~”Ā,ߣe] ĢҰ ŖÖŻ„4CzµHq bWlR”Dm X¹„Üå•’ŹlXś¶Ļö'£ņpDš—ļ •sļ¦Å‹ń+Fqõł1·ś7ū©Tõ¹‡s£ i¼LĄĖ«p"ŗw ]Ģ8#)<$˜›#2Ā8"ņā!œ!;Œ("$t$-¢&³ń?'©‚'¶±%xBr# ^Ž ū\\&6#åsŹāY|l9žGA Ł7ĶMR7MYȆżĆVvr;ōńīOn¼uf4_ śØ ōў¤ąō˜¬]›Ž§äg"'7ę8Š…¹ ܚ/>:’¶N‹ū¹.÷6ó ¼šŅ¢īQ{īž.Aļ®‘Šš*-.ó£Ģ.ö›óqł·ŗüE Ž{ÆyÖaÓ ŠUx› hŗ¾(ž«Df!Ģ7["²40"‰µA d‘”­źk)“‘āE œ»’ÕüĘSaŚT: "łm¾,V”됭:ģ^YĒ ĪUČ's†üß—`C 6ā ļļ ¢r‰ ½ę+÷XkĪńÕ0Uµ’ƒ5ž,‹Øü¼žū_vÄś«‚ółŚ;łnŃų)ÖųrB1łś“¢łkŗāłæ ēł2 čłĘ}ś‹cśf0źł]ŽłApīłć=Źł…;äų4¤äö®xīó”0wš9&ķ?Ķfź×©ēčUšĀčJ%Ćéįaoė|§Hķ{éŪīĮļ›O“ī\;ķ5~Źėė"§źśŠÄéW”é^ćĆč;9é~1’éČPaė=µ ķ ėżšŸ—RóóÜõŠMų5‡Pśűūž$Kü(ėüū|Ęś5ŁŅųĆöxöåc8ōęŸņ@’ņµĖiņXdzóī|õŃį)÷Uƒßł–’Čü½8’É+”ŽˆäLEM$>’VƒsžhSž2¹ž‡o÷žĄaDž,6NüĢēRłĄÅõ3<ņ°#eīɀ*ėŽõ²čGīzēĘičpÅ­ź<;ūīŒ3"ōģn6łl„żķÓŹ®Ö¦†Åģ(‰Ājķ­Ó=ƒgŖ gjuØĶ^źj-cń5†^”ęę?ÓĀ„˜F½“«ūéūÖšŲŁøļQĄĘV['?« )}€ ŠŻm ļŹń æ§éōXÕĪ3Uūė„öćrĖņ«Ŗ„š„ć#š=UMńŅ[ó¬iÄõ\=ų¢Ū«ś€żŽ<’u“łō¦ŚWcUņˆ V( 0jĶ ‡ćĪ ˆtā Ś\ŚéDĖ!ļU$D’C-½\øc­NŪš!<„ė.bĒ™]…L[Lˆ”œ© åaŪü>{łSéńd>?Ėź(̌ .A ļ$P/4Ia{ \bZ#öņź$łŗq%¾ %%ą7$ĖŚś"Ćńę!tk!×Ė!>#Ӂū$Åøī&p|C(({”(„~÷']¦Ż&Īķ¢%Q„R$žŽß"†Øi!°)8 Ą3mW†Śa4|OV€”'FŻlcŗōG‰¶ĆcÄF“P )Éż÷·Ł<—£ĆžRZuž²¤¬’āć* ƒź nݾĪ^f¦ż}ŅĢłCP÷M.<ö Ö}ö¢˜÷÷UU‚śSóżõxŻoiLr € ź%Æ/ę¾{ ņ·’Mns˜(GxüJ)*_e”"±źSM퀻lž 8š’nvŌ‡Cł°‚³ „K¾0¶ā’“’×’˜Ų˜˜ŹŸ‚@ˆŗėFŪ _“ ±„# 0HĢŤ1XlųØ|zņüv*¾xŅŪą!f‹T"•¦"Ąx "”_” Ž5ŗ;ĶoĶq€„éč$ hĻ– ŅCæN)PŪ?¾–ÄÓ¶ ?į,s7“}(īOW\NĖkc®W¹ ¬YĄćń<pN&ś”lkõDŖņ\Zßń”«•ņĒ)`ō#÷m[UśÕ3īżE#W ²;m߃£’QŸ‚ż ņuš Ņ+oÄégˆĶŒµž·Ī‰ug+§ŌÜŌ³;Y„€üįĶlxfł]·7 °Ž51Īž~¶łļ¶’ō µńšnĶķÄāė?Ķ꺟u诂‰ęŸ³ä–ŗ\įƒV§Ž®€ÜĆ=LŪC];Ū„t]Ü»gŸŽ›’²įIŌ墒äēM’±éŖļé`/gčW¦:åjøį©FĪÜ\ԐŁÓ$ŲJ&ĆؘB^ŪPŹUßųįŪć‚ <軣ģÓiļl˜.ņiŁ]ō& ņõŠü÷6>į÷sŽų„Īś)JūõŹūLæ5ūóæŽłBlU÷Ė·UõZ•DōF~dō¾oõ¬QėöH@zų$Ńł=¢’śŚnśuJjłÉ(ųN‚ćöĆa‡öĀĢ/÷±lęųšqūY=ž¹-˜ˆĻy’„~’~ĆIżŲ©Pū@¾Hś{’iś`zZū¹e]ü#¢üE•ū5ł³ę’õ;Ž™ń«pķ‚oļčHįć͇kŽāĪŁóü™Ōė×gŃ ¬Ļˆx>ĻV;óĻ ŽĮŃŪµ®Ō4øŸŲ2ŻdÉįĪ™Čå6®č1ōūéJmIéōuę Ųį·iKÜæ°ײß"Óŗ1ѐŚŃėA*Ņ3“Ó#(‰ŌĀ›ŌŽĄÓ*&fŅ·Ō{ѽ¼ōŃūB7ŌDŲą žÜ459įĀŌå¤ó×ēųYsé*oPźø™ŪźŲB벇ė9õ±ėČ÷ĒėµėśÓRėtŠbź•uščłŅå)k6ā>RŽ[óļŚ6”¼Ųōž×AēŲQ¬,ڇB©ÜWÖ߈«AćLc7ę÷?č AdčwžˆēcČóåæZ?äK—üā „āµ{Ūāl£ĖćĀŽ÷äÅšåįdę„” ę®›łä—NŻāWą%ččÜc@Ś›€ŲגX¬×,Ų(ÉåŲĘ©2ŚsĒ:ÜG(:ßs,殇Čē2VÄģ"ņõoŽ÷A[żb59{—¼šŹ: g2õD†žŽJ²§0 Ō&5 5B Q:Ž „\ ČmŚ |[¼ F-ø ē{čm$¢ץG>Ž0‹©Ž’ěTž…0eżōGĶüÉ>Ģür ż'8’Æf:œ¦Q2ŽPÄ }ha ńķt “Oė¢(ŖW‚*YXoŒąļ/qČļqw‹Z3]£8kgc.Ėż¢*¹łJÆöQcnōā°żņr^ņOÆń1ąĶń©S›ņtū ōe öŖÓ’ųT-¹ūQ™‹’œ‡ōr„{„' ŲB‚įt!«AĄ§6‡$Ń{„ĖŗÄC» Zč·y9™ €žŚ®;Šr½wļŠKJż}œäE²&m "%WŖöŚFżÖO•Õåz”h=ō¶>ŹK§ŖÜo;Ę–®ań'’÷¦ožĆćJži¢žAöb’‘›tŗ½·I%xéÕF²Õ6…ż‹®ļ Qļ< ©Łš ˜ r&Ķ ?ēä²zl-ōSŹ>6‚; ’)cMž°;«ż:ŚSż³§qż!Ø/žĆ °’±õ3žŅ¬"ų;5 ’ˆŁ ½ć ædMMøfĶ!÷ÓōUjuö­ /W— ŠLƒŲ’‚Šb’GūsĘņ’XKt’“³’»šĪ…k ó»Ź$é6Ÿ¢O+® Q×ē ėäd ćryCžCū  +ī õĀ Ų0`Ån“ļ-” !rĪ"$NĀŚ%WŖ;&†™%Cfƒ$*œ#¼«#¤n±"Ė·&"|!́žśæ¾€!义P¹‹łŁUÓfīuKö”C>܃a½””‘|Ō÷ś4¦ĪP½PŅ ĪęÕNż61žµ${š) ™-4Ö.⛂/ļ1Į/˧0k}+0i č/' /ņ0Ę-3–f,ę¤3+†¬[*Ķ&Ł)#?h)ų:Ÿ(gM'˜Õs$ ß« ŃĶō>ÖĪ'œģ󤻚 Óft ß+, i±x ™7Šé®×±Tś† {O0RŖ pč 8©p —§³ ŖŪ“ ½e ×?w †ÖŁ žP‹ ±IŅ “}øˆžKC.ĮųŚ`5ČaėöeƒWašĖźZšĢO~ć žW” ¾¢(0=šµyĪrE’ųŠć ›ö œl ; >"gL śö/#G·^'Ŗ‚5*Kdŗ+b&,5h±ļ.l¼ļØjšC¤Łš ܼńtÖmņN$“ņās•ņ+=ņ#±ēń}Éńž0óńżxKņA·”ņżŪ‡ņ-ņ-$ń5K š>=ļŠÉīg1ųī„ͼļØĮŌš·ķńųwŃņ@‰ˆó±µQōžvuõMˆ÷:4łėņūø˜µüŒfĮż^87žŹk<ž±„ėżŪ‰VżŚxŸüÅūūļņžūŹ¢®ū’rü›~§ü™Ųēü° žü,Ąū±ˆ[ś¬/rųcėõćõ¹ņœļė«Sė|…õēÄS+å·øßā› ķą*ŲjßĪæ¢Ž%·ÓŽóō ą“āśžµäK_ēd‹”é®–åźōvė_ŹéėrēS¹}ä5A įĖ1€ßźŗkŽVHHŽÄņāŽŪW1ąļRFā¾Įågēsčt‹žėŠfoļ{&‘ņēTõ’ŠĢ÷kØśœ§Cü(Ś+žPDĮ’JvÉzV˜ŽX¹ŖŽ8ļĆĒĻż[ ¹ł $õżBbš@k£ė2œśęČTā5{]Ž,ÓĪŚuOŲjæSօ‹|Õ?5ÕWł$Õy˜Õ^g՘jÕ*”Õk_¬Ö-ŌyŲ“³õŚ ŽփįGoå…č¶)Cź+ėq ź»Æčžj“åćT`āKß±UĒŻŽ —ŻĖ„éŽ_KXįGCäX> ē“Oaé’M?ėˆÓģ&?ī)—ŽļŚÅšx)õń Ų<ó³×Øōsģżõ€ōæö¾‚öŒ`"õ1Ażņ#7æš½Z(ļ“©±ī?¦[ļ÷ĪšøøØņŖ™ō2¶JöĖr_÷5é„÷ófE÷6Ŗö@Böņ”Wöµ ÷•pTų™ZäłOG2ūC8­ūąū“&_łūt-÷Ty*õKtōXrRō»ŚŌõ¢¤ų£;śmr ūFŲū±öśÅekłQ8š÷”šõPxóiČš®ģŸLé¬ĪHę=īÖć'ńį {ƒą¾– ßgśƒß hrąéHŠā¼x«åW+‰é“ĒæķśņŹń\Žõj_Ūö®Łüö|ķšõ˜Ehóy@\ńÉ@Gš^†šM–óńc½’ói»šõĀĢ&÷ĖčF÷R]ö¢\õōœ×ęó„Óóė×ōÕ2˜ö^ßuų˜ Õł«ÅRś×ēł'ņųØŻł÷Ļu]÷°U8÷)ģ÷Ēų1ŠųĄmł¢å±łķ'_łõPųČõ™öhäœō˜°÷ņūSKņ7éōņøyļō•ł÷_åŠūZŗ:lõ×;Ą  ) ˜Ģ­ CB’ ēø1 >$ zŒµ5Āw {——fä%] ~^ö 1 §TäąŸļż æ“q­ōŚ ķ˜z°Ē›E)üżēŖŪł7/Xö‰€—óvHŠńļFńŌ(9ņöÕ±ōÖlųÄüü—ĪėO›ū» ū$±KTŠGs1·ż !ķ_s!}(!—N„ :`ž %—!O3>#*ė%HĮN&ĀÕŖ&øP&Ņ&Ž$üX›"~ ģĄB¬؎żqT€WÕl¤ˆ j‚zņ&wÖ?›Ēʆd÷š™ ćA!’Źå X‰6]nm 2šŖ €ŃWAŁł`°Ø ϤI°wF|&°’™Åż ł6V öbżņ÷Ü䚃ŹļŁE“ļ3%:šHæńnŅōNæŹöˆŠźł3Vż{7@ž@4ŗ uŁJ‘åŖ„°£‘SCx‹æ$ ’G¼!Ÿ–ė!öžp ąnDƁÆÉüiŠ`r—™ Ō2Ū€„Ȱ-ryĪsōSݤžš³Ö(Ū‰SŖ“öIÄSRT§œä›€ż|B5 ŠcĆ9ø#Ä„y7  ļȼ¦’2ĮĮžŗŚ.ž;>Éż™)pżÜĶ żōŖģüp4Śüµ5Óüȃ«üg{?üu–ūKŪśÜö%śéõyłćŌģų'TØųŻQÆųóæųuömų„±h÷'8§õ#;^óZ¬ģš4ŪĆī>ēGķMžŖģū5Žģ­}¤ķsŖī5ž”ļŻt šĢ˜Ųļ1–öīŠ|«ķI*LģG5ė$śŲéśÖčZ“'č =čZįpč ńoég%ėźĻŚÖģę1ļ•õń =õü ų—(¼ś‡vĻüżļ ž&}Sžš‹œżÅk üxļłu׳÷ė*Ņõ4‡ō',ōŹkō6wRõ¤Šķö¤†$ł¹§˜ūŸŠŗż[å’éqz’qX’C•PžW°ż^Xżƒ5Üżś"!ž[PŠż³“œüÕ©‹śĒIĢ÷JĮ”ōĆńd.³ķŗź<ÆĄčōäX芊éLyłģ l@ńFēęõŲ"DśŻÜż?ÓY ”˜ÅzĢ,"œč_ņ`Ł”2ȼįō äx”D0Āš-ļC,OnČlŪĪÅ÷É“m€÷ oäéŗW«š£4YÓ¢“Kāł# ł=ø i› Oh‹Ķį‘ęÓžfīłŗ[ŗõi©Yó¾r¦ņIŽhó%q"õ“`R÷¬i›ł?…Čū x¹ż7ó[’›`²¦×ŻĄLś·I£±ÜX½U®r ģź§ ąÉ’ Ąę• Æo’›Yä pf”Aź6tÕY›šķČłaÖ™J÷„|ց ¢ W2‡t¶ĮÕ†B‰““6Ó8Fo憵 <~v²Ė .õĻ)UCGˆ"~ą|$żU%šY>%ńTq$„EA#‡W"uˆN!‹9.!@­Ä!ꇮ"­n$-„ć$Ē%PŖ$^"ģ#9ų #Ae"$f!ŹŻķYōx×%zxfdŽk5„¬,.[ęfō¶é60ŻĖ#m [·P}™ź·I=ŅH›Õ5>B:/‡2‚éŅŹļ€Å¤ $» Fžä ßXĘn!" roüyńųaŪ÷Ŗ×iöźÉ÷¾’łĖŻün “RG.a@³ ĮBU‚§žCµõ‹šAr“˜×£ėĄ–ZżŃņ=µ©Żœ„ƒé^ų ˜‹ ‚żeH‡‡õ‰ÕŇAØZåĘł”8ūnĢīK%Ėš2•Į­³÷Ö .@‡ “®Ō ^Ģéåź™#łИ:ŽüŠTĢĻŹT+öf§|Ać†CƒJģU6INlAhą‚”×0Å Č“>ł²ķ ųnv x÷܃3u<‹zRp¦WG ŽŁ{ 5—³?ĢOn»ž,ˆ;[„Š»z½† qŠÉZœżéųlĪöōn5ģņBņ?9ĮņDōŁ ö{Eł‡“ü¦:Ć’ævƇč/») X ņ° 9@D)öRX=*ąm¢äˆŚÓlrź ÷Ė•Ńc£W5} A ɳ4Ė­Ļ'#żQ<”ų›0“ō·ŚøńKżŸļīż]¶ģ+bė„œńčŖ®eęj®ć,į5œ9ß īŽ-MżŻ'4ģŽę–¾ą;³ć“4lå¦Ö:ē•Ōč—ė‚ēS+«åŒųÜāEÄß½'ŻrJ±Ū¼ŌĄŪIPŻ©ąŠ’Nć*²ę)ŹäéĀōĻģh+lļĒ7­ń_éŠó:kõ„čnöÓÓ÷Ī,Hł×6ś6\=ūšéūLD śs³ų“0/÷®źköÜY{ö-9÷š^Wų6؈łnĘ~ś3ŖćśĖIyś¾9Ił¦R±÷õ7öĒĪWõ6eõ¾Ą}öī#xų.@ŚśņYūü˜Fž£§vžpĀØż‚OüYZ ūšęjśoķ£ś£’€ūɍ{üŠĻóüģpüŸDŠś«ˆIųįķ0õ’Š©ńßŖšķ źč '½ćĪn~Ž?Z¹Ł¬UāÕSą3ÓŹ~µŃŽeѼoMŅ©pyŌÕŌ×’ ܅±¤ąhōå ’–čńĀź½ł ėAé÷^™åĢ䏹ܬŪŪØ0Č×0C+Õ®ÜŌ T1ŌŽĄĖŌĒEÕo¬.Õ nŌ99UÓxUŅšĻŅB&kŌ¾ļG×[ˆšŚ†ZÉŽ,/Cāå—ńēŽ8™č#(åéĘÜėßÄ%ģ:Ļķ²Śķe¾Oīü Nīæäšķ‡ ūėjßTé ŁŅåUļįg±TŽ6ƞŪa™#ځćķŁ ĀįŚ@/×ܶą‰ßH™€āf&ågÅęåAētž±ę™|å5ø,ä˜ģEćZ9ć¶ž¹ćeÄšäM@_ęć’ēǦ%č2{ŠēF`dęęńäć9Nžąö9 Ż+€ŚŲüč×Ų\Ķ֜Κ֯j׊m)Ų\)¾Ł ŲīŪ]žĶŽøuHā –+ęsĀLź[Œ¦īėOóĻYų‰U³ż«3ž<įw˜€ Ŗ† # i Éģ¼ yJ ®ˆé J6 ”% ’Ž > #‚’ %Ó»6įøˆÅ|KŖ Š£ŃV’Ń=’žõävž/,’q2œŗ­{ĆčxwbU/Ÿį¤īūDR d§ r“#w š™’ŲõrR8lŖ*ÖĶßHćĖŪĪFōžJ¼Łx @Ndēż™/3ūqH”ųŸVŒö3õ)¶łózTPó óÖ3]ó=H%ōZtõCv_÷rŚśCwżÜ”£øB!™ķ °ITč&y»tż7ī„…›|SåÜK°¤}ćx›¼Ž äł'3ń˜ójˆŽGµ¢ Ōčū‹B½¢bÆ H¹@hK½źm4 (’"~ł8/“š€>7v=0’-Ēž jżJ«Yżį;Żż"šßž=<"ŖĖo\} W°Ń[¤·o čR ć9² bV Ōq/ jśF Ēė§ KewXŲiĤ}ōŒFWĀ’ų`;ž"NżŒ™EüÖ*üŲųŁüagžFæČg¤Ā4Ą`›¼ žS ”OÄæ‰š{ś ŖĀ¼ƒńō‚Ó Ņu1 ®ÕO P_½‰„§ć¬}Ł“l)ŠÕµōäŪ““µ/gÆA)aō ś&R Kå ś° ēŚį “Ų¢¢.1’×ōÖįĶ— vŲ' køtv1`MššA¢Ÿ+ė©A"EĶ&#ĆD#ähä"õtu"ŗ*"ēÆį!ŲķN!ąÜ? ŽøĆc dŌĮÓ[iøÖ*.”6ČĒͧ҇ÓöJ ńP_żAho9–ę’ƀYTߛĮ(ƒéŁĒ¬eĀŲ8ÄdwQ¶œ#X0ū&õSY)Dķ*ž,- -Bf»-ńZč-ń|-p—›,šŪˆ+IkŽ*ßśą)žß„)|¬E)qĘ(ŠˆŸ'ž%ņ"G"©”!WÓ|˜ūESēRNĀ27sRsØšga"BR“,z31ܑ ®;\ēt~פ ÆĄ# ķŗ n 5 ?® 6 q Ō{ ķ_ U8ŻŖ°„sĻŪÓĮ„®N"ć6½$Qn$­VZA"„œC† ękŚį éŚģįš½W¦cshĶ* <µJ ņ„‚pF‡_Źå=9!`Y%š •(ÖU *€†+Cóe+Ą`}*_|&)c1Å'eU¬&{ę&HiŃ%„Å%J¹%=(ģ$£Ėę#³vĮ"\†Ź!V)!ø8Ü ‰Ų V !0~!e«ā!Ą„’!žXŸ!A\ įMŚä­A°øÕŅ®żų{w’ ¾?ƒ<؆‹ļżĖ`,ū·«|łĖŌųŁĀžųOQ«łģW~śčõ ū8BįśÅ¶łģ‘§÷ść4õ·Źłņ[ńÆĀrš®³+šO`šT6ķš³ō¼ń; æņŚJŌóżĮōHõvHõ(¾Óō\Óō#§jóü‹ģņ¹„øņDśŗņl¾ņĢĄņyŌėń(łšl=ÓļAÆøī2nņķYµķR^ī8¾Źī$³ČļIßš¶Ōņuó źVõal—÷ŪÉś6h…ü2džģ ż’tüĀ™+šĆć—čÅŅ’ ÉÉž¬¶żŌńŌü½sRüZ„0üõ…?ü~¹5ü8ŒÖūĀ’ūĮ°ł÷”Ņ÷1[õÕRņĶ0ńī?]“ėpĄ”č„Õ$ęXÜ<ä­åÅāöĀį:Nįøv}į6PNāp ć’0<åržÖę0kčvĻŹčŸ¤čß_—ēš:Åå_öˆć~x^ᇦ“ߘƽŽ% lމ¤Ž©_ß쨫ą5āßĖłä·˜Ķē|»čźB .ī¼l‹ńŠ)öō±ōZųuöū1V^žØµ¤Pißæę4”}ĖŚż.+{тƒ©;üFų»—ó¾Čēī„»1źŽŠ£å•JwįkģŻ%9Ū=uŁ~Ų!8ŲE$»×|dh×ēč×ŪÆÖģŖ¦Ö-x!×fķAŲėĻژ4‰Üå¤{ßp£āļć‰å¾“Öē(č(é¤nHéć2č28-抁æć‹%įØ%6ą]ą ą¼šįć@.‰å<ęįēwj×éķfZėŽ…ģå}ķ›cīųģSļmłmšsZĢńœ-hó!’ō˜Ø"öß»oö Åõ“\ōģL¹ņ”źrńõŃīš!?ńÖ4ņ…‡ós8ģōg‘öGņ¬ö’$Ÿöē¾ ö³WMõĖĮōüŸµōŽaOõÜ߂öšųX]łÅ śmXæło‡ų˜“æö$NõbčóGŻóOįō7יöaŗ?<Į]Lpx÷ " åu%Ā”/hÜ~®ó5™¾§ž Ł Ų'œõ:¹,c5•ˆ’fu`’z’œ0”’yFėž¾˜Xż¤“üśiŅ?ųsńœõ¦mó6Śń$>ōšŅšĪštvuńĘŽņ2Fšō q“÷·ć¾ś[cqžøt”×ų+Å9Ō ĀO[‹ ™l.|E°šU“Äń™„ 8¬:!;©C $³jēŹ,J%­T’į¶ ¶āļ …()aȱ?/ éø4„»? #’ą”céLČņóųv„w¼g:]Fæ“»ĒģIä}Č$~šŽ°nŗoŃ’ÅąÖ’g}ö’‹ ļ!N’žpNi­^½U’ō›>ža{šü_‹ūūe-śu3ł€0ų *Č÷韟÷ˆ–l÷”_ķö“Fög?Äōa€Vóh˜žńĪöłš/ŌjšE/OšUЇš=čćšLĪ(ńØvńc•šP˜ļ†³OīMGļģ$“ėlˆDźŽÕé4!č÷Ī—ē’ ‘ēš†ča2é/āźG_+ķ‚āšLLó³¶·ö˜‘õłÅŪ³üĢ1¬ž“=®’dtŖ’&bøž³µżä"ūŗ²@łÅO¼÷>Ų»öLĀNö䓆öŠs÷äĘžųžŪśīėü½ŽŹżÓšBžX£ž?@żGšüüXÜĖüā¢ķüžŁże&ņüu77ü÷™ÖśžŖŁųœ Uö«±gó}˜FšFÄKķ; ųź19Ōé>°9źF·)ģT PļĘż%ó]÷ņķ¬ś¼©sżsĢ7’EQ‹ÖwoEŠsłŠŅ§żłÄk ¶Į§™ j B½`MÕaĶüzUļ‚õū•ņ„Qbåր·”ł…n“žįkģ¾*0F ”ZJ ŻĄ…!ąķ˜µĄw}ü‘)ÉųRt=ö’Ż&õéķqõŠĒöFG·ųĀ{Žś7+ńü‹¦»žP#$+¤šöƑÄQOĶ÷ŅUē‚éĘUQŌžÅŅ 2b Ŗ 0¹ÅXa1”˜£hMĻłvń€p‘ҧ<Ö#'oŗŻäŠ–c“č .d[ “Ž[čī-Š1÷‚.Ó27ą}¦5āCĻ PvōvølĢ÷£š«?8!©5Ø#½Aņ$˜8%Aā²$™ßÆ#©‹"÷S!Ę_"!AY-!ķ›!F" Żg"øwG"cMČ!V÷!YóT »‚D‹ÉŚŃzVļÆ^Wś³  ėż²ŹŒ.³þeĶ%©ļ“O &ŽK% ‘jĻj­4gń)zQ€—$ųį å& L’­ L® WĀfb”yøu’ž§5ū‰»ųÉ\÷õŚ:÷MøaųĻlĮśućž]BH†U€ N%8 9$p€r†“k³dOų”9ÄŹÆÜŖ]—ŗū_OŚN® (ń Ö Ģ »ÜĘ ”¶ė‚1T‰”,F2ūH€ø±U;iø¾6Ū½: Üŵ×CP¬ ±éöŪ§—³­˜ZŗßéßhĻ ±× ×|į·t”£³bĘŁXś³zõä`h¦ ņ¬wmĀ&™ üđ’÷¦KõŚžeóĄņ JóRnZō šRö=óČų]Ѓū]8[ž4Ä@B?ŗūhQĮ hź0A’Į Ėį)ŹXsp”€™«yą·ž‘ĒnN˜g_>%Żv#& ^GZ{.Ž üH;ų¾ŠBõ,Ŗ óšIšńaRš&¢ģīO,ķŃØėō…č”Øęō!Öć„/āŗų įµ×ąė‚jįlU’āZść§B>åp6ūåg^éå'HōäR„Kć%YįĀæ¢ß«€£ŽÓø¦Ž‹“ßŖÄ•įŅļćļmę„TŻčø+ėnŅTķdÜTļ'8*ńKŽņŖ+ˆō’Õ;öaģ÷M?ał±zOśoj…ś' śĪź-ł)Zųéņ÷EĒųń¬Ėųī(Įłār¼ś¼YtūĄŻŸūœ9ū«VŹł¤Üųś7_öÜ“õŲ†ōØėō™ķ*ö·ī÷0αłūśśŃZƒū”öOūį¬ś ŁśOŪŽł•Jśk /ū#…-üfĪüžŒ²üŽÓ¹ū){žł Į¬÷ŖUŌō]–cń lKķCą¦č įÄć#’ßLoļŚAŸ£×Ž2R՚įŌTģ ŌĘzFÕĒ|Ą×ŽBŪ|ńgßAį°ć’Ō‡ēŽŹPźŪ¢„ėŅćŲź\Ocč"ΤäĢ™iąė|†Ü®”ŁkĖ×µ/×]ØĘÖœĒ£Ö†:ÖіlÕIsŌĮ’ÅÓ‹ŽąÓØV Õp/3ך­Ś€£*ŻĪuą„€£āTžŗä7§ˆęŲ ;čĖźéF’™ėw›8ķæĆŖīĄ?ĘļgpVšwšé©ģī_ĄŖģ‘€é~<Óå#”2ā5(ßģóŻä‰Ü&ŅPÜ]Ś‘ŻhH”ßČ ā/€GäŽćĶåt×^ęšę$uåāL äµ(Rć:sDćzĮśćÄ·Qåµóę’opč½žWéÄĆKéčÜč:žåŅH@ā¦b~Ž…”śŚąē9Ų€Ö¹ŃÕxĆÖŃ(×lžĪŲ™(Ū\žŽĒWmįühåČ.ÆčzpģŲ2^šå™ōu½)łW 迏±t—DWue8 Ž} 7I O‹ ļ€ā ™õ5 Ś’y Uƒ ›& įģP T, '~ ‡ŌsS%½§ĖvģĆĘvė·Õū)\Ÿņ8’±“śżŽŠųū@åńł <-ųE3Ęö}äøõT’ōKjœōį•ōmOīōF̶õ# ÷_Płå¬ōū¬±œ’\;ŽODh&{č źŸ%ą…łßą,Lō6Tæßŗ;,žģķ°ßlŪ” æ CĀŁŒĮФk§Ż!@i–:k¹;|ĀFī÷’ž»ˆ’‚ …’ÆiÜ’‹`©Ģ¶°Śćbzn’†n>žŒ 'żqVuüüšTüYyÓüa'ęż¼¢k’Œ<×1:§Vź^ƒPÄ£ ƒˆ źūų ”:Ķ I“ń IF` ōö D Ę Øvµį_f/Ü1d1&’²bż©ü7ڃūoĻŃūV]żĄyC’åų/2µ4"MŅ äsĖ –DšĘ~¾£ī.Ž)(Ÿ*,įī„%Šk °yų-Ö„UāŽ ±ŸÜ Ž`N ǽ tе ęŻÕB quw 9¬%7R×ńŅ\¤-d@ÖWąń儳ÓCOV¦_ r ’Š•*…ōßBŁĻ‚R·6~źŚŖ# ?Sü>Į«~ Q’µū#—§&v )½–u*9ą*ė«{*Œź)Šr(Äæj'õģ£&hV&ĒŖ„%€žž$¬Ņł#œ"ø[!§®³: ›²0ę˜4œøE ‚”ĻżEų˜ycå;(¾“›'02šéGŒĮFC ‡4éļAY –Ėžśadżö€Ņü)‰ąüä2CżŽa¢ż?@żó¾Śü҈/ūK*ĄųšÄśõ½eóĀ"fńY}1šB‹Ķļ,B$šļ<ńŠ€oņČN ō|å­õĻž÷r Ņ÷AŠō÷ĆÉz÷šö2‰˜õ”Z“ō†ō ż”ól#IóhÜŅņ”§ņ‰ńRøēļ0Ō®īE’«ķūķW‡ļģĢZB핼ńķ—¼īī›-@šūäżń–U;ōž ļöšŠēł7;Öü¹h’ žb…>©¾Y:ų ’}tŅĒ\ą4"1Ļž+Čżc/ żĒ‰üżä ü|ņkūӆ~śz*łčµV÷ öō8ņ‰Żęī{)æėŽ?ļč’K©ęCNųäżŖŌć)é9ć:d'ćƔćzļhäRūyå“ęk%{ē϶žē»:öēįoKēūsęŹCäüŅVā"ꖱŪMKßéQŽ•VTŽŲŹŽēįߛ^āß±‹!įöÄāÄāĪäķNBē/b#źšqtķķ‹,ń„*õ°-ł‰ŗéüS_éLÆn5³¬4Ml ęÖ~’v_ž›aØś‚¤‚öß;ņüzķ-‹óčõ5¼äj&įĄJŽU”`ÜŃS@Ūn„Śų¼@ŚÉŲŁ"EUŁ ĢŲ7ŽkŲįŚhŲ9īŲŽyډŚŪ·¢%Ž»ą}sHćÕsåB*ėęhvēąW ēųÖåg•>äÆÉÅāĀPęįÄ&šįHKńā?f“äĮOÖę OķčĮ®ź¬Ÿžė¾ēģ9 ‡ķfīwY”ī/–\ļ_i€š5/ūń ”ó2čģō~4¬õ‰ö§õĻbżōL0ō_©4óSĮŲņŚzó§æó+–·ō>y¶õ±įsöŗ³ö±l_öTB–õĢ ō¾=Öó(x‚óź±Ńó¾uæōʁöźäU÷Õ§%ų½P2ųg®r÷V.&ö2ĀōŖ±Ēó‡ųó#Ö0ōü=põęMčö†Ļ,ų'õųÓ.łFčų¼2ų}0÷³“Kõgr ó%ņtšźÉķ>PėVø6éjĄŠē^ Mę$I†åĶqLåC“·å4Šę&цču9¶źyc%ķX†ļi €ńų1Įņ3"ó}į»ņąŠęńēøń÷ū¼šÆBń¾ĀŽńĄŻ óöś8ōå/õ«põĒaõhĆ/õć;:õšIČõ7,ēööśfųqļłŖe!ū/ź¹ū\p¬ū§$ū!\mś~Šłd;‚ł9ļžłcn#ś™Ļķś¤gĄūswJüū‰9ü0LUū‡,œłŃQ÷ ’ņōĶŌ ó?ČņK(Kņd\æó‚Zö†-ął]čżTŸęˆ8I¼¤tyŅŲōscŚ%•¶Ół£ąCLlSw‘Ł– lnÉ x9 Ҥ€Š»|ī Žå .õĖ"¬3 ło’ITüŃ3īłOų!ŽŠöøwö” ÷ųm|ųŲN„śÕGgż¹&±y~y×­Ń ¦'|EZŠ fęģ‰ŒT÷ļŌ 8¦!RŌr1„ū Ś@ˆ"żŁŅ#‘×¢$.-ą$Š·’$™Ö#’pĪ"ÅG–!Éf? *‘Ū廍⪌«;O. ¬Ų@ŚCī•ļĆ»h ¾MrŅĪźķf™Ś qØ«ŗ[Ļ (CÖ²ŪmeĻĖ(w ’‘'žć Śż‰5¾żYęeżCĮ‰ü/įū¬åSł‹jh÷ZĢ—õB ō½ßņ39ņ3`0ņēģŠņpįōĶaöƱ“ų«ü)ł’>dæ§ ¾¹­ ‚Ź<ž8źĄŌ÷Ēė‘ „—¹h:‰N€MŁrœåĮĘĻ ¬šž ©ūš®nlY˜Ėoq’QÖ4Ķä¹’T³Ųžū¼ž4?c’²?”ŪC#ĆUƒ²gߐžs{2˜7Yg6[µxž%Ż}ΜĒÉ“t©i?—oÅ2ĪäLĻd…ÉÓQ㠚rccAÉ’ø„ļżūü­‰6śłæų¤w³÷œŠ÷:Œö.öēSšõ“õ­ĆfōZ$įóµŠó›‚ióM§sóĢtŽóÅ9˜ós²ló9Óėņ’ņiÉš £Wļ¾,ÖķĄ˜Zģą^īźĒé>5€č’J²ēM£Mē}:gēCpčXø]éļYėS‰īśĒ5ń’нōČ8Jų™‡ū r&žŗ³é’3*²(G†¬’’jģ ž‡ä‚üb“üś™į»ł¾ĆąųŠų‘‰ĶųųG”łŠkĻśėüĮēčüĘ“Nż¬4ż’Ėüh]üĮü€Fü  üõšöū¦XtūĮš€śułh'5÷Sėō¢Vņ‘¹ļŌ—vķ,š’ė'0Ŗė†C“ģ¢õ˜īšxjńĶŹžōØĒ÷£9€śū¤‹üQQźż"å$¦šŲ$ȍæ$Ąä $ަ#ó""Ļ›t!!ø!U!š’ ‚iÉ X"J qR‹žÆ˜Õæõ±c±­Ó‚X[†¾čĻt^ö˜žl‘ņļ"‹bGŗ1żć†Q»#b uÆ^ Å=„reG˜OT½E²ć(ƒÓ`žŪ¼H d7< ‘ŸY .; ”Ō½ Å"ŚM°Wć½·¼ż˜ÆüśXØłXHųņ„£ų„³0ś-øŹü‰’‹å¶:M"[” $`Q ķś ¹2Ё)ėV„ŗÓÕ?č+kĒSL>žže⢠"|Ś VŌ ' võIåņ¤ŠŗšåRĮ”Śõ 4ū±/j¼} Č ŅÉ ĪYŽ×d[õxs*BŽ:Ģ’eŠ ć*MĢĮ|z'ˆĮ³ėśyʞ©” ,ÅRJ%ÜPĪįĀ’ē.¹I źf°j†žĘøē~ Å×t Vµ 2­誜?Čė AŁ"Wƒį `µ£5Jļ°/S’­Ÿ@ūģ÷÷¤—õōÖcóŽ“óЁōO‰ öü¼ųŅVŠśp:VżŖāyńš›Ć§Q³x ‘L8µpĆ ½žˆYÉ(ŸōæĻLD«Ųī¦ē]¶ŸŻˆ¦šŪ0é  ,$gƟ”xZ’"zœū+¦™ų~Š[ö޹¼ōdxuóÉĘ7ņŠČÅšŠsļ¦jōģÅõ¼źT[‹čkX“ęŒßåžžäK\ć?pšćuóć¼Ķ[äxe’ä˜*eäĒ`ĆććĒāµJ³į]ŲąŁ8‚ą Üąväį< q惒BåŠL ēüŪéčDF—ź—ķ-ģ•·ķõÅ=ļVģŠš@{€ņ²ņOōy®%ö?ĶÉ÷AŖūų J’łš•ł5?ł”ēų0fŁųäŻ8łCłł3īśXŪūš|üC’ü²ź÷ū@j³śŲIśųŹŹ!÷/ˈõs‚ō*?ōės¾ōusĒõĒ8żö~cųś–ųä8·ųżŅ‘ų”ƒvų£Ø®ųnčYłÓŠ^śtū~@üfżxüɉüź†äś†’8łĘ§÷å8ō¼ŹĢšŻ›ŅģX·€čMŅ%ä$ą—C†Ü…ļ³Łą.Ę×/ęÖ^€3ןu“Ų·ĒIŪųD­Žw wāhm$ęÖ'%é]­ōźĻV<ėSGņé MdēzŚ"ädIŅąrųŻjfŲŪłnŚ æ€Łćz½ŲY‡ć׬ęŽÖčż×ÕxŽ#ÕCgÕiŗģÕäģ‘×Ķ¾ĶŁk¾Iܙ;µŽ“įąwPĖ⃟’äāŅ\ę\Bč9OGźˆ8[ģ¶Zī^ŖšD’Dń‰l®ńŅń?£rļdĻÕģŹ–é7_+ęR ćm…˜ą‹Sß”ƒŠŽÖEß{XąĄæāÆŽÜćß'å“·å;,ˆå“²Ńäå@óć‹@UćUIć“įņćÓŌ@åzŽļę½œčBÕéC2ź/'géÅ^ēz÷Fä$…’ą|½ŅÜš8Łö¦)זqĖÕVtzÕ\?%Öõ²×[~ŚdNö܍Oą³OÕć’]ēŠžŁź­=Xī*—öńCéČõĶÄłŻ¶żYIuyśćRüc?¢ ŠŪ A½6 €1ī©v ĄO}šž 8=~ Z½ | {Ī ƒŖĻ÷õĘÕ ČĪIJ®Qt«®IØÄĒUķ Š{ Īmf ˜f› ļ RßńćDé}|p·f‹ś°µĖ­’o ’ž­Õž¹{ēž:N’Ķ‚éžYr\žÅŖVż½üūw‰śź1ł„wų`&)÷^‚ö§öśõõŒÅö0 Šö0q÷ō:óųš2ū.}6ž™,ꐊ \źa “Ŗ¬æ§­ ó"ÕĀ-żCŸNmĘ2(hz“eŽ č¾&3+t tež%„›_.­N†x|wrŁP„6’ö©[ž¼ÕēżÆčżńKž|]įžėd’¹“’:F’מ€žČ€uż†lüŗŹ­ū«…nūq½Źū\Äü’WGž±ž2ß$e:ĮżŪ'»s ė"x Ŗ+ G` Äæką}$¬Ć8 š.½ ÜL× Į° f.Ä ŒSŗƒ@”žEŅüW“ūŽ„uūž6üŚIńżW»qBNd»~fŒ$ {¦5 ³‘ Ųu1 ŗG< ÷“ę JW åė å¼» f|² ū䊁S…R«’¼B#…« ‘n Ļ#¬ĄńW ęK™# Fåu}ąuą „£ȳĘ³ÕŚåg Iē2$ ś 'ƹģ(y‹Ū)„’)Xē)œ…Š(„ż'mß<'Ā”‘&°ŁÜ%ÕFš$«##Æ"øD ČY~bņšµ4ĮK‹ÓįĘŽš}W”āĮŠčóāƵ«­Ś¦eGŃX÷ķšžĪ ŠmŪ ś¤= Z(ü'UJ#rMå^y²bŒ-ŽrP\Ėõ‹[뀒z:żķ\Ūś ®Å÷XĘōģGņq`Žš™q¼ļÅČŃļÉ·šüęEņ„0Aōœ[ö*n9ųߌł³#śŒčżłOāAłœ 0ų'³ ÷1xö!, õ‚@Zō,9ók2¢ņ>†ńĔCš&¦ųī[Ļ퉢īģĖJnģKUģåf”ģjfVķ•ƒī+?šXɗņj‘~õęBĆųydür1’‚ÄفØx Ź-~(AjŌ{šĄ¼¬p#CWžä’S欞T²›żõü$¢“ū=aaś~$čų“e ÷G¹ō°„łń³ĆöīQõėńī<éųxē®cåŁkcäÕ}ä'@9äxeģä+ óå£0ēč7dµč=ŗĢčyBčLKē[_gåūŖjć0mįUL¼ß™ŌŽŽaōŻéŲŻøHŽkd¦Žö˜eßm¹VąŖ~~įgėāējµähˆśęIÖée‚Rķø‰Zń™‘“õąśŽÜž7ŠŒĒ<ĢQ·åÉ…xµB*"XZLü éü3nłHõō[žš- @ģóäč7ōgäzŽoįHKßĘćģŻĪ] Ż`Ś Ü‹21ÜZqÆŪ®qŪöX•ŚåEŚBVŚQŽēŚĒ]ÜŗT£Ż-•ßaįKÖqćā„Īä؁åė{}åRųįäHŠłćBÉ&ć“"É⯠ćh;ä…”šå8OōēįĘļéGŸė_¼ßģō®ķ9ī8‘Yī¹ūŽīĢåōīĮ“ļx¼ÓšsT.ņ$›|óҽsōŗfēōKwŽōI9ō%UDōæ:ōFŒōĘc.õõģūõ±¾öu:÷±r>÷–¹öP’ÄõJMōń óŪøęņhŃņįPVóQ÷Iō“¦Yõ§m'ö„Ilöųwö_«>õUŽCō߃óo^Iólü¬ó1čō Õ¬õtė¶öÄ£w÷įŚ÷nFā÷÷יĢöŒaŽõŒõŃóĒɵńĻ™qļiæBķ„KXėUĢéeØŖč֙žēŽÕēĒl8čń}&é,Œź#½Eģ~( īÖ²Ūļ 5ń±&÷ń…LņĻ  ńģńšģ9cš@šĮUØš-ʇńz(¢ņUö¬ó@kōĄÄō‰EŅōā!ÖōmmõA=ąõ6' ÷ Ū°ų~ēDś6ĮŠū\Iüg%süBK&üŖ„›ū2ūåeŗśt¾øś~²ū2§ŗū½Ķzüōķż)żaŌüs½)ūĆv$łŹ’Ųöi¼ō)©=ó”ā®ņēM=óņ ļō؟ž÷/ųśéXƒžō‚¾Ų’A’Ś)·‘¾–¤˜m˜4HKõx)’>A4ߔŽ —ńš !  s­ ĄGˆ Źķ »7Ś ŸRś$¤#£y“>ąÖ ž²üšśā-}łSył 35ł‰óśKšbū" ?ż;•’„Pfkv¬±#K tz °“[H¬“ī4|Ī@wĄŹ“lZu}T@S^ń ęŠX"^ŃQ# ŻĪ#ŲŁ#“‡#Bbń"Żu)"Ž9!£§0 6+”įV_%ā>@čń fō;å)5 '!aČz!h2!/Š žĶÕ`œĒĪž){ŠŽd=c äŽīH’/Kź’>^žo®ūü…śSüF Šūx0ū4aXśpčKł3C ųīėönĆõÖ½ō7¾÷óZ_‘ó£Ķ£ó®uDōĻ£‡õés€÷–h:śų²®żćä¼Mó.ņ|Ē mŅOŻ/›P•~օĘė4ßī‰Ļ–”†ĪGi ́ž…µó7Žy ” 2ų: Y°5 łcQ Yģ?ß$MH’øZļż]Kż7iżaä.žß‡[’Ī3™Äc–÷I,^DŚZĶ[Āå%+ ÖP¦jžRTžŦu+¢nknĄŁPĒé1€ V—‰8‰f½ļĘ#ė…cŖž#gü¾BXś?ž”ųĻM÷m+MöY1õõ1åŖōg¼„ōt˜ōcuāōæSõ3®Ėõˆ'öņ‡@öæ¤łõ=Ō@õ"+ō÷ ˜ņDżęš_Ö)ユxķõąėŒkźć(é;ō(č>Ķ€ēDē¤Ż‰ēx½jčæwūé(BģSQ,ļzGņ #öš?Ÿłø<²üpĮ’‚J£JI– {Ž\ė<’åśżļ,ÅüÜkĀūįļūŌŃŲśÅ“ ū0Žū%B(üķžü Ēü›tü]>ü’×ūT©Œū–Šdū YFūģ ūŲšśq°ŪłO#ŹųgSb÷ŧõü‹©óLM”ń!`¬ļ#Cī²Uķ7ŽķīĮ’ī-hŁš6Ī)óŃ¢õNų÷ß\ōłÆĒū§ėüŽŽOžĆ ö’bŹšˆĢ ųćIvÓ7?XŽ ¦'_ whń œaŗ™²r餜MŒoÖļéŠÄP5qIE²šR±Ķr±= ŸNxyą xbé ż…vž©eŗž¬¼"üā΁ś:ńłBsZśjø…ūĒķ(żŲ öž«{¦ĘL÷Ažķŗ—Ŗō·ā:(’ £ĆŃĒ.M°:Ä»™£/ōłčŽ -j@ ›`āÓĶńįÓmZ£U!¾XžäLm¬·v@WøM!æ' 8 ÷}&KzĒ%QT›8õƒ\>±Ģģk ²āé\mĻәī„×oŸ9 K˜"Æyš#D`$\\$'gu#/ļØ"sźļ!Ņ b!ōbō 6ƒ č•<Źŗ© ęņ:Ń‚’Ž›éāĄŽ ¾+ÜZÜ’x~&ī” Ą3’BYÉyt1Ŗ”Z Pdx oŻČ µ‹héų†ō8Š]-ū[łś x+¤§a ƒH  t {’ &€ƒ WŖf žŒ@6\ž6Opż4ĪLū„’ś”¹¹ł}gśy×Hüé%ŲžĀüŁēšTęĶIv? ˜°5 —„» ÄēčŌÓ'Š…ńśg”#±ō€ćfÓä0RD~ö r‘‚ mn ¬…ctˆŅWo雎­‡ę8Ü÷yx„{P¶ „®å zó ™ÜŖŸĶźKčhzŲ²"¬+YœcŃ |VnČp0öW†¾»C)XŅ„Õ&æ©+ģįČp«ęF ŠĒō öč9LWLBY™ģ‰£_wI˜’}s ØÄ­ £›ź ’lĀčœÓę.Óń›d79 ŪÆē uaÉRs,@žj¼ļśõ27ųĪL'öÖĒō=,ōœ—ō„lÆōNÓßõ— ÷"°ńłßÓü¬q:ē… .2+t+ ¾Gᯧ;»ē-$!ŗUKdåưbō†E9` ¤+ø“ļü€ 'c—õeŒKĢžÆ–Éū®Źpłń®÷¶÷Qö Żõ“›Ūó£ßhņ<¼š¤¦ąīéļģī¬ ė[{Ré•}įēRgĆę^ņå©­XåädÖäēkJäŖSžć®Ńā%ĪžįZęTįž8 į“œDᚒā™zbćś’ä.ȲęEėKč$†³é>õ輜 ūė%ķ©Æī—cIļP¼ŗš(ūfņļį2ōŠréõķŠN÷]Ć:ųŅ­ų_EŠųM;ēų˜/łˆ#Éł0®ś<ŗūŚłµüĒõażū(…ż7IžüČ;Ńū=f(ś·ŚIųĢ•†ög7(õq_ōwś3ō*]†ō ”õ¶ØØõŖ öE4öĄķGö÷”zöFżöęį÷ččłPKśoÄIū(ŗŠū8iÄūž¤&ū[ś›\ų’*öC‹f󽘚ŃÉqģ²cčÅxŪäwcὊe޶°ܛY™ŚŅ) Śź’¹ŚBZÜt~ŌŽwŪįČxåņSŲēŽé½¢Ąź8cźf|ėč¬D¶ęf€6äNĀŃįŒdÅß+øŽŲ›æÜ@S~ŪģŃ5ŚišįŲOų§×’!ŹÖŠÖ£A ×LDŲŚCŚkžŪč÷Ż $Ęßškįć{ņ«äqæ‡ę€vžčØ`äźb¶7ķB/cļĄg#ńżī0ņŅAPņ-ŗdńpŪ~ŻģP9ąéZ±ķęŪ`äøÄ}āŚ@nįbĆ<į„éĢįĒFŚā³äxƒņäź4_åM„;å£l©ä«“ļć§Żcć'‚Oć&•ŪćT åŖœę †PčfÜŗéŚ tźĘ(ꊱ±č—a#ęÜWĶā†%ß/@©Ū¤RĀŲ;¹ÖĮ ¶Õ]öĆÕ6”ŚÖ`ßŲ$]¤Ūf韎±}oāŠ{śåęm鏻ĆģėŽ šh“[ó=D°ö$…łł¦ż’ž’s±„’Ņx䜶 ūö¾ 7e &zΉą.¹™9uÄ Ÿ äå. O2Ć T,`M8Ž›Šź~±[ŖķR¤ģŪb®ęØoJĢs& ›÷ É ] ķ (éĻ ī;.R<ż,,|ą*£$_šVźžŽćżl£PżfBż­żH©ż-ź¶üžź üü(Pūˆ‘fśz3…łä£Ąųā!ų…¬÷’b÷\…C÷H©T÷ɶ¢÷·Gųgł:ų!ūąń‰ż…°—½ -ź(ńę2 ńK1ĶłŠĻĮ•R“£i®bĀ|?Õ0žī=ų„tf —Ø :)ŒĢ˜™;’ЉĀ.é%š’{H=žĒ')ż‹µƒü@Æ\ü|¶„üä¦2ż_ĆżVäžJÓžc~żj¬üN–Åū0? ū‰»“śs“ēśÅ$³ūFŅż°#ļž%x.½é­ЇEeģĘGX ROŹ ų’ą¢ģ ’vµŻ ߃K x7h ˆI-•žpą‡½J^:ž;”­üń¼ćū7āü‡#'żŠõ’Ņą°ƒ€q0£rl $@ oĪŻ 4” ½sč ŃÕl °Č øĆ Į< Ø&bG¬~|›™rĮjm śŃš‰-…YĘܓƠe¤¾Š,)} {Ę SīĒ ’f Eš Bq sų Ŗē“ ×Å2 e ‰ [ i1 ę5¢ w›YåčqæDnē+<Ø„;ÅĒ­—ši4ī`¢ćß¶Č)ąĪ»0’ģ Ż@/ÓÅ™d·<™NŃ®9ńÓrv‘»$™'*Ž"[ėw“ēnš£źÄ@Si3z,°ޱÜ!ę– £ĆäĪF×h¬X8jŅĆ s œŅ"1¢#ÕŪŚ$äҳ%9+4&,–v&Ąš&yŽ“&č2Ā&ąœ¦&Ń4&Ž :%œ$™#Š„S!:–Éś²ŅĮ k/śęÆuą44Uq°2#8—Ę@nÕ y oŹJ³‰œ"Īs.„ߊ’ꐄ'ä/$vÉ #‹Ä ]‹s a  {€© Ü~! F4 8Ō‡LĖ»üou9šgW]ø›˜„µćAʃYõAœŃŃѐĮ›8ƒ,ŌÄG“TŽĘü|FŻ Õ6Ę ŃÖž ďu>’,yļ„^¾ŗsó?Ż–]caƒCZ$e›t ż9ó^ś| ÷Ėiō@…ČńŚŖ^šCIīļUćsšHƒŅńŚźŅóØį$öhiųę„DśšKuūńēąūˆ –ū+zĀśƒŗ łvdų/œ,÷W ö—³Ōō»¦›ó‰žKņ8Źéšž]‡ļ¾ @īžź.ķaŃgģNöėµäėXķ@ģ‹#ķ·®¦īo¦Łšģ²óšŪ÷¶Ü•śQ« žĒ)& *§-ąl­égį.ŗ$’&ģxŌ³Z:‹Ł%Ā^’?ćčżłōlü«åŁśõ†ł@µ÷)ˆ·ō'ņÖa#>ģ׏•é¼Ķ\ēĻÖ¶åģ·äķķfä}£»ä“ššå"”Óęj%čCGéžéōéĮ/ūéŖ=AéLśĶēšŽÉå»yćdä1įóEßŌ[ķŻŠ:ŻmkŻßLnŻ® Žv”׎e[»ßɌ²ą›_Čįć`ĪäźxēEŗźĢ°ķ€¤ęńēŠjömoźśy‹’*Ķ’ģ,,±ŌéįL’”åōž~kūMŻ÷Łdó–^ļSg]ėÉźøē6JØä­·M©ąUƛ߻<ļŽ}…mŽØKļŻr fݾÜܝal܌ó8Ü7`ܼÆōÜ»«ņŻÉĄ@ßó±ą?šāĢJ 槛æć*įć, ć×č+ć{Łālķā€c˜ćŠ ćäk²­ęĻB·č~Ä·ź:rģ#MĄķ‹Ó–ī ļVSļŗļÆ[1ļ#‰ļ¬6š8õ)ńäH5ņ׉"óš Ģóa;-ō'Wbō½—ō3œóō™u†õTGöķŸ÷ūŌÉ÷Ż+ųŌųÕ{÷³oö•%õPįó’ĮēņSjņBŸwņņ„öņv<«óŒßKōF¤›ōI!€ō#ģ ō«Mró‚ūņ©äÜņCi-óų‹Śó޵ō£ųˆõÉÄ-öˆ“öśĻ·öX–ö 3!ö5mGõd¾ōV)gņvĄ—š1Å홑øėknµźŠŅ!źģį źHŠqźQė²Öģė4ī–чļōŌš”øń¹Ą ņlyŃńo*ńųž’¼xßX¤*O£*ń(Ų2b†ax’­^‘žpŖĻżŸ€Lż&¤żŪż8sżv ż”MÖü„5uüŃBłūį€ūē}ūāŲśÄ7šśĪŠIśw>Ńł1%łż0@ų^z!÷Y¼Ėõż’Jō™<»ņ(FIń/ö)šB7‹ļ9V‡ļż šć:Ań’Åņa~ō”ŗ;ö‹“Ż÷—˜^łÕcÖśO9lüO”=žĪ6I“šj,lä -­} ¤‚UÉ 8ė 6ÅÆ ×%o«0mĮ%Lū}lĒéų ń« v”⤶ŲIlŽŪØ?Źc SG¤ ™5‹ VK›V%ķŽžeš,żl]üĖhüķ,ż†NsžO$ü’XŸ‡ząšńå«åg‚ļ  óĒ“j Ży©½>_Īܼ>¶Ü5ČkĆq“Ų 6£K Ęzą/OU•·jŒ=čWş…ėseĮ`²A'ļ  ĪF °¦y IęéČ„ß[QŲ××glÕ%2}L oņ rŽW—Ž©ėŖ9¾äX‹ "n"(Tp#?ø# ƒ|#g(ł"51^"{ŽÄ!ķš)!µ[x ūµ–ų”yē÷*QÅ+hW 1_ķ4ĮU}ńˆµ×(myķ.—SēC=˜®d¶„{y3Ū{ „³ā8>ń÷ńq āÅŹgż5Į ŖžĘõ\ģąz& 6q 8k\ “µ rÜ v|b [+­ōFo®p!Ļ’x”ż2VüАbūœū<~›üńež½ø“×yC«PŅJ&1¢ND _ Ó“k NN…ŃĀP¤ĶŽŽų ZŌʱeĢų¶;6Ö RŃ z² g€ s&B ¶3•nģŃØ¾•ōöĻĻœ*5‡N š†’ Čł –°¾XM&©döŗŒQ‡—w\Śó¹ĆD©޾½ ö)®9Ė«fx#VĆćČałM™ĘłŽ bÜų ŒÓ ć”k·œß(:Ŗš‚¹I›żBc¼Ā¾– ”x uŪ‚“!ÜlXųœ–cŻ hT ±@Ķńīž¦sX™żęćęśfČ¢ųœ_Łö9’õ°¬ŠōŪȘōā«šōģxćõÉR÷2†Īł:ĮĶüÕd!IgmœšČ ‰Į±ŒĢ anćFEŅœ×„\ņ ō2~³xرßs}¼2óC ņnŸ_Ę Ā©·_Ąž¾[_ümśŒł×jÉ÷˜™öm±WõUõóņvoņ*ŠšwÅ&ļóœ„ķ:‡÷ėźĪ…ź9É,é}yāēē™ęō²Iå.Ōóćv¤«ā1/–įø³āąg½ą>įˆū`āU˜ä ąąåŽ/ĄēĢĄiéį+ĮźłķĆėrڃ쩬ķ_¦¼ķćC€ī7P‡ļĀ–Śšgņą$ōāsõ Q—ö„ūa÷ ķ÷źŻgų’=ł|2Ųłź¾čśä"ü•B2żE¦’żĢōIž’œšżšņüœqū¤˜¦łļT×÷©Döiõ 3jō^ōŽńōß(ōōS’ō6l#ō>„gōˆāõķr öŚ“U÷Ūµų=±éł]仜[µū½ßśLė0ś5~ł²÷Y÷bv,õķʆņź‚ļš|Gģ€÷’čĮ1×åūB÷ā|Ž‹ątŃĮŽŌĮŻņš¢Ż•4jŽ$ĄżßĘ'ābŖ˜äö!šęĀĶčpę锑źĆoéõq#čg!~ę.·Āä,¹ćl ”įĢvąG; Ž,BŻ‹ärŪ‚p÷ŁĮć×ŲlLŲ« sŲCÉCŁjŃ“ŚŠ‰%Ü.į¾Ż„Ń<ߤ¹›ąįżńį’žaćF7 å ’ęšœ:éģk£ėv: ī“§*šŲræńÓā‡ņ¤^ņÄCńœ`ļč’ģõ×sźH9č0ięŖõ·ä¹¤äƐóć įSä āä…hVå4Å{åŌ>åŠÓ²ä]v ä ©‡ćéĀgćÉŚŃć·`Ėä÷ś4ę1Ļēø·Cé™Ń5ź)łSź~%méŖt甉ŗäī¶sį[‘Ža’÷Ś»īzŲÖkŲÖÆ\7ÖY'§ÖˆżŲĪøwŚzŻįÖßą²ōh䉭ęēēAėżIsīśńšNlōÆ1÷hĪłfāGü ³žę)ž&¾`Ćjt Ī!k v:F ĆFo—ÖĢNŒ@’¼ ·› v-V VŽ ‰/Ö«SĄ…{ā½ŽWµ<7a™Œg‡På~h§8Ø 6'Ö ś9“ ų €²Ą `4Ģ 7ŗE eŸS³5#Ų.ćiĆĄ`žäžKYmżFhüSŹūptūC:ūAž÷śF¾™śŌ“#ś%N„ł+`0łūĻų¹ˆų#Ÿ[ųcHųC)Oų»™sųĪ Įų^ĻLłŽ3ś6>“ū›”~żŅł’ž“ųĖę`x Ź ”VōeŒE„9ļŅGøĒP-ŠÖfRš~Фvć?” Å łJŚī³Sż=Œ’!ń俏j…ü“ūbį!ūZ +ūBš‹ū¢ ü7IpüwŠüQŪIü£~½ū£’ ū² pś }śõu-śkĒŹś5ŁöūŅ9Ŗżh¶Ń’¢“O¢‚ūW;¤< £ A–” r‘ˆŅŠ­€YĻŖ ¾g ˆŁĢ śaźZRĶ[-‡y6 üąĄ7žF}żŗo™ü#*ż”[hž’øi¢kѶłJOž„¶@ yG^ .¦į Ÿä =Œ #˜ū ĢP Ņšœ,īģaśCTG¤÷Ż µž_Ō¶eņgĮņės.pœĖfÖ å—ū rģ P<” Ž«ģ {ž BjŪ :fœ ŚpZ i|1 ŒA Qs§ ¶Ģw ĘæÆ¢5śqąs†³s œ’`Ī“=dØ3OŸŅTfmøā0ü ¦ 'āŠ·æ|YIńÕ›hUÓK’¼Röį¶•ĘŲ¬M8Ŗ: ,=*œų9@ϼŠ£„j.»ŗ&¬†€«œŒųwŹ«Ą’·‚öüŗ{`欎oˆÓrų¤,Ć JL„-gź ę "é”#Šā#A³|$D ō$ünE%‹[%ż>%ŒŲ[$¬ō#õ«B!JL·j¢‡ZĄÄj”›©’4Ā÷ÄøóG≖^UÖ锹]™ŸĶŻ—ŽüÜŽJ½ šLó¾ŅļZ ļ÷q 7D Oõ †Nƒ `Ė · Œb|¶A#ˆoÕ  ß”¢ÅFćŽ Cv % Ÿ ’źóiĪÄJFV“ˆąī#ŒbjÆymåda —źņ9<½3c]•‚Ž4ō!;f˜$E˜m&cɈ'kw(5‡)(|(J0«'‹Ń,'Ä÷u&‚ro%š $1ĻD"łQ8 ʋÜzÓįŽV<C,2C&ečv#Ō ¬Ų ,†ė^»²‡-'<->®öębŌP “Œ¹ Źc“_ˆĘkRpmĻBī÷[”<:²›Ę¦‡Ź›Ož—vA¦Į¦āpż4 üłWżÆö7“åósįń_Īšģž»š~–Ÿń“šOó7n†õųŹź÷āś ó×ūćāüH4ż”zßüм üˆ+åśŲłv"ųYŽ„ö©¢õd#‰óŸóńVŽhšTżī½DĀķŠTÅģņģ$T±ėKń¹ėĒzFģĮ©tķEcXļ–ļńøüõŪż„ųń3Gü2†·’Ņ¢·b8Hiø”¦‘•­’ß'JR&é‰Ļ>¾B ”·jĶ’ēWńżŖüū–›ćłœøš÷/uõ¤č\ņ(?ļ~Ž«ģj źøZŠēt­ęŠĒ 厱«ähGśäż­ąå/E1ē·†Ŗč,Q’é>ćź©HėpÜzź»F é‹ÅėęóeäėGÓį pß­Öׯ$ZŅÜ/3yܛ5ÆÜ-6KŻ_#ŽĀßA ąČp į‰> āū¢uć3;åœēņÓÆźEÉnīīr±ņģ 7÷ŗ³®ū9£Ą’„[‰ŲpX ńžC§„ęiƒ œڇż‘Öšłž#öCPBņµ:xīɤōźó‰åēpk噞ćé=āøWį@•±ąąŒ'ąAX¤ßŅ%$ßČ3²Ž,cŽąŸM޾Ž’Bß.žĄßŗ. ą€{xᦇ"ānp‚ā\U’āSągāä‡1āü9+ā]fāڧ{ć[łä¶œęęœ[ éÅ)ė.Ļķ8hyī`ż:Ē‚żĮtż„˜>żļJ żEsūüŚB żiswżKźżoOž„užš.žrbżc­üqęgśęIšų”ńö¾ą°õ)õ<õ&C1öۈŌ÷1õēłM¬üßĀ'žjÕ’åķõu¢ŽM&.#¤’7WŠ…Äķ„> ­(< ć ² „) (žœ Œ:'TŗPĶT hϘÆø@’‚¬%ž‡cż+—üüŠįīüv 2ż§øżØužĆb’{‚1öŻQ˜~cmbū¼y1t« ^Üą 2ŠA?A]ļ‚cŖį«\Y-ŃA'!¦G‚X­aGĮ © e!yļÆ!Cy»!?&œ!Øj_!P¬!³æ N’‚ ÷ép &é› *š!Ū©! g"#ˆ#††#‹¦ē"•O‘!Āń|€Ķ“žßOŒøo,@Jö 0ĶĖDcöæ-¼ŽŃžՏüłŗĒś”gł"5`ų­ŠØ÷Ķb3÷ Hīö#Ćöē” öFD|öłHYöÖFökĮ_ö"Čöł>§÷\ łxŲGū6OžĶ‹é'kĶ Ž?½ ¹¤¾j†R¶)8Ŗ5/ »Uī‰Zŗ}ĀeY”Ī®UY7D Oē TŌĄ 2`9Š M^±9I[$ŌPž=ĄæüfQÄūŌę`ū*Å|ūlsėūn¹züĄż[kż7W¶ż,ūņżJB8žN“ž£¢5’Ea G)RńkäēÜ(6B‘ź ¹y  :d¾K‘]ŅĶQ÷>ö)¶±džƒ xCÖhNaĻJHé{ķ^4 Ū¶!zЇ"ŪąŹ"C ­"Q×T"v*Ł! ļõKnõģdCöļŸÓ÷yČ'ś*94żxl×džŽ!3 —{ ZÓ–‚CœS“©õ<æ”ėCyھ4'LŁķ£~H†S ˆó/ ÓČšd `[už’Gm2ż„\Ŗū ~^śU¶0ł­bųĘÖög“õ¦‡?ōW6ßņ’uńźšż"‰ī?éśģ£²QėŃõ‡é”ē§®å ŌÓć½JBā…1įnųŠąÆˆ9į3lcā“Ł$äČ ;ęj[čUŽCź5nŹėzłąģģŚ‘ķą ūķx‚FīI°”īœ3ļ‹ š:ā0ń²@|ņœīČóøėóōĄPīõ-’Āöc«÷@pųnrł…†»śżŠ üf«LżFUDž(½ĆžŽDŖžĮńż§ó°üū…E[ł¹÷PyXö•JõĒՇōQZųó³żó°óÅl¼ņļ‚ņ[¬ņ¹k4óé)ōĆØtõAäösq>ų‡.Pło łł&÷+ś›Gēł[ź+łŹ ś÷Ļ@Tö`ŹDō‡ ąńōGBļ:‹ģaOŚé›~Pēé…åm?ć‹8āŁélį~kįkz\ā8w±ć†*Vå|čē2arčķØgé‘ Ęéŗ‰‘é®Ņéč27ūēQ’ģę!wŌåƒV±ä‡tćBĻ āŠļpą”½¹Ž)ĻŻ×!“ŪļG׌}ļšŚężŚĪ$ŽŪIŽŻ7ĘIŽõĢ}ßZ§›ąw²į¤wŽā»u@äQżīå šēķį3źD ”ģȍŁīē Ąšb† ņIė‰ņ­U4ņ(ńlņxļe÷…ķg ‰ė?^¾é‰ńRčy1^ē¼`Żę“ę~¶³ę’lŖę—śqęŹģūåņŃUåKü¤ä*Yä8é性.äęĶóä˜#ę;©‹ē’Ÿččž®ėéS¶LźlóŁéJ„菹bę1Y­ćėŌ®ąóh¹Ż,ŖŪć@Łrė×޲יĮzŲ“«3ŚüR³ÜŪĪ¾ßąć0…ęŽĆąéŽ•ķ—Ü šT¶ĮņŁ*6õŸqm÷$|ł/<„ū•­żE“+–Į–³Ż[łĪ Ų² Všß cæQŻų[bt Ż1~ ņ`g )6Q M”V ¼l¹.u½ėńm%™AøĻ® Ęŗ m&ƒ ž? īp“ ¼k_ z – dW> ?ioIbK.7ūī«šÅ…’Ø®ż¼\:üŠ*ūSlś@Ŗåłū{łh ł‹ĶĻų§C‘ųÖDkų#`ų™Qoų…>“ų`®Ēų6Ó łX[łrÅł„·Wś¼D*ūś"TüŅGēż쒜`¬ź6g*YŅ¢ łŻź+Č5™²V’—ضh'ćęE·&i75­ łōF *$2*3Ś‘} —h&ž˜2ü9Õ=ūń¦sś3$ś4P8ś½…śCŻ×ś__ūöśÓ«śš<ś°~ĪłÄfŒłRå›łł,śśū…üśƒžsdŁEĢpr:Ā“ØŲ@å lŖ ĖŽ Vdxź{‰{ł ± Ķé· ˜‰ Ž“@'£2˜© µķ¢} _`œžŽĢżˆÓŗż‡kž˜ŅĘ’€É›Ć»ØŖŒ§g[€Rœ›ĆZ …ĝ ¬c{ f9 Ÿ$~IŻø}B>¹bīFdlļ0s¹s°ŗ¼ßé‘Q‚œĘņ4l ˆė å" Eyż +ž WE w¢1 -f: Č5, Ź °Ų ķW °K ™ˆ¼ †)jmŗIš+H—”QįYml\“õ_ 3fVJg-ßNĖL¬dĖ=gFWāøBČö4PäłŖ½Ļč³#. Ģ©†æā~įŽ’Ønܕ9ž³«ü„” õćć%­żÉAurßŪXBif'©öŽĮ­j­Š ĄŌŠ’‰d_G²ćfu²§Ėōīxģ(4DJ ó‡L!RU("s~Š"½£0#œZ0#ĀHŗ"Å!“e[ ŹžćÄļ½ć kņ²LKŁa žŚæ_“Źb¢ā%§ØąćĮĘw&GÄ]-Ę2 ŒĄ>“Æx!Sbļ ¾F; °~1 d‹ä É@K ŠC ÷~— 7Z¤’<4]ž#!F_„īŁŻē Ż‰ é5čéTń=¢ĖX¶n_tžé½čh™+ av%!d€z¤į‹Dų(2‡x,j!0Z–#.%•ž&n ‹&Z]æ&ÅĢ·&sv& Ūī%z¼%{QÉ#q·"Éõ" e šŃ­¤~€Z¹ŗ ńżøZĀćŽG_Ī =°ĄśöRęœgJ…IėK+ ·õ 6  1Ÿé£X¹ćĀo›Q½yz4Pe”D-ŠŸ|Rg Ŗ¶¼%~˜Ž“"CżÕėęłI×ömĄ^ōń×µņ@3żń#=;ņyKYó–$õ˜4R÷.łiPū9ŁżLęūż#”@žfšżDm%żg•üūļ`ś¼$ņų]`5÷ŌohõZțó¦Dįńī,JšŁxäīgæ¹ķ×sŃģCÖ5ģŽØųė’ś3ģķ?l‚±š%óĻ›Ēö”:Lśß ĪżdX€™Ūj@ €Ø>’®PébĪw.ŌĢ5|°÷Ś|*’øÓņ’m¼»ż"s[ūÆ×Šųö™óFós)dšļW“ķĆłźĒʼč(µżę !×å>ZåWØ‰åłUęRb™ēč|é²>ź:m§ėõŽ#ģ»čŅė/§ź —·čF°?ęķS“ć‰Ļ įÕČųŽń«‡ŻEąČÜjś®Ü%ēŻłWÜŻćØĻŽR¶ŅßÖąQżŽįe©ćd’xäŌ|]ęŹ'ŲčYõėĶ¢ØļĮ"Źóžų˃Oü0„G 7ĀŁ$؏É)BI_h%X’eU!üD§ųøķõBŽńœĻAī½LRė¾ŚŁč“„āęžŲdåptKä“$zć!ąÕā"ēJās¬Ļጰdįįķāąśąąøn įæÕ]įBnĮįįQāPXāČRaāE\:ā—łį 4Čį øŲįRYā4Łdć¦sūä^r’ęIČ=éLÕzėņŗķ÷Ü#ļ\Qš‰Īń ÖPń’ŹPńv,ń6· ńƒšńv$ńÓMgńUüæńAĘ%ņIvšņ1*ó-—ćóõĻō‹żčõ'B÷AODų{:łVæŅłļłf"ƒł››ų$¬[÷ų×õõŲi ō"ˆó Ēņ'Ŗ[ņŽm/ņ8§ņ# ņ7ėćńg«ńB7yńakńG֗ńJfņ¤I”ņ,ĪPó‰łņó‡Žpō§Oæō’JŽō€…Īō”)ŽōSōņŚnó@č”ņķšńēK“šLį—ļz³æītż!ī/ŌķNęķ%s_ī1’8ļÅõZšŠ ńųŹŲņŽĶóBŁMō°°>ō„q”ó9Ŗšņõjń©^šhµļõé”ļ'bśļ`ĢĄš¶Æń£4ņśb8ó(DÆóNRōäN‹ōuLõŁÓgöņÓ÷éił|góśĒģ?ü180ż,f¾żÜõśż“cž®żżĶ>žšc%ž’,hžG{»žM ’Ū]’ä棞wÉ5ž£%,ż­śÓūfXUśk”įų,Õ«÷šrįö}£öĢüö^ėą÷bQ+łFtØśPx$üŗĻxż­^•ž–-‚’t—YĄV=°J˜8©äž\ö2žčŒHżA˜Ž š1| ßkĄ×rŻ Ā¶4ē+ŠwxKĢ<’Yž­ŚżĄš½żSÜ÷ż§¬vž&%’:_ļ’ć³É­²³†®½Ēǐ1 [M„ĖؼO f×ģ N'± 6‡­ø¾źVQ`Ģŗńjõs ¹%¢œĪ£ –õ 7ŌØ~ž»|# ¢+ D% ÷Ę! ’1 Cb “`¾ ]jF!.óļ!f§„"{=H#“™±#+pŗ#5A#J/"q„| š*›7F\ä(Õ"Šą'+l X5yŽ~ÆCeńažŁīūīłG²cųź$Q÷­c°öĮ—pöBĄwöŌQØöæčöą&÷{_÷ūž÷įJųȦųÓs·ł OOūąN|żG®:É;v*= ”µŅ «ßg~4×õ#cĄc+©Ą2­lØW}Ō ^Źb¹7ҵ·7ŗ »8² ¦Šˆŗ;‘dÕ6ćv·zI’xåtżGü123ūŠ>Äś£­śN©Īś^Õ ūm%Qū“žū¾¤ųūg’mü?Õ ż–åÜż”ēžn0+Ļ’¤—AJń—śĆŌĘW*› 7~g ó_ž że. ¤` ×`fž5=NĀ{Ńõõ{żåüłś“ŗų«%Žö"Ź‚õ‰Įō'?§ōƒ5.õ[m:öŪøš÷kŃłZ6Qś«#ūą`Wū~ŒŪś)tøł|H ųŗ£öØĻóY!•ń9 xﶤ‘ķJ óėŪØźcÕ¹éŖõ2釩 éaL‘éoźģģ–A7ī5T¾šnAóāöĖĄYłĻōūg˜,žŠ“š’±N<Ļr¬+'Ʋ„¢›h‰\„u¶ š"ĖųЇfĪ’Ž»ģžńśńż{ŚóüO} üJ–Aūłœś_¾ śź@‚ł.Ēčųc˜6ųƹh÷–Ž‚öknŽõ(šō³ņ»óMH 󬥚ņ€¾yņmó¦ņĖĆóBO±óĶ-bō]ŠõŻ8¾õłĒcö7Ü÷.Ö’÷y3łøhĀś–Ÿüˆ”žź“?Eœ › ˜ŪčYc$$ĮŪ£|ø.ąü ÆKe a‘Ž īN}–Éɐ5K~8 §WĄˆ÷#¤ —ž rZģؘłE{¬åOŹļ4š8³Ņ„)zØ!_@!ĆČ!õ dēŲNÕŁąךWŸO¼‹–_ןXQAž LLcDgį×ĒpŌėė­¶-r79ۚ ķ· np‚ >€%A×ĀŌfÄY!4•oV”‹}±< „">ŸK OY ^‚ģ ÜČ ±gĻ )Ū c‚œ XB¾:’«ūŗcbʉÓMŗ¬Q’-³āž©’N¤’Xß®ß,µļ†˜ķŗ¹H{H²‚¼ P  ”Ų z¬Ģ 0ž1 ¾x@ Ļ› œŪŽ Kü÷ ŪP į’£ )ó ē6@ q+óē€š,V܀ŠłĀ(¼Ģ+ &€ ­ī )„ Ƽ3^–Ź;“Ų©|)éņ“żŽųÅ@ķRųµN’ˆŠ:»§p*”OÆÅ ē"Ō X*Ä lY• ’ÓQ ©¹ żŽ՜ŽFī%VČTÓæMĢŚ,Õµ\*‚øŅ µ–6 µxö šr, aćÄ Ā Ā>; ĶVV?:ś=ÄŽ“’U…&żņ+pū†'ćłĻ†ųne÷$Š“öĮ_-öŌ­Qöāō÷Ii©ų žóśąķżO†o©ŠFAœ2 9iļ ¾0;wß x¶Ņt²ÅÓؐf>Å’Ęc;§üˆG˜ –÷ —M朾[MgÄĒY“’™’ōåž2,×üĶwÆūz—ś Y„łį]pųPžX÷6<öōõ{LŽóœ2‰ņ…8ńœINļłåTķń!ė<ƒĢčø‰~ę5qä(žćā[3 āŻsāN…ėāšä­oęĪŲČčģ&čźÄ‚²ģ7īßćīžĒXļūQ‹ļŹØļsÜļ!ŖDš1›ėšĪĒńĀžæņ)Y½ó–ž²ō"””õ‘™ö§®«÷ŲCåųŗCśēβū$żDP/žĘåž/ų’xŸ«žóZæż(Noü„Łéśö ^łHBš÷·²öć5¤õr†·ō™Żó§]ó„Z^ņé{ßń„ōµńd¶ūńĪ-·ņP‹Õó'.õ4‹öxĆ÷ZÕŖųFD0ł iJłÅ‘öų&ˆ5ųAL ÷L†õčō“ózŠÆń±)ŽļĶŃhķ4‡WėoÆséCŲē zŸęĒDŽå #Ÿå[ÅŻåŅø„ęį`nēŗTjčźGé›UŻéAźÄĢźĘŪ©éĢ.éb4„č™&č"Ulēsљę%ž…åÜé)ä…r–āˆ ōąž |ß2ŗbŽļāĢŻ#äĀŻ6é0Ž"ųļŽĀ˜ŌßīP½ą8³›įC°uā]P`ć·Īvä곊åhÜzēRģné=£“ėV½ķģŻ“ļ/sBń<:ņ&–†ņ9u,ņž£HńmŌš~’œī”†8ķ]¹ģ޳ 뉄[źŽ‚ßéöByéfétTuč¾Ś¹ē¾äęü3ęųūnåAå;£7å"BÄ冲ęė#Üē` éµ.żéuæyꔊSźw龘ģēy‰Õ喚dć1ÖąVķhŽ{ĮZÜįćāŚwe-Śg­TŚ[H\ŪóŠ/ŻŁW§ßwüāzµåčZéčģ§ĄīŽń7’ŚóõÖõù—÷cCł$µūIń żV†c’d¬}3ĶV|żvÕ ö¦ Å©Ņ *Z dĒQ °˜Ü yß" L śč{ SŃ Ŗūb ‚P@ ŗŲl ęoį ü}Œ 9łR īV ę]¤ ‡ņä |Gø ”% ś"č ū‚N Ė>X}õ#{XÖY$–S†ža³æüārLūYS(śƒ Fł-^—ųzų¢Įø÷鵉÷"ˆ÷+¾±÷ļ’÷DiųrüćųóØhł ŚōłŹśsH=ūļMüČ'*ż”€‡žtõ6“P:œdŒ`ĪŠIÜ ›?œ A"-ŚwTÕŁŒŠ“{²sÓ§Š:÷? rĄł G¢óūR÷ż{ų^Żī}ß}ŪŽžF żŌLjū.mśĻ$ĮłR\yłšœxłń٘łŚ¶ł˜Bøłf[˜łmw`ł,t'łŠŹ łØY(ł8‰™ł]pśÅ¶ūĆiż¦™’.ߎdNŻćp/ cr CS’ r-z Š¶Ó ½© pČ ą› †“Į —ć1 ZmBdˆ‚cŸ`§Ųų_X–Z’rčžµ’˜ŅÓ’ E’‰ÜĆń~”Ę\@œ+p ±#×ķŽR‚äNżžēu3µž#(¤0 n&bOš…?VŽ@‹m»b0_Šoš X& |Š ÅAß ·Lu ]ŅŲ Œ 9õ/ ä½> ø8J ąq[ “Iz &]­ p;ų …Y¤ĖęDśŃĮ'&C¶ŚŠ=uÉ4H× ùį­ö”l\/L•t|śe7ć żUmÅuæ~„Ī ­‡J™Sh§U²pÆŌKXˆšv÷g4­…Ė4Uwœiü,ĻEŪr{„ī“%™a¶Z3§ē)„"ŲżžĖ\Té¤ĘP}mgˆŃ.“}ļtX)“NŠF’[ųeņI iv( ŒŽ+W‰oV9Ē’Ķæäyšk$“Ąaƒ{^¬”ō%ČŅE">§ØÄŠl/j„kŹźµ%ŹW™!¬{×Ų’E»Žē{ėµMqdšķź ‰ü ”ԟ xŹ āØ^ )0 ąēÖ¬ˆR완¤Š•Ź Ÿćk ¹«Ŗ ܎øÆ ŃĘq4nr"IÓ8«m$qŻ}§Ā· /ōl¤¾Q°æ’ś»|„>0ćÅ­!±āō"fŃ#A[$Ēg”$r•„$ųĀ]$ČÖŗ#šv±"ćē@!z{uFÖfż4]†’gź#~j€ŃĄCĢFRģr™dŅż°z_3ĄŸˆ`§ Zžk  ó rU ēµōE@#¬ć€mmk†]Ż@÷· Å)Œ½ŸŅTėGHœl_F»j P)¹c­ @ż(ß3śQbˆ÷ ¦zõ»Ń5ōĄĪóć·@ōU÷lõÅ·÷|“łæFū¼½üÅäžÆ+Ńž×’łŽÄžŌ$žŅkŲü£t[ūÓ&”łÆ)Į÷ŸSŌõ:ūņó8Y2ņ56¢š/ŠLļ±ł7īĮylķ=æ÷ģp£īģRßiķNÖ~ī–J7šs‹ņW¬`õI¼ŒųxŃŪū"’ G!ŒR§{nÉt< …žq .ŪyĆZQlŠiĪ’žéPżb”śRHŹ÷ŹJŪō·ėńųaļ0Ž|ģį¦=źžĻtč¼–9ē õ›ę«å ęĒ >ērVč˜Bŗé¹n*ėj`ģŚŁķUsķ0ŻYģ ŠĪźsŲ¦čV@%ęæ6šć‘5Rį÷ä‡ß//\Ž )ÕŻ2āŻ—5cŽfm1ßž‹(ąÜ/į<ų;ā”@Yćä{ äś„3ę·Z3蜨µźklæķė@ń‡%õ¾!żų®¶üŃ ō’ŃĶqBå’ Qˆ7Éē ±Š8•ŗZģżœčēśLß·÷±>‰ōżL„ńµÉīĒ&oģµ*}źD‹ļčō‚øēÕ©ÅęZńę+4håHČęäćV}äÖs,ä‘Dö椓Ū掣ć¦|åćAņćŪķć5 Éć0/}ćæčć`¬Ÿā›0MāՓGāRū¶ā®³ćĶC;寈5ē%téŲšæė0ććķL°µļ« ń)G ņ£†Žņģŗņ‚L­ņ……ņ“[ņ‚>ņE«1ņ1™7ņ.®Sņ¾)ņ Jüņ#F¦ó‹ć“ōǽõrŗ ÷4¤XųŅ©{łĻ†Iś 锜Ķvśū³ĢłĖŹĄųĘ {÷»c+öŽ~ųōõ¢üój>óĆK³ņ„>Gņ=<ēńŠńŠĶ6ńĢČżš¢˜ōš*r)ń“Ī›ńmŠ:ņ^ƒźņōFó• ō†õ\ōÜ7|ō¬lōæL1ōßĶó»cD󔠟ņČźńÆ~4ńR{ŒšćļšĒ–ØļhŽļ·#ĮļÕIšćå!ńü“9ņ°oó˜ōaRõö…žõšžņõo@\õā6Vō%¼󘶹ńś›ņš všuvšżūXāĆü‰å€żŁ£Gžn^/’ŪbJFžk¤ ąY“YO/år`÷ēzą;ą1½µq®16)Շ°Ų½WäP%’XžĄnłżD+ž¾tnžŠ\’<2ż’aīœWŽūÉĆOv#nTĮ;Ń~ ~rŪx_ŗņµ¶ī8ē óŒb ņ5 FT]Ø¢ĄÕ8Yw•«’ƽŒl*¼Į.¶”[7Ę•E 5ŒDZu~ŌŽŹzD5ӃĀČNo c»/!čĖļ!=ė”"°¶#I+#F¹"fÜ!`ĢźBÅņźó™—ėaķ»ģCŃXī•·]šź¶°ņRĻ0õBė¹÷MĒ)ś mdüJŪVžė,÷’QŁBf<L¾ź\yV3–‰ޱ‹hh_ŒŠąOmnŸr;œUēt’|Až óż2ŸüĖč-ū[hśyį²łEžų†‘>ų No÷y«’öh²õ‚<Żō‡™(ōļg©óĄGpódǃóļjŻóøjō¤ĻõlŖ“õÕ¼@ö4ƒ¬ö\Ć÷—ZW÷tŗŌ÷µÖ›ųKzĄł>Ē=ū­’õü$‹¹žqvZę¶“YĆʔ‰y! Ø:æ8ģMéüŒČß+ŻM4$ w* ó üjY ü5eaģłõ õąFŽų Ś- Ūæ ^@6¼* “ø†gŹU-d$IxĀŪģ ł”głvT¬NĘņ ±ŃÕ ¼YXŅS« žœ‘Žßī”®F׍Ą\hƒڬ—ļJłĖYĻäÄĘqj ±± žµ Cwž ŗEŌČ/.’ٲAß"ß ul Ēćį ;nMŚ=^~|®N|Ķ:$’}$Ų ·ū8 S/õóēŁŌß“J;Z+ńØ s _© cȹä_I?*r¬õņQsąˆB9t)„·UĮĻ‹Ā\jišŻ`7‰j]¬u{‘Čv{qĮ  Ņ i\” e —'!ļ«Ž8Iä…ā`ż’ž;£ų ō‹—ĆąĪŠV„ϧņt ’ķ… <čį f$‡ į# ²»%Ō°~ńĶżé=Ģóō*P ‰Žõ‚}œßε…oßNJĶTLžg ƒĘŒ÷ļÖ æ ęoŽ <)_ G’ | 9³* o² L' ‰‡— [ķ ĖMˆ¾NŸ˜°żv‹°t2½ęWbÉA īźl g–Ć S, “\a/Ļ`Ž”ķ¬½į2–ömŁQ`éüā€Żt¾³]ŃckĆ±ļœ (Ŗc ¹q 6Č a¾rTķ%)ūńćfčŹpUɗv0ł/Dų/ J÷zŠ/öāōō‰Nóöčiń %6ļąAĒģü EźüēēSŅšåy2œäˆ/äS˜jäęsŠåSEē«~XéīĒ{ėCoķļ/y$š«ĆŃš0N"ńŪ:ńš$Ańé•YńwE˜ń¤½ņŽś’ņ=ż>óęeōErŲōƒŠĪõmģö’4ų6ź”ł-ļūn?üĶżåń°žøO’ß? ’d¹zž­ū„żŃ‘Lüɀöś”0”łu^ųév0÷ØūöūōīģóduņņCv(ņņÜ­ń<ńūżņzĻņn3éóž_%õ"Xö£x\÷ßźų}Ø}ųšĶ‚ų®£&ų½‚m÷NböįÄõ(™óaÆņ޾gšG ×īZNeķ"Ę"ģLš ė7mźńĪ źhÄ’é1Q4ź%’źĘXłźA…JėŸ oėØf_ė³x$ėx£Ņź:€ź? ;ź¾=ź‹Ąé K\é ’øčēkĘ綟Œę )值ÉćńßāqpŃį`GpįŁ|vį ĢįĖQā9Žźāč9‡ć%&䌽ŌäĖ„å@­ęäUłēIćŠé²DSėŹb4ķ„ļ}ؘšƒÉńAf~ņ¤³ņéuņYõßń{±ńr\3šÜ1[ļ”#œīuŌųķ3BfķÓ®ŠģŸ#ģX]Rė^ź“Wé+›\č£éēˆĢēV‰÷ęĆķEēļēIÓ蔊ĘéY•źĀėž(ėœń†ź>½réĀQčēÕę:ÆżćōįÉśąā„Žėc¶ŻVpŻ@"āŻ` ߑGÕą}!"ćĪÕČåLŸč:}ėv„=ī1Āš ]÷ņ-{Öō§ņlörŽŁ÷óGł{āśõVĘüėLüž”¤qź žjCpzž”žyE š¢n É+ Œ¦6 Įu µåŽ ū¢ ĄMŠ “6 €A {żB ɲ¤ Ņp1 †NŃ ŹVg %Õ ļżž Ē‚Ļ Üų9 qŪ: ˜]× Œø߃>…śTĢį²’@VÄżÆŅüÓTŸśŸźjłfŁpų"½Æ÷¦œ)÷NŪįöĢŲŁöq÷Bvw÷–öų梵ų»qłkź5śIūCŖŁūsŲÉüõSŽż€õ!’#Ā›`/N·ē6ąŲMĪ8ƒ˜‚½ W3Ł ®Ö«ĖÖ ¤ČŌh&śq¾|s†ų¾.¼ ” «šł …aF õA†"³lPÉx¶Ī©Õ’õćöż}qQüł˜üśc}ś6fłŃłs¹ėų}<Üų»¾Īų ŗųz® ųL|Žųq•ų‡Éųw=łÖgśCIūa;”ü„Ąbž1DxĶ»-+ KŹ<qķ0 Ø~Ę Ač )śŒ 3ś¶ 2q “ČÉ \dŠ ž’ ,?  ŠŪ7č†X“Bś*BīQ,L+S Uhś$;_ę„1 ½'‹č‚Ļe–} ›”’X™ųł Ō=+)ØßFe¹]šĮĆČżŻŹoŚU Pē&~ŁRŪ}cŲ "¾ Uī| ĶĄ Ø{n ”ēŖ ¤hĻ ‘ķé ›Ü ޽* ±\ S™ ƒ Ž z€"ęŲ]ćljŁH¦ų£»&Ł»IīDjQõźņž…ŗ…&¹×³>Yė@éq)=!ŌOo³̵ ¼v>„ū(ńĀä¤Tϳ§œ«²g!½ž«ß L»ę'M‰e #ōÅųĖڊ³Ļ®yØ2ąœƒ[ĪF  BVĢTöŃƒāŒŌ®ūo9ĀL¢ ]Ź ŽĖĪĒ„Śģ‹qŻąŹ{ŗ<²v\ī…žŽīŽ»Eļ z‹š&Č]ņÕ©¬ōųT[÷­…CśŠ×9żUÆĖ¤؈ŠYŻ~ ͣȮ<9aMĪL݆NõŲžŅŃćKŗĪŅūj’1ÖÅüLåļł Šžö ōė[6ńƒØ›īXjXģ£F…ź”ó5éҳwč™įNč'Ų³čQéю¾ź·Z ģ·,;ķLī},]ī*8üķ čģI8ėD+éAKŹęؽä ųā !%į”ź8ąz†Śß+śß— |ą‰ÆAįŌ8/āc3挋JäO™~å2ćę˧čįd˜ź/ ķąąļc: óVgöä"Įł:ćŻüõU’Ö;xē}Ÿļ!č¢iWęōR’59«üć śĖ¢A÷H—ō÷{"ņ¹†łļęć$īś¢ģgė«fźķ˜”éˆÉēč3ŽZčiEėēH“—ēbŸ]ēĘĻ8ē€ų ēė8 ē‰.ęęŖ¦ę¼AęX¶åę&åÉhäĪ:åćą.Æćµėć?½±äkt柳Ģē˜śęé§r!ģļHJīæÖ6š'Éńōņņ®’³óMjō™O9ōœ *ōpŠōćJĢók”óų`ó>óćz;óe“lómŅāóF¦ō»ź±õeXńö‘ßBų†Ī|łž uśŚd ū-˜&ūķ ĢśC^ śŁæłŅaŚ÷±½±öb8¢õźb¶ō)ģó…ó9ó'—ņzņźčń|S(ńŒeń>ü&ńu8ˆń<=ņƒ>ĆņbķfółĆķó< IōBKsōuķlōŃ\:ōUMāóĆĀmóčņG^^ņźÅŻń»rń„(ń0j ńh“"ńš zńcaņÜNńņ׿’óō&õE Aö_Õ$÷QŖ÷<Ö“÷.p>÷)śXöC-õdzńót+ŻņųŲņĪ-¼ńʛĄńę•ņ"öŒņ‘ ózīØóń³:ōüäÜō®”õ£°“öĢß“÷}L÷ųˆCśū­®“ü½tżŗą žõƒ ž0ä’ĮūS’”ƒ”’ 5ķ’-P0P\Š ^³5&„ˬ’ؙõž\Üž¬żßümĻ>ūrd–ś9Ś-śõ5śś÷~_śr!¹śēĆū,xūōĶÕū_4?üŻdĒü@‚żī|ž*Ö¹’±,Xń·\6ŁVz–[Y¬“ē“}Ēq¾U“zĮ%¦jØA³’ÕĀWžšsüżöž·u…žN©K’zF’Y0jN€g.ÕFgŒH”€Ņ ,1‹‚÷ī2„bū7nééĶ, _·Š ›3Ē įėń)ėØDōƒ$'›µäņćÕ°”H¹|µ‰§õH²oć˜cœµXrW}Zg- ¬Ėą ćG[!œ „!ĘG!›~š aŁw×ėį[ ß>{hŚĆ ZÉsKŸ’hY B ­ĀÓ“މ34Čż„ź[ūśÜ`łV.é÷-2üö.”ö!§žö©É÷¹ų›÷T‹Tų:nłąÄŻłTU­ś‚„•ūåŖü/iž½)¤’B°›'āĄ•f) ąŖŖ ˵ܫ£‰ ÕZ'3ˆŚŠ&÷'Zd4IwĻÉ į‰m rõ -]V —r‹›$—dż˜kW»’č鞘ÆüśŽū<Ø­śŽś5’„ł4łĻĄłć (ł§V|łśś`)öś“;üÄ÷żoA’ØäøÄpM©ŠÉx՞‰ėe Ŗ™L |x¶ aӗ Żī fsĆLu%Õ *åķϊøē%žŅäū/ĄģłŻ#eųʧj÷… ÷xĢI÷cm ųz&ł‘gśd£’ūÄ{rü'Żüå^»ü£y üCÕś®™9łT.Y÷”[Yõ`Į]ó3…ń Xčļę™īćÕ§ķąķ ]’ģæÜSķ1éīŗGļ9:Ņšś¾„ņTŖō)rĘöśĻįųŻ čś Źü<~žk:ž’c>G8ŠWlŽ/4”Ļč 6“p_CÄEfōām57BDxŌ’ę‹žH0SżcÆ8ü į<ū>ßXś¼šł ®ųŽ<×÷¢żö§X(öœ*eõ"£Ęō«.`ōžŠ@ōinōB¤ąō(@…õļ·?ö‰Šńö4h÷zā÷PųÕB<ųčżmųŽÓų‰ˆ…ł\ Œś_įÖūņwEż¾±žŒų’ ¢Ÿ×sČ ėŖ’Rł‰ĮÉKD׈ņäSf‡iƒĘ ÷ ó  ‡ Mš T;å cæÉ x,V “ŗĄ›AĆŹ°f1SžČÖzĒ;’뢳I‘‹ō²B‘Ņ5pōó”×X”BjUŻžkćiÅ*,]„æx›ĢŃScdŌ"LŲrś¹Õ~ż Oi ˜ ź ł[ €Qa b dpH õS S-@ ƒn3ÆņQ€æN®šQgųÜ ą_×I i% ÅmC ©_€ģßœd÷WÖ?“J÷°tåėWÓt÷5żR†³e-(„®“Ł}§6`j–ė™'AL …VØŃM>ś„Ś„—®o×¶ Z–ę æN) 14f ‘Æ„ įVq —"‘ œP<š8†>| °ģOq¬ļŖ’ESz’ zė’!õ łwś°AŖŪéY®ŚŪūew ÉØy ą“ļŁÖų4æ{=nń{.öQ ›Z>»ęĆČÅOķB‡MƒÕfew°*yŻė(•¹—ϐP¼iŽź6Į9ēąi ³ |iæ ņ” ÉA K“Ō6Y_zĮķ­“ˆ7™Š“ņ …uTB^łńė ŠI0 & m a¹¢ Ķ9捓 Üv³€o¼P&ņb7‹}ĢtÓ#üų?m–&QĻß °u ōųó 6hhwöā\Tua‹1rY(ūgԁūń0ź‚I6˜6Ūŗ“ĖŅģš×W+ż»UCóIÖ­ęŠ  Ķī¤p2ėĄĄ`Ķ`—eÕ͹jzŠäär’M$kž…ĒéŖDséGÕ~éLßé©{źi-ėøžĢė<Į2ģSį@ģælēė«%ė—MźĆ„čŁiēĪӅåJ4 ä¾Ęā{Üį­ygįŲéyįsz⇼GćŽ"ļäąUłęęGéVĒøė8Ģ(īšvšźöˆņqĆPōaŠõ|]÷Ü„Qų™Š˜ł.ūģ,Źü. Ęž-Zšāh(ÄÅGŌ1*=䳏7Õ ¬×‹ Eā ¤Żģ k†Č žJ” ×m z•h Ł‘  č {Ķ_ xģä GĆ^ ³Ō³ ÆĶ Žŗ› } Ąt5 å? ›Łƒq*Čž‚įWJ准鿒M}<żĒ°¢ūK9śRłįńųWK÷מŌöĀ‚§ö×Ćö§¦ ÷M@µ÷=črųŸøKłć¤4ś2”'ū“Z$üū3/żLõNžŽ4Š’Üpå“'bsrž•b“ĶŲxƒU: ŃÓą ™»O ©Jj n¦‡•Ru"Ų{ O • !x| 9īC zE󒘉š0BŹZō‘˜äģɘ§’O^ażr¼õūmĻśL\ńłN"Tłźkéųs”ų6¢mųk3Hųl­0ų.-ų8€Gųц‹ųƒ“łe¼łŃõ¹ś13üplŒżŒåT’5JHńNY9K5Æ uгm]ļ ƒTĘ š4 ܼ= *€ź bhF č^^ üĘ@īžuÜ«™b`J5–eAi—>A">Ńõ„ļÜl·¤ƦP5ó-8|悱EĪ'>:>‰ÖŖŽ3]Dł ĆłķD¶üń_>=’µæä`õÆ6Žü)N¾)^O# Ś ߃Į ĒoQ Ęuµ “?õ ' õ: sŚZ ŻB… „½ @ ”H Hč‡ p޲ 2}æ 3­ óƒ ѽQ ĀĒ, øw% ±ęD (\‰ ž7ē <’Lvč„Xjāš:÷’œį®Øł0ZŖœå ß ‚ć a,ø‡æ~–?«ŸŽŽĮŗįwĢē †ÅEw®|¬iÕįÕžį˜­‘>_˜ø>Ėnļ"'­sć£žōŽĻĒ$ķi•X‡P ūqØ»g-i31’-Ykķž,d[ßä¤OAYŁ ƒk'°īŹ÷ģÖ]UĖņѳ©aŁhÖ²¦ jjg/+§UóŃØAķbk}P\É÷Jrm Õ6£:8$¹EÅd<ńJ 2Īq ęĘ× .•s &5 Ƚ CÕ cõ‰ Ų’ C]w )«ѓ½z§Ā†ĮÖf¶h¹wƒĪ€pro¬[gs‰\¬ Ē,2  Ś%z;/ļ=9 łP½‡°†ĶŠČXK„9¦Ų;7/ 8¬ŒŻ:̵‹Ķ@ö#‘l¬Ż5)sJ†V²jBų {eĖ ē’± aéž “ń‰p1n/VN{&5œĻ4ĪpdSÜ8ÓÆƒźd¶‰ė{£œ{Šæ ÆXD9J88·Ł˜MĮ]ę¾ĆLŽ“2mSėżYNŪū¼C-śX†łŚšeų“„\ų²EÖų‹Ń¶ł† Ūś˜œüžhZż×óqžÆJ’^*Ī’ų”ļ’¶/¦’.‡ńž¹Łżjoü$BŹśbéłŸ,>÷>x‹õµįōe¬ņD’˜ń²dŃšlĀaštW𖤾š}՞ńF¾÷ņ“¤æō‰ćöčŠHłŅĻū ĘVžģμøäŗ·&Ž")Ą<¢‡® gCėĮc{“’!]ŅtGr)įžny<ü²ŅpłØJšöü²×óįŪGńÄöļ%¼,ķĖ@Ėėėķź® ˜ź‹"Ćź“G]ėŻ­HģÜ\ķBjīpŻ>ļšÓ®ļšļ•¾ņīä¬Ąķ™˜ģVa:ź—ECč’žkę}ŪÜä¹³ćøžākN»ā’įŽāUćŃ äĶFęä­’äå‚Īē}FčMLŗéŪkė“pdķ˜§ļŗ-ņNććōy­÷—ų`ś[=ÓüčäŲž•N|zØ4cŸ$o’­DĮżĮ%¼ūž·‰łÅ„R÷dŒ8õgS󮯮ńm"Kš€ó!ļ-")īżTWķ%*¦ģ£ģü’›ė¾AėzėģLÕź/³źDź™+Uźõ.üéQéyéJ­Īčߓč[:ēu)‹ęP ęD8ęüD–ęŽĮ”ēBö é‚Ūź?ŽģCłęī"ŗĶšAłrņēlĆóM³øō2ĆWõ¢b­õŻ“Éõ—y»õ²:õÜ Nõ,Ōõof¼ō(–ŠōµŒƒōŖćŗō” =õ%– öĖń÷OUDų ŠqłéøwśT 4ūńūõ؃ūĘūذ^śČ·uł[fwųZķx÷()†ö›¢õ}$ŹōĖüó9$<ób“ņh ņļsČńA Įń†ļūń·³lņ2ŽżņRś•ó"’ō)Fƒōy5½ōĖWČō §ōN``ōü…žóń±ŽóNó Y¾ņH xņC\Vņ¬5aņjĻžņŽSó‹æóÆĘžōcø¤õ_9¼ö_óĒ÷Į®„ųż?4łĢüZłCł_ų®b÷ō%DöN†/õ^Jō]¬ó e\óĄ«Róą~ó­ēĻóšH:ō»ōVõ|Jö•vóöķšö÷ĢołZ6śĆŠPūhšRü_'4ż@Ėńż÷ržSw’?ሒ 0ņ’_ĮP3®žjĆŠ¢Łm?®>5J¢Q²’ōkōž‚¾$žTÖYżTØü4XüøĘū‚šū­ą’ū  ūcf²ūÆĄ¾ūņrĀū|’Äū ČÖū/ üęI|üČL2ż”©1ž—Go’¢Ņ˜¬8Ōy/ŗlnõ¢(uY—ōAÄ…2©ŖķlēÄ7©•.’ŅožV! ž¼SžĄ>xž@z3’ M,½GqkĢ)FłrA;v_Ņ>8¬Qs˜’Ē«\1Ūd“@°6ōĻ  Šmi ü Oøī t‘ĻV¶šõÆ8’ņ›Į¢­iūk³Ō ŠŸ¤Ļ3AŒ/š=_·5H”į|ō]!Š ¬ŒÆ:Æóƒ¼Üßaŗ6~Ó\7Ā ”,yžY{b©ŹģĒ&Jƒp†@)¬ =ÅfµŪ“}ž²Ī@'’ŗżz‡ūG¾ł_pų¢N¤÷—ļT÷€r÷ĘÖå÷Ö •ų`™hłč„OśĮAūŁ @üßŲQżł‚žģ¬Ū’°•fŗŠ$'\›źs$  R?æ :ü ,į~²<Ń^(PĄŗȶCe; ÅkN {XJ ęƒ) RĢć˜­ta`ßƼ/ŚšwN*ĢĻŽ=’ _Ųż¤ŚŸüŽ“ūO™®ś†ēšłœd\łRō÷ųŠ[ĶųAšęųz:Kłµxžł°™žśē¶…6Y7(‹ĻžÄ˜ż&čvüž¤lūTuśłgŠł‹č§ų ŠĢ÷¶żö—Eöe³±õ6Tõ”ū9õJąhõ„żŪõ’ƒöT¦D÷:\ųÉ=¤ų…Õł0cUłopłž€łyqØł_­ś+ܘśÅönūIrü eˆżŠ—žUzŠ’n Ua2ō­©lSEÉ0ßėo ģߏ5z[ˆHšI„µn¤@œ¼Ź­Ę} eæź vśå įŽq 룅\¢¾˜9&°5'Ą­–R¤-ąŽ¼oIŽYĶtĻUu¦Ņwą8:O!ަ¾ä£R va|ć”·`u}¬ē‡“»’£OŁ‚ęQÉ6jĪÖDŲ¶=u‡ō©/ y2œ ZSĀ h” -i@ \°„…˜–\’_ĪzMw#osWƼƒ7   ”µ PĀ| āJzׁ¦gٚb|±g,#$ŃO¬Hˆ÷0jūž"Æ'ĄFcÉ»åBšxdģHÜV lͤ®`H« «·ż \w ¢ż" ĘI <šd!–g½Gq-yUŖśLA§ĶXž’äfP’s’©d_’o&ŪWzqĻJŚ]|1ŠwÜų7i·²[żčĪŠü?bžnqĻ~—_‘>VĆ8)cžĢI;®„_Åī%ń6īŗ“ īœØķĮxķq{_ģ)œžėuģźJr[ź”öé7}½é(ŪØéž'ÆéŠ×ČékCóét\1źčpŠź›ŠėC(°ė ‡ģˆķ/{§ī ÓļŚÅõšž˜ūńMœÕņO|óūļóA:7ōćJ\ō Śiō®ĻgōŹ“Xō”s8ōb#żóųšóü]ó‘š7ņ?ó:ńĮæšń§żī$öķ–Ø$ķĶģ݉iģ²?‚ģ4ĄŌģ)DķŌÆķāŲõķįŁ’ķ…æķŃ63ķtĄcģ \aėm@źséÖūēžņēåœGę¹³Öå„ĮåIę<&ĘęŹ!ßēžēOéB$ėīģęŽéīqŻšyūÆņōOōʄ“õ‘ēöøŒū÷€Ė łČ/śŲn~ū?r’ü€Ę®žö$}¶Só›J³< )”"'Õē“f  —¬ ×Š ų7é ę ĶžC ”:˜ ÷S `]t ŒłŚ ü3! H4 ±n ē$ ė’Ļ o¦É AŖ„=« ŒÆk,O³HmńÆ3 S…ž–ļüOxūvČ'śšłń+ų[½w÷Ā÷ė±÷2»=÷³T“÷"é_ųĢU3łC`"ś˜Ģ#ūŁr2ü"MżćĢtžxŲ«’’ŠóӔKgb±°ļ<ć¦ķŹP0 Ļ•B h Š*“ Tü¾ ³@š Ö=1 įe” 9Ó ķę÷Ł]m{ųžĄĖ>õ{ĘŚ M؅˜Žł’H|žz^ż”0īūIqńś„Ż&ś^ˆł{å ł-}®ųi‹iųS×>ųż‰2ųĮJų4Žų„ił7i¬łœęŽś|NŖū˜»ūüY|žß&|ŸŌŁzˆ=%„%–0yÉ}U²͘I ²¹ Ż× 'Ÿ, 凗°¤ĪżĄąŌNßė„Żń_ļÓ &ąøŽ•-0Į ó^fF` m~įö1óŒwˆ¬›ŹĖ’šŌc,ČÖØžI}łŌN©)&ķžˆ*Q­gаÕæ0t5«<>#h–N?å6Ū  Œ4 :ž ˆä „³ Ué1 ±!Q F x O­ ß}ķ ҹ2 ˆūp ¤š æß£ 6އ ÖźH AŁó Ģ™ ˆęL y  p ž °?? śĀn ÖӚ /Ŗø ŒĀ Ń{¹ ąh„ ³ ” ņ– Z » ŻU āŽ“ ßfG ®X˜WīģČ䭍Ą„:IŅ1OXŽĢz'I#]ZBaB*F¶$— ²@L‚dk•lF×UNżž‹pžÉÆD֍ŠęZ”ŃłyŽ@eóC8œāŲO6NMå(‡Ž£Ž‡rTˆśH·Ax6°āµ}ü6n¦ųW­/6Deę°ö»ģ,CōMˆÅw)_¶ŃĄ~«ģ‹Åč!yæÖy~ė4Ą;ń uæüCØ #š° £ Ł ’Ū ŗ£€ gń Z˜i /āóÜT\N¾fõåxNHÖĘ_DžÕ®”+ŽŗĒ'4dÖˆ Z«'ö;žŅ ųRÕ ƒéąyNÜ\Ą³¼·Z…¾ĖMšmG ·¼ą;£~”įąÓ’ oŃ—bS‚å…bp•>ö”ĒS ¢ånrå×¢2QĒŁß ļq„ c&< ¼: ‚×Ńé§ф’mŠ5l'%üiē^ķ…Nxļ?Ä–ÕfČsPóe>°‚'3}ć‚-Ōøs’ =Ū“† ³\ņöץp"IŖ‹žSż/iĻū’ś7Ošś|ś2ĀłśXœūģĄmüMöTżJ:žJ’5Y¤’fČO­™Į’”D’ÅÜžńŲüf cū`ĒŌłÅaEųo>Źö^uõo‚TōųuóAāņė¦ņģ¶ĖņUóøõCōPõå’,÷KdłĻF ū!£ żEB-’Œe© ×ć–OZŹw_XE!d°“E³Ź¢J‡Äu7» ”0&™8TžY”Üū¹Kłō„æöw0Vō‰Ó+ņpNXš‡Äķī<÷ķąyķ‹mķQHÅķŁćiī@4;ļĘżš–VĶšwuCń^¾Zń¬ńV÷>šœģļį3Æķ³ ģa’źH%éĶ#õēį¢ē™vŒętN\ꎦ|ęņŃįęĮfē’1Kčm?é·śXźŗĢšė ķŒ&¤ī¶Lpšģ'iņU*…ōپ³ö1ŃŻų­±ēśĶö³üüĒ&ž)’K÷Ŗ’µH¦’ā;’ŹĀ$žy8Ļü(†=ūM鐳Øč÷Ž[ö®[ųōi Å󟯾ņ"ĮŽń&ń'ŗwšé@éļŠĆrļyŅļł[Īī™ßšīóqīóĖEī£éīp;­ķŖ)ķP2}ģŠM±ėƒ`Śź˜źGx„éćuFéHŅréxšź…#ė2žŽģUė7īFūļ cµńŖaIóhĪ”ō­^³õŚ|öŠ)÷«xK÷°Ōd÷+V÷ŗŹ'÷„+ćöt•ö»KNö™Ł"ö‹=&öZ5gö$ƒėö!T­÷Ų›ųĒ꙳9\Šś4INū†_ĪūēžūY(ŻūEŹuūh&ŁśG?ś _Ił«Kqųo—÷źq¼öĘMćõ\SõƒcQōŠd²óƟCóéóUPóF\[óöšĆóš¢>ō,·ōĒõSaõgR~õVGsõŠ"Dõͧłō ōÆ«Eōd¬ųółķÅó Ć·ó]£ÕóÆ&$ō«ę¤ōūUõķ 1ö§E*÷E¼/ųµń)łžłŽž‘ś/€Ńś5³śr›;śuā|łK^“ųm}Ÿ÷Dæö¼ör“…õ19õÉŠõĄl,õ˜Ń_õWN¶õź0öiŚŠöK£”÷+Ivųµbkł%ņfś/-\ū”Aüż’żŹĪĒż.ėjž&Šżžž™ƒ’įČž’mUBČźl¤.ULF¾[Hw”°’ ’B”dž˜ėŌżØNfżO³żE©÷üi{éüH2äüqõŲüp³½üD½üt8Züąć*üĢpü”\8üp’šü Eżq˜1ž’|M’Œ(|’g›?‰IŪ(9iŁFѯȼühō%\>H’#ž]ų9žšk+žÓCtž‰_ ’‚/ē’ykģ˜`$żŖ®ļ#”“,“’ł5Ę­?t0Ł7!oĮ-A‘o8lųˆ×Ī‚0ķMŒC qš» äE= OŲ²öŲ m~>-ūGć’+ėóOP«ŗ­`Ō9‹ĀķhĢ3č³cK–Š×`ĖņžĻ]]ģmø %éĂP\‰—3@ŽE±ɱē wī bĻŃD’™×< » Ó Ké[+ŽŚńg÷5 FŹįżį<ü¼|śķncłŌĆ»ų$FųŖö§ų@.łŠł¶ŅŖś͟ū»‹„ü±øżżł×žj–N «ųʓŸéĄ!•‚5Õ 27Ś x^ µņ ĶB ŠŌ 4jr “tī W®Q kRž hŃŠN_ć_Ņļ¹ NŪOīĮŒ8=6Yņóž,xŹżzĶŗü&¶ÄūXléśg‡-śe™ł/8ł¤įł·u9łW«łP(kś„ztūC¾ü¢ƒ;ž}óŪ’j°Œ±9\Ģ…1QßUė‰+Y‹§"Ä%/€x³ŽP\ę«”·˜Šėp±°Ö.śžnkż¤Ą üø0ūTpØś| ‰śföĘśjKKū÷ū›^§üģČ:ż¹Ž”żŲl”żPųUż²ü™G¾ūq ‹śQō-ł-}æ÷‹”XöŚõ¼™üó(,ó5ŃŖņ¢U~ņ€ŗ¦ņ^“óŚŪóÅOŃōxEšõˆ…*÷žžsų"ĘĆłæ,ūŹķaüõ×Ŗżļpģž0ķ"į‰H(/UX]><¢÷ęs¾§§8ø‹«żźjųŚ{* eüū9Rń ’˜®ćż_•Źüģ Įū–%Čś•čÜł=/ł‘j5ųķ „÷}÷ö›öÉzöR œöĮ]üöX÷3uCų‹œżųŚå„łHV)ś4jś `¬śżæś÷ꊜåńõśRø?ū„—“ū¦8Pü-BżdØĘż-сžBb+’Ÿ‘»’¾ƒ/X‰Šģg/VŌ²³›:5‘įńŲ³×ŸŁõ(4bK„ŸĪX”`X1  ”«fõ>˜ 0~łųDW÷•'°ģ{ķǻSņ·ßü6O@ģķY0S0ø*Óyį "|]šéC†4ŪĻ1¹Ķ…ū€ X©Œ3üŌ¦ms`ī"’lø½Ų_$!·FŒ>%šsKĆėig" Ēk¼Ø–¶7 4ÖÅ4SÆMųŠ‚¹ †Wv nŽŌ %7ø_l2~Ru€ügņÖ5]čÆąy–åąńš] ?«Cy ą|(|· cöʉ&rGŻFĀ 1Y„ xę` ”RW p>bć³xÆ(ņėžMŖžœŽHźt¢ź^©ü_™ ’P ’!ÕĪž–Dżžq*Ž’”Ėtƒ˜ĒĆ×…- r³,[Ö®/@4 QBU'Ÿ9!¼TjšŻ4ąqŅn2. ć4-exŪ¤“ü虩*įg6{¢÷Żģļ®,_ėķ g„ŪÓ¾ÄŹśJĒ™ūŠÕ­ūšū \#!>ś„ēė™%Ģó@śä®­-JT[ ĮÜīć9ā+®Ł éŌĒ r#” ²ō\ īõ ¢™i 0D· ¤yŽ b¬Ż 6± G`U Ä t«ł ōdõ ”“ŗ Q†R³oĖ×ī8ƒ¤±įLĒ øģ<b•Æ’U~’/㨒(„äķĮcåņ.ōAbü™Īߠ߃>•ÕšŖĢY’l] Åļ†ķ&ĶžD£ŒA8”|40ą’†E]’?Õ龂Ųzž ĘžésżāĆż}²™üæÄ;üä? üŲ×üŠxmü«™ż'WžCo’„7śD ¦ņvUŽź^YH¦^ZRÖ Šh åÆa ,s 8igä=™—X²;ÄĒš/źĒ#ڈwÉFā"ż\±¶ßQd›ßęyh#é’g‘m’äóžž0xžńżŖPż¢†üRĄƒūŅ>śæ*µųūōöW<õB“6óĢ„ƒńs!šøö-ļÓ»ī<ĒĢī5ÄSļbl7š3¢VńūŹņā»ó@šĘō­ļœõ•Ė7ön˘ööČĒö“"Šöģ·¾ö> ”öüO…ö‹qzö‡öųŅöښK÷ē ’÷^3ēųµiöłū5„3üńž/żKœųż‡ž%iæžC^»ž?…|ž0֞ƛ}żuŻŠüY üÆÉ1ū-‘AśO@łšó6ų¹Ø5÷µmOöw|—õWÄõbšęō˜ióō9õæ©õ'×1ö–\æö¬PA÷nˆ©÷īĢķ÷sĆųź[ś÷d~Ē÷Ėšx÷ˆæ÷՗µöėdWö–BöÄ©Īõ ·­õ‹¤õŗ×­õkéæõVeĶõ ĒõąyžõRÆIõøAĘōžSō -Yóé,–ņI™éń€ČeńoSń^åīš›hźšCńš}Pīšš­ŃšĆ”šö±9š ĖļX XļQ®ėīŗAīĘlFīāŅīHģķ¬+×ķĄ Ņķaąķu­īń‡Kī\+³īŲč>ļ³ ėļ}±šRč„ń-XņA óƒ¼ŅóŻ—kō«ėōĶTõŗ=®õ üõ!@öĪxö‡oœöŽ-¢ö϶|öO¹!öŸÓŒõdQĀō üĻóĒ”Ėņw8ĻńńƒōšęŸOššUėļĒļėŌÖļ°-šéŅ;šTŽ^š,a[šŗš%šF»ļŌŹ!ļTØeībõ•ķšķĀģ,Füė¢mPėO/ĢźŲhzźó“cź’Žź[»üźÕØÆėf£ģŗhŠķų¢*”šķ"ņ;˜ó[óōŹ4*ö£ <÷a1ų£0łL˜śĆė’śżŸüØ4Vż­Æžv“Žąć÷aH8°rø¾mŻW6ÜźĻ€õCØöŸõMņĻF ‘ę£ j M›n ‹ÖĒ 0O ĀA t>õ AĄ• ż}ų »æ Ń;ėŽqˆæ µ¢¾%…†­’b£?ž–IāüŅæœūģžwś¤`~ł^ŗųĮĖ4ų,ó÷ū˜ö÷£Š;ųF†ŗų|‹iłśä=śöą-ū^ų1ü@ EżŠSdžöŖ’æ`æ˜÷]į0-pg­ś’%y©7Ÿ%ngõē÷‘śI .] =Š7 Üä~źo’ę¬"MY„«CźŅagĘ!” “āŒ§»k’ŗ<žp&żČ˜.ü³eXūż ¢śŁśZފłÄH(ł²ćų ĮųüµĘų•Ū÷ų"Xł“ 鳎LŖśņ½™ū‹³ü@•ļżZįE’‘ŖÅŽh‹d2ĄĘn­~y‰Źž*yŽ–³~Ϝ-¬Oe}ŌHŠ6B§ƒ@:ĖĻ”9B…y«R½v9§čȈ Ņ›žū±RŲÄƬŠ^üÓ±Īw`Į@’¬ę“n.v“žZ"ÆFn‚Bš*WłN`źĮpéēśDę>Ą|o›Bfi»¶f°9‹ Ē«m 50¢ åĘ ™#ę eŅ 9”4 Ź^j ÄŚ„ ųŻ é x< ąE "¶É Njt  ×O¢ ćēA „żõSĆŽ9©z¾¢›Ø4y³ø¾ƒūĘŪэKćŒÅ ;^D …¢ Z! ;¾ ”o ½* Ļ&ä &d“ M‡4*>ČuóQ¦žŌ:‘O“µ¼’$.ń?4>f‚£­—ß³üS0B·y”­³ b( F({ E_& Ų 07 īFš >+ ™¤Õ Šź‚¼@!iņ2׬9ó`ń4äJ—į?;ühß?%®ÆźFsö…!°“”a‹ūLrœ¾1ÜTįŹČ‰AųƂ®­Äēź«ćżŲēī#B¹Y, šH ü o Ä„ éBÓ —› ˜2O°•HŪć=G<aü” yõ+¤]Kīb!› ’:į§ŁU õD~¶lė~ĄJ‘0 7G¬ 68$ #ź‹©·Ś» īĄ=‘ iŁUP~=ÓõP82>`p± ‡ļ”ĢFܽ6Ą_Ł…É9gę æ“ ßnG ś DhĘó/S”_÷~5™¤jķ%tIBą“Vöb¦Ö\ĻĻ„čw9É” ą–]į^¤÷Š“Ÿ°#Ÿw6X'ē?‚;ܧBźū3Ŭu‚‡=’\2ž1Ūcż“Śü¼~˜ü¦„˜üŪõŃüøJ8ż=Ö½żzÉSž›}źžŠ‡q’ˆ3Ų’ÆUÜt^»’ŚC'’¹PžPuCżüłŠņŹOņNń°kżļxŠŠīpˆ¬ķ 1„ģ,OĖėlJ*ėĪ.Čź®%¦źÅ˜ĮꩵėĮķœė†Rģśü0ķ„u6ī `ļv«šÄņ=†šóĄš2õ’PÕö–żtų¹Öśę/nū ¦ünyšż0>žV(ˆž¬Ųū‹'YūGSÆśĒךł33łM‡ųˆų÷Œ÷7C÷)Į÷÷ˆr?÷™č‰÷UĘū÷’=’ų@FłāUśŠżŻś&†Ŗūąkü½īżÉ^Ąż*‡Už³ąž3Zd’ Øą’B¢Rč'“˜źüoK$ė¹#¶ļųÉU§¶8hŠø’’9’kŖĒž€:ožƒu4žšįž Šž‘R’żG˜īż’5Ėż ܑż˜ĄGżøśüĻ‘»üĒ üź øüĢ÷ żG0žż)„`žē6@’#ī"\ķNB‡ņ†ß#ŖīÕ^·CpE>«=G”[’UŌždc}ž AdžbžĪ¦żžAѦ’*ņ|qqnį4h؁W«+U˜ÖĢOA”ŽiØQ˜ pv­łX Vjē| įģž}$ÄO¶’K•b `2… ÆP„ Sõ· šJ¶ ›žś²qK7DUö“·I‘€dŅR”o* ž½Śæ‰Ē_3čĶĮżedäóœ€1`Ó!‰ā¶: Z¦FÖ@ž3×wy Y„Ŗ 4É qo׉Ł0€ÕĒóŲEŽó’‰Ū7žlLøü¦—„ū¬‡§ś ”%śĆŚüłōg%śV“ś.–8ūŽżüCäńüö0ļż.Ó÷ž£©Æś5ÕÜQvsl:•~zß} ^Æ\āZ•Tžą7Mł’(ę/£±GĻd:Õč“g"“oć“ÄŹŻĆéķTCģs›į’jÖ;.Ń’YøÕžQøåż*;żK-üµ^lū‡ÅĘś GśŹoųł'åł#šśą#Šśż~Dū†Č=ü`ékż'BĮžj‹-Čęžgē±H9``,­=īŸ×VŌ(O0/1iė|©`ė˜”꩏æ^ØÉ:rŗœ‰q’0+Lž¬®]żį³ü¢įTü‡>üŖŖdüPܶü²Õżų¶dŁÄƒwžYŠŪb3ö^EuDyt<’ž/6žÖ„7ż DüĖ2^ū@wˆś‹¤Ęłü‘łX˜ų¬<ųælųkœųŅĀbųE`Ōų¾”fł <ś„¢śiū'ū:¤Œū’ƒĪūšżóū#Æ üߔüļ?ü6vüŽźĆü9&żY¾–ż%„ žx™‚žÕ#ļž…#N’†,’ūŻ’‰ˆ_‡Ežx€¼ßĶ ¦59ŠŗŖ|X¶—ńź®žĪEņń¹ ”ćĶčpģībÅ柤ŹE›¦Ż®‘Įß©$(’Q~ ×i)(æ5i2£”F§øīžP'|c€@µžļf&‘ݦ,bĢČz²=˜E]…Ų-^ńVW¬Œ“EÄZ ōö EŠæh›łĮjŠ%7£Ōæ|[ņhzµs L§ʇ µDŸ­³aXĒHż¹GōLP ¶3U ¼L ź. “ßū m·“ @ß\Ī?÷|/„`11ņc•„QĢŗ n›48Cī²Pšé-Ųż kHē b[Ķ rc¹ ēD±.·ĘģÉJÅåc¾Ō'%/A’=ZŽtgļ™ģÖ’ķÜ7’‰QĪž§„ž½ Åž[{,’.­Ó’;MŖՙ3¾ˆat^Ž oov£ŠØÅ!£™qn×"šFŹGHxR:0 &[&ķ,q€W½K‹|æŽ$ģaprO)+ȁ ! eĒ£ Ų\ č²K Ś0q u“w @] 0\ Īæ¶ ˆŸ! śĀ[ żdŪ‘AūĘūŸģ#C`@łšÜÖmī’IĪL’enūžŠüžīZJ’<&Ū’pŸT{)ó[Jž%2»Āź !Iö7=Ū 1š“o’„ÉKDn“¢0ē×7Rƒ Ł’jūy’tŖ.’`īž2Ŗ°žūŹožõr*žŠkäż ¦żF{ż+Õoż½żü.俅Šož—ē0’„lm.šKݲdą·fĻŅ@ėęuNhlvRßaė¹E‘§|–PŠ-ū­†y?˜ w²Ŗ‹X'4 –ĆA…v†&DVŅ ¬|čƒ%tߏ’ĪTg’¢ņžYĪ_ž[„żó.ŗü憛ū+ŸNśä‚įų9j÷lķöxõĒōū`ŃóüI0óįNģņļūóļŅhó-ˆ ō^ļŌōÖ®õ­ ‚öé @÷šŒÜ÷Ņ|QųՏųeĆų,ŹČųī]¶ų§f—ųnyų_:kų{ų•“ų(ĄłsY“ł…sś«ēJūŁq)üBNūüÆżį8žq§ž:;µž'­ž¦®}žDź-ž] Āż’N>ż‹Ē”üGīū/&ūÆXQś™złķÆųDĻ’÷žuv÷ć”÷m@ńö.ōöP‚÷÷`÷-ܲ÷>F ųBtXų² —ųŪņĄųŅų\oĢų÷x“ųŅ‘ų$8jų¤Hų1ųØå+ųÉG9ųpXųž+„ųÓr³ųA+ŚųÆĀźų‹Ųųõ†šųžü-ųš˜÷4ZåöL(öśuõ-EŻōJ€lōłæ%ō< ōI~śó9üó‰/ūó{Õīó CÓ󊂩óųŸuó>†<óWó\æÉņ5@”ņ cņ¬E8ņ®żņ~æņ¤¦ņ‹fņæ Nņädœņ"¤ókQ~óĀōŧŽōšĄõõ?’õD{ö¢·oöd$Ōö!R6÷'~˜÷]ś÷˜˜VųųÉ„ųådÜųvMīųčHŃųœĢųSū÷ L÷ą+‚öL±õ”īōU-Jō5)ŃóQc†ó­dóA”_óuhfó—NgóPSó»É ó»Ģņ¾Zņ¢XŅń?c?ń#œ­š”T(šč;¹ļXėgļyÓ9ļap2ļx«SļeFžļ”š¢ū­š0oń[“PņÓŗJókäRōŁw]õßi_ö|žP÷œ-ųYųų¶łą=pś/ūNAūū #ŲüL‹Ēż ÅĒž gŌ’×Łę”’ö”üŲī×ĘĻ{ƒzģ$’sÆ r)ŗk™ü8jGńČ /%Q xg µR Ž/ Ȅ˜LŹó,F%-C4·ų(˜„ ųćœµq/‡–Ż[’77žSż·]ü5R1ū«¢mśę(ŲłIĮwł9PłtĪał¢W©ł­’ śŃaĮś„µ‚ū`½]ü¢CLż“#Iž žO’ęĒ\°Tk>ēvžĢy›m ¦H€›wƒ•ˆā÷Īą'šj'8ż-t³ QU½4ģÖv}÷r ×?ŒĮĄ’sP^X„vÕśÉōĻ_ ˜i"’DBž­'pż…ŅÆüé3ü¼«gūI%įś-ņpś/šś“äł4*Ńł™‚ęłĻ‘&ś}ē‘ś!'ūÓ¼āū+ÕæüI°·żŗ;ĀžLÖ’"źŖó5Ēéž>Ädw|Rš \’t°įHĄĢҧ¼VkĪ,„&°0µį¾–õYŠļļĪ¢ėŖ(L˜);²_‹„ƒøtK²]Śl?īTŽX÷‰1Óh²gż•£é€гu Px½»ĒI»Īu·‡nerõ‚M•ć¢E>Žū°t«<ļJõtŅ¢d>f>ŪɡņČ4\2źTUlT~ⲫJŲ`ūh /ˆ ÅćŻÓ7œė7DÕÕŽšø’čĄī’ŖsO³ļ’%eŖ’}3’BXžßFĮż_rŚü·ƒęū|łóśÆ,ś¢˜Kłš>Æų¼Fųńų%·%ųü?rųœŁųųŪŗ²łՖśJĄšū(˜³ü@©Öż–Żłž4Žļ;ž prŌ‰ĘsœńŽé½ Šł×’›»Aō%‡šĻĢcd’lHŠż“&ü±N|ś6Ōęųåõy÷›PFöžįWõ4ų“ōO]ōĄ3Kō’~qō[8æōh õ Ō~õķ×Ēõ±BėõvĻŽõ~°žõ‰j-õJʒōÜ0ŚółóĀDņéU‚ńsÜŌš°fEš^æŚļ„v™ļ „ļ›”›ļ¾mßļ‚Nš°åš@ ”ń%µ}ņā2vó0õ„ōŅ£õQĢöäKö÷ØįłgĘ1ś4Õ2ū9éüf ÓüĪbżŪł¾żŽ‚ćżŗ£Ļżl¶†żbżņćwüRyŹū=Mū\|cś»½¼ł×%ł^ų&¾#ųfF·÷pV÷ēķ÷÷·ö+ńxö,!¾×J!›’_¶pģ@³-I,ś{Ź¢ź4¤";xĖkKįOˆ3H0ž_ŗ­˜’ž‹»`2K”ī2™·2…šŠP t‰ %hŅ įˆ ‹^9 (ź Ģ: fśSōG ŐĄū hŸĘ÷jSd3w£‘Æ­„ž¾Ä{TÆż0¼|Į© 9B G2B …ļõ Éœ(53§ĀŃŠGŌ䏊?Uõµņ’ÄR°ž•Ćšż„˼ü“üœĀū¤¬Øū>•Ķū%·)ü·ė³üœbż3Ó)žā’¤.ā’d[Ä'‚£՜{0ŗH¤SwÆu=ƒ¬doł–[$Ə0Ŗ#; µ×Ū«ŸżŁ]ŽBć}°éŖ>o»ø£ ėxĻŽÅņR 5Sį­™’8āžĮµ-žĮ‰~żfŲüĆżAü3Ćū®ēdūv±0ūzā-ūRNaūō[ĢūżÆlü¢9<ż9–1žsĄ@’Ŗż[ļņtCĀ}U j½“/&NĒ$,)ņ[¹tV"ć°²|ŌD`›“ˆŖz”ŸøŻŸÜ’dZ’}ŗžø‰ž×€Ļżī-¹żpÅż•鿦žĒŅCžT†`ž{ģcžĢFž«Vž²×œżŖkż×ónüŅO¹ūz„žśžKśŹb­łĆś.ł¼ŲųbOÆųŃW³ų„²įų¤J4ł7]£łīī&ś7%øśī5RūŚŗņūla™ü”Gż¾żż'`»ž~€’I4H˜ +$ĮBū]– ×µ#ŠŌ;Zŗ¬YŃ@ūVŲ:¹“ć(9Ę h’õ蔾'1ÅżįqżüščAüÓ—ū~2ū9‰ś é1śÜś‚ üł`' śćÆiś}÷ĻśęGū/±ĮūōY3ü”ʒümŪü’é ż"/ż&cFżˆ][żnKtż…•żS+æż•ņż'ņ+ž‰jžń ©žm¼åžŌI’•#N’Øx’č|Ÿ’ÄOĒ’éėõ’tĖ0g‚{ŽzÖōk>Vͬé/5/{–kĢ® –5ĪeRoi<«€īēŸŲÜŹhv›oD’‹%÷Ņ“õżbF^’hČxyoricXÕĢ+āš )ŖeÓ_ĖHą<ÖŖ'”Ę·z‰cė!Z›6[£/b½ķi_±mTłiX&]WĆGus,«¢?÷„éīāF ZžFB'£Ē .Ó»Qmµī+}sķddØ{UžšĮ!y µ;ń ŠÄ\ ,æ hÄ ܹp $žŗ Ņó W‰ hå µģ Ÿ £,, _ ˜ člé –H( z\,ĮŒx ¾y#ó‹Ś,r}j0žŖ’żė0u.Wøs‰Ęæ¬ņp‡’Eh’8±Čž O«ž@ü枈ż’؈w’ņū :ü®±`V¦ˆšܛp 8ĪU@éÄd,Tßõ²Šß<­8O”żÆ‹Ūd•6­Æ“ŗÕłžQŗ*.dMā•eģKr̈tĐn• c:AT1ĆCZB2:Ć–č 6KöuŌŽgĘ{Ļ­ŗń˜›ū‹1…Œ … Q7ĶāņćA{耶AŽT.uPŅČHq*‡•"ƒzTģ¹^= v(Ż–ż? hőŹi“ƒ%&‡ĮŻ“:i²ĄAÓÉĻͤĀNĒŗƒ/Čį(ś’ą ]’UĀūž¤ńŲž7ōž”$G’~7Ę’2Ķaø˜v¤É'a#Õ8Ŗ½8 †gEź M¤”~,›—ę-ü*Ō’”T’X]’'E8’R:’łÆ’E}åžKÉž½±®žÆšžė²“ž6b ž›`Ęž³: ’‡¢i’rå’vtx²¶~R°ŽiĢPV¤ēŌ'źįæĪ’VŸ°]ĒP‡ęÅØ;ÓBBZÕK+ęŌÜĮŸ”®z­³Rׄ&Gö‡ĀоˆZ™GŒ»ł’aø˜’Ņø’»$ƒžēoĘż6”éüåĒóū¢(ńśXńłėOłšé<ųd¦¤÷7 D÷e÷,-÷'»k÷q:Ī÷ó1HųƒųĢųƒāPłsŹłęč0ś˜0€ś™5µś„ķĻś3Óś ėÄś}Ī­ś7¢˜ś4ѐś¶› ś;ĻśÓiūq±ŽūҰüšX©üļŁ<ż6×ĆżęS4ž*ņ‡žŠ=¼žēŅž$ Ģžˆ~­žRŠxžj//žkģŠżÉƒ^żTäŁüčfGü ®ūÄū//‹ś”ąś ·łeĘwłļUłĶ·NłI\]ł;ć{łPÉ£łŖ Īłų±öłšśĶ.ś@Ō;śŁF@śŹn?ś‘¹=śž@śäJśfÅaśS@†śˆg·śuańś=c-ū5bū{U…ūÓ¬Œū‘pūØ-ū ĘśĪAś·­ł-\ł3Ł‹ųł`ųžźĮ÷^‰÷.˜i÷L·\÷šžZ÷±y\÷Ł\]÷ dZ÷Ē0R÷Ŗ1D÷į0÷3É÷ʉõö«Šö|O©öʼnƒöšcöktOödjJö~®Wööxöć©öZ«éöqs2÷÷ rĖ÷6ųŽū[ųŪŻ”ųźĮéų§”6ł~,ŠłĖŖćłP?śm8–ś%ßśTūūɳūĘXūɔȶyhdś©Ļäł ^Vł+Ēų Dų(éÖ÷R›„÷¾~L÷éļ(÷Ę÷”złö.wŁö‰ŖöąZhöāėöš·õž”TõVöōō† ōÅ]ō«\1ō­īōC$ō°æCō•{ō+yČō„“*õ«æŸõ<õ%öµ>ŗöX÷¶ū÷Ćŗžų3?=łŠ®Ōłyšdśf’īśĀ€uūŖÕüūˇüßļżü±ż@ŹSž^Pžž~…°’åChTO"@¢Ś£4Ļ5œ‡Ņ¼;b=Vå˜]XŹlQ-rD„>«Ėh‘žVu—_5ćčQɜśI.IŌ 6}łī6>›÷tØū¢žQĢĪÓób—ą®E’Wśtžbµ­ż‹õüÅ%Sü—]Ķū Djū«K.ūŖ¼ūį2ū Ÿpūr=ŅūɼRü ķüØœżÕżZž±ż$’„yõ’ÄĒšó–“]#—ć¹9~B%ŖiĮģ' É/ŸŚL؝Ł#SöŻ}ܱę‹apü.¹ż,X×āéémŗ ć|wOMķ¶’’ ’}ˆža5łżŅ‡qż„óüƐüµü@Ęū.ψū÷EfūFƒbūń€ūMÅæūŚ– ürøŸüŖÉ8ż+$ężz9”žšžb’U_$ÆŽč Œ;—'C£­Š¬«oo©Ö¶ĒG‚Ģø¹æ-“ųM^¶!pkäϬ“ŒćŠ^œüIAó=ó5VĆ,Īč‘“¶ęė­½%?Xa—4ā lVķ<×XōĖü›ĶWŽĒ¹’]ž4‡ ~­Ū_KtƒĒ1‰Jõ°Ģ]ĆF=ę²ūw ,sUŻPŒ÷~µtŽÕg<ńBu %u)½0H24føUkĢ Œаw¹O|ČpćÉÜĻv֋ HøĢyō~Œ=O|½Ž‡ÄĆõ·š†¹{‰ĢŗńŚĘ)¾Ēt搊h9ĢØ’oŽn…*é¬,CC6•Ē:ā~f-cx6ĀB LĶ@ æh Źx Ź×l [ˆC bž9””ߊ3B½HcGhįŪķžƒi‰E\‹%AŻ#˜ö<Ī?jŗs£iąĄŌD‘OMü¬'ąŽ¦“9e¼ĄĻy, £¤ ß’" ]ńŸ œ £åv ¹!Ä ;c÷ «Œ ŽC zŽč „A° ÷›c mč I9¢ ęļ6 ŚÉ ŪY mŃčvtēÓųN‘t†~åštKZbØ«fg}Y%Ļŗ°Š+Éj³dWWbÅš5øwŖ©<hB‹B+ö>x!Œ øM§«4Hõ0č堃„w©¦n­,ÕƬĶ)& w— ¦½ż 9ŗT ]q— - Į ‹©Ķ …» F‰ Ķ29 :ÆĪ «M Łŗر/Kn°Ķŗ%¦0@ƒb{Ż7² ˜ē§²ā™`Ń ²ÓČĶ©’¦ŗ`’łF’Pm^’h¹¤’d÷LžŲ7gƒŠÄXK Ć?ųV!®śBŲ•9X6ešH#:ÆQGąpš’Ä ¬’™ßz’ŽP\’¤ O’}¬Q’õąa’"ķ|’[ćž’f€Ā’ŹHį’Lō’āŅó’<ĆŚ’-„’-R’źzćžI ^žB»Čżļ-,żs÷‘üßōü=‹ū>ł0ūźuśś"Ēėśŗäū'Gūd9«ū°,üŹŲÄüĄćlżISžlEÓžäy†’y3šjŌųXexUą„J?Ią{ĪūĮiv« +?®‹ōhD(#-’ņŁž^$’ü `čūŲ©äśRŽśÓęEł{źŗųģŒaųÜC7ųņE5ų“HQų°~ų%°ų„ŃŲųV„īų®¦źų³×ÉųżśŒųõŽ7ųŅWŠ÷Æ0]÷ANåöÆ oö×cö“žõg£LõLßõ*8ėōŠ˜įō–>õō’x'õo]xõp™ęõCaoö2‘÷ųń¾÷;—zųœK;ł­žśł5&“śŽbū Ŗüš’Œü ^żƒjdż!žŖżaXֿƎåżnŁż³żƒ˜wżķõ+żn7Öü%|ü™€"ü “Ģūf$|ū“Ļ1ūęŠķśš)Æś¢«vś{:Dś²Öś×Óšł‹WĶł`Ŗłs†‚łr‡Qłł8Ćų¬[cųyš÷÷tɈ÷µ ÷VŸĖö³–”öušƒö?ųöhāö(±L÷vģŌ÷į/qų„ūłŠ}¼łwYś>¬ēśPŻbū%qČūm üB>Nüü£nüŃzü tü÷¾aüĖ Jüō‘4ü ¶(ü(b,ü6ņBühŒlüD¦üļ¹éü0ż>‰qż©Z§żrĀĢżč)ßż9ńŻżźĒÉż»ę£ż'}mż&'ż@Óü'rüE×üī9›ū>0ūŪ’ĪśŁū}ś—įAśÄśØŪ śšÖśžŽ#śpå<śž WśÕ0nś`X|śöÆśKłwś‚.gśåEQśÆ±;ś ²,ś”*śwó:śĶ bśF(¢śŃ%ūśv6jū“Óéū rüÖłüŒtż×‡Śż 1#žĻäIž®ŚMžŻ2ž±œüż{µżƒIcż~ż›ŹŗüĪmüŃŠ'ücŌķū]VĀūg©ūS„ūR°¹ūfnęūW)üÕÓ}üEĀŻü?±BżĶ"§ż’sžņ*bž©·žaZ ’ō§X’$¦’’Dš’Ӂ4…nņ«™b²sµŠF¤‡•śĒRŌŗƒƒģ’zĀ’Õ£’I’Ņ[†’§€’[ex’4pg’¬ĮI’Źŗ’¶”éžĘ1±ž&S~ž£DZžK¢LžńøYžgƒž2ˆæžb ’e[’E+¤’ĆŗÜ’ÕĒž’ķµ¤­ų’e#Ö’§’ ŗs’ļ-E’¹Ņ#’ĄŹ’˜2#’¢¤K’)’Z’ķ’Ž@_+ŽH,b:‡ā°V«8·ĪžR+B>=x×9›<(—V¹5žĒöÅģĆ –QUG¤Ÿ!“ü‚©hŅ’ß6½^]‘įįfėšpĻõ¢|ē6 J‹ ’¢ Ie‰ ’hõ õK «­† ]x  ·)– ŹŽf ū ¼Ņ  ÷ m Į·¶–Yó“Ź%jœOO~q|ų‹õ> ņܰq ĀÆšŁ•Žž’ęh8’ iŽžSĻž{E¦ż zożĘõbż¢żįQĄż³d!žŻä›ž™¼(’¬æĄ’*]…ń÷1Ż‹pĒōmŠōø(Fm)<„­Uµй³9'„Ś’‰¬qņęQž†.¶ą°ŒÕÕR›źUÜTŹŖ›BHæŁß7MseĮŚē‘’Ķu’™¾Ŗžˆ:9ž—ŹĶżŻ mż}Šż¢žēüS¹Ķü=xÕü]Bżp(Qżķ»Āżó%Qžœ}õžÅV§’Ņy]ė¬õr²–¤A}Ͷ‹D F q]{öTŽü-|ąź¼ ģˆ89¢}jćå›%@"Ńż·’Ļa’× "’%’ųž³šāžķÜž‹įž•‰éž%5šž*“ļžJęāžZ˜Ęžƒ‹˜žā_Xžm”žnĪ©ż±'Dż°AŻüŚY|üW‚(ühÄēūCa¾ūfW®ūåF·ūā¼ÖūQŲü%IüR€“ü$ÉäüÉG;żoŖ–ż±Ŗ÷ż@s_žæēĪžńļE’PåĀ’‡ABSؾ[12 “-źÜö¤ ±*Tš/ĄĪ±.€…ź3¤ ę ©6–’-”’Qu|žĒßõżĒyżOQ ż#š­ü<÷güł«;üŗń*ü·5ü¬šYüJļ‘üA1Ųü×ę$żQĀpżžĀµż&šż!žGĄ@ž,ZžmžļN|žķ-Šžńi˜žEØž†“ŗž“Ļže|ēžÖ6’Ģ’Ź6’ĢtO’Āėg’!Œ€’A(›’Dä¹’¦–Ž’Ł1 ¼h<#®s3’­WaēÓ²“RQƒ‚=ŸÆC¤Ūmˆī7i±j• ÜcŲ«Å!ģC©Ńqµ¤–°S„¼ 6»8e¬\‘?lló¾@õųzæć68¹Ö ”4w/n`įˆObBę‰6 “)XfhD<ķ£WŅ "·ŗÜž~TWކgmŽŻJØS~Ö?ä:qØUŚæ£O7eĖ’"GBß¼Jń'`£…gnÕ÷Ą†XR8O…O“®ß2,äę'‹>]AEž9gÓ¼äūŹ™‹=ZŌŅD]6/į¾Ķ`dŽ›[†W×6XS0uĻe°Lź Ķ^ŖSæŠä’Ü…’Ńń:’ā ’;Ēõžõ’#Ó'’Ų,i’Oć½’+ŚÆ&€QGÜæH+fœh_|’éŲ©Gå±ĢeÆ ß§Hæ Ģ–žu¤憳Y’Ź2gč”.n&Ō”?k7Q½ÓYtOYS|PĘĻ@³ ,; ]śO€ą]„ĒX*°uīšY3ˆLJx‚öl Bg~źižčwŠ%”†ČĄ™žĄšLÄż§«q <µt÷HŪ™;QP×JGäx7uPnsY©»S%|>,œ$}ą ^”/ó2’¼p1©×–½jņ*4Lėx­Bȵń«’_Y’Ÿu+’z‡$’ĻB’5K~’\ꊒćM/޼]āPä",`IgSĒń@<¼ŒÜ¦©˜ĘCS”įiÜ’IL±’$’’’æS~’Mźq’Ąpj’äe’;µa’Õļ^’EA^’3 a’Srk’ż~’Ä›’AfvQ¢ŽĄšŠWŃT Ę¢D±ÆČ–q†z³Ž_I%(7 £)Ć.óm Ę>¤nń-ßŗÉæ]® «rŗdŅ0Ķ/ī’%Κ’-5’5 ¾ž³˜8žćVŖż ‘żDg‘üO·üo±ūĄ*eū)5ūJ!ū—&ūp>Bū BoūaØū‹5čūą~)üŠXgühpükJČüC£åüĖŪōüļP÷üæršü0yåü4ÆÜüumÜü®ųéü…ƒżŠŽ8ż»Ģwż”Įż÷æžrĻ[ž?śŸž*üמNk’ē’OŁ&’Ļ($’ī5’D÷ž‘AĶžę>–ž© Sžo®žķ”±ż·B[żü“żpš»ü…¤zü GüšŪ!ü8a üŽ7’ū6<žūĀéüEšüpŹüÄ^-üįā:ü+¶FüŒQü)[ü™fü¦„uüŠüh·„üĘmÉüZ›ōüv%żßWżP-…żl2©żśź¼ż.B»ż‘Y”żNożZp(żIŌŅüéIvüŻżüČū\µ‚ū#bMūŸB(ūŲ¤ūkĶūS±ū)lūśfū²GūéŌū‰ö ū…åūśū:”ūĶWóśöŻŪśMÄśš°śŗ~¢ś‚Īś1 £ś…²ś ÉśśåśĶū…K%ūr8EūA eū(†ūõ¤ŖūM¤Ōū¤ˆüD=üĢēyügŽ·üĪĄšüy?żÅ=ż”»Eż07żč”ż¤ŁüčA“üūGü¢¬ūū.ܶū b|ū’^Mūk^(ūiņ ū ķśżĪśŁÆŖśŁśT²LśE©ś7œŻłaÓØł÷”{ł®ˆYłéDEł*@ł2ņIłŅał8ł…ł0t“łBpėłĄf)ś•mś,Wµśčłū+“Nū{?ūŽėū‹ž8üvr…ü]<Ńüļż'*iżFt¶ż>žj÷Už)©žly’žšŽY’ŽÖ·’HL»N€$„čź„Qėv¹PMļ–~÷’ŲÕT,·MwÆZø ‰ķæ’³+ż/¦ÓĒ śÕIĮNvųŹwµlE<Š“Wˆ‹Ż7;ķäL]Óö+¾č”§Ą’šŠ\łuD’n\ké˜hČßcžZ@KĮ™4Ų¦wöxŪŅ,±ÆÅŒH”tå”`€ŹTćR YWcjᤆéķ­«Ųßw5Jķ]1„‰7ķīĘ2ˆ r~Ŗķ<Łrīž4°ƒY4H H8»YČøjd{u ‹ ˜; Ģā ”ƒ˜–ē…c iQėBźfCåāT®~Ÿy„Hā{×õ—ŖŲ|RŽ!ĘĄ€KŃ<¶īdUž*ź ž ŗž *ēżŗŖĖżÆŒ±ż™ż‚w‚żĄmżU¬ZżG…HżT 6ż6{!żßż(cźüŻāÄü±b˜ü‰bfü6ē1üŲ.’ūsÓūl²ūƒ”ūŽ\”ūf“ūiŲūŁē üĢåHü£ŽüŽ^Öü6żXbżs ”żš×׿‘Øž•›)ž NCžńżRž$ÆYžs;Yžl:TžĻŗMž"×HžR;HžĆ¶MžAōYžœhlžc{ƒžöޜžS¶ž“yĢžXŽžżHźžœ‡ļžQ°ķžRŠäžcäÓž…—»ž²›ž»tžLšGž/`žhĖåż¹N¶żč鋿niżžOżü|>ż…6żņ¦5żŹ9ż0–@żUĄGż®SMżDńOżżOżĒĖJż%yDżrļ=żk›9żd&:żē"Bżš¶SżõGpże7˜żN­ŹżÖ‡ž,sEžÜ2†žĢĆžŖ÷žb- ’”F:’g8E’DāA’2m2’Ā’ÄšśžKµŲžĶ8µžæ’ž‰°pžÓWRžH±8ž<¤%žh#žOÅžHV%žŽ:žiYžlz~žī:؞ŶӞÅīžž·(’7·P’³.w’#‘œ’ Į’Vwä’v¤#~„:ŹJŃHR3ķPiŸGEK8‘%ÕO]€¬ó’ķ«ź’įkå’Ģ%ā’“dŽ’į”×’TļĖ’ń‚ŗ’ᤒ)ƒŠ’L q’|m[’¬µL’TMG’ūL’ģAZ’:Œo’••ˆ’·”’Īī¶’ČōÅ’ĒĶ’˜9Ģ’¦aÄ’±·’UōØ’K›’šĪ‘’ļ9’‹Ŗ•’il¦’ĒßĮ’^tē’Ҷ°kJÖµ‚†J»Ķ·šØ¾ĹE’`¼$qØw]ątśpmņd Š[„‚W2Y&a’W«£’pź’Õ0_stܱC™ę7ēP±/Q|BĄJIč†D/ł4 Źā‡ś&Ó“ė§£M{‡øO S'£Ęųę’? Ī’ƽ’ś—°’zØ’G¢’ 4’Mų—’sż’‡’š y’rf’ĘO’Å13’3’’Z óžNmŅže“ž*&›ž|ˆžČ”}žā×zžīķžļ拾Ēlž.³žĢžs?ēž!ž’łT$’ĘŲF’k£l’žļ•’wzĀ’Xń’ē "źN¼Åx~֛ˆĢµöĊiČĪ ĄXl¬X®ŽHhÖč:³^QŠŅ’6Z›’ŅÉd’%ß0’¹”’ŁžĖøžŒO¢žģ\–žĶ•ž …ž[®žncÅžF&ąžØ,üžœT’' 0’łlE’5"W’Ge’3p’¹Qx’Š~’q ‚’ø„’øĶ†’|óˆ’1¼‹’Lj’ś|”’H‡š’Æy”’ę(©’c…±’ߤŗ’å¹Ä’“žĻ’”œÜ’ź’~ēł’§O ¬“ķ-‰%Až„UœGk!š‚ׁ›õ˵%ŃŻģ;ŠĒ!K98IL¦ł[~/g'QmŌ/nėi1ż`Ę£ļ’zĢ’ĘN±’Ÿ’…–’Il˜’tņ£’FŚ·’Ņ’š’Wéj1, ĒEUZ]iė-sŲ¼xlm{Ņ| n~w~*ц¬ŽDΘ–|¤%®°Ń8¼ķĘń$ĶŃ Ń8qŃēdĪ“4Č6b欒“g€Ø†ė›Č‰‹÷ƒ?®yqų=jŽ›e²xc:VdøÖhˆ„qqN’¹½©x„Åz£ä9<ńĖ%˜¹DŪ£`†xĖ¢‹6½™„Ą¢&Į¦:Ö„Ä’Ÿ{•±Ö„ŗŻn‡ŽRUĀ0ēÖÜńŪ²«£†yQrHĶńŗØó’0ęŌ’]Ą’é¶’“jø’¶½Ć’×ŅÖ’±åī’kĪb!Õ5ČDćJJ%Jé”BÓ©5K%ć~"FÆņ’žę’cŻÜ’ƒŻÖ’]¶Ó’÷ĪŅ’DˆÓ’Q_Õ’Ų’\UŪ’‰mß’Į}ä’Āź’riņ’āƒū’aųšƒ‡ĄŹ0*|L6&‹A¦lKlS“tY<]µq^›Ą]ū{[CXĆT4™QØ6OŠMYZMõ•Mc"N•NŚ‹N{¶MĀŌKūŖH7ńC2D= 4-ć' šˆĒÖ6ė’-yĪ’QI®’FŪ‹’…½h’ØF’²D'’žü ’Ź×õž‹jåž2ŻŚžņśÕž³HÖž—Ūžņ£ćžļž¶5üžÕ8 ’¦ņ’tS$’åp.’ā«5’ŠŌ9’@;’ZĘ:’H¤9’|E9’Ų;’™Ü?’ōSH’ŅKT’Ēc’ä s’/„’µŹ”’Ö£’"ę®’µ»·’Ö~½’,.Ą’éŹæ’ĆH¼’ø‘µ’x›«’ …ž’²ÆŽ’žĒ|’j·i’[‰V’'@D’\³3’čx%’ß’ō’B• ’Į~’ŅY’Č’gm’Xś’4’ ž ’W[’śm’žt’Ą’ó %’=W/’,ł:’\H’÷W’[f’^t’…€’(‰’猒E‹’x‡ƒ’¹ v’}e’¢Q’ōÄ<’®‡(’‘@’¾Ś’ŁŠśž9=ņž”ōģž¤ŸźžćŹźžģģžņcšž±zōž–nųž÷…ūž{+żž„ żž©ūžĻ¶÷ž¼póžŻ ļž–Qėž‰ćčž'(čž97éžĆŽėžcøļžŲJōž./łžž/žž/X’Ÿō’ą{’øm’ę)!’ŃÉ,’Ę:’ų,H’*4V’ĘŁb’:Łl’ņ"s’Ū u’Ŗpr’L±k’š¦a’$tU’łSH’x`;’Źg/’fŃ$’š’'f’³¤ ’+»’/ūž ÅńžūēžļÜž~ŅžŌśČžĻ(Įž/³»žD¹žłŠ¹ž6 ½žÅSĆžĶļĖž¾WÖž āžętīžMOūž4K’];’;"’x­.’Ó7;’pĮG’*kT’ASa’ņ‹n’Æ|’śß‰’Nї’°Ó„’"į³’ Ā’’yŠ’Ėbß’¦üī’čm’’XĀŽä"ō5¶›H†v[ßŗmųļ~¼œŽ%Kœ5‹§ŚöÆk7µ ·ÜSµØ°Pf§œ«›BQžą|yģjŽüW?…D¾Ū0Ą;yŠ 2Äö’O䒝ĄŅ’Ā’ō “’Aާ’rž’^'˜’7?•’’֕’č™’KM”’9Ć«’„šø’ųgČ’£ŖŁ’ģ+ģ’”S’’¤€_ %žH6śE¢FRZē[bXŹd›dā‹`½ZĄyS—…K0€CČĻ;Hš4‹Ķ-¾2'† ŒpA0 Gɇżų’Råļ’k™ę’›4Ż’dŁÓ’óøŹ’ŁĀ’Nŗ’Į³’Ü®’©ž«’ u«’Qk­’ ē±’DÅø’’»Į’ķ^Ģ’»,Ų’µ–ä’™ń’ż’C•EcķK#"8ä'×:,Ė:/Ćž0s©1óg15s0n/J-q,`č*ž'*>Å)Ą›)n)¬ö(‡ń'¬.&^™#y< v@™ä7u?A!‘ † n›Lžøģ,6 ē… 0ĀUÅĻ\ĒJ!SJ'-Ip2±)7’&;ab>«é@GŁBćTD'ErF 9GJĻGō H”HR~G;OFąrD3ęAdz>)ņ:^Į6IH2K²- -)ę$c !Åš8•„é¾Õńķč;݁"ę£%--)ہ,sy/k2G4œŅ5ZH7 8ēµ9ł·:Ɔ;* <H#<©»;sĄ:h*9sž6źM4­51śŪ-ūl*"'ū$DN!tpTĢM3¦ÆAr¾mwšßõ=€«9D=)EJAp ü…!lu"*#~’#^¢#ŠR#°”"G”!14 ę¹SĀ—½y¹$ĄÉÖ%žé3‘t d½  ”i–Ö^õ €ćĢš3AØ!Ffenrir/config/sound/default/ScreenReaderOn.wav000066400000000000000000004313201513650123000217410ustar00rootroot00000000000000RIFFČ2WAVEfmt (ž’€»ī  €Ŗ8›qfact Œdata€2’Ķy׏ZŁ·.ĪŖ.ŻÉŒ0ī}½óH“ÜҶ’ęHzā žÉśŅ§V‡fm A””Žą: Ó]hūjięﰐė«ńœė‹d*žoļDŸałP @õ#|Óüź¶ū0Ŗķ“‡ŪEčßĪ”³Ū_ĪäĆńī£Ī°čUžŻŪ#äōN"ūr¬™ī„ŁgõņK•śų-Qpėū< Z«9@ÓĶī@-Ō’ū ~•kłąĮ ćMšˆśÕÅžVh’p˜žöć°JŪ€ōņ„+-źPśór‚ó‰tśeå5Ž* åžĪh󱚞E½(mü.ŪDńø 5ńżH—ś…JÉ ČνńOåīPdDäHHž0kł÷]”īŅĘRīåv‘ü‡”Qńó“žßŸkĮĪČ+!ÄŌ®¬ Ѱ[*’œ 89ö)¬ŁŽÄÜ)Dl /glčß’$ŌCčĘt ŗ¹+&P¶Ģ/}Ŗs%ōģ7óhšĒ¼»‹Ć*… Š œxW$8ż‰=a_ŁōøÆŖ@¤œ,• ‘÷Č#eł~Ėł*ĶĒģ‡T’]šD³ć§"ĘŅÅŎÅ!ws§0ʶ–Ń;B²ņ“æÄ%Œ‰ ź–,_&h#˜*Z^õž/gśJ9 F}”V‚ń!RŅvŸöØĖī÷2·g ) gķcēUID?ī=•3É’=HžŲ5DłfBč(·ź;b»ļ_sŗÜÆūsōęfČMi˜³ĮĖ”A“Īų §»XģöÉńŁ˜ H¬m|_ÓXēs—&ÕY•({Ó@“k)ülŽ Ž2Ł āŲĀĒM#w}ļ,ž%2ģ,˜'ÅgĀ!ŗ5¤ čćĄVĒÓ%ˆß•Z ķśz’×*ł˜Ļ7ŚH'YZ&Œ–MSh3韸ÆM8ĒG/ Ā:ņw$>Štv4u§Ł*…o-,ī-5:\5G: )Mµķ¬ Œ-QŽ 1ŸĢ².n«6wµ;Ąõ5ü)˜‹Æž £Ōž+ŒŌ#į̶1… ·“6ˆHV`öÕC>¢£q5ė_‚Żŗ`Ö·¼č["gņ$jźŖ(ēߦŠ×§ū›é‡ąßća?ļė-‰…ńŃø›ü=Kég?Yo@ S[·üųBę?IŌ\¦āāö§ųžp UņęN$äJļńSyEļģ#§”äłp"“J^­ölq7H49’üœl źĆŖž š^«@ >ų¼ į”$ c- idˆ–ÄgšžN!ć~ś“’ėėĻĶjüܱ8’$aAųÜŠŚż³&²ķøórōtCYūQ®§ 4ĘŗĮÖKŚpdęā€. ž0+‹ļ!x„ü±ļJj¢¬żNÖŹĄC!‹¬d!÷,æ9Qø`^V µ¶Ń©d %‰<õ‡ÕŌą<²%ķČoHājż ļIümLÄź§EÕćüģĄļóaÄr–ÉŌµ 蘨¹#` VQØ)ńžq%÷~ežė„)ŌYŹ*ÜÄ%¹ÓĒńŅÕV6ģÖ<"ļ£%?įĢ™œŲ«!šŻĢ£LģąlģÆŠ™Ś¢!ć'N$Ü+ēGććāóŠē%’ū.=Üüœ üÄĪ!óžūĆI, šõ ھśčxqéw¾ļn ē…Įē-m·ā‚ž‚ß2wį°iĪņŌüĢ£hŲĆāņĻ”“ÅŅ*]ģ­ėÖŪ‹Żb1ZÜ÷ˆļä ņŲń¤ķŻI*Üßg&ź5©Śé;½ßÖBó ÆüņÕYńķ@:Ųļ]n5į@±įĀ·‡Ü9oÉ„öĒģ¢ŠZ/ŒÖĹā=„{ļ7°Ńõ5uZūˆr‡ūW5¤ļŃ-÷ėĖ!qņž\÷¹¦ńņõūgé[rMņĖp,éƒÕlšźkĆ’±ž!žøšZ?čÄ„Ķą ®»äJ› č"­rõȅ® gHÜ© ?ü¬t‘ü/giź-o/rõ \ä8 Ąåē—’ńA‘šģ·† ńˆ˜źś˜€ü9§ųDļEߖéåŁN?‚Ż“³Ń…Ō'ÖDP<źYŽģOPų¶čéVĮ‡ēŽ©&äėīŠ©˜LÓpį}Ž,A•źąˆŅÜĻ6pÉ1btĄ3ĢĢĶΧʔ‰Ļ²M Üžf!Ī‘–2Šß‹—ÕŒoŻēDśźT•Dó$æōuĄŖė€ŲŪüp§DųąŁķŗß8ÖGķŹ§BģĪ éäd*Žėcż¹ģų>ņKæńTۃé`äŲŌgŻĢ“ŌɆ}.ÓLž©ļ؈±ųP ū;õ„žO÷/ŪNšgęģqVŌß<äpćžų«ö²eīąl4ōdFČx•ūz?jKČÜ“łćłlµń™3¬ä£łįnyvč/D9ģć¤T’(čõÆX-ņ½%żNr~XŒ›F ŽĢHūמēwĒ”ģ&ņoļv\ć`ū쨲„üĄŃļłėrŲżå™ ļ6K`d%„œž?<ž~“äåvĢŪ"ļ×SÜQՕ„šā^¾§ēr“ŚžĘ«ŁZ=ća>å@_€äłĮųt%¦’€lōo:š·3Æü:ưü6s½RķyĘŁv (p2P„ké pēӝūr­&żk³|ö*ö3ŁŅ= VķĘ,nųĪnóżPmUCtżī0W÷a XҬø³O’2zĪˆś¢Fk Å#… —é½Ü¢ÉŌYo+’ļ!į,€!iĒøčj¤W{Q¶WA;+ŒŸ•¦äņś(Į MÆź –eJ ƒŹhFźU/žēm‡åļĘl ļWü©Š½’Sų­6ķ؜ łw×KžBB ł³–6hwĘ  }«X!"!Oµ!™ūKŸt"xTŠ&]vK1i<Ś.6n-*ü1t¤Jš²ķ[@“ńĶs÷ō›¹ …<üyœ%ŌÉJmGM f!^šSĘļ(óī}œGłµ ū˜~jō®ą[ü[@“ųl{ŌŽōęoečØÜąīįFˆįL+XķøZv쁿åŲŪģn­üśł%xōyąōio”ś9ščÜ#p Ŗ²ĆüČźR4ų?ø8żŁ4V ĮŸ”GļČŽó>’5Y¤h’Ģßhź eaėxāņ,gŒīž„CųqT`ö¢:‚(Z ;ģ² ī|Å Ā×BLķ iśõ™ĢS÷ŌačöīĀD‹/ž"6”ńMręķķ܂ņy)’ŸaĖņ>ŽõņxqšöŠōĄłęĶŲ÷¬Ź~ Š•L!T NÉĒ ¬źąÕŻ?ÕzĒ •³ī¢C Å' Zręŗ©éŪevsŠ Šó¼ ¼ļ„+³"ż*;Lģš¼i~å»G 9 Ÿē "'W;²Ø’ĆMöšvŖ¢ytæ’Ž›i © ą³¾诳čeJżR,dō‚Ė›ų'ˆl p9Ä—I iļź=©.H©Væ‘^É ā Öl‰gū8EŽkx(£o%Ņ.?)ē)–"ńšŚ0™ø ’;A5;„gĀű,—’ČūZ‡p¼–2Ļ<–ėwęó7 ŠķąŁ­{/¤žN śŪńzːķtNńļŌ‹Jč¬mEź½ £źQõa ĶIv(ČŗzÆ:ń2o!®±ģœBĢŽŪĘ~ō:ļD) <7ĄlüĘ$c8ŁZfkĄR½Ū+½ Ęs"Ė'%Ą ļ!; ”b7 `N§"ÜØR…¬’‚Šžėņ9š{ R¢ ÄĘ !&ω9©ŠäqŁ ÷ ‚$xūy6Ee@:!•:Zā×/Wü°.)ūe2@sU6Ļž£/ü0&”œė(©K1G†œ/’Ģ4ƒ:¤9ļČā8:/Œ0`Āö% FØē•U×#'³Ś ˆ `ńĖ›¶õüŁtӒ± p'ō‘śF HC% ‘‰¤÷Z¹“š¹K=ņ[,kå Ņß`éeāŒčé¤Q]ēŻ¦Gņ×”›ö©³T²µ ƒ ƒ F .č°“Œ OMō.%“į#Ū2ßõ„ōnPpų£+gėdövīj•æņJķHų-β’¶œ[’hU.©’Ćš ɳ^YņĆ [ĄŽōU”÷¹$ ÕéŒ ćk¹ ”‡ā ¶T¹•ś°·™żoSļ›ņ 2 ų.dS’ą$üĖV×ü%²ä÷%Žsń.w÷$ų­ś9Ś zŃógDwÉ&ÖÅ&9‘/«źIŸ!Ā”Å>Y+ŗgŲj%"@bļéJ,DU,Ų|"*‹©概 :ŹK$’”~Ż œ:uķ©œŻźuŹź€ēén ćųd±ņ 2é„Ķ»ģĶŚÜłæ¶HłE;čMĒź‹Y¼ ĢūÜ$Š÷?ū ōŲ Dįd(ĮŪ/ÅŪ*¦œÕųNäŚīŻ4wč=ņńŽ319Ž v4ē¤pķ@Ö3äæ* įk-āāØąq__ę؊@åŁ‰7ōMއüWĄüāC\łš}Sųōsņō =Ż“z^eó‚°ļśķ“¹čŸ²5č¢|Aā>HćCE®Ł7=ßĻ$„eÖń&}ÕiڼҬĢņį«WEģĖįä…SŽßĮbųāĄNĀą#|ÜäG$āµķDåN*ģ<ōäž½ŃėMCķō¼ˆ šÕ[ńž(śéEiżāĶqšįDM{ŌL;¾Ė Ī^Ļ1×Ō‹öŅŻ1;źB5ęņ†óųJ\KüĖ’‰ö ŠˆļzĆń’UöŽĻ’õžŻ{ļ£rŃļŠršbÖ7ķ±DÓż¤źŻj«ų±-ļF ēźŠ'åguščż=¢ļø&s'tažW’‘Łęž(–”}I׿®žłyoļ„&įēm2•ī…Ėüń ^ļ:šļq÷żHüÖO”ś3qķRę Žćߤ¾Ł2Ł Ö «āœņüėåņ/ėØņ&ˆ¼č…ų‘éœ Ū}޽ŌŠåŪ(qUå¾²äŹLņÓŽuĆČW„3É ˆ ĪéĶ߀ˆŲŌ™Öķ3JŠēN!ÖĢYģŁ?‘å2±`ļWSō=üšhwuõķt ü;Uņ9M<é7،ÜČ}+Ō[&Ļū*iܔ1^čā‰,ģ‘;nšY<¼ņqFē¬ĪĆįWštä*1ÕÓ*³Ņ^>¬ćCPZōų Ń_ł^Ž÷ÆAśõŽ×hļą鄸?ć\jń ½É÷|!‚ņ(=0óä!-ż@†ś’ tž>nżtPżW8Ŗ÷ÕL}ģģpōåŪ½‰ēĄŚė…v\öiÕ«ūŌMa󩜛śō/Żz žG7 ųöŽ÷•ó©ģBģ«Ź5ń@ĆéŹ źv.øöŪ•>ūīüńYÓmWņžśS¹~Hų‹®žU5ĒógN\į¦\ބܫ׆ŌŽ~ŖDę=1øį;`£ŪŁFųąDlåĮA½åĮ0Wļca×üŗųT’1ØéłøŻ÷d3¼’$žšžövŻ ŌķĢ PÉ [-õ÷€kė¼IĒōĻˆ’EĆł5Ń ø¶Mæ“Č ;e ė0×óüXĄ鞘„üÖ’,āzįägœWÕ“ķØƔB(*Œz2!ėģ[VAo†×²‹H'įÖ&] ž!+#Ö‡@XCŌh V p|­ ÉŖ E-Ü‹•ŁG’#„C.ÉTf [N š`ūųŽeœźĖ-ķļŪVŅļ‹r»ö0›’é«ĒüœDūó4‚õąŖaĄ°Æ%kŌżpń‡’:NlE| ūŽČĪū5‡Č!żõūš0œ%t+&„‘0ˆ<Į+¬&Ń -§~ˆÆi-(’Eöę™lfœBīTz)’ėäHI¼ 2ū‚’;›dš&Žņ:¼{óOLmü¾ģļöFKś›wqūæ¢éüē`üv{ÅīMæmēhĀØā«B,ä' čciī{„Ųč‚ģźz”†ōČÆ'!ρŸ Ձ‚œ(’Næb&Ļ‚¶÷¾#ÉŒ"diHūæĮ†>6É&Öl(Wu#€Y&¹ńF mį—&nś6#pZB!¬˜ų ›gŚ! ,­ńV{ ŊY=™É†nžĒ+ ’–“ 6žk”IĶÖ/3 Wp“bæz łt,Ó½ö7³a›8?Ā5|• /Ū¶)2ÅQł3Ź\3H½*g7ą(źÖ§-‡äA0Xj1™öL7!ü¦8įĄ444¬+¼¤ā µŅ*żp\ó€"/Ł=ˈC† ÓĒOW]š(ū™  @i —1 f„š\|Œõ· )ōµ!ķĆeüć īć·6?ēEk˜é’Yżģ~qÉõ±$•žŒmƒ Š1ų±Ģq  ø š: t qkĒģč­ć{Ćėn0÷vźš}NīA.@ņćWĘõj_”üīx’’ŠĆŀła§²Ł%Ų/ź€ƒK Õ0\v 'øü : Ų£=a„Ż éOÕŠżRk"²¤gś/®_öWÓÉż^!bżž=ż<;Hūt½xõ.²ßõĶōķųńәž5Ś y¾¶‡Éłf ~/”¼ƒ†ŅA D£TĪJ, [#Fž99|ó4”4ģ…«ą¬8ēt U¬U0ō ˆåX ö,1)~V÷ü‚Øī^oķĻ+óźéXōńSzØö ×Mķ4Ū6ķxÕ"ōĻ_’ģĄf8|Oźh9ab£ W™ÄšżłŸéWų×i`ė ēącC޵ńŽŁM÷=Ž[źDĪźäł‹ä[ąÕøväŗŗ÷ź=K驇Fć®šć"ė^ā3FämųęęäĖģBłnł,€Nū°Øū2Ń6łšƒµ’5?vrŹø2üiŽóŠŻńT<ģ¬ééģę÷‚ĢćW*>ąV(©Õ0’ÕÉivףµŌ ›¹Ū‡āēńĪ‘ē?0ZāϜłāø5źāŸćsߦ¢ą¹“ßä:xļčšré5qčN®'ņŹVņńvSń~3Łī62ēģsiäŪţܯ(›Ń‡I$Š8F˜ÓÄŚŃųUäĻšQī[ŒõdŽśA,’łžóŽ ņ±öõOŃ{öf/Oóō ˆš.RńB`1ļéM]ö”€¤%čūģł­ōˆģÅńŪēĆŗačĘfķ9ØųÄ„#ŻŁ»æ’æ3 ©’;ø7¦0÷,«Ņķ *ķó$¬ń²šŻŌšė@ĄōTśœlūž}‘ōā=ēq™‡įŁ3ŽŽ6XWŲqøRŽd’åēS[øīīW{ņ:/óķ6źe1äéŸŲ“¢/ŪÆ_GįoŖ•åP„Ü*Ј¶ ĖI\pĶ•=ēĪ»²µÓ“€rŲŅÓ]#ÕM„žŲ:±'ą§ŗļź“•Kń; Źņ‘có'EśŸH÷y+ī»śžäž•裹"ŌĒŪ× ĄĶćPVnéyQŠīY.»ńF—†ķv½Cåæ6å\+BŻ„ Ō‹ß}ŻĪxģ××õŒMųJ9±ųs ėö~ÄóųČ ķTPŽētOdėdĘĪõ!A.ōf®²ó/ńćųµśžĮĪžw@†¼ŪM?“śpÜÆóėŻKź³Ūč(’Ŗź%’¾ńoÜ"ł€”F÷ŠżZ÷Z!9•ķj z±\OĖlüPŲgńåÄåš –mźÖņ±Żł‚1Rūˆ^¬ö^’m_17ĀeT[¹°łŅö ģ¾ńŗį[²Ż¢ĒÜnä˜œćµ—ßŽmß½[äcF€åm)3ė•”_ö¹Ž żv§ ü_I!łƒIüaŠ’ļĘĒĪkOœöā6 źÓN®˜ ó!cņYØbūq~Ä’tʼĖc Ė Ü2 ‹Źżhęłž7ķž”§ö±2Ūxjõ Hķ"įވėéµʶD Ö”rq³ ³Õ½dØ®Fģ!Ķé&Ł ÷"€æ c_ŽIßg¢ė…Ń”æ?6 /w` ,ī2.}*””Įi)^ßĒöž7–“ó­¹ī<āģńkķēņ—HLüµ {żqŗųމLõ­”źüYb‚2<³@čK’SĢ\æ§°Āŗ€6ÅOŸÜ39×m$©ł"zß'鵙-ņGƒ-’1&4ćsBną r_1üŽy`*:š &„%æā™Ó’źG: vč9ŽŹų)§}ó$jäō7C’÷Ŗtž%ZŒž°Jeü÷•ƒł¢Bŗżš – uX”—’W*į!óĪœTłå™Yi‡ ©~ȃ’€ņbęFqfvš%Ā­µ Ėx¦Sqm öjŸkm ®öĖ‚å{Ņ L#ÄH”•ØoIK*ń~’Ŗi” Ŕ⠨Ōs ‹­»& õÉßöOÖkós÷:šĒ¶ģ‡½aóŹE¾9÷A yv¤ Z, äqżZ‡Ä$D2³UĀć'ŗŻ?Ī6fަŚ«Éjóļ"®¼Ī$W­Ų ŽŌ»UµFAā ī$ņ€Ņ!‰[Ŗ#9u%u—!ż±Ź!­³5!°™™ūū^²/ ÄÜmiĀóeŚū ®[ ‰„ƒ gMŪs ½µįĘ ߑj%Pr1ØąŲ6`ß 6t9R2k„0śƒ31bį2³„#/8²”)‹³,šä‡.np0źŁ3ø&œ7€n×5Ķ—70ž•&śé\Žē}Iہ!Ź\ÅĶPś¦·ƒa»BāÖ€“(*Óø]» P“ n Q²ü%Ļö÷EBņ½eéžI}åxā~ędōé‡ėq‘øńN8ś1šĪ—Ć6œĪŗ=R ō× ’O7ēQŪöŲźu’Æé.4—ņ–®óÄ¢}ļn7‡ń>ĮFōNĒ`łN]ž¹Åū8KiŖoæWČ $ć²Ķȼ2łĮ³ćž ÅÓi ˆŒæ ×Yj l0|ež£œė’ČĢ[ųV܈ūó ŹżkŚ1ż–ŪüŸ¤­ųfˆvö,‘?ų†ńūÕŌR¹…āL*/¹08@ȰL'Įi„ŽSŌé ā!Æ!'^ kŠ«,Œ‘łīJĄ‡·UŅÉķĖ›ęŽ.‡u äf : …Pō¬¶ļļųöģÖCļóLŪō“żĒńßŖ«ķõD’ńP©ł­R30«w“9 æĶ?4óŪžö†śŪdżņaŻęøįlŻīZŻ5XåõĮkź•(5ēFģ:㯜/ćzŅ”č)Qźg[węšP{ä9¢;ä’iĮćBf‡ęn%ꁂcó§žśćÅśMOēśt{ü±7‰##Ņæ“j>Hų¤»ŽóūšŅļ)¤Ńė2vhé,hßå$%ć¹oįۜūÜÖ_J9ŲĶh–Öż Łóā1bx緘ÆäҊćŚ@ŅćJ½į)IŠąµe¢ć8ēńĒméĻ`'éUūĆķ ™yņO ń“ń®MėIģęažĘįė‚+Ų …›ŅE3ÓƄ×nV“ßAÄ&éXµlń¼Œ÷}'Ėł“•öb=uóīqōCW-ö:ˆõÜXņā»±ńŽj暯óępņūį’žżą°ų!ņ²ńJ|2ė»ļ~钬nėzi-ó’z濇Zļ|WHƇ‡4 /• Qéx tż}Į¢ź³ų&:B#š­Ļ¬±Łjå!Ł3Ļ@ (#ƒ=ø<ÜżōĶhR„^ҹC$&o;$)Ļt!Ųó7*ŚCOR›.æyÕQ–J ΚŠ'ĀĒ.2†.ø‹Ņę¬G’-ćJ;„łMć¬ņ uńі5óĻ«€÷ļ 9żVįPśpõ¹÷ŠgłŠO»maĮ²G5°ßõŖ³å …ō™ä‘D¦P°‘Ÿ°öSč=%ŹRĢ)h„ž,Yś(kUm!|öŅ”īÅ…č}&'¾’²,ór‘ž /eē3¼’Z”Åe8 äŠ0$¹÷q#×õŁąöiœłŌ‚Ał%`ś¬$‰ü¤QPü¹k]ś7uń–ūLėĒŽÉęÉlēŪźšč$ģ»–2ė:Šķķj˜ōūuĢõŪ÷#öūv¼ ŖæˆæĀT}  ųŁ^›­D ^õ6żņææłOŖžüŽk’įóÓż@'÷#}šńĀZ󙫁ņ&[¶õGż\ł/;-ænųnB h®^ Ä Ś ž£ !ķ! “ņęĘŗü5 ÅüęT’!Ķ6’?lłsėFõ„©Kö'£¼ų…±ų¹Ņćõ~ėØųŖé½ų:~/üy§›&ˆ ŪÕ ±Dł ‹u˜ä¹~.arĻńY æ² æV® ˆĪ »ž (ҟ ŒiANū¹Ųµ‚š3# –d%“–IŅμΉRĻ8Ņ™få× bĢĢW(Ś*ŪÉ{ƒ°µ ĀŌ)"z÷w|K9ķi ci⠁ٺ ·W’#Ż5cŽĢ,Ęōjh®‰I—r p üŚ… 0ŚĶ ™/G \gE ż‚ööÅ1óćPłīĻāš UÓūپRƒā‘ ”« Šj”Kź²³»V”L—W-ܲ·ŽKA€·ŠÆi( •bśdSÆ©äßD= ½X‡ēÕU •±`"™ń!‚$Rł§"E¢!`cƒ!)·«ƆyLłō‚ Œ=cŒ+ž:R Ņ`Ē cé>¦[ćÜ^2žž½Q{n3ę)ž£©2¤³å4Q‚v3JA1vńļ1×č×2>/f0*L,uŪŌ*4ęu- ę².ę-¼1¬óö4k 6 pQ22r+÷KĄ"¹īµ¬¢ŽKi 9‚xėž<•g‰„ zŹs„0üvÕrt• ‰Ši Ģɼp’ś1š3õ (øī±fčļĪjēäTAčĀźU±£īŻ£ūõÉ1pžŻM¹qģ xĖ <óż N ¢ s›“’–¶‘ńO'ģlW-ļ1……óß6ńń“'XóŠŃöļx·ū•ļ뚫]u¶no· 5‡’ Ējęö œJ0ēĘņ „@» s_+ vˆQ ¢hy ,Šqü¤į¢9tÄūµŻŽśóFSżĀŪ9ży¾Dż^zõśØįģ÷:ų7_śśq¤ø ®P {O\su3ˆ0:Z£„MÅŸ‹`Eł, :Ų^,§² /b=m“=žź’ßq‹ŪÅ®Ķ[j 1XļĆrYśõĒ óŚ”“ļŪ›Üīm-ŸņÖ(TóĢz²ļ˜¢’šć·0ö1”żµInį¦ĻĖįi„öłKY~żŽÉė÷£vķmU¬åŠüąQ-.ŽO ā»&čz£}čĢtåÄRłćĖ·ŽęT §é!e,čĄ"žå»é尓äÄæ™å_Ń“č$ļ¦īhąŸö6sœł¦x¬ś<ć»ū{ŒĶ¬…Ž'yæ%żöQ£öVó×ņœ×wī ’|ėöŲ`čĆn蜖ié »ėlš£Įˆń÷Öńƾ©īĮhwéF!ƒåKÄŻ1²Ö7ɁŌZß{ÖTCļŪK`fä6vĖģZwęóø!ų*Vč÷‚{#õ¤¼…ōyœ·õpĖČõ®•ėób]uņ!ŚĻńަHņYĶ÷»)ŸüųLś'Mõ;;ļ€SLė`G`ė˜Į¢ļ32…ųƒ×8’ć;aāfČ$.šK³/rLnTĆų‚żdņ@Āš…]¬ńf6lńŹØjņJŌŠõė>'łbLł0żKó+^ńźŸ=åõtiąč_KŻłRįWb³ē|Į[ķ«ażļå/ īŅžÉź9¬ˆäyBŽRČߎ\P7āČŐā–Ć~ÜÆ/Ԛ¼µŠČĢĻ“čѧ¾Ōf8ĘÖ”bÕN9×ü*ķŚ B\į«åøéåJ’īßņŹĘōäū÷²“ŠõTĖļ[ŗŽęųīŻ–ˆ‰Łh!ņŪóŃćŅ8³č|ķōŠĒ†ģI`±čĢ<åR ŠŽĻŪÓŚ5|dįī©Šź³ś®ņļ¬{öŸŲÄ÷ƗŻöT¤óiŠĘīp¼ĒėtƒŠīWŹ@ó‹ōšóHSLõhŗøł¬÷ūüs#’g†…1Zµ’ü¦ĖśśÄōxī—„ģFŌlķvX^ņužö²÷_‰ĻłŠ-ģ’ŠĀ0±C ÜuŽP3żoMQößßÉņ»Ü×ļå²dī wMóĻʼn÷RW±ū4m‰l źg,ź7§>ĖJ•rōų˜ćīÕįEę?mkį—Ļ©ą7{±ć¢Ļ$ć[œMį?nSāsRäaé-ēŠ›±ģ8GõŠ\ś°”ųś@d°śJż«Ž ’.čW‚›œ|BŹwU„Ż÷b(³÷s( ūē’ą‘– ¤Œ *±„ äŅń ŽlļnķāÄāų™^8N>Š XuƒGøėŲd¼Ž2¬E ź·jwbŁęī÷ݹ9X!A÷ŗ#Š"ē˜Ė GĪ»ÓCKUāÓøœ ŸT ;1Żæ _>ŹzMEĪpMŒĆŌk”ž¶źö¬/ó>Óó1G„õ! Zśźu‰ū$żÄų‹4łĶ”3żDKōøę .óžø#%Ø7­§r6eŒ@œĆŸ(UĮJ"śŹ&&*r=*ü±$~Ŗj©GĘrDJ NŅm.½ī‘å ŸŪ ¶¤Ż@ڟū Ą÷ŗŗcü’s÷T÷Æ4dųr/Øł«łh>Āū$*NüTtkū)0śõ.޸[ꃨ ē‘]uéŻĆ1ė°ŌāėĀw„ģbQańĆąŗōL%ö±>łžxžŻµņ~ž¼‰Ļd:Gs{8Ž—֞=ör7üįåūźżœžß’Zž÷Ļלóiõ–’…ó!č†óü^*ōé÷ąÖhü[A¦% śmŹ }>g ł÷ <čē ":¬N” ’eż„ĘnžąŖe’ æFü{^“÷ö„öĻžī÷ō±Čų 2W÷©`‚÷ˆ ł(ū9ś5<Ÿ’ĶĀ€ś•Ę ųČD ¹Ļ±[œ’’–(Ķ@ÄżD­ ² ‚Ś bu:I鏮ŹāČ+¾,I=rQ/R#=d!ćį¹e&Ņŗ1ŸāgäD:ćÖĮ|iµąp”˱’ cX%@y(NŃ÷0ō/Õ’;MžüOŒDü>aē 0Ģ••䇷nߌVć`¤O‘ļ¾c¼˜™ DņÆ­¢< µēbs ³ b 9xŌ*0'÷#ü„% ^ €o©RvŠ0ūMŌ×Õ ‘č.5;.Æ­Sīh~2 Żś ".D ٌe ņ°z’+væ˜,ś‹d¤õ«"ćńīduš9„ēö7$³iōJō® sIĮ÷Tž0Iķw˜j‰wdXø‰–BOčß{ĘėńÓĢ̆Ģi‹crI»CHĖs%lbK"p9†pĀ õæ*!Bƒē"\›)#Ł ¤!sڊ!&šG ƒōxļŹŃø_ ‡µÅ’ÄżĢŹ“ 9” bڽąya{ c²Ø›“[yŖ#ZÓ,ĄSa2˜¹č2xļ±1ĀĒ1Ōé2Ū1ż0×Īų-ŗe+Ńe,z®-\@‚/ąßÉ2…~œ4Čß~3ö¶e.š8'v‹ !E?ĶĖ÷ąb©w„Ł@Ē™ÆåįŻcÆ1ĢW&ØOdb@{ [Ō"…JĖž’Ń×ų.}ŅņIHģ?ڼčøū»čī Źé€żģœ0ņ@łł€ U‘•ģ0§üķ± °lā $ćž[¹.ł##šC!ļ"½ÖńęŒ[ņx" ńƒVĆņ" õē1Hł>śĘżō&*¬ ņŠÜ 7ōµ †ßo ^ä‘zL!°ų)łą Ć0¤ óż˜ ø?K ~ŒēŚ~LgKqµ¢žöżRūaCü/HDż‰Ö9żévHüĪZ“łäĮgų§R„łš£{żC¶Ž#& ?Né7Vf³Ō÷¶3¢Ć-F¦Ŗ“CēŻx7]pŃvó>ŻX‡\<£¢=–Œ&ųļIo3yeyŪ ·ōŒø†9Ī÷ōŸģņÉDčļX-pńķ"óŅ}ńĢ%lšq£Śó‰ó¼ł·ü’MĪĪ1Möe®¾‡mŻgZĒĀūć׊óŌ“wź][Ģä飐ąR>į8Ÿ£åčc=č9Tčęjk*åżČŅå0¹}čl»łč{@ē:;ꝇPå2ŖŠåŅ‚ēm^Šė«ņmŖ®÷ź3”łEĻ'ū­’żęań'¬ż¤2TūUśŃ²|õ]Āxńž–ķH±»ź•haē ›ćƜŽgw’ŚēšŁtlŲŲi¤śŪœ!žįœ|åØīä)²äR!@äčMäāóāā8ŹäyWē=śč›ź¦ )īÜöššUÉń8$š \[ģńš&čä‰ā‰MŪEUö֌“…Ö'.ŪŁ$RąU}^čžžĮļszsõgŲ†÷E aö×$õٱõGĘčõŒsśōÕ.oóv¼ˆņīZņ›[AõDc8ś)SūhÓ³÷ŠmĖņrŖóķĶ0ģg¬ī'¦0ōvĻ€ūā%’Ź'{ŗē˜Õ$Ń:ćż„ą.ö!£’ņ(ćńõźńĪtņ«\ō”¹s÷“ł¼W=ö…t}ļ\äöčęÖćAĢßpŌ'ą­åŅUź¦pīrŖÄīrmģ'‘6čļāV&ßŒåeįŁ|£āś–Ėß7^ņŲų¢©Ó‡ŃIvŃlsÉÓ2ĶÖ®_ÖüĮŖÖT°ŁŲ‚;Ž?4‘å%čģėŅŃš ƒ$ó¶-8öļmŖö(f@ņ Д맲bćhHżÜ%Ė÷ŪXK,ąōršå#a¼źÜąqīģpõķ ZĻźZŽ£ēŃH»āŲī¦Ż\|ß™ęĀü>ī0šōč&ös5÷ž HõUŅ–ńę¾×ķ“ĢūķDhńĘüvóg}ōĆ÷š÷Üü7ūŖ¹żc}£’8ō’Z(EżĮ}ųlČ0ņ“*įķqK”ķšT)šEŖ•ōŌG€ö̟Nųć¼ŁüM–ÆĶ% ¬!ÕiI8PYśŲ?tõņ\‘®ļ~Xńµ”õšÓ5ł—_#ž{ųA1C¶³•ņŸæk¾ü­Aōjf ė²×#å°*ā·ŁōāRģ×ćŗ…_ā÷V`āL|æćžƒųå=‚źiäÜšĀ>=÷śņŪł“ž śŪĖŚūætmž©”ü”¤så:sĻ—ņŲ–{\üē}µųŚTś9s{żŚöĄįč ħ6 ,*:āõXåÄv$`øo“XuĶ “ ¹Ō(ŚBȀ€ż†™ń­?õLūÅć"įc:"?¶ ĄA^Œ«×ĖńŖu]2ĶBUŌ Ašé4Ą‡eĄÖ”§/"ŗVż$”E'ł#ū ˆņõj>éó—dŌōv(ųW ŠśŪąłgł?zūkŪżžüJBˤZĪ[„·Õ—¬Bę ”#«;M²•BŹŪ§’(’#jkĢ'M”)1¼Ć&Ģ=g!Ѳ`fųK :`qaä€ “†Ž5­3Šqb 0ō‘ŗå—LæśóMAų—Ź\ų‹2&łĆ¼łLų°ś'õ$üóm“ū¹Įėų×Ƥņ½UpķO)Žé¬w7éXAŲźŸ—ėŚ,{ģŖ½ļ†&óČEõM7“÷g¤ūjŚčTēźšäfGÆ„x{j•āPIŽÅĆ#^žĖ¬ü˜,‰żÄf–žRĀsüīNųŒ<Éō’Z=ōałō`Eöėś¦Ÿ­’nH(žčÉ]I ĪĖĪ ÕF ;Ķ~NĻöį"’c@“žģ$’qÅåż ŻśXŒ”÷~ģÆ÷üY‹ųŹvųcå‰÷͇ų¹Ž®łVŪü.gjv¼žH“ ießwz\G`¶*…~F²ĖIšIn]Åó0ŌēĒÕvMO PIč_ Ł(Ūħü)–kö«žLņq,Oń½»ņ8SņՀ ńŁötņÅ,źöä+„üĖa6@uŠ£'.CüpÖDķžv@ó÷#ŅĄļ7ö¹čÅŗŁćŲ”¦įø$ä4”ē±UŠē p6ę7Jõå÷ˉē¾zīčč.2čŒ÷ē|™(ę’@ÖåŒēę=ķŻé¦"ÉōŽ ųÅ ś AtüįgD×g+Kõ Ŗ×ZżY»eųę+/ōØ]+š@¹Ņģ5ž·éēäęM²˜įėęŻõ?ŪOģŁAˆ÷Śņ‡gߐƒ‚ćņ„Śä;ƒņ䩐Ļäœ*źćʾMć=UIä`ūRę»ūEč k×é"Łzģ#%ļɂāšä<„šk źÕ”ę@œßr—ŚµĶą×„ŠšŲf”Ż_īIäé°ėŻņĢTłõž•öu»õå‚õv°ģõįˆõ ¼aō²Aó†’Įņ46ōČŌ÷v”cś5ųłyŠtõ-Ę乂šĮķG·»ķ Ī[ń©¼÷nøü(2 ’ü”ij+¶+ !“kā’ć¤ół¢õäĒśņ™ė[ņ5|BņĮ€dóĶéöNfų¬yŽ÷GäłņAmŁģiQWē’ÄĮā‚"Óąs>Hć'ĶŚē¼Ó-ģŽĖeīķL“·źĄĒ³å04Æį ;dį;́ā$ōwįž/ŠÜ 7'×õLæÓOkŅ’WÓējÕEÖ dŁÖŅŲÉŗHܛóåįLw•čćįwķMÕBń¦jō –Iö\ÉYō҇=ļtJJčÓ0įoėŖŻI÷šŽÖsićD@5čĖ”Wģ®gī·°Uģ#Ā¢é2‘Čå44åą}^@ß±²ŒćD‹bźŃ)¦šųŽĢōģeöÅ+2öé/‹ó.4*š¢Óqī %2šź¬€ņÆŻó€TöŒx\ł›ū1üŌ–kž…Ś˜’“ÕžfFĢścś—õŠŻ¼šī8_qļ€ņ†¼võ ÷D݉ś˜P’+ąk²zhii³Źųżø«‘ų*(†ō!P…ńųīń!ĄŌó¾dM÷ń·_ūČęÉ’®!`§’ś=J’*>ćųÕ¢ŁšU(qéųĘĢätKqćc?’ćÄbćM»ā¹Ō‰ć1óåæ)čXCgķ‡ĀÅóL0’÷—¾ŃłÓžūĄ÷żT1“’MDb‹ę7{‹w²¬;o-ŒÉū%h"śŚ„ü­åÜ’±„ęaõˆ’ eųÓx†/µŚĻĒTTSS±ĶZ).­“ –ąS9ZķYĄ‚¤=· _)ĀėöŪ¼xūÓaŚŌ!j…† ÉNkChn*%hXdÄ6Ö”–  h†z.źę“'·é`ģ£Ś$×ī³ž%’ ł%Ś«õź¶īōU›¼öL)qłĖ”&śY jłS|ś±?żś™h’~* ƒś[\õSēĀ“ 9hé;'čāFéŸ:1!9ä0%\RŚ'‹{}'M¤˜#ĻØpjJnŲe¹ÖŅ+WW!Ż ­§ Œ”|]™ä šjé ®ū}žžŗEś‹žīų™ ł%ƌł’ö=ś„0pūėÆäūmŠLśS™ ö¦‹š,Іģź*3źro£ź“Õvė t,ģģäõķY.ń(Žžó ¤ö3‹łÓIłżōƒ9§™÷L&1ŃCÌhß5q!ŒVŻåż¾{ż‹74žĘƒƒżµ¢qśL3óö“Hõ¦”ō:Kõ³®VųäQ¢üøų¬éSģŽ\4 iŹ3 ą>ł*R lI¤`T’ø¤’ŒżžoŅü<[ ł·ķų5¹]ųõnųMŌß÷Ļ’9ų¤Ą8łŗČ7ūDŲ‡’.KūGź[f» ²{ Ū‚4-d!ŪŅ“0ĒL zzR CUx H`“+Oü2Ųpé!҇‹8Ö#œœ‡X Q%dkĘäD‹Śž…Iā7IĮüpY5žą×.wīĀ' 8Œ hq°\q\ƒ6Ī?ƒNć³!žÖ ž” æ«īąÕw Y'fė÷fŌ‘[žė&P†ށś‰Īŗ iÖ “Ā1 ež NCĪÆBčGB5h¢sō֏ Ź_‰ 65¦-yɳxČOy ’dŌd'Œį²·]o7 ęmā  / ø3Ē ģ…ä ł£̱’ūÓ S÷VÕópJ}ó‘§Rų%’–ŅÉõN F U„ĶĶī]é Q1ZVĄ“^XŚč@2€±˜·™üEžÉā“[ QٽZo‰¹<ņßD¢ł‚åF1ė ęq!6CĄ!ßņ!8RĘ ^ ½Ž<ļ…ÄŪžxā Õrg Ą} Æ?9 lѶ’" ŠĄż hœXf ·Ü_!¦?)ŒĢi.«S*0Č1 –ń`…2YFķ>ś”×NõųĄxņ»v–ņŗ‚»ņ¦šŌń(Z ņ 5ŻōA—ł•ž†ž0“eÉ+!˜oT4Ÿ””¾mūŗŌ|ōKķ1aē(o°ć ¤¤ćY ęns[ēÅžę›å_ęī„$ēEzčXŪ“čGīĻēūĖüęēj`ęH$æę‚§čQō”ģ1ĶńŻöl±ų;Ėū‡)ž¾0r Æ ųVV’,ūvĢövŠņ BļH¼ģėr ‚čr“…äŸąxĄōÜHSŪėŪ.2±Ż1”į{iä8įēävćåČjØä1åōć+4äĮu”åAąwēÅ#$é7m9ėėŚīƒ#šVK²šP)±ļ²Ų솓åč%;•ćkøŻµMŚo JŁģōĢ۟ į©0Źēóiīą‹uó«sŁõõ—óõ ¶õPēąõ5ģŪõ÷ßõz ōŅóCóńE ó¤£ öb/ łżē{ł\6C÷=fófŻļÓO\ī2hōļG‰ōū½źłūÆWżŌó…’&‰y¶/;Y[<żĪ«ųé_øō8óß>ØņžP óõ™Õō”ī ÷S?¶÷/ÖGõU/>š«öÕźÅÓčå_’¤ā‘ÉāŌłå;«žé½¦ķoÕķ@<ģ čQqN䶦[āŪĀ”āØ8Y⦠€ß™ĘŚÅbhÖ2ĒŌу©Ó·ŠżŌ¶UÖ¶ūżÖ…ģŲŌĻŚČ=;ßow)åÆĮµź§ąņī¤^‘ņaIõG;0õgŁńœ†IģjӍåøČwąIßōĮįÆņår źīÆżģX( ķUŌ%ė-čĶńģćRFŌą®˜$ā ÓEēÓrDķ “Iņ[':õUV öHˆßō³;ņ 9ÄļĖ ĒļQėŸńIČ$óOÄźō ˤ÷ž$›śOģż’Źž wŽž{"¤üitų3K“óŽGIšz¬“ļÖ„Jńetō6W"öĀø©ųEąü\Ċ™Mģ…D˜GĀÄė¤ūŽ41÷‰„óģ±ŠńķĖŌņV®õ+"ł,OżėŒ-h’’Ł+•@„Å@üļYõ×>ī /$čLŅåĖdläž„%äŒw_ćH‘ćs®¦ä\ąŌęˆsŁźęĖkš¹ē|õĘ|mųhV1śžņūø™1ž¼Ÿ³ļhOž$ičWÓÓŃ_/Ņżö06ūÜ»€ūĢZžŃ#)œ· «ņd ·„S Æ÷”µz*LM†Ø_e$1 ŃDÓW«NŃ÷½™śoę'R‚O^­W9u[¤(oJ:ē]\oūcÄ9" ļęE²ę[B9Ź8ć{’‘.Xž'ßM°Ž{' “–Éćbŗņ¼F^ ńõ5Škkź o1$  ¶ß Ŗ Łp˜¼ų ŗõ>I 3Ēč†å *ŌøˆķXū"'ŠO< EJP Nąm6]1k*~ŚB!Jß ÜĄ 3B 4C¦Œg)F'’•„Fśh‰3öė/<ō£Jö ¹ūų“p?ébC£§ :4pÜgżĘ]ź)Ÿe$Śäņ“æČ/ĀōkqęMIm*jŖVõwuū%W6ƒ1„ķż‡ pŗ< r÷!»/é Ęæ“ $Ųąą*#īK>¶Ėh ä~ b^µ _a ÓŖę†×¢Ān SHkg- "÷s+$¦…*mļ.Ą°B/°©­/:nč/Jvw/“JÓ-ŪŽ,}Rr+3aķ+„i5-GŸ5/¬õ0Õģ0Ŗź.zß)ų÷ %•¦Ć!—­ķfµĘżvƒÓq[ĮKˆ9Z‘®–”@d² éŠG ²„UŃÜżźBū÷n‰4ņe×ķ©l˜ėlJHėŻIÄģh“ašz»õ˜Iäūf'ų’=<Č3Ļpń8ÜÜAL’@ö.ųG^ōŽŒčņ® ņ†‹UņöXßņ[ōćM÷č=ū€4"Å| ŗå5fÅ į‘› B÷ :»¶ļ¾ŲyW“ sS— p•9 #Qæ Ē“–0’Š4OYļ®q”[ž(Ģcżl;eżOu*żŸQœü ©;ūŸRś ŒQśs_€ü3 ųb¼b1 sz –plj>Ać;„Ņ'fīńŠ·7ėFŻy&e1¤“÷üĖŃSpW4Ń%YGO‡GŅĀ Ęž +›1‘‘Yž+īų7šØō¢óp”óĶQlņSa'ņǦóŲ?÷éŹū²k?€(3÷óņn©b*Bž Īnų)1‚ńæ¢,ėfƒę:|ä7ØuåY%ńęnIēŁĶē곕ē€*čtĄĆč&ŃpčšÆēß ē1›čę‹čÕĘź( *ļeŠŖó;d÷-ł†÷`ü«ĄŒ’äĮlM]m)§RżįXYłEŻSõnŠńųī?āÕź–ēvćnäLßt©öÜbµŁŪ½ĢęÜŠząj`čā!„~ä£^å~¾å,x™äTq䏄Cå>ŲČ梙nčĆBźts²ģśsļŽ¼UšZr9šśBsī¬?ė×ęĻņgįoÕÜ3”Śļ“=Ū<ĘŁŽĖtäĮWŃź`9yš×¢0ōēM•õg5Įõ²¤äõlŌśõ3]“õVå“ōŪ~įófA¬óė¾õ”ņ÷ł?łYÅ>ų¬‹õƒ™ņ9€§ļ2y£ļ9Hƒņ«ø)÷Ē…;ū"¬žc:7*§Ż,Ö§É"’üÅś\åö0ü‰ōNø\ó—F%óŽŚ ōŠéžõFĆM÷ńrö®”ķņµ* īÖ éūņå%–}ćŠĘļä ė/čįŒ|ėֈYķƒlķÄå©źÖuķęŒäA)ćÅŃīās4Lį`!ŽŻØ{IŁÉ”+ÖÜ¶ŌŹ˜Õē")Ö&×„č×>zŠŁP¤B݁Ž9āWĀē€)zģ loš­a‘ó^Qīō—‘yóŅRļäóŽé4…ŽćøŪądˆCį‚„8äœõ č {iėoTąģ›¢ģĘöé1tˆę“!ć–o5ā»q4å”Mź,¢yļĖ‹^ób®[õŽ˜bõd7óŒī=ń‚f2šs ńi€ņ–ō CöŪź’ų6fšūŅŖżÉą¢ž9S„ż^fŖśĆqöæ{ņD¼‡šeįš«ĒÓņŻōõ8#A÷Ķ“ śJūģžÆ×Dz?O•·h”¹XžĀÆŻłs‰ö£˜FóW,Ģņ)_‚ōZ`÷ͳū,ŝž‡/ßĘĪu‡GO}žßfłÕ’VņJŅżėĄž’ēav–åѶŚä}'*äNōŲććk~äßśåŽ6üč|‡•ķm°ņF©‰ö·ōų&&Żś‹ éüČD’śüĄJKC}Q·ć”āXw`ćüæSÓū’õüOĀ šąvBš‰‡$Ęńt„-:йߢد’Éy{Žp›ņõ^ž”@{›Bˆ~ ĮVžm˜öČ£„/Qš†ā@ō ”‹ó³y[¤Įń@óLĀT¾½ąnĻŸ0‘ īsäūl.]F±ēPøl€Ū=PŲ’ås™ś0؇÷3K†öB„~÷F-żųĒb™łNģĖł9ēūb ż‘E¬žPĻŅ’!jŁņȈ±#¦ ­Ā«Ži@[‡M|!ųū‰Ē_#Łė%[:%g8q"{4Ļ ćYT-ļüŗÆ ī;1 ąw6 «&ł ńœ: ‰]­ ń/’ J˜/>ž’Ėė8ü ·Tś”ĘłūāłÜą}śĮEūńśWū^‹¶łŚ|5öƒ’įń2,Iīćž(ģPœæėl ģ ÆĢģ”tœī ©ńŹįóÓöėgyłč_nżėW’’K瓇Üv“xā›b±@Öö¦7ōj&7ó6—·ņ#DŠņJläó(`žõQ 'łķēnżŚf^K„„ģæs”R ĮĒ, µFѵø2 “ M“ AĶ VK† ՟6sN¼K»;`Å’SÜ'ž:FŸżųścżW5ńüѱü]“ČśęAē”ŃćēH3©č‹UĒčMč*$°ē)dSē&ŗČēJ £é½ķšwIń™ęõqŽų÷Ą3·śĢ¹ż>52S¤ÉÕĘžŅ‰ūf½÷\@õó-ķbš·1ķļ'”éZZ¶å‹+ćį3ēŽˆ–$Ż#Ė÷ÜÆ™éޤ5Øįķ.½ćŽmąä_ļHåż®åŲ«Ō伎2å3MęŖŹē\téΆŒėģxęķƒ.§ļĶņAš±ÆpļW"ķÖD‚鄊Ää’Ęīß„•„Ü@€ŗŪ>Ļ—Ż=<įįDz†ēÅ1Pķ’„äńĀ{ƒōQwõģzŃõóØöSEßõžZDõī zōqĀžó£šˆōē€cö>ŒEų»aŒų!UėöĢō5“Kń’,"š?ßhń?«čōBVųųéB<üK©Äž7īÄŌUŸp‚\55 ż‘Ä5ł õ:öövkōĮšó·Ńįóē”0õަönfÓöčĮō€bĪšj)/ģ æ×ēŸ åMŻä9īļęXvģé ńXģΈķʾļėsŅ!é?>ę;]>ä+I™ć6„ˆāńŚŽßEC Ü+$ŽŲŃKÖg¾›Õ4ū,Ö{ ×bHŅ×) 9Ł‘¶ÓŪRĀąßŠ6ķä$ ßé*Č"īĮ=¹ńv\ō«{ōįß}ńæTÜģ„kēÆ;ćRaäįHGć–āYę\w±éŠźģ ģmģpŸ.ė«Ņœč.ŚKå©Cć(ÉJäm čM£Ēģw4ńČ ōš(õósō5 ”ņŹńayųšįüń‚eMó§æ õ£Ü÷ź’!śmŽjü6ļżˆķżż±ž%üc0Čųāšō†Hņl’3ńŸm)ņ2tōݰö™Šųj+“ümŚ|hPR2ū?NB$`ü6iųš].õĆA†ó~®ōŃ× öµ‡ł\§‘üą^g’0 .®XŁ)Ņ’Öėńū‡(öļ—ēļJš©źą­oēTÆēå Tåqziäū1Žä—Ļ‹å3Ē«ēOoXė’Įūļ‚ČKō¼ƒ_÷g?¤ł×±ūdXčżJ\ ¦ƒ/icayƒk&6KĢžņ æüŗ<°ü9’ž…‡ŽyCD;u-ŠįćJēĀ7]Ņk4„ęxõW Źō@šŹŲ-ōĒ®*²!4 zŚ„ Ųņ(ŲŌр_£AąÆG𠮦z>ōZ[G[”F© ņY_L|`M £g 4 Bd\ć9.G°‘ŚW’F4*ųż“Ÿłęt‚÷yt]÷óeųVHłŖØł:dnś)ƒü¹ż,Š’6¤vf”†”‹¢‹Č ^ŤĶĀ7d¬ū<$7-“+bł ūø#Ų­$x0H#štŪ­“–łķēÕÕĢ ŃP ;æ "/ Ō›` »“­ Y$ OŸ8ĒŚ௚ž#×Čū¦“rś|śtÜOś īś3ĮNūƍŠśóƒų}bōÆešUŌķB}ģÖµNģȈ¬ģ…ćķóļs™Sņ㫾ōžū”÷4<>ūĘQ ’1sj¾•ÉŁF%ŸŁnĆUŁ&J¼m°ßžģėcž¦©żözźūĄĘłŚ;o÷ų6ö¤-öTō„÷v*Ÿśžž~žB_ځ~EsĀC›ĶjčuŠ ŻŽ­7£|ž;E’|mżƒæcūYåłģ„2ł7iŌų° ŒųŁŃ•ųØŗ3łjĒ«śĄ nżŖ" .¬”š=Źmƒ– ‰5° «$¶ Õ0Ū Ka` ʳ ŗ” ėĖp kĻ:C$(f„ø®ƒŽĀĖŗMĀU{¶ ¬Ī—;t-X†IĒź ļĪśe©q1¹Ö×&W„OœœĘÄ KŽT ”ķµžWéF#e@4|ƒ’Q¹ūóž}} Ox÷ ŌkĢ/ó„|Oeˆą üé, ¬R ‡ •뉦B$¼ęŁcD#Ūķ†Ž!Ūą½W’yåTH˜Ļ`]ņ 8· ō‹ļ|Īšˆ– =L!a ŪĀó X’‚ “ų©1¦G•čą’†ó{ūGīŲ÷:žBöyŅŹ÷=½ū»™{„h“œY Jī. LUŖĢc=µü ó^ż04?FÓ³žO °¦pu¹4»AœķRņĀīURēõõ5µ< °Z»ēUX¤ŹĢ‰›łźŅtĒĮyŻƒn™4M¾ EFH }ćz qįõdŽ( ‚ É ģYŃż½Ė“$a !kqq'S^6+°½)-'#.†D|.{s .ėā×, + C +G3O+p{^,®Ņė-„Æ$/øģö.°Źā,‚V8)ńĄL%{+5"ČćÖüątt ķ(Ųnäž”ĆÜ4 ~ ęG1Ų®»O’ Ž›^ •yQ0åž3UGłm:üóqŻļxnķ©ęæģmŌėķMßžš9²žõŌāś?UĘ’"öŃP|£īl0ąd§Z‰’gō śųŖ7öF¶ō~=‡õ]Ÿļõ,göŪ¬õŹŻõhģmōø‡uōĖșõ”rY÷eŸRų Ģ±÷dķ¢õāió[†%ńģļ)ń˜[óÖśąö÷‘RśZW+ż;Ay’{ń›zĻž…Æž¼uYū”Į"ųŅÉõš>hō§R ō)®ŗōŅ,žõØØ¹ö:2ĪõCsųņäīīīG"¦źK²(ē‰i¤åó/hę8Ī«čÓ +ėƒü°ģż%ģčå¾ź*ūēh±åh€ädéˆć“Š£įB#~ŽgnŪ<Ų¾¹ÖųƒÖq^×SRŅ×Ŗ]äŲ,¾ŁŚLޱ rāéŚBēµ+¾ė÷£„ļ19œņŌļŲó3Āņöiļī{¬ź6ĘęÆha㨋?ć›Ń1åH©#čŃź]7+ģŃÆŁė2g%źśĆ^ē#4ŲäŗÖ_ä3ęźļzźHLĘīÜJņ^üWō­ŁÆōY“óKöņüVXń}æń1ŠĒņ6[?ō"=Sö¼ųßēūÓ÷ütæČżŅ†żüGRś‡‡+÷ĶüóGŠ'ņĮxņ:īHó”LõĖö]÷īOŠśņŚAž+j{b°PrsQmžéŗś³#D÷?Æ×ōÕČ/ō#šFõø1—÷”}Æś»‰¶ż„ć’ėģėķ…swuéżOļTłhē–ó]­ī:?įéŠ:lē3 ę–*å7Fćäždfå!bŪęΣ鲔ķGėń-_ƒõ^o3ųXPqś)ešü££åžž9ī¹B£ü-.Ÿ% ,ƒT– ž†·żŽ™Ėż¾‚0źSĪūƒśJŹĀ#„z OBÓ2īš]v,ś«Ś;SŸ²UÖ‹‚>_£Č# =6f°KpDÆb.& Ļ‹fą|Šv=Ó}µ¼Ø2B“I~„²vŽYSž V„ „ńĮ0X§Jó’č Q+Ó¢lW’žB¶ūHżų’ÖÖ÷ä"ų?ėų:,vł£ śDņ;ūµ$Ļü^ŒCžłēž’OžWĻ“×jV[ŪnĮ ©ÆPć/gĘå[‘8ŽØ˜ˆ! !ŁÜz#©ŲY#R((!ŌozZ¢ß2©0¤ Ā© @2° ”Ā¢ BN [± ǽL ³`ŗćČŚ«żJŠŠū€j’śuē^ś–£øś¬Y&ūµ=šś6€cłõvö ²éņтĆ“ķĒŗŪģ;Ņģr ķ 4ļl›*ńßyó\äö÷·CłśÕŽüJé\ĪB?Ž’ŗē¶<Å‹õ\œA'”¾tģ8dT>¦%£GŠHĶ1VŻ(»€Äń+“ā_³TõxŪ{ †œD ̌ FA ’m Tę Œ÷_ ĢÓ¦•/ƒ‡7÷u#€97(Ė|++7TĶ,±›-Q{¦-¹&é,óÉ+’hõ*99Ė*i?b+,š,X½ē-ņžd.«_U-#£*öD '…Ÿµ#żG!®>˜ZŜן”3š=+ŒM :AlņEr/ 0œ ːeÆ'µ”ü…§E÷I@ ņTÆUļ‘“«ķ_źæķZ¶­ļxMó\³ų¶rēü °Gœ›··Dxj-”üŅJżb“ųĘöŪõÄĮHōR›€óŚę…ó9/pōĖdTö€Z<łJiżHMje‡س^UĆh®Ģfą°H“ Ņ>“ i3 }A × ‚ƒ.šFü £®t6ģž žžģ•ż›’ühŸ"ü,CūÕDū{49üŅi’•£$ׯ½-+ ½…¬Ņ1gCŽ©ś>—jkÜķīd¤ˆt7=^‚vqś3ÓśI(/_€g~#Ę­Ŗ‘ܾ¾* öV‡J &§šżŅ&łS\6öÄŽ”ōPø¬óWĆ@óømōóŹ öU DłĶ4ßü$Ņ.ĘYŽ‚p±Xӆäū&z{öō»Ńš„SęėŻG¦čß@lēĶØxē4‡°ēĪ Ćē™'ńēŖæqčxńč²_éO”Ąč²Uč?Į)čPøčAVrźóž`ķšoóšÄÖ[ōīa÷-łEśä¶ż's#’‚°—’±Ižs²ū/okųš÷īō2‡ńø%ī”’©ź7žę„~㲫©ą²ŪźŽ¢™ŖŽ‘śßŁ0÷ᄹć‹õéäU;wå Œå¼ćå%(żå–ĮéęMČ4č{ĶĪéqĀė¾ÖČķPRļ<·źļ2sEļĶīJķvŸźz“óå4GŌįĄįŽ8nćŻK5@ßßµā§zē|5€ģõŪ°ša2sóRķōĀ‘¬õ±ö ~éõ«Ōvõ€łāōjµ”ōÖæ0õ·ŽöÕ¶Ī÷IŲō÷낸ö`Q‹ōń`oņČŒńr‹ņŻ0õĖusųövūÆJž1‡š’ÓųØu¤’Nżœ¹ śĶ_÷»×€õOōį”ōĪ,€õRŖeöńŠFö¢ƒ~ōļŽAńɛMķ‘Œéµē‡Ź›ę”ƒéēPąźÉ•ņėŹĄ¢ģ†šĘėŃņ©é÷Mē“m„åć;†äéģ慝ą‘Ą]ŻĘ]Ś­&?Ųo§W×ģÕi×vZķ׏mĄŲ.!9ŚźĀ¹ÜcąnoŃäæ¾QéœņpķvAßšEó&q1ó3‰.ńfgķDūčŽyåÓ¢䝞»äåīę¹@‰éČÆuė½ģŽ@$ė\4é]e’ęhT+åóåįāĆčø1šģĄUšY=ó÷ŹVōÜļō{ ōņ7‰÷ń»×ŅńųætņŁšóéZMõŁrx÷pÅłP&ŲūŖc0żd„BżģĒūвłB)ńõ—N‡ó-׉ņöööņpyKōwć3öńĖŚų2üv®„’»ņÆAcÉ7€Ž’HėÄü^łĪR‚ö•!óō¹^õŹ®‘öÉ£ł¹žüę=…žéŸ!³×~€|’3äĀū–|ŪöäŸtńA§¼ģdLjéĻcēęixå/G†å*nę3qč|g±ėv›ØļR÷v󢻏öēĶłs»OūŽæ‹żšūÖ’ażĮ vSwsœµĆIi’ƒ›Ķż/S¢żä*’`¶¢%’\ö„H%źé£»lļfmćĀ.š¢,ńmŚXõ7”YOØk5”# ļŠā 7Żp–•3Iģxą»Jßmp\¹4äż’nÉ.č|ąē¹M¬0ˆ É,é S:Š AZ”k„»d³÷€14»Ķż–zĄśž*Ņųģ§Nų$²ųŸz=ł~;Ćł£g¦ś)1žūģpżFĪžž VQ×jkX[Ģ- g„ Äšøš;x†‹į¦=’jæ×!Ÿ„Ą"fK¼!²ŒÓPt+²xyFOÅ£ NZš ,Ś2 ŽmÖ éØĢ “[ ³[\z²tNļĆ’D­żkĒiū g¹śP‡±ś‡Tū|Jūł‡6ś~•ųč»’ōNĖń«ÓAļīÄķ]l;ķŸqķl{ī&{6šhkOņš}°ō${†÷y©ŚśćŒNžs^sAyŒžq&ˆØkI|@°‘-YŁ• Źl’å¼£ž =¢żūśü ēś“³;ų®œ÷}÷,YEų3sÅśŗžā|Õųt#©U Ź@“”‰æ;²™$ōČ:xžøe„S’‡ć«ż7Ņīū{<–śL»łĘD4ł‡węų+ öųb÷ł”wū©Åsż‹ŽŹ,ČāŪśC ¢ž”  ›ē bkī °å“ g⟠Ėčd  о—a `Õ¹Žēųš•ˆ ¶¤Ós 4±"UŁ88xJõeŃÅZySęւŖććĀ[­¢£Ü) e§­ ņAV^"’܃ĘЇ^±tŪē°6§ōī/ęf¬ 3pøTMĀ‘2#˜ćxO`—‘Z ū« 6=Ź »ųr9÷L};u2r‡5gśÅĻ^:čŖó=E­g®PĖƶ ōį ›¤G dŽ2Żę4dM-ž1€V Юے^+Ż7 ”m-Ī„ü0žTł›/ļ÷“õųFļū’)å’ČYq.·‹÷ "mVŅĻ]6Ł6…éēŽ|±™'ėe?ļ½GCO_4’,ć¬]Ž0ēSāäŌ~.€Ųó¬6`ašnd’ÖY†¢VƒB į\|ŹIOxRK¤ ]× ];½ TŅ* ,äo Ā O; CO¼ žµdØFĒ$_§§(”5+Ńm,Ļfö,ĆŪ³,ļ5Ü+°ö*,<~*«*T€+]®,v…-yl@-XĘ|+(ē†(Pģ<%õĪO"¹Į»JćbģOyüĶv”åX‚höå ]Ś’:P| œĶŠ Ź ćT ˒ڊ…śØž™õĢ;ØńŁŪļX<4īm ļ}rœń€KŽõó&'śč†„žād QÆĢ2³ā%½’¬·SūópÕ÷7”õėcHōkźĢóµ’.ōŁ{õ‚>Ä÷sOū–Bųž]ŪÖSNÄuy€@rŲsx®†¦āĒb®D xĢ o—ż ń—p -a O×#\ŸóȾ~Yź’)ļŗžłož1 gżČ–Ŗü99ŠūOPū(²Äū®l”ż…ģIś–Śh óL 7pā&ū~t°Ź¾»­čĄ Ć,«žŠ[ńĀE*닱TĄōć«Ėyø3žG _ł ­(Ė31öūņēGųRņõĮ»ō8‚ĮórėÕóm$õīǦ÷*½ęś74:žFĻ ÄĄ·öā’Rū!ž1Ł‹łYö7ō–ļŌ‹ ėę_æč'čMŖõēśwčĪčV|sčKżķč_2驂éEĪčVuŠčč¼č–Ōé|Ś ģ}(ļy=‚ņuؤõ#õ•ų…lū–Ä׿Ļ]’m£Éž‹ żõ¬Eś+0 ÷“m®óv‰XšĢ7öģŚĖlé-—ä廄Åā.zą7“jߟßÓßōPᤛ ćC2täVåÉ ³åS=ĶåY"ęó|øęh¦Ę燙*ébćźĮŪŅģdŽī”RžļDڦļĮsī0LģY<€čˆävšį‘ ß2Ū.ßĶ<`įõ9å°Ģįé /Uī/9Ćńī¦ńóiĒ+õ‘ ĻõųNžõŹKĘõ‰/Oõ>ķōŻGõDWżõĢ5÷¬`Ł÷ō(Y÷HvÄõ!”ĆóiĮXņ\^^ņæ ō£ĖöūĆł>@{ü‹;·žPPķQż’Ē[ž=ĘæūOĻłŹ÷ŅöRŲdõ»ćōƒCõ‘” ö ķ^ö±€sõ§Āó¢ü«ļϤśėLŠņčtēŽ»ē7›C镂ė˜ĒRģź.Hģ7MķźŃŚčī=öętŪ—å«Õ>äe”Bāqjß鶇ܣ| Śõ‚Ų#¬ŲŗŒ1Ų\QĘŲ.ĒŻŁa‚ÉŪ1|ĀŽŚųØāœhłę .ėžźī˜Įµń[ńļņjó,ņLhļuK¦ėĖåŽēOŁså*jśäR]8ęHyičrˆźPõ¼ėgƒ§ė¦¹Tźv2čķŠ\ę~ÕęóżµēÕĶĶźÆ=aīz„ńÅ?‚ólōz*‘ó@¶¤ņĄ%ņTÜ\ņ£#+óf߂ōK›_öc܆ų(§ś¾Wüpcż$uuüہśŽ“Ā÷~Üõ¶ūtó.óo4ÖóD¤PõĪķ|÷x#cś•›żÉµFŠ0myØÕ€^ž%Sū½³RųnŸ'öu_õä! öGÉā÷2ktśä ż/Å’8qč®’Ī&yżōZł„ōw™Ćļ19ŠėXŃé0WēÓ¬ OŪģ hĪÆ2†āEę¢ōČžĀ7™üL^ūŽ×éśė$łś&|ūīxÆś’I>łĆ›Įö~÷Ćó|IžšÄPļE7īķ_ģ¬ķ®4īņ?€ļ†ąOńąHwó¢ööŌ‡ł²Tüķń‚’”Žl¾¢LQ%qoV±¬›ģ-u¹&ķ/’!ųCž&xņüa«1ūs/_łŌWó÷ÉŲR÷Ž>Ō÷ŗ•’ł&Qü³¦†’®•ž{¢-g8ßdHn¶ ňŽ*ń5Ks§Ձ2ƒ€ŖžŪļūüķ{ūæ‹bś¬t©ł…Ē5łĢJłnŚ\łRīTśfė1üĄ(Śž‘ąä&:õĘāĶ»ø' żtĒ EŚ› •Č Ņ]” țy $ģį q¼ė ź±UčŲĘ‘ĒUÄXžĄĢĘžQ‰™ė˜Ixq=/|”ų_w"ß?3L8«H.Šžœ1ĻżųÉ%³h uŽ 9ϧł.V"&ģlųķKŲ4#Ä÷%Vˆ 3’ ”į)ėOmG°åāHNAõ‰½ Bņz ‹Óć]īü5ؐKH5ćn°«i^¹|Tųę!k‘—Zg FŒÄ ć QüĪBł±tėœ‘]œ '¶ńßźRæ“Ť}ćꏞ¬Yū€–ł’“ĢųŽ—śćŒĶżf“­±¶Ž ø  ę) Ņ„f£ĮēäįŹZYy—†aY+k/Uó¶šn É łšī ē@!PKĶ|¾ēŽ¢9›ü;,_Ī4#ž‰Mfnµ@Yś&¤‘hĆx‹Źō^žōÖҬöG/Rł<Éüjæā%ą©š1āåƒaå¼Q6%ˆK¶ē!9e ˜§¼ ‘ 9„„?‡ ”"2Ē1M>S‰’2WžäÖż÷Ģ$ż®KYüæė}?$ė+—ŒéZņ°ē”Ŗ°ęźåLē°„~éŻ~Ÿģ }Ņļ-Tņꁬó øĻó:Ž4ó„ ™ņĢVzņĆšņćžšóżxõ‘™g÷mˆył'Wū+Œü¾©ü†ü}ūšŅKł—ĖæöI­ō§¦óķm½ó$øōž!^¤E tĖϹƤēži°oH RhĄ łŠj õ‚ …j* m”Å ‹Ļ1½ęRčØ/ žƒ\Oüäadū Pū_ė"ū; ōśÆ< śĄ›(ųUŽ‹õSČņČŁtš(™éīĄl.ī¢ģ;ī;ŽļōK„š{įgņčT®ōæ·c÷õ_yś‚ū£ż–Pva†Ä«³qW0ÄŃśĘm†½7’ˆč]TĪ’·¦ŪžśŗżUė7ü/}śŗ źų7|å÷%åÉ÷“ŃųŌķśčĮż=ŁÉŚŒķ«V"×õŪąÓyŽŖ¬BG·™œ˜’Lb’ż#8nüœķ&ū¾5:śbhœłK}Gł›ĘSł}ØėłgVEūĀÉożŽ|+@^ŽŅÆä•c“ Y}× Th Vw :Ž^ 6Œ Ó > ĀĄhłÄ³ 9 4ū3¤*ŸŸ|øÄNā9Ÿ25÷ķLh ”:¾73Cźłƒõ6«—’£F igó ü‰„Ņ6aõ H©Ģ¶éæ:­ó5łĒ‚ĮęŒ Ó” ®µA $@×pü™ģāņWo ˜/ V7 !óIü¤ŽQ„£œ«Ż ĢXĢgƒØŚčMryČNä rF… ļ"ō åģ„ Ń‚R ęĶKzƱóØŲ<ĮODÅ[(.6ß}ūkż§Ÿś?¦QłąMńłĪq9üź[Œ’”ĒS!2*«@Ń _S'!»¼Į§’é:Įb‚—‹Äƒ”SWŚ7u%'õ÷' V’MĢܳs‰]q°‰ßé'Ø?LĀu|› ś‹£¦`“Ć5qDŽ0žÅÖV ˜‰^ i… ŸHr o² ē' #Ž6„ljĶF”lVq"½ųT&"r)Āć§*ØKh+’ńb+ĀÅŁ*“ū5*ź¬Ų)cś)Ş*lH+S,¼+™=*%Ė'uR÷$؝7"Žø¤{0¶įģc% ®ĄŠ<o¼±ŪČt9ksžn Cŗ PcČ›Īļ­ū™ ÷²ŅFó<ģ³š“VšļJÆšj":ņkņ”õj)žł~ō¶ż“±N`}Ą'©aeź¾×’µ·;ü)žłŪ »öߣ@õ§uœōBJŌō™ņõČ’÷ßģśŁ“jždÉŚś¤Ÿ4ezŹ™ƒė–’ČæE¾Ą—¤Č m“k ÉG€ ¢‡ü)jŠ|«%u.ąŚ/Ł|3•<’$„ZžtżŁ³ŪüūĻ"ü¤‚Ģū ·Lü¤‡śżÖ-Õ wz\I`Ć AV*½…ĶØ}ś·žøŹØ1p2źmjš•ˆcÕĖ—Ł &ŖŽ*ųM[×ot4“8ųS¬% R“šMŗĒ1OżZ·łÜ«,÷ąĒõāš™ōWϜō^J·õ¶½×÷ÕI¤ś.†—ż Æ%šˆĀH¢ˆĆĒ« žÉŅśōKõÅQ«šµVåģȂvź}fC鑨Ė諨č㕺č~RéXé_ɋ龓ƒéīÄSéi5é×fé!ƒźQŠģ¤<ļOf;ņēÜ7õnBųÄpÖśįbżKZDžoĀ)žnZĻü„”‚śĆ„÷o ‡ō½¬OńA*’ķ› —źk4AēSoMä|Īāµūą#™įļ¹ā¢ļlć’ČØäõ‰å`ƒęFŹN欜¬ęq[QēAEHč‰Ę’é"w)ė¢näģS³nī|ļČõyīĢ÷Xģ"MK鵞ŪåL)×ā īįXzßą%„‘āLæå "ŗé!{®ķŠ«ņš– FóŠ0Āōm’™õ(kīõŅ0Üõ Ķ‘õ±ē[õ':õąĆFöńŃ$÷Ž»‘÷š='÷0żķõ?eōąłPóK"Vóč”ō‰8ŲösDjłg@ėūŠdžłlD’xkO’:Qžņü6¾¶łĀѱ÷ūõIöøćŖõ6uĆõ"})öa·2öT/Iõć=óæTšā%ķ¦X|źÆ=éQ5ńč”Ńėé¹@ėj(-ģ˜,ģĢŹ*ėõź’é\öē‚ˆęėåN欎ŠąõŌźŻ“»§Ūå– Ś,©jن±YŁXČĢŁöÖŚØö©Üaeßä’ęāK_ŅęšŅ½źłCīléšļ[)ņ„²ńöęļ<¶{ģYYéė.稁ę¬ģ;ē)WŅ艀zź…čƒė5ŒėlµŽźµōčhžēUmēQ(·čw(3ė*ņ1īżbņš3Ūņ†©ó¦Šó» ó+¼ņŲåņoŗ“óĆŌĘō9pöµń]ų^ąGśÕ]Ėūƒzü6üėxśü(>ųF‘ öčO†ōh³ōF'pō¾Ŗõ^“”÷s&9śŻ·żœ™T’Zk0Mū’r>ž@ĶæūV0łšd?÷ÅzföįõĘö#}7ųžxTśDƒü8–až›ÆW’†Ń’qżŠhÅłÆU‡õ– 1ńį÷uķ Ö¢ź«č6rē°ōóę3@ēp‹zč8„µźZę¹ķ¼ ń‘«1ō»żö¼ūył XĖūūž`½1ø¼rn$ćóŸł¦4!M’a¼ŸžTŃ’±Ls–$nö|HGzy£3ŅZøą…B+ ä@3ŪŪäeJb;¼Š>¶Ó ‘>“M ;¾– ¦ įLXŹ[Jå} īÓÉą9 Ö,ž² ŸŒól›ŋ4„ §/o 4⦽ĒLDØ$Ī)ø4Ŗ„t Æ-Yż3'%ūŅJŅł`XłųOdłé¼ł5CcśŻ\ū”‚Œüą„Õż;G’•¬Rs•Īƒń!! Œó ‰Ź­-50Ÿ’ų ¶`QQ Ųź- ࢑“GĄW‰ŚĐ#IØĒ źgŗ MPx Õ? ,^ t’“¦Kč„@}­’¬å‚żćQ"üĄ?vūæõBūśB!ūd£‘ś æ7ł˜Z÷³p~ōpņnZšbnóīż®Šī‚,ęī“qóļoˆńe|ˆóĶfōõD Ēų ĢÓū %Āžņ,sfŃ–Z·Øƒč°”ÆĪd Ÿ¬Ixõ­u’hPkžĶÕżQ‡ūŠāģłšH§ų„ųĀ£wųÖKķł ŲBü/’J—ŽęEV\īz|˜&ø5ķ‰. ołĆō}‰jõžreżłžū‡åśķśįšł)-ołŠ{øłZv£ś—ĢQü9®ŖžMĆg2?īŁīą—2 qį× XøĪ ē5/ : ÅdO ŒĆæ źŗ£ Bq×»Ŗ1]Äņź²±Ė䄱č„10Š¢g[ž–Œ  W8öƒÓNoö|VmSJņ ‹ą­o ˆß1 ®²ģ)7«ėa‚Aƒ°$ņ„·<ŌÓ¬VJ“×ÅĶĮ½`… 6KĮ ƒ6޳;0‡qĖū A0ć ³\" Ži”-įA“b“å>!čļė=ßÉ®œ§Į¼žį{? °[µ įyB ‹§ pZ=Y4Ēm4*ØŻt0•vÆÕ} ģ«ošk’Ņ"cü$ŽZśi/šłźb9ūh¢ŃżĖ/˜rÜG†n-š \Öįד/{»Ń?Åģ'ŒŠ+¾żØ™‹ū-x–n”/}ƒXšö,FYsh@0UČ@Łüģ2åóŲ‹Aņ*·*0„ `Aņė™ēžY‰ rHÜ ĪoÖ 0“” ®Z Ā#l rkäk­¬6ßųś 1Ār#ŽŲĀ&ĶG)sHM*Œ–Ā*¬_’*š”*`I›)”a~)ź Ł)-ų*ž:+9V+B€z*ūUž(½‚&ަo#ł-Õ 'lWŖ’Ā•ī€l?–ōŅĀE_ŪĶØĞ‘üõj³ ĻÉ…Xг™ž20ėł×ÄõŲ’”ņĪ4­šrDš Fkń®žõóĪńw÷ AaūŸ£ ’^ń̟² ²hī²Wl:ž'ŃūŪČQųØšcöĢ—DõLYśō¦ōõ͵÷“hł‹²}üWŲÖ’YųŻ?¢+5–ŖX€żaņ¬žId¬/~ n†P ŻD ?aP½÷4;¬ P¤ƒh° K÷žsŽžL"[ż/šœü*:ü_'üĻ….żAāU’jĒo™%Ū(» P öóŖad¬Oī,Æ6…¦Įō)?1™&kR'Æä!Ó«ƒŽ6X°õV4?¾%t÷€M"* µ e‰™š’’9YüÕņų5Čö™¶iõķ_ćōUó[õļ3ÜöĆņ0łÜańū>œžŻ)«Ż¼„NC(åi’d6üüT ųא‡óę6mļ“Vģœsź9é+Yéä鐪#é)skéW׫éēŗĄéłŅØéVȆésŸéÅ`Gźš/»ė™÷ķųG²šoh˜ó9½zö€Błüćµū}rnżņ; ž–lż/ź½ūrzMł¦BnöGCYóKŚ$šAMÕģŅ©‚é¦ hęaL×ćÉ\'āˆē’įōīāęNćkCBäŪFå+öå–`ęŠØŗęVŖ=ēõOč'éĆåźžģĄµķņī8o~ļķŌļTÆ¢ķW¹-ė Šč¹£õäųѓā³{Œį%3āTčqäZŃēėŹ*ļļCęń¼ ŁóR÷õšĪ½õ‡īõ1óĢõ>¦–õpʙõĶY öJČöÕ3b÷d€c÷„Ķ öE+Wõėōp™óo1ōž™Ņõxeųz†‚śxĮüŌÄkžĆ©’՝žČ¾żå° ū üųįN÷’ƒEöėæóõ;śöw%HööĆÕõGNkōĮ]ņƛ%ļ;Sģ7×Jź …wéézĢéÅ¢Ńźņ‚ŁėmIģėLÕėc¢ź >"é†y¬ēo·6ęOyäķžHā<“ĶߦĒlŻĒEŪGgŚĘńņŁ{„Ś>¦½Ś’ ÜŽJŽ„KKį¶·įä<ܰčžWģŻeļT_ńwŪńķg»š¼Qī^ėŲŚŅčäOfēXSēĻVčoŅé=;ėCŸėOH6ėü£ź”§č†¾ļē7očüį/ź*’ĆģRl‚ļµČńÉ(ó!o“óŻ#^óač ó2į’ņmÖdó¾¾Gōp„õkQ_÷°a;ł1YčśėÄüŸ”*üāįBū9łĄ›f÷̌œõ]&—ō1szō¾ź4õ>©²öLĀßų{›xūćńńżŠ_ž’øįœ ’ Bż!µśĮ]Šų§ķ'÷/BŪö·H¦÷ƒJKł-Yū'Lż" ¬ž¶ź’kŸžK“ū›¼ō÷T×óÆēėļĮs­ģZ?źˆ–č©ēėl}ē%C+č-Ģ黂LģĘfVļ [xņ-Õcõ‘©ų„ŠlśĘ{³ü³sŚž’²ŁŻ,‘å[>P ᇒĻ<ńž÷ŖĘ’Šy]|,ŲU¤`glVĶ€Ø?źjŒ-ŠøįåķÆ YŲqöŒ"óæ裷GZœ ’…ÜXE(Ł»=wÖ›ź ĢYŠNöżÅµ->÷u9÷7ęĆļdw”õ ”±§ Ćy¬ y‚äŠVoĒśO€©ķžÖ>‹üÕ]Ėś“ ŁłWsŽł³­ł1Ēśö9åśÅpīū`­ż½DtžĘą ło’¼‚rśĪ— ŠŗGåŒŚVVEl߀®z\OŌxļØiĮ³ā;ĪĖ„čXÓ-®Y7ŗ‚7ĻĆr …­ ȾT ;ū¹ K»Z hŃGī>’ī\¤ēž5’żÄ üsę‰ūä PūXłīśzążłšŁNųØ ö“SŸó‰3}ń Hņļ'ļj°ļB£ļ”³Żš8’ņV/µō§B÷l–ś± żE¬’O ³(^« «ÜG¹Gk1ü{:GÉ”üY’¦äż£”xüĀģśŗ„ł\q˜ųŚ–vų@ÕNł ūÖš‡ż ‰:„ÄædČ ©łÄ{0¼ݳBŹQŅT]łą’>ŠXžŗāüÕ„ū–}±ś’Čśæ\ŖłļG±łōk@śXÆ|ūó)jżĘwŪ’Š>żB¤‘³†§ )ż L¶ n°ū ź’ ė²` »£ yĮ2@Ńw«÷«bĖyf/IsÜ×_ Ö×ĖQx@‚ ›Ó—ėP˜4> ŽDˆI“ N«xtš[ Ł£' Pī„ Ąę†Ē8IYuįĮ%”(›~`Š›Ē Y·8 i×}ś=õ%\j …i ‚ä _ n jJH6O˜NJm_J ÷ ōŚŽ|^o!#ŅĀIĢm….› Év] Ö½ś ü¬° Ī–¾uźJlBHĘKu»r¶HŻcbrW(j¼>ÉP5žšĶŗūŽ6{ś'ŽĶś‘üO„\’Չŗ ŹIpŗĀ ą č čX‡6ų…ļ}šč„üīfnŌ{ r+XuŠGŃ\ܾ&ņõś“łØ z}2Ą āƒ-_ -Ū!P㱯ȗ»=¢&£³°bģ-˳/{źųć ČŁ Ėt ó_Į Ńcń ĄC “å lzʤ,˜z­µÄ] µļ3$$'QKį(¤ųŲ) T*”Ī)#Sb)ŖÉ )¶Ķ<)lĄŗ)ķ _*&¼*;ra*>)¦^'¼—Ž$“F’! ~Ā č$E Ykxų§Žn;~„ŖCØøf ?1č xĶÖā™[Ue¾üĀfų’ Įō ņ,ņVĄīšŗ+ń½ŹŁņ)—±õ'c<ł:Ÿšü>k‡O’@?å;āéŲ’DŽüBRś£,æ÷]0öŸ=kõOj{õŲujöxć;ųóöלJļšżuŽ^4Ø“¼’wĖ9ŸĄņxdVM ½s « iš¬õ–|Öż\čƎ!”ō“„®’D˲žSĘŽżyż¾wü–;;ü‡¦½üéh?žäĄĆł|šmģ ¦Õ’ @¹§h~ł/ß#ø2.­ŅC±æ{DbäF[3q|ĆėNR2×ŅqÄ·óTŪ IĒ-ž›rü4B%\„« é¶V*k:ś²Xß²į·ĀŽaŗ·ōŠkuąöCźq ēSæšé`ņhÖ2ęsE“ŌŻ8¹Ł„¼Öl ߝ(€ē“¤Ž1PyĪ»4‚įą»YåųFÖųįŪV; ą6f*ū:Ē•āQg÷žµCģ=[+Õåōä½sųIœząĀ]ĢČe6ą×Ų#ē#ó=ļEĪŽåȦ¾Ėć“cäOėõß+x:ėĢHģ'ĪZóp¢¬ģćjfŌłW5`/eõī…ŸNūīæŽåé•/Ö!jŅ’9­ŁqžēIĒŗŃōĶUĢ“>‡Ć~>ŻŌķ›Ęä÷égļ/›NäÆ'VÓv ĄŅ[^fŻhĢę¬=ČŲw”Ņ· Ö‘fTĻżץ@ŃėˆHā°‰œė•yXéIwŠć9ÉĮ⦉ō~z’ĆĆšö ż‰ćŖJ‘įR€bēD¹īąā¤ņäų»į܁ȃą*ŠÕ»ÉąĘ Ļ·¦¾ŃOkČųægŚF‹é~,ŗŚžÖ‰ŠņØÕń”¢Õ·ģßŹŌ 9ŲmČtپņ źQægŽ,ńgčų>ųQņļļߌ²ėœۜݹßG‹ŽĖ¬Ģ‘恻EĀU”pĢ"Ÿ”Ń<ŃāA^zéwS†ń+[°ņ(ląļEHāzĢkė«›“ńŹ\­ųģ‡īwzńŅX÷ņSCļ[®~ŁT%ā(b«-?„ķ;œ<Ē®;­¬‹(j°tw¢*ž˜ī ōƿ׉ķšn@, ŗ!lĖ(Å܃®)ģįF5¹KöžBł¢\ü.łóķėtų’P ’ęōģł)‘žĢgć÷f§Žē{ĖJŚuŚ£Ż °;Ž©Ķź”µEów§Bī jXķzW\J½ˆŌKśŃ|˜X e·}®… åbźłX/„˜‡ž…~„“Ź^+Üõ(!óž5 €” 1 ūų,-čįŒö ?šīn ų Ó@ł‘IĪ$VĄÄ…ķF üqā .·‘ŁļŻ~”ņtøAźÅćŽėęAŽų1ÓpĀNuņ=ńÕš¬ĻnńÕØØÉēbH›ż1Š& ØD >)ĖŠ0ŽŠ©±!Ævv ©É’Ėx f”)±8Č nD™‡čĻ ·Am%ĢzĀ.Č­ś9ĪÕ¾(Ć{¼&2¹3Ē“;‹ ›>‘!.Ɵ]Ŗ8ž<­yu59’õy"E¾ž.±Z(½”=¾.JK#†¦Ń'ö&–ŹĘxA! ČvBH—ÄÕ8³ ž+ĖØŖP7¢żä&‰Żż:¾KųB\Ē<ŽŽ2é”F"†Ņ”°Č–  TņvØš/…$2 0€O™÷„}ōJėūÆ7źō”g]ņ=ʉ÷stžØP?ž8@~ųUĘżŁDó0eč”źõmIź,DŽą¶nóm— Mz{CįžÄ¾™buī³Ķœ0¢ĀP æ³t½{_«BkY¹Ģv;* x&*ŗ`[ŻÅņ£BuY!2wėłd*(üĀ/i$õF)>h &•ęŌ …#BR1Å Y@<½ōś:÷Õš’ æ÷&zą?恸cī ?É@P"“Ó±-Ae*?ŸīNMž”jQóKÕ|ĀCÖÅqEšžKÅØK‡¼1AZEę:8FB[0£Eų.ŌCÅÜPGāēG‚ ?%#y/§mĪ“ÜQ@ć?…Ķ-ŠÓ/“O[ž a~c ,ĘŃįÕÕKLp )]ļ’ żšėćķķēŅąD҈ŠnEÉÄzĪQé Ļ$µBŃ+`˜ŁTiäA˜øņ›€ńõKXš£i“ō÷ŌõWŁčĮšĻ¶AĮ¼ń2Ģ3µ‘āģą®S}Ųė}VįK²ųčŖ7VóąŻųõłšSį9˜ów ×{¶üāYņõ…ķēś-Ģ*󤙒ń§očō©Õ¹šåŒżļL‚›ģWŠøāŃÅ×:—cߨ…ŽŹ&ÓCʤÜ#t¶āez2ßā!ßń™żŲ2%"×Ķ*ŽŽK©æäö‘õū"ˆžČ,¢'äń¬€lŪüš;€9F‡ėM„~«§ų÷ps÷qÄlž†‹’ŸVdIKt ¢} Žó§)’óõĀėZsś³ōū·zgģpŒŁ¬ķŚø!ÜŁOŲŽ×Åżģø=ĀįøąŲŽ åßõ•ØļėńŖų¤jüe"qūāDe!¬˜i“ńõ‘:ļ¤;ZčøŌÓśŚ|ĪąėvĶRmMɚaŚĘƒ˜ąĶq׋ņĢ0~üĻ֘éŲür ŚfŽwĢ éĒ…d®Č]gŽÅ.äĢĢ:ōXĪ9%‡ą:Ą0ē_\Éä]’ßß}Ńą yķ½’¢ļ._Kįž”XĪė>ŖÉ!ēĘj•Ǿh¼¼½Łžk¶0"ż¶łź«ń¾ų¤ńšŹ® .±ˆ'ݲEZÉń·”ŌžøĖ “²É]}αØf˽DÄżZĖÆBÉŹ¾–Ń;»„ĒEŚŅõæŌŪŖ{0ׇk!Ö§¦cĻ^uxÄ\I:Äʋ0²jø¼¬™}k³S!æ’Źā(¹Ū!²ąć’ ėĶŠYėü.`å]£ŪŪĪ‹ōāV_sę7źačüˆVąšā?ä§ĮPę ĒyåżšłĄS¹V-9ņ?ŻDŚ$ß2ƒ"3ų“ĪÉń O¤ņ.Æ f<ģTöäė#<ł¢'5@ Ž.? „j·’:āażģ^žē80ĀŽżC½āgńéŲÄčņÜuģg³ō,Pó[ÓöQÉŠģ“īŠŪužĄĪƔX̲IµÉŃįuŠČ\čŠDĻ9ŹSŠIĶHƒnÜāöõŪ«6uŪŲććå”óæ†Ēżž—£ų6v^P­¾õėx•ō ūÖ[†qšM£Dķ<źłåčśA¢ŸłCō6ź_÷_ä.o šž‰³ķhLöˆyŽų*€U^å zŸ¶ H—ī Õö F’›¦ µwś(Š”÷GšŪūnj”vB Ļ™šž³>2ž%:Į‡xé^ ŽøXĶ|ć ÆŻ ‹A 8e)Ņ[„h%cÓłŻą2š';ZuGD g;Æ’~„߈Ą «WĻ–ÖjĀWü cǟN"įÖ³$ ?łɊ« ę@ą‘w¶ ”Wž ”:lć°ļ"méÖ*R¬Ü!Q;Xuź  µ ļåqŚ9?–£2å|µ’ ”H[_/Ś|® ÷š#;E.Į«äVa ֏R]į õMŪż¶‹³ś»cö†=‚ VEkĮ6H Ū#Iģh‚M'V§MŹŁ]FÆP‘:,D.ž0'‚-“ņü.„’Ō%Llr ,A7ć1Lå=E뼇ŒźN )<{ 5#²½Ź‰ö2xY÷oHYņYŹźŃMÄéfŃīļ¶æ†ń&Ą?öŁóņ’ø6œ Tš¬e$ƒ•Żå³?ŸbåŠĒ L²,óO)·é½a`ō’¼°'ūhł«ųaņ€Ó-÷Æ&ū—>ÉķhT\XLŒQų‰3į&Ōņ·ŽŗC{œ/Ö|"ƒ5£ś'n–³ S**„æ×ü !ī¦Ź•žž˜Ä z·ā ē@ %)Ž 1[ແLū ‡õa#eĖą '•“)ģŁs+ü3q-£½¼)€{’2ŻÕ9O–52¢L1Ū%D1Ņ»–3šą0ż2ķ¾O2źĖT+sQņep2µhž&DßéD ZĶżX®ßņB‰ ÷—ŽĘūŅ•}™÷ēÖK G\ 6;Żķ”%ÓҰ,] 5.kĮ¹,ŅLĮ.iŅ)d…s™ŁĻYmø*V)¬öłüQĪVś‡'Mś“¤GʆµäūåŃbóWמö%åöüĒLūe¼šv ī’1VķĻ7|ź›iķ"Œķ÷ābų†÷OæˆńŽå°ė—ŪkībÕ)ųīĶm÷‚“ĪėŹ%—įÖiŻāb\ć“'Źį›Õ±ā¬Ł9ŽT“Ū—‡hĪžƒČł¤}ĖfȊE$Ź)mٶó•Ūz‘/ÓĶŁÓø@Ųn‘׏ÅöŲ6ć½ókē]ÖķØ“čQd+ōtŹ*ų¢?GōŁĄpņŌņźOTgćūoß$Ķ”ĪycĘŹŽĪ1–ęÕ׌˜Ž†Wųź˜+‹š¤Yˆõ-Kóó×ģīźēZ"ļ6æņ;ä/ō!‘“šwģ<öB7“ų^ż©žS‚õņhĮ!L„3å:ÅŪC{ …AŁķ96ćB+ å]'% óŚ·P 9® Č¢•—›īų‘ŽiJ™źņr«’2Ś+źé«ņāxī9älĖč©ōåė^Ęēœ.ļõE𫶆ōK-ōģ=·\āłŌÜŽÜö£Ük€™ą7ĶÜmAöÕč•éŲ<æ„ą"8PÜĄķŪ`÷ćѓ¬ģ\‡Īš”:nķz8Yń¦łāz„åČĖSīĄ|č ¶Ś\`1ŽÜMźb‘Ųģ‘_lėzSąJŠąéĶčä¢Yčó0§ļŌ“ņņ6¼üÆUĻWYüĢQŌśøČ®÷ņ¶š†Õžģ‘ßæŪČŅ’×ĪÖŁ{ąK)cÜg`¼Ń#ŠŃūUÕUˀݠU,×&ąĮ֊ ĆŚwy}ŽZ:"ā0iršt³÷.÷ėŅų}öžésż ź6õł¬śō:NQķhÓģ«.šķNxņlo$ūŠv"ż`ŗœ÷ŗó·ž¶ö8v­»]2 sŚ­“|%/’pfĀ’ŠŽ ۚUżt{õp!Č÷ł$ō:0ĖųÆä~õ‚B ńŪģ2ķ$Néķh¤…ģ@ŗ‘ņ€SŹØÆ7,Ģ}*hƏӟ} ū§ø „M†±n.śŸ&+óŌĄōö‘ś- P,,G*b/„…/2^F¾5IW{3B|*NO/ $I3£lŻ#w„YéE¹)*äļ ļYÄLĒ*ńNdąc6 {ŅįüY’ū’ (õķ5}å(,kŁEŻ;ÕR!§Ģ2ŪÅOaąĒ×Z¦Ī4ČӃ9g܃/™črC"öļČ4ūQ„žŌƒ‘ ūĘDeŖ.õΉćĶWßwLÉé÷_ń}°Yė„‚0ź&ńJ0÷”Iøž‡ė5ɍRų[B)~inĶIk89z ÆY¤~/! IŻ~ (ųz}@(Ņ}Ń 'JB įH.ć÷L { {³U»5ƒaņE&× p_?ŠZźŽg3Ÿ Żm‹„Ju<\<‡H¢fóķw+Ŗ(R­&Ö•}Bó'$<Ź ×AI|_ļÓžßҧH0 X~j ŻDh ŠzģÄŲG£Hƒų”ƒ±ņ4Qmö x§ś-(©¦ ö ˆkŗ’N?ư‚fžß*HóZż»¶q›“ńŒ?b ĒČśį¼ś7Ųī‡ł]įeQŽsÖŪ\Nׯ„Fēr ÷㯭!ŪFŅ'×Y Ü@&įnÕŽåcÖ(¢Õ@VÓėI¤ŅŪ„gÖ§6³Ū³Kbē_héˆymčOIéŻ&œńo˜ū3ś®°šŻAĖéšņéR%čĒPåeùćóßf$—ŚÖBŠ#‚Ī °ēŠĀĒUĻbĻÕėÉą¢UŹŻX3L։©ŻÕ’ņŒÖ,©Ō#BX×躲ߵwlä ēĪč\ÆĻčÅX(ó =ō-š"Æ쯀nć€Õ+Ü=ˆŌ[ĒdęÖŕh?ʈĖŅÓ+ÜmNrēˆwĄķC”ŁņR}ńČĮķāh{ķ, œō‚–)÷وßö‹kō#–÷ l«÷ó#’Ó&ł¹—z± B,Vų4 č;Y9!x?2ŻL$(Łł!%@'¢Ål ¤kŃ&8S C‰ß"1F!÷Ņ, Šz3žKc«śāÓēū•ÅžłśżJ7ČłtSü.÷׳®CæųÜÅbīļaNåRP1ā6.åh`ź‹öń?ŅMņqæŽņžC¼łŲ7ē’Q֝ż*[ŗL§¹ ™ŠŠš«*d¬°5„ž ž0pwé2˜ ‹’ÄžķVßž8hĄ Bö8ž0Vvņƒņ>ĘgõŃŃcõb‚ąū]ö+< ńч mߛ cp Åģ.0/•˜ūę÷šŲįĒņx,|ųPģf’ŻHŖüDQ÷ŻRśĆÆE”/ ƒßłqŠUi›żhņ y<O­rĮĪ4ēĪßģBu`#ėęĘ!XäÓIā ÄöYvū‰!”¼”%ó}š+²ĘŻ0X¬y-Æ×,'UšŅ,ؐI3ų*Œ5āx†.Ņy!ŠUņy)€M$Ķ/cŽ,:"qŠx+ó’ -¼±ƒ%óĒj ¦”æ"Óc( —&h#ē T’:£Ŗ¤v#–d¢1shÅ:tų<•c!;łj¼9ƒŹ6 ŁÜ6ģ">,"p‹" š\ō!ūå/ł 9’‹9M2(ć &ĢUD¤–Ä,Ūs@b”åÅ^įÜ @’g’ö\»öGöŪćeōfĄæųvŠžF“ÉĘ.ą’$śŽž±Ų­ś]²0ń?.ØģŪ£źs®ę&•ģŽ¦üū¾¶™@™Åcq #™,ā Ą»Śżˆ… _LU@ĢOßڤ£š0g$s#‘&ŃQ\ėy?Ļ0@šõķČi²#ģß) §ź&gį$†=<%Ž_æ JƕŌĪņ¤{é} ­Äeöü{ˆ€’øß™y\öFŁ Ā­ö !æ,łĮ­Z+,Ž‹*9ü|‚FŽI‘Lā`‡K4‡GꎒEĶDvHĖߙH„vzCūO>X>m ARÖÉ@5¤1A¾łć@kĶŹ:ļū1/š§^!KC7 ;MŪzżīR ¾PŲeV e%Rš¾’ć !¬Ų—ĻŗŹ›/–ņZ&¦ēxńßõ`ŸŌĶ›ßĢÖ>†ĻUŠķуˆŲ[ļįø0äėČ yńūƒńšŽŻó¤:Ćó"ŗĒė·ėóŪfÉ~Ļ÷;*Ѽčܬ„ ćŽĀźąČć1– 딑ƒńÕ-‚ųœšžy9·`¹{¦—¹’š=]ųˆGö5šóxFBš/ń€lGšŻB±ī¾Ąõ쒐ēČÅą³„ß}—VąŪVœŪō³6ܬjæį䁤įĢ”‚ąūR‚Ž'ftÜZ¾ą¦-ē!6ńŖ+Õüģō‡‚ja{ $Õ’-BĄż²ņc¶T żJüž#Ć’%ń÷ĆsŪüS° ?ʕ¶q ”„žož•R®žq»śSˆņ“RÄäKģŚŽšĻ7ßģČÉąąuåŲōäÉ ŽĢlįPĪdėpzęõe‡¾ū›Ļž\.ĪēŌDĻł§ļšŃ źä0§Ü×J`Ņā;sϰ#˜Ī‘¼ŌyrÅܐ¢ŠŁ†vVÓŅ`Ń]ÖŌkŚŌÕVrŠŽ–QŹ?7ŽÉ€6Ņɾ vĢø’~Ņ)ōLŚŖ¦ć—t’ćXüįdcāK™ƒēĮ›‰ź_ŽāšIųÕß°ĢĻmoČ >ĆóCæ`k¼y^ø31`“a»¾®MZر\T›¶ćTōŗ˜nĘČäђĶLŃ!æŚĶ8§¾Ķ,2©Ė]ĆĒÓŲ<ČQ½ĢZĘĶ}-±Ļ–‘Ńg’ŁŁjŽŁŅøÖÖ (ŅöČsŹ)§dÄI‚½Ż53µ1Ī”øČH8ĄOgźŹŪĮÖ“T¢įZ-ƒēŒ½ˆźš6dēęæOć…Zćkģåē—ā‰č«ÅsēĵžåópdčÅäéõz¹ņžłµ,e  'cßÜ­ž ¶Kʤ}ģ@  uėR‘Aü*{PōLŖŪžį9 )? ć¶*ѶČDāśźń ŗ\ęØīüę:hė{Pš*½ŗń!­ńķHōitńę+ģ“ŽߕٗÓ] ĶŠ]®ĖŸ"͈;äĻ~’sĪ/¢‹ŠŸŠ©ŲÅĢŽžż‘ąū˜Åē4ēņōµ°ś}0užYŽČ’ŅMX’N}ųłó1Ģ8‘\wųĢ ćńÕ(üõŲ‹śTQbų, ĻņK™3켚œīQ.Ŗń—·€ó­CĒłš­†’ŅūM–É” „éĆ É½Ó !ւ Šė!püĖļ6żē!½¦0ŽēŠ ˆŹ*gC¢²ļY Ćmķ «¤?‹Õ»Ö³~ ĢÆ 3+ģ ŃŻø¦o“jV–ē’Ņīįpųˆš‚ d³ !ŲŠ–0K2„yń¤ V$«l°ß {Ģ# Ī”ßeuõ³!‹”3(ó+Zēeø08¢@HĖ0ču!Ęß'(®Y„&ā6įm2ÕfŸØĖÕ#‡īQćY‡F—7· €·š©vœj„Fws8qAVB$Ž(¶©''Š 1 ĒżN ž §M“†,#G*BPǦ:ō =įSżųzųĘšcū|ÜŅVŒ,²"¬żŅ^éņåX ń¹& õŗęG÷>ćŌłtHŻOö!~ljsŌœ©Ö_øśśĀņŲ>ī#Æ©ė~…­ė%ųõA}½žē±b!£×™ |C T¢Śčzµ®Łļ|j’’¹‰™ģ!R!ƒG/!”ü~įDK])b­Ū4&,œ?žżĶCĆųÄB&W@ŽtA¦ ²D‡&EfćŲAxė ?ęAL÷źDCė?Fä­£HĶū•Iš,gEo»<¦„j2• ÷*ģĹ)›xY*߯ū$ūŠ•[½Ėø=jģĻ;†!dĖv Möź ļØÄįf’|&„śƒiö–}œļ‰ē‹ģQļbī čÉń>A@öń6ēžxŗ® s·C>®Q=ކ|Č_ž†S z;ņüō[ņ óāµ]łÖK|łoę*õ.#ö„čLśąĖ’%tŖ€« ŚŅŃvå§ėp, ø’3ļFó!jĀt§åŃĶzZĆv~ĄĢķk #…‡2Ńīš$ŠŖūR›|oøĘ \ I OGO , Ū’K»ß Ņgüd|{/š!śŠ÷&Ž÷v*IĆ,§œØ- Į0’{Y6Ōŗ5Jn2]”0D”ņ/Į½ę.÷’Õ-(Nh-C¹u(˜Åó(rŠē‹#Õģ[ŌŽ wŁŖUłżķėVż¼«Œ*»ĪyŌJĖždƒ÷+ų”y~¤'¬į+s4,weN,Ղč)¶°:"«Ō£Ŷ礮åŅtžfv&ū³ĻSśĮ ’×Ģīaü®öI¦Āõ.+µųśxųāOóĘŗ6ī° ģXé|;Öč\>Ćź\ėī!ęņŽūųÓģ>÷ ī·*ōsXšöpč6ņŌ=†ėy˜č€Hč2·Lę8 书–ąŹlŠŚŁ}õŅs':ĖZēŹ­ĶēÉØŹĮĖīžģÓČ35ŚVāĘŲ‹3EŲ¤įŚo›NÜų†ÉŻĀ-®āŸ©6č— ė£mķt‹ŽšÖė’öłT`õN†Żņsčķ«¹•ęŗNrßO@ÖÜI"ĪśzDĻ•¾Óœ®ŪŹæęä]Ž ķśīqń0Īłņ\ōš`ńī`THšˆĢõ- Ŗö ŻB÷„dų"aü}W+Uą {N.Ōög*‘ 6«HŻ’?sāĢZé;īXņ5ļ)°0īŚĪČź$Éįę³Ö‰ėÖ Nźµ3äš_ć/ґ鯇!ī«\ƒķQHF鿟øå“wča«qź­X†ģl£`ńs*×õ­KēśśłĪØĒ÷ ŗ5õ>Vš}ŸAź§ā>ĻŚaQāŪqśčŻŽ£tŲųHÕę4S×)‡Ś„",ŪĖ.MŁĶŠ@Üq͋ߒx ä–"ĄģŅ–õ׳h÷C/.łˆŲcūy2ūł”vöĘņNņ¹Ā0ļEó#ģ¹D}īL£ŚņœSøł96žgß䞌ų`mf €6)„ģÅÄ×ŗ S”뙋—ÆVvüćŽ „‹_ "z$Mü6ż f«÷ŠĢ÷Jvßö$FÖóM±ßń²yŠšųtˆńŪ3 õ«BW’ʙ ‰Oč)¬Öģw£ Ży oū¹Ā»©8KŠż™Ŗ¬ųbjłĄb6Hu Ī»ĄÄłu¢ōśŒw@ņ·kń ĄCöŃŲ)üØIż*.yö=ķŽ¶ź7ėcĮ¾éABGé" ėķźėP ’ēė®×įt™įŪMiÓāĻĖYRÉ[ģAÉ̆KĪOŪ Üććźbņ5ņ€Ų’÷C°ż°Š[‹YŪE7żÜ;Š“æ}’Ž!ūžžr#œzŗ3iø/üD‚{öVņųš€¤žĖĄ֔c°¦ ̐' ŪVŲe=kٽ,i –r’5Łžw~Dų”qŠö|ƒłī)ģü³ž§˜ž~bEīżLNŚ…š QS‰Ė#Jųģ*Iįņ+ß&:)_”‘&94['›„\)†Y)?Ķ&ķĶ&ķt'*~9@-+)/¶˜Ć0E”Ć/“*osP!¢—Żū'čg|­žĄxŠīZŅöą'½‹aūy‚ 8o’…Äöųvś óæg靅Ȯ‰Łć×8LŅ’Ģ©.oĢæĄŠ ’‹ÖŽHŲŻM¢>č”#•ó°źWżørÓ¦÷?<‡^wNŁ(•śŒ“ģ®ć[å čž^˜ķ2ĶLīõ.¦ķŚ›oń.Ōö` ~üƒó£TŹ Ą(±j—ļž= 6wˆ¬ė $Æ ¼¶ °ĄŠĮƒhņŒ ]ma”‘ĶŖÜgłf{ī~ČH _Ēžy*/…w ąaā ¹–@ÓD‡6*‚Ų° >æuĖø_’©/Fįš¼8<µøuū%>ÓŠ“|ģa|Ü9J&¼0SČšöo“±2ģT‡ "Ö³ µŗ °Ģ«F!žOoūDRsŁ›˜ o0—PŽūxkņĄŃæęٽß—ņ[ÜE.“ÜŸ°śąĀPāvĮŻźŖ­Ś ÓžŪŽWŽRžIݶkµŲ©ÕOnÓÕōéŅQTtÕä²ņŚ€Œpā]2čóXźéc³ģÉĘņĀ.eł®gūšäö'/īšƒŁŠķ[CM뾉čĻĄ%å)ū@į·„ŃŪ…c•Õw¹ŠŻ,¤ŠSWĻŠUŽ›ÓļMōŁ ü`Ü\…WŁńž×o„ŲķŚõŲ'\ūŚY8ązV~å~ÄĮčŠė—įļ hxņæįÖļWé%ģ³¾éåpƒ\ŽÜR¶ÖSDåĶϵ°ČZĖÄ\sŠßzEŁō柖’ė!\żšKN[óąY=ņøŒ[ņ[éMõxķ…ųO^~ųҧ÷Tvƒ÷«“ĘłīČž ’ ޶`^1%Øņ)0ņNŠ6äa&9‚ø4Kśė-į&HŌ"NÜ®ŚĆå¢ļYGÜÕ]8õžacµ4:DühSū”čQūš3zū˜źÓłSdƒłć+ļł6¢»÷ƒPuóXž)ģJ<²čĀ’įč‡RLģcLxš‹~óę „ó_įa÷ŽS=üøÆ ž•·dšysČTö[©ŲŒFįßjPœŖ<źÜr ^DFĝ Ÿ*ŸnvPčÕÜIC¢ŒžĒ3Ł÷aÖóĆŅõP@fö[öfł7&›ž’Ø”«{«—掎®|†ū0ņ’1tż~ƒŽų2÷÷ü“]ū—F’ńźhŗHŒż,‘Šżƒ¬ūłÕJ„ūņŪ¤kø•’K ¢ĘÅQ’)Ś`tcʉrl‚%!ćóg"œ«C!‹!¦ !ŒgC! °$Xł'AĆ<+:"s*‚{#'ļ$Ū'Į¢,yWĀ.‡b,Ø N$/S¦eē±@_k"g ķ"1uØ*\ŅV.•ź•+Žūś&‰iö%I˜a'Šw''D$Ą”C!„<ä³j”B^Y"°~Õ+æ$Ē4O°Ū8ÉA9@?7v5•[ō18ßI,9øL#|µ,…æ”2Ć';Ÿ0ežs3‡äÉ/ßŖ&€§d]MUĻ=ŻĮ+Å€*ų dĪvµoų–}öõYāūõ|j—ötĢÜł#L’Y÷ĘY”Æ ŗS§że”%öѤļīæ¶„ź—ąąēžź§Šó4Į"ü ŃQ’±&›YŃJĄÜZ "©rÓśżż"$“ū•~ø»P18!¦A#µ'ōiNüŽųÆ3‘@.ŒĄ ‡d¾#}Å$ćų"Bkp"Ėru <(ĀsøĪa{|Č`ĶÄ- Śæ8Æ'T•1`Žńg W ¾ ¶EĶž’Ū–KĀ2†(”m4ȑ?cŲBG> I«ÆŠGĖGżEž NF8`ōE…‰¼Bæ÷E> #<œ:<Óš<ŅĄc;Ė=:|īź5ĻWt-će¾"u±&‚-2ńŃĒųPåĻ®śÅR ¤Õw®ÖõP7S…ä¶ rāčRzĆ’^ž¬ō"^dés®Eąž³…׈ģOŠ{ĆĪ÷µaĻķ€UŅĒę|ש=kßūĖĢēœ<ī5v-ń¶ņø4óÖjī²ŁäW0Ś ØĖ×o46ݽA4ć]UåÆė“ęb"\ė³@‹šcŁŹõåKū bÓ®Ē0,ßžsm˜ų!jŖōˆéņń}xļD6¢īŲŻ’ī³čOīĻ·7ķąź$rz幕±āŻŽįl{ ßhĄ”Žš•'į’®ŃāPäOāņB…įŹé•ą6œ6āūņdēŠģÕī #\÷öjnżBö’›ŗ’E"Iž1±Sż'Ė’ž;cŲ©  G÷9ŒE®ųĖ ‘Ę wȅė.’ $ÅĖ?71™öe¹šµū†ÅWõ:¢ģ—Į6ä|Š©įK•į(—/ćwĻźć2ņįDN ćBFvźOH󮚶bŅž8#”ˆ²Üéū;'Žókņsėµį{įu}r׿ aŅ-ŹQŃ¢& ŌSŸėŲFÆdŁø=AÕŠ\„Ņ•Ø…ŅplÓĮvĶŠ{Į<Ķ<%«ĖÜĆ7̧µźĶž•?ŅżEؓŒŽ}K×įiaį5pā©Ł$ä\’å2x$ā—æPŁ‹ļ²ŠŪ³ŻŹūÅ~ĘĘ»”Ā oÖæ‘÷¼gc¾¹4²·š3·D ųŗčr¢æx`Ēea/Ļ!ÖѳɓĻóš”Ķ’†ĖÅÉ,ĪČ÷lĖ·I^Τö¬Š?ą†Ó 5×Óo‰ŁWø×Åm¾Ó?eOĪŻ^šČöHƧŖė½P#Z½ĮǠ¬@ŹzŌ+nsŻPŸäü4Lč ŸŖč’)„ęGągęZœnč' 0źC«éGyęčćč8ŪźĆžéļŻŠ+śæ“]ŚĀ¹÷²5śÅÄ[†õ™ż{ąM ¼õW”Iøū“wżüÄoŌå6’“Č ×ü¤‰]żJ™Ģõł…Œī¤åäźgß ķƒ¦ļ’4ńĒ‘\ńR”ńwœ:ļ Ō¢éwūą'ÉrÖ³»æĻ2æµĢē~5ĶézĻĒŗŗŠÖÅ Ó+UšŲ–„@ß[bČćŹsOé}9ńRŖVł|D‘žoĮŽE¬Ē“Ńžłļ•žUXÉś³õńõ,%óõĖĻēųū/łö‰ĪńéčAšœüńĒóvµ÷,kŠż‚l•óbzÜņ ņr0 ŲA fŅ x5¼‡žŽnņ¼eöų› ~nI ,£d`ą/ŽõŚFĶw E·Ź"ģé[l­K&Ķ # ½t]„+šTZ“*Fm¤³SŖ_ į` 5%)ŃfŪN‡ĻfÉ qū ųą‹ \x!ŒT–RJw²X‹É¶sŁ[E}l:„āĆ34įčט1!¾]ā&M£ (~$ÖvšČaüŪēĢxkŗ®›\ _]aæ$ ¹Ć}%ż®÷³^C×É%^vÆõ«¬Ļn ģi’H8ņā©ļ«‘GŽ镩”Ś£yÓ ¹¾éŌśŠĶ‡śÕ†Åż>rlžŌ–ćų’hõĮ…źö[2tł!Dfüiü÷¬6Ē1Pć˜ŅAÄf#żążÄnöyːšfƒķ˜{&ķ!Bņ•āhū‘2¢ŠM6Ś-ś e® Å/»¶„„·=„»ĆĀŪ{mDZ\‡Uó¼]®a~i÷Ų³Zžę€ņƒ^|ŽAå+ä-Av˜ZD żlʦ'ĀŚ 9?łd¶‹ ¢ė“ˆ łŁ "‹0B5"żHłbžĢ$é€/8‚p9I†ū?µÅŽA«9¼A}z)B‘œįCčUbD(zBJč@,Rź?æ|xA2C/sĆDaGµE yCCķ=Ž<“{V4<Ā,į¦("Ģ& =#/OeēÉä\‡%¹•Zü”glī Rs«īŠ\ 1Ü“¬ žX­2łĪnóH Nļ?ÉDļČŻņjk¹öźĻżēZŚÓUNŚVI[Wx¼ņų;ķænZNž Q&ų9'|ōˆÉ<ö*v÷Śå%öōĮ+öņÖ.łĢ"Tż<Ļjō]“ļ ¾źR“~| ×¹ćŃ<gń+!NpmŪĶŚ£ŲW ū5¹ ž‹Ņ VŸ ĖSŒž¢»§ņ~±Ü$x 1ڈ ‚ƒž ć±ń ®öCܝB ¬ :ŹÖ~ENC'$Ʋ(ģ+Vžį- ##0ī`3”ó3žĖ‚1Qż.Ę%-@“+ĖķT*`u!)¤o1&M‡ *ā’^7ße›żł&Ö%ŗ Ļ÷!źdūÕL‘æ> Äēų&Ÿ>|²mŹ2öŠ©æ"é^©'Į *<0Ó*°2")ń4 $ ųA†ĀE Qų½¾ūŃĻÉł gū$¶/żŲCmūOko÷J©”õ!ŠóõiA¾õ²•wņÖūąķü˜-źć~eē6D³åō”~ę­v é§Ršė0Čģ gģQ‹ī#Ųņ˜ńĮöõ$ö„Éņ[J\ī *ćėl7éĆĢeåć.į lHŪy#ŠŌ×2XĪ~ĖŁ#ĖՆĶ(ØŅåŲm…Ū&-/ܓžąŻŌĒpߋ§×ą@ŗć­ĮēMéėdŲ‹ķ4󎹣Ÿčó»ä:õ\[Čņ±“źīŽWč%ĶKį}`qيŸŅøXŠ <@Ó`:ļŲĖĢļą w¬č…!›ī܏¶ń?ØLņźĘąń؍Žó¬kÓöģHnł‰/yśDĄÄūT<žāÉq† ŅõåŌØQ$5ĀV/Ŗ$g7JHÅ:Fė8Žś20Y )R£Ó÷9Ń5ā %ŗ ²šjƄń%8ź QøXådžcxōĶNģć č¾8^éG?ŖėPĢ{īMDÕšŻį„óې„ō~m¦ńY4?ėH·ć(OŻ…Ö¹ŁąUŲßwe×ŌšKÖ{ĄvÖŹUŁų° ÜT§ōŻČŽį:„,ēKrŚė0AīęÓ,ī8[€ģÖ ź+,;ėOŲ.ģ)¼iéĄ\čz7ėaĄļ‡/°ļĻ`Uķi27ź*^KéA5źŒ+2ė3‰ńķ3£ńŠŌŽō­“/öEh­ōʼ„ņļrS=źŠtäŖ‚-ßōB‚Ż[¢øŽHȆŽi*ÜĖŁć’#Ł&#ÜŚ¼ ܾÜ>ÜŃɖŻD] į:?Måøéœė­8 ņ'Ž öš}•÷yņĀų5‰Hųs:ŒõĘģń„×nļŅA#ī6‘ļ0»"ō¢;¶łĮÓąžīy·.E'ՙ– 拽n–Ņ·8óõÖ !”õqĀŌ+%ąĶ»n žėš o÷Zļ‹‚,ŖŅś«—ųß×ņ÷œ“ö¬õ<ōwAPōŖˆĻö1¬½üV\ØSs zL± O- ھ­ QpŅ&YXs»8XūĶjśNō‡ž½+@ 7 ‘" ¢=EśA†ž”n÷ŅßUōlgö&õŽł “śpų÷2Āxš%¦Śė•1Qź9/łč •#č~­‰č‰ĮčéDéęwćHJ Ž6pń×awĒѱkĪÆ{~Ī3[‡Ņ”ē#Üg‘Sč é”ńd÷‚§ü‹©žćZ:7žøż/®ÖQ–’÷ÜÄ’ō+Ė}dŪ‘/āgC„’½'ś’§[łj®ügbdÅi‹ųzk zåZē¼KgŌųśyŻą¬!»ņ3S6R JIAPóüJu.ś˜sŪśłķHż[ ćžH5›’ķÕ*’ˆdźT _„åć„`N$/s!(čóe(’Ļ·'¹ (ļ)GPļ)ģ…Ģ(žóé'QkĄ(‡Cl*S.Ą+ÉÅ,.zƒ,=ŗF){1n# Ń I¼×-¾Lx† Ž× ·"[k óbCd" Œ =ū‹ģ’Ä)łāĄ<ó’§Īė¶0ć—å2ÜŗW×Öț±Ņ ÓwŃʦ ŌK}ŽŲ¾5gßüŠśēŲ åńŒRū×”(4oŃ«¤ö[VżĶäņæąėæZėéM ŁģßĒļTÓÖļiŪņ’ZödĢśĮY’Ž[Š>s Ä+”Ļ+:ųŸāó¼x€‡alĒ ’©\"‡iž¾L3ł`ZĘż­³KIŅk•åKa Wœn O*Ģ3ZkƒASIxŲ› tų޲¶żz™ōūzź)5āo=ƒŻ@ØbÜU—DŽįAąY8“ެźWÜč~įŪæ ƒÜż ńŪv…łŲ'ó“ÕłŸÕÓ²pŽÓælÕF€(Ś@‘ą¦ŃęÖµžź‰›aī&Zó•õĢųķ”žū”:ś¹Mµõ½yeńI\čķ^bź"­®ę’Ō¹āŠšĮŻMtDŲŠgÓ2śBŃ¢%AŃo‘źŅ·Ń×2nŚw”ŠŚXÄjŚæÓ'Ū’Ź2ÜŪäŽå„įń!”åD.ÅčĪŁ*ėn\¢ķ E›ļ]!&ļē‰ĆėGé ē@¦dąkFŁŚß Ņ„ģĆĢZĢČ~iŠŖĶ^×4‡hą’żé‹cŁļXĮóh)õ(؊õ}Ö0÷V"łŒrÉłbŗ*ł_/ ł²Dśö1žž”a4›¢Óüqē*¦L 3Ø÷ŗ6½ €54(!0v£#)»vŖ W)b!ƃI:OįR’ŽB»ļ#,ā°¼śņĖ%’’ųéśmėęłö¹@ł‘ŹńųHĀųŒčałdŲųār1öōdćńī0ēķ"ŌģāŚķU8Jš:_Lņ)™Éó„NNö”ŗ|śBžKfūŻōVŻpŽ m Š^ŲĢAśüęw ćń ”·Ų Ā=€ Āv`œG0šb1¦‘š¾žOéEśm[}öēŽrõ„?öó ß÷gö:ūD„’¶²[÷7Ō,M”æŽ]™#›„# “«żłMüiøžżÕ{Ę1Bmś Ģ7Č9„n«ĶH† ?§~ æ³Ā ÜĆ)ļ½+bHzēśJ cm÷!SM="ÅüŹ!‹!sq!Į]š"Ī6Č$ )e&_߁&ŲBŚ$¶$÷6R'Ź)ŠÆ%)ŸiV%ņņ‹ L(Ó¹Ķ,y£śģōT$Öię*»Ę.p1s.÷œ-+ E„(ü²Č'±5Ō&¹Ā”$GiÖ!ŹeŅšnJ~ā!¼½÷'QY@/Z‚į3)865wB4œK"2Ź/y?M*väå#Ŗ‘¦ Ń$Ū™"Ņn)-O*-"=Ä+Y×c% p b„SŽ Č0½ ,Äß ’AįEŸ®ÆÅśš¹B÷LÖ0÷RŽ’ų@Aµūća2‹ųÉæ%M}~[/’;öŠų¬%ńķīėa§č”P½é2¹øļ)šl÷7“>żg9× €×a FvŗK‘7A!śf…”8ö˜ōˆ~!ĘįK/C{)Cö=Ē> t1UńI~˜!Īó A…1 ]">låń¦™įč!ä<”ĪćjRzć’É;ää2mē/“±ģ­mļņŠ1\ųEcū—ńtüŽĮ–ü÷óÖü׌„žZēĮƒNĄU6/ĮuvĆm œųč Z ŃM °ęŁéK#Ó3Ķšł¾żŖąś÷Mœš·énźbäoƒĀāaćäāŌK±ćńčćŲ*^åsź±¬ņ}Fęų«€Äże) lX½’£É#üøŸõA ‘ķ©,Żä†+1܊֙ĖĶÓ½kpŌRŃÖγ×<~ÕGĢŅ=üĶѵ÷ĀѧÜŃRé5Ļ KģĶįoķͶ‡!ĻpēŃĢĒaÖåŗAŪ{aŚŽ^FąCėšą,Żßįó„āVŠøąĄ÷Ś2gŌ“A-ĪĘyĪɔć[Ę\¾Ć˜Å˜Į`JVæ>ø½ź×*½]n6æa[ĆņĒȍxĶWnaŠ# ¤Ļ€œĶP:ĶĖž“CŹ‡ķ ŹĮqĢæĀĖĪ|†VŃ*]ĪӗUh֐®,Ų”ā­× ū%ÕóP“ѕ(ĶĒzŸČō‹uÄēØĀ:µńÄ0ģwŹłŃ`ŚX8—įībę!·¶čÄ}įč³ĒŁčĢĄžéŒ)ė¬4&ė„0źźs”éžē€ź”9Aī³kÆõßōĖ’ģB lū7jz›ā bÓO_XrY·!źž €£ ¹żĄ-mŠÓ逓MŠvϤ’¤ł°wĻó磼Łī/)ŃļNź?šĄ”ėļ…Ø•ī$nģEłēź·#įXBŁßšYŅ11īĪ“‚XĪ]÷Ļ[HQŅmD{ՋÉ?Ś™}ą“]aå1ÅĪź‡£ˆńJŒųWŒężr5Ś¢W‹ÜDÖ-’ģagžß)ü=’™ų@µ÷Óöųfˬł÷`ņ÷ڹėō;œņJ)zņFśįó\s­ö4iū0 ĪC>¦EŖŽ½Ā­ ÄŚ ;£ž łS l2’,ø  ­ żB ģÄ ‡M(ķŗ×¤óśe¦ĻĀ L.*tŚH*Äńž!   —į“„h?žpo\ä’ ĻC/ ¾ >ÄĘ\œgğD-@_ ps, ŲzŅø}€õƒM„ņÓõę©܄`ĄÆ}-%Ė„£hŹ“!§Ńu&MJ(H$P&Ę%"õ21†ØFłÓ$\į ”Į øüĀ!‚R F #LŹ”X  ך–#ō3“čpķ9 ™ į]°/b(-×± H%& ¶Ć*c ²?ašĪMżX&3ūƒģ¤ü–ĀžZ³Ņž+óMüc Äł¶‹ÉłQUĘū[łhž[„ńś¢ŠvĻl“e˜µ‘>;¬’ų\\łūļLóRWļe!ī”ź±šČAĒöĮżį™]ŻČžz½+«øŃ ļ`WÉ-ž–É—§·²¾;Š7`­-ą“Ļsń˜#öIĻhžz•¬Ęę”™ ”Ģ$Ų|©É8WøäU~!j †hl»$šōܽ> PY$ r·Ņ gvq 2:b ;rƒbŸĘ„¹Ū& ÖŹ‚?!Łę*źo4–ß;:}@#m‘A±ćZBĢ!CF,?Cü”ĒAßž?2Ao>W’Ų>ń]@K[rAś BmYŒ@ŗČ;ę_Ē4?F-qC(InŅ$Ōu!Ŗć%ļS’õg¤šÉæu9hĶŹ=WҊ Ųß ³€y`7ĒźüVL‘ökƒzņcWń€¼0ómW÷źŠéü} šN Ę ź²„/ĀCä9ę×e„D_Å­±”üāźöŽĄµõ Ö,ösėö£_öŃ·YųA:ŖūrB±’v)‘# čūĘ lÓ`ōēQ™O>篸=S”Œģ;ł" ßų  „ ŸĮ ö®ˆ „e Øģ“ ųŚ č2 ėF !Į. — Ōµ0 ~čĆvE +]Ž īézĪkņ„@!9&į5_*Ɍķ,y×.fV—0*a1ø|/•ōĢ,#iv*ł)š(ŽEI'ü*&ą\$@£  0˜£ą‡ŲkičV*L+’Ÿz!ėó ~QČ ”¶ ko2ü¢é$¶Ņ»G [9—)1Ļ/$ā‘'ūič( šņ'hÖ$¤Ņ~-]ĘE ÷ÕQxPŃüÖž“łng łz„ēłåšrłŗą÷°ß õž”$ō—f%ó2ū—šxˆģ²wčæł-å;!ć­U ćŽÆüäć“Śē’ aźÉ©Bģ0®ļf+AóB ÷įŁ\ųtÆ5öB*Ÿņ4źŻī±]ģź•§węY”įŠ #Üß4Ö÷׊0kĶÓĢŌ ÕĪd0ÓdēÓŲóčķÜ7ŹżŽ¢pyą“¢Öį{ćzóä¹ŖĻēÉź‡übķ^ŻüļŽņō"»ós{ņ!å÷ī^ŲĶéõO#ćFč.Üf|éÕ@“Ņ÷dÓQy‘׏A ŽeĪ}å7@ģWįšŖˆ…ó¬źō¼§öP4$ł^¾…ūK-ż{G&ž³1“м«™D BĮŃ/ĖčkH)Š˜1ķ%6ĮE6g1{ ü) Ń öŽĘń)ZSc` " S •¦ ¢u)8ATXGPž×¬õö=š/?śėžŒė¹ÉhķØĆļōY&ņ—_äó,ļFōŖń ėģŻo§äˆįźŻ ½lŁ?ŻīÖ$<õÕ÷ņŽÕöX&ÖU®;Ų4FŪ½"ŗŻĘ: įLdå˽šéÅŻēģŽ"ī.ß½ķM2ķŁV9ķ²ēķtU\ķL%™ģĶįīŁRšŌ8;ńĖ] ļŽQ8ÜÄNNŪOC"ÜaĘ<Ż8Š+Ž‚s‚ß5‹!ā_Żąå’ź^®ļׁjó¦MPõ~öWĢŃõŁj;ōåw ņkšŪ&$š‰R³ńõŪ‚õ“ʃśļ >’ķ$čŗ$P® ś„Ņ`ƒĶŅäy™kŗÆ 퐶)są0!šĶ( ½&Ž šæ^\q¬Ķż[ū( ÷ł7§łķÓč÷T«ÕöOÆoö'Š÷ÖūvT€€l‡Dw• u+„ „ÜæF°{(xż|ÅĻśˆbüצ#”ß’ ¦ v¶Ć­ŹĀ ū?×T÷óó¬ö¹vųćŗ§ų˜”‚öhŗŌń®®ķĀmźh.Nčdi&ēāēżI+ēsŠ_ęV° ä’ŗhą«ÅŚŪČ®3×jļŌ'­ÓŒG“Öźi”Żķ…%ē-ŒźļP-ö=Ž«śžõ,EŠÖ]LĒ55š[ ē’[”sÉF,ŃcIÄ,Gä³°Ŗü5ĒśŻ…ü)¢’„›”x|{ Ł&2uv[ĪŠ+¾Ró9tŌŲ ^؋Y 8'ŻÖżœ¤&żÅn-žk–k’Sģæ #ł±Ō ZŻŗ*Į”R‡Æ0ē>Æ>$Y©š&R(ł'ݹÖ(S Ū)i³;*^.X) Ū (–'nkō'µļŌ(-½)k`*_ҁ(ʒŪ$¶' ī—vŪXOŖÆo ÜĪ+±?ß% :6 Īß%T&Šłµ}īó+·īķ±L%ēJ걟óŪÅ LŲž¤­ÖĒžŚ×Ņ8zŪvšńąķ0č)J©š$”łųęm›’,Ų¼tah;ŅÓ ’«OA÷µY_‡Ā#ż¬äū’!<šD5ņšėĶĘłŲr¹F¤ F€ 3X× q{!V–‹Ū“¼«Ņ:÷© ʇŌF0¼kō+žó£$±·^lĪ6 äÓp„ZĒвé?d ‡8ēĀ­Š¢EQ É1‰° ².éį”g ^ś1 :Øż®\,EöŹ:õ=%ž”W~–ĪåŅ8Ą WۃöÆ]FŠ ΈC„<źž…{GöŲGķ2ŲÄäwFß÷. Ż‹!cŻżł›ŽÅwŽ{ėüܗŽŪésŪȬŚt›æŲDEÖ œŌi.iŌųÖÖ.ĆŚ„WÕ߅g÷å„ZCė»ČØļäFō©Ģłåxü³bļū‚m½ų£.…ōB^š õ^ģÅŃVč×(äé4ßJģgŚŽkÉ՟ƒøŅĶĪŃīīŅŲmąÕś²iŁYs’Ū0 •Ü»uŻ•fįŽŹ\pąĘBĪā’²åķ³Jč©Xź@Æ3ģ’EŸķ‹˜ķõ»jė" qē¹’ār»Ū¹ÜwÕēŀŠĪ¾ŽĪ‡1IŃ8EųÖ<śÖŽ(ĪSē?ŸīōˆĄóĘsvöÓµ÷åÄų%÷łs…ś eUś} @śAØ~ūõ”’ļ6F# ‡ømÆĆ3&nä.TåŲ3sa4 ‰Ö0Ø2‘*’‰é"ā&2”ōąė9pijćÖó!ė€iŒƒ†PČ ÆPšłSƽūn†9ł<’[ųn\:ųŲĘų‹|›ł Ćžłõ­ųżGČõ2ķ_ņŸÄšŁ­ļ |šīōńtšó×ÄöX£½łg˜ÓżŚÅČ‹žD@( ėŒ2ˆ9RCØb7ŸŁŖ[Ē “ź |o« € }<ŪžAwƘŖ§Ēמ)žūłPų±%:öæõ½õSüdö*¾Mųl¼Iū’TYž¹Åɧw@‘#UgJbŗŻ'‹ ݦY9÷)ó¾Z¤×ėo7%xĄn©MȒT"SūāwFLH ¾§Z]Ÿ(×jÄö6B {"U!’ū-"[E’!T°a!O¢Š ™āÄ Ί!żóa"įó†"ų!(č!8#rļ%(ŖÖ&šx%Fé#hdŽ óŚ7-?!Eņ-%»q*”ZÉ.ü¹Ć0䀦0%5 /śv\, n(÷k#?>į2å*7­D—M§# n('ä‹ö&łĆš"fI’Ī&Å] 5ņŹržø„ĪŃŁNüo¤łžOłŠÕśw2Ÿżz-D_ `xs{;Tģ:»×’č3ĆłÆÖęņĒ5ķŠcøél·Ńéó“ąķž”ōĻQ0ūp ’X®Ó°7 »ų,ī-ś{&DĢłcća‹c3‡­/{@a ę9§rīŽ`Ō2įG™µ’Ÿ…e^= Ց+¦I•Z|Ŗ ÆęNGh½„Mķ Ėm^ O=P Ä»“ ģSU¢AąłSI£&ņō"Ŗļø+ !µ48nõ=Ä:»\$7aj44Ą›2741$xø/õ¼W-²ˆ&)«“C#Ļß½™J­ÉŚÓ?óIÖ ķś«,_ų!]pėÄÅü1«Öf H_»/’żaõĆÖ£ģ‰&äāUŗÜ’7²Ö©)źŅĆĪéŃ~āQÓåZ·ÖoįšŪ±ÜKāęŽč«Ü¤ķøń(ńč™ęņŌV$ņ÷Vīb»õč‰-õä£ČEäžĢę­Č,č-,£é¾}Fė[¢ķ '{šą…­ó¤?ĪöˆĆųŠ×nųĢ•Ģõ‘{pņyŠÅļō0ī5żlķ{ŪĒķ!’aī%J]>ķĢ©žź«Oč#Nę “yä׌ćš~Ķ欱ćä0ķ¦åŠå«åP~råw­å8Vē6¼ź“Ō@ļ ĶÖózū^÷ć ™łė“ūCo©üH]ßžŖ&›„ćņ”x“L FŪ÷ØÜü ¾tÉ –ZŸ UĮ V * ¢ŸŪÄDyB Œ’®D]ś ßŃóX*źģ‚Ötē†žä°čć$täpŪ~å\^ē’]뮆Gńõ%N÷ĒPīūŒfgž€Ycž7Éŗūš{†öü› ļZ÷źēQØ?ą½÷Ł+iVÖm«?ÕöøÕ›| ֟3ŁŌ“ ęŅPzĘŃ4±›ŃžģrŃÆm°Š T¾ĻĀ‚eϘóĻׇŗŃoßŌˆøŲ™¦Ü·x÷Ż ÜāŽūHĘߔ’^ąNWß@ć×ŪcŒ«Ö ‰ ŃÅø†Ķ×7mŹbź Č;t]Ęę»Ä^»IĆ_÷ØĀ@§kƙd›Å?“ĀČ%Ņ@ĢżŃÆĪę-åĪ}š»Ķ·@w̰` Ėz¤ÆĖ…ØĶŁTIĻA‘’Ń µÓlŠĪÕp¼|׬ö×ŗ/ēÖÖ§ŌX'pѹŠĶtŃÉ^‹^Ēŗę¼ĒćĄ/ĖļžüŠ6I%ŲÉ×;ߋ¹ŽäØpčģ“ ź=:¹ź˜šfė‘jģüŃė“ŪźūōéŃ&Mź’ēķ” ńņ6؞ūśĄ…¢×īāÜipa…ČO¼‰lWżŖ#2 fzfU’ŻōéžŃR¬ĘˆrtHM‹’üL–Š÷ k€óŽNŽšBVÉļü‰ļßļņķK°aģäVź‹|‹ęéĆDįZ§ŪŁ>ÕsנѬK§ŠŻpČŃÅ7KŌķµ ×žXÜ;l7į7 ‹ę“ĪŪė‚źĀń ¾į÷erż ą))u3(”Än’Żkž°źü»ĻśÜī›łė,ķł’Ē8ś”"/łŁÜŌöT‰ō›j}ó…®ōżK7öŻ/īłE(ŗžÅč„ģĈÄÄl …b õĖI ¾īż SC ļfj W×Ī Ė|• ™ćK i‡¦ )\£nB4j1NÄÓ^DVJŸiķŻ„Ÿ"aŸ=ub č˜I ĢYC ńr TRž ĆÆ Õ­b×vwÖś})m„Bp,ö É „ ÷\I*xųŒ]„2OµÉ',ł§"K§(šŠeK¬j—"ā‘6&ėpś'F¼&$ö#…Ȭx’…óąIeŠ­ń` ™?b ų€dj$éĻó X `%q¤E‰½Sv ›*|U­ņ jįߎąF”É“÷å ›g ó{ä%=„q E¾‡P€’‹ˆĆü˜xģüWK}žąśa’+°žA$Tż™żžüŁ)žŸ7¾†Ō„D˜Éf(GPźaŸć®Ó_ū•,©õāč/ńĢ— ļ$Wļļ婎ó@XDł<žv€|Šv§Ø-Ū 4©Ē¦'ߍ5ų ¶@Dż2¤@źFĖŁ¹ćŖ7]ĄŁW*ƝŲ5.ßn%„ą¾šĖß‘˜źTŗpNķibtśįČh.–9÷0³ ßŁŁ A”Ė „°Ém£=`™hWi,ąŠĘR5'Ó“40Ü8œfn=gHR@™A&‹B`ĪAqķ‚@%•>z»=¤¼Š<Ļuv=©Śa>?CĒ>ź ”=“[õ9æ%;4¤6Ć-d[(šŃ#“Y óüīÅĪ÷|ha–ć-żoEølƒœ²µÓ8¬ŚPž •ś—b’öŌÅł/$Ļõū¼ōQnĻō™÷Ÿ–’ū³¦¤ńć±ė[ ”ڽŌJ{³žŚpŚ-Ąz®¢Æ’\Š•łĀī”öųśõĪqüõ®ČUöBŻ›÷\ęņł^ążüŗ5qļß²šÄ =ūOśŠ(ūĘa×<Č£|nz ģĒZ ÖÕB=‚Ģć-.µŅ Nµ wÖĻ õU { ÓĄ AP ģ0= –PV ‹Ø¢ ņŁ) O˜ab“£Tʱ$ I(J¾+—śā,ńżō-øI.ę½,Š?d*Ż’(Ś !&É[Š$’Ż#d9¬"‡=Ą łžR4ī9ģŲ³ŗ„!²[Ҷ·ļķ®ó—;RZÓD¹g˜[h± >S’WŖ”ŽgÉ'!öĒ$„–&1n&÷ #XįqÕŚŹ™ `*ĪC8žåćłŪ=ų4hĶ÷®s÷T«śõīf ōnOpņyŪĢš×Eī³£źU®¤ę©¼:ć:‡įłæ”ąfĶ=ā7²DåYėŗčHņģūéĄļž3łóéÄŠ÷’¦łó™ųXVMõŸ“ńū‡Yģ@sēļįfāī>ŻĢ”Ųŗ5iÓE+GЬkĻŁGŃoŸ³ŌϐŁn±ōŻžvĒąs•|ā`B³ć©U¾ä4Ķęc×1č’ü¢źĀĢķ®=<ļDŒ1ń¶.9ņ{AńAĢīÓönźŒżÉ䄊Ž`ČŌŲ?¹ÕZĘuŌ&L1×~¶„Ü"z`ćÆęVźqŻ*šßźRōéR÷±N"ł25Vūh§lż—üēžÕDž’”-teSCžI Qdį=Č?"*É#38Ū+£]1“ČS2õ£€/`H)lČŽ BWp^ņyęT ŖżÖTŲÓؐåļužų™łD¼óą:éļ¢!œīIjń ܾņ,ĻĒóŽāló©«åšPŚėѕ?å²HÆŽē.³ŁjÓ¹Ök@hÕŗ>Õ0ÕśÕ=ųĻ׳+kŚŽÆFŻĄ,tąĒ"Täš-ičģÅėąŻķzŅĘījYļė‡ļĄ+šĒc^š„G+šń󭚊NŲń!6ņóKįšym+ī_mXė‘[éčīƒčäĢčŅ=ź%ė;ģ®Zāķ“šŸī¢PīāV$ķD ė[ą 覚åģĘā[`¶į¹œ&į;ī࢕ Žń ±Ż¾ŽŻģīÉŽréÕßé¤-įR1ć¢Ēę8›é0ĪiķIžš Į’ņV†ó•NĮóNNó”hpņ Óęń/ģGņŠ~żó˜w+÷G bū˜’|:`’e¾ģ 7ŌĶ „( W Y„Tæ‹R /[ š”.ČĘ@‘ ”įU!•ŽE}ś²TījŅ׿ĖPdüāŖ\ūWŲ+śuÖųw'Ś÷ ń÷¤ÉŁłl‰żĖ?ĀE7ę©ŲåVŠÅ²|DŪ_šŖO™Īż‰-ūīūśjŪż$`įŠi§” ,ŹŚ¹Įˆż(SØłē+ž÷EéM÷,÷»|õ¶Ź ņZĪķFMźˆ÷ē·?šęé|.ę ļTę÷£'ę¬žäjj¶ār’ß”¤'ÜeX…Ł0żĪŲØOĀŚØ­œß»Š­ęYE’ķkßó/!ųšGūSą”ż¶­’ā’rDnĢ.B Å/Kö“?>×KP+Q’'dž" ŸüµóużAd©tŖp® Ż'w čżæ2cd—Õ+„Rõóįf8 „: œŌ*[ēµ£’ŽÖk’­ĖĘ’VoĻפđrn;• L?#Šäz—¹½ }ę %nk†'ÆWų(Ax×)؍ļ) å)Ā*~'^Q&ׂ&ÓO&ģÖ'ÓX9(5½Ó'„{ø%xžB"¦+éäXpdĢ©ģō»Ź=Ś#?©o ø“ēōs+’ )śÕ~CõĮ+Bš=#āźYD˜ån¢įZ§„Ż}½»ŪØūīŪ: [Žļ°āaFØč(ČļŠš÷Ė«LżÖv­$ÕŌ8mHŃ ŠśpĘæō ė’š«éüļ?˜ši5Œń§AŃņŒĆ÷ōśŹ-ųRÕJü6ÕÆ-«A(* 3rö SB˜ mA *㚠Ūč“BŽz’8puÖdzqŅ§Tģļ¶©åŠŕ÷Ģ$Yõ„ dw}V«yÖĄÕ@Mdm ²N ó³÷@bęh™MŠĻõ(ćdaœ]Č¢< –ŹŅ  ä īņ ÷›¶0\’t•÷£«7ļ2iē-V‰į†G\ŽćōƒŻH!ŲŻš×ÕŻ—=ŻÜq2£ŪU“»ŚŚ¶ŲŁOeŲ›yŚÖR§ÕĀč¢ÕŃ<הȹŚ)dŻß³ĆåæhėrhašŽ6ņōRm)ł3ėüżdüž°ƒśōĀö1-ƒņ«Ķ8īwœ÷é.1¢å•‰įļŪAÜ­āÄ׿`uŌ“ŌžŅ(–ÓS…÷ÕƅLŁ3|EÜ FŽ„i¼ß‚’įeæDāQłŃć¬g½åśķŖēN›Zé>÷Ņź\Bšė#~ģιź=µē§ĆXćéÕŽ›~ŠŲš$ŌJŽģŃž*Ó&˜×ˆØ]ŽUī2ęG’ķķÄHó÷ŠģöæVÖųēźł¹ś©m2ūVū?ū±²dū°Żü™’&ÕA cŹpū!`æŸ* }P09Ź2ī0#+*2r$8q4čė˜škƒƒ”ģ`.¾ō’¹oł+é×ēķ†HLąüź łžZųyń[ų ¶/łg^ś}#ū ¬śųš ųՈ°õzśņjÜtńIłCńƒ!ņ}‹ČóWæ7ö2o‰ł¬OżXŽöėJ€č$t EĘ“}īĮ«$ x< x˜ Ü:<œ=e\·…žLa©ÕžŁ%YüśVłpĘöĻ|FõOŠõöį öż“Yųćļhū Ăž§. n:t¶–B8 Ŗ+¹ō;ŌCF?u5uµĶ£ĘlCŻŲ0BØ•ō÷MxØĄf#/ ¢†Ė Ęš@¹Ä¾6ć­”¤õžX ‹O!eķs!ᚨ !{œś#ŌߢŖģŽIųā‚Vųi<ƒé o†B#,%ŌwÅ%QW<%½Fˆ$cu—$&œć%Ѥ(ÕĶ,.=/Õ=Ü/_‹}.<Ąé+›6\)b¢5'n” %ķ€#²Ö"!•_ … J[Ź"»qf&™õ)%{1,˜ł·,‘³Ķ+¢m“)U‰&wR€"ŒUŽ‹ūBoŽ£ÉŸš!§ē!†ā©Ņū—āÅĄøY z¾SmŸRzčŪl½‘'ž¶x=üÓ=šūé¾,żŚĻh’Ż_>īS“Č‘¼„AÖ’Ōsś5Oō'ÉīW Aė„ÖµźŽŒķŽ!ó|¬½ł¾_,ü+z޽ ®ŸžM~o#ą½¶;:Ņ‘_:ēyĪė™ā•:ĀÜķFxŃõ›ŪģKzńŠō†Ŗ;y¬˜Å/Ż@ūó2…ōsŁŁ„jœŒ:3Ø)k “h­ÉƒąĘꊿ… Ī…lś`‚ä CwD( k70e߅7%mī<"ŖĪ?j~@±9Ę?&>āH;w8(č?4k1Õ±.—Ņ-ƒĖ¼+×}*ōy8'Ɖ(#SŒøžyœĪ%µ/ ĆfŚ›»ieĶR@ ‰¤J¾ H9 ‰l ‹ żĄŽčõ‹ā,ī'ėę(•ßY)ÓŁ« ĖՎUžÓōpŌ%+äÖŁ)ŪĆk¢ąµ;šę«×ģ·@kš5&ó“¹ó1õÉń- ī?[ź_hö»ˆšX¢źÅ®(ē­ÕŠåĀ¢ę†%"ēHé¶cCģÓĻš„)½õĀ‡Ųł Süv©æüŅņśœŻ’öŽ!Vń:2Øź²ćö mŻSŽÕŲFKÖSÕ”ŒńŌ*Ž+Ԋ®üŅ ü,ŅWG ŅØyŅ“éÄѵņŃĀ-‰Šk˜ŠN›ŃEõ»ÓL“”ÖÓ¤}Ł‹ŅœŪr»óÜęhņŻĀƧ޼Z޽Q_Ü#–ęŲļ%õŌ`čxŃCe¾Ī‰¼ĢMŚ1Ė›ÅĪÉ9įrČ PgǰTĒv9ĪĒy)fÉž}ĖÄ:UĶQĪ(ŠćĶöZĶtAĶ"e6Ķ1x.ĪĪĻ3¢«ŃU™’Ó‘ †ÕŠW×`™‚Ų_Ų2 _×i“ ÕāļĢŃćlGĪć؅ˬ“ŹLYĢ–lߊ ēւ‹„Ż<ŚućęÜē ź$ĄĘėœ_ģT‹ˆģ=ģüiė¼d.źńGź ›jģ]JńžÓųfæP ”`6¬ÅYKŗä{ åK7«¢ ¹6 –V(‰}D’‚źÜ’q£;Ń«ļō1ėꝾ•Žžśž9öÄX~ņ2½Üļ‹Zó팄9ģų–mź+āMčHnåt\zįg®ÜLbŲĒŌ,k•ÓÓRZŌ÷”Ö—ĢŁØŠŻÜ’…āSSˆē…£ ģuSéń؉>÷÷ąūž ’~~ū“„żfĻ’cīžüŻż€0†üUZkū³ęū™~ēś^Šüłū'#ų,ĘöŖ©ōį!£ō9”!öi.ł’zTża ś°z M. čćī ¶”zź'“5Äg ”ž¤ ]Dd »Š˜ Ūß 9ø§?ō›öÄļ å_ŌÖąŽß! ČčÄȝJ“†é®‡öR†( ±  @÷N ä‚5¼¬e³M¼Ź£quEQĻ.^O ¾f Ļę[SLP:‘Ųµg‹äN Ķģ” ör ŠæŸ »y«!Ͱ#Ģæ’%_(%'Ąq&eh²"x…-lW„¦  {°ʕ hŠ+ …³ l1¹:$[Ÿ3 ć2ķ }ö‡(Ģ~šō –, ¼č† ’OģG…ߏ}żAŲõ½ĒVxu Å8% śŠ= x¦tŒf]«bÆž.%žš'’džOŲōhØ/€ģ’KČ|†Ššžł?’„ƒ@DŖ$@‡Bł>ĀvO=ēöĻ;ąļ;]9;u’ƒ;™; ߍ: “7" 3Ÿ!d-¤0ļ'ĘĖv#FÓübŲ(×QX†ģu7ĪDµXÉqéNŠŒÜ•ńv’žö cu•“u ˆĢżƒ‚*łMØčö¾šöĻ’!ų¼i6ū6Ē‹’2Ŗ”• u żQ ‰Œü©Ķ,9 +?nÉŽZvü+ĖDųŪ ‘öT£ öŗUöŪÄöć~;ų¹ųiśe` żD4^uėįÕąQK»8Œ$Āń« Š)ß  ‘i¦šHH' ēk˜Ē‘—uß,? ,~M ®Ę £4 1£ Å’P —÷Ę m/, Õ; X.AīöČq’Ż,Oj! F·%מ(RQ*J&+c-ķ*"Ė)ų Ż'RźÄ%Ö$ź«õ"a5["ķßå!†g+!ŁĀ ót¢d ÉćŁ~VL×s;‰ł½PĪwO³NĒ0Āż‰ć™ēo0y*äDŚŁluć!%Ś#Ą’Č# d!geµŚü*µŲ€p6Ÿ–«’a‡¢ś’8Ē÷ }€öÄq¶õmžrōŪ=ņį¢šĶå…īÓ6ąėß”„čįćŲ䱞į@z‹ß£/)ߎ°µąÜÜć”Ęįē: ģUpešYÆ¢ō¤ČCųh¼-ś“Ē›ł—ū¹ö³¦mņ ‹ķ°·€č ³ˆć³·Žļ„(Ś£0ÖßrÓĆć‡Ņ[®°Ómś®ÖlˆČŚ(ļŻŽGAóįóŪåć¤ü$å\“ęDA+ē‚­¬čū}Žź½½ƒģ&ČYī –äļā§½šOŸTš€Tī‹ĪźÖįęģ­ ą•ēfŪp͌×uU.ւ.Ó׊)ÜąP`┨Hé²Ų«ļCžĀōB£ių ū °4ż@ä’Ė` A[P……+NŖėP˜”Ŗj[¶’æY¦S&‹Pŗ+<Ōć-Ҋ[,™v'ę© ²¦{['/ź!Ū“‚MšŽĘ@LĖ£C^­žänūĶCöö’óZ­Ģń­z‘ńüö9ņ”?÷ņA²*ó“>ņĆk¦ļü~2ėƒŽeåy nßļ>|ŚīÕ=×’ø„Õ%œ\ÕHŖÖl³×ß· ڜ;ĻÜ„ēß2éwćYēóõźśĒķ†.§ļ$dŌš!üøńņ0ģńņU‰÷ņķżüņœ/óXäņŽÕfń\/ĮīwŻ«ė { éCĒ\ēņ¤Ųę)łzēļM÷č„ ©źśżėßŸģÖZtģMXlėVéŻŲ<ēņ„!å{y±ćø4Ėāø”ßį©·ŹąŌ'üßą+ęßTF~ąvuhį‹„ā䳟ę%†č§ZOėöJīķš‰ńļ÷"QńVT>ņōĢņoĻó±ƒóųmōÆŁ%öµĪÓų*Bü!ā’Gų/Ąf)“&. §A] šßŃ'=źj<(@ †ČŽ [Ö,Æ ØG¶o:}³>¾ć–Š€q„Źž2†mżģņū^sKśš~Ńųę9*ų‰śų?6pūӔäžwē8vü”̉®tS2Ā’Ģ.Fš āż½FūDoNś©ƒłū÷<0’2*&›č@r›ņ/ŸÕž¶ĒBū-эųo÷Qę#ö=žŠō}“±ń§ķ īWE•ź‚]čNĄę 9÷åԊ!ęqµdęnGęš?åP7ć Z“ąµ¹˜Ž £Ż\R‹ŽRB įk—Šęü»/ģ‚tMń„—aõZ™ų€Ć2ūĢ?żĆ°¹žķ–¢’|3ÆćČT–“Laஊ¦ †¼[¾’E~žENļžxsM,(ńƒņh³‚ |Ū ŌF¼}uÓy\„ņi°{‹&y PEÓQ&m°ōu ¶e1!ŠÕŽ’1S šĢOŽ~QąE MĒ@‚š.½ 'į"dS\&(_X(øV8)ƒę )ž­ (Ż–&źŸ8%pµ”$ūHö$€žķ%ąpš&W3'©&’ q#V$īĄ@+÷¹ók»Ą#£F÷ ļ³ ŒˆÆ„Tgæ"ÖžNlšśĆģö2+Óņ„™€ī€+źįg ęeć½āŖˆ–ąÜą ümįG˜ä+×JéPJõøōųś #b’½© ^Žš¢Ó·ĀžüŻTų»†yō«›bņvuŻń{0ņ8Fów)²ōÓ"Q÷9ūįś,A'’la[„kP Ó8 ž| š53ėj«>•3Ņ4nłæų†¶żrüléRłÖ ц ),±™«‚k6g ī|łžŗŠE’+."©āT|Ļæy |Gæ ֏e·1¶īé™ńq6¢—„‘ŅČbŅšŲ“ÕSmÕ ĪzßßIłr„ˆZj£qMŻ_ü!Ė¤ŌŻ ƒb ‰|ĮgĖ8«#ĶĶĮš<`Č­ĀśœÖĮŻėA ¾ōž™IRK’¶m‰ųŠń$ėį鹒ųć™Jąßa3ŽBB–ŻĖ-6ŻNqeÜQFŪ ¼EŚ‹¦mŁ+}„Ųß“‰×½4ćÖµÄB c®F ¢Æ_÷“ t§ŠāĄ³ä  £naĶ'(ÆX'UHŗ'б(¢ww*Ń,üä.›©/*÷».¤w”,;*B µ'n ‰%üīj#ƒlw!® @§-³© Œüģ"[^”%š5Å'ŗ¾(gbt(ķŠ'EåŠ$qk@!JvĘIÜ/?™_‘nCČ’§-śąųūĄI7ÖŌB(!r yÅ,ƒŲ“ķ±ł.ŗ’)åŗžéŽže`’“Žģ™”\ēļŃū@Ø÷#w’gńŚśšõLœš^4ķ“$GģeFīŪŪÜņU‘õų”^’’,r-­ł H«Åę clą#=CpjtnXuÓ½&ˆ€Łs“$'ö‹źœ>~O5’ń X œ˜Ģ6ÕU°X°ĄŲī]ń™™¦bgąö‘oōLŅļヲ$!¦ym ōŲŚ.†¢ŪøN#6l‘².¬P%"Į8,čcź2­„S8„@¶;ą–ž<ż›˜<ų:¤5Z8|§õ4VĶC1”nė-ŗŚ`++k­)šW„(‡%_'¾m§%įń #¤ēĻ£„¦–d0 €<#łā˜ĒUČJĆ/O[Ÿr$ ŌĢŪr¤¾Ėü*šsö=²ļNÜčļs⓾ģÜP¼Ų^WÖ#ó՟»„×āžąŚĘ°ß£Oå`Bļź—Ņļ¼[ó҉õϾlōwpņń¦ øī†įģDC«ź‚ +źźˆ9꣹Œź¶(›ėĆ2ķĘ“ļåÄš].£ńāĆbń[CMš«öļ_=īØŪī‘«gīįē ļK÷sļ$@7ļ/īėwŽģŃÄĘź9sCéŹ=A蹚Üēøßūē 92č¾_ čk¹sēCaŹę¼@­ęZq³ēÕÅź÷Ȉķ q…ń“y€õŃ-:łY¹ü-'rĖ>†÷ÅŗŚp ŽĆ– Į” “؈ ' $MŹ š@€ ·= L];Ļ͇+žžżéh¤ųĀZņņlŽŠķģ0'ź?/TčHæ茧äč8BƒźŹY’ģ’„fš:@Bōd‡æ÷UĀ%śP—ūśėā’ł†)'÷n¤ņģäęģg‹ęMŲWą>)Ū‘×Āj‰Õö>ˆŌ÷\ŽÓ¾ž7Ó3ŹÅŅrµŅČķĘŅ~–ŅvŅ]bф²уņŃ_.ŌŅg~źŌÄGר™dŁŚč ŪKˆZÜiü]Ż„¶Żō!åÜ?ńŪŚ«Ģ!ŲqVlÕc%Ó¢ƒ[ŃėäĻ!„xĪł¢ļĢ fĖ06ŹBćøÉ”ćʊ /ĖRĢĢž£ĶK]"ĪŲ³=ĪƧJάAŠĪ(W4Ļ:źYŠ-ÖŻŃ¹˜¢Ó}«Õ³m¤×։LٲŚŻ‰ÆŁE: Ų?NSՙfҲ 5Ļ Ė»ĶV3tάōˆŃÕōÖ*NvÜ+Oā;‘ēÅTźŃņģ ĄģϹģ>C)ģ˜<ė=nź-„źŠŗSģ³~|šĮ›÷Ņl]’{)’ # žæoūå4{jˆ ż `Õ#ū.Ņ.]r9a÷¬ō·ĀÓ’#gWü½÷÷®ŸóÉłļ%ķ«Väź ęńč™Čē#VĀälIŁįjWŽĘČĶŚ8©ŲśćÖ/ U×~*Ł’|Ü\Øß“¢įćIŻtč¼>%ķ|§ßńµ²‚ö9ū¤ś›æżŌ’Ųü.wĢ p’’VÅÜžČčż_ŗźüŽ1üQ؜ūT˧śYžł`ō>÷ŖŃõSńoõ¬āmö"«įųžü+°%Ę·Ė?sž ±Z '£S„·Š®±+śY]+’ {?¦ 5žµ I4W›,ųm3ć.Š RĖ~’f£,’2Ą’–#µcüŸØŹōK)U"łć0JĶ掵.1ĮWՏ^MÜÄ#t WöŌ ‘üź­‰uxf™–ØõŁŗ–k!m½”"'%ų"ŪÓ#[B–#Ī[‹$S€Ÿ%ńœļ%“łŸ$ś‡!śĖ?Żž (1¦ņ >9= m—ų@֟) ”žr1Tm®£> ęŖ ”tó ±ĒÜ »NŃ ;Ž k¤BĀ–¬Ö~ėąPØd Hō7 ‚qׯę„J»ØSęĻŻ¬hWę’OŲz1ķ–-ŠX|z ¢^°ß‹[56šC3r­Kö 8AǾ)Ü į³ż³ŗźųŹlōß/?ńQ—2šįYŸńVļ-õ„jųł2Y"’-Ø?»e ŚZ{ lz ėˆž­‘5ŹqĄ·ō­@t’įšäĮ’° Ģč"}ɞĪ‚‘m:…Ēå‚„4ÉP.€Ć¼`ålik‘j›Ō­ŻK>ŲķZŖĆĻ÷ć*_…ĶĒ­ø–»ė‰Ņā;8 "n3ž)'[1J÷7Ž×S;’æ¢=Fw>rNA>ßK= <Ž; k:h`b9kĖģ8źćŃ8‚Ž”8mĶ“7iĮA5}‡y1ø(“,ĒĻ'%‘#. B ÕĘĮzéķČWÓVÖg!Ae¼’^Mf yĶü¶ļņ Įzö±!I6q^üį¼ łX’dųHbĆų³Ā¦śØŁżĮ±ņ_QEŠ ­†’ £XV Čōó zwe% [dē)žS|śsę“÷;ÅNöLĒõeō×õi9šö»€ųč×[ś;żé•ć’·ģ<Žuļ W<ŸJjä*© 1 µ¤žĘhuæTY\ķ4@bŲŻØWg < U z o\ū %‡„ T$K Æ Ź w"‡ ZÜĖ2d]Ź£¼­Č"± ¢%<ĀH'"š'>ČÅ'½ŻŻ&#Šc%ž?Ą#lFl"ö‹­!źf†!UX»!žƒń!Yģ!XžØ!/*!āt? Ł_“§ŁŁąēDéŁŪ³J°ƒµ/t„l-Œfp‡L~uéź÷½÷–uį Ø!Oæ!wēŁÕs£MĘ[V­Ė—ūŪvé÷Å^·õWXDō=8Ēņ †āš]°īęŒIģ ƒ‘éUwę@Š;泍oąĮU“ŽSŠŽ¹I+ą™æfć—&ØēģNGģåœĻš ‚õō PEų=§ śJ Æłz(9÷NAó–`īųY®é`TöävĪą"ŽŽÜņņ.Ł÷ˆŃÖĢ™äÕĢc¢ÖąėŲØv=ÜĶ=Źß™ČāÉAßä8 7ęp«&ē,Łčm½éąōwź£ŽõėuńeķUī­Sļž"ļBš“ķÉøōźüē? lā5‡ĒŻzńŚ•gŲõ×KŁŌ ĖÜF,Nā(Žč<©_ļ¤bõōē=ł7 Uüƒa˜žcJÄ €Żc_˜ęP8…ö} õį”° Ź^ų!.Ē!œOJ&£õ(‰o(ČĘĮ$Ö‘×:ķĖc1G<ĆŲvŠ•āgój!ӈM‡ ’X#²üč¼łäJŪöt6·ō/T’ó˜N$ó‘uįņF\EņÆßÜš@lFī8[ź­eåīE'ąŗŽŪŁĖ@ŲßćnÖ?XźÕŻ2rÖÄÓ×D4ēŁēü|ÜK{ßū6źāė=µęŃS€ź6īÕķˆypšņQQņÖó©ó£,ōaŃõžõ+_Ąō-®8ōŗ%Gó*Ań-oĪīs• ėėĆ¢čļięmjHåĮčXå ÜpęÕ č¬ĻÜé;Ä4ėn”Žė0n±ė pØź ÷’č“93ēĮņ²å‚sœäVOøćo„Ūāžģ.ā§cõį~ <ā-ņŃ⟪ćw=zäĀ#»åFFeē•ÉlésėŸÄµķ B“ļåz;ńz2ÆņkķóŻLõ’3`ö›ųHvOś vżĘ“ś!s“˜Āj¼%1 @Ą§ „OŃDó EH ė‚õéu>rgtu/a— Xtō¶ņŃ^Øb¤&åD .’ǾVż®ZūØS„ł"\ųæZrųÜśĄü&ˆĖ’GŚLؼ’œåĖ8ÅPՅĒM«żÅŲ(ūBKś§ūś ŖlżŃŠ#~E¹Ÿéa#?’²q/üžõCłõ§÷URqõ»f„ó5s%ńĄ ī·ķåź¹fčŁęŠ¢Hę»,ƒę%nē×~ē GJē”V꩏ä<°ć įėį·čį"zxć-¾’ꊩź3Åźīˆ“Éņ‹Ī*öC‡łn³¢ū“ޟżŁŸ’6Æę’ÉO‡>ī$›Ā~āÄ[›éc7ųfƒ²ƒ0Öy’SæC‡ ŠÅ#i^ų\O _]¢ī[FšmęL ·ų8 ”›īh6Ś'ļŽ+‹-U¼’™[—’Ģń„vc‰H] K °1ŁDÖĒ>‚ $£F÷&Bś'+ā'}zņ&R’Ž%ĒJ$3¬#‹dķ#†™Ż$#[ų%Ņó†&×ā%ŸĘ#¼‹v ™k„‘g×SD“§›@ė Žż|FĢęYŁ$5ōžĆļū¹ Éų« ‚õ»ņ~TīčFøź(MŒē#ļ4åńwäōLŒäĄ“ęLńźX ˜īVŌĮó½ęŚų¬ģ9ż NUā“Ą2ž²½žzoūPet÷ą¤ĒōPm`ó=_óā~góÅ2ōIĆö‰ĆŽł‚)Åż-ź0 @“¾ œ-i ^Q‚ŌDtAŸA§ā¶{rF~węš×Nx‚ eĢō1žA§] §ÄV OH¶ćpH^Mž.ÄB’Āčóż‘¹żļKŌž ¤ ĻŲ7·?÷ ›T= §"Ólɉ9ŁÄcb0Z‘P_f]·Š=u°nńīGGlo;ђ'~h ±ŲqKA…£iy`¾ £^»źYę’óHKN›t¶½Āģ)ż’”Źāހâ·†b+Ī·āž„&3ł\ź²ņ2Ä"ģ„ĪUę%Śõį¤4ß%µŻÉ*ĶܼxėŪ0ZļŚx Śļ7`ŁøŸÖŲ%]gŲ“2EŲæÓŃŲwynڼUŻv@~įz%…ęŲĢėWzĘšźC)õ&•ĖųqĄ]ūū£dühā’ū£Młb¾xõ¹Oń­ršģX¤‚č0%ä?Iŗß?ĮŪź£ŲŲ¼åÖĀŃŅÖÄ*YŲIWżŚŽ’łŻœ„’ą^·pāę¢ć¬Ģbä¬õųäÓ¾¤åō”zętkēŠj^č’]0é’ų˜é‹\9éķJĢ篪Jå›åķį<…0ŽŪĀŃŚ=6¹Ų»¬°Ų`āŪ}¢Ÿßė6—å=•óėlW®ń@|ö Ž łÆ ĖśĪKŃūŌuüƒķüj¤}ż;X”žPõņ½łŸ.č t¶e)ļŽÉ5"|2(¾ó”+3M!,Āaą)NŠ%æ +ĀÄP╤÷ 1¾¦3ÆŸš–4ż PœÖćł¢”’ź%`ü³śmtśqx.ū Nüó=1żä;;ż“ü%ŌčłMTY÷Ÿ}5õu˜ōŻźōÄ© õŽPōöŻ VłĶŻüœBźžg½Ń]øĀ’’É­ą !G š†œ Ę y’¼ gw*p c„*&}µxšøžBÓ}üb­Įł]tģöAŸōņIhóŌŁžód1ZõŌß_ųŠģ+ü-[ IH·$‚ćm _K uĘe ‡i+ …Lń d¼ßMVž„¦ĪŃ܍Ļ:Ūß}[ч.’ō8¹—/ x÷ ŚkŚ©mź¢ČjłņXGśŠ“O&Ŗ߉?ąŌj.Ónp"K¢.źUĮK£ž­½t^ž ‰Ė#©‚&`čz(źŒ“)åQ>*Öō*ŗ½,Ź:l-w¹.ÕĻ>/•Æ‘.Ų»Ō,OŒ* 0(²č%"¬#Wµ†!^^¹r«µ{¹Œnģ·Ó!‡°#|ųā$ķ‰%ŃōA$ĄŚe"+ް˜p–!Łą88Čä·sA·­(ŗ²”Š>1oŒ…ØÓ¬ ’žÅ ]Äq;˜-¹x±Pc(ņä>Ū—Ē6TŽķ|·»DAŚź0„£„ķóž|+%ū/‘ŗöP‚ņÄloļŠnYīž·ļ‘Ijó ž¼ųĢāµžęl–č=ū ·Į®Mgˆ7pŅoÆo½š¦BNYß@·¦_6S"†ąc·֙[Æł1ČrY˜S³<;2­Ī”Źø”{-9ŗūżIQ0Žō¦Ā$h)mŌ3T²Ó=ēF ZOŻē̵µ¾"Õrž(t’.éx²3&x@7a–ķ8Ė—ß8©?q7Zł4ß”É1“±Q.?¶+@&š(ścõ&ŽB&įS[%T„y$(¼ś"®"× lŅeŹ×ié 8&ū#錧Ś ūouMž ÄY”E čDŗüÖ©$÷ey7ńųĮ!ė—˜<冬šßtx«ŪöaŚŲĢĢ×w—žŲ¬>ŪY^kßń”¤ä}%7ź÷cļn‚|ó UģõįvTöķ¦Ģō¼“ ņ1ļŚ·ģ+ėY(’é]üMéjyéķiyé¹{ꉬōėĒöķe¬Ļī.1bļ;UIļóŪŻīB"Šī2yī&kšī<›ˆļö š6¤ šĮfsļecOīYåģ°Ä‰ė1ZyźQ’Ķébūué1o/é3Øčö@Ē猪ĻęǰIꒈČęŗ®¤čąžĪ딑ŽļŽĘKōŅü§ųģ¼üVŹt ēĄoŪ}š‹µ©ō ūō QĻÄ ^­s ŌŽ ÜFŗ ¦‚Į NÜ Ö’!÷Œ«c`€’?·ś.³©õūšłšłeYķØ@.ėŖ‹iźkµźÆCĘ묯ˆķ†Xüļ‘’éņĆĄĪõ®Šų0€>łé5ōųsT÷ ”|óߗ“īÄÅčG’æā}¹JŻ>“ِNÖ°ĶŌŌxs¦Ó|ūoÓȉhÓ^5jÓNO5Ó|†­Ņ!•łŃŻĢnќĖeя°Ņ|’ˆÓ ‚sÕÜ\y×R¦XŁÜ“Ū5oÜ9UdŻbFˆŻFÓ²Ü5TŪ(;Łģk×tYĖÕ DŌ)’¢Ņ!ĆŠf¹ĪƇŌĢéČ{ĖäūŹŻ^Ė–7aĢ•†ŒĶ`oxĪø„ĻXœYϳ£ĻÄĘŠŲęūŠQJҌԌūÖŁŲAŲ¾5Ś{(qŪœ’ŪF*uŚŗn;ŲŖ)XÕŁuŒŅ4¹ĄŠ,KŗŠĻšĻҹåČÖlöŪ`gįy/.ę-®éĢEæėö›ģßB ģŁģ]Æ_ėW˜Ķꬃė–%Ŗģé¾IšĀCö›ĆYżY¶]|‚Š ]‚„•lNµˆY-@Źd± ż*Č <[P71g‡ŗ5¬.źįtOę(żū\ęųBńNōŪžš§y®ģT· ź jżēŽ Dę71ˆäĀw|⊢ ąu䀯9iŪ‰ÄRŚÜĀƒŚąĒīŪėHXŽh:ƒį`:偎GéŃÉuķ„Y¢ńž±õś•iłrNtü o“žLPĆ’ģ4h¹'[¢¾’Ł·’‡Įžüp/żĄ7RüuGHūŗ ćłTJųiüóö©hlö,Ó÷¢ó'łŠ‚üSĖbrmmß ¢I– Ń»?Øį¬ķÅć&)*čä»X·v†  U fpÕsŃKżæ°ķj’õRCžQ˜¹ż…ķżC“Ųž‹ĄI1ŪźIhŲŽ‘DktȂ]iė6ū4¼¦ų!Œ–) ˆõė `!^kĒ˜TāŌX7:Ŗ59W?"¹$X7Ī$ņ$Żķ$øū$ˆ¶’$|“}$ÕEå" Ł’žwŁĻ_–^#Ÿ³\õ E‰µ•c$mJžęcf,Ci0'*¦AłˆF V^Ć )„P –bķdō˳ rŲŁ«,ś ‹ĆĀÕ;’Τ%Érā#¼•ÜąnÉ15Ō™—ōn+U3P6Ī;œĮ^ZȾŸVO¬»IŹ„ÜHj2҆=ž…3ūłwŽÉõĪkŽņÜńź¬Īń” £ō„€ųų„·žĪ¹5|!ĮŚ} Ē įŹš¤4üĮr8vZɖÆDWbžo’­ĄhܦĢĘįF"“N­äBTnd©µ˜6$= ڰR‚CÄ,¬.5.43'ļ.R/‹m|ėµĄć³½wV~Ėć ŻrĖś£Ēč°H ‹. Ó¼ń&“Ą¼-3-Ŗ3?q8“vĖ:śUÕYš+ ($°EL½I’’hüī}ś\k‚ł×[śIŌ‹üśĶĀ’™awµpżma¬ Ž÷ †”{ ōö_ČDÉ?Ļ’Ó æūŹ0°ų0Ż­ö³­{õIšöō,Ķ/õæ²CöOģ9ų„īśžWs”Gx‡±nīåiސ’Z+rŅ$ 9WūńœŖßņš'|3øCŸ"|+ćU‘üO$DųKā>õŚóPXń™qļ0{Ŗģ,$źÉ”wē1%¬ävōįõ×øß•oyŽyŪ”Ž[dą†Šžć}Łēž^wģ™nķš»ąŌōnĶĖ÷cų\łśp&łņŒ÷Œµ­óepļ?iłźĪ©ęj©µā£ķ9߀IWÜŻ£Gڼ­RŁ ŖŁó;EŪÖ°ŅŻ8õĀąµżxćCåØvłę8-źē „čÖ)héόSźé}`ėĖ3sģ.gķųvīS’ķÓ÷ķ)»óźĻ³Ö焳䁄ąJ§»Ü–ŅśŚXĖhŪ؟1ŽŅFłā2müč5čGļõšą łÉĆżņ¤}’QO-®ÕPL q[ą½5 ÜébņV =%­õ„–Ż ƒĀ#Øåž#/=o!µ3zßųif F)ķƼ]ŗéOm^·ų›’X,žæÓüńł£K!÷ ;õĄyĻóµ[›ņWGńÄc~ļŠų÷ģéŠ^å °įąsĮÜ§ÆŁŹŅ•×źĻÖń×B_+ŲüūŁ Pb܁ IßķŖāŁ|qęUę\ź·" īf·%ń>>‹ó”s@õIFVö)Ķöׯ¤öó’õõŒÆäō8‘hóŪŻOńVˆīŽfRė4ƒ.čųZ§åiī"äjÄŠć ~”äķĄCęö <čĢS źņ†UėÖÖė I|ė,mźkééĮ¢ēŸ„ęEY¢åŃwąäā Cä’€čćtrÜćzä-£Lä`Ō®äpŽPåGYęŪŻēp"Ļé/ģöYīP§š9ńÓņ‰«ÄōTÉvöhų@¶«łŪ?ū¢CÅżiį6‘·šŌ/epŖB* żSo lHų uÓQŚŗj üŻ” ‰©˜ ćīŃ·ŌŠśį>–¤©ŸÉ™?[»Ø‘½”jŽkž°Š+ülŌśžéœų'4ų&mł–ˆ$ū2صż_PIł—X×ŖLż7—’ŚTż|Y<ūü.!ś®‡ś°ģFüį‡ž%®-A eł3’2üħł¬÷Œiśō–3ōņ”–¤šGŠųķr®DėMaéX&”ē—nēŠ8gē„*<čūféÜ;ŒéėnNéRæYčĒŽīęoNJå*Ää³cå1–æęv%ˆé0xųģ¼?“šņō{ćI÷#•$śj züÉ61žÄ'T’j6e ¼b£ģģ×7!½ńö‡³x®ō1RR/9pŚ–Ø ŠŒ1 B 5#›(Yya[)źĪ“)[ “5Żŗn syßŅ’eŠi’}ÅIK'!Ł¢} /rщ÷D3QöŲC"…}÷$iż6&¶CQ&$П%ꩉ${ƒˆ#/ #Æ×G#i$¼#%fE¶%ų<%¦^a#¾m< +‹;^ŻĆIvØI,čŹ c|WTf7ĢT$v’Ś–)żŻ.Åś}G3ųLŖ^õšEņM¦ļģV}‰éųHōēģ”ēMLčLŽź¼POīωŒņ•·÷ZūAĘž§źÜ¬C@;žŽ’)Ś!ż§qßł5üöYõōœóó”©ĆōuŲ†ö~ŗCłp§Žü™Ź ģ{\óN 0š ęÉ@.y§gxöžPĒŪ鏄¾ŒXŹ „”Bć&ÄCׂ2Õ "Ē“ wķ6σo^UIC^V^žŻńü Ā_üĻžöüke»ž?cĻt“u~ō©= h¤ ø¾©$—&“0}—šŪŖŃ̚£~{o“¦÷–6 34Ļ%RR»ē©3 ĶĖc#Ń¢npŅ“O CŻƗ!ŗ?šV<k³*’ĖÜ ’-« „ˆZ,ū¤§Ä*ėf:–œśAžM™łüLōNī  |čÖXĻćöŹbąg§$ŽÜ“Ü-‹§ŪtlÅŚZŚž=¦ŁčeuŁFjyŁC­ÉŁeį¢ŚśMÜV1žŽO0µā¾Š2ēn)ģÕ§š$7Ėō‡3ųÜÕ¢śŠčÅūAÆ[ū[Gkłź8Jö nņqG9ī揼é–;Øåy–įēNńŻĶ'Ū _ŁŌŠŁo1ŚÖ)XÜH¬ļŽ|mUį;!ćéĻ>äH-×äwö+å^Ē~ågk÷åóRœę‰^ēØüč:¢č7šžčŅēT"ę„°¬ć/Źą8% ŽŪ*ÜØŌÓŪAēoŻu:ōąÖēćå6Ovė+ŠšķåEõY½‹ų‡6·ś÷#üZĘż¦Äøż“§|žĻ«’üč»py ½©GjwSg @$“Čņ' Ö_)X7J(KH%Lį A»ŹÜ9ÆČ„C¤4ŪV#č üī¢ŸÕŸe#āę<žE³‹üzü©E}üÆOżcżż^žPęż]Sū¼&łm“÷-!Ļõ{õĘ:ö17^÷õ¤1łAJ^ūĮżŗDŌ$Ś]śaķS• " Ā%Õ …N± .<ām›ķäG€1ĢSŚxĀ5žhĘ4üRõ‹ł¶ŸÓöU’ōHRób ró§õ(Ģųˆćąū¶9 iłC%8ĻĮ ĆĆ ©@# °¤õ `Ū‹ 3– *a_ $¢‚šŚŒG‰“+<'FćžžŽTÉäPłj µŽ· ˜ɝØę0t–.tTd'r*æ©r«©ĪSæžķ¤ åkŒ}ŗ‹Ģ]Wαpˆ¶… õ> ¬tĒ#_Ģ'‰n—)Ö5+WĒ,Tm£,£ņ.-uß-Śo‰.ĮÅ.QÄ5.KHĶ,†čŹ*—£(gM"&t„¹#| X!]2«žS\ó¶³RĶē„ß ¦B!s!Ģ!æ¤k!Æu ­ĒŅĘ  58­† ĢÖ>ˆ[„ģå!Ū©£/;]WĖ 5 {3é3+䔹W ŲķŻuĢĘ$ŖT•ue™š•£Pv„Źō°É©>ŃxžĻēqūqżé÷ņ¢vō@ÅŌńV`¹šź*™ńžf{ōq(šųó#>ž%č³ßcŚf m 1R@¬I:jYśG¼Žj˜ŅĻ” @rŪÖ ¼+Žł}RI«Ÿm¶æA ć+“©,YĆ螌"gT'xoĀ ײž‘į5ß½Ōr,;ć9Ž[O-‡ę…œ\‹Ćy j¢Äb“zp tQ%¼‡t*ź/ƒö“2įv4nāŗ4˜Ćœ3 Vs1B&œ.śŒ+łš(!½Q&I—Ū$é'$j ę#…Ż¢#̓ļ"Čī—!ćł±’Ż}„”,~AæĀf•.ļ' -WÅ „L k1„Å[¢eŃüæķ÷ę·ņöŅHķn ąēR¬Õā2¢Ž\f|Ūö[ōŁŲL-Śuh,Ü}WĆßSŠä¢Xå銈ļŌĶ„óŻwön3÷*Ų¶öjcōgžZń„jbīŅ ęė†!śéuf–čĪÜÄēĻēć4,čs,Zéśēźmuģ«>Øķ ÆYī]2¦īrzĻī ?ļŖ‚ļ &šŗžš>Śš›%šyĮāļÄPĻīNč›ķåzģ2Ś†ė ¤»źæõéÖé¬Zāē‡ž¾ęłŌ ętTęĒmīēą"ēźEńī’TóĶ<ų䘣üšą“hĆóĪ£ÆĀX»!ą$ 0 µ“Ļ b^ ڬ³ ų˜ ÕģĶ Ą0 ‚śÅO§CĮķĒøü.’IųčōNߎš8 īĄ¢Ōģ+‘~쪟åģc ļķ¤9–ļ¼ĄńHōœ;ö[œ÷bÖ÷…» öM„Žóšp®ļĪ oź{søäēDߑjĄŚV×Ć&„Õ;²ŌøHŌ¤vŌ;ź ŌiēõÓ¢9­ÓjÓ{!ZŅ'ų¢ŃŌXFŃ&…ŃMłxҟzŌĒ{ńÕ(™ų×½g÷ŁĆŒÓŪ„*^ݲÆQŽ'C{ŽÓ“āŻ¶½ĆÜÉū`ŪĶ]ÜŁ€ņ/Ų„AÖ¼’ÓŅŃS ĻÉö6Ķ)#Ģv>̚ę“Ģ>ĪĶŽņāĪ1–°Ļ·‚1ŠÜSŒŠRNżŠŅ‰ĄŃq­śŅ}°ŌÉÓÉÖķ³Ł,ł#Ū*›Ü‹Ż6ŲgÜuĖ„ŚÕŁ,ŲTdœÕgš¹ÓqŁ:Ӈ0‡Ō•“×éŽäŪ”ó“ąņ0å³³čŲt÷ź‹Éģ’ēQģ†ź ģJ>˜ė„TėĒH¹ėz»Lķ9Įyš5cõł¬¾ūVīŌ›0© „7Fl²›“‡V6¤)$Š vjō©%aūœކ>ŠÓFŗ_ŌMŁ> ąJżÕv9łłA§ō‰CšØ7‹ģ"‹¬é®Ź”ēk/ ę,zĮä)ti㦪×įl"ąń#žŽjøŻpł¾Żæ¾ĘŽ ī“ąÉYć;‡‚ę„:żés}ķ„ŒDń„ŻōcFųšĢGū©żÜAM’%<ˆ’ l7£Ü’˜©’c¼žŲ ż¶źéū^f£ś§BłčÅųĢ’÷Mćų—ŽłéćüØäąē›]‰uČ ń› ų7r‘xn*lY>øõöGĀh„č@ bŲ Ž&>Ŗ„ C 6LE ŗÓkžO%żGheüÅ+G@ |c“h<ĖŚföµå°,ˆ"ÉČž jµĀF^!:™§Źšč Šļ>T„«hēē–āŒ7ē‚™¦{“¬×+üåKE6¢¼×HE‹Ą„’t«z¬‰ˆlāŅ>!īÅ&Ņ™.F„©‡$™†ž*ūļ.0YŸ4 l„7`TK9 čĢ9’p9Čbx8O[.7Š7Ž5„ļĄ4čā3±ä3"2 ™y0(Š.A +b\½'ņ.•$ ķń!ØIģĀćo!Z]“H“äŽ'¢ų_̜(}¦ĪØ,åŁg4÷Ą! €IźįåŽś¤\ž¤ĀūgĢ\śnÅQśtŹ™ūÖ×ūżķ Į”=mō#„’å§…ćd®õ9ńqAżæŪÆłē—÷™³JõŽAGō>uōå×ķō)ńĄö{łHŌĪüāM‚*“£¹lėÜćģ fD {ČU:92·4v‘ķW”„wźAŽœńpÕ²j=W ®“% ł› Ye ÷é| rņ Tƒ0 W®6–‘b(_‡b]ćā÷Š Üvk!†Š­!„š}!ŗĻ !+*’ ńL] Ѧ ØR!”ŃĆ"¹)$'ÄX%6ę&‚ &l{m%OŚ#1d!™=ö—ÕN=“Õ]Er¶9:śč~3ēŻbelxWļÓP»IĖĀóIsˆoĶ %+ ś gØ% –īɚkż1«ų!#ņōuŁ ņ‡n’ļ÷>,ķ³ź9ć-č^r¬åūCć| į|Ž}ßėŅĘŽóyGßĖģ$įŲB䐢@č;•ģ5ŗš»Gō očö‚=PųŃü?ų®ū­ö‰ĄŪó2OAšˆ^ģ\Ķ“čü»åƒā]›”ߢ¹Ż#č±ÜS@ØÜLz¤ŻĖ“zßi‘ĖįhöäfęŒŪzē„ngčoxéö·‰éßFźŲ›Ėź_ߎė°Lģ€VŁģ»nõģLg\ģĮąźųŻčŲuåZ5ā“NiߕžĖŻ‘RōŻ68%ą=ū0ä¬õ‡éh«aļØõō€2°łąēTżŻUļ’ļY²Ś ÖŽž“¢.5¹ŌŻzÄkŗ| ³` mģ%K¢)±¼”ó|ƒMŽś—ė·10ĖķąC vż–YĖ!®Ģ²ĒbQ«ŗl’ŹĀĒżĒś€ū¹%ņųO“vö~Ā=ō?‡Aņ eXšłOJīÅ®Üė“*å蜇eå'öįę’ŻŸŪöŲ!'ó׳2ź×>‰½ŲUńPŚt£ŒÜ:^߁ś¶āäć}ęQ{źĖ·Yī§TĆńoŗ|ō5nöz²–÷žßś÷­¤÷å¶«öļŪ4õÓŻOóčóšš¶ūī%įź$ę»ē…ŻåbŽe㦾Ųā“JućÄĒ䚉 ēŚ=$éńŲź@ŽėpšģšK”ėnō—źyóuéß6mč(bēµčÓę)/ęG°ØåqõFåÖ¬å_RĪä÷·äńčįäfƀåÅøę‘čĖīźwAžķG.jšŌó‰õEš÷®3Złī§šśŠŽü³(XžKīUȄxšG®ŹŚš·s4 ĆĶG ųbĪ °gk ĮMž [#¾ ŗ# ć¶C—Ö禐}›ƒŽ§Ž)÷˜VŌĖ÷R£ŹmE’Æ6Śü@ć śŗÕņųéŅ,ų§…ųķ·ęł?åūü[迍Nf’H ®ŗ»’ ü—žģ™ńüF‰Nū€ÕKśŒx\śśæ‚ūLp;ż*”³žQ,’[Ož“‰Mü-’±ł2 ÷>‘«ōĖ%ņ™Pš\īŁŖæė^ÆŁé+£č÷ĀEčV>·č˜¹·é~”Žź¶éøėķėmUėdź{čż ēFDŠęō:灩Łč—üėĄÕIņ‹¦õ*²ų^A?ū³$3ż¾p•ž‰Y’’ōźeœH7qžž²¶’|*Ökvź)Ø*­@õf¬tŽŽ®ū ® d ņa… =/ŌBÜ@Ÿ–Ļ žµ¬ĖiM Ļ|G b| ÷æĖ•1žƒ•’\Ŗ%Ā`efūų+ eāĀŲrKŚž&ŗ‰"ą$°Œ$N@$äĪ“#Ż)ė"×f"ĢL×"žO„#äŠM$Ū±$õ¢,$tk"„n’ą‡ˆ+“޾&炔Д ĪŚ>†kr¦3nŗS4K™žģ£Šü;=Ōś\„‰ų\čõ¢ó“J#š.3†ķHč†ėT€tź-φźÉĶÓėĶLīEŁŗńć¼õiĻłØībżÓoķ’ OšxŲŌ„ž(`æūÄÓźų¹ā£ö=Y8õćńŗō)ž/õ( ö%ūłyŽlüvĮwąĪą’^¬ Aذ Bž. @Ņ™’€Ź£Ņ}1ƒP±uĘł"{¹½wĮ@A :å ķ²F®üæŗV{°tb’ļń|żP£’ūÜĻ<ū½~ūX"ąüP®9’:ī0œ^H²plA ’Ē Įit ‚ä3(­čÄ™}æÄ¬hݽHšņkµ ž ŗU c¢ ŠŠē źuR2¹‚$“hO ”$-Ž~Œ’\\/ž›&ÅżĄx5žŻ:’mncķQ-^¤$Ųö’&«zż5i¾łĀ$õz¢°ļ|YźCbŠå;*«įŪNÜŽ,PųÜ1ƒøŪkŅćŚt‘dŚ«¤8Ś·hYŚ+½ŚvkŪŹr„ÜÆs:ŽJ¼µą›®žćœUīē±;2ģŅļfš( 7ōküc÷¢øµłbķścYÓśł<]ł²U»öźWGóɆ`ļĪ–Sė}¢Wē¹P™ćˆåJą)”­Ż?Ü;ŒŪ23:ÜØDŌŻCÜęßRŲķį ¢„ćøƒ„ä“ĀåŌ?.åy/Jå{"„å€hń屇Žę{Cē[ćēb—0čk{īē¤)łęIįVå2œ?ćūį>F~ßŌ÷öŽŅčńßaR‰āLģy꯳5ėhįšZOhō¢ćć÷½9pśĢ6ü>ÖxżoXuž:¤i’ਟArŠŪ<G„; ² h©Fg6’¦Ć FR6$%ļS&{é5&†$2G “ÜĆėµTĮŪ””©åžOćx® ·Ā ¤æŠ§žœVøØ®,Z醾0ŠżvQŚżµ IžŪ殞­„žķż[„ü’J±śHˆåų³ą÷]źö Ž÷ĻĒ÷< ł{›“śōF„ü>ÉžČ  MUqbkóŪZ– SäS2õ6īŅĪĀäL#óŒL tR·!2žžŚū¬ŅPłxäŅöįFĖō±oÆóŽ%Ųógõ"Ģ>ų:³üĘ,u6Š|©› 9 FUĘ e `äR <[Õ d "< =ü6 Č%“05īŽ’Å8]i«-`’R½' 7xm ĖDKŸi²Z~Rń#ĮĢĪu—Š1݆ `bš°,GJÕŚl‰¢āŲ{`ńĖÉ4C= .ś#{ü'§U[*mpF, _Q-#lÄ-G:ų-Ū(.ćļW.÷aN.ŹÜĆ- ×‘,"Ē*7ņ“(gŗ"&e#cUõ č…鬋æõUD÷zĒŖŒ,Ę…@ę #–Œ„÷a‰䙨õEÖ!QL=ÓqC š«…/4š3ń« į @ ˽„scY-¶ÓŽD/[ķ%b Hj@ õ:Å{PńŖøe½ßΑݒˆ $ž×ūa`$łuPpö9jFōt”8ó… “óŃ3Śõ2^qł×÷łżQAįUĻ®ćå €ŅĆŠZ¾ķ)tT¬M±t¶;4ænÆW'.fnõøR?ųõaKOۈ‘šd¬bÕ¦fņkvµ{]r@š޵˜ķjĆ&wš“VŠ ĶŪø¼+\Ē!¢·mņt8(¤`O•="8Wˆ&|Ž—*e9Ń-šzĘ/CS0p„˜/ŌčŽ-y€+Ų:į("˜j&ķz$æ£J#A’×" jå"žp #$GŪ"Įp"[„| ˜9Y×ĢŹ"ĀļiLŌį…`[™Š« A<,2·IÓ żö±Āų%Ā)ō¤oMļ8ĄYźu$™åšJkა8ŽÉM`Üu$Ü?™Żß󔹊Łéä:rźéCüī-LoóÅ£öQ™%ų£Ī÷£`Üõśßęņe.Ÿļ‹6Žģ!#śé¼‡żēᄪęoAęŠkPęšIēĒŁĻčX‘’źßl7ģ™Ä€ķ­‡c’īįƒļąšaæ°š(ķGń &¬ńš³³ńįJń§Į{šZ­fļW^1īĄ¼÷ģ¢āĆė ‘źxFégjņēķZĆęä™ę8 VęJĪÖēhĒ©ź‘N•ī~–)óØėč÷ś lüīqY±Łń>•i½£o- ؊ ėŌĄ ]i= žÄ "%b * “ 5“T }Ń@VŒ5ŻQ“Œ®ž•ņŠśė€÷k(¢óòśš58/ļ,Ž4īõĀķķ1ćCļ ŠšöƹņŲ£ō öˆ Øö ąöõ…PŌó‘IšU ėŲ[ęÜŅ!į––Ü!Ķ&Łž[ėÖv!ÆÕ ÕĖĻŌM¢ŌĆŲhŌ „ŌŠcÓ)œŅYņ»ŃŚv)Ń)mŃėŗŃ4ßÓXuÖŌ䓶Ö4CŁ$‰ŪĮ#œŻŌ=ߜ 4ąžĻhąņ¼ėß!ćŽÖCm݈ø”Ū|¢XŁ1ĮÖn›ōÓB}>ŃGé’΁(ŽĶūuĶǤmĶ0¬TĪō`ĻāCŠ’IäŠ!+\ŃżtąŃA'¬ŅdčÓėčœÕ#)²×@ŹšŁ@{ÜĖŗ—Ż®fNŽžŻł%°Ü59«Ś›JnŲ{%œÖī¶ÓÕčéÖT1³ŲóĆÜķJ/ą‹h0ä”Õ‹ē™”ķ騭Oė=ęė®žėšöéė¾püėę”ģBī„ŪŚšÅ›õÆcśž4ƒ]$¢Ņ<ķ ķE­%rE,Ą1²·$ Ą­Óźż* ¶Y §leE‰ćĪ’v;ųüvP$łÓ¦ĘōXvšĻO³ģÅéEr³ētVęˆŅh停äu'·ćĮ5­āī©į䀶ąīūēąs™į\Į ćēE"å= “笛˜źķH®ķ暎šŹFō6qJ÷»Eś‰żŌüg0ĪžĆ(yĘīŪ:žt6±’`jøž‚«ż`å‘üoYhūf[=śĪLHłßųÕRXłĻģś_q¢ż‘ÄGåwĀé­ ¼Ęi ƒP@Ż{ī*Ńa™ŗī<AÜ3ž¹Ł Ø>L !—¢²,ž,‡a[’׫ŠżéM ü_/ūZ~Šś»æūŠ®ņū Kż› ēžKo ԃI`Ä9v,õŅ’Æ=-«…p#ͧ9 C?ī ńØ+æ ×>[Õ<óŻUŚÄ%#ŗoW%ŗŠi&*o&Ų±%F®€$ķ;#aŗh!:P_¤Ļ”“Æ6p}Œ£åį«{S Nī jołùŃVłĆnZ§~FˆłŽżÉŲmĖJ8 ż`éD£ŖŖ¾¼ņ>ՂćēąqGåPȲ”ęŲ"Dzo‚Ś öNM7Ļė"ķ„:| 8ļōöqÅĒęµŅ’ rà Т;±©ž‡ūøŌGųB‰‡õŽAęóŪļŲó5«‚õ†æØųɗĖü=ˆWkVĶ3iĻ šÕ ڱ™¹Æ=˜(=Š„’SÓQÓÖ¾UAĶ0µ™Hizxrā ©',Ō¶r¶žŽ|Ā,”¶ģ§–w·Ÿˆ/źåqØ~ Ͳɦ«qŌWŽ.”~ÖĮģ•Ņ/×°ē¹:v-KUīO"EŖ';ŸĘ,ŌU1%V4½ X6ō;7æ„37 Ny6Į N5#’ų3£+“2Š%ž1±§«06­/ õb.Īā,4[*pÜĢ':B%øx’"L•#! ØbÅujĄr2(~pĆ*{xV•§ Nõ1ķ'> °W0&~Ņc^ŪRżK±Kū2ęś§įłś£"—üšÅ’5ŃÖÄĀ{š?oä?.d„(N£ĀńåØ÷ż "yś­é÷ŪńDõBŅåóŻ}ó†%'ōmnéõ_šØų“Ąü“ńį’E5ŒFrŌʃ¤ )Ÿ ­- Ü’?ĀŪk,ŠSČā>C®ē‘>Ā9#· ¢įĆ YÖ6 CŌ .ć ½‚ —ņ` ¾4Ł,5÷óašBwߒ0’žx¬=(©&A„ß)„*a„Mō%ziƒęō’¼ ‚"ż"Ø#3ČY%§ģŹ&1^³'ÜÓį'E,9'„~«%·fA#wĻ) ņ(æ‚tVį­īč¦ļWkQļDĪ#_Xö{>¦ŻÆāNgFāšW„¢š£8•é­T ±Ä„'Ż žV?’ųt·ō»4/ń931īĻ¢}ėķ4ļč57‚ęLFEä' M⻸ąjµßʀߠ"NąŃ:4āĪå,`²čźVģØé>šEdóū]ŗõ_6 ÷Źį*÷Š{ö ĄģóϽ ńcāÕķ8¢źI~©ēŠå€Ļāõīįƒīßa•‹ßwQūß؜,įUPćāYÅä,jzępNÉē®¶¦čK+éĻ‹éIzÓé(ż;źŅėĄźU Tė ¶Óėžø ģõŅÄė$ēĪź™ČéT€Ūę ćXēŹę­-ČźaO¶īJ‚@ņi¹ õ›x-÷/‰XųҊ„ųŃc$ų°šńö9;3õ2qó ctšƒ»‰ķdKiźŗn]ēņČä ć²ä^āÜWÓā­‰<ä ņAꫵtčŠŌjźTŌė©x†ģk[„ģĀ£ųė2r$ėCåAźO±méž§č„ēēÖ )ēČöqę²ÄåõH'å²äb|ägōäZ ę’žąēo¦]źĻ×LķR^jšKeró½«,öoxų„šUśRćūWÓPż•¤ĢžjKqxEB.5™É<iF?s) W/„ Śts (kq s¢¹ ?0ž ˆ1‡ čĘÕ unfNk>»„;=n."¢ŻKiŁĮō’[*wżp£+ūķ-YłšżFų$#ųR`ēų%GOś/Óėū ²Jż^³žT0žć˜żQ_…ü?ļRūļŃtś©„Lś{õś)üœTż 1׿ŹNż›ŗūł&oł]ńåö«öxō8ßDņ¬ˆ7š©*=īeģŌŲćźI,ųéˆTŹéiUXźrp뤆¶ģƒ¤¾ķ,(īV½ķw,†ģlīĢźpÖéŚē ¢ēYD›č‰Å®źųŠķ–ģŌš°¾*ōļG÷ƒ3öł’VühŃÄż“{ ’ö%`2Łé2_śuS“ÖŗŻ#"^ʱ–cČ˜ßpa^† †UČ Yń +8Åé¤K¹­…©nc§;eŒyE źøÖ@ē’’Į³ŚÅæ ˆvG–mŹb* X\/^RˆźR•@čĢSmą %Ē!bU®"†ÖŽ"Hķ©"–_"^|@"{Fq"œå"Łč\#›v#Š“Č"ū“ !®ū;Z…Ł2d°$³ß$9x VĀ`žäÕśØ }v32Ėąž,šYżĪķ|ūš;łƒŲ”ö”·Ųóe!ńĘųÉ$ķ„BxģČæšģ:½˜īÓPńpĢōŒE˜ųˆT)üąbōžĆŅÉ£õq_’ź #ż¢ŒśŽ%6ųF͉ö¬ą¼õ)/ęõ“ź÷į\Błp’cükNBN[†™5Å‘µœ ŗĻ^ NNK+'† Z†.µWyłQ‹7£ßś‡¦v³{!¢ ¤’޲É%-lŗ„•žlÅ®üŗ¼-ūŅŹSś¼¹bśZc}ū*†“żŻÕd`1™rFßį9 H[ē nӍHśĶ8}&\缉é²Rhķ ˜iĘ ¬ć!ݘ%"æ‰g!< ‘uōœ«>Ÿ½ćŁĘ»¹ ī¾ tXŌ$Č ©&’ rżĘR”üc0œüŠń1żjrž–ÅĻž©u’ “[žŻ•üLĀ£ł&Õ„õ”Éźšī ēė€ēD°ćŠŌß6™Ż7+ÜßYŪ–ÉŪ.ƒŪ¦ļyۚ*ÜŅ·ŻfBgŽŻbącāÉ_Aåzū¤čńWģōyš‡Ķó•įmö¬Ō¢ųa¦čłļʜƳœfįön+čóŽÆmšbXĮģKé!é;iæåŻĄÄāKq`ą¦ ĆŽŠeŽtXPŽeXßqŲąńjāӊ¶ćģŽä%¼ōä< åc å+æ!åļk収ńå‡$¤ę‰FaēTröē7x,č‘,Łēš&šę^nåņĢųćĮ¼žā9¾śį¶Huāķ‚AäöIē®ł4ė0Ņ~ļ'qč¢"ĶMN ŸŒ‘ ,•¢_“oŅL#æ1 „¦xŚ2Š’[[3’š‹<’SōX’i;’2שžƔżdü O‰śäŹ,ł“ŗEų&ń÷ś“.ų×1īųyõś¶«Ÿū]ghż„a’QŌn}¤h“ŲbEQ+ńŲ,ōĻeÖ±WŸ³Ż ż“4^Ųżp¼Šūœt3ł­÷³¼Oõ#Ępōī±ōåø3öÅįų6Špüærę”kכė0¢” kLe ģ9 žH ķ¦Ź …ō÷ ]Éó šÖ ¾ŗ׍ÅE'ōyćqč#ÕqģTME łp+ ˜† š!Ó¶ęČöʤXI—³æÉsX2ƒCĜōS§„°Ķōg_‚ŹÕÕŻ¦Ōs #Õ>$QAŌ'*ÅČ*†“×,ū-{f.Ī„i.”›I.Ōw".YUŻ- E-–q+,å%ƒ*dÉ_( 6ć%`t/#līh Š‚ĮÆ/|ų ąułŒ4ĶTēĶhĻĖ\|”h‘ĢNÕ[‘:×[ęd©0Šo–ło|ü 5ų ±šN śŽU -ž ģRkõHõ(Vńų ~ŠürP}€P1¦Ėӄżö³ ”Žó58TĀQ’bbžF`ü+kś¢“cų릪ö*q²õOėŻõī`÷H (ślęężhZ,вާ J-FÕį:W’q½%š›įĻ „4Ūž63¦ŲĻ©2熒2Ń^旼žęēå‚쾄ʊŅ0Ń*&šl›¢^ÆŚĶ+!݈PhĆ|p޹įB¢mÓVŠpĮtʧŽ{śĄKT»S%Č"/”3&žx)ä)+TKÓ+Īj…+÷_Q*5Œ„(:ńw&ėŹ‡$kw#0§("Ÿ^ó!!R6"7$—"Ō¬"n"O°Ć ~Y„Sė”ŠÄpōX¹%Ė©q<°Ē /rŌ—- øŪ Ń]żŒQœł8śŠõøÜ/ń§¬ģT>čĖN=ä} įĻęßłōpŽß°nßkįķįł«å›ķ2źęžīīń÷8óņ­vöńā0ų=1ų3a•ö ŃĖóĢlš¶FķÅ?’éŖ!Žē‡cÖåAńäĒ6ģäĮ‹½å=;ēŽŸésr ėÜĶæģ‘<ī³ļéØćļ„ŠššóŠOń„pśńhN~ņžĒµņŽ‹„ņęĢāńņ<Žš ’ļ„Žī藓ģv ė•9„éū1čėüęƒnꎹĆęåp=čœ¶ėź¶"£īŅĒó–S„÷)wü˜aō5~Ź;Ū”SyAÖ łšą Cē“ !  <š: ą3 H»„ 5a G©„CgŪ%®šĘ’Œ3żŪ>æłˆgxöW óĶAcńeJŅļ;Qėīv}«īVēļ”Ėš¾’›ń#ˆFó™9±ō¢Pkõ­õĆåró ć€šß7uģ§\¼ēŻ å₵Ž,"ųŚf@yŲŻ‚źÖ‹=֛š†ÕWI)ÕQ”ĘŌ'™AŌp‹ÓV,«Ņ®²ĘŃüDѼߊ0JѶXiҾŠ*ŌĄ‰eÖłkėŲo§ŒŪb¬Žä@ą“¦Ōį@£āc āŒ’Ūįš@ną3žpŽ{1łŪ?&Ł')ÖiSJÓż¹ŽŠéƒ0ĻGNeĪXÕnĪUhĻüņņĻõŠŃПčŠŃi‰(ŅÅŅŅgĄ¹Ók¬ÕŖ÷ÆÖź²Ųr׌XŪÜYppŽKQßn}Rß8sŽLäÜš Ū.ģYŁ=&fŲļŲØŚź»ŽÜ»ÓßöDćNg_ę$˜Īčsżvźx…rė§łė#żNģE·ģ”|ķlŻźīąFńéó·ō~d1ł©Efžø™ŠīeĖĻ6· ±–y8Ń•ĄīņĆŽ ÓS7 ˜/”^e  Č=¾€Ļ+)b*’žJeü€6Õų^Éōžvŗš–éķŌFźæ¼Lč>pē =ręī ęÆ–¦å›į垁…äķL ä čćŻ8Nä²$Kå·ŌęźBŠč” %ė8¼ķň†š”…wó“Ūzöv#kłrü¬-DžlJ×’b×£ȓŌ@‘1Z˜M’']Lž*zCżß®<üĻHūqśˆGLśHÉś Ŗ6ü.+ žaį/ŌØæ† ź1 k²¶E÷]„NŻėF†åŠnÖĄ —łT ½Ųøp” ;f¶9铎¬ž°8Įüōn5ū_Hś”łłž_žłƒPś‚Rū]0ż’Ÿżž /ÅDź`ØŖæ<ė·Ö¾ŽKA;ģ†å nA¾ ø¶ķ/—ƒFŠ]^J÷rżŽ3#ū²>%C&É-&A/7%z‡²#,å!"ōļ…LĖĀ*Z%“ˆ§Ü\!ó—n”“ļ эž=)ÆŌc€ųēS­č Ś)Æu,éü‡æ½1Ö{P‚CJ0¤2[š>]ųEŠEĪe~>įō{¾Ć #".M£Fz°Ā¾XŹžl d&æø¢%–Ė`™™żČęs„@R}zŻrĮžä]bÅžś;3ü6Jł€d!÷,cœõ…Yõ•;‡ö(§ łÆ“…ü8«ŁˆĘņ;J] ¼ĻĒ yjtHv&Éņ”Öxšę\/īB˜ Zaø–lR]sĪ“…)Ńāø°Hj‚l{Ąģq=¢ƛxš|všĘŗŃ¹EW³4ŻmÄhąƒIˆēŁć9Ÿp£~ČC Teå$;õƒ)\/©-Ŗ–÷0iÉ=3ĖIw49׿4|F4æD3Ł ż1Ģ ­0Č;/“Ž~.’Ó•-Īš—,¤³X+ōāĀ)W å'į¤é%wČ’#9E"übĄ *Wiąń3°¦(“ēŚē˜­ö+ų@@‹ ™ˆłåž` x[ š '’Źžd GüĖįŪśE[£ś°iūÆ×gżV¶Ī’[śK g^T>7ėˆš)/ _®,sž1ĆūX&ź÷2ņtõŪņįó8Wóv=ģóĖ £õEÅ]ųV’ŁūŽ„ø’¶µ“ų>Ve# bŪ­ VŸĪ‹›“ ,8:ŻćgīŚłf³š_č› Å¦öēj(6~ :ė $ź§ ¹č¤ ū`ß ČéGē?čŹtę†ņĒä˜N±ć!N¤ćöīäż¾Ÿē:d}ėÅ|š\;Öō%į=łŻCļüFßĀ’Œ’½k,’Ŗŗ‘ć#vņƒœG,y•i®Źk ®.  ęnß»²¤õdjł>*ąķ”n°¾ŁĒQń3 Ø!ŌÅ"cW®ųĶOY<å0;2­fŌ’,̬żX ßśąN»÷ü.”ōŒŹ¦ńŻ“ ļŠp³ģÆ(|ź¹ė6čk«Āåü|ćJDpąĒjłŻbČ’ŪķČøŚ AڰōŸŚæ‘ĻŪQ,ĀŻšƒdąc.ć·NHēØ 1ėŠŌļpē“ņ °tõŹ`€÷½Ÿ ųIpÖųś#4ų DŁöŌ ķōę<”ņŪIéļ24ķ_€źüG"ē[Y³ä,ć*„MāĄ5”ā$Gāćż“ŹåŠÓūēj_źbGÄėÕŚģČvIķu)ķńA¦ģ¤'šėā$ė›Lź€céš:hčaē¦u\ęĶ(påö±½äŹsä9iĀäpŅåōg®ēŹ>źå`Mķ“ƒ’šĄŃÄóŽņ¦ö„öłłūUŠ‹üń¹ÜżV—$’©¾†–Ó<ĪĀą8ć2^§ Æ‰ *U‚ ¢…ß ß1§ • TvN Tōµ ļ[ B& •^Ų™Ų*¶½ńV+7ņöHē„4ž|9µū˜<Åł³Źoų iŻ÷4ų'Æńų¢(ś#aū^KMü;¼ü½,ŸüŹC ü‚Ć=ūo‡śgA;ś[ʁśō=ū2’üŚ?|üō"üKåś5 ōųMųØöĀ?\ō‡@ņ÷w_šā²īŒ>ķ2+!ģŃW…ėpX‰ė‚œ,ģ-÷Eķ¶%‡ī›ļ!!żļ§ł›ļ̲gīgIœģro©ź)TéÕC[čmu¾čh—Bź—Š®ģ=ė©ļƒ±×ņ¬dėõ*kÆųuzūN`öüŽ“žÄjõ’š@‡æp" q¶é'’»•†ėā°DSėˆ&xó{ćG vā[ hŸw ‹ˆXcĀ™…,m”ąm$lŠįĪń ¹łq ąE‹Ÿ§ÄŗŪčŲ­Žf@ىY{æ¤ ‡.TŠóź‰ėõ×'(8gł›Č 7ć|!Łæ!&¦Ģ!6‹Ō!ę­ó!ˆ&"ĆC"Iń"Ž\*!opµśĪKDm–Ī˜FÄŖŽš =ˆŸ ĻWŚHņ­ś„yėß ēI©ģ¤–½’4ž{Ź;üC׳@·#÷‰ōWō×¾ń‘©ļÕ8iīV‰8īb2ļ¦ńGń“ =ōšĮ¬÷Ę|ū”Ā÷żŻ|Ś’¬”x‡WĶ’„1žrśćū¦q­łŃiī÷œFóöåöĢuŲ÷yuĪł1!“üOYȲoŌ֔‚g „äŸHVÉāå]N«žWżµoTG‰E™ÄØŽ¢z9Ś ”[ö Ó”#&b·}ÆĻϬäż'ļü[Ӆś…N¦łER™łn—‚śX`üš’üš/(ˆ^eī‚,& ƒG)x±õłśßļõØfx͹™žųė ©!Ć§"ņ|É"ó®ē!h$šż0ę„‹ē*­2EZ%ŗ³, ×|«ėĖäėU÷žÜIčüVj°ūŠĶ>ū½Ūpūi9 ü‘¶ü#¬ż’¢Īüš«—ū%Mł»röõK·Źńx *ķ§’‹čmdä$}įĀT’Ža=Ż#W,ÜAĻšŪē.ܟrĶÜč•¶Ż;ÜŽjp=ąøFéįŖdōć`qlęŸōJéäo줧ļ#Õ“ņ¦`õ¦Źv÷ĘųŠ#łŖØyųõ‹ÓöEaō1ińb 4īV\ė„ęüēWGNåž?ćP‰vįæŠąnß[ą<īŌą¬ŲĄį] Öā'ŪĢć,?vä‰]Ē䊜Õä·ūŹäé(Ņ䩘 å͉å¹Bę+Hēķäóēƒ)čmżÄčGx菱®ēMŗ•ę ę|åŻäŹä ćä„ę]:HčKżrė}ā+ļ{7ó€+–öS#¦łŒüžžĆd’’Ņ-ŌŌkßeōj;ؐŹ„ļ6 ¢“ppĮ)4ŽŽ;Yš§ūČ›ž Ņm ¹‡CMŲó½mŹd·9y›Ē æ~ń l~m Ā'š?NM•>‡ SĒ3 ETā)Ž€g\0™Ź RµŲ’ec’”bž…|\ż‹÷ū“°™ś~}łW`ŹųX”ų޲Ūųyw–łwµśŁa'ü,Łż.®²’‡™‘üHł%©Ž‹•Śš–‘›Šøuł`åq„õѦ’Z…żC‹\ūö?Iłžgu÷«‰öæd‚õfNąõjR÷JŗĖłÉ@żNśŃėšyēÕIÉ ® ‘`­ y Ž šp ©%œ ”iŽ Ūk c:T ć’g«ÕÅŁV„³żÆfJN X` fEą 7ķŗ Œ©ĖQšŽ`ŗov+ ō¦eźg;\ŗÄäĖH3d`q¤$†Pb„ŽųŒI)„÷Į a{$Ö«ś'uŠå*Ł7ü,Åö-.²·.łł.„KB.Yā-üĢj- #ø,q%ž+‰Ś*Y]č'Ykf%’sŸ"a¼;„ļōļuG4jį§hÉZ8ćö€Šy˜õž…ł–Łįx¬éŌPkG ĄŸ KŒ ‰ņ ·“™ ‚ņ Ŗ”ZDŸ" š¼+ń™*oŠ\Č Dõ5Č‚žŅd‘Č·•ä’qŁ’»h)žåż‘ĹūwbDśuÕķųĪ% ųż1ś÷ėńų€įūæLžż¤LšūĄvח< 82¦ 7_‚.¶¼=V+G›eZ©.CaOÅnÓŻcüĻM+ąŁ`7.””·”ėõOÜķ ØnnŠŸŗė„hæPićI¢֏˜čā‰\1PĮXw[Āo[Œą©DŠ9·XÊšq27ś!B{$“Z&`'Až'ĀŽ&¢Ü²%V·G$ąĢź"Ł@į!?iX!õW!3޶!€ *" GR"( Ś!” ³pš%Ÿ¬5QĶ)¾żā ‚ 2€ ®²źz‹į*ŚįJWČżń«vś”—Śöx}ōņiµŻīŚĖź»dē+rīćņ4Ōį§įžą-?“įüØ‹ć“·³ęNŖź wėī[“įņŸ÷ūõž¼Å÷’’÷ß®öml ōAŲÓšóĢPķńv źMēßīOå[v0ägLżćŸ­ä(ŌęüĪč¹]źN«ģ”ūĘķĘUļÄ)0šķ³ń1½ģńŻ­ņžHóJœó²"ŠóŽ—’ņš%’ń†bšfJśī{9ķƒHzėєŚéV5xčż:{ēģēĢ‹ē1fé€ö…ėŗŖųī‚Ōóék÷‚°ū®B•’”Śš>?±‡jÖ¦l ­J‰ _ŗE ±Ł¶ LÄä ™8Č žÅO ƒģi śĀ "<ŅYże×Y—7b’čķ4ü‘ŽłOö€^gó¦‚Xń“čļ‘P#ļK ļę„”ļÖ»¼škņŃibóMo&ōض ōŽŌņ±Srš$Cķ.źčה‹äWöfąMąÜ²ü,Ś(LŲć×EEÖH“©Õ/ĀÕļįlŌµ3”ӐȸŅUŃѦ…Ń¾ÓŠŖl'Ń­0ŅõźÓ° 9Ö„īŲ¤×Ū ·Ž¶JįāL椬…ä°Ż×ä—įCä 4ąāųĪą 8Ž)ØIŪw§;ŲwóPÕńŠŅłųŠč ėĻ€[¢Ļ‚ČōĻ™£ŠB/qѰ&<ŅjCÓžA×Ó0ŒŽŌS•0Ön Ō×I”øŁ›¹Ū|Z Ż°G1ßĖ!2ąÄ²ząP@ąĶ”āŽ4cŻoŒåŪłfŲŚVšŚĘ^ۃi ŻĢ”ßG~āPwNåCæēLĄ¦éß±ėw?žėéW»ģ Mq틤WīŚpŖļ—±¤ń¾XrōUįų5сüJcFžī¹ˆń œEŲ ĮżXgA‡7 «k. MĒ mXl€~ź‚¢]ńtžoüūzĪrų„„ČōØ·ńU9Ēķœ]"ėæpNé×AčW”Ķēļ"®ēr ē4xēab-ēēćŚęĒ’®ę[ ŌęĮōeē-Gkč`gŻéi°ėHŒŲķŠgKšŪvüņcÖõWt³ųtbū’f®ż‘Mn’”łŚņś÷Ī‹ Ģ’ąČéžż™žč5&ż­œiüÕcéūŪyŅūXXü6Z¢żD:¾’ģˆ’BŅßó7J õ+k `*åZtŹT÷©ŠuŁß’' H+¶ :šv†„Ö/Wš ž3” üżżgś+2ł”<„ųüsųš)łŚ0śJŃūfīøż µ’ē–žē\dķ½Ši<ś;€Ė ā„ °%¬yÅؚ5U¹ŚKś‚„źXæ"Žq²$“ż“%"c%†ĄN$ ü”"#§ )،^\ŃʵZc v2’C³qē 0ƒ ¹@ö SūóŠ(Yn=”’vĀ’2ķ…bž“MXÉ#oŽ+›]¤I­»„®Å“ļ'џ6œ`4A“ė¶a]vP`=S0²©ž;`×Ī÷ \ū'(ĢTÅ“·“£S…¦ż—¶ōŁ(śšō"˜¢¹īž–~ćü·ś± æų*.a÷uŹ÷öF¶÷•p˜ł1_dü9’½’ų©Aųʘ‚gƒ ØŚ żĆ ø}ÆŁcR€›Ż’„ĮJµf-> Ą:_ŃI:½ęåį?±³cg›™“•𠾋.$Ņæö蛸ÆeåžŖ‹©H*ķTķ\Ģ„›‡k·Ā÷z¾?e‹QJ 7Œ1ļla¬“T"Ķzq&¼R*‡/›-ō> 0‘tˆ1éŹ2ØČć1 1ś’š/j¾°.°Į‰-4ו,ĘŠ+2m+°ZO*H)0 ü'0?y&Ą¦Ū$ź=#ʰ!Cą; ųŒį9»ž5qf:H ¦óhŲ_•“EÉŽtÕ„° ”°Žé»‰('0Hż¬L]ū…Žś¾¹Žś6Y)üsÉ#žu+eQtnŚŽ59«Ėa›eZ+“ž’ādūōEZų’Žõš=ō§w¦ó.0ōwmŲõƒ†€ųp™źūjXĄ’Ćń¢iĘ@žg ¦  SH(`TąM”:—Q5Å9ĆĮßÕ®°j[“MdurZA®Ē%«5CŸ®„ !ŅF Ʊ ¦C –‘B °{ŗ ( ”7Ų~%y²OQĒw4,>ž°6ąēohÉ«<5ęĒń&Œ!Š|#įÕ}%0§_'œ³ę(*uŚ)>*aCu)Wš(O$Ķ%CRõ"éÕ¶N\Ēŗ0Ö qK‹@ü¬9Q·4¢X«~„ł’Ąīž} ³ēĪfīŠ“é“HÉ œ¾¦YnĀ?yž41ł~BōZćļ„Ž'ģ6ŽéCLtęČÓc䔋Óā[ÄįŲ7į†j0į›·į=Ō℆ä‘k¼ęśśQéńfģ“»īŅńŪńóĘ\Wōa€łō‘©Žō–0ō§ņ>ēŲš‡Öīl¼ČģŹź†»ėčƾ>ēöėŪåJéāä/,p䀎ä'Y,åÅę|Š ēč¾żžč‹dóčķŽé%b éß9鹦tép¤Ōéż2Lź×Q¾ź?Šė 7łź(e„ź\‘§é…čą,`ēø”ęf`ƒęExēĶ“é§šŗģń– š_ĀÕōĶ5ęų}‰tü;ĶI’™‰VŽN©žc}{¶EöŻŚN"ØüĖH]^ĄņŠ é°J TŅ(§Y?gąćā/§ ƒÅ« <Šāö¬E”/ÜoIfą›[°µ·Š;³čžŒ+ū2Ōė÷a—šō†$~ńs½īF![ģ°Č;źŽE4čöäę»+äć&j™įÆ„iߗƐŻRāFÜ1Š“ŪßDīŪ‰÷ÜčįĘŽZHįźõ_äŃlåē©Ó£ėRŲWļ(€¶ņ¬zõčŽn÷y£zųĘw›ųoBć÷VCrönqō ņN]]ļQ–Œģ ;¹é,ēvŽ×äK¾Eć“ʎāQœĘā%PÜć=œ›åHŽ·ēšŪéž±¹ėXķĮžėķ9³*ī póķV)hķž ¤ģVń“ėxŸź*Īi鋂!č¢}ŽęQĮå!ńä-ō›ä`*ķäœNęKEäēž_wź€>ˆķŒŒŃšLH ōÄQųöT/qł¬jū¬üõüHó8ž‹K`’š]‘ƒ6įé@T(¹ćBådéłˆ —Ø ÓlX F± 6”b X7ü šö‰ )“% ŻļĒ ,ŗJ ‰Ų|IŽ:]}£i[ŠÉūóŠžĘ&6ü,ā+ś=–šųw÷Ø÷“>i÷³<Ī÷~<Ŗų)ŗłĘ~·śčÕhūL­ūĶ$‚ūx|ūxśūlśéšś^śjś‰åśĀń)ūįäśØīłqEWųąæ_ö’Sōm“lņ¢"Ęš-/eļ½+Mī?—ŒķˆÓ:ķ,×iķéīÜļ6ź9š°ń—×qńyńśĮŅļyī™ģ>kGź?;éåõ-é?]3źÆ'ģŖĆībš²ńē¹­ō’}÷ßZś|ė5üžµž’Ģ’ŲĄNA¦&ˆĆi–É®š·xgŪŽŒu˧Ź5 ”G Ļ ŖäœO+Čf£&°öU ·²1e c½µ »6½’ŸĪžŽ½ķ7•ē†5ÜC̶$„éĻ: ō„CķĆb&Œ:_»ŚTŁĪå1¾ ”eÅ ·!MŹ?!ł1G!ę8! Ē’ ė^v åj°œµ|J^ķBużŲ3oVE,Öm ȧžāw½r*a†ģjüp«mHģæķł1D«·ēž.4©üĘśM^0÷ŻjōŸ ņ¾ ]šŽéØļę,šīģ’ń,ōĢ ÷šm,śõżę’—Ķq’č’œõĮžŗłüZLū3¶\łsTų¹Ü$ųfwéųčŲ¦śŅzJż£Ė§!xÓSb}ń ³(ĆłĄ :U68_”“‰łoZķ^½b¾Ŗ] Śš ķÆ< åh‚Ż›ˆŽóaƒ’UVżåś{ūęū ś‘Ü3ł¦šł‡EįłŠ.ūūä ž=ūF!‰µķT‰ åŪTŲüOFéŪz¤S«4šÓœźFŌT•Ą µK6"Öt#Wņ"€yč!įŲĖźā‡SUmÄr4é“ ØK +ćlÖķžŻ‰ü„ ņś} śČļłłƒßRśVa䶟{Wū&ŪQūī…ś_WĀųNŠżõ&‡\ņ„{,ī †×éh¢Ģå7¦fāYŚß{E1Ž|÷WŻ&c+݌‡Żp‘IŽŚXUßw”ąiœūį]Ģć‡œ^åŗDvēŹ Śé[Śzģ­$7ļl—įńģ?Iō—6>ö@<“÷œŒ!ų<Ņ÷½’§ö›uĀōŠŹXņ,ļ§ļźēģHˆ@źøøÓē¦Žŗå“9äCøåād/Nā?’EóHż Ū\ū››łL&ųŁ'÷„ĻöÖF÷ĆɤųįŲāś}ŁŲżøAK·ĆėŽOD¼ ķe° ķ|Ī ŁĄ"¤,Ó ‘ –ą Xž ­Ųö Ģõ !>|¹1¤łXēĪ®”³ŒØ¼’Ž8’·Š‡ž:+ßż/! żJęüqPū99śżśöłŽS}śŸōėū(Ŗ6ž§«)ąÄyŗH×Ģü }Ų² Ī8Ūe½j“kÓ“ņfn|©ó–ˆīäl%ŽTŸ7LDˆāy‘L…`1~Ī,­ šūńœĻĒ"ūh€c I 3žRh€ē„Š'1­"Öqų䏊wĆ¢ÉlqÓ Ž.öČ£/öä e¦ą!Rž# …„#Į–#s#źK""…!BŃņ [6¹ ĀPŽ —®C!‹PŖ!Ų¶Į!ź…>!÷ŌšqĢŠshünX©å~šr…ųļ ‰ø¦ Ÿaž²HŹÉé ęEžćėQū×ßųĒ?£ōŌū÷šxAFķZQĪéŲ5Żęa¾Ąä$¬¹ć8…īćO©aåŸWģē‡?됊ėī8”mņ āBõ&żösW÷Göš@’ó6s䚏ĮqķŅź¹Ä>ē‘,媌Ōćjķ}ć.™äīdåw>GēÆ4m鞐ėXł{ķēļĶĶmššsŠńÄʁņ³lXó’ōCL`ōČXō)bÓó ŚĻņ÷U_ń ¤ļ"Éķ1£łėA½\źC¼é CčJSč\›čbźž³Zģž}ļæ°6ó‡;÷²y<ūͤ÷ž»Ė@ĖF^03”„Ü5å QÕ dāL õv€ ¾€s € R½x <t \Ą 'š5vpöłQēx[žś7ū ų>E<õ,:Ģņ·Dīš‰–øļ…ź4ļųķ\ļżšWQń½Ę-ņÆęņaĪņņmņ°œ:š“Joķ’ZļéfÜęˆÄ=āų›ÉŽĢ4ńŪÅ,ĘŁ>Ø4Ų÷V׆ 0ÖcāeՄF˜Ōf#ŗÓoæĻŅDńшHGŃ¢ĆŃ WŃŌĄ\ŅōvŌ¤ŒuÖÄKŁćŖbÜ`|ßbŠOāŔäŃdęx—ę+×'ęxÕäŌ“Ēā&!0ąśEŻ.@ŚjÉ\×J‰ÖŌ5ŠßŅČ&˜ŃCŅŃĀź ŃĆ‚Ń0H:ŅoµÓz÷Ó3ōŌ&֚o×ČQŁj|ĆŚŚ›ÜŽČcŽNƒģ߬įŠzŒįĮ„lį‹9²ąXq‰ßĪ:Ž„…Ż2ĖÜ÷ĀÜY’ŅŻ¤£ßu|õį4µwäÕNßęo4łčA±źśO ģ&C%ķœ[īFāļØFIš«÷źńĪS,ō*÷ÜdÜśtb’[f·blĄ× €…A |Ā3ŚW/ üA ½&ü ĻÉz&™į¾-K—ģĶ’)ń~żuĻrūeu¾ł_xųE ø÷ƒ“÷~ų’X+ł±ŸĒś@»½ü_ ąžśŌČņ kžW¢Óćy®ü ² Ł ż ž į™ÉäŌO2¹į‚$ ‹½("aŒ³#¼Si$aĖ#$”Ż#V!.żR“g0£Ķ’ņ×µ©:ƒé|—}ŠĆM ¾ķ Öč! äÕ¤ļøę’Å·ģž $¶ž& ’źnę’3æżc >„8©zvĖž”o“ńpĖN!Ŗ-ä%©oA€2ÜY.Fēļdž!!Ÿ ’ć RŠé Hw¼ Ö;X !„³žĶĻāO¾‘§›Øæ‚Ö$H‘AĄ›!肮~/’j‰Ÿż(°īūLŠUśłD ł_ԘųĆźóųā?ś%é\üž;’˜“œō4¶ ó§ß ”« ŽŅŪ Õ¬ œC)nmF؈§†ųbtšmžœu1ONƧųłļ6ÆjO7¼Ø>Ź‘ a^ Ė«° J×ŖNŹģęsāQ5ĒÓØ‚—ł+ŪćM‚y¾vČVÖ–˜°{ęZž~#÷˜ 'u¼4*Ü“,ń`.ņn3/•A@/…÷±.łTĮ-a׫,€§§+CF×*ŠA*šńŃ)ŌHb)~Ź(žūļ' xĶ&fpp%÷żļ#CŠc"oß xnpźč”ڰŸ–įw. ł{xś\a»k ’÷Žō ŅN )›č¢k.²Kž-üĆ·śÕ„€śn.Gū!ĒŠü0żĀž<Æłć#.Įź™N ĖnÄožĶ€¢ūųŚųƒÓ…öuą÷ōµ…eō«¶ęōHzxöF żųu©<ü¢ė’ił²ūūFip Īv l4<ŅÜpĒóßžó0蚊OØX¬ZÉEÉŠ;ńöĶIJ³Å ‰§` 8Ć “(é ó N ‚Ķ€Ļ8śĘ»V_z¦ųUćĮ8 ¤ļł9ąćÓÜöŁ‚Õń!Ž$UĢ&Hėõ'ā¦h)ćéJ*‚4{*Ŗ›ē)pDŽ(¦h|&­²Ī#œ² 3Ņ`’Ń^f;ą†X©|YŌr'ėŅqķŪ­C¬ÕŽø}·)ĀŠ1u@u ĀŹŗJ”˜Až¦äł? ōc5‡ļcڤėśŌuč«w÷åČ' ä··äāhČ8⛐āˆąXāĘ÷ ć(ä…ī”åH«qēрƒé*¹ėßķ탄üļY®Äńsę)ó®\ōƒrōå«>ōƒbƒóķYņMŽāšBS=ļ4‚ķüÄėĮź„ųščó‘fēašę~bGę¾…hęšqąęń)ē‰ģč'†‹č:Ēč×sŲč'Ųč ćč›Ėéō„hé 8čétD{ź•ė‡ó\ėżølė‘ą&ė‘T™źĖīé#©jéü(\闫 ź8ß ėM+īJTńCńōŁ\”ų±våūŪ‘¤ž ͱ¤“ müĀҊiŗ÷M3éUo’ĒÓw¹Žųš”D %Ē  ¢Ł¤ ƒńœ°F³Ź˜] _Š kÓ—ą;+WVZ/¹I-čmżŚ0U†ežį]3ūFaų÷צō„ń¦&½īŗ^ģP–Vź.č' ÆęŖ$Īä°6Ūā­öóą/Iß ŽvwŻź%™Żµ6Ž{)ą6Ų~ā¤ģb哨¬čĢė'ģ[^–ļķX“ņ%@Bõj÷č=’÷Œ ųdM÷­ŁõTęÜóīԁńŽ4šīT¦Jģ¢Å²é/rOē#OåY9āć1}1ćruQćń;䮏åqćĀē¬ÄŻéų[Ōė³mķY݅ļVq³īƈõķÜņģC:·ėPŹTźJ¬įč£F}ē‚Mę {å%r0åȎåĢŠ«ę}”‡čš ė˜ī9'.ń\NQō՜0÷ꈄłÆæ”ūħ/żąĶlžM‡’u‹ąT©ĻŹäU÷>)x±ŸF.`“v®ß ļÄÓ ŁEe ‹” t «V" 7¶ Ŗ3 §'Š ©±œzbR•l£t€œ“?YØPüž*ųŖü ЌśĻƒĖųT.Ž÷E¤ļö³©óö)]÷īfų_rełhå?śąæČśI ģśŽ”“śŲLIś ąła§łū®łŪł€oół6ķµłj„ųų3ßŗ÷ k$ö»ŚpōDf×ņĢĶzńęįhšL„ļÄ»4kļ#šŒ!ļš’ ŌńDA|ņ:§ņ4)ņQØüš¦FļXUķ.Žė• Uźž?ōé~5Šź©9ģ©8īéĢŪšFcÆóž‚~öĒŻ$ł‰ÓŽūD̶ż‡ ’ŚOLcĆėŽōæéŚix¼åJĻO$ƒź#6Żœ3 ¾fŁ T  »¬M9 ¤aīq_Ȑ¤ļŠD”/äŸ †žL ©ēÜ廁. FĢa¤Éčļ\šøÅˆüśĪ*ā MK E¶óIvŪ݉XØ8ĆŁZo3w ¬ ęƒ;  * ō~į›paŠž™%oģéÉüž‘ėżk; ˆ .÷ˆ¤ w žóašĪRŚ; jy³ĻpmˆŪģ`<³+’Ö\‘ü6ĄłÆ[źö5a^ōdtkņ^ATń—ÅAńv:ņfÉō‡K„ö«;tłŪÉüßĀ;ž×Š€’§¶É’H'’}Ūż«CHü$fÖś9_ßłō·”ły‚?śĢžĄū_Tž6Į‘‡Q0™ķr ­>Wæ–+ )’ĢFIž"4āt\Õj~˜÷“­2Gä Bd ÖŌŗ¬= Ó'uĘ’/łóü_>-ū.Ōł£łŁpźų§Č™ł”‹ ū?VpżŪbYiĆ%®[ūßż ›‰°ˆč’•Ęļū‰ŽØt&īL1źģ ł=$"諯"į=k"ł¦?!ZC'Łą.Ńt(Q³†«ß× `zb-8b•;’.Xü«÷qśåŽMł§óŚųt·õųK…bł’…Ółuółóƒtłżƒųx(ąõ²xĖņ™AļŽ2ė_mēā )ä®V£į·õß_Xß˽ļŽGŽVß7ƒ&ąQ€<į‡b|āMÕć9DåY Ņę後čJć}ź>‹¢ģfčīHb.ń Nó'õULsö»s-÷Šn4÷Ć3„öpX/õP=[óČ)6ń.tģī•×”ģ? qź"ŁočU®³ęŁ5Rå§Į\äKžŲć*¹ćm6ąć'&&ä<Ófä+Tä#x™äf}äi¶äŹTå“}å?ękęƒū…ēŗĄč[šéEüäź£Uuėćø‹ė»/ė„Šź!ąéŌG…éYćĒé ŪźŅ!Éģ0YqļtӑņÕ Śõ;’ųZŹū†žOÆō’ o_’·ŸˆŲ·tÆM³&~7zZ ŠWĒåWzY”ī”īŒ¦Ép'T$E…Éz‘Ž”ßéć)'®µā %į1 īŗ÷ Ė,ś KÄż ݶ^“ś.9åō@Īč”%po”/ż?ˆ>Öo†;m~W’Œj+ž/łŃü9vūˆ@Eśõeł–åģųŠęųżRłĢl&ś VūÓÉĢüŻdmžžģ6ŠėX«ČGPb™dę}*ę²˜‚Œ4äž¾o5żžœūó÷6ś¶C!łFwų]×WųøĢßų•N!śbńü@=²žzõ³ šŚꤣšj QēX ²:Š ,cŅ|Ś 6A ’ģd ŌØo ō‚ ƶ  ދ⬾×»aD Į@ļ —gŅ ćQā # ¶ą6m¼HĪ-EńŚYY©ŅĄΈ8E½ī}’ ­®²ńŽäµF–A8©īņ ż;$śéI'Ąā)ȖÕ+ä=-B™-Ł–-Æ6-sžœ,t|Ś+Žä*YY£)ƒž'\_ė%Ħt#A„³ ŽFĶ(Šķ/FŽ8ĒņT¹3C%Ć쟦KB©`€½ķ³­ĪĄŖ%[Œ Įßü m <Ę: #KŸ oZ õFOf‘Y£‡­„0s(Utƒqąr“/,t{¤%ü§ŹśvŒŒĄEŁ’Ödh’õ{’?Ėž50Vž ±żŽNķü‡9ü«©Õū˜žü]‡äü¦[‰žSōŅW7Š8lP7 ü¶ ĪBĒ pŽWŪŚj—Ÿż[ė_$Į,¢ÆŠÄĄd„€ ęņƒnm™¢IL_~ŹCłm«}5åŹ 4ØéVéŖr 1–= n­[˜[õ0MB®}¬Ūń߄{­—Ųa+%PV JŁGVåć©&)Vǃ“‚ƤŻx! +/= ćČ Ų2äIØĄž£ŹL³ Ą9^ e” ō±‘ āņƒįœ旇½ĶĖ[ƙås*õ™³7Ņ^ īĆE ŃšokÖŅ)œUźCŲžˆE<üŸGlł`böŖA*ó]-ęļl7ÉģjāźQč¹öŁęŗS¶ę½Ū¢ēO»…éq"ģ&7ļ?Ōņ¼€ō×ööjøvö§ õ@æŖóQįš0Ż­ķņ|źN4­ēJ^„åąļ-ä²¼ći¦+ä|^å¶ $ēŽó=étČkėuyķŹ]Hļ­Šš©ņ Ž/ó;ēōĪYĄōjvõZ õžōˆōC…ó?:ņŒ™_šD׎ī.+ÓģéKVėמ9źŲž—éŲe‰éļ=$ź:¬yėĮӍķ*NPšĢ™ó¬W1÷?|ל›qRžZpvĆ:(Hf[gr×oM UŸ% ½« €–š ƹž ć,Ö !‘n ꑺ @«xy4āĒKŹLšƒ».¢Ā%ż‹śvź÷øVō#>+ņÕ4š!¹ļP3|ļb{Ģļš{šŽęHń'[ēńĘ£ ņIžńvr#šbīóķb<ė3BÅēkæQäyŻįVK#ŽŠžĀŪšmåŁżtŲ­³L×[NÖś±`ÕswŌłī”ÓĮ‰ĖŅYV<Ņņ-Ņ9ŠrҤŚ}Ó½W:Õź˜×@sŚ69•Ż6u¼ąŸ>”ć("ü厝ēM8čSÕéē^6øę°‚ĖäĒ(Wā ’ß”R²ÜŁ'ģŁ-žp×vjÕ,TųÓō­&ÓtłģŅ=Ė0Ó©ŗĪÓ*ž„ŌÉ;ŸÕ ³Ö(`ć×¶R6ٚSÆŚ­æIÜgöݤh›ß/į²@ād\õāŃćp¼¹āēŻį¹ķ½ą)™ ß‘4ÓŽ€Õ—ŽąßŽLąÄā8×Kä½Å˜ęÜ Ėč5§æź÷meģkøæķ«”ßī’ćļrōš¹ėFņY¼ōł}zö3@‘ł;ż@ä4°¬˟ƒÕ eš_ ł‰} ,-| µ\” :oEe]¹1Ą‘ŗ’ptFżj›ŗśĒ=ųÄ{:õķBxņš^łļO1ōķEŒģ›Ēėzӌė~)®ėhÖņė)ģg•2ģ © ģC Čė#܉ėDvė -¬ėsæAģ;‚Bķ±īįh‡š;ź¶ņģ&õa“÷Ęć3śl¢wüĮŌWžŁaŗ’HŹ–^¼õ}¤ķŖé“'u\Ŗ’!=’rSńž+ńÖžĆX’“q‡’,:~%šCŁŌ2‰ RdfĶiž rĶr …« %,#a©Š qŁĀ ĮF äT :ś°-ė8€»AčO’¶' ż_ū€UłĖKųiXK÷ŖŅ÷örŠ÷ŌE“ų~Ā"ś$<üčLžĘī—MÖŻÄ5£ū)ļ¼@ wj Ɵ¾ KÓ%/õ’.ū—³Ś"Ām‰~ RnŪ!ÆŚc"ǃ"¢!ņol /‘Żpą€PUž|ÉĆŒ·5Lŗn½W{ Œˆu ?€UÜĀĘgQw•’ų6gž½ćżRƒ÷żæžvž‰°&’wĶ’Ų?BĻhVLP/Øŗ/ńĮ’Ķ}ėœķʶ‹‚‘ž4fWm #* ¦w ƒėk + ³Ś įĀÅ8žĒŻ ¢¦ßl ąAī13 eDiŠ®G’9lž )żąęūw¶×śØ[9śY=śó}żśE/süū¼yž±-Ł”T¼c³²~ĶfŠ 6—ā /%ą śŃ• Ņ Lōz ā7Ē É½“YQa½żĪnz±čž]VŲ.Oé˜įĆźī„zh‚4[łöfSœÄAįśļ4ȓ“÷`ŻI‚™Ļ: ’ż€~mėƆĪö0$Ä9 ¦Z#|E&Ś»³(w* ¹{+f%Ė+@;†+’dŽ*R- *XõC)źRŖ( K(ūÆ(ŻĖņ'ć“­'‘‡('nS&hD1%‹iÖ#SĖ\"ž*Ž ßūæw…łA*÷[($ö揤õ Žö# ‰÷ŗ³Ņł®€ÉüķĪ,įI³óŠ?! $°² ōQZņź‡R8YÄÕ6Ł^Ś.įkŠĆų]n ļ(Pė‘«å ·kF E“ ‡7 ć¹ä ^”Ś õ44 T’ ?…?ūAß.ėĒiœį ķ7ŖdæÆ¹ė^±Ägčī°!.¢ą#Jūā%<Ȝ' ī(GU·)ņØß)šX) ō(Rv;&@Ā#PŌ ŪžXīVü¾1żņ\QśėMō§ÕĒęŪp× Ģ2å OΧń L[ sx •÷¾ \‡ˆ•ˆ{ł{Õż’Zźų³‡ōĻ£ļ/ŃėTwŗč;gękĪä9ÖŽć?ł€ćYšćg’ä÷›Ņä]ĻåśAēęjhčZäüéÖß“ėˆķ½ŚEļ„ńš%£iņń•ó’H^ōFW³ōFōD¤ųóõ ó8¾ń°ūEšs$®īØ? ķĮ°}ėj|źIĶ ééWčS čēč‡XNč·hœč·0ÜčÓ žčµ§é!ˆéwP éü5éPv‘éÜ’źüZŌźØ–ė%‹Eģē”Ćģ‚_ūģ,ėģǾ©ģ Ļeģ^ģŽŅģ±:óķ³Ńļ!Wņ„NõĪĪkų•Ø_ūŹmčżk”ےɬ(Ą}Ö"ģ’ÓēŠZƒ½ōX”@49VZÆøĄž'ĖŽŅč Kžž פ «›Ö i0: „ż ›g ¤p¾ūŲ4ÆÕ㠃•© &7h}éżyķ%ū*˜ųĀ‹źōķPźńē0>ļŲŻ÷ģ΃ ėšKaéӟĪēžA9ę“D™äX‡’ād6‘į‹Ė|ąjŸķߢą_ųÉą| AāŪsVäzÆģę=Üé\IōģQŲżļ;¾ņėgžōƒ“’öga÷ŲĶc÷ØŪ§öŁrIõ ‘nóĘķ@ńAčīX6‡ģ–š<ź’v'čæję‰ļ(å©S„äFpä¦ŌMåz¦ężVmč.ĀiźSĒ\ģµ īéüQļcģš@ÓHš Źšż(Lļ×@īĘéņģV¼}ėŻęžé¢ščläuēūDøę~Ė‚ęZĀīęC“č/.ĢéPŒ!ģ‹ßī«$Ńńc¾ō¤pt÷cŠłtMĮū@ĢJżcž|ƒ’õśp Odoöö™P«åŒ_JD¶‚ k°. nżž Ęo m?„ rįL ¶`Ż 4ļA Śsy ‚Čw^[.²Į•ŌŽ²L8–kZX’ī%żo@õśß‡łgW«÷qŹöč„öcČĻöZĮ†÷VŸsų7éZł: śNe`śx[ś ś¤]Øł¼QNłYł‰/ ł„żų[-Ćųlf8ų©LR÷Ļ…%öiÜō ³£óɞņ€ŽńüŌfńŠ^6ńW Kń’Ō ńū,ņāTŌņ¼Īrólˆ×óF­ÓóoęFó|]+ņĘJœšöBŌī^Æ"ķ!Śė˜²?ėąfwėšhƒģ™hFīœųšZĮ)óz„įõ¾£Žų’;ūDż`ż×m’g 6‡€ŗ—ˆ÷Lėr؛vøJ^‘j$#rō¹Č ’ęu Żų ›k …ģ›žæ\Žn‚æ† G  ·6›°÷“7$&ř­`ĖŽÆEOHQµ‰@(X ½œ…OŖÖ‚X Ä%ļóW?Y.Ā|pΐ&ÆQcŠ>üuĢž;rd/SżS`yt¾œłJofĘ £–ń¢>7į( ¬õn ūć 9x&Į|b×ųŗ’q¬ķŗ4™¬‹.,5Ä0ĆjĒžRPü!ĶOłß,æö÷2Ŗō1Oó±š×ņĢ„QóxjØōg¬©ö- łĪ—lūĖyż”÷ęžȉ’$“a’f?˜ž“źwżżiXü¶É‹ūšPūøGĢū{ żE×’é4œ”•’@† ĪM H ^Sx<ąNtŖ7H@–ĢįšēGlh› Ē @€Zy¼ė—oå ÅžrŃÉüŻļ$ū5uźł „2łńłģµłĖ™ūpi5żļ–ų’€ē6’pĄ¼jg øŽE[XųæeQŗee†ę·uЧņé" ‰¶!¾Ē\!öź ‚ć¬P¤Ė“ŪwlžYz;4 oŃ éyŒ?ń›Åc,’å€]üĒ÷Aś²Sßų>·+ųś= ų=Ių…n„ųW³ŅųŻ„ˆų”÷ņ]ĪõĄ>Lózć5šW£Óģ“|éŅ‚ęø(%äó‡ā4«į¶}į'ęÜįV(¢ā€FØćŻRŠäęęĘAē3‰čæ ééT,n됤ķØšī5šŃšŹå¤ņ!Hō¢ß˜õ_xö”rĪöŸ.’ö…Éõ@™‰ōĒšņ²éńųņ/ļQ:ķ\ŠRė¹éīb’ēõŲ¾ętŁå ·Nå£CåS3傲åŌ€%å•3å”Hå‰wåšq×åg€{ęgiēXS˜čĒīéÓCė°Ükģł:<ķ[Ū™ķwH‚ķ1Ąķl@|ģX› ģb*ģDnŗģĘQ)ī®ßOš"Tó“É÷õwÜīų绨ū,¶üżĄŽŁ’ö·D— XWē>k"1š2jż1` Ą¬+ /L,ĒlŃō'å轿vĶ ·Œs}©3¹®ćmmč ¬=b Ö(E ŗf „² ”+ĒĘ}y[@г ķ7ć”gn_tōjå~/„ēT’f‡łžØĶŖż67Hüžäśś×Xéł!“0łž„įų¤‡ł łę;ś—S½ūSĒ.ż_Æž{|Vå0†źć0˜ÅÉÜ--ļ’i§žNVżIšü)ūžķ_ś>žžłĘh ś’O˜śØę³ūU†`żīՎ’Ó„MŠŅ(Šv56Ė A_Ÿ ,ŚÖ fm ŹKu öt 3Ęf øy 3AŅ Q rƒ €b QÓ潓ÕPR |s rH3 ż Żrį žžŠ Ŗµ» ®™,\kźW=§Ć&W™De²ü¬‚•“¹JźfŪ‚ėö¬`ķŪ³ŸļöĢéńןįó2¢0õ»*–õUæōō9²Yó×dūš@o-ī²uNėŻ\¶č®UŖęłüWåZ"Õäµ%!åŗ§&ęiZ¾ēnx“éČgŃė€åćķōC¼ęņćFRńŅå¬ļ¼=#īģļŪģ‰ęóėM’~ė̓‹ėØ7%ģf(Uķ¼ļ_2uń (Bō+Ė\÷mŚ”ś?ų¹żū¢Ö2ĒčUй_>Očœ6 ŽōŠ ‡B0 Öź` ņe 0R8 b>É r  ;\Ü?D>2ł&R©Ÿć£ĀžćMŗū»ųćĀłõ£‡£ó{²×ńū„šÉ šęƒżļr;RšĀ‡Łš5ŲVńķŅ‹ńŗ Bńę,Tšōø“ī0Bqģą®°é(¬ęČb£ćĆóĪąyģTŽ?ĀCÜą”Ś„·4Łr' Ų$å×q!Ö/JLÕ0n¢ŌŽy8Ōp+/Ō2¹§ŌPĻŗÕ¦”pׄ‘¼Ł–S}Ü•€ßéSˆāQåC™ē_ˆ)éR“ßé DZé‚@°čĆĀžę9÷ĖäzIān"§ßń”Żėž²ŚpŅÆŲ³Š'×]5-Öķ„ĀÕ4ZŚÕ¦]ZÖ*K$×KhŲ5ł3ŁiK`ڤ÷”ŪMūÜ>kŽ?Äźß’IjįŲŠāęążć•Ńä~;/åĶ å~Źo䊼|ć,ōiāŗF{įĢćņąZ#į­ ¾įčćKõäŸIēĘ@é²õKėzéķw”ī ŌČļfåČšU¹ń8[ĖņJ5ōļm%öpSµųp,Üū%Ņj’ †W(iwe łĀ» -A cī§ ļw ¾šõkkwÕ<ęäēe’ų–żüŁŃ¢ś£×Ių'æóõ‰“óĒ3ÆńbM š£dāī>Ļ?ī4ī°.8ī®S€īēҽīÄTŠīŗ¦¬īĄō]īшīdĻøķ¹RŖķhMńķq{Ÿī2_»ļMĘ@ń"›!ó­—FõĖ-÷=ŖŲłžxųūw3Ģżē­:’„ē8~ĢŹ‚ õĀ Ć|w‡Ø€UÓ1<ČmFfŒźOõ:ķµśŗŹgŽ1?ŗŁ06 čšV ^.É ˆČ š/2 6jö ½¾ ŌŹ± ZŽŌĀt·}ƒ°+Ģ供%Ąüµ–ŌśĘ8łÕøųeĶF÷F÷Ī[x÷źmųGk賛ŒĪūõr’żqX¼Ǿ6Ż]™ + Ō š‰„ö©lž&®ę%s†M4(ļÜ4½Ž”…ÆCWóRMęz¬(š1? ;?9ź+(Õū[£Ž=œs H©¶ż<9v$«4~R^’a: ždNżzżåœXżU’ßżżTž. ’üņ…’B¬Ļ’ī* E×YŻ®ķŁJä–Bė˜źuØ\<%du )g9 ‰`ˆ ÆĪr ‘ §‰f ų@‰su~Ž{Tu< Ŗhłpjó@§8]]Ī“ļ–ƒ<’՗RžaDWż]˜küĪ[½ūżkzū?~ĆūŌž¢üĶž9ńŅ’ļRÓ¹„Ū<ńÄM‚tgŽf± KĖķ tĄ® šS -^ę Żųn ģ.ų i“͌W]\Zڬ§!;[’thŅ:įŒRĆgN&·üĪļ­÷“¢įx½Ń„ęœėnBn”Ą‚“8Ģˆ ®ōī+="7Ó«ō°OĒ!ć!»ē%$õˆē%M–'H›'Ēå£'ÄP'ī¬Ń&8·T&°øū%"PŌ%‡Õ%Č­į%¹{Ō%_n‹%njņ$ķś$Å+Ū"M¶„!Zė ھŚ„o1/·,ļ=w– įI$”OŁ7ą”ś ’·‡ DņPAq‰YDģ§ż§‚Ģū2ŒĶśxŅŖśDäEūĶwdü]øż$sźžž±¬’ˆ&Ē’ Ų%’įŻż~Ū(übWś`n½ų²ā¤÷Ņß@÷̬÷ō'éųĮ¬åśQ|ż ykKŸ€ø²ßր ūkč žŪ RĆ^’¹}wųGŁÉ„‚sx2Čs¬TÄļ¶ńż>4‚e@-” \ĢĀ į?õ AŠ7 = ” 0ņN ē_ …ź VØõ ±T{ xOhŻž£E1lė¤?óąŃņMCK„ F_Ź"Ä;®$.?&Ti'»G(@Z8(ÄZĄ'h£Ŗ&”›ś$ģŌ¼"— Š€KqŠĖsØF¶* ūo×4j ¶\ ™_Ź ¤ä’ łƒ ēYZ ;”Ó ¢`° Z¶Ä2?Qs2ēMżKŲų3ždō4įCšņč²ģd Ų騈ĄēOeę?ō°åžT…åÓ„Ąå-°Bę›õńę(Mæēm]¦č¶”ŖéŽŃźRģQŁķęOļØ;«šrŽ/ņE~ó¦ÖØōMiõūܽõ&z õ£Dõ-å,ō ÷ņķ Šń4}żļ(»kī5sńģĻÄŖė é­ź‰Zź‚e¬é¬gé$ų–évĀ¦é„ŠÆéĆ_®éÄö¬éO½é1ņéLŲZźłūźūĪė=p½ģĢ­ķ”ö|īRēļ2wbļ.¤sļ=‰dļŹüdļD!¬ļ½4jšĮĀŗńį½›ó ģõ¶muų÷NōśV#+żüźžøö‡i“‚tĖѲ‚3 »§’z.Ž’Sō’ Ņņ˜Ķƒø~é W{˜ēz ·€ś ¦§ Q¼ M€ C#žō¦3’#Ó¹–ŠčÕUś’žD·żL ū'Oų¼Ānõ„‰Æņą7š™ī|įUģĮgÓźk véXß#čžŃęJ”…å\\[ä§÷vćõ·żā;ˆ ć$²ćŽKļäS“ęõHēčĪdėPÆī/’šĘ|āņ~Ęō¬NöŽźĆöČäæö‰Nöāōc‚Aó±’Zń­RļyHķ²Uė ”éRčwo ēX uęāGręRŸē?&č βé}ć~ė{ĶTķ)’žīb*Pš K)ńRj|ń¹Kńæä„šń«”ļ¶±Zīø.šģm„ėŠ;źfū8餉œčśšč-ńņčӇüé&ž•ėh·©ķ¦Øš€Dµņ|1Uõµ£Ķ÷Ŗžł¶Õū@QżF¶|ž½{o’Ń·D`ĒKģśŽ2’[g)‰įu4(Ö '1žf L‹X õ÷ļ ĮO& ŗ7 3č– …lń ‘‡ šž'Ö÷Yńɟ¹ÆĖ$š’ÕŌvżŸ^dūĪā†ł³Wųœ†żöl4…ö1ć˜öO³÷Ąęé÷Ö½ÄųZ|łoEķłfś§:Ųł6ył éł“Ø»ųA‡ƒųźƒ[ų&P'ų„(Ź÷Y—5÷;Īpöū}•õLĻÄōAōPł§óéėnó° kóKg”ó"æįó”éFōõą±ōŻ? õ=.õnµõAÆmōló{{ņ÷÷~šuõī™·“ķ‘ē÷ģ³®ēģ&Š’ķ±’ķīų¼Łš.!+ó•X“õ6KųQGĢśŁžż{ā3’ļÄywŒU(ĪG=˱&‹2D՝{Œ)ŒĆÜHĘI<į C xŸG "ØH ē>÷ ^8ŖCż ×eE e` ä=Ø t ‚%l՚’Ó¾ę}c=nxųä‡åń•IˆCŒ!ƒ ‹©5 nķ+$ł,ŽX’e rO‘bĄƒæˆóiÉ1Rš ū&UP-ĢZv›8!æęA€aÖ²«¤!Ó•üļgĀÖF~ ®² Bą MßA ®ø˜5 @µFf l ŦōŌ}ŽœkÅžiM†ūwł-lųöĆivõ™G²ō3/¾ōµ6’õĮ ÷ǽņų‘Qžś;āāüј]žh–A’ ©’xm3’Œę‰ž}ĒČż~ę4żĖ#żmįdżlĪ]žŃĖģ’Gśł‰]ŪäQ”U Æė} dŪ5 Ķ~hkµĒQCSB }éuŲv“ p e Ź7ķ å‚- “0Š ¢›ŃČW„l·ŸžŠ«×ü)d`ūåęKś×­łŠä›łq*ś®(gū‘µQżFćŁ’ą…ą=†PÄ …N ¹-ŗ¬ōģČóŅįZ]ų›€Ą22µŸfĪ `"[G`+TĆeo¢jėāŸŁ¼‚SW&{Ōz lv‚³ĘĀĘg’„c”ü„õ_ś¦ŸŌų%pķ÷¾@”÷ėń ÷.õŪ÷>ńųķ›Ü÷éĄ/÷ įõƒæļó­xń}5²īDžįėœIOéT5ē¢%øåµ[ćäéŖä]óä\»™åptzęāśvē_zč±hzé9›zźŃŹ…ė^±©ģbšķ]pYļČÜš–Œdņg„ŁóXõŃVöŒ³öėŪözOöjßŌõźf¼ōķńYóÄīĮńŅ”šņ>ī› zģ¹§ŅźFl_és‹3čŠ¼XēŠLĢę’m€ę©ÉaęŲ_ęvoę.D•ę²AÜęŚvTēLˆ 蕌éEŲ=ź” ›ė]ńżģ`<ī™Ž.ļ|KŗļfEÖļ™ö“ļŸ˜ļ#øÆīæŒī5«ķī`=ōļ‘Ö¢ńzÜóŗlö£»łĒ™ū„¶Ģżpå–’–Ćō;Ż÷6’ĀyC…įˆr*¹QõuȌŖ .Ž7 °/į!ųV6²Gńr Į¶õFõyŃQG“U2¾¶ |f ļe }ź™ K£Ś ”v d שīėœŹ-óŗ€øÕ¦!”Ŗ<Ž ’ĮlŸbˆ•’×xWžæ<żü**©ū3śÅ靳ŠłfŚ’ų“ÆNłJŹžłL’śå6ü™Ø„żŅĀĀž;‡Ė’šą[ĶŌ#°®e5’œu’]†ž§·¦żķ8Ōüxæ-ü›wĮū½lšūØūĆūˆ¾Jüł9żo€–žxXYœql1«°ēU˜ļŖ¬š z‹Ģ %Ż{ #Ŗ± ’ō„ Ē› o-{ ĄŌ €x/ D˜ ½„ žŹ©¦XxD$†*8×.Ų?zl™ųŪŹ¦ #ę| G–p `žx å; ĘZ¹ Źü’h?I /źÅT YŠg^¬źN§}Öb!ųi[#Õqd%UŲ'#‹(ŲŻ±(×jŹ(:µz(ˆčŁ'ą7ł&^ĢŽ%&‡†$įÖē"=Mż \5ŹƒP\ˆfŹK†1ę ²0¼l<]}Å¢õ2(× Ė× šI Rž lĄ_ MEŠ Ó·w d•:Ü-ū&įķ)čCüž˜"r„(Ķ„ādŌEŒ_VPęC_‘iŁ«ö e”„Oīr·ĆQd©ō“ŗ ] ŽyŖ;RŠå•«Ø µ¢Äl•¬¢…x’R±ōžbź¦žÜŗž„ L’[é^åŲąÕR®ō›#aī 6 ŸE© g™Ļ /€« ÕG 5M³ Øż VÜ3ܾhī\±‹G(S‹č:vī…’Z¾f=į~rtuoœąJ‰źĮŠėwŁPŌŲ+ ƜæĶĖäį053nÆ„#IŌeń•m$°LŚÕśoaŠjāūW;餍׹–” :Š©¶d]…uS!pY‰Wš.š›ˆŖĆŅ„=`ǽA4˜£rfŽØ Ōö a­q”"ot¦' J"’§4žĢ“0ü½Į ś‹śÉ÷ßļuõČI*ó6Q ńĄT>ļZiķķ1q6ķ)ķ‘5Ćķž²éīŽnšcCņkf‡ó7Œō„łäōŻqōEÆ3ó”NMń/ üīó™ģš°Kź]6včäč9ēąÆę14Śęė¹­ēWp éŌ‰ĶźŹ©ĀģėMæīאŸš¦ąKņe[øói|ąōkĮõ4“Uöķk”öźtö}#šõĮ õ5Xąó!\…ņ:}"ńü}Żļ±[Öī'ē#ī5Ōķ?·īķbšyī[dyļ©;šš«ŠŁņó˜'õ÷šæ÷ Ł~ś_ˆ>ż$ Ś’“Ī378§Żć& ˜ĢdŚH >öœ -]Ė AĶ Ū“ Z— «¶!żĄ­ė&¦M¢ų1żeVś·¢÷iLBõ Tó -źń8•ńŪ™„šō©©šė5ššWtJń‰„ńŒlńEŚšū*¶ļ3žķjoĘė_6éI"€ę€IÖćb‹aįŌE:ß[gŻDćŪ¶“ Śbc’Ł2°Ų„ų×Ü;tי4×ķ‰O×JßׄŲõŲ&™ŚŹ½ÜŸŻFßMóā$\Źäż;SēŚdjé:›įź–=›ėnlŽė‚Ēź÷Vaéb[ƒēĪćŃ|­ąhE|Ž’źÜįž ŪÅWüŁ/yrŁfŁė*ĘŁÓ£vŚŠŗ\Ū¹bÜRžzŻĮ`”ŽĄwÖ߯Üį«loāāŹĒć¼Čå_U6ę6MēܐēCšēæ0瓜gęTŠkåžÅuä€\ÄćŹ%ŒćSūģćxėäM³oęȹOčßWźSģ >īc" ļā¤Ōš‡ĆÉń¾žņƒb€ó[Ż”ō£ń1öŽVNų–ųśG3ž?»T!pœGJ¾Ģ{ņ kŽK 8XŁ_< =÷ŗØŽ—1’E?öüŽ¾ŽśąäųÕN÷/ū?õTRÆó‡ÜżJ'÷ü<ՏüWsšü"Ķüüg”żōŁ>ž§\āž9Bt’¹šū’¶”޳FJX”F„JŠ  ģŸpūžļ Ō­Ó Ŗ) ź Ļ}– žē½ńŸžĪą؀æ¤¼ÆØĆfÓ9tp¦€÷Ō4ƒßčü’¦ŅV’†Ę’ž„sÄżžę ż  —üMŪ‚ü%Čåü%ŚĄż]~’ķŒ „9™$ééū©ī­R.4ŠD hk9 / M$į ČPŸ Ń5V Ģ1ŪģČhżåvD5N­Uc9ƒˆ½anÓĘ6;}ųŗ6Q|“;ü½ė²ÕßšĻæl°xUÕ°cNLA6żD ōŗ” Œ h‹īĆ·µL>bA:<ķ =&"Őå"åW8#ā&;#nō#ä"ĮĢ"IŌÕ"Ąü"uņ(#ń­=#‘Ź#įų²"ü!l›!÷±Ś*,›F(WnĆāµ¢ØčzXÓźŚżĶŚ’š§‡R“ cŗ˜ ^VIĪHļ;Šž¢Ń•ü“wYū3YŪśžūіøū±®ü҈¦ż+™_ž ØžøgžØ³„żén†üfLCūzŸśēQł’ō łUjłIļpś˜źüq >žęŸĆĒ4uÕ!õ¤®É *N” źrž éōōMŁL[cäE¶ŒŒŌqf¾äŃtÖ£ūŹY!—»[½ *Ņ 3ßÜ ņē ¶v ;I@ åįƤ‹©‹Ä Żań ĻÕ^ fEC ke† 2 Åā³ƒ‚derķBųčÄł É ę_"¹Ńć#b4å$ģXy%›O”%æ6,%ųś:$Gūæ"&ßĮ µŒPY†o/‡ "}|1“°šČϱ VŽė ad¤ ‹Ņ nč\ 1ä †IÓ\÷lŖ ÷Ģpö7ćyõd°<ō¦Ļņ“ JńēæČeī®k7ķ(Mģ Ž©ėd™Eėl¬ėĆ?õź%Ćēź'‰įźŌśęź•SėiõHė‰ßĮė>ŗtģķ\ķ.ćhījæļ3‚š ŁTń“äńÅ/ņ~ HņMkPņK?vņB7ęņÕZĄóģ¾õOŽĮö·³ų3‡°śß0‚ü»čśż6©üžÓĒ|’¹y„’Šm/’ØćØžĆø&žOĮįżs° žPÄžĶęΰŲ`čJśŽČTÕ ął» ćµ ^Ż ėB 'TękŲ­„ż¹µ’‹F‘żf8ū)²ŗų,5öŽŹóŸh™ńļā³ļIćÄģ¦˜ė"ā‚ź Ģvéęźuč;ēĒßęŒTęśŻŒę¼*ēYj čŠvé 89ėu7ķ¦ųNļTZńĢR3óæ*¶ō£qÅõXžMö³„IöÆæõ!„ĮōĖkó.ĆÜń»–2𼄇ī¶ĆńģūāƒėĪĮPźÉ}l鲉ėč°ńŽč¹5Oé\¬7ź}9„ė ]ķbµī%Ž=š/iń'ÖXņ†·ņ’:™ņ÷q ņU½ń löļ&p±ī¦šqķYģĶŪ„ėŪ ė¬šė›LwėžŲcģS”Äķˆx‰ļ؀™ńŽ#ÕóšŒöHEų’ć;śž”ėūĀīMżŹhžŹK’„ųĒv–ųMu*ze»²ćü×lIä·z0r öĮ b¬_ L l®é `ŻH 3ŠvĆ_yĻ]Oviō¢ģeW§ˋ’UmĖż‘,Üūyś„˜ųq…÷ īö,ĮÕöt*÷ É÷5=„ų“A.łĻ¢łœĪł1¹²ł/Wbł"ūų’”™ų‰dOųļĄųjˆó÷„ßæ÷sIs÷HL ÷Ī*—ö!(öE%Ņõ#”õ¶–õwR«õŃāÖõļö”{HöaGyöˆō’ö#U„ö :;öRļØõJóĒō’ ”óžĘMņŃÜöšHIĪļ ļRˆĘīq'&ļz–&šęžµńč@“ó8«łõČw]ų¢»ś:Éõü$gśžøŚ¾5@1ń;āIėéԜo|󙉳x?»“ ÜG 3”ļ ÆĄ ˜'[ ś–© >| Nę1 }?l ³c\ H }ōĒ/‚ƒ –m{’¢Ær;HęMēķź1E:„Ś?/ ~D¢ ½·RĒfīNōA’7%ĖāąłJrÖXbżßśķ „=Ł­? 4, pĆś¾8ŌiJū µŠ¼ ›‰‡ ×U} Ü„ /¶ü ĖPx ź# ‚}Ü×7Ėé/õ¤-8ņę yĻ’-óyżæ6ū?a5łwȦ÷LFÆöT'döhåĘöU®Ć÷ó 3ł+ĶŽśŠüŸ0ūżžm’–ƒ–’ćö°’Č$t’„W’vu·žœž×ßž)’“’ų^ŗ9Då ß ¬õ³$° $  īń ˜“¬ ĶŁ ĮŖ 2Ź, pj šg õ&& L©}Tų†"H~<ˆn^”m žØążīāÖū„ķś€lśėŽdśšØēś>üņŸ“ż ū÷’pO“ĄXČ…{ ÄŃ\ ¦č’đU‰A,[¤q’ŚÜ–óĖā :×"‰ƒė­YiŸØ;ųu%‰Ģ½NŠ_ WļÓ cģ@“‰Ša«’˜ėóü¹õĀśŠL%łżų>ő÷^Ęm÷Ų¾‚÷5÷ĄĪˆ÷(¼÷ž½/ö’Åō$dėņvYÅš±"ˆīzČlģö¦ź‰ Wéü÷Žč„Ičdqq蓁ėč#x˜é3ā\źŲ$ėxŽęė­·¢ģZbķ y2īSŌļ4Z-š ³[ńŽ$Ÿņ™0ęóšõ) %özlļöe÷ó×{÷Ć.÷ ‰‚ö põ¬f9ō¾ŗņX*ń#dļ"¹ķ8Ó.ģœSŪźźķĶél 韱čóŚPčŗ>čQč1§…čJ5įčžØlé—10źyC.ėFĢ_ģø™²ķ| ļK@EšņAńą*äń$ņÉ ņń,·ńo,YńI{(ń(–XńüŻ ņ@Póčõš.÷·%pł2ś¢ū‚›żč>’ȁØHp¾ #³—æ§p} _ü0ØŁæU|wX „dˆ ż]« Ģŗ€#ŒĻø»s“|f\†æó^®Dmģo1 ¬¾ ā'< M€ "ŹĻ Mŗ žņ6[q@'=Z8BhbJx¤£üÄkOXĘŽåüüMō¹Ūž„§–żÕķNü³ƒ#ū½I1ś;{ŽłNJHł!Abł”£Öł¶2—śR&ŽūAµŸüœ»¬żŸŗ–žģŸD’¾ §’Ęŗ’”—ˆ’<Ģ"’¬ż žMžĖE¦ż"«Pż;ä#ż€‹&ż v_żM8׿V—žį„’ńpÄ1óöc049Né^Da E«‚ Ö@ Üќ |£ Ūg Ūuż p‘x žę |@O ĒKŗV+,$bŖ÷a<<ģ•ĒÄƦѽØųĶ¢™rgåNa ©µ† PĪ A„1 1Ķ­fŒDPłu$ĻøņÅŗŻŲŽėżŒ&Č?@';5 œķ!“R#w P$T¹Ż$Żyü$Hp·$¦ī$µ_B#\x+" ÕÜ Ę`TĶó3¶‘æ|b¾Ł¼“^~cq7tOH|’¦ „Z …š\ Ÿ‰› Œlū;c`Śč“ Üš3²Rzk²н_WoH»ß†Ć˜†o]j1 ’µŲÓćPµ£g4ƒÖsōP‰8æŠčõq¼Øo0ļ'pŚŌ0PĪ)Ä,G„‘l0_|‘D`Œzɗiqn£’Tst’¢ ¢’ ƒ9ś™5°7+ażĀCˆw’uXœäz Vh IK' ˜Į RjC V—ø c- ¾&° hRįģ$Æ<7ńRŽ„ó"pÉąN#©ØW,qĒ}p×Åńm³^{ĮWü2„ś QŒ¼ŠģwģMV–Å?‹s½˜œwló évŃ gL7ģŽU|Īx[ń=Ś$1TP˜Ī1`Ö!KAIņv"åv=C;‰¹¶&ćĻÆCoä4oŗ  ˹WŹ^ ÷ž $›č]ßčˆŁnŠa,DÄ{é+’‡~‰żCzŅūŽqś·Õ!ųšr<öźmjō֕ČņŠ@uń(4‹š]]š@-š<ų±šń”ņÉēó”DIōĘŪō~ Dōē^^ó.9ńń±R&šdē5īĪż[ģˆĪźŃ¼¶éę .é°=éՎß钶’źfj€ģޚ;īäß š›’ĖńĆcó"¼æōÉö×õz¦öߕ'÷æŅW÷Dļ4÷¼›Ąöu|öĢĘõqcūó„•ęņs:ķńŠU'ńBƒ„š–!qš¼Žš…+ńƒ€ĖńÄšņ įoō\ŅBöF¬YųčIœś ķüĶX-’qB#øě„°ē{Aåq©B/@<č±÷ ž’# E˜ ±ß°‚ųõ¹|Ń%I>›VBs šO?ežĢĒū>@łFJóöÓ’ōv×vó›ƒcņwøĀń©Č†ń#„–ń×Ļńtņ³{ ņ4 æń¾.żšļ]»ļ’(ī äė©¶Œéߥ$ēx¤Óäz×¶āDߎą>WPßsĮŽ]HžÜ2.ÜŻ•Ū Y7Ū»!Ūo#[ŪhūŪkĮ Ż‹ŒŽavąĒū®ā9ÕåīuēP0¦é*gyėąīÉģ̦ķŻ‘ķKfķØčóėibsź©„č¤]«ęyʤä>ʱā}–ńąRĮ€ßĖĘuŽRŻŻŚ+¶ŻžkōŻ51‚ŽüÜFßˬ,ąŖĘ$įPR(ā²6ć…ČQä%—yåsØęžŅŠēGkŻčū³é³†:ź=^ź,zꄿyé=Ÿč특ēŒ’ę£-¢ęčńÅęfwēøÜ©čڵ=źÖĄģÆĀŅķ!k|ļžēšŻņ ņųŚšņ“°ó*¦oō·s\õ&w öH¬Xų‹śĮ†#żzHļ’ń©€C¬øZ¹˜ž4“ķT¹a.84†Lčą3e{’i-żĀjgūPĢł\1Vų'§÷‘ęŚõ§śēōp57ō‡—Ī󃒨óĄµó¬ė×óīōóZēšó—@ĮótgóRōņ»ž‚ņ|0ņśņ.ÖOņÅŽņ¾ųÅóÅżō‡töGĮų„KĪłāE~ūDBż_ˆmž2ٌ’ėŅiK‰ vw+LĀ!{ųCd%Šų|åųžYłæé–ś>/9ü\C,ž‡ W³gŸ¬Üķ5›0ł\ ęo b?g BŠG”„½WĘHpw§×ĢR“Ŗć2‡¼Y[ż^tœv©t2<¼†1&“`ys’øDć =ö ŲiņßžŽ©łĒ:Ŗ¾urŲ-’‚ŌżwóßüóĄZüeBü{ʆüżüĆż Ė„ži—E’ SeĮź•“Œ„d®'Ęń( >Dp…­fK7 ĘŁG óŽ, C°Ā€ŅEqkRxPÕ3Q¬wfÅ~ŸĮ™¶Ū“ą€@Žõcb“ų%’Ā]ÕžmļžÉkˆż=S3żs9żפżD{ržl’ &åb#U’Č!,¤Ÿw¬ Ø…Ćæˆ+Ā ² b‘ t4a uā' sļ ;øĆ8Ÿ²ō$Ć0ōŹ?;»†^v½ÅCÉnõ’Q³TŚ >×Év8Y~W…dP0ĄC<S ‚Æ?>…¬IEčŹÉ»ĄIŽö޽† €É|7Gæ½÷$ųŅLŪƛkÕgŗWÉąŽł¼UxÉHd€‡|mÅ46ģr4åśN ¬D4Sq_*fMćæ-‡ž läE_··ivRŻŁ2u™Š”ߤg!ļ ©$8 C^[mŗ{aÅĀnS[’6kżJ ü¤wKū{Kū°kūI+ü[hĆü²ļiżJqŃżQ0ążS-’ż'Ąłü;";üŁ$„ūR±ū“ŅÜśņŲ+ūDˆśūWNEż‰ūž)žŒ:4™m6Cˆólj č‰ ’£O ’S eLG¬’pb!EjKaŗpRĮZš2ūy ¹²œ Yœ¦ q§” ėQ› Ųw„Ė9בįKrZi§Ŗ6H2‰ #dT óD •ņ”†”Åx)¢VÕ÷ŌŌü³ā„čf®˜ 7Ŗr!Žrī!b"d/«!‘XŻ r—8ÜkG¶¹u9n‘‚{ µxąöFškKĖ1 ;¢\ õįžö–N×¼ÜĘšusép7­’ŹĆN’’füæ÷8ł‰W’õž‘õņķgOš÷m0ī&ØģĻ[²ėō‰;ė~]&ėMURė É”ė\éžėCé^ģ™Āģ184ķ,Ćķ÷~ī1-oļAŅ—š€čļńzfó'mįōņzDö‚ q÷W'Mųę0ĘųōÓųCxųŗO½÷¢F³ö InõĄ ō Dņ'^(ń€Łćļe²Óī ¦īLjķuŖķMāĢģ±Q®ģU­„ģēÕ³ģ7ąģ*5ķķµ¼ķ8"{ī=Klļ@‚š`g¦ń‡½ņĘB«óƒµ\ō!Źō Łūō’‡ õׅõŅ;OõÕYĖõ£Ržö„Ä÷čŃ&ł¬rŸś¼ēüŽć(ż›åóż õUž ‚Rž'ņżżÜO{żaųü—ą„üV/²ü@d=żķRžÄąä’ƒ¹Ģ-ˆŃĮy²(E3t}'œńyŹ3.Yš[—%wu­ķ øP†źz’:0‰żĀ|ūR\łÆO;÷F 0õIŽPóŠN­ńGJšHĀ!ļ'&ī†Gķ`¶zģȽė2xėDż–ź,YRźŽFZźźš¹ź$osėpģ±€Īķ:Kļ‚tŪš7Äcņ™ĒóuEģō¬»õ^0&öŸŒ&öJĪĄõ—>õĮĒžó' ĶņSā…ńm <šŪćķ” ņģW;ģ ×ĻėŠ@¾ėŁŠģ7)Äģj‹Īķa™ļš÷ušōYĒńŽÕāņ[©óWō,&ų󲍅óU‡Ćņ-iĶńŽøĮš€č¾ļŚąīõ?īWUėķ\œńķ³WīŖļ Ż=šŁĶ¬ńy9YóšÕ,õž÷ņēāų>”śiLüjo 1©^ ŚĻ  ¶ 2Ē4 č5”==7Ą^Dč¾Ķ-®›µį­fĄŠM8ņuņ>åŚń›Tm”r“ÄI÷ UO𠁅) "ŚĘWŌnź" GńŁųQš$]ėpxĖĒE^ėÄėŁėxµĆ9Ē@ ó}_ y„$ ĶŽšŖYĪ„Źńø•­ē1I’ŸĘOą—8ł äóø9ސŒÉœ5É ³‹š QP a‡ņ’÷ŁĘe’äSTŪĘ‹ļFHbĖp!UĄ‡ļf"­1L”äFŲߐP‚Nų—M°XŁSĻnĀš—ēS9¾ĮėN««JÅē °ĻźSH>§Kv!ÓØĖtć§™[Æ„`Ņ@ĢśfĢ śl¼~XyˆÖ¹ŸXÖž’Bå’œ\Ū«Ÿ~†Kć™ƒIĶü$Ģ5qRI$'=×” Ļ Ӝ{ Ž ¤ Ą Ƅh ’" §÷ ¹7ó•·±EhįæŅbšD¢€£˜ŅŅö'·Zn9’IÜ„ąė@›¼&'Žņ_Ÿˆ¶Ć­”2 Žēó gļ iĖ «¢ų r·¢ ‘wµ °ĆĢ—ŗ‘Ņ“Š;ķĆl¼Õ.nˆ¹Łū&ąļ¶÷Ÿ[‘6KŸč>eš-d”§īµĖ —kä P x#;Ļx‘2h «iQ0Q ĖĆž®pżŸŸ üģ™ś’`ła÷ķ ö1»ÄōZ¼ó§óƒć®ņĻQ²ņ·ŁóPt…ó~Šō+Šōćß¼ōœņōłó¾³üņ2ē²ńŁõAš™śÕī əķ·ö°ģeD4ģ˜#0ģ쟤ģ+†ķWDæī33šźÕĮńėķKó›ņ¶ō“Yļõ!ėčö y÷`ó ų‡é1ųå&ų…fŗ÷sv+÷Śvög.ÆõA(éōm³8ōQ1®óąąTóœ3óܳKóT ”ó'ü5ōzõūØ+öµŲŒ÷@<)ł 6ńś&ƒĻüŖ|¬žcīqg^ wRؽ¤–«r”GD^Ožm6­8…­÷×Įd8au·š%ōzēŌ€¶¦P’ŠĀżóKĆśÕ\„ų”„Ēö-/>õ?ōŽŲOóRčņœ`Īņ’čņŒ‘ó†Ń*óŲŻóĮ؏ņ€>­ńŠ_š…a²īˆĮģź­®ź§źœčk†ŖęŽżģä7pć‰7āxćAį ś‹ą;”ąķŠŁß’āߊ-4ąwų׹’½ŅįÄĶ#ćdĀĮäs‘™ęō¬č8Ī‚ź ­OģōėŌķ,½öīéß”ļä„Ķﲫ{ļ"ß·ī:Ȕķ‚)ģūzź­oįčWĒ:ē0Õ¶å oäĮ"xćĻŽāē„„ā"@Äāė*ćł­ÅćŠÄäˆ?Qå š,ęŪįēūč¹żčņžé—fżźEsēė.•§ģģÅ'ķhåVķ$@.ķ^®µģąģņ@ėåX–ź’K0ź-Č/źÜ¤źūlŠėŠcŹģ"Aīį„Ęļšš6ńäŠwņ=ģ}ó’’MōƉśō¦|”õ‹föYl÷~ģŹų5-‹śĪeŸüõ5äžęļ$'«$µć©Ųļ‰ņy±<Ī'„ «ģ@Ž;m,’jž–żņæ+üŖ±ķśK‡×ł£äųHUųŗŪe÷ųgäöo‘ö„/jö'Żcö‡ŃlöppöX–\öGŠ&ö•Ļõš|bõ‡zóō6šō@mōX}ō±ņŌōT)võüH\ö č|÷Ė7ÉųrW/śRŽ›ūbĶūüuÉ>žG$Y’^Eƒę“Ž—`ß “enŸ¬ČåsĮ˟5CRŪWoʬ•GāĶy<Ā‚‹¼õŅ5fŹjæh–ėpŲły2ĖÓŌ·™ ĄxBHĆĶ’žVžKžńüŲL±ū¾Ż„śTŻŽłÆxił§kPłß'›łÖ›Lś­šaūNŹŃüu‡ŒžŹ±}4iŽJEØ6øXWÆŒ… ¾6 Ŗ:Ā s“(ĆjœĘ…_'yeĘ?Š<Ó.‰+ f@T” ‡k‹ wÄ #ĮrSEÉ<fÜÓ qéY Ø÷Ļ Č 5 ČüˆE½Īé¦ §ŻQÓ÷«N×/’sņżŒ‹żaŚxü›ąLü€‹{üŹgōü{:”żA kžF?’at0vęч¾oj¤T3T „ź¾­Ūn WdIåēø­ ’$j”»Ż säS¶Å‚ |©—śÖˆ†Ł©|:Rhb“¤ |w±KÉNˆ.¶Ōp8³†š’TjķžyLKžŹ˜Ńżµšż–jµżņ'žFjźžßČģ’]’B*_e*©š6ģw&!¦ĘDaäU8¦S ;= ’B ŻÕ £¶Ž -¦Žń²ģ§šņæ÷ļ½×{ļ;t-ļīĆļ#:üīŁ£ļ)LKļn9¬ļĶ';šŖ4śšG/åń€Ošņ?Ēō]GõC$ös ńų°^šøłČļG„Dļć#ÓīĪ|īłMīķpOīįŒī±ļąøļĮĪ™ščŜńžÆņKHæó÷8øō§Ś‡õMöeDpö‡’xöŪ8ö'¹õiõM0ō(čFóĒļXņĘsńR8 šÕWėļŚ`ļk ļ¼+ųī’0ļ7“ļk }šóxńEņ‚¬šóÖ½ōµB(õqx}õ`|õݵ+õĆŠ›ōš:ćónóyŒ[ņčKŗńefHń_-ńĄ>ńŽsńśR ņĢźņ·iō@Mõ‰įøöųå4ų”ē­łź‰ūĢ QüÄcż—Hž((’ĖX©’»†B}#āŒf•|­c•ÕLē³HNŚG‰Ü5Æżz³ŠdÓ{„Ō(½“²ÆŠ—w™™Æ ,Ē“¾žā’µØF2÷Ž’+@gžu„šüdŅū¹²[ś9²hłwÅųŗ6wų$”wų}$µųEŅł¢`|łē#ĪłČ’ųłBńōłÉłŗ·„łōD<łŃ+ł\šįųā@Üų‘źėų Śł+¢$ł¾)Ałµ“\ł}yłž˜ł/2øł£}ÓłÕĘ䳐yēłčOŁłĘē¹ł€‰ł®;Ełüéų‘fqųšXÖ÷­*÷†>ö™(Yõ)#ƒō Ūó¹|ół ˆóģ9ōŚAéōĪ1öÜŽĀ÷߇ł½JūįK żēY®ž$(¤%smLŽ8){Ėó<Š Ųø‚U;ƒ½T)‘p|ü*ęņų[sŚ³kYnĢ ę% ­„X ņ2Y œŠ vŹ­œ94(3cĪIŠū_Ū’5ń@ĞšA¬ś!'‘ŸOe#”ų°Ś g³ ‹j µÜv^ńłJŸ~“č““Ū@¹,„ģŒXpżĘōr2Ņķ Ok Ōę F_ ×Ō ¢²K *Č ü(M . Ū ū¶m żżü/L}š]įu@ŗ$r^õPAŃŲž18Rõ¢žŹ” ż¬­©ūŠĘšśHfół!qæłØÄžłĮb¤ś‰——ū•.·ücjŽżėžĆ’ś&YR®fmŃėIŲ·Żd>÷(³8r«²hO|ØXĆ ķŗōjėߊ¶ĪS3›¶µ Ž“•ĖW³ƒ‡³ üļgMŪ›Ž"«0J›ŠčtMķCˆĢ„ųüž[žÄu=żl±ü¦Ŗlü2ozü€håü¶ż–MšžX§© ‹TĖ]j6¼® ż ŹzLĮ@½dąt”!’Ū“8£ Ŗi–-Ž6‚£ÖŃēASi]‡ķt `k$ DD©Y†rŒ'ēˆūż“9 üY9£ś ©‰ł1œĻų$hų)>ųėX6ųgL2ųĻØųz¤Å÷n7÷] gö•Ä`õć9ōpöó_]żńžń:šƒN&šÖp šxj'š&„cš7±šČ\ńaRń75ńZŪčńœ>ņ·H©ņ152ó]¤ŽóE'®ōsšõņ•öMž÷Avų”Ņ1łmN±łęł.jÉł„µXłLE™ų÷Y•÷¤[öpžō³·’óL¶.ņPĻēšQŠļé±óīeTXīYżķ\Üķūaļķ+ļ/ī`%šīx?,ļ9åļQÕĮš6¼ńÉnČņ_ˆÖó¬ŅōGØØõ°Göęh¦öĮ,Ęö8~“öoģ‰ö)5fö”8jö¢±öu6J÷|ō5ų^ÅełoŃæśŃŅ$ü®vżęZžž¤‹’j?AĻĮM%³®‚ķō[2”G”pŸ ŽGÄį~SX‰žنż`„üķł¶ūȼ ūߊŸś©°rś¹>…śńzŠś¬¾Hū4@ßūsʃü‰†&żö ŗż§ę4žR¦’žŁūÓžįÓżžØ»’µö)’Ģ;’°ŒR’v„q’T«›’ ×Ó’¼“(„Č p×µG^ˆČU|i,†&Z•ū–rüxK-$VŖqIī_ūÜy×+’‰Ӌ‰³€ó+ŃK»_£Tś 0uz#¬ŗś„IćqöEÆź&'ówĘēć ėó_ \ą Ļ^ébÕņzEŃs®łž®hD­³øSé·‡ž5įåŸŃ‘Ļy÷/5ßČßą”iføKßÕ8ŠÉą²—\:B”dŹåĆ2Ų–€Rc¼Zéń m‡/ ē… ļŖDš±'?Äņ@!xzŖ‹FTŸ.ä’čÕĻ]KŃõä@ą]°x%:¹8ɵOE”7˜ p³æ0“ >ęŽĮĻ/éט“Ö ąĘ”śj<I°0­ö²Q,#ėłDĆPW ÄJmo÷»(ÄCōĀÄÜVAL„ œE-CÅĶ%~`vÖXõČWcPÄi;*Ŗ7–ćŒs„Ņķ_ MŸ _‡Ķ •ĉ HŖQ ł¢+ » zĻ" Ī9wŠTtNaäDKņż12c¦Ņne}į\hvGčSVĖ~® – ,‰– Uua ł)ˆwOøT&Ȋ£Mø… ’”“ c żŌz éżŃ žż;Tģ64•>źöM³”ųgÕ¦dz%łwbMœÕé•TÕf ㉠Ä%¬ ›B7 " ÄŒ>^†o¶’Ų¤§½£¼· !æ°ĆÉ’ƒ{Ķž!ĀżīÄ¢ü6[pū441ś9_ńų¬7Į÷· ³ö¶ Ųõß÷<õÕēōvuŅōŠńōP,õ3ahõgrˆõ1tõ¦õ¶ƒōiä§óœ:¬ņc ŖńĒĄš_ė šG¤ļŠ@•ļįćļĶψš,YxńQќņJŻó #õZ{Kö„“O÷4ĀųŖŹµųł%04ł2•$łoVéųzv‹ų4Ūųoõ”÷aŠ÷°­¤ö¤KöZŅö[‰ūõ=c ö ĮCö}ß§ö¶Š;÷Ó+ųķžųŽw+śv¬ū\“ķü idž‰_Ó’õ1,WądDDx‚e.?&Ö`„]I_ĆŖįMm³€ä¶tĒ—·•s¬žĪUtp½«ló’'ė žę"ü²½Kś ¤ ųŌ½3÷[‡ö³ĖCõۈĘōą‘ōx7‘ōĀž¬ōćĖÅōV+¼ōš“tō5ßŪ󂎼ņ ¦ńiQšīŪoīø‹“ģˆćėd-ƒéŌ2č1ēī:KęO$¶åѾ]åū}@åJ^åWƒøåHQęūX(ēņĮ;čPqƒéÜńź18tģ ōķW_Yļgš¬${ńjzņr^Pņ-ņ¤åÆńÜĮćš-VŲļZ€ īüFQķ ņģˆõÅźUµé,vąčĶRč4*čAlčžóTč$‰Ćčå×Qé#_ōéūś£ź«]ė±Õ ģ̵ģģī̽ķ•&Œī^Kļ źļПXšV‰š4$ušéƒ!šæ‚žļ,ļĄg|ī}P īDīĖTīzÖōīžŌßļõ™üšX’,ņĒVTó†ķ\ō‡Ŗ;õĶrńõluŠöŖ÷Y̾÷ą/ųšłøķś¢ü‹Ś8ž)żõ’‹«Šƒ­Ė“Ŗåxن”ćŪįΆņ“g9Q’W!žģŹżJŽ,ü_iūHyĆś˜µ6śÅĮł—Óeł#$łKūųYråųŸ\Ųų»eĒų½Ģ¦ųÖ4oų[) ų菥÷Cw^÷ ó ÷5 Ōöt³ŹöN÷ö’]÷ø ū÷ß`Ėųą Äł"ÅŚśŒ'üO¼&ż)€AžßE’ø,²ņȗģ4}‰Ų+Ū^`„ż;ÅĪM˜lOęG~=ūŪ:ŌĆG~#g“\–^ŠĢ»ū°|hØĮŻaFŁh“pP°VŠ©ćnŽ’Üpož’Ļ\ż\Šeüm]˜ū@ŻūÉŖś‚äœś¹ßś}ŖuūA|]ü*ڐżØ6’2…§ Źgo81Nońß[™w` €‘z d¬ p#“ äj• ÅSŽ›ļ~¹ksÜÅńł %čšŲŸyF‚å”:!]f5 £, Éź Ķą 곦X`b „2¬DbÜĄčģBD’8-5ž@leż|Žįü²°ü„ĀĻüš“4ż/Ļżæ†‹ž¬AX’įü'bōƼļwƒœXMĻr•Žʆ‘¬³!÷Ģ€h ¦µ)˜ŚD(¶ĪT¢:[ņ•X}ķO;M¬®æŃŖL”÷ó"¾Ņr—޾u‘I y˜ņ,“}’–āžæõ]ž~Ęž8ńż±Æ"ž”sœž1ćU’0/ANNŹmZ­’JD³ąČ˜ļĪYĀķĄŸ”éf Ėų &Ģŗ 0•T ']š •{— zŲO tä@ŲļELĘ棍8[5Œq¬-ęēĖŚnxŠ–Ģüż®@^cjč‘€4Ģ /w1 $ŠŅ µź¼ ČØõ R{ ĻÕBÓć;LxPåēiZEtßKažŪ)sÖĶ’RįSĄgĆnuߐĆCłŠß4KÉFƒJ3Ābõś¬Œ żŹ£Mp †Ü­°ņĘäYŌßiŅNH»•l‡éi/ `š­ ö± äŲ.fÅ?BŪD#HSTŲ‚õėžS żq°üŹō üˆ¶ķūˆ üĶ»]ü¼zŃüĄ—Iż½4ÆżÓUóżČgžå–žśŪüżķ[ķżß,öż)ž<”žĢģ;’x홑4C~nõÅŗū¦VnAbĘ^ØÅWVr* ūś× \b ÄUŹ Óh *+ N^ o>ß »”s ńŲÜ ˜4" ÜNW&m¢Ž=aĆųٱ°›‘²nĢ$Hk.°nbģĶWßw aU ˆlL ū_Cœ“#=ĢŪė«_i”Øū³+ZŪz|^ݳiwĮ,ÄÆ¢UūĒĀYœäK$ń"j5~.nuAh ½VZņ$ žņ W óg„§ót°xō9æxõpŗ›öą`Ļ÷ékżų>SśJģś ō…ūPKŠūGaĒū˜’mū|‰Ģś ļł¦ģęų–Ä÷¶Ŗ™öŪyõH¬tōŹC–ó–Ŗåņf„dņ>ÓņUĆåń§Hßń»5ūń;č9ņȝņõ(óiŁó*(­ōR§™õę0öŪ—~÷#RųlŠśųżnł„q­łĮ]Ąłŗąøłs`­łč“łŖ×ŻłŃņ1ś |¬śŠM?ūĄ„Õū¦oXü¢“üWŽüo»Ņük4›üP JüyXłū.*ĒūŗŠūz-üŁčüuVžżŁÕ\’Ć(āØķcķćµ­±aV=ĪOFbķW+sĢ"I¾ķŚ#”ŽˆJ’®šżUa–ü0ü=ūĶģłĖØųŒ^{÷Mčnö”ˆˆõSŽÉōў.ō“&±ó°ĢIóóņŻėŖņ¤sņ’nRņjÆMņ³½jņŃ1¬ņÓó‹”óŚ/ōIiÖō²Eõ¾ƒöŽQ„öU- ÷ J÷‡fZ÷É<÷aŌōö䂉öÜ÷öŖ#nõʤŃōi=7ō’¦óėö(óœÕÅņ÷†ņ:iuņ—˜ņ_ ńņI|ót8.ōØČōōßɹõZsföų@ēöV_$«įÅ2ėź+Ņ%ų·F‡[¦Ś_üņ ‹dŠ ŖĆs óQą Bó£5¬B8PŃ9ÖGN²t‰žÕ2üü¼²ūِ³ś=ąžł\]ŽłÅ’UłøāBł‚ZAłrN;łqłwŽŁų¶vjųÆīŃ÷ń3÷"Wöpū˜õ}ņō‰pō¾:ō}®ėó[įó‹[šó  ōŠr1ōB UōóĪwō87ōnGĢō†Ć õŽ÷iõ*ŽęõJē„ö2A÷ųYųAøźųVr¹łłdlśē`ņś„X=ūiDūWūgf|ś ¬·łĆ”ĄųōI¦÷’Zzö7OõØ8ō,#DóŅņōņńū°œńöś|ń&æń¢Éń%r)ņ‘ŹŖņ|IóóŠō¤QĶō9¤õl0|ö±ōF÷p÷÷7„€ųī!ÜųRŚł·2łXaūųĒTåųhćų#Üł‡dłiųłłtøĀś1„Æū¼«ü±”ż¼~ž.W6’bŁĆ’Ż*r|v‹·ėäÉłhPśū˜TĀV[¹œŲÓRčūŠą›y łĮ•2 %®Z ©nE Ɍ „ą£ĮV8ąõČ×^żŚ8fü |aū(Ķ[ś-cłĆO†ųåŅ÷O÷ąq’ö”wŽö#*ąöó=óö3Ļ÷Lņžö¶[ÖöÆMƒö!öĈoõ«,ĖōAČ/ōÖ²óŽĄcóĖ6QóX€ó1ģļóOŪ—ō‹4jõUöVĢD÷°5'ųÖ`ķųńYł4oś:ŠLśÄónś¼ośSś1ū!śLĶāłź·œł†ŹVł-Šł.yäųŠĮųAž²ųJZ¹ų^„ŲųżŲłōönłØŌķł&ŗ’ś8ü\ū*HüH0Lżo^ž–fs’Yo€C}ˆacZ0”§āĶyēēō¾øQ¶+Œ †ž0‚¶å0¦ µßvÓßgp¬©ęOkfŲž|óVżčšŻūlrśŖKłąÜNųĪ‘÷Gå÷Ś@ŅöĄö„Ėö<‚Üöä/Üöķ½³öt(Rög€®õ>\Éōœ¬ó!ƒiņ.•ńŻūĘļ¦R‘ī/‡ƒķf§ģFpģ>ė‡ČTė1`KėłYqė,…Äė›C즸źģ. øķ=“„īś Ŗļø¼šX‘ĢńQrĶņ>°ó@³fō2ęōš&õł=$õ5ąōa¼_ōÅ¬óŗŌņĀÅäńØjļš\Ēš£4ļPHŒī¬īIÓķKÅķĶSåķ·ó*īĄOŒī÷ļ¾ā‚ļ”š­6¢š;<ń3Łń|Esņ óó`zóKPŠó(:ūó ;öó˜¢Ćój°mófīóÉĮ¢ņ[ņCDņÄ[iņ{Ķņ„.ióāó,ō8äõ† ŻõOW„öMlT÷„ćč÷KiųlįųŒbł»›üł³½śķ5Ŗūz]Įü©OõżjĆ/’D—Tą“FśŽķ÷÷9)6ēÄRr!›XM탒ֽøžœ2ž„Qkżz¹ģü¤µƒüL+ü’2ąū~2”ūø1nū/—Fūaé'ū]S ū€Sšśł_Źś,š–śń3Uś…ßśbɹłs‚rłc>łv¤'łOļ5ł"”mł¼¦ĻłqĄYśkõūŠū0[¬ü ’ż–XwžØ^S’ĖaŌöżpæ:ó3ŅZ ØcŪ!¼õķāų…Mč׏É!(¤Wx€Šf@ļY·ø\Zj|dz«”üQt˜H4ų쒁+Œé…6PSs’»«žėŗėż›Ģ>żs~ÆüŗEGüŒcü<µ üJRDüŖšŗüĘ)ożuŁ\žwŪ{’æ[Ą>ČųF~€oŲ4ō·éACqA° ‚+Ģ Ņ°\ §Š QŪ* &p JÉ  c » f» ¤.œ EbZ ‡ō įk •ŻĆ īā ”m4ń/W•o7~qG‚›Ń|¤Hp’Zb)\Œi’šå–žµāņż3ꇿ:R\żz†pżÉ‡¾żwž:ž]×žčŖ„’P:6Rć)īˆON& )½EŅMŒ}ÕØĄMjŠ­óģ9 pÅōöæi?kÅ{5юŗŃÖū«S5LÉ’¤9ĘL)Ÿė‚ƒ­ŽiHF:°$¾$eS½Õ’sR’āĻŚžŗŅ€žŽČSžö¦]žĻĮ”žßū’^%Ē’‘ü”:=zLkU=^ņ-K],k‰ü"g¹gEalėōĮŃw†šMme “ß 8¬d gö GP’ +;1 „XČ ÓJ 2Č« ŌMą 0Oį Hē¬ Ė’F : ¹ ä /_ `µ ±Æ$ Īu» [,… 䥈 eŁĒ +o> 4)ć ›Ø LH ųW ĒŽ%‡ą8.‚ųĖ _Ž‚uį-5d™|'·Ļ!į®šõ`)š.ĘĖÅ ‡9R#GŹ£ŅS ~ŪdšH®z„ė ›“ ? ¢ÅN g^G k$% !pęzƌj•ćf¢Šr(Œæs…x’[5cž‡bŒż<ćūü£?³ü©­üv¹Żü¶S4żz½żaž^bžeü„žWŌŠžĀtčž ÷ž„ø ’}2’yu’'Ż’TÓjüO%‰źÕlˤ`³‚— mCˆ.Iß×üYgL-Ü;5„cpXžŠ¤Ē€¹ÓPzóś±M‚‰#ķ\uDµf“Į¢ęvŽKO`ŃOP… ™t5X©š$)ü©ó!4ŸG(³™ 1 >X® k n·fP\‹VтKƒØćȵLŹn…Ō‹æÕ\nõįR'usJé[Ī-Y ” ķĶ „ -®łu‡ÜŲ9īļ5š'-c'¦Ć.x<ģ¾÷µ7yš’Ł»ŪžLöżiōķüs¤Ėū"ŸśaWzł­änųÜ[Š÷gŌö0Nö Wņõ’øõ …–õ׃õWxõ@tõ÷zõ½äõH Ąõ¶Tö蔇ö-™'÷•„ģ÷¦ćĶųzė½łH¬śŽa‡ūńˆ>ü“ęĆüNé ż3ż›Įāü·süč§Ńū!Ō ūzß(śŠ=łŗÓTųŚE}÷k>Įö 3(öUݵõg”jõH£DõK-AõŁč]õ/~™õ]kóõ‘*kö¤ųžö즪÷ŗŽfų‡!)łS§äł9 ŒśüūQ(sū=ŪØūF¹ūCN®ūu7—ūÜzƒūē^€ūjĒ•ū‚„ÄūĆ_üŽOüÆ3“üŽ£Ćü$‚Ųü†HĻüK€¬üCy{übēLü‡4ü•÷Eü6!‘ü³“ż~ķżŚEńžŹĮ' 7¦4=ŒŅ%¢‚”Ī£–Jm’ ė–I/ŽńM*X‹Ć[’‡é^žUeżÅ”püŸŁ‚ūL­ŸśveĢłĀłō_kų Xä÷~¦x÷šŽ$÷¹×āöm®öĘŠƒöQēaöČčIöš”>öĒCö=’Yö*ū‚ö"¾öČ÷‰[\÷•[µ÷;Į ų±õ[ų­œų‰‹ÉųļČŽų'­ŚųĶæ½ųœœŠų‡xEųy|ó÷r)š÷ų>÷PNēöҹ˜öh2Yöe/ö z öCD2ö·ˆföƒd»öZ*÷uŖØ÷µ(ų@ œųBFöųča.ł\ē@łKÉ/łĮ«ł¶TĄųÆŌvųÉß/ųÕ¦ō÷JĢ÷żŃ»÷‘~Ę÷k5ī÷­Õ3ųÆJ—ųĮSłą±łė_śē ūėQąūķ”üĄ{WżlÜżżŖĮ‘žzN’ى’BĪų’ˆ!hōØŻÖ¾\DeåtjĖ…aˆõ×{HćwÖ³€†‘cxł#|ĒĘø§P&Å &qųt2‹³”šä’œs’q–7ž5žiżń¦®üZü_j–ūÅEūžķūœūn`(ūSŅGūōJgūNˆ|ū>ށū[wūY|būrLū×`?ūwCū"Ä\ūj{Šū½ĒūŠg üTü/j•üqĪĢümūöü„°ż¹ż3 ż?üüe|Öüė¦ü@nüĒo0ü?0ķū¶J¢ūŻÜLūyėźśNa}śņŒ ś¬€™łH ;ł@lżųžmīų̐łk3|ł] ś®ö䶔ėŅū2Ōü›ŚżĘŚž›É’Ō£·bgß¾÷ŽĮūw•OūĄŽŽwæ'é=5ō~C" }~IæŗµöI”ļģB¤ sØœŃˆŽŁCüÜm¦\ɄĻEĪÓiz¼[Wŗ nHŽĮé”O;h Q{ė&^Öu”¹8¦‚ć¾#Md•żÖą īāåäN‡Ēß”]7} ź^+HKW6ŖS% T…£óx8Ķ\؜ņ•båæųŌ‹)€‹"ē ¶Ćā76J¤Jeų¼83J‘Vy¬g_voŽ6z’‡š–žß)Ōż}QAżyNéü^QŅüV3üü`ż ŗšżŗ²œž^P’\ł’ƒ%ˆō¾<Õb*µqĖźsītي~ā‘—Ćwa„żJŅ›mAꬩ-*Å^W›x4ĶxIA_¹j-/„åmŠ ¹ݦ£ĆÖöm—N¶sĖ’’ē%’!ęĪž—žUуž#"›žģ%āžėĶ\’ęŻ ŹŌšwbš9r„†óِ•"ŻĶPĖŖW “. Ė6Ļ T: …­p Ā™v µµO @ ’ RP† Wõå Š ×.HŪ_ą ÓB(~콆£[ś’Ķ3äżiåüüµ™ūSīū¢łąśåæŹśõGŹś’ќќ÷¤¾ś-f’śĀZJśĒ źłµ˜ył9Üłõ”ųī¦3ų/č÷Ø{“÷Ą³•÷Ä«‡÷žŠ„÷W ˆ÷[ Ž÷‡5–÷®Ä¢÷htø÷øjŻ÷«Åų§ lųźŚŪųełłSśæļ¦śÓGIūØ~Śū(Mü=‹•ü>Ņ«üZŒü*ß6üī±ūÓŁū4i7śŹ¶[ł“¾}ųØ^«÷ńöńēXöj>éõ—¤õ“˜ŠõĶO—õŅĘõtÕöŽÜuö® īöćov÷³ ųv„ų’@łä{ŅłE‚TśE~¾ś( ūhµ8ūLpJūpMHūtR>ū’›:ūŪæJū…yūŌ­Źū>ü°Ģü–ŃhżNéž!ˆ™žō’Äz’CĆ’!ų’f¾"šAPšyސqé7ŲhØ×ūŅ «xõ„p™M’ ōŌjl&ź±rłĘ{ͳ”ƒ••A=$öEÖ„Ö|Qķ–÷š1–žy,˜n»)‘EŹŠĶtBV•2ß6ųf–”ź¤@gŒbŪ’ž-H’q±ž±Āž|,—żłģ"ż¾•ČüƁŒüĮƒpüĪtüm€”ü„ŪĶüāż[avż[$Śżį@ž}脞”’ ™]’–¬’f5ņ’ŗ¦.¢kb GŽŽq³ōśÓļ&ó[Ģl@­PyDPă$#jI”ŠĻTä–£ņŗ‰,䘕"b{?ī:ģķ}WŠžotW©u®Ž¾C¤ØDEaéQę‡Óõ666W§¼ļEŚ ›ØéŚNŁÜ×ĶAą½1Ē¢n y ł? ÕŽų ‘ā„ °ŲH Ō?ā (“p dš ?-[†S«bgŚfäÆĘE«ƒ‡Ć•Žœ f­ ßŖS źĒ‘ 9ʽ ‰$Ų cõįzäŻ汊ė^ĮWįøķYĮ°Üä­ü+żnœ#8›ż» ęS§ė B2/]øaĶ›č{Ł‹R÷|]»›ŸĪ;MšźˆżL¦ō)ŲŅė¬åz¢tFÓÄtJņųŲ_vĖä*ŹPŅ—VŽ\Ōč»'źÅTŪiZ·ōĆ|vŖ.3ĀŌ·Pz‡<,ٱö’rśā’įö’sF0|ČŹž—ŁT3²KÖ£{¬Aģ—½fxW¹¾źŚv‹üoė{”šųż²tGźń1 p 8ģ ˆÆ` yDÅ I Ö7 Ž43 ­Bü r¢ “†ņ Įó( Cb?ČŌDūŒJ”bG9žƒ ¹aā©UłÅlłn/¹ųüö)ų€s÷dóŸö ½õ›8ŚōɖōĮżJó!¢²ņžž@ņ9L÷ń¢RŌńV\Õń÷ńM6ņ&ņč•’ņ|j„ó$>ō=üōRƒfõŁ×ö“öH÷‚Ä÷łČ!ųšŠYųæhų)MųŽJ ųaż£÷00"÷›JŽöWŠņõ0”ZõńßĻō!“[ō*Kō4½Ķóčsøó”ĀóV)ęó>ōWhō› ¼ōB9õŻDzõ¢1ąõÕpGöq?¬ö­k ÷(ØX÷ųm“÷†J“÷Uø÷p ÷ųq÷I‘6÷žłśöĶöx¹ökÄĒö‚_üöET÷ŚĪĒ÷Õ%Lų…¦Õųś8ZłžÓłPń=ś­½œś’]õśĻ,PūK¶ūN›/ü~ĒĄüŖ¤iż]$ž3²åž„sž’õż=”JµąłĒļćM•Uī,G¹’įµG’ƒoįžÕµŠžLpCžĮĆžöÖż«šŖżŅō‚ż-t^ż˜S=żF żżÆżćüīĪĮü[8™ü£siüwō3üµƒüūSÄČūüLŸūK†ū 3„ūūé›ūÆĻūvüźW‰ü5Ę ż1Ī›żYr9ž¢Üž1}’w…uą¢Č3ō„…­qד K7ZŻEp@Š×(8–ćüŲõg¬µŚ„ˆĪfę)Tė°Kŗ"IżFŹż:ś@!åśó„&±ķŅYÕŅń’ō’¦Š’ꕾ›‡.žÕfŁżP՜żG`~ż}Ŗ‚ż·+­ż‡Ļ’ż‚zži·’‹KŪ’±…“ÖŖœgāˆū]nŽCF)ĻŅ¢ĮA'Žę*ąĪiņėHBģhVń}†‹‡Ņ•ƒõnØFŚĢµH²NW‹×;·Sń6ĘÉÜ05U”Q½š؈Fbg—xėę Ę:—Œš’Q’' ”ž—(Xži@9žWuEžĀyž YĻž¢Ź<’»°·’>y64ڱ͋%wIÄń.KŌ›†rį_AŹ<,ˆI‹­?N i–ī–Ұ]ÕlÖo(ҜčÆ ±7„i=b‘kIØĖ5Ä”!\]džŻå§¤ˆłYČ ŗ1K’¢i’Źrמ¢YĻžĻ2ļžĶ6’Ę-¢’ژ*ÓĒōQq%胏«žmp†,gŽb`Łp ĶąŽ]sn¾3ģĘoJŠŃĶ!7ƒ£˜oIīzŖ/ ŁTU ŗZ w–; Tyūo°ž‹D-V^±”56;Ēnø 4ŁņÕ1Pł2Æød+†{™÷D£.ŸŖi¶øŸŲ’čI’Xtž÷‰žš5æżAA¬żjVĆż€0ūżeåGžć·œž!īž»¤3’i’*šŽ’‡°Ø’LK¾’†×’ ü’Ó1b|łbܗ½O) ŅöO]!ėvät"ĀõŲ¶iy ĪĶ· øš_‡¾‰O œW •‘Īs¤÷8ēBŽ‚Ą¼b–žœ,/ק͉&ƒGAXŠjT¾%}Ś*ÕDø[ūH œŽŽ˜ŻČ’P¾āL³€/ózs Ź90 äĻ .ŻP X²² dLõ J @Ŗ hל - · ŽęM 0æ ņh ”F9 zŅKE,LˆźC40=·”ArhY&hŠ·×*\A’TÄ$źZ[ż’©ą¢’éņB’‹£Öž9ŃYžļĖż+0żŚŒü3Cźū9žPūĒYČśCUśNóųł­¤²łćį~ł˜zYłÜž>ł'ģ+łˆ!łŅüł–`,łJėJłķ€łėĪłĆ8ś™¹śLūD/źū¼Ų‡üyż3“—żĄöż|/žéĒ>ž²®$ž%&ćżKżŻ‘’üŃģlüPŠūKŽ3ū> śYś“—°ł;ˆ^ł}N(łc– łŸģ łŻr$łr]Rłŗ•łųöźłqŲQśüsĘś4Dūé+Äūe]?üNž­üÆżNHż6Lmż5/xż™!nż9WżB<ż’;&żŚ6żØĖż_„,żÄ!Cż›·ZżŻĮlżŃ@tż4ożtU_żų!Jżk68ż4żådHżō~żŻŚż”ś[ž]jżžvģ±’‰ĘhŌgFl”E|źŌ` 5Ļ󜥬6?føĒ¶"Åt‡’ö_ģžĘmTž‚ķĄżĶŁ2ż²Ļ«ü×Z.ü·’½ū°G\ū ! ūŸĶśIśS)yśf…]śøśFś|3śo"śĄ…ś‰C ś2cś L śń“śGz0śt›Mś1OpśŌ#–śŁ*¼śĖ4ßśW üśø5ūš}ū³ūßąū¼>šśM ĻśĪħśc4}śŗZRś£j*śƒŅśÄ+ńłóęłnķłŠŻś‰.śźšeśj§ścęėśÅ,,ūžaūbV‡ūĆźšūgŖœūēMūÉ@wūżYūSõ;ūy€"ūūćd ū‹ūxś$ū[ĆHūˆ|ūSĄūĢPü ’süküŻürzNżwĄżƒŒ/ž@˜ž•˜ųž4gP’+”’a”ķ’ÉÅ8N‚…>vÕ+¼(‹­}×ŃQ0ą`Bå‘é ÆZ·5Õ§3ƒՂKÆr-l­ĄPK\™ŽŖ½hćÆė’ŠUĒüV÷ÅüŠĻüęńŪüēüĖģüčnģü.CčüĢäüäoēüzŚōüčžż³7żÕ™iżĻ%”żVµŲżų9 žČ“4žØsRžńcž fžE@\ž¦.Gžą,)žHęžƒĢÜż}²żB[†ż'”Wż¤$żuGģü Œ®üæ¶mü\›.üŹ?ųū„ĻŅūĆ Ęū-Ųūåč ü¼½`ü.½Ņü"l[żæćņż.üžRA.’‹Ä’y2O=łŹŃ5F°Ž:“Õ9„ l3īĄPoh÷w""š•» ­āØį×p;p–b“ž}ą‡č|õX]ö£Õ^9Š+yAßL„…ą…É=§£“ź8\Ś\—x²CĪhHKŻųSFŃahšŃMž¶ˆÓ¾üģ÷% ÕČųÜ@ņŗ“ķŚ\²Ļķ*tm5§ćžYŁvxk­ś7×ēE’Ūāsō"Q/)ƅ“×ī)`ō2ĻŹ 2f]ƒO2½ŖāŽUĘélįķŽČQC¤ū w/CÆ1VČ1‚Ӆ6Sūęnˆ•±DKõöM®2“k·Ž.—$ö ­¾łŌ„7ĆD]ū’<Š„’SC’œˆÖžéažąĶźżkgwżVż‡““üģĖnüŌj>ü†d"üķüÆŪü‚üJüüū¤üæ#üqīūM?Ķū¤`©ū҈ū"¦qū–iūĖVrū=ŽŽūy½ū>Żśū™BüÅfü¤śÖüĢõżUöRżīY€ż¤¢żče¹żŒČżÖĻżÓ†Ņż]Ńż"PĶżø,ĒżĘ»æżÜ·żē°żN«żrŠØż=¾ŖżAs³żÆÄżĮwążü}ž±Į=ž%?€žŸČĪžf'’S†’l č’q¬I6Z§3Jž@)L4%ĄĖÅžŽīę, Nvåm ‹ŃņøšÅg?„&ū.ÜĒXOėŹ’ē©?’Ø`³žČƒ,žÆM±ż½Gż7­ńü„č²üIAŠüŒĄtüv.mü¢’lüŖküH©`ü"įFür3üĪ Öūüģ~ūw@ūŠ†ØśŅV7ś;Ģłē¶mł„› łÆæēųÄųRė“ų¦ŒøųyĢų‚¢īųčQł¶¼SłļJ“ł’Łłs%śä tśĖÄśƒ^ūś^[ūN›ū~\Īū)ńū@7ü Rżū*Ęåūg¼ū}a„ū ėAū¶ßłś`Z±śčOmś‰+2śÄqśķsćłE%Ół!ŅłŻęŽłą?÷ł©“śæš@ś<ūmś9žśDDŠśŖ£ūī3ūÖ`ū²Ž‡ūŒ¦ū¦ńøūdWæūL¹ūµØūŠG‘ū›*xū|:cūšXūąžZūŗQnūČč‘ū©`Ćū ­žūF?ü)Äü„p½üĢöü)ż|•Yż‡įˆżM »żZƒóżÉæ4ž>„ž‰ZŅžTy)’Ē)’IØĢ’3Z E61J“HāŽ2hd撹ĺ’ƒ’’–ŗo’ŒĘR’:’mS%’!m’ŸĖżž·źž1TÖž8ĢĀžBiÆž•°›žŚŃ†ž$öož”©VžŪ8;ž®įž[Ęž+ŖģżiŒÜżņ=ֿܿpļżsžx²@ž }ž“ÄžŌ’ĪČf’«†»’SĆ ¶.Z|öNéÖǃ$ķ"™ī4Qš93ėā!÷ ĢŽėTČĢzųƵ¶—Bx…šCyY­qülz]eĮ9Z$(HZ¼-ūß éĒą’‹¶±’Õ£€’ äP’FŽ%’ŗŲ’Mןž„ąžęž(6żž­Č&’Ćb’föÆ’ļō s+ÉąhĢO4ėŗ}ķńs—,¼²ŸõŪ&!K§@VZ?ev¤n‡ĖsäÉtŌp¹fŁ~TWŒ9IP“4čLJ³¦īwh7  ņˆŖ%^ļeæ½ükOŃ$Ņ’^u‘’L^’q/<’3…-’G3’™ŗK’_–t’"`©’'å’6#ģP_ą —AOɲõó \W>‡ˆZÖKp¹d~ ƒ’ū™sÅ!`Į®Gö°,‹yoö÷÷…įœŪĪjėæįŪ³Ŗ ©Q.÷µµAx B[q…66’ «Ż’r±’9Œ’ŗ%s’ż[j’._t’-Ē‘’…OĮ’<0Į¢J rœķzń„ FÖ—'Lāš4&Ūbw–@Ć}7ė×EOÉ4ė½ZdAƒ·;®gCŚ+ÄR^*"kG’ŽX@[~6N[©1y\uxŅ<9—`„ZŲx!²ń}͆Lŗ[–¹RūĖŠzšY‡$TdLS«Šōż„<3ĘPŗ2=ķŃāNķ:^6W!XmĪc}½Ļ† Ÿˆ²ˆ'q… V³i2ĖjóŠFo–ĒW’Ń˜ŠĢӁ]$2"ßÜ_=ōīŽj¶Ļ*IŽŹŁ‰õk(@§’`éY’éś’ćÜūžęīžhõž’a ’Čļ1’øł\’÷Ԉ’Ѱ’hįŃ’/ńź’mÓü’ Ž ŃNW”"Üõ4N%Ńpś›› źĶÆĀ,œ@Xŗ{ö‚“kµčA}[d<Ń5Yśękå—sʰoZ`oUEĖŪ •źōa…ÄŅ;“TédŒu=äš ±°Br5æ'8ZOµ‰]ŻŌ ˜-EƏŒeöų\®æC6’Äha¬Kaāk6 ¤|&ŗ4Ž¢3Y»$bĻČuŁजķP›¤÷-ū’)ģ%ē“OPA”ŃMBh4“8³j£^,XÆų’’©Ģ’÷U„’I…’ŒFX’ķZ-’ꐿž»ńČž:“ž½ōVž~AžŹéż·k¹żōjżŖenżożRżQt=ż -ż×U!żużz&żDŖż,żdDżN3fżö’żÖIÉż%ž(ēHžj ‹že!Éžßžž€(’ēC’¤ÜL’–?E’Óń,’Ūæ’ aŅžE=–ž!.UžĆ:žŹMŌżL蛿ŅŪlż*Iż— 1żŽ—&żÆ|'żēh3żżHIżŽžgżĻcŽżŹ/»żdÓģżŲU!žOHVž‰Śˆž9¶žČ4ŪžSöžä˜’tķ ’‚›’«Pųž8jčžĒUŲž`ģŹž›šĮžµŠ½ža»½ž‹’æžVœĀžĒÜĆž3ÜĀžLŚæžPR¼žžÓŗžb”¾žY$ĖžK@ćžj¦’lܤ;.„ÉēŹ’øü’;`X’’Ģ!’­ķžŽ¼žØžpWfžVNCžę–&žĻ:žŽ“’żfóż±&źżŻOāż’¶Śż¹»Ņż-XŹż¬Āż¤„ŗż›¹“ż§i±żÄ"±ż0&“ż¢_ŗż7dĆżexĪżsžŚżÆężŠzńżTļłże<’żZźžGåžżNwłżś7ńżŽ÷ęża­ŪżmŠż`Ęż:½¾ż%“ŗżJ»żō)Įż/uĢż ¢Üż&|šż@žTćž;f/žā(?žĪ*Jž (PžVQžZ]OžĢŁJž­gEžU@žZÅ<žĀ¬;žWŲ=žųCž…£Nž#S^žĖNsžU•ž©Ę¬žCŠžŽiöž7R’ eF’am’Ęe’’) µ’čmÕ’$ ō’õ‘Ų¹.(śKžkiE°†éń¢õ¼?Ó LäčĖī¢Ųńšķs½ąxmĶ‚ “ꆕd·r-SL»ż"ēd÷’_Ź’#’Ó£p’:ĻF’Ø !’k’¶Åēž’æÕžõĢŹž&śÅž‘ŗÅžŪ6ČžÜ²ĖžńņĪž …Ńž‰ÖÓž מ÷¢Üžłō垎Ćóž]š’ēq’„2’ø5I’Xo]’|¢m’xÄx’Ó_~’Ņ~’&¶y’ Äp’+¶d’ V’CuG’ģŻ7’t(’> ’~@’TZõžŲ?āž¢pĪžļ'»ž—PŖžĶEžžn™žEɝž˜¬žV÷Åžģ-éžā’O”E’©z’Æ’Ź¶ā’–še>ødšœ× Æā|½Ü€ĒITĻ$¶Öü-ߌ½é»Øö9\Ė‚;"śi,§1 Ö.“÷$įϳ­ü€»įø»Å|²«‡Š–TĮˆČ!„r‘‰ķó˜#)±:+ŠMó_—-:Å“X’¤qji„Wb‘ü°™’鞝µ¢Ųs¦J÷ŖŹd°N=¶xŒ»å,æĄØm½Ąķ¶꘬ʞĒńؒz{ōd¼ M<Ś2­õ6„Š«KØv|ü7NŽQČņ’;IÉ’«§’¾’zTƒ’XBƒ’œ)’ēp„’QjĆ’+Øå’3tžT(ЈB¬]UwV`>dą/bż¬\BÉUø‰OĶyKĢ~JtĒLŲQÖ°X`†fĖ koÅl*QkʟfČå^ö}TuÖGłj9ŠŹ)ż”%Ć J#ū’(Šī’Fßå’]į’G?ā’`[é’e[÷’•­ įk)?MGwC¦ź®×0Ō :$Uf&ŸŒ˜°«IÕĀåŃ~"Ł Łæ4Ņ2Å*ģ±ęē˜£zĢFUhĶ*üśNŽĘ|„Ž|ÅTęĮ ā’į]®’Œā’·“X’čā9’į#’£v’Lµ’• ’ėm’ڈ’ !’·"$’ŽV#’Ł’§š’s±’[¤ųžžŻčžģ¤ŁžäėĖž7Ąž„¶ž” Æž])©ž/ɤžXń”žĖń ž$b¢ž³§žr©Æž#Ū¼žRĖĪž!åžćžžW—’īK6’ĄŲO’e’Ī*t’«„{’ŽĄz’¬bq’š`’#H’F+’Ėē ’ ĢéžmėÉžęH­žĻ’•žDżƒžw+yžƒ-už”wžr•žv9ŒžP‚œž¼‡Æžé€Äž+¾ŚžH˜ńžŪ]’VG’Mx2’%D’}OR’ō¶\’8c’5If’Šēf’’yf’ū˜f’čÄh’6n’ö"w’TŖƒ’*Ž’’Öt£’Ŗõ³’<Ć’„ÆĻ’Ł’ńą’nĘę’‡ģ’čóó’:Ēž’p]ge#øŖ=’\tŒ|ÕĜ„,ŗŲšŅžäI­ļwōŹóņwƒķBåŽÄŚcĻ 4Ā’%“īϤč6”¼‹‚Ā"pZ]²{J~Ø7Õ$Ü –ž’żź’[C×’'ÖĆ’EY±’ ’>’’އ’…®’ģY|’=C}’|Z‚’łW‹’[¾—’Ŗą¦’¹ķ·’ŚŹ’±5Ü’›»ķ’åż’ņ0 ņLE"¤Œ)Få.Ax2.Ģ4y‘6«–8P±;g@xŁGõ‡QY^]`§j YxU:…|Ė— ¦›Ÿ>›š—–ØŽ›h‚L‡tŚ‘eVÅVähIŗŗ>'Ū7Ōµ5ßź8»AvūOŸc%z%““=©®£¤É£Žć7žūÄdÆČ$<ń52)EæRĆč^r°i#ģr™Bzż;4[:€K {Cs6=hAZģCIŁS6Ēl!ł® Š/ņXŲŅ”¼É6 ­ƒƒęgųMĻż6»ō#W”±/ V¦Æir– ājī§%_%D+Ł!1ä6…#:z=ņš?„qAĖōA(Ažq@šā>2+=sŒ;`4:8;9Ü£8/\8‘;8‹8JQ7öĀ5ź2Ģr.™;(„k Ā{Z0˜:mž’āł’‰ų’}ŗś’Cv}n ’6×"Žļ1A½A¬QY?aUpœÜ}źiŠ®¦•JœŸ—nؕQ°Ņx·"¾äīƬÉ+ģĢpĻjĻ97Ģa7Ęē¼ėg°¹+”wšL²}q•kZĖZUvL9ŽAēĒ:t82µ:wö@–zJČ.VžŲb¶>o Kz1-ƒkj‰ŖąŒńŗ…ZŒ„:‰ Ō„ęˆą˜yÅ"s /ltædńŻ\(¦TGLŽüC*<ӎ4Œ“-÷k'ś‡! ¼Q§?ć<£ž’čžó’Ė č’ŻžŪ’“äĪ’^Ā’·’(T­’  „’!; ’į’œ’gœ’“¬’š-Ÿ’„] ’®Ü ’»‰ ’UŸ’ķž’V²œ’N֛’Ļė›’ņ>’”💒ņ£’} ©’…ē®’ķµ’H6»’­źĄ’ÆųÅ’qCŹ’™ŹĶ’ā”Š’hęŅ’ų“Ō’ä#Ö’EA×’õŲ’¤Ų’€÷Ų’ĶŁ’'Ł’·Ł’_(Ł’ņkŁ’UŚ’ėŪ’“ĻÜ’č>ß’Ä{ā’ӈę’.Vė’¦Įš’ņ™ö’¤ü’į”ÅWŠ‘ t&r÷čš 3µr°ĮµŠ–5§š} Y²*xž’pų’+Ąń’ņÓė’yŽę’V&ā’š¾Ž’tdÜ’$ Ū’a‹Ś’oÆŚ’Ų/Ū’ĮŪ’čÜ’žÜ’aŪ’ĖŚ’āUŲ’‹,Ö’bÜÓ’ī£Ń’ž½Ļ’½YĪ’¶•Ķ’J~Ķ’3Ī’47Ļ’éÜŠ’¶ćŅ’õ/Õ’é©×’?Ś’āÜ’m‰ß’Z-ā’<Ęä’Kē’;±é’»ģė’Šńķ’©¶ļ’L5ń’mņ’ībó’Č!ō’|øō’Y8õ’ž²õ’8ö’ģÕö’S”÷’Cxų’āł’Ƭś’ōńū’ Hż’'„ž’fenrir/config/sound/default/SoundOff.wav000066400000000000000000001131201513650123000206200ustar00rootroot00000000000000RIFFH–WAVEfmt (ž’€»ī  €Ŗ8›qfact€%data–O”Į“uóĄø"Ųfø'J å*PŃh Ių§s飯?ļ›ėįL‹‡W:כs R8DŌ^ Eü”€æźĘ‹žåą@äi©šK“·ģˆąī’ī*[*ņüĄÅóóIzģ^[ÖŻj_WŲ`TՈŠ0ŲŖ ą9€į¤łæŚ¶÷éā{½Ūģå7ĘźæPuėRB¼ļ9[u’Ć©^ż’Bw¬²5nõ m=ōśŌ7ń>üfāźź±Įfėł¤ņdŸō÷¤čˆõfžä/3bć³,åž"ē źjĘ=īŻ śCøN>L{’T—eIŪGįįPōI›ķcéī°Ł7ųQ—öRE…ģ2`åĪØčbTń~ķčĪéµāŗģǤļ*jšļ™žaū'Ś“ŽŅźüø_ ßźZ lw›>™ŻÆ\”³j§«¤ķ$śęd{¾ ė]† Ų²v²×š‹”>UŃvŲ F$²m‡4Ą/Ėźśӛy÷äČ>žJDŅž*^ūĶA&ōŁäłó”š `IģŁø}łüńy@ąTĘŃ _=®¹¬‰Bƒ ±īęk>¼ū­Ą‰ósĆä÷*ŖlØ»?göpSo&’÷t)6‡·)ŗŌVóĻ[ļ[·žßǧźVwąō(†žłF©½n ’œę2ĖȤųžÅé]7ÜåtĶ&ēŒ™–ń}»ķw{øļ“k³ļŠ]óØ2ōņu0‰éĢ„=ܾ&Ų?[֏ø¦Ś¹łkį×ĆKą«Ų\ÜźŸIęŖķrnėw`ūģØ^¦óhµŻźé@ž4Édr3tlk9ōč“T÷8ś3 Äų3A'ź`ČķWŲĄō‘qPų宋ņCqÕćŠäQO;ę§y~č€ę!ģ’ūMńæXEż|g™… 3ØÕ”Aś“qé=ž0j„ņ«Xī§HtńKz/ł|-ÉōąĖź—āåŸpRėŠ­ĒńbfÆģL€ź»īh+Įļj7fņ¦“¼žłćÜt²¾»ž¼šfę āÖs ؁‚»Ö!Äbü“n¶o {Ž6#ÆōG ЦjJŚåF#…o$&ß²«µ/ Ϛ›€Ö M«É2Z tŽ92tÖr ϘO’f¢ųeŸ’w~žš€Rśēō(õóPˆčļā©ļ±’4žģMS Ń.ąyŠj@}ćłźģūb㢠[ņłłäumödĀ®źŻ1r’¬ī9Yq1äµ'ø)UŅm'āĒ`-ēėŸåŁųĮ,äė(aRśhS¼ YD­Š>y :ƒi&ædŅō˜•Ļēu¦ę-ŽÉ鐣ņśZķž–š„Ęš>™ō“«wń}!¤ęqŌŪ 2ŲŚKWפķÜ·0āļeĖß½¼|Ž6ģ+韓īr!‹ėłvžīÆ-÷īŠĄ©!’ßŲŃ2AžDFō¬`0śFZ‹?5oõL)Aź|’9šb[öĆĻĻ÷-8”ļ?GIćŲǾåDZ6ēÖ×éŸĶÜķ©/pōiÖÓ’¬āŠ'ģĉ h|W@Ė1ūūaß(ń&H ļDæó0·[ł8¹ņވŒé`ń-ēFa–ķ$MŖńĄIģ©Õ-ė—Fļ'¾šOØlõŁ ŽČ_čgčŒÓżĻ C!u ›P—r’E@\ ?WŻĻ*ń3’ ;  ^|pÕź T–9@Ž–sc$Ža"!"Ēhóg ­8ź =š, QSŒc ó4LŁ”³ e„mż+EśOä†ć ČżXn1ł6ŲīóÕF¹ó;ŠÅļ¼»gņō¬rėŅBę§žĄmū0Ļ7 ķ6ēĪu Ąōé~ łN·6śFĄē \ĮŽ Q/_~`mCĒ!ø„(bnX)šė£$ÆL#;±„8N Ź¢µō×/|ī•.’¬Ü ·Y Wę­ īµ«GĒū‡kńC{3ēĶŌēVŪģp<ņh8Åķ_ xńDØ·ńUĀJōńżtļćī愌GšzŲŖ8Ó؊āēŽ]š}āų=©ß.ņąąó~ėc_ī&-Rģ!“Yńƒ<śt]jŌ'ė’³c—oHéūĒŠõ&e…üŗP#’Šņ]¦ėÉwņšü^÷XDœöœÄŲģĖnHćC‰ķę!0&č†G=ėc?Ńļ¹ė÷–ĶŠd ՚e§ūjGĢqrī¬łNQšā ašż'”õ®ŪŅų<ūšmŚčMAĖčĄ [ļŪO(ńž­ėŌ×nģqcKš‡ ņ,r†ųÓŹ³Ō«Xp÷D^, öUx N¼°g“š"Ś$Ūų"šĆ<ŚÖ Y“Gsģ3Ź’ ½xŪ&.`%ż™$UŻ&½q8’Ŗ s©ų śĀT‰V i‚Ż8÷\ĮŽ&Ą`°LüSuœūØWļ.ŠüÄ5ųkĒŻóµ­hóöęDš¼ā:ö;³Ņ‹™JØv謒Õ]t ]¦­ź·D™M’4Š łgœžš™cž&Ż źtsżĢ+Lķ#8)B|(q©¤!“væ\ü -‚ ņaāńŖó ņ%˜JÖz s+½ ¬g³ „Āž{nž°Ųrī£Ņ&ē Ą@é`ńķeĮ,ņóLī;”Sņ1ņtņCńó-æķÖ=„įu³•Łš•žŲǦnŚq‰„ą…+~ā$øłßY_ćÆX@ķH]īr“uķZ,åó7ÉüšĆrTˆøÉŅn™śłoöCn ž98 ż?Hš$‰ģŪšōęėĆ÷ēKęō.ՀźGIŗćCō čMYéMŸ¼ģšöń„FeśÜHA‰.Žīėsi9­ź8Lx}÷`HšæFėń<Ążöój¶÷Wi§īųæ³č¹hŒź›—š¹Łmš?W§ė G·ķćAńŽÆópnjūs‚²——ł 7)Å | Ns!ĒyĮ‘…0qĀ„aŁėr ’ŻŹ”EM”±Ÿ = ™ ĖŌE!M3ž#}!d®­LŚ „Ōé 0‘Śšg” {²ž=<żJǽtÖwÖū eżÕŖŽŠ7µūĀ.`÷”Ēó¾+(óüqpńė„Oś†Ž) NŪŲyŽņ(ō"œģ} ¾ˆ²Š»|³öż“īśłcQõÄ Œę^˜;ė)ÅjOćĢ%Dč@*ī%6'z}¢§ÆČąWÆ ĆŖÆEīxš/(-öŖ’žt³ {½ą ,Ÿ‡ ~<[™"ūXMģć?™ē.ÅźNČhļ˜x’ń·¼šī0żógLģņÉó&€źIvß¼I]Łź™øŁź½܇¬¾į/^ā6ĄąÆ!ęßŗ{ī*± ī8éõīśzzöX—Õžēķąčm{« šĪų>!ųQ„čžĒ*Šś2äÄī ¼Zī©d?öGf÷›sąņ’¤č/ī‚ä0CéĀ6 ź%–]ī-?ō“Ēż3§M_QCH^ńöŃžBĢ|ė­žĮېõś 3šŃ}óŲ§Ę÷Ä6/öūģ#1 éß;GģsUQńż£ļ7uńė?'ūīÆ3?ņ؍õĖ—]žŲū˜Åæ™ Šņķ“ö œG› BÅo‘ÕŠc7|hōīÄŗĶĒ( ž€WTÜūVźŹ®n˜B‚É"aŒ°"Ŕ'wiķ ä r_ā nTu;€ē ·?:Ö}=®ø)žiÆżéū5»Fž…äc“ ‘śg°ö›­óI ópjBóc½qžł‡ž Ę)0Ū^“˜ķŪ°ęĻŗ5 …ąąXlx<Š"ż@ŗÄūŻŻxŽ•®m z!!VR'õ©R*!Ūg%-ĄŖų? ŠģĒ ™‹’ž£ąnšÕöś ų ±£ 4nČ nė& ˆ’‚Nųɱ0źærčŁ CģUƒš_…ĖńSÆļĻĄÉó²ó2ɳńߎŻēF0ĻŻ¹‡nŁéåŸŚB¦ŻC«œāōDāė`ńį¼Šč=ŅGļńKUīŃ÷Ēš˜ ųųūg‰¤ļ%Š6MAŌųKŹĢłßÖŻžõń÷‹£īdX[šQ=g÷&§ŃöŖ»šĪP瑆åKģśé~„ė³Ö"š†^—öĻXJ’Ɛó»–TD°˜Ńv²2ķ0īü/Cō¢ĄĻš\ęšōÕū÷7;iōLݓ뿭Ėé$Łķˆ˜˜ńõéī~ź‚ģņ5š¼ŖUóQÄ÷7Ž=QĮ™Æe|÷Ģ6Ģ Wå dkdĒŁرļ„‹®Ņf($_Š /WraK%śÓ±3’Ć•€ā #yõŲ gb%XŒ ŪEĮ ?d f›ˆyü(ßzM7ń/b6— T©Œ’’}_üßō,’ó”’†DwłŅ!ö\C–ó“,_óß_§õĮ qe5-ļ O”ļē>”ćnėǐ‡ ŗ Ö –v’–čüŪHž<č– ą‘čæ_Ƈ­– MÕ"Ķän(‡6˜)"#ÅzĶe1X’]@^ū—÷ńä)²žf?® ¶^ w=t „ŽŒż A.õØ4żč›ź–éK£ķĪ„Bń»²¢ńU/~š³ūHō¶/ÖņaĀńļĪÄPåšC’ÜĘhĄŁc ©ŪX’ßŃÕ-挱Qā“xćꨵĀļ%šĪīŠ ŲņÆCū}ŒŚĮŠ!€Ųˆxāž+tß÷NźSūē0ž;Ŗõ’’ķŲCYņsIų’I£õ”īć€ę—7¬ęv’ÕźLģĢŗ ņķ‚ėųb`3<šO Ōf=ØßDņŅÜ0_iū_eāņ«€¼ń7f#ö…&¦÷ÄØņ)÷ąźjVŌź6)ļvU…ń?÷XīÉNķ“/eńä)’ōŌ¼ ś\’FĢ·ņCčd° u™B ˆA 4LszŌž>Ē‹œ§|” œēU‚LüXä7Įž—©į±ź"Āj¢Iģˆ+ū „v Ōįk ī2’¹Ś3Ē¾ÖQSaĶ‘h‚Až)Hżą°³’ś÷†ž-buųZ»­õ‚¼ó§# ōČ2ųžb$½7@-’zW±ŁD²üIg i `¢ÖžMTż›r[¤nø†‚GÅĻŠ”Ę”Ÿm$Ź^)‘“d(Iq  oŒ8jš nö 1Lų×ńĖó'kƒ‡f© x-ö Œ²įļE¾”•Zūā*zņČNdčĮ!čź{9ÕīoGĆńHܐńsQń°Žōµ<ņõ"ćķęŒõāb*½ŪčģHŚ…ĒÜ`o`ąpw‡ćhjšāM8åśJwģ¢Ł š/p™ļk õČPHż#ČPö’’ķ0n?Śż9cųž“üS··ü¦jór²”īYą(ōōßų-K"ō!Mµģ¦x-ęžßēꅧėsÆ¢ķw÷ ō”V(ūż%¼ś˜u0]z#,č› BMŠ ’/¦Nłx7ņr·Ųņ żöźŻöętÉš¾ĻźņģÄD)š'v3ń³źī“IGīĘ<ņ±ńśõ–]üŲøńé¾ĆHvīł ¢„^ ĶĀ MX<L<Éø>ČÅLø‘— ~°ØˆKe;é£ū6öC‡d…,!µ2"{7Ō€Ófdœ ū Y), ńā» aæēL‘¤“ ūĪ€Ć~ż”ßĻżŖā×’ģŚTżƒ“÷¼ Tõq­ó-z'õŗŖūü»k ,÷½ĖŻŪIžfŠ4ŗŚšÖ šæ.“ż²żAŌcžåĖwsRŸ\‹E RŅ%j¹F)g·Ę&e ž6²›łR» ^*½]Œ†ös5²ö:ŹĘĖm Khr  oÕ¹fG ł0™šsWčCJJģŸöŃļIĄņ$»›ń7ņ†ō“HFńų ¤ėū\āąOIŪGcżŚS†ģŻ.~sᙢĮćēy)ćv“ēĢ‹éķ@Jš6øšz¦M÷¾ üž¾£Ā¤=6IrŅ’n“püa‹®ųßn1ż5ĄņśŌ­Óń=žļēU§õ ē°÷RoņøėšpEę“Bé|ģ3#ļŶö. =żŸµč/ŌvI!ŒŅ0ŃĻe¼»żĘ²©÷…ūńšōn p÷Lč»õh²6ļļöŽźƒĻAķįAÕš™æš”2ļķńÅ_ļŠ+½óRr÷¼œž‚Ø X2’_ĶŒ1Ģ ó&+ Ń(8 ¦$ųæö½žÖłüļų ‡ Ó)½uā_cØ*‘crĢR&OS"a÷ fѼøĀōZ :h¢ ĆnN Łlœ :(+{«Ī&톂ōjŃæ0ż9ƒžÄ6Ÿ’¤ńüŻ›Õö`²õėżó #øöšūžĮ2 j*Eņv(!ĶŹÄ$HPµäŽ ÄņįZpżå0 ŠÕe.SE‚• Žł’!t]ļ&²ż(BTŠ$ÕæP™<³ ‰ō’‹Ćõ(%ś–Šb3£ MÖ ’võ‰{“ö^†0ī‚GĮ蓜¤ķ°8˜šŗ“Eņ9Ćń¼üČņéŹEōō¢ūļ.Qé"r&ߝ,Ū„ĆŅŪD. ß6vSāą&ōć> äbåšč†ßļÖ<•šü$ņķPł#Y$ļŠn½ Ī’fW•ūi•ił±ž[żź†ūų'-ĪšXĪšš£)¼ö%Ööxw©š1ŁĘéz µę~¢;źŽ²^ķbĢš©ļ.ųĶn’KqĮža±”–‹Uså_ģQüµź@öĶ9"ņWõ»bx÷ś:bō×īķ‡ņ÷ź\Ūlī¬2ń‚eDšCZīĶŽš5€óōĘśHłÉ“ćĻĪKÆl`°i ‰ö· •7cJĢQ"ŗ@¦_cOSŁSŚ  Žģ=(jgņÅD¤y¾ģ`"0mUč—SŠÅæs÷' ?? W~Ń ŗ³|ĆäģN'ˆu ē ÅvY3=żŲ’fū’RBלÆ÷<öš®óō€Ļ‘ō³ųvęK§m§k¦ ©ŒŁź­‰ā ¦’ ewĢæ#ż4Gż õø":Ór\@õł"TMµ'K?(ÕN•"įNØŌ=ōėźˆSŚyżr·łõ€żG!N “,Æ Ōģ :R™«õ7žåÖrōEŹ»ģŠ#ˆé‚ņäī f,ń™Źgņ_2ņ,ÓNób=¬óļ]jīłÓē8XŹŻ¤ŲYŪ„¾ÜĒąŽ1ćĄ4ä'×å|󵟐·ćļ³ńgķĪóŒūĖč_ŪįĄ]+ŗ%NžfŹūö)śrįże÷­ÉZš÷Ü_ņ°ĘY÷]š”õ<ŁīīQxÜčŌhēĄÉXė?³YīĄ˜ņ°Ķ6śL“½‚Q#>> °’KŻš]Š5”{Žśŗ#õ+”–ņi¹öŻę÷UkšņØł’ģßš¦ė£Urļ;ŒKń\žŲļ'Žī;­ŹńVš9ö„ū>3”õÅ®!s*Ü" æŗÉ >– –©€ “ÜÓÅC“łü¼ŗ Ēe õ—ßŪ&¬HtV&ōaÕĮ" kŖ¬0µ 8ū “ ś }Ŗ ±Ä9×Ē$źÓÕ’;R ‚ų’bœ†ż7S_’ÜLžßė­łĘ¬ÉõńĆ÷ōl·tõ£”ūHAwō?!ŽH“Ąš4JUft…¼< Š b©Įż“;Įp¬ńś~„õ¤>bżbŅS„l3…€)Šżėę³śQ$Ėśr3üÖ9õ‡glšÆĀó³}÷8J.ōžWķxŅRč±(Kč]kģŒĶtļ‰Ē~ōł’%ü™ŻS„Ļ#ńx1$>9ŚīžwĀvłjŽYō’?óķ­ö¬Ehöż©„ń#śnģx“ƒģˆ…DšįE2ńōżļFč9ļü[ó$x“÷=-śü'ø1€ÜŹXšXĄ Čé ŖõX œßĮ£­|ĄčŹåĆéź! Ųł “÷qōl—§Ańł€Ÿ?ĢPQ!ŽžUä© ćļ L«Ņ OÆā gƒĘ h“ś—ÓłŌØ?ēļ^ģžEQļż0vm’¢“VżW£ų±Ņ{õYq)õ:®¬ö­āšżŲ=_ kGĄõ&98ķ"©ĖA½±] ž™eŅÄ ņž@Ķ‘²Č‹¹ąš(F‡; vq%]s(ސ%ģ‚ž„œ‡f… hvvś“uŅųęõÆš4 …zT y¹NG$%^ķsłæ'‡š>BėžæėOåšźąń ϦņfŸņ>Ę­óA4“ń‚~»źˆćāń6ÜcÖ_Ü^<®ŽIūįÉŌäšTå_@ĢēĪ‚¾ķC°ń4oņ1ó‘÷– õžT*ŸĆBßŃ’©@Łü®}›ś=f5ūŲI ūM,»óŁęźšōō=W,÷ @–ņ$3ųėŖ8$čäNéćNxķ*n“šóŅtöŠšżā“68ÉÅüä_NB¶ē]ŖT–żyS+ų€jćóƒ`ōQ•÷o qõ Č8š¾q8ģ`‹uķŻšs;łš,Ėpļyčšgō_ōbł×žÓžÆ#ˆŠ&fčn›³VV CßĢ Ń ²Œ–„Ņ·U)쨷ģ{ mŻtµ™šäs¦.łö¬¬ kU e¤01ōJö<` .± ˜Ņ •Ō ‰½Ó&RXX” 8¬½ŁnFž®\žDķ6’u®FüÕm¾÷UTõj˜‘õ\b9ųØśSRīģ  Ęü^&…'@äl™”×±=š€ł ±‰šŚ¢zyWmA0? œ§zŗ»ĘžOéį`Š U#hŹö$s®ü!±ƒi§ŽŃ8‚ }¤]žNFš’øˆęRŠ Šś®<ł/ū »óG’łÖņ²Ąfļ’c šź¢“ņrvńū’ņę3[ņ}‹€ó ±ļåź\±óć L‡ßfšOą O™ą>&ćK’”ćĀŗ3å.}kčW«Tķø3ļU$õń?‘”÷ƒ•9żw„6’ą|–’|žž<wüˆ`ūŹźüšŠ­łoF–óņ‰ō„xœö|‰ķõȽńą)ŚģTŲ¼ź«v8ģÕ’©īOP-ńpš ÷±b§ü4tŖń\Ń)ś£ח)łSӁióüGāųč™öˆ2ÕöqO“÷‰R7ō{ŲošÕK[īMB šž7ń‚+:š ȼļ%#_ń„+õ“‡Ęų`0vž#—wUuTŪČånV[ 8¬ź ł[šįs³€ڶåĘX÷ś .ģ0׳äBgÉ£kZR‰Ž×'’ŽXĢĮw¹ ĘČ 0č ”n¢ Ś£eĘåŅnsĮb ˆ}1-EZI)›.Ļ’cSüLnŽų„t÷š¢÷ »’ś«g=\Ŗ üŅė j” ¼ļ[õŚŽ + ģjC fØū.–÷5: l¼PAB[’ҤxĮ 3°Ė#Q„k$ŠĖg żƒščéƒ ’£źO BžœW|ĢYļ4<( Žā@ź”ˆ»ļž[{Ó÷LŌĶń7LrļŅm¾š×w¤ņ¦Æń¾Ū!ósźņœrłņŽĻTīŌč¢čęVČāP±ŠßķB¦ą+­.į™>{ććÉ ä€‹ęTøé Šībgŗļ5_ó¹ 7łóŚžrue’@˜Y’f*®żŠ#4ü™€ūA­¾ū;UųÆó\óźļ;õS^Æökóōļ.įļ2Hģ}dėāōģĪ}iļUkņ6¼¬ųĖ€Ųż†¬^†ļ^`¹žŗĪ±–å’kķīūŽ­ ų€¬"öĶģ)÷zE÷ q?óÖĄŻļ\©īŪ‹šRķ)ń-žšōš²*VņŚ’;ö¶f+ś“ļč’cœ.Ī…ŗŲ ‚5Ń« 7Č -śŠ-¤ &t›ŽaRMąĆ O:Ļ ł[åÜi’ē\f¬ µ)’ ½l Ó£‡pć”üM’?ć-ęC¼DŽėM×!”zż#Ķ!›#Ū²«µ‚Uh󗃏»~†dµŖž“2U²ƒ‘ zB©ßB¶_wÅ‰ŲżČ±;öØģńP0°ļ½WńŪµ©ņŅ“éńØAóįLņhx6ņ*ćģSé6ēmdŻįē\µßšėįZWĄį ¾ęć8*Šäƒ·ē±©šź˜‡Óī«Aš Fßōk£śTߤžj=t’Ę` ’–\Kż¬eüE¢ū<ø+ū S÷ oóĀžŚõlęyöńs*gėˆłęå’»1į œžß¼µmį½õLā>bO䚡!åpŃčtģYńļĮD‰ńŁföŽū/W’=ōg’Eł³ž”[ńü”čūņćƒūa%hśõÉöū‡»ó*WRö@ŹöxW¹ņ ”ūķŖ£Įė§Töėņ’|īu=ń.”õB·ŸūvĖ’$øUĻ› ·“£Wõāż/•ś Õ!÷‚öm­K÷©G}õ8O‡ńłųSļ@Ÿ‚ļłņ/ń.˜ćšĒš/š]«Pń^hōõfƒųµMż‰¤Tš¤>ȘÅh“HĢ ŸÓ©÷ögФ%qMˆö· ®—E+tQ‰{ÄØNČ2r…ąŽž3čņ?ń¦¢oL6ö : 'ĪYŠŃœūЃd<Į āĢŹ zÅUčH„ź›:żÉ÷ł¢īź÷©B ų_×]śŠ4/ćŲ®Ģ ē²µI¹ uķ3K ł Š5ł hÜ ģ ˆ  meę!SUŪĆ«o!·yb#üčŒ#£—A!łŗćF„ œ! ²ō’€įžåwHĶ Š›r 4āIŖ7[‹łZ÷”óĆū>š [ƒš5ņ[ҧņć«aņ͚\óŻ58ņī¢šęšģé†`¼äj”ĮąŒ7^ą©v×į\¢ŌāÉ9»ä-%Ōå«29éōķój/š°^¦ņ¼ē÷;ęüĒ»V’QsE’ÕUžq!£üō ŃūĻRū‡ł£Xõ:Œ-ōaé•ö°Tõ×™ńė>GķMĒėšˆ”ģ«uMļ 1Sņā ÷āčü4Hf¢4łöw]j†ŽÜ | Y‘ …éöLŸ‚ä/­Ą J!j”¬­µņŽäĘdćéęć[ų ŹóŠęR„ł 'tåšüxF õāóW|Fń;=?ž.ń÷Tł‘fólFAū‚ĶꜯdyųÓדļīÜ8æéa—¹šŒ‘ śé[EüGW>õk‘Ųü³`āū—&öÄā‚łŹu>ü0hČ}”ą’!ó}EšłJÉū枏 #;÷ĘZēÆrģA*żźŽĻÜšEKkīźIxåń©»ō‰ųņ›XCųŚĢķ÷:u†ü»4qŽģå§łZėWžŗźÆcķyįóČ© ĘģĻ Xū+ęž9Śō„ 2õ%’x:śWś5JUīŸ YźŠöońއRō‘[ńśÄ\h¬ŗŻ’-»“ł Q’šPõC6ˆ÷yŸóų²L£óįI”ö½Ł÷U}łæLRĀ7½ö {Ńė‡[ń©Ö÷ā¶įٰr0/šö žDų7#ū‰XRō‰­śĀCv’äž0¾3ˆ5Ÿ  øįžģĒü…€ćžS¦”ł ٽõŲk īWāõė'ĄĖā±ĆŲéŖā0óĀŖāłÖ÷=ć¦ųĪrŌł¦łO=釾¼GoꚲłyōBŚvNŁhR,I÷æ4Sś  Šl’ó÷ić`łNIū#1žMĪŹQśēšB@¾ķŚŃšÄ Žń¼ašī%Ö1÷»ĆRž0x‘(Žqļ‘§ęµŅ› Óų{NøõņĻ%ĮźŒ=éŲ£YVNŲų“ø „ ¶¾žŚ0.¤¬&ķÓl0ƒõw-:'-ęę_-K33xž»2Žb23ˆ¬%^¾& ;!BC…°¬ÆśUŸ¾eõ§ą ‚€lš!BłŸŚžę_źB7ģ§„$īE|ųpÓ’(6ųŖLoūū±U½,łėö!˜Éė¼)|įø\‹ä@ņč­” öįj¬ś£½Hśz*T’“m„p½© MٌŻ)ŗ WTæcz)ūBļ†Ī6ł6Iįž j,hęs$ī:óB; ė"–ė°­Āę ĄĪē ĘOÜ'÷Ų ¶łŻUrŲ· ĶߛŪ|ÜĢĪóā”*7åą”w૵?įG‘mäly¢įP č’0NÜ%° ŪĪ#dŻ@Ń1ę Ū]źß÷ā§0ęęØuēW= ņ™r ģo8čöŻ~éĒŻės0Čč÷°ēļ£ėõį\Ķõm)ė÷”`€ś¹'ūG Gš»üyō½ŌÄńźŌóž[Žł#‡|’“0ž ĢjśwY ų®Œx){ ’¹bc¢Ś°ŃD –3 äš=łŁĖū¤£Q’©DóŒū$ö7°ŗļ¢V7õĪRśų½Øų™D³łīetśŹŃÅśŻWĮöu ĘŚŖ ėÕ!ŒI„RPKV¢IņDBŁÉŃDgŽ ÅgśĀ-2¾Ž6W’f45®+ü”ŽD&ŒE Ž; bŠšœ"(ķåœŅP'¾“P‰¶’”_ūĒ<ž‡RwžPx»ž›āwłn=§LäżČ²Oų?Ÿ_śäw±õA#šŗśŌÕĻ Tņ/ą÷ó2 WĻjΚeŃ/M.Õš&+SŌ4;s5\5H?ŽfYAtWBČį‚9Ģķ,Į7ŠņĖn¾HDų/ö¢µt ™® ÜVI ĻŠ"_šŠõ4ƒ²ń³ Ü-¤Mį••ŻĒ]ä4Żņį†ĀóßÉ'ŸćT2AŪ^>Ūs—ŹŹŒ¼ÆĆćŖ½[ésæaEŗæŸĒ×Čv ĒoFĄŹ!Ģ—Ō)—‘ŽxŻ|Žxķnč4YńŒ:¦śˆ¶rūN2–śd4ž…r¢ķédBöÖ£»õMWžģ.Ŗ½ā»/č²Ņŗč{Ĉäõą\ßćÓNüŠ×žŪ>ĪrŻgPźŃ…æī-ńąż…sS»g`AŠSæ’ūFāśN›÷™ė[éä ė]}Sé¼e…ė…©ć€=zŪ>RVÜe16ŽØFćl;zÜā֎į¶ÉĆēķģéW†ōĢ‚66žü¶ōY AIĢ °œ¦Pģ27 ¹¶i滤 ņĒėŽńę•Tā"ŌI #;īš!c§å,ųś5ēp6H2óm #DŃĻƒ&ęķčąmZyŹ e>¾Ė Ø h$ąÆHB’©)č’ŅŽŅųW>©ņ~PCšWš]nīņ‚°śZiļ ¾Ē&ŅĀV˜Ŗ\įāIoŗ4 %ń[„Zž R¦:r_'G»i1XY;fæN;Ф97w2})ĒĀkĮ#}lsókēr3PuyĻÖ !Å/1–ģ6źö’ś„Č’ų>śˆīäōJDš‰ĪšĶvtć– -ßüŅŽ5X^×`z„ÖzՒā?ŹęB1ąQ:5ēų, ėŌ>żļŻ÷qŠśµ4©÷”ķ—Įˆ½SŖŠ™į#œŸ ĖüœŅ†”, |&Éö aĮńDĄmü`3€ü—ŗ1ü$żžÆū[TÜšŗąeęÖūÕP’u݇61ŪxRęī‰aäųÓbķ==RóÅ~VóŅd˜ōc å-³_įN”Ų GÖA ØÕL~hŁž÷ÓP;ŁÖ ČrŚ±Ü Ū~!pŁY+žįv#čoæuī&īšļ©xāõ!oöš“sņ"üėÕįć><„śē’©öҤA’: `ž>dŁūvKōՖ†ķ(“‚ō4GõüŌłņ1Ž#bŲiō^®ģ4-Łu”x„L•§Ÿź÷F ÆP’'œ°[é)‘R ń²Éž–'öĄsbņš:÷ń]ųšżFdéõćŠė€h²č)‡ČéSńęĪŲżÜŌ^æ%ŗ ·'{¼n,5QGi’9@K®—3÷ ¾I– ˜żz axDqQ·©jV £$ć%ķŗ2ģSß;ףB7…±< %/&\-*Xųür€\fhC74B¤@;0Q^™ ē¢mFŽeŃx—±.ōd„*ģC`ē9'īäŌ.åķĘŲģć4·łVzż( åž„eśĀč@öv<īš9°(šcK}ę> ā¦dā®Ę<éŅøtż†}+0 A Wä+žż)ÉŹ@<ńŻ Ēbų ųDzgś@'“ųh‹÷śŲō|ø€ōģA‚ųø”ŻūåNõ"ä{ļ£kßźb÷ꦶŻäYį ”1įčIrć`Ōš•īg“¦ŗ»\Ńß ;×,±/ 3> )»į‰×¬„Ē d  āó©÷Q‹A;čpŠa‰ųż"ō½|žßt ńŲTOż¹  ¤<ą üāJl£Ō ļt˜‘fųļ¹ń5vĒų Ōh÷0¤ĮQü""Ÿ9’YŖ`+l;’N_ü­2ł¾•ÕļIŚšų"­īdĄaļ3ļ{ģ¢ höūRNū,óˆłÉyÕõśˆįł6™źūhĪžĆ3§ü 3ū¶¾ńŠ&jńo>]ū³“óLOõuūjYŌcæ'¶Į’° >öćÄ]ó‹ō0uīUOÕņX}’śYIK2uVfH¾¼_ 3 "4R#sμ„j(W ļB0&’øWiųŸĮģ(cąļ‹Nąõ•>łūŠoóWķŌ€żķØŽJęd˜ēś}ćķ8čóBĀ ō©3&ö)ü57źł /ō«Uœó©a¤ķŒ\ę¬é`ģ€ īr“ŒņŌōIōįXļCžłŖ¬$\ >Ų 2Ū)Ž0äir¾ۜõ‡ź]Ę՜”€NQD ś­ö ĆłQFüųp?Žśė]ĆöyŽ£īĻRźŽūåžĪ“āŽW³ēF`Üō i°ž©Ä)¤Ō.QM* ńś¬ „ä ¹vL 2Ē3žŚ·ņśäŁLżÖ ?-¢ĆGłe † „³·ķś<Ā•öPŸł‚ōÅżXō"ūŸū„õwųŹFĻ!„€Ö³|ŁMI¬֌{ Xk_–ÖuvŌ­­Lüpœ÷#©6żuPĻųÖĘśt^"–šq'&½(V¬ž!‹$&žSg*Ž.žb3;÷ ½ĻģėĘŁńŒuæņw;āök2ꅖ ķ™2ūé’3Ńä©x߉”×ŌGŪSÓšē}Ņ ]©ĶĘÓՋ'ÜŌ9rą“Ēåuję”öšķK]ÆļR"ļjÖļĆDjķ“Śņń²|÷āāĮń›Ušģā…ęē,“éź¶•’ėręĘHāHkõäQ¹ńčėÅć0ķ9č-}ļõķ¢ķ~†=ši„’ś­čPža³µžM +/j@“ļU„ՄØ^X n¾ŗ  l>Ī3ćŠˆ¢I-Ž<‹’ źöŽ›-j!Ŗ…†’’ü=ś£}–B° ŃEˆ AV OU™pSŅĮÅ ÉīŚH¢Šųyh{§’^+,ü®,\żĶŒoQ,?yśZaō(FPœ9^Ź­")]%Ś3tāč]¾ŒĪxl03E™" ö'r¶x$ég%˜uĻkA`*ņ LĪꓔ¶^3‡$d>ū»Qś¤~Ų-¤Fż*1"„^ *ŖØ(rį]ļ īé ėiŲŃ vł„’īō›pīóG·š=T†’·PŒ­”`@Ļ“½‰$fΟ)A“¼*Å-0ģŲ'G ¶"ˆ±<&“rč!ŁH"”Ļ/*ļš&Ųɦ$°"¢ˆ9­Ę]4n\÷õü÷5•Bl"śĮt®łė ž­Yčōc-²ķ}taē^ŽóV„Ż’Ę«Ś]KąÓ8žūÕĆęÕ(@xٌvvÕĆ/¾ŅµL\ĶĮµōĢ1¹Ń?ųPҼü¦Łp9Ü5FˆŻŌŠgć€Gįčńõä­œēV³2šīReņāæźš«UvņJ¢ņ˜Tśķ Ūæź§@Įī³Éŗå-¤ÜŒSE违…ģ÷Ź®ė9 źėz3ė& géCļ^īīņģJ;äėrt—ņ‘“ó”ć£õÜÖ®öt¬ ö6ßµ÷nlżšįMLķČ é6ĢęDśėIњźƒM°å®cå)–“ēģ]€ļīgŻńBģŠń~ņ˜ß ÷˜¬üł#õśżĮQčÄ{·, Ū øƒS2Ā&Ō¼åō“ĒĀ\U>“_!˜< $ɏ!?z… ˜ē( 6W HŒž*‡^ē*Üj÷(®¢#ŽŹt8&”+Ö'e éś13ū6É j OÕŲ9ĘÉžæ^-3 Ŗxwf()ŚXNī„…ˆ4ĢÓ”χ­ óˆīܵ‡š`Ačž8˜ öw#mš"xgxĖRE4‚²%ä|ū)d).>äŲ(Ŗņ’DĒĪą.ų ļ e £ī`2s²Ž€>«:åY3¼#÷ŅzSū»@v6 wĢ­Ć^Ē÷„Aņx“ł“®VśŪņsBųpE>ų¼ń‚š ]ī;?™ļ„&„ōqĪvņ}µœš–Q8ń¼bīėߝģwéäĀöÅߊ„±×ѳՕ‘kÓ×7"ŅÉ—Õ[ Óq vÕTuzÜ8Ætß³ĖÕąSƒģ jĒö[Ŗū¤d’BvFŖ£µŁĶ’‘‚ō¶/eåŌų7‰ł„ņ8łK~Ń4Dž¼_üJ¾’iµI)?į¶«¦k eOŅ ŃtŲøŠ 0©æn’ST%£ *VMČČØž0čĻūRźęż—†š÷^œ>š«ōÅė7ī„źŻųģj2ėD/ęģ4‡RóŌ‡2ū‡#žæœ0śHS “ź" btw ר)5K÷ēå 4«µ0“ 47lĘQĪ2%ŹŲ÷)XēS-Mˆ2, ™²'N“,žq>,½…#ū;£š÷ąmÖNUfé¢ā5ł’©µnń*K“ū)Rö÷®hų2ÉŻö+ĒńŻ— īļėō ÓēÕ×Cä>N”ēhØSģ/ßUķ.H?ķūž5šĶ¦øńÄvņˆŽaōŒkéškTŹīōł«ōœ‹]’^‘ ŽįhK6ŖvQPā )€ü,ĶBB+WU#Nž“Źögśfō¾$õ×+Īļ¦*~ī£ēö0E3łWkŲų$ą4ūGgūČŲ÷ ¢ ńkžĶī(łœķ_¹é¶dĘīŽµ`ł<·>÷p’Īö.ćžīž‰’ū”‰ż‰“åqČM%°aF¤ e©ō Ŗu£·ZZöaäŚWŁ$…(«=¬¦l v=>»} ßę5×[4ķ3 U¬źŚņ µŽ×¶Le¶"łžŹvX ©ĄŌ`‡k Aˆ æ¬ocMł’ų&+¼ó3ćqļ ĮõńŪ­šeĖ;ļż³wėžm|ęšĻźža-ķJBĢé3HžéfkįšmLōšņ–÷`ŪŽüS‚#I@SŁNŠėŅ£› zĻśµW.‘źé|łÉMĒ÷r<÷I:hūPTżÜ%·å Ü Ų2~“^,?±¦ )Öėį“6ža“°ż*ŖūšŗŽ@^do†Øö~s šĶޣ딯§čž3Čåöāįj_©āņwå,ļGēl‹Ėč>=ŗļ$ŽEńš°²ėÄGģdŽRķ›6\źĘƾčLżźĶ½ ėI‘ėR’Ÿń&fÅų…©ŠüZŠ’½č^u0 ¬ńsĻč•7ĒĖæ"a¾ ćg P̼“Å“~* sī'¼d’üā†ōVLń€2”ó0”š–ėÖīŽ²įšUĄņÕ·ōŠ‘śŖŅ‹- Ŗ0®g WŃŠÓՍć9›½BŪ·ā÷+—ØōäĒųĘ7Šö‰d,fø .°ƒ%8ŪÜc8’écūž¼‰%šW ¤·/Æütp*§ t&ĄBõ  ( !}ö»- a”qØÕ³’žƒ’:» jĪ\0÷›3°’¹=@|{2˜ H{sįŗk ¾²FpŪ$ҵŠüÅC“Œ&™›õ§pž1H“ ?‘˜ŗF;„ńĀĮ|ŒBÅ| öWq `v©°õŁÜĮ[Ā‘SЛԁ¬É] ¢ȼż>u²ś”'ż'J ų­‘jš ōõ»ŗ [7±9J ‡Õaž¤m"õ«ś\ķsŖTźĮȓ꓿~č•ŌéZØĻģ)Nzń+D¬īõ'&ėüÓšģ¬oļŒI ī·ęļ{|xšCØwīoźģœ×-ļöC‰ķB‚‘āžøÜś@ąI7XŪ;Ӊն$«ÓĀĒpŠ)ÉWҹŸÕ‹–lŲ<ĮŽķ‹éŠ3²ī„ćōåĮ;śąĄ«ü£–׿Ļ)5ł¼¬rõƒ:åńš|¤šūYĖņƒŽøģ\R7ęī`)åzPå+.äĪĆ߅}܅pĶß„3›ćŠ-üč+^õšÕG§ū3’’A[{ćö[ŅŃŖŻó¶ci± %2éüR Źżöō˜ĶžI©ŽrŖč’ݲ¤VÓp4S, ˆež U 84Ź ¾±² 0“ Õx/qÜ.½é^Ä?5'wŽ5 VĘa jĮ— ©»¬ädbßM”®Žū±™ %Ųé•ōiڬ! ą!äę ·ŠÜ^Å(“ål(ōó%čŲŹcČSuęC­˜Ŗ*0ß ŠYĄ“ dzžDe wt— ćF6 ś×b g„ ļĶxÓģC mįŁ Ģ&k“Quµ ŗ[=¢”&;ōDdRĖžr¬Ā+ ézŸŖ„ń†“3Š<±„>‘¾ ]ų§ö‰RN˜‡ ć‹P"V. i•s!ū|ūĻ}yĄ pā75Ō}śæ€ōW÷õO”żĻ[Ółų$Ķó,(bńÅ2č€U†ŻŖ3ÓŁŚjŃŁ\Ā^Ü8ė ÜŠ]Ū˜Š’ŻÖśSāDaäȈ‰ćč—ą%A ßćIœŽl蒮5Hßu“ēŻą’łŽČĒļÜc&±ą©­ZāzŹĖį¦iķā“t”éž? ģē<”č „č-īÅź,ضģ5Åvī "ō¼Ģ¬óŠiļ’Åüņµ„½łŌā~ōāÆļėĀVę]«Lēr‰÷ēŲgąę°kóę“6ßź Įī2 HīPS&š}ńȅ’ņšdŲš“cZī«ļŁi“ńŠ5÷F»ł[k•õŠ”óEnõ~łT%2ųĘ>‡óĮÜkō+Ū—ś0bęžÕ—žŠ ”ó’āµeĖŠį<ˆÆ’“CĢ²W@ü4Фłt›ø‡2_¢rM É0b¼ćf0õ³=Æ Š:ØDŗCŒ|ę ¬O ŚŃ¶ §2b¼WėŃöĘąvi“3ųurÉv4‡~‹ ō{W:Üųēœr™`wżģ Ŗ 5äX £‚!­%–"v`2'¦ŒE(?įt"fžW5Öz« +Ļ„]ŅīĮyßų7„Ąa?į~ g£0ŗg1«R˜’„n}łTÅTöÉö÷ė³?łWŖ ó×IšC@±š]Ūī«ŠsēsYäXŠā~c_ŻejŲGĪ+ŁÄCŻ:GāR©ģĮ!…õT5K÷'ū©ŻźĻH/p\)g÷s ņĶ „ūß³ÅźyiŠ«•Ewę®~ •v7†ąŗūÜqö‚įvõj#d’™kŻŖßjæ¤é@š^'’ÖH™õā£aš9šīKlšžœģļ¼7ź,¾äéYͤé¾ģå7ĪVßĶźņŁ»V¬×݇1֚G×oŸ×Ł^ņŸÜL qą— žćÅcģ¶čļYC•š8 yõf‘ž}ź’Ć©Fžā„’^’āłĘ¼DpM:vL“.Ņ› ü’ 7ÄH¹ķD™ż¼‡>’š‚Éž2§ƒžĀn+õ{7 ĢŲÕ AāźÜę+(/ĶHR„Øž ‡¤ų®X’ ‘m²Ž¬]“ ²Ń›mI6śE J^ā mˆ§ŲŌ¤9ä÷cœ"(ńN}ckī8,kéGŠü׏÷£M©ódR«ńS!zī¾éźča6ŻåÖ'”ęŗžĮēpī$ꑏVįī; ߊ3ÆŽüUźŻŒß,Žś³aā Eßęū Ŗēź|Té-­åī+2Ōš˜1NńJ’Kóµm9ųÜ-ĄūžÉŠ[öoų`ó\‰śÖ\śń ¢‚ķVŪ P įUbqnSʇoŌņłS$Jż Ö’žĪķG/ü{Ÿüź[œFa ’<čōś6/•łż§zų*øFöYįM÷ ś7ż‹eøF+Z‚–żŃÖĪżIłRžV?²üĘołLĢõŸBöf±6ž…3}ŗ³Łį\zZŖ†ƒ=fa£€ }W< @ČŖe¦±™ČķŻ䫦 "X ˆĮM†¤«&m­Ł²¢__N_/’W+„ŁŽ ŠU+į;kq–)’%A'd%ā ŽCÓ1›Ń /=>ł lć`? ¼Ÿó ƒžP łÅŖ.:žgbn<½r!!QÕ%ƒ„#&>ĒŽN„4žÅ_¶yO 1ܑä ’P“THŪUßò÷ĒčvšgĖ b07 YõĒ żRŖˆ¶˜ÅnŗßśuĮRóJ¹ ļ›ķ‹tiķ4Ąpźųāę‚ŌāÓkąŽŖĢZą<¼Żā«“īā›%ēi½ģ?“ī.Ųåź£\Oč”ĊäOK›į!×ÉąŽŪ½ß`-‘ŪėŁźFÉßAOųįŗI|Ż{ZŪ¬‰8ŽC:ŖāŲ"|ę'b-éońī']Kō E3÷Ź]0÷Cä:ų[Į©ų³õ÷MjŅņĒÉī ”gķRØŪģ¾ęRė±ü£å½ŠąqÆįĪ:Ö屉Ńč*,eéC#€źA“Nļ¹Pó…Ōjõ“_#ųłGŠū=püF?hś«Iü> •žĀ@ ū©†Tų¶›H÷ĮenųѧƒłbĪ÷üć‘’—Wų0ŒĻĪ#T¢© '«pĒģöøSŲūĀ?gw€giˆx0˜ŽJƒÜu_šœGH^5wĀšżšwŸœy¤Ę ’T‘ެČäĒsYPšp Įs6.VV+ģ2 B™ļ»tŸ īā‡éź×ÅÜĻś&š! ¼| Y —x—)£ėü«DE}Ż„]` ™ńž ź åÖn o1¾ ¤˜ś‰€>^Ōī™\ĪÜ@=ÓØņ+›ė”% ¾Ö]6]ēļęØŌ_" šM’ąE*=ĆyÄ&…„JŠB DŖį :IŚ Ž8tÆk7q÷b.W¾~Bź Ų“S®’FŻ”õ“}ķž·kķėž`ņĄĮńĄÖIģõŽė]PĮźÅRLå€õ©į~ķEćŚÕēņćYź2Ćūź ½ģA–ėļ*śQīąęź-#äk=!ąĘiŻ/N]ܹe%Ū ś“ŚsoځįHچŻڬĆŪļč/݇uį ÕX鐚óļ®®±óśC]õÉ©8ųͰgų/“¼ųrÜų–Ėō:@ īpī:fńÓ“*ķJ¬SåV‘Vį*Ę[įšā”Śā›q™äd¼÷étųÓņĖ%ö$t¾śLQćż¹CĆž¾•ęü,ŽūM{żc[(ž€›ż0Šų[ŗvöĖŹ•łQŻRż+u'ž?ä<ż›\’H@ŽL†† o¢!=@b„Ļ-.ŠCˤėĆJßɶ:j/Óśqųüæ±QŸ·µP=,ÉŠ–é« ¬ƒŁw­Į“t1P™!®x]lpū¦øómp}B>īæ?:ę£NgXF”öĪŻå… Nė{ ”²t‹M8iˆneē%®źy(*H,.Cģæ+HĀE ä;m)ŪŪ'¼„ięy1Ģ&üōfµæŠuģkČI¶ "[z ,5-s“Ež8µ¢ļ©³ūö]īłLsīµz$ļhoHńÄxĮōéŪįń£ĻdēEĖŲĖL„ÓĻĖŻÓV[ Ė(’ Č<^ŠŌ¹äŁk% Ń‚Æņϼ"Ļ©¦ā|”żŲś“‰å\w½ćĢ’ŗÜŒ÷ņ³§;öćłķ)…+ćWA}īf­ųŻ?7żĖp$óČ~Eął²tó¹ZŽōqTiż‰#éśh^“óŪĶ/ķa\öū?–¼žŹ8Žņ'ž‚9<’ķ <ņѱØī±&ź Põµ8­Ž(ĒÕ ųĶCCŒÜK†žßöĪaŃĀ~żĪé–eŌ>7ÓüĖŁß?ŪļˉŁ~!œŚ%¬Ž——«īŠ/łāżŅNē^„3ē°¦÷ēΐŸóčxńO.xūPøü pĄwߖĒæł ēTD ś$DB5ōz s„ä *“D ų] öTŻż”Ā’‹8ҹƶÄüćSkóøWųxæżö~lüqµßō;ķšž¬äń~JAėŅjŗōŁäūŽP¶^ŪNüŠģ]źżv}½©Ź¢ üRõo”÷ö‚ ›ź;¶ś³ŌRρ©#Ąä(ŲHI%;5°żj¼nS ¼ |z?æ&`£wėI:ßĢ„FJbėp*ń֛ߌļ²õS= ²ąqmØJœ¼ūæVŒ÷Ah±ōp’ŸėēNōž·¶ĖNfž uų5¦Óųyā¬īC[ öä^B÷ŌģŠ–Œ÷kZģé­öeģ{“äńQœ9łæ†ö«f^ś® ł÷ÜэS<oŠŖE•Jµć ĻÜćĘŗ½” +(½ļHѬ)E£ÓąŃķm Iž1­tõO§y E” ]†U/§š’žZH³õ< ¹³Ś  0;Š”i’l² ꓏hr’ŠuĒÉõ’üF<Ŗ³LÄ xL _'ķÆø Ō2zĄ©yä9Ź„&z8K-Žø)nŻĖ ćźĶ"ž×[-Ļü39)8žžū5rśG7rÖT4”Į/Cع–œĻ&Ļ9 ņ¾µ|RÉT F©‘Żnį®ąße^“=qV~ĀóѤ“öĶkėÖĀņ[dmźQ)_äkyāPuģŲĪŁāŒĢ3ŲöÅaŪŹČ±G€Ė~ÄÖŠL-žÖlsżŅ&ĒŃ> Śh ä_Bā‚ ęóēåŅł]ų”p|’A¦%=®Żöia¹o_OĶŲ'ŲõŽś`óvĮ­ńĄŽ^šĢ*ščØ‹×Ü^·ā”پē/Ź*턉3šŁdę4™ćņęVš×%€ģb•EīÉjćDŠéi(Ļę\;¬Ś¦ –Ż+vįŌ‹ø§Ü‰õĶéW`Åó¦”ĮBĀĒ Ļ_1ąÅøņĒÅÆ~Ļx¤ĻÖU~ßsšźküģ`ć`ńŹ•Eó’’ŖNCłM”Nłæ4äūq‚łÆ?īG;¶<žµxEa ؄# ó .‹†ĶrÜė\¦]Ųq*-r$ īx–b–ŁĒ-¾»|—o¦^­J)9łŖ—²÷„śŌīó]ų8ė{Ģy僙‹ėē䄼86ńóh„0ū›Šr ßÅż,RŠņˆ ÅÄŵ‡ ę{2`PT —ƒžZP ļ#”—“"">z }ęj4²DwąÅū?rooP”M€Srß›P4$ŗ=³#īīsŠhNć,#-‹E‡Ōīäõ©źÄ¾hź1¼xėsKxéĢߣļĶŽżß8žü -—ü]Nvž EHW>“"Ī}BkZ£(ä|X'“Į@)­a.«ré*‘„3-\¬æB²vņIłć'c(2Ćā-Šy'1¤q4ĻäV'ELU/;1ū'ÄĒKˆSėz gc¶ŠV;oßIūd śæŃĆž7Bō‘Ćõä”|ļŁ]·%ßÄ˾ē ,[ģø Ēķ/õµ kųšśķüPm§ö“ ųŅüŃģ/Õ]G’·o÷÷8ķ żJŠķfœĘŖs>7† ’(į#D„0Óó^}Kµsµ”¼¬žµXCųgCōķ&5ūÜĮfž&3 ’ZXŪŅų ‚£m oö½ĶĆųÖfł-€×ń„‰RįZ%ķčšģoõĀžGųyæóĪzģė¤( ėyŒ–šrVąĄyŻy4ŲUšā=žņäyGą€Xģ䤯IįØtč¼EāĆš‡ŚFō‘×&v_Ö8ńŚØEāoģQā²Ś³āPQģŹn÷ó%IöÓ<ł nš™IķVņŸÅśčž ü儞«ō Ī#M©dÅ‰Ó [k |ŅšÖ¬…, ¢ył,}Čłj œłÜ¼!÷­äųł=n1ōČć,`µ *ŚCBi ,^āŸ$%„RŁÆłUvo÷9d?ń*”¾śØæÜü`ūqõó_3Mu+īŅ;ūƒ; ü÷ÓČ’X£‹5ˆ „¤ś žgžS Ķ90ŚÖ&Š«}‹ÉŚ„äßp1Y,Ź™cöO…ūäŅbfX()˜Qr6e’€ xł›Y§† hB ?üą8ę næ³y0’ūk\Ų„Ł Ć/żtĄļļ)Ų½ķ².ŚēŒēcõŚģk·ĄōAFœłq/8śØDM÷§öÕ÷„žBAó*fļ¾žåߣź;·Gü)§žW&±ż‰ōž…/ļčPēĮ¦ß nŖŽÓF·Žš āu•į @ĖŃčŃ4ŃØļŪlöćć– ę+•åLJ<ģŸõ÷ßņó6 Iņ~Pyģ4ć°ąW­į¹Fąąk 0ŪÕ(@؜åākåäF¢_ći/Zćw¬sß°ućūXŹķÆuāéīr¾ņŅyŌõ&˜żų¶śG6& ”[ҹ l©®’‹-=S »ųą ’ B -›¾4ä6k‰n1£š|²čšpÜŽNA®U ŹpŻLām t ęęģXĻ–Ńz™ óóģ H¹)0¹5øēĻxōŒz!‡]_$g­ō ¼¦#i'ć,-€x4ß8Ö8Ҥg6X;ćęĄ<’—ū9šųØ9g%Ķ:¦:“ńł7' 4ė-2} •3>'ā8AEü4½/茒(ļ„›(ŚÕ'$2®ņ$qīŚ"®øå"(Œś#ļüi$xŌ`9/«üšųS £cĒ·Ē× ĪČ .Š]ŁøE“žjĒūį½Īu“öVēŁĪņõ ¾T¤@Ļ6c7bF'÷]EÅQ>iŖ OÆŅÓ«Ó.X§0żćXLö$:ķīTčŃī“ćÓ÷aŚAś1Ęü ;śļ†eśŻøÆ÷‹Śł([‡‡,"ĆāGƒā’Xšž83ś˜s¼G¼ ‚±Ą§āž»ŹĀqHf@Ü šp=Ćpsf71®™‘ÕXÄ5’ym6‘OÕL’A0;灲%ü€’żÓ§ńWłŠF LļÜĻšžm ó_ä“āˆ} WY†§vĻ®-Ø ‘āS‰xh †B³( ;^&­½ž#šžĻ!ķJ!Ø]h$ģŹO.éžE/8āį+”„Į+Šč”0õØv6&sč< " @õ)„ėQģŻmŖēq«mé„o÷ÜGĀ× ėŒŚčĀܜKįū2ķäTDēHźMˆ?ē ĀĄå»b;ā5ź¦Ż—Ü“`…Ō$zŗĻ›†ĄĪĢ äŃ.{"Ņ‹zÆĶh7äÉkwŠŹŸģ5ÓźģõÕ¤'˜Ųoßų™ŹįhķÕå'[āķœtQō&öėń’DŠó†÷ÖōķĮöž*ō{ōśį&3÷”š¬łvcū^°ül2Š„˜ ‹ ^%Å н§åm”uŌT$ž>€–m5o{[o ćfł¶42 ŗœ«’Æ19Pų¤ŅžńlT˜ó+¢"ńŌŽKļGüƒķGØī¬€ńĖY.÷õ”$æ¶ €8 įÖ >`» Ł 1õīŒ .× äBŹžr‡†Õ×ŪxĪc$-<+&®š ?$ŠŖ-NŽ>¹Ą@ 8żƒé“*ģsZż¶Ś<ł” 3Ķ• głW”®·o„ņÉ5×:ü“ŲDö(RņĪÄčhˆWåKJź°ķ^“ņ¹ˆĒP‹ ‡yŸA½W)R@ćOX*«9·ĀœO/ † Æ(¶4'kĄ*-ŅAš3ÕH6É#y.śū"PG"P±"X„u+=µŻ)Æv*ŠĪńR&" ”¶ž@ß8æÓżØaS#äŻał«›"ņ܌uļ[Mņ”uŁķō”‚ęü/“ÜˆŚ©Ś“)ߧםå&Ečē`ōõź]ęķ»Žķt_-šÜrņt\Ūś0c®Oy·8Ä’¶ŗī?NCP‰~ ¼”FG•݉ŪÓ.Š L+ó ”Ų„Õó’`•®ßĮ?E¢ŅłéĒćö¼mRöćpłŻĮmž!¾l›©ō£9‹ ˜łŅøz¹™1ģ¬oLyō}°ŸšĘFfųlĘ@ų‹iĖō£dsń6ןĀŖęzūāīJŚųŪüĻÜäœzā KGį¤vĆåoÄSäM.<ē…śŸéj©aęŅ~ĢćF(Eć' ę$ųėøEuńÓćaīĢ!æš©¼õJŪł).üŠNe(Īj ĪO«j@€ü1^ ™NĒ =õ+¹IOäÓPŖÜ0Ŗģć«c©žģęóĀ“ł¹Ūšö§2šēŃļ‚<čńMA€÷BüždŌ@šŠžłžžšĀ“ż£žÕ½%ķ`pžePKž˜Ķž8įnļŻ.CŅ )Eśo]&ģH–żį”‰”HVÆā/'ą×ŗķ.'µÖÖń§ %a˜ky»T’Š!¹ ī¾j‡l ƒÅJĄr ̶s~t»łüød󜣜ܠÕI!a ÕCj’ŚūŻžó”ē’“ę(Ęf  ÷œ©Č’5ü‘?żµ‡ų†¾0źĒÜ’Æģų[ āļR’8ķ4 ķŁsĪ÷Ķaˆ+jæ‘Ё”Ć2œłēŲל§ Ÿų IźšD_/ģ(öfē7JļkŚVųål©ūG`öȌÕģuŠąŌ€ŁĖ ŻhŖ!äÄMžė¬Ś*ļ(“$ēI{€Ü­įŲaę™­ęꆕéXæšīrŚOš{¹ėėŌwź`Eéų@vą¶’ƒŚtŖŌÜUŸœŚmY_×¢æ»ßœ¾’źu Ņéu:äéĪ”Cė­žė¤ūĮš)į*öŠ©0ūwj(’v„žõ`š£|iå›ż;eJØ9ēÉ÷;])¬WOÄ ģ#= ļ­?T2„>źŠ’ ņĖ„‘ųųG{ž6°g0 “^y‹pāĪs?Čb ¬W ҵ…D/”G¶r¾­¾w¼č‡ō'źš*Ū]µ*—(üŃø*_Ž/øų4œq†6ćūė4U©s5ńw“3<ŃZ8äB@%"GÄq0GAo CØc’;vĄc3µl0Äs….“t^(!Xµ iŁ8Ž‹Ņ4V> ę*œAc#7*&ńć8#Ł;E‘äÆųÅ ;QXü7āż†¼ī›Ė@&{• 9 øß wWĆųąāqļ¹Śŗź7é!ē½ÖčŒ1éÜŁė@øĮīž–=ģŠ%źÅTkߑ’ōÜō§Ü“3ōįõ,ęŚC˜č@”ąä¢¦Ž ˜Ē޳ł“Ū/ōDŲż\× .żŚą¢ŻŻtŽ‹Öć“7äIi”ąz•!ébĶī',Ÿļ?Émļäwī÷·’rü᢯üNß3üuO¦łz­äüsŠÖł"ĆyūćĻNłćĀ1÷]÷Ņ÷³”Uņ—8Ÿń¶śņEä?öK*ńų9óÉŖŹėHčć$čmOżéb5‚ēKa čmLŲē$0źåCüčV4!åĢ@xęz^{ć†-ĒąįV—āŌę+éZ?“ė_Émģ»§ņ!žō¦3ōz>Ģö!ÄvūĮ!ś4Ū+übś"’ƒĘV$Õ ūČɾŸ®ĮG hPē Ø?e…®, cńO’i)Šżs^„śÜļų^*RųĆ»fū£‡1žąŖüדłŖ4śÖĢž×ö<e¹i¶½—ü‹ųõœNō‘’IśŲ:Į< ±ÜTåDÉ•ÕS qßKy1Ł 0a37·\†ķü'Jį’pNj»Ł „ ÷-OņŹ>, 3°ŁJu…Ų“€ 9y‰ æ¢ŌiHJł6¦g÷œHüzœģžŒ’ÉwJ‡ćmż€¦Īś'“ śGŽpóÓØ0ė‡rź?''č¾UˆęWqŃļĀåDż5d-žb$ üIUū±‹ł+ęnü…”‰Y :üeaƒa^ś'ƵųT` żĢX£CŌ X›䄁’Œž®žÅPŖBN –Ż –ø vŗ® ˜¶žDÄK¦Ó¶!įØäĘ^Ą g+ĪĻ~C’Zą8!. (Į; Į bCśĀu÷Ķā€śĄ£ŽćҚ‰f–P„Hu¹÷4Ŗßäɏ%ØŖnü …u_æŸwŖĒ(ŗĪ-Dd,ošĻ)·ßū(łæĻ($/rŽ,7’'b9ђį7v™7pY»6³%™4uš4Y6…‘.4v(…/X`Ŗ&ߔŗ "ö·Ź,ų"r°sÄÆyN[ OŸ+8ż½ł?srōm’9ņZäó…HÄõ ½õ„q-ņV‚ģź¾Sęų·µąŹ"įōä¾ÜaXŪ&“ŪļØÖŻ;£ć OWč`1ėŪģ/źq«>š0_pņ¾ö‰ńÖŽļRT ń˜īņ ń©sōŃҟō¢zčķO ųīŁkļnåē,%ĪŻGŪę—lÜffĶŚĘ)Ū²|ŲÉ[ŚRU¾Ų—ĒÅŚWÜ(ōķŪŚßDéūۘułŚ:pŁ!œŁMŸ2ŪJ’Eټ)ÖG†ŌųLōÖ‘>Ūļ¦ŚšĖŁq¢Ų¼ÅŚåė Ż„öÜĪ—įØJńćĄZå±Éāē+ņÆķģćęļS‘›ķņćœļgy¢šą¹©ļłļń]?ųYżĪūnŪ÷’z’˜xĢÄ •O;žntå̳×2AĢłŻLŠŌ‰Œ“įĀ Łžņ Ÿīµ ŠöˆY_į:z¤īÖŁ©?æ„ü ¶bö‚tĒXÉż²:9ėr©;Ö2+ņ½“NVŠ”]Œ ó"ø](¹ōc‘‘»—É(©ł×€Ģō}:ČõS€ĮõĻ›ėō8ŖiųÖŌėłfŌ“÷°L üō’½„kī ÉŌ) å[ŒóLÖØņ1 Tc(&K#/čO3}½1Ž.I˜¹,ƒĄµ)¾2å$ot‹—n}wN“¦›Š!Ÿœ8#5Ķ… ͊¹ƒyõ ©ŻVˆ4IÉ Æ:¶f8®ĶœJ€śóJ±ń÷¢\źŻ’ÓēO©å䯥“ąO%čŚĪaŌC7֙wĢŚdaāgĀfźłrņõżĒö=)”ö nłų ;ÕžūĶ]~C ‚D ¶ Ź0 ­T cŁL ’0^Õó”}8Š_’±¢ß42ӳʫ}ų×^äśP²ŻśżŠ}łoTüś` ÄžóĄWv% šķŸ,µpµPŹÖ`w~`–‘Ēū!ĖGõ ¬­ī-ų,ńśµōˆˆŠńQ!šī#Œė³z*čCŃTį„ŻM³ŽŻrUāu-xčUßIļ•ĢńDįSõ)Äńó½Nó0CåīĘŃxéד#č‰*é”ŌJī•Y/ō$WųĢ•’łœ“ižM¹ääĪäY0āąIōšœsÜø ØĄč …¹Ėš0| Qä\²ø×Ģ …FdƤ·&kįūFõØ©žīąEļ„rķ(ģ6ōī-ōõ±,—AńŅt>³H^b ĀÖŅö‰żVŚNcå5ś»īś’łu’ˆĪS|XÉ ų‹Ōh µq€ū MwĆŅĄę¼ ›‹Ø rU|Ē2 ’ ą-K LQ Č«: Ī"r @īK a"…8ŖżRö]­…óÖ£õĆ Nó§“óPƉų31|’ī˜[|'bœ=ū+>bųdf†õš±Ė󐷳Lóu|ßD p`» ĖA| ™Õ¬\’sZŚķš ĘCū’hū5~@õŲķõ³’ĪŁkUÜ/¶½üAüYuüõ°˜ļ‰oéōēP±ŗčm!øģ›į8ö“ÖaūržśGłOŌŚšIOžęŽELįDÕćž.ź²EŽš±9kļļĘę0Wį ™ąŠ2ąæ§fāÖ1čp?÷ļBĄńuMĻģēёčT.Fä×TBߓd_ߛĶā'ĮÉćf÷Óé>ŽæńUצōōG€ńbeī;ƒķ70nņģv÷=e†üöō·ŒeŽ KĪć %w“b3ė漣1SH …7† ¬œģ G¤ īY¬Ō ;™śæč‚ą9¹P® F€ż =u‡‚z‹½ąõ`ĆōÕ]’“ĒDśIõGsČÆP Bag ”„N -S}ķ̇Ÿ2,bū"}Ōų'ę!z(e{'į^~)GoŁ0˾„8Ė4>!Ū?É;w@‚m?½'š<Ÿo=ȁ©>¾]1>ķ§,9­21&M(œŁ‰$#Ī™$žųŗ$ nŚ Ŗjūé0 =øųķ W™å—ęąPÖyćtģ\,+Ļ( ņ—ÓõŚö°Lōoł ųYYü›…N’:Õuń8Óżp”ņ…µź—”ź\tóķJGÖņ¹.÷SQünQ ū¼Ģ_óaPŃéĶ‹į”W ą"[ą¦Šä0€ē0°bē°±BįgHČÜG ŲŻĻÓø%¤ŠqwxŌ2ķŻD”å“>ģĖ|ĆšÜbżļ mšāēLóoŖDņ_:ņ_.óŚ ē÷-ßśą ś›ōöĮé³÷“k³ö©œżņSaVńˆ“[šK±Dó JóĀŠ÷ņM©÷?å™üˆ6'’|óż]BöZg5ņ3¤ļ±^īJķŌĀŚė[©Īģ>7¦īŌhļ”–xķx“„ģÄģ73€é6÷æé@īI5ó'±ZōcK…ō;ĒÄō$ēĀ󃒲ņ•_ćō3Ī÷#įūŻ’a’g7=–gg*¤’ģyµś$Üū7ĪEŚ1Kß uŹ’Žü󾃙N’4‰üDżVŸ¼’ī½q5’J‚Æū„•¶ü®Ó’šNxš W_LƒW8 ǜmvÓvŻ:›q XL,I oŗ_C”L®pü9Fšłš¦ų÷JQł ū ü¹ŽW=H[ó_ °¼ĪüT/’§łsÕéõ>é0ł Ń’;j¬$;8ūCēšó5õŅńųS9š„Żń@ö+ß^ż'ižcv˜’¦K#żō 0ųų7˜šQŻŗķŽ >ļQņ]ŽRł øåc³Ø|¾NϟüÉaaųÖ¤-łśgūāddūCĄūü{HĄūWų˜>łÆŽ»żu«™ū;Ė;“ŪĢ@Œ¦M§[3 ˆ'R yRęõ]„įHū¶$夰7‚§#0%iŒ SžFŖżüź’dqķNTõ*Z~Ä’(ŖLż|¬š’Œæ» yż‘É–uB4"G°!ZEt{ū@ØŹ`Ļmös_½ź8Č/›e#eä(¦\-ĆdŽ1ōk3źß˜2Mć02ž/ d†/Ā2' »3;Ma4ÜĖŌ4éŹ5½V3ö3w0M­Ų,i‚r)¤Ś$†7õŃæš% cˆüŌķ ‰tü×ƒÉ •é †Ó v_ÜE1i¾»ÖBł„Ė·ņˆ(FņĢc5óČĶņ/o…š fš*‚ńWn4š–šCī2§Œź(œ‹č²5ęltå¾µ{åė!§äQŻ…ā’ÓäŠ(čY®©źdÆ ģÖQ?ķ3d¬ļ ė‹ķ›#ąéę ć)įWi^ß»%挳āĖŻ5Ž‘iŁEŚū×DɊךåÓ–_ĻfxzĻ9€NŅ>_(ÓŌzźÕķ‰Ų«­ŻgŖ„ß:ó ŽŲ0ćŽ6&Tą”mā¼øć:Œ2ą} qŽ“ieŽ>ĶŽÓ`Ž£X‡Ś8ڱ؀ڒFQܦ¬ņܘģsŽūįÖ·dā=ŹķādépęøĶė…Róķ2TńyÄöĄb]łZ<ü®āŃżĒ(Ęż~źUžÓIŅsDm …€ ²i &‡`°% ˆø‰ k ö¢XčÄķ;e XC€Ÿ`Ęų\Ÿ /R< ·ß ’HvD5Ćžłčę’ŗ‡’ö5q’¬›Ō&%ŌD £Ć šāg šüdHö»d›·Ūt#M„īG ‹ŻķINƒT;bށąf„"šj~0qņš£„b ’ķō, ĻEļš ,*† Xć «BNp¾/äņ éĶ›įOgņRŽžN–žė²ūBJš÷:¦uöeż÷šī ūĒ+žE+A:§hgĄ¬›fFõ‰ĪCŗ0’ ĶOQ#×č2"]J"£Œh"’–ÄÆn¤kiK÷ƒęK%ŗĄp*Ģ Ī?Ņ7» lÅž ³¹œ`ū‚ŲŲÆ’p(Ōżb¾¾ż' ēūӟéōįˆųģ¦RbęłCāFZąąó½!ŽKn®ŻĄeRŽĢīįŠRęĮūNė@>žńk½śg2Ń/ō…S‰» ŗšŚ·c(¹ *„7Œ3ˆŒ,˜LȚš*¹DŠs†Nœć ,‚üčŹūśÆ…\8öOQźž@8ŸL‰->āÓµlĢVn™@¢)é2™ ļŪłĻĖmž“ŠXčńŪS’źą‘®ėżÜbż>ŚöÓ ōÄl2ź×·¤ÕzZÕD *ą!ŁNųA‰»ļĻÄų/ö'ņNqCõ‘fīļ-ĮÜgхоaÖĆ©ąą}˜ęŒ­ŹņO>•ļĪiYķs¶äų}¬_õ”Š—ėkڶńŌ‹EśVQŲĪsv$ņJ¢ż(éōȞֶ_’(ż”ņķ‚ˆØą½īUÉPīlrĖņ8v‘ę*†[Ō]¤ā%‹ućŻµę”¢ē?Ɇö©=šsüÄ’˜ļąüŅ«ūļ?"Ÿł&¬ņ•¤½ūǰz eqµś ż¦’żÄõ ~„ü„“Ąń‘¢ęßx¬é3ł”^Æż°¶£’ęg­ƒņ­ž|©ūčŖņ÷° śĶ6ėń~-ņųŪ4.ų%›KōŒk{õæ7Yņ¾R€ņ4ķt÷+Äķ)Ü«ēČLd÷ūu2J}'­Ÿ ÅŠ}ü‡{ ©?­§EüŖš±„ ś#ę$Ē#‰TŖ®³_ ²3_™żKņ÷éqņ¹ŽģõĻń×Z’ł›Ø†:%L“4€ÓbrńYvpōL/&öP©_īÆłķUbÆģYxßż X ˆIai’¹ Չ®’ś-’ļ MKÜūŒėÕq (Ž’Zķ)0żWŖmś-‘@ēA¦ƒąńh<åNµ8ąt’ØąÆ)aėÓóū#°‡æ<üጣņų]lēćÄEÜf‹O՝\OŌń-ūŅ@Ą3å` Śż>XŒąƒų?OścAłĄf z¤ā»Ź¼tÖ‹«R»—%C$ņ”yiš5Ēźj–č¦Mź.¤UČ\õS(6F™l"=É]©G‘9˜Z ģ3Š;ŅéOżžšq­­3 Óe0C]WÜ0hč’ DĄā TŽ7ކDśr’&B5<ĻėI T©"S8vK)„K x”QxćZTąīHNаF–KäߐQt ©Q·ˆSŸO^Y«÷ZrKP‘>F>Ŗ E+ J)¬i/_ŸK+·B’!ģe7­ų!ń%,ÖT'Ä1[‚Ž~ś—¼@]é’ľöµöiņ| źIŠkéŹĻ”ģõŸö³äžšĘ8{ĘŗėģI’ øąų«ī±'1īÅņ5õ$/ēģ([2ć]"ŌÜŗ§¬ćĀvą6óąĻ~KÆĶ”5ÓzÓ×5I ڲ9•Ō:ĢzŪNć ō“ݜMōχYÖ,߂HŃćOŠ]īg!ļĒTRń˜ !óŽõ“š·ī@䧬2ćŗMė”xFåcƒ3ģŪ‹§ōņŹó4ŃńK§*šµų©ćå6Zę<‘‚éŠ@8ļ4Ü5ü§ę/Ć ¢K• =:g _õ@žö†’w¶qū_rų Õ÷ńfēÖ`:1³}ü2;X!J÷¦õō…!÷éõ”쳁ī~ĖģUśæå.68ä%]2ķTbīčń(Qļé؟īĖPÕį“fzą–ččąmĒī3ńŚó>yßł7šö·»Jž!“M÷Žńaˆų9šōz²ŽźdRdķ*£:ęģ=!ē風īÅź+ŚzāŖåé'ˆ~了õ3MUōÓīņÓ MœĻX‘Ēog)Żźß»Óųr’Ēņ½gżS#Xņņ9YéÅ×­’;Ž fǎŲŌ@ōwŌ’ėš““ŽõŚŃßó_Fęśė³£€’žŅŅwū§4{óGÆæė3˜@ę.ŃāŚF„Ō¾IÕ'ÕĄSćļ²é£Õč!ķ†ęņD<ńeXĢöžRvń$Épń¹–<ņŌ^ßóņBę닉ń%&ƒč‘é_ą‹«„š–Æ'ż‰aqńXVēĖ·ķł[[š|eųļś©²ź˜KÜ££ąŅ×SęU})ōyCxų¾hp -Ć žõ foš菶żlųŠŗ¼żĘø>łčmĘł <Żūó¬gfXn¾?‚ ¦Q"74Ež¶KüZā€ö~ķü'ī;Į÷?”€żH“5.9 Ŗe0īu65S hl՝Uٱ†. S¢īŗ°  ‡×µ7±!xdµŁ%Å ”Óļ*Æ 9rśEBąŌ?·įn5x’~6aĆü2…s¦-;-,PØN3j‰=¬-å=Ļ#y6š©*š„E'@Ä“&xŪė!ą%Č4łā(Ø.k!ƚj'ćT#‰O&;»(/½6 J 0œŹėnčfž²łˆd‰”XÜr§h§c –cõ’#óĮōŖķy ģüėčČņLģĢĘźµ}”ā]CYäāBź»č°ļäRaŌåŅ£›é‚¤Üå`|āłĆā§låŻ’Æ’Ų,ūĘŁĄ_Öųń ĶPš™Ņ ܞŽ/EŁ4‹Ī—KѱĘ*Ņ×8+׿9’Ūf²sŲ1əٰQŽ]ųåŹžéÄą¹ījķ®õ62-ļBŃVēģė1čæŹ¬ķyJ½ģ„qĘģŖÕ2ļŽŗsźŽ®Ļķ^ŗāńŁ·mė#Šćētģåžčč’ałä»•āæ{”åÄŠ ėžĄšórŠ“ūXźśėßģöĪ„:łbjśæūŒ„«,Äh‹ŃXyģģ§›ģźąŽ­ŗ™ EŽ l"ń’>ƾQ'–`Ø,Š#Ś/© 2ē­1#Ā,ī$8ŃēC®##Q#ūźl»@ņd/jÜ0Ž V+1µm/Ā8‰õ} œ\‘»üSBß ģŸnz‚M Õ —{ ų_‹&Ć÷”«ŒKž”ŠÉō.A“)­kĮŁČiłņ;“¢ń:āfżs¶ut¢=u„w®ž.ŹźNģ½\ī’{ć+ž’Uü÷HCłŃēü5»“EXĖyÆ ¼’| Čcī k&» ¹tÉ Eµč`k?Š ž bśŒ »äŽ`ū£V6gz0Ēdßz h^K¼tßۃQ ¬ķ „ń+÷ ¼3÷§ņÓĄŪ %׋\Iżło¶že¢\żzŽE#³¶w®Žņżl'9ōd¼EņąHé~z4čŅPu泈˜ÜÉšܗ#åĖ1†ē”:Üń~%MóFßāņéŻórtØū$)Ąśä’ķ'9’ ƌ’Ž.>µłß{įõ/ģī÷łņń#Žoņ?9ś®E¬õšįTųꏠų.klńŻėTęižƒä†–čŽ-öźp³ēęéĻģ‹ÜR{U Į$øi$ެ¬ į9Gž//öØśõ¬ĮŠćx®vŪ¬ńĶŠ®ÄtEd£ Ż3?HęjśŖ X뭟NįOŚļŚÄ-ėÜ5ÓŠļĪ„õ›É(ż¦ČĪ/łVl ü8=ķÖŻŽg’cŁ¢WKŲ82än.œźsĄIģ›1ĆīšiśyXWżT…ßõAHJņk+ņWqöõžō”ySū‘zņōĶ2ļ?„“śU…œRņŪĮĀč¶ą ļ|Ռō”ģšō:µķLN-ß`( Ž>Ä āčÉŚéæ¦Tė˜‡ęóŲŪƒģž%Ā¢æ©›bqŪø2<ż0cHöe^fóHš4ūāŖEÅ¢ÖūÅ–÷„ŹFųkyÕõ…Ķąģ˃iéĄ^?źnÖź^@¬ņĢ—öņķŠõ+r1ōĒ­®ł48žŠ+õDäLņōc)ķ źvęU‘’壈ę"¬éųļ˜īųƒķpķ•ņE[üJ­& ~hŠ£Uˆc®/$—ūw|ÉæJō ęģåą/½¤Øķj’āń Ł „ŽV*ü±€'ņ×ų3ķŒP½č¶^ź_M4śÓœ_ }ŸĮ ʦ lhuļQ\\÷’śŃńē‡ēćX+āē*ķļ©E¹…Į°ēņ ¶Õ¼(gōjEZåøähŻ”ß$ėlä:Üļėā=ļp˜īYō”äćśūŗūē=‡÷TSĪ÷LŪ‹śļā€śĮ=Vöł9ŽõzīĖJ’ć­čįń²ģāŒpīąf¢ĒźLYüĮłg»$ü-I rīµ`čŸ*c1+ =–²ēĮO « m»[Œ­™ć]} vpÜž–$Ķżäø.?ÓVī7*ŌL“šB³xT ™{ó!hg!L8§Uo­Č;ŚŚbŲ„CœÆ%!Ź ZŠąšq×ķ•rˆ?VĄćž¦Q)“ę3Å6ģ<īWEĒÅŅH_q{F}D#Ag@A©WŽDIŃCEĄ^PAŲć°>·LkBó×ĆG„‰^JŁM£P]Mdc‡GõP>’_ė2žńn(™t%A«b'Ü„$“F°7Ų­r&©›_Ø!¤Ä_>žqŽ8•@pŻX³ VP5<süUøZšą„īšĀšöŁ;—„Ø¢(ö w¦ķ(G ŌŃœ?ŠöŻLŽńWh īŠÉgź³³ć²Iߎ!-ß8Čē¢Rņ昼/ß4`NŪ®×»Ūjß:lņć+§łć =ędLYćąēÖÜiŁmį„Ūē§•ŪĶ“ÖŽ£ÄīēƝĆķ½²øń“æOš“œļ)OGė‹ūū辦ĮčvJÓå"ėqqœō¹•™ł[ĆŹśĶ»–łļĒ~ó˜Č›ņ‘“}ļWÄbó‚(śŅr\žĆµ,A) FsaĒŅHZBAjѰOÓ(ū¹Ż’gu=?ĢŚR_Yé5#nö’įköųóOĒųw—‡ļµķźdµ åŖ¢tß³‰wŽ ‘į‘%āĀģ,6źoŠäCžę=7\ķ°(õ{ÖcśÓQü„K3žk\& ø÷2VÓ÷+ę•öœóģÅąĮēĒ ˆé^é:?Ÿń«†S÷ˆ3B÷?Uö¤^=ömģbūīĀoüčžņķķżļ*„÷<čń„»Ūąūu9ŠÓłˆtö2L0ś׊šL=įętųėc½÷艙õŁ³ĢłōT:ōüżWļ38āZ„ŻZ·åžXĮév#īģźu“ėR„yļxęČźćģ¹~čpł°ćöÜzF©Ü`čģßc83ęEżģQ[˜ģ žŒš‚‰÷oóūxöfłĀł¤÷N]ōĄt!ņNMĄéJ}!ėŗ<—åŽĮĆįÕ9›źĻ#ąņ¾’ī f'źé\Aļ/qņņJõį$×īę)/ė¬]¼ģ8ČźØēņ:h/śOĻ]äņŚ“I•¶i3Ģ„ś`ÉGś‰Šö>ŚóiŁł8×MhO(Å5ż øŒF Ņ9§©‚uŲ‹ˆū†bXłSW#ū…ˆČżÆ”PĢF ?ŠÄ ńźŁ ėl¾ׇxCMDżÅčĖøņ‘ŲŽ…»KŽ6œ2C"Ś„ņ!ŃóJ."xh)W“/3mÜ®;£A;¼U&6*i—5śŻ0vū*”Ē(’)W.8ė/zž,š]A*\i8+•é‹)é}(H$–=F!WžŃ*¶‡ū« ļ %ć÷˜!Į: gČI,Y{€ ō÷Õę=Žc’Ÿ“ ŗ‡zŸ.ņŹų(œ^śü+į£ń©dŅė!ė'Ę«ļF³—ń$š1ĻéŚęįŸßAa5ßāOˆÜĪtŚ%cŽęā‹äqØPę]dōćÆN+ā/k?Ū Ž ŅłŖŽĶI7±Źä>±ÅŽ&æĖŲDi× ŒaŚŚdŲ+±Ł æœŻ£ā±ś…ćČÄįśčćS¤”įč¶³äŠĢŖģ”žŖžFƒ»n/…Bņ ½ŪÉ ŌįM   µ·°AŅ” Q©ŠÓfīžĻT’ķĻ"Æ ź ƒ …89–nČö\ė| |" !ȳ’kq@żĘį„g·Cv „ȇ 9€Ę ryČ?1äūĄKz÷ՎńĀńƒķ³ŲIåBιŪķQ‰Ś™Õ½ŽuĻ€äŸÕšŒCōh„ōˆUĶ÷¹’K$Ækæę‡d/lL¦‘$üleūń1eż¬ł.÷Č!ņņÉČō_'zó¤.öŽ·ōšģxjå®Ó˜ęRĻéoįųėP±ģGWń§}Ūw©ö ā³ˆ×0šh®>…  R–2³qż“×Īļ‰Jlč=D”ģso~ōå¾Vż‡łReĮ@GĪžŽ;ōlé ń, šóUÕPō(œIņS„÷ģ²Qś\’ŃżųWxūæĒčņ¦B°ź ŗeä‘ļ0ąÄåād’£ęErČåāŽåŪÕ\ķ^y™ńśhõótŽö5@ĮöpK®÷Aõė ĘųFäųK„Žų Ūvż5'ożēTöš‘”ļ8šńļįl¹šĪĘ’ļO§üé×öüćŃō{č©-˜ė„Ć›ó3‡Oż8f–‡ØĪ ø]x Cį0 4Ī >GCGóū¢›ūļƒŁÄė“EĢķüy÷O*Ź’Šu ’Ÿ®śˆ†ēņče‡šb‘KėǤųå.a–äŗ0ć%½āÖĮč”1š34’óÖ©~ó“Čó?åŁņųœóīRŽ‚ģå¬ļēOå’U‘ćM †ä µ&ė²+ˆówĮõz›“ś×īœ¬ė—²±ŒÅ' ’+v„ŠčbųDPHÄģ ɊĆ2ŽÖ(n­Œf* ū0Ó TÜ#Żeż4õäõoā\ń‰oÓī+;:ņqGĘž”k8  j‘¼Ūnš K¢&¶ec’)½É÷• ļ,ß+ē†ų(ćØRZźå śÕaQĄ7 Ģ.yėWAśųłyīģLźī“ģ”ēšq4õ+!zņż•$ļVAō2f0ülŒ$’Ö¤i’ē“÷’o{¾Źr’rž£²żj6ųwŻī“„·čüEäęImĖē—ļCHłø‰£üē‹XżāæyA 䝈 £S ößž “0/8ń@ūÉŒļčĄV J޶u¢S”ž€å.Ļ€” Ņņu«ÅkfC™ļōķ;љ’mÖ;vßß6o†­Mćx**<rś4źßqõ”å' : “‰® ·Łø ś­‚]%hķ,ɜ63JA=’K@ŃÆ B³–ęD’PFōD"B愞8š„<1Œ*0æ­#3q;f8Ś‹a@4ggFē7YEBs{=SĖ2Tšė&o† ˜˜ōuå ūdķ'^A ÷I½‘”ĀD"Aön$U—&Vm'0LķU×FŃš )™KK]īō¦”{ī†ŒņW“"üŪ¼|i[« åsy1P%pØä×ūăģõ)/ųš%äzčū€RßöķÜ4klćō'%ķ…EIšŹfķ(ģ~‰DčL‡ä¦ šćdfņį‰:ąÓŠŁ“vŌV³ńÓ4’Ł¬žŽs¦Āć°Ņ’ėĻ–šjČ_ó=ßÓóŖowņÜJłń÷ ņ~}šW÷Gīe6²ō‚½4ūėĢFż…\gżb!Čł‚÷cõ_ÜōĻ0³óˆ4 ł7Žqꐕ¢öµ ³i–}P©¹GLuaäq RÖG¼6čł®#”ł^ł]Ä$ü’3ŠžB’‘’übŲśĖöųErņ üģi1śč’"įĪ aٌ‰\Ų|‚Żj^Cā1ųģä$ńi ·ņ¼ÆBõ`aśåbżŪ;yżźZÄü¬oŸśō·’÷M9ņStóK,ÄöØź łµG—ł^łķxö7ŁųųI„¢÷±Õ›šœ,¤źÜiź}Ć<ķnķČż*ķ3ˆõŚõbę&e !0é ddü ^ń5‚ńč{ŒWåõē§ą ÕJćŌøźNqīźĻšŖxõ'ŅĆšF!ėīR°ßT6:Ś'^@Ü,Žmć’Ylė†ęĄģaq$šŠ9Éńާ×ń„ϜļXExīģ)›Jė6dŅę€7šå„cƒęŅkMčÉvCķ#ĖóIŗģöyqųņT°ł…»ų3:²õöY#ī'ŖŪź:fqć£ßEāæ|ņč/ 5ī¬Z(ļ|•ćńƒn[÷óPł€ ¹ų½åņņWźkķdøźD:éLE•éó™Hī”čiłõĄ Ü/CF£Ą²£’„hž[ŗžŖ}ś uśą”q’OK^‚ Æöž ČŽ>¦Ø'‰įČ Œø i(S6’jg.Ų %0£J]Ø Ź… ĖćŹö^0e±q'!»`$)Ć!Šž' ³ćD(v­Ąė„C…qѐ‚ė9Ń.$ņ-f,ÜŌ‰1Žł±0žƒµ/25Q/Ņ6Z+¾;'{e'{Õ+1‡¢1½}H1å.. I,u ,‹'õ)ó$p•Vśę÷";±«kįž$NvÅ,XØ/)߅)ŪćD"(ą@° ‰K·éL±«fT@;¦L3l•*„š±Xķ7ń×­łś‹©ļ’äȩ̇1ģõŚģ$w+čŗRßULŲ×?µŲģ‚¶ŻA$įLy&愬män8‘ā±/ŻJ3„ŲėßÄ×[NßՌ•+Ó&`OŠéøĶŽhūĪSĖ×*1żąW4ƒćƒtćĘ÷ć4Zäm"jē7¦é(G)ē’ĘEåg—œāeŃkįcŃ/ä˜)źūńčģ0©ēčR•Ćä(½j暱ŗź'ąEīw8’ń̓Ūń®0ĒļŖFšVĪBńY;ņņÕņw,ņ[×_ķ€8ąē…°åK Žę!čsź®É ī"ļŠŹīŸæłšcõö F’żI +ĘńĀb"ż_Õję„„4hķ%©!’„µ#*ž ÄB¶/ ™UÄ%“u"-`Ś4Ґ48÷ēĘ5āū)/Ÿ©'ڐ$Éū“&·½)Ŗ Ō&“øŹūƒL@ܜ”éś¾ łį°l.?Ģ0ؐ³<ÆŹœamEŅŪõĄ§Śž#Y‚’m²­ų Ŗ!©€M—™„q¶éäf5ö脯v[£A_4ŅŠHŲüY5ł§·ü˜”kßG?ci@/ĪU'·#u,T[ƒ—Ō”ējgµw–ų£$šõO’_öҶäłRĆW’:Żp[ɟ'nČBøhķ’šž Ū]elž¢ ’²rM‹šNŚ®|Jm½A!už‰Ūżōņ+ś½Iīśī ķż`QūPy®$įŸ(c­įŒ*ŒQ X“2 “Öä āĆ9‹¬g Ÿ°Z ąž &7 kl— ȓFWz+śmó„Ųāģ\Ņź­D\äļµĢŻT9‚Ū$ļ]Ż9?į›Nuź0õšó*Ū÷ņ£’x¾Ž„Ƴ wµ bł¼ I* ;U„Uł`@róÖĮ8ļE|ĖėĖX/ėĢRéķh…¼šÆ­ öóö‹šŒī ģˆŅįģė,Śļ¬š†`ČńŖSśÜœc £Ķ£ÆjöįŻŠœ“;b ģ¾Ķ’P»Įō7˜šøŁšņ /÷{”Ōśų:ŗü5 KÕR°MqŻh’Š#’Uhbü¼āłŚömšĒó»^6ó˜Y±ōŗ¬ņy·Ūģ–‚ļēĪņägĀ3ćWY`ć ³ć:j&ä[4ÅꉓRģĒZšv/ō­Ā½ł5¤«’ˆi¦Æs»­’œ€ūśemqų‰a6łnŠ6÷)}ń™‘šļ؜™óA˜÷ģlł>÷c¹ õ­µOō~›ņāö óŖśŚóŻĶ(ųTaĮżĄść’įS¹’a蒉ė<’DĄŅųĀ! ņT+ĒīŃėŽļdż‡ļéģöūhéšiśē–Pžčūūę³ļōäāČä…å&$4äŁäž‹äS©GęŌÆ­ź«šį4éņE„ņ,Ńßņ«ß"ņŌŠŽļ³LīqčīÖNŸń²›óß ō©ių±$mš @"or“¤Żė ޱ üÓŲä:ŹŅbЬ,Ąģ ©ń;óŠÅ 9Pģ §śš Ą£ ŌÖą—#įfś‡_éō•7®ņéĪWöæ^JżŁĢbš)ŌŲżąūUø˜żv-¶śøŗöSĻ(ņ\Dļ)FEņz{*ł0ī’œŒu?œ3E7÷xū7£"÷0=‘öÅŁNł…ØūĖ%ł‰»£ō›Ņó+¶÷ŽŻ%ż¬÷FS ņ£r×m) Kä(•Šųįїł:ĪŽńl.ė?Äī䔄¶įČėꔑéļ>yśõé?ś}’•dłĀ6ń:Ö“ 5“± _£Ņm(T,6ņKŸųG² %% |³¹ a2Q$ ½p 6l@›&ˆĆČĻĻŗV÷čk˜2šL’!)¹ņ$ģf—$TCS\ī`å995¼µŠ+ŁtG ±Ė i¬Õ„ģŹf#Up;/±}ˆ9v‡Õ=õö;yŸ•7Ź‹”5ÜĘé5Z²‘44ŒC0"+ Ž·(SW–)˜<ģ,(zR2Ŗg7GN£8Ŗńé3BĪ*r”7"×Öxõ_É“Ż4¹!’vpÆ3ŁļBmłRw#P:Ł(U±ļ*Ž¢¢$WŲ“'Æ 'ÕńOś<$Zóx,ņŎŽõjÓü’G,œµ ÆÕŚ æb ŁĒ Ot‘µ*JņUś GšN®aēĪj8äFwŚä÷ćŻQ–ā²»ćĢpWåĶŁę‡śēc1~č}‡)čŹ³ćŖõ¼Ż”Ą¢ŁhŁ7psŻPÉåVQļLæ7öpņūXŁż}…šü%xIü’šįüéž+ūR‹÷:?÷Šł” †ś$%õś6‚ƒśķčSśżd›ūī,žćšĪ~]O⌠"Sėw‰łčF5 ¤ĻI ½.G !Ž/PŒĮ’䩟śū;ł¶OYų”qGų†S ųåäšö-Tó­Ššm3UīÅłé+AčÄŚ×å2-vć•poä¾eŅęŪ_źŹX=ī@Ģ–īs‚ ļō»ˆņgŸ×÷čżĢ0?­‘-'r͚)WǦŪ}żŻ6¬łtšōCŒzńc ķ6†øčĘSé*¼ćč-ŃNēō“÷ēōøģ?TķņŚ~Öōv¼Iņ 0nõĢüX†'ż—æž׳)3Œņ/ŗļźĖė#åz®ßš_ŽŚØ±ŻĄū åLL•čjKč!˜fź¢ß~ė·Ū;éę æäŸā·cåH”ÆėH7ņäćõśÓ ö“²ŗõ(Sæōøw…ļEBé@ē Āč®ęē~|øęӞ\å9«ꌵ·ź±$ń&ʰō§:‘÷ż¤śJ ĮüS²ūłoöž÷…óŅrļZIķ hœķ:tˆėĪ2včbhé’؜ķ.WWļ«ųļ­Śóģ)W>ģßiŖģ.bģŅŹ“š[Ķ`õŸį2üaGž ķˆ.1®Š ž–óķPVē/ Cž¶Żfž0a ƃ¤ RŠ ō¬Ā Ķa5 ēÅA ™\ų °¼¤ ŖżC 0P( Ķ}˜ ¤ š_ Į =5zįō}?±Ņg·ˆĖ¦ō' A[KĮµl÷ßQ(÷8“šėĻČ«Ūć #ģŽL'ńQĘ)–Ī,šs®0_YM3 o4%Y;5eõź4¤3’et.CÓ7(ĢŖ"#”­ē!wZ{!©!fenrir/config/sound/default/SoundOn.wav000066400000000000000000001131201513650123000204620ustar00rootroot00000000000000RIFFH–WAVEfmt (ž’€»ī  €Ŗ8›qfact€%data–в“ KŠ YÓLM¬÷#‹N'y‚ØŽ¢n źĶФ±ßn+Õčķ1QÉm‚UvC ķŁ ~‘“^ł\–=čż±<ä'©Ńā¶įļ¬DźPɚķö¤ģ! ¾š²’ÓńB>źc oŪ֘q×.ŌńÓd.Ž×£›ß‡_zßƒŚšŲ€0Lćūßėuždč5cź¼wīQQÆ’Ł³'łįżāĄ€,’‘§žš•É“óHŠ’5rÕ÷ŖĻęéūėzJQńŸ…ŪöŠ=ņfl<ąh®äŅ2ĀāųČ"ēc†é=Ł©ķG“äśeƆ/güżVłžżµ”éūO„Åš’‹{ėV³ī³śÄųlŽ+ńŃ7źāĮį‘"…릩ļ8ēxź5{Jēc`¾ķiėļz{šNߟül%’ĘÉ#Ó;ļE” ŃōL§ ĢĮćŠ¢<’ūūš’«/ŹęØfęWVų ƒJ{£` Sp~£mØ D“ ·‘™äģŠ X I»6wėŌ‚^ %™Ÿ1ųŃ vJś÷vł*KcüƳyü4ńöź‘ēņ鎳ń6lŠė“¢Éļó…Éü~v½ F}Ń Ł‡^œ£ÆążÕ įK= ž £Ū)Ž’Z öōš!ųĄ•‚@ø’•ż› qģI˜ļIŲh,\śŃ żJ7Ć\ƒR B°&,ūšAö±Æś°?–üŸK$ūSGrü5j=Īfc3«€Óhßžæ[¢ł3˜ķhtßåįčķåĻĪŽx¬#ā„å\öx›ĪönÆĆeOÄ}PĪV XČø;49ƒ{čkŖ !4= į8„ōß<Ń1%mžĀY ßyÓ 8V «73½.²"ø lš¬E³É8Ś"»aĢR`).÷ł¦‘śī{ž6uš÷łŪüØÕśüLļŌ×iJ‚J(_öv1ŽĒŚ2!~Ų,°‹ä(ö*RAF.ŹĘü*=_ā"BIū!ĀĮX'zš)) «ż+Wh1+Ģ2+žļ,źfx#zz ŖÕ<›a€plĪ”¹Õ ;½ @ x夊pé O˜Æq莯,é :öÕTsėq &é¤Y8į7ģŻŲĆ!ŲKüXŻŽė=Ž 8ˆäJ]ė’-ųo\³E”õ^ģø{½f{Bõfådį?ߝ×A™ā|4@ķF53ē|äoß$č‡Rģµ]%ō ŌõBĪ%ę  ŽhJ„żeÜĢžƒŚsg żÓōpUeöhĀČVz…Y—œ%łL/ĄóŽ ZłžĀšž_7ķ6ģóĀU4õqČó»ÓņϹšź˜|Dķń˜4īwęö÷q±§k z…M –HŹfżSį $Ģžę—¬×÷ÉēSXmÅ„æ Ė’„éē=“‚Ÿ}¹ó±ÜÄ… ‘6?­@+75Tgcūļķ™åā ¾øäP“²ŽH]¤é­kķ~ĒØå”k1į7ĊźĒö¾µņż…™DĶżJĮ| €8ü‚=ńåÖļ|]åćøž±ŌÜg-Հ`›Ķ“äŅ!īßuĄ°ćņ²ŚjS‚Õސ;Ų¤Ujā=1įĶęaŚė2ćügė$ V• ×"tŅ%¤LņVņĮ ńĮY< ęžDƒéė™låńad,ŠXé*ā »w öŪéą)ųT™éį+…ågŁ–å,5ļ‘\ė’Ä!īÕķhtańSżCń¾{ ég ©Ü‚dpŲ•N©ÕŅõŖŁ³cąßŸ'ßb zŪ™VŻäŖ>bė½ōKé¼sėC6ńņ­`ž&³Ęś©hĘl¶żZ)Īņ±²@ö“£ž\+6öšĀKéįŸķŪĻXņ—÷kö5ꂹf÷›ā&ƒWå³Łä(“ņēK,źZųÓļmnūxB°·K’F‚PņQ—ž(ńūÓ÷uśŅØnń!Ā+ķ—½še«Ą÷še÷šQ¶Lź“`sä ·oģŗä”ī¹Öźz[#éŠėŻķ’$ŹģųCņœšIżź°•K†G1„ī³ »ŖĀĮ%:]“j„M"‡Y°Ö¹\@t!ųśN “­ŠŹ•›/Ü, ‡’c$2s4Y Ņ„1 ūąødJŲ rźzŌY ͚IeŸūĘcģś;ģŚü…£üx¬ö‰qøó(“ÜńÜy ķüK#ņH4”ž7! CŽE °µ¦|Ø Ī­ p¼ ń)Dæ1s’ßQĮö˜¶ū(™S ĪDdz1€ė€QząœŁ¢97üčō“ž’{Ų3@¦ć+%Ž’cųFš—ū Õ¹üŻńŻūÉCŚżę›Āßʰ‚N÷¼ūęž"żÉų™@€ķ®¢F羇Ūå öXą†½˜å³™}÷Y%źUqŠ”¤wƒ=·Ss üļ/§>µ;ēWhXž† …ŌĪ m޶A“Åą¾¤• Ī9†k× ā‘Z„ˆ†XÖCµč¼ õnył¬uÉ/Ö¦­hœoµĶTū ö‚ūŽŌN’żĻd˜DĖäĘ\ż‡'Čž`”?Ō[åż‰ÓE¶ø(Ŗ1š2Ś1Ēž½,“Ö¾)8ņŸ+LÉ-Ą>'*/š#±0<#Mč“']3‚)Ss§,šB1¢”Ø1ˆ,V§"ъŸEŠN7Ņ5B’i S*—° A\A "@1YVśg’ č’ѤÕ•ļõ=Ģ”ģK‘é_Ś;įĶżŚ!ńŗŁśéčŻČ}ßc3«åõźŚģoŌóų!J<ŗū“ Ä_¶hŗ²gßó©$āi¾äŚópäo÷+ģ”p[ēȝˆå'˜-éćĻžķ¦e[ō<3«÷†ĘØ) ź?ŚŲ¹žœR±’ ŒTOUYž “t‹łĒøŚ,"bHÕs}ģtł_”õšnŒųŃ ńkiļķ[^ōī‡BõøĢ,ōŗ9WņŸ<욢 īą ŃļmŚ€ųn£ˆĶ‚ ärKĶ>Å̵·L.¢JUÓ  ›†¼]ß(ņJæ_łĶšITąo‰XÅ+8 ßZM ź\É’5jƒĢµž„Œ£ļt‹ßäėĶ䤖įoŠR겑eģäå,|ć§DOģ~‡Ėöü©čżĮŌ’[%’ ØsēNcūõ‹Rņ ļ”z掎֣ BÕż²sĻ TLÕ_J=ąjžyāŌ÷ļŚīŽ ׌>GŚ(h@ā«@ ą~" ąµHīżJµ |K |"čEŠ#bĀĢžŃ8#ōŗ W_ż¾®īzułōdy„U!ēé9ė„’‹ ˜öö¢.÷ÓMŸźaį¹ęÜ$˜ēG®“īł†+ģžõ‡īJ®½ī¢šØń‚l‰šć°^č¢%ŻK GŁµ$יŗŪŹļß?ŽßUkŠŻmłéå ėĪõźxrŹģ ŃóÉpż-’źūCøKē ŸüŽvaō¤ąō÷•Ł`żłƒõR”Dė ųēīdÓó`µõåFCļ3żcäTPłåĮn/åĻmœčÕR7ėå€ńn˜Æū„7»’L=ĄQĻ+CŠ’1-D>»ģłKółń|žī%ķņ§ĶöØš€ßƒź„‰Žętžģ5DCīÜ6ėku곦ī:ųķč.ōl:©ż­r1Äåžk€v©aā $Ņ»5es-C<³#Z;°‰Sūƽ7P©Ų xž ņ„–¤VxZ\«Üyü>2» ęģ œųÖóg¤K½> 5téé ¦ž*mÓüSńūūœż¼±ū1.ŽöK‘/ō“ßÕń„Őīõó!ōS?Ł’¹} ͐f ŽQ‹M_ ™~ «(% ü ¾ŗ(’S{hųœażN‹£ į&oTKP5kTћ|ęį4¶żųæą’„¹Ä~ćŠ £wQ Īń°žõžł¢C5üKÖüÕĒüZčžyööK0ę9,€7¢ž’›ųo…Śķ½:7č¦āąålOģį>­g踊:ų;Š>/_ń҈ݵ’Ęf[gČ:äņ$7kŁO»dE fG ©c˜‹°PĮ· TUc¾t ʆä7—ķOŃß»]Ežs PUėŃŌQ(wrėīRaP° ɕv qüššü莒6{ŅšžD±„Y>×ĖŁ™Oä(‹jK0TŌ0Ā`,bYS*–ń+ić'-øęh)āņł#ńD$Č“±'²Į)B’ -€+Ń0%Tø0Æ +3ß!”e ×d`Ž®ōēl“XĆć­[ OŪ: ,ĒEšJL „ąAčj±š5²õEcķźČõčրIį”1Ū’>ŪʅuޘCÆąeœŗęėJZīÄpł21ķ’¼Fš–®[ķœß¹ŖņŽšöā¶‚Żt¢øåāLėEDēU_®ę1.ź¤x›īc%ÆōüĮ+łø˜¶q: Ģģ ^Ÿ’|=>“®Lä6H’o™¾P xóHūģ+Č!¢<šÉł©Čö5•Ų÷2‹ńr~šõ¤ō$%Eõō Kō±čżńł>ķähĮīc†=ń†ßÖłWŚD· ©Ó†BķdˆĢŪ·+(`†Ėaz}W§4üL`¦ƒ Vö—'ėłóG=T m ŗn$ nBŚF<ż…~uļž-Ję”Yåo†ć{ §źaóŠėr?ęNijå{æķ~M÷é®ĆżÄŖ’Mƒņ’©cē6¼śB‹źņ(ŸJāpäåל€tՑŅ-Ń1ž0×(‘Ją˜ōvį‘>0Ū£4cŲ—‰ĻŪ)ÉżįæŁąYŌ—ä …Óž+Ü+y;Ī#Ż!ģ÷!žäń•ūŻ żl“ü/) ńē:J÷AD\pg){’O)³j|ö„Qcö‚ųnė=¬ÕēC“éƒĻZī/[Źģ‰TŚī^ziļ`ÄÆń2é¾ļꔽēŌč7ŽbŚ»čnŲž™ ÜĶźßg":ßHż8ßBl ę„-Āźč*«źTgąķ¬4lōąĒü—e­üļė¢8Ųūšøõ$F łL#(üó•Tō(žŁģ‘@ėļŗ.lóUłāōfÆ_īNB¾åwœ‚ęŠfęq4éč|4ģąČĪņ¢Źū^€’ł6…'jęl_ņsłNłtņääŲļ."ó^zšõ„0TšBŅźū²4čŠhRķŽŸõķ’•ė%įkėĻ80ī°,ļĀrõ§ŪżUŻN fµŲAå”- R,A†gD¼Ē/”dĻŪqPŒ* |RYµ % ų€£ģqþŽ`™ć$Q”Ų z͵ ŠŅ†1‚“Ǝ ”®×–6·mŌ„;ÄżģĄü“ĮżŸ*Wū­÷?LpōŪččńŠXäļ'žŌõÕ]Ć©  „S Ń{ Żā DD ĪT‚ ^Ų)—P’#ńł)4§’„m¢ 9Š»!fVīJDvŒ£9Ņń6ĄōžĻž¶’³‘>* ō¶ ŸošØ–6ū4|¢üL$ōü?gżó±’÷LłŌ>ƒĶ?/„'0žO÷P!ī!UŚčb§ę)6}ćķҲźĶHŗųҟĄ£ÓF¾•÷ › €•’÷Jśyą 6;oXķ 2r•%¦qV§ü÷׆œ€/<ł “jiī—~÷*G°R8@%yj¦ś'Xå“Vš›ŠrņŖKś %|2q\ż‰€żĢŹ=zĢłēµy»ėĮžrņ„ĒGP 0õ²ہ¤rą(e /fŌÜ/ų—X,g\³*sf,/v,³¦Ć(8ŌW$&ø$~‹æ'Ēxī)/ ;-“°e0ó„ŗ/”P*˜(!C‘4]/“āZŗį3<ƒf]ä ę’ ė} .Ž:kĀ zĻČīŪ¶Š‚’”š{õ|kÖķS(æčķdįLė$Ü Y'Üż1ßĢ7ÆįŃĒŗēEC•ﯿł 9 ’jz—ĪÓyĀgs’jŃØńę˜ÓćŠßßįåę›žźXĢē½ēĒˆŻź sfļzĢõĻŽdś¦×ØNŹ2SeHĒĄ”<{Väż’ķ¹ļ@®2`O ĪŪ³ė+±śŒżŒ÷J­E÷¼FņńĻļńņĪō>õuBō™dĮń~V ī¤lqļg˜„ņžŹõśĘ³‰Ō ¼„Į™óń ŗv|O`M”—AI°āĢåĄ’<¹ź‚Ćœš<ČkJŗpT” ‹eĖ ½ŁT—ń×B,ļūŚl`ļITVēÓĆ‚å ³–ä[[Ćźƒ¢ŽźüÉCónłhĶ0_4:®×W\M—8ń’—*Ąõ€ģē—Öč]‘)ź ‘!īī'HķˆųļNbåļ€ Šń±Žōīį§8ē{½ŽĮY¶Ś3«ŁŲÖÜIJäßbŽ‚ßĘö˜ą ēīŅź‰øCėBzŪīÄŌZõFmRü“©#ż+Åź’īRūJŌöā¬łźė ū@ģŚó&8#ī?ųøšl ó­{ō*=ĄķĆÉę ÜüębfŲꛃÄéč"ķĪÕóĻŃūU’ē½=¢ r[%“»’ū ł±Aęņ‹ąš'=“ó#8+õ.ųš'ā.ė@Ēéč;‚ķŸ¼ķ ļė>Q%ģÅoī‘šÖ®qöĀDņż™„W–Ą‹«¹É7“ 6QMRµ{A”L—P$Hž  \’?'d e… –Šžńņ®U>KdsŪĢ Pģ ń%Åä›ZŪ¢ “p$;D}2õ2…?€žŽ=Lż-jżāąū.÷{’ōŲ_ņ.ūńrśG÷f5o(ŗœ `Ŗ" č' <+: nŌ9 $”Ū åō–Ź üžxe^ū޹mL“d šĮD}ēZUõ¤;½ėž(mh0ńŽY†pf H/W Ž’3Ģ"ü·†ńüżrµż1zFќŻŅÜ¢Ņ б„ż„$³ö‘KVī“;MéDóMęīååxܕģū«ł—ßf%܀†G-ćŅ °®ŗkšō½ūŪ+¤.T·‚«ĘĮ. ,A4³āšž°i;p Anä¬ŌķXæ%öęRš(WśłÕäʰ!7mėõM žƒ„J"žŸŸ7žģ7|D÷ŗW d yd’F§š"/ Zœ|Ś©BQ€»(苰. ų.æ1,Ķöé* Eź+ņƒĮ+t6(\Ÿ$ė $%.žÄ'Č- *3D-ØŻ/Ø&·.‡˜ś(éo† wńĻÜ#®ģ›®’1¢,Uw֔ʖ¶ĖV Ų[A鼙œ,ŒžżŌGõzĖ†č¹‹į@»żÜĶ Ż• ”߈œšāKˆ­č£ušš<‰ņłc’øœڌÖHøKńżNĢŲš4°²ä°y½įėAē °ź×“č’”gč¾ņ’ėļ+š{”õJ„aūÜ^äæ‘oDĶžłSĀvOŹŲ“l{˜‰eA’JL2:„ßZėFQ®^śuųÜĪś{ ZļTŁ$č/ćęĶøÖ儿źæL_ź’”6ēuY~č¶ļļ^Ļś÷ iżtE}’CÖz ¾h Gøł$Š!óĮń«ģ<ŹāÉ¢ŁĶX3ÖVŖ>ŌKAŪŁ+–ąPÕą¢AĒŪ”ŲžŚ}¶Õݬąŗį)W«āń_ėźaaĀŽ'ķś- ivžßlžy^6 •üÉŪõ1XsśÖp6+’­‹Knōžˆ>õn°ģ\ҼéĘ ėr īŠcÆķµ\ļJ ;š=œFńT}3īmĒĖę:į)ßeĮ\ŪQŚJ=vŻńŠēß:äßdJŗį`ö}ē³7“źŪßÕė”Z»ļ ^ö°Iü2``ż6ü5’Ī4żśŗ¹÷’IžłFųś4•ó%@1ļä¹[ńpĄ¦óØHFó¾ŻRķO\šēžÕmēvŌ…ēY€SźņńīŠx„ō˜Ļūjƒ3’PøŅPdŅLˆiļ„’PŌ·ųjPó™"»ńū¹čóhO~ōĆQÉļOˆ’ė.„źü)ķ˜/–ķŽŹCģ·ģ‡Ņ¾īćYłš` =÷<¶ūżW[p^a ‘ÜųĮؐ½-Ø0ßÄ Öé.õÅĮōš“ļc *Yę 7ŠV «ēź wĘB<]óÆTIGøqütqN@§ ýy ¾Õµœ_“׳ ǽeń5] ×±é=’֊®żķöüüøĄś“±;÷a¦ōZ­XņęAFņE©†ųƒš2ZD ±Ėį R̦ <|o ˆ' IX6 Ė ’1²üµ(ņZYų 2 Ē”U^[õιģ †&ėī40äNXÅś>— ‹ō.ŽP“ÓiÖüę6.ż @żHžv|²š•°ЏÓĪJ‘ż’,öŗn}īĪa¤é‚óę1awęöģ&īÓp\łc…)&ŖO¶nw H³¼¢m)G£ŪڟœQ+ŸEæN„ļĄzHÉŖ"üį¹zč,}zaß ßSx`9’†0H’z¶Å÷»Ø‚£J›ĀØŽxŹō[bēWŸ ±Ń²Fō^?¬9Ū Ŗ0ŗÆÅ«Ō±„Ö )ŹXą–¼$#FQ(vźŚ)1[‰)­(1*ĒŁ+Qx*šĮ'›‹ė%Ė™&½.ų'øŚ¤)©éR,ēGŲ-²‡,ƒ#(·£Ź!«({ž—ś¤¢\[ŌxŽ€ø§é&›ī[™˜¼įW ² ¾ĆßZ6Je4‘’~±ųhP[ņҬMģćˆĄå„ƒśį Š įų‰ĻįP}Óć}„éč5Ž(ļbŖöwÕśÅDžŸś0śišÆūĀūń_“$źoBčŗqvźSYżéŸ>”蚤¾éö= ģ)\°ļ|č;ōŹšœł¢ĪА…0Āqīth0 +[“}8«ėe֓Š—DšˆRöū’zślŻś÷›^iō!3õn§ˆõr3&õC=)ō¾Śņ®ō^š‚Žńčæō;o“ūéĒų:‰sj 'Ą9÷Z‹EģÅP¾»^ØĪ—Ńƒ“{zo‰^ĖæŁōū™č8ÉĻ °žH §¬k?Ŗ ü mówŁŻķF¤ÕźŽ±Ąé6iEģ ēŖéŒ«čĮÖźS‚\šC³õf³śż”cüMJž īżéĒųĖśĖō4ĆJīĪÅmåć>2ߤ[1ŪV~ųŲ|1 ŻŃ ßa”fŽ[>óŪüĒrܒ5±ŽNäį®ā'ŸĀģżh•ü=’„Ž—m4čoX7ōH–"žŃ ČI‹’™o7ü-’\ĶR?¹Ö*śWPū]<Žž'ŁmöāÖ6ń#X:ī{Tīäļ +īPœõļż’āš#ķ©læē~_.āŌõDߣēŻc ‚߀śńßŲ@&ąŸ2‚āÉĘęž ƒčĄżŁźk˜ōDōžõĀųF’pś; Æü*‡&łó‹/łÕkaśiXßų ’źów±:ņśeó»ó"Ī~ņXķ˜ŠpźPDņéūv-鹜ė:K"ī;8ō ”ķųČüū^Yžu½£’3Į’xĮždä¼ųU¾ńõdÕqō®²|õ‘Dō  ;šwŌæķQķ¦īę?ķ‡qķč‘tķüN ļā&ńøTĒö¹¼MūÆ-pža„ą–ŗ!.‹#W³÷ Ń蓇lß(…Ńxü#Ź &D… pwŌ ”(I iµ±1™73oŖūœŸ½¶a,vī$ Ē… C” Z |ˆœšn l1Õ³÷ÜžiyžĀürZŌųĒ…ö.VUōL6ėōŹŽžłhisńĘ¢÷ż1įėš żEį &ł% fvÓ¢o7E.ł«vMOgw÷Ó |¼± §VŌ”¶ż Ķ]p$ŒÜ‹Dģ÷,€ļ]ņ V×Leq°ĀÕ§’†’cŪWžz8’¼öų‰%µ’"ėśP„H"żč¦@÷6f‘ńēžcķnnAź÷ÓPźØņnš؈÷`>Xü£‡eJgu^™šīć0 ~ņ«„Üz4Y”õ‹ł×S_®€]GÉ “Ō "™Ń |čD Vźņ³lč}mÄn—_~Ž4U€>%Øs+ z _ę-§”VL—K‰øń0ÅĖjļ3„t„ t ‡‹ūĻ īņīó">Ź'Y)„^)ˆ&*šN¼*_ņä)@­v'ÉŲ’%²4Ÿ&Č”ź'ČŹ¬)±,šęE-Jlµ+wŃ?'Wr\!Ķ«œ#«„ó®“7_9jšø n"H׿3¶Öœ W£ŅZ©Āćużžƒ¼ü÷Ī”2ņK˜ģGfüåP~ā«’“įB6TākF äõz£éņ&ŻļäĆöŻļśŗWaž.ĶıD7"ǵś±³ńp¼Ćź÷ńé4Žźmųén3é59:ź¶Žģ„z4šø¾¾ō6p=ś]™jQ,7–­T®~UįŋšśxcķV¬”īrHƒåƒĮ’øt#üTµlśÜwĒ÷ß×āōCDWõVߐõōj$õ„“ ō,½ņøbŽšu"Yņ.Euõ’OümO;‹hR #¾ė ±˜ʄuŪqū¢7Žf-¦¦9@UOÆB‹Ēņa3”GįłęÅ¢ž¹ ĒJķ ;ūW<6Dtū†Dzóź,+īž®5ė8Ģqźī®ģ}wÉé:™;é$jė3āšīŒ÷õ®™śėĪtü×,žį ?ż…“˜ųwÖaōĻž“ķµ%så_4ß<.”Ū¬NڊntŻŗl ß]÷KŽäKmÜBÜŻ£]#ßüuJįĖ/äļ3€īöü`“ Q袉ėŅ)ģMŃŌģ²›ŽLߎ’"Ļ'ż­ŒŒ’şT ‹×įyŒ½“ŠžŠ!ZönŽvńž“øīW0­īŸ˜ļĀ˜īłŹšĖāš—X𜦮ģ걐ēī>vā=DØßļŒŽą Éß§,(ą1°ąƒ’/ć«ķę5×Ķč·2gė&šŠļķ/™ō}|Æųq—ś““üZ4YłŅ“†ł^ź2śōčUų‡ēōAKæņÆ.‘óyZ¤ó‘&ņIS‰ķnnŚź?'&źöĀéovģwķćīÅ*mōCĀłØyüoZžĶt’AĒīž’įtż¢ń¾ųCÉ$öœ£ŽōŖ-gõć~“óˆŅEšuŹ ī¼†ķH¹ŽīG h퓨Lķ§£ŠķÓbļ!yäń4Ü#÷¾fū»„žö©b>|Cg[øq˜/{ŠĶ ™żŲÓ³Rśę€ — / Š ^ŗ šÆfp]휱­ĄI•‘I[ŃŽ / üwŚ Ėī —³P (bü †šĻ złŅ.·;‘Å-Zž’š×ūåųäØjȘi­ø¦Ūß«cӷˇ“ o+õĮTŃü2Y$ S˜žox Ļś`ł{ģ gŒž[PÖłāūųœ›¹ńŖ Äś$ *ē"Yńä(Īé”3’õÓTĄņ‰¹«é*/¦×bšÕųޱĶ`OÓ„£ž×C©×ĮžÅÓx®ZįŽ¾ā­Ń‡ŪŃĀĘہÄcŲr“ÄčÉÄŽÕ’ÕģŁŒä9„WäÓPLļC†FüŽo-óš źfGjłķ‰ųoĀæ|ų«ČčGśØõ_Žģō ¹łÅ6ōT‹‰÷9zÆÄöKU8[ē-k ĪdPrņĪc Ó_z‘ŁHŃķHömµęż?~ū·Ž¤ē…­zōXČ›č Ÿ“ēj3ėć&“ģß[„ć ‘ØļÕ küłźĮ’—W Šic0äh,Š!cQ.Ļ“c%jž¢&|üH' wŲ'Ÿ=ž)DąY6±K¬*¾č8,L 6* (?ĪBÅJųDc‰u/Ÿy³06$ƒ2fUéOėÄŸę}&¢’Ńļ—üö› Ē7 e“*‚w‚£š†ōžNšļśõ^ę)6V×:#ųܛļfߚŖOėėdwā‰5ńēą‚ć¾ÅL÷śc8ų@ėĶųJÄųµFZķ@üžGewrĢ‘€5O(2^õ$VģjŌćéŅ8źt—ź ŻüjJņ÷€Āķ’ńņšzü{¢†łKß#łeŃ'ū"=LÖ‰•Bśw„ū]åäō—š–ģˆIøę”¾9äēŃtŅ&Üāßš,Zī”5aī[Æsīņśą™žó •ÓQh\^ųšmŸŪ üŒ¾ŪKn ’¢ō-$)I“‡Ø5c6M ū",Ź­öP);°~-Ō›ö$•%2 łÄ+«{Ī0½:(©…-O'!ńÉ[Z:sFśM7śTžlīN ’ń¢ōßćž9,ęcīCęžßČņžuōō± Ńń«,³Ų–".#¦'X¾Ļ"™Ę)˜I']o‘(įļ‚Ńf™ Ķśō īųl‰ŌN =oH fglŸ+žÖļ—²ūJ•śzcW’ļŽüõóÓ KŌ”uó:)i,/Ē*4th.o%Ītˆ aó—¬Ī“ž(yvņ Įóŗ7GÄ/üššŒĆūņ Śxń®Ņ0ē¾£ÕžÖ ­„ĶĆ^“Ż 3Ņ¶ŁĶæ£ŅÜ©ĀŃÖžĻŃŠuĆL ٹ‡ę€“ī ł²„†ž² 6¾‡-a¼ē§Š½.üńʧŖ,Ōļ’„Ņ6JŽĢõß)ƒāó¹ō/č8•õˆqµņ*ó*ćtҤčü0+ėą`ē3”Ö=źŽk²š×Ä}RŻlWÕÕ„ ĒžåĻĪ’æĶõą<ÖJ$gŻČ­9į#ćół–ōĖ~#÷²‡ł69ń‘uóøósķõਐ6į;±8فYŻåņ9sÕw,ŲĶdÜŹ“‡k×|‰[ÖŃgxÓIŸÄÖ_¼ߢm āõęč\Šł:źū˜¼1œ˜ž£3 &ĪĒ’ x<ķ/]-% ķŚ™z»7‡’±®`É×sÓ½ą#—Ēś$ĆH³.7‡“'Öß8{Ŗh5&NÉN 0§ _ ƒWŸį čÓÜōĢöiöĢö]s0ō•ūÄī|ŖKéy£ĆåöN’ģ ęԊõ\/-’Šcf ķ+ ęņV ³ŚT …7| ØX(Ł·Z&¢ żNķ@ź°:'%¾_!GM¼ߎ.mós Ö¾;¼FXxĶć­ 'h ^SŖųŃŹ;÷j°‡łŪtūnŌ‡ųW'ż+£Až]ŌŅžØĢÜļ(“Qš”\²įI¶zÕWųŅuh•Ö°ģŃå·;Žļ$äõ2-Yü9œLR1? §šŌ“öAńŃшŹ}«"k:?ļžūo¦D£×"JV»%'҆§ļåŌ…zV'"¦(xŪLō*zšé4Ļ—,Č*6„ÕŲ1:Š…0ł.ų(³™&Ms%}· ;ĒķLĻIśUēuü·öZń±¹Z‰*NéŒ; rÅŽ.Æ-J=īņ¬N¬åÉRX)ßX2ßaPIYåŒę·é»÷ÓöĮ% ö4ķĢųĖcćūļ(wēPĒļ°ū¤ķ7=¦ė,wæŚZölį ”•ą}8õć¬8Hą]ķŃqĄZÖfČÖz²¦Ż)ē%ē\.OģlQ™żšÉ£ęü 4nķP ®×^’ /ņ[†zh&ž‹p˜²˜¬ĮĪśŒāņæsłń‘föŽn č«ļ÷č²**ßOŻÜ¶q€ÕŹWaćUd(ā©|žēf€ äJŽģņŽé Gµß{žāx›µå1€cšó:ūõ2ųœ÷Ķ÷ßś½…ŠŒ(Ś÷ ÜźĻ ž[źp° śY ļtlÅīźęóōU¾)“Lµh eĮč ÓīŠ$‡Š tE>÷üsōø7µā&Y­čŅĮPó–Š-’W&~ŹC¹äžvUŅļOœå8 ’ß"kā)åŅē`§ÅģĒA”ÜAžŚŌ毐[ėįšÅ~ą]ķęA€åīM€Äö(’Pō·®c÷wßšņ!׉ä:7šįyŪ³Ż7“0ÕEŲ6ÓZ:tę’źĪjtķäC–š+a±ļł+TńĒ=ŠśĖ…!óÓųü›-Üū‹.žņ–s°Š =ÜN2N ”ᭌü‘e @b’ÅCÓ¼dvTé¾0!š ź<·Bū\Q‰ō½ķ4 °śénś³»ĻöčÄ×ķŃR.õ;޼ų‹<-žÉäJ’FĢü“#ėĘFX€ņ—\ķ_v²”'Ä©,6­M5‹[X1“Ń4"IJ6o**<®<¶8Ŗg=<· A;ĢŠ9¬‰l9ėCT<Ģ×9łĶ8Lp30ŹvĶ&V« 8¾Ė!Ն²¬‡ĪI\¾ č1 h¾]»ĘĶķ[ EŸ}šßnÉ,ÜW,(bĆ‚•Ö9Rü?\žĆVÆ’#-B›ž;ó1zt źĆü„nmüČ“ņEŚōŸƒļXl@ėI2[ńš!ļ>Xö=Wź»Č”įĮņĢÖ;Ōó¼ŃĻ(Āו+ŁFݼÖR6Ūŗėą”‡Ü䯘ŲS€·ŲŹÖŻą½±ūįŠęKļtąK榹ļ«Ć³÷Ų>śÄÖņnśō¢Hū¤¹éū ēI’呠ļ µóm¬~ņŒ­–ōcĆ©õö [ódr%ūóģåOoįŸoW  Ó ]öū£Īó{4 W9CåE¤-% ?zr-ŲāųpüŽšź*UźqF»ļ é#ębtčŃlŽē½_AéŽųźŚ‰dłµ¬Łc…ń >ÅZŠ« S€n%Ķ·Føą)h„A#v¾F$÷²ž&00p&tū-I,E0€š.(&2D›8<r?£6FA·Č20Ē ,ų_I-kHć Sunļ!dŻå T³!źģ¼¾mNEŻ .s( •ŒžKlPūKóódģĄrįWā½Ū*\ćņ•ŒęTÖ§ēŲņøé÷źRī¤ē«īhuü攳M ÷—õžõ@?Ÿõ žhŠ¾Ø¬Чžžd×qüÉSńń8){ź5‡)ģųŠšO¬NöoQż0N»ó_¼«ń$‰Yżˆµś.mdö>xäśbąž’Ć‹Õ’4lŚż~ž»V›żYԿˆė§ėéŲ‹‡Ż¼—ŪgN[ģśłī¾×ź­f§ōĮ(ļõ½čõ‰–’[qūģĒüRŖŻ’:ć19 jü ž# I12\Ē£˜ĶÖk(0]Įa±‚Ļ+É·M&ˆDm&±Ćä0ĖFµ*æ3(øµA)giÅ%ˆłš=xČ~8:XĒś÷,5ųÕŪ…ņc+ļĪL閻Yė:ę'ļ÷¤šõ%ćt’i†L¬+“ąjŌšżĮ æ³Ų Āł˜$ Å!$ĘÖvńŗ …Į e Š ”6u60 |×Ä~bŅ?oh wżØjzūKŪ!śKö™ŌŪt^U¦ź ļ#āåÖD˜x!Ųx'oæ)\ŸP*łO!—øƒĶ8.b‘h«Rū® ł Óć’ß’öLÖśļ…†ś§ˆņ…£ķ­%äŗč®ŁŌ08Ūs>ŚčÕYÜ”öBÕGżÖ‹“CŃžrAŠuÆ_Ė fFĮėsѼw•XŗX§ øžbė½~UEĀ¢¢¢½””UÅlö½ŃĘ1Ó«œŽÕł[3ßÅ%>ęJ1é%*@ź¹™ķńHĢŹę–vį’)¾īŖ³ó變dܧłšŪQÉoß)g«Łš8ŪxÆĖŃĀšdĻ­8c××ø/ÖĪÉ?Ü2ęfįĢüDé@ĻĶń¦“&šžŌņĶREņ~1¼īćńBĀ2ē“­ą¼Šą#EŁįią”Ų°×-½Ōzx…Õä'“Ś¢ ‹×pC×’Wņą@pźį~_åØ|ćš'Ū?śIŃ÷łŚ›üvāąYšµŹßžś9<źē»^%n&¹ Īy) ==.“Ÿ“*N`Ń˜KĶā"ŽŃė"\J|&W®„č a@XćU˜’ĶūŗœßŒbęĘ Ķ8 Č4’žMxłx[Ćłóx#ō}FcīšPī*?õ琉®ļo幚• żA÷Ē[Ü. Õ7R Gó¶ ļ’ÕˆįS /ÅG Bœ˜"nٶķw ?×5Vi; zÆ.ƒ”æÜÖuĆōųĄ0¶^ y.> SM“ٵKųdįA’Ńēlž‹Ęś–ūš«ž(wLū|.ōu ĆīĒą)ė¤ąsŽXjŚŅŠ£ßņ–)ŪB0‘܉ć~ļ‹ś–¼nłRs½ ¶f Öŗ MĮ0ųoÆĆNŃ8ŹØįŠĮ×Zƽ7œw!bźŚ­:[{fā ņ Õ["@”i!]vv/F6Ķ-3pņ*ēi3anņ,ˆs®&½Sm%€ļ!E@Hłš ó—_ ‘ŚœT £Š^ :³<=Ö^?“ń:½'§S­1ß!å>iŚOI†LßRŠM½—“KojOžŲeP”7ŸOąŗ KŖ4½M‹"ÄR—ć@Q[aQ" ļRŽaO‡ÄHUĻB,Ā“7bĮŻ0b: 2Pź/*Lw&ūk"č šŗZ:oōŚcĻ}]±–(.H LŻ•ņś #Źö¾F£ć§§åŪĮłcé„lœģÆŒš$Ļ3ųȍł±fh÷6bņĮĶ†åƒśIį<±ŚTDŁ ”„Ō e_Ö¦/Ö~\öÕ£¾(שūvĻ LĪlēĪ=_ŃįŠ²ÕŽÆšŁhÓ“Ōe$WŲqłwą‘Žą2s”ąŚ4č'Ūī£óm"ņ jōõ“¬ļ_Ąīē7Déšé8×ģźGā‡źŲąz‹‹å)>‚āĒNŗį^ątŪ5–Öłf±ŽŁNß8xåF¶ ģ¬?ōiź.žŒü«+ė3!6$ ×L øŌž ēürš<»÷ƒ\YüŚmŽöū5/ZöŻįuō%õõyÜīG_śåt÷dä2"žŻŃ¤<ŚorߞåVH“ćŖ øä1k±ėŅaīļ#ųšĮ% öäa÷÷Īüøõ²QKūÅźųH@‡üaū!ßņš‹•ģŽ¬@ņLŅņ‚lčöµ„ņ•«:ģgŲäüOāŠ/µę‹ź±īˆ÷žóYŽMōęābōJt!ō@ØÉź³䆶Cä£åŚeĀÕZ¶į$Ųź&QŚęØ'\ėT5=īĒ0ńģŗ„āō,³ĒöQ±1ökžó¹{ž½>Y$“5 5^g”%W£¤{„ Ō y@‘° ց ½*Æ:a4 "Õćč “—<4½+EÖźś\Mxų<x÷ü÷wRžsŒ’uœĶž^Ņž¶²ƒÆÜ¼ β8čW[2¹&&×,+ÆÕo.­jÄ.†WL3Œs¼8»³:GO8I‹7»jĢ9ˆ×6<Ś6ŗ’E9(Ho:T÷7“åp4mW+“Ļ[#3­§"/hĀnŻ æ7°ķ‘€ ™,v ÆźBÉ ēīO rcæąŻÄĀŖŌę‰5 ‡:źżv‘Īu¼“†•Ńa3u–Q- ź7 6†ü)^1ųŁs¶ōÄU–ņķ$]š‘1Ļš¢§Üó8žQń¾£ļÉhµäĶŪźŽsó Ś$·×mVōŲyiyÜAzéŲæéŲ/s"Ž÷fŪK"zÖ9Ąm×}"‰ŪŠfŽOPāÖM¹źĶģ‹”‘éhuQöOõŅłČюóš5ņó¼YTśøCēśĖAūŠ™Ż÷-žńū­÷g4ÕōQĄīņÜmŽóĆߏöŌT’˜¤q%?Tf`K šĒ&^B‡za DĀ’pš>„-Ē2æwöūž:øóīļBp&š>ōķČ%ÆčźåłźSŚUėģZ öŹūt÷'K †„C> ä‹J,"øtö! Ą£$˜öA&Y~n"z•e%„…ė$ŸŁ)_»/ōēį+%¾'.†Ü7ÆĘˆ;Ą–ģ<ČÅD7O˜‹,u÷B,ŗĮC%č‚’Ų½ß|“ŒH?ŚS'¦,ķĪK "†e ŠŃ~ŁŃtüČ·ōaķĻ$cäŻæHÜ÷ĖšŻ˜ 䞽1ęvŲéhŠķį·ńœ+ųč®ÕżŪ Čł27ł$3ö +ś£GŸ’³Kf’˜—±’>ä?żkŸ÷p.NīīĀķōW–ļ¤lÄōĘ7Ēū_9ū•ašõp·Cś ŃrüC·qųl öł5·Œż¤--ĪUk’Įųž\`žˆÖčö,M7ķŗ[źć›”āŹŌ€ÜOµzćNB<ģ`\QėOļ3ŽŸō=ī$ō”¾%śj›‰żŗzż’ĢÅŪ̦– Zń»dÅQ-(s1 Ž90źć'žŲ¼<õj9Żī#¹źĒ(@²m%. ,āī,O6³'J5%'’>‡%cŠ\›ī¢,š<üŽ0 ÷AĖżóųÖļĻwģ3Nų阩Eķ­KŻņń¤mü(¼< GtIpēŗKņgŚW óŃĮ ¦£” Čg=’8yuū »b£ h č0Œ˜Š™d ‰iÉ›#' „H&Ž YÆ­üD„ŠźNß ¹¼’!]]ŗū‹”m1t4#Ē£)&]Š#&/."„ŠåYGŖ”{5AŪ1Gū1^„’ŗ›’V=śÆģ«ų2Ä”ōń\ĘļeųZé?éßęŽĖŪ_‹#ÜIućŚŖŲ†Ų¦ÆŌĢ`#Ó-ü5ĻDxJĪęĀÜƌŽÓĄ)«‘½!¶y»ŚD¾PkłĮ»uCĀkDÄŁx>ĻÉ{Ō2Š›Ö×Ī®Ūhtöāę$ē„.źĮŠoķ£.ėu‰ćT{鳀ė50 į'Œ4Ü-PÅÜ+ŸdܵÉŚ†łnŲ«ž½Ņ¬Y7×.ĮgٵfmŪ˜šąÄųårøĶķō²ĒļE)šJgńęŪļI^÷ļpĘė_1ć^™ŌąŲG:įŽr4įĄ7Üģ’ąÖÅ-ĮÖÖd-ŁyüŪų“Ł–ZßS]ćżė<åd’ķ%=.ö{µųāM(ś¤CÓ’O©š؜ŖtĆĖ!5j'NŲéó5 .,0γø-.r Mø»łbQÓ DM"Ķ  ż}#Ļą¤B _ÆügÄ$w ōŪ³ą˜ _«Öˆūn\3łįv:öó„ņE½š ZƒņF•8ņŖ±’ņAŠQųVŌDQooųᚠNK— —…śqčæ čš Ģ#” ’ä› aŌĄ DA[s€]|[ß”īŗPP&Ū ™j ū ĄŽ äĻn­użLČEżS³Č}ßc’@I°śŠ§Kśv"£üUąłö®žļŸ}Hģŗ…č ”@ā°Ū‹āÓĘ-ć±åMāĢøéQ\÷|ƒÖüŽžĶŹ=µ ēw·ļÕwÓÜįĻ’Ž_ųōÄ0Š®®uLų qŠŃ­;… —…#„"&G¹"-ƞ%É©+sWĪ*ż,sØČ)œ¢ø&~67"x!S ŗĘq[Å!t Å÷'”×EOh #Č Ž• łi„ Å~cY#ĮŲo+» ‹4ä5(?B|ĄEp÷ FžsEgÆG¦6M0w*M K›”‹Ii*0O“ĆŚOŃ1ÓMśJgLāµoM’ŲeJš¾˜CĢé;čĘŻ3)c3ņKŒ2Hv--„Ūp$4āĒ Ęvb¢Ä{éļŪ”@Zua±ó³ś#’ „7ūšž\ņĀ3)ę eŃč‘TPóöd÷JId÷lĘųĶ“śGę4õ[Įé/Xŗąń2ŹŽDDKŻ$ińŚĢ)>זpų؜…Łį8aŚkBÖ^ÅĘŅ.ä1Ó澿Ի Ü×܈XŲ›gbŲ–ĆŸÖł_Ż˜å§ąf.ńቧŠāŗ:źaźĪļ āźļ·ģ5ļ{ļ5óźb²Źź¢ęķ¦ćč:UŲį$ĢŽįę6†ęz©Iäśß‘žkŚKĖMą«q6ä}ģÄęžŃźā,˜š[V&śŲ3ž e½t* Ų`’Ć#żÜ7łkHIø}74gÓžŒČĖö'ÆōU`bõā/Xņœ÷(č)›ōāi -įØ”óŽ“•ŌŽžœ‰ć›l|ęg…Āäį#Zčm{}ļģī$óFėAóoņĖõ—ć†ömĪ÷홨ö3¬_÷ōuųśĄĖń²ž¢ėTš'ķē\ŗó•²Ńö)59ō}¾Žķ7ÓģŹśėzŗ0č®ńč+(ļüł•x’A¢Ń‘Ó!Ļg¤÷ aEŁDÖß@ētżĻ½Ą÷Ÿņ<ņ>ōžlõŸüš•R Y7.ēō•‚…ż wG÷²Æwń½Fī芹įNś4–ž#‹åäūw?įöx×ęģ«aĖē¶c}ē7˜®źØi8ķyęüék„ć(Qrāū›ēqGŻēŽ5¤ē;÷ģG, ō<·‡õgŻņÄÆųńø²@ļō©č æńćS` ąQŪžI}ŽŌØēAŽ@ź8jąęm“ŻčĀPĄģ(pżń2'aōęåöīū¢ĀžNā,1tš‚ā l:ƒ–øC”Pžt7ÅždV?£łę!(×8/—X~Ś—,ķņØ£µ qĮ¶_Hȋ «ą’~4"üGyNūļ\ž8ūV²ŚE³ ģsųžagés¬w&Õ qA²e Ž48›&§’(ė3Ū)¢²¢- Jõ4E‡8ŌF6X×03PtĆ4’’ų5ŪTd4™e5žY<849ˆU`4Ō]!-{ą%öNY#fm "½Cų ;ī:Ģ5 œ*± ž“ VU1Ūó!½ åQ‚8kČå,ƁÅ?D€Ø«B,{ņŒ€? ®Ŗ© ˆ=> Ųeź’x…¦ųP[÷F ^öćwōłē›ņåTöó§wóŪēš ž źĄo¶ā~u‰ßd Ü$²:ŻU`zŻ ė4Żn.Ł9ńŪĢܫ۶Ą]؈iYÕxŲ·-`ßüā~/čŃüė·ęŽģŗˆšä#ų‘U÷ŖP“ó5hXō²ś?ū<•öū[1¤ų$ŖÄóž_Åõ·0°ö,ó‹*ņėńåō®[ż™®SŠĆäłÅ4¤† g«ķ•« ²įA¢?¬FŹˆźČž·Iõ)Ņń,Vņ¦Æ5ū:.N< ’iODu`B!nD\!y·k!ķ ?"¹®ø%ĻŌ+Æ*ę+NŻs+Ā™»/²6°6żŪØ8!I4xĖv,ˆ¢õ)vüQ(ī»w!öUØ{2¾lź!GÖ/=鳝Amm` $³ āg…gĄ÷)‡Œščæžź]Ś·āœyĀßNäw¢Śé]<ė§WĪ푇óń²eų@2üdēūĪßaųD6Wö2œõŒśčÕLü|XŁż*-ü~h?ł£ÕÖņ"­ÅīwcNń±Śö®Ż/ü?ņüг śōŸNųO„½ūŻ’\ūĪ‘ŁłŹ±“śT€’M~ļ<@–žŸaż[÷åłĪ¶ņ ƒbėJt]瀨dā¹†ā Ÿ“éiĄKīŲÖ£ķ ˜dļ łŲņț@÷Ģ®ņś>Ūūü¶2Æ=Üš„é ĻŻyŹ!đȦ čq³UåŠa#~_z®Żé0ņ# ŠÖ%nąR' 8(l›r&PvŁ$D›"E“BżqęŽf ×3T–Åū7×ĻųĆļmõy؅ńÖ°źī½æ+ō¹ŗū›O+šŻ•Rį·§ģ˜¤~©…Ōˆä)fłzø ö“ģ<­ @æ] īV› śš, ¦!× é€ ū£@ ¼r k”ŗI˜QW/j¾8š łĘaĶ {ĖĶåiŅ•’³©/Åķ½¦ØM!ō,S€\€Ÿc˜¶*½zCo»śżĢ<ĖZœ’¦ł3iuõųYōÆMöļ’?čęoƤąĄłßP@Šß§ŁŪ8ģQÖ]ūķÓ"SÓ<\FŃfbͽāEĘHĆ)!Įćė›ĀĄ1|ÄsDäÅ>ĪĒ£ņ©ĢƒV2ŌÉ«TÖOe=ŲĮ{sÜTx䱄µę„BčWä±ē­ĆNåCåˆųSéž(®åpc£ŻĀž[ڱü÷ŻÆäߥM:ŪļE×·MŒŲOĄ$Ż\:sŻA[ńßūc"ć5@7źßæŠģ‘Ļ©ģžķ!ķŲŠ~īž7źīŲĢūėŖ©ˆå5jvįsp"ā¾Äeć@¾ląńŚH†–Ų”³CŪBStŽźbŠŻRøĀވ+bć5–ę¹?6ź"hšÅ&1ö/÷«xœłė&WžŠį!·§ŪH@ ꯋ2k ×f8 c±iļŻĀA­.‹eƬŠkƒ”ŚiZ¶łåÆ,œ¹üĮGK^NB¾“eo‚ŪŒžaīlūį ēś„"ž÷…;žõ ZāõWx;÷č‰ņõ‘c÷&Õ/žmĒżoŲMśpƒyOnĪĆ%€Ö Ś& Hæp Ļ‘e æ_ü Ws[xÜæóuĢÜop“6oc~Óų~ĆHDĶl Ąć6ämDž,łUčĪ’ģŠŲūÖśGł»yqł¶Ģ~÷:{ńSÕėķTŽL묿ÄēQjåę¬å„nŁä€łŒčVŸņ¼]ūjķüż®ŗŽ.Ś‚ˆcN ”Ž„G“.Ÿ¹C¾3;b{"˜—· ĢWŠŖdø‰ßÓ¹é;"Ž#1S(Nj*q؃)„rÕ(*%£h="iYZöo2‘qh`ėÅ® sā|ü‰ ¤x šĢćÜJš4ōt n‰ŗ'ŗÓĀ/S9w9 ¦pAŚąoDś6^D™ŹE(šÜIł“ØLŖ9 KžMJo%²Kē°Mk—½KčAYJ\ mJžWĻI‚ķśD)T=…ć5åRQ2ģ2u°N.m8'˜L –½žŸ=x™|*aš+ —¢4Ģ1†6,Ģ-'·O:hśĻJųś†OßöōL#Rļ Ŗ’É ó»©ņhŪJū.W•ī~łŅÖŠ–ŽCĒÆ${Ż/IĆĢBȇųĒĮö§ŹößŌ&“’æ³Æå­a~œÆ@C{°¶Å§¼Ōø*½Ó»±ąāz«O.Ą†’ŻĶĒŪQĘ9jęĒŖK4Ī—4—źćŻė࣓"ēe6āŽ_¦°ĖG°ćE`īaH܀+Ć:ä¶ŹņŻ%[ćaSÓŻ ·³äĒTéĶŃ1hqŪŅZ?ÜXåń×.×õŁ«nü{ķśßGr®īö6•Ēö{žiź±ģ¼ÖšQĘĖņE~^±ģ—ŖŲY]ŽÓ/Yą4ŠēRī¦ĶBKēŒŪÉbš!ĶVĮ—Ųj-āā†ļÕįŻ`$įbčdõ^żŻŚų ēõh3÷T1jš‰%4ū™©Yś Ÿ>ü;’,™Õ÷‚¹Óī’\z’šEŠ‹n‰å–C;—ņov÷|«}ÜåSüĶ*¢ā)»‹j†z!n2&äIȉī«B[4Ǧ} QƛųgĘMéż®JėnEčź £Āō$īYŽÅ£i Kf ēI“{½§¹÷zÕÖū]×½šć’ģ§ögß*żĪv…ų’¦uną8ŪĻÜ;ldļ"Ü@÷`SeņāpFļņæ÷ū_ńųBöķļŹžŠē€zŒŅĖ”iŠßĶzöÅŁ„„É|i?čT„ī3°āīćæäXUšFųEūǁ “ ™”bDŲųvė.UŻ ,¾&Ÿ/‘Ž+kh5#š~Ķ õųśn&ƒĖž?€ČżtŠĢ YRcéÄķ.Qņ§4% Öüņ_ņ¦‘š¼EIīEüńśļėiśqóO Øļ:Ķ%ó˜;ńF—¢įBŚāģ} ė?‰ZõWN+<ęcoßū€œTÓLßžˆ)(D„ĻVŲCUóó-Üčõ$=0ha"†Ėé „66«Ļ½+d倃¾y\Č™¹š[!‹ÆéRõŻNå ŽrłM³ū,ƒ~X¬5SpĀ +技„ūš—ŁH­IŠŻ~øEčĶäö½.Põ0(ž$ Rz! wņ~;’ę²ć—ćp’Gīi,ėœ2ŪFhĆŻY«PįŪžāŲÉŪź°NģŃ~āās¶uÜ.ˆįĄr*껇§į¢åäį ÆnÜ;ēŲd“ ćóeßĮ+Éę:œ ģYāt"¶ģqņx?"ƒˆŠd3ņ¹M)ūæ3÷ Q0q ”"-[śé £#wÜ(± ĄĢEõN„[šS~śS4„ņg÷ č.šŽiō‡ ńū²īNżX“æH=ó<“q0\1 – i`j9¶ļd_£ł­|ØšJØéb2’žV"„«! {½/pšü KQ·†A°=Ć 0¹Õ<ƒ[#ąz®-U“'ü7¬ĒŁäO'ēg~&†}” X·" :ŗ/°Ī»4Ū3)™™Ō*†,$\XĻ,#ńšzæ €ōEŻ^ˆ)ē½ž/€Ōi_ %ņ·+ 6ę)ū4QL 1 üŠ^Ań÷Äķń»Ś óŽ„oļŽ÷ĶSɜś¼uå³£ż÷Ü-0 :=)D³ˆ&ż»U„ōs#Röučļć iź×†ķ“m ó©ÖCšõdZݜ¾Éćf½vąb½ė[Ģ¢ćgV'ŲEū¾ÖČŌ¾!fŁ«÷ĀŽ’Ļ&ÕĄŸ¼ŃĈƒŻ|\”źųœmäm’Ėą#~žä<ĮźźV—Ņ萞ŽqžuŽ” ̲ļ/ߚyš ćß²›Õ¶ć ŁCķŃCõī²ēķØXÜQvMå^åvögģß÷@„}ś»ö’šń¹šļSļDī } ­ć§Ē1ɕ×-nʲą.:Cq mŁŲbjæB‡³Ķ\~Žb¹K-]īużąĖŌę÷d”čv®ė!,iļ¹šøģÄĶćīiµļł*„³ Ÿī’µ­ŅćLŁ[zT„m ×:·ĖCj!®$æŹ3 `5ą8ó(šė1paN,cšÅ¦Ż‡üŖ#ŖŲž²*n2ŗQ^ ¦ r×(%Ūp'EÜ'IĮeڳ‹‚X˳ęaėi ʽC“ W¾’M€v]žĖaqÄ 4«Rįī€ŽWźć\jęž lżg— a؊ł€ Ÿī–ļģą…ĶˆŽyäóŁMŹjŻnźŽGÕ§ŪĢžYŲxOĆŌ"‹æHÉVŃ*Õ8ŌĖÓ<ŅæJŅܐcŪŲŚā[ńßÓ_Üż·ąm]ÕAÓNGŌ‘²Ź"ڌŠĻŃÆā9|sē&ÉéÖT—DŲüęÅįžŠėnØĘņ˜Š\ź¶§Ÿā_¤“õĆNłĖi¶ū0 ׍ có@ 37ėQ®•PŚ÷RĮź·S:į/ĒņJ…Óõg8“ó3Æėé*üąÜ\żŪÅjה'‘Ź·BÕ° :Ō÷MŪ~AÖøf„ŌTĻā1čāęē9ÕģtÓP“ŚTPvŽ«J!å‘8KāØ3ŚzSžāÓĢ6óJ„0ū Ų¶öĄlłV–dĪŚwwŽ@£1÷Ø žŗG@Mj‡«˜ltūēĄ×ō@ą4’{…[ Ē>Jlč“1Ų×Ō}šä›jbėēžč?<čĄHę‡öįCŗõ£$Õö©äS’Ķ=īżb·z8/ūoĮńŖyÅ’°Ād«]•ÜõM9“č¹7öµhAcœ½J¹`śćĄ«łß‚œüÅŚ¹śI2l·«śŠłdļSz õ²Ģ rŽĀķ·’BJŒš&@ūJœO˜¢’ÕŪn{Õmؕ÷RÖzö+ šž8- Oż ä’{‰ģł9č Es€Ƭ4†æ["žXŽ·(uĘ&ćSBī·f?iFĒĀÉUjw¹³nd( ™_`ēķ +X /Ń.›aK-Īé.įˆ4HŠ3t5$Nn.`ÉØ4A$Źū 5Ņģ6* m?!ƒ ”šJė\2l&azœ0ęŖ^8§q6!6,ō©8 ÷IpĢųFßc’CöząDa,P?éčRY«oJ]BiD|fü>ća§4!īg7¾c®4ē P.ĆvH8‡öĀB°¶}:ŗųO-£^*3P½Ī7Ü I84<.ŅĘ-³šŽ%B"1#g10H};<€ł< ļ51xe¦ŠéŒÄ#0—w›‘RšJūžņZ0ī4Ŗ6Q"•}1OõW÷Fź‰ūwŻdœŃW[¶Ū‹[Ś]Ęׯ DĪo«āŠ‹ŚvĻ~ńYŃ:ļÉ)æ»øįĄµƒ«F¶{#¼([ŗĮś¾|¦H“CĢĄžˆÉ1ŲÉź'?ĶB£=ŁéC£Üš vā’Ó­ā-VˆßFČīŌ™‹„ŚŽC…ź:¤øŚ*šĶž‚8Ń7MfŁÄ¢ĒŁÕāüŲ˜ÜšČŒ°RÅƐĖŅÉIÖ«ōŽÉæ ź-¬ļ½ųŠ÷=ŸGų—’µüqŒ’Ńõž‹'(ūQīSńsÆVķÖ¹įų&ÉEłõ ‚ńčćŽme:Łf˜†Ü­iąI­|×TrūĶVą=ξ²€Ģ}.Ö 51ęŗ ź‰L ä¬GyėWńóøH÷Zå³÷ž'CłAyóĶb—ń%²9ścyż¼čšüŖJššóDū{™f÷­-$Šr!>ĶóņKJ6śeŠĀüæhōvw ’ĀćFŹ?ɍBŻfĶźĒx¬ n•…żH³Vóŗ{Rź\…žź+±÷m3 5ū¼ ¤ē]’·’…–±N9 ŲCÄĒX<ózļķyUõe£ DČ3#zUzJ8 ¼÷³Ļuź?¾•ź>F%ū~ž,ķ\V^żoōę~ Ż/ƒī*Ā©ł’Œ÷ōBū+Hśµ`÷eeĒõ®~óCEĻéÜ ūŪ©ŽDϲˆ*Š4œĖ¼,_Ó ÅK鳯hšśmåä”}āē’££šxą÷Ķ]„ [dó ‹gŒCUz¬n¢1"?0Æļš,ĮĄŒĻ;8¬› ²Āē Ōó4ąäÓ䐆«ä„×%JĪ ”ŃŁi÷·’u+d÷“ Ąõ,µūæPbõā¢Jõ¾góĄ}“÷‹Q¦ņAśļ©×Nå«/Fį\Apėč »õ×Õn®~\z4ĖÉĆ% ŃćĆ%Å)ž`q5 Hn/ *ø% Ę &Šė¾&—™#Ź!ą,ģOS*T ĘĶų® "i‚&éjøFš–ēČģ›šbōB‰„ż[¬Éų)PŠŒĒdE+æHö®Qt>ZXW Ī~Ą’éĆś‰óķö1…²’-C ņļµTŪū"f‘ė:{¹čŻŁhź<Ž\ģ6„Šęh|å‹ŅbåŁ%ćąÆ”ėܹņäjėČp0ć(a§å)™žäTæLäķįåżēŠāµ˜£Ū¢ Ž&w}äV4#ę3-ē뉦¹č@¢ėwż”’–Ć ŸĆj ÕlŌĻ”’ü’@†|Ē»ćä٠㬓ņ F "?Q ūĄüņ€•włÜż`+"ł¬Żõ$ś8÷ßaž÷$ ĪžĮ( ·ó¤D‹ŹE“ ų HŌ) ż]p g 0•ś;a *ņ1‘®ņ©ż=” Œd£„ ±=o½ttłƒę’äŅI;ķ!†ŃŠ'}VÄ'½oÕśI'Č|ļmč 'ćgd%!æÅ"9x3' ÖV(ÉZŸ+s¼ū+“±3(œ2!N¢š–!{„ųX!Ä2Uaų&±e 2*w'²y"”^†% ÖŅ'ˆ|*/Y2Āe]¢ŖeīAéø!·»1ē bkPžgPłų…§Ōü©Ļ¤ś^€¦õl:]ūėd{ ”h¦ 98š ’‚NJ;²öRė¤?Qē@sę)ŃņÉĀdų·5šĘ#;éxmā«Āģä/ōääŗ“ējµõŽąĻ Üˆ‰$ŚMü‰ŁN0&Ž£yܲ@Ł’$xßEžč­üåbi;ē/śėŽ3rėRƚęķæ äˆ)†Ū3 OÖɳƌøœdź</ä·Łä|›ą¹“ęź³ė|«įģīWič/ŪåĻĪģńK ö²EAżÓM ž8ŗ×mįėÜX Cģ¬ €)ER¬4ż€ŗĆp× 1²g÷'Į§?{jx5 Ōķõ3ēNŅ]œõ½Pé9_hé*$Ęź`ī„·µöŗBõ4p-ńóNĖųŌŠź<ń ņ+,‡*6“:µT$««€xė¬/ī¾µ‘Čī½.É'ä­A,®<ŗ(oéÉ3+Ų½@Ś™6±²"_Ć&¾ Ć-Ęq*¢Ź/#riE˜KT¢"˜É¬!VKŠŽOHe~VÅā·åtEŃ,Ibņ—m“°āŖoxĀ[§;\“_ Œį]=|÷5 ķ8’!ńöäśŖCšŖJaŲ½šGR¾ćõ…öŲūŪBYøäҐź/ٹćÜĀŲ”MBČd¾Ć‡½ŖŃ‚l’Ū"ŃÅ׌ė-ŚBāÜi‡wŪÅ¢ŸŻ°‰”Ž•Ÿ`Ü{'ÖÆ¦ŃŁé÷ŃīQdŃrŹqŌGŁå1爜'Üņ\µŚ~Reć\ųąēøæń)F óęężéøßÅļÜ—śé„>› ' &ŒaÖ#©·žz†Įś” ł:.¢ļ+Åöźł{żń+£Ö÷#÷ī.^1ļ eDę;?€Ś%WĀŌp~łŅfÆB՗„ĆŽŚÜFe=ŁnüķŁSŻUp!歍ą2x£Ū<›ÓćXŁņ?ŽÖ$_ä&F³ęŠ Lįiā¢ā?¦ī׈éöja^ųJ o’ńŹĖM 9²7 $UŽśH© ņ#+ -¶ øŹµ ‡”żś}g«ųŽ‚åßą,0 xž57ŗš‡3āKXVįŲ°bė x¤ģXņžå5õƶņ×,ō¶öśŹüqS-#’Sž8]ś-Dóō芿ūV“¤Ā•”°śJŁļ§‡š' ü¶KU1a”¢!JūšżŖńųŻJ ž ²³5Š.Į46ī Fŗ‚fT—a)@kbżFRż8ŽGPBf$:Z—s’±ōü=‹[ü# Ui; õb…uŅž’³iO«— ė®R9Õ»ŻĀ"łĘ}!üš¤|—ܶ9+ĮP…×^›vm ”¶ø&x™X@ÖT˜SĀ+Ņ(lŽĶ.–!C-šół-*Gk+tB"(ōD(Ļ&o"÷z dm² )Ē€{0×N0ĘÄ&:7ŽSń³–‰U ļÖSK,^–Ø7§9*6Æ©ū0œį)ŠI.,õr>–sCģ)Eī—ŌIߚKé EŒ1AĆPģ@/tw;°į 2Hµ]14Ą`J3ŒWļ: .ėF.Jc>łŠ”1˜ų2·”V8ä\ 6#¢É7“Ū5uō™-‡›Ø- ŌL0\īŠ5³®”8­ę42Xė%%³Ž…RŽ? ᔄNbłŻĢ­‰cBŖĒ'Q·ū Ā‚üu0*é/*ųÜ P­Śä(ޘIißR1„Ż4\wŁ: ÉŌšjyÓæ4ōŃlʳ{žĆŹWw¼ó¾Óöā½ÄæĀęk1ĀŽc ¾p ’Ä”‚Éė²Ėņ1ĢS JŁ<ĪŖßśēß ÜGąöŠŽü½ŒŲSųŲ&lāęŽęlµĻF”ĻŌ½;ŪƘ&Ų fÓ˜^ŠĀ ŠŠö¾fŠø:"Ų'¤zŽą5Ī饔xń N÷EŻ3ł@¹÷„„üww~śŹŽ=ųĻiƒóz['š÷ö½D‘õE‰™ī\#ćŃŻ‚±sŽ’éŪ†c…Ö)ŖÓĖWöŅųģӈŽlÖ=='ć;Ąøé†±čžGÆķõ֚ōޤÉõIńnŹKŗł±,ņąÕķw‚ŌōėūŲ›‚^¤ —7d  ¬HØ×ž6`™’c[, ĮłÓĄõL ĮūLź }dźfÉj•ŒGš¬’/HīYj}é8n\ōŲóP€Zė Yó”e[óՁäć±č±hņ>Šž÷¤Ę’yzŠš5žżo"IņˆŠņģ:ÆLčÜĻŁŻ><Ö+=Öz×ÓÅą`ÕJõĘåžŅšżƒ}źĆü¹źā^#óāG«ųuwož #ć ŗµ˜ ¬š•K¦ÓMõ $œV &ą<(ÓZ·rJ "SČ+™)©ūSt–’7#y{ŁC 4` k[ž<›hłqĻ7ūõ%Ņž łĒž Ćäś>Lw÷›óšõ4ßbõQ.õ&¹}ļ?يēUśAå{¢čž2$õōž5żõģĒK§ŠŽdÄą] S˜ “ķ”Ł"eēś"[S!­`Z §FHć'ā Dš 6’'īütÓüįXŅö“ yܦž!’č§xóM`ąķXS¢ėp&éĀéŠé²ó}ėāęåėg¶ź…j5ģG°Ųń”7ńķĒ^éæ3źĻÉźč/ądää?āAJ¬ä]qĶąaø×ß2ģ<åķßčmoKčŠ öéuŲššńH’(F {ʱ ¼ÆTąĄžķ‡S’/!dčVS’Œ é› “ńŸ°:ØV לØ.±ō¤%²öÅš7ł”2vł+ŸšųK}šų“™jś+xŒžė› /ęŌĄ»QcyøP Fś’ ¶’iś­ZŲ ¢ČłHš¤ł4ę$¬ h"Š$Ō Źt&еGž„ążŻtó œ‘ĘDké' `%(Y"ÉŲ– Ż¦„’Ą/"1­«$Ff#*8 <+ćøŪ&g#›łM"П/A<ęķcøŌ°<¤MęŲĘ(ʃĀ&÷­Å"%p¹=" č!¼&“…Ś&].¼%ųˆß"eŌ|ŹŖųźS Ņ_ūD*üAq_Xł¼7żööŚ÷'8#ł cfp»’ÓCĖ”—jƹÆųӟU頙䕞ŪčµMåńgųõö : ö½‡zšr§čš|éć#Ąā²+Āį¹!OāĄąāC‰įĘÜØß„ÜÜ2pEŻNó{ŪC>Īā[é‰éÅߦ遜é/3 ķLIŪī-Dē Y ć3[¼Ž'޵Łt‘ĢŚŻŻ£ćļÄxä*‰čÜ/öį{ŠŁéŅSēŠžŖęŖĆÓč;ÄģåĢ2šģĖŁõ[żźżŠ„īļķ.?—03™ «{Ć æ[#ž[Ō6Üś6½Šģ3…c ōŽ’Kŗ7ŠśˆīĮĀĄüöw]Įļļ=§ģŃ“Eķ­“ńó£÷”Ģŗś¦y¤ögż«ś…ųß5K ł&$"„mŗ®ĖzĻŖž/ېĖļŽŹŽ}}±Ŗ#ģ“&DO§"JÜm­-˜{ļ b–AHÉÄ&šĖ¼.ķæš+3Č&#Vź}ŗĖ\ĻI č*b>Ż™5OŻvä\©™6¶„ūéü¦Ō)µøŽ^ v Ī’”ŲpY |€šēi’ń}Ķųõł™kžh KÕŒž“6×ō©q{ė4n,įa öŪb³ōāŠC…źE#ģ©ŗć=—Õź&@΢̭ĻJ§Õ’ĀźŲ0ŃįU©*éMœ–ęĒ=3Ż$›”מ4ÕC=Ӆ µŠųa®Ōć<žŁÖĆT܀÷*ä('„ēXSšąąøŻķą7ćĪ<%éßåķoā„ļZ|˜ńĆ&IõfŃ賯4üł)[׈ž,łl`„ūßłöźPńßqė=ÆyéLö‰óEÖśqń’ņ  <ī?=,é*ķ Ž£§=ÓÅ³ĢŠ9YŲ½“ćCG”āBærįcŪńįŗUpą¾śHŻÉ ®Ł7čÖ A©Łų~łŪ=įYCåĦåā ę.‚ꌍėķpڬņ­%įõ«hŁüh…Öߣ2FQnߗ©ÅćöQąn©kŅœ°3ü¦jööż^fš’žććłŌ|ņü ųź¾Ū”źAź%©ėåÜō3~üōĶ«ż°P¢łĻ ×ö>.÷PŪół½0ų±R„ųUrĆūʃ”’ÖŪåĶK`ś6,ųÆĖ:óV)·ń|@ŽöŹFBūģ!’Ō/ƒ·#šÜžT!L’·®u`1©×=c ž ׬Põjü’¤“üœī’śQ Ėū×,éæ,—7ģgÖ:`iš÷ģy™ ų¾Ä0†xś:¢@®æ :ƒö L“Ҧ2 5ƽD| š lÕ’Ąż˜_ĆĢØY²1{XńĖBÓkA?~0€x¾•% ˜Š)nDą(M³ē*ßSņ+,°ņ(ē÷k#V}vW$Æw Ęo¼)ŠŖł1ȵ1f£B(tÉH4L€ÆHÓwų1+“*ņ4‚Ļ(7ū[³/Q-Ō)?Ÿæ,£#]5 µ<~ĪAßIĮ¬LüAuFzóŸ>ў&9¤gī3n/éÖ5-W>Æ2—\M8uw>ŪHeDH&§?9ƒŃ5łi™3Ā#n5“ō:6Yā6«—Ņ3ųS@2Ņ ±10s,1=ē&1“Ņ3JŒV/§ˆ%+øW„ Ÿ G³ ̲hÅŽįSåõ:ü‡yĄšL Üp,yļĒł¶ßåźåŁQ”ßW½äĪ7ÜągcÉą}šŪŽ+Z)ŚH„ҵ‘ŹŹ/fłÅƈ«Ä9ĆzØ8ÅFP÷ÅĢ[‹Å7ŌÄFłpĘŁŹ³Ģįō;Ķ’mŠõUkŲ éMß“Pąoø±Ž}&ąÜōŪ4ŖŚ–ÜØŪ̚­ŌČxÖŲB<Ū«­HŁ\#Ō„uœŃ}ŠDŅfō×¹bŲ–`Ž4Įhé(LņBiöõv(H÷ŌōŸųżL­ł:z`ų€l¬ó ouņéĘņ6i¹ó0ōv§ģ6åWĘą‘ÄģŻ†œöŪ*3ÖąpEŌ•DßÖ,ņ×½ÆĶŚ­ŽÉįž%rčķ¢Wė¶T®ķmIåó/ārõ_>Įó30ŹņŽr³óVžŗóšųōæEųōÉś‘qŚł“”?ų›h*żZ¦Żi. RbBóŖŠŌ¤ż;¦wū§²PūgATRń"’:ģ‹iB¤Ę} ¤šIŖ-J’"ģUü°ž«ūŒ±¬ų_LŸömqžłE éÓ Ž%k Ł $:¢”§>’øQ’”ŒūJU†÷żDUųF¶å’ " J Ķæi³ą¤ "7‰’€K_ó÷‰ķ0q–ņbśöżŪ䞀AS‘£ł9éŪļŖ8gķ€PŸļ[ųóČ^śžŅlHś*Ų šąŃōęOéŻĘįxÕ¢\ĖŌ—ī–Ł<øŽH{&čV8ļųQc탊µģĀāņŚNų ²’Ķ*°q€£ >“LŪĶM&¹ŠyÕK܇< Pu +stg2ĒMĄž†ė>Ō¢k\EˆģVꝁļE ž+ ’FAĆ÷Ś$łöĮ‰ż)æņ$ū ;bśˆyņöTkņÕxėØ}DēAPčˆuģŪ*9ó2(żÉŲ P>¶++ O7 г0Q]éźČłädgw— Å«ś”šA$Œ/!ė–+#4„ó!ł„ī…Éņ ¶óźĒA ”|AÖ’N½’æe:Ń į=,ž%’ŚČ 1ŖŹŠzEžx ©UšīrdśL3CżĘ ŒÖVx 8ČŌ ‘ ‚0śDéņ²ŅģKāféīƒJčj LķJ»š<ļšnĒ+ņöqóYŁńæžrģ›Ćź;ōźÉ€ēł~täéžŃć[śÆć­ˆćŲ\dåĻĮØč*fDźxXŹėœc>ņ˜Ÿžźµ–C[]`y\§bzļ:[’Fڟ‘†EśļŖ|Ÿ(6ŹkQ–»±üž+qöœ±sõ?Ż…õI–»ōvųgåÖūźŚžF'z^V  }“µć{īē_3e¢—Ķ ±%€äˆ]łlż1ä^ūĮ†žøCcĢŖhš`¤‚ ½~žš ’­–…’r‚Ļ’uÆVė ÆZŚ$–!*">^ÕžČģ‡ģF­ŖÅ9#Ąe*ĄB¼*©Åģ&ŗüŻm ]ĄĄz C™vĒ = Ÿ‘ā#¢« *Łö4'T‚ĶZ!”ģ"&3Ä!­Ø/ O[ł`ŗwÉķ¬Ē7 fči ś0G¦ą§ūžøųė„īök¾6üŠ—/aū§4ņœņ!Õ¹É%¹i;—{ ~ĀyMÄ!„IŁqh*ļcK#˜*ž*3D)įł¹‘sĶŚ{rØ õ€%jóZĀ!ūX»¢õM‹Ø’ņÓ$ü¼" Źn 'ØwžØŻFó{"ó& ó` ōļÜ@:śōdó øFń!‰čžøŒR P,ł6…³" ˜:”„¹I,žSŠrb čw‡IėÕÉ£¢ž©Ÿƒü]gćĪ Z!Ÿ›/*£ļ†ćĶ©æźü󫏎’ptÕ„£ø¦ŠÉ0ąŸ5x% )R±³!p{#Atā,źsa*ž‰õ!ō/‘-Žūq?BåF9 Į2¤;"ĀEdĖųbĆŗ<rĖr Š1ŁĪ:ižY5Æ4¾5.“g3•ŚĀ1ū¾,15fŻ2‡z /”8-“£35ū //½š1+Oœ3}Žk3+?U4’>Ė*zļ'M­*Dh!Žøż'Źū-24§!Vˆ˜Źr¶Œ™K Gž‰÷µh#÷¦ż(¢}žtyņGįy]^ŻmG^īĢ»÷ālįŌGńVĖcŽ¢Ėó}ÓÄmĄÆLśĢ¬k*Öü2lߔK³ŌDÜFŁ¢2mĻ]0Œāp®bÖåĪ~Óū(äÖLĀ’Ū[Q÷4üÕiö`P,š:QsügeDūŗE7óqŪkš„šä†•é¢N#ķļæÄĪŚB4Č’ØčDTų™÷šĻ–ü+×Xō)āyżzŠńtVŻx1€ßcüQīZ•Ąų$|øę‘%ąī–“©ča‘œķ*9żŻØ«Ā­·‰Ŗ½ėLæ3õŠ»/ēLĄę妺§‚*ĄwŸŽĢ½ŠśÉ÷ąÜĘg€¶ÓŚp†į|‘qīpśŠéœ-–ģÜÕ乄3ŽŌēćļUź†ŻEߢI¤ÜӕŒķæb}ńY6Aöļ:ļ'(’äļ§Dīj.>ėķ;¾å€”ÆęÜÆxō•Ķ/™Ų 6‘#F1ą ±X!· łˆ¢#ė'ŠfēīĖėŖ<{ń”"˜č㘲āY*oźiCśĄw³AõMtšzQó”ģŗņę³éö.GūRŽó~GŅń.įFŪņz‹óTd ”C{1'šś¾gųæįÓų™Güż­u() µĄ00W „b£p·›ąŹ ųļüżŖ`ƒž5ŹõTC#°Ź‰©~Ļœ3Żż/žbčō!Ųī–ÄŌ>"昄Óéū‰ēė¬ŪŲėt^PóA ÷Ł0šžF ¼ <…Ē®ųń+¢d_"@R™ś*ƒ!ļłlätLh o“­b ŒI%3ي1Šow<Éę#1įŪ¶#u–P 1yh,œŪNšļ¼±ōō1dź÷•l†PŌ »Ł(ń$eR×’ÆŅø†‹Ó?ÕįųĶūŁ]\ž »Š żŗ ĒŽļń)u÷Qzšīv7ź„HšqĮõõī”ĖŻÅBš×Ū-; S+äĻb QTÆł—„Tų—óN‰He£}ŠżéōŹü‚/SīČk=ģpķ NżNŗ†óēįģłĖW5æÕqpHš5„ž† °ź0é„”¶ča1éłĀź‹Xųģr• «.–0’a)Bł„-éj¼6äļs×E•«Šar=Ł‚Yč†}‘õa/8ģØJįćšięć6ēć4ĀdŽ­·¦Ģ]-§É·ŚKŠł…šÕĒć + ķgŠė+p–źB7)ņ“óü4ÜóųŠRcżhY N}qü†Ų‹E˹[µÆ ™©źݽžO©†ZźåīF*lĢŗ„ ­Õ^żķĄųžž% avhłvdž>ѧŃĶ"üs|(#śŸL„Ž5Cµ@ķć9 ŠG7ü†½Šõ¾€=÷YŠ$÷÷Žå«t°±!~’eBĪCLņtœCY“`‡¹' ³-ˊ.(€ =Mäµ: *ł2µ|Æ5¢Ź`7é>~Æē8«”t5tF*Œ/h.½÷4-µg^žśyd'-Ż,V|Ö.x¹4A±›,ķ Ā%åŅ-.²߃cĖž?mc 4ŅęÕØ„ŻęMÄģĘķ bŽņH„Dęz‘Ž6”ۊÜćšDRß÷#Lāō Īņ>`–øg©Oķōaž+óŲ[½ļ)(Dåšķzِė9Ś|Óh.są!dųµ\Góé»\ß įŻš“€ā!ūŲ…-źĢ kĆ/ÕÅĄĻB˜ś×’=%Ł+×GYį£&]ī9”1ź>¦HēĮt‰čéšæäǁ ålDŲ-Ü;͈hĶŗŌšĆ:Ų”^ĖZ’ódzg!ÓõĖiŽ#TXŻŹ‡ŃĄDdŌ,SÜÖøåĘāōÆ·žüQZUž=ž#ŃV®cfhʍĪ:‰ęä­’ń] u½čœBĮē. !Hµs±KRŠm’‰ōå(¦ŻÉé÷œĆ…ü §¶†„ « …eny±žÓž,# 5Ū5łĪ›šĄŠ6hˆė› ѹY2yæKģ²AB— %lČ'%uĶ( É¹)šŃż%õģi[Ś$„Y¢S¹ė?“]61V4}H+õ,FüŁ«=–7”µń).có X‰M6Ę !÷£"%öÉ϶J*öŲ:u¬N2ˆ™÷$Ž\—åR˜“Š¢ūLī Ō™š³EQó(³½čoŗĘ-Qåõü-ČNš×Ļqą >$Ķ4–¾;ęĮ½[qĖ/fŌ(-eŁŽ-³ĢAZŌ‘=ČgĪšÄ)ė!ƆZ劃܋ʗݳ1{×įJ2ŃŹšzæ¹ųĆ<Ģ׊ĮŽŃČLށĮ=htŅGźä:Eāų³ŽŲ sŽĪY ĖßIך°…ŻŅbąVżmä⟐öx!ūQŠ(Šśä•ņm„Ÿē ‰XåųĪĄŁ¢QAÕClķŽŚļ•ī,\ņ¬Vā›öŁ|3½ŲŁ¢BÓk"Ųǃg¾AÅĄN±Ļ”Ķ­Ū ÅēD˜ē įn „ßš]Mßž_Ų½ęĶž1Ō<£ĄŻē÷漂ńq.ŌöÖ ż[ŗ~„V’üd†•’į^š €ޤX˜ Tžņ g«!ęX0N¬PØĘ¾YŖg[#I  „Ų¦żbĖĶōŸ/Žō~óńöFRļ> ŽķOŠńĀ…ögõ7üź£Ā ŽS›†F N»¬£Vė“[kép3żP×ńŸmv÷—p;üÕ ž jXī8‰#–ĘSvfĆwõ{łTt sł% ūźˆ+`. tA¬ µZŽ=O(’ÜóåĖt¬¬KÕŹ“æpõ$`ź™Óū•‘ģ`‘‚ó–ķ÷SŲśĖŃ?H³ ƒX6e(K 3ē’’÷źkFßž€‚ÜV~«č»jōˆcd’M0MžÖųN¢ģä7ćU’Ó¼ĖłéR’ūt…•ž3•}€1å g8\Ķ.Ļ˲ČłŸ#„W¹ „ T66Ą!\ųŻAūź…ÓŁż"g2œq1ÆR„„CĢ%\-ļi5z.ŗ¦љźrĻ ©K =»c¦Œõ8=wt&³õH-Ėč5+­+’%.ėé*ė;3,Ė}4²(“öž čozÄ{ŗÅƒš5ß,T 5²Jƒ6j„Š@=¬čHĪMDŲĀ7X;ś4±É½0Õ`-+ķ'\1<ęr7Ķźƒ> éž=ŗV;źćC•Ż8Jø@BĆ3l#™؊ ĒĶk‹]Š D/ƒ;>)‚ *YX&®³—·˜źźõ#ø‘ķxŪĖä§P‡ŻuīŽÜBÕŻ]ŽŽåb/·éóęMõ±Ę öęĒ"ēh•_ŻŽOŲ@(7ÕLŠŠemŃ© aÅÉtĪč˜å×&~Dń)¤Ö’ņŗś±ņ–ś0=n’|:—–„žZŅ õ ÜåĻ(ēßI!Ž2Ÿ4×tw–×)ßėFR’ņkOķOšėG“Aéž{Ž›‰ÖĘČĶĶžÆćŁŁ:uāēīué*ŽņÓĶõŽ`įųŗņś%wėö’Ģ׍¶ŠĢöDĒŽśIĢ3<ĶÓŁĶ*ĖW4ŌĖū`±Ń~q‘ΉŪĘb')ʙ.Ī3^GŌÄŚÓ)ތµāģ OŽVvŁźO9湟öńā½V¶Ł3AcįzE“ē*‹™ćˆI˜Žg°ŲŲģ®zŽśŁżćԁķņ\JūSżųEåż„dwžļģü\iŽśõ‚żų+“„öŒŠośV0gśTĢĪKn L·“žKkżVį¼ńż4īW¤ėÄõēV ųß/‚Øć,NīNžłė¹HŽōŲ |^õ¬¾$,ŅźM0ū ™‡šżĒ”ó óŹū¹ī"$‚A²LÖ¤ķ‡H‡-+GĖ vuSRŖ„Ņ& >Bį’¢Ÿķ ™ĘüF ‚¾įšÖ N³ø¼/śxĆVö±Óš„œYå­QsŪ‘ŲµoēŲü_)įĶ„„ģG’9ól8Øu§ą?ә͒ ź& —\ ¾{ Ņć€A9H^ĮÆ+4# S:rĻ®-’ńK(œ:„&,"i“ģ–«Sæ  ŅµŠ®~†ä dżg%XzO·łœ²ßJ*/ž1e WnüØu’ńž;źčė.š’Jćķ“ruźURsčG-ŗå³Ž¼źQ<ģ]VķĖÉä%سä‰Õ\ź«÷„ņøü³`f’Ą“ņżł§žÄ*O Ł?© š|źˆł‚>%>‘+zŪg’Gż]!¦•’nOš—§’†Øšķ{¹rčig»ócŪūŲnü`-Rün‚ķż×}O\ė ¦> ŸQ ŠeJąņ“ßīü!½Æł:ßķūZ"üI­Øų F õ}4īFĪīńŗ fō2›LꆤōŻ]¶s׉j˜ŻGŁ'ę}T­čĆļDęœ-łēœ9śé±.NģV”š‰¼įī’ńaå9{ˆŽŒO䁫µéē‚Wéµ(µēN"ģ້šö {śŹfŸ ŒŒ°)®rŽn 4ö oŃwzC޼Eu™˜F@« !œŌ GÄćÖ; Łćō ŠėŌ ‚ : BõØśūōžł%²¼aźm Ķø*ż4$9»–ńƒ‰PVNtė’ķąŲWžŹ#oæ pĻBø-¹÷Ä ØŸƒ 8¢uébü"C)Ųw)©ż2ä­c;}8>śŃ"9Öż­.€"ļ%øigå‹‹ („”#,$Q4ÓQ5‘šC/ µ)Ü„6Bč@ßĪAŠs°ö§˜n±©÷æ5yŅV!=2&(Z"ŅĶ}ø€±^Dųū–üł {ūx{6„n•żJ2 ōˆ1žļHŁ›ń¹÷ļ{šėvmŽõwČ’RŌš†• ÅŅu]zż£lłń<½s믒‡ÜY£ĶŠøŹÓć £ß>€Ųēl¢žēRŎåĮ4Ļįāųßą‘HŃŪš}ÖqŸŃŪöĮAŽŁ›ąųeęßśPyāwoēMųōę¢WŌä”ųųąæŗß{Ź$ęļ8č©QćJ×M×׀ŖĻ…*оWšŠB?cĻNcŚŹ}™Īå hÖęæ-ŽČcĄé’&¦šęa7š)Bļf…õć“'ūO£büsóˆž @ņč²Åz q:ņ`Ŗ ˆįĪTuo”čį/fž&"šę ś®±jž: 1c[ _ĘŲ \Tuü˜ š†+ “k™fMž“śū`?+7g$§1› Lj’śĒ’żŃ ?üo"q\R ƒ×įņŹ%Ūw%ÖŽ )äįˆB ČUŅaG 󲬏*±StĆ×®X’2­č9¼’9Ö«yAt¬²Ir÷¢KŠÜ3CtłÕ3$k&Ž ķ‰ƒż³>?c)čv"2'(Ń'bIČ+¢L3µ+2YS­%Œi‚ąģ­$·Ū*„łõŁņżĪ²ōæ?żå‰z£3³½÷rˆė<;ÅŻ|ŁąŅ†×ÜĻ9ÕĶZæZĪfW*Ł­`ƒį {­Ż«oŻŁ~MŖßò0įTjZßŪ9ČŁˆOÕē‹ÓŠÅķŃĆOÕŪ…³Ī¢¬ÓĘ% ėʒā7ĢćāĻłWĶwėĢh6ĢϵB×%×ŲŲõmĖŚeP ę\Rbė\öķƒÕ2ī#/2ńńŅ‹ōp+{ņ×-ļē„ź…)¤ēĪģ9éō1껟rįä~ņŁ0ŽÅŲbV ąs#Šē( čėC‰įfc ŽŪŻŪµCŁ0śVÜk¤JŽe ,ŻŠ_JŻ®ń␼ę792债®ć’LącH¶ŪNĄÜ²ĻŽį™«®ččė™īyŻļī€Āåõ§\Bš‘ r& aRś>Øżl˜­ Žt0āGņfņ—kó}¬eł ē%Č„āmG½E•6™üqTó«Čīa@Ąģ£g꯱cņŻ+_V|= äćž LZČ F< ć_į Č_* ²¶’_¼ˆō CĘģƒ _ō|«ćqž×Ļ~ќ²Š4ķ"’k¾#ø4±”x$ņ/œł cóąS”ō§Ūŗśś*ßRŃ#xPtõĀŖ »`B‘ģ¢ö0, īÓ¹«š•ZļŌ€ńł·ūžpö>» T+ŗé÷żŖ˜—÷-Š,õźļ˜L”č¢šÄęnÅ)å•ŌÆčø$ųļÉł«Ow īMb ›ŗ{|Ī{ ]Ś »R”–Us’?¤uś¦všłĮI³ŠņŸ€ †Ād7]j_O~ Wi° ,„Ī (‡°\āĪ©p³7Ŗ ’&ŗiL.¤m<0ćū(R”Üī 2¢' ö| žŠĻ[RVK9Ŗ ĻڰG™#!kĆ*Ä«h+Q&7)eÄ,¾ļ/Ü3T®8Øį?6ĀŌD,'_%ņęé'²%J,ŪK0Ż;ą6CF‹<½tÜ?™*Dq`Hڹ¹Jy¹FĒļR=ŹÄ¼=…!²E|·.FŖ=œ??­8ew 3ł1mŲ1.M!Ā*ŒŌ+.oOh,·!¦ż¬r“tßfš“@øĆ%Ū3ø÷FTƒš·ŠģcRņø’įł¾+Hüš4ŲöĢlēóÖpōÜ'Qń[źžO¤Žó Ó|. Ī ¬Ö Ė%āµwļv ³ļ4fTńrAĪł§K’ķ»C’X“ų³pRīéäƋęŪÖ“©ŲއāŪ­6ĆīĢ—oõøģWķ4üė÷Ÿ*éx$qįӈĻÕZĢp7ʼ­Ššń¶ŃŻÖÕÖx¹ģįžSėF|ėROSēt@ā½ģŚŲ67Ł€Ū»Śįʆ×'Ÿ‡ÕJqęÕÉ,SÕ°žcŁŃüŚ‚^ Ų<¼ĀŁ*Uųܱ]hٽ˜µŃj“ZĶóŗ6ĶA¶}ĶøT»ŅeĪyŁ6„qÕ¹Ło3åCĢ¢ė p*č5›µā7)ČŻ!ptÜfߚŽW *ßqĖH㠁ėĖįńź‡+ōŻi¤÷ōĪ”’7ž½Õ°łG¾š±˜ź:Ķ ģ³`½ócńåõ0}eöjM+łĀĻ›ž„Ŗē€6Eóųżł&MśütõsŅ!ļJōģ9»1óƒ„ł@¦üüR\Ŗ‘Ö üéÕ äWŹķļ””@­}į_ĻbÖUžåÄÅ RŽŅŹā°uą"ķo>Ó2ü’s-˱ż°gӉ€ö ‘±_ ›K &éŌ=Æ’ ĶT`z,„V ­]"&’ųTTń Į>īuIdźčwsģßģ0ó¢ «ö;?Čńn šs°ō-kūÄčnž÷ՎūĻUęų5žīä€ Õ <ńY'هQ+Łī«2‰’ž7*Ģ·6­cū/Ė7$ķ&a|^UŅYoųöąĶšŽj›śĻvQ“ļ­!j—XĮ?B“äP ”j ž“æ_÷OJ?÷_kłķ|ĶńC”ķėa”ķØäõ ģmōx)JęÓ½:Ū7ś‡ÓjĖĘŌ/ŲmÓóŽc(BēŽTEšZ#"ų6øķźEk$Żś;æĢ½TŻ8ĖEA ²ķIūOā-•/ » "©”[ž“š#³qŠ#Éś2–sšÉ¬ėą"ņģė ņöĮfųĆīT3…ež· ^5må$wŸ‚8q0R š/ńŅ[•čꇼŗŠēšl0;ļ1rĻģn )ļĶĻPõO ¤öŗļ…šń½8ė ³ŚčćRļč²™/é§žķP„löļoéśrź/łˆĘmłĘK„ų’ óźæ”ģsXč,1%ęm\ē–ęuī”=ZōcM(ł9Ē=…· ėßÓ(Ū$I{!ÕĘmŗ ÅC“š“ś@\ ­ˆŹjē®āCžzu q—ģ¤@ų)…^^‘ ŅX÷ZčGīBˆ9īsęöū쪁=ł‚?)ćwd.Ģ %µź±ń>³“¦šĒł÷’šš¾eż÷ģ† Cŗ†»Šū*‚ĖŖ,Īā/č=÷.L%s-­¦+‰æ'3]J -ģ'VŁ ©Yķ‘ŸC}Ī,Ļ|ü4ŪĮ/ģM”.Č (uz˜”˜X›= ˆAé ~»Ÿ:>.ėa¢ŁLL„,ņś°Ø!åZ×+„īƒ ¾® ĪF }cIŚ²iõ•…ڰ-½śmE 1čž hó6 ’6&Åų6xźļ¼ąķڲqﲊž÷ś= ĶŌŁ›(łV_ų!d…÷ cīką§éÕė«tŅ3>ŻÕĀYšÜF@ļćš[‚ļ§wųūvŽöIZ‰ķĮn&čĄ]æēĮmŁćv¤]ŪÓT ŌśńKŃ’įxÖUż Ż>œ„ŽXÄą fę®|ƒģ’mH좑åšPßEržŚéȹ×¶bԈ‚ÕŖŲ?Ś^ō–Ż/‘į»téŸ|OīM…īLŁļ”Sósp£÷ź³źżµBĻ(W¤ ‚PśóIJōbum pč"Dl„äSU¾' e@ {Šx¢(ü —h–Ź_R‚;Øy 2¬'‹żp÷÷ė0Ēõü|NōÖ.š„ƒGóČaĒł^/ĘO=ę]=”‹ø å>%‰dŽ“Šāym† ‹MŪ 4ī ¾nF-97=€™7!t 9LV7Ż«Å4^-'2K]Ė.å‡ +:=÷%Z¤BN¹0ā@‰&Åń3x”T2y¹"(̶ ­Ō8b7 ¹¹”XÉ ö4SŽŌŒį-‰öfŒµ…& ō ĪAw†­ö”żVėė-Įēņ(ė.¶āīK:€ó Ÿ°ó¾ĻkńŠ$ĀīŅ£¬é]ĆäzqRåŠūķĘĮ°šŪĢźoŽvą˜³8ŲS ŗÕUŠĪ×SŲÜ7ŪķżÕåó]ŚÄ:ÜaPŌpæŹŲyŃĘ)s»ĘŽ6åČ Ģ„(XŃĪčĘܝ”—ē@±źķ4S–ķ ”[źq.ŠķX¾cķC¤JēhFāŌNćrƒ_če˜ŌėD讉3ä@YūäĘ(č@āęČ ˜ąĖµÜä[äąµ®,č¬UķŻ›ńÖ÷ń±Āķ€XöéĻēåœ4Śß4 ÜSS޹4hįp+⬰¹ä¬¦ėL½īū,Æķ ¼;ģø”„ī!)Ėõɦļųz…oõœ·żļą×ķ{mßń}GĪ÷ĄĘĖū‰Čœļ ¬-4 lŻVGŅWJ’ęĪL;ļlcėõ’Ģ£Gś4-Ųö3Ü$öʰūłrB÷Łm”µ[¾^c³żĆt*ż¹» ž¬ćŠ’^ž“žæįI’j‘>‚Ė Ó¦uTŽÆ (#‘.”ŲŪM§ß’yŲvi ZīL©™Öż”vĪõ_ń7ōˆ?—žža ¼.ę Øm0 ‰# µš ŚØm^i={! ICŖ£FŹ<Čż±? łÄ*õoõØņźEźwb¦ęŽJéńšÄļQs÷óåĒ@ł¢Čżä‘ØĪN4"Łż2ƒ÷ōO ÷ō{žqś¢¬2ŠMŌ}$ĖP†fFyK7h“£¹Iüż[ęq7Å–Æ6ž.o—üµ:jf€ Žö«`łu‹gböWaµ•ĶīŁ4g›żWb¹ H•%WBX)ƾOϱ\)ÓŪ„?»ę] „3Ō¼Ķ,ų—NįHG¤šL}F?`sž'’å2ē„T;K:?xÓÖ?ik<[‰4Ėė(. Š +rņŅ'÷7 %^ „(³}¼2Z+u<Ń#‡D+ÜāKPąÆS«÷ZĆd)X[¶¢LpµŖ?p×l7w‡4M’“2Š,,17ģ˜4ŖuP6Ęp?/ oŪ%æŸ\ ?ßš qÆP$Tž Öõ2fā{E©p“”ū –鈖sīų>;õhś÷Ö\āųĪē:łÆFže[“ūžŠó]ιėėįTähJßß”JcÜČÉÖŁß>ßäp¾ķm÷=’óī0ļ˜Ēēė0/ŪåRgŻĖ,ÖLś“ӝāĖŌpbŌnjĄĻŃų*Ī“ß6Љü¬ÖŠ ×%³ĆŅĢĻżŃ`hևĮ¤Ūb²×Ü3b¤Ż®Š¦Ž\ņQā„Żå4„Żä]U ć*Ię?Żė-æ’čėŻŠß„1ŲŌn7Ԋ¶Ņč)?ŠÖēŻĢōs’Ēk0‚ČŽėrŅĻpכēqÕCv®Õ£ĶhŪĮÓDįx6„å[½č?žöźéTdššu ņLš£žµėß§XéTKģźĪˆč¦ž-ęĘQčNsŒī$|ó87~ńjāėyß³ėāBņńŲŻÆųŚ:Nū×”Øūö2ž„z(T:Pānū2yX4Ø<Q.ŖüG“÷Y£ķōoVšö8QżÆ¦‡Ń @²¾ aŽN:A¬üŪ#o*é›’9{pmĶŗ‰&« ü”÷ ƒ® Ķ Œ 6éź ^QóĆąŅr° 1G1ī=ĒžIe‰žĘŸ’|zčūųµ|—÷\$»łÉÜžĪrąÕ+£ G7 w_‘$Iżßt—õ\uļ’źs Žēoäåd©=ź Éö#7¢c;“ `šµ!©0 ,Xb.øöZ*f$T$€×“®õrķ:œģ–XéeĮ`ę£ ļ ¼ d"”kGZa0įÉ ń³iüžÄÕµ»Ó#¼•š’xœśWkłNfe÷©ę<õØš­yĄéGā4×ßh9ŽuŠŚIŁė]ŸŁRćŽÆ˜ē{ķ\ŲāņŁJ7’I”q ±’šт7Ŗ/fś@² Bˆ+ U÷V Ń+„źW™žXeüžÓWÖ’eĘ ž|²ł”Ćzū[¢ī“„†¼„’ŅŒž­œ±~ŹüŠõZŹWū0ŽatÕÅ fenrir/config/sound/default/SpeechOff.wav000066400000000000000000002735201513650123000207520ustar00rootroot00000000000000RIFFHwWAVEfmt (ž’€»ī  €Ŗ8›qfactĄ]dataw#†c”Mh‡Ū.Š–5 śŁ9& ž+Q–ßF“į.$m€sć°²]é{ŽˆpüFL–į)ŽßJMĆśœSĢā߄Zܧn¢ŚœŪŚėŪmāåėéĄD”豎‰ķ>ߦļb/Oå»Ā7ŃĮÜ^Ź–ĘčƙŹū¬zÕ2CÖŚ¾_Ķ­IˆŁüõźę_ćZ wäĒŗzźw’ŸžüŚęŸąÄšŪčļ>~šŻŽū *śŁÄąį|Mēä9b¶īQƒ¤õ\ÆrńÆL”Ł# ŚÉŽŪŽ_ąŽ¶"ŽćŲ čv5Āł čMS¦7b#ŽMŪ»žģ./’Iøīg‹Ąę’ąé‡+÷2 ņŠļ©äH޳Śgˆ9ā“:Ųģ¬Ń)ęйą>īAēGų±čōW»źaĢüg_^ˆō OƒŖ 1ė\J¬<ĘQcdÅŽ7€J.© üÉ&G¬Šóńń ž]53c źū°.^£3mF&Ē ćŁū? 0i”Ž å£PŽī‡!uÕų”t#’—Võ…ž &ž©LųGz’ļ;sÓļ>Ā^éóK;ēDŚśöõ„~+V1zŃ$}3Ø ŲgšæĒ ;½Ų:U÷%„`ń Į Ė©W"õ“Ż.²ƒß*=!]÷źēöūĖCÓł…Ó˜”§`ÆB-P‰% ūō)ō®öx]óĘoū‡Łü/EX6ęÅ h?0‡‚$Nļ03m1T7?–“6jJ#¬¼˜āUć1Ūųm#‚ā›§‚ōļ~ł 3Ģu q*5§”_™£ņĄ,ß}~”ÜžõŪßÖķ³u¶å•Bgźć *źqļ‚aRķd꟎yÕ-εpāÉp“ǦŒĻŽėx×NĒŌ͵UŠ£OŁßšrxēW‘!ć-2ēč*Õń,ņx‚¶ żŹaš:žT:2īoĄö†ź`36ņ“i±ą1c–é:Ēņ®Žõ³"Žźü׊–@Ü·»3Ż­·)įč ›ä‡Ɓ™ łŁśē÷Y jü7ؾõŲM:ļY•ēī•‹TčHķĶ“” Ģ"|’ć < ŚĄ$*+š }tFĖŲ… µŽÜģĄō_Ÿ<ųJßČ?8K(M*Ō.§ł•'é-%ĢÕ^[Ń>śŌe2žŹS 6•čŁŌĀ7±#óĶĖś›ČFŹūāc±’öŪ kUpg } śo)…·)5föŅ6Z`I1sß©fŗĒh<Üī‰K¤ę™ yžA÷ Įpø ×v†pķ 5u\¼ėSidŻ+dRŽ7"käś ķ©õå)óėåx³ėNH šžA5éu_ųŲ“ŅĢĖ ūŁÉŹ_šÉĒs ÓGÜæ×(ŌŅĖöŌś½™äUDöę'Ń äriėä¹ ų» ēżuž©3”krĮ_ķģų\6ąś›Ž°f¦śÜĀó85ļī_αķüņ;éą°čōČC+ 'é¬eåŁ–Ö-ī8„Fųx®mšŒŻcūü$žßō¼‘<SŁ©(Š+~ĘD-ZćI#¾!®&õ¼¹Ńśś_!=5ģļWmsŁžNĖGūÓHćō4żXžķ1Fļą¾ūč ė&2 pŽāŚ›$dó-ćį÷6)śģ4}k+ŖÜö‘‚Ŗˆ9õŅč:,*īim2ęņµc ”cY ¦¬ćebæū·Ģ¦äč{hݹźąąźē[Ŗ_ģÄźĘę* €ķ·ļāģķbLļoFļćŻU’ÓÉY‰Ź †Ź„œķĢQ³ÖLĀ×o{&ÓŚ}QŚ?¦ˆēĻF,ęD:ę ešŠé½üC‰Ć’ólmZF@ō²Yķņ¾Āūž§Ģołö˜¼ęŌ°å愱ńŁU>ōžˆ$ļ@Ā!ßękÕŲ1<'ąŃ·åßKb[ęIą*ķ¹`#ś¢Ö7(Žń÷ķ/éc–±|$’­õwšq3ąč`hhķČÜ„ō>æ ó™"Āäč¹Dß#å‹ćB£3ģB`tč¬IćfJ×ēPł²ėĖH ļ¾üH,0å×Dųc¤©+G0ø¦—*¾g©§Ŗx‘³2\ŗ1©­) ģId•³Ŗr”xóß¼z#Aé .ö‡Z/T“Å ·źõ?„ņŖč .÷«Z’dŹņÆcĖMćŸAHWōųÄrżhŒ³’†÷ŁöQņĀI€īŚ,ÓģŽÄHģ .żh-īw“¦ÉŽ/Äx·)uĪßł~¶b¢Éø:Øśŗ÷Ė÷vå= źœ[$õZ/-ēæx*ö˜&©mCG(bžŲ/@żÆ£2żČ“.GĢį ž•öÅ6ųÜą_@æ’Īž‡żgbĀõ„'Į .‡(™ēČ1ī|€8Ņē1¹Zū$¹¬Ή§_–żüu_ēWō&÷Ź’O …ÆS7² ąŖ `įžZżaõʧąÆ;åŽdC»ća*@ź³›sė N%踊ŲīCÉgķ€Wķģ2j6ŽbģGŠG#RŹečĖžĶŠį‚Č׌Ą ÖźøÕx–{ßš ÖčM‰ŲåÕE¢é\sjõØģ𒄻̀ÉtĶa&ķEśń>9÷/’ė5Fó°mÅä©bź®_DōÓųčņ%Ø`ź“āŪŌs"ŪW,įv§įįNéė’„ńšńžó‚ņ,-)v½ɑ’\=–×ō7ū æĪģŠk+źv÷š<¶.õBāī聯į!|½ąo·šę½Abģ@®tęaW䒏 źŸó3ķĀ«ŠóŒī¼l? ߐ§Äī M‹öⱬW²ždŽŽw– Ė*> źsą?N¢ĀDmfÖw{h{ŗŽ(¤=B/OG+GļemÖŁÄ’  „ bÕ üĒõ–“ÓM‚ē'ŗo <„ üŹŲ@ś½Ž’u$øż7p@õPŗDńųTųķƒ„čģFßDń·Ś)‘ńÄiژW×Nv,!X}ź}†`ÜdpŸż‘ś3żüłIF)Č,źF§&DsVó‚½*ŚüubžsNö ‰ńNžŲź~+8ĻōZ:ģū1fś?V{žc.I,Y² ǶI¾(Ū!¢ō,,q«„4“ø‡7Į0^-xENoŁ~C¢ nK×ōA4$źĘaŽ’Ėd–¼ 9± „»j–Žūš ļTdŸŻ¤óXįŽHę|h‘ė(·źØ<ēéĀnĄļ#ĆķmK:éŒāµŲ¹ƒāĶAłÓʳµŅĶŃĆ Ó2zŲ6˜Õ«kŲLéĄć”»é8Aƒęęöīķx%åłĘŁŻ'aŸ€B(9‚üƒ×ń&q ūæO üŸŲµķšæKå{heīƚõq@š&!ÆåiwxŚŅ“ŗŻŪŁ‹ā™1ķć1P4ķV¹EöP¤•āÓF1h/VµÄÕ’Īž$¹ķöt¬źÄ"ģ7™ÖņV¼ō”’ź U€ąuŲ&ćV˜ué|sėXÓ3åIŽIę)²ņėąĖaļįųÕ#3*  «µĻO }™b½{ ķ¼6uróDÜ·ū }ŽÆ–OyŚbzLūYć¾-,Ų w.¢ø(&‹Z}FrSp°z Ä“² 5<ÕĘ_*8¹d,K/7ÕśYü^ź{’F¾/ūD{góØuršķq–ķĆļaīhŗ¤÷©Š ڐ?ūŁZŒ%ķŚß¤/¬­õ¼ "aĘś‘ųxūŲn¦£Üß,Ż+ĻØ÷*‚"ćѓ®ĢõŒėIżŻ?u@DüDčćµJF}ƒ’c~õ×w’桟yõĘžĒĆŚČÄćŻMĻG&p³f/­F60dĪ4X£%(‡ŚTp¤ŚG'Ēsļ­Ś šo•Ė3֏ ‚Ę c•ZRwöˆ~dé»9ŻĖ3äHč&Ł&섬iźb©Éė}ėžļĻ֏ėoFšäģ öÓÅK¶ĢčWēĖfkŠUŁgÕD {Ųä|Ö½pqÜ7ĒęķµČčØlgč5" ņøŗzżŸīĆ„Ź>,’RUł}ēeójZżŃdLų±zĮé_G®ē6·āńĄIUōāŽ»ģ¹Śøį ·”Ś;f1ąw¹ćP+ĻęJ»'ńdD©ś,Ąb­AŃLPę!'-Küéžćņ¾.&źkw=ļ5Ņśó+Į‚ńČęé{„ąģcŽå“ńŚźĖ±łé,Aė亐č &½ķ;K_ņ’ożƒpUįĖĘŌéeŹD4Ų·ė”w i}»7ŗk IõjMjŃ µ(Aīi/ˆ_—ģ›ō#ął.ŒY,:Å õt%Bę<†cS­¹ ÓļĮ|F³“ÜģžVQŚšśę̱żīCĮždö†ų»UņĢ_Čļ×·ķĒOiń•¦«žeAx‹u5)!ƒö0Ł Vyvt×D¹Ė‘łÖāŁžŪ¢ ķüĢ$Üš_,į (¹ÕæL“ž 4yś_Õc’Ź ŒKŽd“š· ˆ 9yåśŠ÷k2žœń’eŻ-ē·²fģ嘮Œo@*P?27}64±Ś0ššÖ"‰Fõ“÷ņ "]¬ż£6ķ ¢÷±Ś Dt%¦5 k¼¶d8’z؟ńlŖåÕŗ5Ž7÷ōę>¦éE)UģS—žźcŻZ:ģŻõŖ䲗‹ęž¹2īt łƒõ•^vą#īā's‡ØĪ…ā²ż¼öŌ̇ķ°0ŻģGŲqóNņqįźś‹œāLYäÖĪźš²źS}ēŗnēāć6ķ3†õń»/ś3¹Cór¬ ßY Ā×c Ō÷ø?… N½}y9€Ś*ā­Ų/°:š`m¢ę#¹£]=xl¢+ÕJ“,ÖL÷#¦~Ą’ūG’@l”ō Ŗ½-÷Ŗ„Xmq‡e3ģμóū «ü¤Ąžż]šśæŗōņžZšl9AļōéÓšRŽVūśø z+Hņˆˆī·a8=ąƒD!m—Q+©•ż¢ĮøüiŹ. łØk¬s,”-«(ČķęP›”ÅĄ ›¼§Õ-˜OÕ*ļœäŸÓ}@Ū.ų2qĆż†%B‰±ē’ŒTécƒĀZ‹§n&dĶs0%„ƒ4/1Æ2Ä~Ų&bĀ$Āø šÖ\B¦$ōŠgó³ćDsŸ¬˜ą7 „Ǥ yŹ˜õĶoĻčséįC‡9ćŪæäź:ķź“ėģš&ģO-ļķ>€ė9"ßį°¢.Ö®”½Ģ” gĪuŃweքQŒŲž+Ł>^“Ż®hēJ®Żé×~(ėÖä’ó@ę\žĆöZä šOž¦ć¾łtśsö,§×łźŽ“ųę5ė«ęé`Pńtmµóu·ėå]Eā®dݹ©-ąT¼Øå|EéčbŌZņŅ ­üŚ%Ų72ÓšM½5SJąŗźeiüśĆDóÜó¬ģÓ ļÖōrļļšļčēÕšsāœ2yęC ė„Ķé6v'ēęh阜zļ›ĀøōcŲQžsß«ĒĄ· Wą QIą ¹%¬Æŗ 8 !‰ķaVr: įnńN6²–`ćŌFv+Ļ ½$ÉÆ-<ōļ)0m˜µ3((Vx<„Ļ/ }o“6ŗéżśļĮģŠ·Ļ_ūŗ¢Ńż ģżęxų?OiņnŸüļw9ŹļįÄ ō9"M‚”Ļ3ߊ$žĆ <Įź7ƒÜ2…µ IŅ}Æcü”?įČkz‹‹"9Ch,1œ8%TūkØu L}>µ™ģbļµ ’ŗՉ~zŌ “üKS^ł¢yDmņõ¼?ėbæ °ēA>mŠļ9*ąĢp2UŻ4v¦/ ĶŽ!”µ©1L[ éüiC¹ņ½ ēų±~` ™© Łź –"{Āż5„ŽšĖH”åS"Gį”žęՍįė Ä8ė3*ć쩲ōģÉw½ī:S詸ĮŻÄ ”Ņź¦Ģ§rźĻŸ8ōҾŅ×.PōŲŠ™Śōą£{üč!÷[ź ³Ėķ[€¾÷gіčÅl°T×Ū@µüq7ų vA÷I%śTiŒōŠ3é/•ģG„óņu֙ń"ę)謳'ąV¤ĶŻ­FoāN@ē–­éė8›}öÉ»°’ߛP›`vŠ]ž  t’ن)ųy§¬šŸLóģŸė%ńĻóÅ!ķLæå;ńVćxoščˆ@5ė~ęčžÄ”ē:ĀKė~lĢń8Įė÷KzÖ ÜÕĮ OF pŸÉÄ“ī „;- „%“…u—ī–%œß¼ O'T1?0 óī;Žc¦¬”?(!,ŗ,õN&nŃ$2ŲhQģryź «+p +„ųėpnŖ5³9Ńé ·WW’_µ·ū¢Øsžk[üŗ„Lö=MKń^÷ļOÆ&ńjVyųĻP)’Uū¢Ÿ2Ę%OŽ”¶‚§ q¬ µ“I[ż3PFø¼Úą& +Ļ+&!X OQ@5~üføČžWżv?:‹ׁC=ó‰śIjūĀ©¼æ¤Įš{_Ż („`°Ō˜# ½o-~æ†3ź72ņ‰*Š“oƒ÷kŠęŠĻä¤ų¦¶ÅóbŁG’Ę'zūŖ® [+ dŸ‘ŪłóĒ›ģ Š—ćsřā/׋čֆUģāž‡ė&xWķŹ»{ķ VķI—ä4vČŁk,ŠxjĶ/bŃ¦[“ŌŠaßŲ„čˆŁĻ¬ÄÜöŒät%FźlŚSėr)ńšnū1_ę­Tż$’Ŗ'ūG+ß÷”–%ų&ł4Ŗžšb›éz¬`ļĮĪ8ó’Ū°īp”÷äŗßåį7ßKĖ’ä&„ékoļ7ÖZś6LÄzBųtpnZŃÓćüwļsõŃ0ļNP īg½ņ®Ōęń,ĆLź»ń“ävēä­61źTLÅź±ÆQč;Ŗ“čwAæķņńFōPÓcū»¾8ž¬Ó rĘ ÆĀV Llż©I^ eN’\ū™ļ‹×õP‰&źv’1cš÷€Ā ʇÉwō«*ډų*ž>" (joF6›ܰŗ śvŠ?^ĘLŻ”$v™±ĢxĒ_ż@€üW·YžTś¬Zōv] š°Üfš_xx󰂌żYf ō2/ĒŌŁaļ?†½~ŃŌ/Õ"b–é6’reˆ’sŽ„ š)ĀFāB)nz7(E·°4D«EŻ|³&ö…Ģ!½{Ęč» ?fļłįt±ż›QÕe¶nŅOd Ē1i>ne'ąŅė/vŸ3³Eķ/Š&›%W/–„æ5 GĒ^”ą8öÅöåöVŌ.u^® ²į īŲŠÄæč¤Źeō`¬éšØ¼ā“äK‡wźésģņˆņė©YĢķ@Ąwķ¤ėXt“ą€ēDÖgą²Ī‘…ÅĪ†3Ó×@Öj®Łh„Ś\QißóĮę?Ń0ė–’ķråō¹Į\žz9jU/ĮAž׳ÓēČ÷é8 ųõšŽö=§ķ”Žjź‚?œń ]0ņ­`lė5Ņjāo#ŪŽ.mįŚœęŽšTė-ˆCó¾żŁGŠc»ł“żfQönāg¬ōŒ×śŒv övāińé ņ4«ĻóājļÉīéż¢cēœ›Ńč‘k\ėTį"é1Ģčćś»ź>Ē„ļBĮōąCóū^k‚{`zOū¬W\ ĘźS ({ łZܵp—6ßN_€ –EĘŪѧ 7=öłõ}RA"-Ģ^'•Q$ mŪæīŚOś™hÕcT¤l¼‡Æ¬hę K:׹hµ\W”’ʍł«å•õ”(ó=݃ó…h÷1”­” «M ĻtCøAČ5֊7Ņ čßÉFyjj2ł\׏•wC#9Ų•Ų¬G¼ĢżĀExĢ Ē® ‹“āš“[`”˜Ō‡°Ā8Óž 50Ö`M÷@5*B č’"ŖŪ‘H‚%Å/y+7;ą-\j€)÷!L›32  æĒH£¼ü¢±vž‹P d‘— #„šI¢P®˜ż>³Ųóåēė·“MčõP[źō€^ģ&ŲßėN tģekÖķķÕģač„5?Ž÷£+Ųi˜ŅÅlŌx”ÕØĻv×% Ł+yŅŚ~ĖHį"<Žålwé^üźģ՞ö£(æū0‰'žŽ‚€żŲģąūȄ;ł»—/ł¤Üųōė`ō±D‹ķÖ2 š9óa3t鋯f挒āꤩä™›č%qģA·ųōĄ²=ü)WŠb×÷¾z˜mė8čžĘ½ų5uIōŚ›Mń§zEóK÷Æņæ@ķšøŽčÕ9ĻēŌ3ŽéėVµĆč{‰é·upģØł·ńŠqK÷Ć³Žžų ŹÆĖ/OB ų •„‹ ģ_«#޼–€².«8c vė²oŲsÆKU9ąaéąįµ$ts·&% š!š4§č īŖ`ēščVĮŁn?`eé²3Ū' ½˜Ē·„ĖL„µŌ<ż“ č÷Čū¬ō’ŻóęŅō#±Éś„Ōŗ³o\9!rÜ­qX+ēw§±UŹ 65· ¹°ų¢207‰j µ’Ļ®T ¤ˆ"¢l²RĶ„Z©µ {Ŗūü° Ųwl@ټķķ FÖ¶–8s’ˆ÷Ż’õ²œ[jK^E,k” ņ~Nčc Y( …t,*ēµ,Ö0s&ƒ§AŒO #@“ Ō(‹’[żßęé‰-½ š&Y pJķæŚ_ÓłEŹŲš“}OźłŚĖčūkaėęŗwģs³ģ}X ķż–ķĘ­ąźx Gåf­„Ūmƒk֟ŖµŅ7[^Õ7+D֕uŲ+MMڳńŲܹ2ć+-ē¬ĀŠź°ÖńļaĮųwŃüMŻ,ž ńü¦ˆūÕ?’ųīBłŪ š÷māüń›Ž¦ķ†Bń{’WņcKčģ1`ēäŹŃā:čĆćžP ęœ ;ź6Ÿ>ļƒį ų3+ž‘ę^ć‹ųł^Ę®ƒgŗüGiŅöņ6óyĮ­ń¾„‹óAŃ ńf¤dėö4čW@Œč¦’źĚź2Ąč!.«źÆØOī SģóØUśłMXń¬ 0 ™j B¬ : › Ä6I’¾šżøĆŲ ½±Oā±ūiÕEÉČ el6sāał"&·7%†Ńc…Zҽ ĪåLŠf3Ʊd%° Ęž/9šSY»Q&"ŖŸbĒ’BŠWūˆ@Šöć,ō“å‡óŠŌö’ž¤yS Āźä÷}7"~ĀŚč¢ äB‡ƒ ņ’e…ƒ<Ćf¬Ē„j§cĪm!g‹Ż ZśͦPa T” ƒh jx™É“@!* —’P Ü ’ŅjųA-ļ‚k ROü\Ńå^"g<*·O«,°Ģ*U®#Žv ųsįn ¦•ūż;ČT’ r÷‘ ōūcšģ]ĘłĪ0ön‰`īdĪnéz„éĖģ=ˆrģ$Qģ Xsķ!īģß© ébĖā•1Ł ģEÕŻŹAÓøCÖ_VśÖŌĻhŁņŠHŪēŃßÓĢeå!ič}ģ1h ó„;ßśķ6iżYåōżHR@ü ŅUśvøķųēõųlŲõÓķ5šn³„īw‹ņc,Äš-Ēź9ž¼åcźĖāČłĢ䔤†ēr³/ģøFAņ—.¹śkķe’£Ęu ķśFP½# m‡śł‹Sõyšņ¼—.ņt,4óźEļ©łé›wč ]éĮtćźc^źÓę)騔ģQš¹DöøP¤ü] QvI ·Hø K|Æ OĀQ#ąķ]‰rT ~¼ŻåcŸ$Ü“Ę#¢“!s°y&3Q"#n!Ż yń銫iüč 7]¢š£[(>ū ģ bōžbx pDĆzž?‚ł*>}õ$÷ŲóKƒōūŽzłģąs˜Z= 8ĒnlŠ3“ŽØf«³Ēi8² ķJfp@•ćż!:°„’¬£!B„Uķ}ž³ćóßš̤Õū Ķe?(ī®_{’“‘L’~“īįO -›uõ<1 8wDn®{¹M%aHa+,ƞ?(1¤_¤é¹ß µžön/Æż¦?ōSń> o‹ œ”ÉęJNEżéQéņķQ€ģ?©/魀Ÿź}ŌģßÖoģh£¶ģj2‰ķ÷Īė=€»ę¹ųŽ ]×]±Ō|"Ōi0×iyŗ×^YfŚ:ۚÜj#mį—žęGČéńÜīGłõä aüļ™”żņŒż .„ū`ćŅłbOŽų2=1ų²Āčóø;ļ$§øļĢą§ņ x½īŒ_ŅčC›äЉ@ćĪ€ꆘ'é_yīm½Fõ²Wšütrå”]pµ ÉeŻķfž°wųśP1ōe_ņOĀŽņ€®Bņ4āk]¢ż„nAīi#ėć P yv‰’vw× "FŒōkǦęŠõõ²)lģąp„ L [ƒŗļ“śž4xšøü¶ģHĶłč„ĖKżs՟ń*<×§°>śæ/ ó³ėĶ·ņ/ł¾UcóŒįzäÕĻ}å ”čłäÕżÆŽ†»ņŠšųĄ}}šµŌī2LģĮ)F…éGļń¢ņ²©ĢńMŠć«ßmź•H÷('MļT1ėčŖC¾üR“»žŹ"Ł}ņ1ž{uéŽUóiMŗć2kčā4ęKčōz—=?.|BåJŖ!ŅG ¹ćÜ擦 ń\ś­«qś‡…Ąż0A&rĢīfŅč²ĄŪ+.ęķœ2’ģtŽÆé5Hńņ›/ŸXwłžņó'Rƒ*32¢$«s:  Ś"œ÷ē Ąš ā a±zH·š¹Ķ;i×§™6Ńƒžg¾fśM¦ģĘE3ńµ9rĒÄÖ½˜Š1ń¾„2m6ń÷­€ļNiˆź•:ąńdY­ģ{Ćóį+`lŌ”÷Õ×Ņ«{ÜbHĢŚ+Ś}M ŚP„ŽcÅŹ×5ˆžčMB1ū4ŁÓ l( L bno3R\U ZÄų’:Tõóä .sšÓĢū—5Ķb,8?/“„‚Ė©µóVŻĶšŲ­%üåČs{i@L¤ īQõśŻųéūņ9oõĀ&…ķy ņ±°÷¤dś?MŅé’%<ėĆĶ£ājŲÓŁ¾Ļę£ćĢĘ™ĀödĢ7Ō›īŃŽ(ųø­J’Ņė b‘ Ś$ē“É)¾n¢Ęą­#'‰5ƒWipö!·Ņ,Ō•<²Īa.x° 2ÅŁ:‡ˆ4“ē8Ÿ«;Ž‡J-<„4’[’;ĒGÜ9Fž4×/£7݇8’9=v“ĖĘ8C‚Ėż·>›sL…ÄxFŹėłœ™Ōī¾v_÷×øg^ė“Č&ä(ņ5‰Ņé,ŒA>«)¹=öŽ{C£…B9³ņV#ežłņ]E!ØaŌå ‡x€! &«2é%Ē…Ä ÓŻˆ,Eō—łĀų»Įėīė«ņ'šķ¶Ģ␮^īc[é­_özˆĮķŃžīģć룋Źņņr©ōžŪ²¹šżĄņ¦šģ£¼ńį…×ć5į.¤‡ēņ7ū¦³y ’B‘ą óäķLŒgźJ†3ź³ć|å"Ńt ¤Ō|«ųÜõ˜ÜS7ąĮŹĖ¹%£Åv§½Ć#)ō“$łŸ»ĶØ·ĮÓÅÉźgÓÓĶ%qŌ Į^Ż<čLįO/RćsŖ'ķšĀ_Üjsć ‰å1ß$ó- £ļ¾–čįoFYŻČP;Ś’Æmęī7uŲą÷|ŌŽ`ÕēaEŚβנĿįēmtäia@ćfR’姐ņ7«šų’‚öšQ9˜ƒóOĮ]Å“ &ƈZ”ŅŌļ’™ęĆ+} ŚĄŻŁę3^evü›güĘskõl¼žņ4$(ųéF˜o¦} ¤Cuē÷ž‰2ĆG,|ŗłz“žjŻmū֌ō²Rń£Ė”īÄąz[š@“ n}c&8C !Š/Ųh/±ģ×(ÅlR Q¦ęR\ó!Ų¬)•Ī]4o‰§2€Wl0œ)p%±sŠ“(x5¤ FI#A€AŲķ >ņLEō¦WGóÉQķń9÷#÷?ęDä—U Sž€)Š…ŽUś’µÜōęīRļ­/ć:ĢxŻ;¬÷ū×ō=OĆQf$:Cä%Đį {ĮŅ$峈!C3©…Š)#RŅ,»x"¼j"·q5%Ÿ~"Ž£K  ADÅd#Ģo(˜æ­Až°#Kr‡›H\—:WDœ$IWņBj™7[ģ°/ĆĘ+ż•Ņ ¬øģxŃ›įV¬ĪŅĆ-~łāļšŹV–󺓦śŠŖl”U 1į&\BßBm<ŃK&§Ą<’„>ĀńB˜qģpj°ÕĄ…óÄFŽÖD“ŽqFåaE‹ź–IīI;½ź]V‚é^C¤Ųß¶ģä¼rŽš%3źyīłßū“ā[ĖNäÖŪŲąå£@ā’ėĢ„"jĒkŅ@æśܽY#v·æt ½«V“}й³†)Ē–/Ұ;qŌŅ?ćL·īcĶžū,JuśW³„žęMśó•ŗćødń§š¢ģڽ¾ćŻ«®Õr­]ÜęŁZŚS•yÓĻļÅXč^Ģ3-Mɕ$vĪdn‡Ś2"æāļKrūéhTž `ņ@~ ¶óF Ė w9»Óņģņ%&ų×BųK½yūm`/ų^Ē(ųDŸū’Y6µūöq‚™ S½cƒž}”z¬īmh_Ś`›ǽ‡žūņ!NSŸn…R“! W Å’¹ńågø ć/Léżé oU“āŚ/šų%“CĘ&CTÜ6Ū4»4&oB 'ķīp!ØÉE_ŗGŽ9|cd®{#²(5æėŁ&»˚Žm üМæšŻśßptś#¾ˆų0¾ƒĘJ_}5śóŪ•ÆŗÕ!¬†\aSæmU& «Ōī$õ'v³u@”ńzE÷ŽkGz'97&!„&ŲżOŠ'Ūź8ƒfRė&8¶ķ@«ūQ|Cł{Zģ5T«ē TlźI ņSpņ†żxķÆ lėwŗä·łĻZEÉV„ü»žÅ‚°Čt¶øŹ§Šķé6Õ䆙Ų}’ä?Xéö>võü ŖOMZŅF ^ą¢ū H† µ_Ż` >6Š-«’ŽqCĀś%±³­½ Ї}éō *H# 'ĪHƒŃe¦ü$±z•.ÓŪ=ė ’ł?*āIgōZ¦ąCīŽn¶’e¢wńę“4ųę>Čž½t g„tU« šM" |ÜAq͹’Y¶ˆÄ(Ć§ļƒ ßź’¶T°ļ¢¢ ÷uź ęĄx ĆĄ|„Ž <+¾„!õŻĖźź]Ś]ó°ü ņ󭚒¼B`÷£åµyŌåń <Š) -הłnŽOńšażć» §äh,ä‹R ēØÜPā› mļ!jŽō_Әļu[pčś%éīğ½óGĘĪųš°4ōe~õŸföę›GčE7łéoSóēćō ī÷ĻŚĮNé’«˜’L½PļėžńéßµČé·ņżāxrCķS/œłŁ‡ˆ ŻæĮ7ÜTggĪćwńjt £dØ“Dżń ūöžŖžĘ(śšW1õU ć¦@Ėåx?ē`uWš•™ōīXõšNMB JaŪe|!?3„'3†ĒJ§ģ}Łŗ|v€ƒĢ Žp ¦ ¬JīaŸ/ ¹W¶“1É47śQ"ż”Ŗæš–[ż ¢¤‰O?RŠł’Pčģń˜SŌéæĻ|ź„»;ėĉāće5CŚ ٵ—ńÜųkFß-¾<ܱßd($ŽŽqĻįJ"ļēk^oś9›ČĖE'\ 1d¶ōFŲq@·īž)Bš¾ę¦ī³l$źp™²÷I_–Į^ąRTŲ\ĄéS<ü⻌õ#æU’ÆčŌIBóÆóZ _ā ?ųŗĖł^z³óPųÆīģ9,ńjį[õŖ~õ»ĄĮģ2Ō'蜨©äØqsŲų$Ļ ŖĻńļ“ČTB–ŃN’VėŠ€£ųAņö„ „÷ߑęzMņÆ’/ś«¢?‰@] arāc¬8ź¼īėgĮÄŌ1yٶ¹²į 0’ŽŽs2Ł—oÓ$":ư«Āš“Bæ­Ų²·3 »ĀO`£ČCÜŃdÖØÖp4a×xĖżā<Žj拚å Ōåöžį+§Wź?¶ßļÓź*źGXõć»ZÕŪLļgą8ąŪąˆhįŪ“gӘKŲ„ø ŻmMÅՁXܟ‚ĻćõŗaāŅK·ä\–÷ņH†½÷s†ųŁ9’b1_ń½žkdŸ²•­,ķ“Äņ ‰½£i z³LŠe*+CøIu©¢żłBžļ©ģżŒy—ņjÕ3ü–M@ŲsūŽŽX §[S¶­<ž®Å ś:Ɗõ‡@’‹Žhü蜵öśŗ÷¹…øµŹ :iņœOƒĘ a@÷"ø=ė)¢&Š.Œö%©ž*ƗčƚcńF+œE.żå-«›.»ųų">œ?¦”ī ¾mAw”–ŹO⤜ģ‚Čõ Dļõ ÄüŌ*vöyx|üS­> °^.4-XŚ NÕ ¾¾„`Sō÷‘š¢åŽė|Į=ęörøü F½dīÄĮȃ%|£w)3ĆDz![$ÅŌÉā ^%K$q?Čzq¶Oé%”—’֑‹õr;mŁR8&ēr-3oĪ9—'3HE‚ĻŸDąIŲæŃ6aŻG2ä–Ń/¾DL%Ž…że7ąµ8 S Ā . `ngĀM·łĶƒĖóšOxōPD2T»4lŽ €˜U b–> ;7€ś~g ß:uåµō­jķ˜ŚųćžIĄĻ0ŲeŪ‰é²³]䜬śét`éń§ŗõźUÆ&é‰F6åAwį9ƒ5ę"‰@åσŃį$»Qā—֐įIJćLe0Ś“Š“Ōˆ“Čb„ʐ”eĄž’BŗÄvƒ¾źVm¼<ܼ*óŽÉ‰īŌ.››Ōvʫߋ/ģmK,ņŒVō~µBöĢ*ėń/‹ čDĖč0§ņ†āżRˆÖ@ö}Ž`|īÜĮŠŁ3ŸÕŹ÷:ΕߠŹH6NӈŅ-ŅĀ§Ś ŗTé“{>ņ—ŌażxĻ”žČ™·fBŒ•oŌŠŁœē÷æįįöū*ļ’*rAź•ž(r“ł1’qś^T}7V*…Øé? &_ƒ’œŸ²ć€ ~>̉iLNÖö:Z©m{®kŒ Vjŗ ųmi6E[ń„™*āG¤ßS.Óµż@kMaé(¼eÜ,xĖ™,޲%T¦!aa"„&#—–fĮŲYŅ żĒ$¬ /$#HuÜč`€č÷ Ńū ”$ąĒ**g&Ķż.g1ą ąŲ Ū5 c՞}wś$Ó–é»ńWČ- ,č”ː(˜s5 N>]hC6įc‡/ė³c!ŻfFÄŅ ø 3&ĄßóeĻęJĪ#Ÿśß$2śŠz’šÉeéļöń—ĄCōÓØŹń®mŲīQ"(ė ›:äļUŌ…\Č«PsĆī)³¹mśį½QbFŅs:ÖŚŃŲŌÅUKįάŹė$}ļ¼Ó}ü”‡$©Ą–ąP öōd ŌŲ( ę1ZqŻXœN £:¼g¶a v™zźØ\ B³M¬HĆ B)ÅļŃ A' r7¶· “s=-> x@ Ņź³ƒ\Ś9Sž»²H1¢ś)Ńö2žGųÜjż:Ė2¤…ō #v^x?|Ļs~ =•ŻĻž µĻĪ |*šüū¤ś0ßaöę óŃo 2e˜ž>¶ 4Ƙ20…ū5 óņ™ŪõČģ„üfwū?@ż™ŅqĀæ¶K` Ø” ÉŌū(²Įģ„Wė†ęlŠ1čzęōéö‡ē·ö^ģmų©ńU½ ėąnå#O<īzń³ņĮ`ņ!HÉńK捚7·ėwęśėTīOųļŲÓülņźiAś<Ō{yƒĮż»³:śōWņķūé65ėé÷ĢģļÕ¼ī֘sܦ óh #.Øs aZę ƒ«ą.gāļB¶–īūvDż¤Śś3‘čńEÅUė®·%é§9īøņT!éó'pXśŲm=9S šHe¾m {­²և±u ••vŖ7’ø 42^ ¦ū<ģl¹ 7ģį Łó“ MUūE L9·ūx"‡żż(˜ ń%Uµd žp}Å0¢“Žż©ÜcõxŠčłŹ¢ģ4ųļžc]쟰wčÅčžßÖ]ĮŻüąSć<§āüh±ą©Œį!ŻćhĄįäŪŹäź5Ų(öpČn’™ĢŸā_ŲģW3Žķ;nBÕ>żŽŁ ō%ęėītēĖ°óH…kžCo‹Ėļ:cܿ܅aü?‚ś"ś} 8l#NĄ …ŪI%*ü÷։!ų&ZųLÅyš½eōń®„ŃöŸiņ¹/ķ½éPź@{ēša®Żi6Ō2µsŌLs.Ō{ÕÄÖń`źÖźŗśėéŗūZg)qżĖ„ŗ Ą]Š{”ÓDÓ5u¾~A3ßD +ns{3µ}ų+W˜'wē—'–'S0>ŠB6·Ū1Vøš5ŪśO7÷Ē2gz4(:chų3tōĘ4z±2`õ)’ŽQW† ’Ū™бÅÓaƉūW=ųąžŽžÜ*ōl?ōš$|gs)j,ŁÄc/w<ž7N^ 6’L/sTĀ'_ΐ#x)""“0=ŹILqåsŲ õ0ŗģŒrē³Ÿ „>üMūTóvń\ńÉĮķ!¢ėcĮŽī(®ŸńfTŚõžųāåū÷s`nö^Ē„ö×Į½ś²9CöŠ3õÖØėÓMKå›+ßę‡`pęš äņWķ™ƒńłŅ½ŖśH ’ł?Łö §xļ=Aœä’gYåTėčÓŻ« Ā֛6šąCzcŽśeōŲēI Ń$’Äp<%æŖj„¾®ž¼A ¶æ`¬śŹ¾ĪOĻ„ż×Zs\Ū¾hį"Ēēģ}ēŠfüč dē^ éįZŽī¼ź~CSäømčŽī"łŻ’`³ß”{ęŚ(ĪśÕŠbĶ×±ZŅŁR&E×þ×ōvsāļöć]RAē£9ņŹ7:ś³¦üb'ć’²b–ö5A=’×)Ō—Łōƒ4ŲĘ»īŹ2· Kßęę̤ vł²Ø 7ųž¶śżw½Ū÷8!ūdĀ‹W h§… óÅÅ`ų1ø2ć’¤¾ ōw’s£ üȦałKҶł&RųĘ[ę& >i³ (ū¼%‹€Ų)h…ę,ܑĮ$ŗ +ē¶ž@R%Ž›£-æ—- ļ§+śYx#*j0r°Å /1 _©żö}l~$ńī˜ł÷IYõg04üž KüŻU£’(o ģā!£žu—¤Ł ¾(Õ‘^öõxcļ?ułķC"ī{ė’üĄgėēlĄ7éI‚j[鈧(ī}gnj9J qO‹F ¦Ą5įŽm"sœ½˜¬" Ū£‡Ļ„ŠöF(ėŁŁ0įu¾9„E YŠļ™÷źåOKčqėģAę$^ŲąˆIŚü˜Ž6τىŠżÖĪEŠZµ ĪBéҰ±×xšĪÜķó[éšą—ōéįÅśę®6†5‘øĻž –ģ’"āüD ł³ķ ’ńVF›T’ž¼Āü–:żpDīó ‹ R­`jåŻG+Ź’vœ+é  »‰><³äj¢¦i b×g?²*»Å3ä’@Ń^ö(ß‚\ž‘ ̇» Vø½…­,(Žh,‘ć+Ü£V NvQ u.£R Č˜šä 8'†|)Ś›p"īl•ž‚ČŌü™l ¼Ö’ē_eæČ6„łż˜¬«’”’”­ŒŌ ,ūQ EŚ żˆ¹ĘYæa„Ŗ¾IĶ”-uX;y/&Ćł0„1Ó4J—F/ž1%/ł"\^r Ģ$ÅśŖˬœåœų7aL•tłEśšųźĖõ.įĪļ'.öšÉ±öT_óõęīƒŻ éŽśädÅ×įŁÉ%c.Å…›ĆĪĘÅČŠóƒ:Ś[nrŁŽnŻd’’é0’ót_ųłi”ż÷› Üóc—Ż G Š ļiæ«!„³$ īq5¼žŠ»>`Cg ųI"Š(q Ą‚ 곋Dž ¤ņ•0ś¹³$W˜”Š~ Š„ē®w8šž±3K ūe÷)Ļ¢śŸ†ieĄ²ĶX| Ų‘ †4/ż ¼vµ7-īK÷A Õ ĻĘB 9§Ŗ§*!’oVB ŖĄGL, ė÷ £ _ ”PPü`ł÷s”BśŪĖį†ł’iĢż¶ŒO*ßW”ΠߢG)hV÷|w?īÆ8·ė_ć÷ė§© ėƒQŖė:=9ėP÷źŖøēķĖøŠéK"Šęz &é™7œņł{ń}ļ†īĮ[Ģģ­2ļ9±øšpŌ÷Ÿ„,ž)Ā­ų)Ī›õqbż‚ø–žQ”ų#$„ī™ƒź`“ķķā ńłŁˆö°…\’MŒķ £3 ¾9 ÓōķÕ>ćv®¶ ½ĄÕRŻś…¤ü»@}ś—Œ¼łžMÜō‹g|īÅ½ģ‚~ńVnē÷’>ŖłjŚ$ż&Üc™W u­Ē}HC[ål‚ ßNH 1 z &P #qÕ  É“ Ž×ĒŌxČĄ nČŅ>f¼#ż#µyžI3  Q‹ ”(/ )ÜXŖ’ĻōDüvkō€ė¾hė]”ƒņ £«ńŅ”¶é\ß{āR_āo”Óē„U*čGēŅä9;öć™g”ē•5źÕe3ģµ’óu…üäõ¾’Q—ņżÆ¢žšNŚ’a÷|ž«Žūf‹žō(æiļū˹īlĖō” ¤żöŒõ˜ž˜Š¾_óLź”›’ŅĄˆØ†,Ō’ ūåø _uā¦ś¤ų£ųŌõLłWgzõ‡¹ń“ßEól“,ōÅųFļ!sZźWˆčā7Xā4ėĮŁłŸf×Ę»Ū}Ķēßa®ćźČķł=䂾¾Ćļž?žҊ)ł ļŪ™ł³;c>r¤„ļČö§ļ'²M+/.•,AŁt&„o’& Kz.:²23n/ņŌ-‚ų—3ˆw 4žš2–•ö4D" 5 ž0„Ä_+Ļ‚ ¾Hy’ {ŪūB “QSaŸ’ÜRŠžcˆœs…u;$-­"ūī$ÜQ/'ö›L+EQo0¦Ÿ1ģ='+Ø*Ū&:{Ģ%:×Ķ&ž8!²œģłBŅŽ™™m45!…ƈ"øGĘÜ@°ełśj^³óöI°ój«ó 7Šš„ ]ńܕöĀoxśŲ1īüā‘ćśÓp“ł²IųłkłÅœ³õäųŻļõ[Śéø4zäSO›åDZ¼č\š0é1ū/īŪ©õŌą’łŗĻóūkxšTNė“’Šę–qwä¼÷EčĖ"愯&ڨ΄܇VćįšŚSŪśł,ĪM^ÄÅüuĀ…’Ć6‡EĮ%ƳĆķcśŹV,‡ÓÉ ×fåéŪĄxą†iējŅsčnÆŹēgwIčwųWč»<ÓėLR"ź”Åä°^Ž’‰ąŻTµ–ß\|ćÜ-/_×’×ti€Łø’rŲÄŃ×v½¬ßˆłē>Ź–é•i‹ļŻ3ł·Pŗżķ¼|żgŁżTw3¬n’FkŪ¼ oZ*˜½D\īØFłG@ėp ÆŁ® ¶Ōöń.0 ×Ī’²R’]{ŠūČą8ž 144™vēo§ –ūī Ż÷źŅŲŸĒ Šˆ•Æ;’EX»ü‰.żV'žÜcdĒ&7āū-óy‚SŪ æo#l’Ķ(ų;`'߈ĖĖQ<ķ¾P×bÕß%1Ę;+¦Āś*įŹˆ&óĶŽ=Tā0¼ ‘ś„Nd ›m”­œćAüĮ6śLģ’µjˆé»“9 LzF$čŻUX ń~ÄS µ'Zņų`iLńē5ƒņ+ÄXų!ŗ‚Žøµ‚¼C†8H=0vl{`xÉÆØŪ:‹ €\dpĄoOŸ0źę‚Q Ūß6qśĻ[:üéœ+H»3Ōė7äz=ޱo@RĮ ;mƒ6ŠńØ1mŃļ+tØP'‚rĒ#śS_NŬo Qč½ā“Y13ś+=ōōń–ųüč}žµ˜VĪŸ4S΁ @ß5 ’1 *łb]#żoä÷åÓ{ń—ź(‡˜ą„ø»ß«vźĻŗĄńg>śī{Ÿļ0ügóR@»š»:¢źĘŽä'Źņå¼ė!ēįYÄ䙣į¶0(įź­ą9”ķܱ ĆÕĢčīĶØ—XĒŗč»Į’C÷ĄŅ–öĮŠsæÄ`¬Ę ”ķ̐c'×)Ö7Üļ9wŽ¢.å֟4ķjĖļ-żSģŠDźźīūOčČŒčó*©č\> ę•īŚŪĶmŲ5ūķŽź±øßͦרAŃl¹jŅM}Ų¦uÜaJąĶŌé鞔óč śżšóū’ '’(SP•ų“o*żvMū'±œū>¢’xååäŖÕ<†żŠ ˜ž¤[T/Æž‰ŚŻWž˜žS@:£tv%æÉD° 6u‹=Ń«‹<4޵ '»ƒ£Ŗļź>Ź`vW’kŲ'¦ÕŠ€Z, Ŗ÷!Ø!Ź$;md*n€+&œäš!& ƒŠĖp¾­@ķīlę ŲŽa'uĘ)ha×"(vŹ Ķ CĒrŠĮ ×Rč„V“Ērb¼9ƛWžī„Ž! ¼ 9D¬ $#& ¶ī¬·Vo ǜrŽÓz« %$ņ+ž !/W +'¹#é%ņ±ŪŠv‰#‡V["<f¼K§¾E¶€Nįp‘łČ$ˆõŪįō•,Žń±’ń­Óœōfś†ōµ”¶ļū×Ūč ‡ōįŌ“ÖÖ§A&Ėäc}ÅæĀ:ŐRĒ RTĻ.`ēŲ%bÜŁ®Ēß«Aõéėź+ō6¶åł”‰`’”4ż¦Q(1 '8… 0 \KŲM \ė“¦Ø’ jõnĆĀ` a'õ•’G©Ż]p˜ –zĶoD*~Łј ŃØ‚?¦ °5šK FÜkƒšM=“+—ś¼]Uų•·słĒ³ÄžR^DÉ#§D˜ĢrÓXØ ņ,·1.)FT]Yh>Cć* t`ƒĢ­Ö8E ··¶z>“V a/Ü Śī§ļå’uŸ’śžčgū©c@†.š¹¹zˆ] Ķu 0sõ2.÷CĮ]ļŸ ]ģ(ōŠėūmäėC3QėĀAė—Wéó~ré«Ņlč:˜-ꞎčԁĻķĪRÆļ)ĄŪķśĢķ¾š’™ó³Å½łĻ–ōżęüYMóöŖL¾ū-.ÕžŽĄ łOŚ}ļ‘W½ėšwĄīHõŠō,ŽdłÅI/±ļAž® <‚ĀųĖ™”S“Ÿ§ÖÅr€ØģŹüšŽ>ųcźżrõæTąó ģ < uĘD ³źŻ ū•*Č©mØFTōØjz¹Ÿ H#ĒŽ“{göųĖp,Üßi±{bó"ųŻņ:ķs'j’Ö²#ģ2>Īė“„œźŌćź*tš"Š?ąĢ[tŚvę®ćįźbą-„āÅ­oŚ·×]ĖöWĀ#÷=ĶBēÓyė@Ļ6j†ŃKHXĪ;ć$ą€<ēĶ,“Žb`üŚŽ+ŲÉūdŹÜŌ悊ŚšĘŹŃ·ŁP§ÉźAŁ'õ]o’ę°h‹ŹĖLUß0ɔŻS@ę•<Ū !Ī«I@㻣EēijšōżB’ü¬æīō‚؆ݭš3kčõ‡ńīčņ2Hččćļ sWāĒ”zŅ=iLćĘVé®„;ŚąČ Ó#œœŲpז×3śÆįŃUdå3rŽE<ĮÕUš)ŅĀ^Ąć×IŲj\īā&³ęzˆŌīĄM’מū±Ūb::–Z#…¬e‡,)ÅæĆ:æˆi1uą$!C{­5ŸE6£ė-0÷-žš-†yDĻÖÉ;ž2Ø,£q¶ XI¹.г8†’Œ4»R5#Ŗiœ}]ŁUä Tރ ąrė ζ<:ĎT nÄż/T  Fk?=¬‹ »Ņ†G¬„ ȇ„%š³į6ó• >}:Ÿ<ÖTŗ3#|/Q\1&IJ¦#£c“.ł'ū˜-§$Ø&t ŌĶ4į3£xBb+ CÄżfį¼’ć2łł ķKdĖó±fĶęEFeß$Yć­l`ē NßΌŠźśńŒł_YĻņH Šé®Zļé·ęĻk“ō‘ū ńĻ:ęā~÷½Õķ¾vł–_/Õņh “(ąń¼TĮį'“ŒęWVžŚ³ųŪółęgŻóQ»såó*ž+:Ņń»$ź»įŲć!JŁŃłÜJXąŠZvĖÓģĒó KŚāœ}įÓĢåź9%ÜźÉˆŻ’¼čłbćł÷Z¤MQbU ž141Ø |Æ/üŠźź’ņėZ6 lCńžĢv“óŌĶŪżnÕ8 Z–5Œö}¢¾sŒ5Żi‚¹ PÕī4¾  7 ‚ūJP>ŗÆū‡r\ž’Ź©i„ĶMEz£ ä÷3(šššę“2då¦2ß:˜¶ę¤÷ēv& Š,_3āÉ7ŗń]=ŒLMū=zeL¶Wūrņ:čäGŲ÷Å6‘љßP˜g3&fO)āU²hĄ/;™ ģĮē ĘdĢż/fYoÄ v¹oļļlŗģ;śfšźČ8ēg`xć’MŁźŒś%š„7äą§Ūר裶¼ćgHjįfM‚é¢07ė”0åōiū si>¤ü‘YčGA?ņ"UķóržĢę3šÖ]ėā#īõTś§\Łż²ū£ßĪūDģÜīŅņĮ%ĄąC<9"ū ’Ć bN= ×Ų{ <ļĒÅĶ |Æł9‘.č÷õü~ ß ó½=•2æNi"§X#µėÖō gšÕ#ÜĢ{łožR ęƒ  OóhmŠ)M’œüL ģīøöĘPčōd¹įōć«jųgnæ_Ń ēRū[Ł' rKŲ Š†Ŗo hśO°ķ:0Jš³DBńje“óh­0žk6ūćżÖ?A¼hōB1÷āXA,åXŲVź3ŃėēCŠŪĄw#Ó„ŸfŌµ$łĢõNbԐśĘÖZo לĘtNJǼuĮ$EĪŗ~ÓÕ<­ŹÉ ŽÕĢJ߃萀oć‹ģʃņģœi”õŻc€åkŲŠĢ£ü†Ņ9ōįé¬ŪŽŪ¼ŅErĖūM:ŁVŗ¤ålą—A8ēŗåSā®8įtæęĻööēžž†Ż`Kę~g­ų#Cä÷*:Hń{7ł8ų‹ū1v øßS ÷{ˆ’åīG ķM ąĄ „Ģ jP¬ ņ°Į ŅØ v¦‡š N!—…Ē*`źŖ#īæ;Ńi'L ś°Ź|I#ßL½/ņĪ­Ā!…Ī˜ČMæąFĀxŽ&\žV.K»&,ʦÓ0žY©ö&ū‰ł)-ä#6™SF’^xMdg`H{uˆ6ĄZ 4u!~:#Ö?øŻy2ƒą%4īó(ŽÓ.b-ū’æ2¶×‚7“ĖÜ=6nŽ8=’’4ģØD.é=éPłFZ:AA^éā/d[U-µcż7ŅrF*ÜSCW—!Uß·äOąč~üśńŽ “m-¶Z|žIßaōŠ[ĮāɓēܓPćÕ¾ĒqīC|ūĀ*@uÖ&Śż&qåŖ5 Ž`AhÅŠ4dp—1ŠČW/š+(’ģ†r"l«×ķ÷”õ^ķäK'™kś@)m®Ź4õf 1m]ā1ٶč* ×U°õüéÆOć­ €üĀūųŹżõašXĒ9ĀĀ0mµ{ō÷¶Y}žj³ČJ“Č!*Ō|慠sā 4;Ó=Łńq{Qļ0#ĻšĮvņĢČ÷†;ļ·™šŪצŲף" ÖļøFŽöóBā!Ė9ź–'źjķ"ó“\?ö(WéuEÉé(ŚīCźę }WÕcā<Ųs”čÓǟSמųuŲŖĶ<ŖĪā¹ÓZšÕ鳙ŚKEŪŲĀ>)܅”Ś÷nŲb@ÄŪ&6ÜZ£'ÜT ųÕϵÉĒ¢³ĘvņÅ>žqȕ„¹®ą·®Tb„D}}±4Géŗ*–A¼šp½q×ĖĀ–ŽęĆļ‰eĢ?”ęŽ?tZįąGō—Ū“¢ćÄŚRŽv½Uåėr8ā*&Łń‚Õ ČŚĒĢŪŅģHč#Čą1E©Õ6éŪµŠdé7ū1ł; Yg÷Ś÷alnö9*Čż|c»żū0©<” 6ĮĀ G‰5%’9ĀčõmÆś"8BĻż’WOüĮßįųčēšł{»jņĪėå÷Imēü“ņ7Ē± ŗZdӒMŌÅ‚öÅ.~·īø$ś–ĒJ’K˜°$w·”v;F… ę{†o“Ø zH"_&ƒ¤6-%E+žŁ)åRß9q‡¹”ėŲOhFÕW• ±«)õ:W$°§ńēĮį Į'·ūõŪØō£]Ąś†™õĄņ䳑x…TżĘgļõ‘--–#æüf•ߘ„{®*8¦9…$ž ”Ü żgĪØÆė<¢4 į>ķ…ōąd䟬*~ äL£$˜ÉW’ķ_%€»H0$“1Ąžš,]Ø”,œń>&ąa!Źõ#o¤,!«ŖĄ#g'$„ųł(µ–Ū*“05gz>€^A ZåD2÷ĶIō,9KYVŒIxķ:D-™E=yģDg`C-3h6j–e+Mz(žņ,3|(Ä%Ä+Ł}ģ-&•50’£/€4.-Õ.©!~Ÿ#bl(āҽ& J°VoCz ķ=Š = ® Ę śų«¹“ņÓ‘ųW9pżÖ{tó?G—óQÅ:čj54ŪnuєAWŃCīĢöR[Ż’²˜ģŸ§ƒė½„šģØŖķäd čih$۟PöÜÅ’ŪĢōĮ»lĮ6¼r³Īß>cŅ:¢ßŚH:fפg Óax„Ō1åε‡@Ļ»ćÓuĶiŪ­PÖģv/ŌŁņĻ;OCĻQ° Ņ=÷ŠĶ(Ŗ½Óµģ«µ—’¶ø•½Ž¾mĄWŗ©;S°K䓯aŌĀ¢ŃĒlGoŠŖ]æ×¼~āePjå6ZźėÖhļ0pˆäą×¹ēunŃš’½ļœbęJrōģŻŸīÖēwń‚ (ņr…ęµUćgę_ä”QįĻ=:äŻæuč@ššńķNśD“§żŃ%[§\ü*&Óū—;LūAłźń,ī`ī”dcīūUÖó»Ļšą†Rļćēķm‚÷ U”ŚA æ<%̊ Z ĘYŸõ5]›jĄ #g— į•Ūµåē!0L%é'ż'š»©b ¬…ląžœHéb wž‚U½8HY ų‡ńjžR%8øo²JžŒ÷¬ŻČ&¾0ĶØš2ŁAż+Łl#%č°ĮZĻuz &!Ø£†¦<} 3beDó Ōłbq%7€Ģ!føū{F­óMD’÷3 Yl׿R/÷%ćÅé Åēgž¶īm"f÷==ŪīŚ*óā60ŌI˧…ŃĢ·Y1Üž4'čĻqļņ /ó±C3ēĄiFēɹö¹Ļ’oŌflā:¶ŽęE)ģĶq5ˆKµSõ*vcšvÕFēŒé_¢éTūDš2µōŸkbu’‹g¬3u& äbTš!t½ķ˜ųōł$"[¹“U õхVOķpnĪŲ0żdrA÷䀣ü[Šū×"›}š EB¹•;$.F*HѼ+\§Ś.óę…&pR¦|… OqŽVQy¤Å÷µ³ėŽP£ļE[nP z0-[  =ą":D &²B(¦ēż$“{J(ū/*p÷œ*6× †+ŒˆSę6‰”yZÄB($‹$i¢żä ŠŽlŽR×ÕĢō“^šވuüͤ¤J  D«b 1æ…ā =q’żŃZ”ō­¢:ómŖ čHÓŪ°s¢×?(ßI±@åĆ5Åō+˜Ž“ėżTNš "-öž^6-ś ;›j9ßGøÓšļN‡ź>n÷Wm¢üp 2ønBüÕ×ōÅ@Zö"BĮózõ‡@üóéXĮų“UAō]D”ņ`-zń sń¼˜ óĆēńŖēźˆęę0[4ćŚöą•š°įÆ1Žb+×Bjٜč įz@¶ą+ŌćāČčå/Äņķ †õ°T£óüŸīWōÜx# Śx$Ķā‘Ł£åx’¶ŻĄ÷„ßŖ¶oÜģŅbŪ€ŽZÜF'ÓµĻwŃL-ÅŌ^ŌüE†ÖŻv9Ų’ngŻ lÅä “ꇦ.ńŗ‰§šaš‡H±ī6ČnēB8Ąć¤ĻCā“GMć­28ß-ÜėŻ8?€įĀ=$ģēV„öÜtņAĀ슾{舂|ēnĻī9dVļ_%ŸģN²‡ė€ōĶńV µšˆUįš…Ź‡ķ eUļ§äńL¹ībl?ēüŠcźn2ČņR’qŠī^JÕˆVōXŁ›]Óņtų  Ģž3!yMž$ 1šš mć|xšJ»ßb%”å(īœ #j͊r˜ķŅ wc“: »Š00Ų=6ā{ƒ6*!g1K )s 8+(eĒ%¤É"€²X»Ų»§Sö"i*”6O˜«µ”:‡ ÷żä®²^ Ą\š.’ųh3™ĘŹ&ÉHłż«¦Ś"«9‹'#•L.!{&2 t+­ø8õé÷˜œN ^|ĆI#ƒ^€ 6؅’&rł?^·üµołšŒ<ń:†½ōś?†ūr’Ó, _cĪ#ŻÉ®p ŪܰģEä2§ J¹žż¬Ŗń愪čdtš±§wõoż ž³N PŒL:ä^Lßæ•’’!ż^\2ž 7A'f®÷ 2š×,ęR/Ķćæ“įō©häżÓgį€ŠŪӍŃÄĖ^n+ĢL~ŌÜŽĻUļ,]Cł± 0üž‹$śņüŪK¹Įl 8ŚO%ģK æDF 8—ą Īń„ M# zUöXĖźŪQA É¦’„ F÷¼ö ōv?śędķś|÷{ļ<ó6Š3ųØ3B’h Æū6žÆ“?*yŪµĢ ŅōÖ6ÉļJš\ļ›b’ēA{ć@nŽęw"čŁ›-īy6’žč [ĀZ“ō‰ ńśv~ŹT‚„Č@˜ż–ålüŗKIÓš 5”Šź”’e€)ō&ķŲņkųšÉ»¦ōѦö ŽAł¢ģœŽPō \qƒü#[:揜Nnųō̳jńsn2ņÉ_§ōQ!śōvqšüŠ”<ą®ĮHžū’b(ł¦.įųĶKKöŽ õųéæq„l$ūNoöCōölČÕö.ļV”jób‚žR$-±ć0’’—©ō>i¦ī"$ŅęÅóć ņ“ęE Åē ™Cń6ŸĆ÷ń™śŠbž¢üżźT"’ɉ’żEż!ĖĶ’4•(I|® +M,č@ż(ĄĪ÷&āDūåČśśRb µmß ŹÖ .‡2 ?öĮŁNHŁ)·Ģp*“Ø&‡ˆ„%[Œ ćuÉŌ *@!ŸW¦!S ļEŲSr_0 $µiß¶‚Ł å G›Uu^GX-󼐭:(0ō н/ 9c4 ē­LStź š½}üū°éńįļgƒÓģĀÉ9ķŠźšī‡ļó8 :ļ+\ķqu#óY§Ś÷›sōśtļ~Ćķė”ę čnß°ė.%7éóĒaęğ•ÜÕ÷Ų†å8݇śąCGüąéĖPÜŹŁJ=¦ŠK1‡Ķ<ŸxÓ°R#Žų#Jé+qČī8_0åų*ŪVÜö  āH>÷ćɘ¢ē¦Wėa¦&ča#ß„‰ŪłĆņ× ō?Īo- ĢSĻÕĪ­ƒÉÉ”hżÄ$pŃM1•ŪģcŻŅžŁć°Jėxšq¶²ųŸ1żŹĄóą7;VĖØ’ń‰ p%Ź­œØ ¾ē ź„ęz‚Ę ÄĒĄ@a•&RÄü[”pG;ĀTś‡䚞#—œü~ZĀŁÜ -ķ–Æčüv« ō• šUæ  „ÜXūóæÉ#²õļ2Lŗ¾;¹Ō¼=ēĀø:ŖŚÓ9ŽØ8;”©Ö<›§Õ<ȹ:,ūĪ>;aFo·ĀLŠźOmżjMŸœ%DUƓ8”’¬0o …+TF“*žs-«Ž)A`—ĮsŲK+@÷»÷!Ž™+øy'+ś^'Iż(XN#&doQ?€|L ŁK!’†o6 k× \?ėnz“‘³Xk)‡5ˆįŗ™³Ån øó9tÆõ˜ĀķrE5õ|,½žvC’æ?žżÉ+ųm äė"„}ŲXūĶN’wĒņ`ĒŔ¼ļŚE›ÄdŗeĘG’®Ę`j¢Ī’z%ŃŪīcĻ“µĶć<ŽŠiÕĄ=Ü1`Qį?ŲŽWrŻn½ āŹe®åsŌēL³¬éj%åģėĶ·ź$"½źŠ3ņTļėDÖļk¹÷‡żQ‰ų¶6²÷Ÿ“ĮŸ/Dšų"ł:.Øšż˜ ēHß^ćč”…ēTtīéŚÉŖļŌ]ńFļŒaŽļ”[×ńõ°rųŽs­üŹGūµĒöł’āWū–Ū]Ƒņ¦ś®„wū÷ąžõÕlõę jš€:Œņg=ųōNūY„žł–Uü’röTūHĒxųIvżAp’ŌQž: mS#tq3ž§ż€źłüüŠÕłŌrō”Äõ#3aś³č/†NWF„ųpˆ§š/Ė ī›Žõė żęķ_ĀDõāg’¹āŒ wžu"<ų”ć—ō0łų…ßū¤Ä{ūاõAųšP’Üéč5eē¢×ķÜm®öŠrż‡«›ÄŁ/Ń’„(+° ÓtoJPóżŹŲž B­ęSšöœŚ” bŪdĀłą$FõӍų¬Ė)P­ķ HrN?`Š zģč+)Wžb’pĀ’§­Q,voՑ°L¢e@ .—=RzńśüŗƒõÆzśļĮĻCź»³ę9÷ńīGRł7¹ž Ą’ė/q5¾¦ŪqŅ^ Ż-Įgž”ėžųjIīõC"łÕ,ųØķ’ĪÖ’gŁų˜Žł œ ų”`vś‰—üg• ·ė @uöņ§:+%ßņĶŗhĀ ^) qģ”…üŁ(ż:Čžūdzū+›Ń÷Ė«zņƒL­ņ<ź«ś¾ Ę3¢FO:×%ėg¢+s8f)Źhä4_Į¬ć:č:# @Į&p$pæÓ™· ;2væ/ŚŌ–Ig!»ŗ¶!V¶.‹’߄T «TŚK¶™Ń»­Ņo-ūdö ä*żł§$ÄČ-©TZ„¼ "r?‘ó T¬Ø c. ®2éī#åēU5ė†7¼ņ? –õ’ÅKīYäē{Ķ9ęs¾ąßŚÜC0ŽAłmåS 4ķń¢ģŅźŌ ėÖ_ļ0ŪĻńö˜óómzŒójąģ .^čjņ±ģÆķbö}“éżj§Į Ń!G“Ę’u+¦Ķžž‘_YhR¢ž,OŠüņ}V(Åa ’aż±ßŁaŻĆ3j­õ=Ŭ·ްGsī ćȲ“/(Ģ; Ń9å‚¢ÄQõ÷|°ĶüÖ m/ÅźŒæ–ŸžzżŁ›žoW`üeœæž1Óć ģĮŅ—!7M4 ŃLƒŁnēžŌü €)©dÓ1 ©šę€Ć"Q<EŹ5šė“sĶŌ69éž’µ'‡x¢¢ŠÄķ„Ļ2T–£'3»ŖgX lĢ‘”øĮJŻ?b;Ļ‚ČÖø #F®Ļ’Ńx“9q.v‡ŠI-Ō0t”µ"N‘ 2Ī˜?ŖusF4SŒC¼éķ@ ęC-LJ-ńN~1(Néō_NźO-NēYÕJĀ^IĒø‹M<ö1QĶæROÖ®"EŽv~5-Ų3(ź5#~Cž #hjH!rčī6 ²©ž uRÄrPnWd)c¬åŚß!N ’v…ŃūCXŽõ^žĀėZc†ć†¬ąŠnćÓ)ŚķüČßł}¤Éoāӌ™ūŸųēz¾ļümDā`–Ż[Õoäķµ»īA˜Ģš½­šķw¶ęŠ¶ß s—Īoįæ3—Ų¹ł‚›½ a½Ćj¬TĒā‡×ŹPŽĶė‘?ĢīEˆČĻ›IƐ2˜æ°\æaśœĄ…9ŲÅ!Éӆ¢ĘˆÄ*O$ÄP02Ćä0wĮ·•“ĮAS[ĒŠęĶĪ &Š|ĄnŅß°ĄĶxżšŹYģ¤ĪŌ.ŌLīXÕųæź×ŗŽ„ޘŒęå¬X’ēżĪį-`óŽI¾ąßŲõųß5ųį±ĮØåŲźī 1pöbœB÷ķé:÷ ÜõÕ»œó“ ņŗ­ģY\mč<Ŗšé)‰Õīqeōč¼ó<ģ ń»×yļøcĆī^•W뉋Mé@KRźŖaIė /Aźžgīź ö™ˆżA™„ś©į ¬Ļµ«%~9§nUdģ8Œh«©ō8Ša–ą]J(ü#e]+ż†Ń0µaķ.īīé!ämr&Ź#lŚrüCøPõū{! šÄ_ ó÷* •©ōö!¶±’¬B£Ź æ\Ēņ6’0ǾĒ÷ĪįuV ‹ æ_ #¢«×!ūŖ2]ģEvd”ł Wž@«0õ ÄOør 8Įšž ¢1Ŗ*’›u÷ÕG†ó2o½÷hjržgÜéF@¬õ*ņ‡äBKŲ2FŃqĀ2ĪĄŃd]RŪ]4fęé˜lźyæĶéč2 é§yŲä)Dćėi¬å2r½čh²ėĢ+óĪŹYśĻEżd?Ėž­’² Gd!•Čžm}Aē§÷sĶD t)ų„«ÆUZq}SĶ)büԊ×kkĪåóN¶ˆ[žˆņ’T ŶkńŻ 6ĄGiLē ŌBÄ Ę \ĄUg:÷ZŅn‘jĮ+÷0“¦÷3Ž„-5·¹Y ÷ ²$Ś$Ń(Čc,->y².{C/;2.ųäh'Ļ“³#"Żī$D {)ƒ)Ģ.Õ“4£uS7 lŃ4lR, EˆzŽą'Š`6ķ Õ­a »ć ɵe ņĘU\q’ÜĶŠõ‹2¼ō [~õ¬ĻüņŻš‘BÄšÜi5ļ ŗģØš'éŚĶwēFh\ģ ÷æ$žżtėˆ›5}"¬ēµäłÅ˜5ų°Ž)ó«ņŗA¢ö&ŃžI«z6šK š}Öś>>3±ˆū=hļ½<,ęžūāyA•ę4Fź ĮļD4ń])`óżX9ņś£#ķ³“¶ęéŖżįĒÉßG$>ą”I;āOpČą0Šäįō^É꿣Ėé4ŖźY āģUčš­ńŖņÉ:šæ¾Cķ¢ŚēÓČ å ‰Iźm¼Äī$°īįī°ģįŅļ“Ś¢ņ˜ńó×<ŽčŽyjÜB£Öž ŠŌ׊¾ÕYĢCŁ€€”āś&ŻģMńˆ˜oķmgēūĘä‚bŽä÷ā­²YŽīĆ$ŽsI†ā–vå[ćŲQÄąWÄęį…éƒę=”ƒåņ½į žßćķßÕ4Žt²uŻd{Ķį I źkö&ćåvµŚ+›†ĪÅČ‚’üłłC;ō C’óTm'q‰¶X¤8m`²¦Qˆ{ ŽÅüL°_ øKöājYę YłC‡?Ī ķCE…qįõčz/ś˜ü†ō£Č£Ł˜‘Ö•Qć¢FŽé“ń&zśō Fń¢TBłńŖųźn‹óä5¬,ōŖś’Æ„ @®ŖH”ĪÉ>ćż±’£ī»j^X³óÖj°4h±3,G,6X†Ń!0Ńā£Ć7 ppŅłJnā 1?p–1 ˆs ść}Cāu˜åöÖ8 ųŚąY’ĪĘBsKć*äĪŠ2ŁyēÕ’Z>ā ņæ ™LõĖ'" h›„EĮ“wsų7µįłj~öa ĘL ŌBŠūdŪ]öK=Äü俒÷‘ņ —Ēļž”k²’^›–łXĪĆžåE×ȶ’®ł;±j2f‘`aĶ ā‡÷œģöÓP±ł—”šķL+–ō;©R8+6šÓŽ^śė0ĆŚõ4Ėõ›}öėzTćGVKęFµ†īÉ-ėē"iĪõ¤_„ž‘/ćHčpAdį —Q¢‚[q¦żA-dżFļłµIä‡lJ«jĘ čpbiϦōś«ąé‹=ŚLāŚµbߓČlšLUuķR=ŽŌŚöņר#Ōć§ Bąå“p驄ƒłų6 ŠeH0Q*÷Cū…ńė·nā†Ą5Ū•ZčŪ–TūԳփń˜'1©¢PT ?Ō¾*B¬ōŅf·ō/®öBś’čxĒ÷a 䜨 _P  1{SåDO ģ¦󰘯Žh~{Ł,Ŗm÷˜?£ńÖ’łĢNĒ|ß©ł½ig–ī_:¢čjlį» o Ž7’żć–ī Ālgf\ ŗ—C Ų6Ätž: 3B¦Y²[ Ur¹P•>žķĄ4 Ø)OßÕóŁ&įŠ—>¦M=‡*’ö.ħ1)±o$Ķē¾ z˟Lø©sVė:yPžÓ‹üqņ,Āö Fį ä€ōUŁ|;›B,@ÕM„b]ģ} /mC3F2¼ŠF#: »ÜŅZ'ŁŽ %µ³óf˜z§ŒmĀ/¶§!‘$ÅnŒ%5é„0ć©#A EĆN…üV§rśĀ›č z÷*Zˆī¦üķd©’‹+eģÆó—ƒōēŻ¶‹CÕŸÉXō=¼ éslł qŗė7ś”łŁ‡­łž](# i·Ż„Åī§C\ވdõÆXŃģŃ&öęˆ½ń\cö&Åö÷Z:būr>8ēŃŻ• ćŁlLŚ0V¹į„ &ģ_‘ńØŚ°óžGą÷läeŌD•hŲźc4Śe-iŁ°ŲŚÕ7łå~ū§ļ›ÓÉņŁÖ6ł?)ķŃßŽķ·µā¢a†ć@B¼äāµĪļÜmõsė“÷ćl#ėĀ}™ńŽ—öä¬įę˳ŠZ×Ā eļōtņ¤+ł£U“óAÆėŠ<]ļfĮ¤Ż›{Ü+o“Ż1Ń­ņћtļ†ų ßūNižnµmųõʖEģč3“iń'9kńWe³’ō˜ł£y;īՋ›š×Æō[”oāfā2ŗćä&Ō“ų®E7ód9XģOĻGIökŸK³čĆĒVŒ ”ŠŽłŠä  Į ³z¾6;%|Ņ ęRDP$FŚŌ(”ł#ėmæ9G3ü<*­¦4ęšĪ0×–4]4#Ņ·$*I1\!—Ć%¦u}ŁÖ³/¤Š QzŖ‡ø›ĪvŻ;÷łŌ łģņøŅģ ÅęÅŪÆīrŒ°ü&£rž.a!œļŒ,` Ń'ļL'æÆ&»$ó“Ńh\ā¾FęÄLÖgbD+²‡|.c&29y*–ĘG.гŁ¼s{5ūż&įõ…˜„č§ĶĻķ½÷ōå§0O2Xūsœę)c¾ŁV_Ņ–ĖĮKDW±[d¬·¹%³ŃÕ!²™æ¾ īźŠĪ0ŽŽMżŽģµ®ägOkį‹ŹĮćŠéłļ‰ŌóčNęērىWź H]9ā)]ĪŃūUƒŒņWŽŪčK•ŻĀ\Ŗß¢YoįJäóŠĪöȂLö,Ķhśūć’^ µ–šHŠ6²³ažż½Z ńój@šœABą/q3Չ8ķŚŌŪĘ܈.»ĪVž¬ŌŖzņõ=Ü÷üwńĒIÓśsī®÷svtū€ū  »· e ģ Õā\&ć )‰±‹KŠ6’YyšO ēI ż„9Ź餩KS=uk(æĆ=p# Ŋ,lS)“#KCĶ"ķ­8"VĘ “IēĒqś­:¹üЧjÓvķ IsČ’W/öńŒ|ĆņT,Gū‡oś·ØÅüąå±°P0 Ļv~®Dœ>‡÷‘Ą”%Ńö«"µwsW"؟e"…5”—ĄĀ ”6,¶:>"EóAƒ<Ŗ¬/»•¹.¾—a,oN%1ĞZ2ßlä/ź0§FE™3rC‹°ļ2٧‹`³©~€¹[ ™)ƒūUXļK„ٚźńÓխ˵}ZŁž:Ŗč ŲyņTĖn äÄ©ŅW\Y!įa`õūŁ¢š:čń.āgł-BłüĄ$ź׎ ĒŚRž ŹD&3ÄKå/Ņl°œHlķBńØü#8PŲ– 6;X§„ź:Ō~å•ZRåĪeŽo 2Ü£Ø/Ó¬8 ÕśLÄŽrŗmåJŁ…ė˜ąyčl‡öÓ©’1U4żuŁc¾Yų2œ ž‡Ć`įg~“Ū‘GžśNKż)]ŒńžkõąćBJå5ėIZł£ÄģVšįЇŽŪ”9$×fŁcÕĄ~į$'ńåT[uī€2÷…0ī ›—‰yśŅ–¾ōҟąœ8×1¦Ļԟ¢j×§ ŗą”œ,į.*ŪŽ„¬¤ēé ļvæō ¢Óėųd?Ų·|Õžg¼ŪYžÜĆ®lįK­öē`­™ó„o,ł[AKķŠŪ“Ū¶0Ģ*«ŠĶdĖ@Ź’ˆŽĘŒK_ė!ŗĖjŠ+Ģ·AńÓņx9āä©"ī²ļlóW„Ńų]{ųwńņŠ*ųK4Ģķ×ę0ß·sTē\ū¹T²¦b±”ƒRōØ|’éĻuÜ0x£Š¤99ĪĶ:ļĻg/ŽŲe“€éå\3ę·"Nģe®ųÜ“ĖüĀoa÷ŌY)öSśŻŃLųGµ‹īmWģ#"Åč“c–だÉīÕp|÷Ē1ņUśąļy”ūž£;žšL)Vu†“Q<U¢Ó«&¦ WO `0 ­1H„Ķż&3tVģ"måvW1»õžŸ=×Mņ‰)ŗČ/Ž —Š7¦lŽ ćČ0Q]Ī/«co,sĒ(+–U+.’ßk ā֖­ ž·’¤Ń¹5±$ÅĪ1®6.UŠÄ+–1/'ƍ(917%/^|-Ē4RΆ9Ÿs9g‡> <ĪH\ÅH’ŠŌDžä;Šn4=E…“:QxS8ÖŻv6@#<: °ś6…4?.>/P$MõK"Ū­¹*GÖ]0£Äõ2yįb7r£A ūK8[iP–svCÅVč8[T;·y4 3¶+…u*Nɝ3¤T1«Ār7¾čˆ?æM’Fé¹=·Ķ³:I9ĻäĒ=+B;{§ę3o8_Ų%4÷āÜ4¼Ä€'$Æ “» ĻŠę³Vīś‚xų“z®ń~¼ņģś«ķļZCiļßEśī“ u÷[œ™ū‚īÖ÷4Jp’‹}“ ½žś ž½F d³žč^$AĮWłN¾RļŅĶ$ąngćņ¤/ļ. š‚ŲłŅŅwž«¼½ł¾>ö욊zŻįėĖ ožČ¼PĀŪ¹ųĢąä™Ū%4rß±ĶUćx ÄäāĖ&֐ČCQæÅ›l»žōŚŗĆ”«øéē#Ę|KćĻŁ©ÖŲkLįõĮęźFøāī:&ßoÄÆč*$[ź?ŹżīWįŽäš°ŽH”BܵŗÜ iaĘ'ÅĄ’Š”å,Ųė…½ŪQō`ŪiÖ~ IŠaMĆYs[æÅĒl§Eɛ^‡Õą=Śóéßę:`(č•0:ķļ;åäˆBÕČ+Ēś@‰ĀĮYȔ ™ĶĢ“<˧4`'4Ś>-‰ä@–Ųū:Üüh@Ŗ„…5™æ3žÉ7ÓėF5Õ-‹3yŅ“0»“ų/G73&»5l‚…e u.A¢cµ’ƒų*ŒĖōߤžēE”%äĮįę„Q&ńn¼ęüĆā¹ ?©Tō($ōc9'J­x%Ė”Ö(—g#Q+J! ęx} I·§N—Ģ"čz +–#~,“K%ģ”HEö ŗ— {ź0oz͵‹†łbf'Žčš|XFÕ`ņŒ%Oź’čćąŖ*Ų¤čŅš€÷Õ§ \ŌVd–Ö:²fąĮÆ/če)<ē`ł.ä;ōP禶Øév)ė#ŖĘį3ĘŅēĖ §ź&T¤ķ»R_㓲FŲC„ŅuėkŁ`P7ÜTš”Ī5ÆZĖš|ȟĄ³Ńę‘ Ūŗāėā„šģǽ8óµU‚ķ¬ęė8ąŠėH!pć“l£ŲmfW×Fūķ֙§³ÜĄ”0ä¢=oēæÄā”wÆŪ&ßõĆՎĶüÓEó²Ó;NŅF>õĻöĪüϬŽ`ŃĄtńŁbjøŽĘFėēīÕQ÷š£—ų€ ;ųˆ;ų¤Čńį¼Zė 1Åń6/õpåNż'I «i–\;Ę"%Ė (Å%ƅ–d•¶PÉįéŊĀŗr:ˆÖß®’1ø “aū„74šĢw‰ųÕNšś[Xźże>ś>_E÷9_1ļĪ“Üåļ„ßs*ĪęųµčųtńF&åņē^ż0ļœøuō»LÓŁBƒųwNĒņmĆńBų‰¦r¢?Äł÷ āM˜ ļ©* H=$³>O.Ū łēSÆźbĄd&»‰Ž©“yļ įģ4¬ž’ąZtTūx:1ū>ÕĄ÷Źüōn¶F鿊Ūįņ0鏊;ėYę¬ōpÆØĒä [(©øp£ŪŹI¶-W )F+!ć‘VN{hŸPsh’+[„ެ”Č.0D~ż=Į5|ʰ ˜Ķ 軂jv1…œ…€ÉęɌF–·ÅĒv_ķßqŃˆŒ—ka&›ūD‘9õqųżģ0œ›ń{öcł÷-öü ¾’µ¢-c-F'eöØõ{| R”“h ]2W ›w4YŚ"ō ¼vhß“ƒ%p bmąŒoØś“Šń”¤ę3±ßѶ ąiŒķxLIśž ‹Čėœ~2n bv˜KnHŲõųĢZTėé|zŪ$ߑLŅē5gķ&8č¹Zvą¼ŗŁjF×öĖŪąūK4ėĶōbņłˆ ńXRźtõ-ņTČśö{£üńćĮBķŹ=”ļ©Ė7ōŌÉLöœĮģõö¹īōĄŌźõ·ŚėN-Ō2®æŃeԁ*ĢŽ×ŖėŪ‡2ļŒ„g÷ĮüGĶäüA¤żŌ™.õP›é^¹ éūF=ē‹=¾ėļ öē3?ėwÜ’¤5UõėųšĆ ‡öʼ“mł>MĻź–Ń ¶`Y }oΐÉ8LśH£čBį[ÅĀ FŒ=,Ū(Lžéų/”*üi¼Æżˆ5źžĢz_•źēž`‹Årv›BżžČū­“ż—mń+—”¼ų™ē„ąõ‘€³ŽK˜=‘źź^öÅ/`#¾5l#0ĄŚUųM‹ Ŗ b¶? wßŗĢÜ<½~ų™;Ąš²é {¬$(A9ŗ$:jāvŽńģ§±^VxFėaĒCe«Yvn,0ĄĢą#ž[&$×f"ųī>Ž f.»$¤÷T¬"š 'ų{Å$%¾qT5ސQ&öēī’Š1)žÜ”Qī(yQēLīˆę,¶æčśĖņʉYż™=. ",¹rü”$jńL³<ÉéäŲöēlbō• ;ö¬ä3śzĆ×ÕŌķ Ń]i£ķxWüļßš¹åTļüøō÷`BÕ÷Ji8÷ć«ļ}FÅäĪe^įmįą\?Wį[®č*hīģŽ–ė~ģĀŹĮģ¹j“ä]‹ėāæVCŪŪ|Šā©Ė1ĻĪŽ;ŁC¢ųćP įļ•«<õ9šUłŲeśw«čüł…É| Š†æ’Ŗe[ōDdQļ¢ŠšRISėvŌćsĆSéž×&īŖ>ņ„aö× üc6ž)Ɓų[gēģi¢HėŃߌļH8XóF%Hó4ĆĀöōxfūå zb>ūFd± <3‘ŃŁw€c÷A ·]ü’EįWsf ę) m5 /|±`A0+ÄSńļ&üĆ łõĪ#ķl@¦įu!ął Ąę3ןDē³č\éļā-¦Aį"zCā+ Pą’ŹWÖųµBŠ6S`ÉZ›YĆ /xĄģTČհՇ:‡ß£YåO‹čr ģį“Vš|›øńżi ė×Ńv╪™Ųź¾Ū¤3ģčŪß­ōURoüÆż˜`ł©—PńĶÅąļõ“ņלŸ žFN‹ųŌN™ģ‰Fæļ.NūĻ—€C•›ģń>®K?÷6ų*·Óīd“Ā盿īß:ĢׇF$ÕOüŠMƒ×ÓE+䁚Čö†č钜Ӣu[*%" o³\ H_‚TĶ>¼œiųŖ 0ɱĄ­@Ņ?kįįę»ĮźEž"ˆj$¼`'žs&B>!Ż\‹#éŅ2!¹"8»3!×Ō_$‘uŠ!\…Œēå æ{%9H&4Ü"ß÷Ūh?h,čœ4ī^ķM5Ü@æ Fōh«ĄūµÖ ‘5Zč £³oŽńk!éćcø¾āēĪ:ē†zē€pĢėĖČó…ū2ū Gc/&bM½ųœ²Ęēüg2ü2S’óń %õ”ŁķG4ķųŻŗóM”ń{/¦šó$õwmśuÆ]¶= © &<åmSµoé5Į¢>—?śæX©óģ²ķ8҃ķoļ[«žōx˜÷č7$÷į™ś‘'ģśvlv€/Ó$ }éŃ ć,eܦxū7čūłćmž¦į†ĶzŃ āW<wö·Ėž>$#*¼#Č|ˆ#ó=d$3‹".łĪż_½Œ–"#ż £'ÉR-[Ż`.[čf-s)½§ %Ń`%„2Ū$ ćÄ ­ņGģ*eO!ų/JŠķš9į–²Ćåķ@ša+oś':LYõG hįyžYŸnŖųŽ=Ÿńü3ūķp)€čhÓāĘ[ÉéfśŖóA‹ÓžĖĄ`õ°”yōü`(Ōų\Ćåó˜-žńĹŻļŲróe¹šanąšDĄ•ņĘ}Żś¾ˆ ®‰Æ8}<ĮŁūż£ņ>Šøń„ ÉńfēgźÕ~å¾ŌžćĪ#ę Hę}”ĪēŖÆaęm“Nģ<ńӘĖń®Õ¤ńc~õåbrž‚ö'žÄ”FžuyڳP±.¦łź@Ģ1’;ŠīüAŹÕśčńöMt6ķfykęx÷Dévī®īFVąō€?×ōŲe-öQ©Üō[­¬īÖ{héåŚWė”Ē*īļ’»īn=ŪļÄ>NńKģŻņk‰ōh{æóÄ:Ü뚄ī啊‚ߎDĪŪ”±ŠŽ[µßS䓳óėĖ•÷ Ń“żübjüĢ’Lóu3·ļ`՚éEWåV÷³ęf ®ģŲ½ō‘‘ĘņeŒĪėBfēÄ=įź HķćĘē!Ż„Z‰Ö{øWĪė#ɀέH޼)žģ/£‹ó1ųĒņ>ļaņ;;%öĘŒł” ņ:eńåvĪŚ„ĶĮÕĮ#šŚ’$dćī"čļm:½ōōĶ„ņk™čuć®c©åC›Sź9ėīź®āX—BŲ‘JČŁ5Né˜Ūźö-ŹÄ¼:œ cw F‡z’Dź}õē^fń¤æżķgLqē¼ēEąÖdĖ×#ŁŌ'ėųąg/UņņŹsžŒĪ’„æx כW /Č ¤¾G ØÅa¼’uß·ųĮęņZ&õ„ÜüŽŗ‡–rM§¬ \„I J”­eĻ3Œ sŹ"M[c‹ „U²!FwL'4źø1vÅŲ7Wk1YW"ņ?ĻĢv¢O‘šļ!ˆĘö%G/ā%й&“?h+ʔš1/†Š9m$Ņ>­ †=ācž4Ļ),ī€Š'„dy*¢yĀ18%¢3=ø/‚)Ī+†t0½j28ur­A 6M¬Ę®T*4T4ģOL`žB°&;ķ ¤;0z;‚Qū4Yī•.ė‰ō0­®ņ9ņŚ”FĻ#OTj_N–X4KŒY8FZ5„9`&-M-ķ)Ro)£)©&Šj#ūž#ƒ#%Ę·£)¢•.'¢43³M6ī’A4›$•-°?•&š„&@k —%Ü„ōqIšĀJĪóĘlhö~§•÷5ē®’e°÷I“«ƒźĢ&½* ÕkžÓ‹õFŁņXš¹óI łŌۘžŽÕc’Ÿq›%ėü4EyõóŠķ5’ģź˜ŅCérÕ?ć6ēŅäMćåd°åæį!±–Ų·×ÜŠ<\Ėē7WʁČóĶ kMѶqŪŃ{~Õ~@‡Ö’½7Ó£JīÕzu>ŪœĮŪ ŃŚX ŁV»ÆŲbųŲ‹ FŪŲaOąnrõąšZß<’ąØżäåŗįPčHźTĘsęžŃƒŽz ĆŲLł£ĻrŁæÅS±Ē)UÓįU‹Üse/ā8B擬äάŹįPMŁbŅiŅŠƒÖϽ¬&Šč'ˆŃܤ8ĻćåĶ’!­ŃNĪ$Łv{“ŪW׹×(P–Õ~¶ÓY½ŌŌŌ(¤ÕŖ£oלkגŽŪį ßćQÆÜŁ <Ū?3ß ”ĪękŠlé@"źåįź÷;ē’ó=ź”ļį«{ķƒBčźXĻī‹0göU7ˆö«¼ķņ6׎ķA1wļM EóünX÷V¼žĘ„€ūa­ äI†% ]Xō ½KŖ Ł.Ē (^?”¼8’œ?8ųy½ ųLŹ·üo£ĆžT1<žsWž©I»įש択ž(śŁŠ^öcÖģń .ńųą"÷—õ§M滢@ś^t'nżč'ZR#‚“°ē~üMņżÅŽ ™õ¾ ’} żˆ}>] 6÷‡¹ŗ‡‚ö'_+-'éåŹ“ū=t!{ W©ž•÷» wóź; ņ`“¢ļ@ėĒGéŹXī \Kõ*Ž£ųPā±õŽ·ļēģč Š$āiBÕŽŃ”ć2ģ3ė͈ōSņwüyļ£jæ5[ŹĄ ˆl Ŗ‘[Ź×©L9;ŒīI"@|tG†[>AĀÜ9• Pž ĀÕ—³ P{¬ E„Ł1 “d ąT±}Ę„V°#!Ī"#ä»Ė—®æŚx„ū ĢźS)’“…5žU’”;‹ų C¾É9š†U¶'P…„1Ÿā5<”ZÖC‡ƒ„EH>ęC^Ķ^<‡j†32é.jć;+œ9(¬„÷!±ß²(ĖÆŲ8¹$«3.ÕĎ5Xā6;”.f7Ž'>1r(ʆ)~Čū­Ł4äżßjõ ž8öFõ²Ę i k»ŁŖƄ"ՕO‘Æ°Ų’ø `4²”ā ­ ©N Cßg€ÄD|śŁ ėˆv|?¹e×¼Ćņ<§Ø  ×?Æ ŲåK·š”O ˆQü{v“ż’ŽüuO,ųÕ: ō7’˜õ ˜<üNn4¦żŠŌŪśÜ”‹üØK곆“ņ7·ĮėČĒēŽ å …hćr©ćMPā…HČā©ČVęV,ėĄ8Éģ”Ļćź_ƒYč&ƒÆēT2ŗęÖFę㹑ݪÖ2פ¶Ų7AŽŽvzßż"łŚo¦SŪJÓFݤĄDą>ßåįjm“ä>s’ė/•ńķR$ąč+IDį¼Róܚ7Ū²©£ŪYM¦Ūw3zŁš„œŚÜüćŻQcąč˜ćŽĶ聧ķĻ)ģĢ®˜ė¶°³éķIięrĶŃāĖÉÜmŹĖŲÕIÓ×8EĆŻt³čŠ’^ōž‘Jü^hź™ Ü=Æ ±Īm ż3 xpsƒšP’ń˜sŲ tJĪ€ŌTćČ”9{3И9ygĄ4?jłõˆ `AÖžłXƒõOZķ<8ņē"²Ņģ©ķÖś\2G½ż’ C¼½ ¬o¹ ‹D‘UŲ"öX5»ģ½Ó“ź'5 īĆŽńĮk‹õÕ~„ų@LÖłDyŽū"÷f’÷‘ģ5ļEЧzfZٌö׬0q±ūˆK3üźĮrŚĮü¢ ńFd9¹Āt ŒQŅ ’¢Ž ŗŖRy$4¤aš $¾ż>łķ›²÷ĀĢ3ū3XŌžgŲJżLīśł:­łč£Ø’±ōZ|+Tf{³ 8»ų̐vʃ uM:Ö¼*ĆÆÓ;UŪ Åk*!“ZÜ ž¶SZIĆ=EM vĢ––KC%(φ%’9V$Ęō£Ē‘Åv Y'O’öņ°ˆ/±ĪÓļ“žŪą£#Ų#ōf¬Ģ&L,>ō5Hń½E>Ó ŸFXęew’š¹ļĒŒĆžšžtžœ¬1ģŪ™gzĮ„É=’ŠÉŠž ÖĖ: ×üäüģ7Üś^Fķ·L먢ćęh [óÉēåa„īęƒCŻŃCĶ’RŌŅqųäÆ5]ŻįēĻ1‚ÜMč äaj”éó9Üv®ŽĪmŽŪżYąęBŃå¾ēlōõśqao5>p’³h÷iś/ķ‰-ŅĻ›ŃŲt|;ÓøƒiՋӎÓąņŃh9ÜŻ‘O‹Ō§ĮŌŻ ¬Õ”ć³č1ķgī`éwé”dEć†>¹ä( eĪ "ŠØ%€ŠŚ8̾“7Įõ!“ĀŹ„8ŪŻbŌ)ćܱšį+(7ퟯėųµø¬’å`\ĖTx1ƒ©ˆž6I pĒŻõÆ5ŁōČ›ÆŒžś˜BśéŚ…ś4­šö#łNü#qśŪĶćV2ZēNØĪ’zkBԊł—ĘS(„¤.ņŒcÓł­)  éĻ 6RŽ)¹ż`C śØ3æ‹ßŠ<˹ŒQ~Ysj¾īń('Ķ©=/™.ó+ŌŁ*qß# jš„š:Z.#+ˆ¼c0Å&ŠB•äÖ>Nxė*]¢!Ø=Ą hetZ"ńdŲ m‰¬#L~ś Ē(!>"$`ł"QØ£Öa ²`(ŅPĮ$Än#Ś÷æPĀļXj\"ŁįQ G:+)Æźš*g$æV5%ĪŽŹ#ÆMā KŁd#q"/ ÷1-SĶɆīģÅĶ Xņä[ź9yÜčžŅF` öŹ ßŠ€ a]k ˜$¦*æ# ąūč“¢B‡'ŖHŻ @ ÷“–Ķ ‡ź5nÓĒh#Š€Žkq†ĪĖ$aĆŲ˜nÉĻŁW²©#NŚEøł4Eųˆ†¤ūÓ}ü–Cī%“” Åą¢ÓQ?]PR=Šy RJö īÜpˆP$»“׎ūbÕ®µ Hśdb=IB„•/?.–/7_Ø”z)°>›ł%NEņ¾TEļ{Ųģč>zlźÖø2óœĖžŌr ØMWsūŖÄųĶ—hō©ÕŁę¬©µŲ!£.Ķ„ŠĻĻF2įƒ€6č|7}ćķ“|īJsBų²³Ü0 fœC #©ĮÓ}‚šŚ†‡ĒüüžŅżĮÕqō^ūņņó(“.’™ L;Ē×$µų8ĻViå2 łÄ;c’x|ūöxźŲłü]ņ•!Óź¶«qńŠśöÉ[ūH0Kķc *q7 eži ĶQ įĆ¢k ņOT{éš¾eį!Ļ£$§]ä$x‚ĪĀ 3"K¹ęŲüøaųE{šN.#åu 6ę=N]ė#,ŻīŚDåƒ’FŽžĶlG ÷”mļ㯪äŽóŃ  ĢwUō™üŚšO•č>™¼į©¶Ų[4ŻÉF¹ęb^×ē¬ė«VźvŅåĆL\ßÅčŚāł‡ė¹eńč}ŽéÖµwߝŌÄÓBĒLqāĒ/ø¾ »ʅ©Ź“;Ę> ŠĄłęƼų2ĮŊ§¦ĶĘt¤ĪhĒĖ»qŅˆ{ėŁ˜zŚŸ}ŻüXēŌS€1ÖF2Ķõ ÕĢvn»ŁY¾­Ūå™ÓR}n×ģŪŻUÉ!ŃC!Ēl/ĒĒYŒĢŻH3ĢĀt×ŅcņæÓ^‰DÜ«f\Śkįßń^ķd|ó·.˜õH=īŽ}ŸāVō)į„‚ĀĘ śŸ²„9h®„S©²A+Ķ»SQĢjų­ŚXbćépš“š'yvł Ėcżmåæzcī¬Ū³“†Ͷŗ„Š öē7 ’¦ -är"ńó „”ż*R9Q%>b*!¦—PlP 'œ60t… ĢĻlvŲ›ŠsjĀ=Iņʁjī0ńų[lØšĀ!ō„Póéō-ö’­éŽØń¤^ü­‘-~5BQģ¾āC£X„“:+ ĮmA0µ “u¾D$_¶. ’TfCŸßėŁ=^Ź9ī©faśÜ‘Õf5qPürØ٦U ņd8‡źĀĮ3ó«Ē¬ł§}?v4Ēä„’õqŽ?žū¦ž“M8ģˆĄż–Šr@åČĀŹłÆfūn£ŸJŻśöąžÆł¦pņĶČšNšN÷,ļJū˜É8ż(ū *ū‡KKś‚+züć„÷NįņówŃPń“|µńJ±mź/‘–é—š²ļ`i-īg¬ęīŃ.büóK ¹’Ī;#“Ķ ž8.Ā’É :' b‹8ŖŚ öż;)꓆-½ ÖG“#®ŽfD%Īų‚ƒ;Õśõbmˆ9³rŹdŁ’ÕŅy² wbO ]hł^¶Ęńrä&¾R°ˆÕ-Č šµH³IlŒŒ!Å®vp€V$_¾ ©™ß!žŻ&¾ć qĆ(.ųg®÷ƒŠ#lż_,µg0)Oį5·&ĘŗkĒó š]]F}Å­K NŚüßĶ:ōē’śńNåéŪlģ§¹ŁóÄZś]I-÷ćNUņöĄüņ»ŖéNó:ā+źåk¶ņēßћåÅHļ@! ö6 QšJ½ķ|tČń:Œ­ņåōoūI®¦’ķųü$.L<2ƒ†^ŠĀŽā°s–³¾Ņu>DūŌYż{=SkFž‰IЇ[Šųl5xż'bü@•™żÄٹžÄ—_!!ƒ;›!čēF¾}}Y$·¼*\A F%f-H¶eÉŖD(Nwœpe{jāV>ß8 ę‚Ģ­4*ŖDē čIˆAL £²¼ƒ¬Õ]¼•3.*š|0×F‹-@+%‹u¤ÕĆ!āb¢ }-5 õb-ƒ£ū_¬%ü‰¶t~ %+å(e ’ ę įęWG8<<¢³’{uqū§ī|ń‚įēź‡™Tč_MÆį4r%ÜØjnÜūÉžŽ‡‚ĪåźČ·āχŚÓ“5Ū‡įM¹ŻÖÆµĻżx”Ģ»c'Ų”ørčĒf}ģ³õź)ÆŹė„Ņ]éOŌūźŁ§ īäŠĀölŲČž¦IłšžŖļō¹ģüŠė#¶eąü„ß’įqęj/ģ‹Q‚ėÉčŸfēåoČź`†ŹõĀżū[^¤õµ ›īļœć¶Ū”žŌ8™†Ńģ†Ś-­ågĘėL˜łīžŠńõŗfäųCéøW4SIiBéh vc˜$†€Æ%Bł#d_^$ļąT&§0 #öZ“„-ģŽ|ĒœŲzÆLµ£žæ–Rłb[#Ō“0M_o0,W0.ńaĖ/*ļ#3²·.2BAm,ư] ”»ĄäkD°ydØxŖhhhØŃłuŸ”6ŚYérÕf›BŹĖv Ä(dĄĘ ^‹Ķ[ģŖŌ(äĪą½æėęWĪqéü#WģC¤éģ›?ę,ĆźšĒ÷éįj5ėlāz Śą[ĖŃøDÅĖɓȚĢdßMטĀށ,÷ģ„)Źń‡įšäWęŽm†ą|ĆĘŻiŃŠO)§Ņ °źć Wčxś®ć†Īā>0Õā#Ö|ĢqĖ<ć‹É…CīĢŽÓŌĮvŅŁ2«WŌѾ3ÕwĒŌ`×›ĻŁĻ†ēĢ7ĢŌå¼ Ż"«ŽJ –āķ¢ŪN„–Óci[ĒŽ]ąÅ÷šŌĆ~)ČAnŃü§ĪÕčŁ¼ŁÉßhÓŽµÖ“ŁLÅ “į¾ļĻÉż‹ZĶ!¼ēÅČ~ēŹMl`ÖqŌŚŚ¼pڲSlŅeä}Ģõų”Ņ~ŃšŅ“ÆāŲHõ©Ū¼ćvß.ÅQēŌQSį/¹xą7]½äūĖ¢ćO”`ęl¦ÆäŖ+°źRĢī/µšŠJč14ŪEĻ3ŪhTŚ1b)ć;ź¹į–÷šā—öę~jćuĻįŽBŃē?ø}ķ Į‡ļŠBńsÖ8ū™e> *; cž1Ś °įIÓČ’tą’²ŽóJ —Ż4į˜a “ Ė(Ė(“ą }xĪZƒš °kń ~GüąźO’Ł&Ć„fšƒž~ģó(©čĮ\‚Ä‚e3Ō7¦›ļĖĄĘU^’ Ö[Ż­|óWĆĜ µ#cT@v>¼=9·źŖæÅŻl@<±S?bC(ēD•#lgé#’oF\.L Ż—ž4¦Lž5ĢĆē.D¦ŽęRX÷. īĪV5ėÜÓģ·^Žķ0¹ö‹PdEź£aƒ”ļŅ©ūķJÄ*ø­2A’©GžS&3c^3H¾Ę33ŸŖD0 +Ÿ:!JĄ „ćŖÖńš“)ŠsŚ+9.¼2X88Hūp?Łj'9Ęl¤5q!’-;Dd'ĢqW$ķŠü%.^.įņ8ž@£ÖD!-µKqæ•S=˜äW “U v¾OB÷bFŽ`7 0& ZL ¶ä˜Ė' m"Ōb8u.œõ= ·=„ŗå¾nŖ'•¢ ™S&'™ĀÖ#Ü ›z雕K@tŪūŽCwśßōś¼$ēż9¶ū¢ē~€ģ 1ÉC Ņ ¶Ēˆõö|¢p3ülJÄō)®Uū#MÓœ=w’üēŽóć,š™ÄĄīž©©ķBŸŠėØÆķ¢XKš‹Ūėz¶Nć]“ä9³ź@ė–}„īuNńĒԚņ  ų»5#ūy¶ŽōŻ©:ģ8ć*źµ!ģߒšĖÕOkŲń‹6Śj>כŅ×ĻhĘŃĘ“e.Ē+½ ĻĒ=K×Sźšęż£2óRZ^ųņlßü E„’ų©ĄūŒ”—ž©ų ¾"Īżļ\÷ZŻFųó”BłņvNõd ōā*ÕóÕ kó ]ļļžŪ1ó™ėBł{]ū‘£’ūjE¤ńŖē( Rći~Ūć:6ėbP˜ņXfš1ĖĀō„Ń6žWU™hē;"4ąp±Ś]jcH—šŽū³}żGŖū|Wóć^cńd¤š†7§ņSŻŪžw{4¶hü’ö›”v÷µ‹ö lģÕ“ŻŻ’ü{Ū'E»įy„ƒé¬÷ņ·'ź÷°ż¢ŠöšĘĄėƎßć&Ęģ䎊ļŹĆ,šŚ]ĄåHōKŽ‰į”U÷⬒‚Ž:@šŲ~;Ö£Gbِ­nŲ¶„\Ū;]„ß Jß'šćÜāÅjį} #ß÷)Ü5n äjf@ėłœµźé`Ńė€xōž}^÷(žgłĘH~ō»‚ö‘:õõĘMš -°š¤ $īē¤1ę_łÜż6Ń·smĶuréŠŅ“Żdx3ģ“ÅKś÷į9.lTÜ30=!-¼¾ŗµŃįł8˜yĀ÷| =­»žų–Œ īŲdĢė®ķė7õR'żDä ²j\q&'f+»Zo$iŃ]$<^6¶(„ <ŲØ-Å;’/ō×x+2v(E»åt·fƂø‰“ż!…»‹`KŹ<€āĒ÷¹¤ &&.Dq٘“] Źõ4½šD:/ōˆN÷śļõüc­gžŌ ÆöŲŸļ uCę’Į·ŁūyėŅTxŠćgyĪ0CėŹč‹¢É ›ØĻ<«üŠl&ŪH+kēąrSķ½īć=)õĀe½’ó„Ƅ÷/T%ēAęĖŻŒ‚‰Ü¦YŻ“!¬ä/”Cē\m™č3{Žā”LBŁÕ˜Cѓ¹›Šx0!Óz’"×ßϬŠĒ,·Ń* (Ųį¢ŽY0ōŁx§"Ī5A©Ė Ļ˵Õ°'ŌĒK«ŅŠfŃ?&Ģ&Ō+ĘU¬.Č»5Ė©~Ńų'vݹwē<ókīš‚ņ¹Œū—#ü./ƒü …¹žČ» ņ~u„Y˜Ż+čµ yöDū”äÖą÷ŽšŃõ±-+’1ŸćŒĀž CČŹū„ "[-$Ėó `˜āĶ>®üœ dļb£‡ T\D•’c ūųjÕųR@õśc!XžŖ SGӏ Żg³±¶J &č/i(õ1ĀA,ļ߯&.,O*ƒh9Cœś@ē¦;>õĢé5±ƒ-6/#?( 鰗$ž8.)qš6ÆĒM:ŁŚ°4óĮŃ0HEb5 ¹»2ļ `'q'{"4t1!Ź$0•G)Ÿé)GØ:$˜°xü^ 9Æzo*Ö|€ą•?Nņ[<‡ś7y^ģ4 j&bā†.l,YSw*'‹ć+_-p2F×D6­MĆ2ƽī!äĶ]d€† .ŁGIĪ3P ÷÷†&z[ĄrŠ īWYl–š‡qŅSV,% ž)ŽcŠčDć[ł [āƒžØ–®… ĀšW € Ż ?» <ĄŖ “Ģz 8מ fĮ) łüé 'Ł[ŒåšŠšlØ]„Æk®t ŖÖ‰ F1«G”Ū±\0’SšŒ±bhĀ4ž VLw’ aOhū Ž^½ ī/’ ™ÅncÅé½ĒAæ[Źb=1brwFnø«$`%ŁåžµJŃńœ_åX–sąŲūĀįX>ä³zė£Pó·ŽÄūź˜#Ŗö)æŌ 螆 1 c€f›@ūAYMü%IoÖX„)’øųa1qõå|Ąö#B£üĀ“z­ŠW ·āf[¾ ”ݹEĢńNč%ņ(˜ —½™£¶v.ŸSĢ’X[ł—ČXó†"a*å! sąG äœóåaĀć µą@]Üķ‚Łß”ĖźÜųźś‘#'•"—<&f7*„÷*Ā“Ž& §Ÿ%›kv ē ņ„ĆCÄņE $ }O Ū;4IŌ-’µŻ&õŒŅ”ģĒH·ė(gģ’čĮī‹“š©Jģl6nģĆxńmį]ó/lŚłÉ|Yž?EĢłČ˜7ś™õ’Ś)€ų¬e’©¦bž™IĖśĪ“éóč'š’“.ō‰=łö­āš÷čėļõĀbŌļJ8Kģ‹Ž\ėŃm±å24ß6¾ŪŽŽĶą6N§å\”5į#18ÕH–+͜q2Ē‚śĘĆ/Ħ­ZÅÄšŃ ĪĀQŃ1AcÓŽźįÖ¾MŻQ-²ć@Udć`¾DÜCÆ·×iQrŁV¤ŽŪė:ŪĻjÖ”{„ĻNļuĪą;Ģ"į:ĪdnHŠ]¢Θł¼Ń³ÖI×Įē·×ŗ½Ų\eޘ“0ć6zįhą#Éä8…lź’äļY Ļń­˜sųć¤÷j>RōįÆ÷ķ\T°äbŻŚ-;Š(žJÅBÜGĆDÓgŀåń̽6{ŲUĘWäŪ ¹ėļß6ōAŸüŠQ"łÄü`®.>"øÉO*ęäH GW„cųjž ‘¶ś²Ą•ųgź”żĪ° ”“TOŪT#ō¹Ś'-zŹ%«?n%ˆŁ=WKT}Ȕčz¤z"iƒ0įžÕžį‹ ’ūc6‹ņ-¾é”䂣=ēĒ×$ģ"Żūņ0¼Æżō.x?eMFAöÄ"ŪżŌ8 =׎­qpµ¬ŹÜŽ Wó“üžPæ™ü'©0ć7ęš'² ›œ Ō Hе>/ QK‡åöµå.šž|mč+²:(thŚTłÅ}1Üø©†$ü {˜ņā] ń–Į ōNŒżj›0ĒŗY !ģ_ §¹q ¾Ī 0± U!øū‰hż-Ž‘@€śąī±U`ęū|伏¹äńšāŻŽxŻT­įI{ßé$z¢õk‚|JU ĪŒŻj Umō"Sk~»T­(ŁmšŠ]ėŽānFoÉ} Ž@Oi_æźż>øx"üÉkĒ®ĘXĪü -Š| ćmX ąD4 H{)¬šž®,üN¬>gIµćčäĀžŁˆõłó›öa™Ļō\tü9…k qFkW0N$1^.)¤{5'‡‹4„×3ŗ¼·)ńq¶Ŗ –}IņQķʙˆ” ś„•łcN3īe™_éMģ×Śō} |žAs€·ŽśKŠ÷@®Ųųķ¼ö;Sńń+CķøāĪé–ŅīęąZ©å@…»ēī|šęŗv įiD,Ü()ŚWŚ„©įŲ™ńßdiż³ż¾Žjn ±Ė« °Żą ĮD"ūX6ą ŁÆ l ł±Ł„yl€+@ķVüs+ŗīåŸ^ź§Äķ*ŒWš }‡ōčGž (_”… ŗĄäs²<§XoS-+Xi9`'U’ q–U ­ å Åǖ€"- ?,Ž«ZnˆņŻx7FŹS^JĀ„ äµx !©ę/żzµŠŪØ ”Š"Ūj"Š>RCÕČuó§#Äė„(d©".±.1īåÜ,™•#”īŻĄAQ˜Ó=ŁAĒ.zßt¶Ø]– ūü‰Ż_±ŸŹžż ģB®ā¦­™Üü”•Rų+ÕaųģĢłŃ#ōŗŽųéąŌą×„ŚJ¹ćÖP ŲO2ŽŻōüīā_oågi–ę ī»ķ)ō„mlóÓõź’£Źįī‹Mäķ’īŠšˆōK"õĖżöˆiqõ5ÖóxaōTBŁõ*Īžųc”y÷ŲKļxŠē×{ā£Łą[«QćģąĻč`į3é¾R“å坔ćŪ×ćų’#ęvaéLG ėiÆKč ięėMęQ“āć‹x į~¤ŗŽĆCvŪŠ³ŠŁn½ÜŸń ē?Ōüōhµe;Ė !yŅ,«ī/#ē”N'øŁD&±¬r#ƒI!”"Š‹É$WŖ&ī’Ž#kīj:zĆvé4ü’`ėrH-ļœŖäW’¬bęę‚UÆÕ8ŲĖŲŗ3Ųčŗ•9’¹ä«nĒ$õ}$¾)(ɐ–(ž"$¼Į !³5G#&z[$—°i(Ʉ-Ą,-ĖĒ.šZ2i$1(F2i&58ć6ĪéK6½v×1\Sį,;µ,Ŗ- Sa/²91‚Ž:0ƒ¦ /“<,kō'It$"®„"č«d1äų7½ś `£ęžŽqōąßżnƱųߟń§`ļģėėCWjņwo°ūE4ųÜKTI~26[]Ā0`±€ŖįW„RNAžV™x|JØ’Ż‹ų|_ōģK–ąįx*B×yÅłĢ -Č8>wÅÄćĖ f9Õ`öŚ4omÜVEMÜŌ ŚæEŲźō·Ö÷¹Ų®Y5ŻÕŗ~ć~ļ6å(kåI†wįĄźŽuJeۚ„XŪĮƒ“ąq&åM,āź6ō·š P„õƒ[7ņśP¶ź,1˜ā%<Ż4¾ŌāeμCÕÓĆmچ“MŻ?; Ž”(įŽšC£Żc†ŚŅho՞'Ö%@(Ł7Ӟ޶Æįqovć¼¼[ęĶ»Mę¹ćZŲÜē0Õø‹CŠåq5Ė“šĒ~Č–ĶĂĆŻ=1Ē““ķĢO_‰ŠŖ|O֏wÜŪPžīąĆī\āƒ“8āõyą’l-ܼ@ˆß˜W^ß7’7Śa³YÖTĄ,ŚqD6ŽĖ&žÜ„dčŲ•˜,Öcø9ŲUąŪĂŻßš!óä/Pźē3ę3ķbī~’jīŁSļ¹ūŽļHĪEļk}ŚźH8Żå&ēąāƒpŠŽ¾ļhŪ*Ō·Ö×\óŃ[žĻīPżŠVÅÓb–֒žŪnm¤įń—øčā[ßš'N”ū k“hė] +•Ó ģœĖ s˜ō3 ŌQń”–ŠŃÓ& ’z1ž ǶŽė?yžų^³:˜ŸžÉ”7Ųy–źś)=ų’{ųö&ń÷|łBž·«Éʊ{]§.j’b8’“d]»źĘ.’=Źæ y Œ¦Ų’Ļ”p޲J€ņ|¬b外— ”īϰ…ĄėIp_µ&BµW'.Ģī$`ż%¬%ŗ5& Ńč'Į(V&9x%3øD&Ķ£;*Ųnv2y 9¢zū:w4å4…Ļ_,†Óø'M²™&• #h‰óĄĘHnėAŠī“ųiĒĢž“”~µaM[Ž ‘.HĢl:ˉ,ŗ —|Ą%V*G)A-ŗ£ó3Wķä;/HAĻ9DGé“E<ĢōD‰”{AƎ†>Lko>ĢÖ?„ĢC@Ķ•Æ=øŒ':Šßć6yr73=.j-Ōyę'xéÅ"‰‘)YLąõå;}š@³±aAł 1 \ŠA-> "fS Ė×ˆj/€œuķ8œøćü;ƒ.’{<ß? ŹN* ų ŚlÆ s៪ JfĪaŻedøŃ“ž” ć½cž żƒļRń¦śĆémnėˆöėš<ėxńĢż%ļQkš¼®ń]oņ„ŽĢō’˜ųMĢūēžū¬tDłŸZ)ųųŌd÷ŃŹö–iCö×hIó«Y ī‘ēéżą–~+ŪŪ¤äŲ’ėÕŗę Ó$h3ÖY±JŚŽ3Ū%ŅąÜ’[#ß}Ö&ćd=:éaxgšBł(÷ų’šŒ_Ć»ķä5e¦t>łAR?/ɬʁ<¦²P" ßƤņŪĆp’ÜźņūŽh)łŠ}ųæ)õR<ÆšWLÖé̊ĢįdŪaŽ#>‘ß(”ć—–µč²…MėA‹*ķ āFó}q“üܜwŹ» H–ǬųfŽĄvķ»×w =¶ęŠó'׋ȿ/„7üļ>ŁūĄ‰kż5™oż”Ü7÷ŚŚŠļky č%Ņć•5ŚŽU8ŪŁ’ĄÜS€Óāöv«čh£øķ½ćōńŽŽõ½÷bØćņˆp8ļńįķe»£ėqŌač=č:āqŻ!ÜG”ŁL h؃jfÕ2šRŌ‘ļŌQ—\×ŲĆŲfŁ|Łū#ßt'Cę:sķģIõŻlūĆßvüĀ+ŖżŸžäĮü^QĀłźNRų“ż™÷ŚóŠōõ$¹ń”r`ńēLĖō dMō&ūó‹_ļvµź³ĀäĆĖ„ŽŌwŪõ@hŽĄŅ}ć›QÄėBšTōa\&ū ˜®`ÆĪCaąoė`s¼ ø?NP£ x6‰ÄB Rϧ®V¾š³šzq†Żfó’Æ„cģmPP Ѿ- 2ĢaTL3ķ!µ\Ņ#w9!įēĘV„4C6‰ĢČä'¶½’n=üĖ|ł,ÉĮśDTü†?ZüöKŠśn=ó9ŹźšGŽÜ ¶ÕHÜyӗĄ,ט æÜ†uć)†éĻž9ļŲlōu¬ õvŲūńV"īÕf6é©-U⹜Ż*=ĮŚjĶ|Ü RČß#8xē’€Ģéex»å-¤Jā3ą™SܳC×-0Ó¢?ÓmÄŚ€ƒžąB±†åõecčØ%ęōĻą[bˆŲĀÅśŃt·–ĶuJ1ŹzĀĒK«ōĆī@Ću˜dŹØTā”-RęX¬(š^ŖNókķxųJļZ±HįŖl čbbÖń¼žÄ pōŃŒĢŚęt čįo cģłåć–oģ{ūŁä0Z—Łw‡źŽŌŪŻįӝXņ¶"(š4µÄ»…§ Ē£ Ād ŽāŻUū·Re(9ȇŠśŹ³Ęōaī®õR­÷`éY oņoĀå Į™+=×7 ™ ūo¼¼AØ ØōÆ_u¤ī aŲqž“Šł ŃÕĢgĒ^eĒxÉ ź=$¦lA—[Oąķž<§‚µDņr0yõqW\#=Æ0ļNÖ8…5%Ž*"mHüi搒g'Į~ĘėŗVą“Óī‡Žī Y›AMżyšWĮ¶čä*ĀÄŻžß›T_ŽrGĢ`”’ƒ(]+ł2}…cOŖg@]GK<…Œ*5Č)n%i'*ˆÕķ#Œ«tÕj§žĻ[z."IŹśkō{  6p»d®Õń¼Įˆ.(£Ā]!ģ²ž~7’Q “ 6pHPqó Z[Ā^j±"›~"‹¤8Dæ”cvųB2œ,\Ą<ēB½;$(3ƒ³•/a½'¤†¼8Žņ–§„ÕŚć `$‰žĀ– %·ū˜˜+ßń”,ņ Ź#Ą`„(Ci,āA&Ėųz+cĻ/+vlw œ3Öżō Qś”s‚ßԘxÆŁ“$x$ „‹­2į ßBft3 Ó(m PjVõ^¹ŒZ*ģõœ"éČ7/Č'„.©”8Ņ™“3š³e K‰Ų]<×Įt“=lū:r4‘‹”µY Ј“µ|O =› SN.ņZ3F ō€ '‡uÖ]ŸšŹ)×[&“ įm|X˜M h˵æÆ Śi謥ĖÜ׈ °ēdaŹ( šŁ¢ŁE€"vGr?{Üēŗ †čœ™•ō*0$t*Dņ)üs0 "ŗ*/ŲO-@†j,-_ (ėQ"Ū;~N#„*ĘcÉÜ[$Į€ewŸYe“ļ5»Éꔆę䕣٠räϾ½¤ŚZŚilrēż<ńį8 iFO½ŽŪ°iö. Z×P!'ĆŁi ӋL’»hŗwƒ{¬śŁ ŪõŸ,”ųdĒuē'É½č’ šŪÕWVŲļńiÜ1«NŽÕ0Ņū£ŁÜ6>č_ö½ę”ŗ]ļŽ|Ņė’Ø—ē9—ꎐ€ā(^&ŲFŅ>ɟ™æÓ”åŃ udĶ$®Õ™xŁž pŪ¬*ĒŁåF+ŠŹ'EĶe„ŠĶDWßŌyŠšßĘD­ę†ÓLėH^±ų~vü³āīōP"ü*Ģų~+.õŠUī-ÉšEØģCOŅļ}„Nš4š€ņŅD\ł/ eņ§cÅ’\ĢT-°»ütTĆ’Ō7,ņčBćų@ē¹¾ŃŁ~00Ų±įŁņüĒĘ`ŗD†ˆÅRU3Ó‰ŹÜŸÅä·jóē|ÅŅō c¼ųŖ­Yóo”­žĒY”éĶ;łENŠķčc.ĪÕ¹cEū„l÷vķŠ÷„ėüv»Ź‹ bk X"éß5 x(ö­ˆTżXĆ|*~ó»¾Õ};łK żwičöŻł¼ßķ”»ÜśÅŻfRÆŻźŹÜ†ŽŽÕæ;"×\BŻKv«ŁÅ°ŗŪEŚ-ܹ ŚĻååß2•[öbÕ_śųõ.£üxCµ&Ż©üN®­C µŠļ^“P¹0x›9³¹Žū›UÅō¼m/ęø~ā®±ą_vÕ¤‡‹ŁQU0ą¾ōxįźßGęk» ņO_ķō+48óy%ó3µļs6™ģµhäń€0Bö ”ų{$®ņÓĻņ«Zéģ;¦ķ•¬ öb¢ó5B5éć7ćžQŪx#śŲN§³Žģł‚źĆö•,øń)`\óS-±ö£«•iÅ åN:ž#xjqB wv* Ž’+ ™łĆ® RŌ „–E`ųĒ6ń^ļ{Eæāo«ÅäB}õēqż?ÖŅg‡ōβ}ź‡ė“ąnø^ŠĻåsξ1Ó(YŻŚžx;Śd—nל?×f{āųŠ*ź0ŖĆ󒇗ż62¦õäEī/AėÓQ?īŹˆÕõūµÜ²Uū*)™ž“»„ĆĘš}Qpƒö°3£įTg—Ņ˜ŽgŅ2ąįƒ†&ę% OāŖ|Oą½’@Žd”uĻžvÕŲ„>ÕÆūIÉ¼ŃšĢ¶GžŁ»­ŚŁ=*ĶŲ½Ł<·D߯#Ü ŒĮÜr•_ą āµć?®Xķń~måĄ%¤×&XĀŅ®\ŚōT:Ż„Ųć€ę.ØŪč„õoé—#ĪŽˆaņą£šŠęŸbęŽl_õ ö{ó• ³ło[Ćb ņF` K/«Ü¶ōÕh°ó±¦õ~¢ĮźĘfź —źš5ū’ņåõBõˆUE’æž~łMƒĻū•y-ü$?łŁ£ĖėćM"čD3Ääė­vēölŚžgŽŸżUcļŲ ģ‹( @“#‹Õ8 Ų-Q#"-;’k9 yU›OmHĀ ±ƒ$°|j-Ö­l+žüęŌlŲŻńŒ!į®0"ĄŠ…ø'#R$𺤑ž[@–°_3 čV Ą2™Ą1ņ‚Į" ļ4°Šö™ųÆ7NóÄKń/zyķĀ L5Ē€źĖJ˜C¤I ¬“Æ’Ń>ü#ü&ņsötäJ™ķ Ć3õ§ę÷ó"ŖpšŹ„Kņ~gņgrTżśØæņr“AšTWņÉĀ ķåPöÜ£^1Ū»™”Żš²däjÖ-ó›ńż7sžŃŜūyD ’¤0vMō‚ļāŠyćŻ£Dąx®‡ę,ܰéW4šŚ’“ōISōEøČM/]±ß† øIß7‰ć !ĆłEyGś2ĆōĢį‹{½äéńōÅü­÷›7śa>K#ehŏu €…>’ĆņķJ5 ŽUį|n·%h·‹([e /£L,¤ā25ū][-=õ%Č×~GQžs! ~é²(3ģ Ļć;^gnA—Y¹ ½,¾ d:‰KŻ#G4_*“m#Ą¤Ę)𩢂Q€)ټū7;ėö8Åv-æTÅ,jˆ4Tb0f~,a‡kÕÅ4‹ŖRŠDņ2ōn®Ä_&ø¹Q.±hć&”qī&³Ā_)ĮĘ,€Ć.ćŌ·bNĀ{sīŽ!ü‹!#ė)Ķ›Ž ¢R½©Ģ؍'·’ĖśĻzÜĒUóŅ,Ų©Rźl ė\’™¹ \—8a‹<]ū×čŽķžĀW“šsČŁMē”œ÷](+4TÅn åӜ āænū¾ĘćõŅĻŁöwšī[e(ļJ•ō±Ź¤ö[‹ļž!›ą;2]ŌÓØ.Ź†šČp_"ĒŲVŠĘrśķÉÅŠX&ŁŌįĮą€&ņ›Õ ł{üQßżŠū S†ÅŒĪŲōĢLöš‚ŪĪäĪvĘēIc£ł}ŸÄ%Ł©ąŹ’Ļuö uŅčä°.įńRbāD%ęBź^Ź"ģc{į道ć’ńĻĮöÆxóAčTó©‡tōTRńńvĀēūU½įčaŽ@-ĆĻžÖ'ĪŠuk×ĮHpŁZ”%ÜaŲ”éę2•čļ Ž+ Ž4›3ąPWPį‘łź’W ę5 {ēī:ķJ œšeŁłØõ’ņ_”l©Ź%YŻóU^»ģFń¾óāRõ“iöbѧų9&ļL}ó>o÷t"†ōćägųĪĖßöæ2}ōųåbTē€~†č:ė[äbĢŃ܌8ŚümUĢfyÉÅ«v(És¾ßĪ‘R4Ļ—eČüsČÅuģĢż×!Ō»lÕšČ#ß܅ęoHÉģšÖ ųŌ+ż>‘@• ē %p6īüÅ?ülÕĪü¢Œ(ō›‰“ėȄ;ßņÖBBćŹ³µÉŃaŹĶńÉdjŒČĄe$ĘŠØ½Īś“¼GœĄuŲ¶£]Łø,©.Ås^^Ļ&KvÖ"flŻĘ¼}ߣ¦r䟜6ęņä±¾żŻ’ØŌäB€āēĆJįĆ·ŽŹōŅą±žtįēŻ¶˜\ą@gÜ”k—Ų™ŪŅAZ ŠĖsKŅ„TŚę|ķåxęę8 šćŠ–ė9„Ōņ!ūÜ#Sż<6†ö!q-ķ‚ĆēK÷ÄčŪ”Pąž“ˆßćģĖćōOųŽ+Śy`õŻIApŻŻtłŪĖ„ięŻčėģi ļļÅģ˜[‹ńҲŸó™LżūąęA0Ę/&šŠķ~Į fTŚ nz 'U…·Va &“+ k­ ģ4B5’vŁÕ›ŽģŚĮyśŖĘš’—_p =' `  ģǘ ±D8Īųū&°šI“ä'AEąĮąqąę·ā¬=aė¤ūˆń[0Iō4¾ōĪĒ ńÆļ ÷Āsż¾Ą¦üĖ—’€ŸüõS˜©sˆżĮ |óO¬ė»䍳LćŹoųåw ~äŸprß4użŁ½ööי;¼ÖV8”į:ŠÜĢ0QXÆ(“t-%Ų2ķ1k6ŚīīyŹ›(’Ą޽~Į)ņ^„Ķ/Ł Fh˜ ‚ Łł[ ±ä (Ļ ©ÅTlęšæD$"Ē$TB)Ä.Ē 2åŲ4Šˆ *+ŪĪ$ É ±·*°134žžb©÷ćåÜPŲg­ÄĖ„åĆ\?/ń3Ļ=øŚ?*CRqCв V+P„Ē÷ź®ĻbŹ—ųüø„Ā•J.čx’•ē¦śüVøų;ś~ūÆłeż-œ‚›S UŁi ōf‚.Ż÷ ĖƟ&+ („”¢©¼KTz w8_īōntC½–^  ’-H½b`=r/Ų ÖE+iŪT6Ććh źęÕŁķó2ó—µń 8;ń‰©šēą_šī¦¢÷֐’ś¶(Ėž…:š—Ķ«õu=žV’{Ģåż7Jų6˜õsoöŖĀäö,œuōL!qōYņ÷õÜļ©–ī™x½ņõzõ>‘łäˆiś}Šņ'’Oķ± (ęīĄ’Üæ¶×xų¹Ń°Eɂ2*Ē$ÜėĢŌvoŁłęÖćDŠė>dæō*?•ž¦pw’a~žn•i# Śó’r %(}ī!§ŒÉź  Ō™ŲS8ŽD‡,• xĀmK„œžVS– /Ķb ä—!Al%ūµČąśuBų‹FĆöŚc ō|¼i÷DYŅūs„ļõĒtüč?hßY•"ŁĪńÖ_h½ŚĶžūްVśäęŲźĢ\¹é„øŹė„ē0ļA¶ńßEZł{D¼Š1›œą*J@›¤ą·I€?—nq&÷Ó F7 ˆ– u—Q ƒŚ’ģŪĶŚīõÆį™ķ’#OćČÉŲRĖÕ.×ĒRBŪÉ/€ŻW0÷ß!b āĶ·®äœG6čN.Bģ†YvņŠ[ķūŖļ0mīonŗ ~Ä^ ½% ]›¾x¹b ­ęäŽ[žˆTęõYŌīS;Žź(>šķĖ÷×ļņŸaéŠSAåż¶‡ē›Ķ¶ķHOFšVĻNī¾nłģŽæī ŗņGGkó*®śō³JłŲÅ’ŌxS…ÕūMńó“ųīXAbėŁĮ ę—Ēäł źhżšy·•÷.t?ųćÖÉö–øół()ė*ėuęc冊ēn="äkk݊Į؈‹ó×].Ś#įąŹ櫌qäå2껎®ę>ėŻė‡«–óąĢłŪ,ļūōd‹ž{ō’q[ų—Wü|“c÷ž¢īżäåŪYf߉=ąn/Xß½ėŽXµßŃ¢XŻ??ŁFēx×ʅнiĖĘó«Ó²_Mß{]ēœĻ=čųŒSć_?Y߬ģŚĀ”­Ö5Ę•Õź¼źŁ“zPįĄŁąŁu‹įöž]ā¹Īāg (ąs¾Ģߓ”›ß„^’ßēĶ'ä¼5Ąęł_ģŻīZņļ¾Śł¼Ė’·‘Ģž7굜q‚śłæž„jū  “ükśś†dDņų¾µīš! čJ1źįåČķķ źDōĖ‘\ū•Šl¤æ™ŗJA™i’[Ųwµ,žöĻaų#a€öuōB®Tś„K¢ż’+°Ü(< /Öoֈ —OśÆB 4ōŸČ.sœöDĆK+e–‘÷®į„3Ē#¬‹y"ŅÖŽ÷v²…qC!KžH"s/)#mBŽ#}¤ŹåWŌÅÖ ¼¦żŖõAķńŅ|w jD G4•€Œ; ĶPU-°0˜Ī÷~© ji# iŽī Š1ā’³`: ĒF£SˆmqćhöĮź&ģ;‡ģLVÜīŖ—ī”B"ļ\LŖņ¬®Iō÷(÷Tņsödā,ō8mßō¬Óiģ°'Gć…Z‡ąŗ1hāFz¤ą‚nåķēŽčiÉżźŌLėīśŅĘöšCõü"åüń ūłL¦ümø żu §BzQ–GĆ8»č‚\č é1†tk&x¼Ą 7WWl޳ŠRēŖł{!FėłPˆč¬jGģž.¾š‘œó„rHś–¹Ÿ’Ø®_š·DĮ{¶ =ø ē,Ō2bė}ŪC"I“"lĄō$mč&Ū†#Ց„>FļŠ=‰"B>Ń)‡±\1ż$3-y—1„cŒ2Qqm1¾Ęæ*%dź ³ė@õڲšxōRĘŗTóń]ūGƒ«• ušC (ĮžŸćkŗ"O›!Ńōw u”=—H|'Gō?©3våo'źO%ž~+*§ā`(SŽ$²N”ܜ{„•ƒ •' ‘˜eˆ`Ohųˆ¶"ņ2‹Ę0 §Ń"=Şī8qUē Ų†ź Ż' ”`d SŪ% „f%©z† '.Eż#÷7ųUÅZųz,õk0õ©§ öƆ śŸÓŹŃrāžü ązż³{Ό£pATT÷Čł¶šu÷źńö˜m$õżó”õ²Č÷@šR÷ pšėØ~źˆ]šåōAbćėŁŽ%Ŗ8ŲĪŻ'Ӝ÷œĻ@“ĻŪ>įŅuz‰Ż?ĮųåĢŗ›ģޤ9ńeģėņFFDó)xn÷še#÷Ż`’õ j®ó »÷UĆ'¢/Żt/± ŒB ”ćc½k›=™Č’_¬eż°ßĄś;lhņ™EĢä|‡ĄÜUp ŻrĻ6ŻĻ$¦Żo’€ą€å°Ł‡é›ļźżd·źnfźĪ]åļ†5ä).jä-²ā¤ēƒęņ–ī6Jäš[‚2ńųŽŚņyƞó±Ų–ōXŲö5ö˜uś·¾’ž”Fō5;ØWx’¢Żeö+:wļ”54ī ķš*¢%ņÜæĒō˜ Åųt xōĖ"ņC-€šĀŠģ÷- ė 88ėUYnéĘ¢ęXaŽēL«ŖéƤ īAšō¾³ļų_©™ūéUü V“ž>xa†‚§¬H ü¤R…ÕytƁ/ ’Bį²›­ePsé&ÕXęi*°ļyk é@F É~ :1ŲeĢč„ę£^ڊ“†'‹Ü’o®z¤Mwń ›J(śžŠ y'÷Võ&Ęm ¢ŃŁĪ”Č€d”g o‰g“¶"’ža’Ģ›K­|7ŁĀžSŌϽ"ŗ”£&\•2&a6±(Š”(Iģs$F 0-ŌīcĄäń z"čfį"zį$'6å(’ ķ%’µ" €4#śśĪž„Ü#8Cµ {S» „b ›IŪI^ž9§’žõ]LMčhL’ĪĘo“Ī”)“ŅUuōį‰)²qAЉQ&¼•ź€ngyĢ"Ą60)„æ§+l&(,ƒõ+ C8)L‰į&½n~%YŸ¤"ɬ."yž!"‘@$V—&4e'’Ž.(¬å!%._q@Ÿõīōq“·nf=®æę4 ĮMĒpƒĶ{µā®øŗ ˜  9\T ö” Hzp«2åĆß÷`ĆX"R¼O#¹­lė22Ļæ‹c.1Hiq²¶vjō*Ķˆ­š“3nę¹&G±KYŸø$D u;X~GG”ćzpÜõk~“¢>źxĆåõ|ė° r6Æf~Ņ™9†ųŚwÅĀø­ż«ł˜łL0v÷Ś`£ö §wōEŲ¢õ!ƛųPµöĻK6÷Žj½żyˆoFĮóĻož0÷üÄö~ūąūyū81C’ՏY&Ćŗō.Ā£FŪł® ģ b6źĪopX“ė‰ų;;ģ@‚BÜ@`ņĻ!cʳūÉahÉĶjÜŅ<Ė6×ļ9Ż`Ż»āeq.ä7Śgē¶fļ¢Öōõ‰e}ö` ōÓ+źņ*zń=KTņŹĶ÷ų…6°ūO­†ųĄ!ņ?ż×ėk&Ö譏ćē<{rėõ­ŠšS Źļ >ė¾ rē)@zćÜtą(/éŪp†JŲ‡bŁ?Ž&’7ālåDźN{īė¬lņ”õ “žō•½ńą=Lļ¢WJģ“ÅŻģŽ'Wóˇ1ü­7t!Ļ…6…ś|SĀšĶó™ä»ż{Üķ›aÜ>žžŻ=vņŚŪ9?ŅĶ2Wˁ¬źĖČĪ=Ķģ•ŃęļŚŌŸŁVŪµc“ä]‚ģ÷J"öж(ż‹WłG®·oH,“ ž „S÷ś”^īģÜ#åš[Ž¼ęæŪDOÜH•7Ł2#Ņ™ķiĶ5IjČešÅ2¦Ę ¹”Č@RÅ:³¾ÄHyĖtŅQ6ĆŲaµÜŹÉßoćVą0UąG‘ąŅÜā ‚¤ēČ(éß„CēWgér{ ī’:Ńńx1¾ņ=@“ņ(ż&ī’»č&ę&ć„#‚ąNó)ąŃā‹ąU^1䳑Wć%­¹ßą >ąø²HāÕæįƹžą¬ģ'ß÷ō€ß6ė9㜔ńéõkī b1ō€äł8@äū¼ž™ż`wż’Ū†BżL%ų`e˜÷%ų-\Ä÷ߛD÷xŁłŌė–ū'^¢ž0­Ö’ƒĪ¼ü‰9Mūkkū«Smū„Æų‡©"ųōItłŁ8łm—öHŚźöZĄÕłˆņ5žf–,Ń̦ ¬VĆĮąˆyz†gēåžxPū,’TśŹÄ5ś3/’óEĘ—čšžĄ:ü«7 ė ąž«®~ś°OĶ÷“ŗĮōÖ©Bš>Ģžź• ē8ēSäœ7ēUqéŚhįēē åŸ>äMeęÖņ’ę®*5ę3ķuä4ū ą pŽ€ŠvŚ>6ÕŠV`Ń) ŃŠĒŸŅAF*ŲćUŻŪ3ąxņļćį×Cā*kĮŪ\åÖĶ&3֐Œ³Łwhßž±īäBsäp“uā·Žāיžä’ÆZć‘qĶ߇tĪŽnēÕą³œrä‘+½ē“Б雓wčĶz5ä©ČLćTZå„Ņļ琔 ėQ@ŗźsć čvźÕęĖi“äķ >ÜLāŲųSŁ2@ŁN2ōŚ~M²Ž­ä ؝čc”ÄźMøtź|&aīęSHóDGøł2÷ü÷圞Ću8ńKP¤# x ē ŚēżN&U†qäøŠ ĪŹn!^*¶ķ³M©ŪŻ)ā/ŲH}š€ĄlĆ”¦ÖkņÅ»Ļ Æ„a 'śń ńz x Š”P©j¹³;lœ­RÅ OA ʱPbk Ål™ÉČ%łēš'y›Ń*Óv½+ź *åŪ«+q¼/M-‡4|:Œ‘:ėv"8v«(6Mµ4tCo1²‘„+" ‘'æ9%EÖ–jö$ ż»ØŌņcnÄę ±Āp ¬ ß Ÿb ]QĆ,H¤&ßq`;čö Æ]Õśƒ#÷7"³"±)X“2¬€7‰‘Ž6F €/ź’.(јĮ#øN‘žŽĒL/$•>!Ś%Ŗ!ĶB’ĪæX„3-†•bī! Į²"” "fŸ” öBj‹ö6Ūf@<’ źsx!¢ķ!ļĘ$·RÆ)]Ś>0]2Ā3˜eA2™s2Ķäy4€ž <=ņAƒĮ÷A)äņ=Ļ%6h²,R $l-%š€*$D0IŽ2 Ē/±‚®-›°W2 …8„£ū<¤]“@ŁC± Błč<°>ˆ8l0ł3=a’,(’µ&ҁ$г#·Ŗī'/1;W`6Õb5VŃ3ā2Ā/õӂ+¦½$:ų€“¦_óņŽę†&Yz?ł>ˆŠMs·5 {łęl! Ö †@üīęõūE˜žļnśŃČq÷°žPłņ‘ŃüT\Ļ’ę 4b$bq:Ö<>’ȶ ļx -Ž Į/ מņ` „Ć 6÷¹ŽŌ«YŹZ I›) Ęk€"GĮA˜[ī§žm`½ü“ŽüY«ż¤q‹żŽECü“$…ś=7įł¶‡fł6C*ūŠ"žXāT)¹ ĢA\)Å8RÄŻm&}ĪÆ(’yė]Y„‰ž¢nm×¼n FÓ;’lKDųū ųž*KŲ:€“÷¦Ģ .‘pņß¶÷ŅR„Ø‹m !²ŗø9źĀ£õGżé®æĒ)żōŸ,÷—ō†ńÓÕHī×o-ķ…Ń9ļCA'ņ1B©š±^›ńšóTŠ ņ-É6ń~F…ėīUTć QąÜø¾āĀ·ŖčVMĪļf»ö‘BÆžÜkÄq -r$ zšé 7©zęņ©°ł’ŒK’¤ß Œł$ō0¤Ėū4%ųw“÷ųĢŽ«ü’®’ķȞŹ\īö]¹Jø>c ]’…‹ż49¤śœaXó‹ėcĻ+éL īl +õ17ų€c÷JUõ āžšćžņļf?š8r–ń`”fóPĄ‡ńŽ/ųķ­' ķ’īß¶T3ó[É·õÜõ2"õ—ģņų!8‹żńĪŃi1dģ]3'%‹EZkī#’tOžæKöū]؝öµnļH2&éy'Iē>żåŖŚˆćp_ćĀčåÉ?é§Z|ļ˜hōvĀĆöŸYöc-Ļńčńė ¬Ōé“×ģź!?ģķ#3nņŽD÷ēķ«śQożūÜ"O€ē<øżüłĒńTĘ^źN0kååsAä§·čųä–ė±uŚėnÅė±ćœė ĢzķŚńĘģ»Ć褖 ęs£kęõXYč£CÅźéw¦ī—ŗ«ō<°ūOœ(’–ØŠ’Ō…H’1_JHh)ĘĻ’¬/ó{'ě ™Z<é:č$Ɗ e©÷˜ķµĢQę×1įāžąXŚ.Ž3’ČŪ…w׌z4ژH>Ūł/ZŽĆŽ—ąb6Dßė¤ėޜžaßbvSįrjśäŒĘ’čN)Ųī·„ö¾Ø±žĀ®HÉ1Ačß_ 8V¤Dżjœ[ü“pü¢4üˆ3žgÓ3WŲ4ž½¢¼ųȵwš +ßå#öÜX~źŚœł·ŪeĆuÜ? GŪĒać×­kÓ¬:BĻā‡\Ėė WȿƏk”ĶīāĻL|Ó^ބף7×Ūm§xßO¶pāPōūā‚ž|įĪ@‚ąYą Ü-ćéąņč¬C‰š4S÷.H^ū»»Ģ’ø•”Ü ƒgĢŽõm’ŠŒłõ0Oųŗ€ś?Ń.ś.Ī÷ż^ĒöžņSõĢŖ-õEøßöNшų±yś…ų€ż”×öžØŠž¢ü“R2ś»Š9ł—{ųĮŸx÷Œčó–m)šŁ°šam”ņ 'Ėö1 ōüCo_anÜŁ?M ķPß Ä.V¾ĒݾėĻżäżw«i²ĶĻ qŖ „WÉ Q&Ŗd?~éėŌTpw}Ą^Ü$žņ|Ž $ó ń ®ĒTī ÓŅŹŌ÷ĢÅ’B‹Ń Ā0b#™ žQˆŻ;±ē č±ܳo ąķ4‡Óż­>LųnR÷a`›öżPgó2j:š‹ńÆš»įóXŽö݊_ł*Žüśõ‘üĀöf ‰ī˜} é©AIé±:’īׯf÷ł&’e¾ī•}`Z7³ń4Ę 1ą 2N ‰”Ū§„’ŠĶ”xUJŸ€äÅgllĮø+«Š°OM„Ķ}Շtäė- ö ‹ŠžX™Ÿöjš[õĖo[÷ųČų Q‘ųWų>÷–÷ 6śdšĀż°$Å)4 §5…)Ė.0O4Ł6‚3e;'Wŗ< 4ī9jØ64ė1‰/FåB,&i/-J\¾.ąą\/NɑŚEW Pü; ńõĀBCńü±'ļŅøtš¹Ķ½šüŃöļ”Óī6śķģÅźė6żēo ć|‰ēŽs‰Śżī\ŲB&żŁH’j߬Ønč#üļģHų;ŻęąĘ ”‡Tżļż£„ ¤Ŗ¶ž9®@mż‘—śū«rLüīÜążRü5żų…ųńMņń!S_ģĻ=ēĀšpįš ÜŠ/h×>DŌē2ĢŌ>¤uŪ²5ńå’()ļhcüõPĖŚłXģ÷śŗ<^ū÷ćūüśCśnøŹųGЈ÷~Fśz¦Ö,Ņ`š •3­ £ż†Ÿž¹Ōę”Ķ [łpS2Dd­ ™°ŽRNŲ’^Iįż6øżł«„żwʶügnYł†’Zō›Āļ„50ģ…¾źņZ|ė§’.ķćYš›ö žź}gć(ć°ü,CųÄņM÷P²żł¤n6żńĪ 1ü,L4`iÄ%:ŅĖ3YbŽūžU_÷Пõą"Uózž…ņmęĶó ƒö]·¹ö’4T÷EoÓõČÕjņÜIš#2„ķŌ‡•é@žä`»€ąąŖgą°}Lä|£¶ėüĮĻņ%o†÷b“złRŠūóéžż[ƒøōę®NŃ ž‘1 € ¹č&Q ōRĪā(”’Žōü-œżŹ7jżāÕż‘R!YDąžé•Nƒ·ē›ZŽßŗ #óŖ «*Ž÷ӂ Ź·| # ŒŽåĒņ-!rå0½“āßėeė Ęqż eŽ` ŗ> xÄyKÓ2 æ}`,„a2 ŹĻļöN—™fśNĒū˜„N˜ZõM°Ų VÉfŸä|•qŽźPjm† ŗĻµ€ «vå‘Ź'½ę0Z¾5Z×’5/¶ 5ˆa3(J1%C0-{1<Y1xIČ.µ<$)ÕŽ !A•dńMušŽNlĀd¬ą«_㋿_‘Kß ń€=zJ_IN 28äxxģŪĻKˆ¦²]ĻŽ†r~ łF4£_äßÅ&ļ# >'„žx+™3|09÷U3¾ø[5?ˆ7aPó8 ©&8ÉŚ5-c-6BĆ#Įåb^I€÷<žŸ?³; į ‡‹ żL˜]¼p"”7mg/ż³ćÅę*&½K1YĶ ¦^>ŗoAō>8šUH“$’Öz^HÓ„ hóv*Šż=āӅŁxYM#ˆ½Ę%@ S'žśE( «D'¾$ļ$*ĮI żĪž†NĆ dµ'•ZJĀ ķ+ Č:ņśZŽ’1|śU&Š÷œ÷e”H÷Fžõö€DõĘōqA ōUPĶōP÷VŸpś ‰5ü`QūĢŗ=łšŸW÷bķ†öös÷ŽŽTų^ówųŹoš÷GŽ÷śWžų· ūŠĶĖū4åØūB:ķų†HØō8mļ.lĀč͟ ćBSŽgGÉŪ {¹Ū^p7Ż•WEŽvƒßÕ`)ßkĻ°Žą×õŽ)±ĪąmļĢćŖ?ēõ;CźõģķŌāń44öü xłb€ų¼Īó†qķ{ĘO琀5ć«‹įJśóā]ÕóåēlEčWæ>źč õģ8ĒųļZ-šqS¾ģ™čC6å„n³åi2Ÿčnƒ½ķ™“|õ ’Ćż!Ž™ęŲ֖ĆØ&"¹wüK’*ł1ŒÆųՖūį〒̗LvFŸ“’bj“ņžīÖöÕńiļmƒź4cōå^ŚēßÜTŲfĻÓlVSŃ„…JŅ#ÖåŒVŪb©Ķß/÷ ćē•樄ųé”S…ī³vƒņ£­"õj÷2Tū'ųžęP3žjümį<÷°ķNņݱ»ļI,`ļĢ3šUɚ߁MńhZ!ļĘ]ķ5¤–čkū¤ąŽK^۟;;ŚŲĮ0ŚUŚ-ŌڜüæŚ"jŪ÷:NŪaĒZŪ€“UŻ~ȶßÅ×9ß 0ÅÜÜŪGŚ Ū2/cŪnÜĢ*¢Ü"XšÜVø2ŪņrĘŲyk׊ŲŁÜåBŽtóę nļ#÷ņö{¾żå“:ŠŠz‡3U)9TčūŒÖ9÷yĀō1ŪYōŁZöŽ4łŻ«Hś½1*ū­)śIµ9öWI÷šŖƒ‚ģÅEGēįU÷ą±Ā>Ļ (¹#÷ÉŚ$Õj#Šņ–ł-Œ?ļü»Ä(晞×F·ijlĶ Š³ķ"(üm:3ĻXv|’ō°’ƒ÷cüiP9śą|eųqīhöéÖ)õ²&õ!’öÆå©łWŒ,\Ņ›Y‰'ą’%-oęX’Ęź…»X–šŻ3\D…M}d”³K¬SiÓE †ŠÖƝvM žNUł~֍ö,õļōŠ­Čó‡€óƒčćó ķōÄmõ­}LõŖx‘ó9ŗńølļ&Œ$ķŻ<ŪėĒ–zėoÖ3ź$˜č©Ā ē“[ė偄ó~Ÿ¬ūŸĒ/x3^›(š»ā ¶€ą ‰° ¼‰„ ó ō ”ƒ Læ!G\ȝH’,ķóżĄ ūćių“ŚLö€įņŪś:ļ±: ķ„iĢģ©M®ķ>Ü¢šĮ¼ĘōŌ½ ÷Oų÷ iö±sśóZq&ņ¦ņńeÜ”š°×ßšž -ņ+ͦö,£ĮüŸØ{;^v Ż/ŗlómė•[Ŗü>(† œ¬ vĆć‚i«ü@7 Ą4śGŠLUy’koŃżš«„ü (Kś×š÷rŪ õŠ;©ņõ Īš~b\ķ:ō(źC‹8é‹XŒéS5źY±éß±+égÉnźĻ“„ģNļk³ŗńY’ó•Č‘õzüf÷ŒnÅų Ķł(čŖū¹üŹū.Ļzł±g)÷Pt÷:sMūµ˜ž"ץœU4 1ūEįĘ@Ü7! ŠÄÉA.ż*HI¢vµeśü\ržPŸŲüc]łÖµéōŪ×EńĖ8ÅīŲ¢Ōģ@!”ė¤.T빘5ģ›Ėżģ ²Dķ‘Mī®>Åīų2ļ¤Žš?]“ļj­nķŅ“ģQ ĪėFJįėfÕ6ķÕšØīUöĖ]üõĪf¢Ņ“iWóq˜x  )zŁšõ‰4©ÄyĆžHÜ÷e”ō¦ĄXó½rōZõW€Oõ-nóz°ņī=(āéŗAd摽 åšŹÖä.Ų¦å«čļē$æÆźĆćķO°¬ń«æjņ†ŹųķÆD=ę±{ŻÄ<čŌöa Šn–6ĻĪ“šŃŪÆŌ>*ŲiV Ž«F‚ęć·†ļg÷į.—ü XžŖŻŒ`ŗČüœjĒA•V‹Ń£vm V°9[ˆ’žņAūū@üõ5Tń»¶猪Yī#*ęķ®.WķKgĒģŌ' ģ]ź’"čēęO×åY@āģsÜxƲŌ£Ķ>6öÉ!-Uɜ$Ė©ŗĶ=Ō]ŠĶåTŌ§RæŚāīFĆź“/¦ņf‘Ał6^’,ĮńįDĒ #¾” ‡­ TLr IŽ× Ij·W·q‘lž›f¬ųÖŃ óW;ļ¹ŪÜģJĢCģģQēź£śrēąq/䟭MćFw“ćžųäf,$ę'ĆSå¶Pfį» ųٽ?ŒŃ;€2ĖwŻČՃ1ĘæÄTĻ“Ä ÓąĘ™™ŹēCĻŻ¶lÓS¼Öū§ÜŲŗ EŪ"›gßX—ęX8šwž:śŌa‹Ä8] Å+óēžą B ƒķ@ęD”’­Żźq XeF/žlźo? >ÕÆ žya ‰įż °˜ōĄs’ĖWųC½ń+QÉģ?iŁčé/Øå2¬GāFÕćßń8—ߨ"¼ąåm!ć'rŪęäŽėć>ńŚ;÷#²ųžžęeˆt¶’ž¶d#‘°$Ž|Œ!ń(=5†ŗČŻĶųģåKā3+^ųv¬ł° Xłč£õŽx)Cźń+npŅʤ' £6ēŲčßž×mśłFłDƒŪś<‹ü/)EüFM&ü#ƒQū 5 łÖSõ½>[š•ówėÆ) éõdņéiµģ'¤š|¶õŲ_üR°čLū… ŸUčõvĪ,+QĶ 9Śō¹–’Š7OüŠ6_ü»kH’„{Z«¶ˆ€ ūļ# \Š˜„>xĪŚŚ?¶ś#×¶žęģ““ī²ŌĒéYē ĻŻC É®” üó- aby 'iS>Nž Y˜ųYĢöóa˜ƒņĒ„ö{žŹ;Ż”;Į9ŌĻ-÷aĮµžmŪ=CĶ ¾³Ģ#a7'N~+PČ0|@I5šĢ\7Š@6¾8*2Čć#-ŻŅf(&’ģ%6ļ$S/$]VR$7˜$•2a#ęž UĄgxq܈z3E „‰:ų^Ć¢īĮāoč°fäĮC±āÖR…ę‡ęļ‰šü*M ¢ėv•ĢŠ¤GŖŗ?"ģ-l"ĘŖ‚"ķ^y"P"#vŲ#z*?%éŠ&¬>&ä½#ŃTš>‚÷K œ„p™€ Ōn$F•BPīžŅģūü§™ūf›»ų)ÆGö»ó­ÓĪī菼źėŹęŁ…āP暎4ÜܕSŽŁ6lƒŁ.‡ÄŪ.!‡ß_Äģć Hč°GÖģƒD”ń=fö9‚ł³>ž gYAҘ ¶67ØĄ­ ų"ć Ög-ƒ4Œżm˜Š÷Aąō> ZõɊ÷ü&Øųg‘ųHā›÷C(łųœųT]Uö†Æ±ńž{NėĄ¾¢äAåĪ߈ĆŽMxcį}/^å·®-é‰V<ģ¹7ī‘igļ¬wšļĻPļęŅ0ļĆFĪšŌķõõ‡ūŽ–¹Ā‚›ų”ŗ ģt {Qs>Ļ…f/Ī“ķG+O:F=īŻ»L ƕ ĄŠČ z: ]Y)ÖļŽi»iÓń …©)$­ąųś+š;VéŃ'ę 2ęē[ŃģI˜-ļŻMPšD Uļ>į¦ģäjāésQŽēŖ™ęĮõĀēńš®źõuŻļ]ŽŌöč¹ąühŁÆ’Ük±žż{ä¤żĻŒ7OGcVÅpQĀ ņNįœļVōśTfž.fuū„³łd[>ųķF§õ‰Č§ņ¶HšI%Hīž2ģŸ?‹é_p¬ēI­ē|aŃźb_ŽšN¼’÷DhVž röāÆ^,•żčk,ų!f‰óŽJÆšß)ļ;īṈšWÄrõ·Źū žłƒ‘ˆ@؈ ƒßp‘²’Ų,ŲRā²2‘ 霌"óõ"’ĆĄo×;ĖźÕ5…nAY·Ä]ū9Ó]YĖÄe öPē ײ(į”Žø½MńÜņ–ø(B)01ÖČC™”µ¹­6’»ĘšTK¼ŸÜ CGŹĆŻš{ āћī`ŗa’§Ł! Ÿ''«-*[3»ˆ,9J ½=ŹF?‹Š>K p<|Łb9čŒ5=tŁ1Œ×.š Ė,\~p*ņh†%ą»ūžž\g  ć” ŗÅ B ^Ūū× żŹr~÷SŽóM–&óüŠō“ßdų1mž^xkŲóUZ£7gŖU‰ģ"~ī'ūÉ-²ß1£õŅ5»ŹŻ8š4’: Ų9œ­·7œ¹35$I2-v¬.&z*£+:$hJM:ز# KY !œ£ÜŲ%’<żT†éž0Ģ`£Vr„»Š óׄ «?ÅæčpœTBüB ‚ųŪyƒõlŻõhÄÅ÷Ėėēż5÷䀮 — D¼ŽŚD$tffÉĖco#Nė¬&mĪ( Ķ„)~Ś(\S¹'œ`Ņ&WÕr%¦"Ž-oĮŗe`šŚĘi jœ- «e–s$&»VĮ±’ä’Ķģ»’łÖžUÅŗśŅön ó—üųļ=²ÄīOVDīc#{īiØĻģ‹GģœN’ģ>A*ļ>®ņ–ß$öWdvųµxōłŸL/ü!¤Ž’<>ŗ< ī$©²B¬Üuąœ•ēŃü d÷?)ņĒńWķū~vź¤Vźlŗ ģ™9ķi:ģv ¼éߙ³ē2c3狸Ič‘üyźE^ĢģDQ8īeŁŽī2»ĆīGZī¼­ė2ÜēŚüįȟ2Ū[’+Ö1ŗYŌ1§!ÖN~nŚu÷ĖßMßĀåÆŹģŹŗ%ņ Ėįö!ø_łķēł&ÕŌłēAśĶ»ū3·Ėżōģ?7Ę;RÜÖ ½Ą& %…sĮ!ō5„OÜžGŪģż —üŁūDŲłaN³öp.Õó&’Ššōī 1|ģÉąŒźN-„ę?žß£6w×Li€ĻJyÉz؝Ę/Ö9Ēå?ČŹ¬Ńų‘Ł{¢1äEDšŖ%±ū„ĪČļ7) N0£7óDū„: æ/š F–2+_]”Ōž{Äż¤³«ś¦¹÷e§éōŽĒņł2ćļ@…eī‚\Pģ:6Įé¼²%č‚2`ēxƌęNÜ?åp;ZćĮq‡įNźoßsܱŁ~Ųp'Ō‘éöĻVŖĖ­ÜKČT‘ĒZjµÉÜrtĪ„ÅiÕó0ŻgæŒä™ŃźŸÆ¦ļ6³ócOž÷Rüüüŗ8T$Mb+÷ROĀų’ .RŅ {«Ģ *˜žP0C’乆ś[G×ö$ҐōŪ‡ō=ōŽĒFōf®ō’Oōæ'?ņåyˆīŠĻßč8‡%įųםćĪ‹ĢFǃž0ĀĘW”æÄU@¾óĖG¾$O Į³b‘Ę“@³Īæ_Ł?ÖåP EļĶsłõõ(Šł£vXūōJż=ó’tęCåd ė½\TĻ_Į“x lŒ-Ö ø˜ėQŠēŠļł¼·Ųō§‡ńõNšõ»dļ]łļo{ī Yģž—Öč—+Øć^“ņÜĻümÕ!ÆĪ½S™ŹżóŪɂ44Ė…>kĶĻč”Ͻ‡ĒŃ“—ŌŽ<Ü×g†ŪÜxß5a ćŽą×ē½}źƒDQėĪ‹ŸĘ7J¦}0ŁÆ)-_ $®-P w.ōacˆd™t˜®¼Ųé`ĶųĀn$ē¾&šÅ¬Ö(„–=aĢåŠwüčł ,c Oŗ Āłr·żńĻė‘`Ć»!<ć¦h­®§ CČģŖ€ ‘Pż¹:Żū÷æČū]Յü¹ž-żBčvżĢż%FīžŻ·Į €’ia<H78/0ģ‰HQV’&hČłŖžōĖš9£īt7Ęķc\%ī ŚūļPfóņ~ÄĘöšN\ūr0Dźļ:æØ ÆĮžRŗżhv…÷G dń‘ė 2pę2<„ān ‹ąéhŗßh”+ąnĶĪā*åčp×sī1Ć ōCŻö&GŹö/:oō£ZĪštdķÄ?²ė,æė\!pģā?ģĀ‘œėĖ­ŗź›g$ź…†)éąŅŠęœūāĪDŽģ¾ķŁį”•×"gŲoeÜ£T½ā`t1ź„X«ń{aųžkż÷Å’-L’ī‘ōü“^Qś1ŻĆųV€~ųĻŽ©ųø`zų<īŚ÷R³÷±˜łæQžķ[Ģ®“m)ęnTĖŻÖ£›u:q…ńēĆ~;ökė¹Į’ł¢ ńüß k  _NŽ'śwĻĖõ„%ō®eėō2¾öˆ.-ų$Ęļų»üł7Ć$ł5żFł5r‹łŲG"ś‡Ż?ūĪĒü°ŽÜžjųō½hśXC:ŗP"’eiż‘}<ż%^sž²īŠX5æsĖOgĘYžŁŚs„0"ćµC¤ŪH°öāŅÜżsķkł™õC4Æņ­ŪÅń‰M ńä«2ńį‚ņ¼÷&õ9æų“¢"żA|)?Q T% &ō =Õ)¶Æ<Ѧ¾õ¶FT­Xž ÖQi Ł7 ŹI īśNī‚¢ÜP5ö$U‚“ąįg—l]#lĒķĄœBbŅšüx=ŌĄ*LŒ€•±šõā^ Ō^ćŃ&ÕēśžČzöū½Öó*-·óæ}ö¦¶Åł„$Łž…SOžÖ €uN„ul„—! lŽ% %'Ry%N°!†^gÓ\s ZłČ¬”Ł“æßy{lH$³O"W›%8cź'I3O(Ž3\'ośĶ%².ō#łŖĪ!s+~>~Ø- č3°'9hL_{ķ Jø;Ÿžāłų™'Äõ9…øōwBõźķöX¾‹ł]Ajż+2·°$}µ¢ ~č„R!§”"$hDÉ$Ͻ9#}4^Ś3Sā˜źÜmDŗ66pÄ?ī‚Ü!7iŪ‘ŸIĶéŚl&‰˜œĻAžP×, `XCNH…ؼū•mßö)ߍņéSļĄs9ļ©’Øń„¬ ö9\"ūlśšqLī‡X xļ ‘E suXÆß³ D4’<4¢üŪoēūfB”ü#Š™ż­6kžEŹY’†ćųB>: ĖŅju’P ƾ f½ŽŖ÷ā,žŲö"p+s•rē巋ż‡r€×‘óÅļÅXį“’Ģ&pc Ģėį6(?»¹Fąļ’EH’ęĆ ü›śŹ  §L  eĘT»ō «”’ļ+˜š ,Ir!üäŚBž¢k üømüŒ6ż÷VzžH§W”L8©Ś{Smo|Œ:<®Ÿ¤’ž2\…żŸ_-üÜ#Įś,›ŲųW- ö…‚kņsŚ*ļr:쵕½ź”ŠhźīčćźžgEģŪZ£ī[śń§šõ`łjōķś¼’GśÉœų)Lœõ®(ńóUšĢó#ąYõŹĮ÷Ŗł–ØÆū3ńż§Dŗ’5īÖ|©žX1&üX…WłāĘöö˚„õ˜Fėõżį÷){ćśZ·ż[h&’‰ĒžVćüān&śy/³÷Ł0Töķ-Óõ“›_õÆ%ōN‡ń@ķfĘ®č†qxäOāO…ā˜¶ćn]WäĮ$jåoóœę{®č%(īéC‰Żė©Ķ.ķ^jČķfTKī8”{ļ'ņ¾*ö+”:ū¹‘‰‡° „d  Ū Ė¤ ūk’,t_śŗqaõčŽyńŲó¾ī„qėģ{©=ėöś,éyī/ęØŽEā~ŁzށŻŪŠøŚšćŚ"‘ÜdŌ!Ž„‹Ÿąš )ćGvåRź¬ēÓČ!źöŹ ģ°÷Īīō`ˆšäz’ńf,¼ńźŁEń9š ­€ļAfīÓMģUR›éń¦ē½ūćę1&¦ē¬£é¹Ålģ¢ģļr’óVźÆ÷\øšł¬„€ųwdtō’ī¦1$čķD#ā’)Ż»Łćx×L‹ÕĘnŌ&N‹ÓpB+ŅģeŸŠ”NĻ-ū«Ķœ[Ģ„ IĢÕKĶ/H¶Ļ¼6āŅŻ'²Õƒa™×„/½Ų‹łhٱČچŒeŪvÕ[ŻZ3߂ථ;ą¤7ą‡ĪĢą¹cā煐å× æéõ}?īBņb³;õręī÷IgŲł„—ŻśF&ūŃćwś€€œųę¼õzņ›ņäš^@tīź;”ķĒRķJVķzØķ0!Dģj×}ėŹk[ėĻ*jģ» qī:+‘šGDņi3nņŗ2¶ń„CīļSŅ7ķé,Ļé¼Wäåb‹'āī -ß{źįÜćwŪ¹BœŪó„ŻÉ›jį…ó'ęį6;ėøqÜļo—ó [įó#Āó8d ń‚4¦šÖģ–š0eńŒ¾…ņÓUóÉ ÆóaVóvuĶń|3Pļōģéūė¦e ķ»€Ešåėō,CūłĒ[·žóĘPäMē®? †óK Gó ©Ėę  5+!ŚÆŚŽ§żś/i÷TĀĢņ®-†šTBZšf܏ńv^óu°õŲo,öu¶ŅöĢ ų[^lśī÷¶ż”’WÓ¶š<”ß +s N²°ė~r FžRnJūo˶łulļł›ł„ūŸLzžćo¤Ö"2=Ü īøŠ 06w“!Ņ؁«ń³äÜNoa9’%/ŅČŻ,ģŠ GI <- Šś8 j9Õ ×¤ iB ¾ĘÖ„.ĻjŸ‘ ½× ߊeę MÖŖ!ŽģūöޱÆÖa8£Wšé,вńĒß Žo+L¾łcæÉšÄ P‹’Ž[ݧ“”„@šęRTģ 裀+½¤˜ūōĶdGŪZ„҇_z¶ĒCĒ ŖÉŠØr÷ŸxvĮ¹žžóγ’.j¬½Ń©†[%K^^Ž !Õaž!zÖ ÷„7?U@½V+ōgM°X2%Ąu@ßDØ!2įa%æ ‰(¾`+ ¹-ƒ‰G/ķŚ/ V/SÄ-{q+9ƒŸ'“.c$A@S"KŠ"ξ|#£Ē>%°½-&oļ°%jVß#äģ³!Cʝ Hl!×§$Kź=(D}}+.Öx0ś`2Ÿ835rŠ21Za1X$/ą‚, wØ(ę“%ĶV”!ž„¤rk—Ę$!-~Ś ćØ%…ų)ĻĪŚ,Ņėč-žč -R›Ī*»Uā'ś$é¹K"üE’F™Ļ‚œ‡§~`1 –5Šø?vž <öł&ųų*²3ūģb’)1˜O1=<ėµČ€©]ø^Qüé ų÷iÜóŁ+Lš ƒŅķź±7ķGdī™,Kń±%õxꆳ-6©ž•Fp Ø#t+e%e½žO –F†É®Mq3{ÜÖ;wĖć š#꘣ˆ†>A¦} ŽŅ%!h;wɈ“WY/’Ź ą²o £)„õzž•±ģń_Ŗļ±ōz@1ędȏCVGę’X˜Iū[TöžĀńΟŗģ¬u˜é_]ačU!méIÓXģ/g¦š·ŚõĘ”dū; æÖhŪaē?@ŃNŠŚšĘÉa¼ßSGÉŗ<& B* z Lü])©©ū•W”„½믁켚ø mć-Ę9o‡’ŚēüȲ«ų™" öÉ(ņ-\Vī3,]ė'nré!dč^egčēŗÉéWĻģaypī›Érš»ĆÅńk—uņĀ ówNxōg ÷–ńxüžŚoU7Œ•ā¹ ³6’A§ī4GQ~£’ ƚcĒęSS=ž’āåļż)8ż‚pńüż”LżOoDż¢Ą…ü~»śRā÷,ĆņŸOtģRž–ęč5į嬞܏€0Ł_²Į×ce±Ųp6ˆŪ磫ß2h.ć ;ęXčó8čéĘ!īź¶ŽėÅóģ†lJī:WŽļćjń;“śņõūóė‘.ōäōōZ³ōå ńö¢kŹś{‡’ŚŠ9ƍ ߀p!ßÕ1-žR’”Ę—ģ ±רN*Wq ÉŁū–ł|ם ų’wu÷’©£¦ P™¦ÄQF6[V–Ļē„>]Š—6’^`}¤Róükn±fŅŃĶÆp{QmjĄžžŽĪp£$@,˜ŒæŁf`ˆJCĘł’+ž­,6üB–5ś})\ųEąŲö3­õ÷6nō#¬ņĮšLäcģ[?ŗēœ¦āāv/ßøõžŻ §–ŽrbįįĮļ ēŪį‹ķį7¢ōKßśDE‹ž|5Ąžóŗūņ”öY«ń·ĄĻģ—›Øź«hźö„.ė9Ī<ģāų-ķ~ļ¦ķŠr‚ķv „ģŪ=nėH²ź¤_źƒüĘźī¦ėĻ ķņ–Šīųwļ–€źīąœģ}lé·eéä4K&įdģ¬ŽŌ³Žę,ßągįÖćµ–åM0Cęx…ęQ€ąåō™Īå]`uå¼I€äč!$ćÄ9ā Ć~ā‡Dä×K]ē±ČŻźČN~ķteīšī0ę ķŹéUģK«qģ«A‘ķAĻļ½Ōņ£ÖõdM#ųxSł^•2ł<¤č÷ óõ–“ó̬`ń÷üīčYrģu(įé‡EÅē{Z„ꄵÅå~ß6å¤ąÕäŅ䝙ä`3UćSM÷āNP㹓JäĮ›\å9}ęČ¢&ęĮ›†åĮ[OäńJ0ćJŁÖāéŲ;ć:Ą䄇åkuāå–įGęiŁ-ęfÕåKé«å¹K ę¢Žrēģ^¬é›Æģ¶ ‚šģÆõµgüłbfQžŻ•D&†juņ’B€üČ)MłL’õ• Có™BpńĶm‚š3’{šø7ńś ņ_<Éō%Lk÷L»ł[‡Ņś€Źdśü[ÕųųĄöA}šō T~ņP8ššŖ’#ļˆsśķ[ųŻģŹĘģHB–ėßkėūä4ėįś:ė¶)ģā«eī÷|ņ98÷ĶVĄüģQ5™ō$˜%ņx ›ŗ bś4 »ō Ū©£ƒęübĮ\ö-Ø#’—×;tbæ—ĘćÜ~%°EŶoīÓ„R$śü©ķŽć°ąņ›Ō»!ńē1"ŽIˆ ģ)‚–hžü.Ś"}X ś/_±žcū§jłCdŲųX^<śz'ŃüÉ…Ī’O ó šŖŽg±Š²ž…9ĆłŚö”ōże*š/eķŸØģc ėķy"¾ļ€~ņ·“ōٰd÷.ūˆ¦Ž’Y‘( }|;t™2~2ļh% żYó¹ÆnĮn8—l°H˜Ń$åÆYZDü¼¬±«kĖEšĆČ6e×|o^śŌ±fˆ±•9`[i/™ /ī³ FĮ†½=$ )-Ėńt Ä‘Ŗ,ĒG“ € l֊ ŖŁČ›ćņ¾–ĀPo«+  Ą¾%…„;Ų$üjĻOzQ‘ cĒž!Z$!ŻE—Åźīšh˜›ćJFŁ“™]õ/vEo_ēģ4÷‡~¢S”µąźécƒx‰µN]ZķЊmŅŌO Ś$†­ē †ĄƒĮMa±a Öć ÓP· ā‰ž ­Ŗķ ¬w½ Ī{ |Eß Ig½ &2P ’³:d©+ėĢf“ eŃ ­pĶiM(`MĘŽm9yéfrŗ„Ė9Ø”÷ķ  )˜ )Ɩ }ÖÕ ¬, -Ćjāq’ģÄ £--oż»ßR»\·’#i7ž¹5\żŸ³ÕüG†-üē;mū)ūVīūx öż#š£J; a<× zBŪ;Ž m,¤ß EŹ{‡žO’CŪ­üųēū0zśł½qł)'ĻłÕ RūifÕżb ÅĢV/ŚV2é “H°Ō€Ź„ÓT…VXė^‡!G¶`Ö5Õś®7™nĆqĄ§wDI9Ś+É !ÅVĀ#½µż¤ńMyҼsQ)Čė±½µpJ­ēE·°™ėl‘²šŗ\Ō*=FāöK›q‘č˜Ld8 Ŗz*ŽcVŲDož®Ć7ūł®”ų޹TöŻčéó–uńœMļė÷Ÿķ’Å\ģ pEė,?ź–%\é97»čģč™9Ćčēšéwõź­ŗģ śīŌ}Ųńė põüÕ¦ł'_ųż„K}€Šx]¼‰¹œ$[Ēc^’žJĖż™ßAż·™żļ(ōü<ńü<»ż~/BżšQ żø™„üÖ*ü„Žķūõ×éūÕ±üł^üčö¢üż½müź½8ūcJŹų:amõ›Āeņ¼†ļŽŚģR-vģ@µ”ķ²›ļ˜–mń×Ó©ņh ó“ģ¼ņĒEņŅAņ·¬ņ?¼óƳŌņźņB¤ń)Ėōļy{ūī"X[īōNīf€8ļ„ūuńcóõ…kłV|ž6Ž‚ Nv É é° Eķø ,œ^ äØćńÆKˆŖüöF9SńmIĄģ¹)Ség‰aē9³ōęŗ°ŗēĢ é¶övźĶ® ģє×ķIdļ‹°&šŅbšļ\y8ļįØéķĻķģļēļģxŽAīæC‚š¢‰Šņøduō?†Jõ \dõĄÜōxXĶó0ņ¤iļOMĶė’1ēn6‡ć"„6ą·žŽŚĆęÜŖŗvÜY­žÜÙݢZß*AįōŽOā ĖĖįÕŚåßjŻdStŪ|‚XŚõū†ŚZūŪĪRŽ>ø5įņ,äX«‡ęßżĄē&‘ē"ŹŃå_’ā§J@ŽāˆŁw<ÕU›ŅÅWŠ>ĻA’'ĻeĮ Ļ€‘.Ļ3zϬ¤^ŠøæņŃ-üÓģźÖ='ź×LhŁ:ĪŚĘķƒÜWŁŽ­XŅį ĒńäŸÅ³ēWˆź‰Yģf’ī ¢½š^0»ņ]9ōM¦üōęX3õ€õ\Ź|öˆį4ų¢YśĀūļ—żśżōkł0ž£öbķoóÉĆ÷šé#šĮS½š*iņÕÕoōsU/ö¾÷Å_Øö–ōżš¶ƒģą/čŽI^äMʅįģėŽßōvŽĪóOŽ*ߞ1øą%³ĄāćĪÜä?ĻNę$Yę:Q‚冶äĢpšāé»ćžväo·ćę€RšéL@ķnBGš– ŒņŁhō›ƒ\õ°­ķöŅf'łNĆ ükŌZ’\EŹź÷bEŗW ŵÆöēź!wĒvČ1Qń(Ŗ—Kč ±Q²„ó’{ąŽś»¬Ž÷ųfŚö€ÅĘ÷JøBłĆFśØm6śĆR"łĄ‚ ÷šĀFöŅ•hõ¹­õ23<õåÕõ#Ÿ§öc]÷ö¬÷ņĄØ÷ń¶÷£āMųWź~łĒfžś…a™üų‹žĘ$“•%ŗÉȒZ å„6Våś}pķÅū”ōĢXģlüäĒč ƒŽß IŽ “a¬æŠ(“š‰^³æ ųŖ Š@ pėĆĻĆB“ü@ ‡ō w©·u ž ¾Tٰś;Šš> éAqxNē¼£J± ‹=ņ‹!śVĆ'±³Ÿ³²½¤2óīl›9¶ŹČ#ĀōĘŲ„J~D’šˆ-šųšŌ@ŻØµ·ZŽŠ ¾x y( ?ņņ ×μ ĘDbO6KÖVX3 . 䇾×!īā4–' d¼i“\Y^ öYi»ą!l‰?{— ^æņ"Nd¾$ŽR%!§%ōď%L§%Ē C&b²Ć'öĮc*¼!ń-(®§1 •49čģ5W?K5Ļ; 2‘ö-‹iĀ'=k!4!f’ø£%t4åeŻźx u`w+‰„Šu‰,”żźµŗĶĀŲaźƒ%ņųˆ¢ųWĻÉ~¶ 6ęĮ$NŌ)B^.x=ā1Sb53c>2 RŹ.j‚* Ķ…&{,$:C$ł1D%œ&>c'#'&‘5$b4_!•įÆÜćüE¤}ģõöĪu8QÖ <ųCē•Čū0…Zųɏö—S7öÆ”ųööŹ~ųĶNsś·ĶOüCƅż;†›żA0.üµÆNł¤š»õr(–ņŌ„ĖšŽ·šjśjń0ŚįņĖ“éō»–ę÷™Iü™{n­ڜ.„B¤č"ļj¼Ę$§{°aĶX-EF`Łŗ)ŗ6Šē[ŠV¾“Äļ3¬Ōj‚)3,€ŖŠņ©ŗ ģĆˆādD "”ģb„ĶgŒ —ćE T0i ¤f2>/²Žč9SŹnž’ĆĪ|żb’ū…K$ś„]młŹLił¢ŅłŪtśIgSū»ĘżŒO”žy:’¤Ūc’*Źž7Ł żlS•śż~’÷j’}ö!bĘöuĻųPČ/üžŖt{K茣 ųh“ 'į²o€ĪېB¶ĀHJ¢n²« R; A ¼7-—²śūdmÄžn“|üBQĀł¦•>śDt÷ƒ¼õ1“1óĄŽNņXyņzŠbó“Gō7õy¾öč_p÷•œ£ų FKśŸ™ü'Ɖ’;ŚŗŒ ‹Äį ˘F ®…c :DžYŲ÷73“C—9uˆöž›V±üÅŌ9śū³÷—k"õ2PxóųÜ·ņ'xņ/ņFGńŅ}ļū\©ķSÆõė)¬źaŠéŖ^ésŸœé‘`ŹźKvŹģ²—ļ·”ńé{kņéÉņ˜ū ņķ®=šēÆķÉ}Mģ£ź_pŖč%–tč'[SéœEĘźć›ģ†ęģ  zķ' <īĢ~cļå­ŻšŻ²ņ€óõÆŁWųW7šüxuŹś>lē© æÆ‰Opqīml”ż"õ)xo˜Ü „H³S«ė h’QvGżqŃVü‚“PüĒ˜üyYqüš$sūDŒæłdŚ÷__öJ ŗõ®čŌõ]1öœÕtöūt‡ößĪqöpFöēö…÷×õw~õ`JņōÅ{<ōōoó+†ņnņ}Šń»śļ„ļ…óīŃūģ¼¶ė«eꃯXéĪĶčŽ ¬čū”č5„/č–ZpēÖĮ§ęśįLę9¾©ę ›½ēšdéXntė#rŽķU1ŗš®>ōŪ¾÷•¼ų„\~ųĮØdöOs*ó€¤Ūļ+Óbķd*ģņhūė@³NģŌ­ŃģųŽiķ|ĖśķĘb`ī(Žīœ‰šīR„›ī°‰¬īd ’ī4„ŪļŅžmńg=ƒóAA{õ¼v–ö3föDžöō‰Ģ¦ņ¹# š× ī+C¶ģÉįFģ8oģ"ķ§ģ `u첓³ėv ĻźÓ¼‘ź*²aėÜ{Ņģ4 īŪ?zī:ņ/īy£“ķ>%¦ķł\īIÜ“ļē ^ń|“óDtéō~·ööž$nłBōūƒ÷ž$ B’Ådx’waøžŗ!Rż!8¹ūĘLXśtämłčŌżųĶÕų;FÆų¢xFų\Š^÷8åõLōµ[ņjlšį2 ļ½?ĀļEßńœś­ņĀ#ō4‚ō †ņó6uņÓOcšśŒ$ī4žłėĢÕźąč¢ęåœååįGåÄaå÷÷Ÿå6 ¶å;|vå ˆĖäŠĒŗćXU€ā­S”įwŠyįÉćā ę䣽čj¤cķy|ņ7į ÷C€KśūüJĆüŃ9œü9ƒęūõ,÷śr},śģ€ĀłšČŅłöCZśŗ$ūčˆ üš żEŲłż²ņ…žRnežc€żÅĢżū$p(ś/÷3ųV1ö`NōeÜ”ņ3ÅPń²h9šDģ]ļZ.æīx¼?ī—aĶķ¤‰ķ ŌĆķņ;Īī#ļš/&&ōŗ:Rų~–źüŗž2fvÄ“ī¤4¹÷ Żżä ę jęLtĒ‹XCžå«¼ŖyūśvEœQōĪ9 ¹(aP*q,ńē‹[łøāĘuDI’ōåÜĄu%VŁęʬ*hF©§¼ĶŽf0Š— ć»tB1Bū—€6÷żX„ōŹOó«l|ógn¦ō*ö"C÷®P£÷ĒĶv÷g÷óoŁöeAĶö^Éög¦Äö¬Ÿ÷PÉČ÷~•łPbŒś],KüHéyž€ƒ^ C/9 Ht Hu7KFƒĆš¹÷!3Łø76»« „öĮx\”iŹČ# Ó wÅ x°¬éƒ^³Ķń³Do)Ż5{!k}»#PÖ ń”ßA? ?Į§Ęfɳ®Z?}ļ”ćŒū’  ØÉ2ĶČ…Tā «²å ˆ¶Ų“*‘ėLČ„3×4Xš üt į7/šU QężJ…ūź±śžē}ūʞ˜żeģ”t.Dk34pt ffåž&޽¼'‚_ÅŹx_Z)MŲmZåźgņm ‰”Ł Ią 3ó× Zųł»ww²P‰źSؖ®·žDŽĻü2ĄūFFvūļūžĶżaG•ž¹$ńł \‰­N±®Ļ»HWiźž—äźūŻ+éųō‹‡öö"õ 1€ōWĮaō“ܘōūA(õĒZūõ¬Ÿŗö_įö¾‘x÷<>uõµŃņ‹ž>š‡øtīÜ«ÓķŠūAī/ŒiļvĶń54ó’āåõĻ#öųwčėūĢ%žØ ’1ĘZžapüÜü!śd?5ųW;÷uģö.¹›÷Łįćųź}LśJĘ@ū®:Tū¼ś²trłJ®ųņķĄų z”łCßĶśĄ³ØūēyėūVFźūŒxüŅ{žb«T欅&—ī rŻFz¬óL˜Ä.µ±ŽO‹Č©ž ūĄIŌņ[#¦W q! 7®H ,seņĄC×~Ļ]@‘žĖ#æŌ<¢9UŃX`ó ”§“ b¼ ÄŠČ Ć)¼ ÷=€ -5 C¬­ $9 Ŗ*ß„€Ö0ßņĻĄ’Moü§ƒł9AX÷‘]öK§õń öJ<7÷ļ:ł—Ä‹ū&ƒƒž՟•†XT–: /"kŗ1@C2Lų+r•z!£6„v EhR5¢™ļńāö@ Ÿe č‡qZ~jo¬'(łS?˜ę®§LŒŒ1ŻveĮ†+)v Ūs÷ ųÖ Ś•) Öfį o²Ż ōū qż ņ·3 ļ9 Ī ~p 6XkęIż? Ā!ušŚyå½ö ‡É‡ 6®?ü×y=Æī™€ƒžY 5s q™ó ‡į ę ēu ū!» ųśŠ ‚–Ø &# ż6 Õ6= °„‹ü¹c2¾"8š"?€2ˆ ć5'ā™j“ ƑšŠ0˜”;š0ķ½t‹›YEŌ«@ō?Š ”æn óTõN³Œ„(”•lS“;Ū%ßī‰©æ©žA£øÜ! 2EN 62!Ćå>s± IÜūØėS+‘¾i˜̜Ķ3Ć+@`„Ē϶üɝdS@±P,—sŹėŃ“b č?§ķAeŚźƒć­ņ“sŪą7„v paåŒĘæRØŒy® ^>µ r • U+E ’×>źKØ"Œ+›N0¹„§ž%Ē’ūS.ił_,÷a€õÓ.[ōń|xó"²nņVČóšĒāī_bLģDśé 2琽åƒåÆ" ę’ 8ék=ķ [rņxOųU§ōż1pWü®,Ͻ>ēZik(zżNžļūŚlĆū®ŠÆü< @ž&*…ö‹‡ąiTgÜH„߂€üV’ÆŻMžų¤~ż®? żż#§`żJj­żżõ³żCĢYżå‡›üGžūŲ(¾śQłUśŚånśČW¹ś}ó³śx“ņł}ĪTų1Ź'ö1øō0ݶņ/ņnćń³+~ńXa¢šŗrQļK¹£ķ ÆėV|éIEēˆ…eåęHpäUóįä£õ깇Šź¤łHļĖIÅō/Ahś}ŽZ’^į½4€łJ·ņw5PJüšŚ7ųĪ“Mōėb±šm3sķ_¤źDĻEčā33ęx/+äX!ā»pcąĀĄ?ßeÕĮŽcå·ŽQyįŽöC ßIļßßmÖŽP¤ŽźŖ¹ŽV)ߢŃß®¤ąSūŗį§Żć(ƒäŗ“±åĄnęXo屘ćBOcąAaŚŻŽ­ Üō¶%ŪūzćŚÕ ģŚ5ŪEŽŪļ‹EÜ5ŚŻŃ WŻ×öÜņ öŪ[³Ś~H ŁČ&Ł!ŗ›Ł*ŪĄ•»ŻcŌłą«L]äd/UēMué°zg꫊ęéclĶēHB8äq!’ßwŌ‚Ś*»Õ„ž¾ŃŽėŚĪ˜y1ĶtžĒĢl–Ķ9Ē€ĻfD2Ņb”Õ¢xÅדģŁ43®ŪƲPŻ[°+ß²nį”äņÕč Įė³ œļQĆóŖW;ųØ)µü˜Ķ„Ķ„p† ā—,¼k}f-NžĄhžA°[ż›KOżćśžą’'mÄ’ †’tŌ1žōļĖüb–ūZĆīśZ^ģś¾ qūü@üÜżżč__ż<Āäü”jū¦|ł0Wöu¬ŠóąčåšŚŅ…īᐆģ @ ė7źŒ‡ źFqź°»ėsN{ė:ÆfėØīļźG†źžŅ°ź÷P¶ėæ%aķø 3ļ‡*ĢšbņN’įņAādó4ŚÉó©ć^ōp nõ×k*÷3³ł|QżńšMĒ?™­ ų®Ż 3µH‰V[⢆äū””‡”Ł ”ž‹”¤’Zhįūysłźl*ųš£÷¾÷eų_njų–ļųžāłķriūÕrż÷£·’½ąČģ’|1vizDīŌä ,”2Öż‹tūqœśøęłe„ūŲ–qż9ցSpÉ„{õŠ²Ü śÖT _Ī wõÜ6®ĀIe .Œ ŠŹ ū¾”ā„ōŽņor·D#YSI¾a6®žńŽ1lĮFŽ ĖLŁt{G)ĶŌ[‹©©ļF"3«j#t’ #"äl!'cQxĆŽ;§1€œ .Iµ,#ƒ<~·*5ŲŹ-¢!åÅlÆ 7źJ ±9 -’ ¼Ä AæI ':ä ? ŃZ±ūŲzZ˜Yšīœż;…ūķłDśY'åł®ŒIś§QTūѿѥ’Ņ5QBNXņ° [1† °źŠ‚Q/ž\ß KK?  ģ [›, E+ģÖģö8M āV »vr ģ¤ !¾ŽEĮ’ŪsJ^U9®Ķ˜—yb£™^Ćz„ƒž!Ń4¾"æØĘ"}’²!SĖp^†]&į”cł‰gÖČt&Ŗˆ“o:“ Ÿų õz•uq9vn¬ØˆZ)žAˆ 7®Ļ!}H"_N"ŚP;"¼kG"t#ƒ"[Są"Õ”E#s6›#MĘŲ#Xƒü#¶ö#˜-æ#g=r#M®0#Msā"sØM"ÖM!xīO5YČņŗŲo*äÓ¹5OsŠ’G,: °süXŸh½!Į ÷ĆźhŚłÕą”NH;õ³mLÖ­ dƒ MēM [Ī f[ X8¤pŲ§Ķ’ŗ_Oū’ ŗ÷l®lõ½nō­ō“ŠDöDtł3óTž‚„~ Ā sAĖJ‰ą^će½±6 Œ±ž!ž‹"Ģc"«y!õ• ĮōvåõDk_3Č*u¦½óĻvÓ˜†lš„¶‡Ą…ĶŽŠ_$d©~Ųņ ‰«ĒW4£źĢóóø& åg &ļfÄ:Så’u‰żÄ·“ü1ņżć:łžRÓĄ‚‚ī–E᱿ Ÿ Õó( ȳ ķ Vņ‚woMūĆāöźššóÓҶņؕ1ó=ŹWõód ł©J’żæ›²“l B­¤Œ飯Čc ŗ%āŗLOūI« · A›6ĀĆ]Uģłž,ĪüĆŅŻśńåBł“R*ų*x¶÷O Ś÷TĀSųülÕų·_8ł\T™łOśż×±ū×'šż‘<ž~P oōĢŌ K®5E3…U¹*œ ŽĘŒ ś‚÷?Bµ.ÜōŠ©)<˜Įōpvē’Šżź:±ūøn‹ł*™Łö*KQó†”öīń#:źÉpŗå"“āåżzßŅ>bŽ„‚ōŽjņ`įž§‘åšĖėųkļšļYMöķĮPś6Årüš‰üӃĮśYL™÷®®Ķó|;š³›ķtµCģĖNģМģ9ķC?­ķ:Ōīž„Ģī_nŠļ”œ’š§D+ņėŲQóŌÖ²ōq^ĀöŃCčłūj=žjżd:ß²”Jw vņ&³W„h»Ŗ¤7oń( dp£<ĖBć™ HŽS rWŠ›_ž3¦³>’ˆtCż§ü‡ūJ)żł_Jtų”ĢįökRõ‡gÓó2źvņe³Rń‡v‰š£tHšŒ(¹šP›ßńĆųóŲ%õ7-VöS²öPŽö’1Wō„ĆŌńØeļ5ģ÷bźpÖču™Pčœf(č8­ąē_ŅēŚeŹåę&9ä&ĶāQyŹį[·EįŻ“Qį³/ā:Gäqs6ēO{„ėģž£š½ų4õ ~ų>蜐tśhmńų+‘4÷²īRõ“"£ó|~vņģņņ2‡)ó[Ä»óD0{ō1ŸļōreŻōx3Kōz$yóA©ņ5'Hņ¼żņžž\óšš5ō®i›ō·Ė=ōŲBóŠ&Lńs–cŲķosķ»Cųģp…ķ‹Hī2·ŁīÆ(ļēīUéÕīOńļųśdļ¢Ć¼ļž9čļ³ėļøŪźļ: šĀZš½”·š ō ńt:`ń†ÖńG}ŽņĮŁ‹óĢä»ōĀ£ödi÷ø¬ł ąś¼ģįūŅß·ü÷Ģ żD3öüÕ §ü *3ü ؖū홿śr—ł8šų½ÕEöW\ōbŻņ£²ŽńÆ×6ń‚@Āń®Ąņ mšóšēŁóÄĆKóOY%ņæÜŃšJ®ļ;gÄīĘĶķ8U~ģ[IŠź¹* éź,ē$Æę ®ę ÄęT;ē­"ēļnę&ĢĮå 9 å›ŌähQåf“˜ęčH“č‚ ”ė„åīFņ“øšōńżöūų”ö»pcözu»õPõ5bŠō|“)õ'58öŠęė÷»ąś{­-üO² žū‰J’¬žĄ’7q’y—žģ‚ż(dü†7Aū0éūłźšų×=Ķö. ųōK­*óHĄ³ń߅€š{qÖļ“ļÉŽš˜-ėšĀ£;ņŃé ō£rö`2młN’Čü2²*ycMŸÄ+€Ė:­ ¢†¹ 2Ød\X¶éœU·`³Ć@µ Ź€ˆ˜Óg–īóµ‰Ug(9™7¦— •ŹBŠZšßĒ‘vĻš»ż!”…Č: 737ēĀwg- Ą#ŽÕ5õS¦ˆņņż•ūžĆpłĪt”ųŹ…ų©DĀų‚Ŗļų½ÜÜųօ£ų*·„ųŽt±ųX$łĆa|ł xuł=Wł(fEųļ‹q÷’GŌöjįÅöX`—÷±Ī„łaš•üÜs‰kģŠśS Ņ‚ µ][÷Ėׁ£~Kšw\?ńØĖØiµąōĄö·ė L» ”7~éĀų FĖE*e€Żp‘¢Ž1ś×aæVč~ Č++ 2ŽŽ Y aą$Iņx¾TŪ WJ ßRĪ Æ< 8C!0²°'›±Ń O¬ ŅŅ %‘ĒĒ=˜;QĪg<’÷öH„ĀwŠÆ ļƒ {õüYč“’ˆ$­ū§ųqųvŌdöΐØõ¹L>öw„,ųLÆwūgpż’'øc˜) Ą<Ä<ē³»\Œˆ®ķ§HŪ””Ķā9śv”UĶŖø± C• •\·VĻåŹęÖĒE!õž*œHż÷žįūfä’śz™įśŸĒØūæ5?żĢZ\’¾ž›Žm…rRÄ†–²!To™ŸWżaõłŪī÷ĶŲ'õŽ\ōœ°§ōėöIźż÷źVśS%}üetÄżLµŗżŁ…NüŹÜĘł…z¬ö®ĖŒóSģ¹šµ+CīÕ\0찜¢ź²Śé#±źÓŃCė“PķZģļōé¾ņJ®}õ<ųyĘ`śfĖ€üó9DžŚš’g²+«ĮRJfp’õr}žMfż}ü ³üÖN3ü`«²ü‰x&ż‰Nż‚ČhüĖ,Iū¤!zśĢÕś¶ęēü)­ųĮ„å¼# įč‚t*§•©nnĮŸƒ L źĪĪ^°¶‚偱 Ąw óŽŽ —ńļų?ąĒ®—C Žxˆ Į'6 \)Y }:,y† f~gqvžĒ…ü£§śé>ßųZ“O÷Ņ^Ōõ bōT)óhĄ…ņ ŽČņ@<ō‚(_öé:łN’&ü"TŸžQDoź(ō”‘yR’ä®9żxļ‡śŹ¹«÷.õ›„vó)Žžņó9rņUŪ„ņ=Źó“ō6\ųõÅ>>ł'3žō¼ń 0M }uO#Jdސ/§ųsh½9gŲešlé’y,‘%“źŖŒ'• ­]a ŽY3 «` >'õ ē;­ f ģ% r^ ­} AĢņPMzmڊśÄ5Ķ=ž&Šū–|é÷w÷ōōÉ„ņ†šnń»£ńÖUhóǬöōūYG¬ōhwģŽ.Ÿ fčé kČ ÜäT ¤Dčr%>‰ŠpŖ‘+.B?µ‡’śB’ĖZ’¦eŪ’Śr󐎕u±AED üY² §KĘ9&™Äl³-8ĘEŠ¢ī3zl„ĮŃVž–›  )mO „ŁD Ź™č ŠØ¼ +źT ƒ‘Š ėa Zõ ņ¤q × Nž ¹“ ™ł u³‘Ɉ¬n7ĶÖEślWöqK ædm ĮCŻ5č„,k‚cCh˜‰ā­Ā Ńò sµĪ k³ «<< „A‘ Ų¤]|9;’|¼Ļü{H‘ūōÓ«ū§żó'’ėü°ß’ŒÅ †Dųh)½oź¢`MwłŸ0Æ9šŁņå^g®OŲ;”2¤M 49ļųģŖ§WLϽł)0æZÓvGW ä  pĄ>fĢ•'Ą¬q /Ph5zī󋙁8Pa{Ž LjfāĮz%LDŅ5Ü’“ūæū×$K„,× ™tN9@’ˆœųÉnEĘźąY‰4ė¢s¾ū”H ē¤htGš( .]žš›ļūī•čł©ÓVų#8B÷Ō«öŁŻ‘ör‚öĮ¬/÷Šuł÷ŒI‡ųę…pų3Q÷L½šōÓĄpńh9cķ(šéŠžÕęUˆåšÕåF^ŖēłŽÜź¹;ļģ©Õól×OųĖzĖū„œĻż,>Wž ūÜżcp&ż·xćü^^ż]’wžĘ3å’»ń_ów© $ˆ¤TŁšö¢m$ń5/nw?yĶe.+Ķ’ ‰’Ä¢…’5]Œ’AId’Gõž»NMžƗżN< ż’ĢüY¢Ģü!ŖĻü‹>‚ühŸ ū^ŠśŅ=ų™qö_˜ õ½åfōiō;^õót"Ļó¦× óŅIó„pór˜±ņ©tķń-ģ·š¤Ż3ļ’P«ķsGtģ’čŲėĄģĢJ/ķsō)ﮌ¼ńR…ōk÷¬t#ł,aaśŖśxÜł)é÷æHīōśŹAń·%cķčØŃéLŸŁęė+‹ä—ŽćāV¤ęįń(ƒįĢ ‹įž³Ąįž¦čဠÓį8©dį#v­ąVõīß­|ߦ …ß>ą"čącžā_āqćqAŚäŠ&ęgēēbKŠē–0Cēä½[ęóžå=ĆĻćøāÆŅŻįfŽ=įƒĒéąŖ?żąįkpį>dā.S\āg”1ā‹ķtᆨ-ąņ¦Ž7ź’ÜŖ¶uŪż–GŚä@µŁģØńŁl7 ŪńšÜ µ_ß§]÷įīĮ/ä)…åu‰„åeŗ‡äC``āŗƒßx½LÜĻŚكŲKÖDĮ:Ō,Ó¹•EÓ7pԐM֑-eŲ·jŚ~éYÜė}UŽ®z~ąļŻā’śXå#nĀēI1öé»Xģ$xīM·ń#£]õ޲½łF$ž3›š"^³ĀQ œI+z£sŖ¦“FÅ({>žč ūÉ%DąiYä‡:÷GC’ŒUĀžŅŃžū½L’cÜ’]•Ģ0‹’` ÷ż8ÄOū‹xĮ÷UGøó|µļåY5ģ­©éžĢ^č48qč)ķĆéfZüėĆ\‹īājÅš ņ›ŲLņD3ńZ…WšQ%ļŸzVī Ó .„ī“ŁLļQūļߏ‹š¢÷š’XńGŖäńĆvĶņ°€1ō³[öCžfų #ūSBHžmŅLœĪÅG ŠI •D ś­§O KĒ ģ:ū}eĪž9üĪ¢kūYļ^ū½$„ū§ƒāū‡}ųūĮšüµUNüwMżmRtž/ l‚䯙ü½=ĢŠųŌćŖ¶7•s·żWƒ üŚxūyA üIńż”ö²†%™”÷§ŌÆ ĄŖBøG d5J„ž6r ÕX/  —u”÷5aœ(E«NrBuk7ó¤rZJųįÖJ †ģ›ėR{k] ķäų5ŻųW'r®«Ÿ…ķN!čkē"HēG#ļ,i"Ź] s¹Ÿ.–S(¢ŗ¬‹Ż¦oQ9UŌŸ P½fā j§Å (w elŁ [¼ r† å’ «4 §vGjX‰hĘöŖ¶kż žSūÜLół!ufłcIĢłŲpHū,©ŲżF„9Nīæpfćū FķÅ –$K _ó ¬* šF šqi :p± RŁ ¾0G Ei$ č­` ą­ŗ ććī «zó ņ6 tÉ /Gy ßK5ļ¼ŠšLųł_LµwßS =¬ē•Ńt;Ür?W_ņÄ{Mb¼O`ņpķ S3;«@”Rįƒń&Ūµy“Åŗ±×5ŸE!C£Ć#“X„%wń&Éņ¬'ņØŌ'ö®c'rj\&ųöĻ$’å"ˆąŚ ā óNĢqcQU’Y ­¼rZwkX8 “!ö¾άKŽf’k(=†«'›k))»źi}3?s 5x>@pŹ kž”‘Ÿü< üܐüžā* ˌ”h9%Ķø<Ļtņ›uÕļ%ÉĄżĒÆ\įžLZœüõļUūÕ4ū‡|6ü:®Jž;YēF%ņŻ Õ“ĘS®ŒRĘŅķ.Ž®–,M# !ĀX !G$ R½ŽmNö?ķv?‘dŪ¢RS0V³Ā·P1^#–_CözļZ¹Żę˜\ʇ"4É(Ē›V_6ģÜ®Ęę’Ui ¹p čß ü}‹Ŗvś­‡;Ę’Ł:Ąž.¶Õž”4EśˆLŒ„ć{A„) ČĖš·j$ż;ć ¦ģ/’Ē6›ü˜žś¦Mełyłˆ/±łZCLū—ĮĆż”ŲŠ÷Ŗ ˆć Š} /Ū( \Øå ¬ć© 1VŽ ‚ŽÉ²™Mƒ?ŠĄŅ ±v’æėQżĒU“ū†›nś‡ śs^Gś((źśś×‘ū »’ūć‹4ü›‚nüį>żāOž”%rćłmõ-ē°ś ŖDŠ›‚3É ĄC<āĆ£ rh ˆčó sŠf÷{Æ*lü;©4’É&ˆü‚@.ś°"^ųļ‡'÷é]ö§õ·`øōō¤sóńÉäń)šgY`ī[²“ģ„Liė@sČźÜĻżź’®ģRõ¤ķLpŠļ+|Mń£”ŠņIköņLæhņ¦äš5{„ī®Ž$ģjęńé@#ƒč®÷ čUW^č0å éŌ3ó鏕ź]ąėG¾Ņ뫹gėżŃæźźāqÄéĪõ3ź»_¼ėÕ}īpīNņ*&Õö«¢©ūPnQøĀ5ß> ŗˆ ėżz  ć4 “ °EOr5]ś* śŅÄ’ 9żæoHśZ ’ö鲗ó piš łÄķĻēµėņG9źŗ6éQ‹čŃčmјē+VöęąYęŠPóä µĻćmŽāüÕ@ā8¦ųįe³ųįVĀ/āßˆā¦ŠģāŻŌUćZÕćš5Žä»#›åŹnžęNJščš—7ź]ߛėT§žģ¤­8ķŹķ„ķɖ©ķŒ·ķg¤ŸķNœMķE^Ąģ6ĘģõžėūuĶė+Üņė®A[ģ‡łģ¹aŻķ8j0ļńqŖóµ©ö¤„Ćł„üä˜ ’æ»Ńķt)Šįœ’‚mżøģõśÄ!¢ų§ŻĻõ vbōmóéC½ņŗ²ņ:¹Dń5Jš/l@ļ²MīUśŖķœa‚ķā†Ōķ}©rļī•cļ!ŽCļQ5ĀīĻ#īŒ*°ķƒģ~ķ’rķĻjZķ,¬ķ—įŸģÕ{łėKÆ8ė]«~źŠ!÷é !Öé^/Jź’¤bė °żģØĪīŲ¶š¦‚Ōń:­ņÖīņæšuņ¼,ńż1ļČļģå2ė«öIźryŖź¹ 2ģŃĪcīBM¤šutvņÓqœó> ō(øQō—Ń“ōSÕĒõXšĒ÷%0Žś#!”ż3„‚ž„.ģƒĒ V7z‘žŒ<Õü­«(ū½=_ś²L ś±H’łu ś{±ś6öłb‹™ł~Ūäų{#Ł÷S‘öKū3õ1 ßóčļņŚLyńž‰•šø;šµ²š ņDš÷óyžõ‰Ŗ÷g7Ēųw]\łŚäł0­ŅłOČ;ś•ūŁ$Gü jõżĶŽ’ņ ŖĞģDkF–—”õ°‚śžūœąü®žśm#ołÅ'?ųą”÷™go÷Yī÷Æü’ųQlö Ī÷\øšłW¾ūß:ćż@ą’h•Ė ō‡;ōąS‘’üĢ6s°ųÓLœ½ھ%¹u›[]#`±]¬’ŖJ‘žŗS™żõpżü^2ÖüŗżY“-żlžümT?üyõśą.IłŲĒq÷4„õG ō$›­ņוńųŽÅš­Mše5*šaŃOš/š¬š†:ńŠą’ńķbóģp7ōZœ”õQę÷°øŠųR’ĖśUšõüĒ’@-Ķ©NŠIļĀ\BśŃ'_õ ’Źj›žĘŹČž`®’2#4Nz;r©š M0x °Łl Äܵ ¤C(Ĥ ĄlF ‰mM ¬āœ’ZĪŽøŲŽ}Ą[ąīIēš÷.–¼¶É$i”ĘQ^DDÓdŗ™IiU»õĄ£W_qžW5{jŹž Œ€ż³ćWżĖ~EżN„ŻżÕ{ ’$„oöuH’­ź.,ÜO-É:Šķū?v-Ŗ“żn͇_ķm’Uć¼žĶ‹žŠ9’ž“©;J P@5"H+i/kÄ ĘO橝øćčŽęĆ\‰#q–ˆ¬‰0ŁŌ’w‰ŠvĘėŪvWŽÄmÄ÷łĘvšQNjó–Iä Ś¶S ™“g (V& ž=f öEß ³M OO} ›BB łšz Ī !43½DōWČ«öõ²ÓRvÕ²’>ÕŻ’%gĶčk)‡tĢ‚QR LŚ §ć ICÖ Šż JÆ øļ@Ļ^Ų6k[åCMÉ,Ė|š’"sķž•ųŌžc$?’÷¤[Ń<ĢŃŪ$ŚENąD 8WĘ “l3Y+q@G€wY!UDŪūˆĪ±MD£“įĻg `Ķ󿶦ņ{Ģé§ćnŽpļ½ qĄ ų: }R0äā<å³÷,¶Ü™lV› ;­˜{`ō$|KZ–=M °< mÖn ‹$Šs CŌ?VŅšwg”ѳ@łžLAl|+”«ī»‚~ėļK z?Ł …jv łž÷ =< ½1 °jÓ ­š ey Q†Ų,Rs.B% –KC>¶$‘=]dĆeBW¢ŗ'š)‹½’’ ’,ēĻžY7%’Å0_eZ®Øõ’ßšł г’Iž·CĪ—ŗ óJ›Wņ«kŹń“š_Ī«Žn!æ bY¾Ńār½ū; a sv ŗSg 3Ža ?iƒ}‹Ī±=5mm®ҚBo‘‰ē ’˱@žZ‡ż'%½üfuĪūomÆśūZ]łė~³÷°.°õ‚i\óō¬ßšoŸ~īšģvAoė(ņZėQxlģÖO‡ī­›Vń‰eXōĶöö±ųżĆJłXŁųg4¶÷~PöĢYõ‚¹żół«kó(žió„2:ō‚¢^õsĆöĘĄųP]łŲ¬ł„³#ś%zÓśćMü¾µžö]µĖ¼Ŗ>t‰`kŻŲD CŠ Ą½ ܘ$—–SĄWĪ=Œ/ÓóĆ’¤čŪž§ŒÜżŠ¢ü#=ūkõčł±Žžų/ņÉų¼L_łW½ś²§ü KżM'žõé_žš žy‹żČWĮü’ÕĮū&«xś®Óųł†Öö͉ōņD>bļÄÆģ#Sźłž“ēnžåcŒoäŃX;䯳 åŶ°ę‰…Ųč< ėŸŁģZķķ3īt8Óķ8ķćŻjģī čėŖnšėG `ėZBė› Wź‚Ņéf8Y癄\åŪ®’ć™T|ā|sā†üˆćĘ“ƒå/]ųēukźL”qģĆĻĢķ9s|īų“īz¶Įī†Žōīāeļ$ˆ«š6ŌGņd4ō5 öż¤÷<Š^ųeHųQu½ö<øōE.zņÜgxšēSöī‡]īõū„ķÜu[ķ{×Sķ%“9ķDQćģóŻ@ģžŸYė~?źH« éŌ‘×ē8ĢŠę“ę};»å)&Āå•ę«Äzężü×ęxWüęČĢĆę ęÉsåX>šć˜õį©&&ą_A7Ž •D܆7ŽŚ›öqŁūqQŁl:iŚ»«Üž¼¼ßœ“ćQ¢AęČÆÖč^ ¼źĖżės˜ĀģSD;ķW•ķ÷ī®;Ćīķ.štņÉõē±Ėłė žāÄót÷š³ÄigUMiē:Šä˜¬Āōęߣb/’3ńb'ŽTmöŅ}’1«¶,.…¾;©‡¤į%d!#s7õÆĢ’ōūż^F ūåųžgö“ØPó‡Ķ ń­Öfļ@g|īaŽ5ī˜wWīų īą;Śīāŗļ=p0ļ³=bļC‰’ļu§§ļŗŠŒļš=ļmźĀīˆ-īīĶžķ±cPķ;åƒķöjī Óš'Lņš]ēō(VÆ÷„…śńjżŠź^‚jDéÜčOŲÄŻņea —;_":ÆĻ!…t‹ GŻ­aģ”]5“ŌńJTŪ¢_’^’÷§ż/ÄŽū]æśŪŽkśŅeĻśė§ū×ć”üy.Bż,&}ż4dFżŸŒČüžÓ>üČŻūåÄūJ9üHšüQŻpżIvžD·”’hŸķŽN‹Ü©źCÓó®Ÿ,(÷R~ŪĖN[eYŒ2²Šņģ‹[d©xE’¤½żĒ0šū`¬śl§7ų^Čö‰Jģõ>>ŹõpŚyööu’÷wXAś_¼żü*ČŃ’ÉXSóʱĢćŒŚś6ięEd_XĄ17·j“ŪꙣÆĀø?Pž¶· ņžü°‘ĢJ dŁØ źÓ  ʝ/ •/Øß ß ĖB±A’,˦Į_¦6µ©ÕVM¤+Ó8!m‡š>`ü\–Ōy¦iUŃ ń!T S! JāXuŪĶ<‚³ų·5¢śŪ+üXB’÷w¢$#©*Ć m¹Õ ¤l˜ KŚ ]#! Ew>ĒĪĖ ėąŸ EÕÄ ž¶ų3tżę^Có5Ī]5-ńÖ6[D#\™ė½ŽA µŗčG«µ$@×0t‡ß»źmyŽT†šKę réāé’,ĶēŲ`ŘBĶeŚrAt) ŃŚķ³Œ¬§"CĀŗµ;tŽ^ū{ćĶöG BlŽ\M»M£±ŖŽąś–$-rƒ{ĮĄ[ĶÉ·žåµ`źÆ}4g ¶ā§ ō‘G tŪ{ (O/ Æž; łŃq°³˜ s5ĒĘ)QlC8]\0ø 9· ‡Õ” Ō½üćK{‘`ĄŃéCĒ7ń Į`¤ tćd1s¦ŗ1·…Ü»mq]š ĘN 0#Ó óa`!v„"äIč"[¹#æyK$މb$oŁ#ZÆ"Yš!érxåōW½Åõ|æ4Uqi€b?!_Yš;Z†–ɗ-Ė°ŁŚH ‚Ęe„6Ø^ļāŖ7rEcM mÖŖ ]¼¤ ÕŪ+ “ń}ģv™Õk¬t¢^Lü× MĻ{™ šŠ$ć’_«˜Åģe¶żvGpūÜ+ś†x˜łé…śłŁūƒ<×ü³YźžŠ£[Ė—‚3‘6Fq|ʁżÖŖ†Ś Å dv|č+ż’ 3Ī’M†’V˜"’׌³žķyOžŽhžŸĻż5½øżś6Ņż¤?ž;8)’¦9§q²Ļņ#?ŸĮÕÅN x$— ˜jox²ŖG311„%…Uw—µ9 ±Įź Ėa„ \9ę@žńŲ µƒ ÜO’&J’üģ¶ėł’s÷äIõ¢~‹óNÄHņAĖŖńtŽXń6ĶańGĮńOykņ›Aó›$ō?š·ō@Óōō`Hōōcˆó ¢ń®hśīŠĶė„Z‰čĒE¹åZ…Žć}X?ć­éĢć575å‹Ę ēęŅéč–+€źOńŸė/h?ģ­wģ‹ĀvģśĖzģI,ĘģĖd™ķį#$ļZŠzńÜ'–ōŚ?Xųœ€‚ü0†®[mV]kųžśBĶī-¢öb×IҰݲ²ŲžH{Dż0JŽūæĒ‚ś|ĘłBĮŸ÷›#öv­·ōAró`ņ_ņž)~ń|£øšČgńļŸć ļ#¦ńķšÄ¤ģ Ā8ėo%ĪéZččMHdēė wę£ŅÆå9sżä*Xeäx-ŅćÅ©vć’ćą6^ä0(ņå!2č¾LÓźÉ1mķA“ļX#ōšdińŅdüš@ęŪļø†PīF]ÆģåłIė•F^źœ źŚ?ź¤ŁŲźŽ'žėņīeģ<#ķ%!éķ}ŻīĀ£šW^”ń–•Vó^ūõS{Ēö«IųĢ7„ł_.cśUźŽśƒDśś 8¼śŽĘ0śž:nłD–’ų`Õ·÷,_éö¤.$öŻ{`õ'œō¬5ąóźŖB󬵹ņ©[ĻņĘx óĪžtó%"Õó÷ūóֈŃó“!bóŠĻÓņoģHņäwĘńyÓ6ń… „š n®ļ-}Źīoķķyķ^õWģz%—ė`IķźV‰źURźy[*ė<[ģ…Cī~¢ąļ‰¤«ńx óø$²óükfó±Ū(ņoÄ>šĻĘ%īw£ŽģŹģ-ģž…ųģ Š-īƒkļÓ«^šīõÜš&óšŽJäš"Ś ńŠĀń¶.óé?õ>i¬÷­Øśģ'Śūpyżdp†ż9£§żµ¦żØõ°ż€FŚżŹžgĻIž.«Tž² žžż=Ėü­|Æūhaś!ėüųĀpœ÷ÉųOöæ'(õLöCōi®ĪóƒWéóŪs‘ōÓæ™õ—²¾öŹ~Å÷H+“ų>ä1łšiÄłń£nśwjDū„6Hü“3qżÖ¬žU–×’YżĀߐ/Ė"āœĒĆ’Ņ’ż+Ųóū¦į śÉŪčųāŅrųp³«ų½"]ł’¼Eś’+ūśæēūō aüĘćŒü|ēoüŁ3Rü®üĢžū.š.ü‡rÆü¶ÄgżqE*žÓžłŗn’ é? „²åwO ©ņŅ ¹šĄĄ’BÜĻ蔇ļĘ:*vL׋"eā.ŽU~ qi\ ³Ģ4};@+ `V›\Ŗ9&ū@ž¾h™”4Ćö ¶µž‚ †āQ÷æbžY °¹w ¢x؜L/h.ō›SżŪÜśtõÓųŠpF÷"²Hö.Īņõ7Jö³*÷ӖFųÖīBłqßłŲ#ś§k»ł ½,ł?ųč ųŽ ų ›æųŌ6 śØĒńū4@Vž±¹ėź5ū8ŹæJ ž ܂?qC”KuĆRŪ}X@ėŅ Sz !VŖ •~ XōĶ  y= ‚śd māų :?ē †{X  Ć•D!źqďMž©„@TXC„&‘ęĶ (šä¼;x¤ī.,³ŲZŠ_wux®p ėLn Ćf_ ”3B GŅ" P÷Ęį nz$u’¢EųJĀ™ ¦ó ½łÄķZ‘óĖ•“žāĢ5ūōŪ.ų½ØõœĆóō•“ņµ°ņ¤öeņ¶ƒ_óÓYōō²IņöÓ¬łć©öś^W`üŻĀżhūżüŖō%ü­˜Āśš"łBi–÷ZXöŁ õ…–)õrŚõ[š&õr²1õöĄõ~WŪō]ę’ōł±zō8 ÖōJ(öĻč”÷ć£łš'ü`&ĪžjŖ> ”1Ȉ‡ŽVI2©–ŠRéøH@īŅ] C.#²ć¬.3ׯŖfźŚN:IGL ’Ÿ® žūĀDż¼Õūüø(ż“ż ŪöżßŹ#žH® ž½żē;żhp‹üĪ*®ūt0®śPg£ł€z¬ųŹß÷ÆK8÷ œöģĆäõVŗłō[bŻóV|­ņ(¹›ńęéš2iäšŗyÓń Ōó‘p½ö2qśdYOż ½Ź’8¶4‰R†_u{9j’»©ižQ6ž6¤žŹ0Ą’é+Fŗƒ ,Tæō <µµ xz ^“V „F®&„†B‚Œ_ ˆ$s!½|e½„Ęr„ ČfŠm(śµT`y»Tƞ2 Q5Śī„™:OUahdę°ŹGH’/~Šž’Ź£ž¬Ū†’üéžģ/Ķjø»ļ]ŸP#P ŽŸ ±æY õ€V €0 4ņ&Ę+\cl4Ü%²Łå’ĀcČżä½õüecŹü!fpż…×’aõ…gŌ÷ĢŖ¤Ś« künņø‘jĪģ¼­ds—:åc±šŌߑm+&ØŌ¾2‰AՙŸfwŚ*±öąńLOČ©-‡Ź“L fyJ lBu MŠļ 3± l⚠C„w  ,) Ž/Ę^y{@Öak7Ļ·® pˆ3jYZ‚³Š$¬ ÷•ā r] Ļ] XÉė b4Ŗb›ŌX\;ƒÆĆ’«¼-b«/ēĆøQśa²7Xb`žöež9TÆæK¼ q"ėÜż2“³3 †y¤ = AŸĖ ’Ž7 †B§ cH óF9 œos Odæ2įÉŁČK`Ÿ0$ؤQBŅ'Ø«ÅĪńŽsš”dN”a»m?<ĆńąT{¶Ś„Ē®ō„J "Sž6¹"0\Ū'†mæoī ”¼v &Pq lb\ *F pmąNń½‘•ą ‡ør Ž{ļ *–ø Øō °ķŃ cŚt ŻĪłs ~„|"ū“’ī¤IźČp`XičŅ'ćw»ž" Hż°ūūL ūP¼ŠśŒµśŪń¤ūökż¹U9K„ ēę ‰8+öXē‚LÉL0ĒųGå½EĪÉT1/Ä/zļ%#gˆĶ‘%„īå"““ §æŒ ³Ox ok€ 3„  ~Č„Fä§Ēź įųÆĖ®ÅµøäœÆ2x­<×QŲžfÖXżä°lūõ“łJP#öŠŻņ7”}ļbhģ`÷źĄńŁčßī éø¶³źī¢ķõ)eńYõ‚®Õųš˜VūŲšüŅ©üŁØĘūźSśŒ“ųI•@÷«ž<ö†3Šõ÷2ūõžÓ•ö’˜a÷–0$ųŻ/¾ųĒ_3ł7ž łzŚ)śęŅåś¼ÜūkõżĪšQž ę•’Ö„§“²dW4ÄłŁø Ģŗ&Āx Ō?ūq„›źŌuŹwSĶ’ÉO"žherüų©*ūœ”śŹęõś5£ü#1{ż‚ųžiĀ,Ż‹ėøł-0NwÕ?Ø’jԁžImż2õxūPĆĆłDqų lDöˆ›tōµ›˜ņ–Ž•šÜvī{ÅPģa¹Eźē÷čéŒ3ēĻ2|ęüdę_¬Ųę£|øē ?ąčéd4ź½o ėe9ķ.į\īU^ļwŪļ"¢¢ļŚ”īˆ›¶ģ ŗ:ź фē^’åöĻgć߶⩤öāĻäćŪI å„!Wę)’TēF č…–čŠŲ鋖ŠéŠsŲźŖ4Jģ7$ī‹`Mš’ršņ'÷ŌōęHĆö’Ą2ų¶°ł”Tłq•ųµ€y÷ö7ķõßķōØAņņ‚˜šģ”VļfIī\‘#īl–ćķŸz—ķŪ³!ķ)v„ģ,ŪėŠ_Nėķo’ź„ņžźĄqHė9FČėaģ^HóģŚ×Yķa1iķYöģHąäė+M8ź©gčµĶeåh‘āąį|ąŅ؜Ż&3Ū-%Ł[7Ų£f€ŲĄ³ŚJ؟Üōīßu¤ćzü0ēĘöŽź˜~ķ\Żļx#ˆńłaņ–šhņÜIĻńgĢń؈’š¬-ń§D¬ņ2łwõYäł°±üX¹ć’”č%Ņ…CżMų ‹E:d?‡A¤x’TI@’{,Ŗ’> ¢Rßók\ŗ ·É™„:ĮzŚPØe³B2œ’ēĄ#Śščžŗ{ü„ūł<¼Ž÷IXõńštóOöń‡ūŁš›6𿨂ļ`ė.ļJO ļr jļ2EšDøńgé/ņgĢAó©(ō$ō{¾·ō2żpōEÖßóÓŲ/󦜎ņųrņüp>ņG¼VņŌ,Óņ“fŁóŪAŽõnWū÷YąūśG>ž4WP½ÜźA€õƒ"īAŚ“xā©~¹oäM<­Ż›ž‡Ķż¦:²ūw’ś4ˆÉł×&błĢQłf$€ł“ÓłŃ66śÆĒ”śdŽś¶ūR‚ūŖÕūmsūń;!ū{Łrū# ūūh¬¹üx;Æż#ĒŽžxĪLĢ2łÉ×ćĮĢ×»®‰L čcu ƒ9 {śÜ   5üŸ*8ćƒKóMb"ßÕLˆWėꏞŲ*żƒ¦ū¢2.ś„Ų9łR•Ņųtüų=Ć„ł‘%²ś°e’ū|eżŻ£·žN4Ī’il‘ļnūź+1„Ęń¼£q&茒Śr’Ż=€’,³3bĮˆCŲIĆĻ%zØĻ_ćtóųy „Ė Šū qŽ ™4Ś j Žc¾%ńł¼(P“ļ'Ÿčn+üӐśó#¬8MtQżq3óXßei³Åł÷Ę”’.Ąēš 6yœ ;’N ½-Ž ø$®Œ &¼ĪK>F“# FŅ®_]ŌŅ繿››*žÖX° Ėa]Ń[ŁŚæČždµäŗ ^Ŗ÷į’0ˆ1b‹Ą·«_ö…Ń;c;÷H6L” ‹H ĀŻU …Ė /¬ŸvćouSrŪĒžg~mī8.fŁN¾2U׬ƈA¦±OōLL£zč²{›RŸė$^ƦµmŹŃć’µPT™œ|ĘišŲŽFŽ|”Ś}uĢ?YÆöwmˆt6ö"ŻץōŃćž~ĘŌĆÉ ƒē …© L>% ÷QS ¶5 }9Q č×Ķ ŠßV#‹ŖKFˆŪæ<Õ;ķ4aZ= ˆH& T% ›œgŸt{O'‘”Ā:Ź÷ —ļ Q±L–³ƝŽ0i¢ćąćGS‘ˆÖ„į0҇U›±Ešˆ-3Ļ"ō30Ōé¶nj!€Œ å[Mzų;c„o ēū×iĘĆ8jåƒÜ5^¦)ō&·Ż9I¬ŁÜĀ_’įÕtŠ3ļfv2ØžYć …;L ąŪ @K ź‡KuN*ØŠlHN"¦kŁuÅų:į Rķ ‘Āž JŲ²ēÖØŠżx÷ś“+ł¾ć†ųɦłM݌śXŽüŠž£’ż1w5õ_LĶeĢ,ß¼Ź z€t4XI÷'ĻnÜTž“$(üUį„ś.Sˆł§%.łMĻVłÄ5ŌłŁwśšūcS”ū?üq^„üVD-żW»CžÜŁī’›4Ż|õa›ō‡[é †ß µł6æųuļ‹u=~!Š&3a ķxr \DF ƒüß[Ktė˜TŁŁž²™ üjƒł³÷šß÷ō:.óĄ³ÅńĶšyĪ^šöa›š'ū–ń½©Gó4P}õɁä÷n[ś­_„ū@fÕūŲIŗś©ŗ&ųųöRō²<“ļ 輀{”ęCćĄlHį‹ŗąŁ½{į#*HćZ…½å%mčL%ńźūķų€īkætļ-( šŲĢwš‹hžš5/ÕńU,óęĪ%õLŹ÷±„ōś¹OžÕldßAæ~%ƒ—ąšžāöµŪV’Շ‡üEųčł ŖÄ÷ƒ Aö `õ|Gõ? õfenrir/config/sound/default/SpeechOn.wav000066400000000000000000002735201513650123000206140ustar00rootroot00000000000000RIFFHwWAVEfmt (ž’€»ī  €Ŗ8›qfactĄ]dataw’OžUY^S£ Ę ·$ž5N'åƒĶÅb«æ›HĪ5®ļ<ō!§ųHƒģ “* aś8īµ»G PŽČƒ>‰ó²§šóš…ļóŸśc»üĪ‘‡Äi1ż0/. (śēø!Ż „8‘ ³„čMÜÖīž¢jóÅ/,šĀ}kńPHčaeØšœŠf'0« Ÿ¤L“¹¹ ļÅ æ¢ĖĆ;£^_ü5Ķ/ļłPu&öęŪ|ŗØ3E8ńæ`ˆZ0_—ÄC~®Ž Æ­RAՃ 6rFj0o’1ą¬:ßĘYšė8°ŻSžĢz•okÄžWĄ*Ŗ¼w w `’é€Ń$Ī 5› oŠų% #R*v{p0Ņyś-ā§(Ļøģ&5‰*•j,Upp&&ᐶęø#ļ?3'<\'÷w+Ó­U/ż^K.rŠZ'Ō5‚‚v™Ń_¾Č}˜-ć³9Rų&ßUm{Ų1ž zĆńI raÓ1ƈöŌ¢Qõ©–šÖIé"‚āzŁčø^zč¹jģƒ.ÓšŃÉ5ųķ” fA…r qdHV 'åķčōzueå`[˜ęĶQõŁĆĖō™bdķ“lń\ŪÆń‹›ś¬ž¾śāS;· ŅīZžHšŹæ§½ŻbĖŅ|ņ¦ęm›µ„™ !Ł 6ƒČ oś?4ĪÕżÅV„ōž>¤łÓÕż¬Źåś§ ßü¼†wõ–U:õųķćõįł˜łC‰×>5­ W]AƒßŽ5č,F€ŅZ—ŸŁūŲ½“Z‡Ž¼ÆkŗcGJę2 Y‹0ZfČģB³€.ź 9C“®åĖž¤©fļfōĢļŖŽsźćÆĒīN÷ŲčŖń+÷ūė¹iĮļ{%äłąŒ’XŗRF•vœ‰ÄČ·Ķ+×Įś3ŃiłĢó,üŽäwŚāŸ¼ćŻp&ųÜ}ōēt)Ōķ #éČį⻩ć]JqźĀ|s횽åB~ĪęNa½ć”"ꑾćę£õéčÕżōB*śń±™ū,·÷† 2ść0Ö“2Āā’{+„ōó\ŁņęwPīŅ”ģPbg鰘|ęJŖOęO(”ÜŚö×£čۜ 2Ł ~‹ŁdǃęĶ91ėkĖ4ęÕ9›ć£8ėęxó)ā›ŽÉāó˜äzyÆéś1ŲėĪ=”ē3¢Åļ×éņ君ń« ņČĪźƒĪē”2Vä˜DŁTŌ#/ Öv;ŚAź ā©¤ėąÜ±ņįZRųv]©ś•Ļ‘õŪ6«ń‰|dóāāeö©ģ‰õ@Ó[šO<ĢņÕō$ļ.\ńrż>*žėé„÷4šE„ź0>`éV¶Īźµ,ņ!Øā’;–gčØž²!¹ż‡ĖZĚ7…ü•”—š7‡ģź(åšņķ!ņāK˜š3BņŒ÷ģ÷¾ŗĄś7‡Ųłz{ńģ—ƒ厢»ć“k7ŻtDŽÜŅ:éęÖģŻōÕ9šč”1ķ` [ź¾Vߤ×'ÜßĆ«ąœŗ›čā8Ī䡉tŁs\ŠXõŅęĢŅšWÕŪݟ[¶ŲT  Ų%–ƒŚ ĆCß(ó>čŠĶ šØé󊒦šØBYų}Ņłü;šóó=[źW(āa&Łö’×¼Ŗį€Øé2FJķŗ/Šńžņŗg č,jčæå+ٽŁLaųŁĖõ€č@ƒåņK`>ų¬9’÷āō8ųB”īō:ćńhÅ ź€ģé§RBóhöö½ĢóäĀÜō“ø4ż‰Ÿ¤üāļ_’½ķ/õśüž/÷ŲžīnŅéY1ė:¦ķRų[Ļ÷mų¶õ.}pśg5æõĀ L‘‚SHÅó¦ŌBń,²“ń1rĀėJuBīR(4÷ą/hł2Eü·Ž"…})iKõØø’Hžžƒų°ńŅmėē ßÜįgŒMŽ ÉćM™^čŠć¢ćb’7įŖ“ūäYśŸē•ZNč!„xņ`iśx”?žŁEM÷ēÖś1ņAüŠwä’łNAóß1×—¹­SĶ8÷¢š3¦c÷ö~„żØśi’Mxć FŖ :JŲ‚‹ńkĒžņųxže÷ļŅ‹’¾ż’’³Ä ­[ böæżK7¹äE BfNŪō,e˜c6. ‰LÕēĢ!±ž ŖÅŠ ±ŌX\t. ß–'y£Į ’ŽĢŃdĉ½ö išhĄ{ńŽ’˜ń‹9=ųŒ­żńķ-ū"¬‹ōćIå÷a÷[øej›żām\ŅŪæĀ%ė’µĶŁt6PGńĖˆwfp(%.Ņž&öÜÕ${PłŁĢTÜM.o›’P‚?śülØDŌ Ķ­“ N:õ©g. ‚1 N%Ąū,ü°õNĆņæ&L÷/ōś×»÷·ąŲś/†,śŖ×éż3…łnpńkuõé€ļ禠ģęˈ‚ģŠżKīGb›ėšśµķ±r$öšĀ5öīeqöœĮmł·ććw ?®Wæ· ĪF‚T³ž’Ćø?¤xžł*«K÷+ üsĄæž"‹’fŠŽōŽń¬8óiČ ņ#~öt&Q÷K”UÜ0Ź©r=ĶkU [2 T³§ĀSšZś[ž\-ņś)0^łGͱg’ƒ!YųŸįĀó†¾Cōąū`ŹU÷²ŻėõOĄ_÷ZÜałgł7ł^œ“fK.»‘ ÉÕę›™õ3q’ † ņ m1mXł łk¬ ¹Z²½_Šh“H!Ÿƒą*y’Rc"a>iy?ēźŌe> ^Ōī „V¬ „8‚6°Ēśų™š\ι#ūÜi±×$AÄ²Źż\+¾żŹė5łF‰łC³Æ­! 0‘q5āĮŗģ³ui<ŗÕrńj’“? ģÄTķ½å° #ĪØū a‘°l_ü#vģ:CtYM⚠ŚĒ(™p .šśīD~ōkDAó9įīé;"īÉ ńü4” Ŗ+ ŗdķ 8WR2·Y,¾Ń mŁĻ€£ 8; .JįōåCė ȀrRB8(Ž-“r¬Y„æR ”"xj’‰g –óļ7«>o •č;/bT1$ś[@7o5„väźrĻū¾ ņŲÕ&WyÄ,ļåœ/¼/N+½’(ˆō)ģaU,Žąć)^Ą$ķ„2#¶ī&26·'C$K*·h%.2ÓM/Ćū‰+ߎŖ$+]$&lŖfP¾žr|h\,Gśö øŅžó&-^ŁĖō ÜŚ tĮ] ’:‚’ĖW ųōs×õĢ4uī>©Ŗčcü§ēńpėŠĢ!ėL²šF¢õꎒÜ;”0 OĂæHē gĆÅ œBśżŽŌļĒęč§!»šćčöū:”ń€Wń#•jóöź ÷ŃŅDüp’.žŲļ}R}ķ CBt ž¼F'ö OäwŲU]šµ„ŹŲČy S¹ š¶M²•¼’iÓͬyłg³ełµZż.žŁü‹#ż^­¾śqr…ö8nį÷ō0µųU¼»’ū`ĮŠŻėAžCikņ”ŅAI„i­tÉŠb“lžšõ¼±Ōnū+2ü?Y0@ZóMdĢZķÓŠ Sń čB™äøCųg0ņĻ]øļ2H×ķ²&!õBēō–n’ļÓ]ŌļAtkö0¢5ž_”zÖ –Ė;ŁļTJ…éŃ:µ üœ[ųŅ [ķlõ)ę^"(ć*ś÷Ž»j¾ä™‚ģ‘ģčDē5¤śä³\žčĮ*<ķ+fźĪ€©ē˜"€ē„ę ܝčZé½ĀŪš'/ųœ¼ū†2­śgøśł‘­u˜4’SrAū\¬Ōõ„ĖņßIźī„BķUĮ[逗ač $ć£F Ü0}…Ü6Œ@ÜDÖæŚF|ÜįøšéŒĶśč³Wę ēš)*ę—/ØćD·…åė·ŚēUHģĆ"fźb\ ķ¬éÕņ]Ļ£ņ’š:óō¹ļ„ĒźSČDč ·pąNøąŲ2.±×ŽŽżŁčwßÜŌēŪ‚°ļ‡—ęõĶśgĒÕųż¾ČōŌAKō¬‰Lö¹f ÷‡^ ō'óŁ“ņ² (ńčńõųĻ„!žbw3ūžźxõWą&ļ°į„ėgŹžėļū²ļi=ś¾ŻåĮ#t’Ń՘42+T uų¾§”škńÓ åņPäRņ.²ņæóVö‰ @ś×óś ē‘ō鋁źSXēŽFā6>ÕŽÜćJؘźkcš†~żņŲé’īŽ‚Óķ„ üå-“Øßé•Įą7 ūåL,æēõĢõßÅ,פśįÓÓ”ՊM;ÕČCįŚŖžŪŪž“YŁżOŪłŽų¼åc¹Åģw›cņ©ńņŸvnõčęśŒL‰öÓ«šZmäēē³!ą„żhŚŹåźŽY£Čęß3Üė~– š%øäņˆO8ī?rŽéłWéąmą‚ ÜtiFćWžšīG¾WõĖ™`ųV¬jų:pā÷>VWōݦ¹ļr:éźX+šˆķ€õ§Źõōblõų4ś™”«żģ©Hžˆ Ķ,’˜­eū•ųCōõā ūųō)įłļ!÷żŻųŚ łV 1śLcž$×6üt~Nō· öE’ č>›²$÷ ^± ­Y önČöAÕųx›õ6u\ņ}ō˜ļ~¼»ö =vƒ9»Hz¤ CÓ Ÿ\ĪŖ"l81°FƒõÕĀ‚ūc•¹ėĮ  8‹.†Ŗ -©I —j)†Y(ŸnFUu”|&ßuŌ’F0˜æšN‰K1ō{Ū³ėYśĶ,ń ˜ā†V:ā ¦”żķ<Ō^¬čtöŌ#"G‚xņ‹į%’(HP-8 M-kÖų)®9*s³>+‰¼W+«Š'6ÉT$›ō®%ų)‹'Č×ß(.7d,Ó{.eóW-*iH(–ŽÉ d°5TVm< ė$ŒZ–+ņS ŹŠäķ–¾< wœ– %™Ą 4öü¾üpč±ųΚqóé®ÅģhfŪébQ—źĆWģ ųcī+ĒóÄgdś[† æF$ļéēH ?ōĮ x·R!’ū÷Anīb¶īŽ„ōīĖóż]%ņ††|óUAĻõK7ś"xż~@nM>€ —§ pŒĢ§BѹäĶf‘ĄV’šÆą S(Ł Õ) &Xł • m£Ģؽ˜XӅ³ż 3ś©čŽü<ćKżĀ©„żŅnü×ŖNłō*0ų Ž’·\$/Ā*cjhćücƉõÓŽ.ņĘB5ólóFQ(ó¬(õ(ßÉųOCĖśOšų³ÜJš#Dź–õXę”į·WĘāsč@¬ķšzŠń›G,ń•¢öīčÄėŸėŖćYā’įkśkäö’ēū¦<ä-‘ÜŽ"E×KÓ֌žT֟ĢßŲgKÜ{†ęŚ­ŃeŪ””ŻC”āUZé|ļĖ6²ņbHō”„LųŌģų”fõóӅ}ķ–āGå¾źßcĒŽqę"äq iéēVīŒß›ń,ąšĄ²dģ`Ģ’ź²Šå]äBß)ųgį ÓØéćxéń_’uö’zųBåbųŪ:Ąö²mÆņ`pīk†īä|×óµ$õˆUkõ…Ÿ)ųōXü²2ļżž]ņ’-ųi|źzżi–æųl ņš³ī3hCīdo­ńM^Źö$nä÷ėš_ųH<üüÆ™™”×Å·Ž(hļ >łų”ˆõCūņ©ÆŚļ>sņH²÷i śöwžŽŲū\Ć%Ž:€ŌCmż;YŪō2‘1ģfŚ®ęŒ7Ÿć5#«ęŌxēņaĮåšüäw-ēÜ%¢č;'ģœ5)ójC©łO7€ūy{·śėÅüŚNž »Żł’:Źķ;J*Nęķ Æū¹,÷ pśŃ™…żĢõń{}G;ON r;K ¦qĮ`ß.į āŠæAģ?V/ĘOõÜ}nƒü•ōä/ŗPMG:=ČĄU“€ļ ”²īL2”{ŽćófA¶S”sŌk ÆĮDhO©ŪmoJbvk•Hü¶ŗ~śaŠ õY[zōÉaĄōF–ŸłŁ,ü:Čś|ų¬TnūĒ®ó’õU Ē’ŽĄ˜28‘ÖĘO Ņ~,8‚"8£Kœ’Q”0ī?ērŸ#óįS%Ió="Fą uöØI§•Ąa(­/Ż{© ‰ 0 ­ĶŚ ź½ hZ±Ål’mł‹ā¼÷Ļ£ųŽKśd7Ŗł:2¬ū‡™ü@=ż›+Øł {ó•“PīÅ ė½=#ė aRķPś€īņ=ĻķMš+ń©_õłÄöÆuī÷tčü{źE-ų źĆ wÅ Œ÷4™„0 gŸCZżżœaū#TĻżĘŚž •Ņż8„°÷FõäÅō“×ōy &÷))śŚµ`äĢPcŠ;üf“e^³ ‚.žL0$ēĶ’ “ƒ’{CpD¬ž‰pś­u‡łOĪųÓæļśŸŪ÷}5łūųg$õłÕēAüź[ńe¹I-Tzt ŅčÖ ó £ q×° qūƒ ,ƒÆ Äņ 9/„ šžƒ pķ<Ųu}t•Ē!įz[°p\™bT9v‚ T,ŲE|Eė‰fū<Š\“*(’»=&„6: ģ3 ļ} ”EG<õkUtĘęš’­ŅkżčųŅž "VĖlóõQ ­Š™ēĘõģń€Ū¤œœ@ćv] Z¢8²ŌČłC/V{FÅ£6{8΁~öĪü ćŹ` 3U% IM÷ĄśQó :ÆUG+ø.•…ūŠaœō&!Z ź·Ņ f ęVŅ:ØŖK€ž.÷{ūßmg÷»±iōĒ)öneCżµGD’ĻoZ£_Ą ²l‚5Ż ŽE Ęć·3\`S’RĢ0hßæK§··‚9k9$ >Ą€ŌZŻŻnĄcWny[/¾g”źÅ&ø3œęW|e{ÄēX }œ Yś™ x 0ŖŪ‚µ-$Ä!ö© 9\v£.ŹfD%† (Irl(č"¦(ņ…J*‘U*„×Ń(V6ļ%Ž“±&6½Ä&C (ˆYĢ)š6,£h,å»"*$ī)%ń)@ ¹õŃ„ä†ˆlAŸ}‘„+^ŽŗÆµ8Ģa $7iu€Ł×Õ ®F éŪKŸžcg“śŌ’Ņó6,cšõB2ī·!īŠZīҲœńÓ1ö"é=üZs-möķeļ4ž² ćnDWqžTZ«÷päōI?Žõ°|śōŠg“óBČ@ōŃåõń÷Ļ©śÜ^°ž’»o\Ļž3ƒ)ć<3™u’Ī÷e¬ćÖ6éū‹„+‰ Ó~¶ ĪÜŪź2IĄw Ŗ/æ'ƒż1Ī5ž3“āżēÜżsDż•nū’0ś­ų=ś@žū&se҇Ėźėā ē“Ō~yšÕ,ńP3ؚ€CzSv'ˆ Āb)¤8ÕR’?eŪĀvP9šjMLŁČ«X_ź«pG ėp 5źUBĒž&żłŒŪõ5 õįJöę oō9“Ņņ9āEōō®ƒ÷JĶlü^Š`’µƒ;S&7Ėød‘,’7Ųł›aęņ¦øīBī9éĮß ēÆĒ_é&īėgÅ`źYéö½č¾łźˆŒėŒ8¤źˆœŻé2e`é śŅčočźE•ė«ŃšÅ)ĖōŸ†F÷×āīųØö¹śˆ.y’•iY&žqM üŁŃäłCƒrö»ūRóH¹š[®ķ{īAėk[ęī×āl¾’į‹V߀ą+ńłć`æŹęœÆšęNŒ|ē’ńÆēō}Łęvę«fŽē²ó7éŠōĘźŅyMė¼CīRāÜšJ²Xń+Wņt¤ļšŅķČ!źZˆä£"<ą0sŽźIÄŽDe#āŠęēŖģdĆń _õIŌ‡õ „Iõ׆óõHī»ö¾ˆtöwŻ^õŠķōæßō$Gõ¦Ó-ł_³gś\ŽCłS¤‚öĘĮņaóŹšN Fšė@j󨇣ųń{ņūå2żµ„'’®‰*Č;M<.’®u“śS ÷œÅīõąī&õņ»Jō KõĢÖ÷k%"łrlSųž­fō™Ķ“ļŪuģ7hēEkę²Ģčž ōźĒī˜~ļ oļ8Tķ'¾¤čCźåÖ>Uę«ēēaCę¢>įw‹GŻx[ŚsŁ°æŽŁŅäŖŪżˆLŪėŚmŪŃr.Ż”ąußӟ×ä·ż°ém[×ķ=`yšŅŽ!ōz.öÆųnōč!Jńq]ėXe,ę;ą/ć4>”ä *²ēŒźÓœUī&ė’ī+q¹ķźŻģ>—Čé”hä<œäu½žēZ?ćģ=XńōvOōö֋ öÓæ{ō=~ń3v¤šĪ ¹ņŽSEōJVōµĘö°x<łaµūAĄ5ż‹/’s­Æż.̊ūl”šö>łró~ŅĆń‡#ņ:ĒõÕZIöƒĀ-÷b,ś“,Zž÷æ›I}mŅįŻŹż…ĻÓłŠń÷'Īó ōx†öo˜ ų‹;(ūAüžXŹjY0āVće[D/’ĘĆJśžóżvMī. šéycGéxlWé²_ēs³ēV0/ēJ¼–č± źń‡"ļgÅåóĶ`÷¦īNųņ śƒŠü‡$=žJŸõsj½”fžµøŹ¬ēžą4 üÕuūäÖ\żŒ‘A’±°ƒ—/w~1ńØ was\0/p512ŽłéRƒ- ˜©@!€šĖżĘCä e䓈&„ĖL‹*浕£TÕ„GV]÷ÓpÆoާSŃB Ø j—° Ü0ć$éI!Śņ?éB^)fˆ7’*ßś$÷Oųw|v÷ǹų³H-ū*ś7ąłŒU^śsŅėżTŒržlż+’Ø.<ņеŖž s ż½6¤K#ļPśÜžōP|½ćö½!š!ęjr‘ėŌ#4ūx„ "oĄZ^īRę œĮā ē&r I, Š]§ øD÷¦O’9«Õü9[ū-~ū歞śņzXūĒ]übßDü9?”ūŽēö>I¼ó2ؓļ"½yīĀuIīUłėīšÉ]ī¬ZšÅčņ…ćmō²3ö!?āų ē(żƒw”ŃLž©’°•ąGʱ"°ļŖE hčmØžgs³ž¢0šžkažČuDūóĘ8ų꣱÷Õå ö(v÷:§ųt¤³ü#ˆŌ'@`1ōa1\ÄwÕč/“wć"_ÜOēL5öš’qæüō³+  Dc€ÉQ@„‰Ü5`‘ £ ”*Į9ü‘Üśāš@ī; ®• Ya×£ų §KRt{Įõļōž{] üĖ@ś.õ¶XĮŗžÜ4§īw@#›zĒŗż ‚ųźżE>äõ(<÷„Wų.-S÷‚_¹ōī0f Ś9ÅūõĻüŪ=żD²K ·²żˆ‡ó „üžIxų1ūT×Y¤lTȾeū-WdļŠ»[ | AƟyĪł¹óßž å”ó”—|ł×<śłmkpKP5pMa§ļ†0žš J"ģ²ø$, w«DŚp" ūõ‡$QżŻØ ūŒEšńlŃżb’ŃśP-åAŪ%“Äč±*ĄÄx9€Ž*Pü¹°Żśč KXķĶŲnśKÆEż«ˆvüc§üųźõoˆ÷©X4ž_[>GÄ 9†õeć’Ę44ž  ’žtXžFlNŅĄ’4Ź’óŠų՘Xī*•ē盬į²&ŽŁ)nØāHńÖģė$šŠÓYņן’ś}ą ü‹ŚcĄŗsµ ›Ūŧ<®däu·°×HWv:–µ”‹3 Ń’1 ±ßdLŒÓ0óūAZĶY¼ł8‡ß‰Ō1+Š2ēśŅdå‘@Ē+w?z a'å ƒ« HĮ FL o‘Ź&b²ī—MV L‚āĶų‚ßWßX$mŻ#ė–A!”āŃ!„»‘$\oū$ĄŲĮ#ē|Ū#éŗ¬)õjŪ,Pī÷0™~:6C%9S"e8”óg3³‰+G”^$W_\&j• )ÉTł(õ„#éī?"cZ!$j+©Ī,O‡ź$®}“!©7 @ü]IS ﱾǐń-ż÷hˆų~?d÷¾$Źó†«ńó2Mœö•ąūkŁč¹ĘOųh«Į)ÜC8GšÆ+ż„įöšųų|¾;H§’¹Äüzžż2éū»nOž_t$3G «%ˆE5q-QŁA¦‚āv^h®!e—&h’×Éu.pФ²K` …weµµóʝŠ—Łžż'!FUÕ4°žn±Ń““ł§jūóÅ’ń²S4šC}öfŲž?gCšBģ§|\ć° rŠż¼$Ķ Ž&µSż% $ł%Ļ»æ'T$8&ēW·*¶®.K•Ū/Żēž%­÷L!÷^ēzļ·Ō9-µÕš D‰— 8N ųØ ĒąŽ“‘B HsūÕ”ųƒ¢^ ļė żV, Gֈ ŠJÜ 7ĖĪ Žpe?3²üIš|ō˜ ¹ō¾Ė÷²ˆ†śĆ¶{肀 ·K ć׎ģ# ‚cÜĻ®6uĒ {Š” .-` %§ N­X:’ $åÉ”)b¢ĪLĖMä6ƒl%†57’Ā9Ø5 ;’#½\™  ¢ÓPę’%:›&Ž»¼4„Ŗ ŠL% oś… f€‘ ØĘ Ż£  ¢caxGĄ ÕXėP£°ś¹æ÷b{ņį]dš}źė6ŸyäśĪćń*3źźy!ē”1ŖäŒü™źŪæ[šxc[ö‰ŗł÷Uš)Ł üo¼ū)ń?“ķ’ž—*ó!øńkyįń‹}Įźū$oēŽ¢šß÷xŪøŸąŠ4śŚūfܦvÓßMżä šŁźŠ‰źé‡*šė¢‚—ī¤ ’wų˜žS°Øł:øųō”Ōńh•-꫟·ßŌąü®“Ż‘ ŸÜÄXcč.—īł ćźÅu‡ģSēšāą‹š[ŗ“ö”Æ:öž¬Wš-؊ń“%ķP&Ēė³V½ńæD[õō3 ņr<,ė8ngéģ¼mļĖŲAö1±ŽųGŖ:ŸL:Œ^šĆń«L Āso˜%ɼbˆÓE‚ūšŗ$ö©¢dó½)ņmķ|õ3¼õŪFƒóƒįEš|©RīęŌTļé`Iõ®'3ż/øÜ£żż!7¶‘4­&¤»3Żȋž.Š) E“5æ„Äxžų€ü¼ ¦A&JĢ(i*Ś&ū‚"°qˆ5Z£9Łfæ’ŻOiŗ …’' .²i żŗ ö%śÉփ6īć Ėū Ÿ]ß \4ųžÄģzö$ģ-ó· Ā鞫€ām¶ ćlśpäøß,唘īé8–¹ļŲzƒõ+gAüģ…Sū`śŽł>ĪłŲÜŚōĒ©źÅŪą~k@ŚĘ#CŪ7åČŻlīŁ²”×J®¹ŻbXĮįɲ če ĘōŲ©żĄ»”žå‹`żążY¼©–ńšŠ³ƒøŅ1Ō‡›‚855ŠŖ—Å1nąG!±üõ¼˜×f’1Ÿü˜üŖŽ­łžf+łÆŠ0üńwžī¢Vuc 0ļŁGŒå{ļ:ō¹z'ęSg-Į.+×* éö*µ Ł([Äd'wśO)XŅZ(Ń ­#Y?ó…ļ~ü“ሮ'Q«;ĮSóØ(śÄ7!ö³HżļŠæķ³īš®ōé—Ō»čō›AīKėLņŸĀeöhŠ+ū›OĖü±ł•’”{ raFūČF‚żōR ū\?õvš“öÅs”öb}„ö'¹$DŹńłeÖ:j¼W§¼4üxróLæ·š)^ēšuhņīR›ņŽŸ$õ“+ū”lÓū“éų¾€öļ®Ķ÷Vügu8ūZ§õ:ĘkńJæėšsM"ķ|–›ē?Θć"SĆÜ:#¹×…< ŠćĪgĢźŽĶ™DŹ/¢Ģ}ė¶ÖŪž‚×ūŌŌlT•Ś;¬ŽN!ųŻŅøŠąįŖpę:&ꋗźčƒé1ķ©źäķåłļźwšėmŽõč.wćTr£ßÕĢūŌš2Ń«Ņ}ŌÓ [QŁAvć› ź€ćŽšūōį/²ō=5IōzMĘ÷­śÖõł¬ó‹‡ĻšŖvwń…ŗrļ>[īlߌöļÕfü<ˆ‘a“÷ &‚īP[aŲʼn`¢ĪGŖÕQŽPæ¾nŗ³G“Ą¶€Žź«540 0|ŽŚRx„2šA`UJ,Åė TŽ ahs’ @3’¬²’B¦ūƎ łŚŚ üh½<üĪ}'śź›üU5ńž§_éśjaū’ZlH¹t4iŠ((~Sõoü|±ŃōźPĖÖ*%ŗė üĪ )&}•^p¢ž—”ČśĄ1ˆżDTĶüŚģ.lĄ”~;”ĢńĆiņ’3h¶š]ļūö*ˆ‚ å2²ž¤Ž‡Ž`®¤|g¾qü”]büGŽĮżBÆń’¤Ņżū! ūš+mū-ó ųŪ`öūŹśyaØś”€ś\Ł“EÓ_€äZ Į² Įv ĶyīH{<Ķ®“Ģēµé ˜ ‹Ż$хŅ+fK-óõ+“b"&Š>#pĖ$D¾ $•&"ķ1Ś'·9*]ś,X 'ĶR"ƒō!_•É –¼•ƒ$ŪūĢźļz DOPMÖr…7Q efźMKÄA Y“Yķtó6£g&Hź'›p™&ˆ"—&1@ķ(­(ō1ń~9o”ń:%̘:ō‚ō7¦5o2Ÿ×Ž.µ0¶²P4ēŲ³6=n6Óņ%-źŃ$&,Ÿe&Āłž#ņS<\D`>pć='58Ź‘'‹BæÓ>€ d:Žö¬PįłÖ2öŲ„ū†»śÅdöµEģųFģ’śĮqgū¦ŸäE²9ƒ½¦x øæ!QwÄšŅ‡­A3öĪ÷ ²Ŗß•™S^ÆŁ-Zµaj)uŽ-Ž—`ĄŅ‹$WZäÜjZvf©’ža”,ż±ÆÆé p«7B¶O³-R ’Rf V~ßgĘåĀŽ£rMƒˆ#8Hµ$¼–$ū¼O$«`U%å!%·#Ęŗ2!]Yö#Ž…)Õā, …¼1 ¶7ņ_:9fø]8J$›6x#’2=ÆU0®Ä\2Ž0€b ,5Mģ)Ō?‰*’*féń){Vś#Éb].¼-ŽNņ_ óļ‹a—æł½Īī×+ęę)Źyåwć®R’ąćC;ät“yźÕdŁńoułČåżīq#]źźµŗŗŹłˆļ?ē„ęOøćłKŖÜ§ĄDÜkyß.6WßWįŠį”h±å†Xrė§ż¶šƒĶ”ī ź¢ģSӎīĖzīRGķĢŹ‘ńDsõMF½÷)KūÅįFūĀ 7ł›·Ģś“hż ¬ĀųÆŹéõ~ī÷ō$āŅļ*8¤ķ@|#čź`5åażĢäO…äńīÓč°4pėJĢķgņń"åŹō ƒõĖ Ņś¼-żŽh'śI„śm‚=üQDżLOž0ĶÕńsÓHÖ(ó’§ŖO(żCB­÷ŚŹ³ņ 7ęĻV—ÜÖ®¤Ł‹¢Õ¬® ×_NŪ«źĖؚŻøń«å§ŠźŗĮī¶5³ņäƒÜō©z‹öøŁćó_)¾ī¢Vķģ÷węL}ą)Ō:ąņ»–Ü‘īŪyP”ŽĮūąŚ€‘ƒÖ.CŲ ŲÜŗūfąM§įNńą u.ćåĶć 1™ā‡Šh㩾äĀ*鄚źč2ŗé™)žėĢĒń>Öõõ²Ā¦ō¾Y1īė FčVÉźć]0,Ż”$ć×M/PÖ%œ”Ó °„Ń«ÖMĶ •]Ė[ÜŹ½©TĘažĒ1ńųĢY¢8Ė K“ĒU.ĆĒ;nÄė—Ņæ†SŖæRUńĮ żcÄŽ‘[ÄÕĖCŹ•ų5ĶxEˆĪÕb»Ņƒ!ŸŅ:MŅo¾3ŅĢŌōĢv®ŠĖį‡Ģ×‡ŲŹˆZĢaIPŠO¤Óƒ4‰Ų:EŪāŃŪŗč_ŻĪ¤ą<éņŽĘ˜iÜ»õ¾ŲŃ)oŲe ˆŁ æßćī„źśØó“Hßż}GÅj ¶Ą Ā“ žŽ®X‚£_Æ’nś÷o‡Éüąęøŗ³/ž*™CZ2’Gœ†ūe•rńäOā쁱Éģ…²ļģ|AķJ1łģ7  ń60:óTŗ†õ-sėņ3·Wķõ‘ēč`͈åÜźæā›Mā~4'ąƒP?ąŌ zåŪ7 źŪ^ė‚Ž,šIŸcöł{śń{ ü”™ś¹ńųš‹ļSØöīʍļ#ź-če¹•ā,†ä\ČRåų!dćSGæā„[GąåĻÜā–™„ę{”摪§ė¾½šłja÷ŚE¼üÉMæ’ įķĄ’ Æ)ķfżžō‡Bł łĒŅfū@F¦ż/žü/Łł8śUśźśēk ÷;=;÷čBĒųmŲ°ł°n¾üŪ3ĘDޘF|‡ł· ‘ ŽbZŌĆ2Š¬É tB…ć ī“ ×|"Ł8ƒ#:aÜ!R«©Åa#~/Ä%NŁv%ĘN#ž.EQ~m® ¬Ī8ĘŠŃ‚ę˜0xA+ē˜C<LU’Ć1P& he5X’o$\ü~®.ü™lŸüv.śŗóüFÜC>ą KĀŖęXØGu±‚’·i¢Ų,äH”$ŹĀ®"”nĆ(»ā+<į)_Ņž#éōŚl±Łł‰SwŽīžf˜ŁŽźų_« Ø’„Åü‰æŠü‘²Ž±R‹Į”M”Ā$hŠ"d’Itśįä(ņ³j(ģc鞍Ģę°Tč”]ļ •vņTäIóÆuōöóĄüŸÅØÆģ… į×z åĮ¼öŲ*¼iŌł³0B€Ö vC 脀Ģ}³ō°]b&@ v1Hž _˜V/‹cBVꁑżÅ·Ż”®ąČ7=Y›φä$+© õ»³ A(ćĒ±æ’®*ē V÷ ×˜SZWZ(Ųa čN:uč°ķ7ąx"Żq»$’—ƒ$cŚļ$kB’(œ!-Ēū.ŗÓ0 P¢32Ȱ3Ļ< 0]@¬+Vy„)ÕŪĆ*׬Ź,0ū*‰Ļ“&*ø‘&IĄ“*/?Ē,Ė¢*Ęśn$ ©Ų §½. ›$ Īß Ÿ9ø= 9 ~°–žB^®ū܃Żū>Üł Āłl7lūĮŌ=’Ļ¢­l½’c›ĮCiSgļUX ²Ņ÷HüŠ÷[žN„ų®ß*«ū…]ś=(óż@ik3¬$ž l;Ü)v 9'ÓH×ēß?ßN­ x4©ąąyŚūXō’« +g +Ņ’‡1`h%錮©«-±†jü放…“ł‹“5ö¦ćōB^°õU$ĢśÓ¹ }Œ„ q ©Ż; ?«ą;Øßāu*ßĘ ;¶‹ ‘°Ę ŗ ·#Czˆ&Ŗ³+(Ʋµ)ź3A(š˃śķ·ņ‹Ō!%„“ļgøą Ż% kh ųĘ ¢“ Q Š(’ū LFēl’ µtOæ ļrčW m’m ŅFĄŠž › " |¾ {\y ćšó;O ?ā */Ą Ea~S kæ>”°“bØÕz1›²öŻŽK„ūhƒ <7' äļ’‰t®„QžP#KśŸµXōy…k쨔ćĪ ßóŚc©ŸÖwgÜ֍¶ÖŁSzVŲFTķÖ~~Ś’×Ž«ÆSßņBµįĒęŌęråé¹cWē!Ց䒑 ēŌ°’ę6ŒäwyįÉŌŽ[„iÜŪćŲ­$ĢŌšīßÖu ˜ŪČ\YᾘõåW˜ČėØĢ(š¶ĶØóM…ØónŲ ō öć5ł nł¼Y“÷žĶXõXyöZMeõą ųźAÄżü|Š4ƒ¤ ŠŠš’‘F›2}ĒĪ ÅģS Äg g=` S:oŠiü„ĄuŲŹ*7Ŗcż§¹ż -Yv sH· #?Ćø^ @‹· ä«‚TA Äj•CµĒüōŁĢ÷‚bóZ Éī4ģ\K*čŲ Rē®éčĖ®éłāē(æKėqFņ¾$ų¾A śŒNüyiažF+:ü@·²ż NüĶKõöŃ¢ķ2Š„ķņxJķB^é;,äūłŻą¹{1įˆ†xą(͌ß}āń†dåÕ0=éčŻøé掅źæG€ģ§ä)īČČĒīĮæźī@H™ķųč-šv2žņKdõŹ;ó“ń€ Īń—tlņ@Ššüādė#vxźŃāSźH?釒čEü}źYćé-髵 źŚZuķ’NÅķ§˜OķJ¦čķ6Aųķ”o ļ¾TTšōwó*,#öŠZ1ö4³÷1]„ż„ń½ÄWõ%ŁEy#÷WqxžńjEųļ+öÖ-!÷g&ƒ÷¢&ōd%tš¹ßךØACō”¶ö~zķóąLņŪ«ōńjŗņ„Ė;ń0ÓtōBHõł¶ż1‹żsÄu’¦Ļ `ާqŗ=ąeżUŌłčL¬ų%2¼ż<lL²ė ¤m iWJ īĪ; ÄŅś*3j„łš„ęķ,ģ)Ę5Sż5yYüė.9žoVóżä="ü¶ˆü*ÄTü~ ł_ ƒóņ²Ęļņ‚ŁėÕPsē G`å™t‹äņæć^ĆnęDę-ė”÷XėčĖźĖåķ­ńż(ņCćš)†Ģī1lŌī8īõwī]ܵš×³ó&‘5óŠ]ļs]<īŃO0óHUšł žŪüIéHīŶЫ$jŒ…”¦€;@fźbŸ#q ’«ĘUūFj`ųÄ=÷·¶Ē÷!½öpX"ōj ĆšÆ• ļ˜’,ņ„{ųK½™’޶I[ńO #iʰ©tā8Ė!ą°c§Ń®ļ(·„å“m—2 ä Č£Œ#Ūžņ%ŪŻ…$?JĘJó«ÆP'AŽ *{_«ē zįx ód¤š«#õćIoˆŚ Ųß ,}Åܹ}Ņ£łTå1ōµ>ńČēˆģ®”Fé;pVźA,–ģt[vķbš”srōBƒ÷5yuö’Ų/ō±öó/<ņ@FĀģ=fōćue!Są±ćū$OU1<~W)aO(ōżŸ#KųöęAõõSRóĆģŠņ”ØSš“†Mķ‡]d (, łKµūł‚Ķąö(¹Võ’1ž`™AłwkÅ’śī‰ÅNhoš.Üāܼā=b,[Ņž"|t×Ģļ-gś—>r¾ų9·Ųń Ą’’ń¹nSŠŹåŅq«ŽVÆöŸ„ŚY žˆtņÆČéšq䢞H2“ó »PļM ÜW²Œõ{ Z_˜R^ŗH·}w‘0žVŸ52 ¹0č &€i%Œ5n#aPN"’G(+hKR+<Č:eÉü5Ļ÷%x1", f†8P]Ķ9dhZ22A+äĄ÷1#„5i«Ŗ,ėϼ-·FZœSJž*G镘 į‹Ł ßīgįaĆ”YQż©ąDų‘”`‰e·iīqTųćäéķµą.÷¹¤–E„P ”K4Šńziģūņ`§<'Sžgć}/4­”Qżön™ńē’b 3ŖūŸ8<ųX„yō„žĖųo­üC]ńś¤Üīķ6ė2šöĆ^äōŠeįóößYė‚„śź›ŠfõčPŪ£±txY˜¬Ó|h>ęŪd$Œr€ø:ĖøQ—žĒŸ{ī% ÜÄ”|ķμZcĒČ:.{ ĀüĻyH„Ć Ų'ŠU>.… … ?lWœ Ć®–h; šź5tĻūу’™«OZ„• ¾`L ½5ö>»{šŅ3ź°zćrņo×Čł(ҳ•ķĒ«EŻĘ€Žī˵`Ļ…~Ļąl2rÖ«!+Ś\ĘŪßazóźI?¤é’×+7jĶ0UŲp-ģVąhpĢ&ĄĪŖ ×ĢĶ»ŅŪ²˜Ņ‚JæĻ[Ļ”ßd–%ÜģUź×ę)HŃĢ߃ø Ż_Gå“cŠā]·ÜßŲęmä4”<āńUÅŽvŠŪŌY‚d㤜rāA¹čאSjć²Ēóā’ŒēyńqēŠĘŌ’žŠÓ(sžŅŻIÓtœŽŃ¹ Żē Ü'ļėŁkÖóŻųŲ¢ŠfÜ@” ÜiĶīÜėu{Ų(Žķ׌Ū¶ń^ÖsÉ<Ų}ÖY×įhÕŁ §Ö:#¹Śāō”ą ¶ēw™éēOõēīƒkŪ}‚µē?²]Ž”šĖņo‚Ļ.ĒŠŲŽŌŻÖ‰VŌČÜaČŽŽTŹž‡ńŠ9ęĒӡŹš³Å)ÅŅÆßPĶZg;ČTY›Ė7Ē~n(Ī©üļĆ4Õż¼ŁŽĄFdxĒ ńĮŅddŒŻTµ+Ū}kŌŁ>½ćpoī+Ķēdcžę©ļåøhfņØ…īš²ų÷H,üUeź tEöó1łĻĘ½ļŠŽkŪ0ū Ū£™[å[ńėvĪåMĮšĻyw@Łä,į üyć>«¤ā`¬Ņƒ™žŽŸßō-ÄÜ8…Qį!„jŲēiĪą­bĘā&xÕŲŌŚ=ąvŽp)BšĆ[kēĖs_Ž®„MŁßō§ŻIh)å€Ų×ÖĖ/MÕčÕL8ӓ)ĀÖѹ2įoģŸį”Y™ąŌ¢qݹĆ8źDUŸē‚—Įč4a­ģ€nĪé3^|÷%»³śŲ_“#Wü /«ģYüķ’Ž/ū ń ‹Łåó”č°%аŽl­>³:ĆlśŪ ŚŌ„Żjżj;NõÉ ś—Ŗiž“[s0Yļ4ž£ŗŸåØ<ü- ©i¬ģgŌ97AŌ ×gźJ!8EQ+›½Ö[Ńc@ąœe"ƒĆ/ÆüĢ/ž`W+å ¼ йŻhE.w~ūEņźpŅHVt4~ÄÉŗÜüłŁü×K^$®«ØĆ‚ž Ał½lLžĢśGoÅNÓ’ A}C䜬H¤:yõw — 7VósĢޚD2!9‰µ!Ō)oö .įåg#O˜ū‹7õh¼'ē4(›RĶ,w•;ęĻp;8 –ņTyl}™Įa\NĀĄą˜JaŁ]…/2‡‹[ 8LEĀéę½ĀTöGõWń‘ōī'ÄĆł=ʤ’Ox’_ ż$üæQ>ń’—ŻĄHƒ¢É*‚0?2Ü5n¶1/Čh/ Ņ‘1½©Ę4g+ø1v™ß*40cŐ7q+X8“jż:—…e=R%?Æ=SW7< d/PQM0Ō+Ų4Śf‹,Ø’¬!ÆÓ+&Ó²K%"Ņ: #;Õ“ ”ał ćÖ8š9ö[鳊 ]m° YÖ:&ÕŠ8ū_ĄŁ Óą ”šŽ„)ļZn$ą$\¦$øĻ)LŸ,;¼ž+oÉ?ī ™Xė 3Œ!ų|æ7Lģ_² µOŻŃxą†:č_[`k2{5“”†øY» ‚)ųĘÕ5 žüųˆG PŠńūƒaž’3ņ“ūš?łFæ›ļLĪ÷!quūs£õņ­w†ū÷#žĮ‘żż æūYĻżģ͵­ģNņRņŌZóśBūImüäÕÉ’¹~ŅXhĀå_~H[ą!?łčJ/©“äķSA!)] VA$š“"\b|$”B!čˆ4!š—# dż&$é'Z ī ,u›)-øwœų¶Lpöńįuüņ™kژÕ’ĻČ’kI|~£¹ž7%n_“¶[˜ ŁÄ£ćØ0 Užß-Ą7 į)†cČf<ęy_„ „‚ŗ¢óͧ}ŽūT` ’>JzV’÷ŖéųŹwł\Ņ%ȽdGĀ=3šc¬‚ļ‹ėœųŠó”œMŽkõW)1ńÕI©ūo•cÅÓż#³ėéRGź¬Eļļ%̾ń7ö7f±šÄIOż)„*(”’Ga¹Īj¾žnā˜Ē“]›ś;Iū…üāūfį&b×r|4ģūيN÷ĻEś–Üš舅üb5žb¾ž—wżŽ«^łnģĶRĒü‚# ÷¤Ŗ§ł=e,ńJEźźµ ¬ē4¹æŪ‘ā“ŪœŻ[`ÆßĒéSŪ韤ūŻæŠgꃟņļ*K ųŖŸāż0»˜ńųĪ{éÖm”ģ‘ū.č 8œģ!W„ō82ō°óÉńA•ę* ;Ś@2SŲxZ;įēI߈öß[ÖgŪ^FXݧ¶‘Ū3ų_å®gŽńäŖCśKÄ÷+Ÿ’öŃözõb„õA¢Ē’2 –ųö+ōņLź§ź6ØķīÅHes”;F…QA„ M ŲW8¼Ę0†ĒK”Ōh m“–Õ‹)uj$2йŠ`ˆ‹Wžu—­œj„ γ §>y »…^ߤŌūJUōśvŌNōķʋóó25˹CūÕź¢š÷ŲĆļÜŃģD“æķ„QūĮ0ŌņŠ·ńļB/ōģ=ˆļŠā†ųēGFž9°šåp–žĮ÷ü¼ŁŁ÷V]‘ ½' ó ]żqbģłįNQ„>Ö#ļN’ŹXĶżķu‰÷h¤ģĒįRėa§ē#ńčė,ؽņRqhóę:~ļ0žĻź_0Dī?āŃöh¾ĒĄķjƒUƒüJ€ĻĶ׌ٰ¹ē)yŚ~®» o…¬ ÷[; Xõ‚ [&Nd;ä0ˆ9’(ń– ?jēŃ[įw£;ü ¢{Vu=„žcµ]V*g„³YĀ` ž@xöņ§(bsצ‘ż°Ź1÷žķ6ęA!Žā’žBą©‚ŽįģŚąWŗłęŪšģä š?ķŸ”¦īX4 ķoŸsń}ó0Īļø|TāQķY×LL@ŌśTęÌ…ķ”Ąs袑Fē4ŖęĆŹƒéy‚Œó0ßō¦e#śRą»ų#šHńESńĻ”|·—/vŁE&üÖś€ śˆĄ|8,ū ø¬)¹’ż”ŗ’š®Ņßņ²Õ÷ ÉóPÜŌōõˈļ]“Žå½!±ē"øēįʬėNўņ¾Ö³š+9ėĪ7ŪīŸ†åé‘#JķqšŪūUīÉūĪ/Üų'QŖ÷Ćä0śo±łĒŖŸśh‹žXÉūźg­čB’WRŖ ‰Ż „Ęi¤ó“ ž†6Źķī’Z8qŌūė÷nˆ ɉ'aBņ ³. ՚’|žN¢¼÷×MņĶrįļķ+Qš&.HīœīēÉ\édŹńćTūŠå‰„ņį×P”ÜÆåSŪRÖlį=*ēr@ńīõ)ØVķ,éīŹ_÷Փ‚ś©’ÓüŚ ¤’dž- Óā>ņ?³ŃŸQ‚cWļŁqzKĀ īŒ•Äü-ė ņļ stŻü(Š1öµ—įłŖŅüv K›gĮ’iø—ü$QˆüUJE÷» #śf»ÆōJuų“+įūŪ«ł9Łž=sūųNāų¦h‹ū7Wčłvų‚ó óōpkłLūņ g,÷‘…¢ūŌƳ߆9ūŠĻū.e#ó¦õ ‚÷Ż üUĀ•śO¬Pž|Ø[f}ŹÜo õxīę„ÓPW'b Č/² ĪFit½Rᢹną:ōĒō+~•<e’Ł!Ü«ö­A3Œ! ž>. …}ż”všõzl÷ü¶āz’€öE”LĄfįōZģĒ4Ū €ś-7’śÅ‡L¤ėm ±FƧ .½ šŌēŖP’ž—qž*18æ7a(' żāMŲŠ»+ ²ē ¶ź šN%ķŽżsžĮ®¹–5¤Ö§° ¾k›uƒA #ŠßvTėž/FEų8cķū3[’Jš"‰ NM}+uNVąS ]ź„ĆĶŽā’tĢóæ:M=揩.‹&8į)ŠTŪ,nÕ°%!Č’XėL žŖ$Ę÷T20œtŲ…\ÕJ²5”- Š,ŠŌõ Ū×P¹ELŚŌĶ$| ‰†d &‰=Œ×żl[ū,Ę%ś^Ū"÷Ó÷‹ū#;ųżTžÜ‘ń¾ĮF YŁö+ž«¬ ¤ć.!„˜ł$ēL‘ÉY÷䝦sY>]šåÆ@„„r\ .€ ńÄY4ÓH4—OŃĪŗ^JŚĻ ¤Ų i˜?’[JķjIßĮÕ8qu·u¹~GĖ n˜Ć bČ·  {$°Yć-[}1/#ą>(c¢²šˆ.‹äŽI&{1 @(7T›0%ŚĖ%°&z\-)šø1Aæg57V8½v'5Ł ē+Ōj(MŅ)M†Š#ųóļS ˆÖÅ7œ$uNœ½T …ņDė” ˜ĖéŌ×n%[}Ę’ż$cKųC‚śIā’<5Ϲż ŲQɎŻlūżrĀ÷ö_æ} ”»¼:ś™ŸįłĶĆł ?¹ū‰ŪśPĖÕżwœqųĒ÷}ī­5}ģJ]@ķž©‘ōĢ‹’öa-^÷s¾Źń\WEī¦uŠō} Éüīzče›“ Źˆ6ØG—‡NÖQnޱŠįfgp&löšģ¢ CuĖ ¦§Ģ £^śK s¹& ö’A źm_”K¦Ŗz.8‰W‹ć Ādt “Ч a3~4#¦ ?X=iæ« Ņž¦ Ģ„ˆć…&ü\ßbų>Očš7Ѡ䔯µįˆfރįŁóOŌ rJ×^æ±ŪRXŅąqéŽį?b»ć}«7äĮč(ć©ļß߭܇×üןŽøÜŅ÷~å“֝ßāÜ/ÓŁ»äcÖüpŽÕ¦ƒ—Õ4ŖÜ‡%ąb©iŻb~Ś”vņŁŲ`ÖŪß!Ūoqć#“BēcÄå€1¹ćŚ ÆŽ{ØČŁą(ČÕõX7ަÆ>Żn*ņݾ”ć Ą°āė­ųįÖ_ØŽūŻ–š*ŽĶ§NŻt\3ŁÕü¢ŚĘUžŁÅ cŲ¶†Ś#8ąt›>ćøfćv©ēé¦č{ćåśģøå DįéĖzź¼xšåķmö£ƒB’%Āx¦ilžJyĖżüŠnKŽšO ¤ŚĄ ą®ė¤> ‡ZŃÆž™ŚSž-½8  ŅlŽ$‚žĢhųĮKjųuUHż¤é *“lČīM V¶B$~Į§ \ć¹š¶¤*En6fōŹæAu¹’(éJčŃÄ=`L&-…+· ņ, «$8ÜČ“ ‰Ep [ŠFęĢ%ā©‹¤)v%Ć ’Å/óø*šō`Ɣ ®/v ė¤āѹ Ēo$”!Æجģ:Īf9ĮäŽbp1ę œŅŽ8NyūKbjhü¼>V#5~%¦€>$ j£ā•¶õćN\8$K‘©&BÅhuxŠRĻ ES‹Ż4d½ćĢ ”ė9'© Śžš\WäŃ t ć½ŚVūh(õä¹^ņxÜų«’~žļ÷Ö“½²}.8RfFS aŠ·5n ļ›)ķr©*bń«'Īšī&9ѓ)śgG.^ŹH.J¶Ź+‡·¶(Å`F+ożƒ-’į!2²DX8¶Aį;m[Ž: m6ŪłÅ1€.jU–1DŅ»3­z„.Ō{%(-s$Ū”8 ֘£Ņ’»JqO?t7¹%dią‘¾ÜŃÕ¼7+¹˜t(o;Ŗˆ3Ž£+LÄŲ~¢«Yr—ÕŠ'„ł»Āzł°]Ŗū[øMś,ĘĮųjöōśŒYd’`†R ģśēcō†Œ_õĀzōĆ`OóÄžĆõĮ(.śŃoK ˜…ošeG¬:ŸÜźq ’FK“ū ¾Ēż‰Œ’ DKcŦżÓč÷’3ƒ÷ĄŌēś9"Šü<&ęśõwūūŪü”žVsžæĆ’e¾€ӗ™œ¾éżjørūkÄøłŪœKõ<€ļ·żźL#6äöeŌįr`vą©Lnć-āéõĄéÉ'źY'Oķ]ŖĪņJ>ĆöÆ?XõyļˆŽļƒDFė‘Å6ēé9yļ«Oßõ¶•PōgÅøźĮsŪćŽWyąŚĻŽxæŻ×į·Ż ņ”ąUDåą|\”ß;+ąćvÖtī$8õEų¬"÷ [Ļölŗ4öt”õ@ ńŗątļŠRVķŚĪńÖ4WżYaEtceµ]ä‹ųFgpā[ū"ŸTČ$AįŲRŃūYn4K ŌŽ× ļ5‹jP…åśvž.Ų2Gś Ć%!Č:レžż¼„ż1tķü*ŻūC†›ž|š2[ •’XÖ2łż9ōaKń÷Y(ówY«ō›æÅō©`,÷A)˜ö Ćjõł łĶč¼’ƒæ­{jX{A’Kõo<'ń©3ńøœ“ZžĢ«;2ž­ž'żżźĄ‡ž„słüöĀł– ~óāDĄģæéD%īéš6RīĢ&×ń?ģņĪĆ.ņō5Ÿų»ßż59Š0- Äöšg;ļ%(Ežšz ¹ū<ę/ œ<Ę H³g £»& Ÿ< 6ż ÷čn Ŗ%ņnp‘Æ UŚ„į&ĪrŸ>õq æ” Ć2ź$Ķ`;„ Ē/ĢG@F¶}ūŅv.«Y.’<›4żŅ4²śé|÷/(Bļ{aēµŽäėBä'QäŪēē ōYļĮūõĘźö˜:{ņųņxó*FsņĢ< ķå—YćXÆ ŻģD@ßšj䅐å4uƒęĒ|å뜽žķ{#-ļīj|īŚū£ņˆÕīųį^‚ųŒó&“+ō€7ų29Åüļ—&Žøūbā Ų÷ Ł‹äc<)ūˆN÷™*×ų ‘•śv€łęjū!dĪłÕcö§Y„ń¶ÕōėŗäźžŻź ¹>ģˆŽ_ņÄ8æöo­~ö¬žõ 3£šÄ«ģ0 Oķ?ßń)öš\ł£äńłü ÜśxWmłą 8ł‚ž’ū‡ķQž½¼’M%H»>¼É* Ėļ Wø¶ Óś“¢‡ø^žhČ@ų»+€üė[p†” œuĘ %”˜ŃL,~_³üa$óĘ“¤š~ćJōāg•öų­%õąw(šA4kķ""üé`Ė­å/ā£1æŽćåß[?^į.“ę†Ļ±ģ®døšI@šjtlóŒĒaõźeö_YųļJžžĄŹ½M ˜ƒ ?ƒ! †ŽĄ ĀĀD ąķÕÖÓÅ ;Ų`żķ@Ō.µ:€ōĮ¬…Šž‚züžŠSĄžń¼ČżTA’&4דÅuÆ C󛿠kžū¾™÷Ēy.ōÄwš-˜­ź‚AˆčÄé}% źÜčHh^ćܟPį©UĒįoĢ_ā|!ūßĶį¾ß­vą[ŃįŻ•ø˜Ś Ūš}Ż_{ß„ī¹āTęē³ ĄčŖ‘ĄčihÉé¬[ÕėŲåššµ±ö ßüšž]„5‘Ś«JžĆÓŁ’T«Å c‚ŌųhbćMŚÅ 0NʧµR2ČPØ Źœ į~š»”·o’‹t¬ü ±ĒūĮ8BüŪr‰¼©ŁōrU ?ņ‹24—ó¹č¬D¬Å9ōįŗ$Zń³ėVY>e³éŲõš["µ(JĻz*A d&…* ā+ź@a góQ––łó Ō \ƒDØūTē5ųS’Jõ\“gõ|Žmś'z *Žā*‡½YŽ$’|ų=yōåņ«7ńDF—ōēŁWūD’@_KÄż’eݳżScÆüX—åū’o[ūó"ža0’­ākż¶ŽĘžĒjłÉyģš€że ¹öˆvŠ÷?&üz’ƒÓpqĢI Ų2D Yj ŸÆŁ"’=Åāüµ6YśatųĒź[óĻäMģ›Ī«åm–Lā°ćį]ć²±Ćć :ÖäY`1čJˆģvĮMš»FśõSĶvüÖ>&ÅĖVB”†A8Š<›7łĻę)ŸļÖX'i&Rńń“eĆ)2 +”BM’›¼’²Žpž•“ī‘<l– ų-óńNtŠša†£©E;Ļżē·śĀc.ś²¾öČĪēšĖ}ī>EīK:mļCzµń&söĶQ ś'ĪżŸcS’eÆca*mwśœŃ£6ÜH^'‚+’©»ŽÅLUŽųBX­öLŁłtY>łų‚õŗXų÷PÖ'üŻļ’ŸŲ˜žW2VģJ6vü“ŠVüGłbmzųŽEų®McłiLµśYŪŅśHńĻüH(~ż‚@”ųŌ—Łņ£™'ņź@tó²ŪH󻒤÷#«‹ūé°żŖž#æ…śAžöĮ|…õæOdöŚ čłŚ_jń& ĒD„ u™č Ćšą(x ¤» _(ƒ éaq éT8¼Ć(OųÜ ų}+“±ķŃ=łU{:T­Ę4tpÅĀÖ:uö°š8ŒŃ‰ü”œ ÷ƒ”öśÅ(sÖPź‹ĒvĀ“—3ŗEŁ!E 7ū€¬ś°‡’ė› )€\ŠŒÕŗ(č iKf”ŗŒ$“»üõ ÕūóžĻ – r¤mB3 S Ä®3 °2yĬ© Ūµ„~퇺årę= ŗ”'—ī2?Įføż¤+Wż„5xŪ Óß|góčѹQ§Å M»‡ óŒ-“Ēo¢įŅϦöĮI‰m³¬{  Ē"ę;!Pg č= UŪ ŅJMĮ†kEx Ņ"~ö -\ ā(o‚q%’ŚyƒBÕ h‰‡+¾ žE×#­%V0Ąs½4ņbüĶų]ń8ÄŚH“܊˜ēUÖKDś):ŠĘ? ż’Ę‚Tņų =Łkś QėŚ‰Yķt¦oōuM)š¬łš•óœĘņÉą”aŸńłøŁęē`ūķūķ÷öŌ†x G8žeüŠ »ó­‚K×ö«gµ’R— S>’DKõń£* 3pe§¬ ]žV’sJgē1śŽō÷%īi ƒńxņ1ö ¢r ‰Åf Gŋ%}‚·ÜÉSévEÉÓ£^ ` ś4éšyž¤Ć(1Cƒŗ¾{”ö źėõ Ō8–’Ósō¢łp}aź?»⧦ Ž4 “6_ 0Øš°0ĖŒ³©÷ ešĆ‚r¾Z -ęõSÓł¼/~y ¼:ł¬¬ }”?Æß’Ttš‡| Öyó bzt‘ćŅųzæķØž§}ĻÖŪ`JDOé•ęPųX™Œśr%Äō)ģź|ńDģĘÕśķgƒ›āÆń~ģæ<·š'tČbfšö1MžČĮ7ńžŻåŚX »Īއæ PJ\ż5ĮEĖ#®:–,Õļ–Ųõ’w{;€ļ…µŲL^# óŒ‰jœ$ÆĘwv§€o~ÆfYĶż§³ö$i ¾AĀQ‹™:Ģ šFvž7f+ó×īķ)“óĢēÖčvDfųt} ¶¾ZüOYĄķECÓķnŅŻV·f䎞‘ęIד!¦é@“eė?”ģ…ŻtķļVĀū< ų—½éµ °×ĀJŠŠßųźŚ”1åŠÜ„õØūöĻņRø)ü:gńęź¶!:ąpĄÆō›ņ.ź“wcå³üౕ-Ū:Ī©éO$šę_ĢŹź„éß,}°éx©Jē—dŹīćøķēć$šŖÅŁūēĶZū @Ļł+Įnóøö˜ū‡™ ĪŲ+/0iō+ZČń£š ż»6ZøN¹ßøt°Ėŗ¤§Į&P÷h%©čŃE3ų>¹ų½IöVkźĄŖńEGńtł°ĖńtٌKŠāåmėąąŌęõ ŒÓ£™äŽčsEÖŖŚÓ»wæČI²OĘČF'Ā`’Łä3õŲģ)bččź{_ī53łāÖ=×ĘA½ĮfĘsד¶öŗ€ŅrŹĄ>ął‡oŪņé޵/ÉĶmPÅcē»Tb„ʷȦ£‚ Æ'o5Č,HEĆ0›y˲½äŹ+Į”ŃlēŌWžßÅĮ\Äæ  lÄyēĻÆĪ:ĻGoĒŲi>kĻā±÷Ėß©•Ų$wsŁZe„É4Ö}ĢŽéõŠt£cąóÆÕ#C=׹ŚĪ|e[ČšĢŃgŖŲšEŃį Ē6Ń·Łõ¦ŽÖd=ŖŲK4=Ķqݹj»ĒoĘĘ@›ÅqkļÄšŽŅĶ.ߞßÜwÅ Ņ"ćĻō¤ĪĖņ\Ó®†ŹŽ×GæU,MÅä óĶhwÜEĒ\Ķń”DĢ·ÄĒŪäŪlUģ×AŽ Ķ2'śĢ}āV×Mą·Ųž³5ŪŚś+źćäīųAäöž/qõ„w|żŽõq÷4;|æhrśģÅž%{2’QzŅ`Ž» Ćń9z×ü”Öą Øm’¬Ķ¬6DŸĄ!łżÉ.žYŠ×›Āü½¤™ņg7A¤µõ+ŚÕ_¾%^”¼O¢™FŠīĆ ©ē< Ü[’°Lēž¾\d3W?{Ŗö‡š<Ó;­“¼†Mųż`0 ’< DĀ ¼‰UŽd.rźVq¹¼āön†@õė‹ü]%’ų§ä_ųÄPxżé}āöžŗÆś>¦jł•Š•ī@*Iķļ'#č«1ųųįāšp±ņõļÕ_±łąčžĆ|žśJPōuĶõo5^ģtćņ¢ų Iü¾ļZśĻbėżĢ†k ž„±õļČÕFÖgł7“ž©P›Aæø组 ŽĄi½Z‘ż\AM*7ņc% †Ó‡Ü+­śBNk oęsĘėžėüż‹Xįžšš^ ļJt2{xŠšōDоųÆ÷q!ĢÖ‚ŗüyłZ¬/ś–cŁō[ĶĶų€Ź’ˆYx:!dŗwoEƒśŅP*śīąž/—V÷¶ćŖņ[K)ėŗ¶ķ÷ž“, Ž"“5c]Ā„&/ؐü•snń–‹ ńū(ķk«ÕõXɕõz‡žęāMäz­ź£épYäį‚ēł6JņžX1łģeė÷ėt¦ł|'ŻčEUŌŚqČÖFSÄÖ½*ŌĢ€qßŲUŃZņŗu>÷Fī„rUń*ēŲÉę%ą¹ē‡«¦Ü@SóŪ”ŹŽŚĢ²öäēķš ?żMz |ų’ų—'õÅĶCõ‡“„žßŠł'Qūn8ōå·ś:%:TBšč8©'Ų >r¢E˜ņ XčÆt+WāƒP/–Ÿ[ĀIF@ =›XG{§Ņ Ä%™ćĪ0 B15Ā"3Å_ė(lå1u©ō JĖų{32"“MäT(Æõ])“ˆ+{Ü&gžæ\~*²”Üܜ~‹Ā“ß(H)œ¶Q'Ė8fMĘVæj ćüV Wzķ Œa@’A,mż—߯łīKDócģœ“dń¹óžéÜv ÷›ļ& t3õ ›Ū³ż?’ĻūT7VģŖ ńoģB¼ŗßĪć윔; “ŗÅQ)«uīęĶuŖ²2?ųAūśz*÷šFķ·¢‡÷ŽUü5n’¹É»ĻŸų[F^²9śoiķėrČī俑QŽēÕŽā€bįģĮ²ąī‹’sė»(…īĮōaķ#?źĶ ŹéOņ‹š:£ļę{Zöšģ)öiZĮä)«¶ē‡Ńķ’éā ¤īΰ‡“Š0$Õ#Y@ŁžŌ*Ü“ĖwÖÅ*SŁ„ŌyąiLęĒÕBę\ Żb2Ėā6é@ŽbųØ×žˆ,ŚT§ÕÄ1mŲįcØŁĒĖ“ÕĆ (ŚÉ×eÜĻŁēėC\ēŬWćįāŽƒā~įĪĆDåžĄuß÷ŻįI †ę1kÆķSŽˆņčµĢ^{³„¹Āų稹īI’.ö”7¤īW"ė`ģHį9뚱Kķ5Y5īłŅ=ō fłp;ņ¼iźj›ē÷·H¶ ’B^%Kéų-6āõž®õy’‘ń >,õhĪźöāĖ“żģŅX!ž’>ōŅśč®Œż’³ż$¼Ģś Eł·dNö{×Vü‚§÷r’Ä[Ó·™ 퇽“ÉŸy/ż,įķ5Lš5…a1šČQĒ7óø_w÷ƒ²|źI‚ ź”Į¼ÆŹ8¾śwóļ%9Ūźhóiźt&žģ+™3ģ4ēUėšpÆßE†ąD°ēŽĮPķLķēźįŗ9ī9FUõ¼Dü>īå÷ ”›ūČˆł7p.š•ŻļĀīö”µųš*HKóv(»? rĮŪ %Jbąß|Ā|B D< Hͽ’|%0ف]üįæ¹ūõ¶Ķ@»ė 8ėĆł/ ?z„IĄ¼» ù¦`“®łņ ‚— ūŽPæž» ź©ėܶßIõO\–ń2Ł#ķ³öå[żœ”¢1‰Ŗ’y CØw²m8 gŠ%mć4­žādøį3ĒD!;“''ķņ. 3džĻ.$c):Q#ō¬”Ó(I„­eŅSŲRĢK~­Zlõ²B²‡9ĒF ‰Īƒ‹śmŻžag4zż"bওaķ)ŖÅęæŪ, ±ŒžóW'„¼³'ķ9G+" ¦ƒ$įļĮuP%Ķ¢Ż\­^ƳI ØĖ‘ÆWˆĮi`ī%Lͬ yŻ’’P½ščd|ī†ƒ“éčģģięTźåĆšé*öžųˆś‡įqžM±4ų;ŽķXžŻņõlŁ ÕŲ¦ŚŹOwŪ:DXŽ1‹Ćę,ĆÅšŽ5ń¼-źļ̐sīįĘń•£Vķ£rģHņšg2å šdéō–OōŖöłEå}ęŅāTĆåóU8ķīŌ Kē®ķ8ķ¬B ģH,åļ«š~ö+Dęō”_óWZ³ń“!aģŹ!ėl}5āŹöŪmYŠŚ­rjŃ('ŃĢŻŌv’+Ż”MZŻÅå¤ŻøīŹŽfėAé`1Dń\Vķó>{ģ0éMQ ź]lCģœēņł +ēśRÓnś­—ų{4Ėjź&)@ö,DH‹¶łp÷Ė€ōeż\śV ~›_žȚw‰N& Ļ^')§n])ĆS÷HBŗżˆFNś¹źōDtoō-ФómĒõöPųž²@óŅsāī»`Eó>kI÷Ž@łgaĢś„ ś8„ŽžÖ!”łś=©ü1™ś7Ü gc½ytßhĶüģŠŹūųšĻ384śFy÷!ģ…Ż³ņĪb7ā`~O_žŽ1ŽÖńž! ?.üķäłß_¢ł¾ś°žģ ×ų …łÄlXż-¶łü’ć×õĒ7Mņ’}2óž3õp£ó±p÷•³ó÷^uķčöžéŗG˜źĆ•īåH·nęŠD€÷J Ųßü“õ±QøŠ @ās"ƒ ųė Ī “Bµ ó©æIiŌŁD·’q¶&“‚ø#3}‹DW ĒóbŸ— U$¼Ā)‰ēŃ!ŌyŽ"d "‘äoĻÕóW/ uļ F·jFņ{4|ļÄø³U ‘wŖ)…*Žy¶W ėœä9Ü—ė nĄČ#_±%ÓTIż‰Ń{ƒ‹6~pHx©X~lŚ(¦ į.GųJ3#t7ipœ5ń£·2OŚń-€Ü'ż(Ī#- $"i"OcD¾méÅz؞Ż„~Yʤ:ēB® ĶÕ> ¢¦" w%.ńÆpY(“gS9 *Õt#× Č©Ō,ņģ²#›R:)S§;2²Y/!/w.ļ)²#ž{!»ÆŖLb¤ēks>Ŗå5ŠŌ’ßę ąė‰ģ»Ė„jOхvm+’/VŻ<ćžńƒ ė.ŸB«I”:ż®™äš~±¼äTŒ!Ł3ŚÕQŽ›čz1°ķ“fšCņūOé P‹ jĆRŠŖkųҁw&łŃĢ£ųłŹžJĆżłGˆūĘĄż+Ó÷ż¬ąŖ÷%ų”łæ”ŗžGżW\i„¹¤ōk!vóZųŃ¢ūī:¼GĪĮæQq ą—’ 1|t AQ  Ćąŗ%ŅTLśązÅņ$÷:ūę’±6­,ØÖ+:D!  m BĶ…‰•¦“=äŻį± Hž» «Ņ2Ī"³ņ%&čė.&œ˜ņ+LC†*3)`Ś$^ćœU£·~Ń"@*¾{Ū@M:ÆĶ ÄO((©-\éž+ĶŚ‹ÜÖ„·ÜPÕ°·*Å÷¬øžĢŁ ŗ«1ā/UÄy. lŠįŠ> kš źģžŠĻµģŸé®(ņś1Ø6ūR CDöiMøsĀ5 n’< {ūÓ·ś”³’ńhWYīNmŅē“Q»é°įŹõ¦~;%5B™ždŽ3!7 ±˜— .Dżę×Ō ȼ)Å?4\Óæ ŽogäĪū!D ŌŪ XÜ@ Ś«)=ą ᔫ 7©’Xnü/‹īńķyčšzJŪńy&ļõ £ŁŹ/ Å>m V’\?ĕɑÖø‰Æ {hŽĮr~’Œ¦}ł×¢ų‡żź’āŽ#÷n ¤ģĀr²ę„Cļ`«ōy¤U÷Ī ŻžŸmü•ņłü¤¢įž^9łü=†‘÷Oß@ļØ2®ź1­tć+ØÉćū-įą +åu*Ķė±PÖī<ŠßķvęĪė“Ęę빇ŽķK'īć^ń@»ųxż3žÅ’§’„²žēDš=~dčb<ŒPĢžā¾Įõœ3Uō/a'õj0JöH&ü¹Ü†ž³’ »”ž»h÷N§~õTDžųØøż÷u†“öĒōónäWö—Öś–S—˜×ų Rņr‚’ķ8ļ^ē_Ÿ©Śyš ÖŪŲ ÓüĪĶqżÉkĻĢ»T×ŃõcœŽ/}ķń˜óH ü6‘ŌśD[ŲóMDqēN÷ńįW¦{Ų•=wÉóŃČ`«4ŌńöĆŽGK$ćmķąXŽŚźAŸŅbŹ,Ā"Ÿē¹Ų_©øųO6¾c»¼i^¾Ū"åÄéaūČ‚ŲŹÆĀĆKŻ1ø³5q®&MŦE¢„uLµ«ˆü²bĒŌ“a0¾v”¶ĢImŌ8ŒøŚē#„Ž%īNćNqóį3ŻŻpĢŚŖ³IŅī“jŅwjéÕØĘ]×IĒŅ–ŅÓ©< ŁŪv§ŚxćŲb õĢZēvČ’1Éæ šČÕȳĶY‰ÓœÅ~ÜŁĶ“ßۇޓÖRąĻńŻ¢l Ū9 ӆvåɅåxĒÜšŁČØkFŠÖ°Šh2<ĶõŸŹ@&¹Źń4™Š_E•Ģ¢ÅŹČžČĒŪĒŠā"ŹÓžĆŌV LŽ÷_į9OčįäSęĒQēŽwaę‡q`ä«YąŽkį‘Kä.Æ ģ·})ų…(s’hņéż_L{6Yśö-ģunb !?õ‘°ßżĖg¾ųīOZū|><” ė„ ϹļžV Źüįż°ž)śõQĀLņdåīņ$æżōcDŪ’¼=čƽšÉŽb 5šē•%ļ›Ž_ÄøUR²®Ś;#uŽ‘4aÖ=—ģ+L×C8S8ų5ķžv+œNE²8i\@ų {Œā ’’ŸEՙ@ļ«šÆ²ßU Fc*ģ®ąŪ Œ[ą "~ōˆ ‹Ź`R’ØóZ÷Į8}šĢęŲń‘­•öCnÕQBŲD„…ńįļPüjÅQŖŒ@Šė0'cŒ‚żĀą±k/ āé(ØĶ7.§u%ŲØKŠquąęC¶ğ _ߚ'?+' ''Ķt)ÆAc*Dš)aO"żÜŚ6#–Gg*’h[ˆ÷%lųVÅ’ČNžĮŽRqs” f÷Q;S čĀź)šśø3Ь’;Ģ”¬?„n>x9;t¹9‹5F<}±M>{:D›C4t„5¬Ū†<–ē9D›,šLy‡ōUbēXN{ETxxÆJęBd{Ū@“mCD@cŸ 6±›ż-ö‹-g>ō/'ńżÕ•VłÄRxłF·źķ(Žf$åII/u^99ƒø²;¤e9Ōńō+ė}$ŜĶ/eÕœŌ’ĮX ›iįmĒ{3ē [> $#ĻU¹BįŽ4֞sĒDåż ø˜°ö Čę¢E©ėhj>®÷I.’ņć£ź6Ģēąe›ćDßąąœ Šą½ ‘äNŌ3č©”ķ?‹Ųó÷½śŗü˜óųĪ_ÆųO‡GļQ±¶ģ-Xēšr\óÆ>!ļƒż»ļxö½qŒż˜Ė#F7a’øcļżÅ#ųż¾^ŗ’Ł•Üž½ucra$j Ę(W ¤’šč>YScŽ ©9ø ĀĪr“{ł™Įõ<5š5äźŃÅ>ź'§Mī7,Ķó=§æóÄ:óæ8¤óöw5ōgóņø:„÷S*{żø¹wkJĄ*ŁČ&E—˜ōžŠˆ÷Ežm %ū‚Äł"GŲü(ņĮNŸ£ČŌ®SÆÖ Ó+1‰ƒ@ہE5  Ģ+° 7R!éĮüa•„übŚÅ]ėŗ×žęŲųC2E÷ö’Š@ž{‡&Ä \ūKxŖł–ƒ(ōi™ņŚYłėĄĘ¢  ššų Wö]„  Ć s,ł·Ž ųެ“õöpCū‚AŌ¢»h„Ē źĆ`žמźu÷j[ļõsqóüéŗ…#žØ’B•ū~Čaž’ķåļŁßN @žÅJ‡ųŗõzīóz‘ē—Då€cAߍōFÜ&jĪŲ?©Õ „ڽ÷|ėˆÓłq ždŲ0’mjŠūUĘõŽ2Łó¼fļĮq)ķaķÖėźż\źDm.ķӅß÷‰’Ÿś¹@ō'±£ģLØæģX„÷ź¾Q„ź*[9ļŲwņŅ”ųo'’C” µŃ« mWaČæRQų¤"6īܤź56līŁ±_ö‡żūʊ–ž L„Ī›œ”ŠÄQęEģŗ(b/cÄę/”ąČ'Aæ Tõ9é‘!™R!_ĆŚN/Ó!)jģ'›é,« D1÷ü 6%±Ģ3ŪÕw+!śŁdƉųͦ÷ŠįŚĖŃrJMŌ÷ŚŚąxāāv¹ę9&wī>2Põ …ZöŻē;óŲń52OšM>Oīų»‰ńG3’ń*"öž'ˆśÉn„žģĻ)Į@ Ń õżwUūü¦č1qˆi‚īõż^b÷®äUņ€7īG jķ¾Ć„ņ±¾óūø4-–S óEżČé)ųŠ(cł_€ ł‰Ä[óŠ)ģŒN(蔽Uä›M å3ģ6ī_å³ūńÉWH7ų(1Ģ~š Š€ åž@x’g2łĘxūįm†ž°cšWݲ« 1½§Ū/Q|L“b)Śė”4õ•pż©ŗŲņ#?8ļÜ@³šžģfš²½Ģļ“b)ńūņ(U>ķԐęlN$āŖzÜZĪÉŚćŖ»ŪwĀŁP‹ŁRpå6źJó‹’?ś­»’ōæÜtĄs ĪB˜‘Z$‘ ‹‚Æč K”īć <šįŻ;ÅČP ÉDՂõ[¶ā"„ščź ³yB@«æYš„Ł›>Ė25E'ĪW°†S ƒųūĪÆų >!ņŠ”Øńņ d÷óŪW_īK'÷źń)ģ1zFńB…žößaŗ’X½> ÷ -†Žøżb“±ž×ŽÜŒ™éY”’˜¹’×-{Jø ą¤åĘ4 m ‹ü—;’u“:v1Öõ}VŌ®Mzz:\c\„ ēč6yŁFµ’ūY·¬“įĢ~żlż*ö}p|ń.4ļCµĮīĘĘFó|ż’Æ¢J ĶA”Wx£,>$Ž÷'œ'B%źH!˜ŌEtÉ (ī Ö^ “ õŌ)%v©l±å#Ē>¬ ćk³óüfķęHÄ BµVżīXķü¾œų‚£rījmåńžį"Šā/ÉålÅé“}ėźśŪ:ķ»aĆń…©łņNÅōš×šu €óŃ­¦ōœ”­ń—`<ņGÉsļo¹ī¼n„ńīÓ ōȎ²ļĶė×ģzH²ļt&šńȖrń¹t—ėaūBéi2ź{ńĘéÓńLźČ`öęׄ>ērZ±ģ³Æ=ń5õ™ōeģņ÷Ķ2eüIŗT’]Cuü­#ö÷ŗ)ņĻāņļģļ‘!Õē쁔ܔ½ÆÕ²²ÅÖrenÖ÷¶ÕpаÖ‰ ŁōÜģ KāŃ7UźS›¤ńs©±łŽ«ĒDøĮ[3\żŲīłÉŸØ÷ʕæöņU%öäo÷éętū«pŽ’æėIé¤# S“5"I›ĒńuU¢<¦–ūżmłz[?ūe“’ÉŽQqœOoe\ņż YFž©Z¼žśÕüŖe‹ó„'}é‡÷FąćꂦYƒÜnŸŗå'Ū¾š  9ūʀŚ˜õ Žp ĆfK§‡oOÅ ¹žœŽXƒyK’Į‚žźllżK ØžĢvŽżŠnWū„Žś—ģĮżDĮČļ‰ ÖÕ! īf Õ¢DҰZY ‡’]¢h’Ą®ś’ōéīüÉ™ųÕ¹‹õ^=šŸ³hģāŠOźH+w宅õąŪ7ęØčsļØšNõ{\6ś¹¼žhœ@!ņJ’€œĶŒAA¤¤ż‚2 §MI› ŅīY”GN&ū ˆ Ķs-åv?Śø…į®kqåÉ!³3e"ņb:#Č·$$QĒ& §ü$Ń>źŠ N?t».W!ķi []‡ ”ųĒŠžØą+ÆČ żŖĢG 9óS["źh‘$h«§ š]æżR}NŠ7ĖFšg6˼ž@-ÆŽ–ēč*!笯#ųź–$š$v!ųU0Ā‹„… …'u ą³_"=",‡ūN•”Ćńa%ŗŹ%“4d!Ī\˜ŌBūņæĆ^ūAćž2;ų˜7ōv'ņR}Rń>2õ×;Œ鼓!µ]ūĆņ#Lģ5)ü”_)Ų…Ų%ę¬!Ėųø»Ł 1Éū żµ­ɗA ža÷ü2™嚐HĮó †ąw móC DČŠc:ŒÓķ’RŽ’ n¼üӌžł[˰łß­oūYƒqżżæAżŃ§ĄųāÅ®õźöņ««Żļq….ėqe³č OėĀˆńķÓVöĻ…üūĢŖnž ]Ó–x ×pwš^č K~:Ōt’Fż¾Ąü’ęŸöĄ·ņq‰ćńl©¶ńPģń?1ćó™$ŸųßėŸŁīUūÉ ¶‰ .S ķ Ņ«7 Y%––Ø#j°āFVßCÅцśH,oõ±”nõ{öĄųCżC¾Źķ—ÖU @”“sځ]ŲĢ9&ÖMXŻĀn5ŽŃüA‚»±»ū$»é'f*¾k:2ć¬9D yėF¾TKÄ%ąA²Ü4ń®C’|”'q-i ž1źÖc:'&£¤i"‰xgћŲ)‹ÆFhČõŚķ‡-“ę —.;Oū«M<Æ÷(šń¾RņōĮćĒ`Tī£ü&ė™é±ś§*6ø4ś|åņ0Ń^¦÷ Śķ1CõDūŖöĻĆģ¦@ŗłR)ˆųļwģ—Ø2Õ9ˆwŪ|Ü9ń+ēeéöX9ŪĖvØčŲūšc vų<ĪĘķ³šĻāß/ųu¼Ū@¾Gl  n™?’ ¾Rw†öž¢ĄżÓŃčd ņކš}˦ī=i+ļżźšŽrų“gÉóDEņŽ2’”~ü0÷gÅĖõ9<‹vSųł×ŗ4ī~O ‹Oņ‡J’" Õ³śMnT?‡t-½ž©¼ś Ö!żŌOö*¶ż÷Āś ŸU,żŵōø2(d\Ōhp  “ģł=SzńŠ$ īéĻtįDļź¶‘śæB£ µķā÷u“%’ƒ†D×Rw ¬ųD}^Žż’V5ö¦ö:é€&`ņČU¢$ŽŽ–lņ÷u<0¬ Ė\ź‚%÷öÕpŌ÷a­č›X£ķi ZžŠ7 }5£©ž„aėöĖļ¶¶§ėæ3É÷ķ\–łƒ`•žóXł ˜Õš_½Ī"łųŌC ØŚ<‚²ć`nóóą6YžŻ°ŌvFņ‰å³ķjäīŁ6օ=&ŠŽ÷ŃƳ>ĒJćxÄś ²äBŃź(•{įLŸ(éH5ź#‡‰ęäņ`»ŻZAoåę½Gį~ÉŅNØ·Ōß©~×Č[ĖŌ'Ļ»zńȰvε°3“Ā—·lʈPœĶ8Ĝį db×§ĻéÓü-}ŻVš_ҬœĪZŃŅ螭ÜićĖXM¶ĄÆž­µ`^ņ¾‚Ņ\3!Ż·æą{"Ļį*Bź°`^ō zē.‰«ü†uõœ/h礘‚ó?†=īoŁ{ź’Łōćs¼°ŚvTå Kjčl¦ÖɅ¹®Ģ~ŁÄē?)aīw\ķĶåķ<ŻOā@`=ćō–śĻ½ƒĒi^üÄY„—ČtėžĒ¶cŁæQZʳ+»1ū†ĆkiPĒŹÕĮø™½×ÕYĮI¾ģŪXŹ uįˆ(¹tū¼8ķNĪßĆŹ*ĘČāĖ<Łł2ā=¾DźüāAŃxļfŻy:ćŗ±Äš¹xžļ¦Nę׿„lŌ“ŠFćN–ģE'³ń^ąŻęksYģyļ”ö˜aVķ"īü’tļø7’šē¤ų 'ö1łœõ–žčę[ąįDkšNÕ ēcžöčMH«č¼ųóņ°Ā÷ˆ;ąę–*čCŖCķµ«.ż÷Ž“ž)^逓ŻpCQų Yņ•Š.&*±ĻnķA\Źł²ėÆųłĆ»ś ©Ž) ¼rŒ ¤uįpķn½7!.²łG@'³9\כ‚ŠC^ęcqĶ’*ŃĄ3jŻż˜„åžäѱ °ōØĪłéĖ–¼K· ‡”vē…G¼F¼c°²%rYüOŁŸ”]xl‹æ¦ ¬žĻ#Ė÷Ä#K'S/ĢfŻ1ų;€:P!/3ĮHš źĄ·ąGŹLu-\ź:.Ӟ=(Ēŗ2&½‡#q:aÆ·Ų\ÖXf©ėīZ&ސV)qįśä½ė"K– ž¦œŲŌcLVŪP*–’Ģ.Fī(č#<Ī!)£×ƕžĒåż+•±/‡kX0ĢFlB†G;L÷"#BaB^ø†@g·*>[•7JŁØ†LV{?ŒśD™ĖQ<ÓŽ½:sŁE?PĖßTJæĒQ3Ź]ś2Æf!=mµ =ŌÕß0źĖ4Ę4 /ßŌA­ē(¶+‰ō&#NQP(iµ-=‘/.C²"µ§ŖĶ°ė¢\¶õ Ü ضšgö¬20z 73qŸD‹¦>süH6“<}, ·Ī3[} .–’å*Ar¤žŽ!–Ī ^™Ōų#̤ ÷+µH‘ö‚s\™uõ43/ A i‡eņp#žŽe‰ż#•v”öD@Jļ#ÄĪ÷먣ŃåTiīŲÄīÓ²EVӒ&YŚäō߄EšćOu:Ū$ś„Ō£±Iēö˜źC īāŸ9_āc¬Öēg#õŠĘöīÜņõ&”ó-åj ųēܔ’˜@€ōĄųČģ įō.§kõxŹ8ł”+Žó[9Õä¢ü’ģ#ó‰ī5h&ņy@ļųT÷ü¶qķ+ł8ˆJųʝGųXÖ_ķ;©BģésķĀĪ[āķt³ģńčdšĪąŃīŌĄFäDŽŚGÕāŽ#|¢ź JvóķēņóU łę¶ž ‰*’fx $:€Õ0v£½¹€ššņć ‰Ÿ(‚SśĀkšūCżś”S O‹°ĖóŒń+vv›C5 £ń}ް2„GÅ4i4iĘōĆļų,i—łóŪłņĪ}—žĆN Ś%‹¢~_¼¹8ć§'E™ƇHÓ Ņ Łńpn¼ Q­’µæ;gükŪĻ|ƒ oä ]Q=9Źx2=Ē Gžųœ%ņī„Ėė/ “ó3Œ »ÕÄY£čvF ć\L%Eöü bö†Š!ż’,Ź“‹!?ŗl‹ķČ|rå]Ukėž€ę½āēfčłÅp3° ś¾»>ł|G‹õ8NKéÅH5ņ÷§@õˆŲüė”õ„ė±v„õ ’šņĮ·‰ńłØū–Ō)’yƒ’ –cš„`Õ Ą“ؼÖüӂ-’d„• 7LžL$źóĒQ޽Śūī†Ł¼’žd¬‡al ~pĖ!ŅR_ŗŠ'܆‹!~}+GĮų)jØ")•a“Ē {2k =śW‰ ģ^rįB&}õź(n‰•:TšD‡„Lh¤dO”1B1šŗ>ćś£BāĖJ}‚¼?^@4ĻÜĒ Š:œÓ·ĶM%żU•ś’G»bįŠ2~>ƒƒ *ē<”ēѕ…š eģę.N”ņŠ9¹ļū·×÷`å–šš’ža¶ĖČ>rž’vWó½„äņWŌ”ģ¦Kņė)¶jķKõķ5ŗć-VKźŽ¦½õ¼~Įī­Éāźūģ鎕}ļŃĒĮļąTĆē£ń~å€ 2ŌĘē-ŃŁe®Šā§—ÄßOÖŌč9Ī óéÄ÷J«š×Tżīįģš—{š”ÄÖį*—Ü=­Š½°Šˆ÷ƒŚé@—Ż;[ćŹB1į“ģą<š—ź"µœż˜įZ?īy^ņR™ÕčÅŁķķE^ÄēĄøŲą'°#é³/Õź(ėéėŹ då®—Ż? TäCøIķ’•š1„ņ¶ø>üVD’qļüĢ;¦ų×ÖKę™֞Q*®Õ»žā W1 v{D«GžC—ķW«BļŁ’ ō?}$’„~ :\Ļ h õqÖ čÅf„ę¤ jō×DŽżEå{%i™ nī'¼iźśbsmÄśjśaēŗōž;q÷źęŁ’`ÓFŽ£×÷&ļõČnŲóˆķłŠÉė<ÓłÖ{÷s¼ ū甬 ˜Ź§GĶNr| 懗 NEž ÕźĮ 8bh^o‹–}×ĘŅ^z⠜:ō<ˆT¼‹ķņBé¼qĄų^šż= ö’˜’üłĪōzłłļ#ƒae¾Ńūzū`–ž[‚*^ż:}9÷Uļ½—\ņBøż5^5Ē >{\ϧłc5’Ø’R€žŹ–ō<~åsÉó½+ūł„ŁŻčŃ[ķČY÷œÓż)<ĀöEŅņŠ rēšü$éĪē²ø~稃5šKśśņ­ ‡ŲĄ 4 1! –ź ‹xQ«¬$ö"ÉźH€mźĶÕkźķÜé@W°ć: øā“DRļŁDa÷`‘żŖ‘ēųnša'ƒŁ$ż$Y £W£Z* }c{!š)“ ”ß„ņaśéˆō=ÅÓźx‘Öš&Prö{Sū ‡ižÆd’÷„Ēö“]žUNs Hr ,ī#hłęĪžpµ żneKõ…ŠwśūŠ’š–Āł NõŹHÓź#ŹCģæų†óŽŠ!ņā(ōėl&péš6jķˆģ/6=ėC/ór\żń̔ÿ(7ßäU’ś›€=düüˆąénSß29䚅eģN>ü”fįžöŪ­zZ)żÉ¾ó) šłĀnö™z‘A8żęšc|āüēŌėß'3ēĀŻē'/¶Žˆ+ßNFFęR+łīļ÷˜īź½ó?PńoHķ×(»óĒ0Qū«Ņ‚żÖŅr_Ēļgd77ć™É "ĀRæ—ܟų°÷‘®œoš‘¶ 'Ŗ 8¬½ 1*Ī¢„Mū®ūīķךeżdĄ] Ó"ę 7F°\ Į±AŖŚ)õY5|syēŸ-Ć ·~Sų zµéN~vį¶>WčՉń÷r'ż.Ų g³F—j¾*qż)ĒÄ,+-31s­č*Ś%™ćȇxj¼šüŹÓ}ý¹÷'ö ł‰Ł’öKKēėœĄüKĖA ^* 5NKÓT Šuš¾… ž*^õeGńķ$ēłņĢiüYū'zöžXńghšŒ·éėŲ ä(į³Ņł“Üᑬč?™Ōļä# ō'jš$±źHµš3 ÷+źöÅœL9ń©„’¾ę·‘ĄFd —WŌs{ļ y£öÉ”gī@]ćöHŗ• ŲČŹ9kų!ÆyõZ\JųmöŠw5% 6W#{ų& Ģ,¢.só!ŸM.{Oģ b&–»>¾÷żÄśACb³Ķ̈^Ę߶ɟńżYé– āč ’Źå q®oq"ø«”øf1ž>ƒīį`Ėė*(Jö="/…é8¾¼J5’…ØI°`¾"y?ś”ķˆ}wiīŲZ’˜¶–õ”ÉõĘm¹ķÄ0«į×¼Få£rš%Ŗ«łŒ&ük!śŠĆõł¤hmń)Ō`ķ. ņŁ)ö¢‘gK’`aź ±Ņb ép ļ”°¹¾÷’Ż+WżŽĒ«ž Ī(¬|īŌĀī×ų GMč mć ·ņ’I R Ś!ēB(Źn>(Ū{%+cƒDŗŠ_:%,É2AKÖ:+šÆ ć[©ģŽčNs° ‡ų;­d}š+WB7æKLD[“gJ,„I%SE€éR@u›sDV|²H¬1!MiDńp04ŗČk"~)”ēķVb“/|“„hh195³QįƒØ{9 ¹Jrż]ŗx%=+Ń×Ķ’4Œ5vU£Ų ¶Üø’­lņ§čšēńåāµó¹EųńUļ’łēž³ ”ś…eåūó’źĆ›õžĀĄ-öN¦ļšAż]®‹ōĮõķČBŠćÕ½)ŻQ‹iį„]ĒąööŪ¶ ą)ż~ėŸ8żļ”€åģg>KéÜO“īŅCbłpuļŒŌgq1G«†š¢!‘oĶé :ø ²)Žśē’NĶs÷ź=ØóT]ļüiVšżZøóHóļę ,Õ䉺šĘó»ūĆór’Ę½Žl Į@  ’DÜżzŁKņžĪ€ æ~Ń`ē²ų¢Ö‹ń9€óķĶ|“ēåĮÕß¼Ć7ąæ3ģåČģ÷µ®Ū °"=w=Šk%„ 1*’ÄĪ&¦rh“ø° ·eÅH“ūń€¦ł’,’0N€­6µ²ņÖōū@”§ė¢  Dl >ćC³M6ü^YÖže¾’mu’f$v7l(č×ŤSO°¤ū”‡÷=[¾÷ʉ”š‘š įć½ŌrÆ³×ŹŽeāž~aģµįĢémNXänŽMē¹›ęļQī2üÄōĄ ļBr!žv~ &4š)ž˜ė¶"oēŖ+žÜ\õ‹ŲŸ}łŽÖŅIćl€āłŅŁ0C’ϰ‰Ęó ś½@dĆ×{ĖÄxÕ“ Śęõ}Iņ‰Ä>ķĶ’ā\Ō»ŪŲ.ÆŲvҩקnKÖw`wŃxéÓĢh÷ŅņfVĪĄ–cĻŲYæĢ˜żrĄ‰²ƒ“ąĪ¬“VÄÄlŠÕQ“vą 4źŖŹÄč×YįōQĢŪ”µ–Ś ))Әń=Ōk®-Ō\4®Ģ²ńEÄq¬»¼%-'Āķ}’É’ĻŽ¶ņŃŽ…×-ūēÉD-ųvøJĶdr ~ŪŽ D›Ć­†ų騗łØ žōź”žšT-ē‚ó«Ś,āšĶõJ‹Ą\a¬¹!¾°Ē™aēÖž“×Ϙ§Ū:¤āDDlęzFēŅHˆćü=Oą)®āėßŽ÷6ށ<čŚóĄŲŠĄcŌ;C¹É~P¾-ĀÓ³všÆÅģ ŗaņ‰Ā½”ĢŁ[Ń£IžŁLF¾ā¢ō.ē ¶涚Ēćš5ģ[xļ!{ņŹSßš °„ģp2 ć» Ń߄œ’ŒŸś$4ķõPŅ0ī^Łuē±šĆé³H‰ō±TZy^ X<ķL41ĪIśF$õ ŒQų%¤_†ŗ‚ œYåøŒÖ [`a¾$>dÅżĘå“õéņķ€š½x’ń센õÉnjųՑūõ@G®ļßLXģVŖģ‰õķvłł³#ozõŲ |Ę" Ęģe e#½UŸyļ¼Ų®ūĘ—ō·µōXܤö Œ[ż%Į ”;ƒ»Ī®żébŹųZó[üŽyCĶ#/A ķ”§\„c ŽBj %Æ ę“ŌӏC“TÕłö7ó(2Vöå(§ü–s> ‰y½łæ3|§²ģ¼8 1įŠ'‰ŽŅ)Ś—&¢rØ#Wē!.ĶŻ"•’E%Gg°ĖlH6P >W*f ŪE¼’_šĀ"(•™+Iō[*‚÷…)6HP"½S^ō;yó.=ų"đ¶É ģ+ ß‹HÄüōyšźĢŻÜ䎎ŌÓ_™Ó6Éփv߉“ŌźŚ!ņM*Lś?,“[ü;ė@ś1$śe¼‹śÅ¶›öĆĖČņāŚ“ė§ę›{’ęO&ź¹ć+ēÓ¼ćAzģ)Nxų4 žżµiżśLlś§Ń¶ś‡ß¤ū³Pżł™§ņśw.żJo—čßukūŒud  ū#-šĀč<ćNłƒŪÄ Ų·C>܍·VŻN©kąZ#ķå6„µģ^ǧóYPĘōɔ|ńė¤šÄĖ®ļAxżń€±ćõc‹WžĀEšē\AŅs“ ƒ3ˆ[N" £hųb² 'ŻW є¤¹±" “[—™øłĆł”Utć÷~{OI1Ü$fūkØ" æb·ģHŹ ‡:Ng„éĮ%ųĶŻŹ lBщž +Xüh<¶üßįoüˆsbų&5ų®Š@łõŌ‰üÆ'<’ęמ]Č/ž/O¶ż„Öūx[Čłōœ„ųĻäŅųhN’õl,ōõÉüBū“ÕSģ’¾KxĻ ĢqŁ#ß+§ĆÖ¦{!ķ˜c ›u["bØŁh˜®˜ż­Ļ–„”D”]M dßž «łtm ņ‰§»ó[²ś‘—üߞ2ū²ü“µŽ Pļ“GK ˜y0ęü# 6o’±ŪŌóJŠ ą+}žī^Œz¬sH/śŹ čŁÅ ÕRĮӒ\w:’D»dOŖ o„_’ŗ› «³§’_‚Qą:Ō™…ЬEŒü™"õ„«ĪšÉ©šŠšō¬¬fõĻ„?ų±|o’–Ó!ݳI@§»¤ż,ē ś~ˆųÅߋ÷ņō÷ŲĮ“üaöśé”ć8ŗ"ˆL–“7t M^±’YVĪ0s&L¼ Ļ w2č!Ÿ¼ jv{ĢTP”J^Fm W ¾ — 0™Ķ ż„*āĖK ą™=#ĪjE%Č (Õ@õ&$ēų‚ü&ž2\nāKīä!6 (ĖŹ2-%ŲŁ,o ģ.ź Ö2G„71«*:3žĮ9šÆĒ:¢VČ;ūdB:”ü4eŌ/^™*Kō«$wżE¬ń o¾*-„7¤™Cøc[Ļø2½ųRŚ>¬ü”ĆkƖĄ¾āųS›m!‚CI7Āž2E h¢x³\žĪoÓōöļ9“Mļ©ĆTšö…1š˜K`ō6\łH^ž±Ók’`Pū™½öƒ‘ķņd(ī$ŖčŁåßtŽä*†ääRʽéŒ]ÜīX‡š± £ń`IśŌŒa?Æ„1±‹Ģķ€tŸBXÆ ĮrG… G¼ˆń6:Č„£ņµžGėcÕ ņޘ Ģś]ˆ²Ó"üŃéÆśœ„¹_S „„6››Źŗ±rxT³o£ōā a>īmKĪŻnöMō^+TqŒ› Ҧ˜ = ĀčŖų×V™õ¦żōÓG­ńĻĘ’V3éõ."e’ڼ x‰e§ėŽiė` dTiüö *śŠÉ śl†ļMz4ēö#žäp7¾äĀÉīՌżž­öSŗšż02üŠļ>ó½ `śzœ³ūu*śß8€č;ņæÆļćĒŽ4ϔ٭Qß­ĮāIŖŁiĪńĄ &¦Éü 3ĻŚwČ՟óŻé®üä$ĀŽšŖxæüŽ&ūßéM+ēņåGėņŚ„ė®cĶŅxsٰAČź;?]õöžzāRųpÓå°Yʈ.žĖ‰/ĪG\ó¹ó.ƒøOcĆIĘŃ>OĒ2€VÓ÷IžŌŽ.–Ķ ØÅķ„­ŅāQUȒ›ņ“͆²ĘĀKĻ»|kŁĄeÆä+9ļI.ķź=Žw"ź"A7óĮG#īŌm½čP ŲęÉ&ŅŲ*ÕĖOŹÅ+•mĀĪ@ÅŹģĆ×Öė×įē/Š„…"ĆīŠśņģĶ‘cŃŲÓŗ²ÓbģaŻuX8ÕaŁ‰Źˆ&ÆŽZ±Zļõ+ņÅž™ļ®’`ńŠ XčfūĢ’Lķæ^ź0”ķē9P„ėŃt£hX0¹KeµŗvūQ°įź~¤Ž4)ÄŻ&¼‡č„„zåž’WķņqčõäĘä"9°īūćõĻūéqŗiā‘BŖéMILęą¾ļÅōæóc>žõĒš ‚w“ ž¦lõ¹ń_ęs›UäœG¹EüM§†óĮœyŁ4ÆÓęĀĒߏ|ŲŅzļšŲ3ķ0Ńąf菱&+Ģž*sŃÆ ā€•ÖŹčŽ÷­ĻįšźEļ[©źe«ß.ó× nŅPĮÆŽĄŗŠQ©µ¾dĪ@ĆXłÜįž`įҶĮäSĢāēŠI¾ō{éżÉiGķ{WūóPO/źtM'ä_Tméu•«ģĮēŸÕSDÜĢÓO®ŽųŪ:ęš­ćAÄcׄ̈́$ākSŸŽ-čv×Éöה\ģä˜ÄzšGÄ ńöĶŖō Ÿ“ģ&Å ĻŹ YŅ ū¬„’’ ńżPMćõ†ø  Ō{÷1Īķ¼i±÷Yyb’×Éypö°fīō÷4˜Åš›LŲõD×¢;yQīRUzŪeų;Ę4K&k°°Pį-Nö”r7’'gk=•uĄQJå掝&ģ3ļ-’3(O‘„—ĘP,Rž­4øć/!^:ź+ąB'“D(’č:ģ&,žćˆ(ÖĆ 5ßj×DĖ$;Ձ™/€żQ&ŸvŠ%¹ -/Ą°,i5Aé0Łüž$…čĢNdę=Š{"9ŌųŃ6”µ¹äŹ#1NŠ=]­KC4ó”:¼2¦,”O$„Oxš9ŽSGb]H!”˜*ķ0—,żÖŹÓ+ų$p?˜3®H^ź±?‘µzA~ɐ>1ÕIåY JxŸGIžņāO꣙L§k„K<Õx=Ŗ„Ś<ū·y9Ķ€æ§Ź‹é| %‘}LQlM½äģ EW\˜ļŅŚēļƼ»óŠwō”ę?žx¼śF`0 ߝ8rĪq 4^€ßŠ(ÖÆLlüj¶(ų\%?\„pµę˜ó#‘mKUęt_ D W ‰ļžÆÜP9Š|" dRQ’aŅ÷ŚØžYčžšäó€#ńIĻńÕé›ļž£ąfź•Ł pŁäw0­ŪSл،œÕŲlĪsŽįe׹†o}Ü™Ż ŽÆ†ćųćžß‡[rä.eiå„žæŽØŅä:äīņ[¾÷-•ć^kgą·UźŃZżó$š1š“ĄAę3ėź2>š”,Rė¢C÷zn=źžµ…ūŻėłż! śyāŽ@pB3gLó‚YJP=¼ €Z¾iŹGŹž“7óõH«¦3“Y Ż© żÅ”ūķĀ…ķMĖ{ķečŪZ_ę0¶L÷sT“žäļź’Įp8łK īyAėćĻ^÷3Ż8r•BśĀ?iĪ3Š® 'ą· „“ļ ¤u.֔üŚÓ C$š„ģ$āōE‡$TxĒ zŻÅ ßüxÆZe“łĘWĪZsą¼qįżņ(Ył-‹Nž!CL ›ēKćį›ę‚ÓĮ’IŻ™}½kvö@żķų „=š__  łÕ&Ś:T&›^$Y£Ė4ƒžĶż‹VāøbņĆüŲÆqYóŲ$>Ґ)=_9ĶÕx“+ ó~*Pų%e„ž×ė¢جńXßš÷;²]’^/éü‹\ ūJqń~lĻļĮ]®ņ>l‡ź9¦ź­eóŚĄsŗÅ äĒĶ)¹ŁŽ–{Ž xžäŅbšųŪz“Ćŗ>öżž;ķ ŒU» Ļ® ͟^ BhŌżlōsŠNX› äÜvŵgųæžĆõ†JūZxÓüŪ™›ŠŁžĀ?3 }š7(HוA’l€JģŻ‰Uį°`9Foڬ¶užåmx˜Āƚó39öšKŽū÷-(įĢ«ś”t•÷ø·żˆ?_«Į + y)%ų-°FL/¼Qž6\=„S00Ą;|Y­€šWeŌü‚WIżk!j¾įгśŚįĘr¢tż§Ąč’%ˆ²üZK²ų$Gķē\µįõj©éäąŃéĆ ėŪ/żU#ōžTžĄ÷īīåė¾į_h#ŽŲą_#Ųąį§ńŌWŃęŃ#ŲjŌ‡ŹųŪrTĀąóĀuńėLĖücźZūI!AłķŽó¹Ģ½ī³÷ėäOÜāXRvÖxŽ›Ō )Õ»õĆZČŖˆßQopĆoóż¶©ē®œrā& éĶ?wńŠ(ŗū³ęÓlGJüźvĶķE÷,ż€ üø$üē©ņĶŠšg\ļģƒóĢÆ÷zWĘń&hEļ\YŽēlĆFķÆv—š¬*ań—2¼Ż,ĢźĢU įŻĄš=rīņź!8ö” łb^RńÅ0‘ź A·Ņ¶×>܉µ·ć"~åÓäõ²ē?Tdö”™ ś_QžōaņńÆŃī|n½šBaÕõāRóā ļģĘyŪ „ĻĘ0æŽå©„źą’żź•ōRš0üźv łq²ķšŃ×ćĀĘNé‰=­Žü6ęÆuéą[ÉÜ"š½ÜŽzļŗ”ż/NŸ’…ė-łēPļ®]õŠōī÷ÜdnšĀńač4·ąTōķ &”ś~&ó¬ęĒÜ]ō ˬt'śā…ćĘĀę‰āēķ”Yoł öūyģćń„“ß@ųę+™ēīW˜åŚŪAā.]å@<ė ČšŠlµõNWzš Ę曠łęŃnTģ1éėÉ^īĮAŁłhć׿WvæÖK gč° LK¶āŠ`āĶä¼”ēęcŒČņÉ P’4 óĻ hä cHsż]Ī_ X¼ĮÅÆ (/ŻDąUžlP(¢‚ć!XWv¦~J’»Źüc³Åū:š¾ž‘¤ ±¼ŪZ1uŌēŖ­O­£Xףæ9dDĒģ!Ę ļ*ÆRH¹õ:V #&Si+ŁIiŅÖ:ęū,ä "üēŃ"$ÅC"Ģ‹n!<ń菣?„ŅE“u&R ļ&łĆ·ähkŁ\ˆT/·œå„Z²£ęéŸčįūҵ_’,b±0ü'mDŽs'×Ļ(ŠmŽ£®Nß­`ŃŪ÷[äŪā”bŚnÖLŌ¼€Ņlj„αÄ;ē—;õ”°ž “ę’į…œÄCd1‹ēĄ¹ū0ēėŃ©ZåVĢć&¢Ÿę%¹žļk:ņĢK»å­„G×ķ!ŹŌ°zż×%RDŌ„FŖŪƒ«’ē n»ķm-įźĒŚlē6† įlęŌŽ8Æź åv‰ōŠbH¤ĢuCŪ(…hßŪ2]ŁĻŅmĢõ"3Ēū®ÓĢęDÜ WćJŃķPń£ˆ[÷M1iłó„DżAÄžüŚnž@ih‚ @śöøŸö0HSõuzšī–Ūéś"–ąœVģŻ–0ąĢalćmŽZmoį ¾®ęÓķźŁ½Ķō?^ģüŒ#īł?µń÷v7ū½ Ģż÷²ØūeģµżöĮŽĒƂž(#R’ŗ4Šß*Osū¤†óŚŠPśą©›žÆÉ ’żŲ’æÕ+ž¤R>ķz•Ÿ¢–‡lŅż^« < n ańƒµ×ōē/Lząszl(‘VŌ¦x ½¶¶Ūg¾­“P ¦¤;¼ŃŌŻ•š®÷qęūSUæū|ī|ÜćlҘą{mä:R†ßõoOŪį'ģŽŽAcąc*ąęķ4™čæKŗź“Ēūģ1ķQš©»õĆ ł1=żęÉ ÜBUf(æ4Š$ķ®©—\3ś<° ‡# ų+Ź|Ź…`dÓæŪ@±SMa'-Ą"_ŗ&<¤V 0ÖŅķ€L=öÉø/™rPF ® Ŗ!Ó↦ …!ė £grš»å ĻnH”VźõO§éK¤˜äŚż<āf”LįM&kšØ/œs B@tu ĘÕĒöĻ ÄWž åÕkmJ’ś2_¶łĮŠ’ü‚€±•@F$"#ˆ#Œõ!±T #Ģ[Æ ;ƹyĒ•õ<µ“ł0“Xœą VĘĀ÷“¹l(/¬õDĄń‚Ęōķ6éöS¼`Śf÷W’¾D÷§!ņ(“żlN^”^"•v’?Œ4éW%qq-4ó6s¬ø7^z42XQ&ƒWnō¦’6{Ų²ˆ®ō>»cūzóQ8 Ģšå—ĀŻc?žĢä śĄ.)īя"ź¦K+ū÷™Ų"ru$xłįlõŃl2ōģ"€ńDķļ%>éį *īņˤńŃQ“ņ—ˆ¶šĻ’ėle•å‰xŻćՎŽ-Ś2įå’ ī×½`„Ó#¦ņ¹ ł‰Xu“_9Ö&-S¦QåĀ’I ?ā­e;v zNŚ ­”s`”C’OÕ伓:«żŻ¹Œ.½!¢Iq¦nMnLīŠų,]ąpŚ„̧ ƒ"Ł ÉÆ¢ļÓūwĪ÷4D€Łņű“JĻŌ ø„ '±R•/“ 6÷’­>4 LDmb Aūr.BL’hBEąä86zY.M”'ŲüÄ"H ęŲ¤.$¾3Ö)ŗ§*$"%VM¹b¾õęŠĢ­rž  ą¬;ßĶqāŅż`æ= {$-¬fÓ×żŲ LF„üæ¼ķ–‘ļ©Ö³ó4Šš†NuźUPė ;¬ļcFó“+Ųż/ƒQ Ań”7ĖnkæW •ž˜ bUÅ @üyC-ō= “óQŹĘXOyČ”×'Ģ'¤*×±Š%˜„ÅŖŗß É\qV3ń–†2g /øµ–]Ģ) ¤ 1·Ļ; m 倷  žĘs, ¢r eÉä†Ib— ¢ &e"ĘĢ’ź—…®Õ RµL i`ga@"–šu'LÅhÉ) #[>…”ˆ¢QąäIDżœ/‘-q‚ąV…UZÅ= ø¦ QM7œ"KśŁUķņĻ\…ōÕ=ņŖæģ²cyå»Ć\įö„`įV0Ūčį\’ź1‡HņäūÓČüāaļöž“ļz™é±&å„$āŸ7ē*¢ļ Ļ=ęfÕ?ź8äąōļ%ŗż5eö“¢č­>oŪ–B¼×œÓŪdāٙ׌&TŪÆń>Ū„„CŽGĮ•įQ9ēʶŽéąĖvē÷q·įj°ŁK¹Ś6zsāśł™į%Ń Ś–HōŃĘ/Ń8 6Ėö ;Čķ YČĪö ĖvßvĪcr$ĢÕ łĢÜp ŃįllŃ(ˆ~ĶŅź<ŠäŅx)ĪLKĪāū”Óŗ‡­Ś¦½œąMĖ€ę£/č£7 ébMāéEģ²%ó·;Ćņ½sū怸ƒŪ,¶SŠÓ1ŠĶ™Q)ŠO‰—̤æĪݽ؊5ūÜQćŪ«·ÕՂ0nŠp<ÖŻ#§×ö™æŃC»óĢ™Ķ^] Ī¼ĻłĆ×ćŲą£ņgę"”dēĶńĻķƼö~2üݚ(ū‹«ńöż5ņW”ł|w.žŁ©&Üֆ }Zc@ó?«4ķ~”źńHM/õPhĻīœØē×ŗćī•čĘźńq\–óT¢ī2eeī-ķ—{÷šROųųkęžĀin’üķ€÷9Ń-č,“ ßĖyļŪ4ĘČŅŁĮŃĒøŁŅÄÄÖÕ;B›ŲŹS±ÓĆyŽŌfwŌ?'›ÕęšķÖżŠ×“ß Ü»§sćCŌ]å!Å©ė+ėqetģöK×éÄōä&/ā)&|įŁ”ę`:uåæ{½ęŒ bįź°6Üō³ÄŪ<«ÜTÖUwÕ±ŠX䑪­ķPž+—īC;vė„RĢēˆŌ<äķ54ä ö¶Ż éĪ8{™ĻøVUŁųÕ÷ŪTøŁŽ!–Ö[K†ŲhĆ7āµŅŃź#N~šŪCų’9”’œ?‘‚KƧ&6Õü e Dw%š-Ÿ„<$œ}3y@y”"”ÕPśæ«·łĆˆ€LCĢ4ļŽüŅĻśÓƒ÷ŲYÓ 0oKläÖˆń Ź2ø8ĶŲ²› K3™qĮn pŚA :x>,Ty‡‘”Ņ'ž»m/š®/ ģ‚2r}ä<掠=L Š7•hN3Üö(5,8øVÆ5¢ĖD2Z^:ØĆC“šÄ=ć2%~Ž%Š!!" ,)œĶS-ʆ›)ćp,!µįœ³B‹G4ķ§č|š«³%_ ”(²āč"IĻ“Ü8ø ö_ÄÜ J½ƒż¤2 Ā’zŒ*Ź‚v2Ż ‹2-Ā4€…Ń,Aęē&\ōv'ŗkG03zŠ:2I©:i·0"Š$Gųų%݈,.ä{Ź.^@E1šv;ÉŃĄ>ŗ;V?ā”[@£yā@ęZt>Rā3ڇy §Źś::ī†Ӗ$¼R<¼Ł&E‡:HBō4o.•§ü9|Bõ1ŒWņ6ńA.ņg©ō[+±łÜ”t×&,”ŚÜLļ=Ožd÷Yfö]iėäu”©£·rÆy}Õ‡ƒāSŗFŲŁ:Żno­¼7Ć2–Ą¤Ś%sĻåš @3× ęČõ_éÓyŚüŚ ķ;aīó* ó±· ļV (č²2gą5Ÿ ŪkżŚ˜wwŚŃ šŚÄw'ŻųņÜŖźŪ`jܝ>āŽėŠōėŪ™Üī ĮEõ_:Sś>VĄ÷+xŁ~D­żĄÖyżOrŁ”śżÆ@mó‘&†ōZ”QūVj>’‡ŌĒTó-‰ó EP2 8FŠ+8cŻYæś¦žYł·æ®śÓĖ¢ż){Q1–,ć'drÓ8|8†Õö° wŸŒń±÷ń–š ˆüšĮ-żī³=Žņ©{ķó£īv%µk’ūjĪöN@*ųKŽpžžÜ‡ÓŁĶ-bäģÓ8 - Ŗšé£•"\ڹ"Q¾š t=±!Iė!ŠD" x§“Ū³ÜŁ µzĒO ~Ģčä§  Bø»:ųfVØ"FõĄÕńœHś÷ę"𸢆 ¬©]TQmYīź dæ™ N,‘ ³kæ2Ī{ ~2™)]#2u—ė7ž9Š5ūPĄ,åGxņS` óŸ3ķžfłēźū‚¤ OnÜ«GššæBPQśIk „JžūŽžĮ)³Öh¾šČžÖ©I÷Ć>ö„xĀń ÷ģĢüVä<é»ćź-.åĄF™īiŒü󁬮ł$ēPÓ ›7ū@aķõ„R”š,BÄėæ 4óĆõC¬=5Elödh ·pĆ Ą•× $O)Móé–—R;żŅmQĖ’§©÷+Ėń¾<ĖėÅųšģ*֟ļ :ś"š >2‰Äs¶oÜ"¢ —lˆÄü²Mšühź,)õģ3XžņT]ņ,Ē óo:ŃłĖĪwŽÕóćĶZ§·+iöKœÕƒVŽg!¼ģš#™!oģš•66_°˜„8Z yģŒŲ‡Z’¾>mśŠ4ĮüĀlŸē5«ąÜŽüõf}÷o®ś_jįūučźļ¤ČLć;„-Žł ’į†ś’čUėĆŗ#ķµ–­õö¬lųE#’š‚Ū’č=ėōęx‰¬ėõƒŸļļœ^īOėʍ|ēF5~ę/K’ę *”źfĶ»š1ä3õĢtõ¾€uń~ķµwbęēģ%ćQYłŻ5 "×Q Łēó€ē½»śŌ· sNE ÖJćėrS,śÜźź÷Żš,śLAf’Äl4J*Īü%&iōŸ:sļ[ŲńcÓń yė/Œė“O]ń ,öŠ‚½ügŠy{g’’ČęoųÕ}·š4Śčž.+ćÖŖŽ›°~ŽnĶ_źz«žh‹­­¾üƒÉ®ś5ßņ~-īč‘bŅäƒa”ęˆfLģdրš« ļ2īęåÜōĘgy÷³Ó6öŃļĻsķf»ģ‚"ņK¦-õź!qšŻ1gčˆ ŽŠqŪćŠ*Ū×@Ś:§ÜĘŅzėī!dū2¤»žzł%lģ÷ŌaZō(¬Œń,ģēšĒ:ēåļåéòśózéŻ÷{l€ś W¦ł õołš‘ ųŠč÷ž6\õu;ē÷cĘsūū]ł¹ų¤ćböÜÕ°÷CēöĒĄīTŗĒčA{hźė±Xó’Ščł›æ÷)”¼ńż&9ģ_ Nē5‡āć*ÖŁc ĀÓm.1×vķūįM‚ė‘Tõż•üĮ,€üĢl)ü‰iśż)*OüZ‚ĒłƒÕóś¢’‘žźg°Ģ$s "-L“]Ø)~’"GĄc(ź·Öńy$صˆ<ī¹^[Č›3Ļ’ # e«ÄÖ?é;Źm”*üž+_ūužćüŚõ<ūƒaŽõŠ>:ņėø„ń1ĪSõ)7żL^Ø -żŌż$ęļ)2mņ,ųų1%–Š2‘=f5B)t3”‰;4ā†:Į9QEýBMFD?OīüŠIō±µ>ēpi5łäż+ӝ,(‡h%$}RMS\æf ß“:tt•# V-g lUŌJŻī:n @Œi),"Ü-kR9  3ƒ—Éō2^銫Mą-œIŲŅŲ‹'>ē²ß®śćÓ*gŽ’‘µ,žĻ[ēö#Åģ‡ ŗčrčŁčc®uķęļ ńļz™Łļą<ņäošl „č “·ŪKō»×‘MŲ'ŽcŻo7ćā0ęšõlēŖČ†į«Ź}ÜK0×/وь•­ĻĪSŲ‘1Ūćamķr^š2TīŲōmėä·ičūöōćž¢KݬŪ×֜@ŅŻÕ AēµŃåĒßāB)ßŖ×ßöŽŻąv®ąM$ į€ēqƘīRbYó0_o÷‡Č śĄtŹśŌœųŃ"ņWÜ7īĖWķ)ōĀ¢ųŁ–Ŗö¶ś”óģNTó$¤ńō0H[ó²JģėΌē ēĘk–ļŌ¹œ÷A“Øł—ü·öČŖļŠŪRģ¢[Ńģ·³Įėz³Vģü)ō&ŌżźŁł¼qY g¬¶‚+o„žv Ź“ č² ˜³[Ūæ" Ōd†Żėzč5 Ä8WfĒÅq>—s{“žŗ’€ß@ü¤`ož¾Ŗ!°ĘkćŪŌQXźžJŅDū( –żœ³Z«1 Ē ( güIa’ò+ü„ųßō9£Ŗń1¦ņ’čÖųN]Ÿ5A¬ŻGĀà ‹Oɗ ¹ö„’”!ś!“&ż¤ó¦rĻ E$¶ Å=ן¢ģåm0–<½3)ü Éļ՟U&³|<+xõ-Õ+nÕ #.ŌķƒyŁ?rłKkõ—‘õöģjžŚ’ ÓQĒZ-‰0ز’üĢ ōŠéGęŽAwÜū.®Ū)ąÄķéiģīVBōź“”üm’‚°ä p‹ ¬œ¹± q7*‰-µ[°qšoŽgl§Éåčģ˜_g-=3wk°Į1/ó†®@ixŠCŽXĮĘ2¦—qõ>جčęz;ßFÄÉą§ūząhŁiāōÕw.׳½xÜīDüį‹!>ēoąˆļŪ¾ś„»(E›õ1· ¢Źž“ķ_ńiZłāЉO&• ÷r…ć¤ōæI“髿ČX<(,fŖN Œ Vž¤·ūFVż„üž£vü7’1{+ĀĮI“žż)^$śÄéś÷)rłų@ü‹łQX ūīś5ˆ†ła`ü)īEB“švŽŚ· œ“¼ \шFØŠ$R˜“IAüI ö²`rīßRBķŹ©wš£1vóźVČńGFī86źīߟŹńĢæöm"’ļ½ķ …{G«Bįź„ŅQDyŲE X©ŽŖ]¶½Ī ŲS z†q@nō ӟjT™Q Ļ5Ni|Āż/’f§ Ąźö«| Ex¾źųüż“ ž«æģ)Q8`c‹ÄĀĘź e8^3®–“O'“ ć(OqŁ%ųæJ°wą.~TAÕ®žŖvö”P¢™äcl"CP!wÄI±*–9Uj/\„öKŽšćhņņmĖ}öÓ-‹õųXMšƒüė7šē¤ć[&6ßUrcŪĀęß ƒ…髏Įõ”ŻėżY8KNņ°Śž*hĄü.öBųŖĢŃöģ%¬ūĻ+æäµ Ōl”W?»« Sņ*y0 µ±Ć±1³ “„tč tų¦Č­č eE Oœ Ėā ź…`żB.Į~Bp ĢŽ»?łŒÕ½A=sBGT “”r’ÄG ŅŲCśØŸ!ē- Ž=u‰“Clū <,,ž ‡Ū†¶Qō…ó!\ń)·^3Ę@=ß¶ÓAÓß?ü’;Æ&;Ļ]7W±-Œ8¾#»§ķUćHA¤Šmžį£u$S—&(ļ%[ :$—*#žŚĮ—„@J7–Žśe"m÷Ėtś‘¾žNņé 9€RŗāŅx:žNķ•łPtŪś73Ū §S/šw§ŻCīξJxž TLl £… o |Sō IgH ¶« —Ø ڱ™ć ·oq'ćVÜcķ!qN‘"-„~gŽŅé¶ #pm"č t¶¦YŗØ3? -wš c£ļ [S ę8³T4>†«Ą_°j"ĪŅĆ%ČyN)p.)cĀ"}ķ*ą1Ā"£ es»‰Ą…ļ&”€³Ū‹ƒūS$`“xüi®Uų•¹0ńF½ń…ˆhõ•g#ųĶĢ÷~ųPĖķūļ‹”žHĖ0üÅGō]Ó¢ź‰"ēölēł†č–h妟«āšīį[«Kä bė€:ņIa­ū¹<!Ā L1 dNé ysuśŹ!ō¾ķŸÓįś½Ł††éŚ«Äąˆ¼œŽē7 ŲqˁŌb½™ŌƂn×µõ)ŲnłźÖ3ooÕ=7ģՌÆ>ŌQ*Ōś€Õ¤+×1š1רčŌņą‘ŌŁpJ×6ĪŁŻ~Īåļ½ ņī7ņ«ĒóR¶ ńSF#ķC3čjšdåĢ֓äĒ lč q9éŽ4«ģ‘Ļ ļäR1źPnćÕn ߊ«įŲ­ žŅóæŻĻZ΅І )ŌO„æŪī3_ćØ-;éĆ>ījĘōŪ4Ēū$PwĢ©Źž(2ŠõūUģīÓeæģŠ€ļłiWī¼fģÉ„ é$‰ę1#ąß±<ØŁh¶ŲtRņÜĘAļą+ø”ā“Stį06ąš¹ įŗīÓćJ­’ēy•ÓģŒYˆļģ>Kļā^®š“}ö;-Óü †%t~ŗø>aÕXL*^G|Å){”ń,V—H(…* mŽ_V&ˆļZ ¼ÆĪ[gĀg/ū£*Äšā'UčoYĪčÅ¢īĶ%󂾆š=ƒģĖśšģ(š@ķ­ģ&£fī'ńīÅŅėš‰Åēżžä:!āZwß¼-ŪÄrĀŪ?čtå5,åš’Õ_õ"i£ōrŠ“ō÷tØń“ĖÅķč’VīŁ°ššÓĶņ E³ó–̉šząFī¤ü0ģRć<éäŌ¼·Ž2Łį×3‹JŁ6§¼Ū!ŚŁÜĶ%)ą­Ņ€įēšõąę3\߯§9ÜbmŻ«MąCmŌą``}ąöåņäāmźųäjģ†{Ģģ°Ipė< å&SąØPČćžøč²1ę™]jć^=wā"lŚäHtģé]&1ķžę?ļdęš4äĮņģ&õßķtś2C߫Ƃ‰C#Š|ƒÆÖ6³$^éóĻĖ%Īü劳ųp‘—ų=äcūrõüØ,üė`żCß%s„ iJ Š»9ŻżY‘?;ühßõ|ć_ÅĻ ?ŃŪĢģ/LÆ?ØKŽ’„bȑ%$|·%*°šŽ0‚Ü_4±MÖ1Htc+˜’õ'ąˆÆ' I'żó&Ź‚'äž)·qu(ŻYV<¹ ¤mkkō=ˆ#Y Āł)·.)JŚßūQŠ -Ļ|­ op/ e?š^aŠ`‡Ąąś¦@›+"ą=Ó ‘"Eg.å½6W(a5žmo.‰0³%?Z{lŅńĶ _~ GŃ{$; f!›³Z2¼0/āŅē#„†*;@W+Ė”?+i-D©×,³ŗY,B.T}Ė- 9#)…®=!dčąĶsÜu¼ņ Wµo ©š‘÷ ÕĖ (ƒļ*&§¾©y{,”$!gÆūį,5÷č>ÆöļŸłšū3ūū¶nūœģ)ž/‚TKœµz’żh÷«ū8ٽū¶šØÓģmĒy Žp¤¢āŹļt“ƒwń €4 <°‘`ū8恧xŽ< aū ƒÕ ū 6( Ŗ¶*£Ø°ņ$ķß`–ę6—°ą5ĒČŲIÖŪC×õJuŁ–·Ż+$OąSn”įz;Õą¹ö­ŻÕCŚwځŪäŌö߀på׆é˜-\īķĄöÜĒ’µµ4”ˆūīęY>ٵĆN1Ū ˜b&’r8ż䋾I¢”Q^}"ģƒ}Ś=č¶RłüÄ>Ž÷zA@ņūŌ ģ ›Y藓éźZ"ģģĶń!łH‚āžK±œ'žŽ éĒ×5“čŁü”Pōvūėń Å®ņU‰żóÓ<åõcó ś„:‰ż×u‡łœ]aļҧ&č—®”č H†ķ­5Uń–łńü[°ńœ­óB¾&öµĆœśu'L6˜’źxśąL#‰¾'‡ķÖāILž(ƒėū¶M¤-GĖ™yæęPČ صxł®Ōóō÷ćśĶGčU‚ ]J”l]żDŽõćt¤õ^G"łĀńGł ”óō¹„ķōļ÷śH(C°p«ŪõŻ{½§—¢Ń$k ~āŽŸ»žvųĢņ¦bņ×%I÷FCņüÕ÷‹)g7„®÷ ų\ę|Ēķ) ņźŠ‰ūĪŹ”µ½ Ę+ Žż5)Ń[ü0æöKÆówĘÅóQÖrōI”2öł[ų#Ājųū>xśįŪ7ż°ź“žäéšūjæłüVśD)8üõpū2ŒąųņĒ÷‹<ųõ?Æśż”żK/ü†·÷«—ÓóĀ7ņīμłčIąč\B:ź%,"ź¦4č7JęÄłKéĢÉXńę1öśóUt©o >ˆy+į;B½?Ł ‡ś«²0ū“›ś DšļĘ#ėJåCīm+$óĀbYõÅtõv$ŗöŲŻuü­ ‘øŗ CFŚ N' ”«R ī(ćł^Č£’b •÷ųˆ©ļ‚®÷覒Väʑčä¬ fėC÷óc†4üėp“žÄ „‚„ ė €`ŗ¤bµų—Į>ō£ćōšų†!ī“t{ķēÜ.š…ŖŠń±ŒWģZFäāšJ¬ŻĀ1ŠŽx­²āż)ķä‘(/äcHäć«.®å‘³ēčåĖ ļšķ5ö ė}ł 9Ēų”ń¾öŹ“ öŸ³õÆ’ō0gņ©ģOņŗxŸ÷żtł(J¶Å&Wū ƒ£ś…EūÖō;Fīņ+Ž…ö§ øż§ōN¬ķ­ž|±śĵś¶žŹmYœWŠ!t‰0(7 ŒW bū× 45o:ƒŌz Ŗ0¤ d{Vq üŚ“ˆł„Č*ųnKśīõOĘ£½¹żgš—ū"ĆÕüat7õ.‰#ńōķäš/ŌPńMC³ņā}ō³śöųWLIü’ł P€ó9ć*ķ£˜ė˜%Nļ)3õ÷O%ł¢—°ū­‰ü†ĪŹü·…āžk±„ F«½„ĪĮjēĒśŹ½[¾m$~«=<ØĒÓ!_ęåŗŽśæģõ|GZö»Ū&öt=®ņ–AĢ~šėÓņ{ņuö‡N^ū«āˆ’š}f¤Ō2’›€ ū.M‚ł§8˜üK«’¬Uƒ’Į×ėūĮz"ų±źę÷:ś­čüČa"žCÅüÓ+;„ÓŚv<(ė}æłsOž»£Å Ą„2æéņĻF)ž–ó5ŠR ^¢0^¦ĆnZĶu (›+\žųŅp$·ųž&Śź1'!V^)¬L-k@-0ķĘ%L˜FBĖd©÷¾ ¤±9-­į —[WÆHÉBLĮ…_W©é©łzŚĄĆ‡)ŌŅA0 a˜$#yR&’5%Ź.#MÅĶ$R*GRo/ž•z1›°ł0jŅ(1Ad¬6mų3B„mŖLNŸŖč.ŽNč­sƒé*E+ģ7k£šŃ`Įó#³Īņay›š¼%šĘOŁńbńó€`ŗõ¹ė÷yŹ„ü“ŽŲł©™ŹŅ4FLŲ.Ä=»BĆ“ ś£—éów_-ņ]"ßó“5öŅ÷‡›÷ö¦ öĻŌįõŗö²ęō…>ń·QņĮ‰÷—5ƒüÓēhéŻø%ū ļĖ@ ‚3FWN|GˆRkśżQŽõ~č<īs‰Šź,0vźGč­ź7¬ź¼ńź‰ŒĒč]ÕŖä;”ŽäķŁŌ×öÖż<•ÖA֝Īr×ꩉŪWō į|Čcč{77ń3Ž÷·^@ł§÷&ł’ć÷ū$ZĻå`ąĆÜÉcœ 5‘Õ\ä~ŌOśę R0.3“ [(ż–1ņ?bīU,rš'\ōh³ĻóTŲ ī[ Żę ‡ĒįÕīNįh¼1älńęčsuźSüš­ž÷‚™ÆüR)` @Āć?”æ ‘‰põPčś!qõA+óiŻōŗI`śk=Ź’ZfcjžŖĻĻ®’.P ČS§o½Ļe5ÕūY”q÷u Ēõ౬öwØųOÕEł“~ōēpź„ ģį©QkŽā¤ŻąŲšqęRY2ė[Éģīg’˜ņI`õöŹ)ūN™ž$ŪI7$ǃ|搓KXĀ0²y掝/ŁٲhEŲJ:R¼ąŠR(­°ƒø`}ėķ’aķ’Žuh–”mŅ ÉC×2(M"k¤Õ6™Wdäį€\¾¶.ģ •ģ Ø8i KD_ ÄĪī Ēįäc=ĄoQĀš ¾õoķ8 ž9F 6tzzÕ]4"¤_g'Ą#Ć(W„Q(ŲN)jä(Š‹å#OF y%ZB˜[@ '3+~ ųy-%»ז„ź—%z;ņ*Ū#ø+ƒ­—&.Av¢Pn›ā”›: Y¦P±Ī'YøÄ›²£ ńᄁ°ł[=ņōDŽāņŸ8ņ€“Rós_Żöų™ŒżŅW}hȏ$ÕĆż ćĪR 輅©G²@]ɱJi ‚˜)üG'Ņ-č’®0˜£ŖĀ„- óĖ'üŹ*­gŚ(±§%g½" ĆD#Ó „'›Ē*,ÉY–-”+O,„ 3+<ˆū*ø•­*Ē )ŅG'š­'ÕJ)żw‰+ĪŌQ,rzŌ,«yJ+j¦æ%·¦ Še½·_ “ 8e%ŗŸ( lö ō+Š•ż#ÉVūśß ś@Hõų[Ržłi€ū߯øś¹ ?łi{”ųQ4Tūšg1_š€¾SŌŁFg/qž„–jbYVG²°”żóČ%ūÕ3\üŸOC’;š•±ĘĪ ²¢hе »3ä·µūvUńó*Ÿlīņ©¾ź%Ōē¬Oį·Ü(ŸLŁ4ź·ÖšäшÕĪl:ŠCBšŅ@XCÕ«@“×ä»[ڤ)Žc5ŸįĪ×ČćÅj)ēg"·ģ†u&ó˜D4ų&bßśąåś¼#™ł%D÷¾Öeō|vNóį­mōŒÆ@÷ÆWŹ÷>¦5õŽąń¤eĘķÖŖšģ2‚‡ģfčqķZCŽī«rtīĮłXė'³ēNb«ćŹ‡ŪŻ†*”×eˆaÕž©×ŽŻÜjdć · é2öā쌹°šę–·õOR¦łŗœ;ś=4Öö;:ņ=“ZļWpœļČ=°š®EŽń@bĆńņšcļń=Rėč+pē Ģ|ē¾ßÉźŽ-‡ķ®tšķ\{Żė€ķź§& ķ&\ņ Mų=yž‰Sä›ljzēż€ßPü_“ ü!ņOü(4üō—ż.9ÖI› ?(Ōé V"@‘#ĀĘOŲėĘŗŃ MYˆ«ņ¾G‰‹’$3÷fmīé[Ōč\{é¼Šī‡Š_ō’łįlżŲ‡’@ ž]–ĻśāJ÷8”xóę.ļ%įZėŠīåē ōä¤ź∊YįO ,ć>}å<‰ÅäÆóŽā`čāX ęŸŪčØśƒėż‚Żīо+ńMnBń°šõš†p<ń/qDņž#ńóJrźāo„ąĻ&g×Ēq†Ņ„9ŅGn<ŌdKēÖĒīŚśÉŁąą ēMžėfķ×*š1{Śó]Z¹öÓODö3ž\ōfĶņk™ńg½Jščeī!Īź cåö‹BćĪiśį' ŃąWÖ'ąköUāĮCēŽśģ ֑ņ•¹÷RŃZüļHKQV; Šæ3Ņ ’¢˜²ś;ē¼õš³ÕńA™ŠšXĒ”ń…õó›Ø{õ#ąĮö"©łRĻP’’U| EĆ -'é(•āI7r• 5 m2€$3¶~''ƃ'a%Y#ŒP)•5‰A‘ć °¾ ē€a Ze ±¾t*`Čēļ³kœ°Ė ŚšW"SO3 '?-pæ0c;›_kŗj̿¶ŃÖŖ’Ī@Ā] k¾/k¶ē$;ś °ŁšŃÆ– &#Į³V*(€.xĮˆ/[£ū-u˜Ś(ŗ/ !؅µ£ĖtĪ=åŌ“+ ŸÉĢŒāĢēŠ ¬óŽÕ»&Ž˜H!ø 2DsG…­„slõ ģī Ž= ‡ĄŚ ń ’Żł ‡I~z©ź+Ā‚æ†žź„ü ¹†g)“‚Ž0\0Ų6W!‘;qŪ<2‚ą9u‰3y’+_s@"¦%ŅĖ Ų›DjĻ„Fš“ڬŸ £Žožś³$Śõ/cŲō»ö@|÷tt ÷½ńĶö±Ō÷Øh‡ś‚ŚFüśˆVū®0õų–Ś÷¤`ųĶ6ßüÜŁŲ›²U3Ō°La lR5ƒbh_¹ mó_$¼Ć&€ $·“]tfY£–ł‹Ė/4ļ(„ ˜`®Ūķ‹Ž0łéķ}oćUß¶Ėßį¾{ā#ĖåĢbūę,5č$CčÜ(ķ樑łä£>Hćuģį§½įąTgā„‘"ē0ńäķ9ō4ņūöŸv_ųA’÷ś°e5’ĮŠf1'`–Fū 5Ö’GŹ=’­!GJ]wHOU Ņ$½ £•F‡ ¶ÅĻGYš’?Y ųeqźóČ·ōB¤ųśuh’h­vJ4ŗ œ°˜ hz: 7qłN‹’(Åō °zėv»ē4Yē:Ō›č䶒ꯋė*™é(V7å¼tµį ō•āä˜ęŸVčįMé\Æ éæ6ˆė¢˜éﱃ ö‚ē5žōKĘšĒ˜ 䬿é±{Ņx²\šø© ’D¬ ,<Ü ŃūŅmļ%8†ŗ!'ņę"Œ/(dčCÆ5½ ’«!Kś\ uśņچżFUI’vW{ž8@ż2v5żązżžÜü|>åśÉ)¹ś‚­ü2Ąčż5‡ż“„ü×Į¦ūPīˆłtKsö)lšęhŠī*7`ļāÅņä3åų¾ĶȔŹģt ąJ=Ē•Ŗ¢ėßa–0*ŗ•Ģ•”Ó«©-Ø·– (Ż“æŲÜü#ä­ų.$ŗöečöśDŗõ.ŁōóvTšh*ķõŸė<Ģżé«ßMéƒ&“éÄßēźĒ„Iė<čeéģĖ"ē&4ć&!;ą1ģŽ į(ŻYägŽdžbć˜bōźw™ńŒ" õŁ5ČłéUų’Y8Ē­üY”DQ?]x: š ›*ˆ ©„ ų 0ø@ Ŗ ąSŽ×¤üFW;ų` Oņé„Gź ]°ā6?yŽnIļŽ¬É?įōć2-Ęå±õdź—“0šHõāäÉł[–—ūp^8ūWqłÖøųū÷fž–÷ūe€ųdś¹Ēńūū–zžū¶g6·[L ±`ćĻ!25K|ņCī üŅĆƞ3ś“)Eõ.ßń,ĪcļĒĄ³ķƒ0&ė y!ę7sŲŽ!õĄŲ(ĢčÖ%Ą6Ų¦1ÄŁŌĪøŚ';Ü T”ądQ…ęĆmķXˆ…óōŌ½÷Õ4÷÷a¼õ‡KōŗµRó¦4×ńż9¶ļ¹¢\ļ8½(óTRŗūc%Å!”‚ <§‘Ä1ĀāXĪ‚“ŒC Y§ KjXŠprāŘpļŪqŠ *ēÅ vŠŻ ‚ÄY Ų üō/ń ŪØSģŽW ˆŚ7ņüŅõ ųŌ¹õaPoõz7žõź|#÷æmŚ÷To/õ ŅīBŪ čĒ‘ć@[ˆąŅ›X⯠·éõŠĘņ½ŸØłĢ)Sž{»[Ŗē•{«÷šĪTžg÷Īł©ösœöd?ŠłTxøžy ˆ«&KXBŻ3dŽŸ[Ž; pę› g’m bų 60ŃŽūżŹÕųÄW ōīhœņ½„Ēš’ļ‹ļ5š¢ļW#ņīŒM“źŒīå]­Fā/早JꚖĪė3čŠņNōGłCĆ.žßÕ-M±żBi·†öįV ]Čn q×D •iõ æŻæ ńœG %/“ V Õ „ū —"Ļ K½Š Ą’ …č: Ņī¼ „äģ±Ą֐Ć[[`ģ.˜v]Oe>¢ i›ŲvŗÓ’cÖū—Üąś}UŌżųš[Ė? õ„A§‡$ MÖšēż$Uü'`«Į%¬{Ā$޹‡&”d*ūK.ąŹ0‰<µ0dż³,Wߌ%°ŹXuĢŽEV*Ļ\ū” ¤jĒT3]7Ä1µ!²q%»x„&ƒÉE$s„Ė ’LgćÆĪ‚¬ōģŻĄå/Éņ€wZŠ¢$YĶP(Zr&)­!+ΦIB$’R+ˆ„#ŗ¬-&²É.&į$W»l"V#éé%ś =(\O'Ns# 1 ЇÕy?ļ—õö MRļYxPųónYšžÆźtζēˆ-źęO1ėę“Ųåjuāų Ž+¬Ś`oÖŖrĪÓ ÕŹéŪæØUā+‘ ēŪ@Ÿč ”č`ĢQčΜšēaSķęāĢÕęhéŗčŃ1ōė”5ļyējń“›9óa ßõlüņų?nqśłąžł’beųæĄÆų”ēłL” ł”÷Ÿö±ęńm|$ķ_̉č·(5äŗ2ą:°-ŻŖlÜī5øÜ–Üø‘VŁLÕØ–qÓå"AÓ+jÓĖ֋—¤Ū¦0ā[ØDē‚:źĶ*īėqģ(ī…Ęäļ’!Vš޾šųߕņ†„Ģõā®ųm‚ł¾ōųa˳łOŖUüÓēž=:‰’ZjĪ’¹z÷Mé›&½+ Ī` ×­Ź A ¶ņ{Ō•Ų’GóÓśš3÷0O öBń^ųJ‚üÅje’e@œ/O-³\vq3 .gŪ‰—nS„ FkŒśl€öžķłõÕł{ųrß;ūʰŖży’u’įÅ’Ež>»öūĘ@.ūWŽŹü-ź\’ķy Ä3–ģ8¢>˜  ėmĆō4ŠИ›gČ}~ˆ’Eg5 ČRfx^śX’õĻüp[Bž c§1a“ÆMO](õżSņ¢ææ’‡RbžBåßüįō<śzžÖöĀv€ōšŌõĘŠ¦ų{įŁżmR¬÷·ł‡Ó]` p8̼³®!•$=IØ#‚ų ĶØ6—NÓ•q· ,ā 0Ö* ŠbvM`£<Ę÷„  2Źwcnżla÷ĖóbõwU°ųš0Éž¶'ńLy-‚ˆ½¢÷ü:į©ł›Óšõtń1"Żģ£m¼źķ?1ė®ļóķ{āēńs%­öe<ü˜™Ćć F{ł˜i dŌ¤%³)ŽiĮ(66# ˜)³„ąėĻ]鈫 {Ō 6 œ%…YéHJäų®&Čļ/¹Wź |č)ˆčsŻ™źÜ5ī±ēźļ¤Ų%īŽ,ņź†*ĻęÅcÖć@7ęį\ĪgąA:ßĶ0ßääą Ą“ąō…ąé½£ß3~cįšé¢åq¤"ėŒÕ÷š‰~ųøXę[> č”4ģ÷i‡' /$dKĶŗ¬ę(ė ”¦ž~æüÖp€żÉĖ žœŹ%ż–˜ūQģł]ĄųĪ]]ų®Mų˜õh°\īųķ”å³<ĀŽ Ś±ŚG_ŲœĪ֖SŖŌĒcgŃīĪžĢņĶaȹÉ0ŹyČÄaÆĘÖfgɰQāͶK–ŌŃCłŻSo6ź*<ų"¼€–ęĪ֊¢””ĖÖ”a‘Ä”æ § ä ©Uor/ˆ? ŻįBłĄqė Ķ“g_!į¶ś¼xdų}6\śĪóÆüxĖ üó ]÷“Ēń…Ųņ닳]é{Q”čׄ‡čķ®bč<øŃ肃-ź£zėg§·ģ=ŒŻķŁ’2īóŽuķ)®ģ@Œķž–ÜšPX<÷ų›ó’Ė÷ųćńb…eBóœ1d ‘% V2 ’ŽßSšMq²J‡r#c¹{_·,ķĄ÷‘jÉŁ8üīiö‚WµóTĪ•óßgņóŁ(ól®lńł¬Dšö6šźAšˆ’Ūļ ų×īz ZīT&Iļ#Š™šß‘[ńŅīńu *óB¾ō‡1öo>ųzZ×ū‘­ŁÖd„ żh?ö©‡†ü7Ņn„:n“`k,}d ŅĶ× nļ%1ÅĖ& 5&<ē÷"M5Nv^Ø×,5 9t ŽŪ²~†ż<Śų÷;zŅõ8łäö¾š0ł’‹Kū„žzj>¹cxlJ– «w9Åū“lŒĀŃäM•Ŗ©ĪPöTµµŠōb"žæ%c²F' ,y'yN( h7+*Ģ'0¾Uó4£®ł6b݆4a.,Ü'~…1!'Č©ŃäüÕ>‰ąœ˜Åņ[Ź ±A“j °’|{_ł^óšÆī)«ŌźKß.źCTģL½"ńT‚²÷ße•ž œĻŠ6FE9šgĄĶ ’œā žšINJIx弐Š!¹4Š,‘;6G‘:‡2&9”Ķf5ńųÕ2]ļŌ26Ė4ŲŌļŠÉ ΉC~ρ"’Ó5ۘŁ÷ßīßę¢åī[nÕö0Ė6ü.J‡żé2ęūŗžł{…OłčͱłH’śj¶ū­+Ył@1¦ōŹ‘Mīį~°éĀ+4é5+ńė“>ļģ«ņ¹8óōķLųŠĄūė ö’Ž«„˜ūĢ‚ź£ Ćż™ ,‹³ŃŠ’ü°EĄų@X÷>ĄųĆĘFżÖm$N,Ž£ĻŚį›‹I T™³ņ )Ē’ ŻŠ{ńŗ Ž9Ī_ iūv­żųŪRūļ±˜Ö›p‡ ö J¤õ ī*‚ t)#Ņ•ģ¼,ü‡jö˜ {š.Č|룰č7ÓĢę»@č §½ėšļņš,ļ]ZMėióå,ßZįI”/Ż$fŁ;,¢×Qk¦ŲIjrŪ»ŠRßå¤äÅøVč½%ėX Qģś&µģ£@īIĒņ.¤÷wćqś2ķł–ń?öųJ¼ó ™ō3ŖT’3ąīc0ī s€„Œ£p”$KZ Ę ˜ ó]‚Dū±T”Ō j‰ś U_ē­4ŪÖ K ųr 3ŗ& 4„| š  ĖD}„\#IŠĖūŪFö¤åņn”ó)Šś»6 R I”čßÜ­ õ·Ćüąū-–¤½ö#”VÉ1ė ģŠ6Ó<1ŠēHaEÄłņ6ęZM`tZ3QSõ~ Õ’k ēŽz–10Ņ\Q§’ hļĆ4č—<•Šõš£W† ō»™5$qJ@’ŲšžĖ”ż*3¶ūnŁśč¼ż9ĆīŲJ^ą–öI­!8éØ)®¤/kŁ–2Zw51‚ų-cq'ņvKĢ[āŒ7Ÿ›5}{—eiÖÉ ›ā szs?‹K̓’ž#­AśwĻžöp”ō¬źģó䄐ó}õófņ€d}š“¹ģ]ęŪrßpņ?Ś0+tŲ;ØżŁÕ†ķŻC·Æā 5Óē½’#ī:šböōw>ŸH- GōÆf=ÄS-qC…Źqgo¬™|+;ń V?« Ę}Š`u„Ž›×4Ąż±¼ł³Ö"õ øĮš—īq†īm\æī¹yćī¼®ļĀ4öļ3o ļ/kģ)Jčæ÷Éć–ōąČ‹DŻś.4Ū€ŽćŁÅ†÷Ų>‡>Ų¶Ió×ÖWŁóWąÜnO‹ćdŲKė9§ņ“ÓĮ÷.lžżīÓm¹‹ ’–…ĘTXiGcė’ Jj_"Y Yüō 95ŸA²ÆĮ’a¾z`¾P[³ķ§eĀž«¬ią ž¾Øm]yŪłō”ó_iQļq`¬ģżyźśA‰ęOʁįZq£Ś”møŅ¼£ųĖ“Zȋ•+ČQČŹ—Ā=Ķb/ Ņ4¾*Ū”§7ę>$ņ¾\ż  «h Š–¢yišÆI-pE]ėi„æz¦œæPņW˜ó¢ē¼0£˜$ż_§|Šé@¼ŸBó—ŠžnØW 1.ß”5_ æoŒōüķŖ¹ł‰t6ųŁ–÷ÜÕĶ÷~—&łŠćāśĻü«Fęü ł@žqŖ}’€įĮ’ŅĖK’§go’™ŗa°Õ’REqgū"Ö ó¢ Fė]øę×Køć‘)ćŻĪóā2ĻEćŗ-å(ūé=čī £“ó«ž:ł!Īöż{yō³ÜówĆUß?Į¬ @`)®€®‰*Ä(4Ģ`®¢•Ń£O…–( Bq÷f”\a/å= ģRŒ8ū?Åå[ģä»+ĪXŗVƒU5o’Rčcłh²IōuB ļcάčćbjįfČŪņģ£Ł½…"Ūj üŽ™1‰ćļmóē…@Ļė’Ü:ļVŖóx Ņ÷„d‰üķ2bUezY ü½܏}Ł–äX- ,öγ™ĄNŽźMÓ×-ķL(ĮVÉ é@Rkś¤įgf¤®ż}Eą| š!‹˜Ø$֕=%ޤ’!m+JL¬|Ģ©@ĄżWǜńpĘ£ēģf0įę«ßY›Pā ‡1ę³üSčŁjŸēceŠåfīći|ƒćĖ  ä&·¹ēŸµdģ$™|ńń §öŠsü(’±ųƒ-©iš”fūÕXlö÷.÷óē]Qō(Ō‰öæÄrłš‚cüÓLøž8uö“fÓŠø™“Ž ·Ž éAѵ4, r’²Ä‡öŗrī¾SēÆCÆįÄÖŻ¬Ż}Ū­z]ŪŪƒÖŽĶIŌåŚĀšķŗČ†ó—…|÷RVś˜ %ü:ŚüUY żåJż—’³^ėćHś;æj Ą^˜ §ģ \%M 惇Š[d>XB ä Mór Ž5 ‰ėŪ ļr ēߐ –ģ5hAB}½ĖŖ?;„W[čŲ"ŅŹŁ= ƒ ݲb;æ`aŸ×( &éS Ģ(4(ƒ„„a5Īŗ«ż” ‰&€?b,ßł~¢tG•“wV³ņŲg° µˆź^C« ū11Yäp–¹\ŹįJ¬rbg' ŌEy›üWĄŖR_ ŗU5v„kq›āüóäśĒćeū$6i’ʰ–¬¤ŽĘĮjó" lź]>‰*å‘ "šµ9)"ÄBQń  wĻė°1ŲĪ‹ ž‡ń ²r…„äŁz æšY Źł †š °™č˜YYāóxŖŻmŁŪ}‘œŪ׌^Žēżń࣢į ‡ŽŸ Ū/üŲłYšÕϲÕƍŲā&ÜŹąą¼¾Źćé™īē ¶Tģ×X¤ļbĪ®šüW™ļ)ī7qÆķ€ū*īå»ī ½©ī!ēćķ² ķp¬˜ģ®<ģU @ģĪy9ķ¼ŸļD)Ųń<֓óÆļŃō‹uŚõe²ėõĀŪĪóyńhļ †ĢéŌ¼1ä®’i߬„Ū±«5Ö@Ę7Ņ+Sъ‘ĢÓÜ 4×5ȰŁM:ŽŪŗÉŻBfPąT¢āĘłļä‡;Čēć3ūź³ą—ķ°·«ļ&&ņ@7Šōjō•ö»@qöv§­ō‘zóن$ó\¼­ō¢½äö'ž§łĶ÷}żįŠh°2D² DČŲ šĪŁ vŅą "ōT °īŒ ŽwMłW•f Móč‡]>`ų’̬s*vœK&’ŖčCżE³ü–kżJ|ōüwü—kWū‡Ź¼ü&|™ö:ypR †œĮ `’ ė3Ū „b ŚW Ń: n&S <œS –)ü : Ā Į<§œŖFBQ‰¤Š|$čUŚ)¾×[ å: 6§y •$. f£Ü =[ė ©Y³čÓ3kóÆšbsŽ ā›~ yĖöÉp}Ė»ķlé +GūĮ. µ4öK¹!…µžž „±S'Ž›¬.›…#5B‹8ėź7†Ąź3y^Ų-}ĢI'ō:Ŗ!\ł3_ĻĀ3?†ūŽQÆģ隉›J)Ŗ^Ų”;,ˆ ¦–]ŹköžķĮ~žcSżČiģūjVūȝ‹ś×?‰ł"x¤÷õ’œõ9°õ?šöMģ¼śšĻ’Ł%bŅ 4␮\·VJP?!®Tš&_0Å*Z)Ó+¬;y*£Ź#(“Üā%‹‘#® Ų‘ÓpāŃēĀ2¦ ŒK°äųüø|öÆI6ó>ĘXō‡^¢ö ö±÷{ß·öBošóˆ2<0ē·łßÜ/Ś3€•ÖeėYÕIƒ$×=ÜŹµäā€[é”īd{QńĻ,iōĪō÷¶WTū¢žWš‘?Ī¢ŗÆĻ¬Ų  ’ž¹”tŹäk½ˆ¬zI5 uvz=aT8A§žµäĻžģ-Ģ’ O·coć–^10ž#Ź¢ś7^EõņĘ ļ {qé`ŸåSpūćž”ĻććĀćwypāzOß ĆŁš-QÓš jĪ³ĻśĖ]ĢłąœĶ“5ŠĶŻ Ō—ÅĒŁN į¶ķbédˆhń(w÷ęģšśDńFūĢHIūŠ$ü%(čż?b÷9ßS ¹‹ūØČōģ»Į;s Śš œtDcĀ ¬7oüÅŽPū_įvū’!.ūJœłk—ėöü ōGt³ń‰ŗļ(ՂīęOŽī®ŚYń™”TõҊł#U¢ś¬łžƒög”įń¼ģ ķ·ajé ‰½ē 7Kč~‰8ėHßš„Gõ”8.ł’°ūRųż1•ę¹¶”,7&°(¤ŻłpQą@ė^š+ģ#Š–HA0ģ1ÉĪĀžŌzśüšõĘō~ņIŗš€Ōłļs<šDūš],'ņĢ"ĪņhĻŠņģå€ņŌĒņL®xń+½ˆš“śļ…ÖŠš'óßāqõéņžö”“ų©¼;ł~™ś}ƒ{ūš£ūb„ł]½łŸšŽūxNTŃ#ō܌īՓ |^ DZ± ߄Žŗ bĘĮ|e¶V¦„6 ^¼ē ü|J¹꓈ż‰ÆõĻČ­īcšé“bßē;×Mč»°Bė{•šD#r÷?ꑾ‰ģöŠś ±$] ČĪ.M*ßÅ”  m<Ńæó€Ž=GĘ?¤"Kŗ;ģU=UīŽo×h ‡™ Q×—Œ—gM9ÄäÜłŠże?•÷5¢Фž x/÷ „2ŻŽ}µļ·ŪžĶ/3ü镳rƒ­÷ö“k÷¢ł”üyč’wuŠ"^ū®q ĄŒ ż–Ą ożŽÆ9°QĒYĀ#t+ϲ11;n3®Ī 1«(Ć+ɜw&كĮ"6E‚ Ķ/łår÷Æ„D6‘¢¶ēJ!5r‹š÷ Ły ²VŻšV€ē’“£s,V¶ł"āųj²Sü}¾ų4C&÷‹3B÷ā «ų Ŗ1śfgĪłćeböÜ:ćšÉg“ėĘX<čB0ē Ś—č²Órģßań¼,;õrG:÷Ē ų½:ųł»÷÷nGöŅóń„‚ņߢ ņ‰rlńGļńš£q ńŗ˜½ń6…Ņņ²ø×ó Ī’ō£®®õįųK»—ū.U’/Ė› į“0Ē&īQ’±Ö€ü,UÅųö«Ģꛦ é“Õ>īƒ-ōż>-łĮŌü3±’[$?M*<[ x t®ƒ_ж«>»’”VÅŗ¬ķ»æ “Ö* –etūŸ³u41J^Œ],{ÆپīŅł‡›Ÿ ƒb§.“>qā=m æG“)¶ŃūŠxųˆbŹų䟂üᓾQļ¹ 2xy•ČNü{’äĄčŌ kļW ‰™ž”© Ś$pv 5 ’'ģķ<µå5Æ1` wv ™~s†bā…E€č-ō—¾Ķo… CĖS ĖZs^Z vrµÆųż°"żų‹\śIAÅłOČŚśˆÉż |+ø/ŗ …:ļŲč üć…āy0“‹ük ŽZ å «ćÜil*{5s¬b#ń{ėF ĢlŹ 0zģ^°O—p’.4‘ū«*ųČP”ō|ŗń+”„ļf uī&ٲķ{…®ģ?nėšź]ŸčĪÓĢēFM0č–ģ×é„!5ģ_Mwī)ĪFš­L<ņ˜_4õ£.Øł1Żl’¢+G „ēmu°ĻØ” ƒżĖņ|tēሌz•ż ˆSĒ $Ļ­ pæ¬ _:Œ —%@‚"<›ō÷ōų@š}vNė|ĒSé Ķ7é?röé=ÓĖźÓŹŽźžĘév½jęN²nćoŻą·āAßµTßĖu?ą“ÉKāņĪ äĪēä‡37åY&ęz§äčqS’ķŁ÷"ó:”zų1żć ©jŽ;Ąݰ» ĖY^ ”ŖJ6‡Iō«¦>œ ]†‚ }iź õxü˜”+!óV÷Ʊ¢G ) ‹;oÅĻ’eO ÷ē(ęīšļöéQųÄč=żézļĪė*ބ책&ė.AēU–5āķNžŻÓģ˜ŪØĄŚ«„Ū”$žÜ‡Ö:ąužŃ姊µģ\nōŽ*ūŗg¢ŁUādĮ /Ū ¹C… 1¹–9šŻtö\ŸMxäŽ'…EG_# –‚<#%«®µ ‰‹5) ź/I…NŖ^F™O« Ź0± ±ÆW±ģÅZ£iZYÖßqÉķŽ°ėĶÜ“nCĀ)™Ę©ü†:m \Bj“Ü|u20ŲGAzR}•Ē£°wS®½b’čŽwž»Ŗ’D†xKÖGŻ~šł[ s„ā·S«–GŚžō żŃŖKł&³õņL9·š©=š±Žńø ó*ĄųõĮ’ßłī‘dž§œ©qžq3« Ż­ĮøQ ńˆ’gčųü°9/ūlI˜ś9>ū ģū·Č{ü\|’üāPüNČūDæ§śKHś_AųDÅ?÷ƒųŌłś<%Vż…xīž1T‡’0X’{XÕżp^×ü–¬ülĻ\ż#jž[cm’‹ī]©VŁ,x–¬żf4.ś5”eöĪuėņŪøčļ¹Žķ3˜†ģ\wķš1Hšīb-ō,­tų»Ą»ü®•”lN‰@}÷Ī} »:yŽ^PŒ“` @ąAŠ ü8ī lF >ée óY<_ÅB!ž†ZQŃ2l Ͻ÷žćżŅœ¹śp²6ł|>‡ųæ"Ū÷Whöé:łó/Spń¦ćļ…¤UļŪWäī® ī³^ķŽ{īčŅ*ńs*ōg·q÷r‚ł>Lł!˜›ų¦ÆÖ÷ؙķ÷£Åiłxü+i/td@¤ į­P 0Į6"Śń¬ŽyĆJA™ŌB\§H~±R²»yÓĶ Ž Z "dC ~½T5T7[ƒz–źæ øĮÉŻ¤’høÆ%vĄ× *Łw÷“šņłĖ©ō!ēYń~OKšf¾łļ2Ē™īlŽØė"µFčŚŲÜå;’żäC&…å²\ē¾(IꢘOķžĶhļ—I[š'¼Sšq¼^ļzøõķ©96ķxY8īŒY&ńĻ'Żōé·¤÷¦1½ųÆpŲųvzł­]öłÅČ3ūéŠTü8ŖXż›®•žā?žÄO®ą™stö'š5ĀĶ ¦œ; •Ę·DS±–ĄY8?gŗ’–üīŽ2ų«g†ōž6óœł6ōļōö–ƒśŌSžF n¬Øy&Ń–“Ū’#r.žSĪż©Q’Lb²¢-Ėˆ^ŸŽēĆņĘzažĢé5ūQęÜł(Å7śA¢ėū^K’-aŖ(zs ¶Ö¤½Š­\-#ŠŃxē×"įõO"ķ\ ©Y® ĆfĻņīœöd§ŪŅ»Ц„—!x(Č!¹DÅ#ÄĆ#Ę¢!|…üSĘĪøŖb+<6³ kå€Ķ†Ó¢ #ˆļ šyÄü•·üUpæöŗh·ņ°ÓYš¤ZļĶż(šųzGóŚ‹JųYb&žD_ćOY±- ō ”Ji E; Iņģ —Ų 3ІśĆkrœ * ņŪ‡iĆ •nVåq^ē±ē¢ ķł7‚ĒŚcĘj ™{@ ŚÆŖóh÷æ(Ž`€&Śn2Ńä—×pŁ8³YuOA¾·¬Süؑ’õ¹ygļUžaé+ŲÓä&–ā•bį®s»įÖżu㌹“äN^ć)Ķ«ßĄ]2ŪƒŲD×#VŲ’žMŪ°,ßTĻā1¼Žä&jCåąåu5läŃ·ĄćRŖ%äĄ|ę…8Ķź1VüļFXō£īĒö/X÷=ŪöÖ6Iö" öBÜ”öĮ†ķõ…¼ōĘĶņš8ķUæméžFēGoŁęń‹ˆē©Ę”č Õé¬Čšź™‹ė[Kė¶TQé 8°ę•ät*ämōCåaņīęR»čäźµyHķū ļKxeļ (UīÖfÓģZfģE!æģ|Īóī”J=ņøYõŻŪöŠRnöePčō”Ģgócyjņ¶ņp+äņ•õ·71śT•’H|™Ķ3ŁYRéėsāŅ ’Ń’5–ążv*Jż(ʈž;!tąERŹ- «k Śf D"Į D–0bK* 8 DD÷Ś‘ ņŪ ŸÖĮ”A%Žh Śf i jCΠäC¹_w[‹°ł/ŽČQ’ŪlĪÆ’’ēÜ ų¾4š©˜=/ś! ĢøvŒ£’:±#üJćźśč»_üū) eų·K Õ ų21,†Ŗ Į„^‰¹ŁOöT¼a1}+άÕTއĆ/Ex÷mGč9Nć×±$#iĪ9)_8Š.{}Ų2Ł$`5ÜĄŸ5õW²3”‡0"š* %å u_`ķr„mv­Ńc Fŗ÷ ¦i‚óźā ŁŌż¼©żĪ}aśhų¤ „ń |FWć6cŽ :źm/Y:<Ęü;‹@śWTĀś'i ž]¢Š_ć¹&7,  FĮOŽ+`‡£ źIŅ`d!w¼­!%Kœˆg”ĆŲD!¾7EŲfęs( ½8µ MšÄ Ö ¶¬Æ9Ļū‹ó²Ņėo<ŁēM?`ēżj„éȚ¶ķ½rņį2FößĮ³÷D;3öOhņ&{Śķ4*ź‹’rč¬ éŅcėŲMī½õåļ\Ø$ńGķņ6Æņ. Ūņ •œņĻ:¤ņōį“:÷ś¢ūf iŖÅ1CMdłvčŽ^ó,’YüĶ·źłČ9WųŲ1½÷Xųī Hł4µūEM’, ÉŌŃ …޽1’ ųp’mśf:ōyą«īM·źÉ“yęĪßćM¼fßf‹[ŪV*Ź×-”CÕĻqjÓĖ8‘Ń$ÄéψĶÕĻ‚iŽŅ^:oŁO““āŗŚvģ'Ņīō®cśŠ–ĮüĄü=cIū 7ł/£4÷ŽDsö6Ā9ų6šüa÷ü¦GČ4ļS¾:ń¬ ’`!3ż0ŠüH|•ü”ā»üiƒ“üšŅüŒ¶żĒÆ’–»PQ£čcāR<Ī Us œ&ż µGµ mDF* OšŻžvCÕś¤¼ų|T¬öņ±0öĮzKöś;ĶöVd÷µ¹õčĒ~ņŽrīM–±ė·ĢĘėĆŲ·īĄS\ó‹ĆųrÄśʓś“óųZĻōוńčåŅīŚNÖģ0RģiÓżķqc¹ńj`Jöe×"ś[/jü ”<żm1Iż“Ø4ż¢ļ7żĪ¹@żš żµü³ś„é¢÷·jÕõ“dŖõ/÷öŃQįų¦"źś|uż]æa’8ĒõśČ P°’(žŅEłżą€’ĻaéŪĆ(ą…„賬øX¾G黎#P^’„b0ż¬ˆ]üQ¢$żī9v’{•k&±”ĄKūtN¹ gRæ>żæolśl|ų2ųŹ@ś 4Ōż–q§ ŽޤŒ ŪKj …§©:˜³ŽDG¼4i1””Å‘CŠP!o1$Ońp…õHTŸ52Qī1ś×K;ś\‹c _L Ōїýˆ”„ æäņ f©āÆ@Īķ„_t½< ;+F 3µ‰i@×h€ńōjÜG' I3[‚|l‚§nT$dœu ĢĆP Č y lȲ ĶjzĀŃ݁ęUåx"Jśw"t™‹Ķ„„u4P”č¢$IčŽ"yĖwK ’ļ¦emŻ£¬č üåśö\22ŪV#.ĶČ)1łĪ,ĶUl+żā%“ČzĶ_÷Y1 ~q]œœžŃ›+üå&ūõ;&śĻkŅ÷ąÓ"ó÷›Fģ)R³äļKeŽeģļŚ±"Ū³cŽŗÆć wÄč)…Ńė$ģTŒé馍Ļå7–įń ūÜżtŪĆ:ÜÄŲ#ąĮNŠåŹ…ģÖ2ņŻr€÷%qüć¢’ĀĮuc­~š'Hø^ōEļ@"ą¶ŽžośūVϵł—_ų2_ńöTĀ{ö|Ē<öƼgõ”Ģnó~ÅšĄAįīčš ļ¾EńĒ#ˆō Eµ÷“epśkoü®ēū®% śhČöt ©ņŗ½žībĄėbgŠźŖE„됻2ķ×?[īCÉÜīŖę&ļäŅčļ™AÜšę‚Ęń·:ōņ ‚÷ō>S ųÓ¾Uü$ķ EČ8i‡ /ˆŻ n— (Ä fGĒ ŠĮ{Žåę<¬žĶ“‹rDX Ńmé RĶ£U²i¾{gd°kÓĶ Tõ 8× ūĮ¦ļ{n󙆜>Ō"Šü6÷ĮęņHÅš)¬īqL’ī• ¾ļ‡~ņ){’ö›ŲüäøF%un”ƒ ©õ† ŌŻķ’ FOQ¹Šž( %ž³@³’õ†C†éĄ1ć„ „Ū —\L“ 68OƒÜwŠįBC@ÆÓ1 I­‰łWķ }q zUc1ZIQ°vUE5zø ±qM –E  GdX 0R"ļ’Óģ³µś½[ķó‘jŒīr‚ėĶU믐ģ‚ęŅīąÄyšŁŃ^šŸ,żķ»$ņéæåYJåā>„2āąFÄć®.7ēę„ė•'Öļ†K÷ņåÕŲō[œõ\ü˜õ‰NrõQ čõdf÷ ŌłjĒüŻ-yž7U.’/¶ž,†Øż­LŹüŠD•üŪöųüį9wżœCeż¼ó\üŹ5Øś(?ł™¦:łąē’śūŪž 9‡oNī(ƒJj Įė  ¢7 ćVÄÄē+ē{Œ…œÉPØugųĄR(Xcˆx{§HeÄÖłgOHõž$|ņd–Nń±&©ń“ņĢņüķśóž•źō$qõ3¦ČõSiõ«&iōY¼_ó‚”Aó¶×¤ō˜Al÷ņ*ū«¼‰’iI;’ ĪćZ –‰¤ńm£óZ²|½.ŲĶģZŽH~Å\¼“Ņ”L(ADIęN.x™ lŒ Č8s*AČ-‹’"ČžÆeŪž7ī"’ØB6’-UœžNvņü|}ś\ ī÷†śƒõvłņæmšVUŪīVŠmļo«uš¼Żõś’?Źż‘Õœ’Ęī¤’Ę Ķž„ež>~åż|ž-z_žDŽ,’É ”u¾_HŲ|EF"üFbÕņA’)²ŲżŽ=eż²‘3żµČ<üHśśS6øößćšó]S’ó$~ö×ė-üG]0„®S $B’’ĢŲ¢:&ĒŠŅ,¹¢€«|©Š4 ‰tbš¢Ūų’‰„’Ž²ą’ź’Ī’\zēž³„IżŪRƒūR#śQ<‘łģž"śd! ü!žä>Ų߁’ļ7öøżsUżųŹÖÕó·8°ļE*±ķPT)ī’Ā·š…=¹ō”²§ł+™’œ•A0` É Ģjö˜ CĮīņ–ū00ō"’ šū ļGėžl"+łĻ¶”õ× %!” pu p …g‘ €éäYm\’ż«Š×öģHńÄåóķAœŃģ€įīÆģš)`,ōL`üöUełgØpśˆ÷–śE]ł~1÷Å_ōvņ4)š—øzš½Ć,ņ Į õy|!śĪIwžäy{%e›Rš÷‹¶ż’„ż‰}łėĻ öEĒČóvöņü”óbZ,õ £3÷įÆ"łµdŒś‹;ūAAūā®ūĄSQū)‰püh‹7žˆ5$궇i¾(ęÚŹ/(5e¶ 2÷ņ'`(bKž¶ūęšĢ÷i/»ōpYņŠėžšf06ļńRźķÅŌ*ķdD“ķG¤½ļ«ģŹņ+ 9öh¼łJMgżO 5˜Ä)©^ łž›‹k.wį‹OžöåRźÓå ¶ …}HķņjżÆ±ą’’Ųēž¹’•ż×D3ü÷Bū„×śŌ$šśqC$ś)GIł™z ų{}ö4˜čōŅŻ ó—©©ņģe“ńnčš”F®īļśī䉹 |gōäił¼Düüžmk’·JśŻo’ b/žÜŽżŪ{“ü5—<że!’4ĻŪl?tE¼”éŃšA¶½°żŅł‡ŠŃ÷Oą‹÷zŠ"ųo)Žų _ų"v ųüŠ÷ųWÆū•+ ØdOmĶ Õ *H+’xł“‚<¾Iłķ;łU o»Ė #^ŅxüEC=łłŃ{÷ŻÜös™„öÖBõ•bkņ!a{ī_µ±ź)UčWż8ēuY!čČøźgLīl’ńź,bó‰-óHŲš čÓģz6SčäZūä@zäCšå+¼ź?±ļ¬  ö © ü”µó©j!“# Öe’ ¬gŹ ƒ¢S ”uŁ ¢* ‡SžQ•:€Øģ’Ō²_ž•#/ž%Šž…¤éž_D;’O ÷Ļ joSŹ/ •Č$ 3B• ųG cüM ÓEłqyå’AHüEcˆłēųs/ųNV·łĘšŅūAī²ż~5I’~~%ŻL“Y“=ÆÆ3< ŽŲö L ¼oÄ •xĻ ÷“ Ÿņ– Čń¹VU’’ų”± ’Dō’ō„”R]Ć$?×Uē±ćufz¼XEŅß_,(® @…XŻ7üJˆ%x 5s qA» ŅŲŃ!¼Ī"Ėρ¶Ѿ+ö‘W¤¼°ÉN $yp!łśSõo$-2±½ŻڟˆLēöüŒĆ‡Äū €ž&!F”«m–ę ė1ŁY“{õĄ ^ =ö¦ Ą¶ é[„ ß Ķ #:  OŽbłŪ dß¾ ķĄ#Ā42H}’6=§’śŽŲŪ»2e“ j—Č–U%Z—AkĶÕņ ’æ±M¶ū—_µõ‘Źūņƒn5ņ†¤ņ‹pńo¬ēķģšĮčŅāy^ŚŻ•dŪ"/čŚČČōÜR©†ą®˜äĆ(čŚ¢ź ŸÖėq&ÆėŽ‹Xź°uč;«Ćę#’åĢ%µälDżćK¤ćOę(äa¹åę€īē2ģ)ꉒėŒ!^ķšĒpīĀ|\ļŪ”7šŹ*ńr%YņžiŖó™yĀōō Oõōł`õX%GõuĪ(õ ūō"Ńō¤õĒ ˆöŅUOłIuÖü®Üś’EĖ„ˆŠ.oŌ.’ü’!¢ųw-{õß-öņ2ń;©·ļ$Kwī”ķķ„ņ‰ė.SŽé–cčC¹ēŹ’¶ēŲ÷»čģV>źjÉģĪ0“īgxņŠF$÷‹—ņū‰é;Ź·Ą3ŁkO|Kšˆx4߃ÆßJń6 l¦ž ń Ūģ®6S3 U³G8øIĆ ’ ’eŌ!Ķu¤ašž@CžóĪšžķuØpõ1~į{˜ZL·”n¬wžc˜Oūo©æ÷ģģ\õsgžõš©Żų僞¤ƒ–nkOīµįO–ź—3ÕŃ,·ó¤K€ā Ŗcņl evÖ wĘ 2±- eĒ l« šš™ y 1e_ `D+ œÜF ÷„+ų!Sé¾pYŁgöCą šēŗ¶!Ž–™‹£8" Š ī"{T_#¢“S!TL1q@ī5Ģū€ć+‹Vƒ·ZöLŹļć4ˆBlÄĻų¶Ō $)īƄšŁŪĘē|Œjź’#UŒ5QźmžA& oŽ^Ž8v%žć]Õūc:,ūwåūL{ēż$ŚUö‡ō,n »D÷f©<Š&rØļ8;@ü Į­^¼Śn¹ūÆG/ö²MGņš+šš•ŒņŅ%\öR|»ś†+žī‹ę’ˆŌ’…ėcźķ”bŲ°Üķ7’WĶüY2—łŪČčõ¹xņę*+īcģ¶źTĆļē²£į匒fääˆbć,ņńāŠĪCćkŪ\ä @ę] č›$Uź'ĘīģPóžļPćæń";¦ņ 6ūńūN!ńµzšucļMļĒa’ļ۟‘ńĢ­ōŸJi÷3°&ū‰åÄžłīY#™”eÓ–fm–Ję÷R™×k2[ī2’­ĄŻłŅōõŚÖó ö}ņżŖ ó&4²óėĒ‚ó;Š>ņßqš#ļdįmī œųķ €sķNŒ2ķÓVāķ³éÜļIOŃņŅõēõR®+ų?+łųužFų•w•ö+•ōõøÜņ‚Ażń$ˆ³ņJ8¬õ°.ŲśŽģQą€ŠÜż øŪh %M¤ ?-„ Øl» ”š~ 7œŠ 1“6 ¢’ĪAō Z)‘³HĄą+°ž ”Ćf•§L·“b¦ńÄ&Sqõūų*<£»‰ ĖX7’šĻ’‰WŲ’­Æ¾²(*HJĘ’vüųµöøń–5ćīļųmńSõōŚcųYõ¼ł@”Žł­Ņļ÷­”qõƉņ͚»ļĆtœķ|„’ģ]‡šģ_}_ķ~žī„0wš #JóģS#÷)õaū ÷ņž7āķ_ÓŚ ’$?&üϜčųøŌ$ö›ū„ō:ßnō½Ķõ·ēDöC-ŗ÷błżméś35čū1:Xüoåü³–‰ž.®# Ć\Ć !ĀÜ Eż‰ƒ½—¾Œm 3) ”= |¶k ŅB .!# P/N C{+ X2 ē€9ćŚ2Ĝ8żM+Õ2n½½|Bjyk2_ĒåłŹ ©`K ’k{ Ԑ ˆŸ‘f¢mĄŒ5Ģõ:“ą™S 7`ĄėŅ:š‹6{<ŪrÆ·ėP³µĶ2‘$łQ¶ŠHS©‚»šwĒeI~ UÄó ‰jčåivWW/įåfį>r»äŽ·94Ü ęƒÕ’×T‡×żĮ ףżN¤g@É_:żvÓ?u’E5éĻjyĆę–cšg§ ižż‡įłĢĆ/÷IėöE6ł@ŪöüŽ‹x0œ»š¼čø–üų}A)£Ż•˜Ó~]¦Ģˆ ?ŒNOŁzė\²ėśź"{÷½g@Ł WÓ¦ŖxQż%³ų}ö Ćõ»ndō ę]óœ`ĢšŅˆģnlēAéŽāĮ±ąčŗßŁŅ[į%äDŒęNå?čcłé!QéŲę'ég=ÉčŖY©č$ĄUét§ėu«ķ`‹š’:ózȱõŹ1Gų;(ū›ėż;å®’“g²’ĖKäżRhņś~¤ų÷ö§ƒžõcddö–S÷޾b÷(6öŅ›8ōŹę ņž(šP|{ī8¹ķĆņŽī„†ńŒ Cöz]„ūSē’H@&Łv^ņ”aMż+…Žų¢ “ō¾•±ń:ŽišųŁšō4‹ņѐ5ōžØōV<ƒóJ sńeӞļū6źīc­šļryńŪjōiń÷²LöłXņwüūž21!™·‡Ö A²HŲnķŲeŁė#>§Fų%ŁwŃ+˜3¹ ¹›ņ|§_5 Sƒ _½ 𵋠zf £>OŸˆßņ"¼ŗč = ĮY ŠĒ—i]‹ēr—+«0‰Ē×·1²1Z “˜׏zŅŠć”ōÜ·Ņč1f° ü³f  ­ ,„E|@rU°h9)¹Æ±~Ęļz,&Ęo =d œ\ eī× ižŲb„t.ŸJhŅ® ކРcīåŚyh@ÓL̓“wČ D[_M•9.ē×o壨ßf“’hŸ~1  ½Ł]/{ĶZ’·Ī’=*”]!‚¶øŽž›aĄśŻCļõŪģ_ńŹ2īj¤õģj”‚ķŁļŹ3ßšõE2ņ(żķņ&DóŻßƒņÅJońœœCš¼Hļx[hļ œčļ Qņü¢ó’²õäAųF·ūÄŅĀ’Œžēģc° z &3Ū 9æõŪ_Ōīuŗā,‘Ł™ n śüõ ś” ,m }ų M eņŖ¤ĄŠÜŸVÖ`’‰‹S°¢KX 0 Ģė)'Ų$š•ŃjBūŸt ö™«ń’«™īs€ĻģK3Ļė£”ćź£ešé‹ƒ5čņöŠē×¼a萾÷ź¹Š ļ@Ę0ō’2ółuųŗ’K«Ā ye j ²F “Ō ŅY µ`ļ š†‹ \ęü=-Ų9Ļ3©• råĮz ¢Čõ Å@z šV —ĪÉ ž«W dö!r³A}üK^łÅ¹č÷0r°÷ĄXų$ųüh¦ų©%ų”@÷’„zö‡WMö,ŃŁö šųķ&śā’óü€öTõqZ3H W§H Äŗ ųнSĒFłl žÆÉśPF.ųŌöąč™öpI÷’vų3ŒłĪf+śPyśāYū‹øüÕ[7’üŸÄDżĶOˆīŚżņ_oł¦3ĘõzKEōՙ_õń÷§ų,ߞżŲM'8ę%Y鳯Q°Ÿv}}yźŗÓ ” Qøį kDl/Śp%>JŌȉÖRÉĻ6£“ź4#vmŲ­ģȕ6ü†W*ŗŌ¦­¶VN/ā' ģŅü2šhłS®Ūöt‹Lõ;”ōį˜ōéwõřc÷]kYśµžfÉŁ|źCb»» &åYQØ^ŲP®gs›7 |©P ’ĘLSüĶ|Wł5öŅā2ōxęHņńšÕŌ”šRŅÖń®±ōr¹ųŖ$öüưu'%ƒ¢§©櫊jäFżC¦œųóL½§ī æøźś¦ūēJ?ęčŒ åŠ+ä ³ŲćMd€äŁÓ2ę,pœč+¾dėķnīš««ń"ŌĪōā^^÷lž ł@9ŃłįģÜłQAvłd łųнųOųųs¼ł?‚ ū™õŽüķ;’Ę"ō—ƒ½ƒ Ī‹Ž >-É^wĀ Ā2’6Æ’¤8ņS³ ‹– ²7% łõ &śēٳžÆVłz %õ“ŽóńÜZšū؅ļ"¦Ģš@ĮōmēųLķ”žRŠ%Ƒ.Pz 4ˆó Am ~Įt QE‹ ž–&ŽC°{ĮRg±Qhī~f "Šęƒń²…h‰]^<'W·ŗ’gWēµėēqqu¢¦s6Į1Njęҹj0D¦B|÷É] Ź™Ēä¼ż"4}g9“Kw ÷jĘ’có‡ ’RģĘž5}’ģj5c$œ¼)—’ęžmŽyėJĻ8Ļ’$ēž;•yž· ž ķü§§„śķe÷óÅöó?qńŚ:ļ›¶Lī[4īļśīś» ī¹»ÓķLĄķXĮHīœH»ļ†ˆņ–­½ō•AF÷U3čųŅ'žųī®7÷J£ßó8éųļ5ķģ²tĪėsĮæģĒ«ļūŌ„ń0EłóķĄĢõŻA÷Ÿą¬ųy’rś,šģüsÖ=‰œ,źV)p ˆ M­¤ ahģ [z  R7{µ5ęüO¢ūśĄWXś 4æśb»ūuDµüfÅ8żŖ.ż‘ß¼ü‡1ü;ūN½Eś‘cæłŲüīłē¾—śt=(ū×wLūč9ū&ß]ūų üņüHżw„ūž5AļŸw ī$Iz™žĘ"Ļ   “ ńqČ µ } ÉųĀ [Y€ aČk A [œÖłÆ—Ļ×^ś ’חžślOżg=HüŗsēśÓœjłż91ųó…÷ŠĪ]÷µ›Z÷ĻA÷Hæö~ś¾öŹżŸ÷GĻ]ł{ķMūt…üūkü„¾ ūS¦öųвłöHó³õņ^†õķŽ®öł¦Eł9­śü}õć}Ēō¾¦7ĄŲzdœ„ģžīØGż·č™üĀ;ü¦‹Gū“¾cł7|%÷ł]Źõā^sö`6vł–¾Mž¤łę, xNõŽŽĢ€ĻÓ͹Kdu.¾n€ §aTĮÅė’.ōÜūµ06łA÷ŽbpöUéÜōZ7+ņū9>īJaĄéq¾Ēå6FMćĢöŲāhÅcä”NLēČg…źżyķZ·īŲ÷{ļ3gÅļæę÷ļ÷šŠē«ńwóƒóą ŌõŌ3_ų>ŁŻū…ˆž#lŅM”J6Ż}ļ .|Ō †×‘Ͷ’ĒT£žņĘ$ Kś+ 0 =£lqw 93Ńž³IōłFšōĒžšģYīqÆ=ī±,kńĖī)÷&ž $œ ōD¢¬m†0Ģ™CR“Ž284įK‘$„W @čź Ö+ m­A 7܊ ;é ( ³Øry“ĢŽśÖ+—ēżžn§„öŚš; ’ĢćKØ#C¢1Y &æešÉ»Äƒéž&Ųč’żŠ’żXʳż!„žBVŁóķ ×I'ļ| 2€ {ų£’ē %p¶Cälšē›ājjĀ*³µC 3ÆłS8ĻŹlż³Łøü¼#cžŲIRģåÄ=J™˜—mwŠŽėÖˆųĀqSX)Ś^ ż„¶R*JkŚøwߎ¦õŗ ¼@’m@'’tw’ģ?˼›ŸœĮĻ Kæ" ¶ØŅ²ęŲEĢ †‚b @š ü ‡”m |‹” żˆ‰ ēy ŽĆN ’$6 µ®w÷Œžõųž)¹ņŸļ’ļžXļwjęšsĄųó­·÷"NÉųŚÅiųpjŹõ#ˁńŽŪyģŖ”ē&Æ^㢮'ącńĖŻģūŪ«ŒŚŗœ¤ŁąŁfēzŚ­ģÜćÓß±bä#^{čĶdģM@ļ/ń|ū)ņBęćņa€ó¶T7ō…Ė&õSmö›‘™ö=ö8>‰ōSĻņļO÷ń#)½ņ‹Ŗ+õNµų{{üŁM…’X-–»³Āc’Ņ@žü‰ü•ūĮ«Kūŗ*üū²°%ż#ķ+ž#zbžń¤żŹĒśŹ›…õ@išČģßźLĒę;%°ätūäØVXēĒįėź•¼īŠ ņNjōÓBØõĆŻŃõ†ŗHõ½\Éōū%õ%“Ģö'ź…ł «­üMʧ’k (¦T‹p›‘“ā-„‘GĀĶKč š lŚń (ņµ Äē] ‰”ņ RO„O „‘ FŽ« F“˲ŹE<ž¼}ś€ō÷6ˆÅöÉŁöy¶€öĢßųūĮEśMݟü0z³žTU²łßõ/ŌĪ&ŒØ ń@ š/d ±‘o6Hk˜oXyp^ Ō÷õƒœR4ą$źQXsøó “;lõĮg Ęe%aÓ¦Q• œ6e äVn*Ć`$jЦ‡’ųü@Ōł¶L:ų3;ł[Quü MiQż j¬Ćčč\#¢3ō(ēóÜ+‚Ń.,z›Œ*nwģ'ł“P%!És#iĀ"ī ż!ĖŽ!.źC Źz٧O4¤ųŸßM’óD óab“ō„ Čė±łw įyDōqŽ-żtcŗųą^õõŚ’ õyFiõčõöó|^ö¹ Eö¶göß–÷IŠ\ś‚ąžuŪoK `uĻ*T;PŌĒÅ]1Yg· =Œ«ŅØč&üjŒ”ų“Ežõµņ&Į¾ļž9ķ˜ŹŚėś$ģļ4“ķ&t”šĮÄ7ō¼ać÷+“ŸśŽ˜ūķÄlś(L5÷®Cwņšåķwič<ŠäS;›įmHąfäŠßķ ą~śóą¦āUā>åIŗäč{¢ķV óņŹäˆųJ%Cż-°SnĪ]Y]sxĄņż°ośžM§öŖżgófFńY^šœ Tšń¢šęńaˆņńēĻĘó2įöČØū\µ’9§Ö¢ƌ+ oxŠ <Ķ} ·» p,ĆżLLōś²ć…ōó£‚ī“CxéepåH3›āsĒ‚ąˆ¢ß×6©ą’Œä<ūŠéÜ aš(Qq÷k¢żGa6E‡”ÆŲŒY…ĢČeQ”’q%9Č·>©5×”ĒbĆ}ī£S æ0 eFŠ ‰÷G©Ę“?|ÕJīŲ¤µõ ó¾į ÓĢ<XGwŽįEžĆŖ ž5  ¼~Ų µĢę|l®¦¶ž3O ś{F÷`),÷«pśÄŗ ’ ĮLźƒ Ķ^ l§ Õ¹°žĢ)Wčr’9čĀūh²ÄłjÜdł7ĶŲłĘĻīłĀS ų½¬—õLRń³=ßģüŗué.ųēk±ŽčTS„źVķ9Śoķ\ÓSšS£󆩬õ4ų{śÉĪäśé˜ś E łQB¬öćóC AšŃyķKĘóėéü7ģųŹnīU`Mņˆ÷réūVkŻ’ņČ,ŒńŃ]s^_ ę Ī"ĶaņnŃčłzTzH˜ƒ&‚4öCń ó5g ŖŖ Ų¤! 4“x U)  ‡[óĮŃܵ'0ĮžNƒX }Ґe`Õ2ŸL¼2磽[S„R—Jhł^ž cł# li1Ržš„.cu'; YĖ /(B$*%9X‡%ƒöŅ$ßIt#nqĄ!ūŚŌŪβ8Ed€KųÕT—®# ¾H Ūk{CŖfüī>īłAĢųUäoųvõ ųzM0÷ąyöµŸZõøÉƒõ‹vöļȓ÷1ó&ųC®Ē÷f”‹ö(õbÕō_{^ōqį£ö/ēū]c?övZÉčįé‘hÓŚ Åø‰ē Še ”~ńŹjŽžJgžūnRųASõÕCóZ„ÄņzōōR-÷œÖ ū± ĮξwŅ ż <ąR9X°‰y€ >“µ ŻžüÄśŲ āöŠ=õāÓ}ōŽžÄó¦„kņoLšMōÉ툓‚ė¶śéŚ-qéŪüŽéaüüźąKNģWŗBķmiķɹ†ģ.’ź=Īē¹ŗęäW¦ĢāÅF2āŒ(ćz*:åpųŁēMĄźŃ‡÷ķo,©ń„¤Żõ[7^śž”Ćž„„žζ–ćn"qüUH6Łw.X£ x¦ ž"vƒłļŠōF‘9š“Üė– Ķē'9_䂹@ā/ÆBā‚ŠÜäŲ Śéøu{šÆvĪ÷­Ųžįx¢:eęĘ ©ŻēV3K eĀ1‚#’9c®ü9é¢ūUÖūh¼“üŒØŸżN©.žP:ž˜Żżz°rżµ?mż\4 žŒā-’Łj}ō\¹VÕōoŐ$ŪĒē’oØ žu©¬ū‚Œłē&³öæāōįÅŃóšó“'rōؐØöįh^śGIB’„`‘ƒųg hĒ2 ¦ėļ}żż$ƒ”ūeĆīµkdJ¤]÷všh{ņø’ <±ķźwU²8fÖžļ­(ž|«‰’כŽ·'uĪKJ ÷{q}4ZżqŅάŻžå•e3%pŪ ŌĖ‹oł¼ĶØ ‘QaTzeīvå~õ©³É ßuģFiŽēŽ0v*g?#€å`™³¼žˆüŲjƀÖĢWækڃ„Äŧ–É@† ūvæõyŹEwž¦b»žƒ±Āū 97@ĀDą ś’s:/ūĘū öPńVm1īt&/ģP21ėō ÓźŪ^·ź©ˆ¾ź“’ź™ė ¶ģLH§ī›jÅńs«ö3Œ#ūÄ'»ē€‹ńó[°— 7˜ j  Ōm^ŚŻRš d¼ ‹ć1 ֍ń~ļ:”’s›^ż“Ėüų_Žū*¢²ü„žźø^’IŁŪ’Ūw’t„žü—żPÉü¾—’ū 7ņśŖył?ƒŸ÷œŒžõŠóØŠŠņĒköńņŽk ņSŖó5“ŲōĻŖ'öpap÷ÕĄ³ųŖsłł—r3“ž ĶŗŲŽA—j[ž©e¦äėćĀJ³ĆČn85מŸž!ŗœż†Eż8Ļü&¬3üićŒūTūąśŹśYĒĪśwÉś…pśŅÕł‚+ł<… ś[Āū‚ YžvĶ„škÅŠ$0ŽØ$ŅN/6’śy’`Ÿź@ś»PŻā%mJ-6œGŽ VržoīūP‡y |ćz%į’æĒ!/ž¶ūäūfųµ',÷|nę÷q™śa‚īžöĀ[,Õ/ Ž×ɐ*#›Āėœ’K 5ܧĘāK°]¶ ‰I ÓΠ•Žš™[šyÆ .‡ ]ņæµa‰L£µ(Ā_8kɵ4źƒ±Qk»ńtaÆ]üySųPį÷ókkšnÓ¦ķßSģŃEKķėsļ-+·ņ`Ąöӓ<ūBĻ’U<Źw×2Ś T‘ /dT””AÓ× ā½Ś ”ćF(W'’ų^rśV:Óö Ś»÷¬é–ö"µ˜õŒ8UōoĘąņm‚”ńŲrśšNŹ#ńO'ņ—+Łó×Óõq“÷>ݧųūĒųøäĮ÷“›õė¤ņ˜rfļցjģJŪźpÓÄčō™Ÿčѱ³é`¹ėo)ī‚pŽš“É×ņöņ=TĢņ[š|ņVÅńęŒõīqė~ģO*źexlčŖm³ēóü=č8+ź&=ĖģāBš»‚.ō?"aų‹§ü²×µÉ72ŁĆę¦,WüfRi¾Næ‡ßč)„Q8Kž  F†.żbŸŽłeŗ.ö÷.róŻ^™ńe Ššd+ń¬W ņ ™õŁĻJų£püˆģå’}5Ćü”ščÖ¦>:³Įtč×;D;Mˆä4*ē’ …A’óŗĻžńPž)‡1žnTŲż³āŠżm§tżÜ2Ŗż_pžhLžńŗžž~AŽžå5’=óQ’oč_’ŗ&’*Ūž#xŅż˜×üŽ•Ąū5…øśćś`,śą_ū %Ŗż]%“æŌņdšóģŁ– ųž vy• ČŽS~NŹĘć~vXz¬ :q5 Kv*¹T)( ; ‘ 4 ‹h‹ &æ .%r küŽ !U= ĘEI…ėv”8„ü&‘“n’č.ąž„ Dž„—żz/SūQī`ł= ųYHųĪ›·ła żÅбG+·åČ ß£³MŽ"c„³#HŒĻœeĒ/8Ü}ZT»%ģ įģrśŒ?8sķĻ_Aśė q#®6Ļ””IJ>éŠæŠœ4J•ŽC!8Ć6Udō“ü‹ņ{ųLͧōpŲ¦ń[;Õļ|cMļ}šźąń=_ąōKåņų†XēżŽčR!qšžĮ ŠSW2&eŁeŸņ€ŸG¹R Į’\ ĪŃ?ĀĆ÷/‘žŗĀśDļĘ÷&(Čõc)«ōe"2ō«%ō( ō޳Żó`A’óó\óLƒqóĻóÆ(Eō•£ō Ēōēō)ŃóT³~ņK3ŖšPü‰īFxģ®^ÉźVõéłłYźøģÜ|Ųī8+Rņƒoö©ó­łļMÖü7H’n7ī0Ļą½zM0W…ķ p l½™‡õ{’ČŅkžą(iż–8vü„ūźQcü ›ü<Іü7Ā—żū=üžę‰gšĒģvF0lĄ¬GʍĄŠ pHōļ¾ł“OļIŚ^ēµŅüĶ`¦ł½ōńö©ł³ōõŠó(!lņÓIóL‚ õ.ńų1æNūŅó,žM‹HzŲ„2Hƍ*Ł‚\œäóp`.„ņZÖŗ° ĀŲm €ģą oz ׫Ć5!ѼĘ_“pGš–z䀊ņŌP+=Ü'>OõĶ-n ך¾ˆR¢(» 㦠ėŗYŸ§J0 ¼oY÷“u žžZļül~šż@f’‚׳£ßßF›§„žĄĻž±Ć–üŠ[#ūc šś$¶üœž“Ćįvö«Ō•Ä]ż–VłÄxčōI¾ ń5(fīCģ퇶ģŻ.ļģ6²©ķõtļŌjńœyōŌ›Ń÷E;Óś Ōčü×§żōėüIģśœæ?ųĄėÆõ‚‘ņóÕŁhóō ō¤yõĻ^5÷6ĮĻų|ź ś·lXūßoŪütńśž\¤­Łc˜įGó}r ;³ Ą, ]EĮ  SĘ õV Sū· ßĘ5 ZØö :ß Uƛ WˆŌ thÕŒG‘µ¢S#D™·{s@3³ĖĻak ē1Ź[™©wU®…ĢĆ6óĄ\ūŠiGI ?+šµFÓ‹t[Ų'¶Ę˜Yŗ%¹æ'μi Ł M*Ÿ 4vƒłŻ>§/;…ōŻūµ%’E^‚‚¢ü;yųƒŽµó‚Ž<šėÕžķ&nåģß„ģÕķāzęķQf1ļ¦qøšüµGņ~¼óµ õ> :ö5Z÷»Ė“ųµ ś·É?üzw’½Žš«Uį͊ Ńm ›o 9Ž æü×pŁ{_Čv:ܼÅ’’ŅžĒ:ÖūfqŠłøxųÆxLų‰ž§łvŖOü]¦ ҶkHHŚ„e³ hƒSČvO8П% SŚ MćüńF– ”óÖG÷‹!MĄĪčO…žĻō.ūcē,÷ČՄō/jńtˆļŠÓļ—æšqÅŽń»_¾ó*ŁōŽZ§ōedóL=ršD¬lķŃ>Öź§Øbé_*^é®%¦źS×äģ|iŅļ!Gód’ ÷—Æ"ū ōž°-lnYtšO?„_&‘ν~•˜¬ L×ä:ƒŲ¹3_q’·®āü"ŗ śé`1÷xü õG“"ō½=˜ōIP%ö.‘Qų\&­śƒ'äüŗµžēSö’>iØźōŚ@Īd¹¢ Ķ! 6u„6h1IŌ‘A„£UI\£2Īp½-ä“ĖÄŌņȘ±ŚG¶ę(kĻÖK‹g;³5nv’ŅĪGžØJŪżJŪ;ž]į.’šxBA+ōåįć@óü’“Q†žó·żüĻ5üĆUüaĘcżT ’ūĢó\+Ł’^{‹ … @©µ“6ż–$W / u6’ §=ńŻOåķ<Z—䤄‰µ<5™Ń ŽV¤ »ż“>aŻIŗ½AZ“O‰×1ž ų-P Q÷ń „J UŪ” ›;é ńž »“o ?”õ pBņ ņ „|† =Ą }śņ–żtåį—~ }°Ö†Ł×Se-ŚX½¬W„ŹĖNä„Į`§5&CĢˆX 7†#Œš҉o’ĀŚ üČ‰åł«¾Šųų”†÷m7öŗ2ōhmtńļÜ\īZ'lė•Réŗę`ēŖj’ęż “ę_+ēšüīēTŖnč~‡k舒ģēH9ēī…ĆęŽ}ēE„6č[‘:ź ¹Æģ1sDļŸcćń_@œōfŚg÷nźśž™$üýoż÷ōÅżfl'żÓ޳ū-¬ł±Hv÷ó ˆõp·Cō]„Õóš(ōģtšōČ8Įõ/JöA°…öBÉö§0Ž÷IłH6ūåcż’X’f°ķ’œå’ā¶’?¢ż‚OįūŽöśѝų»†÷Šéåö[ŽØöõøöš¼öG®öCØ ö9?¼öŗŁ$÷«¢ģ÷ŸłIR®śŃ9ŠüLnžæ" s.•”ÜŪÖE’ ¢ŻY"Ŗ²@ü ś> "zĄŲ¤– a» - ˜7 „20 gķó ļĀ< ±-ŲQÆąČVŹkī$×M<]lźŽĖĀT‡gßµ½’-ŌčžļÆ#žŠ§•żń4=żĄx’ü×/ÕüčĒķü1ߟżPõ,’°ĆŠļ:\¹ć÷‡c ÷Åē łķ„ ŒĀ źķ| ćJ& Ü" ĻY‘ “ģy \JD ą' “}” ·<ŲŪ”|9˦r•„hh(ŠĄ’V ž²ćčūd¶ł‘@ų"Č(ųŠÖŗłŠ…ļüŠŠw»žā Ą©RĶ}Źc"ŒóB ƒüŌČū] čäļ Ør ł¦`Ŝš*‰sÅÓ­ ½óü Ź+ö4ģģĆ}Ę~Ó'©l˜¾~°l#zŽ©>ŽBɘ żä[łÖźĘõłčņł %ńŒ‘š„Žń.gNņ2qqōļž„÷‡”ū;—ZŚl>ł* ¢ƒ€†Ģō•JÖCźŹĒBd Lō` ¦Ļ6Eȼ‰¾ĀĪüż®MwūĶ;łÜ?„÷ o“ö žvöēĻćöwÖY÷ŗŒY÷ą Æö'6iõ|µŗóJ_čń ą4šškĻīŻĖķ(ķńĪģDY—ģĖIRģeėė‚YėŠ[ėfbČėMRķ &&ļÉė7ņÓ (öõ “ś½Ķž¶؁Ųbz€ė8;į+(Õ{m®8ł²PŒ’³¹UT“lśĻ«j[\ ’ĒažžtÕ§žéŚ–žd’¶žĪŌ’Ž›©’†Ö°£śĘąBķ}ö G—i˜ü`’X;ż£Ż*ūēPMłŌiÉ÷B/äö& ģöq³ų­æļłū"9ü UžÕļģ’ö†ųŪ£«NØIś.]Īćroü‹łMRā“.EŌR< ·ŗ6C9.Q’£GÄ,¾e’ßņ®˜ˆšsę0čŽĒrÖŪ¤`IRO&g" ¾ “xu®wTß÷1pwö}ß ĢŖ6 æj^ÆV€ž^, žY<’ą{K! &‚“Łžų\Įš²ōżĒlūĄ·Äł8łŚą¬łŌlĮśĀéū@o’ü”hLü¾”šśÉO±ų7öEø“ó]ģņ0Rń3ū*ń]sRń—§ńćaFņ6äjó!¹3õĀ|÷ĮŲłø“ūH—†ü“üB¬Qś^į÷īD]õßM]ó,ÓDņøa@ņyKó“p#õ”yT÷ŽYlł-_CūGĆżS D’‰  ¬;F·2n@›ķ ąP ŠĻe _FR ŁĻŠ 熸DLuĒ3-šóä-Ū? µz Ovō čq\ ē“ü ę-źD©œ—Įc’ŠK­4ėģ 1Ic•<ŲÖ}u[ŲJ;ŒĶŃ; Ād„ ¦«×"’cՊøŪ>4»¦=SĮxՖnIbŠh&X óūmā€N€ANM,w—{ćį–Ś’Ģčxż&ĒśWÖ÷:Īõ·‘ņ!¹…šßīŹf«ķV9ķU2BķQU*īŪ‰ļĻ/ ń;z@ņ#óŃxóūĒłóóü õ’Ä ÷'Šś<Ķ žo1qõ¬Šń~z ©¢• 8=Ę Óǧ‡`5k8M@‹Dį‰Ų:–rå4’Š’T­fż©©üÆMˆūɏ4ü•žQ€$tÓöK’ ›$§ Š}×d½ÉT RP% ĀĪgOÖū’ēØ3ÉČŠfį‡撐ͺż—!ĜɞØ÷Ørõõ-'óäæ1ņT:ņlÓZņ–FŪņa8)ó‚śņR*ņKĒŹš8$+ļ6’Ąķ¹›öģŽ»ķ ŪķźSdļ=Ķ}ń°ōź÷!÷؟zśw“ÖżmžČK׏½¦ų(ݳSä’°_Zž nżgŌ ż]”1ż*Fż]v’üÅRüŠ|zś½B‡ųćnŻö?Ķ!öłĖ¬öŁvdų^eŌśŻÜbż³č’IŠÅ !‚ÅŠ¦¶‹’--wžƒ‡„żbż££ŠżuüķžRĘtć…ųBp ļ mõNZė8¦lqmf1ćoq™WŠĘ>¦*ŁŌ}‰×tt'"ÉłųQŅao38ŽH•PµŲ€Ļ$xėł’•ø’¦/’²å ’#.’/=±’ĻĀ“UwĻņ©q+łžÄļ/; •ÖĒ Śø ę³G ° įP¢峫ēcöaV•’” Č£p‰Ž{Z4m&†źÆ‡É9€4 --W åāJ lŸ YĻ© ’kg ²“ J, 5ԟ |=Ų œ’Wgešŗd Nl. !ļ. dū‚¢oŻ<£:p“ŗūžü>„7~ŠEx}#Į9TŠq› ØL£%ā x8  ŸŪ¬aN#· üˆ$śF»³ųÕģĆ÷:¦ö­V×ōk:ņ\/ļó]ūėżčAé†Ü!ēńrœåWü–ä7Rķćoč‚ćs€MćDQćD¾™ć(:äb—UåóŸ ē-_éśūģbZŅīi±NńɊaó¼łõµŲ¤ö¦Ÿ=ų ŁņłKźšū]HŻü€YżÕüW Zū˜»8łlģöf¢óō§‹­óʉLó0•Ėó”cźō“?özĻg÷T:ųzŗ×ųŃ†ł•ézś÷źÆūߣķüć?ćż'Ź?žPÖż·üÓ¹-ū|Šœł ‰LųĪt_÷oįö¾ųŪöŠęz÷ąWWų‚ŖłĖßõśÜŅEüFżm$濎®EžężĄž™WŸ’Ģ’ń¬†»r Ę~/MĪ;gņ¾ŲŲ“ēĻ‚‚¼[šO“MŒ=óŪ;fO˜„޼Ź«€å2öŚĢžk(Yb›†ÅÅ[ā€é%lÜŚ„¬ü’—źG’¶I{ž©¦ż¶u¼ü›Oü~ŌxühY&żģkž}Ąžä×"’žÖW’‹}æ’Åx­:9 ź=cr—||5æ jĆ %JĄ å#D –ÅŃ ¦ź 'źĆ j Å40 :g4 o~µ ŗöšąĶć?#Ečoš‘b&’’ēæ3’CK žaΌüś*Oū Šśń_ūdżaMĢ’ņj?>W¤VJ üīøD€{!<1”ĒĀLxPÜ ķ8Č æ8a 4  1¶ “> ]Ft 0mš ^3 –'øķSluqcźūŠ®’ÜŒä„]> ;#äk’·p;üśņųMąēõčÜxóē>óńcō}ń„kņ…Ņ®ó¾Rö³“ł±skü@gŅcark£ 0, ”œ“%ŚŲyŲK¾ dś t0~ŽÓ- ˜’“X<żĆxßūOū›„,ū¢ū›“åśMÄzś±ēłK;8łO"dųlū:ĮVū6NųśH^öłģ/VųnżNöåq@ōCĔņrĶ‘ń=z<ń4kńż:ņń˜–Įņū¦ßóÆšTõ>R÷Š łČōŽśŒš7üI„¬üA„üėLśSī÷ģJqõ#]ó¼*ņ|;Ńń.[›ņ$éNō€q£ö&ŹHł$jüHęĘž ч—@”Ģ×t" ĢŅģ °ōų ĘU §ż Ĭ ĀĘøÄÆ£¹ƒD|BBo 䦔·Żž€2.ū 7Rł r8X »÷ ĄŠ xZ¼Š]XCDpś„Ņį“ż» šĶ3hĻĀļ(Ä6 ]EĒ :Ā zr*ŗRŲTy~`v»/Ł+½ęx®fėwāń  ¢ Ą, }x‡ēó!#5×÷Ų½­ę’‹ģž Ūbū\6^ų~æ‰õE2_ó˜R ņ8Ÿiń¢%ń+’š;ēš@bćšbŒīšÆRīšĀBĢšõĢš“Gbš:š§×!ń‚i{ņjō°ōOŌ÷Īū\ø@ę]ƒĶė‰ ¼÷– ‘ PšĘQC)Œ+$ņŽQÓ¦ž÷Õ-żå_ØūĶū½@|ūīŪü6A&’VĆ% €Š $ź®Ć Ŗ³” [ė’ ^ń i8Ŗ ½ ®QŹ›»Ó@0,’¤§žéa*ž”ŽLż—Ķęū“'śŲxų*F÷—ĮöŃöĖ%&÷9z]÷æj"÷ˆ¢Oöõ*Š~óLĆņŹ ń^Į_šg²šŒöš»lšł¬"ńė\ņ’~;ō-¼öå©ł˜āŖü¢ā^’ ¶r ®£œ<Ēܼą8®0Gš#ž"ģ&üĀ×|śŪ6łļ^Bų„¤Š÷/÷ōi“ö©iøö‹=(÷ā¼ųJD:ł&šśĆEüŠvlż¶ĮžhWą’ś[:•j^ń’ŗ ¤žņģHżUvü( ^ūB7Lū²‘üū=lżžp’œė°Z“x™ˆ—[\¼ŗ;[l(KKeĘrĒy`Ž–DF9oW|ļM1ąt'V ²|'ź]§ʶ<žÅ¶šk¢@Ė4[Ś_Ś·Ņa…’4Žt’ŒDź’hžõVµ…ŃBXWĮ Ŗ_G’ź w Ś{Ż'Ą¤į̓(bwĪźehdLź®`“’;g £|€ &’Ų ŌrŪK§?®e)ĻēĪļ±ŌŪõėü { ‚©i Ӏ ƒm ČZÜ 9ŗ¹ zE ɘś* OR zˆ>G \\ FŸ ń¹ļ E$µ Ņ#¹e0&H oŖł¶Ą[ĢĀŃ ī„YØø†uIi=ųČ ć !r傦H3hhžł~-üPyWś‹šųprÆö vō”ņ僀ļVō#ķŌB’źėņé~3Pē<޳帤2ä@ĪāœįdĶą&² ąĻROįg“óā%"vå„ŁŒč>žÕėĘžī¬*ŲńFŻZō›­‡öƒMTųÉ Øł Čoś63±śMƒŠśśNE€łÉh¶ų¦ĖĆ÷“·öہ²õ·āō{uō‡²„ōį3õķīżõF?÷n'¾ų|ĖYśßŲūžęłüł’żž”żÜ®=ż3Ź|üäŠ[ūīŠ$śa0ųŽ:ßöĶā•õ3Œēō§åōōø’³õ9ĒüöŁI¦ųŪ:śŚķ˜ü¼.œžxo”ĪųT<)ŽI2,żFäćQtķ±éنU¦uĄ Ś)–ć’Ś =ń ö& Č©Æ ° RČū /B§ ܉ W9[ ż’Rt¶ÕŃyŅo“ Kį<žąVż¾ŁüĢKüłbžūsšś…ŸJśū’łš“Hś·õ#ūĖYü ÆØż™ņžÉC§„·Ä+L 鯎%?s2T$¾,ż˜[ÜŹńņ®Ä’0[? (ķ p •WE »ņ Ÿ&‚ puŌ Ż“Rq‚°”ī~ū/KcŻø’ĪÕVžū”ÅüŽTūµŠlśIhśå±vūŖĒŸżsĘÄk뙪hŸ¾24 hęĘßG €Ó “†1MAĪ šĢž ˜&Õ üa ©»Å ́ ˆ;O $cJ (Dę䥬ł^źŗök^NRū˜ąÜCBŲP\h°.OžäˆūŌmųŃ÷“õš÷ĶóhT³ņ¢tBņ䨌ņ¦Æó–¼õuižų@źü@ā’R'sU£·Ó fŹį gc Ö(V rڳ šF. ‹ŖÖ±Üߎ“‡»o’ačēüļŠ^ūägżś>˜ūĆH­üėY”ż©qÉżfenrir/config/sound/default/StartOfLine.wav000066400000000000000000000265201513650123000212760ustar00rootroot00000000000000RIFFH-WAVEfmt (ž’€»Ü  €Ŗ8›qfact data-ĪĢ̌š™™Ł«ŲaŽŽ ڈäöƒ”§Śeš‹‘w„.ŪBü “k©µŪ¶”`­<ÜüK–T±ĆÜŁą—HµJݶ+u™=¹ŃŻ”7 ›1½XŽpCŸœ%ĮߎNO4žÅfß*[ɟÉķßg^”Ķtąäró¢÷ŠūąĀ~ˆ¤ėŌ‚įžŠ¦ßŲ ā|–²§ŌܐāY¢G©Čąć6®ÜŖ½äžćŗq¬±č%äšÅ®„ģ¬äĶŃ›Æšš3åŖŻ0±Žōŗå‡éŲ‚ųAędõZ“wüČęAšµkPē …·_×ēū¹T^čŁ$ÆŗH åčµ0D¼<lé“<ٽ1óéoHnæ%zźMTĮė)`˜Ā ˆėl-Ä$ģćwĀÅö'–ģĮƒWĒė+ķžģČß/¤ķ{›ŹŌ3+īX§ĢČ7²ī5³«Ķ¼;9ļæ@ϱ?ĄļļŹÕŠ„CGšĢÖjŅ™GĪš©ā’ӎKUń†ī”Õ‚OÜńcś)×vScņ@æŲkWźņTŚ_[qóśéŪS_ųóŲ)~ŻHcō“5ßłz PķÓŠÅłW¬åīȎLś4øzš¼’ÓśÄņ°–ZūīϤó„šįūĖŪ9õ™žhüØēĪö¢ļü…ócų‚¦vżc’ųłvŖżż? Žūj®„ž#ż_² ’ł"øžS¶’’×.MHŗ³:ā<¾ ‘Fw0Ā'nR %Ę®K^”Ź5(j6 μvĖ ŅCā` öÕŹæõ źŁQœ™Š߯Ųy„Óį_V±“Ēåę3½I¼émÉŽ°ķōīŌs„ń{Źą™õØģł‰„ų2ż bČv˜ >]j ņ_ ¦ ų'‡!S - Ö3#G“ ³?±$<; KF&0Ā mWŪ'$I Jcp)!Š 'o+ %W{š,)Žį†/.ö,e¾’Ä/ź0ģ›žY1Ž4sxŖī2Ó8śU¶ƒ4Ē<3Ā6¼@Ī­7°DķŁB9¤HÉå×:˜L§ńl<P$ƒż>T«a —?vX2=,Aj\¹!ĮB^`@ų,VDSdĒÕ8ėEGhN²D€G;lՏPI0p\l\ŖJ$tćIh?Lxj&tŌM |ń€iO€xą‹žPõƒ’½—“Rꇆš£(TŽ‹ xƽUӏ”T»RWĒ“2ĒēX»—¢Ó|Zƛ)ģŽ\¤Ÿ°Čź¦]˜£7¦ö;_§¾‚Ń`«E `fbuÆĢ =ūcj³S!&e^·Ś!÷1%gR»a"Ō=ŗhGæč"±IOj;Ćo#ŽUäk/Ēö#kaym$Ė}$HmoĻ%%y£p Ӌ%…8r×&z*g)ĶŁX6üŽTŚ4B‘ŪŚN&’bŪļY»“śéŪĢeP•ļ!pÜ©qå–ć%÷܆}z˜×)~Żc‰šĢ-Ž@•¤›Ą1ŒŽ”9“5ßś¬Īž©9šß×øc =!ą“Äų”‘AØą‘Š£†E/įoÜ"„zI¶įKč·¦nM=ā)ōLØcQÄāā©WUKćć w«LYŅćæ ­@]Yä#”®4aąäy/6°(egåW;˱iīå4G`³muęSõ“qüęļ^жśtƒēĖjøīx č©v“¹ć|‘č…‚I»×€écŽŽ¼Ģ„Ÿé?šs¾Ąˆ&ź¦Ą“Œ­źł±Įؐ4ė×½2Ɲ”»ė“ÉĒđ˜Bģ‘Õ\ʆœÉģnįńĒz PķKķ†Én¤×ķ(łĖcØ^ī±ĢW¬åīāFĪK°lļæŪĻ@“óļœ(pŃ4øzšy4Ó(¼ńV@šŌĄˆń4L/ÖÄņXÄ×ȖņīcYŁśĖóŹoīŚīϤóØ{ƒÜćÓ+ō„‡Ž×ײōb“­ßĖŪ9õ>ŸBįæßĄõ«×ā“ćGöł¶läØēĪöÖĀęėU÷³Ī–ē‘ļÜ÷Ś+é…ócųm꥟z÷źųJņUģnūqł'žźķb’ųł €ļW€śįńKū¾!Ŗņ? Žū›-?ō4üy9Ōõ(œüUEi÷#ż3QžųŖż]“ś1žķh(üś"øžÉt½żī&?’§€R’ā*Ę’„Œē×.Ma˜|Ė2Ō>¤æ6[°¦“:āų»;Ø>iÕĒŠœBš²Óe ‘Fwßś …Jžlė yN…I÷$nR &ŗbV“OWZąäK^”¾&y?b(š23fÆx>£(j6TJ8n½2VĶrD bbvĖ ģm÷łyR ÉyŒ ī}Ł ¦…!"ā` ƒ‘¶#օē `K%ˉn =©ą&æõ µu(³‘| ÷Ą *ؕŌ̟+œ™Š±Ų4-ŽäÉ.…”˜kš^0y„Iüó1n©¦%‰3b­-5V±“ß³6Jµ;½+H8?¹Ā™7Ż93½IwCr;(ĮŠSO=ÅW1[œ>ÉŽg1@ĶeėrĘAłŠģČ~[CķŌs„ŠšDāŲś‚–…FÖ܁_¢HŹą<®ÆIæäŗDK³čöÅŁL§ģÓŃnNœš$°ŻPō«Žé˜Q…ų2jõ-Syü¹HĆTmA$ XVaČķWVOŽ$‚YJ Ö¼0[?]˜<¬\3ävHA^'kSTÖ_ņ0`ka y lc$!źw•dł'‡!ǃ*fķ+"¤ægį/•"›TiÖ3#^§éjŹ7£#;³~l¾;*$æn³?±$õŹØo§C8%ÓÖ=qœGæ%ÆāŅrKF&(ˆŽø‚Ś”–¬†‡ŚāŸ+‘”ŠŪæ«Ą’•Ž•Ūœ·U”‰’ÜyĆź•~–£ÜVĻ—rš*Ż3Ū™fž±Ż穚[¢8Žķņ>œO¦æŽŹžÓCŖFß§ iŸ8®Ķ߅ž ,²Tąa"“¢ ¶Ūą?.(¤ŗbį:½„ ¾éįłER§žĮpāÕQēØņÅ÷ā³]|ŖęÉ~ći¬ŚĶämu¦­ĻьäJ;ÆĆÕå'Š°øŁšå™e²¬Ż!ęį¤ś³ įØę¾°µ•å/盼$·‰é¶ēxȹø}ķ=čUŌNŗrńÄč2ąć»fõKéģx½ZłŅéģ÷ æOżYźŹ£ĄCįź¦8Ā7hė„ĶĆ, ļė`'bÅ vģ>3÷Ężģ?ŒČ „ķųJ!Źż īŌV¶Ėń’ī²bKĶę ļnąĪŚ$ ļlzuŠĻ('šI† ŅĆ,®š&’ŸÓ·05ńž4Õ¬4¼ńą©ÉÖ 8Cņ¾µ^Ų•<ŹņšĮóى@Qóx͈Ū}DŲóTŁŻqH_ō2岎fLęōńGąZPmõģüÜįOTōõÉrćCX{ö¦å7\÷ƒ œę,`‰÷`,1č dų=8Ęéh—ųD[ė lł÷Ošģżo„łŌ[…īńs,ś±gšęw³śsÆńŚ{:ūkDóĪĮūI‹ŁōƃHü%—nö·‡Ļü£ų¬‹Vżß®˜ł Żż½ŗ-ū”“dž™ĘĀüˆ—ėžwŅWž}›r’TŽģ’qŸł’1źf£€öZ§ė¬N«ŽČ ACÆ„Ö7³œ‚%k +·#_1 »Ŗ<=• æ1I* ĆøöTæżĘ?Ō`TńŹĘ°léåĪMŽx~ŚŅŌj„ĪÖ[HØĆŚā$œ=·ŽiØŅ«āšß³g ęw ¼æü”źž ™Ė‘ˆī… v×&!}ņ Sć»"qö“ 0ļP$eś ūå%Zž” ź{'N) Ē)B° ¤„*7 7*:,+¾_6Ļ- E;Bd/ĢNł0SõYŽ2üŚÓe#4ń!aÆqø5å%č}M7Ś)oi‰ā8Ī-öG•w:Ā1}$” <·5­”=«9‹Žø6?Ÿ=»ÄĖ@”A™˜Š`BˆE uÜõC|I§RčŠEqM./ōGeQµ µHYU<é JJNYĆĘßKB]J¤#tM7aŃ€/ O+eX^;žPiß:G3RmfSČSqķō^]UüttŅjņVńxū®v‡Xå|‚Œ‚ZŁ€ iޱ[Ī„FšF]ˆ#¦Ū^¶Œž²p`«% ݽbŸ”¬ ŗÉšc“˜3!—Õ/eˆœŗ!tįÄf| A"QķYhp¤Č".łīieØO# „kY¬Ö#émN°]$Å®nB“ä$£(Cp6øk%4Ųq*¼ņ%ųŁSó¬ŁÕ囎G÷3ڲń0;ūŗŚżÅ‘0’AŪl [“$ÉŪIš”PÜ&!…– ×Ü-˜^Żą8ƙõåŻ½DD›źlŽ›PٜŽóŽw\nžŅzßUh Ē"ą1t˜”»&ˆą€-£°*įė‹Ā¤¤.–įɗW¦˜2℣짌6¤āƒÆ©:+ć`»«u>²ć=Ē«¬jB9äÓ@®^FĄä÷ŽÕÆRJGåŌźj±GNĪå±ö’²;RUꎕ“/VÜęk*¶$ZcēHæ·^źē%&T¹ bqč2éŗfųčą=~¼õié¼I¾émźšUØæŽqźva=ĮŅuėTmŅĀĒy›ė0ygÄ»}"ģ…üÅÆ©ģꐑǣ…0ķȜ&ɘ‰·ķ„Ø»ŹŒ>ī‚“Ṕ‘Åī_ĄåĶu•Lļ<ĢzĻi™ÓļŲŃ^Zšöć¤ŅR”įšÓļ9ŌF„hń°ūĪÕ;©ļńd×/­vņjłŲ#±żņGŽŚµ„ó%+#Ü ¹ ō7øŻ½’ōßBMßõĄõ»NāąéÄ õ™ZwāŽČ'öuf äŅĢ®öSr”åĘŠ5÷/~6ēŗŌ¼÷ ŠĖčÆŲCųź•`ź£ÜŹųĒ”õė˜ąQł¤­ŠķŒäŲł¹ļ€č_ś^Å“šuģęś;ŃIņišmūŻŽó]ōōūõčsõRų{üŅō÷FüżÆžų:ŠżŒ 3ś/žjČū#˜žG$]ż ’$0ņž ¦’<‡-ŽGõ“»S±é;˜_FŻĀukŪŅ#IRwpĘ'Š0ƒ »+W š Æ/Žźš/ £3eʦÄ—7줲YŒ;s€¾ī€?ś^ʃuC:ÖiGā­]KõķBROŅł×FSÆm:W$ Œ/[« i—#_2 F), c¹ #5Į! g@ AV#kĒ ŻLė$ōnN ŗX€&érÕ —d(Żv\ upŖ)Ņzć Q|?+Ę~j/ˆŌ,ŗ‚ń ”i.®†x韾/£Š’Å«“1—ކ£·(3Œ’ ý4€–”]ĻR6tš:Ūē7iž¢ē|9]¢)ōņ;Q¦°Ńž¦:®¾‹Ń?.²Eh"fA#¶ĢE.ūBŗS":D ¾Ś’E%FĀaÜQŗGōÅčŗ]OIéÉo–iäJŻĶötuyLŃŃ}PNÅÕ.£OŗŁ‹ ™8Q®Żč¤ĶR£į™İbT—å ¢¼÷U‹é§ȌW€ķ.\Ō!Ytńµ9ą¶Zhõ<ģK\]łĆó÷ą]QżJŠv_EŅ­ a:Y Š b. ą g'5d" g!D3Źeī!!?_g u"’Jōhü"ŪV‰jōƒ#¹blč $•n³mÜ$‘$szHoŃ(%O†ŻpÅ,Ÿ%-’rrŗ0&&„7”āgąŁ‚C6ÖkgŚ_OːŹoīŚ<[`’æsuŪgõ“³wüŪörŠ•§{ƒÜÓ~—œ ݱŠ“˜ƒ‘Ż–Iš„‡Žk¢Ž›y‹ŸŽG®sm&ß%ŗŸb“­ßʝ V—4ąßŃ2¢J›»ą»ŻĒ£>ŸBį™é\„3£Éįvõń¦'§PāS‡Ø«×ā0 ŖÆ^ć ±«³åćź$F­ł¶läĒ0Ū®ķŗóä¤öÜģ˜ī+Č3ścķuśĄÉ'žźķRVĖrī/ėĢłī €Ī €ļé)Šų šĘ5ŖŃķŽš£A?Óįń€MŌŌÕœń]YiÖŹ#ņ;ež×¾!Ŗņq“ٲ%1óõ|(Ū§)øóш½Ü›-?ōƔRސ1Ęō‹ ē߄5Mõi¬|įx9ŌõEøćl=[ö#ĦäaAāöŠ;ęUEi÷ŻŪŠēJIš÷ŗēeé>Mwų—óśź2Qžųt’ģ'U…łQ %īY ś.ŗļ]“ś #Ońaūč.äņųd”ūÅ:yōģh(ü¢FöįlÆü€R£÷Õp6ż\^8łÉt½ż:jĶś¾xDžvbü²|Ėžō÷ż§€R’ŠŒ’›„Ł’®™!ˆ`‹„¶„Œēh±KxnE½ąl”õ"Éua˜|’Ō UœÜąŸ I Š¹ģ4 >¤–ųÉ 2ؘs_&¬Pō°¦-‰“- (ø“ē3³ų»;Å?HģæĀ”KŻąĆIWrÕĒŠ[cÉĖW 9oœ¾ĻŽ {1²Óe ó†Ę ¦×ģ Š’["›Ūs ­žš#ßś ‹Ŗ…%„だg¶'xē EĀÆ(lė !ĪD*`ļ’ŁŁ+UóŪån-I÷$¹ń/>ū«•ż˜02’2s .2&ŗPĆ3A-!X5 Č -ķ6Oē8‚8ųÖÄD:ģ]”P¬;ąä~\A=Õk[hÖ>É"ņ8tk@½&y€B²*ņ‹•C¦.‡Š—*E›2¬£æF6•ŠÆTHƒ:f»éIw>£DĒ~KlB* ÓM`F±žŽØNUJ8Śź=PINæøöŅQ=RF•hS2VĶrżT&ZTO’V^Ū,&'Xbb 2¼Yféę=Q[÷ipĆIę\ģm÷ U{^ąq~}a`Ōu Zm„aÉyŒ 7y:c½}!…Ļd²š!ńdf¦…!"Ϝłgš‰Ø"«ØŽiŽ/#‰“#kƒ‘¶#eĄølw•=$CĢMnl™Ä$Ųāo`K%żćwqT”Ņ%Śļ sI„Y&R•;ŽqÜŚ/”ŠeąšŚ ­e‘Yä!Ūéøś’NčØŪĒď”Bģ/Ü£Š$–6š¶ÜÜ¹—+ō=Ż]čN™ųÄŻ;ōćšüKŽyœÓŽõ žüZßŃ£Ÿšį߯#8”å hąŒ/Ķ¢Łļąi;b¤ĪvįFG÷„Āżį#SŒ§¶„ā_!©« ćŻj¶ŖŸ#’ćŗvK¬“'ä—‚ą­ˆ+ ätŽuÆ|/'åQš ±p3®å.¦Ÿ²e75ę ²4“Y;¼ęč½ÉµM?CēĘÉ^·BCŹē¢Õóø6GQč€įˆŗ+KŲč\ķ¼O_é:ł²½SęéHæWmźōŻĄüZōźŃrĀš^{ė®(Äåbģ‹4œÅŁf‰ģh@1ĒĶjķELĘČĀn—ķ"X[ʶrī’cšĖŖv„īÜo…ĶŸz,ļ¹{Ļ“~³ļ–‡ÆŠ‡‚:šs“DŅ|†ĮšQŸŁÓpŠHń-«nÕdŽĻń ·×Y’Vņē˜ŲM–ŻņÅĪ-ŚBšdó”ŚĀŪ6žėóęWŻ*¢rō[ņģŽ¦łō9žąŖ€õ ā®öó¬ćü±ŽöŠ!Aåšµ÷­-Öę乜÷Š9kčŁ½#ųgEźĶĮŖųDQ•ėĮÅ1ł!]*ķ¶ÉøłžhæīŖĶ?śŪtTšžŃĘśø€éń“ÕMū–Œ~ó‡ŁŌūr˜õ{Ż[üP¤Øöpįāü,°=ųdåiż ¼ŅłYéšżęĒgūMķwžÄÓüüAńžž ß‘ž5õ…’~ė&*ł [÷»ż“8Qę¢ņ{ū)Ļ&š °¬2„ ä7‰>: Ų¾fJĻ ĶECVdĮĢ!bł¶ SżmŽŖ$ŚŪy#ž(a·…ø’,č•‘M‡0oqā{4öO©wp8}+µ d< Į”X@‹ ęĢ6MD ĆŲĖAH™  ä`!5L }šõ"*P§ ZüŠ$T. 7 &Xµ µ'\< ńJ)ū_Ć Ī+ß*ļcJ«7t,ägŃˆC .ŲkXfOž/ĶoßB[31Įsf gČ2µwķür]4©{tŚ~ņ5žū¶Š‡7’ƒ‚”–9‡‡ p¢±:{‹N®FćŠČP«.˜ÅćgŌå¬"œLäDąz® Óä"ģ° ¤Zåž÷¤±’§įåÜ:³ō«hęøĻ“čÆļę–d¶Ż³vēr'ł·Ń·żēP3޹Ż„č,?#»¹æ é Kø¼®Ć’éēVM¾¢ĒźÄbāæ—Ė ź”nwĮ‹Ļ'ė~z ĆÓ®ė[†”Ät×5ģ8’6ĘhŪ¼ģžĖĒ\ßCķņ©`ÉQćŹķϵõŹEēQī¬ĮŠĢ9ėŲī‰ĶĪ.ļ_ļgŁ“Ļ"óęļCåIŃ÷mš!ńŽŅ ūōšżüsŌ’ž{ńŪ Öōņ·ž×čŠņ• 3ŁÜ óq,ČŚŠ˜óO8]ÜÅō,Dņݹ¦ō P‡ß®-õę[ᢓõĆg±ā–";ö sFä‹&Āö}Ūå*I÷Z‹pēs.Š÷7—éh2Wų£šź\6Žųń®/ģP:ełĪŗÄķE>ģł¬ĘYļ9BsśˆŅīš-Fśśfރņ"JūBźōNü ö­õ RüüC÷’UżŚ ŲųóYż¶mśē]$ž”%üÜa«žq1—żŠe2’N=,’Åi¹’+IĮ¹m@UV­qĒå`ė¢uNĀl€–yÕŸxŠ}\|„ŖćY? s…j7œŌ h‰ńØi \xń³žP‘’Ķæ“D•†«Ė(9™ ‡×½-”ećR"”Aļē„¢ū| ©)ü’¬°Ł§ó°7 ¶<瓾 “*ŃÜøE p6f Š¼Ģ MBū!ÄĄS *N#¹ÄŚ Z%%­Ča äeŗ&”Ģč ĮqO(–Šo ž}ä)ŠŌö |‰y+Ų}X•-sÜ6”£.gą‹­80[äšøĶ1Pč™ĢÄb3Dģ ŖŠ÷49š§†ÜŒ6-ō.dč!8!ųµAō¶9ü<L; Äū į<žKŲv>óҵ# @ē Y’/ AŪąo;5CŠgLGŹDÄī)S_Føu_ōG­üćj‰I”#ƒĮvK–' ‚³LŠ+‘{ŽHN~/WšŻOr3Ÿ5¦rQg7&²S[;­|TP?4ĖÉ1VDC»©ÕĘW8GB†į[Y-KÉcķšZ!OP@ł…\S×^ W^ś°_žZå×Eaņ^l “(Śbēbó ‘4odŪfz!n@fĻj"KL™gÄnˆ"(X.iør#dĆj­v–#ćoXl”z$Ą{ķm•~¤$‡‚oŠ‚+%z“q~†²%WŸ¬rrŠ9&ĻDŪšĮóŁ­PpÅzډ\‘ƒÉŪghš’x͈ŪCt/”lŃÜ!€Ä•`Õ–Üż‹Y—TŁŻŪ—ī˜Iݤݸ£ƒš=į+Ž•Æœ2岎r»­&é9ßOĒBŸķĄß,Ó× ńGą ßl¢õĪąęź¤÷ųUįĆö–„ģüÜį ,§ądā}ĮØŌėāZVŖÉrć8&뫽 łć2€­±€äņ=ƦåĪIŖ°šŽå¬U?²ęˆaŌ³ƒ œęfmiµw$#ēByž¶k(Ŗē …“ø`,1运(ŗT0øčڜ½»I4?é·ØR½=8Ę锓ē¾1’ ejŪ­!žžf_ß4"ų©3hSć»"ÖµČiGēB#²Į]k;ėÉ#Ķņl0ļP$lهn$ó×$Jåp÷^%&ń±q ūå%Ÿ–ąŒ52 Ł|¢uŽ)6'ŚY® :®Ś6ŗŸ‘>5ŪĘ4“B¼ŪšŃɔūECÜĪŻ^–ļIŹÜŖéó—ćMQ݈õˆ™ŲQŲŻd›ĢU_ŽB ³œĮYęŽHžµ]mßü$ݟ©aōßŲ0r”e{ą¶<£’iį“Hœ¤†m‰įpT1¦{qāM`ʧou—ā*l[©cyćxšŖX}„ć䃅¬L,äĀ®A…³äž›ÆÆ5‰:å|§D±)ĮåX³Ł²‘Hę6æn“•Ļę˶™VēšÖ˜·ūœŻēĶā-¹ļ dčŖīĀŗć¤ė臶W¼ŲØrédķ½Ģ¬łéA‚æĄ°€źĮµ“ėū)¬Ā©øŽėŲ5Aĝ¼ģµAÖŒĄœģ“MkdžÄ#ķoYÉzČŖķMe•ŹoĢ1ī)q*ĢcŠøī}æĶXŌ?ļćˆTĻLŲĘļĮ”éŠ@ÜMš ~Ņ4ąŌš{¬Ō)ä[ńXøØÕčāń5Ä=×ģiņŠŅŲššņļŪgŚśówóĢēüŪļ÷žó©ó‘Żćū…ō†’&ß×’ õc ¼ąĢ”õ@QāĄö#ęć“ ¢öś.{å©)÷Ų:ē°÷“F„č‘7ų’R:ꆾųn^ĻėzEłLjdķo#Ģł(vłīc'Sś‚ŽšW+Śśā#ņK/aūĄ™øó@3čū„Mõ47oüz±āö);öüW½wų?}ż4É śCžÕ”ūG‹žīą6żśJ’ĖģĖžīN™’Øų`ćR …ö×V§c‹ĢZ.? Ą^µ(µ“b<ł3JØfĆ×?ß jJ³Kt ‘nŃ‘W †rXmcžzvßKo3nzf({Čc~ķ‡]W‚tā’ņK†ū枇@Š‚œŖ4Ž y¶±(’VĀF– 3ĪŪšž Śpž% ķå ś”¬ Źńš!ī„3 Øż/#㩺 „ Å$×­A bZ&Ė±Č >!ļ'æµO -„)“¹Ö ų8+ؽ]ÖD®,Įä²PC.‘Åk\Ų/…Éņmhm1zĶyJt3nŃ'€—4bՇŒ,6WŁį—Į7KŻ•¾£V9?ᛯė:4å£x»€<(é*UĒ>ķ±2ÓŖ?ń8ß?AõæķźŌBśųFÉöiDīüͧ’EāUƒ”GÖÜa)IĖc=&¾Jæ ź2SL“q÷=čMØųÕI}Oœ²UQ‘a§R… lmwĄO_(@ÅTĢä`DL 2ŲybHÓ ädLZ!ģļ£ełOį!Čū8gķSh"¦ĪhāWļ"‚cjÖ[v#`ųkĖ_ż#<+mæc„$7"o³g %÷B·pØk’%ŌNLrœo&LōzÄ¦ÓŁ)øŖZŚ „­®įŚä:’”²hŪĄ#Ļ“•¶ļŪž/d•ŠŗvÜz;ł–~¾żÜXGŽ˜sĀ„Ż4S#šgĘ Ž_ø›[Ź’ŽījMOĪßĢvāžDŅ ß©‚w 8Ö'ą†Ž ¢-Ś®ącš”£!Ž5į@¦6„ā¼į²Ė¦ ęCāś½`ØžéŹā×Éõ©ņķQć“Պ«ēńŲć‘į­Ūõ_änķ“®ĻłęäKłI°Äżmå)ß±øõåt³¬|ęć µ” ēæ(ž¶• Šē43øŠčy@ȹ~˜čWL]»ré3Xņ¼f¦éd‡¾[!-źīoĄO%“źĖ{±ĮD);먇FĆ8-Āė…“ŪÄ,1IģbŸpĘ!5Šģ?«Č9Wķ·šÉ =ŽķłĀ/Ėž@eīÖĪÄĢņDģī³ŚYĪęHsļęīĻŪLśļnņƒŃĻPšKžÓÄTń( ®ŌøXńCÖ¬\ņā!Ų×”`ņæ-mŁ•d$óœ9Ū‰h«óyE—Ü~l2ōVQ,Žrp¹ō3]Įßft@õiVį[xĒõītėāO|NöŹ€€äC€Õö،ę8„\÷„˜Ŗē,ˆć÷b¤?é!Œjų>°Ōźńų¼iģ ”xłųĒžķż—’łÖӓļņ›†ś³ß(ńęŸ ūė½ņŪ£”ūm÷RōϧüJčõĆ«¢ü'}÷øÆ)żł¬³°żį&§ś ·7ž¾2<ü•»¾ž›>Ńż‰æE’xJf’}ĆĢ’UVūrĒS3bfĖŚn%ZĻaķyŗOÓčɅOC×o§‘ä8Ūöƒy ,ß}a© ć>µ£ ē‹Į8 ėųĢĶżī™ÕŲbņņ ²ä÷ęö§šŒŚś.lü!ĻžµI·Ć=&L·Ä ᬠK ą+v Ņ ¾7 •Y šC  ‰ą xO5"}g T[Ź#qī 2g_%f"u sō&Z&ü ģ~‰(O*ƒ Ȋ*C. ¦–³+72‘ƒ¢H-,6`®Ż. :Ÿ=ŗr0>&Ę2 B­÷ќ3żE4ŌŻ15ńI»±éĘ6ęMBŽõ[8ŚQÉkń9ĪUPH †;ĆY×%=·]^%°>¬aåß0E@ el½<ŚA”ió™HoCˆmzwTE}qS`™Fquˆ1l.Hfy xĆIZ}–ėƒXKNȏķLC…¤„›‚N7‰+‚§P+²_³¬Q ‘9<æAS•ĄĖÖT™GöÖkVżœĪÓāXń Ufenrir/config/sound/default/StartOfScreen.wav000066400000000000000000000133201513650123000216200ustar00rootroot00000000000000RIFFČWAVEfmt (ž’€»ī  €Ŗ8›qfact data€€^„ƒ»4‡OŒŠuiŽŅƒ”‘/ž•Œøœ˜éŅ œFķ¤Ÿ£)£"­¦]<1ŖŗVµ­q9±t‹½“Ń„Aø.ĄÅ»‹ŚIæčōĶĀERĘ¢)ÖÉ’CZĶ\^ŽŠ¹xbŌ“ę×s­jŪŠĒīŽ-ārāŠüöåē{éD1’ģ”Kƒšžeō[€‹÷øšūµ“žrĻĻé›, ‰¤ ę8(CS¬ m0ż‡“Z¢8·¼¼!×@%qńÄ(Ī I,+&Ķ/ˆ@Q3åZÕ6BuY:ŸŻ=ü©aAYÄåD¶ŽiHłķKprOĶ-öR*HzV‡bžYä|‚]A—až±ŠdūĖhXę’kµo›ro5vĢO£y)j'}ˆ„«€åž/„B¹³‡ŸÓ7‹üķ»ŽY@’¶"ĕ=H™pW̜ĶqP *ŒŌ£‡¦X§åĄÜŖBŪ`®Ÿõä±üiµY*ķø¶Dq¼_õæpyyĆĶ“żĘ*®Ź‡ČĪäā‰ŃAż ՞’Ųū1ÜXLšßµfぢęo›&źĢµŖķ)Š.ń†ź²ōć7ų@»ū9?’śSĆWnG“ˆĖ £O n½ÓĖ×W(ņŪ… `ā&ä?Ah"œ[ģ%łup)Vō,³Ŗx0Åü3m߀7Źł;'‰>„. BįH‘E>cI›}™Lų—PU²”S²Ģ%Wē©Zl.^ɲa&66eƒPŗhąj>l=…ĀošŸFs÷¹ŹvTŌNz±īŅ} Wm#Ū„Ź=_ˆ'X拄rgįŒė’>§o–›Įó™ųŪwUöū ²€¤+ØlEˆ«É_ Æ&z²ƒ”¶ą®˜¹=ɽšć Ą÷ż$ÄT©Ē±2-ĖM±Īkg5Ņȁ¹Õ%œ=Ł‚¶ĮÜߊEą<ėÉć™NēöŅźS:Vī°TŚń o^õj‰āųĒ£fü$¾ź’ŲnŽņņ; w ˜'ū õAR\Æv‡ ‘ i«ĘÅ##ą—&€ś*Ż -:/$1—IØ4ōc,8Q~°;®˜4? ³øBhĶvwŪXśz8s~~—‚ō§†…QĀ ‰®ÜŽŒ ÷h—“Å+—"FŸš`#žÜz§”9•+„–ÆÆØóÉ3¬Pä·Æ­ž;³ Ą¶g3DŗÄMȽ!hLĮ~‚ŠÄۜTČ8·ŲĖ•Ń\ĻņėąŅOeÖ¬ éŁ ;mŻfUńąĆouä Šłē}¤}ėŚ¾ļ7Ł…ņ”ó öń ŽłO(ż¬B– ]fwžƑ" ¬¦}Ę*Śą®7ū2”·ń/; NJæ#«dC'Ē*e™K.³Ļ1ĪS5|č×8Ł\<6ą?“7dCšQčFMllJŖ†šM”tQd»ųTĮÕ|Xš\{ …_Ų$ c5?f’Yjļs•mLŽq©ØtĆ!xcŻ„{Ą÷)®‚|,2†ŁF¶‰6a:“{¾š•B”M°Ę—ŖŹJ›åĪžd’R¢Įׄ4[©{N߬Ųhc°5ƒē³’k·ļ·ļŗLŅs¾©ģ÷Į|Åc!ÉĄ;„ĢVŠzpŒÓ׊×4„”Ś‘æŽīٜįKō 娄č))ģbC­ļæ]1óxµöy’9śÖ¬½ż3ĒAįÅķūIJĪ §0RKÖaeZ¾Žšbx“ę ÕĪj$2éī's+ģ÷.I8{2¦R’5mƒ9`‡=½”‹@¼Dw֓GŌšK1 œNŽ% Rė?¤UHZ(Y„t¬\0`_©“c¼Ć8g޼jvų@nÓÅq0-IuGĶxźaQ|G|Õ¦–Yƒ±Ż†`Ėaнååj‘wī”Ō4r˜1Oö›ŽizŸėƒž¢Hž‚¦„øŖӊ­_ķ±¼““"øv<›»ÓVæ0q£Ā‹'Ęź„«ÉGĄ/ͤڳŠõ7Ō^¼×»)@ŪDÄŽu^HāŅxĢå/“P錭ŌģéĒXšFāÜó£ü`÷åś]1ižŗKķfqt€õњy .µż‹ĻčéEŠ¢’8’!\S%¹mš(ˆ,s¢¢/м&3-×Ŗ6Šń.:ē ³=D&7A”@»DžZ?H[uĆK¹GOŖĖRsÄOVŠŽÓY-łW]ŠÜ`ē-`dDHäg”bhkž|ģn[—prø±ōuĢxyręü|с€.„‹5‰‡čO ‹Ej‘Ž¢„’’ž™•\¹™¹Ó”œī% sŖ£Š".§-=²ŖŠW6®ēqŗ±DŒ>µ”¦ĀøžĄF¼[ŪŹæøõNĆÓĘr*WŹĻDŪĶ,__щyćŌę“gŲC®ėŪ ČoßżāóāZżwę·üé2€ķqLńĪfˆō+ ųˆ›ūåµ’BИŸźü” Y% ¶9©T-pn±͈5*£¹‡½="ä×Į%AņE)ž Ź,ū&N0XAŅ3µ[V7vŚ:o^>ĢŖāA)ÅfE†ßźHćłnL@óO.wSśHūVWcZ“}^˜‡an² eĖĢh(ēl…˜oās?6 vœP$złjØ}X…,µŸ°„ŗ4ˆoŌø‹Ģī<) Į’†#E–ć=ə@XMrŃ śŒU¤W§Ł§“Į]«Üį®nöe²Ėźµ(+n¹…Eņ¼ā_vĄ?zśĆœ”~Ēł®ĖVɆγć ŅžŽÕmŁŹ2—Ü'Mą„gŸćį#ē>œ§ź›¶+īųŠÆńUė3õ²øų <ül:Ą’ÉTD&oČƒ‰L ą£Š =¾TšŲŲ÷ņ\T į±'eBé"k\m&Čvń)%‘u-‚«ł0ßÅ}4<ą8™ś…;ö ?S/ŽB°IF d–Ij~MǘžP$³"TĶ¦WŽē*[;Æ^˜3bõ6·eRQ;iÆkæl †Cpi ĒsĘŗKw#ÕĻz€ļS~ß Ų<$\…™>ąˆöXdŒSs菰l“ Øš–jĀtšĒÜų%÷|”‚„ß+…ØžČĀ`āF½üŹO w1ÓŌKW1fŪŽ€_ėšćHµg!„Ļė$źo(_ō+¼x/9ü2vS€6Óm:0ˆˆ=¢ A꼐DG×H¤ń˜K O^&”R»@%V[©Yuu-]Ņ±`/Ŗ5dŒÄ¹géŽ=kFłĮn£Fr.Źu]HNyŗbŅ|}V€v—ŚƒÓ±^‡0ĢāŠęfŽźė‘Go•¤5ó˜Pwœ^jūŸ»„£Ÿ§u¹‡ŖŅÓ ®/ī±Œµé"˜øF=¼£W ær$Ć]ŒØĘŗ¦,ŹĮ°ĶtŪ4ŃŃõøŌ.=Ų‹*ĮŪčDEßE_Éā¢yMę’“Ńé\®Uķ¹ČŁšć]ōsżį÷Šfū-2źžŠLnēfņDv ”›ś žµ~[Šøź† rĻ9",T—%‰n)戟,C£#0 ½§3ż×+7ZņÆ:· 4>'øAqA‘ß>›«cBųÅēEVąkI³śļLtPm/ųSŹI|W'd[„~„^į˜b>³Œe›Ķiųē”lUp²s7!wlQ„zÉk)~(†­… 1…āŗµˆ?Õ9Œœļ½ł B“V$ʖ³>JšYĪmsR”ŹÖ¤'ØZØ„ĀŽ«įÜbÆ>÷ę²›k¶ų+ļ¹UFs½²`÷Ą{{Äl•’ĒÉÆƒĖ&Źσä‹ŅąžÖ=”Łš3Ż÷MœąTh 䱂¤ē(ėk·¬īČŃ0ņ%ģ“õ‚9łß ½ü<;A™UÅöoISŠĶ °¤Q æÕjŁYĒóŻ$b(ęŽBj#;]ī&˜wr*õ‘ö-R¬z1ÆĘž4 į‚8iū<Ę‹?#0C€J“FŻdJ:›M—™Qō³£TQĪ'X®č«[ 0_h“bÅ78f"R¼il@m܆Äp9”Ht–»ĢwóÕP{PšŌ~Æ Y‚ %Ż…i?a‰ĘYåŒ#ti€Žķ“ŻØq—:Ćõš—Żyžō÷ż”Q‚„®,© GЬha°Å{’³"–·°šŗÜʾ9å¢Į–’&Åó«ČP4/Ģ­N³Ļ i7Ógƒ»Öĝ?Ś!øĆŻ~ŅGįŪģĖä8Pč•!Ōėņ;XļOVÜņ¬p`ö ‹äłf„hżĆæģ Śp}ōōŚy 7)ż”Cń]Nx‰«’ ­‘ eĒ$Āį™'ü+|¢.Ł0&26KŖ5“e.9š²GdéĀJĮGNĖQ{8OUŲRÓX5mW\’‡Ū_ļ”_cL¼ćf©Ögjńėmc pqĄ%ōt@xxzZü{×t€6ƒ“©ˆ†šĆ ŠMސŖų‘™”d-˜ĀG”›b%Ÿ||©¢Ł–-¦6±±©“Ė5­šå¹°M>“ŖĀ·5F»dOʾĮiNĀ„ŅÅ{žVÉŲøŚĢ5Ó^Š’ķāÓļg×L"ėŚ©\£A¹½EŲ•HsņLŠ žO-'"SŠA¦Vē[*ZDv®]”2ažŖ¶d[Å:høß¾kśBorĒrĻ.Kv,IĻy‰cS}č}׀E˜[„¢²ß‡’Ģc‹\ēēŽ¹l’š•s6t™ŠPųœ-k| Š…¤ēŸ„§Dŗ«”Ԍ®žī²[ •µø#¹>¼rX!ĄĻr„Ć,)lj§­ŹęĮ1ĪCܵѠö9Õż¾ŲZ+BÜ·EĘß`JćqzĪęĪ”Rź,ÆÖķ‰ÉZńęćŽōCžbų ēūż2k’ZMļ·gs‚÷ qœ{ ζ’+уˆėåŒB Ÿ:”"üT&Yoœ)¶‰ -¤¤0p¾(4ĶŲ¬7*ó0;‡ µ>ä'9BAB½Ež\AIūvÅLX‘IPµ«ĶSĘQWoąÕZĢśY^)Ža†/bećIęh@djl~īoś˜rsW³öv“Ķzzčž}pƒĶ…*7‹ˆ‡QŒäk“A†“ž ›–ūŗšXÕ£µļ'” ¬¤o$0ØĢ>“«)Y8Ɔs¼²ć@¶@ØÄ¹ĀH½śÜĢĄW÷PÄ“ÕĒ,YĖnFŻĪĖ`aŅ({åՅ•iŁāÆķÜ?ŹqąœäõćłžyēVžź³3‚īNņmhŠõŹ‚ł'’ü„·įњ>웣 ų 'U;«²U/p³lŠ7ɤ»&æ?#ƒŁĆ&ąóG*=Ģ-š(P1÷BŌ4T]X8±wÜ;’`?k¬äBČĘhF%įģI‚ūpMßõP<0yT™JżWöd[S_°™‰b “ fjĪ‘iĒčm$šptŽ7¢w;R&{˜lŖ~÷†.‚T”²…±»6‰ÖŗŒkš>Č Ɠ%%G—‚?˚ßYOžż <ĀhVFÅpŹ"‹N „ŅÜæV9ŚŚ–ō^óćP)g ­Cė# ^o'gxó*Ēw.!­ū1~Ē5Ūį98ü‡<– @ó0Cfenrir/config/sound/default/barrier.wav000066400000000000000000001076201513650123000205330ustar00rootroot00000000000000RIFFˆWAVEfmt "VˆXdatad ģ’ė’ņ’š’ż’ż’Ś’Ś’ų’ų’[\‰’ˆ’}}µ’·’~’~’µ“·¶<’<’L’M’¶µ12ĻžĻžł’ų’““::’ž‘žPN0/©žØžmžmžzz&(œžžžö’õ’Ų×c’b’)ž+ž‘ŌŌŲž×žė’ė’VWä’å’©’Ø’HFy’v’×’Ż’luužpžśźÉÉ$’6’Ŗ°ńžåž’‡’æĆS’V’TžRž65 ’’_ž_ž¾Å†ƒ–ū„ū¬Ŗc„DłVł­ō’Ę’™ų¾ųINCśCśČ’,÷R÷! Ž’s’oüdü|p’Ńü żäļ…ž*žIżż:‡Ÿūü8’„ž¬”#E¤¢Ģūńūf¾—żbżŠ¶’zhż2ž<ųäųd5æļsīR Ü ‰ŽšŽš‡ķŖźüéĶé‹īū„ū÷ögó;ó"ž"óēfč‚j[śĆŲzŲ5F“  6üŠü'ļµ÷÷nī4ī¤2ńnēē–z¢žgž}›'÷īś+śśūĢśš@š±ā;ś¦śļ3ī$R Ķ’=³©[Pöh6R I üXüėŠź½ł<łB‰Ż ¬ üļŒīć ’T¾›ö_ųF  ńųĖöTūüqĄAļ¬ļgķxūlūÄŅĘyü­ś ā 1Ę·’¼’dķęė!W+ ¤øFūśŽ’>¦ņ ńaŸ ÕÜć üŃśßHŻļó eå#‰%ņŹļŽŗ7&ž2žG  …•8ī~’’ŠłłW, ü8’žRųœ÷:SčŲmüūóžń°ż\ž×Ļ4ń±špžœ)ČśūOł˜ųķłßųc’ } ś ĮµÖųU÷ņtńœżŽždJdFžsżóž÷žRž’TŌ8^śłoüēū2’i’Ŗr9÷ģ÷ĀĶ}ēčż4ż¦Q;V ü Óō‚õ§ó§óƒłŸų,g®"’üžņ)żü.¬Uūüäž©’ĻI³Rõ=õĻóīóĆ›‹…µ5=õõ*śĄłg’ŽūīūB䲞õžårŠ÷žöÕżŲż…ūü‹+‰™Ēüü#’DŹū˜üØ÷šų @+~’’sžŅĖ»žżŗżĢõČõ‰¾ žVžļü×ü ‘ ÓƒŗõöÓłFś½ » "Õā’Ų’Åśõś=ų,ųÓ€”½ž=’(žCžR­V®Ōņ ó2Ś}ŲšłÆų PµöÓöX÷7ų ’ Yo„÷Ööjłoų%Śś»ś— ” =łĀł³ž9ž­ 6’Œ’ųjłĘ M 1žž#üĀūtĒ|Vų4ųC?ćµüżÆųJųŗ  ŒZ’öx÷Š?éŅé§§žÆžų"ų©`V  @ųÆųÖł‡śb K 3ße8öµöū•gRĀš÷ ųņ5ņ Č Æa1—žköö!@’mżZżeüdżĶ’•³żQżæÄ†żżöų5łĆžT’T Ī ŸśĆśqō%ō<½8£’Ł’Õ“žæžÕłøłüōQaßć’’?ū:ūMżZż¬ ¼ м7żżü!ūłśÉ’ém„śĒśĢpąū:ūEūū{Īiš¼’ĮōØō’*ś’‘’«£žł śÖü@ż¶ż¬ż‰6łŅšöėö¬’x’ņüÕüDĶŹü¦ż]žfžˆgŌÅ’œüįü;cĆłaść’Š’^Ü`łOłćõ8  ™sĮńąńĶüż·×:\m‰*üńūŪ’O’-撐ō™ū:üŃ’žµżÆłLłH4hŒq’’ėö÷|’}’ŚŹn_mVžéżžžTūūoņsĮ’Óžņ=[ūŪś£¾`ūł¢łüHüń¦cŽž°żÜ­åż’ż&śšśĘ’k‹Łržśż7żYü‚’%’XŲ‰D -ųł÷ÕūPūBZŅqĆ;0’ņžĻüü¬ł?ł‚Ö’6%żcż’śøś™KZż}żEHśõłåžßž…’„’ėūü@/[/8ū4ū`’”’ŻćżĀżQžéżöż¼żĢžōž¾ łĘłWo9žKžõśĖśš~3ģI’Ž’ŗ÷BųaŽĖ³ųkų8?Ėżöżl}N G łńųķżĀż’Ļ…żšżÓJĒDéśÓśA”’¾śżóżBüÓü˜ƒ’Æ’.’’ć’¶’”2ķ^EžDž±żuž.üėü·ž»ž„ļ’ ‰’iŅčöM÷SżüüÆņüĄż—ż"żėīĻ  iųÜųūŠūuž@ž€żüYRĢžĮ’Ž'AVy’Ūž‘Ļ’'’‡żßż@ń%ō4ō1ž5ž9 + Œ¹’¬ž¹žłśąūģ÷ł÷5-Į ŗ ŽüŲś¦śĶńuń’¼ž· w MS×ū%ūķ”ģ] Ȑ6łĪłźõüöśžŁż‚‹tC :õ’ĆügüÕžµ’aü ü@’7’Ļ%Ŗ‹šūwūŚ7I’ī’`f›YQóQóˆü—ü»Õ°ż+ž«ę(uŪśŁś”üżü/£z  j~mśÕśØ’v’üOūQ—HęŪš’\=ųŚųų¼÷ųļƞČū(ū®X¶&„½’Y±’5ųóö°ČījĢżżtĀ"<Ņś‚śüqüŻįÉ’š’Ŗ’~IŚćū“śZüdüÜžŚž_’Ņžu 4å'żQüŅm½żéżYū)ūöŸ+ˆżfü_żŽż…~rō’š¬rśNśżżüšöÆü/üż?żÉž¤žśż…¤«V€žIž!ĀŌżÖż!ü_üœūüÕük7Ü’Cośbś”UGx9’'’4’N’%’†žÕžāž£e=“s÷’¬AÉż„żŻ­Ņ@ćž”žKüTüh½ž‚žøžxžHžöż”żž-žą[ĄāŌ¢–}1’ōžÕżøżœŸžžW’™’µćą’Ō’–’’£żż”ü©ü\ŒH?9Œ¹ūˆūČ)/ģżĻż–ż³ż;Ī*’’yžDžÜž’HŻ’¤ž>žg†Œ›vžƒżŒžSž˜Üƒw[Pђ璘ūXūR)ų–’¹’­’ż’f]˜z'ŒÄžŅž¬žUžć’ü’ĪžöžŹŪĮ×Ŗž“ż‡§°¦Ķ§.R-ū8ū±ż„żslfµø’ĘŲzN¤üiü ’żžĢ0^ž¦ž2ž žhM±~ž+šāpœäüęüzżØż®ĪŸw¤’›’su9sš’a’]oIžžÅüÆüe’m’åßÅ ½ k’R’Ēż§żUżSżįžĀžI=÷ixŗ¶žNžųż›żT’i’ąH–üäür9vż^żW’«’T2äqX@Iüiü žćžĢÖn ęüģümżšż¢B ś³’4sü®üūžłžŹ’ūž£žˆŃ\Ī„žVž žčż!.¶’†’­ž¦žĖż•że’†’P]ųĒ*oś™ś`÷nżŃeśŲś ŒģżÉżREXSźžśžµ`ēż±ż½žT’a’¶’°ż=żZė8śū'üĆ’ "Äž’ęÄ<ŲÕ³żDż¾Nż‰ż“ V­lā]nģž3’óū8ü}vM’ ’E YžCžō’ p¤)žaž„™4éŃR\9sø:üü–…~ųüåüʬīŌž½žIžĆžtüŸüfd3ņžłž:79ž.ž•’Ø’“’æ’ɰB­—’E’Hū°ūtžĻž2 żF’N’ūūļæ䣁Ł=’Ģ’Oū/ū“:Œtš™Y’‘’jš\žOžĪ’ē’‘ˆlż;ż3§ž žždžŃC’Z’ēž”žćŽŪ’’’füžü,ż—żĘ~j#­’ūŻūšžžžĀ :’(’5ūŠū~褒±v4|ü²ü{†“’5’KüüĄž’Ń’Ź’±óĒōłõłŽńÆ ‡ ĪŠčü6żˆ’Ē’jś!ś¾ĘŒ’ō’ćś*ūŲŚ„ū†ūģžL’ŹNÉ’‰<hżÅżéó%ōå‰#m’Ėūoū-żpżMų:ųVÜŽ‡5ś7ś°_žbž5'ŠÆūFüøĢ²’Ē’P`„bė.ż›ż…®ūąśßgp'Ēüü »D÷A÷-ś‘śŲżÆżq_ <’]’Õų#ł<!}}t›ĀööpU§ū0ü*üĶüźķvż^ż®śJūȧꔎū_ū>÷÷’żćżh sD©ū¤ū0’«ž<’Įž¦’µ’^’S’hiŚ’,…śšś”üż 9   Ŗū)ü’zµ½™ØŁżÓżQü%üMÖ’ųü%üŽł¶ł «ż#żŽż%żļ%#“Ø)EŽśćśōBźŚ$’辝   ź’·’2żGżZ÷Ź÷łłā» ž„žBłĻų&5±ųž=’Ē L$üÅūõõWö™ūŌūÖwż¢żķöķö9öÅõ; “°ĢįüĢüzśFūvųøųµ’Š’ģžĆžÉ  4Ž’)lžéžßl] Ā ō÷ ųqf=ʧü8ü[ś§śAż„żBRi’¾ž$ł’ų{\Üū…ūž°ż=žķö8÷„Grüžū`X¬|ö÷FčhķjgĮ„>Ī’Żžćžŗ’æ2\•gų±÷ęĄuū’<’éž ’ż7żsbż’ük@¹tš’©’nūüL '™ŁūńRżžüöļŽ’0Ųū-ü’5’Y’9’’żž“Ś»žRžudĻųłŸżŠżYZš’ŗ’įČjł»Ÿ†ūęūIųŹų“ūŃ»åž’Å’;מžžs%°üøü’S’@ų­ųcłkłžĪ€' XRūģśĮņ|ė’Ė’£0!¾’Ś“j”üüü¹žP’Ŗ‰üšūŻ.Ģ’„÷æ÷_‹'@ųgöJö²÷Ą÷`TČüżnü1żĢDb’-’Āmž`ža’i’æē`Zi’3’sü9ü ūĻśžüuülrFīž’nüsü(łłŠ’ ’«¬f’ą’īV>üüqśśÆ’‹’A¤ģ%6ū’*žźżĆWT£’Ē’ö’D¼Å¹u›’r’J’ ’ų’„’P‹’¹żóżŠ’Š’žŹżÓ’ž’0{:w ’ņžż9żIR«f_H`N~ü]ü‹’Ę’l·q ÷Šżéż|ü–üŖŽE’D|Ą#żfż˜q²žžže_æžÅž&Ś„żzżž+’ż4żž¤żm’ņžeżŸż8’~’ˆĪ’ß’­žŁžžp©_TKćüż?(żMżāx=Ņš’§¾ÆżļżżOżO97’śž+üńżéżĀąæ’ń’kžŸžŪå:įiń’»¬¦’ō’qüÆü]mM’D’ÅżÆżrSŁÄæž’ž¢żž_żrżĪė’͒ՒŽž÷żä’ż’ƒ’­’’båG‡žVžLūĆūV’œ’s ’¦ż°żhüfüŠN¾’Œ’H»æż:ž‚üFüµõ†p’®’x›Čż¼ż±Ķ§’’Ųż²żų’!Ąž„žß°r±ļžļž~’'’°īž°žKüžü¬żž4ÕR(,‰÷ś,ūüqFbżjżüŹü„čŒ‹e.<żqżČæÄž7ž[ü3üP’¬’ ’}’ąy®¾łÄł/>Č  ¢pƒżćżœžĮžū4ū & güŃüQżŽżśŃś½śŖ&}čs’’`ēłQś³öÖö" ­ rż»üżüĄüČūüƒłRł/æ×į”ū’ū<źĄü üņ:M‘üżĘĪŸ’¼’IMK.æĪżIžf|ßł—ł€į„Žž[ž³MMöhö?ū›ūŸžWžp‡HÄż÷żył¼ł)żō~"śż÷żč÷`÷%+™ł4śÖžj’µ—’»žöüpż‡ś ūp6&Ü>ųųóųÉųBž#žSõ’óūįūm’Öž`’żžQ’g’cOŽ›žqž—śūĪżFž> L BCĪū^ü„ ±“wˆ”ü”ü żķüTĘ’źūūŽś’ś¦1Üūāū“’’z ¦ķ†ūŸ§žP’Įūü9€’’m’vF žžWžāüżNö“öūėś4żķüŲłhłÉśŁP¹’ų’ŽŹĪ„涝śĒõ<ö„ż”żØx—üĢü’õxõĒųIų _ EāüżIłśŪłżł™’o’E, ė öžF’ŖDż˜ż ˜¬€÷÷šŲ^Ųü®ūośÓśāż1ž<ŻŻEüÆūxūbūÓ¦ĆūsūČ‚śū9łlłZ IüŪūś ‚Ūöb÷”I%•ļ0ņl+[’%’(’=’g’¼’KČÉžēžÖųė÷Æ…ć‡/’Y’āżžążõż% dżIżßŖ]Ęž’ž1śīśĘńuDnu1 ž³żÉĒŸžóžIū¶ū ;zž3ž-{ćVž¹żņ)õ…õx’ø’ˆ’Æ’ Ę®dūsކųØųÜų—łJī žYžˆ(ž»żw½C©ūĶūŻže’8ó°óFś/śo'’…“¤łNłÆśw=DüjżŸˆ½>–Nł–łĢMē†tż-ü©•ū“ś¼õŽõYĘF*“ķŁķ™ņžņā’¶’śū‰üµūķü’®’†’,’}üÉūā’ ?ÖØżFż$ūąśWųč÷ūøś‰ÆŽ@ƒžįž©łÄłõŃōĮ‰„šž(’Å–ö†ö,ų‚÷;’Éž;@pŚońĒņ£ż¢żżśüTŌ’‹ż"żų+ž[žeŒxMćy±’†ž„žEÖJÓCŅžĶžŽśbś‹t ƒ ŗ¹’Ū’ś‚śÆž„žĒQ Ē“f®łĒłb±?F<w’…’+ś"ś÷ĢśöhżfżĖłŠłzŠōĒżÓüUe$ų<ųėśūŻž0HµżŚżŽłķł&õ õMüGüłżw~{¹öłś/żĪü'Ō\ł@ł« ’g’#üTüĮ÷·÷%žžüµū±’n’§é)ž’žƒü—üŌżŠż­ž žlśųłŒo.g ü²üŚjI%¶żJżeYūwū”6ž–£˜ü`ü½ś!ś+ Jł ×0•łŃłŃs ŃųzųGž7žå’U·’U™Yś­śd7hūąś÷iČ"üRü8 _ Ģų°ų¦śś–_;~Wś’śś|ś™ Ę tśźł…šŁ§ öžõkūœūņŽ=‚üBü^ų_ųVžfžŹ2ž’ÆT’Ō’V’t’Õ’ņü»ü ł8ł”² ųšk’µ/ģ’½˜Nö)öeS 4 ƒūœū‡ż’ż„v\2ślśPe2E ż*żśłOś*Ō łtłĘ¦z’;’šłzłśüüüÖ÷÷ ł ‹ųSų"ŗĀųU’zž˜…+ĮēüŠżœ' Bšł±łģö®ö÷‡“[€Źmõs÷Žö¦žóż$ļõżNžCüo6üOłĆų«A£y(ūjū£4±žż€żożżĆGņS“”Ņ&3ūTū~ž_žžżZż#–•÷P-»ü®ü:8NųKų]xPümüŚųĒųśŌÓŸ°Cƒś.ś÷ŒÄłQłą’Ą’ŁżFžPżŪż9žli[kśÜłžńż+’¶’o’Ī’P 9 ņqś0łŽś,ś· ³ jšŪłĘś”]šųĻųĒž>ž|6Jü;üśHGĒœæ„lŖū(ūłž%žųĒ÷›Eāœ „ /¹ō7ōežéżPNņ”±6…ŗśƒś¶ż2ż “ Ęś\ś4üküt…ż™żQxū^ū©ūÆūö÷ī÷{ : )Ęõ`ö$€’ųżč1üäżnū|żÄūĘū‡-ö ™ ŗż“žåŲų÷é T WūDż/Ī"©ü{śeżQżTōŁõJ½ēż’žĪzR gęT{śņśCū”ü 8 ¢ Åłžųcƒ›ó?ó9śåųL’”’Äuˆšf÷åö ?œ¬ ‡’0žžÄ+ĀūāśżžŃYużÄųKśŚTmŌ ~sż„ųmū ’` ˜“"ūšüIų¼öĄž±śŅžŚ+Äī"¦¼’÷ż¬’Jūož–ū.Ę ’‡ż~õõ ż P¬8É[püŚłĒūźż4ż"’’§żņjŽ‘üĆžA’‰’÷ĶF’Čž÷éūȜȳɜ2łĄųxü«ż0eĄŠĮ0ķ÷žŌż˜ž×żožÄü3=>IžųūÅų÷\üē‰ż hü¦ū†’ģ[’ńēyī’ł’7śÖųu’Ā7Ū—żü_ß: øżü<üćūjū©Ņ’Sūéi »ūEüMżXżH—X|ż¢õĀ÷b’užuŅXū ’ų Ė Zųś”’}ž+'ÅżżöīYī%2śū>’z’¤ • ūņ„ńŽÆ  ‰½Ą3ä2ųĆł'˜ üųčž}’,ŲLÖ£d†ć?óqōžž_UņØö™õˆöėģż®ó°š0üäžÓõłŗäž¶Åńāļ?žöl ™ ś}¤ö½õ8÷ųCōōZˆ’%’ś’żåū4’]ūQ÷ƒś‰żąż ’›ż8žGüWś®üV‘—$®ōśļ\ņ³÷ł“ų¾¶ śb Œ÷@ų4ż¢ö¶ņ·öy[ /’Dügśżśˆ!e0 \ ōA Ņ’š“D Ą }Óös÷„ļŸw ā×įœ×āõōröxōˆō9ōõtõŌ!b% ±.ž„’«÷Ų \ę’åVęŁę•!hļŒģŗ,Ć(pš’ Ą)W.”!%¹» ÷’Ü6c5šČäHÖŻ!6­ś‹÷Žģyė]üÜż°  ŹŠł·ūČ ö ąŌĢÓEĻįĶĢĀŹʓĀ܄Ś[ė\é“å§ä}ŪÜ*źIģƒ.¾ćŠä«å„ŹŁŹģą~ąŃćķķģÅēĢę»ŽķŻŠāéįlųŌ÷J­:«2 Ę ėšēšõŁõŠF§Æłüū{’aósŅHŅ+ųöZ!õņĶž…ż”¬.ń’šÆ(ŗ36œ~ € 1}āž_żŲ+q)-”,L,Ē*!)RņVņNiR”X I Ō{T$ā#3ō¢ōa÷+÷4ū0żž“$t&/’%žbŲ@×Jč,źHļqļ‚ 8ļAļ ]i’ŠžÕŪ³ŚćõDųŽėāģėźéĒ#ŽwččÓēŹ ģ}ģ ņžņ7ę7 W ÄėÆž±žæŽ†Žzč(ēŌŚ”ŁøŲėŲņO¼+¶+é‹„ń}ņϾéĻgϲs?==ļ÷īo¹@Īcķéķmć„ć™äSäŽ×BééPéń|(ü¦+;,©ž’’eį¹āŸū3üӍl¹² Ü ~€ėńń įõį¹ µ ļū_üóóńń?äähūķśļņRņ6ļ·īlOz]ī[ļ¦źĻėhö¹õōõõŚ""Łšņļßō ō°ā‡=vłBś/ ø īWF ˆ óÉžžwģČČmż’®’’צŲķŹķ8żäž¾O’šķ?ī÷ī‹&h „:ņvņėBźäōŁōžŠ‰Øg+ó‰ń›ßŻ*źæčA _ .’śžlŽüŽÅõŠ÷£ („żž}ü}¬OØ3÷ķöEõPōlś2ūĮ¶üümD, õ Æī ļ±šóļņéņž—óö)śųr ø{sķõ“>Š© 4CXæ a bś6üōüēüżū¦“] ł•öģī|ńköŹō{žm  bų‡ų ļłķń¤Ģ`õįód¢żß’hžsż1’t’!ųŒü¬śŖ÷ć żCż.śŲł2 EżŪłmīßļ†÷Čö§ + ­óÄ £ūEżŠ£hÖ šłŲųŠķŲģĶĀłøł üQüń-§ģ¢ėI’±žž Õ   ° Ł ędˆūŪüS ƒH!ėžŠ’lŻĪŪ&AhŻ ˜ō³õŲüPńõöčö'! 0ü•ńøīūæżłõ*łBmžždņ š&žöƒ ³ Ž`®öČõ-÷ųPō"ō` ’’ ż įū1’ž’WūQ÷ŠśżÜż£’£żŠ2žDü[ś²ü\••”ōńļbņ¼÷$ł”ųĢÉ įN •÷?ų+żö»ņĀö„_ ’7ürśūŠ#_9c,å+ Ü’‘¬Rµ tŌöp÷£oH "āŻį«ēŠõņóöˆōxō)ō;õ’õß!o%ń •3ž…’±÷× 3ęlå~ęē †ļ¦ģČ,Ó(Kv’ĪńŽ)I.ž!—%ØØ ŖÓ6[5ā½Ł<Ż ę!>ƒś`÷ńģė[üŻż*Å ņ ²—łÄū¹ å ¾ŌØÓSĻķĶ Ģ³Ź*ʝďܓŚ`ėaé©åä|ŪÜBźcģI”Ęläå ŹŅŹį¢ąÓ ŠķŚģĘēĪę°ŽāŻœāūįvųÜ÷[¾A² ¬ ąšŻš0õéõē]x‘®łśūœ.ĮcŅ7Ņ]ųFöMõņ澜ż‘/ńńßY£3x6ƒ “ b’żŽ+w)Å,o,š*ó(KņOņj…?€b T ā‰D$Ō#ō}ō‰÷R÷+ņ,żž­$Ž&ļžāżsŲT×@č#źmļ“ļu”2ļ>ļ' rE’džÓŪ³Ś÷õZųvėČģė6éŽ;ČaŚčÅēļµĒė<ģbņUóM708© p RwažbžŽēŻ£ēJę5Łõ×ŗÖļÖ@ #..FöĄšÆńpfūĖwĖĀw‚BFB–ķ|ķm’ bėųėåą%įTß ßŠ ±¬ÄåÜä˜ä$P263Źž ‡Ü¶Żwū'üµŖ‡"æ!1łĖ’#Ö"źź ŚIŪ ( Öłīś!šĖš”ķ™ķ;߈ŽĮłŖų7ļ0īééü"$#@ź1ėä˜åē%y&Sķ$ķēō ō/Ž-Ļļ­ī^ņĀńÓōÖ§ õ)ö—īoآҒ9#%"æśąłu"/"* +—üŖż|ž¾’aĆMÄłŽ'ߎų*ųnż üGē«ååŁćˆ‡!"~ī7ķļiÜūŻ1ģķ1–„€)ņ'DčÄęžĆ ĆiŲBŲ™/5’6›Č‘ÉļŸļ“Õ Q u%Š$Č’b’„G8’8ŃķÜīĶą»į¬ļš~üŅų|÷t§šķ}ŁŽŲ»ęėę™čļéī åź'ķDļóšŠeŅ#"#/yŹ ” "ß"Å!˜ ’ Ė»[ŅÆźģšżšĘ’ē’ąYM7y6–źēéøŌŠŌ+Ż—ŻVō.õ¤!"óę\ēZŌŌ£<&²$śß…ŽėØźÜž’øīI6 ĀīŠšŽźģ˜Ź;š“īu’_żGļmķÕÓÉŅ8Ś<ڶ&¶'ļƒ“į)ć7 J ż?œóó<ę-åęźäŗž×ņĄņŃé_źćäKĘ4ĒÅēHčEų+ų°$ū#D/..'ß.u0d0Šh µĘ:71sŃīŃõŲāŪį>ŽOŻ`ünū ÖjÕ ŲĢ×u½ˆ½ÄŪ#܊ś ū’}Uö°öCp(ī/īĪ)»)E-J>Põö÷\ųHg÷ē¹ē+ٟؽĢĢGī£ķĀ˜ō®ō.ȳČbö1÷A– >wń¶ń–ĻTĻf!ø ¼6Õ5Kr³ų'ųßĒ‹ķ2ŁėŁyõLö›üIżĢ!gQlŲś×ßā<āÅyÄuąąėÜ»ü=ԮԜéźWݦŻół’ł7))KķgFF%3é2 , ,>.}.Ēņ,ó½ēūē ~ 1ńgöśõjĻōĪĶĘwĘ.ÕÕĖKĖŅŅyćóćōé[ź}÷³÷ĢņĄņ²äläÕ'n'ŃkCžU&B&=)^)W6™6hēµē›åŲå“®Ŗ”oMLņ!ņ(`,S,ó†ó¢ĪµĪå.åfkļå-žž½ū§ū$''. 9 /źOź.öZöU}W/l/źōąōšėĖėĢĆ  5XTiüˆüØ(Ü(˜÷Ļ÷ . ¦)²)ŁÄōŲó>ŚŚīåĻåźyźōŃ Ņ¼éįéiėŒė“ ¤ Ćø†åaå­ z W.C÷V÷‰¾E‹C!„!„ō§ō1’%’>MųY’%äęć0õõ&Öį#āŅßŅåš9ńõ#'‰'vüEüūūÆū!Ō”ż[żšņļĖŻī&'ŁNäyä™ūŖūs i ē Ģ ^ō?ō§’  /Dėń ņÕĖņĖ‘žłżšßwß”tžŌżŽu__YąsąæåėåĆóoś–ś“÷©÷Õ՘įŠį=)_ŲHŲ·ö¢ö@ + œ#…#fLąķĖ퉁ЕµõŚõ½łōłOżŠżŁ p™Ś…Śŗõ†õ™ U Ń’e?¾ē½ēż Tņņ{ä»äČüóüÉ0±0kē9ēĄš…š+&ł% ō".õūüóGóY2‘2ØŽĢŽ’ö—ö°•ųĘā'«'ćĆøĆ ° ŗ _č‚čó"ł'š“ Hž2žiByŻPݤ†÷¼öÄög&&ūõöõö÷Ó)ć)DCŪ’Ź’šņŌņēĶq#^#ēžćž×ćøūĪūpč‹čOa_öeö4ä,äb L Šņ·ņģÖļéä錐3HĄĶßĶÓūńūį÷GäJä%PŅ3ŅtOüÉą·ą`dŪÜõÜdŒš ĻŚļŚ^ūjū ķĢR'DŃŃŧЁĆŅÕųA×kי%Ą%Ģéćéuūxū̽™į}į-ä,ŪŪŽŌƒŌó7ö7ØŽµŽń:ņIņ|ƒw%w%õēšē("VśTś27Wb ųś’ś%#”‡ZDķķlY “ā¼āh*ńIń†ż¦żoˆ‰ć’ć?8ŻÅŠéiéŖū‰ūÅ׬×2%SV@ęNę¢ ¹ 9R…›-õ@õ ńń­łÆłųųńų¤ ” óņŻņgŚMڵœqtåo囄ėõ ģńņæķ×ķÓŚūāž¾žGē%ēu`vЃŠÖ š ƒ ” lųxų~tįjįtģfģ¹®ķåźåŸ¢ŠųÓųPķQķŸż™żR E Kū:ūšš}}&µŠ[ { vååŁęaZö!Ż!$Lć(ćžŌžĶžīü‰ē¦ēč y$—$®é¼é[ķWķ› ‡ T8…įģÓģļūńū # ‹é¤ég÷~÷G’R’ ʰcÖEÖ2%MžTžJśbś•ė¶ė$2$ĄŌķżķżæ«Mė,ė} X ÷÷Ś÷ž’ō’ė÷źūük  2PĖÜĢ’É’˜÷‚÷r T /&ōōkkŻżģżvóó"=šéźłłśłÆ øųžųg M Īö½öÖ Õ ō  »ŌŲŌ/ž&žčģ„u’ŻāŻ0( (T’5’żżėó­ēŹē0Š“ĶŪéŪų’ż’Õ Ć Ł¶ķĆdÜ>ÜŌ¾ ü üæŌMōpōšĀš°Ī_ÜmÜÜ×ōįņėŲėÓ'ŗ'¢Š’ŠĢõČõF"N"×ßäßr~«š³šz{āß0ļ*ļLHÄłĘłĶ Ų Ÿ®ČžŌžmłqłOKH8üēūŠīrī"śśĘéÓéØšČšĘųŪų–ęœęĪ Ć ōŚFģ$ģ“ö”ö>Ś(Ś –Œ ‘ ōęēe}2’M’B[4šGššō£ōKöIöŌųĘųš „ -ģģYŚ<ŚėÓ¢ū–ūźź]oĘā)Ąėąėöś ū÷$ū$fZźÖö“ö]å<åģ×åį<ŌIŌ1H¶ Š ˆœGōOō ž0Ķ%ĶāüÕüÕ%Ī%ląn࣬;āEā¶ģ¾ģżr a …ėjėŃų·ų^Nhjįłåyė§ėž Ć ąģ' 'Nń$ńJźź[”qŸ œ „ąĄąµ'č';.ģ[ģDåWåPEŸ'z'Q  žęÓę²™»šÕš.ōUōļ;P§¢ĄŚ§Ś īy.Y.4 & Ūčäčxį•į3:3(L3DØü‡ü?äķć& Ļ Ó Vsa‘ģāć 3 ś™śŸxŁ Ŗ äįćk]}†hż…żńüżĢķźķł  *!jłOł) O6ƾ›ŽŻśŻ;ż\żē s"|"©ę›ęnP–puW2%¹ēĆēš’ā “ ø ŠÕŸÕč ē hRu Q j F Õļ¼ļ3ś+ś#õ.õüüHųeųm‚PģYģģąčąm]ŁŽĒŽļć ņłśł/ < 8ųDųŠź×źŚż×żĪĄśżēż0  OHćõźõ+)/JOó_ó‡ģ‡ģQ ? įłĆłąźæźžóż7.>ōEō“’Ģ’”ų·ų²ŅŁļÕՕü‰ü.õŚåæå@ä0ä““vļ‚ļŲōņō›Ī¹Ī•żÆżŁééÜčÜ×ņČņųbųUģ3ģ¶ĪœĪzšjšżÕÖM c 0śQś Ś2Ś]y.ū8ū Zż?żLč(čļΦ;’;Œ’Œ’įāņā%āBā9ąWąæ Ō cģkģꞎž¦„i¶ó£óA÷<÷5ż>ż5L·Ļ’ō¤ōšī īĀø| e !õõ.‘„HK/ŽBŽń-ńó ŽĻõ϶Į&  ļōīėć Č ÆŽšŽŹśĄś<&C&®ĀÖļ„ź ź{GūPū€}\L^H3yąhąMéEéUųXų ģšń ü“ü ĄģĆģż…żįnįŗ¦<+?:ų’2CÆĘŠćŸć`ģiģńé’|”w“ ™ bS“ļ·ļžżžõźė|ą¤ąŁåõåŖ°‡īuīÓ)«)].Źķɕ€Š%‘%\Ü}Ü_ģģ}­(Hy}čŻĻŻl > ? üō×ōXėLėTīhīøāĖŚūŚkБЦśµśļūąū÷ūĻū®Ž}ŽŁ÷®÷–„Łę«ńŌńˆė¾ė!R“ Ģ ųųšųūīÕī¶ { żėÅėš/ū.ūń4ń—Š¢ŹßŹ:ewĻ„Ļ%żżą­+čīēMóóŠļuļ””£ćĢćl£ŖłŲł 4 ļQś0ś(łŁĒ±hŃpŃ{::,ć\ć¾ńéńl€šŚŚķČōÄēŁę;ū$ū›(¤(źž’Ģķī‘ēĆēN n Y:ź#·#ųā÷÷ Š ÷÷ ų+Wźļš@ifvõć’Ą’Pū$ūzōUōSüCü™ō”ō!Ü>܇«ÜģłģMńYńęÜžąhGāɉ*…*Żūīū„łÅłn‘ŻÖ÷Ö±ż¶żĘ%³%Ü ø ²‡X 7  :Kdģ‰ģQ3Y”“NGˆśiś”wźcKčę„ūšūFiV { † ” äģ·Øå­ŽōŽ7ž0ž›¦k $_p®±Įī“ī„u33Tdš"³"7PĢŻ‘’]ōMōs¬-‘-vc›•²¼]żtż}™Öļx„ÉūÅūĮ°U$<$bKqaĀæ©².Użhż+ żżŽ„šįęįeZčųįų÷čõč68\_dųgųo÷p÷‚‚  ›œˆ‹„š†š™˜  żżŌĪ%ų#ų÷÷‚üƒü’’»Ą—é›éĀ Ä É Ē łł}z0ż-żœōō®ś³ś åöčöyßxߘ“ū ūæöµö÷šČåĒå•ņņ|żŠżŸņÆņoč|čā’č’OŽKŽaķSķŚēŹēµ„mócó¤õ¦õJURźcź- ? «ņ¶ņ¢ż£żž ž;ź+ź’‚’ ī)īµäĀäą ģ Ÿö¦öüü“ķ¬ķæā²āD:kßdßą’ߣŖmüuüxū~ū¹ ½ KKOóKó|łvłöņŖóŖóACę蔄ac‚ėƒėżżļģųšöšėėēėa`֜ל§ ­ ^üeüŚöįöĻīÓī¶¶8ż4żļ ļŚŅ&õ!õEöDö` d Yėaė!ė+ė™ż¢ż¦ģ©ģ\łZł-&9ō/ōd’]’ē÷ä÷«ö«öĶīŅīėėš” ķķÅĘŅūĶūŁšŅšÄ¾ėüź|ł~łŠžž­é“é°·óų ł ł‡śśÜšÕšåŻ<õ7õ"ż"żņ’ł’ƒķŠķRY{ōō:õ9õąŪ‰ó‚óCż<ża]÷÷‘•‰Žų—ųNS–ü–ü”Ž® © hžbž. ( $%•˜GöMöŲŽ£ū¤ūY W @ó:órümüų ų ’ü•ü%$ń+ń“vūtūłč÷čż÷¬ś¦śæś½ś;=ĒųĢųüüżYń]ńRRSśQś˜ ” õžīžøß²ß|õ{õ(*>÷B÷”Ø®ó³óxõxõ ßķŚķ$ūūkõdõų ö ‰šŒšŌŁŁūŽū@DŲŁĻõĶõ„ōō5.Š Ķ 3ž3žēė‘÷•÷÷łüł†‰ĆĆIžEžāńÜń;5  ƞƞtwŻäĻ’Õ’ORA@Įī½ī1,eaÆ®PS!ł(ł¦ö­öv÷y÷±ś±ś2ü.üĖüÄü?4, & wwüüŒśŚä“’·’°®Ž†xlŻŅ§ī īóņĢŃJöUö}†–œSöOöhbåżŽż™ ˜ UV*ų0ų™Ÿ¬ō°ō—’’H> ž ¬§  ]ed r ė÷ü÷ā ī [`“Ž)üłėłŲ Ē ļšüłśäó+ō;ōĒ Ō ƒˆŹūÉūČĄXžKžŁĪłłļļź“źSŪYŪBFÓŃÕќš›–{xOMxėzėP%W%ęÖļֆĮ’Ā’E B S÷I÷˜ģģõéõćõ""ĢęŅęP\„ž“ž Ü’į’GņFņØŸƒēvēÆ(£(’Ó‰Ó‘%%K’M’¢+)5)ęę×(Ü(‚Ʉɩ8Ø8Įė½ė õõ ŪŪO,N,ŸŅžŅ‘“ęŽęŽkūlūVW›ī›īš›¶ÓµÓššĆÜÅܜ}}žįüį‘aŲ_Ųc c qāpā( ( %ü%üļļ?ż@żÉāČāu w gńińżż’żæģæģīīāćāćįņŻņåå55…ų…ųĮæ¦ō¬ōÅöŽöŃįéņč ! Čķėķ7\ų1ų”ēćēœž|ž`° ‰ có—ņĄÜ„ģCķåŌ~ütüJüaż– œsźMźŃ’ßõqõœi=õ`õfö)õ†Ė±ėķķiŌī£ī(/«jęō„ó ÷wöIķāķ–«čß©ą”CżüüyZµł’ł>ųj÷‰łXś„źZģßähõĮōA6^#$ ś üCGeĶ N Aó§ņLøĆū5ü³öY÷† a {é[ź5 1 ėūÄśäųŁų³Ņ¼ółó0+*š÷ļč Ī +Ś1v%’Ģ’…śłčłšž=ž»ąl=ŗ€všQš*wDšńk¬Śžqżłł] ć 'óÉóÅų wś0ś¶ | K w f Ø —ī¬š¦˜n/=!żØ«’Gżżķżß’_³ŠóĀōÅ’Bž ƒÉĒūi<ś—ųėżµ’ųžÉ,9EžüÉ ī , n_€ d’wżJ 6 ©*QłŁų§R(!^ćA Ć¼ŪżĀż ė   Ģ X+DĖå+~rž>ž¦< A t   łś{ūAčtÓõÄ÷R . ×Ü Š£¢×ūĀüaų>ł» { ų \ Tż[ż&Ħłł Ć6Ďü·ż‹ÓļŌķq s ˆóÓō[ ; š’›’h÷×ų® Ł … … Qųā÷yžÉżŗ8Œõ«Ā?@ż¦ ; õ’’–žÜžŹ’i’ś÷$ųŹ÷iųF1É”ķpķ”nKJ÷ ųŌ‘u·’ƒ’`ŻÄü7üŚžĘžIūhū÷‰÷Ō & Čļ]ļüÆK’®’PžZž·AéLéĪźŽ÷÷Žļ]šH%1’¬žQ°’šōšōāÆ8]HņŃņžKžĖžõžžłčł¢»’ żŒüuū:üd/)ņēńąžąžEū”ū!łLųŽö«öiĖZžµžšŠškT’Śž%fŹžž®Æ}ąö.ößAÆ÷Œ÷x ŌŠU«nģZģJ³Nū¦ūü’o’ß/ō$ōø Œ “ģūģFōōc T ö.öŖü@üĄž-žN÷Æ÷ścś@ł(ł±żž[’i’ ‘ ōqō­ź«źėüõüžl<öwö1ČģĪė1`3:œļ™ļł÷ ųJł6łG1NšršÆŽÉśœśPžŃžļ÷Ł÷õóōpQŗÄ?’]’ƹ‘ņ“ņØü„ü÷żÆÆ}łKłQųPųP — >8‹ž]ž’’<7±ū¹ū‘ · fDš*š2ŹĘqRö ģųüųÉöĄöœų ųśś²ż®żŒüŒü» £ Ę Ā ±ųÉųĄ Ń ĒĢ”›PüRüMGÉ Ā Ä·ŁżĢżŚōÕōa"c"PöXö~’‰’ś* / ( ) qłmł60øś³ś„¦_ųaųjp& + ˜ō›ōĢÉ žžÉ¾»±GD')½Č“¢śśG R ķļwų÷é÷-Ć “ źć`cŻżęż„µšōõŲ愿©ż63}sņC9vģqģŁöŚö„ܩܔķšķ#E×G×J-G-õ{õ‰†¬ńŖń35źńyۃۦ$­$‚ōƒōśõ²åØå&"  ]X±²@äHäŁę÷óōŅÜiīlī"U÷J÷f[kŅcŅ4838Żćąć! !V _ üü^bĮÓĀÓECDCĻ Ļfaéėäėä÷ā÷ĆĆ!Ų"Ų£$„$¤Ģ¤Ģ»¼ūūAA; < ļÜīÜĖĖĶŠĪŠ%&'ķ&ķ[öXö#ą!ą> = 2ß2߯Ż¢ģ£ģ<ū=ūŁšŁšwķwķ  “ļµļõžöžżēżēKšJšäßā߬ž©ž:÷9÷ÅģĀģˆˆ=ō<ōäć&ģ0ģ­Éķżņż`ļDļ"A°ģ»ģż–µėµėšJš€ż\ż„% -õ@ōižóž‡ģāģ— eGõÕõbj6’åģ^ķīķ‰õŪōh‡ķåģ…SŸžz’éņāóŹŃčé³ Ÿ Äśśś»ų,ļķīK÷ųėż’”ā)ću Ķ Äųę÷ ­ ņ ń’ŻžļŅš•õżö³ ` 7ōŒó( č@‰Š}žn’ō4®ØóŽņ ŠEōõø’ .ėģÜ\üņżńč4ł<łŲłSśoūPüõčōć ē -ķ$üÖü„ŚjõEõZŻLżpüLī÷˜ų/śćł Ņ ńš÷ńKüóņņƒ Ģöų^C Mś[ł O  ^ 朚Hņ i Ÿž”žä×-% öyžæśŪūŠGŸ¶ź†ėK "[BŁółæųƒż0 ’Zßł±÷h ķ   …ˆśśC½łfŠgHł§łžœ ī Hå5Q9hźxżtżæŲ R  ŹFf<%ż¾°\ ! ¹žC’} Ć Ke„«żĀżŪVÉ÷…ų?ż’.j ]¦)’ Ū4X÷ŖųĶ’XˆOØė¤ *óūņK „ś:ūč_3öö£÷õˆFäņWō¤’#ųUųŗė~YHHłæųg§/ehü¾ż“’’G1M  Cf Zś!śŪTüĖūÆńCņ-žĘž­  ¤’!ļó-óGč ļžĀ’󞣒Éa„5éQē÷hžŅżūśžE’Õū”üœ Ī Łīīų Ķ Ķ’t‰L3 Ÿé“é8 »īīū_üž‰KõžCžżö’öV  „õöšõĀöūDūG‘TśĪłŹ’ž÷‚ųŻł’ ņhń?’¬’ųöB÷źüģśuū¬śµļ÷š… ‚źyėŲšnń`qųųē’#öwō½ūČüIķ’ļŚ?vó]ņuōō=G’2öœöšœšDī+ī•ųÜłńģ)ķvüžźõžõˆś9śķöĘöėCģhōÄō”żšż‹÷ä÷Œ÷ōõrżsüÓī/šń@žūéū6öJ÷Ų ~ 0ųćöCśś¹üÆü/ż“ż¼÷4łÖńöń°‰ļ ļ$ūČūēŅüī3ļžó‚ōOśŚłšJģ®ģ}ł¦ų…%ó7ō±ü<ż žŠż£ōō~ļ'ļ÷ūYüų÷jų>ńHńpé`éŚµŅž’‰īNīęÜgżžŁšcņvüÅūčššKņ~ņYłöųõ‚õ[ū"ü7ņ'ń¤žžųś2üQ¶Gżüšü]ż.Dųūmū|ó±ółPł¤Ė¶õ#ö·õ3õrż2üŅųł§ ’Ā’1ś|łį÷Ė÷nöPöĒ ¶ 0ļ¤ļtž3žĆöTö»÷ˆų‘’ģ’aō„ó6 ĖjõŲõ4 ³ (’śž±ņSņ‡ » Ė$"’6’ś>łŅļļOūcül’ĘÄiIŁ‚ž ž-„xž’žœži’†É„üźūÉ ū ?„ *Tü”ü#ś, ž™h ČŻčžßžF’É’Ÿ½£ģ Ÿ z ! ŲF N S Ž k³Ń 6 ° Y й> 3 ę%Ē e’Ć’žOž€ ` w‹yü_EźQŲ)‘­žQß — üY ” ¼ į æ­”¬Ē } } t # u >żżTL§øend[[µØÕEšż «’2k’BÕ’é’󳏳 J ō@ŻNņžI˜ Y ¾ Eśś³ļ§cr  źæ®üµüHéž’.āµ|7Ō…üü^ŽQ~/QĪ’’’§’*’ßśĮśå - n’ ’śKæżžżĄüb | PBøŠLdb÷÷Ęw Ó äömöļļ’z’V’ė ^ /’’ßŌłł½·åŌĒÕÅį:śčł‘ž¢/k’ŌżĢż3c2:×¼f$³žčžŁ4õŻōrĆ~Äćómó$6üEü€žažś’ßüż“õRõ_ [ łmųż(Ēž’Äū¢ūSžažÕżŻżgeś(ś£ūūŃśeśžŹžØCżMżMžJž±ų<ųüDü÷žQ’Ńųł¤żžżGüsüÖ–ėü½ü Ł «łDłbł9łĢ–śś9õŠōČž ’J’Õž­ö•ö]åņsņĘū„ū ż¶ż7öõõż¶ü¤żŪż#śŚł]łXłæ1ōōlł ł¢£ģłŚłŖüÓü2ō\ōĮüšü=ūūK”łdūūÄžøž>žKž‹żxżż\żž*ž)öĢõ  č üĒūŹł“łŽ’ øüŒü‹eŲ=³ūpūĮö7öŠ’Q’N’²·z  –šˆļūżĒżN0»ĘīŸ1ö8öć²ĶõØõm8ö÷V÷ß’Ź’É i‚õģōØÜ»ų£ųF F ū]ūŲŖ”’c’'<n™ųdųƒ ä YōÄó†} ¾ (½Ap¹’®’Ļ•ńžņž¤żžS*÷Øö%Ģ×öqösbī g {’’‘qlž•ž»ų’ųjų…ųš › µ÷C÷ÅQTz~’V’6Žj Ē āĮ£ż_ż¬žf÷÷Kżjż!żŃżĻų³ųü’ūkQ‹ŪِĶ?÷=÷jĄsżÄüF.žČžūŽśf÷’÷]œ˜ųrų‘¹­üƒüÄś śÄM oĪ£œż’kżņüŠœ†ÖūÓū(?ŲüżģüCžśżŲ„Їéf²į«­łŲųߊQ óʉž×žŠ “ żSŸ,Œŗž’H¹†ŃĒ["žŠż>62 ŗ ķžržŽwÜćš—" Hūū;}˪Žóūżū×h9Ķæ>“€ÅŪÄŸzF’’”gB U ¤’4T½cÓ™Qwü…ü]€œ`żGżˆÕß§ÜBæ·īÖrŖ_Iż•żżžõĒp‰h+-’5’µdž]žń¼ūž®ś¬śWRŪżäż:bzQ3üü½ų’-’•żżdž;ž’¹ž©Ēõ`pžjžt’=’[o”ūsūÓ˜Ž’æ’Åż*žµ«ß÷‚÷ĻżŲż—ū«ūŖž—žŠųēųž%žgžWžPžLžūūÉü üa’’ŠżžžĪżšż‚żżmż~’‚’ņż„żĪųżųŠ’’’įśśäūīūLųšų¾’’Ī“śpśūšśęūxūD«=ū^ūLżģü F`ų’ųś³!t÷£÷ķžūž•fcųjųünü-\óųņ®ūćūn]ø}–’5Óūüæś ś"÷’*>łĪųŻżTž®ż0ž;łņų¢R'üŖūūåśæq¦÷FųĢ»–’ś£ł¼ü™üJKśž›’kž ’ü~·ūū'ūhū¾ū­ūĆżhż'žÄž-’’׿nż^Hųų7č » „üżS»ļņŖū¤ū†łłtµ’}üüžŽž Č[żż®ł|łŚų©ųėü2ü“™įžŠ’Öž8’”3ł§qūkūĻž¢ž,ūūOžŗž§ž%’k’%’Uüēū9÷e÷Ģżąż„śJś¦ĶĘś9ū’żvżH"YBžž ’“üTü™sŌDüÄū·RžƒžB’`’­¾hw¢śzśO=li ¶Źż’żJFށ¶’’’qéKūdūvžKžšįĀž”žµøq’‚’ļłś©åž]wŖž“ž2ūū5T[<3ę’Ī’ĀŽh’”’ó·ā‡Ī’™üżčēNtD’’]r2~B‹ ¾&™brw…©‹k˜‡@'’Śžāūü’E4PĄuYG˜ó=ŌķˆVŒ, Džæžüsüs†”’0’ī„£r0h¬¤ 89ūŒūgūpk]’£’\æÓ°BżÜü”žFiµżæżężįżF’’÷÷˜š¶’Ī’“żZżŒ}ĮžžEڦż'žž’iśół’h’ŠüÖü'’%’ćł'śFž€žpMÕ’¢’VüCüĖū®ūw§-žvž”žqž›żnżŌżłż¬žæžr’B’Sś_śÉ’ü’üęūļüŪü3łqł4ž/žöĢ¢śÖśåūęū¾ūVūE«üčüzū%ūŽŖ'ścś ’Ōž•pī÷ųŃżåż åõłķł+ś…ś*'Øō:ō¼łįł¶»Y<Å üküĻś:śßžšž÷Ōłžł°ü ż¾žU’Æųzų®ZžŒż¦łVł\ś4ųęų6’=’QÖś®łGü üē’Ż’…’īż„ž7ŻNü”ūū,ū’ūžū¦ż<ż°ż/žJ’Ž’pżż›mŃųģųŽ’.’Į r Łż6žh’ė’ht„üœüņ÷õ÷0’ožAü˜ū?żž*žž1śīł“÷u÷Ąüņūōµ’¼Śü‚żśŸgīŅūÄū’ŚžÓł~ł÷ż~žž¾ž ’ÅžƒżóüK÷i÷9ūUūUśėłā’ņ’(śĄś“żŗżg䒚’qūnū łžĮžŅüIżÉ]ü„ūJ½Ą’ķ’ńżž4_T”y÷W÷§žVž9/A}’ą’>„æ’‡’^‡śˆś;ų ų~·*żBżS’)’§‘¹ó»óĪųūŅ—|%’|’y÷ˆ÷üĻ•ŽżkżÕž.ž-q±šm’Üž{Ófž±žAūü>w#ÉŠž=ž”śJśŃ"­vł=śŁ£+D’’Ä?øżż£ĆRī׿–ż=†{÷†÷e’|nƒ:_ŒĘ¶æ”üĻü#茫’ž ¤ 0płäł|…ļü‚üŪ’’6·Kρ¹fŲtĖ’–żŌü.ž¹ż”’|’9ņ‡ƒsV†ŁiT’|’üUütšU5™„Ćś]ś>śńü’ü"Ņ; ! Ūc–}»’Ć’“Ņw“Uq›OüSż’£?poWČ#ś,śBŹŸ©šGžžĄHž%ž„"’µÅjX+*­’üž¦üżĄŁsż;üĒ,ī’­’~žŌŅhöéöĻqŸ ? ˆ’õžQ’PĮ’:ņDÆöĻx^™WžIž_éĻżŪżEä’Ū’üėüqIĻüüOūFś!śŽžxż«t¾śµū¦­ūHūķ÷Äųłł¾łKUŁžY’Čł²ś~·-Ķś§ū¬üÆüM9’zūČū˜żXž°aø›ßł(ś­ś…ś,’ęžŅ’¤’¢żĮż±žQ’S’D’Éū<ūŗ 1łMłĒżżo™ ü¾üē‰/o¶ÓüĀüp/ī hłoł5<hūYū²śœś!<Büü’*’gšGööžSžÕóÓżQż[’µ’éž9’ĮńŪ FÕ’;’Õł¼ł ’Ą’ūžvžĻüoüP«qł6łałßł„Čś­ły„ożZžÅžÄżØūPūł¤śy2Q’ßż`öZ÷ńøń|“­’ÉØü@üŌ#4’ų*ų°ģł”÷Ź÷Ķ"Ņ”[@ł¦łžžĶüUüdv‹žĢžÆśŻłż¼÷ ųg>Hżż@’ ’Žü3żŒ Ė`æ÷“÷;ĮŖųŗż żŖś˜ūŖż@žųł¶łOP’žžbüÕūż@§’’’Ö’<žrž’Rü&_ųÕųƒż3žĘh™’o’DŪLčÕ±’w*ūČūē %±"Ē”µÅś“śŠź”ˆIĘ Ī 7’P’³ _ ńżUžbÄ’k“&E-Ż|śāś²Et Ę č\r3PüXü·ÄSX¾ś,0žSžžB!ŒķĀÖbÆ’[’ļÓ3›Ą”“s½£ž”žM3ʧ²ŗ~øg°Ų¬ • ›8±ó2§ōėä¦ež,ž‡ž¢žĒŲĮ4€~®E č§®’B’Ų’”’é°ßńĆū[™“żYżŽĪ CHüĀūŪ–D0Œ‚Ņž£žiSUżDżÅóėžēžīū üEl…’błdłŽł'ś”’1’j’’śŸ~ž^ž“’ ’§ż[ž½ü ż±Ä’śżłygżļüöü6żŻ’ŸŅ÷#÷ķ°śū•śUś{żbż/üąü@’:’)ż“üÕžńžKł)łŠūXū4~$übüÕüĮü$ü ü_żTżjūKūkżLż4ųhų"ūfūe’-’żśüążžÉųžųmžRž"ų_ų‚żż8ēżÉżŽū$ülł’ł#Ż’žzžZü–üżżn’^’ē†^übüūŹś»’°’Ų’Äūņū‰żŲżnõ õŅüBżĄņVś>łķ’ß’^üFżÜž‰žF’ ’=żŽżĶż:żhžž®ų}ųŪžŚžIK³ü\ü¦łŗł'ž¼žPż.żĆž¤ž(B‚śvś€ż/žŪżéżzł§łšü˜ü‡z–ūšūēśĻū¦ū†ū‰ž¾ž,żDż~żĮżéü—ż`żĪżłžłž_’’ž¢ž„żĮż„§ųŖ÷æ‡cżWż6ūŠūPžt’UżóüūPÉūfüpłłŁŽĘżążb­g§cüøüž,’‡’Ó’¼žÓž%ż9ż—n(żż§YœśĀł›Uū:ūĶż/žĢœ ÷‰÷3_ż^üFž¬’ķö÷ē;•ż‡żˆł)śŠżž’m’ł˜łtż±żĄ}VųXųÅülžjüµūÓ±śšś<’1’‰’”śūŚ8‘œ’q’šžh’Xūęū€śjś0ČŽüüĖ’fż‚żŅżåżˆÓ'üŁūüUŲ}ž’Yū ümµ™b,śūfžqži7Īśżśäūüp?Sžžižƒ’Ūž_žī„Ę5§’s’<’Ņžamik’K’ąžO’ó}¶ąX’’oóӒ̒䒃? <’Pžü1üÉ’˜’˜”ž•ž¦śsś§’@’ Ÿńü¶üŃūüK’ž¤xy!żüŲJ o’,¢łśpśÉP 1B9’®ž…Gw’Hžō¢~üÜūt¬ š é]מU’ū|t  ¾™`ĢE”É‹«Tóņ’B’‹R’¾’f’l’Ō Y hž[ń‘.•ZµjÖ’Fpå’Äž ßłšł5žĆü·÷’ö Į‘•½ŒEūÉśčĻšŅ’źł@ś‰–(ś8śŪś*ü]üąDŗŪĘū±ūśyęD"‰;ūŁśl€R’2’Ģżž s’’Å’ųŒų²śuśBm@&sū üõõ÷įśÅśÕü¾üÖļW’Ī’‰ŗgŽł!łWļן¬’Ē’©{čž©žoś ūOūYūc„¬ļżsž ž8’ż]ŲžåžZś+ś­«’ūüĪüjż™Dx÷w÷‚Aµ}÷±ųBü üė%śżL’pś“ś}"GłCłģü:żŹ<ūØū­śōśqn€e’=’ł:śqžčžĢ€/\ņżążłŗłźłÄś<moŲmōŲō¬Ī»’Ü’łś¼l ’½ž|ł‡ś”Ć-˜žŻżcƒh@=M±¶óō©ų\ųa’’Ÿō.õļ³ą“°ü2żF’v…Büżze’óūßśF1æDšŪšįKōe{’ƒ’IüOżčöńöXuܐĮżŌüAų’ųżæżē <ūļśNłžųĖzVYśīśnü·ūŅūUü*8{ļšĢśŠūl 1 ~_Ćõö!ų0śŲ©±U1ó…óƒūXüÆ j ń ³ł]śXśųł@Z’3lōéõßś¾łœ n ņū„żźłÜśź1óåóÓžĀ’öš„’Ų’īüūż† ę ß±±łś®žg’ƒõż£ż|żg÷÷Ņ`PĪż!ž>ģģ2¼ø -ü®żpU…öpõ„tm  –’e’ŠśøśŠ¼ų ~ ¬żžüśśŌū6Øé›÷xö`ļtļ"®³  +ĮīČķ©’ŽžŻŃ›üöżü}ØÆ’‹ ‡ ^ąųsł½śtś“/Ŗ\÷w÷(ł‘! ŽööõĢžÓż'7Ā  GõĶō>ū4üFō@ ö—öÖżé‹užĪž%’t’–ś÷ś|‹Sc÷ņ÷Ź’^’ćZö¤Ēüyü¹üü¼Ä W†A`¶’Ģö&÷2 Ī žüŽżŚūRü©ÜaCF’ž’ī’DĘ’‰’ö’ś˜ūĄ’k’‰ó»ü‚żp’õCĄ2Ėžļžbü,ü!ž žØöH÷aŲń¤ žõž¼–ü^ü„żMżE’ō’CśłŠł9übüĻŠFƒ‚’’Ø’’„žĘž#ż8żŃ’±’Į’³’${žįżĮż¾żūlū“’Ž’īØD’ÜžBū\ūžž>’¶ąįśśĶżńż÷Ū¬¢ŻśMū6’…’»žž“Ō€Šńś=ū<ż"ż¶”ūüØżŌ’¼’œ‰łeły3¾’ÜŃŽJžnžFü,üåż,žzżķżY’§’ūūÓ$žÉż•‰ķż“ża]SūüeOW ś8śĪūŲū’ā’R[óžO’å’ó’ ż1żmĮįłū(üÓŹį Īž ’Æ’•«üėū&ŠWūbūµ’ ‡ž’ž›ūėū>ē n’\ž?’`łułŽŸżnżšü…żž>žĢÓłół+’l’t”łś5ž ’§žžä8ūėś}’ƒ’ŗżž:ż¦żOL ōž žÄ’8’ūÄū;ū2ū ižsż^ņū<üÜžāžy…7ż"ż¤éønœż1ž&żż{ cś ūL’?’²—-ūMūBżyżGłžšżWžW’’‚žļĄNzi1š>’Ģž %DV’V’/’s’é…ų3Ž’4’ŗD—žÆžSńSć ž`żEü`üיUI«żžżÜś¢śš/’$6üü;üxüį’’†8W6“ż-ż€ā’öž÷9Ž’¶’=üĪū„ ' ^:’_Ŗ*jv’oŃū ūŽ7U  Ō‘‘žōžø'š ü īį˜| ‹„ż ­i‘µ’ŖÜž†žN ` Ģ ÓQo÷l»éd^¢ ·öø’™žs*ĮųųzH’,]ųĖ÷d_SĖžPÜ”Žü›ūÅŽéžÖż×ś_ūīµ™…dł>ś€żUż“1O—Öū­ūPņ-°Łė© $ü·ū$¦ż‚żM’ˆ’õ7³ž“ž£÷ņ÷Ōū©ūThš7ŽŒśūĀG­ł£ł‰žgž­āŸž ’ČĖ ¶øłnł…#ĆĮ­ÓœWOż/żMūņū-šśĆś?Sė:åüµż;’'-‚ ż*żŃūū“ĶüłŠś˜ž%’/½’•÷Ä÷§ßĮVēö4ų:ž„żų„÷ūPżüü®<ųEųøž ’XTśÅśqū¬ūłjP$ž_ž‡ł=ś’č’ų©Å’żęüĀų“ł“śGūi¢žœžFõœõ?\‰żĆż.ś+ū1”Żż×ż²ł«śT¾žĶżÜ)±’yRьņĘņįśžśōż?žŁōxõچ€Mż–ż¼EģGāū÷üćČ>£‡ūOūk¶ķüxżéš†ńŚŁ9óž8’aūOüp÷~÷Tƒ˜šéüBüČ÷‹ų%’ų’Wpł łśšł‰kFīł#śéüXü†ūüyw’ųž”ī^ļhžS’‰  ž’ēžOõųõWłPūæ.o;ŹńRņ¾žw’œ B Õ’ų&ł9ü³ūó wdzó½ō ž”üa ‰ łßś[üŌüYŒ’kņ‰óoüek$żƒż’'˜ ® xYēųƒł”7ŗ,­²kżCż¬öbö°ibŖłśķ”ģ;õb 6 źū*żŹ’ĆõėōÜŠā f ¬žužyśmśĒō( ‰ ü‘ūøūøüŠ5ėū†ō…ó*ń^ń7Ē X %“Fķ ķKmĢ  Ļūż¶õĘņ’ # ©!ų„ųäū€ū‘Ar’”’%ų9ųęŹŲĮž|’—ö€õĀ’’° bÓ?Uó6óĒž¢’D ž~žśö÷ßļo2ž ž×ž’Žśłśr[K.ņöq÷ĢWŪƒ)°²ūRū,žyżį&·’ić°ž#ž#÷‘÷øµ½ T /ūõūzżĘż…¢Ž’ę’{b’®’$ĘēäqśūK¾yüżf„LŒNMńuŽżņżĆż„żÖüŚü÷±÷ß^ža’iļŲūœūpžCž•óžVöżõ§ż©ż/Ū,’’|ŅežÆž1ž7žwc/õ’.^ģžvžĀüĄüæśŁśĘ7xä¼’:’ƒłüłäNōšū‹ū’üĮüP)ć  śøśĖĮ’ž”ˆņ0ūžūDżŠüs…%ž’Cнå÷JųöŠŠK}Ŗ—ļżźż@ü~ūŹż@žźü”żĢ‚ž»ž\ł’ųxRģźķy³’¤ūIųĘųj ¼¼ŗł†łCż ż±žcž2d üGüåŲżæüŖNī’0–śóśŃG!ōļżōüX ŅŖžśžĻžhž’‡žģž{’nü»ü±30ž$ž[žµžŌį1yžźž/šū^ū²ŃÜŁŽū6üŠ¢¢jžĄžöżœżŌü¢ü½üżatž7.ū:ū1ü±ü ńjž ž¼ų‡ų ü üg;ļUś†śc’k.čmßĒĻłrł„ž”žMfå¼żfżķüéü>żaż×°Šūkūķžž•’g’LüĶüF’e’qžžG’Ųž£'!@Jˆ’`’\ĒŲhw5Źł5śqžĢžqüNOó1ōWū2ū· $ lóō:ųĘš›śšņ^łWł’5ž1"SŸfü6ü”gōüŃü ’:’žÄżLż^żyqģūSüPž żOž°żź’vÕÓ£ž‹žūśyś£śZš¹’(žkžüšśŪśēžæž$ūgū¾”‰.ŲØü ż°’ŗż}ž]Wü½ūxż2ż° ­ ā’tųü]ü.õTōź‚ü ŗ žgžćūū§žožžsžŖųüŸüNd2©4’P’’’’Ų’G’żŁż~»ž÷kåjż-żŁü]ż¦Ā{śĀśĖ’Ž’ą‚žĆžĮł1śÄĘFüWü ¬Ļž,žĻž“ødü'ü¢ž-ž0G7£z’d’©’©’Ōż„żšż¬żBłYł čYžpžØ=`śøśPz—A$ņ’ĘūņūtØė¢ż?żŖžnž›ą÷ż ž{7ĆūoūuĻŽčų~ł×qž(ž“o 7ā’U7īżžj pżČż·uŲżųżœ–\Y"ųŖüąü¬—­’; ×’²’ ’’K’Č’)Yƒū’Ōü ż 1 ¤żž_ūéśK’’¤żżżE3‹ž8ž!’¾žd“ū’)ŠžKž…’v’¾’~ØżŖżżQż}3ÉžE’ɰ%ü@ü=\LOž•ž8 uś ūŧ…’£’2„»žüžŸ}—ĆJ[üüĒŽ…É”…KÓtžAž©óŠ;Ŗ6¦’e’äēl`’8’ż*™üŸü½’žp±’łĀłvĘ`ŲR’ž’żWż›üĀü™LĢŪ¤tFüæü*Q™zžŽżkU>ÜBžgžóMޤÅNž«ž’Ę’F•"ҽ eŻ’cMūĆ’Ž’ĖŻž’2®żVž*gżPżĻŠw’ń’qüāüĖ˱Ӓożżzž›žš’'Älf$XĢÅ$ūNūGśĖĀ‘GF’=’a”żCū ū ’ŲžMØt’Õ’%ū’Žż|żå’6ė'“ž›ž]žwžš™Yž¢ž§žužÆž»ž¤Ō<>žFž ֐žŚžy’W’“żża@^dė’«’ŖżMż“’“’Gž’Ž’Rüõūü’Č’ėžD’õ7āĄ(’žžcžbž'[Œ’Ļ’„žžDżśü14åżSžj‹ę’ž0ž„tdśäśŚéĻüŅüR×’IEŚ"’’ā’łŠųkŃ ‹žĖžčØž›ž„š ’ģ’ż‡ūTū$żŌüėģ½’`ž+ž2AŖž‚žØūĢū}Œnžšž+ž/žś0ž,žżčü ’’”œ0žažx`#žlž*H—ž’ž‹ūtū±’ø’šž&’ŪŪ%Ęxž9žSC4ž;ž³‹,’’K7hx¬ż žĄ­£ūœū¾’’Œ§™’Š’]3’H’ŅżŲż~±•ØĻ’¦’M(Ø’ē’Üż-ž›żøżD($ņŃd„œŗŠ’Ē’D’’3 ėž’Ź’÷’ŗ ‹©õś’ś¹› W†Īö-Õ’ĘŽ™ bvżüśü„ž{žßžßžÜżöżbsEbu‘¦ƒµü‡ü—’‹’2e­É£€V{’»’B‘²Ńžüæüóߜ··×—uŁ’Ā’!0ōēČūłūØøMsdčžćžķ’ō’Ws`aŪ’ā’Ü’ żżŲ’¶’Š˜ķģ$äž¼žĘ’Õ’2ķ’Ņ’’’·ÅĄ÷>žZž…ž›ž;O PH{zNS’’ß’¼’†]7ž<žLy|’^žNžēø­’æ’Āļ =żż°rH’Z’7Y¤’–’Ęž¼ž4"U˜’Ę’sT žžļ’1’I5@ž5ž璜žˆžgž€žČÖIžwžō`ž}ž)ž’,ņžīžŌžÉž{[ŗž©žŌžŠž±ŸGž>žĒžšžK’J’\’‚’/Kwq#’’Žė’£’®’Ÿ’°ż‡żš’…’]l’÷žōūÓū6’&’HØ’Ä’–ž’ž„’”’5°Ģņ’P,^0Ś’Ņ’ˆh žž—’–’ß’ę’RžFžXžSž\'YČ’Ī’ ’a’öżžé6PäžÆž Å’‘®¹Ł‘żžżžŁż|v¶æ”Ó~vmżzżX’V’«’¢’āūüC>•ž¦ž/ū’žž +™”’€’ŁŪ;X‚’£’źņkg#’ ’©’’†’}’Ē’ž’’ąžęš~®@c‰ž§žRnˆ¾q’’SHśįŠ~ °ž…žwžRžˆ’|’×ņ±Äv’‰’ߣ<žcžÖģŪ’Õ’]’F’Ą’l’j’„V’X’7—’£’Qe ’4’Ż’ų’u|Å’Ś’p^ ’6’D)™žœž„T”ż’żÅ’Į’7B1’K’‹…g’Ž’ßņØ’Ģ’b’U’Z’_’4’łžX;S:žž™ž}ž’’7(&’’ Æ0łž’õžŹž{żPżĀĢFdŖżŠżüŌūcJ ’[’ä’ļ’¹žøžŠ’Ā’.>ĻŁ™’–’,1 (žžRJžYžxƒÆ’¬’ŗż‘żßüķüŁ,Ā|’{’KČüóü6bCž[ž’Āž½’‚’™£väüßü€žEžīīÕŽ7{%&-ūKūį’Ģ’ż„żÖüćü˜ˆ^żLżĒ’’}žTžNCh’j’TRMbNŖć¼Õ¬ž‰ž"żżpi®’²’½’o’ņü¬ü„gĒPĻć7’Z’˜É’|’Q’o’z_ŽTN2Õ„[ū5ūcž/žJ(™¤?f„Ōŗ’Ł’§üÉü',-ogb`’+’d’īžnZ}Ÿėź`żtż\Š/‹į2yuZ’Q’SJDbśžāżÓž”žk]u’˜’Čē7b2Śēs{žæNfĒ”`’'’'’õž¢ž˜ž¤ż£żŁžćžŸŠS3ēž ’¾Š!łżåż’X’¦±tŚĮŠ<żżUś’l[æžõžv’†’#žžŚ’œ—•¾Æ’ąš‘’q’’Ņž²¼Ōž:’łĪüuü9žŃż©³®-A ż÷ü’Ŗ®žēž‚I‘Ńü„ü$žÕż±’§’>0UĖ~ż%ża" žśžZh’`’½żżå’ń’CœNużcż*Ī’žģż®¾,Øž”ž*ņ¤ŹżŻżS’|’ @˜žužĖż§żøō”ÕL’6’’’ī’(»ų€ż;żžŻżv‰?2RPkiˆ’I’¾éģ’-‹žpž›ž«žā’ģ’›žšž,Y[QMžžrm£ž¶žd\me_9ė’ū’48?Œż|żhžwž±µČž³ž“’ž’ü¦üt@# 6żż9;ƜōżŪż¾ö’žŁžV’ļžöž’1’4’Š’‰’ÜūšżćżU’k’g¶2'Qtƒżbż£”ż’ŹĄ^žZžł’Õ’5HĮ’ą’‹­’ŗ’ųśZ’p’(@žŖžƒt™‡o’h’V7Ų’Ģ’Ń’ż’),ŻÜżżććNżwż_?D5ūż-żƒ‹Å’Ļ’ł’]n½’˜’ŠžˆžA/P’%’ŃŌÖāšŖ°=|¦å’ō’—›Ež4ž–›«©ż{żAE`’n’žņ-­ń4'F’D’õū†’’J]t%CžóżÉķ7żQżn5|mž/ž7g|• ;f=žzžóó¹żčż ž’¬’‡’gDRJåżž"Ą‰/’R’\oÓ’³’MPs’‡’fž|žÉŅ ūVžmžž±ž[1ä’ų-ž+žļŁłežaž®Ä,JC.Ōžęž ūžēžųžśžżļü¦ŸčžžžŽž…ž|z./¾’É’4žTžšÓb:į’ū’rżżq’D’­˜żżiżż5;Ŗ’’’’čž’I:ōżž„’l’hhN’Q’ż ż/3ē’É’Š’h’ż@żØ˜¹ÕżžįżķżF’8’Õßæü±ü]’X’õ’%Ś’Gü:üx¦©}0ü*üˆ =żżÄ’·’—“׿Ŗż‹”¾Õgü<üŹ’ų’מ½ž,)|ž”žĒ’§’šż žš§‚’W’ĖŅßž’Čżæż94’’ NžKž«’Ą’tm’Ųž‘ż“żŠ’œ’^ž7ž\’/’zn‡ž’žbžuž¼’“’™}ē’P’¤’¦”8°’Ā’żŸż“’}’@+f’7’Ēżµż+’B’ql’’W’x’÷žéž’É’łžÜžØžhž‹ypüeüy’m’u‰ƞʞ«žĆž‡ÅTNÓŪ­’ą’F’,’ń’U’d’†’~’¢’”’\dj’O’’’q‰łžéž`żTżźĶ¶†É’Ī’ę’ū’äžÓž}d®’½’Qƒł"™žžuŸŗžøžE? ąćžåžI’x’(-Ā—ś’ÅżČżģå½ø]9øĮXžcžIK‘…t ’’ Va’żļżī’8%Fž+žae¾Ÿź’ć’»’Ė’C’&’łü×’Å’ßžśž£”.$’q’ÉžŠžŽš¬&ņžŻž’ ĘĆžž vq2?P’M’| ›w’’ü’^j&)›’›’žž ’27-Bæ .„¬Ć’³’KCdiž žr’o’Ÿ–NH-Ig’r’lHIGā’ą’o\¢‘ŻžŁž¦’¬’tm]J¦’©’Iž)ž˜”ė’Ü’7’4’ŁŠXT/„–ó’ņ’¾’Ś’Ō’ä’QLd}-/ż9żm’z’Ąŗ’’—’ ’Ļ’¤¬Üžµž-;čžšžž’¢’żŸżŒż'żż3IŚ’Ų’«ÉE’@’’‡’oyēōĄžĢž77Ś’Ā’7=Ü’ż’ŪŗµžžžU’E’›ŠŽĮn’@’8’/’ķ’×’_ZnqQ’Q’w’k’[bqkė’č’|’Z’ĶŌ€‡@’X’bžxžk†ŽžÜž£’Å’ ZćżĪżģōŒ€Ńżéż·Ć0&?ž5žž5ž‹’Ģ’Ø€­żśü%’Y’}\…{`’O’Q’m’ø»žhƒ³߿ȿ}’µ’ż’²’5Ÿž{ž ķ’«’x]M’B’Šžøž«bœævżWżä’Üž«ž$,?’’“”Ńż¢ż$-0)³’Õ’61r”é’×’‡’Ā’fžyž6’%’2žHžażrż ~’•’€žsž4D››łüĆžŁž! BZž;ž$Eōt†eżŠż$ęŲµØžŻž¾ūĮūkCŗuž¤žéūüø—Dēņūüūśūw+ĄhZżzżņśūlü)üwūĄūQZH(üż žzÆ£’l’',ģüéü™’“’”z­’Ń’¶üæü|žĀø1ū"ūtżžżiA¼ŠµžŽžż9ż@źČ«ü”üמ’D`’į ’ ’Ą’B’•x_cƒ’£’ß’ €’u’ī×Ö’õ’ŻūüīĒA.ReżżIéÉ‹żpż@ž>žT0ū’É’ż*ż¹°ˆ’r’6’7’@e’G’õųs~£’Ø’8>8'mžsžĻņŅé ’ōž:fÓżšżožkžlgX’T’’’ė’Ū’z].`žž@*­Ÿ’C’²żÉż®±ę’ķ’żž’pž‡žW_†oŗżĶż‘Ŗ^PI’:’|‚’>’}y]6±ž¦žŲōXM]ž+žĻÜž’˜žzžYś’jš>$džž}ŽJ#žńż8’ ’‡Ź@’W’žŲżˆ’’W²­ˆżBżBY7nųžŲž’’^’_—āĶ’§’m’\’BvÜä’Ųž’’5f±’·’’äžTX#•’”’2-Ü’ą’č’ź’ļ’ń’ õ’ö’ś’ū’ž’ž’ž’’’ż’ż’ü’ü’ü’ü’ū’ü’ū’ü’ż’ż’ż’ž’ž’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’ž’’’’’ł’ś’’’ż’ż’ż’ų’ł’ś’ł’ź’é’ Į’Ą’ś’ų’41ō’ń’ ß’ß’ ė’ļ’-3š’ó’ą’Ü’44Ü’ć’ņ’õ’PJņ’ģ’Ģ’Ó’ oj[W¢’„’Ó’Ń’RSž’÷’@=Š’Ō’Ģ’Ī’(%<@+4¢’Ÿ’owĻ’Ź’ ’£’87mhć’ß’Ÿ’š’ggš’å’!œ’–’wt©„„’†’ņ’ų’„{„„J’D’mwƦĘ’Č’ų’f’a’Ļ’Ų’ šlq­’«’am÷÷Ÿ’”’Ü’ē’qx:4’—’Į’Ą’lwtod_‡“ü’õ’/*ø¶f’o’B’F’މ}ƒ¾’Ń’ć’Ö’“‰jk°’“’¼¾qaT’Q’;A&8:!’’ž’“’wtt’l’ Œˆķ’č’ppš­ß’ē’Ž’ń’é’č’ņ÷Tfžž¤ž«ž·žTU94k’}’]zĘ’±’u’l’'¹žŗž”•“żżo’t’P>ēļī’ū’=’0’ŃŌåīU’^’Ŗ’°’]OĘąt’{’äĖØ’’’öžć’Õ’SD¹”żžęžŌ’ʒ𒖛͒͒Z’W’į’Ü’š÷’%±’£’ó’ā’`j™[žužš’°’ü’ ¬ž®ž¤ć…žž ’“’OTWžRž*’L’zmŪ’Ł’yżtż2’‡’”’‹’xyČ’ć’ųüż“Óė’Œ‘žwžˆĘŖ`“°’śžµžÖž_’Q’ė6IcžCž“¾±’©‡żJżEpJĻĖ’’ožpž–’’’ü’ŌĻžżĀżÕ½’…’ižhž<.‚›d’i’ĘŁt{D’K’^’ ’åżĶżĮĻn‚"ü>üŽ×<EæżČż^VÜńųźŽ’ś’C’9’LL’1’ėž’ĢĖ5žĖž3žLžņōh"[vąśū ÷ˆLÉüöüüżūżÅvR+uł»łåžĖžKę ģ{ś±ś&’"’_K0śHśd."ūżŻżVąŃéĢDJNü[ü–˜“‹Tż|żqžsžLtķż¾ż?ūiūKDY.ח*żAż°ž¬žģ®ŽžČžōüüüˆĢp\Ż’Ģ’ƒ’œ’U¤ĪžŹž‘ŒÉ’ų’<’M’ĮØJGeü¢üžžŻ°AI ž4žŽżĢż°€†npü]üyv’RżxżÓžŁžīŻ…žsž\|ūž’ńÖ$7ĶžĢž|‰†yōžķž/’D’Āģ’’šöĆłü“üniĮžÄžƒ’z’ø£X5ŲžźžņžžžŽ»¢“$żFż&9:-’:’Žž”žź’]P‡ž€žé’ {’i’2-¬’Ā’ż’ΰ¬žž\iČŽĀž“žf’R’*F‰žˆž&ī’źø’ź’ąń’æžūžĪžü:QU…ż?ż±Į<‚žåżĻž”žG…c›ģžÆžžéżN‡i|垣žøł~t_’5’Å’Ż’Ė÷õ’½ž—žÓč›Ē’ėžŖ’’’|”„’œ’’’’’ż’ż’ų’ł’ ö’ö’ õ’ö’ ō’ö’ ö’÷’ ö’ų’ł’ś’ś’ū’ż’ż’’’ž’’’’’’’’’’’’’ž’ž’ž’’’ž’’’ž’’’’’’’’’’’’’’’fenrir/config/sound/default/barrier_end.wav000066400000000000000000001076201513650123000213610ustar00rootroot00000000000000RIFFˆWAVEfmt "VˆXdatad’’’’’’’’’’’’ž’’’ž’’’ž’’’ž’ž’’’’’’’’’’’’’’’ž’ż’ż’ś’ū’ł’ś’ö’ų’ ö’÷’ ō’ö’ õ’ö’ ö’ö’ ų’ł’ż’ż’’’’’„’œ’|”Ŗ’’’’ėž›ĒÓč½ž—žõ’Ė÷Å’Ż’_’5’~tøł垣ži|N‡žéżģžÆžc›G…Ļž”žžåż<‚±Į…ż?żQUü:ūžĪž’æžąńø’ź’ź&ī’‰žˆž*Ff’R’Āž“žČŽ\i¬žžĪ°ż’¬’Ā’2-{’i’é’ ‡ž€ž]Pź’Žž”ž-’:’9:&$żFż¢“Ž»ņžžžŲžźžX5ø£ƒ’z’ĮžÄžniü“üĆłšö’’Āģ/’D’ōžķž†y|‰ĶžĢž$7ńÖūž’\|…žsžīŻÓžŁžżxż’Ryvpü]ü†n°€ŽżĢż ž4žAIݰžžeü¢üJGĮØ<’M’É’ų’Œ‘ĪžŹžU¤ƒ’œ’Ż’Ģ’p\ˆĢōüüüŽžČžģ®°ž¬ž*żAż×—Y.KD?ūiūķż¾żLtqžsžTż|ż“‹–˜Nü[üDJéĢąŃVūżŻż."dśHś0_K&’"’{ś±ś ģKęåžĖžuł»łR+ÅvüżūżÉüöüˆL ÷ąśū[vh"ņō3žLžžĖž5ĢĖėž’’1’LLC’9’Ž’ś’ųźÜń^VæżČż<EŽ×"ü>ün‚ĮĻåżĶż^’ ’D’K’t{ĘŁd’i’‚›<.ižhž½’…’ÕžżĀżŌĻü’–’’’ožpž’’ĻĖJEp‡żJż©±’“¾cžCž6Iė_’Q’µžÖž’śž“°Ŗ`ˆĘ‘žwžŒė’“ÓųüżČ’ć’xy”’‹’2’‡’yżtżŪ’Ł’zm*’L’WžRžOT ’“’…žž¤ć¬ž®žü’ š’°’[žuž™`jó’ā’±’£’%÷’šį’Ü’Z’W’Ķ’Ķ’–›š’Ō’Ź’żžęž¹”SDć’Õ’’öžØ’’äĖt’{’Ęą]OŖ’°’U’^’åīŃŌ=’0’ī’ū’ēļP>o’t’żż“”•¹žŗž'u’l’Ę’±’]zk’}’94TU«ž·žžž¤žTfņ÷é’č’Ž’ń’ß’ē’š­ppķ’蒌ˆ t’l’wtž’“’!’’8:&;AT’Q’qa¼¾°’“’jk“‰ć’Ö’¾’Ń’}ƒŽ‰B’F’f’o’ø¶/*ü’õ’‡“d_tolwĮ’Ą’’—’:4qxܒ璟’”’÷÷am­’«’lq šĻ’Ų’f’a’ų’Ę’Č’ƦmwJ’D’„„„{ņ’ų’„’†’©„wtœ’–’!š’å’ggŸ’š’ć’ß’mh87 ’£’Ļ’Ź’ow¢’Ÿ’+4<@(%Ģ’Ī’Š’Ō’@=ž’÷’RSÓ’Ń’¢’„’[Woj Ģ’Ó’ņ’ģ’PJņ’õ’Ü’ć’44ą’Ü’š’ó’-3ė’ļ’ ß’ß’ ō’ń’41ś’ų’Į’Ą’ ź’é’ś’ł’ų’ł’ż’ż’’’ż’ł’ś’’’’’ž’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’ž’ż’ž’ż’ż’ū’ü’ū’ü’ü’ü’ü’ü’ż’ż’ž’’’ž’ž’ś’ū’õ’ö’ ļ’ń’č’ź’Ü’ą’2-•’”’#TX’äž±’·’5f’’’ŲžÜäBvm’\’Ķ’§’ā_—’’^’ųžŲž7nBYˆżBż²­Wˆ’’žŲż@’W’‡Ź8’ ’#žńżJ}Ždžž>$jšś’Y˜žzžž’ĻÜ]ž+žXMŲō±ž¦ž]6}y’>’|‚I’:’^P‘ŖŗżĶż†oW_pž‡žżž’ę’ķ’®±²żÉż’C’­Ÿ@*`žž.z]ė’Ū’’’X’T’lgožkžÓżšż:f ’ōžŅéĻņmžsž8'8>£’Ø’s~õųe’G’@6’7’ˆ’r’¹°ż*żū’É’T0@ž>ž‹żpżéÉIżżReA.īĒŻūüÖ’õ’ī×€’u’ß’ ƒ’£’_c•x’B’Ą ’ ’’įD`מ’«ü”üźČ@ż9żµžŽž¼ŠiAtżžż1ū"ūĀø|ž¶üæü­’Ń’”z™’“’ģüéü',£’l’zÆüż žH(QZwūĄūü)ülņśūZżzżĄhw+ūśūņūüDēø—éūüuž¤žŗkC¾ūĮūØžŻžŲµę$eżŠżt†ō$Ež;žBZ! ĆžŁžłü››4D€žsž~’•’ ażrż2žHž6’%’fžyž‡’Ā’é’×’r”61³’Õ’0)$-Ńż¢ż“”?’’$,Üž«žä’vżWżœæb«ŠžøžM’B’x]ķ’«’ Ÿž{ž5ż’²’}’µ’߿ȿƒ³žhø»Q’m’`’O’…{}\%’Y’żśü€­Ø‹’Ģ’ž5ž?ž5ž0&·Ćѿ鿌€ģōćżĪż Z£’Å’ŽžÜžk†bžxž@’X’€‡ĶŌ|’Z’ė’č’qk[bw’k’Q’Q’nq_Zķ’×’8’/’n’@’ŽĮ›ŠU’E’µžžžŪŗÜ’ż’7=Ś’Ā’77ĄžĢžēōoy’‡’E’@’«ÉŚ’Ų’3I'żżŸżŒżżž’¢’čžšž-;Üžµž¤¬ ’Ļ’’’—’Ąŗm’z’/ż9ż-d}QLŌ’ä’¾’Ś’ó’ņ’„–/XTŁŠ7’4’ė’Ü’˜”Iž)ž¦’©’]Jtm¦’¬’ŻžŁž¢‘o\ā’ą’IGlHg’r’-INHŸ–r’o’ž ždiKCĆ’³’„¬.æ -B27žž ’›’›’&)^jü’’’›w| P’M’2?vq žžĘĆ’ ņžŻž&¬ŽšÉžŠž’q’.$£”ßžśž×’Å’łüC’&’»’Ė’ź’ć’¾ŸaeFž+ž%8ī’’żļżVa ’’t ‘…IKXžcžøĮ]9½øģåÅżČżś’Ā—(-I’x’ćžåž ąE?žøžŸŗu™žžł"Qƒ®’½’}däžÓžę’ū’É’Ī’¶†źĶ`żTżłžéžq‰’’j’O’\d¢’”’†’~’U’d’ń’F’,’­’ą’ÓŪTN‡Å«žĆžĆžĘžu‰y’m’püeü‹yØžhžłžÜžŸ’É’ī’÷žéžW’x’’’ql+’B’Ēżµżf’7’@+“’}’żŸż°’Ā’8¦”P’¤’ē’™}¼’“’bžuž‡ž’žzn\’/’^ž7žŠ’œ’‘ż“ż’Ųžtm«’Ą’NžKž’’ 94Čżæżßž’ĖŅ‚’W’š§šż žĒ’§’|ž”ž,)מ½žŹ’ų’gü<ü¾Õ‹”׿Ŗż—“Ä’·’=żżˆ 0ü*ü©}x¦Gü:üŚ’õ’%]’X’æü±üÕßF’8’įżķżÕżž¹Ø˜ż@żŠ’h’ē’É’/3ż żN’Q’hh„’l’ōżžI:čž’’’Ŗ’’5;iżżżż­˜q’D’rżżį’ū’b:šÓ4žTž¾’É’./|zŽž…žčžžž¦Ÿżļüųžśžūžēž ŌžęžC.,J®ÄežažłļŁ-ž+žųä’[1ž±žVžmž ūÉŅfž|žs’‡’MPÓ’³’\o/’R’Ą‰"åżžRJgD¬’‡’ ž’¹żčżóó=žzž;f |•7gž/ž|mn57żQżÉķCžóżt%J]†’’õūF’D’4'­ńņ-ž`’n’AEż{ż«©–›Ež4ž—›å’ō’¦=|Ŗ°šÖāŃŌP’%’A/Šžˆž½’˜’]nł’Å’Ļ’ƒ‹ż-żū5?D_NżwżććżżŻÜ),ż’Ģ’Ń’Ų’V7o’h’™‡ƒtžŖž(@Z’p’ųś­’ŗ’‹Į’ą’5Hł’Õ’^žZžŹĄż’£”ƒżbżQt2'g¶U’k’šżćżÜūŠ’‰’1’4’öž’V’ļž’žŁž¾öōżŪżĘœ9;żż 6#t@ü¦ü“’ž’Čž³ž±µhžwžŒż|ż8?4ė’ū’_9med\£ž¶žrmMžž[Q,Y›žšžā’ģ’›ž«ž‹žpžģ’-¾éˆ’I’kiRP?2v‰žŻż€ż;ż»ų(ī’’’L’6’”ÕøōĖż§ż˜žuž @S’|’ŹżŻż¤*ņØž”ž,®¾žģż*Ī’użcżNCœå’ń’½żżh’`’Z žśža"~ż%żĖ0U>±’§’$žÕżŃü„üI‘‚®žēž’Ŗ ż÷ü-A®©³9žŃżĪüuüłŌž:’²¼’Ņž‘’q’ąšÆ’•¾œ—Ś’#žžv’†’æžõžl[Uś’<żżĮŠtڦ±’X’łżåżŠ!¾ēž ’S3ŸŠŁžćž¤ż£ż¢ž˜ž'’õž`’'’Ē”Nfžæs{Śē27bČēu’˜’k]Óž”žžāżśDbSJZ’Q’yuį2/‹\Š`żtżėź}ŸnZ’īžd`’+’bog-',§üÉüŗ’Ł’„Ō?f™¤J(cž/ž[ū5ūÕ„N2ŽTz_Q’o’’|’˜É7’Z’ĻćPĒ„gņü¬ü½’o’®’²’pi"żż¬ž‰ž¼ÕŖćNMbTRh’j’NC}žTžĒ’’^żLż˜ˆÖüćüż„żį’Ģ’-ūKū%&7{ÕŽīī€žEžäüßüv™£½’‚’’ĀžCž[ž6bČüóüK|’{’ĀŁ,ßüķüŗż‘żÆ’¬’xƒJžYžR(žž1 ,™’–’ĻŁ.>Š’Ā’¹žøžä’ļ’ ’[’cJüŌūŖżŠżFdĀĢ{żPżõžŹžłž’0 Æ’’(&7’’™ž}žžžS:X;’łž4Z’_’b’U’Ø’Ģ’ßņg’Ž’‹…1’K’7BÅ’Į’”ż’ż„T™žœžD) ’6’p^Å’Ś’u|Ż’ų’ ’4’Qe—’£’7V’X’„l’j’Ą’]’F’Ū’Õ’Öģ<žcžßŁv’‰’±Ä×ņˆ’|’wžRž°ž…ž Š~śįSHq’’ˆ¾Rn‰ž§ž@c~®ęš’ąžĒ’ž’†’}’©’’#’ ’kgźņ‚’£’;XŁŪ’€’™”+ žž/ū’•ž¦žC>āūü«’¢’X’V’mżzż~v”Ó¶æ|vžŁż‘żžż¹Ł‘® Å’äžÆž6Péöżž ’a’Č’Ī’'Y\XžSžRžFžß’ę’—’–’ žžˆhŚ’Ņ’^0P,ņ’°Ģ5„’”’–ž’žØ’Ä’H6’&’ōūÓū’÷ž]lš’…’°ż‡ż®’Ÿ’’£’Žė#’’wq/K\’‚’K’J’ĒžšžGž>ž±ŸŌžŠžŗž©ž{[ŌžÉžņžīžž’,)`ž}žōIžwžČÖgž€žœžˆžē’@ž5žI5’1’ļ žžsT˜’Ę’"U4Ęž¼ž¤’–’7YH’Z’°r=żż Āļ­’æ’ēø^žNž|’Ly7ž<ž†]ß’¼’’’NS{zPH ;O…ž›ž>žZžĄ÷·Å’’ķ’Ņ’2Ę’Õ’äž¼ž$ķģŠ˜Ų’¶’ żżā’Ü’Ū’`aWsķ’ō’čžćžsdMØøČūłūōē!0Ł’Ā’—u·×œ·óßžüæü²ŃB‘{’»’V£€­É2e—’‹’µü‡ü¦ƒu‘EbbsÜżöżßžßž„ž{žżüśübv™ ĘŽ-Õ’ö†Ī W¹›õś’ś‹©ŗ Ź’÷’ėž’3 D’’Š’Ē’œŗd„ņŃ$D(›żøżÜż-žØ’ē’M(Ļ’¦’•Ø~±ŅżŲżƒ’H’3ī’]™’Š’Œ§¾’’£ūœūĄ­¬ż žhxK7,’’³‹4ž;žSCxž9ž%ĘŪŪšž&’±’ø’‹ūtū—ž’ž*H#žlžx`žaž0”œ ’’żčü0ž,žś+ž/žnžšž}ŒØūĢūŖž‚žA2`ž+ž½’ėģ$żŌü‡ūTūż ’ģ’„šØž›žč‹žĖžŃ kłŠų’’ā’Ś"IER×’ĻüŅüŚédśäś„tž0žę’j‹åżSž14Dżśü„žžŒ’Ļ’'[cžbž(’žžāĄõ7ėžD’ü’Č’Rüõūž’Ž’G“’“’ŖżMżė’«’^da@“żży’W’žŚž Ö>žFž<¤ŌÆž»ž§žužYž¢žš™]žwž“ž›žė'å’6Žż|ż%ū’t’Õ’MØ ’ŲžCū ūża”F’=’‘GĖĀGś$ūNūĢÅXf$Älš’'zž›žożżÓ’˱Ėqüāüw’ń’ĻŠgżPż*®żVžž’2ĖŻĆ’Ž’MūŻ’c eҽ•"F’Ę’Nž«ž¤ÅMŽóBžgž>ÜkUzžŽż™*QFüæü¤tĢŪ™L›üĀüżWżR’ž’`ŲvĘ’łĀłp±½’ž™üŸüż*`’8’ēl䝦’e’Ŗ6;Š©ótžAžKÓ”……ÉĒŽ[üüĆJ—Ÿ}»žüž2„…’£’ŧuś ū8 Ož•ž\L=%ü@üɰɞE’}3żQżØżŖż~v’¾’…’ŠžKžū’)d“!’¾ž‹ž8žE3¤żżżK’’_ū霤żž 1 Ōü żƒū’)YK’Č’ ’’×’²’; ­’¬—Ŗüąü"ų\Yœ–Ųżųż·upżČżj īżžU7ā’ 7“ož(ž×qčų~łĻŽuĆūoū{7÷ż ž›ąŖžnž¢ż?żØėtĘūņū$ņ’Az—P`śøśØ=žpžY čBłYłšż¬żż„żŌ©’©’z’d’7£0G¢ž-ždü'ü“ø,žĻžĻž ¬FüWüÄĘĮł1ś‚žĆžąĖ’Ž’{śĀś¦ĀŁü]żjż-żkåž÷~»żŁżŲ’G’’’’4’P’2©NdųüŸüŖžsž§žožćūūžgžü ŗ ź‚.õTōųü]üā’t° ­ xż2żü½ū]Wŗż}ž°’Øü ż.Ų”‰¾$ūgūēžæžšśŪśü(žkž¹’Zšyś£śūś£ž‹žÕÓź’vOž°żPž żģūSüyqLż^żžÄż ’:’ōüŃü”gfü6üSŸ1"’5ž^łWłšņ›śĘš:ųlóō· $ Wū2ūOó1ōNqüqžĢžŹł5św5Ųh\Ēˆ’`’J!@£'G’ŲžqžžF’e’LüĶü•’g’ķžžūkū°Š×Ā>żażķüéü¼żfżåMf„ž”žĻłrłßĒčmk.c’Uś†śļg; ü ü¼ų‡ųjž ž ń1ü±ü.ū:ūž7at½üżŌü¢üöżœżjžĄž¢¢ŠŽū6üÜŁ²Ńšū^ū/žźž1yįŌ[žµž0ž$ž±3nü»üģž{’’‡žĻžhžŖžśžŅX żōüļ!ōŃG–śóśī’0ŖNżæüåŲ üGü2d±žcžCż żŗł†ł¼¼j IųĘų¤ūy³’źķģxR\ł’ų‚ž»žĢźü”żŹż@ž@ü~ūļżźżŖ—K}ŠöŠå÷JųнC%ž’s…DżŠü0ūžūˆņ”’žĖĮśøść  P)’üĮüšū‹ūōäNƒłüł¼’:’xäĘ7æśŁśĀüĄüģžvž.^/õ’wc1ž7žežÆž|Ņ,’’/Ū§ż©żöżõVóž•pžCžŲūœūiļ^ža’ß÷±÷ÖüŚüĆż„żŽżņżńuNMLŒf„üżyK¾qśūēä$Ęb’®’{Ž’ę’…¢zżĘż/ūõū½ T øµ#÷‘÷°ž#žić·’į&,žyż²ūRū)°ŪƒĢWņöq÷K.r[Žśłś×ž’2ž žoßļśö÷ž~žD Ēž¢’Uó6ó?bÓ° Ā’’—ö€õĮž|’ŲęŹ%ų9ųr’”’‘Aäū€ū!ų„ų© # Ęņ’¶õĻūżĢ  KmFķ ķ%“ X 7Ē*ń^ń†ō…óėūŠ5øūøüü‘ū( ‰ Ēōyśmś¬žužā f ÜŠĆõėōŹ’źū*żb 6 ;õķ”ģŖłśb°i¬öbökżCż­²ŗ,”7ēųƒłxY˜ ® ’'$żƒżekoükņ‰óYŒ’[üŌüłßśa ‰ ž”üzó½ōwdó 9ü³ū’ų&łÕœ B ¾žw’ŹńRņo;æ.WłPūOõųõž’ēž‰  hžS’”ī^ļ’ųžyw†ūüéüXüīł#śF‰kśšłł łWp%’ų’Č÷‹ųéüBü˜šTƒp÷~÷aūOüóž8’Ł9Ś鹆ńķüxżk¶‡ūOū>£ćČāū÷üģG¼Eż–ż€MچŁōxõōż?žįśžśŒņĘņRѱ’yÜ)žĶżT¾²ł«śŻż×ż1”.ś+ū‰żĆż?\Fõœõžœži¢“śGūĀų“łżęüÅ’ų©’č’‡ł=ś$ž_žjPłqū¬ūTśÅśXøž ’<ųEų®üü÷ūPżų„:ž„żēö4ųĮV§ß•÷Ä÷/½’˜ž%’üłŠś“ĶŃūū ż*ż-‚;’'åüµżė:?SšśĆś-MūņūOż/żœW­ÓĆĮ…#øłnł ¶ČĖŸž ’­ā‰žgž­ł£łĀGŒśū7ŽšThŌū©ū£÷ņ÷³ž“žõ7M’ˆ’¦ż‚ż$$ü·ū© Łė-°PņÖū­ūO—“1€żUżdł>ś™…īµל_ūéžÖżÅŽü›ū”ŽPÜSĖžd_]ųĖ÷,zH’Įųųs*ø’™žö ·^¢édl»o÷ÓQ` Ģ N ž†žŖÜ‘µ’­iż ‹„| į˜īš ü ø'‘žōžŌ‘U  Ž7Ńū ūojv’Ŗ*_^:’„ ' =üĪūŽ’¶’÷9ā’öž€“ż-żW6†8į’’;üxü6üü’$š/Üś¢ś«żžżUIיEü`ü ž`żSćSń—žÆžŗDŽ’4’ų3é…/’s’V’V’D %>’Ģž1šziNļĄ’‚žWžW’žšżGłBżyż-ūMū²—L’?’cś ū {&żżœż1žøn¤é7ż"ży…Üžāžņū<ü^žsż i;ū2ū’ūÄūÄ’8ž ž ōOL:ż¦żŗżž}’ƒ’8ūėśä§žž5ž ’”łśt+’l’ÓłółĢž>žšü…żŸżnżŽ`łuł\ž?’ n’>ē›ūėū‡ž’žµ’ Wūbū&Š«üėūÆ’•Īž ’į ÓŹłū(üįmĮ ż1żå’ó’óžO’R[’ā’ĪūŲū ś8śWeOSūüa]ķż“ż•‰žÉżÓ$ūūY’§’zżķżåż,žFü,üJžnžŃŽÜ3¾’yłełœ‰Ō’¼’ūüØż¶”<ż"żńś=ū€Š“Ō»žž6’…’ŻśMū¬¢÷ŪĶżńżįśś¶ąžž>’Bū\ūD’ÜžīØ“’Ž’ūlūĮż¾ż{žįż$Į’³’Ń’±’#ż8ż„žĘžØ’’‚’’FƒĻŠ9übüłŠłCśō’E’„żMż–ü^ü¼ žõžń¤aŲØöH÷!ž žbü,üĖžļžĄ2C’õp»ü‚ż‰óĄ’k’’ś˜ūöĘ’‰’ī’DF’ž’aC©ÜŚūRüžüŽż2 Ī Ģö&÷`¶’†A W¼Ä¹üüĒüyüö¤ćZŹ’^’c÷ņ÷S|‹–ś÷ś%’t’užĪžé‹Öż ö—öō@F>ū4üGõĶō  Ā'7ĢžÓżŽööõ! ł‘(\÷w÷Ŗ“/½śtśąųsł^‹ ‡ ØÆ’ü}›üöżŻŃ©’ŽžīČķ+Į³  "®`ļtļ›÷xöØé6śśŌū¬żžüų ~ Š¼Šśøś–’e’m  „t…öpõpUü®żø -2¼>ģģĪż!žPŅ`g÷÷£ż|żżƒõ®žg’±łśß±† ę īüūż„’Ų’öšÓžĀ’1óå󟟳ܜņū„żœ n ßś¾łlōéõ’3@ZXśųł³ł]śń Æ j ƒūXü1ó…ó±UŲ©!ų0śĆõö~_l 1 ĢśŠū{ļš8*ŅūUünü·ūYśīśVĖzNłžų<ūļśē żæżAų’ųĮżŌüܐXučöńöIüOż{’ƒ’ōeįKDšŪš1æFūßś’ózeBüżv…F’°ü2żą“ļ³Ÿō.õa’’©ų\ų¶óō±=Mh@cƒžŻż-˜”Ć|ł‡ś ’½ž¼lłś»’Ü’¬ĪmōŲōoŲ<mźłÄśłŗłņżąż/\Ģ€qžčžł:ś’=’€eqn­śōś<ūØūŹģü:żGłCł}"pś“śśżL’ė%Bü ü}÷±ųAµ‚x÷w÷™DĪüjż’ūü­«Zś+śŲžåžż] ž8’ļżsž¬c„ūYūOoś ūčž©ž©{¬’Ē’×źWļŽł!łŗg‰W’Ī’ÖļÕü¾üįśÅś÷õõsū ü&@Bm²śuśųŒų’’Å’ sĢżžR’2’l€;ūŁś"‰DęśyĘū±ūŗŪąD*ü]ü8śŪś(ś‰–źł@śšŅ’čĻEūÉśŒ•½Į‘ ·÷’ö5žĆüßłšł å’ÄžFpjÖ’Zµ.•‘[ńhžŌ Y f’l’R’¾’‹ņ’B’Tó‹«”ÉĢE™`¾t  ū|מU’é]¬ š t~üÜūō¢w’Hž…G9’®ž1BÉP łśpś¢, o’ŲJ!żüxy¤K’žŃūüńü¶ü Ÿ§’@’¦śsś”ž•ž˜É’˜’ü1ü<’Pž? 䒃Ӓ̒oóX’’¶ąó}ąžO’k’K’iam<’Ņž§’s’Ę5ī„Ūž_žižƒ’Sžžp?äūüĪśżśi7fžqž,śū™bmµYū ü}ž’ŲüU'üŁūˆÓŅżåżż‚żĖ’fŽüü0Č€śjśXūęūšžh’œ’q’‘Ś8”śū‰’<’1’±śšśÓjüµūÅülžVųXųĄ}tż±żł˜ł’m’Šżžˆł)ś•ż‡żē;ķö÷Fž¬’_ż^ü3 ÷‰÷̜Ķż/žū:ū›UœśĀł§Y(żż—n%ż9ż¼žÓž‡’Ó’ž,’cüøüg§b­ĘżążŁŽpłłÉūfüūPUżóüPžt’6ūŠūcżWżæ‡ųŖ÷„§„żĮżž¢ž_’’łžłž`żĪżéü—ż~żĮż,żDż‰ž¾ž¦ū†ūēśĻū–ūšū‡zšü˜üzł§łŪżéż€ż/ž‚śvś(BĆž¤žPż.ż'ž¼ž¦łŗł³ü\üIKŪžŚžų}ų®hžžĶż:ż=żŽżF’ ’Üž‰ž^üFżķ’ß’Vś>łĄņŅüBżnõ õ‰żŲżÄūņūŲ’»’°’ūŹś^übüē†n’^’żżZü–üžzž#Ż’lł’łŽū$üēżÉż8‚żż"ų_ųmžRžÉųžųążžżśüe’-’"ūfū4ųhųkżLżjūKū_żTż$ü üÕüĮü$übü4~ŠūXūKł)łÕžńž)ż“ü@’:’/üąü{żbż•śUś°śūķŅ÷#÷Ż’Ÿöü6żgżļüyśżł±Ä’½ü ż§ż[ž“’ ’~ž^žśŸj’’”’1’Žł'śbłdł…’Elīū üėžēžÅóUżDżiSŅž£ž‚0ŒDŪ–HüĀū CŽĪ“żYż[™Ćūßńé°Ų’”’’B’§®E č~®4€ĮĒŲ‡ž¢žež,žä¦ōė2§±ó›8¬ • °Ųøg~²ŗĘ§M3£ž”ž½“sĄ”3›ļÓÆ’[’ÖbķĀ!ŒžB0žSžś,X¾ÄS·PüXür3č\t Ę ²E|śāś-Ż&Ek“bÄ’ńżUž³ _ 7’P’ Ī IĘ”ˆŠźÅś“ś”µ"Ē%±ē *ūČū±’wÕLčDŪ™’o’Ęhƒż3ž_ųÕųü&’RžržÖ’<§’’’ż@büÕū’žžOPųł¶łŖż@žŖś˜ūŗż żŖų;Įæ÷“÷Ė`Œ Žü3ż@’ ’Hżżg>¼÷ ųżÆśŻł‹žĢždvĶüUüžž@ł¦ł[”ŅĶ"”÷Ź÷ł°ģų*ų4’Ō#Øü@ü’É“­|ńøń`öZ÷Q’ßży2ł¤śØūPūÅžÄżożZžy„Čś­ł„ałßłqł6łP«Ļüoüūžvž ’Ą’Õł¼łÕ’;’FŪ Įńéž9’[’µ’ÓżQżÕóžSžGöögš’*’Büü!<²śœśūYū<h5hłołī p/ÓüĀüo¶‰/ē ü¾üo™Ēżż1łMłŗ Éū<ūS’D’±žQ’¢żĮżŅ’¤’,’ęž­ś…śßł(śø›°a˜żXžzūČūM9’¬üÆüĶś§ū·-~Čł²śŁžY’KUłł¾łķ÷Äų­ūHū¦¾śµū«tŽžxżFś!śOūĻüüqIüėüä’Ū’EĻżŪż_éWžIž™x^öĻDÆ:ņPĮ’õžQ’ˆ’Ÿ ? ĻqhöéöŌŅ’~žī’­Ē,sż;üĄŁ¦üż­’üž*X+Åj’µ„"Hž%žĄGžž©šŸBŹ#ś,śWČpo£?’OüSżq›“Uw“Ņ»’Ć’–}Ūc; ! "Ņńü’ü]ś>śĆś™„U5tšüUüT’|’ŁiV†s‡ƒ9ņ”’|’.ž¹ż–żŌütĖ’f؁¹KĻ6·Ū’’ļü‚ü|…płäł0ž ¤ Œ«’#č”üĻü¶æŒĘ:_ƒ|ne’{÷†÷=†׿–żRī£ĆøżżÄ?’’+DŁ£vł=ś"­єśJśŠž=ž#É>wAūüfž±ž{Óm’Üž±š-qž.žÕŽżkżĻ•üy÷ˆ÷%’|’—|ūŅĪų¹ó»ó§‘S’)’*żBż~·;ų ų‡śˆś^æ’‡’„>}’ą’/A9§žVžy÷W÷T”4_ńżžĄ’ķ’J½ü„ūÉ]ŅüIżłžĮž qūnū䒚’g“żŗż(śĄśā’ņ’Uśėł9ūUūK÷i÷ƒżóü ’Åžž¾ž÷ż~žÓł~ł’ŚžŅūÄūgīśŸŚü‚żµ’¼ōĄüņū“÷u÷1śīł*žž?żžAü˜ū0’ožņ÷õ÷„üœühth’ė’Łż6žĮ r Ž’.’Ńųģų›mpżżJ’Ž’°ż/ž¦ż<ż’ūžūū,ūNü”ū7Żīż„ž…’ē’Ż’Gü üś®łQÖ6’=’4ųęų\ś¦łVłžŒż®ZÆųzų¾žU’°ü żŌłžł÷ßžšžĻś:ś ükü<ÅY¶»¼łįłØō:ō*'+ś…śõłķł åŃżåżī÷ų•p ’Ōž'ścśŽŖzū%ū«üčüE¾ūVūåūęū¢śÖśöĢ4ž/ž3łqłļüŪüüęūÉ’ü’Sś_śr’B’¬žæžŌżłż›żnż”žqž-žvžw§Ėū®ūVüCüÕ’¢’pMFž€žćł'ś'’%’ŠüÖü’h’iśółž’¦ż'žŚEĮžžŒ}“żZż¶’Ī’˜š÷÷F’’ężįżµżæżFi”žBżÜüÓ°\æ]’£’pkŒūgū9ū 8¤¬0h£rī„”’0’s†üsüDžæž, ŒˆVŌķó=G˜uYPĄE4’āūü’Śž@'˜‡‹k…©wbr&™ ¾B‹2~]r’’tDNčē™üżĪ’ā‡ó·h’”’ĀŽę’Ī’3[<T52ūūŖž“žwž]©åļłśq’‚’µøĀž”žšįvžKžKūdūqé¶’’’ށJFŹż’ż ¶liO=¢śzśhw­¾B’`’Ržƒž·DüÄūsŌ™“üTü ’žžYBH"’żvżĘś9ū¦Ķ„śJśĢżąż9÷e÷Uüēūk’%’§ž%’Ožŗž,ūūĻž¢žqūkūł§”3Öž8’įžŠ’“™ėü2üŚų©ų®ł|ł[żż ČžŽž}üütµ’†łłŖū¤ūļņS»„üżč » 7ųų^H׿nż-’’'žÄžĆżhż¾ū­ū'ūhū·ūūü~kž ’śž›’JK¼ü™üś£ł–’Ģ»¦÷Fųæqūåś'üŖū¢R;łņų®ż0žŻżTžłĪų*>"÷’æś śÓūü–’5ø}n]®ūćū\óųņ-ünücųjų•fķžūžt÷£÷!ś³`ų’ų FLżģü=ū^ūD«ęūxūūšśśpśĪ“¾’’LųšųäūīūįśśŠ’’’Īųżųņż„ż~’‚’żmżšż‚żžĪżŠżža’’Éü üūūPžLžgžWžž%žŠųēųŖž—ž—ū«ūĻżŲżß÷‚÷µ«Åż*žŽ’æ’Ó˜”ūsū[ot’=’pžjžõ`©Ē’¹ždž;ž•żż’-’½ų3üüzQ:bŪżäżWR®ś¬śūžń¼dž]žµ-’5’+‰hĒpõżžIż•żŖ_rīÖæ·ÜB§ßˆÕ`żGżœ]€wü…üQ™cÓT½¤’4B U ”gF’’ŸzŪÄ€Å>“Ķæh9×óūżūŽ˪;}Hūū" š—ÜćŽwķžrž2 ŗ >6žŠż"Ē[†ŃH¹ŗž’,ŒŸżSŠ “ ‰ž×žóĘ ŠQßłŲų«­²įéfЇ؄CžśżģüŲüż(?ÖūÓū†Šœkżņüż’£œoĪÄM Äś ś­üƒü‘¹˜ųrų]œf÷’÷ūŽśžČžF.sżÄüĄj?÷=÷ĶŪŁ‹kQü’ūĻų³ų!żŃżKżjżf÷÷¬ž£ż_żāĮj Ē 6Ž~’V’TzÅQµ÷C÷š › jų…ų»ų’ųlž•ž‘q{’’ī g sb×öqö%Ģ÷ØöS*¤żžńžņžĻ•¹’®’Ap(½ ¾ †}YōÄóƒ ä ™ųdų<n'”’c’ŲŖū]ūF F »ų£ųØÜ‚õģōÉ iß’Ź’ö÷V÷m8ĶõØõć²1ö8öīŸ»ĘN0ūżĒż–šˆļz  ²·Q’N’Š’Įö7ö³ūpūŲ=‹eøüŒüŽ’ Źł“łüĒū  č )öĢõž*žż\ż‹żxż>žKžÄžøždūūłK”=ūūĮüšü2ō\ōŖüÓüģłŚł¢£lł ł1ōōæ]łXł#śŚł¤żŪżż¶ü7öõõ ż¶żĘū„ūåņsņ]­ö•öJ’ÕžČž ’9õŠōśśĢ–bł9ł«łDł Ł ėü½üÖ–Güsü¤żžżŃųł÷žQ’üDü±ų<ųMžJžCżMżØžŹžŃśeś£ūūś(śgeÕżŻżSžažÄū¢ūĒž’ż(łmų [ _“õRõßüżś’€žaž6üEü$ćómó~ÄrĆõŻōŁ4³žčžf$×¼2:3cŌżĢżk’¢/ž‘:śčłÅįĒÕåŌ½·łłßŌ/’’ė ^ z’V’ļ’ļäömöw Ó Ęb÷÷LdøŠPBb | żĄüæżžśKn’ ’å - ßśĮś§’*’Ī’’’/QQ~^Ž…üüŌ|7āµž’.Hé®üµüźær  §c³ļEśśY ¾ ˜ žINņŻō@ J ółŹłÕ’é’Bk’2 «’šżÕEµØ[d[en§øTL>żż# u } t Ē } ”¬æ­¼ į Y ” üß — žQ‘­Ų)źQ_Eyüw‹€ ` žOže’Ć’Ē ę%> 3 й° Y Ń 6 k³S Ž N ŲFz ! ģ Ÿ ½£ŸF’É’čžßžČŻh ž™ś, #Tü”ü*„ ?É ū „üźū†Éœži’xž’ž-„‚ž žIŁÄil’ĘOūcüŅļļś>ł"’6’Ė$‡ » ±ņSņ(’śž4 ³ jõŲõ6 Ėaō„ó‘’ģ’»÷ˆųĆöTötž3ž0ļ¤ļĒ ¶ nöPöį÷Ė÷1ś|ł ’Ā’§Ņųłrż2ü·õ3õ¶õ#ö¤ĖłPł|ó±óųūmū.Dšü]żGżüQ¶ųś2ü¤žž7ņ'ń[ū"üõ‚õYłöųKņ~ņčššvüÅūŁšcņgżžę܉īNīŅž’ڵpé`é>ńHńų÷jų÷ūYü~ļ'ļ£ōō žŠż±ü<żó7ō…%}ł¦ųJģ®ģšOśŚłžó‚ōüī3ļēŅ$ūČū‰ļ ļ°Öńöń¼÷4ł/ż“ż¹üÆüCśś0ųćöŲ ~ 6öJ÷žūéūń@Óī/šrżsüŒ÷ōõ‹÷ä÷”żšżhōÄōėCģķöĘöˆś9śźõžõvüžńģ)ķ•ųÜłDī+īšœš2öœö=G’uōōvó]ņŚ?Iķ’ļ½ūČüöwōē’#qųų`Ųšnń‚źyė… µļ÷šuū¬śźüģśųöB÷?’¬’ ņhń’ųŻł÷‚Ź’žTśĪłG‘ūDūšõĀö„õöV  żö’öõžCžKž‰ū_ü»īī8 é“é3 Ÿ‰LĶ’tų Ķ Łīīœ Ī Õū”üśžE’ūhžŅżē÷éQ„5Éa󞣒ļžĀ’Gč ļó-ó¤’!­  -žĘžÆńCņTüĖūŪZś!śCf M  G1“’’hü¾ż/eg§HłæųYHė~ŗ#ųUų¤’äņWōˆF£÷õ3ööč_„ś:ūK *óūņ¤ ėØˆOĶ’XX÷ŖųŪ4’ ¦) ].j?ż’É÷…ųŪV«żĀż„Ke} Ć ¹žC’\ ! ¾°%żf<ŹFR  æŲ xżtżhźQ9å5H ī žœHł§łŠgfłC½ˆśś …  h ķßł±÷’Z ƒż0ółæųBŁ"[K ¶ź†ėGŸŠæśŪūöyž-% äןž”ž i šHņæœ ^  OMś[ł^C Ģöų ƒüóņņKńš÷ń Ņ /śćłī÷˜ųLLżpüZŻjõEõ„Ś$üÖüķ-ć ē õčōoūPüŲłSś4ł<łčüņżńÜ\.ėģ ø’Eōõ ŠØóŽņ4®ō}žn’‰Š@( č7ōŒó³ ` •õżöļŅš’Żžņ ń ­ Äųę÷u Ķ ”ā)ćėż’K÷ų,ļķīś»ųÄśś³ Ÿ ŃčéŹéņāóŸžz’…Sķåģh‡‰õŪōīķåģ^ķj6’bGõÕõ— e‡ģāģižóžõ@ō -„% €ż\żšJšµėµėż–°ģ»ģ"A`ļDļķżņż­É&ģ0ģäć=ō<ōˆˆÅģĀģ:÷9÷¬ž©žäßāßKšJšżēżēõžöž“ļµļ  wķwķŁšŁš<ū=ū¢ģ£ģŻŻ2ß2ß> = #ą!ą[öXö'ķ&ķ%&ĶŠĪŠĖĖļÜīÜ; < AAūū»¼¤Ģ¤Ģ£$„$!Ų"ŲĆĆä÷ā÷éėäėfaĻ ĻECDCĮÓĀÓ^büüV _ ! !Żćąć4838kŅcŅf[U÷J÷"iīlīŅÜ÷óōŁę@äHä±²]X"  &²åØåśõ‚ōƒō¦$­$yŪƒŪźń35¬ńŖń‰†õ{õJ-G-E×G×#”ķšķ„ܩܣöŚövģqģC9ņ}s63„ż©żŲćšōõ„µŻżęż`cźćĆ “ -ų÷é÷wķļG R śś“¢½Č')GD»±É¾ žžĢɘō›ō& + jp_ųaų„¦øś³ś60qłmł( ) * / ś~’‰’PöXöa"c"ŚōÕōŁżĢżÄ·É Ā MGPüRü”›ĒĢĄ Ń ±ųÉųĘ Ā » £ ŒüŒü²ż®żśśœų ųÉöĄöģųüųö qRŹĘ2Dš*šf‘ · ±ū¹ū<7’’‹ž]ž>8P — QųPų}łKłÆÆ÷żØü„ü‘ņ“ņƹ?’]’ŗÄpQõóōļ÷Ł÷žŃžPÉśœśÆŽNšršG1Jł6łł÷ ųœļ™ļ3:1`ģĪė1Č<öwöžlėüõü­ź«źōqō ‘ [’i’±żž@ł(łścśN÷Æ÷Ąž-žŖü@üö.öc T Fōō“ģūģø Œ /ō$ōßü’o’Nū¦ūJ³nģZģU«ŌŠx Æ÷Œ÷ßAö.ö}ą®ÆŹžž%fT’ŚžkšŠšZžµžiĖö«öŽ!łLųEū”ūąžąž)ņēńd/uū:ü żŒü¢»’žłčłĖžõžžKžHņŃņ8]āÆšōšōQ°’1’¬žH%Žļ]šŽ÷÷ĪźéLé·APžZžK’®’üÆČļ]ļŌ & ÷‰÷IūhūŚžĘžÄü7ü`Ż’ƒ’u·Ō‘J÷ ųK”n”ķpķÉF1Ź÷iųś÷$ųŹ’i’–žÜžõ’’¦ ; @żĀ?«Œõŗ8yžÉżQųā÷… … ® Ł h÷×ųš’›’[ ; ˆóÓōq s ÓļŌķ‹Žü·ż6Ä Ć¦łł&ÄTż[żų \ » { aų>ł×ūĀü£¢Š ×ÜR . ÓõÄ÷tAčłś{ū  A t ¦< ž>ž~r+Ėå+D X  Ģ  ė żĀż¼ŪĆA ^ć(!§RQłŁų*©J 6 d’wż€ n_ī , É Ežü,9ųžÉėżµ’<ś—ųūiÉĒ ƒÅ’BžŠóĀō_³ķżß’GżżØ«’!ż/=n¦˜—ī¬š Ø fK w ¶ | wś0śÅų 'óÉó] ć łłŚžqżk¬Dšń*wvšQšŗ€l=»ąšž=žśłčł…%’Ģ’1v+Śč Ī *š÷ļ0+¼ółó³ŅäųŁųėūÄś5 1 {é[ź† a ³öY÷Ćū5üLøAó§ņĶ N GeüC$ ś ^#A6hõĮōß䄟Zģ‰łXś>ųj÷µł’łyZżüü”Cčß©ą–«Iķāķ ÷wöęō„ó«j(/Ōī£īķi±ėķ†Ėfö)õ=õ`õœißõqõŃ’sźMź– œJüaż~ütüåŌ„ģCķĄÜcó—ņ ‰ `°œž|ž”ēćē\ų1ų7Čķėķ ! éņčŃįÅöŽö¦ō¬ōĮæ…ų…ų55ååįņŻņāćāćīīæģæģżż’żgńińu w ÉāČā?ż@żļļ%ü%ü( ( qāpāc c aŲ_Ų‘žįüį}}œĆÜÅÜšš¶ÓµÓš››ī›īVWkūlūęŽęŽ‘“ŸŅžŅO,N, ŪŪ õõĮė½ė©8Ø8‚É„É×(Ü(ęę+)5)¢K’M’‘%%’Ó‰ÓÆ(£(ƒēvēØŸGņFņÜ’į’ „ž“žP\ĢęŅę""éõćõõ˜ģģS÷I÷E B Į’Ā’†ęÖļÖP%W%xėzėOM{x›–œšÓŃÕŃBFSŪYŪź“źļļłłŁĪXžKžČĄŹūÉūƒˆĒ Ō +ō;ōäóüłśļšŲ Ē üłėł)“Ž[`ā ī ė÷ü÷d r ]e  ¬§ ž H>—’’¬ō°ō™Ÿ*ų0ųUV™ ˜ åżŽżhbSöOö–œ}†JöUöĢŃóņ§ī īŻŅxlކ°®“’·’ŚäśŒüüww, & ?4ĖüÄü2ü.ü±ś±śv÷y÷¦ö­ö!ł(łPSÆ®ea1,Įī½īA@ORĻ’Õ’Żätwƞƞ  ;5āńÜńIžEžĆƆ‰÷łüł‘÷•÷ēė3ž3žŠ Ķ 5.„ōōĻõĶõŲŁ@DŁūŽūŌŁ‰šŒšų ö kõdõ$ūūßķŚķ xõxõ®ó³ó”Ø>÷B÷(*|õ{õøß²ßõžīž˜ ” SśQśRRYń]ńüüżĒųĢų;=æś½ś¬ś¦śż÷łč÷čvūtū“$ń+ń%’ü•üų ų rümü@ó:óY W £ū¤ūŲŽGöMö•˜$%. ( hžbž® © ”Ž–ü–üNSŽų—ų‰‘•÷÷a]Cż<ż‰ó‚óąŪ:õ9õ{ōōRYƒķŠķņ’ł’"ż"ż<õ7õåŻÜšÕš‡śś ł łóų°·­é“銾ž|ł~łėüźÄ¾ŁšŅšŅūĶūÅĘ ķķš”ėėĶīŅī«ö«öē÷ä÷d’]’9ō/ō-&\łZł¦ģ©ģ™ż¢ż!ė+ėYėaė` d EöDö&õ!õŚŅļ ļ8ż4ż¶¶ĻīÓīŚöįö^üeü§ ­ ֜לa`ėėēėųšöšļģżż‚ėƒėac”„ęčACŖóŖóöņ|łvłOóKóKK¹ ½ xū~ūmüuü£Ŗą’ßkßdßD:æā²ā“ķ¬ķüüŸö¦öą ģ µäĀä ī)ī’‚’;ź+źž ž¢ż£ż«ņ¶ņ- ? RźcźJU¤õ¦õmóc󵄌ēŹēaķSķOŽKŽā’č’oč|čŸņÆņ|żŠż•ņņČåĒå÷šæöµöū ū˜“yßxßåöčö ®ś³śœōō0ż-ż}złłÉ Ē Ā Ä —é›é»Ą’’‚üƒü÷÷%ų#ųŌĪżż  ™˜„š†šˆ‹›œ  ‚‚o÷p÷dųgų\_68÷čõččųįųeZšįęįŽ„ żż+Użhż.©²ĀæqabKU$<$Į°ÉūÅūx„Öļ}™]żtż²¼›•vc¬-‘-s]ōMō‘’ĢŻ7Pš"³"Td33„uĮī“ī®±_p $k›¦7ž0žōŽ­Žå·Øäģ† ” V { Fi„ūšūčęcKź”wˆśiśNG”“3YQdģ‰ģ:K X 7 ²‡Ü ø Ę%³%±ż¶żŻÖ÷Ön‘„łÅłŻūīū‰*…*āÉhGžąęÜMńYńÜģłģ‡«!Ü>ܙō”ōSüCüzōUōPū$ūć’Ą’õfv@iźļš+W÷÷ ų÷ Š ųā÷ź#·#Y:N n ‘ēĆēĢķīźž’›(¤(;ū$ūēŁęōÄķČšŚŚl€¾ńéń,ć\ć{::hŃpŃDZŁ(łQś0śÄ¼ 4 ŖłŲłl££ćĢć””ŠļuļMóó+čīēą­%żżwĻ„Ļ:e¢ŹßŹ—Šń4ń/ū.ūšżėÅė¶ { ūīÕīųųšų“ Ģ !Rˆė¾ė«ńŌńŁę–„Ł÷®÷®Ž}Ž÷ūĻūļūąū¦śµśkŠ‘ŠĖŚūŚøāTīhīXėLėüō×ō? l > čŻĻŻy}(H}­_ģģ\Ü}܊%‘%•€ŹķÉ].Ó)«)‡īuīŖ°Łåõå|ą¤ąõźėžżž“ļ·ļbS“ ™ ”w’|ńé`ģiģŠćŸćÆĘ2Cų’?:<+ŗ¦įnįż…żĄģĆģ  ü“üģšń UųXųMéEéyąhą3^H\L€}GūPū{„ź źÖļ®Ā<&C&ŹśĄśÆŽšŽć Č ė ļōī& ¶ĮŽĻõĻó ń-ń/ŽBŽHK‘„.!õõ| e Āøšī ī’ō¤ō·Ļ5L5ż>żA÷<÷¶ó£ó„i¦ꞎžcģkģæ Ō 9ąWą%āBāįāņ⌒Œ’¦;’;ļĪLč(čZż?ż .ū8ū]y Ś2Ś0śQśM c żÕÖzšjš¶ĪœĪUģ3ģųbų×ņČņéÜčÜŁé•żÆż›Ī¹ĪŲōņōvļ‚ļ““@ä0äŚåæåõ.•ü‰üÕÕŁļ²Ņ”ų·ų“’Ģ’>ōEō7.žóżąźæźįłĆłQ ? ‡ģ‡ģOó_ó/J)+ćõźõOH0  śżēżĪĄŚż×żŠź×ź8ųDų/ < ņłśł ļćŁŽĒŽm]ģąčąPģYģm‚Hųeųüü#õ.õ3ś+śÕļ¼ļj F u Q hRč ē ŠÕŸÕ“ ø ā š’¹ēĆē2%uW–pnP©ę›ęs"|"ē ;ż\żŽŻśŻ›Ę¾O6) jłOł*!ł  Ģķźķńüżhż…ż}†k]äįćŁ Ŗ xŸś™ś 3 ģāća‘VsĻ Ó & äķć?Øü‡ü3D(L3:3xį•įŪčäč4 & y.Y. īĄŚ§Ś§¢;Pļ.ōUō»šÕš²™žęÓęQ  Ÿ'z'PEDåWå.ģ[ģ;µ'č'„ąĄąŸ œ ”q[JźźNń$ń' 'ąģž Ć yė§ėåįłhj^NŃų·ų…ėjėr a ż¶ģ¾ģ;āE⣬ląnąÕ%Ī%āüÕü0Ķ%Ķ žGōOōˆœ¶ Š 1H<ŌIŌåįģ×]å<åÖö“öźfZ÷$ū$öś ūĄėąė)Ęā]oźź¢ū–ūėÓYŚ<Ś-ģģš „ ŌųĘųKöIöšō£ō4šGšB[2’M’e}ōęēŒ ‘  –>Ś(Ś“ö”öFģ$ģōŚĪ Ć –ęœęĘųŪųØšČšĘéÓé"śśŠīrīüēūH8OKmłqłČžŌžŸ®Ķ Ų ÄłĘłLH0ļ*ļāßz{«š³šr~×ßäßF"N"ĢõČõ¢Š’ŠÓ'ŗ'ņėŲėōįÜ×_ÜmܰĪšĀšMōpōæŌ ü üŌ¾dÜ>ÜķĆŁ¶Õ Ć ų’ż’ĶŪéۊ“0­ēŹēėóżżT’5’0( (’ŻāŻ„učģž&ž/»ŌŲŌō  Ö Õ Īö½ög M øųžųÆ łłśłšéź"=vóóŻżģżkk&ōō/r T ˜÷‚÷Ģ’É’ĖÜ2Pk  źūüė÷ž’ō’÷÷Ś÷} X Mė,ėæ«ķżķżĄŌ$2$•ė¶ėJśbśMžTž2%cÖEÖʰ G’R’g÷~÷‹é¤é # ļūńūįģÓģ…T8› ‡ [ķWķ®é¼éy$—$č ‰ē¦ēīüŌžĶžžLć(ć$ö!Ż!aZŁęvåå[ { µŠ&}}ššKū:ūR E Ÿż™żPķQķŠųÓųŸ¢ķåźå¹®tģfģtįjį~lųxųƒ ” Ö š vЃŠu`Gē%ēāž¾žūÓŚæķ×ķģńņõ 뛄tåoåqµœgŚMŚóņŻņ¤ ” ųųńų­łÆł ńń-õ@õ…›9R¢ ¹ @ęNęSV2%Å׬תū‰ūŠéiéŻÅ?8‰ć’ćoˆ†ż¦ż*ńIńh“ā¼ā lYķķZD”‡%#ųś’ś Wb27VśTś("õēšēw%w%|ƒ:ņIņńØŽµŽó7ö7ŽŌƒŌŪŪ-ä,™į}į̽uūxūĢéćé™%Ą%A×k×ÕųĆŅŠÅ§DŃŃR'ķĢ ^ūjūĻŚļŚš dŒŪÜõÜ`dÉą·ąütOPŅ3Ņ%GäJäį÷ÓūńūĄĶßĶ3HŒļéäéģÖŠņ·ņb L 4ä,ä_öeöOapč‹čøūĪū×ćēžćžq#^#ēĶšņŌņŪ’Ź’DCÓ)ć)õö÷ūõög&&¼öÄö÷¤†yŻPŻiBHž2ž š“ł'ó"_č‚č° ŗ  ćĆøĆā'«'ųʰ•’ö—öØŽĢŽY2‘2óGóõūü". ō+&ł%Ąš…škē9ēÉ0±0Čüóü{ä»äTņņż ¾ē½ēe?Ń’™ U ŗõ†õ™Ś…ŚpŁ OżŠż½łōłµõŚõŠ•‰ąķĖķfLœ#…#@ + ·ö¢ö_ŲHŲ=)˜įŠįÕՓ÷©÷oś–śĆóæåėåYąsą__ŽužŌż”tšßwßžłż‘ÕĖņĖėń ņ/D  §’^ō?ōē Ģ s i ™ūŖūNäyäŁī&'ĖŻšņļ”ż[ż!ŌūūÆūvüEü'‰'õ#åš9ńŅßŅÖį#ā&0õõ%äęćY’Mų>1’%’„ō§ōC!„!E‹‰¾C÷V÷W.­ z †åaåĆø“ ¤ iėŒė¼éįéōŃ ŅźyźīåĻå>ŚŚōŲóŁÄ¦)²) . ˜÷Ļ÷Ø(Ü(iüˆüXT5Ć  ĢšėĖėźōąōW/l/U}.öZö/źOź. 9 $''½ū§ū-žžļåfkå.å¢ĪµĪó†ó`,S,(Lņ!ņoMŖ”“®›åŲåhēµēW6™6=)^)U&B&CžŃkÕ'n'²äläĢņĄņ}÷³÷ōé[źyćóćŅŅĖKĖ.ÕÕĶĘwĘjĻōĪgöśõ1ń ~ ½ēūēĒņ,ó>.}. , ,%3é2gFFKķ7))ół’łWݦݜéź=Ō®Ō»üėÜuąąÅyÄßā<ālŲś×gQĢ!›üIżyõLö2ŁėŁ‹ķßdzų'ųKr¼6Õ5f!ø –ĻTĻwń¶ń– >Abö1÷.ȳȘō®ōĀGī£ķ½ĢĢ+ٟŲ÷ē¹ēHgö÷\ų»ō>õ³ž’™åĘ嵘 ¦ ų7‰7¼-h-‚&p&Ļ)* *Š*UģŸŲŁc̉ĢdÕ!ÕŖł"mń š`ą;—;öw-ųłē–č‚ūsüÓ ZB6 žiż{ q“ŠšŚłŁ~ßžŽxŠ’Š!Ē`õaöķü ‰ [!įüCża=ęłQł„åÕäIėƒź"’!Ó³šŽ/ßōāpć³7žkžØĻ·ĻõGõ¬D°NõÕŹÕś*śQ(É(~#GęÜę~äŹä½’•’Ų6üÕÕQćNāĢT001ļīļļƒžĪ’Õž2ū’ū+ßLßķQę"ø!ņ‹Xłų!ųk÷qq½/m0øōÜõpäÆåVTņīgļ„#~#} Ó ē÷üöa…xōīónńVń›ķėķĶ’[ˆłś`÷³÷ø·!¶ Ö`’ą-ąłłų':'„yļ!šėćtäp£å£ūO*CDühūEöæõ×ŌŠžX’!)ōÓ E ąņß¹–žœśœłD܁۸īfīDr½óSōöĖöż#Ā$j4ō4ć<ćTź-źtƒYč’æŃuŃøŻŻ;ŁIŁū+ūĮćāć¼óÄóąśß•l š [h°ėę‰ēēµ,óļóZĢéāčć:āłæ÷ąŅ Y €é”čp{ÄśĒū-üļżų),³łtūÉźĄė?(ūśĒߎmœV'&   U%×%‹šČń“č ź¶ ć r!ß!G'Ī&rDõ‚’Žźjé5'Ų&Ī.o/ĖB[Ž/ą†óõŠĄŠµķ6ķŹ413–[D0.½— … ¤éķź Ü ­ž* o ' S’ ž±ŅŹg ”€ ēśå0z£&ŃÜūŽ`ó`õŃļģšDėėŅ ] Æż‚ūʰ×XÖóĻŠ_ŌéÕ*į™ćHßĘį$ņÓó9|*ÜÜŚņ˜ļ/ĻRĢ„üTśaó\ņOāåā…ń~óŻ’p’’cćå—šÖšųŻ ėćĆįBķØė)‘IöÄözęµē3ޟß,4`ś„śŁ’Ų†~Ā!ø ,Ÿ/ónóÜįÉŽ<ąnäĒå”ćUäöŪõĒ‹ © ųēęš2ö, č ^ "ę'*ßšŲņ”īŁļ©,ī,ūMśĻL¼Łī×¹  )!%ūßśMńĄń²$Ø%s›vƒĻÖ% l)W)ø[y0ś/õ y UņšŠ_Šp\3‡3j€'''PE-Ī)»)(ī/īCpUö°ö’}Šś ūÄŪ#Üu½ˆ½ ŲĢ× ÖjÕ`ünū>ŽOŻāŪįõŲsŃīŃ71:µĘŠh u0d0ß.'D/..°$ū#Eų+ųÅēHčKĘ4ĒćäŃé_ź×ņĄņŗžęźä<ę-åœóóż?7 J “į)ćļƒ¶&¶'8Ś<ŚÕÓÉŅGļmķu’_ż;š“īŹ˜ŽźģĀīŠšI6 øīÜž’ėØźśß…Ž<&²$£ZŌŌóę\ē¤!"Vō.õ+Ż—ŻøŌŠŌ–źēéM7y6ąYĘ’ē’šżšÆźģ[ŅĖ»˜ ’ ß"Å! "Ź ” /yŅ#"#ŠeDļóšåź'ķī ™čļé»ęėę}ŁŽŲšķt§Ņų|÷~ü¬ļšĶą»įŃķÜīG8’8„Č’b’u%Š$Õ Q “ļŸļ›Č‘É5’6™/iŲBŲžĆ ĆDčÄę€)ņ'–„11ģķiÜūŻ7ķļ~ī‡!"ˆåŁćGē«ånż üŽų*ųłŽ'ßaĆMÄ|ž¾’—üŖż* +u"/"æśął9#%"Ņ’Ų¢īo—õ)öÖ§ Óō^ņĀńĻļ­ī/Ž-ēō ōSķ$ķē%y&ä˜åź1ė@ü"$#éé7ļ0īĮłŖų;߈ޔķ™ķ!šĖšÖłīś (  ŚIŪźź#Ö"Ė’1ł‡"æ!µŖwū'ü‡Ü¶ŻŹž P263ä$˜ÄåÜ䱬РTß ßåą%įbėųė’ m–ķ|ķ‚BFBĀwūĖwĖpfĄšÆńFö#..@ ŗÖļÖ5Łõ×£ēJęŽēŻažbžRw© p M708bņUóĒė<ģļµŚčÅēČaŽ;ė6évėČģ÷õZųÓŪ³ŚE’dž' r2ļ>ļu”mļ“ļ@č#źsŲT×ļžāż­$Ž&,żž+ņ‰÷R÷ō}ōD$Ō#ā‰b T ?€j…KņOņš*ó(Å,o,Ž+w)’żb “ ƒ£3x6ßY/ńń‘澜żõņM]ųFöcŅ7Ņ.Įœ®łśūx‘ē]0õéõąšŻš ¬ A²[¾vųÜ÷œāūį°ŽāŻĘēĪęŠķŚģÓ į¢ą ŹŅŹläå”ʝIBźcģ|ŪÜ©åä`ėaéÜ“Ś*ĘÄ Ģ³ŹSĻķ;Ԩӹ å —łÄūņ ²*Å [üŻżńģėƒś`÷ę!>Ż Ł<ā½Ó6[5ŖØØ ž!—%Ž)I.ĪńKv’Č,Ó(†ļ¦ģ ~ęē3ęlå÷× ±3ž…’ń •ß!o%;õ’õxō)ōöˆōŠõņó«ē"āŻįoH £Ōöp÷µ tR‘¬ Ü’å+ c,9_Š#rśū ’7ü„_ »ņĀö+żö•÷?ųįN ĢÉ $ł”ųbņ¼÷”ōńļ•\•[ś²ü2žDüŠ£’£żżÜżQ÷Šśž’Wūū1’ į ż ’’`Pō"ō-÷ų®öČõŽ`ƒ ³ &žöņ šžždBmłõ*łūæż•ńøī0ü'! öčöńõŲüP˜ō³õhŻ &AlŻĪŪėžŠ’H!S ƒˆūŪüęd° Ł   ž Õ I’±ž§ģ¢ėń- üQüłøłĶĀŠķŲģšłŲųhÖ Š££ūEżÄ ­ó§ + †÷ČömīßļEżŪł2 .śŲł żCżć¬śŖ÷!ųŒü1’t’hžsżß’d¢ż`õįó¤Ģń ļłķbų‡ųm  {žköŹōģī|ń ł•ö“]¦żūōüēübś6üæ a XC© 4>Šõ“sķø{r )śųóöž—ļņéņ±šóÆī ļ, õ mDüüĮ¶lś2ūEõPō3÷ķöOØ}¬ž}ü„ż(£ ÅõŠ÷lŽüŽ.’śžA _ *źæč›ßŻ+ó‰ńØg‰žŠäōŁōėBźņvņ„:h ‹&?ī÷īšķ¾O’8żäžķŹķצخ’’mż’ČČwģžžóÉF ˆ Wī/ ø vłBś‡=°āßō ōŁšņļŚ""ōõõö¹õh¦źĻė]ī[ļzlO6ļ·īļņRņhūķś?ääńńóóļū_ü¹ µ įõįńńė~€² Ü l¹ÓŸū3üeį¹ā©ž’’¦+;,(üń|ééPéBŽ×™äSämć„ćcķéķ@Īo¹ļ÷ī?==²séĻgĻϾ„ń}ņ鋼+¶+ņOøŲėŲŌŚ”Łzč(ēæŽ†ŽÆž±žÄė W 7ę7 ņžņ ģ}ģŹččÓēŽwĒ#ėźéŽėāģćõDųÕŪ³Śi’Šž ]8ļAļ‚ HļqļJč,źbŲ@×/’%ž“$t&0żž4ūa÷+÷3ō¢ōT$ā#Ō{X I R”NiRņVņĒ*!)”,L,-Ų+q)āž_ż1}~ € œŗ36Æ(.ń’š”¬Ķž…ż!õņZ+ųösŅHŅaó{’Æłüū§ŠFõŁõėšēš2 Ę :«J­lųŌ÷Šāéį»ŽķŻÅēĢęćķķģŃģą~ą„ŹŁŹŠä«å¾ćƒ.*źIģ}ŪÜ“å§ä[ė\é€Ü„ŚʓÄĢĀŹEĻįĶąŌĢÓČ ö Šł·ū ʰ ]üÜżŽģyė­ś‹÷Ż!6ÖäHšČÜ6c5÷’¹» ”!%)W. Ąpš’ŗ,Ć(hļŒģ•!VęŁę\ę’å÷Ų «.ž„’ ±Ō!b%õtõˆō9ōröxōāõōœ×ā×įŸw „ļÓös÷Ą }D š“Ņ’ōA \ 0 eˆ!gśżś/’Düy[ ¶ņ·ö4ż¢öŒ÷@ųśb ¾¶ ł“ų\ņ³÷®ōśļ$—V‘Wś®ü8žGü ’›ż‰żążQ÷ƒś]ūū4’åś’ż’%’ZˆCōō8÷ų¤ö½õś}l ™ ?žöÅńāļäž¶ŗÓõł0üäž®ó°šėģż™õˆöUņØöžž_?óqō†ć£d,ŲLÖčž}’üų'˜ 2ųĆł3䥉½Æ  Žūņ„ń¤ • >’z’2śū%öīYīÅżż+'”’}žZųśų Ė Xū ’uŅb’už¢õĀ÷X|żH—MżXż»ūEüéi Ņ’Sūjū©<üćūøżü: _ß—żü7Ūu’Ā7śÖųī’ł’ēyńģ[’¦ū†’ hüē‰ż÷\üųūÅųž>I3=ožÄüž×ż˜÷žŌż0ķŠĮĄ0e«żĄųxüÉś2łČśČłž÷éūF’ČĶ÷A’‰’‘üĆžjސņ’§ż4ż"’ĒūźżpüŚłÉ[¬8 P ż~õõ ’‡ż.Ęož–ū¬’Jū¼’÷ż"¦ÄīŚ+ŅžĄž±śIų¼ö"ūšü“` ˜mū ’sż„ų~mŌ ŚTÄųKśYużżžŃĀūāś+žÄ‡’0ž¬ œ ?f÷åöˆšÄuL’”’9śåų›ó?ócƒÅłžų8 ¢  Cū”ü{śņśęTR gĪzēż’žJ½TōŁõeżQż©ü{ś"/ĪWūDżé T ų÷åŲŗż“žö ™ ‡-ÄūĘūnū|ż1üäżčųż’$€Ęõ`ö){ : ö÷ī÷©ūÆūxū^ūQż™żt…4üküĘś\ś “ ¶ż2żŗśƒś6…”±ņPNežéż¹ō7ō / „āœ›EųĒ÷łž%žŖū(ū„lœæGĒśHJü;ü|6Ēž>žšųĻų”]ŪłĘśjš· ³ Žś,śś0łņqP 9 o’Ī’+’¶’žńżkśÜł[liŪż9žPżŁżFžą’Ą’ÄłQł÷Œś.śCƒŸ°ŌÓśŚųĒųPümü]xNųKų:8»ü®üP-÷–•#žżZż~ž_ž3ūTūŅ&”S“ņĆGożżžż€ż±£4(ūjū£y«AOłĆų6üüoCõżNž$ļ¦žóżs÷Žömõ€Ź“[‡÷ģö®öšł±ł Bœ'ēüŠż+Į˜…U’zžĀų"ŗ‹ųSų÷ ł Ö÷śüüüšłzłz’;’ʦ łtł*ŌśłOś ż*ż2EPeślś\2„v‡ż’żƒūœū 4 eSNö)ö½˜/ģ’’µšk ų”² ł8łņü»üÕ’V’t’T’Ō’ž’ÆŹ2Vžfž^ų_ų‚üBüŽ=ņkūœū öžõ٧…štśźł™ Ę ś|śWś’ś;~–_¦śśĢų°ų8 _ "üRüiČ÷hūąśd7Yś­ś™·’Uå’UGž7žŃųzųs Ń•łŃł×0ł + J½ś!ś˜ü`ü–£ž”6ūwūeY¶żJżI%Śj ü²ü.gŒolśųł­ž žŌżŠżƒü—ü)ž’ž§é±’n’üµū%žžĮ÷·÷#üTü ’g’«\ł@ł'Ō/żĪüöłś{¹w~łżMüGü&õ õŽłķłµżŚż0HŻžėśū$ų<ųUeżÓüōĒzŠĖłŠłhżfżśö÷Ģ+ś"św’…’<?Fb±®łĒł“f ĒĒQÆž„žś‚ś’Ū’ŗ¹t ƒ ‹ŽśbśŅžĶžCJÓEÖ†ž„žy±’ćxMeŒž[žų+‹ż"żTŌ’żśü£ż¢żĒņońpŚ;@;’Éž,ų‚÷–ö†öÅšž(’„Į‰õŃō©łÄłƒžįžŽ@‰ÆūøśWųč÷$ūąśØżFż?Ö ā’üÉū}†’,’’®’µūķüśū‰üā’¶’™ņžņ“ķŁķ*FYƼõŽõū“ś©•ż-ü†tMēĢł–ł–N>ˆ½ŸDüjżw=Æś¤łNł…“'’oFś/ś8ó°óŻže’©ūĶūCw½(ž»żˆ žYžīJÜų—łųØųކūs®d Ęˆ’Æ’x’ø’)õ…õņVž¹żć-{zž3ž ;Iū¶ūŸžóžÉĒ ž³żu1DnńuĘ1śīśĘž’žŖ]ßdżIż% ążõżāżž/’Y’㇯…Öųė÷ÉžēžKČg’¼’(’=’[’%’l+0ņļ%•”IŪöb÷‚ś IüŪūZ 9łlł‚śūČĆūsūÓ¦xūbūEüÆūŻ<Żāż1žośÓśü®ū^ŲšŲ€÷÷¬ ˜ż˜żŖDöžF’, ė E™’o’ŪłżłIłśāüżE _ ĒųIų’õxõ—üĢüØx„ż”żĒõ<ö涝śĪ„ŽŹ¹’ų’ŁPÉśŲłhłżķü4ūėśNö“öāüżžWž žvF’’m’9€Įūü§žP’ūŸķ†z ¦“’’Üūāū¦1Žś’śźūūTĘ’ żķü”ü”üwˆ±“„ Īū^üBC> L ĪżFž—śūžqžŽ›cOQ’g’`’żžm’Öžóūįūõ’SBž#žóųÉų>ųų&Üp6‡ś ūöüpż’»žµ—Öžj’™ł4ś%+č÷`÷śż÷ż~"ō)żył¼łÄż÷ż‡HpŸžWž?ū›ūMöhö³MŽž[žį„€ßł—łf|ĪżIžæK.IMŸ’¼’ĘĪ‘üżMņ:Ąü ü<ź”ū’ū×į/æƒłRłČūüżüĄürż»ü" ­ ³öÖöēłQś`s’’}čŖ&Ńś½śśQżŽżgüŃü & ū4ūœžĮžƒżćż¢pČ  />¾łÄł®ąy ’}’P’¬’[ü3üÄž7žČæ<żqż.‹eŒ„čüŹübżjżqFü÷ś,ū,‰R(4Õ¬żžKüžüīž°ž°~’'’ļžļžr±ß°Ąž„žų’!Ųż²ż§’’±ĶČż¼żx›p’®’†õµ‚üFüæż:žH»¾’Œ’ŠNhüfü¦ż°ż ’sV’œ’LūĆū‡žVžåG’bƒ’­’ä’ż’ž÷żÅ½Ķ’Õ’ė’Ī_żrż¢żžæž’žŁÄrSÅżÆżM’D’]mqüÆü¦’ō’»¬iń’:įŪåkžŸžæ’ń’Āąńżéż+ü7’śžO9żOżÆżļż§¾š’Ņx=ā(żMż?ćüżTK©_žp­žŁžĪ’ß’ˆ8’~’eżŸż’ņžmž¤żż4żž+’„żzż&ŚæžÅže_²žžž˜q#żfż|Ą’DEŖŽ|ü–üŠżéż ÷·ql‹’Ę’~ü]ü`N_H«fIRż9ż ’ņž:w0{Ó’ž’žŹżŠ’Š’¹żóż’P‹ų’„’J’ ’›’r’¹u¼Åö’D£’Ē’TĆWžźżū’*%6¤ģAÆ’‹’qśś>üüīVf’ą’«¬Š’ ’(łłnüsüīž’Flržüuü ūĻśsü9üi’3’`Zæēa’i’ž`žĀmb’-’ĢDnü1żČüż`T²÷Ą÷göJöų'@_‹„÷æ÷Ģ’Ż.‰üšūŖ¹žP’”üüü“jŚ!¾’£0’Ė’|ėĮņRūģś X€'žĪcłkł@ų­ų’S’°üøü%sמžžÅ’;åž’Ń»“ūIųŹų†ūęū»ŸjłįČš’ŗ’YZŸżŠżĻųłud»žRž“Ś’żžY’9’’5’Ųū-üŽ’0öļRżžüńŁū'™L nūüš’©’¹tk@ż’üsbż7żéž ’’<’uūęĄgų±÷\•æ2ŗ’ŻžćžĪ’>Į„jghķFč|ö÷¬`Xrüžū„Gķö8÷°ż=žžÜū…ū{\$ł’ųi’¾žRBAż„ż[ś§ś§ü8ü=Ęqfō÷ ų] Ā ßllžéžŽ’)4É  ģžĆžµ’Š’vųøųzśFūįüĢü°Ģ; “9öÅõķöķöwż¢żÖ™ūŌūõõWö$üÅūLĒ ųž=’5±&BłĻų ž„žā»łłZ÷Ź÷2żGżź’·’   $’čžźŚōBŽśćśEØ)#“ļ%Žż%żż#ż «Žł¶łųü%üMÖ’Qü%üŁżÓż™Øµ½’zŖū)ü   9 ”üż…śšśŚ’,hi^’S’¦’µ’<’Įž0’«ž©ū¤ūsDh ’żćż>÷÷Žū_ūę”ȧ®śJūż^żvźķ*üĶü§ū0üpUöö›Āt}}<!Õų#ł<’]’_ qŲżÆż-ś‘śD÷A÷ »Ēüüp'ßgūąś…®ż›żė.„bP`²’Ē’øĢÆūFü'Š5žbž°_5ś7śŽ‡VÜMų:ų-żpżĖūoū#m’å‰éó%ōhżÅż‰<É’ŹNģžL’„ū†ūŲŚćś*ūŒ’ō’¾Ęjś!śˆ’Ē’čü6żĪŠÆ ‡ ŽńōłõłóDZђʒĄž’Küü“’5’{†|ü²ü4±v¤’~č5ūŠū:’(’Ā šžžžūŻū­’j#Ę~,ż—żfüžüŪ’’’ćŽēž”žC’Z’žŃžd§ž ž3lż;ż‘ˆĪ’ē’\žOžjšY’‘’š™Œt“:Oū/ū=’Ģ’Łä£ļæūūF’N’ż2 tžĻžHū°ū—’E’B­É°“’æ’•’Ø’9ž.ž:7ņžłžd3ftüŸüIžĆžž½žīŌŹ¬ųüåü…~–:üüsø\9ŃR4é„™)žažp¤ō’ YžCžE M’ ’}vóū8üģž3’]nā­lV“ Nż‰ż¾żDżÕ³<ŲęÄÄž’ "Ć’śū'ü8Zė°ż=ża’¶’½žT’ēż±żµ`źžśžXSREģżÉż ŒeśŲśŃnż÷`oś™ś*ųĒ]Pe’†’Ėż•ż­ž¦ž¶’†’!. žčż„žVž\ĪˆŃūž£žŹ’ūžłžsü®ü³’4 ś¢Bmżšżęüģün ĢÖ žćžIüiüX@äqT2W’«’vż^żr9–üäüąHT’i’ųż›ż¶žNžxŗ÷iI=įžĀžUżSżĒż§żk’R’Å ½ åße’m’ÅüÆüIžž]o’a’sš9su¤’›’Ÿw®ĪzżØżäüęüpœšāž+±~hM2ž ž^ž¦žĢ0 ’żž¤üiüzNĘŲø’fµsl±ż„ż-ū8ū.Rͧ°¦‡§ž“żŖĮ׏ŪĪžöžć’ü’¬žUžÄžŅž'Œ˜zf]­’ż’–’¹’ųR)˜ūXūŃ’ē’[Pƒw˜ÜŒžSžžƒż›vŒ†g¤ž>žHŻ’Üž’yžDž*’’;Ī–ż³żģżĻż/Č)¹ūˆūŒ?9ŒH\”ü©ü£żż–’’ą’Ō’µćW’™’žžœŸÕżøż1’ōž–}Ō¢Ąāą[ž-žöż”żHžøžxž½ž‚žhKüTüćž”žŅ@Ż­Éż„ż¬As÷’=“£eÕžāž%’†ž4’N’9’'’Gx”UośbśÜ’Ck7ūüÕüœ!ü_üŌżÖż!Ā€žIž«V…¤¤žśżÉžż?żÆü/üšöżżürśNśš¬ō’~r…_żŽżżfü+ˆöŸYū)ū½żéżŅm'żQü4åu _’ŅžÜžŚžZüdüū“śŚć~Iš’Ŗ’’ÉŻįüqüŅś‚ś"<tĀĢżżīj°Čųóö’5Y±„½’¶&®XČū(ūƞųļų¼÷=ųŚų’\ŪšHęQ—üOūØ’v’mśÕśj~z  /£”üżüśŁśuŪ(«ę°ż+žÕ»ˆü—üQóQó›Y`fI’ī’Ś7šūwūŖ‹Ļ%@’7’aü üÕžµ’Ćügü:õ’tC ‚‹śžŁżźõüö6łĪł ȁ]ķ”ģū%ūS×M· w ’¼žĶńuńŲś¦śŽüĮ ŗ 5-ģ÷ł÷łśąū¬ž¹žŒ¹’9 + 1ž5ž%ō4ō@ń‡żßż’'’‘Ļy’ŪžAVŽ'ĢžĮ’YR€żüuž@žūŠūiųÜųĻ  ėī—ż"żņüĄżÆSżüüčöM÷iŅ ‰’„ļ’·ž»ž.üėü±żužEžDžķ^”2ć’¶’.’’ƒ’Æ’˜BüÓüśżóż¾A”’éśÓśĒDÓJ…żšż’ĻķżĀżłńųN G l}Ėżöż8?³ųkųĖaŽŗ÷BųI’Ž’3ģš~õśĖś9žKžWo łĘł¾Ģžōžöż¼żQžéżćżĀżŻ`’”’8ū4ū[/@/ėūü…’„’åžßžśõłEHZż}ż™K’śøś%żcż’6‚Ö¬ł?łĻüü0’ņžĆ;ŅqBZÕūPūųł÷ -‰DXŲ‚’%’7żYüržśż‹ŁĘ’k&śšśåż’żÜ­ž°żcŽń¦üHüł¢ł`ū£¾[ūŪśņ=’ÓžsĮoņTūūžžžéżmVn_ŚŹ|’}’ėö÷q’’hŒH4ÆłLłžµżŃ’™ū:üō-ć’Ū’O’*üńūm‰:\·×ĶüżĮńąń™s8  ćõ`łOł^Ü㒊’Ćłaś;cœüįüŌÅ’ˆg]žfžŹü¦żDĶņüÕü¬’x’šöėöłŅ‰6¶ż¬żÖü@żžł ś«£ś’‘’’*ĮōØō¼’iš{ĪEūūąū:ūĢp„śĒśémÉ’!ūłś7żżüм¬ ¼ MżZż?ū:ū’’ßćQaüōÕłøł“žæžÕ£’Ł’8<½qō%ōŸśĆśT Ī ĆžT’öų5ł†żżæÄ³żQżĶ’•eüdżmżZż!@’kööž1—Æa Č ņ5ņš÷ ųĀgRū•8öµöße3b K Öł‡ś@ųÆųV  ©`ų"ų§žÆžé§éŅŠ?’öx÷ŒZŗ  ÆųJųµüż?ćCVų4ųĒ|t#üĀū1žžĘ M ųjł6’Œ’­ ³ž9ž=łĀł— ” ś»ś%Śjłoų„÷ÖöYo ’ X÷7ųµöÓö PšłÆųŲŚ}2Ōņ óV®R­(žCž½ž=’€”Ó=ų,ųÅśõśā’Ų’"Õ½ » ÓłFśŗõöÓƒ ‘ ļü×ü žVž‰¾ĢõČõžżŗż»ŅĖ’sž+~’ @Ø÷šųŹū˜üD#’Ēüü‰™‹+…ūüÕżŲżŠ÷žöår²žõžBäŽūīūg’*śĄł=õõµ5‹…Ć›ĻóīóRõ=õI³Ļäž©’Uūü.¬)żüņ’üž®",gƒłŸų§ó§óÓō‚õV ü ;¦Qčż4ż}ēĀĶ9÷ģ÷Ŗr2’i’oüēū^śł8TŌRž’óž÷žFžsżddJœżŽžņtńÖųU÷Įµ} ś c’ ķłßųOł˜ųČśūœ)pž4ń±š×ϰż\žóžńmüūčŲ:SRųœ÷8’žüW, Šłł~’’8ī…•G  &ž2ž7Žŗ%ņŹļ#‰eåļó ßHŻ üŃśÜćÕaŸ ņ ń¦Ž’>ūśøF+ ¤!Wdķęė·’¼’1Ę ā yü­śĘÄŅxūlū¬ļgķAļqĄTūüńųĖöF  ›ö_ųT¾ć ’üļŒīŻ ¬ B‰½ł<łėŠźüXüR I h6ö[P³©Ķ’=$R ļ3ī;ś¦ś±āš@šśūĢśīś+ś'÷}›¢žgž–znēē2ń¤nī4īµ÷÷'ļ6üŠü“  5FĆŲzŲ[ś‚jóēfč"ž"gó;ó÷öīū„ū‹ĶéŖźüé‡ķŽšŽšÜ ‰R æļsīd5<ųäųż2žzhж’—żbżf¾Ģūńū¤¢#E¬”’„ž8Ÿūü:‡Iżż…ž*žäļŃü ż’|poüdüŽ’s’! ,÷R÷Č’śCśNCI™ų¾ųō’Ę’­DłVłc„¬Ŗ–ū„ū†ƒ¾Å_ž_ž ’’65TžRžS’V’æĆ’‡’ńžåžŖ°$’6’ÉÉśźužpžlu×’Ż’y’v’HF©’Ø’ä’å’VWė’ė’Ųž×žŌԐ‘)ž+žc’b’Ų×ö’õ’œžžž&(zzmžmž©žØž0/PN’ž‘ž::““ł’ų’ĻžĻž12¶µL’M’<’<’·¶µ“~’~’µ’·’}}‰’ˆ’[\ų’ų’Ś’Ś’ż’ż’ņ’š’ģ’ė’ fenrir/config/sound/default/barrier_start.wav000066400000000000000000001076201513650123000217500ustar00rootroot00000000000000RIFFˆWAVEfmt "VˆXdatad ģ’ė’ņ’š’ż’ż’Ś’Ś’ų’ų’[\‰’ˆ’}}µ’·’~’~’µ“·¶<’<’L’M’¶µ12ĻžĻžł’ų’““::’ž‘žPN0/©žØžmžmžzz&(œžžžö’õ’Ų×c’b’)ž+ž‘ŌŌŲž×žė’ė’VWä’å’©’Ø’HFy’v’×’Ż’luužpžśźÉÉ$’6’Ŗ°ńžåž’‡’æĆS’V’TžRž65 ’’_ž_ž¾Å†ƒ–ū„ū¬Ŗc„DłVł­ō’Ę’™ų¾ųINCśCśČ’,÷R÷! Ž’s’oüdü|p’Ńü żäļ…ž*žIżż:‡Ÿūü8’„ž¬”#E¤¢Ģūńūf¾—żbżŠ¶’zhż2ž<ųäųd5æļsīR Ü ‰ŽšŽš‡ķŖźüéĶé‹īū„ū÷ögó;ó"ž"óēfč‚j[śĆŲzŲ5F“  6üŠü'ļµ÷÷nī4ī¤2ńnēē–z¢žgž}›'÷īś+śśūĢśš@š±ā;ś¦śļ3ī$R Ķ’=³©[Pöh6R I üXüėŠź½ł<łB‰Ż ¬ üļŒīć ’T¾›ö_ųF  ńųĖöTūüqĄAļ¬ļgķxūlūÄŅĘyü­ś ā 1Ę·’¼’dķęė!W+ ¤øFūśŽ’>¦ņ ńaŸ ÕÜć üŃśßHŻļó eå#‰%ņŹļŽŗ7&ž2žG  …•8ī~’’ŠłłW, ü8’žRųœ÷:SčŲmüūóžń°ż\ž×Ļ4ń±špžœ)ČśūOł˜ųķłßųc’ } ś ĮµÖųU÷ņtńœżŽždJdFžsżóž÷žRž’TŌ8^śłoüēū2’i’Ŗr9÷ģ÷ĀĶ}ēčż4ż¦Q;V ü Óō‚õ§ó§óƒłŸų,g®"’üžņ)żü.¬Uūüäž©’ĻI³Rõ=õĻóīóĆ›‹…µ5=õõ*śĄłg’ŽūīūB䲞õžårŠ÷žöÕżŲż…ūü‹+‰™Ēüü#’DŹū˜üØ÷šų @+~’’sžŅĖ»žżŗżĢõČõ‰¾ žVžļü×ü ‘ ÓƒŗõöÓłFś½ » "Õā’Ų’Åśõś=ų,ųÓ€”½ž=’(žCžR­V®Ōņ ó2Ś}ŲšłÆų PµöÓöX÷7ų ’ Yo„÷Ööjłoų%Śś»ś— ” =łĀł³ž9ž­ 6’Œ’ųjłĘ M 1žž#üĀūtĒ|Vų4ųC?ćµüżÆųJųŗ  ŒZ’öx÷Š?éŅé§§žÆžų"ų©`V  @ųÆųÖł‡śb K 3ße8öµöū•gRĀš÷ ųņ5ņ Č Æa1—žköö!@’mżZżeüdżĶ’•³żQżæÄ†żżöų5łĆžT’T Ī ŸśĆśqō%ō<½8£’Ł’Õ“žæžÕłøłüōQaßć’’?ū:ūMżZż¬ ¼ м7żżü!ūłśÉ’ém„śĒśĢpąū:ūEūū{Īiš¼’ĮōØō’*ś’‘’«£žł śÖü@ż¶ż¬ż‰6łŅšöėö¬’x’ņüÕüDĶŹü¦ż]žfžˆgŌÅ’œüįü;cĆłaść’Š’^Ü`łOłćõ8  ™sĮńąńĶüż·×:\m‰*üńūŪ’O’-撐ō™ū:üŃ’žµżÆłLłH4hŒq’’ėö÷|’}’ŚŹn_mVžéżžžTūūoņsĮ’Óžņ=[ūŪś£¾`ūł¢łüHüń¦cŽž°żÜ­åż’ż&śšśĘ’k‹Łržśż7żYü‚’%’XŲ‰D -ųł÷ÕūPūBZŅqĆ;0’ņžĻüü¬ł?ł‚Ö’6%żcż’śøś™KZż}żEHśõłåžßž…’„’ėūü@/[/8ū4ū`’”’ŻćżĀżQžéżöż¼żĢžōž¾ łĘłWo9žKžõśĖśš~3ģI’Ž’ŗ÷BųaŽĖ³ųkų8?Ėżöżl}N G łńųķżĀż’Ļ…żšżÓJĒDéśÓśA”’¾śżóżBüÓü˜ƒ’Æ’.’’ć’¶’”2ķ^EžDž±żuž.üėü·ž»ž„ļ’ ‰’iŅčöM÷SżüüÆņüĄż—ż"żėīĻ  iųÜųūŠūuž@ž€żüYRĢžĮ’Ž'AVy’Ūž‘Ļ’'’‡żßż@ń%ō4ō1ž5ž9 + Œ¹’¬ž¹žłśąūģ÷ł÷5-Į ŗ ŽüŲś¦śĶńuń’¼ž· w MS×ū%ūķ”ģ] Ȑ6łĪłźõüöśžŁż‚‹tC :õ’ĆügüÕžµ’aü ü@’7’Ļ%Ŗ‹šūwūŚ7I’ī’`f›YQóQóˆü—ü»Õ°ż+ž«ę(uŪśŁś”üżü/£z  j~mśÕśØ’v’üOūQ—HęŪš’\=ųŚųų¼÷ųļƞČū(ū®X¶&„½’Y±’5ųóö°ČījĢżżtĀ"<Ņś‚śüqüŻįÉ’š’Ŗ’~IŚćū“śZüdüÜžŚž_’Ņžu 4å'żQüŅm½żéżYū)ūöŸ+ˆżfü_żŽż…~rō’š¬rśNśżżüšöÆü/üż?żÉž¤žśż…¤«V€žIž!ĀŌżÖż!ü_üœūüÕük7Ü’Cośbś”UGx9’'’4’N’%’†žÕžāž£e=“s÷’¬AÉż„żŻ­Ņ@ćž”žKüTüh½ž‚žøžxžHžöż”żž-žą[ĄāŌ¢–}1’ōžÕżøżœŸžžW’™’µćą’Ō’–’’£żż”ü©ü\ŒH?9Œ¹ūˆūČ)/ģżĻż–ż³ż;Ī*’’yžDžÜž’HŻ’¤ž>žg†Œ›vžƒżŒžSž˜Üƒw[Pђ璘ūXūR)ų–’¹’­’ż’f]˜z'ŒÄžŅž¬žUžć’ü’ĪžöžŹŪĮ×Ŗž“ż‡§°¦Ķ§.R-ū8ū±ż„żslfµø’ĘŲzN¤üiü ’żžĢ0^ž¦ž2ž žhM±~ž+šāpœäüęüzżØż®ĪŸw¤’›’su9sš’a’]oIžžÅüÆüe’m’åßÅ ½ k’R’Ēż§żUżSżįžĀžI=÷ixŗ¶žNžųż›żT’i’ąH–üäür9vż^żW’«’T2äqX@Iüiü žćžĢÖn ęüģümżšż¢B ś³’4sü®üūžłžŹ’ūž£žˆŃ\Ī„žVž žčż!.¶’†’­ž¦žĖż•że’†’P]ųĒ*oś™ś`÷nżŃeśŲś ŒģżÉżREXSźžśžµ`ēż±ż½žT’a’¶’°ż=żZė8śū'üĆ’ "Äž’ęÄ<ŲÕ³żDż¾Nż‰ż“ V­lā]nģž3’óū8ü}vM’ ’E YžCžō’ p¤)žaž„™4éŃR\9sø:üü–…~ųüåüʬīŌž½žIžĆžtüŸüfd3ņžłž:79ž.ž•’Ø’“’æ’ɰB­—’E’Hū°ūtžĻž2 żF’N’ūūļæ䣁Ł=’Ģ’Oū/ū“:Œtš™Y’‘’jš\žOžĪ’ē’‘ˆlż;ż3§ž žždžŃC’Z’ēž”žćŽŪ’’’füžü,ż—żĘ~j#­’ūŻūšžžžĀ :’(’5ūŠū~褒±v4|ü²ü{†“’5’KüüĄž’Ń’Ź’±óĒōłõłŽńÆ ‡ ĪŠčü6żˆ’Ē’jś!ś¾ĘŒ’ō’ćś*ūŲŚ„ū†ūģžL’ŹNÉ’‰<hżÅżéó%ōå‰#m’Ėūoū-żpżMų:ųVÜŽ‡5ś7ś°_žbž5'ŠÆūFüøĢ²’Ē’P`„bė.ż›ż…®ūąśßgp'Ēüü »D÷A÷-ś‘śŲżÆżq_ <’]’Õų#ł<!}}t›ĀööpU§ū0ü*üĶüźķvż^ż®śJūȧꔎū_ū>÷÷’żćżh sD©ū¤ū0’«ž<’Įž¦’µ’^’S’hiŚ’,…śšś”üż 9   Ŗū)ü’zµ½™ØŁżÓżQü%üMÖ’ųü%üŽł¶ł «ż#żŽż%żļ%#“Ø)EŽśćśōBźŚ$’辝   ź’·’2żGżZ÷Ź÷łłā» ž„žBłĻų&5±ųž=’Ē L$üÅūõõWö™ūŌūÖwż¢żķöķö9öÅõ; “°ĢįüĢüzśFūvųøųµ’Š’ģžĆžÉ  4Ž’)lžéžßl] Ā ō÷ ųqf=ʧü8ü[ś§śAż„żBRi’¾ž$ł’ų{\Üū…ūž°ż=žķö8÷„Grüžū`X¬|ö÷FčhķjgĮ„>Ī’Żžćžŗ’æ2\•gų±÷ęĄuū’<’éž ’ż7żsbż’ük@¹tš’©’nūüL '™ŁūńRżžüöļŽ’0Ųū-ü’5’Y’9’’żž“Ś»žRžudĻųłŸżŠżYZš’ŗ’įČjł»Ÿ†ūęūIųŹų“ūŃ»åž’Å’;מžžs%°üøü’S’@ų­ųcłkłžĪ€' XRūģśĮņ|ė’Ė’£0!¾’Ś“j”üüü¹žP’Ŗ‰üšūŻ.Ģ’„÷æ÷_‹'@ųgöJö²÷Ą÷`TČüżnü1żĢDb’-’Āmž`ža’i’æē`Zi’3’sü9ü ūĻśžüuülrFīž’nüsü(łłŠ’ ’«¬f’ą’īV>üüqśśÆ’‹’A¤ģ%6ū’*žźżĆWT£’Ē’ö’D¼Å¹u›’r’J’ ’ų’„’P‹’¹żóżŠ’Š’žŹżÓ’ž’0{:w ’ņžż9żIR«f_H`N~ü]ü‹’Ę’l·q ÷Šżéż|ü–üŖŽE’D|Ą#żfż˜q²žžže_æžÅž&Ś„żzżž+’ż4żž¤żm’ņžeżŸż8’~’ˆĪ’ß’­žŁžžp©_TKćüż?(żMżāx=Ņš’§¾ÆżļżżOżO97’śž+üńżéżĀąæ’ń’kžŸžŪå:įiń’»¬¦’ō’qüÆü]mM’D’ÅżÆżrSŁÄæž’ž¢żž_żrżĪė’͒ՒŽž÷żä’ż’ƒ’­’’båG‡žVžLūĆūV’œ’s ’¦ż°żhüfüŠN¾’Œ’H»æż:ž‚üFüµõ†p’®’x›Čż¼ż±Ķ§’’Ųż²żų’!Ąž„žß°r±ļžļž~’'’°īž°žKüžü¬żž4ÕR(,‰÷ś,ūüqFbżjżüŹü„čŒ‹e.<żqżČæÄž7ž[ü3üP’¬’ ’}’ąy®¾łÄł/>Č  ¢pƒżćżœžĮžū4ū & güŃüQżŽżśŃś½śŖ&}čs’’`ēłQś³öÖö" ­ rż»üżüĄüČūüƒłRł/æ×į”ū’ū<źĄü üņ:M‘üżĘĪŸ’¼’IMK.æĪżIžf|ßł—ł€į„Žž[ž³MMöhö?ū›ūŸžWžp‡HÄż÷żył¼ł)żō~"śż÷żč÷`÷%+™ł4śÖžj’µ—’»žöüpż‡ś ūp6&Ü>ųųóųÉųBž#žSõ’óūįūm’Öž`’żžQ’g’cOŽ›žqž—śūĪżFž> L BCĪū^ü„ ±“wˆ”ü”ü żķüTĘ’źūūŽś’ś¦1Üūāū“’’z ¦ķ†ūŸ§žP’Įūü9€’’m’vF žžWžāüżNö“öūėś4żķüŲłhłÉśŁP¹’ų’ŽŹĪ„涝śĒõ<ö„ż”żØx—üĢü’õxõĒųIų _ EāüżIłśŪłżł™’o’E, ė öžF’ŖDż˜ż ˜¬€÷÷šŲ^Ųü®ūośÓśāż1ž<ŻŻEüÆūxūbūÓ¦ĆūsūČ‚śū9łlłZ IüŪūś ‚Ūöb÷”I%•ļ0ņl+[’%’(’=’g’¼’KČÉžēžÖųė÷Æ…ć‡/’Y’āżžążõż% dżIżßŖ]Ęž’ž1śīśĘńuDnu1 ž³żÉĒŸžóžIū¶ū ;zž3ž-{ćVž¹żņ)õ…õx’ø’ˆ’Æ’ Ę®dūsކųØųÜų—łJī žYžˆ(ž»żw½C©ūĶūŻže’8ó°óFś/śo'’…“¤łNłÆśw=DüjżŸˆ½>–Nł–łĢMē†tż-ü©•ū“ś¼õŽõYĘF*“ķŁķ™ņžņā’¶’śū‰üµūķü’®’†’,’}üÉūā’ ?ÖØżFż$ūąśWųč÷ūøś‰ÆŽ@ƒžįž©łÄłõŃōĮ‰„šž(’Å–ö†ö,ų‚÷;’Éž;@pŚońĒņ£ż¢żżśüTŌ’‹ż"żų+ž[žeŒxMćy±’†ž„žEÖJÓCŅžĶžŽśbś‹t ƒ ŗ¹’Ū’ś‚śÆž„žĒQ Ē“f®łĒłb±?F<w’…’+ś"ś÷ĢśöhżfżĖłŠłzŠōĒżÓüUe$ų<ųėśūŻž0HµżŚżŽłķł&õ õMüGüłżw~{¹öłś/żĪü'Ō\ł@ł« ’g’#üTüĮ÷·÷%žžüµū±’n’§é)ž’žƒü—üŌżŠż­ž žlśųłŒo.g ü²üŚjI%¶żJżeYūwū”6ž–£˜ü`ü½ś!ś+ Jł ×0•łŃłŃs ŃųzųGž7žå’U·’U™Yś­śd7hūąś÷iČ"üRü8 _ Ģų°ų¦śś–_;~Wś’śś|ś™ Ę tśźł…šŁ§ öžõkūœūņŽ=‚üBü^ų_ųVžfžŹ2ž’ÆT’Ō’V’t’Õ’ņü»ü ł8ł”² ųšk’µ/ģ’½˜Nö)öeS 4 ƒūœū‡ż’ż„v\2ślśPe2E ż*żśłOś*Ō łtłĘ¦z’;’šłzłśüüüÖ÷÷ ł ‹ųSų"ŗĀųU’zž˜…+ĮēüŠżœ' Bšł±łģö®ö÷‡“[€Źmõs÷Žö¦žóż$ļõżNžCüo6üOłĆų«A£y(ūjū£4±žż€żożżĆGņS“”Ņ&3ūTū~ž_žžżZż#–•÷P-»ü®ü:8NųKų]xPümüŚųĒųśŌÓŸ°Cƒś.ś÷ŒÄłQłą’Ą’ŁżFžPżŪż9žli[kśÜłžńż+’¶’o’Ī’P 9 ņqś0łŽś,ś· ³ jšŪłĘś”]šųĻųĒž>ž|6Jü;üśHGĒœæ„lŖū(ūłž%žųĒ÷›Eāœ „ /¹ō7ōežéżPNņ”±6…ŗśƒś¶ż2ż “ Ęś\ś4üküt…ż™żQxū^ū©ūÆūö÷ī÷{ : )Ęõ`ö$€’ųżč1üäżnū|żÄūĘū‡-ö ™ ŗż“žåŲų÷é T WūDż/Ī"©ü{śeżQżTōŁõJ½ēż’žĪzR gęT{śņśCū”ü 8 ¢ Åłžųcƒ›ó?ó9śåųL’”’Äuˆšf÷åö ?œ¬ ‡’0žžÄ+ĀūāśżžŃYużÄųKśŚTmŌ ~sż„ųmū ’` ˜“"ūšüIų¼öĄž±śŅžŚ+Äī"¦¼’÷ż¬’Jūož–ū.Ę ’‡ż~õõ ż P¬8É[püŚłĒūźż4ż"’’§żņjŽ‘üĆžA’‰’÷ĶF’Čž÷éūȜȳɜ2łĄųxü«ż0eĄŠĮ0ķ÷žŌż˜ž×żožÄü3=>IžųūÅų÷\üē‰ż hü¦ū†’ģ[’ńēyī’ł’7śÖųu’Ā7Ū—żü_ß: øżü<üćūjū©Ņ’Sūéi »ūEüMżXżH—X|ż¢õĀ÷b’užuŅXū ’ų Ė Zųś”’}ž+'ÅżżöīYī%2śū>’z’¤ • ūņ„ńŽÆ  ‰½Ą3ä2ųĆł'˜ üųčž}’,ŲLÖ£d†ć?óqōžž_UņØö™õˆöėģż®ó°š0üäžÓõłŗäž¶Åńāļ?žöl ™ ś}¤ö½õ8÷ųCōōZˆ’%’ś’żåū4’]ūQ÷ƒś‰żąż ’›ż8žGüWś®üV‘—$®ōśļ\ņ³÷ł“ų¾¶ śb Œ÷@ų4ż¢ö¶ņ·öy[ /’Dügśżśˆ!e0 \ ōA Ņ’š“D Ą }Óös÷„ļŸw ā×įœ×āõōröxōˆō9ōõtõŌ!b% ±.ž„’«÷Ų \ę’åVęŁę•!hļŒģŗ,Ć(pš’ Ą)W.”!%¹» ÷’Ü6c5šČäHÖŻ!6­ś‹÷Žģyė]üÜż°  ŹŠł·ūČ ö ąŌĢÓEĻįĶĢĀŹʓĀ܄Ś[ė\é“å§ä}ŪÜ*źIģƒ.¾ćŠä«å„ŹŁŹģą~ąŃćķķģÅēĢę»ŽķŻŠāéįlųŌ÷J­:«2 Ę ėšēšõŁõŠF§Æłüū{’aósŅHŅ+ųöZ!õņĶž…ż”¬.ń’šÆ(ŗ36œ~ € 1}āž_żŲ+q)-”,L,Ē*!)RņVņNiR”X I Ō{T$ā#3ō¢ōa÷+÷4ū0żž“$t&/’%žbŲ@×Jč,źHļqļ‚ 8ļAļ ]i’ŠžÕŪ³ŚćõDųŽėāģėźéĒ#ŽwččÓēŹ ģ}ģ ņžņ7ę7 W ÄėÆž±žæŽ†Žzč(ēŌŚ”ŁøŲėŲņO¼+¶+é‹„ń}ņϾéĻgϲs?==ļ÷īo¹@Īcķéķmć„ć™äSäŽ×BééPéń|(ü¦+;,©ž’’eį¹āŸū3üӍl¹² Ü ~€ėńń įõį¹ µ ļū_üóóńń?äähūķśļņRņ6ļ·īlOz]ī[ļ¦źĻėhö¹õōõõŚ""Łšņļßō ō°ā‡=vłBś/ ø īWF ˆ óÉžžwģČČmż’®’’צŲķŹķ8żäž¾O’šķ?ī÷ī‹&h „:ņvņėBźäōŁōžŠ‰Øg+ó‰ń›ßŻ*źæčA _ .’śžlŽüŽÅõŠ÷£ („żž}ü}¬OØ3÷ķöEõPōlś2ūĮ¶üümD, õ Æī ļ±šóļņéņž—óö)śųr ø{sķõ“>Š© 4CXæ a bś6üōüēüżū¦“] ł•öģī|ńköŹō{žm  bų‡ų ļłķń¤Ģ`õįód¢żß’hžsż1’t’!ųŒü¬śŖ÷ć żCż.śŲł2 EżŪłmīßļ†÷Čö§ + ­óÄ £ūEżŠ£hÖ šłŲųŠķŲģĶĀłøł üQüń-§ģ¢ėI’±žž Õ   ° Ł ędˆūŪüS ƒH!ėžŠ’lŻĪŪ&AhŻ ˜ō³õŲüPńõöčö'! 0ü•ńøīūæżłõ*łBmžždņ š&žöƒ ³ Ž`®öČõ-÷ųPō"ō` ’’ ż įū1’ž’WūQ÷ŠśżÜż£’£żŠ2žDü[ś²ü\••”ōńļbņ¼÷$ł”ųĢÉ įN •÷?ų+żö»ņĀö„_ ’7ürśūŠ#_9c,å+ Ü’‘¬Rµ tŌöp÷£oH "āŻį«ēŠõņóöˆōxō)ō;õ’õß!o%ń •3ž…’±÷× 3ęlå~ęē †ļ¦ģČ,Ó(Kv’ĪńŽ)I.ž!—%ØØ ŖÓ6[5ā½Ł<Ż ę!>ƒś`÷ńģė[üŻż*Å ņ ²—łÄū¹ å ¾ŌØÓSĻķĶ Ģ³Ź*ʝďܓŚ`ėaé©åä|ŪÜBźcģI”Ęläå ŹŅŹį¢ąÓ ŠķŚģĘēĪę°ŽāŻœāūįvųÜ÷[¾A² ¬ ąšŻš0õéõē]x‘®łśūœ.ĮcŅ7Ņ]ųFöMõņ澜ż‘/ńńßY£3x6ƒ “ b’żŽ+w)Å,o,š*ó(KņOņj…?€b T ā‰D$Ō#ō}ō‰÷R÷+ņ,żž­$Ž&ļžāżsŲT×@č#źmļ“ļu”2ļ>ļ' rE’džÓŪ³Ś÷õZųvėČģė6éŽ;ČaŚčÅēļµĒė<ģbņUóM708© p RwažbžŽēŻ£ēJę5Łõ×ŗÖļÖ@ #..FöĄšÆńpfūĖwĖĀw‚BFB–ķ|ķm’ bėųėåą%įTß ßŠ ±¬ÄåÜä˜ä$P263Źž ‡Ü¶Żwū'üµŖ‡"æ!1łĖ’#Ö"źź ŚIŪ ( Öłīś!šĖš”ķ™ķ;߈ŽĮłŖų7ļ0īééü"$#@ź1ėä˜åē%y&Sķ$ķēō ō/Ž-Ļļ­ī^ņĀńÓōÖ§ õ)ö—īoآҒ9#%"æśąłu"/"* +—üŖż|ž¾’aĆMÄłŽ'ߎų*ųnż üGē«ååŁćˆ‡!"~ī7ķļiÜūŻ1ģķ1–„€)ņ'DčÄęžĆ ĆiŲBŲ™/5’6›Č‘ÉļŸļ“Õ Q u%Š$Č’b’„G8’8ŃķÜīĶą»į¬ļš~üŅų|÷t§šķ}ŁŽŲ»ęėę™čļéī åź'ķDļóšŠeŅ#"#/yŹ ” "ß"Å!˜ ’ Ė»[ŅÆźģšżšĘ’ē’ąYM7y6–źēéøŌŠŌ+Ż—ŻVō.õ¤!"óę\ēZŌŌ£<&²$śß…ŽėØźÜž’øīI6 ĀīŠšŽźģ˜Ź;š“īu’_żGļmķÕÓÉŅ8Ś<ڶ&¶'ļƒ“į)ć7 J ż?œóó<ę-åęźäŗž×ņĄņŃé_źćäKĘ4ĒÅēHčEų+ų°$ū#D/..'ß.u0d0Šh µĘ:71sŃīŃõŲāŪį>ŽOŻ`ünū ÖjÕ ŲĢ×u½ˆ½ÄŪ#܊ś ū’}Uö°öCp(ī/īĪ)»)E-J>Põö÷\ųHg÷ē¹ē+ٟؽĢĢGī£ķĀ˜ō®ō.ȳČbö1÷A– >wń¶ń–ĻTĻf!ø ¼6Õ5Kr³ų'ųßĒ‹ķ2ŁėŁyõLö›üIżĢ!gQlŲś×ßā<āÅyÄuąąėÜ»ü=ԮԜéźWݦŻół’ł7))KķgFF%3é2 , ,>.}.Ēņ,ó½ēūē ~ 1ńgöśõjĻōĪĶĘwĘ.ÕÕĖKĖŅŅyćóćōé[ź}÷³÷ĢņĄņ²äläÕ'n'ŃkCžU&B&=)^)W6™6hēµē›åŲå“®Ŗ”oMLņ!ņ(`,S,ó†ó¢ĪµĪå.åfkļå-žž½ū§ū$''. 9 /źOź.öZöU}W/l/źōąōšėĖėĢĆ  5XTiüˆüØ(Ü(˜÷Ļ÷ . ¦)²)ŁÄōŲó>ŚŚīåĻåźyźōŃ Ņ¼éįéiėŒė“ ¤ Ćø†åaå­ z W.C÷V÷‰¾E‹C!„!„ō§ō1’%’>MųY’%äęć0õõ&Öį#āŅßŅåš9ńõ#'‰'vüEüūūÆū!Ō”ż[żšņļĖŻī&'ŁNäyä™ūŖūs i ē Ģ ^ō?ō§’  /Dėń ņÕĖņĖ‘žłżšßwß”tžŌżŽu__YąsąæåėåĆóoś–ś“÷©÷Õ՘įŠį=)_ŲHŲ·ö¢ö@ + œ#…#fLąķĖ퉁ЕµõŚõ½łōłOżŠżŁ p™Ś…Śŗõ†õ™ U Ń’e?¾ē½ēż Tņņ{ä»äČüóüÉ0±0kē9ēĄš…š+&ł% ō".õūüóGóY2‘2ØŽĢŽ’ö—ö°•ųĘā'«'ćĆøĆ ° ŗ _č‚čó"ł'š“ Hž2žiByŻPݤ†÷¼öÄög&&ūõöõö÷Ó)ć)DCŪ’Ź’šņŌņēĶq#^#ēžćž×ćøūĪūpč‹čOa_öeö4ä,äb L Šņ·ņģÖļéä錐3HĄĶßĶÓūńūį÷GäJä%PŅ3ŅtOüÉą·ą`dŪÜõÜdŒš ĻŚļŚ^ūjū ķĢR'DŃŃŧЁĆŅÕųA×kי%Ą%Ģéćéuūxū̽™į}į-ä,ŪŪŽŌƒŌó7ö7ØŽµŽń:ņIņ|ƒw%w%õēšē("VśTś27Wb ųś’ś%#”‡ZDķķlY “ā¼āh*ńIń†ż¦żoˆ‰ć’ć?8ŻÅŠéiéŖū‰ūÅ׬×2%SV@ęNę¢ ¹ 9R…›-õ@õ ńń­łÆłųųńų¤ ” óņŻņgŚMڵœqtåo囄ėõ ģńņæķ×ķÓŚūāž¾žGē%ēu`vЃŠÖ š ƒ ” lųxų~tįjįtģfģ¹®ķåźåŸ¢ŠųÓųPķQķŸż™żR E Kū:ūšš}}&µŠ[ { vååŁęaZö!Ż!$Lć(ćžŌžĶžīü‰ē¦ēč y$—$®é¼é[ķWķ› ‡ T8…įģÓģļūńū # ‹é¤ég÷~÷G’R’ ʰcÖEÖ2%MžTžJśbś•ė¶ė$2$ĄŌķżķżæ«Mė,ė} X ÷÷Ś÷ž’ō’ė÷źūük  2PĖÜĢ’É’˜÷‚÷r T /&ōōkkŻżģżvóó"=šéźłłśłÆ øųžųg M Īö½öÖ Õ ō  »ŌŲŌ/ž&žčģ„u’ŻāŻ0( (T’5’żżėó­ēŹē0Š“ĶŪéŪų’ż’Õ Ć Ł¶ķĆdÜ>ÜŌ¾ ü üæŌMōpōšĀš°Ī_ÜmÜÜ×ōįņėŲėÓ'ŗ'¢Š’ŠĢõČõF"N"×ßäßr~«š³šz{āß0ļ*ļLHÄłĘłĶ Ų Ÿ®ČžŌžmłqłOKH8üēūŠīrī"śśĘéÓéØšČšĘųŪų–ęœęĪ Ć ōŚFģ$ģ“ö”ö>Ś(Ś –Œ ‘ ōęēe}2’M’B[4šGššō£ōKöIöŌųĘųš „ -ģģYŚ<ŚėÓ¢ū–ūźź]oĘā)Ąėąėöś ū÷$ū$fZźÖö“ö]å<åģ×åį<ŌIŌ1H¶ Š ˆœGōOō ž0Ķ%ĶāüÕüÕ%Ī%ląn࣬;āEā¶ģ¾ģżr a …ėjėŃų·ų^Nhjįłåyė§ėž Ć ąģ' 'Nń$ńJźź[”qŸ œ „ąĄąµ'č';.ģ[ģDåWåPEŸ'z'Q  žęÓę²™»šÕš.ōUōļ;P§¢ĄŚ§Ś īy.Y.4 & Ūčäčxį•į3:3(L3DØü‡ü?äķć& Ļ Ó Vsa‘ģāć 3 ś™śŸxŁ Ŗ äįćk]}†hż…żńüżĢķźķł  *!jłOł) O6ƾ›ŽŻśŻ;ż\żē s"|"©ę›ęnP–puW2%¹ēĆēš’ā “ ø ŠÕŸÕč ē hRu Q j F Õļ¼ļ3ś+ś#õ.õüüHųeųm‚PģYģģąčąm]ŁŽĒŽļć ņłśł/ < 8ųDųŠź×źŚż×żĪĄśżēż0  OHćõźõ+)/JOó_ó‡ģ‡ģQ ? įłĆłąźæźžóż7.>ōEō“’Ģ’”ų·ų²ŅŁļÕՕü‰ü.õŚåæå@ä0ä““vļ‚ļŲōņō›Ī¹Ī•żÆżŁééÜčÜ×ņČņųbųUģ3ģ¶ĪœĪzšjšżÕÖM c 0śQś Ś2Ś]y.ū8ū Zż?żLč(čļΦ;’;Œ’Œ’įāņā%āBā9ąWąæ Ō cģkģꞎž¦„i¶ó£óA÷<÷5ż>ż5L·Ļ’ō¤ōšī īĀø| e !õõ.‘„HK/ŽBŽń-ńó ŽĻõ϶Į&  ļōīėć Č ÆŽšŽŹśĄś<&C&®ĀÖļ„ź ź{GūPū€}\L^H3yąhąMéEéUųXų ģšń ü“ü ĄģĆģż…żįnįŗ¦<+?:ų’2CÆĘŠćŸć`ģiģńé’|”w“ ™ bS“ļ·ļžżžõźė|ą¤ąŁåõåŖ°‡īuīÓ)«)].Źķɕ€Š%‘%\Ü}Ü_ģģ}­(Hy}čŻĻŻl > ? üō×ōXėLėTīhīøāĖŚūŚkБЦśµśļūąū÷ūĻū®Ž}ŽŁ÷®÷–„Łę«ńŌńˆė¾ė!R“ Ģ ųųšųūīÕī¶ { żėÅėš/ū.ūń4ń—Š¢ŹßŹ:ewĻ„Ļ%żżą­+čīēMóóŠļuļ””£ćĢćl£ŖłŲł 4 ļQś0ś(łŁĒ±hŃpŃ{::,ć\ć¾ńéńl€šŚŚķČōÄēŁę;ū$ū›(¤(źž’Ģķī‘ēĆēN n Y:ź#·#ųā÷÷ Š ÷÷ ų+Wźļš@ifvõć’Ą’Pū$ūzōUōSüCü™ō”ō!Ü>܇«ÜģłģMńYńęÜžąhGāɉ*…*Żūīū„łÅłn‘ŻÖ÷Ö±ż¶żĘ%³%Ü ø ²‡X 7  :Kdģ‰ģQ3Y”“NGˆśiś”wźcKčę„ūšūFiV { † ” äģ·Øå­ŽōŽ7ž0ž›¦k $_p®±Įī“ī„u33Tdš"³"7PĢŻ‘’]ōMōs¬-‘-vc›•²¼]żtż}™Öļx„ÉūÅūĮ°U$<$bKqaĀæ©².Użhż+ żżŽ„šįęįeZčųįų÷čõč68\_dųgųo÷p÷‚‚  ›œˆ‹„š†š™˜  żżŌĪ%ų#ų÷÷‚üƒü’’»Ą—é›éĀ Ä É Ē łł}z0ż-żœōō®ś³ś åöčöyßxߘ“ū ūæöµö÷šČåĒå•ņņ|żŠżŸņÆņoč|čā’č’OŽKŽaķSķŚēŹēµ„mócó¤õ¦õJURźcź- ? «ņ¶ņ¢ż£żž ž;ź+ź’‚’ ī)īµäĀäą ģ Ÿö¦öüü“ķ¬ķæā²āD:kßdßą’ߣŖmüuüxū~ū¹ ½ KKOóKó|łvłöņŖóŖóACę蔄ac‚ėƒėżżļģųšöšėėēėa`֜ל§ ­ ^üeüŚöįöĻīÓī¶¶8ż4żļ ļŚŅ&õ!õEöDö` d Yėaė!ė+ė™ż¢ż¦ģ©ģ\łZł-&9ō/ōd’]’ē÷ä÷«ö«öĶīŅīėėš” ķķÅĘŅūĶūŁšŅšÄ¾ėüź|ł~łŠžž­é“é°·óų ł ł‡śśÜšÕšåŻ<õ7õ"ż"żņ’ł’ƒķŠķRY{ōō:õ9õąŪ‰ó‚óCż<ża]÷÷‘•‰Žų—ųNS–ü–ü”Ž® © hžbž. ( $%•˜GöMöŲŽ£ū¤ūY W @ó:órümüų ų ’ü•ü%$ń+ń“vūtūłč÷čż÷¬ś¦śæś½ś;=ĒųĢųüüżYń]ńRRSśQś˜ ” õžīžøß²ß|õ{õ(*>÷B÷”Ø®ó³óxõxõ ßķŚķ$ūūkõdõų ö ‰šŒšŌŁŁūŽū@DŲŁĻõĶõ„ōō5.Š Ķ 3ž3žēė‘÷•÷÷łüł†‰ĆĆIžEžāńÜń;5  ƞƞtwŻäĻ’Õ’ORA@Įī½ī1,eaÆ®PS!ł(ł¦ö­öv÷y÷±ś±ś2ü.üĖüÄü?4, & wwüüŒśŚä“’·’°®Ž†xlŻŅ§ī īóņĢŃJöUö}†–œSöOöhbåżŽż™ ˜ UV*ų0ų™Ÿ¬ō°ō—’’H> ž ¬§  ]ed r ė÷ü÷ā ī [`“Ž)üłėłŲ Ē ļšüłśäó+ō;ōĒ Ō ƒˆŹūÉūČĄXžKžŁĪłłļļź“źSŪYŪBFÓŃÕќš›–{xOMxėzėP%W%ęÖļֆĮ’Ā’E B S÷I÷˜ģģõéõćõ""ĢęŅęP\„ž“ž Ü’į’GņFņØŸƒēvēÆ(£(’Ó‰Ó‘%%K’M’¢+)5)ęę×(Ü(‚Ʉɩ8Ø8Įė½ė õõ ŪŪO,N,ŸŅžŅ‘“ęŽęŽkūlūVW›ī›īš›¶ÓµÓššĆÜÅܜ}}žįüį‘aŲ_Ųc c qāpā( ( %ü%üļļ?ż@żÉāČāu w gńińżż’żæģæģīīāćāćįņŻņåå55…ų…ųĮæ¦ō¬ōÅöŽöŃįéņč ! Čķėķ7\ų1ų”ēćēœž|ž`° ‰ có—ņĄÜ„ģCķåŌ~ütüJüaż– œsźMźŃ’ßõqõœi=õ`õfö)õ†Ė±ėķķiŌī£ī(/«jęō„ó ÷wöIķāķ–«čß©ą”CżüüyZµł’ł>ųj÷‰łXś„źZģßähõĮōA6^#$ ś üCGeĶ N Aó§ņLøĆū5ü³öY÷† a {é[ź5 1 ėūÄśäųŁų³Ņ¼ółó0+*š÷ļč Ī +Ś1v%’Ģ’…śłčłšž=ž»ąl=ŗ€všQš*wDšńk¬Śžqżłł] ć 'óÉóÅų wś0ś¶ | K w f Ø —ī¬š¦˜n/=!żØ«’Gżżķżß’_³ŠóĀōÅ’Bž ƒÉĒūi<ś—ųėżµ’ųžÉ,9EžüÉ ī , n_€ d’wżJ 6 ©*QłŁų§R(!^ćA Ć¼ŪżĀż ė   Ģ X+DĖå+~rž>ž¦< A t   łś{ūAčtÓõÄ÷R . ×Ü Š£¢×ūĀüaų>ł» { ų \ Tż[ż&Ħłł Ć6Ďü·ż‹ÓļŌķq s ˆóÓō[ ; š’›’h÷×ų® Ł … … Qųā÷yžÉżŗ8Œõ«Ā?@ż¦ ; õ’’–žÜžŹ’i’ś÷$ųŹ÷iųF1É”ķpķ”nKJ÷ ųŌ‘u·’ƒ’`ŻÄü7üŚžĘžIūhū÷‰÷Ō & Čļ]ļüÆK’®’PžZž·AéLéĪźŽ÷÷Žļ]šH%1’¬žQ°’šōšōāÆ8]HņŃņžKžĖžõžžłčł¢»’ żŒüuū:üd/)ņēńąžąžEū”ū!łLųŽö«öiĖZžµžšŠškT’Śž%fŹžž®Æ}ąö.ößAÆ÷Œ÷x ŌŠU«nģZģJ³Nū¦ūü’o’ß/ō$ōø Œ “ģūģFōōc T ö.öŖü@üĄž-žN÷Æ÷ścś@ł(ł±żž[’i’ ‘ ōqō­ź«źėüõüžl<öwö1ČģĪė1`3:œļ™ļł÷ ųJł6łG1NšršÆŽÉśœśPžŃžļ÷Ł÷õóōpQŗÄ?’]’ƹ‘ņ“ņØü„ü÷żÆÆ}łKłQųPųP — >8‹ž]ž’’<7±ū¹ū‘ · fDš*š2ŹĘqRö ģųüųÉöĄöœų ųśś²ż®żŒüŒü» £ Ę Ā ±ųÉųĄ Ń ĒĢ”›PüRüMGÉ Ā Ä·ŁżĢżŚōÕōa"c"PöXö~’‰’ś* / ( ) qłmł60øś³ś„¦_ųaųjp& + ˜ō›ōĢÉ žžÉ¾»±GD')½Č“¢śśG R ķļwų÷é÷-Ć “ źć`cŻżęż„µšōõŲ愿©ż63}sņC9vģqģŁöŚö„ܩܔķšķ#E×G×J-G-õ{õ‰†¬ńŖń35źńyۃۦ$­$‚ōƒōśõ²åØå&"  ]X±²@äHäŁę÷óōŅÜiīlī"U÷J÷f[kŅcŅ4838Żćąć! !V _ üü^bĮÓĀÓECDCĻ Ļfaéėäėä÷ā÷ĆĆ!Ų"Ų£$„$¤Ģ¤Ģ»¼ūūAA; < ļÜīÜĖĖĶŠĪŠ%&'ķ&ķ[öXö#ą!ą> = 2ß2߯Ż¢ģ£ģ<ū=ūŁšŁšwķwķ  “ļµļõžöžżēżēKšJšäßā߬ž©ž:÷9÷ÅģĀģˆˆ=ō<ōäć&ģ0ģ­Éķżņż`ļDļ"A°ģ»ģż–µėµėšJš€ż\ż„% -õ@ōižóž‡ģāģ— eGõÕõbj6’åģ^ķīķ‰õŪōh‡ķåģ…SŸžz’éņāóŹŃčé³ Ÿ Äśśś»ų,ļķīK÷ųėż’”ā)ću Ķ Äųę÷ ­ ņ ń’ŻžļŅš•õżö³ ` 7ōŒó( č@‰Š}žn’ō4®ØóŽņ ŠEōõø’ .ėģÜ\üņżńč4ł<łŲłSśoūPüõčōć ē -ķ$üÖü„ŚjõEõZŻLżpüLī÷˜ų/śćł Ņ ńš÷ńKüóņņƒ Ģöų^C Mś[ł O  ^ 朚Hņ i Ÿž”žä×-% öyžæśŪūŠGŸ¶ź†ėK "[BŁółæųƒż0 ’Zßł±÷h ķ   …ˆśśC½łfŠgHł§łžœ ī Hå5Q9hźxżtżæŲ R  ŹFf<%ż¾°\ ! ¹žC’} Ć Ke„«żĀżŪVÉ÷…ų?ż’.j ]¦)’ Ū4X÷ŖųĶ’XˆOØė¤ *óūņK „ś:ūč_3öö£÷õˆFäņWō¤’#ųUųŗė~YHHłæųg§/ehü¾ż“’’G1M  Cf Zś!śŪTüĖūÆńCņ-žĘž­  ¤’!ļó-óGč ļžĀ’󞣒Éa„5éQē÷hžŅżūśžE’Õū”üœ Ī Łīīų Ķ Ķ’t‰L3 Ÿé“é8 »īīū_üž‰KõžCžżö’öV  „õöšõĀöūDūG‘TśĪłŹ’ž÷‚ųŻł’ ņhń?’¬’ųöB÷źüģśuū¬śµļ÷š… ‚źyėŲšnń`qųųē’#öwō½ūČüIķ’ļŚ?vó]ņuōō=G’2öœöšœšDī+ī•ųÜłńģ)ķvüžźõžõˆś9śķöĘöėCģhōÄō”żšż‹÷ä÷Œ÷ōõrżsüÓī/šń@žūéū6öJ÷Ų ~ 0ųćöCśś¹üÆü/ż“ż¼÷4łÖńöń°‰ļ ļ$ūČūēŅüī3ļžó‚ōOśŚłšJģ®ģ}ł¦ų…%ó7ō±ü<ż žŠż£ōō~ļ'ļ÷ūYüų÷jų>ńHńpé`éŚµŅž’‰īNīęÜgżžŁšcņvüÅūčššKņ~ņYłöųõ‚õ[ū"ü7ņ'ń¤žžųś2üQ¶Gżüšü]ż.Dųūmū|ó±ółPł¤Ė¶õ#ö·õ3õrż2üŅųł§ ’Ā’1ś|łį÷Ė÷nöPöĒ ¶ 0ļ¤ļtž3žĆöTö»÷ˆų‘’ģ’aō„ó6 ĖjõŲõ4 ³ (’śž±ņSņ‡ » Ė$"’6’ś>łŅļļOūcül’ĘÄiIŁ‚ž ž-„xž’žœži’†É„üźūÉ ū ?„ *Tü”ü#ś, ž™h ČŻčžßžF’É’Ÿ½£ģ Ÿ z ! ŲF N S Ž k³Ń 6 ° Y й> 3 ę%Ē e’Ć’žOž€ ` w‹yü_EźQŲ)‘­žQß — üY ” ¼ į æ­”¬Ē } } t # u >żżTL§øend[[µØÕEšż «’2k’BÕ’é’󳏳 J ō@ŻNņžI˜ Y ¾ Eśś³ļ§cr  źæ®üµüHéž’.āµ|7Ō…üü^ŽQ~/QĪ’’’§’*’ßśĮśå - n’ ’śKæżžżĄüb | PBøŠLdb÷÷Ęw Ó äömöļļ’z’V’ė ^ /’’ßŌłł½·åŌĒÕÅį:śčł‘ž¢/k’ŌżĢż3c2:×¼f$³žčžŁ4õŻōrĆ~Äćómó$6üEü€žažś’ßüż“õRõ_ [ łmųż(Ēž’Äū¢ūSžažÕżŻżgeś(ś£ūūŃśeśžŹžØCżMżMžJž±ų<ųüDü÷žQ’Ńųł¤żžżGüsüÖ–ėü½ü Ł «łDłbł9łĢ–śś9õŠōČž ’J’Õž­ö•ö]åņsņĘū„ū ż¶ż7öõõż¶ü¤żŪż#śŚł]łXłæ1ōōlł ł¢£ģłŚłŖüÓü2ō\ōĮüšü=ūūK”łdūūÄžøž>žKž‹żxżż\żž*ž)öĢõ  č üĒūŹł“łŽ’ øüŒü‹eŲ=³ūpūĮö7öŠ’Q’N’²·z  –šˆļūżĒżN0»ĘīŸ1ö8öć²ĶõØõm8ö÷V÷ß’Ź’É i‚õģōØÜ»ų£ųF F ū]ūŲŖ”’c’'<n™ųdųƒ ä YōÄó†} ¾ (½Ap¹’®’Ļ•ńžņž¤żžS*÷Øö%Ģ×öqösbī g {’’‘qlž•ž»ų’ųjų…ųš › µ÷C÷ÅQTz~’V’6Žj Ē āĮ£ż_ż¬žf÷÷Kżjż!żŃżĻų³ųü’ūkQ‹ŪِĶ?÷=÷jĄsżÄüF.žČžūŽśf÷’÷]œ˜ųrų‘¹­üƒüÄś śÄM oĪ£œż’kżņüŠœ†ÖūÓū(?ŲüżģüCžśżŲ„Їéf²į«­łŲųߊQ óʉž×žŠ “ żSŸ,Œŗž’H¹†ŃĒ["žŠż>62 ŗ ķžržŽwÜćš—" Hūū;}˪Žóūżū×h9Ķæ>“€ÅŪÄŸzF’’”gB U ¤’4T½cÓ™Qwü…ü]€œ`żGżˆÕß§ÜBæ·īÖrŖ_Iż•żżžõĒp‰h+-’5’µdž]žń¼ūž®ś¬śWRŪżäż:bzQ3üü½ų’-’•żżdž;ž’¹ž©Ēõ`pžjžt’=’[o”ūsūÓ˜Ž’æ’Åż*žµ«ß÷‚÷ĻżŲż—ū«ūŖž—žŠųēųž%žgžWžPžLžūūÉü üa’’ŠżžžĪżšż‚żżmż~’‚’ņż„żĪųżųŠ’’’įśśäūīūLųšų¾’’Ī“śpśūšśęūxūD«=ū^ūLżģü F`ų’ųś³!t÷£÷ķžūž•fcųjųünü-\óųņ®ūćūn]ø}–’5Óūüæś ś"÷’*>łĪųŻżTž®ż0ž;łņų¢R'üŖūūåśæq¦÷FųĢ»–’ś£ł¼ü™üJKśž›’kž ’ü~·ūū'ūhū¾ū­ūĆżhż'žÄž-’’׿nż^Hųų7č » „üżS»ļņŖū¤ū†łłtµ’}üüžŽž Č[żż®ł|łŚų©ųėü2ü“™įžŠ’Öž8’”3ł§qūkūĻž¢ž,ūūOžŗž§ž%’k’%’Uüēū9÷e÷Ģżąż„śJś¦ĶĘś9ū’żvżH"YBžž ’“üTü™sŌDüÄū·RžƒžB’`’­¾hw¢śzśO=li ¶Źż’żJFށ¶’’’qéKūdūvžKžšįĀž”žµøq’‚’ļłś©åž]wŖž“ž2ūū5T[<3ę’Ī’ĀŽh’”’ó·ā‡Ī’™üżčēNtD’’]r2~B‹ ¾&™brw…©‹k˜‡@'’Śžāūü’E4PĄuYG˜ó=ŌķˆVŒ, Džæžüsüs†”’0’ī„£r0h¬¤ 89ūŒūgūpk]’£’\æÓ°BżÜü”žFiµżæżężįżF’’÷÷˜š¶’Ī’“żZżŒ}ĮžžEڦż'žž’iśół’h’ŠüÖü'’%’ćł'śFž€žpMÕ’¢’VüCüĖū®ūw§-žvž”žqž›żnżŌżłż¬žæžr’B’Sś_śÉ’ü’üęūļüŪü3łqł4ž/žöĢ¢śÖśåūęū¾ūVūE«üčüzū%ūŽŖ'ścś ’Ōž•pī÷ųŃżåż åõłķł+ś…ś*'Øō:ō¼łįł¶»Y<Å üküĻś:śßžšž÷Ōłžł°ü ż¾žU’Æųzų®ZžŒż¦łVł\ś4ųęų6’=’QÖś®łGü üē’Ż’…’īż„ž7ŻNü”ūū,ū’ūžū¦ż<ż°ż/žJ’Ž’pżż›mŃųģųŽ’.’Į r Łż6žh’ė’ht„üœüņ÷õ÷0’ožAü˜ū?żž*žž1śīł“÷u÷Ąüņūōµ’¼Śü‚żśŸgīŅūÄū’ŚžÓł~ł÷ż~žž¾ž ’ÅžƒżóüK÷i÷9ūUūUśėłā’ņ’(śĄś“żŗżg䒚’qūnū łžĮžŅüIżÉ]ü„ūJ½Ą’ķ’ńżž4_T”y÷W÷§žVž9/A}’ą’>„æ’‡’^‡śˆś;ų ų~·*żBżS’)’§‘¹ó»óĪųūŅ—|%’|’y÷ˆ÷üĻ•ŽżkżÕž.ž-q±šm’Üž{Ófž±žAūü>w#ÉŠž=ž”śJśŃ"­vł=śŁ£+D’’Ä?øżż£ĆRī׿–ż=†{÷†÷e’|nƒ:_ŒĘ¶æ”üĻü#茫’ž ¤ 0płäł|…ļü‚üŪ’’6·Kρ¹fŲtĖ’–żŌü.ž¹ż”’|’9ņ‡ƒsV†ŁiT’|’üUütšU5™„Ćś]ś>śńü’ü"Ņ; ! Ūc–}»’Ć’“Ņw“Uq›OüSż’£?poWČ#ś,śBŹŸ©šGžžĄHž%ž„"’µÅjX+*­’üž¦üżĄŁsż;üĒ,ī’­’~žŌŅhöéöĻqŸ ? ˆ’õžQ’PĮ’:ņDÆöĻx^™WžIž_éĻżŪżEä’Ū’üėüqIĻüüOūFś!śŽžxż«t¾śµū¦­ūHūķ÷Äųłł¾łKUŁžY’Čł²ś~·-Ķś§ū¬üÆüM9’zūČū˜żXž°aø›ßł(ś­ś…ś,’ęžŅ’¤’¢żĮż±žQ’S’D’Éū<ūŗ 1łMłĒżżo™ ü¾üē‰/o¶ÓüĀüp/ī hłoł5<hūYū²śœś!<Büü’*’gšGööžSžÕóÓżQż[’µ’éž9’ĮńŪ FÕ’;’Õł¼ł ’Ą’ūžvžĻüoüP«qł6łałßł„Čś­ły„ożZžÅžÄżØūPūł¤śy2Q’ßż`öZ÷ńøń|“­’ÉØü@üŌ#4’ų*ų°ģł”÷Ź÷Ķ"Ņ”[@ł¦łžžĶüUüdv‹žĢžÆśŻłż¼÷ ųg>Hżż@’ ’Žü3żŒ Ė`æ÷“÷;ĮŖųŗż żŖś˜ūŖż@žųł¶łOP’žžbüÕūż@§’’’Ö’<žrž’Rü&_ųÕųƒż3žĘh™’o’DŪLčÕ±’w*ūČūē %±"Ē”µÅś“śŠź”ˆIĘ Ī 7’P’³ _ ńżUžbÄ’k“&E-Ż|śāś²Et Ę č\r3PüXü·ÄSX¾ś,0žSžžB!ŒķĀÖbÆ’[’ļÓ3›Ą”“s½£ž”žM3ʧ²ŗ~øg°Ų¬ • ›8±ó2§ōėä¦ež,ž‡ž¢žĒŲĮ4€~®E č§®’B’Ų’”’é°ßńĆū[™“żYżŽĪ CHüĀūŪ–D0Œ‚Ņž£žiSUżDżÅóėžēžīū üEl…’błdłŽł'ś”’1’j’’śŸ~ž^ž“’ ’§ż[ž½ü ż±Ä’śżłygżļüöü6żŻ’ŸŅ÷#÷ķ°śū•śUś{żbż/üąü@’:’)ż“üÕžńžKł)łŠūXū4~$übüÕüĮü$ü ü_żTżjūKūkżLż4ųhų"ūfūe’-’żśüążžÉųžųmžRž"ų_ų‚żż8ēżÉżŽū$ülł’ł#Ż’žzžZü–üżżn’^’ē†^übüūŹś»’°’Ų’Äūņū‰żŲżnõ õŅüBżĄņVś>łķ’ß’^üFżÜž‰žF’ ’=żŽżĶż:żhžž®ų}ųŪžŚžIK³ü\ü¦łŗł'ž¼žPż.żĆž¤ž(B‚śvś€ż/žŪżéżzł§łšü˜ü‡z–ūšūēśĻū¦ū†ū‰ž¾ž,żDż~żĮżéü—ż`żĪżłžłž_’’ž¢ž„żĮż„§ųŖ÷æ‡cżWż6ūŠūPžt’UżóüūPÉūfüpłłŁŽĘżążb­g§cüøüž,’‡’Ó’¼žÓž%ż9ż—n(żż§YœśĀł›Uū:ūĶż/žĢœ ÷‰÷3_ż^üFž¬’ķö÷ē;•ż‡żˆł)śŠżž’m’ł˜łtż±żĄ}VųXųÅülžjüµūÓ±śšś<’1’‰’”śūŚ8‘œ’q’šžh’Xūęū€śjś0ČŽüüĖ’fż‚żŅżåżˆÓ'üŁūüUŲ}ž’Yū ümµ™b,śūfžqži7Īśżśäūüp?Sžžižƒ’Ūž_žī„Ę5§’s’<’Ņžamik’K’ąžO’ó}¶ąX’’oóӒ̒䒃? <’Pžü1üÉ’˜’˜”ž•ž¦śsś§’@’ Ÿńü¶üŃūüK’ž¤xy!żüŲJ o’,¢łśpśÉP 1B9’®ž…Gw’Hžō¢~üÜūt¬ š é]מU’ū|t  ¾™`ĢE”É‹«Tóņ’B’‹R’¾’f’l’Ō Y hž[ń‘.•ZµjÖ’Fpå’Äž ßłšł5žĆü·÷’ö Į‘•½ŒEūÉśčĻšŅ’źł@ś‰–(ś8śŪś*ü]üąDŗŪĘū±ūśyęD"‰;ūŁśl€R’2’Ģżž s’’Å’ųŒų²śuśBm@&sū üõõ÷įśÅśÕü¾üÖļW’Ī’‰ŗgŽł!łWļן¬’Ē’©{čž©žoś ūOūYūc„¬ļżsž ž8’ż]ŲžåžZś+ś­«’ūüĪüjż™Dx÷w÷‚Aµ}÷±ųBü üė%śżL’pś“ś}"GłCłģü:żŹ<ūØū­śōśqn€e’=’ł:śqžčžĢ€/\ņżążłŗłźłÄś<moŲmōŲō¬Ī»’Ü’łś¼l ’½ž|ł‡ś”Ć-˜žŻżcƒh@=M±¶óō©ų\ųa’’Ÿō.õļ³ą“°ü2żF’v…Büżze’óūßśF1æDšŪšįKōe{’ƒ’IüOżčöńöXuܐĮżŌüAų’ųżæżē <ūļśNłžųĖzVYśīśnü·ūŅūUü*8{ļšĢśŠūl 1 ~_Ćõö!ų0śŲ©±U1ó…óƒūXüÆ j ń ³ł]śXśųł@Z’3lōéõßś¾łœ n ņū„żźłÜśź1óåóÓžĀ’öš„’Ų’īüūż† ę ß±±łś®žg’ƒõż£ż|żg÷÷Ņ`PĪż!ž>ģģ2¼ø -ü®żpU…öpõ„tm  –’e’ŠśøśŠ¼ų ~ ¬żžüśśŌū6Øé›÷xö`ļtļ"®³  +ĮīČķ©’ŽžŻŃ›üöżü}ØÆ’‹ ‡ ^ąųsł½śtś“/Ŗ\÷w÷(ł‘! ŽööõĢžÓż'7Ā  GõĶō>ū4üFō@ ö—öÖżé‹užĪž%’t’–ś÷ś|‹Sc÷ņ÷Ź’^’ćZö¤Ēüyü¹üü¼Ä W†A`¶’Ģö&÷2 Ī žüŽżŚūRü©ÜaCF’ž’ī’DĘ’‰’ö’ś˜ūĄ’k’‰ó»ü‚żp’õCĄ2Ėžļžbü,ü!ž žØöH÷aŲń¤ žõž¼–ü^ü„żMżE’ō’CśłŠł9übüĻŠFƒ‚’’Ø’’„žĘž#ż8żŃ’±’Į’³’${žįżĮż¾żūlū“’Ž’īØD’ÜžBū\ūžž>’¶ąįśśĶżńż÷Ū¬¢ŻśMū6’…’»žž“Ō€Šńś=ū<ż"ż¶”ūüØżŌ’¼’œ‰łeły3¾’ÜŃŽJžnžFü,üåż,žzżķżY’§’ūūÓ$žÉż•‰ķż“ża]SūüeOW ś8śĪūŲū’ā’R[óžO’å’ó’ ż1żmĮįłū(üÓŹį Īž ’Æ’•«üėū&ŠWūbūµ’ ‡ž’ž›ūėū>ē n’\ž?’`łułŽŸżnżšü…żž>žĢÓłół+’l’t”łś5ž ’§žžä8ūėś}’ƒ’ŗżž:ż¦żOL ōž žÄ’8’ūÄū;ū2ū ižsż^ņū<üÜžāžy…7ż"ż¤éønœż1ž&żż{ cś ūL’?’²—-ūMūBżyżGłžšżWžW’’‚žļĄNzi1š>’Ģž %DV’V’/’s’é…ų3Ž’4’ŗD—žÆžSńSć ž`żEü`üיUI«żžżÜś¢śš/’$6üü;üxüį’’†8W6“ż-ż€ā’öž÷9Ž’¶’=üĪū„ ' ^:’_Ŗ*jv’oŃū ūŽ7U  Ō‘‘žōžø'š ü īį˜| ‹„ż ­i‘µ’ŖÜž†žN ` Ģ ÓQo÷l»éd^¢ ·öø’™žs*ĮųųzH’,]ųĖ÷d_SĖžPÜ”Žü›ūÅŽéžÖż×ś_ūīµ™…dł>ś€żUż“1O—Öū­ūPņ-°Łė© $ü·ū$¦ż‚żM’ˆ’õ7³ž“ž£÷ņ÷Ōū©ūThš7ŽŒśūĀG­ł£ł‰žgž­āŸž ’ČĖ ¶øłnł…#ĆĮ­ÓœWOż/żMūņū-šśĆś?Sė:åüµż;’'-‚ ż*żŃūū“ĶüłŠś˜ž%’/½’•÷Ä÷§ßĮVēö4ų:ž„żų„÷ūPżüü®<ųEųøž ’XTśÅśqū¬ūłjP$ž_ž‡ł=ś’č’ų©Å’żęüĀų“ł“śGūi¢žœžFõœõ?\‰żĆż.ś+ū1”Żż×ż²ł«śT¾žĶżÜ)±’yRьņĘņįśžśōż?žŁōxõچ€Mż–ż¼EģGāū÷üćČ>£‡ūOūk¶ķüxżéš†ńŚŁ9óž8’aūOüp÷~÷Tƒ˜šéüBüČ÷‹ų%’ų’Wpł łśšł‰kFīł#śéüXü†ūüyw’ųž”ī^ļhžS’‰  ž’ēžOõųõWłPūæ.o;ŹńRņ¾žw’œ B Õ’ų&ł9ü³ūó wdzó½ō ž”üa ‰ łßś[üŌüYŒ’kņ‰óoüek$żƒż’'˜ ® xYēųƒł”7ŗ,­²kżCż¬öbö°ibŖłśķ”ģ;õb 6 źū*żŹ’ĆõėōÜŠā f ¬žužyśmśĒō( ‰ ü‘ūøūøüŠ5ėū†ō…ó*ń^ń7Ē X %“Fķ ķKmĢ  Ļūż¶õĘņ’ # ©!ų„ųäū€ū‘Ar’”’%ų9ųęŹŲĮž|’—ö€õĀ’’° bÓ?Uó6óĒž¢’D ž~žśö÷ßļo2ž ž×ž’Žśłśr[K.ņöq÷ĢWŪƒ)°²ūRū,žyżį&·’ić°ž#ž#÷‘÷øµ½ T /ūõūzżĘż…¢Ž’ę’{b’®’$ĘēäqśūK¾yüżf„LŒNMńuŽżņżĆż„żÖüŚü÷±÷ß^ža’iļŲūœūpžCž•óžVöżõ§ż©ż/Ū,’’|ŅežÆž1ž7žwc/õ’.^ģžvžĀüĄüæśŁśĘ7xä¼’:’ƒłüłäNōšū‹ū’üĮüP)ć  śøśĖĮ’ž”ˆņ0ūžūDżŠüs…%ž’Cнå÷JųöŠŠK}Ŗ—ļżźż@ü~ūŹż@žźü”żĢ‚ž»ž\ł’ųxRģźķy³’¤ūIųĘųj ¼¼ŗł†łCż ż±žcž2d üGüåŲżæüŖNī’0–śóśŃG!ōļżōüX ŅŖžśžĻžhž’‡žģž{’nü»ü±30ž$ž[žµžŌį1yžźž/šū^ū²ŃÜŁŽū6üŠ¢¢jžĄžöżœżŌü¢ü½üżatž7.ū:ū1ü±ü ńjž ž¼ų‡ų ü üg;ļUś†śc’k.čmßĒĻłrł„ž”žMfå¼żfżķüéü>żaż×°Šūkūķžž•’g’LüĶüF’e’qžžG’Ųž£'!@Jˆ’`’\ĒŲhw5Źł5śqžĢžqüNOó1ōWū2ū· $ lóō:ųĘš›śšņ^łWł’5ž1"SŸfü6ü”gōüŃü ’:’žÄżLż^żyqģūSüPž żOž°żź’vÕÓ£ž‹žūśyś£śZš¹’(žkžüšśŪśēžæž$ūgū¾”‰.ŲØü ż°’ŗż}ž]Wü½ūxż2ż° ­ ā’tųü]ü.õTōź‚ü ŗ žgžćūū§žožžsžŖųüŸüNd2©4’P’’’’Ų’G’żŁż~»ž÷kåjż-żŁü]ż¦Ā{śĀśĖ’Ž’ą‚žĆžĮł1śÄĘFüWü ¬Ļž,žĻž“ødü'ü¢ž-ž0G7£z’d’©’©’Ōż„żšż¬żBłYł čYžpžØ=`śøśPz—A$ņ’ĘūņūtØė¢ż?żŖžnž›ą÷ż ž{7ĆūoūuĻŽčų~ł×qž(ž“o 7ā’U7īżžj pżČż·uŲżųżœ–\Y"ųŖüąü¬—­’; ×’²’ ’’K’Č’)Yƒū’Ōü ż 1 ¤żž_ūéśK’’¤żżżE3‹ž8ž!’¾žd“ū’)ŠžKž…’v’¾’~ØżŖżżQż}3ÉžE’ɰ%ü@ü=\LOž•ž8 uś ūŧ…’£’2„»žüžŸ}—ĆJ[üüĒŽ…É”…KÓtžAž©óŠ;Ŗ6¦’e’äēl`’8’ż*™üŸü½’žp±’łĀłvĘ`ŲR’ž’żWż›üĀü™LĢŪ¤tFüæü*Q™zžŽżkU>ÜBžgžóMޤÅNž«ž’Ę’F•"ҽ eŻ’cMūĆ’Ž’ĖŻž’2®żVž*gżPżĻŠw’ń’qüāüĖ˱Ӓożżzž›žš’'Älf$XĢÅ$ūNūGśĖĀ‘GF’=’a”żCū ū ’ŲžMØt’Õ’%ū’Žż|żå’6ė'“ž›ž]žwžš™Yž¢ž§žužÆž»ž¤Ō<>žFž ֐žŚžy’W’“żża@^dė’«’ŖżMż“’“’Gž’Ž’Rüõūü’Č’ėžD’õ7āĄ(’žžcžbž'[Œ’Ļ’„žžDżśü14åżSžj‹ę’ž0ž„tdśäśŚéĻüŅüR×’IEŚ"’’ā’łŠųkŃ ‹žĖžčØž›ž„š ’ģ’ż‡ūTū$żŌüėģ½’`ž+ž2AŖž‚žØūĢū}Œnžšž+ž/žś0ž,žżčü ’’”œ0žažx`#žlž*H—ž’ž‹ūtū±’ø’šž&’ŪŪ%Ęxž9žSC4ž;ž³‹,’’K7hx¬ż žĄ­£ūœū¾’’Œ§™’Š’]3’H’ŅżŲż~±•ØĻ’¦’M(Ø’ē’Üż-ž›żøżD($ņŃd„œŗŠ’Ē’D’’3 ėž’Ź’÷’ŗ ‹©õś’ś¹› W†Īö-Õ’ĘŽ™ bvżüśü„ž{žßžßžÜżöżbsEbu‘¦ƒµü‡ü—’‹’2e­É£€V{’»’B‘²Ńžüæüóߜ··×—uŁ’Ā’!0ōēČūłūØøMsdčžćžķ’ō’Ws`aŪ’ā’Ü’ żżŲ’¶’Š˜ķģ$äž¼žĘ’Õ’2ķ’Ņ’’’·ÅĄ÷>žZž…ž›ž;O PH{zNS’’ß’¼’†]7ž<žLy|’^žNžēø­’æ’Āļ =żż°rH’Z’7Y¤’–’Ęž¼ž4"U˜’Ę’sT žžļ’1’I5@ž5ž璜žˆžgž€žČÖIžwžō`ž}ž)ž’,ņžīžŌžÉž{[ŗž©žŌžŠž±ŸGž>žĒžšžK’J’\’‚’/Kwq#’’Žė’£’®’Ÿ’°ż‡żš’…’]l’÷žōūÓū6’&’HØ’Ä’–ž’ž„’”’5°Ģņ’P,^0Ś’Ņ’ˆh žž—’–’ß’ę’RžFžXžSž\'YČ’Ī’ ’a’öżžé6PäžÆž Å’‘®¹Ł‘żžżžŁż|v¶æ”Ó~vmżzżX’V’«’¢’āūüC>•ž¦ž/ū’žž +™”’€’ŁŪ;X‚’£’źņkg#’ ’©’’†’}’Ē’ž’’ąžęš~®@c‰ž§žRnˆ¾q’’SHśįŠ~ °ž…žwžRžˆ’|’×ņ±Äv’‰’ߣ<žcžÖģŪ’Õ’]’F’Ą’l’j’„V’X’7—’£’Qe ’4’Ż’ų’u|Å’Ś’p^ ’6’D)™žœž„T”ż’żÅ’Į’7B1’K’‹…g’Ž’ßņØ’Ģ’b’U’Z’_’4’łžX;S:žž™ž}ž’’7(&’’ Æ0łž’õžŹž{żPżĀĢFdŖżŠżüŌūcJ ’[’ä’ļ’¹žøžŠ’Ā’.>ĻŁ™’–’,1 (žžRJžYžxƒÆ’¬’ŗż‘żßüķüŁ,Ā|’{’KČüóü6bCž[ž’Āž½’‚’™£väüßü€žEžīīÕŽ7{%&-ūKūį’Ģ’ż„żÖüćü˜ˆ^żLżĒ’’}žTžNCh’j’TRMbNŖć¼Õ¬ž‰ž"żżpi®’²’½’o’ņü¬ü„gĒPĻć7’Z’˜É’|’Q’o’z_ŽTN2Õ„[ū5ūcž/žJ(™¤?f„Ōŗ’Ł’§üÉü',-ogb`’+’d’īžnZ}Ÿėź`żtż\Š/‹į2yuZ’Q’SJDbśžāżÓž”žk]u’˜’Čē7b2Śēs{žæNfĒ”`’'’'’õž¢ž˜ž¤ż£żŁžćžŸŠS3ēž ’¾Š!łżåż’X’¦±tŚĮŠ<żżUś’l[æžõžv’†’#žžŚ’œ—•¾Æ’ąš‘’q’’Ņž²¼Ōž:’łĪüuü9žŃż©³®-A ż÷ü’Ŗ®žēž‚I‘Ńü„ü$žÕż±’§’>0UĖ~ż%ża" žśžZh’`’½żżå’ń’CœNużcż*Ī’žģż®¾,Øž”ž*ņ¤ŹżŻżS’|’ @˜žužĖż§żøō”ÕL’6’’’ī’(»ų€ż;żžŻżv‰?2RPkiˆ’I’¾éģ’-‹žpž›ž«žā’ģ’›žšž,Y[QMžžrm£ž¶žd\me_9ė’ū’48?Œż|żhžwž±µČž³ž“’ž’ü¦üt@# 6żż9;ƜōżŪż¾ö’žŁžV’ļžöž’1’4’Š’‰’ÜūšżćżU’k’g¶2'Qtƒżbż£”ż’ŹĄ^žZžł’Õ’5HĮ’ą’‹­’ŗ’ųśZ’p’(@žŖžƒt™‡o’h’V7Ų’Ģ’Ń’ż’),ŻÜżżććNżwż_?D5ūż-żƒ‹Å’Ļ’ł’]n½’˜’ŠžˆžA/P’%’ŃŌÖāšŖ°=|¦å’ō’—›Ež4ž–›«©ż{żAE`’n’žņ-­ń4'F’D’õū†’’J]t%CžóżÉķ7żQżn5|mž/ž7g|• ;f=žzžóó¹żčż ž’¬’‡’gDRJåżž"Ą‰/’R’\oÓ’³’MPs’‡’fž|žÉŅ ūVžmžž±ž[1ä’ų-ž+žļŁłežaž®Ä,JC.Ōžęž ūžēžųžśžżļü¦ŸčžžžŽž…ž|z./¾’É’4žTžšÓb:į’ū’rżżq’D’­˜żżiżż5;Ŗ’’’’čž’I:ōżž„’l’hhN’Q’ż ż/3ē’É’Š’h’ż@żØ˜¹ÕżžįżķżF’8’Õßæü±ü]’X’õ’%Ś’Gü:üx¦©}0ü*üˆ =żżÄ’·’—“׿Ŗż‹”¾Õgü<üŹ’ų’מ½ž,)|ž”žĒ’§’šż žš§‚’W’ĖŅßž’Čżæż94’’ NžKž«’Ą’tm’Ųž‘ż“żŠ’œ’^ž7ž\’/’zn‡ž’žbžuž¼’“’™}ē’P’¤’¦”8°’Ā’żŸż“’}’@+f’7’Ēżµż+’B’ql’’W’x’÷žéž’É’łžÜžØžhž‹ypüeüy’m’u‰ƞʞ«žĆž‡ÅTNÓŪ­’ą’F’,’ń’U’d’†’~’¢’”’\dj’O’’’q‰łžéž`żTżźĶ¶†É’Ī’ę’ū’äžÓž}d®’½’Qƒł"™žžuŸŗžøžE? ąćžåžI’x’(-Ā—ś’ÅżČżģå½ø]9øĮXžcžIK‘…t ’’ Va’żļżī’8%Fž+žae¾Ÿź’ć’»’Ė’C’&’łü×’Å’ßžśž£”.$’q’ÉžŠžŽš¬&ņžŻž’ ĘĆžž vq2?P’M’| ›w’’ü’^j&)›’›’žž ’27-Bæ .„¬Ć’³’KCdiž žr’o’Ÿ–NH-Ig’r’lHIGā’ą’o\¢‘ŻžŁž¦’¬’tm]J¦’©’Iž)ž˜”ė’Ü’7’4’ŁŠXT/„–ó’ņ’¾’Ś’Ō’ä’QLd}-/ż9żm’z’Ąŗ’’—’ ’Ļ’¤¬Üžµž-;čžšžž’¢’żŸżŒż'żż3IŚ’Ų’«ÉE’@’’‡’oyēōĄžĢž77Ś’Ā’7=Ü’ż’ŪŗµžžžU’E’›ŠŽĮn’@’8’/’ķ’×’_ZnqQ’Q’w’k’[bqkė’č’|’Z’ĶŌ€‡@’X’bžxžk†ŽžÜž£’Å’ ZćżĪżģōŒ€Ńżéż·Ć0&?ž5žž5ž‹’Ģ’Ø€­żśü%’Y’}\…{`’O’Q’m’ø»žhƒ³߿ȿ}’µ’ż’²’5Ÿž{ž ķ’«’x]M’B’Šžøž«bœævżWżä’Üž«ž$,?’’“”Ńż¢ż$-0)³’Õ’61r”é’×’‡’Ā’fžyž6’%’2žHžażrż ~’•’€žsž4D››łüĆžŁž! BZž;ž$Eōt†eżŠż$ęŲµØžŻž¾ūĮūkCŗuž¤žéūüø—Dēņūüūśūw+ĄhZżzżņśūlü)üwūĄūQZH(üż žzÆ£’l’',ģüéü™’“’”z­’Ń’¶üæü|žĀø1ū"ūtżžżiA¼ŠµžŽžż9ż@źČ«ü”üמ’D`’į ’ ’Ą’B’•x_cƒ’£’ß’ €’u’ī×Ö’õ’ŻūüīĒA.ReżżIéÉ‹żpż@ž>žT0ū’É’ż*ż¹°ˆ’r’6’7’@e’G’õųs~£’Ø’8>8'mžsžĻņŅé ’ōž:fÓżšżožkžlgX’T’’’ė’Ū’z].`žž@*­Ÿ’C’²żÉż®±ę’ķ’żž’pž‡žW_†oŗżĶż‘Ŗ^PI’:’|‚’>’}y]6±ž¦žŲōXM]ž+žĻÜž’˜žzžYś’jš>$džž}ŽJ#žńż8’ ’‡Ź@’W’žŲżˆ’’W²­ˆżBżBY7nųžŲž’’^’_—āĶ’§’m’\’BvÜä’Ųž’’5f±’·’’äžTX#•’”’2-Ü’ą’č’ź’ļ’ń’ õ’ö’ś’ū’ž’ž’ž’’’ż’ż’ü’ü’ü’ü’ū’ü’ū’ü’ż’ż’ż’ž’ž’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’ž’’’’’ł’ś’’’ż’ż’ż’ų’ł’ś’ł’ź’é’ Į’Ą’ś’ų’41ō’ń’ ß’ß’ ė’ļ’-3š’ó’ą’Ü’44Ü’ć’ņ’õ’PJņ’ģ’Ģ’Ó’ oj[W¢’„’Ó’Ń’RSž’÷’@=Š’Ō’Ģ’Ī’(%<@+4¢’Ÿ’owĻ’Ź’ ’£’87mhć’ß’Ÿ’š’ggš’å’!œ’–’wt©„„’†’ņ’ų’„{„„J’D’mwƦĘ’Č’ų’f’a’Ļ’Ų’ šlq­’«’am÷÷Ÿ’”’Ü’ē’qx:4’—’Į’Ą’lwtod_‡“ü’õ’/*ø¶f’o’B’F’މ}ƒ¾’Ń’ć’Ö’“‰jk°’“’¼¾qaT’Q’;A&8:!’’ž’“’wtt’l’ Œˆķ’č’ppš­ß’ē’Ž’ń’é’č’ņ÷Tfžž¤ž«ž·žTU94k’}’]zĘ’±’u’l’'¹žŗž”•“żżo’t’P>ēļī’ū’=’0’ŃŌåīU’^’Ŗ’°’]OĘąt’{’äĖØ’’’öžć’Õ’SD¹”żžęžŌ’ʒ𒖛͒͒Z’W’į’Ü’š÷’%±’£’ó’ā’`j™[žužš’°’ü’ ¬ž®ž¤ć…žž ’“’OTWžRž*’L’zmŪ’Ł’yżtż2’‡’”’‹’xyČ’ć’ųüż“Óė’Œ‘žwžˆĘŖ`“°’śžµžÖž_’Q’ė6IcžCž“¾±’©‡żJżEpJĻĖ’’ožpž–’’’ü’ŌĻžżĀżÕ½’…’ižhž<.‚›d’i’ĘŁt{D’K’^’ ’åżĶżĮĻn‚"ü>üŽ×<EæżČż^VÜńųźŽ’ś’C’9’LL’1’ėž’ĢĖ5žĖž3žLžņōh"[vąśū ÷ˆLÉüöüüżūżÅvR+uł»łåžĖžKę ģ{ś±ś&’"’_K0śHśd."ūżŻżVąŃéĢDJNü[ü–˜“‹Tż|żqžsžLtķż¾ż?ūiūKDY.ח*żAż°ž¬žģ®ŽžČžōüüüˆĢp\Ż’Ģ’ƒ’œ’U¤ĪžŹž‘ŒÉ’ų’<’M’ĮØJGeü¢üžžŻ°AI ž4žŽżĢż°€†npü]üyv’RżxżÓžŁžīŻ…žsž\|ūž’ńÖ$7ĶžĢž|‰†yōžķž/’D’Āģ’’šöĆłü“üniĮžÄžƒ’z’ø£X5ŲžźžņžžžŽ»¢“$żFż&9:-’:’Žž”žź’]P‡ž€žé’ {’i’2-¬’Ā’ż’ΰ¬žž\iČŽĀž“žf’R’*F‰žˆž&ī’źø’ź’ąń’æžūžĪžü:QU…ż?ż±Į<‚žåżĻž”žG…c›ģžÆžžéżN‡i|垣žøł~t_’5’Å’Ż’Ė÷õ’½ž—žÓč›Ē’ėžŖ’’’|”„’œ’’’’’ż’ż’ų’ł’ ö’ö’ õ’ö’ ō’ö’ ö’÷’ ö’ų’ł’ś’ś’ū’ż’ż’’’ž’’’’’’’’’’’’’ž’ž’ž’’’ž’’’ž’’’’’’’’’’’’’’’fenrir/config/sound/default/has_attribute.wav000066400000000000000000001047741513650123000217520ustar00rootroot00000000000000RIFFō‰WAVEfmt "VD¬dataЉ3 ü–ł ’;ś¬üdüŻąš,ü]ū„­»’IśGūš_' üążŌł:’ śü󮝿vś­žāź ’¶ū‘’mdĻū­ł»žÓžü)ü&Yųvüū’¤’ śaūjA&üžl½Ā’0ś%üaŚż0ś_žy’±ūœ’ä@£ü·ł/žģŲäü ū~oøźüJūąĶ«Fś‘śM™ŠöūIż _¼_ś§ūoQMž„ł+żˆż’cū’2QHżYł‘żŻÕüū;Āż ū¬°Ėś‚ś›ļ”ü9żš1ū#ü>Ųž“łż œ’Sūa’‚fIż`ł«żąü1śwlaIż#ūņ˜tśĀłWDøfūVüxŌĻłśœū{“‹žł9üĪęā’ū’ōH¾ż@łžżR!ćūŲłYĶšżZū-ęsś±łmf Mū¤ü GUū7üöž0łGüė6;EūD’(ÉpžtłZżwė›üŃł¶’œĮVžūŻq)sūEłl’©ęū£ūĀwš üūś°ZÅłėśmŒ”eūČżĆłü˜°°żałžæj-’©śĒ’ijYüµųPžq”÷ūˆś–_üś'2¹łŻłØ¼īźśÓü¾EĮvł[ū‹3ÉżųżürčI’łł)’”2“ü#ų™żxū“ūł½‰yüžł&ČÉł@łü’¢ś*üFd7·ł2ūTOž_ų\üčŹl’÷łāž,ż2ųBżĶ«ūBł/G=Ęü1ś<©#īłāųŒlķ[ś“ūžµŅšł%ū{ŖJžEųÜūƒŠs’»ł«ž•öœż=ųż5›ū¾ų£’6¢źüĖłżć)śaųū’…W#śĻśi§)ś ś7P’ųåśņ#ą’`łćż‚Łežų˜ü@¬ĢūųĒž+żł²n¢’śų”’ŠŠłł-śŌ%$iśrś"ø§’+ųOś_"ł,żM*’Dų#ü,Iüø÷ÉżŽ~¢żHł/‹ˆNūį÷ęžiżś€łž&éęś;śī@“uų£łØ8‰ł†üĮŪ¦ųėū ØĀü†÷ż'Ė ž;ł÷’Ń`üä÷žmX0śłqE¦sū5śŚ¾xäų9ł*÷1łüE.[łęūŚżÕ÷wügÄ™ž‰ł¤’‹ńżZų1ž¢Źśķų˜Ä/düƒśy®H³łł!Åx°ł”ūxEśŸūF>hžū÷yūwńc’Ÿłæžņœž`ųQżŽ9}ūmųE’1Ļżś~Egśrų&›Łł«ś\Nö[śźśž„]’ųzś‘Õ’Wł¹ż\2’qų¢ü2§ėūļ÷,žœWżĢłś±ū3ųz’M+±łķł•6{Źśļś–ń’Eųśļ°É’3łbż7”³’éųÆü¶ü¹÷§ż-¢ż÷łņ×”‘ūJų’ŚĒł«łū‡ū3ūag›ųµł/K€łż¶¹ƒł‰ü„čµüå÷õühIž(śRk=ü†ųyž|¦uśZł‡;ü ū®ndłXłO«Ął?ü·Ē}2ś;ü5S§żųürĆž"ś–’÷Ó•żéųž+ńĶśšųé±Ŗü ūf9;śBł±©¢¢ł ūö™čś=ü“)ž2ų~ū³©ŗžļł ’•3ž/łÜżėūžų8’UĀż ū /Ź”ś)łF±¤łū6ml(ūNüņßÓžwųūmęžÜłyž2†’¦ł²żĀt…ūrųižæépżū¢:Ÿ~ūAł„’ķłŸśsLŻū[üÆ*¶’ł¶śY9B’śž°Ę÷’`śÄżšĪ<üØų߿ƊżCūg1`üĮłŽ’Ś@CśtśÓßBeüŖüžSf²łŌś’äN’+śÆż-¾}ū žœĪüīų‘ż‘…ėżHū虿5ś”’Įnś1ś&qZ³ü¾ü{ˆ1ś±śŽL’ś"ż–½÷cūžˆV=żāųķüŪ&Ļż ū–§ļ¦żpśn’ŽjxśŹłvć*»ü°üXqtś‰ś )’Ćłü˜4¬ūžƒ•‹żÉų^ü2µżŪś-s6-žĘśY’d˜°ś}ł¼’G üüÄü˜ ū»ś·Ę’ėł:ü_>~Gühž]£ž@ł8üØX“żķśŚ’bŅžVū‰’\Āūtł@’Ņ俥üņ»ž¼ūļś¬Ģ=’ßłĘūŲ'Ē‚ümžĆ$2ų]śz’ĪžęŽū,ś*ņŹłZłäY’ž•’Bü łDś|ų:ģ ’ż^’Oü’š śÆöåc įž¹łyųM’„‚ž”ųsU $ż¬ō‚70’€€’āį*ž_ósüHRäłö5“Wķöńū€øšõÕżužnbżźżnĒ÷˜śŽĆv÷Zü”’U¢0ü¤ū5Šcö‚ų¦$˜’¤wžQüw‹Ćųbų*[_ū±żA’Ąū'Tqū£ųõ „üŚł…šžbü¢Pżvų”E īžž÷ŃąüBżÄ’ōś%¢ž õß5 ēžĘūBE*’„žOōż¹ ‡{ųn¼Y• “ųéūjÄeõ’? kiūp§žÜńć÷kśč¼¾õ’ūų–ē žHūÕ0Gõ÷ÕüüŽ­Už¹žäłõöf>`ł„śRÄž˜’Ģł”' RüöŻ+śYżk€üYü OŻõ% ū’ųø#$ž:µöaĆ ÷Pü˜żž _ų+üŽ €ĄöćE ółżėśļ6eöSż£ ¦w÷ŻžƒŁž<NUśRłŽŌōDśv łż!ēWū”Ēōöķe#śW’åZ*6bśĮõc ņ÷m÷ņÉÆü– ŚśKÆ }ūBó/*ł!ś›%†š ‰1õƒ= Ół†ōś—żĒWLł™’ē ć’ĶóéA 'ż{ł“-ü¦üļJ7ö¬ę —žōFžNūSsłŻü ę+õ?üÆŒ’’śö©ż śČbõ†ł¢ vlł¼’Ó żI’˜ÖöźõQc ŻųFüO ¾Cü>Äü‘ö«T ÷ųēõZ/Iū_żČŽż}yüRó™ bł÷„Dü}k÷¤’Ņ ¦śmņõ¼ ’żžÄļż’ŗĮL󐒓 ,’ņõšž ģdłh’N źŃņ¬ūÅĆż9ü’žś Åeõšłē .÷Vž‰użCū—ų+łÆ Ž÷ŒūBøFū¬<ūž÷| ‚ś|ł’ Šłłū‚’Ōłää-üHöā* ¹ś¾ųlēTžžžæõa” „śüōT1 )’œyśSżŪ÷ūņ¦ ·ŹśĶ ž§§™ō'žģ ÜōŽ’ž8’Č’¶ęügžš ņŒł >mł<Ś’’ Õöų…ž!õ(ü™A0čūNśÉk÷ąųHÜRłAżēžoū°! ›üÆų zHų¤÷ä3žI’]"’ųųXø éś§õ[Z¾üz’ä’õłRˆ ßüõAV b’šūDžŒüč³żvōÄ ‘Pų¬£ŁżažŽ’ųxż€ |Ģō³žŠ ­ūu™yž“…ō*łēž±÷µ’‚yčĘŗų?ų5 õśś°7ž¦’üźÄGųš÷¦ ³ųĀśžO’„8Sž­łQ^½÷Jõé|tžƒyčü# ūƒōlS>üłūLĒž{õIž‰ö†P c’Tų ęŠü5’}ž_ųoÜ 3|÷P˜ŃżśKžäū|žkāŲöĻž² EwųüžĶd’É@åöNśl ÷§ž` 9’ʁś/łŠ’õ*ūV /_üµžÓż„ł¶ų£lų8łĒS€ŽżžUūm„÷LōXžP»×Gś’ó©äāūĪł¾ų~]ž8ųÜ æžlöŁŅ%żüĘžWüfB Śb÷`P`ż©ö\ż÷’t†ZłM’d <öGżEö–’Yś^üš²n÷DžĪ <üēżż{ūß*>ų®üc œęś&ü‚’®žœūŻś¢¾īų‘ų‚ļ~ž›żŹŚ“÷łō©ÓŌżĄżg{312śõm'Jü§ų£Šž’]žpś%Ļ=žēõbĪż„ł’F®“Š/ų€’‡īüāōŽüDhŒPc÷öåöōÄųS ÉūQžĀżJ!,¹óęž} 9ž2öŸžõżGÜõģ) /„ž3öŽ [žś#ö÷Ų!S ;ū~ó üužēżwŅūøgųö <)ųq‘ YüĶēõ"÷Ž1#Ćōn…'ücDśų’†TUšÉ3Ļ’Hś-śs"ż6§õŚ?’’ņ8üŒ @żlŖžpż·i²īIüč ž¹ ūu¤’Q’āóōg GjśŃó—ż¤’ö÷÷į? ‘ūõŒ Aū=ū¦ü?ż>LŠ ’÷Föė šq÷jžśI÷¶ś<Pķ…ō = ś³ōożQcśń, ŗFžūżĢłVł8I’†ņ² bõküĶ YūŹgžaųµl’TqļS¶ GüłüyH½’¤æė„’W c:’½ų’ ęü¬’Æō šs÷öTōĒ lüC’]’źśĘJe ūö.õk ”śŗü·÷*4žż] 5õ»ūw LĄžœš$’ ūq™ö/.zŽ>ņŒĖ;ū4ūœöńŲū` Ņ’¹óŹ Œ+öÕüVöTHü·ś;^†$ļ÷Ā ü łį’³žę4uī§_ `q’śP oż-’*\īl_»śł`ŚūąĄ8ł€Ļyō ų ¤żf’włØķpX zó©ųź<žéż©ō Ū[ż¼Rö/»ūäūęīŻ k ž2vłJ…üS øž^ōĄ %©żŠōŠü’ śf „üĄł“ _oļŁ’O÷ūź…4zwķ"ō ŽżņžA÷žŁūøˆńļFētCūJūgųŌž»ū°ō{L# Mõ“ūŪ€ū,%łźžz9ż Bņ;ž Žž|ž/ōk * ’”’ń±żs•üėņnu­’[ųųĄćū1Ń÷IńŲ8pÜłžlēų ßś~ųę ä¼ńļƒ6UłŃśˆ°|ėq‚æśśūg [ž&ēdļ0×¹›ųCł oślØōPC įöœż° ÷#žßųażØč ąņ’O ™żĖžØō§Öžxżó ō‚‚vū«óc„ĒžÕćōZ ž.%ś·ō\R”żŻž©0÷^įõx÷Ś ŃóķéųÄ/ł×üŽ ±mļ³—śkūšņB]«ė *Ÿ’Kż\ž“ …śD’9ō82¦4óžÖūh9üƒūłsĮ óy 1łVüŌ÷k:kĪ YóU rł­ņš ż $uł7ņÄ÷öRŠ’åżLüü»ü| e÷ų’ OŃ;ų Ŗõq÷Iž- PlłšĪ/MśŌPłų’’Cwń ˜Śü[ü ’ CüĻ*ü‰šŁ¼īC÷ų ņłj…żVś!rė³šĄo®ż’AłµA’(¼ ņ.Yož3ł~ų% Ąż-ųƒ‘; ókóĻ ažÖČm’|ż)ōōqł‹ (üżö°ž[üŚõ ü_+cóp!’÷JWū¾³ žFń" ;Õūś³ūVüć X’Tõ3`f’Uöī— 8łxEł'ųśOFņą¶ ·üĻ‘ūÄ’ū€ šņ]ų ŸÕųHł ļüZō¬‚l öįś· Tü9UĀ’ Ēļ=ļ“÷„ £šü™čüzAõüČŽśųõ ! ü “ųģŻ Īü¬ń”S’4śqżP œž \üŽõ TüūšņƒPü  ķżßł„¢#óu« *ł/žĮśØ“’*-ń2ń ü·śū]÷÷Ī ųV…¶£óćūų µū#}ž«ś5ŗ¾9ó¼ü ž0’žÄż’ż5ŌļćüĀ •hżųó –’uż ēöż ¤ųł÷bÜū†üöż˜iž ĘųūņĪJÅżųŠķū} ™ūNūė|£ūqīŲßÉż‰üI’oż­žõš'ĶöūōłŽżf!ūž’óļšC™óūŗœö?‚7žįTĶš9’L NūYżŻłŽ’Šl mń‚ž^LżEūV ü‡ū_ō=œ Nł«÷İ’:ž:ž_śžżüĒ Śłčł’Hü÷ÖÄæü6 Źö×÷˜A’Kó O«ūńėüžŹKūįīś U ’’•ž¦ż¤­śĖ ņņ{ē?öØ` ų¾¶ž/ū wRkīLżi5ś—õž‹Ż’«™ńBv^ż\ų łź \’?Čóč’6†5łĻłĄ ūųū ’%üP†˜ Ÿö9śdÕżÉöµ’ƒžXüŒ 3ś/ż }küōż g‘ś¼Fų™ž{½eżńK &¤ž0’ČaųnÕśó+ ³÷š^°łÓĀūMöwß3ó×W Äųdłü@„YkķŲ)’ żZüƒ ÕülĻPō>ĒŽxōLū æž¹ß’Słd šō!śU ¬ü2ż ū€×ļż  )öųžü %ś<ńß~’§żĖŗś”©²ūó śžąüŗkžœ <ś®ņ¤ ÆĀ׳]ßøõµóśś!„xņO3 ¤ł‘ųZż­’šQėńT„źūļüż‰ ¤ü•”Żšó]•t÷oü> küĄm“ų–’‹ž­ó“’ õžĀ’œś"ųa] 7ņāüŗ”żĄ÷. kž"ż:÷ų_Äb÷wšŪ ›ńEż¶ž… Ćł”ō n’ÖüUłs£ūłŠ÷(ųng÷fóDO^÷ÄšśĀ+,Ęń” ͤśļś#ųj†żĘZQóĆOLų)ž¢ $ł°Źżū÷ŒČøuņ ’žpļūįżźüż<5ó{• ”^żå÷\ČžüžBĪņė"X­ūJöõ ŸüÄžB(żĮ’ ō1ō wīü"?ŗür ÷™÷'Ÿ\’_ö“ Kś»Q÷Äž„V"šŸV{ūüėiż£ģvō% ¬—ü©ō©ū¦ ‰ü÷9Į÷| õ|ó]g ł¦[üołL*š‰ ōéž8ųoś,’PŠõ0±«łsųy ü׿)’ģ÷oé* „÷D÷T Rżæ’Ęż«_źūvĒóś‚ G’¢öķżÜ¢õūŲ:”’­õ2 W@ū’;śžM’ß4żqń0 Õ“’«ł¦ž[śĆ’xłžs/žš7 óü'øüTžTØ„š2—[üZ’øüo¹ż8Ų)ņW 6Žųv÷ Äł=Ųķłæ¤åČöū“ ś«üśź’ƒ Kōˆś P’ł«”ūšŁõĘ’Ų.ĘüŠōk +žżķö°žżÖž÷© D–żßłc’?Ąś#śŖö å±ó'üVś«żšž"ār’Cļ¹j ž2tūž“€;ļ~ī\ üćż< ¦łōEP÷ĒdŅ6óŽłū Ćś¹-žM’£|6 ’ō¶żL ūCūŠ÷BÓ~ˆóžžÅ?ż‹õõ ‚ž“ü]”łŅ’2’ś‹öó~@žałūū0 qü˜łč ō&õzØ“÷l5ł6ž9ĘŸ+ļLŠ“üjüD?ūJ^Žšƒ Xū$żū ¼śāž,ņ5ĒÓ˜÷œ’ģ Ų÷@cżŽž=Æš„žr ż–’5łēw ó¾’źgžšł^÷Ŗąč’ćƒö…£iwųŻōĻ ‹ž€’–ž”žZū Ōų¹śē Ńż÷ņęČčś śž?c’rńŹĆ_ų  ūy…’ļ. †gżwüµųæŪžNõ6Ųg]öiæ ³ų›^łYł C Fó% <śČ’„śBT’ż’ĶKń—œīś÷Ó ėž¶õłV’¬ä÷mł‘Ūžē’až)żCæżBōųt ÷(ļų%V™łĪų«’ž2ēüOš  ü/žłb×_€’šŲæ¦ū§ż’ xüŒ:ütó{ ˆJöo’ž2ų˜ü\ū— ¶•ó‚L >łÓż>÷āö”cņœf±ž&üWłŁ ūM|6öęcŽčõ²ų©žyŒ’zśåöüN»õŖü€B’’ėł¬’0ū'óQżĪ ·Ü’Åō“IÕśšCśm-Xū§ń- Žż6žAżPmž+ čū©ņ !&’żų0Š słśQś£Į9+ń- øśxˆś¢h’ˆ¹„ó u÷śåųŸųž»ß¼ō“:öÖöśÄ ŖłĀ#ż¹˜žNņäüŻv’ ś“¤’HżØšō€’Ē × ž]ųD °’śŅŠõ%lōüō †’'żMżEż·¶łXöÉ {xżųŚśüżmų÷ū=$õ@,ćł«§śĪjØ"‹š?cMž>ż³ś ßū­@ö^˜kžõ±üė Źū¦…’źś_Ķ(ņDüķ Fū#RžŽZ·žTņaz ų2ü2÷qŠžnžüõ°(öHüxųs ŹüWśœż•ūL/: ©ų—ö° ˆ…žśu©לķ²ł‚ūēŸĮżĒōėOõūŸ|÷Łü ųĪó ŌhüūžöüŒū&žŁóž žĻ&÷’üjwś½gśł]­ĆņŲ ÷śųėüx8•kļ’@ ’’jüé¼ż±ž)qõįF³ī÷ę÷“ Rž’;Ųłę y ał·ł] ćūCū+śų€Žž£üöŖū n”ż~ōŚŁ˜ūŅxśī’_‚–ż…ō× ¹Ńū§żĖłŃ¤ż9„žØōq ēGśĒ’}q÷ĘüdśåA Fņy 3ūpSüżž_Łłņ(ŃŠüīż“ü~ ‚’䟚8c­Żśūģ åūź’Eśd½„=õŖū}0žžś&Šv% Wö¦ūČīż*üœ÷žbæü+Gų@²¹qśÓńį ¬ž›7üēSżõ¤ü„öĖ Ēƒüųäž¾=ū¤qūĆųó=“Ęō]uŠö-püRĘ×Öšą „üHžLś›‘żt<jó *rśaž Ēūt’Lż öķ'\Lö^żį šü3żP’ÉężńōI0 *’īū`÷&‡¹’'ÉõĢžLūÄöK š;żÆiüLŽj÷łó )™’£üś’OūM2ūūł[ ÓŲżķō HśäHśÉžźJīŽńŠ4kł¹’“żD’-·,óuMž[ųü5 üD|÷ ł“śöžā Ūłž#ūķżkÄ}óšÜ ćž(žØłq®ż­ż,Ķö{Ą*ł)÷s žžUaų_öłØ÷æ ƒ’0ž†žĄÕ²ūņ­õ¬ų ćĶ’5÷ī)[ś śøż,źÆž²óž v÷ł¤’;ūruSš’Cń¬Bż•ūÅ’ęõśÖ’Į÷@kņ’)ó Ø ¶ū™ż_ü_8ńō‡" øśÆürś˜Ō’ šbó3 BrśŁ÷‘Sū1’@Tśs¹’öxłt™žžĢüž’`öÕłt fI’†śā)łH[öuž łAžßóÄ Į¾ūĢ%śŪŽž—āžóō” äRū°śķžyBżńVü~ō•Ūuö( HłĄšż¹żT!ŃĮšš‡ ćüü’“śˆmžæ¢góxE4žvśdū” ’ūĶ’Čs÷ŁęĄõfųĄ jūEQK’ öž mõż\ 5ž–ü“ų>Eåż0-õ3żµxóžĢ÷ž S‚łĖŹł÷† üĖōœ 1_ż‘üÉüŪūēĒżdųw X•żÅöR ¹śŌ•ś#ū±Ī©„ņUūµ“ż5žĪįņńņŻž ū9ūaü eėõvŚ„Ć÷Øż¹ Źł’ęžož|Ŭ‘ņāūĪ żc’2ü–Žž6õõ%¦³’ļśī÷‡ ×;żžóö°-Ōü5÷ā ėž}ūFž ž~fżŗ1śÉų“ æ„ż{öWŅū'>üBüŌ’VōXrółpūćļ~)UńnŸÄž{ž žMyłĶā’qöImł ödž( ¶śJ žĆś÷¦õsō Ī ŪłBžŅü²GdĆĀń+†i1ü@ł “ž'’9ć÷ŗÕÉųnłĮ–’öüżļū+äļųßųõ †’żĒł½juś©ÄłOž °ü†ņÕŃäūąRūg[,’šó@ ytūż žčÓüxżōEĢń”ųņ’Öł÷˜&žāū]ÄCóŲR ūś<’Õśoä  óąTżHü'ü§ hžz’„Lõ_*Ģ÷Vł» 5ž9Źćū§zžP÷Süø Śž­ülłŌ‘³żŌéöØüeDäżöϐkśŃeūŹz’^ūvņš ōż’*ż[īü™żÆõ ‚ZžĪųQŁ„łOūęł§$BŁó÷įDł,üužj©Qó•†üźśeśćXž¶ōŹņųŻüæ ĢūG’§’~ū&ķō5üv P’„’ŃūfKŁü)åö^’„ håū;÷ eüVųÓUōū†ō cGüī ’ üżNėłœõź $ž łz–1ū¦ˆūł† šxõR¬ĶųĀķś¶ĻpņѲWüAż üŌgüEėEöÅóB’—öšü LüOÆ’ƒłÖ?DŒõŗžŚ Žū’ūü2?Šž6ĮóaJ lLżmų÷¬žCż…ųĀš˜½ś‰÷® »’nüĄ’,üpv3łöx “žüGM»ś(8ł—ś”ÆžåōŚ÷=ūZOś›žR==ŅóŚIŲśšżµüG žNłóv÷Ó’ų‘żŌ+ś0 ūśļJDóŚ ¢ū|0üˆ7paLó  zžYżæśüńżņżäęõ†äJĶł˜÷ dż1ž"WūŅ;"ģų—ł• Āžżŗśń‰'żØ8÷5ś8Bh’E÷‰ļ#ś«»ł‡’Ń·.žóŸ „“üw’–ū- żŪ™’śōŚ^1ž?łļ•śzĄżł·‚ó·M ¢ś4žĆ%ŒWņi\ MżżüśøžsvōĆzUNśåś ”ūBžę"ūm·E‹öęł äżTž,ü²$’ż|ü÷!ż5 Ģ’‘üs÷ŅIųū Ó÷öžH÷ž0õ: '½ū»‹üvż¹üģõ ;mžuł’ČxśA8żßų¶ •õ…Kł,$üÄ’Œ;i7ńĢģ^ż³’ŪüāĻüał]ōŚO/üųüŖ Ŗü5‚€ųČW’įöNü, Nūž„żÜö*’åłō”żü Š’żŁ÷RÓµżsĘų=ŁŽ»ūXöž ü«eūŪ’Jķūäõ… p:ž°ū \łéū“ś’gÅ’Óōė‡ŅłūOžųĪ«ÄóÉHל¹žĪü¬ČżóŅł÷»śżG :śģ¼ėųüxŲõ@’Å üĻ’Ķü4’O€’ōŅž ž½żöś¬ åż›}öĶ[ś‹öÓ č’œž|˜ūƒ’ńśn÷Ó ’’%ż-üöŅøüŻÖłł‡—ž’ßö°"łk4ü†’M īņ˜Øūł’ųūLDž•9aō=/śż¦śÄž×_śóe’Ŗ÷†V¢öu’^ =ś‰žžÆx¶ōõ eżŠż„śD’Ī’Üōå&ņūŅł …żŪżēAś¢Uļ÷Ė÷~ ų’H’nžē’z~ü”øųōł ržyų‚Ó ūŪ8łgż¢8n’Ģó˜8לMZż€ņžēV’ļóÅÖ ż{ś÷ż³ūM4›÷W|>oö;B śųĀšżYžŠø)óņ9 mü#’˜ū«DżŌéõ/ż2_śõł( Ęü(’@!ų€»9\łEś” süPžĒžÜ’™?ż\•örū4 ’Ełń’yūśoų~ż0` žĖöÕ łśĶŹś÷’ęćżĘó ežÄżŪ’æwśµžī÷cL’øõóŪėśZżŖüķ$X”ó¾Iuś*żū ’±PóQ€Ś’\ū÷śõśFÜbłS·–z÷ķū MūÅž’ż+žÓ”\Öö„ü ½żkžüśQ”óū6Z÷Ü’&Łaż×ö„ Ļ`üYÉł‹±’­ż—÷ G²ü#ż²žmōūt–ū„÷¶¼„±ų%ĻAł]ŗüżÆå…šó-éūyüQ¢ž$”(ó=ńžż\ž, Āūž0Æöēİ!÷½ü? ÜśŹ`ņż‰\ē{õµž ėū żūĻ’¤öb’U„Åü‰ų ž üE;ś¼ˆāś÷¢ ł’jżUžBż]ĢüķüćłP č>ž¹ų,g„łrś‡ü:źōBśŹxü…äž*­žó•źĒż1żŠż“RūĢ,Yõģ3ō6ł„‰ “łžˆžüå‘eēóO vüu'żWm’«’\üō”…žūś 8’˜’ćų—ˆė§ł0ų rżžė’„Hž““ųƒłß Č’½żł“ódūŖś-ż‚æž±õnłcłÜbūŖū¢äóf./ü žÉżĢūŠÓ’éö$ĒXųO|rłL¾żRś’łõx Yś4®ü³$’zØŁó<>h’‹żŒūĮ|üŚ’n÷:Ķf~ł.ū{ hż”’éü’/&÷*śa WžS’9ż0`ļūėé÷źü ©żŪö“0¾ū5ūŽšJIžõ2 )ū.’iž/Ēż³‡žöēŁžCł„jiłYĘžŖū5nĀõp’ł6düM%§żō“ü+żüVŽū`|ŗöņhvŲłĘūW üś©’üoūCn‘÷Kż$ wżōžņü(GßüU'ö?żĢ ’'ś£įFūĢģųł’€Iéüdö †éü\ŽżEiżšÓüköōy„żūSūźüś`l)OõŠ÷ł<ēżĢ(Gl…óµ®ū@žrü» ż3WöæI0ł…ü ½łåK‚ūŹ¢fĆöż5 åś_’Sżł¶ž?øö' ’ žžł"I’cü÷M÷EńŁżųų[ ’8ü‘ū&'ž¬¬ūių‘ Ł”žbüń „śk;ū"ś¤֑’“÷m|ś¼āū¶žWįc³ó¶pEü+"žż”ķĄō?ŸŃž†śžÄšśE,śr¶ÄCöž “łpž-Üę  õČ’’—üÅż÷ś:’Ėžą÷\ŃH¾ū.ł ¦ż.żšŸś°©M·ū.ś< 5ž?ż}ü©’°£ūœžśOün T9’%ų—üłļśĖžōoų’ö燯ū üŻ9ż]’õŻš’ż\ÓłˆžĀųūO÷F„ ŲśS!ž.’‘•­ō˜6üīž÷üÖ°·¤õČ排2ū ś ­żę’ONū&‹ėųeśŽ qż5ž{żó’÷žĮķłŽü”%’®ż_ųŠĶģśįū¶W#‹žnõˆ‹0ū°‹üõ¼ž…’Īöx œężüśž’IśŪażÕųÆ÷nßųÆ`Ņų¢#ü’żI¦˜lõwß2üµ’ųūž¼’KõĢI?’ü¼ür [żÅ¢—ųŽmāNų9üa Aż›E’Ń’Xż7×ökż5 ˆž‰ž ś+ßż“?łY” żuö8_>üņØüS⿨üäõŽõ’ƒż[ż’‹ü·żüłÜHē’ņ÷wń–łe°ūžńdKö!śF’Jū2źž43ö'ąžŽūüyƒū”eģųg¹€×ų©žL >ü„ ž­ż” žÉ”ö’’ «ž.üĖł’€üt÷’žCcżźų@ 󒤿f ū¶q£]ū¤÷Ł 5’ņż#’¤“użĀrśŖų*Ķ’4’½ł;Čóś_ü1žōcOõ+šµśüś¶PöŌśküŸū¼üŅü„Ø“ł{§IĖ÷žżXGśĢ’žÅ'ˆ­ö[™ Ķüa’{ūļ’žņżŗŗö^tžÓśRżƒüÜ;łKd”ūšłĀ [žnž1’ŒžżØł„ś°_’7’Gū’éĆū3:łqü‡ŽĖ’†÷ qķūę üóT’{L’«õ’‹ż•żÖżšüĒjśųŗ/’§÷k’8ūŽQ’¢ž õŗßō¼yūČ#żüaCMöžżB’÷üEśņ°ü÷ž²fłrCT„ūHū uūqż÷ż€żŚ§’ŽŻł£ü_ Mž’ėśģ¾ū‰ģų²ž¤y’Æų®Dü°^łJ’ 8’Ņ÷o ±3žóž¢ż:Iū½ZżHųóŻ”Āł×ѳśļõżż€Š’ņōÕ!üÅżŠ}¹wĖóÉü)žÄž)żdiżęhųQ1įłsū Cū'Ō’Ųż7z¤ēųBżLūĄż”śéČĆžµ0łģ’¶Ÿ’žń÷Õ&ƒü rś<V†Qž^ų_ ˰ż‰žõūkĄū0濐śš ±pzś¹1 łŽÓūśüŽ/oņöCg’śīüœ~’§cÖō„÷Įžó’ńż/ŻüTRÅõ]†åźū3’2 Äūl+’öūÖ“’NN÷rž“Mü~ņüĄŲ[’ϲ÷Ó’›`ż żKł¢ė’’Ü.ś _žūÆ÷”ˆžƒž9óż¼Öż….ü0śb Ę’öžXśŽ’¹“ś^ļü>žŌE.÷µXłRåūŪ;Ńg’õóåüm’žü¤Žū9‡\÷Ź|ųū’l›ś’ż­łŪałßB Éū–‚ü˜Ģ’ĖžĘwöo…’öžTū¾ķž›’ōØų9ĢŽūśV h’’QUż÷ż(BłFł:Āž:éż©>ļūą_śż/œ'’q÷Z‡ū¹ü†t¤VöÉpū:’žP’¦~w÷¼M=’ŁśS’Ō]ś#’ßūFė6WųBĒśPūįž„’eęOų' ÕżGž_ū”«ü?’m.ų°Qc:ümū˜ż;¼“ūBxž‡ł üH a’Īnžh€tü’Ī÷;üęņ“ū~ŒĆū€śž’BFXžłö;eżõ,žøĮžżŃž;÷„’żü61GżĮfžxśĒz„›÷¶™'ūpƒžO}= ÷1iXüĪż4ū%“ż€†ł­¶mMūŅū7‰śÆ’aü-IÆHłĻü-ĖüQžŚ’ś’Vż1)łx’ d©’ÕūmĀ’ČūĖFų’‰'%Īś‚ ’]üÉ·ü±YžļüłT3 ’iżŚ8wü›ż’ł7\’l’ł*Ó¦ü7ż˜žjī•°õĄ»żo”žŠ>żÉ3ųēžžžkś®üybüPüÆ¢ŻųūüPśä’»’+-®4G÷•žG@ž¦ž‡ū¹žĶż6ś|)ZžĖś+ žģū“’Ņś¬ūč˜ž0ūnµž{żćüØ’±ūtü°ü/Ž£’SłĄčükāūKżü’㯟ųĀ@}żIżĶüSD’ö°G2ž^’R™ść9ōśĮ=ņ!ų“’½£ü’’Éą­löžB‘ü’öž² ū’W›÷jb}\üłś+rž¤’ćlüļ£) üłūD\ż”ürüL’ļ×’©†ü0żX’ žkłœó¾ūBżä)O¢žS÷Ī,żMWü`°żm†łÖL’eżH’×Yśfˆż śĘli«śå/śhež ž.°Œ÷æčœżŌ’³żźž’ļĒ0öä’p÷’qž;’W §ž°’  śyVņłKü 5’±Æ’K’éEžr×śĪżRĄżŌüjśŲ’gŠūN’RAżR÷Æ/żĢ†’d&öż«÷ćĘ<žNż˜ž×Iü×X’aūĶ>ĮPśœ­ėų…źüöžLšöł÷iīOūa’żü!ž\]čųgz’xü}ż“ż«n^ų~Ø•üå’} Eża’ržśżŃżlŻų*’ó®,ü‹|’rż/”śš’üĮ’żśłĒ¦½žMåüĖ“µū÷»Å’6„²ü`āū ś„Ųh’ēł‰OüœĶżDž²"š#ųdoŠłM’ƒżōÅu‡÷j4‚ż6ü×üńøüšé·ū|łĢžžü]ŠżŠü…v¾‚śĻ&ž’+üŪŻżŃü‹Ęł~ŁKžśKóżĻżéŠūż6×üūŽ0Éž–’Ü’ŌzżŸśłncæž­­ūŚ>ūż% ¢ų¹žQżģŠüp’J—Ś÷ŗvüTżQ’īćžEé{łM¦”’®ųžSöü*’ŗh’Ó÷æ ż&’7ü½ė’›nØłō1׿šśe$ü,ż˜ŽüŸ:=÷ūĻłkżhž}’7žŃ‡žoxüŗü8p’’qü4ŁćūÅUłwü +e\ū/=sū/ūÓ’ćžņ.xłŪܐžžCż;(żź6XłUż’‹’_ū„˜3ż3’PżĖ‹’„uö?ŚžZ„’TąžÄžNå÷'e»ž€żBü Śžœžś©‡ć×ū·ś8Vūhžä› åśuūÓŌżxžŽūæ-pž9üÅžÅ3’Šś#Œ£ū½`śyø¾Q6ś  =ż,ž²üõū]ž’NüłXœ’ ś*’mžū°žmünołi#ŌüĢŅżm+’’eöåĪt&?žļIü ’":ł„švü¹ż_²żM¦’cż¹vŽŒłšūĒtüŁ’Éžz•3’¬*ł#ž?øžĆżŃłÄ±’ŠüŒķ’Ė|žDśTÄ’żPždż]R’Æ ’rūyd’ś”žÜū›Ź’@Ēx x÷°”Nüńźü…I°ńų†›yž ’ž;<üB’’©ųĻ…Ł鿕ž¶ūĒ’‰žüÅż’ū*ūŹĖ.żm’ü>•“’b0ųdž$ķžˆżOĻžüśKń’/üiś³Ś;żśśü/šü¬ūŽ ’€žFüG‰żżążß­^’—÷"eü®ń’O()X’«ößż6’‚ż:ŪžcaFłkk żK’2*śˆ’žģüTÆ—śŽ’gAūP’_üi’"”Lū ^“żcżlūūĖ’ˆ’§Ųųw¹&øž?żVßž’¹°üĆż” ūżĢ DÄż»’ÓūūāūĀż†ö’Ø’6ū!ߨü Īü  µQžŠöu®žć ź7žæ6žfų>i–ž3ütøåż·īžūf„f“śCbžłƒ’µżŠQ/ łöųĆü=żńśŲ‰ž‰ŽüŗÉ’Cūü4(žo’ü’žūśvF]üÅż‰Ÿžź’*žź’°’6ūlū“}M5…śØŪ’ üéiū ä?ļśĪ„œüUDžĆM’M­ü‡÷”-Ļ’ęū5/ż ū©?’¦śąg‡żžžüRž~žņ5łŠļŁū’Hž!qœćłY(AžośEūv‚žżócž› ’†“ł·ż0pż0’/ž‹w’`cśņžńÉ’»’ķūi6ž/ū²Ćü¦Ägžtłö’~ü…üü- ę’°ūT’Zżžż÷²ģüˆūøś§ō4‰ü}q„ūĘbüĢżÅ’\’,Ŗś¹kėż8’Žūyž“ż>ł¾ųžæż<’…yżøüS$’ųżéI’Sc³¾«żäłW’4Ōżąž…żĘēžŁÉłg„ø„žÄś;7ż©üū1’³\äüuśŗKžŃü¹ü’®’GāžÜüź}žtžūs±¦ūc ü ’MzƒPś½”ż\üµ’ćü”Ū”üÄkžü ż£Ķü`ą’:ū@Čū!üDÄü°å’*½—ž }÷#™ī’ż ’׿įGł¹’מ”ž+żż)Hū®¶(ĄüļśļĖż¬ž›®Š’ŖOüĀü“āżšü•śŅŁÖż@ž<’龇ś( ü„ž–č`ē’śŒÕyž;żŌü¬ūd5’ƒ,’Ėł’.¬ūLežļž:zNXś›Ź”üN’ī*’ĻżłÓńÄ\’īżāŚżdž4ś3››ŁžLk:žFż‹żOžö’ūÄüēU’É’]ž’īżxü’žÉžGüdśt•ˆ>2żŒ’ŒžāSžkś/ŗž ’Š-ļżÖāżčūšk’ś{ž)ü­V³¾ķ’ĢųDükū’ž=yékłų%ū›žõžōž†ŁüŠžóū&P’ü„žAMżšžoż#üK4.Wž¤ żõü’ū«0…žŹ§śń’š+’’ū”Bažé5żS¢ž’`üųūÅ`9Ó’/ž"żÖŸüņś®ޜ¦ž€ūü ż×žS0’IųEį³żźż’B“ dłkß’ū“żÅ’ž/Włd{—üN’ó üł’)N’ݲśŽ^XżżVūt’''šż¾Ėż~ü¦ūL ’Āżŗ§üŁQvųüņśrƒ’Z’üŗžsyüĪüXž„śž’łüśĪüu=ūźüČn64ż»°ś’żØšFÜž‘ų÷ėž[†’¹mžļ ņł÷$’āżĖüFxB’—?žÆū/ˆŒś^4ż““’ß{’@䶍ķŌżüĢśķ’s²żBE‘’ŚūŽū-£ż žŽ$O1øūśūX“’ž’žŚTÜū‘Wżm@R’wūĀQŠūiūõ’Ž;U*ü½Č’{ūŸž’ŒÜž’˜žŪś5×’ż)pyż„łžöūWdž(eüĮĆžÉü’”’Į’˜łxs’ZĶž—–ż»žéVü¤>Łž¤śļūŲ•’ŠŽŅžņB’†ĪśØüvżF’/ą¶ž’øł“żTyĪ’-üŠ’µüūüżėDj’…ū®Ä’jū²ż żūU–’ÕūߊžJżåü§Ÿzü%垃ž¢Č’)śį°ŽżÓyż(ž{žY’7‘üÜ)“ż?žż]¬ż<’Caśŗ yž7žŲ›ūH’/ĮžŌ’ńł„žżP’Ö~’.øžČł•ż–kž?ż’ꔿrś]q5žBū é’•ž²ßžČ澟Ųžšüƒ;žÕūŁū‘ø$UÖžŅü]’Šžśś'o5ü¦ė’ĀŹ ’Ał&dž–’ż‘(ż<šż#m÷žźüĮžönūĮž’ż „kŗūež€³ūņ’(Ģ^ž·æśI«ūžņžČż#ˆŹžÆ˜ł£ž"3‚Ė’¦2’½üm’÷ü|Č’ģĪüƒü¢˜’ēž’’7SżŃ”žpžˆŚżÜü?ūŗłžŠÕż#’ē?óžtłœčż_ sžĄ’}žfśå"’Śü)žżżsvėżTéÓ¶ūMØyśtž¬ž† æTŲłq’Ē0żR’žåžćžĖHü“뀒Rż¶żt’Ÿž‡’ėśĆ’6Ó¤’Ā’Īžnż’ż°’]ż.xüJ’­am’Žūw‚\żßjž¬’™Éžöż¢ūZLdžhž£’ē£żłW–'1£ŖūŠ’žĪü+U«’Ļś²egżśP’q’=Vėś+’¾ś ž_’MJńć²ł·žėž7ż£ż[ž »^žłø’GäūI’5£ž#žżųży ÷żŁŸž*ž¼ü ’ü¼żŪżś;ō’Rž¤ž Xž9¢ž×ü]zž™žĶ9żīčūŠśZi Ōž:u°śźżr’’š1•śÓkž¾’óżyL’PÕśbŚ’ żŽżÜ­’BHŃū;2*ŗś„žvæžsjį’Āżn`ū"ĪlžžżQü8kķ’CĢü×Į…žāūe9żŗüķ:pBY&üVśNg’ņžc’uØż~«žžpĒ’õžżlģßū$—ūžČŠģ­üĒ9™ūs’žžćÕGü°?wžÄüžD=ž§·ūÄA’é’ż; Ļżr)’’  ’c3ł.·ńĄ’č­żyżŽüNF’žüłüOĻ’„’ŲBż‰]‘üüū+ŲüNžR+‘’ :ūTüŗ’Čž¶ü3žž9žÓž# ’¾üYŸ”ū”žŚüX.qŖūÕ¹ÆżÓż”ž†qüķa’4pž0śž’Vžž’°żķ’&üœ„żÖ’’)Æžöż“’¬łYlgż’ žŚtüDžC9ż»øłēüŗžbž‰žņžd’#|b[ū üWžÅ’źxĶżŲ³ū«ž„’ĶżfūŁ”€’zžżh’”žuę’Üü]’’`üażZ’t’”—’—üŁß’%ū-’š[ü&¦TŽō’ėž8ł¼$õż; žŌ‚’5\Aūdž9’2’p’Śsüż’&üė?_jżężŪ•ü’Ž’°žĢŽ’20żvrōżŻż`żųš’«~ś³żĘkI¶žėĖÖżDųüS’%@żPüĆ3®’(ž3\żŃ5’ażu’'žžüĖēżšž’ā>’żųlÉ÷ż*jķ’’½’9’ŗłß–gž%žœžā0’ąö~ūÖq`Ńż°’ø?ū žŚž­’ä®gvūźžĘvż¤žIż‚ķ’ł’v²ż„ß:ž ż¼üģļ"’ŽFū°’ū¤k’Źż­²’ŗžÄ’°žPčüąż‹ž^®@ü—’‚żöž…ž<Ž’/üų“9żńZž‹ zžOų¼śKā6˜Šżćž#ū¤Ųl’ŽüqĻ辏ÉžŚüéäŁHü7ŲŖūœžĆžévMĮÄś~攞KżĶū§’7pWž¢$f’[ü+ż£’Ųž’¬żn@ćĮżµżń“’Æ’īżiø’µū¹Įż5-Zz’iś”œUżÖ‹ż•ųČ!üģ`ż>’„’›’qżŒłŁH t’@œoüŖzž%ż7ž’…õūēJĒž'žü'’õ’LūÉŗ‘żŚž#’ū*>“ēūŲwŒ’pūēū•÷’IÜF’Ė!žŹüsžˆŅžŸžŹż=H‘’Güvž²ģfüȧžüž%’5vūMž.ś€lĀżP’Żż°Ń’īĄ‹ühW’8žŁż9DżqÖü—ü<Œb üž9óü°óżõžīžp’ŖĢüč}ž¬żdüŪ(’F×Cū7!]VžY’'śżŁ’ ”ž …’Ž’ÖłƒżŌąO2}±’yżč¼ū`’gśžöž¾ż XžE ū>}W,’ū–:žŖż{‘­<®żšūz’»ż“ü×’ŒĖ’©H’ żh’¬’—ü @^ü TżAkŪśÕł‚ž^’ż]ż¤x'ž6ćž»ūYżŌžčß’īüę,›ĀüV’WżFĻ’<ŚõżHēł3©‡äżO’ žŖū>Ź‚’tž;ö’Ēż+’żėś&™żcūC÷ž·’ō’Åģ>ž‰|ż·żŻŽžž]ūŃT’’Ężnž­’gÜūĮ³Eż­’ŗžęō’\ūą[Ģ’ńü żˆŁüD1æ’ÀВ°ś=’lżZž ,8ū¦’Šiž;’'Üž‹żAgū])2åž÷üē”žÖžmüAŗ’t’’ąž˜ż.ż¾’o’<ü ż O ¶żŃ•¼żƒÄż·’gõžž/ūFZ1TżžPē’±ūx.’ÜžŽć”żłŸžEżÉ»”šś`žH‡żÖQr­’Ā[śšŲhżŃžśżvl½9yś*fI’©ž/TżPžēżÉģüæżõµž!’œż%ž=_’Ó’ló.žČżüŠ©„ž":ü¹’eę Ļū~{»ž¾ŸžŹĀżī’ ž ün„<žožb-ż†žŒü‘ŲzÓż6(2üIž/uY–JłX–.’ÕŲ’§(’."öśaŗtž­żG’.zd’’Jū5QS”żŲž9żg’‘’µš±’’ü’’Š=’2žnū:$"ĄžČ14’Æż×ū4E/ž”ž Ć<ž ū”x*Č’ø’®öū…žŻž†.LĮūp ļü$Ożažd>Łŗüa9ü(’³žĪ^ņŚ’ŚłķĪT’’‰žšGül’4ż0”’$Įż²żüR’zöžµž„󒀞Aæüfłķ’Ęü²ś4·%†ŠžČ4’vż2ü#9’“žt’ c’u|üüKX cż×r-üķ’č#ū›Ž%ż’čüĢĪĮ¢üĻżž¢’ŚPžĢS’[ü¾ftüO’}žj;’ĆżöžĻžļ,żŖ¾3’³žČüؗ’Ś’iūbļS²’äż;1žØžŽfž ½ƒ¾ūģūÖõ-£™’Ņ—žcĒüČü«C’½’Śžžė&ž.āūžn”ūńwŠż©W’z©ü’ćū‹Īhżūü<žV7Kü>“’ ’ĻüxlNżšf’l’żĀś /k’µżn’ņż·’ųżńf•’¶ż&żųžW’…ƒüŸ{-CžVżĄżw’‘DpĢž;Āūžź’fžlķ•ž]5üÆż ˜£wž‰‚żĢ’ŁüZÜvU’Cū Ū~’ż’¦’¹=žiė’OżŁø’%žœūwMÜ’\c’ŌżV#ĪzūųŠ÷żšĮ’ 1(wĪśķ‚c˜žż\ĄżĪŠ6žPgąöüžø¢żĻž’’eäĘ‘üpżq{žć’’ŻMžĢœükż)’³üTąēžō$ü®ž“’h×kž2ŗżQž“ž”’?Kž”üŸ”ž˜ż r§żÆ£’ēžQ’żžJū”K°’yHžŌ’b’Ǥ½ś ¼Ķ’rBK%ž§’¤’Vü†`$“ü©żÕTžaģ@’!^5ˆü’ŹcżtžažSiYć‰ūfž®$x’øżÉ`’Ļžā/ž$ 0ž ż«æ’‘ž8żÜ’g’ļ=–ž«²’§ž,ż‚u¬ż± ž#’KliūŌ\}ž'K’žžź’Ų’ü­©’T’œžģ žų€’ ūDŖļi’…"Ńü…’#’”žļo}ū.’¦+’Ķ ’zü’4ķgüœ’D8žežzžiipßū~’±zzžżˆV’ķ’8‚’ķµž”±ż$žĪośž¾üN’Õ$’33’ćž'˜’NüźÅ4ż:꾄ß «’Vś¬>£’Ā>’%Ÿż_żEišżĻ’VŻż­WžĘü"ĒdŲż”f¼ü‘’Ūžõ½¤ūķDš’E’sżW’µ³Śüź’Ø’é’bžūž…’’æ’»’²ż—¶’N*żKżŖ°’ĄCżžćżį’ƒbźž©ū©TR’ŪPžą’_[%żū\’ńżb??ź’­ržū?+Ķ–ž’Š[żū zž˜¾Åü‚|µż£’EżJ’¼o©ü¹8%ž[’§žiĆžÕ’}$ż9õ†Aż(żRU’J"Ńż§’°ž»ž¾’š"’€’ižUĀßžę/ü³ž/oążöž—żś”ž%Ŗ–žüƒül’T{žŽ’±y’üØ.’Š’|’ŲCžÅżTż/ķuü¢2lžī<’‹’|’%wūü£9ēżJž­żöõTüå¾2Zž ž®“żZ&O’7±åūežĻ’ų’R’n’õžÅŖżĮm’’ž”ś’5žÓ—üvs’ ¢üµž²ž$i’a4’{”žNżĀ?K’,žÓ’ +’éožąüŠ“’Ófž„[}ż”ž©’Üą²ū÷I’¢gž!žŻ®—ż•æÓžbż¶žv3’…Etż†§żøžYŻż÷„#ģłžéĘū”&ż v’”’©iżHģ‚ž’0ž£ńžž½’žīH驞‹ü}(’é’·’ ž:Óžźžō£’<’×ü˜Œ’qż1žŐżÉ ēżIČžyG’_¶’,ü5ŽŚž"žSĀż±,Vžµ„’÷’ż0Łuž£ļžu’ZŒēŹū’ÕüžEą’Pv’Œžś˜ümFHøž?żś®’8Gmżyē’r’ž^śż^žäž†–~żŠż¤Ū’CÄżĄ‘PžŠ’B(‚’H’­ü[ ’kMżœ’Żéż®[p’¦’­’ū“żr(’ž–źéü’)ž’Ī’L’q}’5ņü}§6žļ’™žč«n÷9ū-b˜†?’ć@žW’¼įż±VžŒżaž„’S5’~ž›¬’iž’2śż!’cžš ’ņ;żÉ’so’WüĪ0T’U’Å1’>*’[żæłžĒžœž‘’B]’QżdmĮkžyPØü« ’™ö›Ģū¶§žØžbp’m”šüεž,’V’|b’§’ü²ćž-’ ž4’°žž&8ż,n’š’ÅżJmį’†żƒ’*’]’$ž64ĢžX8žCčÜžüÅ>Tš’Ķ'ž_īžFžcß’6’Äż”žŃ@ž‚žš+A8żbśü³l’™üŻCüŸ ’?’^ž„÷ž‘9FżdĶ’~žkČFžį’Éžęż1Ąś_żį’ŗž„(’O’µžØ•żŠz’¹žoż! ąVż,a²’.žX’Q’»¾’Ån’Óüü3żWzÅg’q枇ž’ö’ ’ˆżr±1žŲäż0EĘĪhüÓ’žIĄ’OU’1ż““?’œż ’Žäžņ1žŪ¼’īŪż%µż§’wžŠR©Æü비’ō’=žū_ž&’µEž‚#ž žcr’Ń’:ž»ģ’Ļaždžõłžć’ś’.MKžŗŻüĘžė½ež³°‹ž¼9ž¶’F'Ü’¶żbŻQžø’·ž”D䨒ŠüØĶ’a’1’aAgžj×’Äž ß’Z’yü_Ł’oA’o’%(_Sżjµž>’Ļžį¶’ŪżĪ ƒŸžóż¬÷ż×’ :’“Jٽż’zÖžG’Čž°’óŠ’;Ÿż ’3Œ’%’6'Õż’jżTŪųœ’†żļ– ’–:ž’Ź’MžjĄž¼ž*#’ƒ“ž…żŖ37ųżüįNžŒ“’ ˜l’b’LüĶš[’dāžč…’©ųżLŗ2’澉’Ē“žņ’"\žJčBżlžKžB;MŪ’“żŠ¤žæž<ž›Źą’ækżé’w…Ø’sž®O’VžP ž%ŒMĖžž•f\’åžūžZ­žži’’Øī’[’ūżyĖ[žį,žA’LåMżĀgķž–’ī’Ć’v’ńü³ąŌ’’Y’)óžłā’eż F—Pžwßžž’|’‘}ģGü˜’;’8?’x ß’Č¢żĖ%’Dž@žRPü’ĀĻż®rÄž8žĘÕž+’Č’!V8’‚!ž/’v8`’hżFмžN’žł’r6Ā’…ż‹ßżż †ž“jĶ’©üCį½’č’µ’gŃżYz’-ž°ä#ĄżYŃŽž³¹žmžzOŠ»ż3+ žĒ’(’œ[Ź’Düąńņ’W’ž\F’8e&žÅ„’Ģ’ćż’ –’Ć’’#’Ń’Ī żužX’į’’n¬\žs7ž‚kÜžžüĮ˜’‹Õž³-żŲ’‘ż¶¹’6ž,’ø’R†’e’hżf“^bžj‹żć‡’ž’–-kMż°Ŗhž·’ ž ū’ŗ¶wż{Iüžj’Z’~äžs’œż½4‘ žŗžś+’”g’CåžČÉżż’x?’Œ’ŻžīP’Y żQ’»%ś’‚žQŽ’ƒž'äž/ŗYkžżÕ]a’|’P‰’Ō\’ķżš9’ėž‚ž2ZĒž.³žżžĖµA żóB3žĆj’›R—”żt¹Ÿž‰žhžjL’īīżœŁ-|žŸ’Yśż˜’Ą’f’’Ż-żø’’m’53’8™’’ž5µż¤=·’P’Ńžžüž?Sż4ķ1^’nžĒm’!’CĄ’%O’ĆžEžó%w’©žøuA’ꮞ®žŪu’Y’īż]IJž¶ņž†£­Š’Ŗü¹’9’ń’Ÿ’\ģžÓOWž\«’gż_’)Čžńū’2’jĮżuż ©꿖’s’7Ė*ź żŃEŲ’N’{ž„ ’z’ų,žżŖģž:’^?’Ōž ’žŹ@„ž’Ė’Ÿ’ ’ƍxžžĪ’IPk’µżCS’DižØ’¤’2„’Ūż 7’č’«’“:’®øž&ż ŌGÕž]¾Ežø’n’}°’±ü¹@Óž…B’Ƕߏüz§‡ž3’„’²Ļ’E~¦żj#]śż…žYĶž"2;’Üś’~OžÅž¦žīż<¬õ’ ž 6‚’žØƒ’{žĢ“žĻŹž¬ż½³’Ģ’Üž?“ž ’yžŅŒł’ļž”9žWŲż†ž”$ČĪżbg‹ž·D’|÷’"×’ąüŠˆ@’]’i’)é’2;żüpģ’“’wž2!,’€×’’ +‡įüu’…V’*9’~"ā’Ėž“Ń’<ž³żĘó’hžD˜žżŠōž ’-ų’|ó’RMžqžęa–’Lž †›žkŸžP’ėäX;žõŽĢż˜’žŁ”‚ż*’…’@’ ¼žŒ²’»żóōć’?ž6ŹI’į-’ųż Ł’“ÆżļóO’L^’Šś’ ’_Ÿün3'’ĒžĶ†’PTžĒ–ł’¾ż.žĆ¹’jÆ’Gj… żēżĢ7’Ž’V’`>b’Šžq’ tD’Yżl‡éžČžgįÄżT*6žÄžņžN ž’ž@ÖĘ’žĀ’PRžō{’’rÉywż2›(’+žl’z’Iū„ż£^ Æ’+’ßž—’č’Gżž„ž’™E’R9žžqÅ’ÉLż’ŌŅ’!w’üå’\żüØž5ų’«’·ž{¾x’Fž7¶ĒŗžBżJTm’÷’J’ł’ül’žĪ’ĶžĒżŖƒ’Z’’¤¼ę’Žü_šž½F’r”÷oż¢Äg’’ažŖūž¾ļżŃĮӜž;’Ė?žŒ’%’…ž9QĢģż’pH’ę’óžś’ł’®’"Lżē’8Y¼’Ńž$tĄ’” żG’mäU’Ŗž(“ß’ÖžQ‰’)žÖż‡«ķžEn’ńÓž²ž1ū’"’ż(£­’T’6«ąƒ’@üŁĶj’0Ę’—Ē’,ć’Vż›3’’üżöžzÓž źž…ji¬ż©’žC’’žx ›ż;ÖØ’)’;žg’š’Üż„yėž¢žŃÅ’y’½żŽ’Õ’Źåž:’J—Ļž½’ĢžĘżńžQE4ņż8¼W’d’ž’%s’āü ~.¤—’­’æž9üϤaj’Ÿ.<’!!’žšÉ\żŃ’Ė3’Žx’“Txż ļ•ž³ž‡ž¦ĀĮ³żbļ1žžżŖ@’‚½ ’Ō±†žżŅž·ä’µ’fžöžŸ’¼’[¼žż’ÆéŹ’Ėż„g’‹ž½ž0×1ż¦!m’<ŽžB’0 ’ŽżTR¢g’7LāžśžżlāIÓž©1’œƒž÷žĢ’¤†ŹüŃČų’@7’¦’L0ż,#j’ūż’ž¬LŽ„ž)ŸśüJžÓ’į;t –ażB’ģ,k’Źż}‹’ę’$מ…ŽmA’EżźžÄž$’'"į“’—ż¾’‚’Óž­’}źžÖ’£žÓOÓ0žó‡žmäżcžŻ’Å‡žLĮ\’‡’JžĖ’œžÓˆƒż‰ø:’b’’Ęž @žņ’Ü’‰żÜ’ gœ ø’e’c’ăüõž§‹óń’ī’Å’ Uż‰’ŠęžžĶżĮŖ’dz¤’»KŽ}žNżņž2’3’®«Ø)’ž‡¾’w’“żĄ™’Ūq’Ł’©}†MżbŸÖžg’6ž£’’>ĶĪž4)Ā’šżqžRėżšLŲž€¼Żūż|’Cxž‰’g’K’Ž’Byż‹ÆįÆ:’ƃž)’tŅüw’3ėŸā’¹6’X’Ų’üż…’č’Č”žIž6ž5‹a`’%žÄżQp’‡’›žBö—…Ćž]ž’`’ż„Õ’’b-æH’`ć’.ż*vž’Vž’ąž‰’E˜®üĻž]żżĆO¼&Ö żK’yźž½’9’˾žz(žé݉x’µžMž’¤’Öż³’ÕMXtŁžŃždž’m’b’Q¬ž,’ōņĢž(Ļ’üžYž“žO’NĒ’iž-ń¹ ĒžÜžŚż‡6’Nż©42}Ó’!žÜ4’żż³¢tkżŃ’)W’Jö_ū’XxNüF’1ŽžYks«Æ^Ęü’Č’’(’ĀÓž ?E’øØŌtž³ž„wžB’ĘžR’ĪīR ’³žzżDk’f’GY’z^‘ų’‘ż@š’{’Ńęža’ž;ńž3ŽĪh’&’m’cżÆļžNž”ÖL„’‰²żTäžE’ū’ĮšOżĢeN"’t\‰üe’»’&ņo3<żßž@’ōkž‘’C•’"l'Ū’¹’ßžY’’’žÉ7"µ’ł’«’Jž÷üÓ2’’’ŌvW^Āģž?ż’’±’Ō’ožćū’§’2BĢžĻ’Y’sżKÄžµ’6š‰­žą ’ėż\’ŌžYL’Aõåż, ¼¾’“’A‹ž­Ģ’cż)’’’`”’}[ä’Īž*žPž’YžD2¶¢’ĶĻž<’L,žź’eÓžžąLgZĆ’÷’ėž]ąż&żęk’Ä:Ć„£’lŅż\żDū’—ÓžČ$äžöŽ’BĒ}sż†[’ž–’łžüÜK:Ržląž‚žYž1’ųžÄķ,’<¶ńž’5¶žĆ>’‹žĻžĪ’/w’¦ß’§’ķż;’čżB’,Kž”śžÕÓż'’Žńža×’žšždobµš’{žčœżÄż^¹Ł:’ž@żžµ’æDžšXŠ’‰Ü’bB’“żŽJ’ÓžŌžÖ’ö i!ž‡’ØžP’§żę’<’ē›T“čüŽ’ d’gÜž“’ƒž–‡|’ÖUń’“ž×ż@Ęż¢’Ē(’ŒåÕ{’jžt’żb’š’ü’4|’¾žš’Y™¾’‡Q’žł…żrž.Jßa1Fž~’€żųž0’YXž1Ē„zĻ’ -žPß’Bž³[’Œ’Lžž™zĆnžÉž’ó’ż[CŪ’ žu’Ś’ü1Ż9§’ĻžšĀžEG€’%rž8žāÉżµ’R³Hžķżč’ūżš’T’Ž’R’Kuv¹’ļż;ˆ’’ž‘Łż%’Ś’ięō’Ų‹’^žž>žØ’ž¼.’¬dĆžg’“’½ż~ō’,’ˆ’7žģ¢&i’’Jžs’5ąü“L äéžļžJ’ż‘Ņųž’Ž%’T*{’l’/õż¬žøīż„’04BaSżÕżf’ąž ’Æž³‡¹’Žó’$÷žĄżą’D’†’Hžć’Ō’J³®’Ūūž‹ž»ż’ö’1ž­[‰Ē§¾ż’‚’1žXä’ł’k’ēvž6čį’ū’Īž,%žŒ’§’żĖø–‰Óq)żvžæž-ž|p“Ńž—ī’׌’’S’c’”ž’Öž`}ĒŠģųüžäžĆ’P’‘žlĢA'ģ’.ž×’€žXž4-µ’Ōž®’ź(9’€’5’YżŃ’ķ’žŲ ų±’äū0’™’4’įš’ņB’üPÄžx²’מ0’ +ž²’A’<žHNG‰åü’ž“žŒ’7C-&’!cć’Ž’ž 7’Õ’Į=žm’©’ ^C­°Ć’Ń’œżüž—žiķž­žčbź ž’R’żŸž6’ķ?VžźkÕ’9x’^’Į’“’Ö’ ż4Č’’ŪŒņ¶`ēžŗūŸ’ŗ’ž’ņ{’ŖČž‚Q’zžį’±ž’’šž“’¦ņY’‹’ś’eżĒžRžä’N¶ę’Õ€–’Pžżæy’Zs¶žŚ’Y’#o¾’i’ ’µž’"žÉžŠ’F  w’›’žŌü@ ’&FšžĘ&N’œ×žˆ’~ż­’.ØöśP’Ÿ’TžØüŚ’æ’†@’‰›µ"Ćž’Éžµµž°fbžA’ćž7dŽdRžs’’”ž¶žžļ„’ĪĻģÓč’’@żAżmō’«qn’7h’Üž’¶’ŖR’’Āž§’Ćż1éžÜ*yuüżT’7žmż%j’Ųx" !’CŞӞמ ¶’›’Vżż’š’b Ī1WžG’+žžĶ’’Źšž€“žÆžØž*ž’VD’BŽ’+’ ’ ³ŠQžł’¦’Ų’tž’ż Æ’‰y-ŒžūžżJžÅSƍ’sµĒ’Ę#’i’qĆ’UöžéJ’ĄżŪ’v’‚X„Rż¤’€žŠž°’…’ā’ćb×’Œ;’­žžæ’Źø’ģēž3ž}*X FXžg’RžD’’1’ŗX’Ęķ’¼ż’Śż’V’. ’}¶’Ą’’vI’†żGžd»­ī¶Šżķžż"’ł/Ƨ’Oa·śż#’b’cuŌžćž©ž4½×/z'’OżŚ’Žž’Ŗžč’Äžbž’ī’Żżlž}żŖ×»’Ä’Žģ”ŹžČ'Ņžk’ožzž»’F‡~!qüżóüa’ž7·}rˆŒ’ā’1YžT’’VŅp’L€ż^’¬lPcĮž|ż!’ØżvÅš42ß|’åžAżC’A’p•>’0śžØ’%#¤’„€žež6ńžm’ž¬#6żc˜’_žżĘžžĀÆ `J’0,¦Oüżˆ’’ ~’āžB ž$?o$ēé’śü¤ż›žmł’„YĶ/’“’Ī’žV’^’ĶØD’°’żDś‹’čzžYžD’Yž€’" +lKļžˆżįżŌ’©’ęi’؃’ŠŁ’€(’[Īž»’ī’’śžøż‹€tÉ’e’{ż:ž$’ž¹Ü]@k ¬’ ’+ž¬móńžóžķ’Ržļƒ9ń’„’āü¾žÜžē’|’ž§šžžž,’¬žƒž‹’č’Nī’(’l’·žTdÓ ’ټž’Ļž¬žĒ’i’~ü²H’ž¹üÖž-Ż’«Ø’3낿’ٽ’ÄžVš’³f’’¾žhžŒ‘Łśž’Mż’K’’pœ‰jĮ‚žÜžöżńž<hž;’Ü’ ’>C¤f’y’pż’²’ÅžB’Š’ßłųæżQžžN’Ī’L~’b’“’ö’q’ óžH’$]’D’$žéžŽ’ōų -WžkżÕünü’ Ä’&Iž)6’l’’b©ižćžŲž²’3t`7’¾ž%’¼ż”’+’d’ģóģĢǾ‡żżż ž61,°žŗ’[5Ēr_’H’”’\žć’-’īž!’ćįRd’]żžLž;Ń’¹ß°’-³M’Ž’gž l’Ķż˜’õ’ō³S’&žyż¤żĖ$Ū’£Ī&IŁžhżt’A’9œóq6žq’‘’ڰ€@8ža’±’nžq’Ćžø’ŹÜĢFQ’żŖżŹžCźÜ‚žšźĀ Ö’®’ė’ś’’y’–ž>’y’›4.žÓżRžŪžnY’”t„ߊ:n’Fž"’ŠžėBnžĻżxµÆ_üUœž žģżež„’¾’˜(Õł=ż?żT’é’²*ž¢ž9cfWRE’žc2ĻžĶžøžj¦a3/Jž`żõżå’³5qö’Ü’„(fjž’PZ’}#²’ ’½ž'›[čžåż$’ļžS’0žž±¬7V£ūż»ż-’š’œŃ#ež²žoÜ.æ<Ż’øžŚ’¹ž÷ž !’ FŃ’’õüīż–’wšģ’^5V’”Eђ’±’£’C’ō’sž ž’fh࣒^’“żžNžmŠ”’ƹ;Vé’R’ożŽ’õ-޶’‹’BžŚžķ‰Čø’‘ž0žćžW’d’lÄ#Lńž‡’eż¶ž[T«Ń’ó’5ž-’“œ£¢’Zļ’’˜Ėž’Ž’¢’ 5Č‘~žōžžÆ’søG*’sN’p’.¦’×’œžÅ<‚ƒf’ŒžŠżU’:‡: īžöžńžji’żž»•č°’ńžP’ĢżvÆp7a’L’°ż>’%' ¬’Ē’*Žž'’e’m’ž/9³’^žżžž+ŲĪ-’MÓž’r¼’Ū’1’-ęNĢžUžNžś’W \ę’ž÷ž ’Yų’<W:’śTf‹’+’ ’nžqĆ6į ’¦žĻż'Upq§’]’ų’¢µžŌ’Õ’Ņ’S]W·žqžšž„ž'ŃÆ#’™’Nžā »’šg¼Mž„ž0’ hT¾øž:ž’K’ƹvÉ’@’¶Ŗ’ ’_’#’D’ųQŠTfž1ždžžeŠuj’’8’H’Ķ’ų’n`Qžŗžįž'’Ż‘’ŠžųžfžŁżRč’}µ’ƒž>’Į’š{tŃÖżbž’Ÿ’IX61’]’9%’,⒈’^’.“qŸ’Łżaž€’ČeąZžŸžV’AWī’óˆ’,=—’fž6’'’8”`Kėžgž›ž&’Č?]‰’Ķ’Œ’œŖ’iž q¬’nżäžf’6ēpŒ²žl’Ā’’Ƥ’µ’Ǝ’’W’²ż’kM" ”żĀž¤’x”ć*’KĪ—’T’½ž’†’>®Œ¹’ž0žĀž=[Īeņžf’»’·c’0’­(f¶žµż£’»’Uöš’Kža’P’“’w+Å’é’¤Ŗ”’`—ž#žž’õžÄČžBżh’"'ŚƒžRAŒ’Ü’M’¶’Į’Į稒l’*žHž’{rD/<’Qž©’^ŽY’Ó’Ķ’=ę’&ž=ž%"Eū’Čž4žv’n’²Ęæ’Ń’hØ’19ž’öW¦ƒń’½żÅżl–€Fk’wžŪ’Ä’Z‘’ą’-ŲŠ’f’žāž‹ąĒ’ö’tžJž4Å្] s’*E/’rž/’}vg\žžzžSž’ģ’«Øb’Ś’ ’æ’Ć’ž’"qž@ų%’_ż¾žž×ä!µ’fž¬že„’_³£’tdČ’’Z’žŸ’T))–’”’Ęż”ž²ŽĻ‰‡’‚’ •’’ķžĶ’˜äj:wž~žqžŪ’«H 3’é’’[’ß’Uųžöötæx’®žēżAŠęb÷ž\ž?’q§’“y’QØ.’}’ ’xž€’§la’7’Žż’C:ł’¦ž‘’ßu’½’Ā’Xł× ’jžÅžÖžrˆ|1ĄžX’kžÄ’øžĖ’‰žž’Ś’ ,Ę’›’˜žŅ’§Īś#’3’+’i”mĖž¼žŚ’[›MĆ’’Ēž–“*1’u’ ’Čįpž‰’Ź’ęS’’Ń’’žƒ’f’,|’l’-’¬’ˆ·F’ķžÆ’Ä’G{n’“ž2.’e’‘’ÓžX„˜‰ģž{’T’S-MZŚž;’@JĢ’ ’’•i#*;’_’!’ŲØ‚Ēž„’Ą’ö÷ß’Ł’”ž»’šėi’u’æž™’&£Ž‹’h’w’Ÿ’:1’’y’’>F‡h’L’³žIĪR®ÕžŽ’-’ŁV;įžnO–’9’Øž±’#žgč’ÖžöžJ’ŪUļXėžŚ’Ž’§»’į’¢žb#•’’%žŃ’“õ¦’e’źž}’Ė’ų’Ō’Ē’Š}W^’ˆžI’’ĄH¾6„žm’Čžķ’ć·L’} Ķ2’ķžÓž_Ų„R’ž„ž¬’ ‚›žį’å’H®’·’ˆ’³ž9fńŒ’‘’’_ūqįžs’®’E7ō’ųž,’X`\×’r’`’0’߃ѵ’·ž¤’t’+DĄ’fžĶ’ž(t’”’Ėžõ’ʀŌ’Z’’$d:I’ėž tHµ’]’Õž’mS’‚’’¾ņtDŸžŒ’Č’¼OŽ’å’¹ž‡’0€’l’I’—’%l±s’äžĪ’ø’F’ü’“’¤ž.3 æI’›’מKӌ¦Żžr’z’KS8Üž8’DE[ß’’’;’&’Õhīä’ųž¤’[’ü¶Hó’ØžÕ’ā’Š’¬’Š’ÄžĻ’“ V’k’5’¾’(nŖD’ōžĻ’č’erõ’Z’·žOR+|9’|’šž‘Ņ¢qŃž‡’x’8 5ÉžZ’,hdŁ’”’’<’Ū† ¶’õž†’’/“K¬’¢žń’ ы’„’Ęž ”„Ė’|’?’!YŒ’"’Ó’ cC÷’5’Žž`R;G?’g’’žøĮ“7¼ž’ƒ’½ ś’«ž˜’G˜4“’’’”’ņ{ęj’’‹’²’F„Kp’µž 6œ…’‚’½žY Ļ˜īžq’5’l,QO»žH’ö’ggķ’¾’üž0’Ŗm"Ń’$’m’D’ūŸ’ā’“ž»’’šķķ’Ž’™žŃ’G½g’‹’ßžĢ’Žä’’y’蒁p8’ŗž2?l\a’X’Õž««ÜOĶž“’S’· (-¬žŸ’ ‰G“’Ō’ģžy’»k)’A’b’t’2…–’»žā’Ī’@®Ź’ž’Ŗž?eä·!’™’ ’Qūd•ßžf’¬’2^&’’^7^s’\’’Ū~āĻž­’Y’łē"ś’ŠžŚ’Ćs’¼’ŲžŪ’Óoš-’X’z’Š’HCnF’ōžš’JL²’…’Ķž}Xźq ’ž’ ’‘ź_`®ž„’¹’Vį’ś’ÄžU’…mQ¢’W’0’K’~ŅŖ’Óž·’…’.ÆĢ’ž’’ éõr’“’æžĮ—ć’V’P’]Peńž’*uŖ’H’õž®\ł ’³’2’Ė»Z<Øž¾’¾’:ø’ū’Ęž„’Œs%f’‚’F’›’ZŗW’źžģ’Å’afī’m’Ļžć’ż’ ū’ė’ś’ü’ į’Ō’ł’ö’ ė’ó’ī’ō’ü’ !ö’č’é’ż’  ’’õ’ö’ž’ž’ž’ų’ō’ž’ ń’ż’ė’ļ’ū’ä’Ż’ö’.ź’³’ł’!PĻ’Ž’Ć’į’PB×’¶’ķ’Ū’o' Ü’x’ nM·’Ł’z’X@J}’É’»’"  (c’ž’,%Ėē’Ą’…’k’Mœņ’E’¼’’®›1ō’’å’ˆĻ³’Ü’’Ź’{\Ź‘’–’h’¾’īLŸr’$’ü’Ļ’#;쒐’żžā’õ’ž’÷’ņ’å’ü’ ÷’ó’%÷’é’Ž’ś’ū’ļ’ž’ ć’ę’ų’ 'ų’ę’ę’’’ö’’’õ’õ’ś’ õ’ų’’’ ż’ž’ś’’’ž’ż’ū’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’fenrir/config/sound/default/mispell.wav000066400000000000000000002261201513650123000205470ustar00rootroot00000000000000RIFFH,WAVEfmt (ž’€»Ü  €Ŗ8›qfact€%data,”«”«½–Ļ&½–Ļ&Ń!)@Ń!)@qoqSqoqSąla_ąla_äÓĀeäÓĀe] si] si$ģĘj$ģĘjžAŲižAŲiCźTfCźTfĮ]Ó`Į]Ó`$ś…X$ś…XĄeEKĄeEKµq7µq7HūbHūbmĪ£mĪ£{L¢ä{L¢äTšĻÉTšĻÉĻĀŻ³ĻĀŻ³£›v££›v£žļ˜žļ˜‘8!“‘8!“+V‘+V‘«ž’«ž’©Ź—©Ź—ŁĢŸŁĢŸĀ‚3«Ā‚3«L²»L²»Ć:7ŠĆ:7Š«jˆē«jˆēi‚Ų’i‚Ų’ A$ A$iš+iš+r;EĻ`>EĻUĻUĻd$ĘŃd$ĘŃE?ÖE?Ö5$QÜ5$QÜ@Ŗ|ć@Ŗ|ć1Ą/ė1Ą/ėZŚņZŚņ«Rīł«Rīł¶Čū’¶Čū’YĪ©YĪ©?®Č?®Č^UE ^UE ēL2 ēL2 ņbŗņbŗåv&åv&†ęцęŃGī*žGī*ž!ž¦ś!ž¦ś–9ŗ÷–9ŗ÷ŃõŃõ‚8Cõ‚8CõL»QöL»QöDŅłDŅłüI¦żüI¦żxšÅxšÅńŚ0 ńŚ0 +šs+šsÜĢÜĢć¼F$ć¼F$M>Ø+M>Ø+Łh¤1Łh¤1Į»Ū5Į»Ū5įc8įc8h•å7h•å7ZŒP5ZŒP5;0;0źü'źü'¾sū¾sūūĖ8ūĖ8āŸ.’āŸ.’|—¹ķ|—¹ķ•ü÷Ū•ü÷Ū®*1Ė®*1˘€¼˜€¼½ņư½ņưX3^ØX3^ØņŽs£ņŽs£ŠĘŻ”ŠĘݔ泥泥nAźØnAźØśÜ²śÜ²m‹æm‹æ9ljŃ9ljŃc[!ēc[!ē;Ŗƒ’;Ŗƒ’/aŠ/aŠU 0U 0ģCģC8iķR8iķR2ł»\2ł»\Ÿ“bŸ“b2G d2G d{¹&e{¹&eŅ%vcŅ%vc’÷‘_’÷‘_?b5Y?b5YUNUNz#°=z#°=²ā&²ā&h[ h[ *71ķ*71ķTóĻTóĻ]E ¶]E ¶N‰>¢N‰>¢”÷2””÷2”Ņ’Ņ’+öé+öéÉ©śÉ©ś¬ć¾¬ć¾Q~¦Q~¦Œ™e˜Œ™e˜En€¦En€¦—Gēŗ—Gēŗw'Տw'Õōhóōhóm”¶m”¶…$˜/…$˜/{KG{KG$X$X:r=b:r=bCŌigCŌigK~TjK~TjaÄĖjaÄĖj3i3iŠŃdŠŃdŅž^Ņž^,5ćT,5ćT6ę€E6ę€E¢>0¢>0ƒō]ƒō]Ÿ‘$śŸ‘$śœpޜpŽģšĻÅģšĻÅ¦Ę ²¦Ę ²TÕ£TÕ£‡ąāš‡ąāš*k–*k–uŠœ•uŠœ•Jē ˜Jē ˜%£¼%£¼B §B §½ w“½ w“53ĘÅ53ĘÅƓKŚĆ“KŚVėµšVėµš£~A£~AIb4Ib4‡Ż!.‡Ż!.)Ą><)Ą> [P> `Ų`Ų’&>ä’&>äłķOĒłķOĒ‚¾Ł®‚¾Ł® €Ūœ €ŪœŪ¬žŪ¬žŚ²Ś²ūōžūōž³Śģ³Śģ•JՍ•JՍŅ ‘Ņ ‘qAKœqAKœ¼¶¬¼¶¬®ŽĀ®ŽĀ£Ž£ަ„åü¦„åü'Ęr'Ęr~ÅĶ6~ÅĶ60ĢBL0ĢBL@ [@ [;0]c;0]c č¢g č¢gŖ™«iŖ™«iSČ\iSČ\iéXÉféXÉf®%’a®%’aŁvåZŁvåZ&OO&OO«Ä)>«Ä)>Ļ~Ė'Ļ~Ė'‚¾Ļ ‚¾Ļ yņyņŸ7±ŲŸ7±ŲÅZ[ĀÅZ[ĀqMģ°qMģ°|ܲ¤|ܲ¤‚X‚Xčķščķš%rpš%rpš~ļž~ļž£c„£c„+›Æ+›Æ× å½× å½gOĻgOĻ*{ć*{ćTšxųTšxų‚ć ‚ć ²WO²WOOF­.OF­.z:z:dė¢Bdė¢BoµlGoµlGŻl0IŻl0I}¦CH}¦CHoŁDoŁDU?U?,.07,.07?³j-?³j-L”D"L”D"Ņ7hŅ7hV • V • v‹’v‹’øģõøģõæÜ1īæÜ1ī,$Ÿč,$ŸčŌ;JåŌ;JåĒ3 äĒ3 ä« ķä« ķä£bē£bēŽmėŽmėv0”ļv0”ļÜxōÜxōæķ!łæķ!ł:U+ż:U+żš4š4ŃZųŃZųO8MO8Mč#)č#)×”ž×”ž‹źś‹źś tTö tTö'gGń'gGń¤é=ģ¤é=ģ(A·ē(A·ēøØ1äøØ1äŌØāŌØāmŃÓįmŃÓįՖćՖć*5„ē*5„ē!ņķ!ņķ®Ÿgö®Ÿgöx“x“‚W ‚W 3E3E"l¹$"l¹$S/Ü/S/Ü/žV9žV9Ž¬@Ž¬@ŻĶEŻĶE¢ÅH¢ÅH˜}H˜}H‡>OE‡>OE.µ?.µ?‰Œą6‰Œą6Sż‚*Sż‚*ŖŠ¤ŖŠ¤®Ŗ¶®Ŗ¶ĖŚĖņĖŚĖņŒT݌TŻt Ét ÉUĄ]·UĄ]·öØi©öØi©D#ˆŸD#ˆŸŠß§™Šß§™č”U—č”U—mER˜mER˜ ” œ ” œ:¦Č¤:¦Č¤ēSr±ēSr±C” ĆC” ƍ“žŁ“žŁĪ ÅóĪ Åó’‰}’‰}C–*C–*9A9AŽRŽRŸ& ^Ÿ& ^!y?d!y?dL+¼gL+¼gū~iū~iÕhÕhĮč®dĮč®d¹·/_¹·/_“‚‡V“‚‡V/™KH/™KH­ÆS3­ÆS36ļ”6ĮśØĮśŌ]OŪŌ]OŪĻS+æĻS+æ„\ŸØ„\ŸØ…d˜…d˜¬÷¬÷})Ā})ĀGÉŽGÉ޳{Ӎ³{Ӎ‹dŽ‹d޽»µ”½»µ”ķX”ķX”’ńв’ńв#ōėŹ#ōėŹōHaēōHaē‹!‹!iŸz#iŸz#§ūč<§ūč<ĄšPĄšPŠĒŽ\ŠĒŽ\s æcs æch×+gh×+g9ˆPh9ˆPh0×Cg0×CgĄmńcĄmńc«©š^«©š^VVĒ>£HĒ>£Htz6tz6,P%,P% £ £š½Łėš½Łė›Ž$Ō›Ž$Ō‘E9Ą‘E9Ąąü±ąü±ūƦūƦZĢš ZĢš s!ųžs!ųžÄŃx ÄŃx ÷0@„÷0@„Õh­Õh­“–õø“–õøĪ\»ĒĪ\»Ē‰ىŁ‘eųė‘eųė(f’(f’ßÜßÜxŽ xŽ ŖŠÆ-ŖŠÆ-3²973²97[ƒ=[ƒ=żÅ@żÅ@“xHA“xHAņO?ņO?%\;%\;.Ļ4.Ļ4\IŌ,\IŌ,æ”#æ”#hrœhrœßæ“ßæ“ŻåŻå‘‘Ėż‘‘Ėż”\ ÷”\ ÷ĘE)ņĘE)ņ‘Ø88ļĀj0īĀj0ījįījįīxńxńčT0ōčT0ō“Čū÷“Čū÷¢ėū¢ėūӆ‡’ӆ‡’2ßd2ßd§S*§S*‹ —‹ —!|†!|†?Āń?Āńžśńüžśńü’TĄ÷’TĄ÷ŚTµńŚTµńȵCėȵCė!åļä!åļäsDßsDßfœÅŚfœÅŚgĒč×gĒč×{Ć ×{à בWŲ‘WŲ'ęnÜ'ęnܔ ōā” ōā³Ężė³ĘżėhåK÷håK÷Nń\Nń\aÉvaÉvjm¬ jm¬  . .gc¬9gc¬9FūBFūBŽ¢IŽ¢Ió(œMó(œMśNśNU¹ČMU¹ČMƒąŪIƒąŪI•ŌB•ŌBŲV58ŲV58F\®)F\®)Ąę\Ąę\k,k,4"’ź4"’źOb(ŌOb(Ō©^_æ©^_æRØ®RØ® ļ7” ļ7”³æ˜³æ˜ąN”ąN”OE“OE“ī,i•ī,i•Ą[åšĄ[åšn‚¤n‚¤’³’³ŖOŽĘŖOŽĘo͌ßoĶŒß Ö‹ū ֋ūGK=GK=÷WŅ2÷WŅ2›Ī©H›Ī©H[IfX[IfXśóĪaśóĪa)VÜf)VÜfƒÓĮiƒÓĮip*Ljp*Ljŗ¦Œhŗ¦ŒhOdOdū]ū]ōģSōģSt¦Ct¦CkŅ›,kŅ›,Ļ,JĻ,JõÕńõÕń Q²Ņ Q²Ņššä·ššä·ż k£ż k£^)•^)•w@Žw@Ž÷Ś÷Śą¢Žą¢Ž&śø&śø’ ’ Ļä˜Ļä˜ńJø¦ńJø¦‚¦‹ŗ‚¦‹ŗWw×ÓWw×ӅWŁš…WŁš‡ņŲ‡ņŲØ©*Ø©*³³ŚA³³ŚAnŪRnŪRÆ©Ē]Æ©Ē]Ē}cĒ}c9»f9»fqq]fqq]fō¢dō¢dr¦`r¦`M7TZM7TZöžPöžP;śA;śA2‘-2‘-‹¤Ø‹¤Øŗ*žŗ*žW JęW Jęł3ņŠł3ņŠ”æ”æž×’²ž×’²PZ ŖPZ ŖFTĖ„FTĖ„ƒÆ„ƒÆ„eͧeͧFõµ­Fõµ­r‹Ó¶r‹Ó¶W2óĀW2óĀRnÆŃRnÆŃL»6āL»6āup„óup„óį dį d­1Ė­1Ė×’ß ×’ß æ*+æ*+$Ń}2$Ń}2‡Ķģ6‡Ķģ6×Ŗ«8×Ŗ«8b.ō7b.ō7Lī5Lī5#/90#/90šĻÕ)šĻÕ)čEA"čEA"rsrsF}¾F}¾µó µó ąĢąĢ+.¦ż+.¦żG§ÄłG§Äł(Ķ­÷(Ķ­÷-K0÷-K0÷ēŹIųēŹIų”ķś”ķśłj“żłj“ż“©Ė“©Ė‚2‚2óėóė½Ü½ÜU§ U§ ŹnŹnŠŠ$$ĄłĄłrbūrbūYĒļYĒļq ńq ń„Óę„Óęéēéēż<Žż<Žu„Żu„ŻpūÕpūÕ_WŌ_WŌ5Ī5ĪąĖąĖyUĘyUĘU.ĆU.ĆĢā¾Ģā¾×1»×1»]©·]©·˜³˜³ü„°ü„°c]¬c]¬ששš|„š|„’;£’;£ńžńžs՜s՜™³˜™³˜b¤–b¤–<¾’<¾’ś©ś©Ū Ū AēŠAēŠŃ“‡Ń“‡Ł\…Ł\…-T‚-T‚Ų €Ų €ÄG}ÄG}·šz·šz9kx9kxE vE vī»sī»sĻ^qĻ^qń7oń7o4ćl4ćlĪŻjĪŻj ˜h ˜hp¬fp¬fĢzdĢzdó¢bó¢béˆ`éˆ`ƒĄ^ƒĄ^šæ\šæ\I[I[”Y”Y[mW[mWõŸUõŸU²śS²śSERER)«P)«P‹ O‹ O}M}MÓńKÓńKdpJdpJŗöHŗöHƒ‚Gƒ‚G#F#F‡²D‡²DXCXC'’A'’AS²@S²@$g?$g?#'>#'>Ré<Ré<{µ;{µ;›„:›„:k\9k\9õ78õ7877i6i6`š4`š4ć3ć3”Ū2”Ū2Ł1Ł1ĘŪ0ĘŪ0vć/vć/š.š.›.›.Ė-Ė-¬2,¬2, R+ R+īu*īu*#ž)#ž)ŖŹ(ŖŹ(\ū'\ū'00'00' i& i&Ų„%Ų„%ˆę$ˆę$+$+$7s#7s#æ"æ"€"€"na!na!Ķ· Ķ· ‰ ‰ “n“nŲĪŲĪI2I2֘֘oooo†Ž†ŽęPęPĘĘ>>¬ø¬ø÷5÷5ٵٵG8G82½2½DDRĪRĪnZnZÖčÖčyy_ _ h”h”‘8‘8ŠŃŠŃmm` ` ž©ž©ĒJĒJÓķÓķ·’·’i9i9āįāįŒŒ88–å–å͔͔ŸEŸEųųņ«ņ«cacaOOÆŠ ÆŠ {Š {Š «E «E 9 9 Ą Ą R R Š? Š?   Ä Ä Ąˆ Ąˆ #N #N ± ± aÜ aÜ 0„ 0„ o o : :   )Ó )Ó ;” ;” Lp Lp U@ U@ Q Q =ć=ć¶¶ωωk^k^ä3ä35 5 YįYįM¹M¹’’•k•kßEßEź ź ±ü±ü/Ł/Ła¶a¶E”E”ÖrÖrRRņ1ņ1xx›ó›ó]Õ]Õø·ø·ŖšŖš0~0~EbEbźFźF,,ŠŠ ų ųĢŽĢŽ Ę ĘŹ­Ź­––¶~¶~ŽgŽgzQzQˆ;ˆ;&&ņņGüGüčč-Ō-ŌøĄøĄ¦­¦­ōšōš¦ˆ¦ˆ¬v¬veeÕSÕSčBčB[2[2""00HóHóFäFä—Õ—Õ-Ē-ǹ¹9«9«««__XƒXƒ“v“v j jŹ]Ź]ĀQĀQśEśEk:k://ž#ž#!!ttĀłĀł¼ļ¼ļįåįå@Ü@ÜČŅČŅˆÉˆÉoĄoĄ‹·‹·Ļ®Ļ®D¦D¦ąą«•«•››¹…¹…ś}ś}hvhvönön°g°gŠ`Š`ŒYŒY®R®R÷K÷K^E^Eė>ė>•8•8b2b2K,K,W&W&} } ÄÄ&&§§B B śśŹ’Ź’·ś·ś¼õ¼õܚܚģģdēdēĶāĶāLŽLŽāŁāŁÕÕRŃRŃ)Ķ)ĶÉÉÅÅ1Į1Į[½[½˜¹˜¹éµéµM²M²Ć®Ć®J«J«ä§ä§¤¤J”J”žžōšōšį—į—Ū”Ū”č‘č‘,Œ,Œc‰c‰Ŗ†Ŗ†üƒüƒ^^Ģ~Ģ~I|I|ŠyŠygwgwuuµrµrmpmp2n2nllŻiŻiĆgĆg“e“eÆcÆcµaµaÄ_Ä_Ž]Ž]\\-Z-ZbXbX¢V¢VéTéT:S:S’Q’QōOōO]N]NŠLŠLHKHKĖIĖISHSHäFäF{E{EDDĄBĄBnAnA!@!@Ū>Ū>›=›=c<c</;/;::Ü8Ü8¼7¼7Ÿ6Ÿ6‹5‹5z4z4o3o3i2i2j1j1n0n0y/y/‡.‡.›-›-³,³,Ń+Ń+ń*ń***A)A)p(p(¢'¢'Ł&Ł&&&R%R%“$“$Ū#Ū#$#$#r"r"Ā!Ā!!!n n ŹŹ((ŠŠīīWWĮĮ00  ŠŠżż~~ˆˆšš((··IIŻŻtt  „„AAąą""ÅÅll¼¼ffĮĮrr##×׋‹AAų ų ² ² l l ( ( ä ä £ £ c c $ $ ē ē Ŗ Ŗ n n 5 5 ū ū Ä Ä   X X " " š š ¾ ¾ Œ Œ [ [ + + üüĻĻ¢¢vvKK""ųųŠŠ§§ZZ55īīŹŹ§§„„ddCC$$ēēĒĒ««ŽŽrrUU;;  ģģŌŌ»»££‹‹tt^^HH11óóßßĖĖøø„„’’€€cc\\33AA))ŽŽ  ĘĘßßĶĶ‹‹ųų©©ÆÆ›’’’›’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))mö’’mö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEż®’’ż®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›Ž}’’Ž}’’2e2e.Ę’’.Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’ūģūģlĀū’lĀū’‚‚ŁPū’ŁPū’ĒĒž?ū’ž?ū’@›@›I±ū’I±ū’CŻC݆Āü’†Āü’érérVŠž’VŠž’fJfJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’Ą`Ą`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’~.~.4.ę’4.ę’ĄvĄvčą’čą’{¾!{¾!j‹Ū’j‹Ū’äa'äa'T.Õ’T.Õ’†/†/b€Č’b€Č’’—I’—I-w’-w’©0©0ĻXĀĻXĀցZ8ցZ8Ż–&KŻ–&K©j“W©j“WėŽå]ėŽå]ŲżbŲżbi Gci Gc+Ć„b+Ć„bæ)*_æ)*_^ŚąY^ŚąYŁŖQŁŖQy ’Dy ’D3«į03«į0£€ķ£€ķŽéZūŽéZūĀiŽĀiŽ6ĖĆ6ĖĆ_ŲŻ­_ŲŻ­mŖµmŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘…ż™…ż™ž‰¦ž‰¦¢²Ź¶¢²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāēķ!ūēķ!ūńŘńŘĄM'ĄM'¬„»7¬„»7'ÜŃC'ÜŃCó ŅKó ŅK_lP_lPķš`Qķš`QŠóöOŠóöOčLčL5 ‘E5 ‘ELa4—y>4·&m6·&m6įŽX6įŽX6O?Ė3O?Ė3Ę!•.Ę!•.†&†&­­MƒŃ MƒŃ ”Īż ”Īż³p`ģ³p`ģ Ä„Ś Ä„Śų˜åÉų˜åɑ;»‘;»[o…Æ[o…Æ&§&§Š˜A¢Š˜A¢¼Ļ± ¼Ļ± 8 ‚¢8 ‚¢ ʧ ʧH’±H’±'v¾'v¾©H[Š©H[Š=ę=ę¢>ž¢>žń؊ń؊Į5/Į5/˜MöB˜MöB•-żQ•-żQŁĻ[ŁĻ[÷Õ*a÷Õ*a‡d½c‡d½c›Id›IdŠ'œbŠ'œb,½^,½^öcXöcXgsˆMgsˆM‚’ę<‚’ę<°k&°k&fOš fOš ųtģųtģÆ.:ĻÆ.:ĻżRµżRµbƍ”bƍ”|‚“|‚“)VŁ)VŁžÉöžÉö‰š‰š,ėĖ,ėĖ4Ė64Ė6łŗĮ—łŗĮ—‘ķ„‘ķ„+žOŗ+žOŗA†—ŌA†—Ōįō×ņįō×ņĒ”+Ē”+4$/4$/āŸÅFāŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hźż[dźż[dŖ«+^Ŗ«+^ÖrTÖrTEęEEęEG¶Ņ/G¶Ņ/Ī;ōĪ;ōqņ¼łqņ¼ł–„ Ž–„ ŽclÅclÅ=$¬±=$¬±Ė{u£Ė{u£…š…šµY–µY–±gB•±gB•>“±—>“±—Ž fŽ foOʦoOʦӌ#“ÓŚ#“lŹtÅlŹtÅ«ūŁ«ūŁ:³gš:³gšĪ¼ōμōD:éD:é,#Ų-,#Ų-J‰ö;J‰ö;āö Fāö FjN\LjN\L!S^O!S^OžÓ„OžÓ„O²ļM²ļM2 H2 H+xµ@+xµ@pń6pń6Ä”'+Ä”'+ŽńŽńŅzŅz““ń+öń+öy(—ėy(—ėI~LćI~LćŪ†ŻŪ†ŻüMŚüMŚEeŁEeŁ—ēŚ—ēŚv\(Žv\(Ž8×Üā8×Ü≉艉čŅ{ØīŅ{Øī„‘³ō„‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cž¶JW¶JWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ń£µ@Ń£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”ŅŖē ĮŖē ĮŲ*Œ²Ų*Œ²ß2Œ§ß2Œ§U^N U^N ė~«œė~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£iõTiõTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšC­jšC­jš"Ež"Ežž×ü¤ž×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų8”Ž 8”Ž H†JH†JV‹Ø.V‹Ø.Čru:Čru:ļ_žBļ_žB?ChG?ChG*,I*,Ių`?Hų`?HÉOÕDÉOÕD§d?§d?į&,7į&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ)].ī)].īN¶›čN¶›čXßFåXßFå€čä€čäļĪéäļĪéäń^ēń^ēHSėHSė?&žļ?&žļĢuōĢuōłł*x(ż*x(żæ!2æ!2–šõ–šõD†JD†Jb&b&@Ÿž@Ÿž§čś§čś'÷Qö'÷QöĪöDńĪöDńĀ…;ģĀ…;ģ[é“ē[é“ēā\/äā\/ähāhⰜŃᰜŃįDm›ćDm›ć¢£ē¢£ēQżļķQżļķ{–eö{–eöy²y²Ķ›U Ķ›U ]Z›]Z›‹·$‹·$ÉWŚ/ÉWŚ/æT9æT9«@«@ęœEęœEsHsHÓHÓHzœMEzœMEct³?ct³?ņśŽ6ņśŽ6›s*›s*ä£ä£f0µf0µ:hŹņ:hŹņSŻSŻ­É­Éc\·c\· Sh© Sh©ĄÓ†ŸĄÓ†ŸZ—¦™Z—¦™_T—_T—ć Q˜ć Q˜^^Ÿœ^^ŸœwǤwǤk*q±k*q±qĆqĆĻ–ŁĻ–ŁķōĆóķōĆó$w|$w|I‰*I‰*”1A”1AöRöR›) ^›) ^’€>d’€>do8»go8»głiłiĆ&hĆ&hŻ®dŻ®dŲ._Ų._~„†V~„†VČĀJHČĀJH¬ŚR3¬ŚR3Ü!”Ü!”1ōś1ōś¾™NŪ¾™NŪ‚Œ*悌*æŚ£žØŚ£žØČc˜Čc˜;;=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”…»”…»”éNвéNвųYėŹųYėŹĖ­`ēĖ­`ē…Œ…Œų z#ų z# lč< lč<‚ P‚ P‹=Ž\‹=Ž\ ‚¾c ‚¾cYR+gYR+gaPhaPh0WCg0WCg4ššc4ššc.š^.š^…‹ V…‹ ViČ¢HiČ¢HĒ6Ē6cŽ$cŽ$÷›¢÷›¢@PŁė@PŁėķs$Ōķs$ŌÜ8ĄÜ8Ąd–±d–±'–Ʀ'–Ʀāiš āiš ƒĄ÷žƒĄ÷ž!sx !sx ßÓ?„ßÓ?„*zh­*zh­Q=õøQ=õøb»Ēb»Ē²ĀٲĀِųėųė·’·’#Œ#ŒMAŽ MAŽ ƒÆ-ƒÆ-.f97.f97ÉŠ‚=ÉŠ‚=ś6Å@ś6Å@ 1HA 1HAŠJO?ŠJO?L;L;§źĪ4§źĪ48Ō,8Ō,Փ#Փ#Ž2œŽ2œ®“®“ŌØŌØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīvĪńvĪńó 0ōó 0ō¤•ū÷¤•ū÷ŗįźūŗįźūåU‡’åU‡’AÆdAÆd¤$*¤$*|Ž–|Ž–÷N†÷N†’•ń’•ń;Ļńü;Ļńü*Ą÷*Ą÷++µń++µńńŒCėńŒCė½ļä½ļäŪKDßŪKDßīuÅŚīuÅŚ¶”č×¶”č׆ž ׆ž ×[3Ų[3Ų¦ĀnܦĀnÜŹęóāŹęóā–¤żė–¤żėżĆK÷żĆK÷ˆŠ\ˆŠ\F©vF©vļM¬ ļM¬ -ö.-ö.(E¬9(E¬9d(ūBd(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM±ÅŪI±ÅŪIPūÓBPūÓB=58=58 C®) C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĀFŅ2ĀFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČń‹D²Ņ‹D²ŅŽä·Žä·B•k£B•k£Z•Z•¤r@ޤr@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘬@ø¦¬@ø¦"œ‹ŗ"œ‹ŗkm×Ókm×ӑMŁš‘MŁš’čŲ’čŲ©*©*ŠŖŚAŠŖŚA?’ŚR?’ŚRā Ē]ā Ē]M¾}cM¾}còfòfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ,÷P,÷P³ņA³ņA+‘-+‘-KØKØ*ž*ž]Ję]Ję-ņŠ-ņŠęšæęšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„_ͧ_ͧLļµ­Lļµ­Ÿ…Ó¶Ÿ…Ó¶™,óĀ™,óĀŗhÆŃŗhÆŃǵ6āǵ6āk„ók„ó”›d”›dƒ,Ėƒ,ĖĄß Ąß É*+É*+@Ģ}2@Ģ}2ĀČģ6ĀČģ6%¦«8%¦«8Ģ)ō7Ģ)ō7Ėé5Ėé5¼*90¼*90œĖÕ)œĖÕ)¬AA"¬AA"JoJo3y¾3y¾±ó ±ó öČöČU*¦żU*¦ż…£Äł…£ÄłzÉ­÷zÉ­÷‘G0÷‘G0÷]ĒIų]ĒIųźśźś“g“ż“g“ż_¦Ė_¦ĖM2M2ĄčĄčšŁšŁB¤ B¤ ÅkÅk›Ķ›Ķ©!©!źłźł©_ū©_ūŸÄļŸÄļÅńÅńęŠęęŠęWēWēy:Žy:ŽżŻżŻłÕłÕUŌUŌćĪćĪ™Ė™Ė>SĘ>SĘ%,Ć%,èྨ྽/»½/»N§·N§·–³–³¤°¤°s[¬s[¬Õ©Õ©{„{„,:£,:£EļžEļž²Óœ²Óœį±˜į±˜“¢–“¢–•¼’•¼’]ؐ]ؐD D ³åгåŠK’‡K’‡[[…[[…¶R‚¶R‚i €i €\F}\F}UļzUļzŽixŽixņ vņ v£ŗs£ŗsŠ]qŠ]q°6o°6oūįlūįl›Üj›ÜjŽ–hŽ–hJ«fJ«f«yd«yd×”b×”bӇ`Ӈ`ræ^ræ^å¾\å¾\C[C[”Y”Y`lW`lW’žU’žUĮłSĮłS3DR3DRAŖPAŖPØ OØ O |M |MłšKłšKŽoJŽoJéõHéõH¶G¶GZFZF±D±D?WC?WCjžAjžA™±@™±@mf?mf?p&>p&>£č<£č<Ļ“;Ļ“;ņƒ:ņƒ:Ē[9Ē[9S78S78h7h7Ī6Ī6Čļ4Čļ4xā3xā3Ū2Ū2tŲ1tŲ19Ū09Ū0ģā/ģā/–ļ.–ļ...J-J--2,-2,Q+Q+tu*tu*¬)¬)4Ź(4Ź(źś'źś'æ/'æ/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#®¾"®¾"""a!a!o· o· - - 8n8nĪĪó1ó1˜˜±n±n6Ž6Ž—P—PÉÅÉż=¼=bøbø®5®5’µ’µ88ļ¼ļ¼MDMDĪĪ.Z.Z—č—čByBy" " -”-”X8X8–Ń–Ńąląl) ) h©h©“J“JŸķŸķ„’„’7979°į°įē‹ē‹Ņ7Ņ7gågå ” ”sEsEŲ÷Ų÷ȫȫ9a9a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ¬? ¬? n n lÄ lÄ  ˆ  ˆ N N   AÜ AÜ „ „ łn łn ō9 ō9 ż ż Ó Ó ” ” 1p 1p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qą1ą1ff‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĮĮ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ū%ū%ęę=ü=üüēüē"Ō"Ō­Ą­Ąœ­œ­źšźš™ˆ™ˆ¤v¤v e eŹSŹSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹2«2«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QōEōEf:f://ś#ś#ppżżæłæł“ļ“ļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvónónŖgŖg†`†`‡Y‡Y¬R¬RņKņK[E[Eē>ē>‘8‘8^2^2H,H,R&R&{ { ĮĮ##££? ? ööĒ’Ē’µśµśŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ-Į-ĮX½X½–¹–¹ēµēµK²K²Į®Į®H«H«ā§ā§¤¤H”H”žžņšņšŽ—Ž—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ\\Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĀgĀg³e³e®c®c³a³aĆ_Ć_Ü]Ü]’[’[+Z+ZaXaX V VčTčT8S8S’Q’QóOóO]N]NĻLĻLIKIKŹIŹISHSHćFćF|E|EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ü8Ü8»7»7Ÿ6Ÿ6‰5‰5z4z4n3n3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Ļ+Ļ+ń*ń***A)A)o(o(”'”'Ų&Ų&&&R%R%”$”$Ś#Ś#####p"p"Ā!Ā!!!o o ÉÉ((‰‰ļļVVĮĮ//ŸŸŠŠżż~~‡‡››''øøIIŻŻss  „„AAßß!!ÅÅkk»»ggĀĀrr##ÖÖ‹‹AAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   W W # # ļ ļ ½ ½ ‹ ‹ [ [ + + żżĻĻ¢¢vvKK!!ųųĻϧ§ZZ55ģģŹŹ§§……ddCC$$ęęĒĒ««ŽŽrrVV;;  ķķŌŌ»»££‹‹tt^^GG11ņņßßĖĖøø„„’’€€cc\\33@@))ŽŽ  ĘĘßßĶĶ‹‹ųų©©ÆÆœ’’’œ’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))mö’’mö’’<<6ä’’6ä’’U*U*Ģ’’Ģ’’EEż®’’ż®’’ŗcŗc>’’>’’bƒbƒØp’’Øp’’eŸeŸ–X’’–X’’®±®±¶M’’¶M’’³³‰W’’‰W’’ń›ń›Ž}’’Ž}’’2e2e-Ę’’-Ę’’t t l5l5g†’’g†’’ĖĖ&Žž’&Žž’ԃԃ_ž’_ž’mSmSCż’Cż’ ) )īrü’īrü’śģśģlĀū’lĀū’‚‚ŚPū’ŚPū’€Ē€Ēž?ū’ž?ū’?›?›J±ū’J±ū’CŻC݇Āü’‡Āü’érérVŠž’VŠž’eJeJķķĮ]ż’Į]ż’aaņ“ł’ņ“ł’Ą`Ą`–fõ’–fõ’õ õ ą–š’ą–š’tōtōńsė’ńsė’..3.ę’3.ę’ĮvĮvčą’čą’{¾!{¾!j‹Ū’j‹Ū’åa'åa'S.Õ’S.Õ’†/†/a€Č’a€Č’’—I’—I,w’,w’Ŗ0Ŗ0ĪXĀĪXĀցZ8ցZ8ܖ&Kܖ&K©j“W©j“WźŽå]źŽå]ŲżbŲżbi Gci Gc,Ć„b,Ć„b¾)*_¾)*_^ŚąY^ŚąY’ŲŖQ’ŲŖQz ’Dz ’D3«į03«į0¤€ķ¤€ķŽéZūŽéZūĀiŽĀiŽ5ĖĆ5ĖĆ_ŲŻ­_ŲŻ­lŖµlŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘†ż™†ż™ž‰¦ž‰¦£²Ź¶£²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāęķ!ūęķ!ūņŘņŘĄM'ĄM'­„»7­„»7&ÜŃC&ÜŃCō ŅKō ŅK^lP^lPīš`Qīš`QˆóöOˆóöOźLźL4 ‘E4 ‘ENa4–y>4·&m6·&m6įŽX6įŽX6P?Ė3P?Ė3Ę!•.Ę!•.†&†&­­MƒŃ MƒŃ ”Īż ”Īż“p`ģ“p`ģ Ä„Ś Ä„Śų˜åÉų˜åɑ;»‘;»[o…Æ[o…Æ&§&§Š˜A¢Š˜A¢¼Ļ± ¼Ļ± 8 ‚¢8 ‚¢ ʧ ʧI’±I’±'v¾'v¾ŖH[ŠŖH[Š=ę=ę¢>ž¢>žń؊ń؊Į5/Į5/˜MöB˜MöB•-żQ•-żQŁĻ[ŁĻ[ųÕ*aųÕ*a‡d½c‡d½c›Id›IdŠ'œbŠ'œb,½^,½^öcXöcXgsˆMgsˆM‚’ę<‚’ę<°k&°k&fOš fOš ųtģųtģÆ.:ĻÆ.:ĻżRµżRµaƍ”aƍ”|‚“|‚“)VŁ)VŁžÉöžÉö‰š‰š,ėĖ,ėĖ4Ė64Ė6śŗĮ—śŗĮ—‘ķ„‘ķ„+žOŗ+žOŗ@†—Ō@†—Ōāō×ņāō×ņĒ”+Ē”+4$/4$/įŸÅFįŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hźż[dźż[d©«+^©«+^ÖrTÖrTEęEEęEG¶Ņ/G¶Ņ/Ī;ōĪ;ōqņ¼łqņ¼ł–„ Ž–„ ŽclÅclÅ=$¬±=$¬±Ģ{u£Ģ{u£…š…šµY–µY–°gB•°gB•>“±—>“±—Ż fŻ foOʦoOʦӌ#“ÓŚ#“lŹtÅlŹtÅ«ūŁ«ūŁ:³gš:³gšĶ¼ōͼōD:éD:é,#Ų-,#Ų-J‰ö;J‰ö;āö Fāö FkN\LkN\L!S^O!S^OžÓ„OžÓ„O²ļM²ļM2 H2 H+xµ@+xµ@pń6pń6Ä”'+Ä”'+ŽńŽńŅzŅz““ń+öń+öy(—ėy(—ėH~LćH~LćŪ†ŻŪ†ŻüMŚüMŚEeŁEeŁ—ēŚ—ēŚv\(Žv\(Ž8×Üā8×Ü≉艉čŅ{ØīŅ{Øī…‘³ō…‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cž¶JW¶JWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ń£µ@Ń£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”ŅŖē ĮŖē ĮŲ*Œ²Ų*Œ²Ž2Œ§Ž2Œ§U^N U^N ė~«œė~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£i€õTi€õTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš"Ež"Ežż×ü¤ż×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų7”Ž 7”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ļ_žBļ_žB@ChG@ChG*,I*,Ių`?Hų`?HČOÕDČOÕDØd?Ød?ą&,7ą&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFå€čä€čäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2–šõ–šõC†JC†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĀ…;ģĀ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEsHsHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6šs*šs*å£å£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™Ž_T—Ž_T—ä Q˜ä Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĪ–ŁĪ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1A÷R÷Rš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś½™NŪ½™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜::=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč<€ P€ PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$ō›¢ō›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńó 0ōó 0ō„•ū÷„•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58 C®) C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĮFŅ2ĮFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČńŒD²ŅŒD²ŅŽä·Žä·C•k£C•k£Z•Z•„r@Ž„r@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘭@ø¦­@ø¦"œ‹ŗ"œ‹ŗlm×Ólm×ӑMŁš‘MŁš’čŲ’čŲ©*©*‹ŖŚA‹ŖŚA>’ŚR>’ŚRć Ē]ć Ē]L¾}cL¾}cIJfIJfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ+÷P+÷P³ņA³ņA+‘-+‘-LØLØ*ž*ž]Ję]Ję-ņŠ-ņŠēšæēšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„’^ͧ’^ͧMļµ­Mļµ­Ÿ…Ó¶Ÿ…Ó¶š,óš,ó¹hÆŃ¹hÆŃȵ6āȵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+AĢ}2AĢ}2ĮČģ6ĮČģ6%¦«8%¦«8Ė)ō7Ė)ō7Ėé5Ėé5»*90»*90œĖÕ)œĖÕ)¬AA"¬AA"JoJo3y¾3y¾±ó ±ó öČöČV*¦żV*¦ż…£Äł…£ÄłzÉ­÷zÉ­÷‘G0÷‘G0÷^ĒIų^ĒIųźśźś“g“ż“g“ż_¦Ė_¦ĖM2M2ĄčĄčšŁšŁB¤ B¤ ĘkĘk›Ķ›Ķ©!©!źłźł©_ū©_ūžÄļžÄļÅńÅńęŠęęŠęWēWēy:Žy:ŽžŻžŻłÕłÕUŌUŌāĪāĪ™Ė™Ė>SĘ>SĘ%,Ć%,èྨ྽/»½/»N§·N§·–³–³¤°¤°s[¬s[¬Õ©Õ©{„{„+:£+:£FļžFļž²Óœ²Óœį±˜į±˜³¢–³¢–•¼’•¼’]ؐ]ؐE E ³åгåŠK’‡K’‡Z[…Z[…¶R‚¶R‚i €i €\F}\F}UļzUļzßixßixņ vņ v£ŗs£ŗs‰]q‰]q±6o±6oūįlūįl›Üj›ÜjŽ–hŽ–hJ«fJ«f«yd«ydŲ”bŲ”bӇ`Ӈ`ræ^ræ^å¾\å¾\C[C[”Y”Y`lW`lW’žU’žUĀłSĀłS3DR3DRAŖPAŖPØ OØ O |M |MłšKłšKŽoJŽoJéõHéõH¶G¶GZFZF±D±D?WC?WCjžAjžA™±@™±@nf?nf?p&>p&>£č<£č<Ļ“;Ļ“;ņƒ:ņƒ:Ē[9Ē[9T78T78h7h7Ī6Ī6Čļ4Čļ4xā3xā3Ū2Ū2tŲ1tŲ19Ū09Ū0ģā/ģā/–ļ.–ļ...J-J-.2,.2,Q+Q+tu*tu*¬)¬)5Ź(5Ź(éś'éś'æ/'æ/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#®¾"®¾"""a!a!o· o· - - 8n8n€Ī€Īó1ó1˜˜²n²n6Ž6Ž—P—PÉÅÉż=¼=bøbøÆ5Æ5’µ’µ88ļ¼ļ¼MDMDĪĪ.Z.Z—č—čByBy" " -”-”X8X8—Ń—Ńąląl) ) h©h©“J“JŸķŸķ„’„’7979±į±įē‹ē‹Ņ7Ņ7gågå ” ”sEsEŲ÷Ų÷ȫȫ9a9a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ­? ­? n n lÄ lÄ  ˆ  ˆ N N   AÜ AÜ „ „ łn łn ō9 ō9 ż ż Ó Ó ” ” 1p 1p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qą1ą1ff‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĮĮ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ū%ū%åå=ü=üüēüē"Ō"Ō­Ą­Ąœ­œ­źšźš™ˆ™ˆ¤v¤v e eŹSŹSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹2«2«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QōEōEf:f://ś#ś#ppżżæłæł“ļ“ļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvónónŖgŖg†`†`‡Y‡Y¬R¬RņKņK\E\Eę>ę>’8’8^2^2H,H,R&R&{ { ĮĮ##££? ? õõČ’Č’µśµśŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ-Į-ĮX½X½–¹–¹ēµēµK²K²Į®Į®H«H«ā§ā§¤¤H”H”žžņšņšŽ—Ž—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ]]Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĮgĮg³e³e®c®c³a³aĆ_Ć_Ü]Ü]’[’[+Z+ZaXaX V VčTčT8S8S’Q’QóOóO]N]NĻLĻLHKHKŹIŹISHSHćFćF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ü8Ü8»7»7Ÿ6Ÿ6Š5Š5z4z4o3o3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***@)@)o(o(”'”'Ų&Ų&&&R%R%”$”$Ś#Ś#####q"q"Ā!Ā!!!n n ÉÉ((ŠŠļļVVĮĮ//ŸŸŠŠżż~~‡‡››((øøIIÜÜss  „„AAßß""ÅÅkk»»ggĀĀrr##ÖÖ‹‹AAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   W W # # š š ¼ ¼ Œ Œ Z Z + + żżĻĻ¢¢vvKK!!ųųŠŠ§§ZZ55ģģŹŹ§§……ddCC$$ēēĒĒ««ŽŽrrVV;;  ķķŌŌ»»££‹‹tt^^GG11ņņßßĖĖøø„„’’€€cc\\33@@))ŽŽ  ĘĘßßĶĶŠŠ÷÷©©ÆÆ›’’’›’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))nö’’nö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEž®’’ž®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›}’’}’’2e2e.Ę’’.Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’ūģūģlĀū’lĀū’‚‚ŁPū’ŁPū’ĒĒž?ū’ž?ū’@›@›I±ū’I±ū’CŻC݆Āü’†Āü’érérVŠž’VŠž’fJfJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’Ą`Ą`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’~.~.4.ę’4.ę’ĄvĄvčą’čą’{¾!{¾!j‹Ū’j‹Ū’äa'äa'T.Õ’T.Õ’†/†/b€Č’b€Č’’—I’—I-w’-w’©0©0ĻXĀĻXĀցZ8ցZ8Ż–&KŻ–&K©j“W©j“WėŽå]ėŽå]ŲżbŲżbi Gci Gc+Ć„b+Ć„b¾)*_¾)*_^ŚąY^ŚąYŁŖQŁŖQy ’Dy ’D3«į03«į0£€ķ£€ķŽéZūŽéZūĀiŽĀiŽ6ĖĆ6ĖĆ_ŲŻ­_ŲŻ­mŖµmŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘…ż™…ż™ž‰¦ž‰¦¢²Ź¶¢²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāēķ!ūēķ!ūńŘńŘĮM'ĮM'¬„»7¬„»7'ÜŃC'ÜŃCó ŅKó ŅK_lP_lPķš`Qķš`QŠóöOŠóöOčLčL5 ‘E5 ‘ELa4–y>4·&m6·&m6įŽX6įŽX6P?Ė3P?Ė3Ę!•.Ę!•.†&†&­­MƒŃ MƒŃ ”Īż ”Īż“p`ģ“p`ģ Ä„Ś Ä„Śų˜åÉų˜åɑ;»‘;»[o…Æ[o…Æ&§&§Š˜A¢Š˜A¢¼Ļ± ¼Ļ± 8 ‚¢8 ‚¢ ʧ ʧI’±I’±'v¾'v¾ŖH[ŠŖH[Š=ę=ę¢>ž¢>žń؊ń؊Į5/Į5/˜MöB˜MöB•-żQ•-żQŁĻ[ŁĻ[ųÕ*aųÕ*a‡d½c‡d½c›Id›IdŠ'œbŠ'œb,½^,½^öcXöcXgsˆMgsˆM‚’ę<‚’ę<°k&°k&fOš fOš ųtģųtģÆ.:ĻÆ.:ĻżRµżRµaƍ”aƍ”|‚“|‚“)VŁ)VŁžÉöžÉö‰š‰š,ėĖ,ėĖ4Ė64Ė6śŗĮ—śŗĮ—‘ķ„‘ķ„+žOŗ+žOŗ@†—Ō@†—Ōāō×ņāō×ņĒ”+Ē”+4$/4$/įŸÅFįŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hźż[dźż[d©«+^©«+^ÖrTÖrTEęEEęEG¶Ņ/G¶Ņ/Ī;ōĪ;ōqņ¼łqņ¼ł–„ Ž–„ ŽclÅclÅ=$¬±=$¬±Ģ{u£Ģ{u£…š…šµY–µY–°gB•°gB•>“±—>“±—Ż fŻ foOʦoOʦӌ#“ÓŚ#“lŹtÅlŹtÅ«ūŁ«ūŁ:³gš:³gšĶ¼ōͼōD:éD:é,#Ų-,#Ų-J‰ö;J‰ö;āö Fāö FkN\LkN\L!S^O!S^OžÓ„OžÓ„O²ļM²ļM2 H2 H+xµ@+xµ@pń6pń6Ä”'+Ä”'+ŽńŽńŅzŅz““ń+öń+öy(—ėy(—ėH~LćH~LćŪ†ŻŪ†ŻüMŚüMŚEeŁEeŁ—ēŚ—ēŚv\(Žv\(Ž8×Üā8×Ü≉艉čŅ{ØīŅ{Øī…‘³ō…‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cžµJWµJWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ń£µ@Ń£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”ŅŖē ĮŖē ĮŲ*Œ²Ų*Œ²Ž2Œ§Ž2Œ§U^N U^N ė~«œė~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£i€õTi€õTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš"Ež"Ežż×ü¤ż×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų7”Ž 7”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ļ_žBļ_žB@ChG@ChG*,I*,Ių`?Hų`?HČOÕDČOÕDØd?Ød?ą&,7ą&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFå€čä€čäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2–šõ–šõC†JC†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĀ…;ģĀ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEsHsHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6šs*šs*å£å£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™Ž_T—Ž_T—ä Q˜ä Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĪ–ŁĪ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1A÷R÷Rš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś½™NŪ½™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜::=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč<€ P€ PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$ō›¢ō›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńó 0ōó 0ō¦•ū÷¦•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58C®)C®)Ī\Ī\$$r ’źr ’źK(ŌK(ŌŌG_æŌG_æļ‘®ļ‘®Ł7”Ł7”™æ˜™æ˜ ĖN” ĖN”į:E“į:E““i•“i•āGåšāGåš}‚¤}‚¤yš’²yš’²=ŽĘ=ŽĘ»Œß»Œßċūċū„9=„9=ĮFŅ2ĮFŅ2Ŗ½©HŖ½©HŃ8fXŃ8fX¶ćĪa¶ćĪaBFÜfBFÜfęĆĮięĆĮi&Lj&LjĄ—ŒhĄ—ŒhĒrOdĒrOdÄ ū]Ä ū]āåģSāåģSµ¦Cµ¦C¾Ä›,¾Ä›,¬J¬J¼Čń¼Čń‰D²Ņ‰D²ŅŽä·Žä·@•k£@•k£\•\•¢r@Ž¢r@Ž„ųŚ„ųŚJ¢ŽJ¢Ž€śø€śø“õ “õ Ää˜Ä䘫@ø¦«@ø¦$œ‹ŗ$œ‹ŗjm×Ójm×ӒMŁš’MŁšžčŲžčŲ©*©*‰ŖŚA‰ŖŚA@’ŚR@’ŚRį Ē]į Ē]M¾}cM¾}còfòfūh]fūh]fКdКdT¦`T¦`y/TZy/TZ,÷P,÷P²ņA²ņA+‘-+‘-KØKØ*ž*ž\Ję\Ję-ņŠ-ņŠęšæęšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„_ͧ_ͧMļµ­Mļµ­Ÿ…Ó¶Ÿ…Ó¶š,óš,ó¹hÆŃ¹hÆŃȵ6āȵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+AĢ}2AĢ}2ĮČģ6ĮČģ6&¦«8&¦«8Ė)ō7Ė)ō7Ģé5Ģé5»*90»*90œĖÕ)œĖÕ)«AA"«AA"KoKo2y¾2y¾±ó ±ó õČõČV*¦żV*¦ż„£Äł„£ÄłzÉ­÷zÉ­÷G0÷G0÷^ĒIų^ĒIųźśźś”g“ż”g“ż^¦Ė^¦ĖN2N2æčæč›Ł›ŁA¤ A¤ ĘkĘkšĶšĶŖ!Ŗ!éłéłŖ_ūŖ_ūžÄļžÄļĘńĘńåŠęåŠęXēXēx:Žx:ŽžŻžŻłÕłÕUŌUŌāĪāΚĖšĖ=SĘ=SĘ&,Ć&,çྦྷ྾/»¾/»M§·M§·–³–³¤°¤°t[¬t[¬Õ©Õ©{„{„+:£+:£FļžFļž±Óœ±Óœā±˜ā±˜³¢–³¢––¼’–¼’\ؐ\ؐE E ²åвåŠL’‡L’‡Z[…Z[…·R‚·R‚h €h €\F}\F}UļzUļzßixßixń vń v£ŗs£ŗs‰]q‰]q±6o±6ośįlśįlœÜjœÜjŻ–hŻ–hJ«fJ«fŖydŖydŲ”bŲ”bӇ`Ӈ`ræ^ræ^ä¾\ä¾\D[D[”Y”YalWalWžžUžžUĀłSĀłS2DR2DRBŖPBŖP§ O§ O |M |MųšKųšKoJoJéõHéõH¶G¶GYFYF±D±D>WC>WCjžAjžA˜±@˜±@nf?nf?o&>o&>¤č<¤č<Ļ“;Ļ“;óƒ:óƒ:Ę[9Ę[9T78T78g7g7Ļ6Ļ6Ēļ4Ēļ4xā3xā3Ū2Ū2uŲ1uŲ18Ū08Ū0ķā/ķā/•ļ.•ļ...I-I-.2,.2,Q+Q+uu*uu*«)«)5Ź(5Ź(éś'éś'Ą/'Ą/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#ƾ"ƾ"""a!a!o· o· - - 8n8n€Ī€Īņ1ņ1˜˜²n²n5Ž5Ž˜P˜PÉÅÉż=¼=bøbøÆ5Æ5’µ’µ88ī¼ī¼MDMDĪĪ.Z.Z—č—čByBy" " -”-”W8W8—Ń—Ńßlßl) ) h©h©“J“Jžķžķ„’„’7979±į±įē‹ē‹Ņ7Ņ7gågå ” ”sEsEŁ÷Ł÷ǫǫ:a:a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ­? ­? n n lÄ lÄ Ÿˆ Ÿˆ N N   BÜ BÜ „ „ łn łn ō9 ō9 ż ż Ó Ó ” ” 1p 1p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qį1į1ee‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĀĀ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ū%ū%åå=ü=üüēüē"Ō"Ō­Ą­Ąœ­œ­źšźš™ˆ™ˆ¤v¤v e eŹSŹSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹2«2«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QōEōEf:f://ś#ś#ppżżæłæł“ļ“ļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvónónŖgŖg†`†`‡Y‡Y¬R¬RņKņK\E\Eę>ę>’8’8^2^2H,H,R&R&{ { ĮĮ##££? ? õõČ’Č’“ś“śŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ.Į.ĮX½X½–¹–¹ēµēµK²K²Ą®Ą®H«H«ā§ā§¤¤H”H”žžņšņšŽ—Ž—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ]]Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĮgĮg³e³e®c®c“a“aĆ_Ć_Ż]Ż]’[’[+Z+ZaXaX V VčTčT8S8S’Q’QóOóO]N]NĻLĻLHKHKŹIŹISHSHäFäF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ū8Ū8»7»7Ÿ6Ÿ6Š5Š5y4y4o3o3i2i2j1j1n0n0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***@)@)o(o(”'”'Ł&Ł&&&R%R%”$”$Ś#Ś#####q"q"Ā!Ā!!!n n ÉÉ((ŠŠļļVVĮĮ//ŸŸ‰‰żż~~‡‡››((··IIÜÜss  „„AAßß""ÅÅkk»»ggĮĮrr##ÖÖŠŠAAų ų ± ± l l ( ( ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   X X " " š š ¼ ¼ Œ Œ Z Z + + żżĻĻ¢¢vvKK""ųųŠŠ§§ZZ66ķķŹŹ§§„„ddCC$$ēēĒĒ««ŽŽrrUU;;  ģģŌŌ»»££‹‹tt^^HH11óóßßĖĖøø„„’’€€bb\\33AA))ŽŽ  ĘĘßßĶĶ‹‹ųų©©ÆÆœ’’’œ’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))mö’’mö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEż®’’ż®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›Ž}’’Ž}’’2e2e.Ę’’.Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’ūģūģlĀū’lĀū’‚‚ŁPū’ŁPū’ĒĒž?ū’ž?ū’@›@›I±ū’I±ū’CŻC݆Āü’†Āü’źrźrVŠž’VŠž’fJfJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’æ`æ`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’}.}.4.ę’4.ę’ĄvĄvčą’čą’z¾!z¾!k‹Ū’k‹Ū’ća'ća'U.Õ’U.Õ’†/†/b€Č’b€Č’ž—Iž—I-w’-w’©0©0ŠXĀŠXĀՁZ8ՁZ8Ž–&KŽ–&KØj“WØj“WģŽå]ģŽå]׿b׿bj Gcj Gc*Ć„b*Ć„bæ)*_æ)*_]ŚąY]ŚąYŁŖQŁŖQy ’Dy ’D4«į04«į0£€ķ£€ķéZūéZūĮiŽĮiŽ6ĖĆ6ĖĆ^ŲŻ­^ŲŻ­mŖµmŖµD6“D6“Ļ•ŽĻ•Ž)ó)óŸz÷Ÿz÷Ī‰³‘Ή³‘†ż™†ż™‰¦‰¦£²Ź¶£²Ź¶žĢLĖžĢLĖó•Ļāó•Ļāęķ!ūęķ!ūóŘóŘæM'æM'®„»7®„»7&ÜŃC&ÜŃCō ŅKō ŅK^lP^lPīš`Qīš`Q‰óöO‰óöOźLźL4 ‘E4 ‘ENaßP÷>ßP÷E¾lżE¾lżVę&Vę&D,SD,SĶäŪĶäŪ‚\Õ‚\ÕĆ^iĆ^i,į,įĪM˜’ĪM˜’ŅeüūŅeüūōzƒųōzƒų˜”õ˜”õŻ~ĆóŻ~Ćó ©?ó ©?ó¹ĪXō¹ĪXōI†-÷I†-÷±4Įū±4ĮūuÉéuÉéÖŅ^ ÖŅ^ “Ŗ“Ŗ]E]EŚ "Ś "‚ś)‚ś)©“ž/©“ž/—y>4—y>4·&m6·&m6įŽX6įŽX6P?Ė3P?Ė3Å!•.Å!•.†&†&¬¬NƒŃ NƒŃ ”Īż ”Īżµp`ģµp`ģ Ä„Ś Ä„Śś˜åÉś˜åɏ;»;»^o…Æ^o…Æ&§&§Ņ˜A¢Ņ˜A¢¹Ļ± ¹Ļ± ; ‚¢; ‚¢ ʧ ʧL’±L’±Œ'v¾Œ'v¾­H[Š­H[Š=ę=ę„>ž„>žī؊Ä5/Ä5/–MöB–MöB–-żQ–-żQŁĻ[ŁĻ[÷Õ*a÷Õ*a‰d½c‰d½c™Id™IdŌ'œbŌ'œb'½^'½^†öcX†öcXcsˆMcsˆM’ę<’ę<°k&°k&cOš cOš łtģłtģÆ.:ĻÆ.:ĻżRµżRµcƍ”cƍ”z‚“z‚“+VŁ+VŁ›Éö›Éö‹š‹š*ėĖ*ėĖ5Ė65Ė6ųŗĮ—ųŗĮ—“ķ„“ķ„*žOŗ*žOŗA†—ŌA†—Ōįō×ņįō×ņČ”+Č”+4$/4$/įŸÅFįŸÅF¶) W¶) W³«¼a³«¼aÕźfÕźf"©Ųi"©ŲiWŻQjWŻQj¹‘h¹‘hėż[dėż[dØ«+^Ø«+^ÖrTÖrTCęECęEH¶Ņ/H¶Ņ/Ķ;ōĶ;ōrņ¼łrņ¼ł•„ Ž•„ ŽdlÅdlÅ<$¬±<$¬±Ķ{u£Ķ{u£…š…š¶Y–¶Y–ÆgB•ÆgB•@“±—@“±—Ü fÜ fpOʦpOʦь#“ŃŚ#“mŹtÅmŹtÅ«ūŁ«ūŁ;³gš;³gšĢ¼ō̼ōE:éE:é+#Ų-+#Ų-K‰ö;K‰ö;įö Fįö FkN\LkN\L S^O S^OžÓ„OžÓ„O±ļM±ļM2 H2 H+xµ@+xµ@qń6qń6Ć”'+Ć”'+ŽńŽńŃzŃz““ń+öń+öy(—ėy(—ėH~LćH~Lć܆ŻÜ†ŻūMŚūMŚFeŁFeŁ—ēŚ—ēŚv\(Žv\(Ž7×Üā7×ÜāŠ‰čŠ‰čŃ{ØīŃ{Øī…‘³ō…‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cž¶JW¶JWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ņ£µ@Ņ£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”Ņ«ē Į«ē ĮŲ*Œ²Ų*Œ²ß2Œ§ß2Œ§T^N T^N ģ~«œģ~«œ#ædœ#ædœž€{Ÿž€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KysYysY†xö`†xö`9µ#e9µ#eęgęg~ģf~ģf¬ķ`d¬ķ`dÕ\°_Õ\°_9W?X9W?X™sŃK™sŃK¹9¹9sÅ1 sÅ1 HaųHaųä!2ää!2ä"ēCĒ"ēCĒgLĪ®gLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķ›¬Ó›¬Ó啑啑ŸkAœŸkAœ”쬔쬯‡ĀƇĀV¶ ŽV¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£i€õTi€õTi"¹Įf"¹ĮfĻ ÷aĻ ÷aN$ŽZN$ŽZķGOķGOŽ»">Ž»">'ŽÄ''ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš#Ež#Ežż×ü¤ż×ü¤„ŗ•Æ„ŗ•ÆL¶ß½L¶ß½/zĻ/zϵąu浹uć$–sų$–sų7”Ž 7”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ī_žBī_žB@ChG@ChG*,I*,Ių`?Hų`?HČOÕDČOÕDØd?Ød?ą&,7ą&,7²Įf-²Įf-øĀ@"øĀ@"ĘmdĘmdŻR‘ ŻR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFåčäčäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2—šõ—šõC†JC†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĮ…;ģĮ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEtHtHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6šs*šs*ę£ę£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™_T—_T—å Q˜å Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĶ–ŁĶ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1AųRųRš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś½™NŪ½™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜::=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč< P PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$õ›¢õ›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńó 0ōó 0ō„•ū÷„•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58C®)C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĮFŅ2ĮFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČńŒD²ŅŒD²ŅŽä·Žä·C•k£C•k£Z•Z•„r@Ž„r@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘭@ø¦­@ø¦"œ‹ŗ"œ‹ŗkm×Ókm×ӑMŁš‘MŁš’čŲ’čŲ©*©*‹ŖŚA‹ŖŚA>’ŚR>’ŚRć Ē]ć Ē]L¾}cL¾}cIJfIJfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ+÷P+÷P³ņA³ņA+‘-+‘-LØLØ*ž*ž]Ję]Ję-ņŠ-ņŠēšæēšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„’^ͧ’^ͧMļµ­Mļµ­Ÿ…Ó¶Ÿ…Ó¶š,óš,ó¹hÆŃ¹hÆŃȵ6āȵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+AĢ}2AĢ}2ĀČģ6ĀČģ6%¦«8%¦«8Ģ)ō7Ģ)ō7Ėé5Ėé5»*90»*90œĖÕ)œĖÕ)¬AA"¬AA"JoJo3y¾3y¾±ó ±ó öČöČV*¦żV*¦ż…£Äł…£ÄłzÉ­÷zÉ­÷‘G0÷‘G0÷^ĒIų^ĒIųźśźś“g“ż“g“ż_¦Ė_¦ĖM2M2ĄčĄčšŁšŁB¤ B¤ ĘkĘk›Ķ›Ķ©!©!źłźł©_ū©_ūžÄļžÄļÅńÅńęŠęęŠęWēWēy:Žy:ŽżŻżŻłÕłÕUŌUŌāĪāĪ™Ė™Ė>SĘ>SĘ%,Ć%,èྨ྽/»½/»N§·N§·–³–³¤°¤°s[¬s[¬Õ©Õ©{„{„,:£,:£EļžEļž²Óœ²Óœį±˜į±˜³¢–³¢–•¼’•¼’]ؐ]ؐE E ³åгåŠK’‡K’‡[[…[[…¶R‚¶R‚i €i €\F}\F}UļzUļzŽixŽixņ vņ v£ŗs£ŗsŠ]qŠ]q±6o±6oūįlūįl›Üj›ÜjŽ–hŽ–hJ«fJ«f«yd«yd×”b×”bӇ`Ӈ`ræ^ræ^å¾\å¾\C[C[”Y”Y`lW`lW’žU’žUĮłSĮłS3DR3DRAŖPAŖPØ OØ O |M |MłšKłšKŽoJŽoJéõHéõH¶G¶GZFZF±D±D?WC?WCjžAjžA™±@™±@mf?mf?p&>p&>£č<£č<Ļ“;Ļ“;ņƒ:ņƒ:Ē[9Ē[9T78T78h7h7Ī6Ī6Čļ4Čļ4xā3xā3Ū2Ū2tŲ1tŲ19Ū09Ū0ģā/ģā/–ļ.–ļ...J-J--2,-2,Q+Q+tu*tu*¬)¬)4Ź(4Ź(źś'źś'æ/'æ/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#®¾"®¾"""a!a!o· o· - - 8n8nĪĪó1ó1˜˜±n±n6Ž6Ž—P—PÉÅÉż=¼=bøbø®5®5’µ’µ88ļ¼ļ¼MDMDĪĪ.Z.Z—č—čByBy" " -”-”X8X8–Ń–Ńąląl) ) h©h©“J“JŸķŸķ„’„’7979°į°įē‹ē‹Ņ7Ņ7gågå ” ”sEsEŲ÷Ų÷ȫȫ9a9a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ¬? ¬? n n lÄ lÄ  ˆ  ˆ N N   AÜ AÜ „ „ łn łn ō9 ō9 ż ż Ó Ó ” ” 1p 1p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qą1ą1ff‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĀĀ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ū%ū%åå=ü=üüēüē"Ō"Ō­Ą­Ąœ­œ­źšźš™ˆ™ˆ¤v¤v e eÉSÉSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹3«3«¢¢XXPƒPƒŒvŒvjjĀ]Ā]¼Q¼QōEōEe:e://ł#ł#ppżż¾ł¾łµļµļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®?¦?¦ܝܝ¦•¦•——“…“…ö}ö}cvcvónón«g«g†`†`ˆYˆY«R«RóKóK[E[Eē>ē>‘8‘8_2_2H,H,S&S&z z ĀĀ""¤¤> > ööĒ’Ē’µśµśŗõŗõŚšŚšģģcēcēÉāÉāJŽJŽßŁßŁŽÕŽÕOŃOŃ(Ķ(ĶÉÉÅÅ-Į-ĮX½X½–¹–¹ēµēµK²K²Į®Į®H«H«ā§ā§¤¤H”H”žžņšņšß—ߗڔڔē‘ē‘+Œ+Œa‰a‰©†©†śƒśƒ^^Ź~Ź~H|H|ĪyĪyfwfwuuµrµrkpkp2n2n’k’kŻiŻiĄgĄg“e“e®c®c³a³aÄ_Ä_Ū]Ū]\\)Z)ZdXdXžVžVēTēT8S8S’Q’QóOóO]N]NĻLĻLHKHKŹIŹISHSHćFćF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ü8Ü8»7»7Ÿ6Ÿ6Š5Š5z4z4o3o3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***@)@)o(o(”'”'Ų&Ų&&&R%R%”$”$Ś#Ś#####q"q"Ā!Ā!!!n n ÉÉ((ŠŠļļVVĮĮ//ŸŸŠŠżż~~‡‡››((øøIIÜÜss  „„AAßß""ÅÅkk»»ggĀĀrr##ÖÖ‹‹AAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   W W # # š š ¼ ¼ Œ Œ Z Z + + żżĻĻ¢¢vvKK!!ųųŠŠ§§ZZ55ģģŹŹ§§……ddCC$$ēēĒĒ««ŽŽrrVV;;  ķķŌŌ»»££‹‹tt^^GG11ņņßßĖĖøø„„’’€€cc\\33@@))ŽŽ  ĘĘßßĶĶŠŠ÷÷©©ÆÆ›’’’›’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))nö’’nö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEž®’’ž®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›}’’}’’2e2e.Ę’’.Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’ūģūģlĀū’lĀū’‚‚ŁPū’ŁPū’ĒĒž?ū’ž?ū’@›@›I±ū’I±ū’CŻC݆Āü’†Āü’érérVŠž’VŠž’fJfJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’Ą`Ą`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’~.~.4.ę’4.ę’ĄvĄvčą’čą’{¾!{¾!j‹Ū’j‹Ū’äa'äa'T.Õ’T.Õ’†/†/b€Č’b€Č’’—I’—I-w’-w’©0©0ĻXĀĻXĀցZ8ցZ8Ż–&KŻ–&K©j“W©j“WėŽå]ėŽå]ŲżbŲżbi Gci Gc+Ć„b+Ć„b¾)*_¾)*_^ŚąY^ŚąYŁŖQŁŖQy ’Dy ’D3«į03«į0£€ķ£€ķŽéZūŽéZūĀiŽĀiŽ6ĖĆ6ĖĆ_ŲŻ­_ŲŻ­mŖµmŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘…ż™…ż™ž‰¦ž‰¦¢²Ź¶¢²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāēķ!ūēķ!ūńŘńŘĮM'ĮM'¬„»7¬„»7'ÜŃC'ÜŃCó ŅKó ŅK_lP_lPķš`Qķš`QŠóöOŠóöOčLčL5 ‘E5 ‘ELa4–y>4·&m6·&m6įŽX6įŽX6P?Ė3P?Ė3Ę!•.Ę!•.†&†&­­MƒŃ MƒŃ ”Īż ”Īż“p`ģ“p`ģ Ä„Ś Ä„Śų˜åÉų˜åɑ;»‘;»[o…Æ[o…Æ&§&§Š˜A¢Š˜A¢¼Ļ± ¼Ļ± 8 ‚¢8 ‚¢ ʧ ʧI’±I’±'v¾'v¾ŖH[ŠŖH[Š=ę=ę¢>ž¢>žń؊ń؊Į5/Į5/˜MöB˜MöB•-żQ•-żQŁĻ[ŁĻ[ųÕ*aųÕ*a‡d½c‡d½c›Id›IdŠ'œbŠ'œb,½^,½^öcXöcXgsˆMgsˆM‚’ę<‚’ę<°k&°k&fOš fOš ųtģųtģÆ.:ĻÆ.:ĻżRµżRµaƍ”aƍ”|‚“|‚“)VŁ)VŁžÉöžÉö‰š‰š,ėĖ,ėĖ4Ė64Ė6śŗĮ—śŗĮ—‘ķ„‘ķ„+žOŗ+žOŗ@†—Ō@†—Ōāō×ņāō×ņĒ”+Ē”+4$/4$/įŸÅFįŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hźż[dźż[d©«+^©«+^ÖrTÖrTEęEEęEG¶Ņ/G¶Ņ/Ī;ōĪ;ōqņ¼łqņ¼ł–„ Ž–„ ŽclÅclÅ=$¬±=$¬±Ģ{u£Ģ{u£…š…šµY–µY–°gB•°gB•>“±—>“±—Ż fŻ foOʦoOʦӌ#“ÓŚ#“lŹtÅlŹtÅ«ūŁ«ūŁ:³gš:³gšĶ¼ōͼōD:éD:é,#Ų-,#Ų-J‰ö;J‰ö;āö Fāö FkN\LkN\L!S^O!S^OžÓ„OžÓ„O²ļM²ļM2 H2 H+xµ@+xµ@pń6pń6Ä”'+Ä”'+ŽńŽńŅzŅz““ń+öń+öy(—ėy(—ėH~LćH~LćŪ†ŻŪ†ŻüMŚüMŚEeŁEeŁ—ēŚ—ēŚv\(Žv\(Ž8×Üā8×Ü≉艉čŅ{ØīŅ{Øī…‘³ō…‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cžµJWµJWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ń£µ@Ń£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”ŅŖē ĮŖē ĮŲ*Œ²Ų*Œ²Ž2Œ§Ž2Œ§U^N U^N ė~«œė~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£i€õTi€õTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš"Ež"Ežż×ü¤ż×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų7”Ž 7”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ļ_žBļ_žB@ChG@ChG*,I*,Ių`?Hų`?HČOÕDČOÕDØd?Ød?ą&,7ą&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFå€čä€čäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2–šõ–šõC†JC†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĀ…;ģĀ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEsHsHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6šs*šs*å£å£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™Ž_T—Ž_T—ä Q˜ä Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĪ–ŁĪ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1A÷R÷Rš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś½™NŪ½™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜::=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč<€ P€ PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$ō›¢ō›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńó 0ōó 0ō„•ū÷„•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58 C®) C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĮFŅ2ĮFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČńŒD²ŅŒD²ŅŽä·Žä·C•k£C•k£Z•Z•„r@Ž„r@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘭@ø¦­@ø¦"œ‹ŗ"œ‹ŗlm×Ólm×ӑMŁš‘MŁš’čŲ’čŲ©*©*‹ŖŚA‹ŖŚA>’ŚR>’ŚRć Ē]ć Ē]L¾}cL¾}cIJfIJfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ+÷P+÷P³ņA³ņA+‘-+‘-HØHØ‘*ž‘*ž]Ję]Ję-ņŠ-ņŠéšæéšædђ²dђ²ŽS ŖŽS ŖšMĖ„šMĖ„P©„P©„ü^ͧü^ͧOļµ­Oļµ­œ…Ó¶œ…Ó¶›,óĀ›,óĀøhÆŃøhÆŃɵ6āɵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+@Ģ}2@Ģ}2ĀČģ6ĀČģ6$¦«8$¦«8Ķ)ō7Ķ)ō7Źé5Źé5½*90½*90šĖÕ)šĖÕ)­AA"­AA"HoHo5y¾5y¾±ó ±ó ųČųČT*¦żT*¦ż†£Äł†£ÄłxÉ­÷xÉ­÷’G0÷’G0÷\ĒIų\ĒIųźśźś‘g“ż‘g“ża¦Ėa¦ĖK2K2ĮčĮ虣™ŁC¤ C¤ ÄkÄkœĶœĶØ!Ø!ėłėłØ_ūØ_ūŸÄļŸÄļÄńÄńēŠęēŠęVēVēz:Žz:ŽżŻżŻłÕłÕUŌUŌćĪćΘĖ˜Ė?SĘ?SĘ%,Ć%,èྨ྽/»½/»N§·N§·–³–³¤°¤°s[¬s[¬Õ©Õ©{„{„,:£,:£EļžEļž²Óœ²Óœį±˜į±˜³¢–³¢–•¼’•¼’]ؐ]ؐE E ³åгåŠK’‡K’‡Z[…Z[…¶R‚¶R‚i €i €\F}\F}UļzUļzßixßixņ vņ v£ŗs£ŗs‰]q‰]q±6o±6oūįlūįl›Üj›ÜjŽ–hŽ–hJ«fJ«f«yd«ydŲ”bŲ”bӇ`Ӈ`ræ^ræ^å¾\å¾\D[D[”Y”YalWalW’žU’žUĀłSĀłS2DR2DRBŖPBŖP§ O§ O |M |MųšKųšKoJoJéõHéõH¶G¶GYFYF±D±D>WC>WCjžAjžA˜±@˜±@nf?nf?o&>o&>¤č<¤č<Ļ“;Ļ“;óƒ:óƒ:Ę[9Ę[9T78T78g7g7Ļ6Ļ6Ēļ4Ēļ4yā3yā3Ū2Ū2uŲ1uŲ18Ū08Ū0ķā/ķā/•ļ.•ļ...I-I-.2,.2,Q+Q+uu*uu*«)«)5Ź(5Ź(éś'éś'Ą/'Ą/'›h&›h&m„%m„%ę$ę$œ*$œ*$Ńr#Ńr#ƾ"ƾ"""a!a!o· o· . . 7n7n€Ī€Īņ1ņ1‚˜‚˜²n²n5Ž5Ž˜P˜PÉÅÉż=¼=bøbøÆ5Æ5’µ’µ88ī¼ī¼NDNDĪĪ.Z.Z–č–čByBy" " -”-”W8W8—Ń—Ńßlßl) ) h©h©“J“Jžķžķ…’…’7979±į±įē‹ē‹Ņ7Ņ7fåfå ” ”rErEŁ÷Ł÷ǫǫ:a:a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ­? ­? m m lÄ lÄ Ÿˆ Ÿˆ N N   BÜ BÜ „ „ śn śn ō9 ō9 ż ż Ó Ó ” ” 0p 0p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį7¹7¹ų‘ų‘€k€kĢEĢEÕ Õ üüŁŁN¶N¶2”2”ÄrÄr’Q’Qį1į1ee‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĀĀž÷ž÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ū%ū%åå=ü=üüēüē"Ō"Ō­Ą­Ąœ­œ­źšźš™ˆ™ˆ¤v¤v e eŹSŹSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹3«3«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QōEōEf:f://ś#ś#ppżż¾ł¾ł“ļ“ļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvónónŖgŖg†`†`‡Y‡Y¬R¬RņKņK[E[Eē>ē>‘8‘8^2^2H,H,R&R&{ { ĮĮ##££? ? ööĒ’Ē’µśµśŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ-Į-ĮX½X½–¹–¹ēµēµK²K²Į®Į®H«H«ā§ā§¤¤H”H”žžņšņšŽ—Ž—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ\\Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĮgĮg³e³e®c®c³a³aĆ_Ć_Ü]Ü]’[’[+Z+ZaXaX V VčTčT8S8S’Q’QóOóO]N]NĻLĻLHKHKŹIŹISHSHćFćF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ü8Ü8»7»7Ÿ6Ÿ6Š5Š5z4z4o3o3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***@)@)o(o(”'”'Ł&Ł&&&R%R%”$”$Ś#Ś#####q"q"Ā!Ā!!!n n ÉÉ((ŠŠļļVVĮĮ//ŸŸ‰‰żż~~‡‡››((··IIÜÜss  „„AAßß""ÅÅkk»»ggĮĮrr##ÖÖŠŠAAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   X X # # š š ¼ ¼ Œ Œ Z Z + + żżĻĻ¢¢vvKK""ųųŠŠ§§ZZ55ķķŹŹ§§„„ddCC$$ēēĒĒ««ŽŽrrUU;;  ģģŌŌ»»££‹‹tt^^HH11óóßßĖĖøø„„’’€€bb\\33AA))ŽŽ  ĘĘßßĶĶ‹‹ųų©©ÆÆœ’’’œ’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))mö’’mö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEż®’’ż®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›Ž}’’Ž}’’2e2e-Ę’’-Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’śģśģlĀū’lĀū’‚‚ŚPū’ŚPū’€Ē€Ēž?ū’ž?ū’?›?›J±ū’J±ū’CŻC݇Āü’‡Āü’érérVŠž’VŠž’eJeJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’Ą`Ą`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’~.~.4.ę’4.ę’ĄvĄvčą’čą’{¾!{¾!j‹Ū’j‹Ū’äa'äa'T.Õ’T.Õ’†/†/b€Č’b€Č’’—I’—I-w’-w’©0©0ĻXĀĻXĀցZ8ցZ8Ż–&KŻ–&K©j“W©j“WėŽå]ėŽå]ŲżbŲżbi Gci Gc+Ć„b+Ć„b¾)*_¾)*_^ŚąY^ŚąYŁŖQŁŖQy ’Dy ’D3«į03«į0£€ķ£€ķŽéZūŽéZūĀiŽĀiŽ6ĖĆ6ĖĆ_ŲŻ­_ŲŻ­mŖµmŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘…ż™…ż™ž‰¦ž‰¦¢²Ź¶¢²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāēķ!ūēķ!ūņŘņŘĄM'ĄM'­„»7­„»7'ÜŃC'ÜŃCó ŅKó ŅK_lP_lPķš`Qķš`QŠóöOŠóöOéLéL5 ‘E5 ‘EMa4—y>4¶&m6¶&m6āŽX6āŽX6O?Ė3O?Ė3Ē!•.Ē!•.†&†&®®LƒŃ LƒŃ ”Īż ”Īż³p`ģ³p`ģ Ä„Ś Ä„Ś÷˜åÉ÷˜åɒ;»’;»Zo…ÆZo…Æ&§&§Ļ˜A¢Ļ˜A¢½Ļ± ½Ļ± 7 ‚¢7 ‚¢ ʧ ʧG’±G’±‘'v¾‘'v¾ØH[ŠØH[Š =ę =ę”>ž”>žņ؊ņ؊Ą5/Ą5/šMöBšMöB”-żQ”-żQŁĻ[ŁĻ[öÕ*aöÕ*aˆd½cˆd½cšIdšIdŃ'œbŃ'œb+½^+½^‚öcX‚öcXfsˆMfsˆMƒ’ę<ƒ’ę<®k&®k&gOš gOš ÷tģ÷tģ°.:ϰ.:ĻżRµżRµcƍ”cƍ”{‚“{‚“*VŁ*VŁÉöÉöŠšŠš+ėĖ+ėĖ4Ė64Ė6łŗĮ—łŗĮ—’ķ„’ķ„*žOŗ*žOŗA†—ŌA†—Ōįō×ņįō×ņČ”+Č”+3$/3$/āŸÅFāŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hėż[dėż[d©«+^©«+^ÖrTÖrTDęEDęEH¶Ņ/H¶Ņ/Ķ;ōĶ;ōrņ¼łrņ¼ł•„ Ž•„ ŽelÅelÅ;$¬±;$¬±Ķ{u£Ķ{u£…š…š·Y–·Y–®gB•®gB•A“±—A“±—Ū fŪ fqOʦqOĘ¦ŠŚ#“ŠŚ#“nŹtÅnŹtÅ«ūŁ«ūŁ<³gš<³gšĖ¼ō˼ōF:éF:é*#Ų-*#Ų-K‰ö;K‰ö;āö Fāö FjN\LjN\L"S^O"S^O›Ó„O›Ó„OµļMµļM2 H2 H/xµ@/xµ@mń6mń6Ć”'+Ć”'+ŽńŽńŅzŅz~“~“ń+öń+öy(—ėy(—ėH~LćH~Lć܆ŻÜ†ŻūMŚūMŚFeŁFeŁ–ēŚ–ēŚv\(Žv\(Ž7×Üā7×ÜāŠ‰čŠ‰čŃ{ØīŃ{Øī…‘³ō…‘³ōa..śa..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cž¶JW¶JWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ņ£µ@Ņ£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”Ņ«ē Į«ē ĮŲ*Œ²Ų*Œ²ß2Œ§ß2Œ§U^N U^N ģ~«œģ~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£iõTiõTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš"Ež"Ežż×ü¤ż×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų8”Ž 8”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ļ_žBļ_žB@ChG@ChG*,I*,Ių`?Hų`?HÉOÕDÉOÕDØd?Ød?į&,7į&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFå€čä€čäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2–šõ–šõD†JD†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĀ…;ģĀ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEsHsHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6›s*›s*å£å£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™Ž_T—Ž_T—ä Q˜ä Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĪ–ŁĪ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1A÷R÷Rš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś¾™NŪ¾™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜;;=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč<€ P€ PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$ō›¢ō›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńņ 0ōņ 0ō¦•ū÷¦•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58 C®) C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĮFŅ2ĮFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČńŒD²ŅŒD²ŅŽä·Žä·C•k£C•k£Z•Z•„r@Ž„r@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘭@ø¦­@ø¦"œ‹ŗ"œ‹ŗlm×Ólm×ӑMŁš‘MŁš’čŲ’čŲ©*©*‹ŖŚA‹ŖŚA>’ŚR>’ŚRć Ē]ć Ē]L¾}cL¾}cIJfIJfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ+÷P+÷P³ņA³ņA+‘-+‘-LØLØ*ž*ž]Ję]Ję-ņŠ-ņŠēšæēšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„’^ͧ’^ͧMļµ­Mļµ­Ÿ…Ó¶Ÿ…Ó¶š,óš,ó¹hÆŃ¹hÆŃȵ6āȵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+AĢ}2AĢ}2ĮČģ6ĮČģ6%¦«8%¦«8Ė)ō7Ė)ō7Ėé5Ėé5»*90»*90œĖÕ)œĖÕ)¬AA"¬AA"JoJo3y¾3y¾±ó ±ó öČöČV*¦żV*¦ż…£Äł…£ÄłzÉ­÷zÉ­÷‘G0÷‘G0÷^ĒIų^ĒIųźśźś“g“ż“g“ż_¦Ė_¦ĖM2M2ĄčĄčšŁšŁB¤ B¤ ĘkĘk›Ķ›Ķ©!©!źłźł©_ū©_ūžÄļžÄļÅńÅńęŠęęŠęWēWēy:Žy:ŽžŻžŻłÕłÕUŌUŌāĪāĪ™Ė™Ė>SĘ>SĘ%,Ć%,èྨ྽/»½/»N§·N§·–³–³¤°¤°s[¬s[¬Õ©Õ©{„{„+:£+:£FļžFļž²Óœ²Óœį±˜į±˜³¢–³¢–•¼’•¼’]ؐ]ؐE E ³åгåŠK’‡K’‡Z[…Z[…¶R‚¶R‚i €i €\F}\F}UļzUļzßixßixņ vņ v£ŗs£ŗs‰]q‰]q±6o±6oūįlūįl›Üj›ÜjŽ–hŽ–hJ«fJ«f«yd«ydŲ”bŲ”bӇ`Ӈ`ræ^ræ^å¾\å¾\C[C[”Y”Y`lW`lW’žU’žUĀłSĀłS3DR3DRAŖPAŖPØ OØ O |M |MłšKłšKŽoJŽoJéõHéõH¶G¶GZFZF±D±D?WC?WCjžAjžA™±@™±@nf?nf?p&>p&>£č<£č<Ļ“;Ļ“;ņƒ:ņƒ:Ę[9Ę[9T78T78h7h7Ī6Ī6Čļ4Čļ4xā3xā3Ū2Ū2tŲ1tŲ19Ū09Ū0ģā/ģā/–ļ.–ļ...J-J-.2,.2,Q+Q+tu*tu*¬)¬)5Ź(5Ź(éś'éś'æ/'æ/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#®¾"®¾"""a!a!o· o· - - 8n8n€Ī€Īó1ó1˜˜²n²n6Ž6Ž—P—PÉÅÉż=¼=bøbøÆ5Æ5’µ’µ88ļ¼ļ¼MDMDĪĪ.Z.Z—č—čByBy" " -”-”X8X8—Ń—Ńąląl) ) h©h©“J“JŸķŸķ„’„’7979±į±įē‹ē‹Ņ7Ņ7gågå ” ”sEsEŲ÷Ų÷ȫȫ9a9a''‡Š ‡Š SŠ SŠ „E „E   ųæ ųæ . . ­? ­? n n lÄ lÄ  ˆ  ˆ N N   AÜ AÜ „ „ łn łn ō9 ō9 ż ż Ó Ó ” ” 1p 1p :@ :@ 7 7 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qą1ą1ff‹ó‹óLÕLÕØ·Ø·šššš ~ ~6b6bŚFŚF , ,ĮĮ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŃgŃgnQnQ};};ś%ś%ęę=ü=üüēüē"Ō"Ō®Ą®Ąœ­œ­ėšėš™ˆ™ˆ¤v¤v e eŹSŹSįBįBN2N2""$$‰‰=ó=ó@ä@äŽÕŽÕ'Ē'Ē ¹ ¹2«2«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QōEōEf:f://ś#ś#ppżżæłæł“ļ“ļŻåŻå9Ü9ÜÄŅÄҁɁÉkĄkĄ…·…·Ė®Ė®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvónónŖgŖg†`†`‡Y‡Y¬R¬RņKņK\E\Eę>ę>’8’8^2^2H,H,R&R&{ { ĮĮ##££? ? õõČ’Č’“ś“śŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ.Į.ĮX½X½–¹–¹ēµēµK²K²Ą®Ą®I«I«ā§ā§¤¤H”H”žžņšņšß—ß—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ]]Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĮgĮg³e³e®c®c“a“aĆ_Ć_Ż]Ż]’[’[+Z+ZaXaX”V”VēTēT8S8S’Q’QóOóO\N\NĻLĻLHKHKŹIŹISHSHäFäF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ū8Ū8»7»7Ÿ6Ÿ6Š5Š5z4z4o3o3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***A)A)o(o(”'”'Ų&Ų&&&Q%Q%”$”$Ś#Ś#$#$#p"p"Ć!Ć!!!o o ÉÉ))‰‰ļļVVĮĮ//ŸŸ‰‰żż~~‡‡››((øøIIÜÜss  „„AAßß""ÅÅkk»»ggĀĀrr##ÖÖ‹‹AAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   W W # # š š ¼ ¼ Œ Œ Z Z + + żżĻĻ¢¢vvKK!!ųųŠŠ§§ZZ55ģģŹŹ§§……ddCC$$ēēĒĒ««ŽŽrrVV;;  ķķŌŌ»»££‹‹tt^^GG11ņņßßĖĖøø„„’’€€cc\\33@@))ŽŽ  ĘĘßßĶĶŠŠ÷÷©©ÆÆ›’’’›’’’//“ż’’“ż’’  jū’’jū’’T T ł’’ł’’d d ÷’’÷’’© © Oö’’Oö’’= = Ę÷’’Ę÷’’  ©ü’’©ü’’ĒĒ))nö’’nö’’<<7ä’’7ä’’T*T*Ģ’’Ģ’’EEž®’’ž®’’¹c¹c>’’>’’bƒbƒØp’’Øp’’dŸdŸ–X’’–X’’­±­±¶M’’¶M’’³³ŠW’’ŠW’’š›š›}’’}’’2e2e.Ę’’.Ę’’t t m5m5f†’’f†’’ĖĖ%Žž’%Žž’ԃԃ_ž’_ž’nSnSCż’Cż’ ) )ķrü’ķrü’ūģūģlĀū’lĀū’‚‚ŁPū’ŁPū’ĒĒž?ū’ž?ū’@›@›I±ū’I±ū’CŻC݆Āü’†Āü’érérVŠž’VŠž’fJfJģģĀ]ż’Ā]ż’~a~aó“ł’ó“ł’Ą`Ą`—fõ’—fõ’õ õ į–š’į–š’sōsōņsė’ņsė’~.~.4.ę’4.ę’ĄvĄvčą’čą’{¾!{¾!j‹Ū’j‹Ū’äa'äa'T.Õ’T.Õ’†/†/b€Č’b€Č’’—I’—I-w’-w’©0©0ĻXĀĻXĀցZ8ցZ8Ż–&KŻ–&K©j“W©j“WėŽå]ėŽå]ŲżbŲżbi Gci Gc+Ć„b+Ć„b¾)*_¾)*_^ŚąY^ŚąYŁŖQŁŖQy ’Dy ’D3«į03«į0£€ķ£€ķŽéZūŽéZūĀiŽĀiŽ6ĖĆ6ĖĆ_ŲŻ­_ŲŻ­mŖµmŖµE6“E6“Ī•ŽĪ•Ž*ó*óžz÷žz÷Ļ‰³‘ω³‘…ż™…ż™ž‰¦ž‰¦¢²Ź¶¢²Ź¶’ĢLĖ’ĢLĖņ•Ļāņ•Ļāēķ!ūēķ!ūńŘńŘĮM'ĮM'¬„»7¬„»7'ÜŃC'ÜŃCó ŅKó ŅK_lP_lPķš`Qķš`QŠóöOŠóöOčLčL5 ‘E5 ‘ELa4–y>4·&m6·&m6įŽX6įŽX6P?Ė3P?Ė3Ę!•.Ę!•.†&†&­­MƒŃ MƒŃ ”Īż ”Īż“p`ģ“p`ģ Ä„Ś Ä„Śų˜åÉų˜åɑ;»‘;»[o…Æ[o…Æ&§&§Š˜A¢Š˜A¢¼Ļ± ¼Ļ± 8 ‚¢8 ‚¢ ʧ ʧI’±I’±'v¾'v¾ŖH[ŠŖH[Š=ę=ę¢>ž¢>žń؊ń؊Į5/Į5/˜MöB˜MöB•-żQ•-żQŁĻ[ŁĻ[ųÕ*aųÕ*a‡d½c‡d½c›Id›IdŠ'œbŠ'œb,½^,½^öcXöcXgsˆMgsˆM‚’ę<‚’ę<°k&°k&fOš fOš ųtģųtģÆ.:ĻÆ.:ĻżRµżRµaƍ”aƍ”|‚“|‚“)VŁ)VŁžÉöžÉö‰š‰š,ėĖ,ėĖ4Ė64Ė6śŗĮ—śŗĮ—‘ķ„‘ķ„+žOŗ+žOŗ@†—Ō@†—Ōāō×ņāō×ņĒ”+Ē”+4$/4$/įŸÅFįŸÅF¶) W¶) W“«¼a“«¼aÕźfÕźf#©Ųi#©ŲiVŻQjVŻQjŗ‘hŗ‘hźż[dźż[d©«+^©«+^ÖrTÖrTEęEEęEG¶Ņ/G¶Ņ/Ī;ōĪ;ōqņ¼łqņ¼ł–„ Ž–„ ŽclÅclÅ=$¬±=$¬±Ģ{u£Ģ{u£…š…šµY–µY–°gB•°gB•>“±—>“±—Ż fŻ foOʦoOʦӌ#“ÓŚ#“lŹtÅlŹtÅ«ūŁ«ūŁ:³gš:³gšĶ¼ōͼōD:éD:é,#Ų-,#Ų-J‰ö;J‰ö;āö Fāö FkN\LkN\L!S^O!S^OžÓ„OžÓ„O²ļM²ļM2 H2 H+xµ@+xµ@pń6pń6Ä”'+Ä”'+ŽńŽńŅzŅz““ń+öń+öy(—ėy(—ėH~LćH~LćŪ†ŻŪ†ŻüMŚüMŚEeŁEeŁ—ēŚ—ēŚv\(Žv\(Ž8×Üā8×Ü≉艉čŅ{ØīŅ{Øī…‘³ō…‘³ōb..śb..ś[Ā®ž[Ā®žüĻčüĻ莙­Ž™­™Cš™Cš¢ŽĮ¢ŽĮ÷ĆQ÷ĆQVźüVźüó°ķųó°ķųØĢōØĢōŲłńŲłńČlīČlīó|Aģó|Aģ<5ģ<5ģ"ˆøķ"ˆøķČ5XńČ5XńmóömóöĖ‹cžĖ‹cž¶JW¶JWĀīRĀīRCł“Cł“pĪ%pĪ%ó8ļ.ó8ļ.@‰6@‰6«.<«.<夔?夔?Ń£µ@Ń£µ@™M?™M?Ī$/;Ī$/;O^$4O^$4—Ćź)—Ćź)eu}eu}Ź Ź KķŠłKķŠłFĮęåFĮęåx»”Ņx»”ŅŖē ĮŖē ĮŲ*Œ²Ų*Œ²Ž2Œ§Ž2Œ§U^N U^N ė~«œė~«œ#ædœ#ædœż€{Ÿż€{Ÿæ0¦æ0¦•_±•_±X ¢ĄX ¢ĄķõŁŌķõŁŌE“ŻģE“Żģ¾a#¾a#Lv3!Lv3!^9Ć8^9Ć8ž„Kž„KxsYxsY†xö`†xö`9µ#e9µ#eēgēg~ģf~ģf¬ķ`d¬ķ`dŌ\°_Ō\°_9W?X9W?X™sŃK™sŃKŗ9ŗ9sÅ1 sÅ1 HaųHaųä!2ää!2ä#ēCĒ#ēCĒfLĪ®fLήаϜаϜbõbõŖW²ŖW²äœžäœžW[ķW[ķš¬Óš¬Ó啑啑žkAœžkAœ¢ģ¬¢ģ¬Æ‡ĀƇĀW¶ ŽW¶ ށÜüÜüčÉičÉiłÄ6łÄ6-:L-:L„”żZ„”żZ„źTc„źTc;Śg;ŚgņØ£iņØ£i€õTi€õTi"¹Įf"¹ĮfĪ ÷aĪ ÷aO$ŽZO$ŽZķGOķGOŽ»">Ž»">&ŽÄ'&ŽÄ'.üČ .üČ ć†ņć†ņ¶øŖŲ¶øŖŲ1ōTĀ1ōTĀę°ę°)·¬¤)·¬¤RROšOšB­jšB­jš"Ež"Ežż×ü¤ż×ü¤ƒŗ•ƃŗ•ÆL¶ß½L¶ß½.zĻ.zϵąu浹uć#–sų#–sų7”Ž 7”Ž H†JH†JU‹Ø.U‹Ø.Čru:Čru:ļ_žBļ_žB@ChG@ChG*,I*,Ių`?Hų`?HČOÕDČOÕDØd?Ød?ą&,7ą&,7²Įf-²Įf-øĀ@"øĀ@"ÅmdÅmdŽR‘ ŽR‘ ac‡’ac‡’&éõ&éõ*].ī*].īN¶›čN¶›čXßFåXßFå€čä€čäšĪéäšĪéäŽń^ēŽń^ēISėISė?&žļ?&žļĶuōĶuōłł*x(ż*x(żæ!2æ!2–šõ–šõC†JC†Jc&c&@Ÿž@ŸžØčśØčś&÷Qö&÷QöĻöDńĻöDńĀ…;ģĀ…;ģ\é“ē\é“ēā\/äā\/ähāh⯜ŃᯜŃįEm›ćEm›ć”£ē”£ēRżļķRżļķz–eöz–eöy²y²Ģ›U Ģ›U ^Z›^Z›‹·$‹·$ŹWŚ/ŹWŚ/~æT9~æT9‘«@‘«@åœEåœEsHsHÓHÓH{œME{œMEbt³?bt³?óśŽ6óśŽ6šs*šs*å£å£e0µe0µ;hŹņ;hŹņSŻSŻ€­ɀ­Éc\·c\· Sh© Sh©æÓ†ŸæÓ†Ÿ[—¦™[—¦™Ž_T—Ž_T—ä Q˜ä Q˜]^Ÿœ]^ŸœwǤwǤj*q±j*q±qĆqĆĪ–ŁĪ–ŁīōĆóīōĆó#w|#w|J‰*J‰*“1A“1A÷R÷Rš) ^š) ^“€>d“€>dn8»gn8»gśiśiĀ&hĀ&hŽ®dŽ®dŲ._Ų._„†V„†VČĀJHČĀJH­ŚR3­ŚR3Ū!”Ū!”2ōś2ōś½™NŪ½™NۃŒ*惌*æŚ£žØŚ£žØČc˜Čc˜::=Ā=ĀĢ¹ŽĢ¹ŽłŽÓłŽÓ0HdŽ0HdŽ µ” µ”†»”†»”čNвčNвłYėŹłYėŹŹ­`ēŹ­`ē†Œ†Œ÷ z#÷ z# lč< lč<€ P€ PŒ=Ž\Œ=Ž\ ‚¾c ‚¾c[R+g[R+g_Ph_Ph2WCg2WCg2ššc2ššc‘.š^‘.š^‚‹ V‚‹ VkČ¢HkČ¢HÅ6Å6eŽ$eŽ$ō›¢ō›¢BPŁėBPŁėģs$Ōģs$Ō€Ü8Ą€Ü8Ąc–±c–±(–Ʀ(–Ʀāiš āiš ƒĄ÷žƒĄ÷ž#sx #sx ŻÓ?„ŻÓ?„-zh­-zh­M=õøM=õøe»Ēe»ĒÆĀŁÆĀŁųėųėø’ø’ Œ ŒNAŽ NAŽ ƒÆ-ƒÆ-,f97,f97ŹŠ‚=ŹŠ‚=ų6Å@ų6Å@1HA1HAĶJO?ĶJO?N;N;„źĪ4„źĪ4:Ō,:Ō,Փ#Փ#ß2œß2œ­“­“ÕØÕØĻUĖżĻUĖż" ÷" ÷\ )ņ\ )ņBp8ļBp8ļ—30ī—30ī4įī4įīwĪńwĪńó 0ōó 0ō„•ū÷„•ū÷¹įźū¹įźūęU‡’ęU‡’@Æd@Æd„$*„$*{Ž–{Ž–ųN†ųN†ž•ńž•ń<Ļńü<Ļńü*Ą÷*Ą÷-+µń-+µńšŒCėšŒCė½ļä½ļäŁKDߣKDßļuÅŚļuÅŚµ”č×µ”č׈ž ׈ž ×Z3ŲZ3Ų§ĀnܧĀnÜÉęóāÉęóā—¤żė—¤żėüĆK÷üĆK÷‰Š\‰Š\E©vE©vļM¬ ļM¬ ,ö.,ö.(E¬9(E¬9c(ūBc(ūBĮ¢IĮ¢I} œM} œM*õłN*õłNżČMżČM²ÅŪI²ÅŪIOūÓBOūÓB=58=58 C®) C®)Ī\Ī\**p ’źp ’źK(ŌK(ŌÖG_æÖG_æģ‘®ģ‘®Ł7”Ł7”•æ˜•æ˜ĖN”ĖN”Ż:E“Ż:E“øi•øi•ßGåšßGåš}‚¤}‚¤wš’²wš’²=ŽĘ=ŽĘ»Œß»Œß ċū ċū¤9=¤9=ĮFŅ2ĮFŅ2«½©H«½©HŠ8fXŠ8fX·ćĪa·ćĪaAFÜfAFÜfēĆĮiēĆĮi$Lj$LjĀ—ŒhĀ—ŒhÅrOdÅrOdĘ ū]Ę ū]ąåģSąåģS·¦C·¦C¼Ä›,¼Ä›,®J®JŗČńŗČńŒD²ŅŒD²ŅŽä·Žä·C•k£C•k£Z•Z•„r@Ž„r@Ž‚ųŚ‚ųŚL¢ŽL¢Ž~śø~śø¶õ ¶õ Ää˜Ä䘭@ø¦­@ø¦"œ‹ŗ"œ‹ŗlm×Ólm×ӑMŁš‘MŁš’čŲ’čŲ©*©*‹ŖŚA‹ŖŚA>’ŚR>’ŚRć Ē]ć Ē]L¾}cL¾}cIJfIJfśh]fśh]fњdњdS¦`S¦`z/TZz/TZ+÷P+÷P³ņA³ņA+‘-+‘-LØLØ*ž*ž]Ję]Ję-ņŠ-ņŠēšæēšægђ²gђ²ŚS ŖŚS ŖóMĖ„óMĖ„L©„L©„’^ͧ’^ͧMļµ­Mļµ­Ÿ…Ó¶Ÿ…Ó¶š,óš,ó¹hÆŃ¹hÆŃȵ6āȵ6āk„ók„ó•›d•›dƒ,Ėƒ,ĖĄß Ąß É*+É*+AĢ}2AĢ}2ĮČģ6ĮČģ6%¦«8%¦«8Ė)ō7Ė)ō7Ėé5Ėé5»*90»*90œĖÕ)œĖÕ)¬AA"¬AA"JoJo3y¾3y¾±ó ±ó öČöČV*¦żV*¦ż…£Äł…£ÄłzÉ­÷zÉ­÷‘G0÷‘G0÷^ĒIų^ĒIųźśźś“g“ż“g“ż_¦Ė_¦ĖM2M2ĄčĄčšŁšŁB¤ B¤ ĘkĘk›Ķ›Ķ©!©!źłźł©_ū©_ūžÄļžÄļÅńÅńęŠęęŠęWēWēy:Žy:ŽžŻžŻłÕłÕUŌUŌāĪāĪ™Ė™Ė=SĘ=SĘ',Ć',çྦྷ྽/»½/»N§·N§·–³–³¤°¤°r[¬r[¬Õ©Õ©{„{„-:£-:£EļžEļž³Óœ³Óœą±˜ą±˜“¢–“¢–•¼’•¼’]ؐ]ؐD D ³åгåŠK’‡K’‡Z[…Z[…¶R‚¶R‚i €i €\F}\F}UļzUļzßixßixń vń v£ŗs£ŗs‰]q‰]q±6o±6ośįlśįlœÜjœÜjŻ–hŻ–hJ«fJ«fŖydŖydŲ”bŲ”bӇ`Ӈ`ræ^ræ^ä¾\ä¾\D[D[”Y”YalWalWžžUžžUĀłSĀłS2DR2DRBŖPBŖP§ O§ O |M |MųšKųšKoJoJéõHéõH¶G¶GYFYF±D±D>WC>WCjžAjžA™±@™±@nf?nf?p&>p&>£č<£č<Ļ“;Ļ“;óƒ:óƒ:Ę[9Ę[9T78T78h7h7Ī6Ī6Čļ4Čļ4xā3xā3Ū2Ū2tŲ1tŲ19Ū09Ū0ģā/ģā/–ļ.–ļ...J-J-.2,.2,Q+Q+tu*tu*¬)¬)5Ź(5Ź(éś'éś'æ/'æ/'›h&›h&m„%m„%ę$ę$›*$›*$Ńr#Ńr#®¾"®¾"""a!a!o· o· - - 8n8nĪĪó1ó1˜˜±n±n6Ž6Ž—P—PÉÅÉż=¼=bøbø®5®5’µ’µ88ļ¼ļ¼MDMDĪĪ-Z-Z—č—čByBy" " -”-”X8X8–Ń–Ńąląl) ) h©h©“J“JŸķŸķ„’„’8989°į°įč‹č‹Ņ7Ņ7gåg埔Ÿ”sEsEŲ÷Ų÷ȫȫ9a9a''‡Š ‡Š TŠ TŠ „E „E   ųæ ųæ . . ¬? ¬? n n kÄ kÄ  ˆ  ˆ N N ‘ ‘ AÜ AÜ „ „ łn łn ō9 ō9 ü ü Ó Ó ” ” 1p 1p :@ :@ 8 8 $ć$ćśµśµ¶‰¶‰S^S^Ģ3Ģ3  CįCį8¹8¹÷‘÷‘€k€kĖEĖEÖ Ö œüœüŁŁN¶N¶2”2”ÄrÄr’Q’Qą1ą1ffŠóŠóLÕLÕ§·§·šššš ~ ~6b6bŚFŚF , ,ĮĮ’÷’÷¾Ž¾Ž’ŒŽ­½­÷•÷•©~©~ŅgŅgnQnQ};};ś%ś%ęę=ü=üüēüē"Ō"Ō®Ą®Ą›­›­ėšėš™ˆ™ˆ¤v¤v e eŹSŹSįBįBO2O2""$$‰‰=ó=ó@ä@äŽÕŽÕ&Ē&Ē ¹ ¹2«2«££XXQƒQƒ‹v‹vjjĀ]Ā]¼Q¼QóEóEf:f://ś#ś#ppżżæłæł“ļ“ļŻåŻå8Ü8ÜÄŅÄҁɁÉkĄkĄ…·…·Ģ®Ģ®>¦>¦ܝܝ„•„•˜˜³…³…÷}÷}bvbvōnōnŖgŖg†`†`‡Y‡Y¬R¬RņKņK\E\Eę>ę>’8’8^2^2H,H,R&R&{ { ĮĮ##££? ? õõČ’Č’“ś“śŗõŗõŁšŁšģģbēbēŹāŹāJŽJŽąŁąŁÕÕPŃPŃ(Ķ(ĶÉÉÅÅ.Į.ĮX½X½–¹–¹ēµēµK²K²Ą®Ą®H«H«ā§ā§¤¤H”H”žžņšņšŽ—Ž—Ū”Ū”ę‘ę‘*Œ*Œb‰b‰Ø†Ø†ūƒūƒ]]Ė~Ė~F|F|ĻyĻyewewuu³r³rlplp0n0nllÜiÜiĮgĮg³e³e®c®c“a“aĆ_Ć_Ż]Ż]’[’[+Z+ZaXaX V VčTčT8S8S’Q’QóOóO]N]NĻLĻLHKHKŹIŹISHSHćFćF{E{EDDĄBĄBlAlA!@!@Ū>Ū>›=›=b<b</;/;::Ü8Ü8»7»7Ÿ6Ÿ6Š5Š5z4z4o3o3i2i2i1i1o0o0x/x/‡.‡.š-š-³,³,Š+Š+ń*ń***@)@)o(o(”'”'Ł&Ł&&&R%R%”$”$Ś#Ś#####q"q"Ā!Ā!!!n n ÉÉ((ŠŠļļVVĮĮ//ŸŸ‰‰żż~~‡‡››((øøIIÜÜss  „„AAßß""ÅÅkk»»ggĀĀrr##ÖÖ‹‹AAų ų ± ± l l ' ' ä ä £ £ c c $ $ ę ę © © o o 4 4 ū ū Ä Ä   W W # # ļ ļ ½ ½ ‹ ‹ [ [ + + żżĻĻ¢¢vvKK!!ųųĻϧ§ZZ55ģģŹŹ§§……ccDD$$ęęČČ««ŽŽrrVV;;  ķķÓÓ»»££‹‹tt^^HH11óóßßĖĖøø„„’’€€nn]]LL;;++  ūūķķŻŻĪĪĄĄ²²„„——ŠŠ}}qqddXXLL@@55**  ’’õõėėįįŲŲĪĪÅż¼³³««¢¢šš‘‘ŠŠ‚‚zzssllee]]VVOOHHCC;;55//))##  żżųųóóīīźźååįįÜÜŲŲŌŌĻĻĖĖĒĒĆĆææ¼¼··““ÆÆ­­©©§§¢¢  œœ™™––““ŽŽŠŠ‡‡††‚‚||~~ssfenrir/config/sound/default/soundicons.conf000066400000000000000000000030611513650123000214130ustar00rootroot00000000000000# Screen Reader Turned On or Off ScreenReaderOn='ScreenReaderOn.wav' ScreenReaderOff='ScreenReaderOff.wav' # PTY bypass PTYBypass='PTYBypass.wav' # Cancel the current command Cancel='Cancel.wav' # Accept command Accept='Accept.wav' # Bell a sound if the TTY is changed (ctrl + alt +FX) ChangeTTY='ChangeTTY.wav' # Is the first Position on the line StartOfLine='StartOfLine.wav' # Is the last position of the Line EndOfLine='EndOfLine.wav' # barrier was detected BarrierFound='barrier.wav' # barrier mode starts BarrierStart='barrier_start.wav' # barrier mode ends BarrierEnd='barrier_end.wav' # the Line is empty EmptyLine='EmptyLine.wav' # Is the first line on the screen. StartOfScreen='StartOfScreen.wav' # Is the last line on the screen EndOfScreen='EndOfScreen.wav' # The content has changed ContentChanged='ContentChanged.wav' # Speech has turned On or Off SpeechOn='SpeechOn.wav' SpeechOff='SpeechOff.wav' # SoundIcons has turned On or Off SoundOn='SoundOn.wav' SoundOff='SoundOff.wav' # Set beginnig mark PlaceStartMark='PlaceStartMark.wav' # Set end mark PlaceEndMark='PlaceEndMark.wav' # Copied to clipboard CopyToClipboard='CopyToClipboard.wav' # Pasted on the screen PasteClipboardOnScreen='PasteClipboardOnScreen.wav' # An error accoured while speech output or reading the screen ErrorSpeech='ErrorSpeech.wav' ErrorScreen='ErrorScreen.wav' # If you cursor over an text that has attributs (like color) HasAttributes='has_attribute.wav' # missspelled indicator mispell='mispell.wav' # the for capital letter capital='Caps.wav' # general announcement announce="Announce.wav" fenrir/config/sound/template/000077500000000000000000000000001513650123000165475ustar00rootroot00000000000000fenrir/config/sound/template/soundicons.conf000066400000000000000000000024361513650123000216070ustar00rootroot00000000000000# Screen Reader Turned On or Off ScreenReaderOn='' ScreenReaderOff='' # PTY bypass PTYBypass='' # Cancel the current command Cancel='' # Accept command Accept='' # Bell a sound if the TTY is changed (ctrl + alt +FX) ChangeTTY='' # Is the first Position on the line StartOfLine='' # Is the last position of the Line EndOfLine='' # barrier was detected BarrierFound='' # barrier mode starts BarrierStart='' # barrier mode ends BarrierEnd='' # the Line is empty EmptyLine='' # Is the first line on the screen. StartOfScreen='' # Is the last line on the screen EndOfScreen='' # The content has changed ContentChanged='' # Speech has turned On or Off SpeechOn='' SpeechOff='' # Braille has turned On or Off BrailleOn='' BrailleOff='' # SoundIcons has turned On or Off SoundIconsOn='' SoundIconsOff='' # Set beginnig mark for copy to clipboard PlaceStartCopyMark='' # Set end mark for copy to clipboard PlaceEndCopyMark='' # Copied to clipboard CopyToClipboard='' # Pasted on the screen PasedClipboardOnScreen='' # An error accoured while speech or braille output or reading the screen ErrorSpeech='' ErrorBraille='' ErrorScreen='' # If you cursor over an text that has attributs (like color) HasAttributes='' # misspelled indicator mispell='' # the for capital letter: capital='' # general announcement announce="" fenrir/docs/000077500000000000000000000000001513650123000132675ustar00rootroot00000000000000fenrir/docs/Howto Configure Pulse Systemwide.txt000066400000000000000000000001461513650123000222220ustar00rootroot00000000000000https://rudd-o.com/linux-and-free-software/how-to-make-pulseaudio-run-once-at-boot-for-all-your-users fenrir/docs/create_manpage.sh000077500000000000000000000004001513650123000165530ustar00rootroot00000000000000#!/usr/bin/env bash # needs pandoc and php installed # remove old files rm fenrir.1 rm user.md # convert to markdown php DokuWiki-to-Markdown-Converter/convert.php user.txt # convert markdown to manpage pandoc user.md -f markdown -t man -s -o fenrir.1 fenrir/docs/development.txt000066400000000000000000000221201513650123000163470ustar00rootroot00000000000000# Fenrir Development Guide This document provides information for developers who want to contribute to Fenrir or understand its architecture. ## Project Structure Fenrir follows a modular, driver-based architecture: ``` src/fenrirscreenreader/ ā”œā”€ā”€ core/ # Core system modules │ ā”œā”€ā”€ fenrirManager.py # Main application manager │ ā”œā”€ā”€ screenManager.py # Screen handling │ ā”œā”€ā”€ inputManager.py # Input handling │ ā”œā”€ā”€ outputManager.py # Speech/sound output │ ā”œā”€ā”€ commandManager.py # Command system │ └── settingsManager.py # Configuration management ā”œā”€ā”€ commands/ # Command implementations │ ā”œā”€ā”€ commands/ # User-invoked commands │ ā”œā”€ā”€ onCursorChange/ # Cursor movement hooks │ ā”œā”€ā”€ onScreenUpdate/ # Screen update hooks │ ā”œā”€ā”€ onKeyInput/ # Key input hooks │ └── help/ # Tutorial system ā”œā”€ā”€ drivers/ # Driver implementations │ ā”œā”€ā”€ inputDriver/ # Input drivers (evdev, pty, atspi) │ ā”œā”€ā”€ screenDriver/ # Screen drivers (vcsa, pty) │ ā”œā”€ā”€ speechDriver/ # Speech drivers (speechd, generic) │ └── soundDriver/ # Sound drivers (generic, gstreamer) └── utils/ # Utility modules ``` ## Core Architecture ### Driver System Fenrir uses a pluggable driver architecture: 1. **Input Drivers**: Capture keyboard input - evdevDriver: Linux evdev (recommended) - ptyDriver: Terminal emulation - atspiDriver: AT-SPI for desktop 2. **Screen Drivers**: Read screen content - vcsaDriver: Linux VCSA devices - ptyDriver: Terminal emulation 3. **Speech Drivers**: Text-to-speech output - speechdDriver: Speech-dispatcher - genericDriver: Command-line TTS 4. **Sound Drivers**: Audio output - genericDriver: Sox-based - gstreamerDriver: GStreamer 5. **Remote Drivers**: Remote control interfaces - unixDriver: Unix socket control - tcpDriver: TCP socket control ### Command System Commands are Python modules that implement specific functionality: ```python class command(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def getDescription(self): return _('Command description') def run(self): # Command implementation pass ``` ### Event Hooks Fenrir supports various event hooks: - **onCursorChange**: Triggered when cursor moves - **onScreenUpdate**: Triggered on screen content changes - **onKeyInput**: Triggered on key presses - **onByteInput**: Triggered on byte-level input - **onScreenChanged**: Triggered when switching screens ## Development Setup ### Requirements - Python 3.6+ - python3-evdev - python3-pyudev - speech-dispatcher - sox ### Getting Started ```bash # Clone repository git clone https://git.stormux.org/storm/fenrir.git cd fenrir # Install dependencies sudo pip3 install -r requirements.txt # Run from source cd src/ sudo ./fenrir -f -d ``` ### Testing ```bash # Run in debug mode sudo ./fenrir -f -d -p # Debug output goes to: # - Console (with -p flag) # - /var/log/fenrir.log ``` ## Creating Commands ### Basic Command Create a file in `src/fenrirscreenreader/commands/commands/`: ```python from fenrirscreenreader.core import debug class command(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def getDescription(self): return _('My custom command') def run(self): # Get current text text = self.env['screen']['newContentText'] # Speak something self.env['runtime']['outputManager'].presentText('Hello World') # Play sound self.env['runtime']['outputManager'].playSoundIcon('Accept') ``` ### Key Bindings Add key bindings in keyboard layout files: `config/keyboard/desktop.conf` or `config/keyboard/laptop.conf` ```ini [KEY_CTRL]#[KEY_ALT]#[KEY_H]=my_command ``` ### Event Hooks Create event handlers in appropriate directories: ```python # onCursorChange/my_hook.py class command(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def getDescription(self): return _('My cursor change handler') def run(self): if self.env['runtime']['cursorManager'].isCursorHorizontalMove(): # Handle horizontal cursor movement pass ``` ## Creating Drivers ### Driver Template ```python class driver(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass # Driver-specific methods... ``` ### Input Driver Implement these methods: - `getInputEvent()`: Return input events - `writeEventBuffer()`: Handle output events - `grabDevices()`: Take exclusive control - `releaseDevices()`: Release control ### Screen Driver Implement these methods: - `getCurrScreen()`: Get current screen content - `getSessionInformation()`: Get session info ### Speech Driver Implement these methods: - `speak()`: Speak text - `cancel()`: Stop speech - `setCallback()`: Set callback functions ### Remote Driver Implement these methods: - `initialize()`: Setup socket/connection - `watchDog()`: Listen for incoming commands - `shutdown()`: Clean up connections #### Remote Driver Example ```python class driver(remoteDriver): def initialize(self, environment): self.env = environment # Start watchdog thread self.env['runtime']['processManager'].addCustomEventThread( self.watchDog, multiprocess=True ) def watchDog(self, active, eventQueue): # Listen for connections and process commands while active.value: # Accept connections # Parse incoming data # Send to event queue eventQueue.put({ "Type": fenrirEventType.RemoteIncomming, "Data": command_text }) ``` ## Configuration ### Settings System Settings are hierarchical: 1. Command-line options (`-o`) 2. Configuration file 3. Hard-coded defaults ### Adding Settings 1. Add default value to `core/settingsData.py` 2. Access via `self.env['runtime']['settingsManager'].getSetting(section, key)` ## Debugging ### Debug Levels - 0: DEACTIVE - 1: ERROR - 2: WARNING - 3: INFO ### Debug Output ```python self.env['runtime']['debug'].writeDebugOut( 'Debug message', debug.debugLevel.INFO ) ``` ### Testing Commands ```bash # Test specific functionality sudo fenrir -f -d -o "general#debugLevel=3" # Test with custom config sudo fenrir -f -s /path/to/test.conf ``` ## Contributing ### Code Style - Follow PEP 8 - Use descriptive variable names - Add docstrings for complex functions - Handle exceptions gracefully ### Testing - Test with different drivers - Test keyboard layouts - Test on different terminals - Verify accessibility features ### Submitting Changes 1. Fork the repository 2. Create feature branch 3. Make changes with clear commit messages 4. Test thoroughly 5. Submit pull request ## API Reference ### Environment Structure The `environment` dict contains all runtime data: ```python environment = { 'runtime': { 'settingsManager': settingsManager, 'commandManager': commandManager, 'screenManager': screenManager, 'inputManager': inputManager, 'outputManager': outputManager, 'debug': debugManager, # ... other managers }, 'screen': { 'newContentText': '', 'oldContentText': '', 'newCursor': {'x': 0, 'y': 0}, 'oldCursor': {'x': 0, 'y': 0}, # ... screen data }, 'general': { 'prevCommand': '', 'currCommand': '', # ... general data } } ``` ### Common Operations #### Speaking Text ```python self.env['runtime']['outputManager'].presentText('Hello') ``` #### Playing Sounds ```python self.env['runtime']['outputManager'].playSoundIcon('Accept') ``` #### Getting Settings ```python rate = self.env['runtime']['settingsManager'].getSetting('speech', 'rate') ``` #### Cursor Information ```python x = self.env['screen']['newCursor']['x'] y = self.env['screen']['newCursor']['y'] ``` #### Screen Content ```python text = self.env['screen']['newContentText'] lines = text.split('\n') current_line = lines[self.env['screen']['newCursor']['y']] ``` ## Maintenance ### Release Process 1. Update version in `fenrirVersion.py` 2. Update changelog 3. Test on multiple systems 4. Tag release 5. Update documentation ### Compatibility - Maintain Python 3.6+ compatibility - Test on multiple Linux distributions - Ensure driver compatibility - Check dependencies ## Resources - **Repository**: https://git.stormux.org/storm/fenrir - **Wiki**: https://git.stormux.org/storm/fenrir/wiki - **Issues**: Use repository issue tracker - **Community**: IRC irc.stormux.org #stormux - **Email**: stormux+subscribe@groups.iofenrir/docs/fenrir.1000066400000000000000000000256421513650123000146470ustar00rootroot00000000000000.TH FENRIR 1 "2025" "Fenrir Screen Reader" "User Commands" .SH NAME fenrir \- A modern, modular console screen reader for Linux .SH SYNOPSIS .B fenrir .RB [ \-h ] .RB [ \-v ] .RB [ \-f ] .RB [ \-s .IR SETTING-FILE ] .RB [ \-o .IR SECTION#SETTING=VALUE;.. ] .RB [ \-d ] .RB [ \-p ] .RB [ \-e ] .RB [ \-E ] .RB [ \-F ] .SH DESCRIPTION Fenrir is a modern, modular, flexible and fast console screen reader written in Python 3. It provides spoken feedback for Linux console applications and supports multiple interface types including TTY, terminal emulators, and desktop environments. Fenrir features a modular driver architecture supporting multiple speech synthesizers, sound systems, input methods, and screen reading techniques. It includes advanced features like review mode, multiple clipboards, spell checking, bookmarks, and configurable key bindings. .SH OPTIONS .TP .BR \-h ", " \-\-help Show help message and exit. .TP .BR \-v ", " \-\-version Show version information and exit. .TP .BR \-f ", " \-\-foreground Run Fenrir in the foreground instead of as a daemon. Useful for debugging and testing. .TP .BR \-s ", " \-\-setting " " \fISETTING-FILE\fR Path to a custom settings file. Default is /etc/fenrir/settings/settings.conf. .TP .BR \-o ", " \-\-options " " \fISECTION#SETTING=VALUE;..\fR Override settings file options. Format: SECTION#SETTING=VALUE;... (case sensitive). Multiple settings can be separated by semicolons. .TP .BR \-d ", " \-\-debug Enable debug mode. Debug information will be logged to /var/log/fenrir.log. .TP .BR \-p ", " \-\-print Print debug messages to screen in addition to logging them. .TP .BR \-e ", " \-\-emulated-pty Use PTY emulation with escape sequences for input. This enables usage in desktop/X11/Wayland environments and terminal emulators. .TP .BR \-E ", " \-\-emulated-evdev Use PTY emulation with evdev for input (single instance mode). .TP .BR \-F ", " \-\-force-all-screens Force Fenrir to respond on all screens, ignoring the ignoreScreen setting. This temporarily overrides screen filtering for the current session. .TP .BR \-i ", " \-I ", " \-\-ignore-screen " \fISCREEN\fR" Ignore specific screen(s). Can be used multiple times to ignore multiple screens. This is equivalent to setting ignoreScreen in the configuration file and will be combined with any existing ignore settings. .SH KEY CONCEPTS .SS Fenrir Key The Fenrir Key is used to invoke screen reader commands. By default, the following keys act as Fenrir Keys: .IP \[bu] 2 Insert .IP \[bu] 2 Keypad Insert .IP \[bu] 2 Meta (Super/Windows key) .SS Keyboard Layouts Fenrir supports two main keyboard layouts: .IP \[bu] 2 .B Desktop Layout \- Uses numeric keypad for navigation (recommended for desktop users) .IP \[bu] 2 .B Laptop Layout \- Alternative bindings for keyboards without numeric keypad .SS Review Mode Fenrir provides a virtual cursor that allows navigation around the screen without changing the text cursor position. This is essential for reviewing content without disrupting your work. .SH BASIC COMMANDS .SS Essential Navigation .TP .B Ctrl Stop speech (shut up) .TP .B Fenrir + H Toggle tutorial mode (interactive help system) .TP .B Fenrir + Q Quit Fenrir .TP .B Fenrir + Keypad 5 Read current screen .TP .B Keypad 8 Read current line .TP .B Keypad 5 Read current word .TP .B Keypad 2 Read current character .TP .B Fenrir + T Announce current time .TP .B Fenrir + S Spell check current word .SS Review Commands (Desktop Layout) .TP .B Keypad 7 Review previous line .TP .B Keypad 9 Review next line .TP .B Keypad 4 Review previous word .TP .B Keypad 6 Review next word .TP .B Keypad 1 Review previous character .TP .B Keypad 3 Review next character .TP .B Fenrir + Keypad dot Exit review mode .SS Clipboard Operations .TP .B Fenrir + C Copy marked text to clipboard .TP .B Fenrir + V Paste clipboard contents .TP .B Fenrir + Shift + C Read current clipboard .TP .B Fenrir + X Set mark (for text selection) .TP .B Fenrir + Shift + X Announce marked text .SH CONFIGURATION .SS Settings File The main configuration file is located at: .IP \[bu] 2 .B /etc/fenrir/settings/settings.conf (system-wide installation) .IP \[bu] 2 .B config/settings/settings.conf (development/git version) .SS Key Sections .TP .B [speech] Configure speech synthesis (rate, pitch, volume, driver) .TP .B [sound] Configure sound output and sound icons .TP .B [keyboard] Configure input driver and keyboard layout .TP .B [screen] Configure screen reading driver and ignored screens .TP .B [general] General settings like punctuation, clipboard, and debug levels .SS Driver Configuration Fenrir uses a modular driver system: .TP .B Speech Drivers: .IP \[bu] 4 speechdDriver - Speech-dispatcher (recommended) .IP \[bu] 4 genericDriver - Command-line TTS (espeak, etc.) .IP \[bu] 4 debugDriver - Debug/testing .TP .B Sound Drivers: .IP \[bu] 4 genericDriver - Sox-based (default) .IP \[bu] 4 gstreamerDriver - GStreamer-based .IP \[bu] 4 debugDriver - Debug/testing .TP .B Input Drivers: .IP \[bu] 4 evdevDriver - Linux evdev (recommended for Linux) .IP \[bu] 4 ptyDriver - Terminal emulation (cross-platform) .IP \[bu] 4 atspiDriver - AT-SPI for desktop environments .TP .B Screen Drivers: .IP \[bu] 4 vcsaDriver - Linux VCSA devices (TTY) .IP \[bu] 4 ptyDriver - Terminal emulation .TP .B Remote Drivers: .IP \[bu] 4 unixDriver - Unix socket remote control (recommended) .IP \[bu] 4 tcpDriver - TCP socket remote control (localhost only) .SH EXAMPLES .TP .B fenrir Start Fenrir as a daemon with default settings. .TP .B fenrir -f -d Run Fenrir in foreground with debug output. .TP .B fenrir -e Run Fenrir with PTY emulation for desktop/terminal use. .TP .B fenrir -o "speech#rate=0.8;sound#volume=0.5" Override speech rate and sound volume settings. .TP .B fenrir -F Force Fenrir to work on all screens, ignoring ignoreScreen settings. .TP .B fenrir -s /home/user/my-fenrir.conf Use a custom configuration file. .SH REMOTE CONTROL Fenrir includes a powerful remote control system for automation and integration with external applications. .SS Configuration Enable remote control in /etc/fenrir/settings/settings.conf: .EX [remote] enable=True driver=unixDriver enableSettingsRemote=True enableCommandRemote=True .EE .SS Using socat with Unix Sockets .TP .B Basic Speech Control: .EX # Interrupt current speech echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Speak custom text echo "command say Hello, this is a test" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Temporarily disable speech echo "command tempdisablespeech" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .EE .TP .B Settings Control: .EX # Enable highlight tracking echo "setting set focus#highlight=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change speech rate echo "setting set speech#rate=0.8" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change punctuation level (none/some/most/all) echo "setting set general#punctuationLevel=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Voice and TTS control echo "setting set speech#voice=en-us+f3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Multiple settings at once echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuationLevel=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset all settings echo "setting reset" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .EE .TP .B Clipboard Operations: .EX # Add text to clipboard echo "command clipboard Text to copy" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Export clipboard to file echo "command exportclipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .EE .SS Command Reference .TP .B Speech Commands: .IP \[bu] 2 command say - Speak the specified text .IP \[bu] 2 command interrupt - Stop current speech .IP \[bu] 2 command tempdisablespeech - Disable speech until next key press .TP .B Settings Commands: .IP \[bu] 2 setting set

#= - Set configuration value .IP \[bu] 2 setting reset - Reset all settings to defaults .IP \[bu] 2 setting save [path] - Save current settings .TP .B Other Commands: .IP \[bu] 2 command clipboard - Add text to clipboard .IP \[bu] 2 command window - Define window area .IP \[bu] 2 command resetwindow - Reset to full screen .IP \[bu] 2 command vmenu - Set virtual menu .IP \[bu] 2 command resetvmenu - Reset virtual menu .IP \[bu] 2 command quitapplication - Quit Fenrir .SS Important Controllable Settings .TP .B Speech Control: .IP \[bu] 2 general#punctuationLevel=none/some/most/all - Punctuation verbosity .IP \[bu] 2 speech#rate=0.1-1.0 - Speech rate .IP \[bu] 2 speech#pitch=0.1-1.0 - Speech pitch .IP \[bu] 2 speech#volume=0.1-1.0 - Speech volume .IP \[bu] 2 speech#voice=voice_name - Voice selection .IP \[bu] 2 speech#module=module_name - TTS module .TP .B Screen Control: .IP \[bu] 2 screen#ignoreScreen=1,2,3 - TTY screens to ignore .IP \[bu] 2 focus#highlight=True/False - Follow text highlighting .TP .B Input Control: .IP \[bu] 2 keyboard#charEchoMode=0-2 - Character echo mode .IP \[bu] 2 keyboard#wordEcho=True/False - Word echo .SH FILES .TP .B /etc/fenrir/settings/settings.conf Main configuration file .TP .B /etc/fenrir/keyboard/ Keyboard layout definitions .TP .B /etc/fenrir/punctuation/ Punctuation level definitions .TP .B /usr/share/sounds/fenrirscreenreader/ System sound themes .TP .B ~/.local/share/fenrirscreenreader/sounds/ User sound themes .TP .B /var/log/fenrir.log Debug log file .TP .B /run/fenrir.pid Process ID file when running as daemon .SH ENVIRONMENT Fenrir respects standard Linux permissions and requires appropriate access to: .IP \[bu] 2 /dev/input/* (for evdev input driver) .IP \[bu] 2 /dev/uinput (for key injection) .IP \[bu] 2 /dev/vcsa* (for VCSA screen driver) .IP \[bu] 2 DBus system bus (for screen change detection) .SH DEPENDENCIES .SS Required .IP \[bu] 2 Python 3.6 or later .IP \[bu] 2 python3-evdev (for evdev input driver) .IP \[bu] 2 python3-pyudev (for device detection) .SS Recommended .IP \[bu] 2 speech-dispatcher and python3-speechd (for speech) .IP \[bu] 2 sox with opus support (for sound) .IP \[bu] 2 espeak-ng (for speech synthesis) .SS Optional .IP \[bu] 2 python3-pyenchant and aspell-* (for spell checking) .IP \[bu] 2 python3-daemonize (for daemon mode) .IP \[bu] 2 pyalsaaudio (for ALSA volume control) .SH SIGNALS .TP .B SIGTERM, SIGINT Gracefully shut down Fenrir .SH EXIT STATUS .TP .B 0 Success .TP .B 1 General error (configuration, permission, etc.) .SH BUGS Report bugs to the project maintainer or via the project repository. .SH AUTHORS .B Current maintainer: Storm Dragon .B Previous developer: Chrys .B Contributors: Jeremiah and others .SH COPYRIGHT This software is licensed under the LGPL v3. .SH SEE ALSO .BR speechd (1), .BR espeak (1), .BR espeak-ng (1), .BR sox (1) .PP Full documentation: https://git.stormux.org/storm/fenrir/wiki .PP Support: stormux+subscribe@groups.iofenrir/docs/fenrir.adoc000066400000000000000000001572611513650123000154200ustar00rootroot00000000000000== Fenrir User Manual for Slint users Fenrir is a modern command line screen reader written in Python3. + It has a modular structure, a flexible based driver model, is highly configurable and easy to customize and extend. === Credit and intended audience This document is just a customization for Slint of the genuine https://git.stormux.org/storm/fenrir/src/branch/master/docs/user.txt[Fenrir User Manual] motly written by Chrys, main developer of Fenrir. It has been adapted to its intended audience: end users of Fenrir on Slint where it is already installed, thus concentrates on its setting and usage. You will find more information about its features, installation and how customize and troubleshoot it and contribute to its development on https://git.stormux.org/storm/fenrir[the Fenrir Git repository]. === Getting started with Fenrir Fenrir is a screen reader, that reads aloud the text displayed on the screen and allows to review it, like espeakup and speechd-up also shipped in Slint. + In Slint it is mostly used in console mode, and uses the synthesizers and voices provided by Speech Dispatcher. + Keyboard shortcuts are bound to commands to read the screen, review it and perform other actions like modify the settings on the fly, switch languages, copy and paste text, provide miscellaneous information. + === Configuration file === The permanent settings are recorded in the configuration file /etc/fenrirscreenreader/settings.conf, that is heavily commented. + These settings are described in this user guide. To start Fenrir once type as root: .... service start fenrir .... To enable auto start on system boot type as root: .... speak-with fenrir .... and confirm that you want to have it started at boot time. If you are using Fenrir for the first time you may want to take a look at these resources: * link:#Keybindings[Keybindings] * link:#Tutorial Mode[Tutorial Mode] == Keybindings Two series of key bindings are provided: . the link:#Desktop layout[Desktop layout] uses a numeric keypad (here abbreviated as keypad). . the link:#Laptop layout[Laptop layout] for keyboards that do not have a numeric keypad. The layout is set in the configuration file in the section link:#Keyboard[Keyboard]. === Fenrir Key The Fenrir Key is for invoking screen reader commands. Fenrir can utilize more than one FenrirKey at the same time. By default the following keys are used: . Insert . KeyPad Insert . Meta (Super, Windows) === Script Key To invoke "Scripts" the Script Key is mandatory. The shortcut is encoded in the filename of the script. See link:#Scripting[Scripting] By default the Script Key is Compose (the key between AltGr and Ctrl at the right of the space bar). For instance, pressing Script Key + L switches between the languages possibly listed in the configuration file. Feel free to write you own scripts to expand Fenrir features and share them! === Desktop Layout [cols=",",options="header",] |=== |Shortcut |Command |link:#General[General] | |CTRL |link:#shut up[shut up (interrupts speech)] |FenrirKey + Q |link:#quit Fenrir[quits fenrir] |link:#Review modes[Review modes] | |FenrirKey + KeyPad dot |link:#exit review[exit review] |FenrirKey + KeyPad 9 |link:#review bottom[reviews bottom] |FenrirKey + KeyPad 7 |link:#review top[reviews top] |KeyPad 8 |link:#review current line[reviews current line] |KeyPad 7 |link:#review previous line[reviews previous line] |KeyPad 9 |link:#review next line[reviews next line] |FenrirKey + KeyPad 4 |link:#review line beginning[reviews line beginning] |FenrirKey + KeyPad 6 |link:#review line ending[reviews line ending] |FenrirKey + KeyPad 1 |link:#review line first character[reviews line first character] |FenrirKey + KeyPad 3 |link:#review line last character[reviews line last character] |FenrirKey + Alt + 1 |link:#present first line[presents first line] |FenrirKey + Alt + 2 |link:#present last line[presents last line] |KeyPad 5 |link:#review current word[reviews current word] |KeyPad 4 |link:#review previous word[reviews previous word] |KeyPad 6 |link:#review next word[reviews next word] |FenrirKey + Shift + KeyPad 5 |link:#review current word phonetic[reviews current word phonetic] |FenrirKey + Shift + KeyPad 4 |link:#review previous word phonetic[reviews previous word phonetic] |FenrirKey + Shift + KeyPad 6 |link:#review next word phonetic[reviews next word phonetic] |KeyPad 2 |link:#review current character[reviews current char] |KeyPad 1 |link:#review previous character[reviews previous char] |KeyPad 3 |link:#review next character[reviews next char] |FenrirKey + Shift + KeyPad 2 |link:#review current character phonetic[reviews current character phonetic] |FenrirKey + Shift + KeyPad 1 |link:#review previous character phonetic[reviews previous character phonetic] |FenrirKey + Shift + KeyPad 3 |link:#review next character phonetic[reviews next character phonetic] |FenrirKey + CTRL + KeyPad 8 |link:#review up[reviews up] |FenrirKey + CTRL + KeyPad 2 |link:#review down[reviews down] |FenrirKey + I |link:#indent current line[indent curr line] |FenrirKey + KeyPad 5 |link:#current screen[current screen] |FenrirKey + KeyPad 8 |link:#current screen before cursor[current screen before cursor] |FenrirKey + KeyPad 2 |link:#current screen after cursor[current screen after cursor] | |link:#cursor read to end of line[cursor read to end of line] |link:#Tutorial mode[Tutorial mode] | |FenrirKey + H |link:#Tutorial Mode[toggle tutorial mode] |link:#Information[Information] | |FenrirKey + T |link:#Time[Announce time] |FenrirKey + T +T |link:#Date[Announce date] |FenrirKey + CTRL + |link:#clear Bookmark [clear bookmark number ] |FenrirKey + Shift + |link:#set Bookmark [set bookmark number ] |FenrirKey + |link:#read Bookmark [read bookmark number ] |KeyPad dot |link:#cursor position[cursor position] | |link:#cursor column[cursor column] | |link:#cursor line number[cursor line number] |link:#Screen Interaction[Screen Interaction] | |FenrirKey + CTRL + Shift + C |link:#clear clipboard[clears clipboard] |FenrirKey + Home |link:#first clipboard[first clipboard] |FenrirKey + End |link:#last clipboard[last clipboard] |FenrirKey + PageUp |link:#previous clipboard[previous clipboard] |FenrirKey + PageDown |link:#next clipboard[next clipboard] |FenrirKey + Shift + C |link:#read current clipboard[current clipboard] |FenrirKey + C |link:#copy marked to clipboard[copy marked text to clipboard] |FenrirKey + V |link:#paste clipboard[paste clipboard contents] |FenrirKey + P |link:#import clipboard from file[import clipboard from file] |FenrirKey + Alt + Shift +C |link:#export clipboard to file[export clipboard to file] |FenrirKey + CTRL + Shift + X |link:#Remove Marks[remove marks] |FenrirKey + X |link:#Set mark[set mark] |FenrirKey + Shift + X |link:#Get text between marks[announce marked text] | |export clipboard to X |link:#Window mode[Window mode] | |FenrirKey + KeyPad Slash |link:#Create Window[set window application] |2 * FenrirKey + KeyPad Slash |link:#Remove Window[clear window application] |KeyPad Plus |link:#last incoming[read last incoming] |link:/#Quick Settings/ toggle or switch[Quick settings: toggle or switch] | |Compose + L |link:#switch language[switch language] |FenrirKey + F3 |link:#toggle sound[toggles sound] |FenrirKey + F4 |link:#toggle speech[toggles speech] |KeyPad Enter |link:#disable speech temporarily[temporarily disables speech] |FenrirKey + CTRL + P |link:#toggle punctuation level[toggles punctuation level] |FenrirKey + RightBrace |link:#toggle auto spell check[toggle auto spell check] |FenrirKey + Backslash |link:#toggle output[toggles output] |FenrirKey + CTRL + E |link:#toggle emoticons[toggles emoticons] |FenrirKey + KeyPad Enter |link:#toggle auto read[toggles auto read] |FenrirKey + CTRL + T |link:#toggle auto time[toggles auto time] |FenrirKey + KeyPad ASTERISK |link:#toggle highlight tracking[toggles highlight tracking] |link:/#Quick Settings/ speech and sound[Quick Settings: speech and sound] | |FenrirKey + Up |link:#increase speech volume[increase speech volume] |FenrirKey + Down |link:#decrease speech volume[decrease speech volume] |FenrirKey + Right |link:#increase speech rate[increase speech rate] |FenrirKey + Left |link:#decrease speech rate[decrease speech rate] |FenrirKey + Alt + Right |link:#increase speech pitch[increase speech pitch] |FenrirKey + Alt + Left |link:#decrease speech pitch[decrease speech pitch] |FenrirKey + Alt + Up |link:#increase sound volume[increase sound volume] |FenrirKey + Alt + Down |link:#decrease sound volume[decrease sound volume] |FenrirKey + CTRL + Up |increase Alsa volume |FenrirKey + CTRL + Down |decrease Alsa volume |link:#Spellchecker[Spell checker] | |FenrirKey + S |link:#spell check[spell check] |2 * FenrirKey + S |link:#add word to spell check[add word to spell check] |FenrirKey + Shift + S |link:#removes word from spell check[removes word from spell check] |FenrirKey + Backspace |link:#forward keypress[forward keypress] |=== === Laptop Layout [cols=",",options="header",] |=== |Shortcut |Command |link:#General[General] | |FenrirKey + H |link:#Tutorial Mode[toggle tutorial mode] |CTRL |link:#shut up[shut up (interrupts speech)] |link:#Review modes[Review modes] | |FenrirKey + Shift + O |link:#review bottom[reviews bottom] |FenrirKey + Shift + U |link:#review top[reviews top] |FenrirKey + I |link:#review current line[reviews current line] |FenrirKey + U |link:#review previous line[reviews previous line] |FenrirKey + O |link:#review next line[reviews next line] |FenrirKey + Shift + J |link:#review line beginning[reviews line beginning] |FenrirKey + Shift + L |link:#review line ending[reviews line ending] |FenrirKey + CTRL + J |link:#review line first character[reviews line first character] |FenrirKey + CTRL + L |link:#review line last character[reviews line last character] |FenrirKey + Alt + 1 |link:#present first line[presents first line] |FenrirKey + Alt + 2 |link:#present last line[presents last line] |FenrirKey + K |link:#review current word[reviews current word] |FenrirKey + J |link:#review previous word[reviews previous word] |FenrirKey + L |link:#review next word[reviews next word] |FenrirKey + CTRL + ALT + K |link:#review current word phonetic[reviews current word phonetic] |FenrirKey + CTRL + ALT + J |link:#review previous word phonetic[reviews previous word phonetic] |FenrirKey + CTRL + ALT + L |link:#review next word phonetic[reviews next word phonetic] |FenrirKey + comma |link:#review current character[reviews current character] |FenrirKey + M |link:#review previous character[reviews previous character] |FenrirKey + dot |link:#review next character[reviews next character] |FenrirKey + CTRL + ALT + comma |link:#review current character phonetic[reviews current character phonetic] |FenrirKey + CTRL + ALT + M |link:#review previous character phonetic[reviews previous character phonetic] |FenrirKey + CTRL + ALT + dot |link:#review next character phonetic[reviews next character phonetic] |FenrirKey + CTRL + I |link:#review up[reviews up] |FenrirKey + CTRL + comma |link:#review down[reviews down] |FenrirKey + Slash |link:#exit review[exit review] |FenrirKey + Shift + dot |link:#cursor position[cursor position] |FenrirKey + I +I |link:#indent current line[indent curr line] |FenrirKey + Shift + K |link:#current screen[current screen] |FenrirKey + Shift + I |link:#current screen before cursor[current screen before cursor] |FenrirKey + Shift + comma |link:#current screen after cursor[current screen after cursor] | |link:#cursor read to end of line[cursor read to end of line] |link:#Tutorial mode[Tutorial mode] | |FenrirKey + H |link:#Tutorial Mode[toggle tutorial mode] |link:#Information[Information] | |FenrirKey + T |link:#Time[Announce time] |FenrirKey + T +T |link:#Date[Announce date] |FenrirKey + CTRL + |link:#clear Bookmark [clear bookmark number ] |FenrirKey + Shift + 1 |link:#set Bookmark [set bookmark bumber ] |FenrirKey + 1 |link:#read Bookmark [bookmark number ] | |link:#cursor column[cursor column] | |link:#cursor line number[cursor line number] |link:#Screen Interaction[Screen Interaction] | |FenrirKey + CTRL + Shift + C |link:#clear clipboard[clears clipboard] |FenrirKey + Home |link:#first clipboard[first clipboard] |FenrirKey + End |link:#last clipboard[last clipboard] |FenrirKey + PageUp |link:#previous clipboard[previous clipboard] |FenrirKey + PageDown |link:#next clipboard[next clipboard] |FenrirKey + Shift + C |link:#read current clipboard[current clipboard] |FenrirKey + C |link:#copy marked to clipboard[copy marked text to clipboard] |FenrirKey + V |link:#paste clipboard[paste clipboard contents] |FenrirKey + F5 |link:#import clipboard from file[import clipboard from file] |FenrirKey + Alt + Shift +C |link:#export clipboard to file[export clipboard to file] |FenrirKey + CTRL + Shift + X |link:#Remove Marks[remove marks] |FenrirKey + X |link:#Set mark[set mark] |FenrirKey + Shift + X |link:#Get text between marks[announce marked text] | |export clipboard to X |link:#Window mode[Window mode] | |FenrirKey + CTRL + 8 |link:#Create Window[set window application] |2 * FenrirKey + CTRL + 8 |link:#Remove Window[clear window application] |FenrirKey + Semicolon |link:#last incoming[read last incoming] |link:/#Quick Settings/ toggle or switch[Quick settings: toggle or switch] | |Compose + L |link:#switch language[switch language] |FenrirKey + F3 |link:#toggle sound[toggles sound] |FenrirKey + F4 |link:#toggle speech[toggles speech] |FenrirKey + Enter |link:#disable speech temporarily[temporarily disables speech] |FenrirKey + Shift + CTRL + P |link:#toggle punctuation level[toggles punctuation level] |FenrirKey + RightBrace |link:#toggle auto spell check[toggle auto spell check] |FenrirKey + Shift + Enter |link:#toggle output[toggles output] |FenrirKey + Shift + E |link:#toggle emoticons[toggles emoticons] |FenrirKey + Enter |link:#toggle auto read[toggles auto read] |FenrirKey + CTRL + T |link:#toggle auto time[toggles auto time] |FenrirKey + Y |link:#toggle highlight tracking[toggles highlight tracking] |FenrirKey + Q |link:#quit Fenrir[quits fenrir] |FenrirKey + T |link:#Time[Announce time] |FenrirKey + T +T |link:#Date[Announce date] |link:/#Quick Settings/ speech and sound[Quick Settings: speech and sound] | |FenrirKey + Up |link:#increase speech volume[increase speech volume] |FenrirKey + Down |link:#decrease speech volume[decrease speech volume] |FenrirKey + Right |link:#increase speech rate[increase speech rate] |FenrirKey + Left |link:#decrease speech rate[decrease speech rate] |FenrirKey + Alt + Right |link:#increase speech pitch[increase speech pitch] |FenrirKey + Alt + Left |link:#decrease speech pitch[decrease speech pitch] |FenrirKey + Alt + Up |link:#increase sound volume[increase sound volume] |FenrirKey + Alt + Down |link:#decrease sound volume[decrease sound volume] |FenrirKey + CTRL + Up |increases Alsa volume |FenrirKey + CTRL + Down |decreases Alsa volume |link:#Spellchecker[Spell checker] | |FenrirKey + S |link:#spell check[spell check] |FenrirKey + S +S |link:#add word to spell check[add word to spell check] |FenrirKey + Shift + S |link:#removes word from spell check[removes word from spell check] |FenrirKey + Backspace |link:#forward keypress[forward keypress] |=== === General ==== quit Fenrir Just stops fenrir. ==== shut up Interrupt the current spoken. === Review Modes Fenrir provides a virtual cursor, with it you can navigate all over the screen without changing the text cursor. + Using the review feature will open the review mode automatically. + The review cursor always starts from the text cursor. Attention: after using the review mode, the review cursor will stay open until you use the `+exit review+` shortcut. + Think when using clipboard operations and similar. The review cursor is always preferred over the text cursor. + Fenrir sounds a bell sound if the used review command jumps to another line or end of screen. ==== exit review You can leave the review mode by pressing the `+exit review+` shortcut. ==== review bottom Set the review cursor to first column in the last line. ==== review top Set the review cursor to the first column in the first line ==== review current line Set the review cursor to the beginn of the the current line and review it. ==== review previous line Set the review cursor to the previous line and review it. ==== review next line Set the review cursor to the next line and review it. ==== review line beginning Set the review cursor to the begin of the current line ==== review line ending Set the review cursor to the end of the current line ==== review line first character Set the review cursor the first char (that is not space) in the current line and review it. ==== review line last character Set the review cursor the last char (that is not space) in the current line and review it. ==== review current word Sets the review cursor to the beginning of the current word and review it. ==== review previous word Sets the review cursor to the beginning of the previous word and review it. ==== review next word Sets the review cursor to the beginning of the next word and review it. ==== review current word phonetic Sets the review cursor to the beginning of the current word and spell it phonetic. ==== review previous word phonetic Sets the review cursor to the beginning of the previous word and spell it phonetic. ==== review next word phonetic Sets the review cursor to the beginning of the next word and spell it phonetic. ==== review current character Does not change the review cursor. Just announce the current char. ==== review previous character Sets review cursor to the previous column and review it ==== review next character Sets review cursor to the next column and review it ==== review current character phonetic Does not change the review cursor. Just announce the current char phonetic. ==== review previous character phonetic Sets review cursor to the previous column and announce the char phonetic. ==== review next character phonetic Sets review cursor to the next column and announce the char phonetic. ==== review up Set the review cursor in the same column one line above the current one and review it. ==== review down Set the review cursor in the same column one line below the current one and review it. A mark defines a point of origin or end to prepare to copy or paste a block of text. + Examples where you need marks are: * copy to clipboard * set window application * set bookmark 1 - X ==== Set mark How to set a mark: . navigate with review or textcursor to the position you want to set the mark. Attention: if a review cursor is set, that is the prefered. If you want to use text cursor, be sure that you are not in review mode. . press shortcut for `+set mark+` you can set two marks (begin and end). Some commands allow some simpler usecases just using the whole line if only one mark is set. you may want to try this out. ==== Get text between marks To get the text that is currently between your marks press shortcut for `+marked text+`. + === Remove Marks === You can remove all current marks by pressing the shortcut for `+remove marks+`. Changing the screen also removes the marks. === Screen Interaction Fenrir provides several methods to interact with the current screen. ==== forward keypress This just forwards the next shortcut to the screen Fenrir shortcut or not. This is useful if the currently pressed shortcut is also in use by Fenrir. ==== Clipboard Fenrir provides a clipboard with multible items represented by a list. You navigate throught the list and paste the selected clipboard. ===== copy marked to clipboard To copy something to the clipboard you need to set one or two marks. if you set one mark, the text between the mark and your current cursor is copied to clipboard. Setting two marks just copies the text between the marks into the clipboard. If you copy something it is always placed as the first item on your clipboard. ===== clear clipboard You can remove all items from the current clipboard by `+clear clipboard+` functionality. ===== first clipboard This moves quick to the first item of the clipboard. ===== last clipboard This moves quick to the last item of the clipboard. ===== previous clipboard Go to previous item in the clipboard. ===== next clipboard Go to next item on the clipboard. ===== read current clipboard Read the content of the current item of the clipboard. ===== paste clipboard Pass whatever item is currently selected by first, last, prev or next clipboard commands. if no special clipboard is selected the (last copied) is used. ===== export clipboard to file This allows you to export the current clipboard to a configurable filepath. This is useful to share the clipboard with a graphical desktop. ===== import clipboard from file Import a clipboard from a configurable file. This is useful to share the clipboard with a graphical desktop. === Quick Settings: toggle or switch Fenrir provides shortcuts to change settings temporarily and on the fly without the need to permanently change the `+settings.conf+` file. ==== switch language switch between the languages listed in the line beginning with langages= in `+setting.conf+` during run time. The next language after the current one will be used. ==== toggle braille Enables and disables Braille. This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle sound Enables and disables sound. This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle speech Enables and disables speech. This is not persistent stored in your `+settings.conf+` but during run time. ==== disable speech temporarily Disables the speech until next key press. it might be useful if you want to listen to music or similar. As soon as a key is pressed it is going to be enabled again. ==== toggle punctuation level Cycle between all available punctuation levels. This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle auto spell check Enables and disables automatic spellchecker (when typing). This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle emoticons Enables and disables emoticons. This is not persistent stored in your `+settings.conf+` but during runtime. ==== toggle output Enables and disables all output at once (sound, Braille, speech). This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle auto read Enables and disables what is automatically spoken. This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle auto time Enables and disables auto time functionality. This is not persistent stored in your `+settings.conf+` but during run time. ==== toggle highlight tracking Enables and disables highlight tracking. This is not persistent stored in your `+settings.conf+` but during run time. === Quick Settings: speech and sound ==== increase speech volume Increase the volume of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== decrease speech volume Decrease the volume of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== increase speech rate Increase the rate of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== decrease speech rate Decrease the rate of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== increase speech pitch Increase the pitch of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== decrease speech pitch Decrease the pitch of the speech. This is not persistent stored in your `+settings.conf+` but during runtime. ==== increase sound volume Increase the volume of the sound. This is not persistent stored in your `+settings.conf+` but during runtime. ==== decrease sound volume Decrease the volume of the sound. This is not persistent stored in your `+settings.conf+` but during runtime. === Window Mode Fenrir supports window mode, a window is a partial area of the screen. ==== Create Window To create a window you need to do the following: . set a beginning mark (as the start of the window) . set an end mark (where the window should end) . press `+set window application+` shortcut. Now Fenrir ignores anything outside of the window. + === Remove Window === You can remove the window by pressing `+the clear window application+` shortcut. Now Fenrir will read everything on the screen again. === Tracking Modes Different types of tracking are currently supported See section link:#Focus[Focus] in `+settings.conf+` for more information. ==== Cursor Tracking This follows the text cursor. This is the typical way an application works. This is used by: * almost any shell such as (Bash, Zsh, sh) * vim * nano * emacs * mutt * tintin++ ==== Highlight Tracking In some applications there are no text cursors. In those applications cursor changes are represented by different colors or attributes (underlined or bold). This mode tracks and announces these changes for you. This is used by: .... * wifi-menu * dialog * alpine .... === Tutorial Mode Fenrir provides a Tutorial mode. When you enter tutorial mode, screen reader commands are intercepted and explained instead of executing them. `+Arrow up+` and `+Arrow Down+` let you navigate through a list of all available commands with shortcuts and description. Pressing escape leaves the tutorial mode. === Information ==== Time Announces the current Time. ==== Date Announces the current Date. ==== Bookmarks Bookmarks provide quick access to part of the screen without the need to navigate to the area. By default Fenrir provides 10 bookmarks. Those can be set and accessed via shortcut. This is useful for status lines or other information where the position does not change. ===== set Bookmark You need to set the bookmark first. For that you have to set one or two lines for use. . Set marks (one or two) . press shortcut for `+set bookmark +`. represents the number 1 - 10 (set bookmark 0 for the tenth bookmark). ===== read Bookmark If a bookmark is set you can access the area just by pressing the `+bookmark +` shortcut. represents the number 1 - 10. Bookmarks are dynamic. That means the content changes with the screen. ===== clear Bookmark to remove a bookmark just press the `+clear bookmark +` shortcut. represents the number 1 - . Afterward the bookmark is no longer available. ==== cursor position You can get information about the current cursor and its position by using the "cursor position" functionality. ==== indent current line Announce the current indent level of the current line. It represents the number of trailing spaces of the line. ==== current screen Reads all the current screen from the beginning to the end. ==== current screen before cursor Reads current screen from the beginning of the screen to the current cursor position. ==== current screen after cursor Read anything after current cursor position to the end. ==== cursor read to end of line Read from the current cursor position to the end of the current line. ==== cursor column Read the current X position of a cursor (column of the current line). ==== cursor line number Read the current Y position of a cursor (line number). ==== present first line Reads just the first line. this is maybe useful for status information. ==== present last line Presets the last line. This is maybe useful for status information. ==== last incoming Repeat the last automatically incoming text. === Input ==== Echo Fenrir provides different methods of echoing content: * Word: Will speak each word after you push space * Character: speak any letter you type on the screen * Delete Character: speaks the character prior to the cursor when you push backspace ==== Silence on Key press ==== Spellchecker Fenrir has a built-in spellchecker, it can invoke automatically while typing or be called by a shortcut. Commands to add or remove the current word to the dictionary are included. As using the spellchecker is enhanced usage. You will need dictionary aspell-. See section link:#General[General] in `+settings.conf+` for more information. ===== spell check Invokes the spellcheck on the word that contains the Review or text cursor. ===== add word to spell check Adds the word under the Review or Text cursor to the dictionary. ===== removes word from spell check Removes the word under the Review or Text cursor from the dictionary. === Announcements ==== Emoticons If you want to replace ":)" emoticons with "smile" in speech you can use this feature. It can be toggled on or off. You can define emoticons in a dictionary, please see Emoticon Dictionary. See section link:#General[General] in `+settings.conf+` to see how to enable or disable this feature. ==== Time Announce the time at periodical increments, To track the time easily. You can define 2 different ways of time announcements. . periodic . on fix minutes The settings proposed below can be implemented editing in the link:#Configuration file[configuration file] Example periodic, every 20 minutes "delaySec=20": .... [time] enabled=True presentTime=True presentDate=True delaySec=20 onMinutes= announce=True interrupt=False .... Example on fix minutes in an hour. example every quarter "delaySec=0" and "onMinutes=00,15,30,45": .... [time] enabled=True presentTime=True presentDate=True #delaySec is respected before onMinutes so it need to be set to 0 delaySec=0 onMinutes=00,15,30,45 announce=True interrupt=False .... === Dictionary You can make use of different kinds of built-in dictionary's. A dictionary has a name and list of keys and values separated by :===: Example to be set in the link:#Configuration file[configuration file] .... [customDict] Chrys:===:Chrys is cool lollipop:===:lolli .... that means that every instance "chrys" is displayed, speech will say Chrys is cool. "lollipop" is spoken as "lolli". Before making changes to a dictionary we recommend making a backup of your current dictionary in case future updates overwrite your local changes. ==== Punctuation The default punctuation settings are recorded in thd directory /etc/fenrirscreenreader/punctuation/default.conf ===== Level The punctuation level dict contains lists with "what punctuation is spoken in what level". the default one looks like this: .... [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ .... the level "none" has no values. so it should not speak any punctuation (sadly this is not respected by every TTS system) if "some" is the current level the following are spoken: dot dash dollar tilde plus star slash backslash at. same for most and all, you can add new levels. if you cycle punctuation levels they are recognized. the default punctuation level is set in settings.conf. The default is "some". ===== Punctuation The punctuation dictionary "[punctDict]" contains how the punctuation is spoken. Example: .... [punctDict] _:===:line .... speaks an _ as "line". .... [punctDict] _:===:underscore .... speaks an _ as underscore. for question mark an ? is appended to the word that the TTS system can announce the question correctly. ==== Custom The dict "[customDict]" is just for your own use, it just replace the key with the value without any special functionality. This might be used to fix incorrectly spoken words, make words more common, shorter or just for fun. :) ==== Emoticons The Emoticons dictionary "[emoticonDict]" by default contains some emoticons. it can replace ":)" with "smile" or "XD" with "loool" Making chat more colorful. A nice feature with this dictionary is that you can toggle the substitution on or off during run time or in settings.conf. This is useful because while doing programming or other serious work you want to hear colons and perryns not smiles. == Configuration You can configure Fenrir in the following places (ordered by priority): . Commandline Parameters `+-o+` see link:#Set settings options[Set settings options] . /etc/fenrirscreenreader/settings/settings.conf see link:#Settings[Settings] . hard coded defaults === Commandline Arguments Fenrir supports several command-line options: .... fenrir [OPTIONS] .... ==== Available Options `+-h, --help+`:: Show help message and exit. `+-v, --version+`:: Show version information and exit. `+-f, --foreground+`:: Run Fenrir in the foreground instead of as a daemon. `+-s, --setting SETTING-FILE+`:: Path to a custom settings file. `+-o, --options SECTION#SETTING=VALUE;..+`:: Override settings file options (see below for details). `+-d, --debug+`:: Enable debug mode. Debug information will be logged. `+-p, --print+`:: Print debug messages to screen in addition to logging them. `+-e, --emulated-pty+`:: Use PTY emulation with escape sequences for input. This enables usage in desktop/X11/Wayland environments and terminal emulators. `+-E, --emulated-evdev+`:: Use PTY emulation with evdev for input (single instance mode). `+-F, --force-all-screens+`:: Force Fenrir to respond on all screens, ignoring the ignoreScreen setting. This temporarily overrides screen filtering for the current session. `+-i, -I, --ignore-screen +`:: Ignore specific screen(s). Can be used multiple times to ignore multiple screens. This is equivalent to setting ignoreScreen in the configuration file and will be combined with any existing ignore settings. ==== Set settings options You can specify options that overwrite the setting.conf. This is done with `+-o +` parameter. The list of options have the following syntax .... fenrir -o "section#setting=value;section#setting=value" .... For example changing the sound driver to gstreamer and disabling Braille .... fenrir -o "sound#driver=gstreamerDriver;braille#enabled=False=False" .... or change the debug level to verbose .... fenrir -o "general#debugLevel=3" .... Example using force all screens option: .... fenrir -F .... You can find the available sections and variables here #Settings See Syntax link:#settings.conf syntax[#settings.conf syntax] === Remote Control Fenrir includes a powerful remote control system that allows external applications and scripts to control Fenrir through Unix sockets or TCP connections. ==== Configuration Enable remote control in settings.conf: .... [remote] enable=True driver=unixDriver enable_settings_remote=True enable_command_remote=True .... ==== Using socat with Unix Sockets The `+socat+` command provides the easiest way to send commands to Fenrir: ===== Basic Speech Control .... # Interrupt current speech echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Speak custom text echo "command say Hello, this is a test message" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Temporarily disable speech (until next keystroke) echo "command tempdisablespeech" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .... ===== Settings Control .... # Enable highlight tracking mode echo "setting set focus#highlight=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change speech rate echo "setting set speech#rate=0.8" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change punctuation level (none/some/most/all) echo "setting set general#punctuation_level=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Voice and TTS control echo "setting set speech#voice=en-us+f3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Multiple settings at once echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuation_level=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset all settings to defaults echo "setting reset" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .... ===== Clipboard Operations .... # Place text into clipboard echo "command clipboard This text will be copied to clipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Export clipboard to file echo "command exportclipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .... ===== Application Control .... # Quit Fenrir echo "command quitapplication" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock .... ==== Command Reference ===== Available Commands *Speech Commands:* * `+command say +` - Speak the specified text * `+command interrupt+` - Stop current speech * `+command tempdisablespeech+` - Disable speech until next key press *Clipboard Commands:* * `+command clipboard +` - Add text to clipboard * `+command exportclipboard+` - Export clipboard to file *Window Commands:* * `+command window +` - Define window area * `+command resetwindow+` - Reset to full screen *VMenu Commands:* * `+command vmenu +` - Set virtual menu context * `+command resetvmenu+` - Reset virtual menu *Application Commands:* * `+command quitapplication+` - Quit Fenrir ===== Available Settings *Settings Commands:* * `+setting set
#=+` - Set configuration value * `+setting reset+` - Reset all settings to defaults * `+setting save [path]+` - Save current settings *Key Settings You Can Control:* *Speech Settings:* * `+speech#enabled=True/False+` - Enable/disable speech * `+speech#rate=0.1-1.0+` - Speech rate (speed) * `+speech#pitch=0.1-1.0+` - Speech pitch (tone) * `+speech#volume=0.1-1.0+` - Speech volume * `+speech#voice=voice_name+` - Voice selection (e.g., "en-us+f3") * `+speech#module=module_name+` - TTS module (e.g., "espeak-ng") *General Settings:* * `+general#punctuation_level=none/some/most/all+` - Punctuation verbosity * `+general#auto_spell_check=True/False+` - Automatic spell checking * `+general#emoticons=True/False+` - Enable emoticon replacement *Sound Settings:* * `+sound#enabled=True/False+` - Enable/disable sound * `+sound#volume=0.1-1.0+` - Sound volume *Focus Settings:* * `+focus#cursor=True/False+` - Follow text cursor * `+focus#highlight=True/False+` - Follow text highlighting *Keyboard Settings:* * `+keyboard#char_echo_mode=0-2+` - Character echo (0=none, 1=always, 2=capslock only) * `+keyboard#word_echo=True/False+` - Echo complete words *Screen Settings:* * `+screen#ignore_screen=1,2,3+` - TTY screens to ignore ==== settings.conf syntax the syntax of the link:#Settings[settings.conf] is quite simple and similar to a "*.ini" file, there are 4 different elements. . Sections . Settings . Values . Comments A comment starts with a # and is ignored by Fenrir. .... # this is a comment .... To group settings we have sections. A section can look like this: .... [Section] .... A setting looks like this: .... settingName=Value .... Example: .... [sound] # Turn sound on or off: enabled=True # Select the driver used to play sounds, choices are genericDriver and gstreamerDriver. # Sox is default. driver=genericDriver .... === Settings ==== Sound The sound is configured in section `+[sound]+`. Turn sound on or off: .... enabled=True .... Values: on=`+True+`, off=`+False+` Select the driver used to play sounds. The genericDriver using Sox is the default. .... driver=genericDriver .... Available Drivers: * `+genericDriver+` using the generic driver, for Fenrir <1.5 just use `+generic+` * `+gstreamerDriver+` using the gstreamer, for Fenrir <1.5 just use `+gstreamer+` These are the pack of sounds used for sound icons. .... theme=default .... By default we ship two sound packs. . `+default+` opus encoded, for newer Sox versions . `+default-wav+` wav encoded, just for compatibility Sound packs are located at /usr/share/sounds/fenrirscreenreader/ Sound volume controls how loud the sounds for your selected sound pack are. .... volume=1.0 .... Values: `+0.0+` is quietest, `+1.0+` is loudest. ===== Generic Driver The generic sound driver uses shell commands for play sound and frequencies. `+genericPlayFileCommand+` defines the command that is used to play a sound file. .... generic_play_file_command= .... `+genericFrequencyCommand+` defines the command that is used playing frequencies. .... generic_frequency_command= .... The following variables are substituted in `+genericPlayFileCommand+` and `+genericFrequencyCommand+`: * `+fenrirVolume+` = the current volume setting * `+fenrirSoundFile+` = the sound file for an sound icon * `+fenrirFrequence+` = the frequency to play * `+fenrirDuration+` = the duration of the frequency Example genericPlayFileCommand (default) .... generic_play_file_command=play -q -v fenrirVolume fenrirSoundFile .... Example genericFrequencyCommand (default) .... generic_frequency_command=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence .... ==== Speech Speech is configured in section `+[speech]+`. Turn speech on or off: .... enabled=True .... Values: on=`+True+`, off=`+False+` # Select speech driver, options are speechdDriver (default), genericDriver or espeakDriver: driver=speechdDriver #driver=espeakDriver #driver=genericDriver This Selects the driver used to generate speech output. We recommend top keep the default in Slint to benefit of all available synthesizers and associated voices The rate selects how fast Fenrir will speak. .... rate=0.5 .... Values: Range Minimum:`+0.0+` is slowest, Maximum:`+1.0+` is fastest. Pitch controls the pitch of the voice. .... pitch=0.5 .... Values: Range Minimum:`+0.0+` is lowest, Maximum:`+1.0+` is highest. A Pitch for capital letters can be set. .... capital_pitch=0.9 .... Values: Range Minimum:`+0.0+` is lowest, Maximum:`+1.0+` is highest. The Volume controls the loudness of the voice. .... volume=1.0 .... Values: Range Minimum:`+0.0+` is quietest, Maximum:`+1.0+` is loudest. The Module sets here selects the synthesizer to use by speech-dispatcher. If not set, the one set in /etc/speech-dispatcher/speechd.conf will be used. + TO list the available modules, type: .... spd-list -s .... To be able to switch languages on the fly, set below a module that supports all languages between which you want to be able to switch. + To make this choice type: .... spd-list .... Example of module setting: .... module=espeak-ng .... Voice selects the voice you want to use. This setting won't hold if you switch languages on the fly (see below) or also set the language. + To find out which voices are available, for a given module, type: .... spd-say -o -L .... For instance: .... spd-say -o rhvoice -L .... If you use the module espeak-ng or espak-ng-mbrola-generic , you can also run: .... espeak-ng-list-voices .... Example using the pico module: .... voice=virginie .... Languages lists the languages among which to switch pressing: .... Compose+l .... The Compose key is the one between AltrGr and Ctrl on the right of the space bar. + For the module in use, the languages available can be listed with typing: .... spd-list -ls .... For instance: .... spd-list -ls espeak-ng-mbrola-generic .... Be careful: all languages listed below should be provided by the module in use, else switching languages on the fly won't be possible. Example using the pico module: .... languages=en-GB fr-FR es-ES it-IT .... You can also set the language to use by default, which doesn't need to be listed among the ones you might want to switch (but then you will need to restart fenrir to get it back). + It will supersede the voice that you might have also set. Example using the pico module: .... language=de-DE .... Read new text as it occurs auto_read_incoming=True Values: on=`+True+`, off=`+False+` ==== Screen The settings for screens, (TTY, PTY) are configured in the `+[screen]+` section. The driver to get the information from the screen: .... driver=vcsaDriver .... Available Drivers: * `+vcsaDriver+` using the VCSA driver (for TTYs), for Fenrir <1.5 just use `+vcsa+` The encoding of the screen .... encoding=cp850 .... Values:`+cp850+` is used for Western languages like USA or Europe. The driver updates Fenrir with changes on the screen. .... screen_update_delay=0.05 .... Values: in Seconds If you want Fenrir to not be active on any screen for various reasons. Maybe an X server or Wayland is running on that screen. You can make Fenrir ignore it or multiple screens seperated by `+,+` with: .... suspendingScreen= .... Values: Depends on driver: * VCSA: the number of the TTY. TTY6 is `+6+`. Example ignore TTY1 and TTY2: .... suspendingScreen=1,2 .... There is also the ability to let Fenrir auto detect screens that are running an X server. So Screens running an GUI can be ignored. .... autodetectSuspendingScreen=True .... Values: on=`+True+`, off=`+False+` ==== Keyboard The settings for keyboard and input related configuration is located in the section `+[keyboard]+` of the `+settings.conf+` file. Select the driver used for grabbing keybord input and for recieving shortcuts. .... driver=evdevDriver .... Values: Text, available Driver Available Drivers: * `+evdevDriver+` uses the evdev input system of linux, for Fenrir <1.5 just use `+evdev+` You can let Fenrir know about what input devices are to be used. .... device=ALL .... Values: * `+ALL+` use all devices with key capabilities. * `+NOMICE+` Exclude mices from handling. * `++` just use the device with the given name. Gives Fenrir exclusive access to the keyboard and lets it control keystrokes. This is needed to intercept Fenrir related shortcuts. .... grab_devices=True .... Values: on=`+True+`, off=`+False+` The following makes sense if you are using a second screenreader and want to have some hooked events. Fenrir ignores all shortcuts then. .... ignore_shortcuts=False .... Values: on=`+True+`, off=`+False+` The current keyboard layout used for shortcuts. .... keyboard_layout=desktop .... Values: An absolute Path to a Keyboard definition file or a Filename without extension located in `+/etc/fenrir/keyboard+` Announce characters while typing. .... charEcho=False .... Values: on=`+True+`, off=`+False+` Announce deleted characters .... char_delete_echo=True .... Values: on=`+True+`, off=`+False+` Announce word after pressing space .... word_echo=False .... Values: on=`+True+`, off=`+False+` Interrupt speech on any keypress .... interrupt_on_key_press=False .... Values: on=`+True+`, off=`+False+` You can filter the keys that speech should interrupt .... interrupt_on_key_press_filter= .... Values: (List) empty = all keys, otherwise interrupt with specified keys The timeout that is used for double tap shortcuts .... double_tap_timeout=0.2 .... Values: Seconds ==== General Overall settings can be configured from the section `+[general]+`. Set the current debug level: .... debugLevel=1 .... Values: off=0, error=1, warning=2, info=3 the current punctuation and dict file in use: .... punctuation_profile=default .... Values: Text, see available profiles in `+/etc/fenrir/punctuation+` or in `+sourceTree/config/punctuation+` The current punctuation level in use: .... punctuation_level=some .... Values: Text, See available levels in the used punctuation file. Respect pause for punctuations: .... respect_punctuation_pause=True .... Values: on=`+True+`, off=`+False+` Add a pause on Line break: .... new_line_pause=True .... Values: on=`+True+`, off=`+False+` Specify the path where the clipboard should be exported to. See link:#export clipboard to file[export clipboard to file]. The variable `+$user+` is replaced by the current logged username. .... clipboardExportPath=/tmp/fenrirClipboard .... Values: Text, Systemfilepath The number of available clipboards: .... number_of_clipboards=10 .... Values: Integer, 1 - 999 Replace emoticons like :) or ;) with text insertions: .... emoticons=True .... Values: on=`+True+`, off=`+False+` Define the current Fenrir keys: .... fenrir_keys=KEY_KP0,KEY_META,KEY_INSERT .... Values, Text list, separated by comma. Define the current script keys: .... scriptKey=KEY_COMPOSE .... Values, Text list, separated by comma. The time format to be used for (time command) output: .... timeFormat=%H:%M:%P .... Values: see python specification for https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior[datetime.strftime] The date format to be used for (date command) output: .... dateFormat=%A, %B %d, %Y .... Values: see python specification for https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior[datetime.strftime] Enable or Disable spellcheck whilst typing: .... auto_spell_check=True .... Values: on=`+True+`, off=`+False+` The use of the dictionary with spellcheck: .... spell_check_language=en_US .... Values: Text, see aspell dictionary's. Folder Path for your scripts "scriptKey" functionality: .... scriptPath=/usr/share/fenrirscreenreader/scripts .... Values: Text, Existing path on file system. Override commands or create new ones without changing the Fenrir defaults: .... commandPath=/usr/share/fenrirscreenreader/commands .... Values: Text, Existing path on file system. Subfolders in commandPath are: * `+commands+` = to create shortcut commands * `+onInput+` = executed while typing * `+onScreenChange+` = executed on change the screen (change from TTY4 to TTY6) * `+onScreenUpdate+` = executed when the screen is captured ==== Focus The configuration for basic focus is in the section `+[focus]+`. Follow the text cursor: .... cursor=True .... Values: on=`+True+`, off=`+False+` Follow highlighted text changes (Highlight Tracking): .... highlight=False .... Values: on=`+True+`, off=`+False+` ==== Review Configurations for the review mode are in the section `+[review]+`. If "next word/ char" or "prev word/char" create a linebreak, announce it: .... lineBreak=True .... Values: on=`+True+`, off=`+False+` If "next word/ char" or "prev word/char" cannot be performed because you reached the end of the screen, announce it: .... endOfScreen=True .... Values: on=`+True+`, off=`+False+` Leave the review mode when pressing a key: .... leaveReviewOnKeypress=False .... Values: on=`+True+`, off=`+False+` Leave the review mode when changing the screen (From TTY3 to TTY4): .... leave_review_on_screen_change=True .... Values: on=`+True+`, off=`+False+` ==== Time The automated time announcement is configured in the section `+[time]+`. Time announcement is disabled by default. Turn time announcement on or off: .... enabled=True .... Values: on=`+True+`, off=`+False+` Should the time be announced: .... presentTime=True .... Values: on=`+True+`, off=`+False+` Should the date be announced (just on date change): .... presentDate=True .... Values: on=`+True+`, off=`+False+` Announce after a given period of seconds: .... delaySec=0 .... Value: in Seconds, 0 = Deactivated Announce after fixed minutes in an hour. if delaySec is >0 onMinutes is ignored: .... onMinutes=00,30 .... Example every 15 minutes: .... onMinutes=00,15,30,45 .... Just play a soundicon, (not interrupting): .... announce=True .... Values: on=`+True+`, off=`+False+` Interrupt current speech for time announcement: .... interrupt=False .... Values: on=`+True+`, off=`+False+` == Customization === Scripting Scripts can be in any language, bash, python, sh or others. Place your scripts in the directory /usr/share/fenrirscreenreader/scripts/ (the path is configurable in settings.conf). The script key is the applications key. Usually this key can be found on the keyboard located just left of the right most control key. When you name a script, the key name appears in the script seperated by the sequence [.underline]#-#. So, for example, if you have a python weather script you want assigned to the script key plus the letter w you would name the script /usr/share/fenrirscreenreader/scripts/weather[.underline]##-##key_w.py Then, to access the script, simply press the script key and the letter w. Scripts must be executable. So, make sure to chmod 755 your script when you place it in the scripts directory. The script gets some parameters from fenrir when it is executed. So that information is available in your script then. ==== Parameterlist [cols=",",options="header",] |=== |Parameter |Content |$1 |Username of the current logged in user |=== ==== Examples Script that just speaks the current username when pressing ScriptKey + H. + File: `+/usr/share/fenrirscreenreader/scripts/helloWorld__-__key_h.sh+`: .... #!/bin/bash echo $1 .... === Commands You can place your own commands in "/usr/share/fenrirscreenreader/commands" (path is configurable in settings.conf). Commands are python files with a special scheme. You can assign them to a shortcut using the filename without an extension or place them in a hook trigger like OnInput or OnScreenChange. For further information see developer guide. Good Examples: https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/commands/date.py["date.py"] (announce the Date), https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/commands/shut_up.py["shut_up.py"] (interrupt output) the basic scheme for a command is as follows: .... from core import debug .... .... class command(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def getDescription(self): return _('No description found') def run(self): pass def setCallback(self, callback): pass .... * https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/command_template.py[Template lives here] * The class needs to have the name "command". * "initialize" is running once whilst loading the command. * "shutdown" is running on unload like the command (quit fenrir) * "getDescriptsion" just returns an string. That String is used in Tutorial Mode. * "run" is executed when the command is invoked. (shortcut is pressed, or trigger isn't running) * setCAllback is currently not used. and has no functionality yet. == Troubleshooting Below are fenric instructions that do not all apply to Slint. Slint users may request help on the Slint mailing list. === Fenrir does not start . Have you installed all the dependencies link:#Support and Requirements[Support and Requirements] . Try using master, a lot of changes take place there to make Fenrir compatible with more systems === Fenrir does not utilize the shortcuts . Make sure you have python3-evdev installed . Use the latest Fenrir version . Make sure that Fenrir has permission to /dev/input/* and /dev/uinput (or run it as root) === No sound at all . Run the script to configure Pulseaudio once as root and once as your user. This will setup Pulseaudio but require a restart of Pulseaudio. The script is located in `+tools/configure_pulse.sh+` . Use ALSA . https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/[Configure Pulse system wide] (Not recommended) . Use gstreamerDriver: change `+settings.conf+` in the section `+sound+` the line `+driver=genericDriver+` to `+driver=gstreamerDriver+` . Use wave sound-icons: change `+settings.conf+` in the section `+sound+` the line `+theme=default+` to `+theme=default-wav+` . Use most current version of http://sox.sourceforge.net/[sox] with opus support . Try https://github.com/i-rinat/apulse[apulse] (not tested by myself but might work). Please give me feedback if you try it out. === You get sound-icons but no speech . If you are using speech-dispatcher run "spd-conf" once as user and as root. . You can test if speech-dispatcher works by invoking it as root + `+sudo spd-say "hello world"+` === Bugreports and feature requests Please report Bugs and feature requests to: https://git.stormux.org/storm/fenrir/issues for bugs please provide a link:#Howto create a debug file[debug] file that shows the issue. ==== How-to create a debug file . Delete old debug stuff + `+sudo rm /var/log/fenrir.log+` . Start fenrir in debug mode + `+sudo fenrir -d+` . Do your stuff to reproduce the problem . Stop fenrir (`+fenrirKey + q+`) the debug file is located in `+/var/log/fenrir.log+` Please be as precise as possible to make it easy to solve the problem. fenrir/docs/user.md000066400000000000000000000266771513650123000146110ustar00rootroot00000000000000# Fenrir User Manual Fenrir is a modern command line screen reader written in Python 3. It has a modular structure, a flexible driver-based architecture, is highly configurable and easy to customize and extend. **Current maintainer:** Storm Dragon **Previous developer:** Chrys ## Quick Start 1. **Installation**: See the [README.md](../README.md) for installation instructions 2. **First run**: `sudo fenrir` (or `sudo systemctl start fenrir` if installed) 3. **Tutorial mode**: Press `Fenrir + H` to learn all commands interactively 4. **Basic navigation**: Use numeric keypad for review (desktop layout) 5. **Stop speech**: Press `Ctrl` at any time 6. **Quit**: Press `Fenrir + Q` ## Key Concepts ### Fenrir Key The Fenrir Key is used to invoke screen reader commands. By default: - Insert - Keypad Insert - Meta (Super/Windows key) You can configure multiple Fenrir keys to suit your preference. ### Keyboard Layouts - **Desktop Layout**: Uses numeric keypad (recommended for desktop users) - **Laptop Layout**: Alternative bindings for keyboards without numeric keypad ### Review Mode Navigate the screen without moving the text cursor. Essential for examining content without disrupting your workflow. ## Essential Commands ### Navigation (Desktop Layout) - `Ctrl` - Stop speech (shut up) - `Fenrir + H` - Tutorial mode - `Fenrir + Q` - Quit Fenrir - `Fenrir + Keypad 5` - Read current screen - `Keypad 8` - Read current line - `Keypad 5` - Read current word - `Keypad 2` - Read current character ### Review Commands - `Keypad 7/9` - Previous/next line - `Keypad 4/6` - Previous/next word - `Keypad 1/3` - Previous/next character - `Fenrir + Keypad dot` - Exit review mode ### Table Navigation - `Fenrir + Keypad *` - Toggle table mode / highlight tracking - `Keypad 4/6` - Previous/next column (in table mode) - `Fenrir + Keypad 4/6` - First/last column (in table mode) - `Fenrir + X` - Set column headers (in table mode) ### Information - `Fenrir + T` - Announce time - `Fenrir + T T` - Announce date - `Keypad dot` - Cursor position ### Clipboard - `Fenrir + X` - Set mark - `Fenrir + C` - Copy marked text - `Fenrir + V` - Paste clipboard - `Fenrir + Shift + C` - Read current clipboard ### Settings (Runtime Changes) - `Fenrir + F3` - Toggle sound - `Fenrir + F4` - Toggle speech - `Fenrir + Up/Down` - Speech volume - `Fenrir + Right/Left` - Speech rate - `Fenrir + Ctrl + P` - Punctuation level ## Configuration ### Settings File Main configuration: `/etc/fenrir/settings/settings.conf` ### Key Sections - `[speech]` - Speech synthesis settings - `[sound]` - Sound output and icons - `[keyboard]` - Input and key bindings - `[screen]` - Screen reading configuration - `[general]` - General settings ### Common Settings ```ini [speech] enabled=True driver=speechdDriver rate=0.5 pitch=0.5 volume=1.0 [sound] enabled=True driver=genericDriver volume=0.7 [keyboard] driver=evdevDriver keyboard_layout=desktop [screen] driver=vcsaDriver ignore_screen= [remote] enable=True driver=unixDriver enable_settings_remote=True enable_command_remote=True ``` ## Remote Control Fenrir includes a powerful remote control system for automation and integration with external applications. ### Configuration Enable remote control in settings: ```ini [remote] enable=True driver=unixDriver # or tcpDriver port=22447 # for TCP driver enable_settings_remote=True # allow settings changes enable_command_remote=True # allow command execution ``` ### Basic Usage with socat #### Speech Control ```bash # Interrupt current speech echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Speak custom text echo "command say Hello, this is a test" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Temporarily disable speech echo "command tempdisablespeech" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Settings Control ```bash # Enable highlight tracking echo "setting set focus#highlight=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change speech parameters echo "setting set speech#rate=0.8" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#pitch=0.6" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#volume=0.9" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change punctuation level (none/some/most/all) echo "setting set general#punctuation_level=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Voice and TTS control echo "setting set speech#voice=en-us+f3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting set speech#module=espeak-ng" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Multiple settings at once echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuation_level=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset all settings echo "setting reset" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Save settings echo "setting save" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock echo "setting saveas /tmp/my-settings.conf" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Clipboard Operations ```bash # Add text to clipboard echo "command clipboard Text to copy" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Export clipboard to file echo "command exportclipboard" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` #### Application Control ```bash # Quit Fenrir echo "command quitapplication" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock ``` ### Command Reference **Speech Commands:** - `command say ` - Speak text - `command interrupt` - Stop speech - `command tempdisablespeech` - Disable until next key **Settings Commands:** - `setting set
#=` - Change setting - `setting reset` - Reset to defaults - `setting save` - Save current settings **Other Commands:** - `command clipboard ` - Add to clipboard - `command exportclipboard` - Export clipboard to file - `command window ` - Define window - `command resetwindow` - Reset window - `command vmenu ` - Set virtual menu - `command resetvmenu` - Reset virtual menu **Key Settings You Can Change:** - Punctuation level: `setting set general#punctuation_level=all` - Speech parameters: `setting set speech#rate=0.8;speech#pitch=0.6` - Voice selection: `setting set speech#voice=en-us+f3` - Character echo: `setting set keyboard#char_echo_mode=1` - Screen ignore: `setting set screen#ignore_screen=1,2,3` ### Scripting Integration #### Bash Helper Function ```bash fenrir_say() { echo "command say $1" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock } # Usage fenrir_say "Build completed" ``` #### Python Integration ```python import socket import os def send_fenrir_command(command): socket_path = "/tmp/fenrirscreenreader-deamon.sock" if os.path.exists(socket_path): sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: sock.connect(socket_path) sock.send(command.encode('utf-8')) finally: sock.close() send_fenrir_command("command say Process complete") ``` ## Advanced Features ### Table Navigation Mode Fenrir includes advanced table navigation capabilities for working with tabular data in terminal applications, CSV files, and formatted text output. #### Entering Table Mode 1. Press `Fenrir + Keypad *` (desktop) or `Fenrir + Y` (laptop) 2. Cycle through: Highlight tracking → Cursor tracking → Table mode 3. Listen for "table mode enabled" announcement #### Table Navigation Commands - **Column navigation**: `Keypad 4/6` - Move between columns - **Row boundaries**: `Fenrir + Keypad 4/6` - Jump to first/last column - **Cell characters**: `Fenrir + Keypad 1/3` - First/last character in cell - **Set headers**: `Fenrir + X` - Mark current line as column headers #### Table Features - **Automatic detection**: Supports CSV, pipe-separated, space-aligned columns - **Column headers**: Set and announce headers for better context - **Boundary feedback**: Audio cues when reaching row boundaries - **Cell-by-cell navigation**: Precise positioning within tables ### Progress Bar Monitoring Fenrir automatically detects and provides audio feedback for progress indicators. #### Progress Detection - **Percentage**: 45%, 67.5%, 100% - **Fractions**: 15/100, 3 of 10, Step 7/15 - **Progress bars**: [#### ], [====> ] - **Activity indicators**: Loading..., Processing... #### Audio Feedback - **Progress tones**: Ascending 400Hz-1200Hz frequency range - **Activity beeps**: 800Hz tone every 2 seconds - **Non-intrusive**: Doesn't interrupt speech or other audio #### Usage - **Enable**: Use `progress_bar_monitor` command (assign key binding) - **Automatic**: Works with downloads, compilations, installations - **Remote control**: Enable via socket commands ### Spell Checking - `Fenrir + S` - Spell check current word - `Fenrir + S S` - Add word to dictionary - `Fenrir + Shift + S` - Remove word from dictionary ### Bookmarks (1-10) - `Fenrir + Shift + [1-0]` - Set bookmark - `Fenrir + [1-0]` - Go to bookmark - `Fenrir + Ctrl + [1-0]` - Clear bookmark ### Multiple Clipboards - `Fenrir + Home/End` - First/last clipboard - `Fenrir + PageUp/PageDown` - Previous/next clipboard ### Window Mode 1. Set marks to define window area 2. `Fenrir + Keypad /` - Set window 3. `Fenrir + Keypad / /` - Clear window ## Drivers ### Speech Drivers - **speechdDriver** - Speech-dispatcher (recommended) - **genericDriver** - Command-line TTS (espeak, etc.) ### Sound Drivers - **genericDriver** - Sox-based (default) - **gstreamerDriver** - GStreamer-based ### Input Drivers - **evdevDriver** - Linux evdev (recommended for Linux) - **ptyDriver** - Terminal emulation (cross-platform) ### Screen Drivers - **vcsaDriver** - Linux VCSA devices (TTY) - **ptyDriver** - Terminal emulation ### Remote Drivers - **unixDriver** - Unix socket remote control (recommended) - **tcpDriver** - TCP socket remote control (localhost only) ## Command Line Options ``` fenrir [OPTIONS] ``` - `-h, --help` - Show help - `-v, --version` - Show version - `-f, --foreground` - Run in foreground - `-s, --setting FILE` - Custom settings file - `-o, --options SECTION#SETTING=VALUE;..` - Override settings - `-d, --debug` - Enable debug mode - `-p, --print` - Print debug to screen - `-e, --emulated-pty` - PTY emulation for desktop use - `-E, --emulated-evdev` - PTY + evdev emulation - `-F, --force-all-screens` - Ignore ignoreScreen setting - `-i, -I, --ignore-screen SCREEN` - Ignore specific screen(s), can be used multiple times ## Troubleshooting ### No Speech 1. Test speech-dispatcher: `sudo spd-say "hello"` 2. Check driver setting in configuration 3. Verify speech-dispatcher is running ### No Sound 1. Run audio configuration script: `configure_pulse.sh` or `configure_pipewire.sh` 2. Check sound driver setting 3. Verify sox installation ### No Input Response 1. Check permissions: `/dev/input/*` and `/dev/uinput` 2. Verify evdev driver setting 3. Run as root for testing ### Debug Mode ```bash sudo fenrir -f -d # Debug output goes to /var/log/fenrir.log ``` ## Getting Help - **Tutorial Mode**: `Fenrir + H` (interactive help) - **Wiki**: https://git.stormux.org/storm/fenrir/wiki - **Email**: stormux+subscribe@groups.io - **IRC**: irc.stormux.org #stormux ## See Also - [README.md](../README.md) - Installation and basic setup - [settings.conf](../config/settings/settings.conf) - Configuration reference - `man fenrir` - Manual pagefenrir/docs/user.txt000066400000000000000000001657671513650123000150340ustar00rootroot00000000000000====== Fenrir User Manual ====== Fenrir is a modern command line screen reader written in Python3. It has a modular structure, a flexible based driver model, is highly configurable and easy to customize and extend ([[fenrir_development_manual|see Developer Manual]]). Please see the following pages for the [[fenrir_current_version|current]] and [[fenrir_git_version|Git]] version of Fenrir. ====== Support and Requirements ====== Fenrir requires several drivers to interact with the operating system. ===== Speech Drivers ===== A speech driver is for communication with the text to speech system like [[#SpeechDispatcher|Speech-Dispatcher]] or [[http://espeak.sourceforge.net|Espeak]]. \\ See section [[#Speech|Speech]] in ''settings.conf'' for more information. ==== SpeechDispatcher ==== This driver is used by default. It uses Speech-dispatcher as its backend. Dependencies: * Speech-dispatcher (installed and configured, [[https://devel.freebsoft.org/speechd#sec2|Documentation]]) * Python-speechd ==== Espeak ==== Uses Espeak via Python bindings. Dependencies: * Espeak or Espeak-ng * [[https://launchpad.net/python-espeak|python-espeak]] ==== Generic ==== This invokes speech via a sub-process. This is almost the same as using the commandline. The performance depends on the overhead of the speech synthesis application but it is really flexible. Dependencies: * Espeak or Espeak-ng The Requirements are flexible, they depend on the configuration in settings.conf. ==== Dummy ==== this is just for debugging, logs are output to the screen and logged as well. ===== Sound Drivers ===== To play sound icons and similar.\\ See section [[#Sound|Sound]] in ''settings.conf'' for more information. ==== Generic ==== This driver is used by default. Dependencies: * [[http://sox.sourceforge.net/|Sox]] with opus support The Requirements are flexible, they depend on the configuration in settings.conf. ==== Gstreamer ==== if you prefer to use Gstreamer for sound output. Dependencies: * Gstreamer >= 1.x * Glibc ==== Dummy ==== this is just for debugging, logs are output to the screen and logged as well. ===== Input Drivers ===== Input drivers are to capture keyboard shortcuts issued to the screen reader \ See section [[#Keyboard|Keyboard]] in ''settings.conf'' for more information. ==== Evdev ==== This driver is used by default. Evdev is the low level input device framework for Linux. Dependencies: * python-evdev >=0.6.3 * pyudev * loaded uinput kernel module * exclusive access to the input devices Read permission to the following files and services: * /dev/input * /dev/uinput ===== Screen Drivers ===== The job of a screen driver is to get the information of current screen content.\\ See section [[#Screen|Screen]] in ''settings.conf'' for more information. ==== VCSA ==== This driver is used by default. For Linux VCSA devices. These exist on any current standard installation of Linux. Dependencie s: * python-dbus Read permission to the following files and services (or run as root): * /sys/devices/virtual/tty/tty0/active * /dev/tty[1 - 64] * /dev/vcsa[1 - 64] ([[https://linux.die.net/man/4/vcsa|VCSA manpage]]) * read Logind DBUS ===== Braille Drivers ===== This is for Braille support. Braille is currently a work in progress and is planned for the Fenrir 2.0 release.\\ See section [[#Braille|Braille]] in ''settings.conf'' for more information. ==== BRLTTY ==== This driver is used by default. It uses [[brltty|BrlTTY]] to communicate with with a Braille device. Dependencies: * BrlTTY (configured and running, [[http://mielke.cc/brltty/doc/Manual-BRLTTY/English/BRLTTY.html|Documentation]]) * python-brlapi (configured, [[http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html|Documentation]]) ===== Currently supported platforms ===== Currently Fenrir completely supports the following Platforms: * Linux TTY Support for further Systems are planned. ====== Installation ====== Fenrir can run without installation. It just requires the dependencies are installed first. We recommend to try it out before installation to be sure everything works and prevent yourself from experiencing a non-talking environment. ===== Try Out ===== Fenrir does not require installation. You can try it and make sure everything works before you decide to install. In this way you can be sure that your system doesnt break or stop talking. for that you can just grab the code and run as root ''src/fenrir/fenrir'' (in foreground) or ''src/fenrir/fenrir-daemon'' (in background, used by systemd for autostart) ===== Install it ===== ==== Documented operating systems ==== ==== Arch Linux ==== For Arch there are PKGBUILDs in the AUR: * [[https://aur.archlinux.org/packages/fenrir/|fenrir]] * [[https://aur.archlinux.org/packages/fenrir-git/|fenrir-git]] ==== Manual ==== - Download the latest stable version from the [[https://linux-a11y.org/index.php?page=fenrir-screenreader|Fenrir-Project]] site. - Unpack the archive - Check the needed Dependencys by running [[https://git.stormux.org/storm/fenrir/src/branch/master/check-dependencies.py|check-dependencys.py]] script - install the missing dependencies an standard installation requires the following: * python3 >= 3.3 (and all the following is needed for python3 ) * python3-speechd (screen) * python3-dbus (screen) * python3-evdev >= 0.6.4(input) * python3-daemonize (background service) * python3-brlapi (braille) * python3-pyenchant (spellchecker) * your language for aspell (aspell-) (spellchecker) * sox (sound) * For an individual installation see [[#Support and Requirements|Support and Requirements]] or consult the [[https://git.stormux.org/storm/fenrir/src/branch/master/README.md|Readme]]) - run "install.sh" as root this installs Fenrir as the following * Application:''/opt/fenrir'' * Settings:''/etc/fenrir'' * Sound Icons:''/usr/share/fenrirscreenreader/'' to remove Fenrir just run uninstall.sh as root ==== Git ==== if you want to get the latest code you can use git to get a development snapshot: git clone https://git.stormux.org/storm/fenrir.git ===== Auto Start ===== To start Fenrir once: systemctl start fenrir To enable auto start on system boot: systemctl enable fenrir ====== First Steps ====== If you are using Fenrir for the first time you may want to take a look at these resources: * [[#Keybindings|Keybindings]] * [[#Tutorial Mode|Tutorial Mode]] ====== Features ====== ===== Commands ===== ==== Keybindings ==== Normal commands can be invoked in two ways: - Using a Metakey ([[#Fenrir Key|FenrirKey]]) - Shortcuts with a single key See section [[#Keyboard|Keyboard]] in ''settings.conf'' for more information. === Fenrir Key === The Fenrir Key is for invoking screen reader commands. Fenrir can utilize more than one FenrirKey at the same time. By default the following keys are used: - Insert - KeyPad Insert - Meta (Super, Windows) === Script Key === To invoke "Scripts" the Script Key is mandatory. The shortcut is encoded in the filename of the script. See [[#Scripting|Scripting]] === Desktop Layout === ^Shortcut ^Command ^ |FenrirKey + H|[[#Tutorial Mode|toggle tutorial mode]]| |CTRL|[[#shut up|shut up (interrupts speech)]]| |FenrirKey + KeyPad 9|[[#review bottom|reviews bottom]]| |FenrirKey + KeyPad 7|[[#review top|reviews top]]| |KeyPad 8|[[#review current line|reviews current line]]| |KeyPad 7|[[#review previous line|reviews previous line]]| |KeyPad 9|[[#review next line|reviews next line]]| |FenrirKey + KeyPad 4|[[#review line beginning|reviews line beginning]]| |FenrirKey + KeyPad 6|[[#review line ending|reviews line ending]]| |FenrirKey + KeyPad 1|[[#review line first character|reviews line first character]]| |FenrirKey + KeyPad 3|[[#review line last character|reviews line last character]]| |FenrirKey + Alt + 1|[[#present first line|presents first line]]| |FenrirKey + Alt + 2|[[#present last line|presents last line]]| |KeyPad 5|[[#review current word|reviews current word]]| |KeyPad 4|[[#review previous word|reviews previous word]]| |KeyPad 6|[[#review next word|reviews next word]]| |FenrirKey + Shift + KeyPad 5|[[#review current word phonetic|reviews current word phonetic]]| |FenrirKey + Shift + KeyPad 4|[[#review previous word phonetic|reviews previous word phonetic]]| |FenrirKey + Shift + KeyPad 6|[[#review next word phonetic|reviews next word phonetic]]| |KeyPad 2|[[#review current character|reviews current char]]| |KeyPad 1|[[#review previous character|reviews previous char]]| |KeyPad 3|[[#review next character|reviews next char]]| |FenrirKey + Shift + KeyPad 2|[[#review current character phonetic|reviews current character phonetic]]| |FenrirKey + Shift + KeyPad 1|[[#review previous character phonetic|reviews previous character phonetic]]| |FenrirKey + Shift + KeyPad 3|[[#review next character phonetic|reviews next character phonetic]]| |FenrirKey + CTRL + KeyPad 8|[[#review up|reviews up]]| |FenrirKey + CTRL + KeyPad 2|[[#review down|reviews down]]| |FenrirKey + KeyPad dot|[[#exit review|exit review]]| |KeyPad dot|[[#cursor position|cursor position]]| |FenrirKey + I|[[#indent current line|indent curr line]]| |FenrirKey + KeyPad 5|[[#current screen|current screen]]| |FenrirKey + KeyPad 8|[[#current screen before cursor|current screen before cursor]]| |FenrirKey + KeyPad 2|[[#current screen after cursor|current screen after cursor]]| ||[[#cursor read to end of line|cursor read to end of line]]| ||[[#cursor column|cursor column]]| ||[[#cursor line number|cursor line number]]| ||[[#braille flush|Braille flush]]| ||[[#braille pan left|Braille pan left]]| ||[[#braille pan right|Braille pan right]]| ||[[#braille return to cursor|Braille return to cursor]]| |FenrirKey + CTRL + 1|[[#clear Bookmark X|clear bookmark 1]]| |FenrirKey + Shift + 1|[[#set Bookmark X|set bookmark 1]]| |FenrirKey + 1|[[#read Bookmark X|bookmark 1]]| |FenrirKey + CTRL + 2|[[#clear Bookmark X|clear bookmark 2]]| |FenrirKey + Shift + 2|[[#set Bookmark X|set bookmark 2]]| |FenrirKey + 2|[[#read Bookmark X|bookmark 2]]| |FenrirKey + CTRL + 3|[[#clear Bookmark X|clear bookmark 3]]| |FenrirKey + Shift + 3|[[#set Bookmark X|set bookmark 3]]| |FenrirKey + 3|[[#read Bookmark X|bookmark 3]]| |FenrirKey + CTRL + 4|[[#clear Bookmark X|clear bookmark 4]]| |FenrirKey + Shift + 4|[[#set Bookmark X|set bookmark 4]]| |FenrirKey + 4|[[#read Bookmark X|bookmark 4]]| |FenrirKey + CTRL + 5|[[#clear Bookmark X|clear bookmark 5]]| |FenrirKey + Shift + 5|[[#set Bookmark X|set bookmark 5]]| |FenrirKey + 5|[[#read Bookmark X|bookmark 5]]| |FenrirKey + CTRL + 6|[[#clear Bookmark X|clear bookmark 6]]| |FenrirKey + Shift + 6|[[#set Bookmark X|set bookmark 6]]| |FenrirKey + 6|[[#read Bookmark X|bookmark 6]]| |FenrirKey + CTRL + 7|[[#clear Bookmark X|clear bookmark 7]]| |FenrirKey + Shift + 7|[[#set Bookmark X|set bookmark 7]]| |FenrirKey + 7|[[#read Bookmark X|bookmark 7]]| |FenrirKey + CTRL + 8|[[#clear Bookmark X|clear bookmark 8]]| |FenrirKey + Shift + 8|[[#set Bookmark X|set bookmark 8]]| |FenrirKey + 8|[[#read Bookmark X|bookmark 8]]| |FenrirKey + CTRL + 9|[[#clear Bookmark X|clear bookmark 9]]| |FenrirKey + Shift + 9|[[#set Bookmark X|set bookmark 9]]| |FenrirKey + 9|[[#read Bookmark X|bookmark 9]]| |FenrirKey + CTRL + 0|[[#clear Bookmark X|clear bookmark 10]]| |FenrirKey + Shift + 0|[[#set Bookmark X|set bookmark 10]]| |FenrirKey + 0|[[#read Bookmark X|bookmark 10]]| |FenrirKey + KeyPad Slash|[[#Create Window|set window application]]| |2 * FenrirKey + KeyPad Slash|[[#Remove Window|clear window application]]| |KeyPad Plus|[[#last incoming|read last incoming]]| |FenrirKey + F2|[[#toggle braille|toggles braille]]| |FenrirKey + F3|[[#toggle sound|toggles sound]]| |FenrirKey + F4|[[#toggle speech|toggles speech]]| |KeyPad Enter|[[#disable speech temporarily|temporarily disables speech]]| |FenrirKey + CTRL + P|[[#toggle punctuation level|toggles punctuation level]]| |FenrirKey + RightBrace|[[#toggle auto spell check|toggle auto spell check]]| |FenrirKey + Backslash|[[#toggle output|toggles output]]| |FenrirKey + CTRL + E|[[#toggle emoticons|toggles emoticons]]| |FenrirKey + KeyPad Enter|[[#toggle auto read|toggles auto read]]| |FenrirKey + CTRL + T|[[#toggle auto time|toggles auto time]]| |FenrirKey + KeyPad ASTERISK|[[#toggle highlight tracking|toggles highlight tracking]]| |FenrirKey + Q|[[#quit Fenrir|quits fenrir]]| |FenrirKey + T|[[#Time|Announce time]]| |2 * FenrirKey + T|[[#Date|Announce date]]| |FenrirKey + S|[[#spell check|spell check]]| |2 * FenrirKey + S|[[#add word to spell check|add word to spell check]]| |FenrirKey + Shift + S|[[#removes word from spell check|removes word from spell check]]| |FenrirKey + Backspace|[[#forward keypress|forward keypress]]| |FenrirKey + Up|[[#increase speech volume|increase speech volume]]| |FenrirKey + Down|[[#decrease speech volume|decrease speech volume]]| |FenrirKey + Right|[[#increase speech rate|increase speech rate]]| |FenrirKey + Left|[[#decrease speech rate|decrease speech rate]]| |FenrirKey + Alt + Right|[[#increase speech pitch|increase speech pitch]]| |FenrirKey + Alt + Left|[[#decrease speech pitch|decrease speech pitch]]| |FenrirKey + Alt + Up|[[#increase sound volume|increase sound volume]]| |FenrirKey + Alt + Down|[[#decrease sound volume|decrease sound volume]]| |FenrirKey + CTRL + Shift + C|[[#clear clipboard|clears clipboard]]| |FenrirKey + Home|[[#first clipboard|first clipboard]]| |FenrirKey + End|[[#last clipboard|last clipboard]]| |FenrirKey + PageUp|[[#previous clipboard|previous clipboard]]| |FenrirKey + PageDown|[[#next clipboard|next clipboard]]| |FenrirKey + Shift + C|[[#read current clipboard|current clipboard]]| |FenrirKey + C|[[#copy marked to clipboard|copy marked text to clipboard]]| |FenrirKey + V|[[#paste clipboard|paste clipboard contents]]| |FenrirKey + P|[[#import clipboard from file|import clipboard from file]]| |FenrirKey + Alt + Shift +C|[[#export clipboard to file|export clipboard to file]]| |FenrirKey + CTRL + Shift + X|[[#Remove Marks|remove marks]]| |FenrirKey + X|[[#Set mark|set mark]]| |FenrirKey + Shift + X|[[#Get text between marks|announce marked text]]| ^Linux specific ^ ||export clipboard to X| |FenrirKey + CTRL + Up|include Alsa volume| |FenrirKey + CTRL + Down|decrease Alsa volume| === Laptop Layout === ^Shortcut ^Command ^ |FenrirKey + H|[[#Tutorial Mode|toggle tutorial mode]]| |CTRL|[[#shut up|shut up (interrupts speech)]]| |FenrirKey + Shift + O|[[#review bottom|reviews bottom]]| |FenrirKey + Shift + U|[[#review top|reviews top]]| |FenrirKey + I|[[#review current line|reviews current line]]| |FenrirKey + U|[[#review previous line|reviews previous line]]| |FenrirKey + O|[[#review next line|reviews next line]]| |FenrirKey + Shift + J|[[#review line beginning|reviews line beginning]]| |FenrirKey + Shift + L|[[#review line ending|reviews line ending]]| |FenrirKey + CTRL + J|[[#review line first character|reviews line first character]]| |FenrirKey + CTRL + L|[[#review line last character|reviews line last character]]| |FenrirKey + Alt + 1|[[#present first line|presents first line]]| |FenrirKey + Alt + 2|[[#present last line|presents last line]]| |FenrirKey + K|[[#review current word|reviews current word]]| |FenrirKey + J|[[#review previous word|reviews previous word]]| |FenrirKey + L|[[#review next word|reviews next word]]| |FenrirKey + CTRL + ALT + K|[[#review current word phonetic|reviews current word phonetic]]| |FenrirKey + CTRL + ALT + J|[[#review previous word phonetic|reviews previous word phonetic]]| |FenrirKey + CTRL + ALT + L|[[#review next word phonetic|reviews next word phonetic]]| |FenrirKey + comma|[[#review current character|reviews current character]]| |FenrirKey + M|[[#review previous character|reviews previous character]]| |FenrirKey + dot|[[#review next character|reviews next character]]| |FenrirKey + CTRL + ALT + comma|[[#review current character phonetic|reviews current character phonetic]]| |FenrirKey + CTRL + ALT + M|[[#review previous character phonetic|reviews previous character phonetic]]| |FenrirKey + CTRL + ALT + dot|[[#review next character phonetic|reviews next character phonetic]]| |FenrirKey + CTRL + I|[[#review up|reviews up]]| |FenrirKey + CTRL + comma|[[#review down|reviews down]]| |FenrirKey + Slash|[[#exit review|exit review]]| |FenrirKey + Shift + dot|[[#cursor position|cursor position]]| |2 * FenrirKey + I|[[#indent current line|indent curr line]]| |FenrirKey + Shift + K|[[#current screen|current screen]]| |FenrirKey + Shift + I|[[#current screen before cursor|current screen before cursor]]| |FenrirKey + Shift + comma|[[#current screen after cursor|current screen after cursor]]| ||[[#cursor read to end of line|cursor read to end of line]]| ||[[#cursor column|cursor column]]| ||[[#cursor line number|cursor line number]]| ||[[#braille flush|Braille flush]]| ||[[#braille pan left|Braille pan left]]| ||[[#braille pan right|Braille pan right]]| ||[[#braille return to cursor|Braille return to cursor]]| |FenrirKey + CTRL + 1|[[#clear Bookmark X|clear bookmark 1]]| |FenrirKey + Shift + 1|[[#set Bookmark X|set bookmark 1]]| |FenrirKey + 1|[[#read Bookmark X|bookmark 1]]| |FenrirKey + CTRL + 2|[[#clear Bookmark X|clear bookmark 2]]| |FenrirKey + Shift + 2|[[#set Bookmark X|set bookmark 2]]| |FenrirKey + 2|[[#read Bookmark X|bookmark 2]]| |FenrirKey + CTRL + 3|[[#clear Bookmark X|clear bookmark 3]]| |FenrirKey + Shift + 3|[[#set Bookmark X|set bookmark 3]]| |FenrirKey + 3|[[#read Bookmark X|bookmark 3]]| |FenrirKey + CTRL + 4|[[#clear Bookmark X|clear bookmark 4]]| |FenrirKey + Shift + 4|[[#set Bookmark X|set bookmark 4]]| |FenrirKey + 4|[[#read Bookmark X|bookmark 4]]| |FenrirKey + CTRL + 5|[[#clear Bookmark X|clear bookmark 5]]| |FenrirKey + Shift + 5|[[#set Bookmark X|set bookmark 5]]| |FenrirKey + 5|[[#read Bookmark X|bookmark 5]]| |FenrirKey + CTRL + 6|[[#clear Bookmark X|clear bookmark 6]]| |FenrirKey + Shift + 6|[[#set Bookmark X|set bookmark 6]]| |FenrirKey + 6|[[#read Bookmark X|bookmark 6]]| |FenrirKey + CTRL + 7|[[#clear Bookmark X|clear bookmark 7]]| |FenrirKey + Shift + 7|[[#set Bookmark X|set bookmark 7]]| |FenrirKey + 7|[[#read Bookmark X|bookmark 7]]| |FenrirKey + CTRL + 8|[[#clear Bookmark X|clear bookmark 8]]| |FenrirKey + Shift + 8|[[#set Bookmark X|set bookmark 8]]| |FenrirKey + 8|[[#read Bookmark X|bookmark 8]]| |FenrirKey + CTRL + 9|[[#clear Bookmark X|clear bookmark 9]]| |FenrirKey + Shift + 9|[[#set Bookmark X|set bookmark 9]]| |FenrirKey + 9|[[#read Bookmark X|bookmark 9]]| |FenrirKey + CTRL + 0|[[#clear Bookmark X|clear bookmark 10]]| |FenrirKey + Shift + 0|[[#set Bookmark X|set bookmark 10]]| |FenrirKey + 0|[[#read Bookmark X|bookmark 10]]| |FenrirKey + CTRL + 8|[[#Create Window|set window application]]| |2 * FenrirKey + CTRL + 8|[[#Remove Window|clear window application]]| |FenrirKey + Semicolon|[[#last incoming|read last incoming]]| |FenrirKey + F2|[[#toggle braille|toggles braille]]| |FenrirKey + F3|[[#toggle sound|toggles sound]]| |FenrirKey + F4|[[#toggle speech|toggles speech]]| |FenrirKey + Enter|[[#disable speech temporarily|temporarily disables speech]]| |FenrirKey + Shift + CTRL + P|[[#toggle punctuation level|toggles punctuation level]]| |FenrirKey + RightBrace|[[#toggle auto spell check|toggle auto spell check]]| |FenrirKey + Shift + Enter|[[#toggle output|toggles output]]| |FenrirKey + Shift + E|[[#toggle emoticons|toggles emoticons]]| |FenrirKey + Enter|[[#toggle auto read|toggles auto read]]| |FenrirKey + CTRL + T|[[#toggle auto time|toggles auto time]]| |FenrirKey + Y|[[#toggle highlight tracking|toggles highlight tracking]]| |FenrirKey + Q|[[#quit Fenrir|quits fenrir]]| |FenrirKey + T|[[#Time|Announce time]]| |2 * FenrirKey + T|[[#Date|Announce date]]| |FenrirKey + S|[[#spell check|spell check]]| |2 * FenrirKey + S|[[#add word to spell check|add word to spell check]]| |FenrirKey + Shift + S|[[#removes word from spell check|removes word from spell check]]| |FenrirKey + Backspace|[[#forward keypress|forward keypress]]| |FenrirKey + Up|[[#increase speech volume|increase speech volume]]| |FenrirKey + Down|[[#decrease speech volume|decrease speech volume]]| |FenrirKey + Right|[[#increase speech rate|increase speech rate]]| |FenrirKey + Left|[[#decrease speech rate|decrease speech rate]]| |FenrirKey + Alt + Right|[[#increase speech pitch|increase speech pitch]]| |FenrirKey + Alt + Left|[[#decrease speech pitch|decrease speech pitch]]| |FenrirKey + Alt + Up|[[#increase sound volume|increase sound volume]]| |FenrirKey + Alt + Down|[[#decrease sound volume|decrease sound volume]]| |FenrirKey + CTRL + Shift + C|[[#clear clipboard|clears clipboard]]| |FenrirKey + Home|[[#first clipboard|first clipboard]]| |FenrirKey + End|[[#last clipboard|last clipboard]]| |FenrirKey + PageUp|[[#previous clipboard|previous clipboard]]| |FenrirKey + PageDown|[[#next clipboard|next clipboard]]| |FenrirKey + Shift + C|[[#read current clipboard|current clipboard]]| |FenrirKey + C|[[#copy marked to clipboard|copy marked text to clipboard]]| |FenrirKey + V|[[#paste clipboard|paste clipboard contents]]| |FenrirKey + F5|[[#import clipboard from file|import clipboard from file]]| |FenrirKey + Alt + Shift +C|[[#export clipboard to file|export clipboard to file]]| |FenrirKey + CTRL + Shift + X|[[#Remove Marks|remove marks]]| |FenrirKey + X|[[#Set mark|set mark]]| |FenrirKey + Shift + X|[[#Get text between marks|announce marked text]]| ^Linux specific ^ ||export clipboard to X| |FenrirKey + CTRL + Up|increases Alsa volume| |FenrirKey + CTRL + Down|decreases Alsa volume| ==== General ==== === quit Fenrir === Just stops fenrir. === shut up === Interrupt the current spoken. ==== Review Modes ==== Fenrir provides a virtual cursor, with it you can navigate all over the screen without changing the text cursor. Using the review feature will open the review mode automatically. The review cursor always starts from the text cursor. Attention: after using the review mode, the review cursor will stay open until you use the ''exit review'' shortcut. Think when using clipboard operations and similar. The review cursor is always prefered over the text cursor. Fenrir sounds a bell sound if the used review command jumps to another line or end of screen. === exit review === You can leave the review mode by pressing the ''exit review'' shortcut. === review bottom === Set the review cursor to first column in the last line. === review top === Set the review cursor to the first column in the first line === review current line === Set the review cursor to the beginn of the the current line and review it. === review previous line === Set the review cursor to the previous line and review it. === review next line === Set the review cursor to the next line and review it. === review line beginning === Set the review cursor to the begin of the current line === review line ending === Set the review cursor to the end of the current line === review line first character === Set the review cursor the first char (that is not space) in the current line and review it. === review line last character === Set the review cursor the last char (that is not space) in the current line and review it. === review current word === Sets the review cursor to the beginning of the current word and review it. === review previous word === Sets the review cursor to the beginning of the previous word and review it. === review next word === Sets the review cursor to the beginning of the next word and review it. === review current word phonetic === Sets the review cursor to the beginning of the current word and spell it phonetic. === review previous word phonetic === Sets the review cursor to the beginning of the previous word and spell it phonetic. === review next word phonetic === Sets the review cursor to the beginning of the next word and spell it phonetic. === review current character === Does not change the review cursor. Just announce the current char. === review previous character === Sets review cursor to the previous column and review it === review next character === Sets review cursor to the next column and review it === review current character phonetic === Does not change the review cursor. Just announce the current char phonetic. === review previous character phonetic === Sets review cursor to the previous column and announce the char phonetic. === review next character phonetic === Sets review cursor to the next column and announce the char phonetic. === review up === Set the review cursor in the same column one line above the current one and review it. === review down === Set the review cursor in the same column one line below the current one and review it. ==== Handling marking ==== A mark defines a point of origin or end to prepare to copy or paste a block of text. \\ Examples where you need marks are: * copy to clipboard * set window application * set bookmark 1 - X === Set mark === How to set a mark: - navigate with review or textcursor to the position you want to set the mark. Attention: if a review cursor is set, that is the prefered. If you want to use text cursor, be sure that you are not in review mode. - press shortcut for ''set mark'' you can set two marks (begin and end). Some commands allow some simpler usecases just using the whole line if only one mark is set. you may want to try this out. === Get text between marks === To get the text that is currently between your marks press shortcut for ''marked text''.\\ === Remove Marks === You can remove all current marks by pressing the shortcut for ''remove marks''. Changing the screen also removes the marks. ==== Screen Interaction ==== Fenrir provides several methods to interact with the current screen. === forward keypress === This just forwards the next shortcut to the screen Fenrir shortcut or not. This is useful if the currently pressed shortcut is also in use by Fenrir. === Clipboard === Fenrir provides a clipboard with multible items represented by a list. You navigate throught the list and paste the selected clipboard. == copy marked to clipboard == To copy something to the clipboard you need to set one or two marks. if you set one mark, the text between the mark and your current cursor is copied to clipboard. Setting two marks just copies the text between the marks into the clipboard. If you copy something it is always placed as the first item on your clipboard. == clear clipboard == You can remove all items from the current clipboard by ''clear clipboard'' functionality. == first clipboard == This moves quick to the first item of the clipboard. == last clipboard == This moves quick to the last item of the clipboard. == previous clipboard == Go to previous item in the clipboard. == next clipboard == Go to next item on the clipboard. == read current clipboard == Read the content of the current item of the clipboard. == paste clipboard == Pass whatever item is currently selected by first, last, prev or next clipboard commands. if no special clipboard is selected the (last copied) is used. == export clipboard to file == This allows you to export the current clipboard to a configurable filepath. This is useful to share the clipboard with a graphical desktop. == import clipboard from file == Import a clipboard from a configurable file. This is useful to share the clipboard with a graphical desktop. ==== Quick Settings ==== Fenrir provides shortcuts to change settings temporarily and on the fly without the need to permanently change the ''settings.conf'' file. === toggle braille === Enables and disables Braille. This is not persistent stored in your ''settings.conf'' but during run time. === toggle sound === Enables and disables sound. This is not persistent stored in your ''settings.conf'' but during run time. === toggle speech === Enables and disables speech. This is not persistent stored in your ''settings.conf'' but during run time. === disable speech temporarily === Disables the speech until next key press. it might be useful if you want to listen to music or similar. As soon as a key is pressed it is going to be enabled again. === toggle punctuation level === Cycle between all available punctuation levels. This is not persistent stored in your ''settings.conf'' but during run time. === toggle auto spell check === Enables and disables automatic spellchecker (when typing). This is not persistent stored in your ''settings.conf'' but during run time. === toggle emoticons === Enables and disables emoticons. This is not persistent stored in your ''settings.conf'' but during runtime. === toggle output === Enables and disables all output at once (sound, Braille, speech). This is not persistent stored in your ''settings.conf'' but during run time. === toggle auto read === Enables and disables what is automatically spoken. This is not persistent stored in your ''settings.conf'' but during run time. === toggle auto time === Enables and disables auto time functionality. This is not persistent stored in your ''settings.conf'' but during run time. === toggle highlight tracking === Enables and disables highlight tracking. This is not persistent stored in your ''settings.conf'' but during run time. === increase speech volume === Increase the volume of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === decrease speech volume === Decrease the volume of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === increase speech rate === Increase the rate of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === decrease speech rate === Decrease the rate of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === increase speech pitch === Increase the pitch of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === decrease speech pitch === Decrease the pitch of the speech. This is not persistent stored in your ''settings.conf'' but during runtime. === increase sound volume === Increase the volume of the sound. This is not persistent stored in your ''settings.conf'' but during runtime. === decrease sound volume === Decrease the volume of the sound. This is not persistent stored in your ''settings.conf'' but during runtime. ==== Window Mode ==== Fenrir supports window mode, a window is a partial area of the screen. === Create Window === To create a window you need to do the following: - set a beginning mark (as the start of the window) - set an end mark (where the window should end) - press ''set window application'' shortcut. Now Fenrir ignores anything outside of the window.\\ === Remove Window === You can remove the window by pressing ''the clear window application'' shortcut. Now Fenrir will read everything on the screen again. ==== Tracking Modes ==== Different types of tracking are currently supported See section [[#Focus|Focus]] in ''settings.conf'' for more information. === Cursor Tracking === This follows the text cursor. This is the typical way an application works. This is used by: * almost any shell such as (Bash, Zsh, sh) * vim * nano * emacs * mutt * tintin++ === Highlight Tracking === In some applications there are no text cursors. In those applications cursor changes are represented by different colors or attributes (underlined or bold). This mode tracks and announces these changes for you. This is used by: * wifi-menu * dialog * alpine ==== Tutorial Mode ==== Fenrir provides a Tutorial mode. When you enter tutorial mode, screen reader commands are intercepted and explained instead of executing them. ''Arrow up'' and ''Arrow Down'' let you navigate through a list of all available commands with shortcuts and description. Pressing escape leaves the tutorial mode. ==== Information ==== === Time === Announces the current Time. === Date === Announces the current Date. === Bookmarks === Bookmarks provide quick access to part of the screen without the need to navigate to the area. By default Fenrir provides 10 bookmarks. Those can be set and accessed via shortcut. This is useful for status lines or other information where the position does not change. == set Bookmark X == You need to set the bookmark first. For that you have to set one or two lines for use. - Set marks (one or two) - press shortcut for ''set bookmark X''. X represents the number 1 - 10. == read Bookmark X == If a bookmark is set you can access the area just by pressing the ''bookmark X'' shortcut. X represents the number 1 - 10. Bookmarks are dynamic. That means the content changes with the screen. == clear Bookmark X == to remove a bookmark just press the ''clear bookmark X'' shortcut. X represents the number 1 - 10. Afterward the bookmark is no longer available. === cursor position === You can get information about the current cursor and its position by using the "cursor position" functionality. === indent current line === Announce the current indent level of the current line. It represents the number of trailing spaces of the line. === current screen === Reads all the current screen from the beginning to the end. === current screen before cursor === Reads current screen from the beginning of the screen to the current cursor position. === current screen after cursor === Read anything after current cursor position to the end. === cursor read to end of line === Read from the current cursor position to the end of the current line. === cursor column === Read the current X position of a cursor (column of the current line). === cursor line number === Read the current Y position of a cursor (line number). === present first line === Reads just the first line. this is maybe useful for status information. === present last line === Presets the last line. This is maybe useful for status information. === last incoming === Repeat the last automatically incoming text. ===== Input ===== ==== Echo ==== Fenrir provides different methods of echoing content: * Word: Will speak each word after you push space * Character: speak any letter you type on the screen * Delete Character: speaks the character prior to the cursor when you push backspace ==== Silence on Key press ==== ==== Spellchecker ==== Fenrir has a built-in spellchecker, it can invoke automatically while typing or be called by a shortcut. Commands to add or remove the current word to the dictionary are included. As using the spellchecker is enhanced usage. You will need dictionary aspell-. See section [[#General|General]] in ''settings.conf'' for more information. === spell check === Invokes the spellcheck on the word that contains the Review or text cursor. === add word to spell check === Adds the word under the Review or Text cursor to the dictionary. === removes word from spell check === Removes the word under the Review or Text cursor from the dictionary. ===== Announcements ===== ==== Emoticons ==== If you want to replace ":)" emoticons with "smile" in speech you can use this feature. It can be toggled on or off. You can define emoticons in a dictionary, please see Emoticon Dictionary. See section [[#General|General]] in ''settings.conf'' to see how to enable or disable this feature. ==== Time ==== Announce the time at periodical increments, To track the time easily. You can define 2 different ways of time announcements. - periodic - on fix minutes Example periodic, every 20 minutes "delaySec=20": [time] enabled=True presentTime=True presentDate=True delaySec=20 onMinutes= announce=True interrupt=False Example on fix minutes in an hour. example every quarter "delaySec=0" and "onMinutes=00,15,30,45": [time] enabled=True presentTime=True presentDate=True #delaySec is repected bevore onMinutes so it need to be set to 0 delaySec=0 onMinutes=00,15,30,45 announce=True interrupt=False ==== Punctuation ==== Fenrir handles punctuation levels and names for you with several provided dictionaries. See levelDict See punctuationDict ===== Braille ===== Fenrir provides Braille support in Version >= 2.0. See section [[#Braille|Braille]] in ''settings.conf'' for more information. ==== braille flush ==== If a message appears on the Braille device you can flush it to get back to the review- or system cursor ==== Braille pan left ==== If a line is longer than your Braille devices you can move the view (called panning) to the left. So you can read stuff without the need to move the review- or system cursor. ==== Braille pan right ==== If a line is longer than your Braille devices you can move the view (called panning) to the right. So you can read stuff without the need to move the review- or system cursor. ==== braille return to cursor ==== When you have finished reading the line on the Braille device using panning, the focus can be returned to the current used cursor by using "return to cursor" command. ===== Dictionary ===== You can make use of different kinds of built-in dictionary's. A dictionary has a name and list of keys and values separated by :===: Example: [customDict] Chrys:===:Chrys is cool lollipop:===:lolli that means that every instance "chrys" is displayed, speech will say Chrys is cool. "lollipop" is spoken as "lolli". Before making changes to a dictionary we recommend making a backup of your current dictionary in case future updates overwrite your local changes. ==== Punctuation ==== === Level === The punctuation level dict contains lists with "what punctuation is spoken in what level". the default one looks like this: [levelDict] none:===: some:===:.-$~+*-/\@ most:===:.,:-$~+*-/\@!#%^&*()[]}{<>; all:===:!"#$%& \'()*+,-./:;<=>?@[\\]^_`{|}~ the level "none" has no values. so it should not speak any punctuation (sadly this is not respected by every TTS system) if "some" is the current level the following are spoken: dot dash dollar tilde plus star slash backslash at. same for most and all, you can add new levels. if you cycle punctuation levels they are recognized. the default punctuation level is set in settings.conf. The default is "some". === Punctuation === The punctuation dictionary "[punctDict]" contains how the punctuation is spoken. Example: [punctDict] _:===:line speaks an _ as "line". [punctDict] _:===:underscore speaks an _ as underscore. for question mark an ? is appended to the word that the TTS system can announce the question correctly. ==== Custom ==== The dict "[customDict]" is just for your own use, it just replace the key with the value without any special functionality. This might be used to fix incorrectly spoken words, make words more common, shorter or just for fun. :) ==== Emoticons ==== The Emoticons dictionary "[emoticonDict]" by default contains some emoticons. it can replace ":)" with "smile" or "XD" with "loool" Making chat more colorful. A nice feature with this dictionary is that you can toggle the substitution on or off during run time or in settings.conf. This is useful because while doing programming or other serious work you want to hear colons and perryns not smiles. ====== Configuration ====== You can configure Fenrir in the following places (ordered by priority): - Commandline Parameters ''-o'' see [[#Set settings coption|Set settings coption]] - /etc/fenrir/settings/settings.conf see [[#Settings|Settigns]] - /config/settings/settings.conf see [[#Settings|Settigns]] - hard coded defaults ===== Commandline Arguments ===== ==== Set settings option ==== You can specify options that overwrite the setting.conf. This is done with ''-o '' parameter. The list of options have the following syntax fenrir -o "section#setting=value;section#setting=value" For example changing the sound driver to gstreamer and disabling Braille fenrir -o "sound#driver=gstreamerDriver;braille#enabled=False=False" or change the debug level to verbose fenrir -o "general#debugLevel=3" You can find the available sections and variables here [[#Settings]] See Syntax [[#settings.conf syntax]] ==== settings.conf syntax ==== the syntax of the [[#Settings|settings.conf]] is quite simple and similar to a "*.ini" file, there are 4 different elements. - Sections - Settings - Values - Comments A comment starts with a # and is ignored by Fenrir. # this is a comment To group settings we have sections. A section can look like this: [Section] A setting looks like this: settingName=Value Example: [sound] # Turn sound on or off: enabled=True # Select the driver used to play sounds, choices are genericDriver and gstreamerDriver. # Sox is default. driver=genericDriver ===== Settings ===== ==== Sound ==== The sound is configured in section ''[sound]''. Turn sound on or off: enabled=True Values: on=''True'', off=''False'' Select the driver used to play sounds. The genericDriver using Sox is the default. driver=genericDriver Available Drivers: * ''genericDriver'' using the generic driver, for Fenrir <1.5 just use ''generic'' * ''gstreamerDriver'' using the gstreamer, for Fenrir <1.5 just use ''gstreamer'' These are the pack of sounds used for sound icons. theme=default By default we ship two sound packs. - ''default'' opus encoded, for newer Sox versions - ''default-wav'' wav encoded, just for compatibility Sound packs are located at /usr/share/sounds/fenrirscreenreader/ Sound volume controls how loud the sounds for your selected sound pack are. volume=1.0 Values: ''0.0'' is quietest, ''1.0'' is loudest. === Generic Driver === The generic sound driver uses shell commands for play sound and frequencies. ''genericPlayFileCommand'' defines the command that is used to play a sound file. generic_play_file_command= ''genericFrequencyCommand'' defines the command that is used playing frequencies. generic_frequency_command= The following variables are substituted in ''genericPlayFileCommand'' and ''genericFrequencyCommand'': * ''fenrirVolume'' = the current volume setting * ''fenrirSoundFile'' = the sound file for an sound icon * ''fenrirFrequence'' = the frequency to play * ''fenrirDuration'' = the duration of the frequency Example genericPlayFileCommand (default) generic_play_file_command=play -q -v fenrirVolume fenrirSoundFile Example genericFrequencyCommand (default) generic_frequency_command=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence ==== Speech ==== Speech is configured in section ''[speech]''. Turn speech on or off: enabled=True Values: on=''True'', off=''False'' # Select speech driver, options are speechdDriver (default), genericDriver or espeakDriver: driver=speechdDriver #driver=espeakDriver #driver=genericDriver Select the driver used to generate speech output. driver=speechdDriver Available Drivers: * ''genericDriver'' using the generic driver, for Fenrir <1.5 this is not available * ''speechdDriver'' using speech-dispatcher, for Fenrir <1.5 just use ''speechd'' * ''espeakDriver'' using the espeak directly, for Fenrir <1.5 just use ''espeak'' The rate selects how fast Fenrir will speak. rate=0.65 Values: Range Minimum:''0.0'' is slowest, Maximum:''1.0'' is fastest. Pitch controls the pitch of the voice. pitch=0.5 Values: Range Minimum:''0.0'' is lowest, Maximum:''1.0'' is highest. A Pitch for capital letters can be set. capital_pitch=0.9 Values: Range Minimum:''0.0'' is lowest, Maximum:''1.0'' is highest. The Volume controls the loudness of the voice. volume=1.0 Values: Range Minimum:''0.0'' is quietest, Maximum:''1.0'' is loudest. Some speech drivers like speechdDriver can support various modules. these can be set here. module=espeak Values: Text, Consult speech-dispatcher's configuration to see what modules are available. Voice selects the varient you want to use, for example, f5 will use the female voice #5 in Espeak, or if using the Espeak module in Speech-dispatcher. To find out which voices are available, consult the documentation provided with your selected synthesizer. voice= Values: Text, see your TTS synths documentation what is available. Select the language you want Fenrir to use. language=english-us Values: Text, see your TTS synths documentation what is available. Read new text as it occurs auto_read_incoming=True Values: on=''True'', off=''False'' === Generic Driver === The generic speech driver uses shell commands for speech synthisus. ''genericSpeechCommand'' defines the command that is executed for creating speech The following variables are substituted in ''genericSpeechCommand'': * ''FenrirText'' = is the text that should be spoken * ''fenrirModule'' = may be the speech module like used in speech-dispatcher, not every TTY needs this * ''fenrirLanguage'' = the language to speak in * ''fenrirVoice'' = is the current voice that should be used * ''fenrirVolume'' = is replaced with the current volume * ''fenrirPitch'' = is replaced with the current pitch * ''fenrirRate'' = is replaced with the current speed (speech rate) Example genericSpeechCommand (default): generic_speech_command=espeak -a fenrirVolume -s fenrirRate -p fenrirPitch -v fenrirVoice "fenrirText" These are the minimum and maximum values of the TTS system used in genericSpeechCommand. They are needed to calculate the abstract range in volume, rate and pitch 0.0 - 1.0. FenrirMinVolume=0 fenrir_max_volume=200 fenrir_min_pitch=0 fenrir_max_pitch=99 fenrir_min_rate=80 fenrir_max_rate=450 The current volume, pitch and rate is calculated like this value = min + [volume,pitch,rate] * (min - max ) ==== Braille ==== Braille is a WIP and not ready yet. Braille support can be configured in section ''[braille]''. Turn braille on or off: enabled=False Values: on=''True'', off=''False'' Select the driver used for communication with a braille device. driver=brlapiDriver Values: Text, available Driver Available Drivers: * ''brlttyDriver'' using brltty for braille communication, for Fenrir <1.5 just use ''brltty'' The Braille layout can be configured here layout=en Values: Text, see braille driver for layouts. What should the flush timeout relate to flushMode=word Values: Text, an flushMode Existing flushModes: * ''word'' = flush after (number of words to display) * seconds * ''char'' = flush after (number of chars to display) * seconds * ''fix'' = flush after X seconds * ''none'' = no automatic flush (manual via shortcut) Seconds to flush (see flushMode) flushTimeout=3 Values: Integer, in Seconds or ''-1'' = no automatic flush (manual via shortcut) The total flush time calculates in relation to flushMode. How should the Braille cursor focus be tracked? cursorFocusMode=page Values: Text, an existing cursor focus mode Available cursor focus modes: * ''page'' = if the cursor crosses the border move to next page and start at begin * ''fixCell'' = ajust the cursor on a special cell where it is always placed. the display scroll here more smooth. Define the cell on the Braille device where Fenrir should scroll and keep the cursor fixCursorOnCell=-1 Values: Integer * ''0'' = first cell on device, * ''-1'' = last cell on device * ''>0'' = fix cell number What cursor should Fenrir show on the Braille device cursorFollowMode=review Values: Text, an exsiting cursor following mode. Existing cursor following mode: * ''none'' = no automatic toggle command used * ''review'' = priority to review * ''last'' = follow last used cursor number of cells in panning (horizontal). How many cell should be panned on press the routing key? panSizeHorizontal=0 Values: Integer, * ''0'' = display size * ''>0'' number of cells ==== Screen ==== The settings for screens, (TTY, PTY) are configured in the ''[screen]'' section. The driver to get the information from the screen: driver=vcsaDriver Available Drivers: * ''vcsaDriver'' using the VCSA driver (for TTYs), for Fenrir <1.5 just use ''vcsa'' The encoding of the screen encoding=cp850 Values:''cp850'' is used for Western languages like USA or Europe. The driver updates Fenrir with changes on the screen. screen_update_delay=0.05 Values: in Seconds If you want Fenrir to not be active on any screen for various reasons. Maybe an X server or Wayland is running on that screen. You can make Fenrir ignore it or multiple screens seperated by '','' with: suspendingScreen= Values: Depends on driver: * VCSA: the number of the TTY. TTY6 is ''6''. Example ignore TTY1 and TTY2: suspendingScreen=1,2 There is also the ability to let Fenrir auto detect screens that are running an X server. So Screens running an GUI can be ignored. autodetectSuspendingScreen=True Values: on=''True'', off=''False'' ==== Keyboard ==== The settings for keyboard and input related configuration is located in the section ''[keyboard]'' of the ''settings.conf'' file. Select the driver used for grabbing keybord input and for recieving shortcuts. driver=evdevDriver Values: Text, available Driver Available Drivers: * ''evdevDriver'' uses the evdev input system of linux, for Fenrir <1.5 just use ''evdev'' You can let Fenrir know about what input devices are to be used. device=ALL Values: * ''ALL'' use all devices with key capabilities. * ''NOMICE'' Exclude mices from handling. * '''' just use the device with the given name. Gives Fenrir exclusive access to the keyboard and lets it control keystrokes. This is needed to intercept Fenrir related shortcuts. grab_devices=True Values: on=''True'', off=''False'' The following makes sense if you are using a second screenreader and want to have some hooked events. Fenrir ignores all shortcuts then. ignore_shortcuts=False Values: on=''True'', off=''False'' The current keyboard layout used for shortcuts. keyboard_layout=desktop Values: An absolute Path to a Keyboard definition file or a Filename without extension located in ''/etc/fenrir/keyboard'' Announce characters while typing. charEcho=False Values: on=''True'', off=''False'' Announce deleted characters char_delete_echo=True Values: on=''True'', off=''False'' Announce word after pressing space word_echo=False Values: on=''True'', off=''False'' Interrupt speech on any keypress interrupt_on_key_press=False Values: on=''True'', off=''False'' You can filter the keys that speech should interrupt interrupt_on_key_press_filter= Values: (List) empty = all keys, otherwise interrupt with specified keys The timeout that is used for double tap shortcuts double_tap_timeout=0.2 Values: Seconds ==== General ==== Overall settings can be configured from the section ''[general]''. Set the current debug level: debugLevel=1 Values: off=0, error=1, warning=2, info=3 the current punctuation and dict file in use: punctuation_profile=default Values: Text, see available profiles in ''/etc/fenrir/punctuation'' or in ''sourceTree/config/punctuation'' The current punctuation level in use: punctuation_level=some Values: Text, See available levels in the used punctuation file. Respect pause for punctuations: respect_punctuation_pause=True Values: on=''True'', off=''False'' Add a pause on Line break: new_line_pause=True Values: on=''True'', off=''False'' Specify the path where the clipboard should be exported to. See [[#export clipboard to file|export clipboard to file]]. The variable ''$user'' is replaced by the current logged username. clipboardExportPath=/tmp/fenrirClipboard Values: Text, Systemfilepath The number of available clipboards: number_of_clipboards=10 Values: Integer, 1 - 999 Replace emoticons like :) or ;) with text insertions: emoticons=True Values: on=''True'', off=''False'' Define the current Fenrir keys: fenrir_keys=KEY_KP0,KEY_META,KEY_INSERT Values, Text list, separated by comma. Define the current script keys: scriptKey=KEY_COMPOSE Values, Text list, separated by comma. The time format to be used for (time command) output: timeFormat=%H:%M:%P Values: see python specification for [[https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior|datetime.strftime]] The date format to be used for (date command) output: dateFormat=%A, %B %d, %Y Values: see python specification for [[https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior|datetime.strftime]] Enable or Disable spellcheck whilst typing: auto_spell_check=True Values: on=''True'', off=''False'' The use of the dictionary with spellcheck: spell_check_language=en_US Values: Text, see aspell dictionary's. Folder Path for your scripts "scriptKey" functionality: scriptPath=/usr/share/fenrirscreenreader/scripts Values: Text, Existing path on file system. Override commands or create new ones without changing the Fenrir defaults: commandPath=/usr/share/fenrirscreenreader/commands Values: Text, Existing path on file system. Subfolders in commandPath are: * ''commands'' = to create shortcut commands * ''onInput'' = executed while typing * ''onScreenChange'' = executed on change the screen (change from TTY4 to TTY6) * ''onScreenUpdate'' = executed when the screen is captured ==== Focus ==== The configuration for basic focus is in the section ''[focus]''. Follow the text cursor: cursor=True Values: on=''True'', off=''False'' Follow highlighted text changes (Highlight Tracking): highlight=False Values: on=''True'', off=''False'' ==== Review ==== Configurations for the review mode are in the section ''[review]''. If "next word/ char" or "prev word/char" create a linebreak, announce it: lineBreak=True Values: on=''True'', off=''False'' If "next word/ char" or "prev word/char" cannot be performed because you reached the end of the screen, announce it: endOfScreen=True Values: on=''True'', off=''False'' Leave the review mode when pressing a key: leaveReviewOnKeypress=False Values: on=''True'', off=''False'' Leave the review mode when changing the screen (From TTY3 to TTY4): leave_review_on_screen_change=True Values: on=''True'', off=''False'' ==== Time ==== The automated time announcement is configured in the section ''[time]''. Time announcement is disabled by default. Turn time announcement on or off: enabled=True Values: on=''True'', off=''False'' Should the time be announced: presentTime=True Values: on=''True'', off=''False'' Should the date be announced (just on date change): presentDate=True Values: on=''True'', off=''False'' Announce after a given period of seconds: delaySec=0 Value: in Seconds, 0 = Deactivated Announce after fixed minutes in an hour. if delaySec is >0 onMinutes is ignored: onMinutes=00,30 Example every 15 minutes: onMinutes=00,15,30,45 Just play a soundicon, (not interrupting): announce=True Values: on=''True'', off=''False'' Interrupt current speech for time announcement: interrupt=False Values: on=''True'', off=''False'' ====== Customization ====== ===== Scripting ===== Scripts can be in any language, bash, python, sh or others. Place your scripts in the directory /usr/share/fenrirscreenreader/scripts/ (the path is configurable in settings.conf). The script key is the applications key. Usually this key can be found on the keyboard located just left of the right most control key. When you name a script, the key name appears in the script seperated by the sequence __-__. So, for example, if you have a python weather script you want assigned to the script key plus the letter w you would name the script /usr/share/fenrirscreenreader/scripts/weather__-__key_w.py Then, to access the script, simply press the script key and the letter w. Scripts must be executable. So, make sure to chmod 755 your script when you place it in the scripts directory. The script gets some parameters from fenrir when it is executed. So that information is available in your script then. ==== Parameterlist ==== ^Parameter ^Content ^ |$1|Username of the current logged in user| ==== Examples ==== Script that just speaks the current username when pressing ScriptKey + H.\\ File: ''/usr/share/fenrirscreenreader/scripts/helloWorld__-__key_h.sh'': #!/bin/bash echo $1 ===== Commands ===== You can place your own commands in "/usr/share/fenrirscreenreader/commands" (path is configurable in settings.conf). Commands are python files with a special scheme. You can assign them to a shortcut using the filename without an extension or place them in a hook trigger like OnInput or OnScreenChange. For further information see developer guide. Good Examples: [[https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/commands/date.py|"date.py"]] (announce the Date), [[https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/commands/shut_up.py|"shut_up.py"]] (interrupt output) the basic scheme for a command is as follows: from core import debug class command(): def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def getDescription(self): return _('No description found') def run(self): pass def setCallback(self, callback): pass * [[https://git.stormux.org/storm/fenrir/src/branch/master/src/fenrirscreenreader/commands/command_template.py|Template lives here]] * The class needs to have the name "command". * "initialize" is running once whilst loading the command. * "shutdown" is running on unload like the command (quit fenrir) * "getDescriptsion" just returns an string. That String is used in Tutorial Mode. * "run" is executed when the command is invoked. (shortcut is pressed, or trigger isn't running) * setCAllback is currently not used. and has no functionality yet. ====== Troubleshooting ====== ===== Fenrir does not start ===== - Have you installed all the dependencies [[#Support and Requirements|Support and Requirements]] - Try using master, a lot of changes take place there to make Fenrir compatible with more systems ===== Fenrir does not utilize the shortcuts ===== - Make sure you have python3-evdev installed - Use the latest Fenrir version - Make sure that Fenrir has permission to /dev/input/* and /dev/uinput (or run it as root) ===== No sound at all ===== - Run the script to configure Pulseaudio once as root and once as your user. This will setup Pulseaudio but require a restart of Pulseaudio. The script is located in ''tools/configure_pulse.sh'' - Use ALSA - [[https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/|Configure Pulse system wide]] (Not recommended) - Use gstreamerDriver: change ''settings.conf'' in the section ''sound'' the line ''driver=genericDriver'' to ''driver=gstreamerDriver'' - Use wave sound-icons: change ''settings.conf'' in the section ''sound'' the line ''theme=default'' to ''theme=default-wav'' - Use most current version of [[http://sox.sourceforge.net/|sox]] with opus support - Try [[https://github.com/i-rinat/apulse|apulse]] (not tested by myself but might work). Please give me feedback if you try it out. ===== You get sound-icons but no speech ===== - If you are using speech-dispatcher run "spd-conf" once as user and as root. - You can test if speech-dispatcher works by invoking it as root\\ ''sudo spd-say "hello world"'' ===== Bugreports and feature requests ===== Please report Bugs and feature requests to: [[https://git.stormux.org/storm/fenrir/issues|https://git.stormux.org/storm/fenrir/issues]] for bugs please provide a [[#Howto create a debug file|debug]] file that shows the issue. ==== How-to create a debug file ==== - Delete old debug stuff\\ ''sudo rm /var/log/fenrir.log'' - Start fenrir in debug mode\\ ''sudo fenrir -d'' - Do your stuff to reproduce the problem - Stop fenrir (''fenrirKey + q'') the debug file is located in ''/var/log/fenrir.log'' Please be as precise as possible to make it easy to solve the problem. fenrir/install.sh000077500000000000000000000044311513650123000143460ustar00rootroot00000000000000#!/usr/bin/env bash #Basic install script for Fenrir. read -rp "This will install Fenrir. Press ctrl+C to cancel, or enter to continue." # Fenrir main application install -m755 -d /opt/fenrirscreenreader cp -af src/* /opt/fenrirscreenreader ln -fs /opt/fenrirscreenreader/fenrir /usr/bin/fenrir # tools install -m755 -d /usr/share/fenrirscreenreader/tools cp -af tools/* /usr/share/fenrirscreenreader/tools # scripts install -m755 -d /usr/share/fenrirscreenreader/scripts cp -af "config/scripts/wlan__-__key_y.sh" /usr/share/fenrirscreenreader/scripts/ # keyboard for i in "config/keyboard/"*.conf ; do install -m644 -D "$i" "/etc/fenrirscreenreader/keyboard/${i##*/}" done # punctuation install -m755 -d /etc/fenrirscreenreader/punctuation cp -af config/punctuation/* /etc/fenrirscreenreader/punctuation # sound install -d /usr/share/sounds/fenrirscreenreader cp -af config/sound/default /usr/share/sounds/fenrirscreenreader/default cp -af config/sound/template /usr/share/sounds/fenrirscreenreader/template # config if [ -f "/etc/fenrirscreenreader/settings/settings.conf" ]; then echo "Do you want to overwrite your current global settings? (y/n)" read -r yn yn="${yn:0:1}" if [[ "${yn^}" == "Y" ]]; then mv /etc/fenrirscreenreader/settings/settings.conf /etc/fenrirscreenreader/settings/settings.conf.bak echo "Your old settings.conf has been backed up to settings.conf.bak." install -m644 -D "config/settings/settings.conf" /etc/fenrirscreenreader/settings/settings.conf else install -m644 -D "config/settings/settings.conf" /etc/fenrirscreenreader/settings/settings.conf.current fi else install -m644 -D "config/settings/settings.conf" /etc/fenrirscreenreader/settings/settings.conf fi # end message cat << EOF Installation complete. install path:/opt/fenrirscreenreader settings path:/etc/fenrirscreenreader To test Fenrir: sudo fenrir To have Fenrir start on system boot using systemd: download service file: https://git.stormux.org/storm/fenrir/raw/branch/master/autostart/systemd/Arch/fenrir.service move the service file to: /etc/systemd/system/fenrir.service sudo systemctl enable fenrir Pulseaudio users may want to run /usr/share/fenrirscreenreader/tools/configure_pulse.sh once from their user account, then once from the root. EOF fenrir/locale/000077500000000000000000000000001513650123000135765ustar00rootroot00000000000000fenrir/locale/de/000077500000000000000000000000001513650123000141665ustar00rootroot00000000000000fenrir/locale/de/LC_MESSAGES/000077500000000000000000000000001513650123000157535ustar00rootroot00000000000000fenrir/locale/de/LC_MESSAGES/fenrir.mo000066400000000000000000000413651513650123000176060ustar00rootroot00000000000000Ž•ÅDl ˆ ‰—$¢Ē(Ü$* 1 >J OYp x…”عĻÕģ ü    + 5BJi ‰—­Ą Ó ß ź7ö. 2? N$\  ­$±Ö#Ü"^#2‚'µŻų);L^o‡“˜® ¾'Ė'ó-=6X — ¤²ĀĒ!Ż ’" #Cg*‡²Å&×>ž?==},»č+0I z † ””2³-ę32f•«±1Äö!* L#W{ Ÿ Ŗø ĶŲų72M-€-®6Ü1EV5n=¤Aā9$4^“°ĆlćjP»Ķßś\ 1i (› Ä Č Ü 7ż 5! E!P!j!„!!ŗ!Ö!ń! ",+"X"i"‰":’"BĶ"@#@Q#>’#.Ń#$ $7$GU$$­$¼$Ö$ņ$ %%¶% Ō%Ž% õ%&/&H&`&z& ”&v & (%(-(,2(_(+}(*©(Ō(Ś(ķ() ))0)9)P)c)y)Ž)Ŗ)°)Ė)į)ź)ł)***"*#**$N*s*ˆ*"¤*Ē*Ż*ī*’*6+E+I+ Z+ e+)p+$š+æ+Ī+'Ó+ū+-,-/,b],5Ą,,ö,#-/C-/s-$£-$Č-%ķ-%.9.J.R.W.`.e.j.€. –./”.-Ń.’./"0/7S/‹/“/¢/²/Ä/Ģ/+ź/$0 ;07\0%”0+ŗ0ę0ž0)1C@1;„18Ą1;ł152'Q27y2=±2ļ2ž23#"3BF33‰3'½33å3494 Y4z4€4/™4!É4ė4 5 5 05Q5j5 Š5˜5§5½54Š5/6A568w69°65ź69 7:Z7•7%¬7=Ņ7E8FV8F8Gä8',9T9m9‡Œ9†:›:®:Ą:ą:|š:/m;.;Ģ;Š;#ź;7<F<Z<$i<Ž<«<"Č<ė< =",=#O=-s=”='ø= ą=Eķ=W3>]‹>Ré>_)Š”oP$^ÆJHg1=œ#x|S2"b„–½Iŗ™Q…X˜O{®fLj8<‘ BdG­u€+zF!]-lN&K'‰’nµ;m°»[7Žƒ³/tĮŒ›ĆA(Ee—§¢qiY\± ¶Ąkh‚ CVæ:£.6UŸR0 ¼‹¤•šŖ“Autotime: {0}BlackBlueBookmark for application {0} not setBookmark {0} not setBookmark {0} removed for application {1}Bookmark {0} set for application {1}BottomCapslock offCapslock onCyanDark grayDecrease system volumeDefaultFenrir mutedFenrir unmutedFile does not existFirst clipboard Forward next keypressGreenIncrease system volumeLast clipboard Light blueLight cyanLight grayLight magentaLight redLight yellowMagentaMove braille view to the left.Move braille view to the right.No Mark foundNo punctuation found.Not in review modeNot in window ModeNumlock offNumlock onQuit FenrirReads from the top of the screen to the cursor positionRedRemove marksScrolllock offScrolllock onSet the braille view back to cursor.Set window begin and end marksStart FenrirTopTurn off window mode for applicationWhiteWindow Mode off for application {0}Window Mode on for application {0}You are leaving the tutorial mode. Press that shortcut again to enter the tutorial mode again.adds the current word to the exceptions dictionaryadjusts the volume for in coming soundsalsaaudio is not installedauto spellcheck disabledauto spellcheck enabledautoread disabledautoread enabledautotime disabledautotime enabledbeginning of lineblackblankblinkblueboldbraille disabledbraille enabledbrown/yellowchecks the spelling of the current wordclears the currently selected clipboardclipboard clearedclipboard emptyclipboard exported to filecopies marked text to the currently selected clipboardcorrectcurrent linecurrent word.cursor trackingcyandecrease sound volumedecreases the pitch of the speechdecreases the rate of the speechdecreases the volume of the speechdisables speech until next keypressdisplays the last received textdisplays the position of the review cursoremoticons disabledemoticons enabledenables and disables output in brailleenables or disables announcement of emoticons instead of charsenables or disables automatic reading of new text as it appearsenables or disables automatic reading of time after an periodenables or disables automatic spell checkingenables or disables soundenables or disables speechenables or disables tracking of highlightedenables or disables tracking of highlighted textend of lineend of screenexits Fenrirexits review modeexport the current fenrir clipboard to X clipboardexport the current fenrir clipboard to a filefirst char in line indent {0}flush the braille device if a message is written onget current help messageget next help messageget prev help messagegreenhighlight trackingimports text from clipboard file to the clipboardincrease the speech rateincrease the speech volumeincreases the pitch of the speechindent {0}interrupts the current presentationlast char in lineleave review modeline breakline is emptyline {0}, column {1}misspelledmove review to bottom of screenmove review to top of screenmoves review focus to the previous word and presents itmoves review to the next character and presents itmoves review to the next line and presents itmoves review to the next word and presents itmoves review to the previous character and presents itmoves review to the previous line and presents itno review cursorone or two marks neededpastes the text from the currently selected clipboardphonetically presents the next character and set review to itphonetically presents the previous character and set review to itphonetically spells the current word and set review to itplaces marks to select text to copy to the clipboardplease set begin and endmarkpresent first linepresents the current character.presents the current column number for review cursor in review mode or the text cursor if not. Starts with 1presents the current line number for review cursor in review mode or the text cursor if not. Starts with 1presents the datepresents the timepyenchant is not installedread Bookmark {0}read to end of line, use review cursor if you are in review mode, otherwhise use text cursorreads from the cursor to the bottom of the screenreads the contents of the current screenredremove Bookmark {0}removes marks from selected textremoves the current word from the exceptions dictionaryscreen is emptyscreen {0}script: {0} fullpath: {1}scriptfile does not existscriptfile is not a filescriptfile is not executableselects the first clipboardselects the last clipboardselects the next clipboardselects the previous clipboardsends the following keypress to the terminalset Bookmark {0}set Window Mode, needs 2 marks set markset review and phonetically presents the current characterset review cursor to begin of current line and display the contentset review cursor to char below the current char and present it.set review cursor to end of current line and display the contentset review cursor to the char in the line below and present itshows the indention level for the current linesound disabledsound enabledspeaks the contents of the currently selected clipboardspeaks the currently selected text that will be copied to the clipboardspeech disabledspeech enabledspeech temporary disabledtoggles all output settingstoggles the tutorial modeunderlinedwhiteyou entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again.{0} added{0} is already in dict{0} is already removed from dict{0} percent sound volume{0} percent speech pitch{0} percent speech rate{0} percent speech volume{0} percent system volume{0} removedProject-Id-Version: POT-Creation-Date: 2017-12-27 17:34+CET PO-Revision-Date: 2017-12-27 22:42+0100 Last-Translator: Steffen Schultz Language-Team: Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 X-Generator: Poedit 2.0.3 Plural-Forms: nplurals=2; plural=(n != 1); Die Zeit: {0}SchwarzBlauLesezeichen für Anwendung {0} nicht gesetztLesezeichen {0} nicht gesetztLesezeichen {0} für Anwendung {1} entferntLesezeichen {0} für Anwendung {1} gesetztUntenFeststelltaste ausFeststelltaste einTürkisDunkelgrauSystemlautstƤrke verringernStandardFenrir stummgeschaltetStummschaltung ausDatei existiert nichtErste ZwischenablageNƤchste Taste durchreichenGrünSystemlautstƤrke erhƶhenLetzte ZwischenablageHellblauHelles türkisHellgrauHelles MagentaHellrotHellgelbMagentaBraille-Ansicht nach links bewegen.Braille-Ansicht nach rechts bewegen.Keine Marke gefundenKeine Satzzeichen gefunden.Nicht in der BildschirmdarstellungNicht im FenstermodusNummernblock ausNummernblock einFenrir beendenLiest vom oberen Bildschirmrand bis zur CursorpositionRotMarken entfernenRollen ausRollen einBraille-Ansicht auf Cursor zurücksetzen.Setze Fensteranfangs- und -endmarkenFenrir startenObenFenstermodus für Anwendung ausschaltenWeißFenstermodus für Anwendung {0} ausgeschaltetFenstermodus für Anwendung {0} eingeschaltetLernmodus wird verlassen. Zum erneuten Betreten ein weiteres Mal diese Tastenkombination drücken.Fügt das aktuelle Wort dem Ausnahmewƶrterbuch hinzuRegelt die LautstƤrke für eingehende TƶneAlsaaudio ist nicht installiertAutomatische Rechtschreibprüfung ausgeschaltetAutomatische Rechtschreibprüfung eingeschaltetAutomatisches Vorlesen ausgeschaltetAutomatisches Vorlesen eingeschaltetAutomatische Zeitansage ausgeschaltetAutomatische Zeitansage eingeschaltetAnfang der ZeileschwarzLeerblinkendblaufettBraille ausgeschaltetBraille eingeschaltetbraun/gelbPrüft die Rechtschreibung des aktuellen WortesLƶscht die momentan gewƤhlte ZwischenablageZwischenablage gelƶschtZwischenablage ist leerZwischenablage in Datei exportiertKopiert markierten Text in die gewƤhlte ZwischenablageKorrektAktuelle ZeileAktuelles Wort.Cursor-VerfolgungtürkisVerringert die TonlautstƤrkeVerringert die Stimmhƶhe der SprachausgabeVerringert die SprechgeschwindigkeitVerringert die SprachlautstƤrkeSprachausgabe bis zum nƤchsten Tastendruck ausschaltenZeigt den zuletzt empfangenen Text anZeigt die Position des Bildschirmcursors anEmoticons ausgeschaltetEmoticons eingeschaltetSchaltet die Braille-Ausgabe ein oder ausSchaltet die Ansage von Emoticons anstelle der Zeichen ein oder ausAutomatisches Vorlesen von neuem Text ein- oder ausschaltenSchaltet das automatische Vorlesen der Zeit ein oder ausSchaltet die automatische Rechtschreibprüfung ein oder ausSchaltet Tƶne ein oder ausSchaltet die Sprachausgabe ein oder ausSchaltet die Verfolgung von Hervorhebungen ein oder ausSchaltet die Verfolgung von hervorgehobenem Text ein oder ausEnde der ZeileEnde des BildschirmsBeendet FenrirVerlƤsst die BildschirmdarstellungAktuelle Fenrir-Zwischenablage in die X-Zwischenablage exportierenAktuelle Fenrir-Zwischenablage in Datei exportierenErstes Zeichen in Zeileneinrückung {0}Braillezeile beim Erscheinen einer Nachricht leerenAktuelle Hilfenachricht abrufenNƤchste Hilfenachricht abrufenVorherige Hilfenachricht abrufengrünHervorhebungen verfolgenImportiert Text aus Datei in die ZwischenablageHebt die Sprechgeschwindigkeit anErhƶht die SprachlautstƤrkeHebt die Stimmhƶhe anEinrückung {0}Unterbricht die aktuelle AusgabeLetztes Zeichen in ZeileBildschirmdarstellung verlassenZeilenumbruchZeile ist leerZeile {0}, Spalte {1}Falsch geschriebenBildschirm-Cursor zum unteren Bildschirmrand bewegenBewegt die Ansicht an den oberen BildschirmrandBewegt den Ansichts-Fokus zum vorherigen Wort und gibt dieses ausBewegt die Ansicht zum nƤchsten Zeichen und gibt es ausBewegt die Ansicht zur nƤchsten Zeile und gibt diese ausBewegt die Ansicht zum nƤchsten Wort und gibt es ausBewegt die Ansicht zum vorherigen Zeichen und gibt es ausBewegt die Ansicht zur vorherigen Zeile und gibt diese ausKein Bildschirm-CursorEine oder zwei Markierungen benƶtigtFügt den Text aus der momentan gewƤhlten Zwischenablage einGibt das nƤchste Zeichen phonetisch aus und setzt die Ansicht daraufGibt das vorherige Zeichen phonetisch aus und setzt die Ansicht daraufBuchstabiert das aktuelle Wort phonetisch und setzt die Ansicht daraufSetzt Marken zum AuswƤhlen und Kopieren von Text in die ZwischenablageBitte zuerst Start- und Endmarke setzenGibt die erste Zeile ausGibt das aktuelle Zeichen aus.Gibt die aktuelle Spaltennummer für den Bildschirm-Cursor in der Bildschirmdarstellung aus, anderenfalls den Textcursor. Beginnt mit 1Gibt die aktuelle Zeilennummer für den Bildschirm-Cursor in der Bildschirmdarstellung aus, anderenfalls den Textcursor. Beginnt mit 1Gibt das Datum ausGibt die Zeit ausPyenchant ist nicht installiertLesezeichen {0}Liest bis zum Ende der Zeile. Verwendet den Bildschirm-Cursor im Bildschirm-Modus, anderenfalls wird der Textcursor benutzt.Liest vom Cursor bis zum unteren BildschirmrandLiest den Inhalt des aktuellen Bildschirms vorrotLesezeichen {0} entfernenEntfernt Marken aus gewƤhltem TextEntfernt das aktuelle Wort aus dem AusnahmenwƶrterbuchBildschirm ist leerBildschirm {0}Skript: {0} VollstƤndiger Pfad: {1}Skript-Datei existiert nichtSkript-Datei ist keine DateiSkript-Datei ist nicht ausführbarWƤhlt die erste ZwischenablageWƤhlt die letzte ZwischenablageWƤhlt die nƤchste ZwischenablageWƤhlt die vorherige ZwischenablageSendet die nachfolgende Taste an das TerminalLesezeichen {0} setzenFenstermodus setzen, benƶtigt 2 MarkenMarke setzenSetzt die Ansicht auf das aktuelle Zeichen und gibt es phonetisch ausSetzt den Bildschirm-Cursor an den Anfang der aktuellen Zeile und zeigt deren Inhalt anZieht den Bildschirm-Cursor auf das Zeichen unterhalb des aktuellen Zeichens und gibt es aus.Setzt den Bildschirm-Cursor ans Ende der aktuellen Zeile und zeigt deren Inhalt anSetzt den Bildschirm-Cursor auf das Zeichen in der darunter liegenden Zeile und gibt dieses ausZeigt den Einrückungsgrad der aktuellen Zeile anTƶne ausgeschaltetTƶne eingeschaltetLiest den Inhalt der momentan gewƤhlten Zwischenablage vorLiest den momentan gewƤhlten Text vor, der in die Zwischenablage kopiert wirdSprachausgabe ausgeschaltetSprachausgabe eingeschaltetSprachausgabe vorübergehend ausgeschaltetSchaltet alle Ausgabe-Einstellungen umSchaltet den Lernmodus umunterstrichenweißLernmodus gestartet. In diesem Modus werden keine Befehle ausgeführt, jedoch wird die Funktion für jede Tastenkombination beschrieben. Zum Verlassen erneut diese Tastenkombination drücken.{0} hinzugefügt{0} ist bereits im Wƶrterbuch{0} wurde bereits aus dem Wƶrterbuch entfernt{0} Prozent TonlautstƤrke{0} Prozent Stimmhƶhe{0} Prozent Sprechgeschwindigkeit{0} Prozent SprachlautstƤrke{0} Prozent SystemlautstƤrke{0} entferntfenrir/locale/de/LC_MESSAGES/fenrir.po000066400000000000000000001114431513650123000176040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2017-12-27 17:34+CET\n" "PO-Revision-Date: 2017-12-27 22:42+0100\n" "Last-Translator: Steffen Schultz \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 2.0.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "Fügt das aktuelle Wort dem Ausnahmewƶrterbuch hinzu" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34 #: ../src/fenrir/commands/commands/spell_check.py:29 #: ../src/fenrir/commands/commands/spell_check.py:36 msgid "pyenchant is not installed" msgstr "Pyenchant ist nicht installiert" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:49 msgid "{0} is already in dict" msgstr "{0} ist bereits im Wƶrterbuch" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:52 msgid "{0} added" msgstr "{0} hinzugefügt" #: ../src/fenrir/commands/commands/bookmark_1.py:19 #: ../src/fenrir/commands/commands/bookmark_10.py:19 #: ../src/fenrir/commands/commands/bookmark_2.py:19 #: ../src/fenrir/commands/commands/bookmark_3.py:19 #: ../src/fenrir/commands/commands/bookmark_4.py:19 #: ../src/fenrir/commands/commands/bookmark_5.py:19 #: ../src/fenrir/commands/commands/bookmark_6.py:19 #: ../src/fenrir/commands/commands/bookmark_7.py:19 #: ../src/fenrir/commands/commands/bookmark_8.py:19 #: ../src/fenrir/commands/commands/bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "Lesezeichen {0}" #: ../src/fenrir/commands/commands/bookmark_1.py:24 #: ../src/fenrir/commands/commands/bookmark_10.py:24 #: ../src/fenrir/commands/commands/bookmark_2.py:24 #: ../src/fenrir/commands/commands/bookmark_3.py:24 #: ../src/fenrir/commands/commands/bookmark_4.py:24 #: ../src/fenrir/commands/commands/bookmark_5.py:24 #: ../src/fenrir/commands/commands/bookmark_6.py:24 #: ../src/fenrir/commands/commands/bookmark_7.py:24 #: ../src/fenrir/commands/commands/bookmark_8.py:24 #: ../src/fenrir/commands/commands/bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "Lesezeichen {0} nicht gesetzt" #: ../src/fenrir/commands/commands/bookmark_1.py:27 #: ../src/fenrir/commands/commands/bookmark_1.py:30 #: ../src/fenrir/commands/commands/bookmark_10.py:27 #: ../src/fenrir/commands/commands/bookmark_10.py:30 #: ../src/fenrir/commands/commands/bookmark_2.py:27 #: ../src/fenrir/commands/commands/bookmark_2.py:30 #: ../src/fenrir/commands/commands/bookmark_3.py:27 #: ../src/fenrir/commands/commands/bookmark_3.py:30 #: ../src/fenrir/commands/commands/bookmark_4.py:27 #: ../src/fenrir/commands/commands/bookmark_4.py:30 #: ../src/fenrir/commands/commands/bookmark_5.py:27 #: ../src/fenrir/commands/commands/bookmark_5.py:30 #: ../src/fenrir/commands/commands/bookmark_6.py:27 #: ../src/fenrir/commands/commands/bookmark_6.py:30 #: ../src/fenrir/commands/commands/bookmark_7.py:27 #: ../src/fenrir/commands/commands/bookmark_7.py:30 #: ../src/fenrir/commands/commands/bookmark_8.py:27 #: ../src/fenrir/commands/commands/bookmark_8.py:30 #: ../src/fenrir/commands/commands/bookmark_9.py:27 #: ../src/fenrir/commands/commands/bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "Lesezeichen für Anwendung {0} nicht gesetzt" #: ../src/fenrir/commands/commands/bookmark_1.py:43 #: ../src/fenrir/commands/commands/bookmark_10.py:43 #: ../src/fenrir/commands/commands/bookmark_2.py:43 #: ../src/fenrir/commands/commands/bookmark_3.py:43 #: ../src/fenrir/commands/commands/bookmark_4.py:43 #: ../src/fenrir/commands/commands/bookmark_5.py:43 #: ../src/fenrir/commands/commands/bookmark_6.py:43 #: ../src/fenrir/commands/commands/bookmark_7.py:43 #: ../src/fenrir/commands/commands/bookmark_8.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27 #: ../src/fenrir/commands/commands/indent_curr_line.py:31 #: ../src/fenrir/commands/commands/marked_text.py:33 #: ../src/fenrir/commands/commands/present_first_line.py:25 #: ../src/fenrir/commands/commands/present_last_line.py:25 #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27 #: ../src/fenrir/commands/commands/review_curr_line.py:27 #: ../src/fenrir/commands/commands/review_curr_word.py:27 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_line_begin.py:27 #: ../src/fenrir/commands/commands/review_next_line.py:29 #: ../src/fenrir/commands/commands/review_next_word.py:29 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_prev_line.py:27 #: ../src/fenrir/commands/commands/review_prev_word.py:27 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27 #: ../src/fenrir/commands/onCursorChange/55000-present_line_if_cursor_change_vertical.py:37 #: ../src/fenrir/commands/onScreenUpdate/60000-history.py:49 msgid "blank" msgstr "Leer" #: ../src/fenrir/commands/commands/braille_flush.py:17 msgid "flush the braille device if a message is written on" msgstr "Braillezeile beim Erscheinen einer Nachricht leeren" #: ../src/fenrir/commands/commands/braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "Braille-Ansicht nach links bewegen." #: ../src/fenrir/commands/commands/braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "Braille-Ansicht nach rechts bewegen." #: ../src/fenrir/commands/commands/braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "Braille-Ansicht auf Cursor zurücksetzen." #: ../src/fenrir/commands/commands/clear_bookmark_1.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "Lesezeichen {0} entfernen" #: ../src/fenrir/commands/commands/clear_bookmark_1.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "Lesezeichen {0} für Anwendung {1} entfernt" #: ../src/fenrir/commands/commands/clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "Lƶscht die momentan gewƤhlte Zwischenablage" #: ../src/fenrir/commands/commands/clear_clipboard.py:22 msgid "clipboard cleared" msgstr "Zwischenablage gelƶscht" #: ../src/fenrir/commands/commands/clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "Fenstermodus für Anwendung ausschalten" #: ../src/fenrir/commands/commands/clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "Fenstermodus für Anwendung {0} ausgeschaltet" #: ../src/fenrir/commands/commands/clear_window_application.py:24 msgid "Not in window Mode" msgstr "Nicht im Fenstermodus" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "Kopiert markierten Text in die gewƤhlte Zwischenablage" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:22 msgid "one or two marks needed" msgstr "Eine oder zwei Markierungen benƶtigt" #: ../src/fenrir/commands/commands/curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "Liest den Inhalt der momentan gewƤhlten Zwischenablage vor" #: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:29 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:32 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:35 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:38 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:30 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:33 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:36 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:39 #: ../src/fenrir/commands/commands/first_clipboard.py:21 #: ../src/fenrir/commands/commands/last_clipboard.py:21 #: ../src/fenrir/commands/commands/next_clipboard.py:21 #: ../src/fenrir/commands/commands/paste_clipboard.py:23 #: ../src/fenrir/commands/commands/paste_clipboard.py:26 #: ../src/fenrir/commands/commands/paste_clipboard.py:29 #: ../src/fenrir/commands/commands/paste_clipboard.py:32 #: ../src/fenrir/commands/commands/prev_clipboard.py:21 msgid "clipboard empty" msgstr "Zwischenablage ist leer" #: ../src/fenrir/commands/commands/curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "Liest den Inhalt des aktuellen Bildschirms vor" #: ../src/fenrir/commands/commands/curr_screen.py:21 msgid "screen is empty" msgstr "Bildschirm ist leer" #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "Liest vom Cursor bis zum unteren Bildschirmrand" #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "Liest vom oberen Bildschirmrand bis zur Cursorposition" #: ../src/fenrir/commands/commands/cursor_column.py:17 msgid "" "presents the current column number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "Gibt die aktuelle Spaltennummer für den Bildschirm-Cursor in der " "Bildschirmdarstellung aus, anderenfalls den Textcursor. Beginnt mit 1" #: ../src/fenrir/commands/commands/cursor_lineno.py:17 msgid "" "presents the current line number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "Gibt die aktuelle Zeilennummer für den Bildschirm-Cursor in der " "Bildschirmdarstellung aus, anderenfalls den Textcursor. Beginnt mit 1" #: ../src/fenrir/commands/commands/cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "Zeigt die Position des Bildschirmcursors an" #: ../src/fenrir/commands/commands/cursor_position.py:23 msgid "line {0}, column {1}" msgstr "Zeile {0}, Spalte {1}" #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18 msgid "" "read to end of line, use review cursor if you are in review mode, otherwhise " "use text cursor" msgstr "" "Liest bis zum Ende der Zeile. Verwendet den Bildschirm-Cursor im Bildschirm-" "Modus, anderenfalls wird der Textcursor benutzt." #: ../src/fenrir/commands/commands/date.py:18 msgid "presents the date" msgstr "Gibt das Datum aus" #: ../src/fenrir/commands/commands/dec_alsa_volume.py:24 msgid "Decrease system volume" msgstr "SystemlautstƤrke verringern" #: ../src/fenrir/commands/commands/dec_alsa_volume.py:28 #: ../src/fenrir/commands/commands/inc_alsa_volume.py:28 msgid "alsaaudio is not installed" msgstr "Alsaaudio ist nicht installiert" #: ../src/fenrir/commands/commands/dec_alsa_volume.py:36 #: ../src/fenrir/commands/commands/inc_alsa_volume.py:36 msgid "{0} percent system volume" msgstr "{0} Prozent SystemlautstƤrke" #: ../src/fenrir/commands/commands/dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "Verringert die TonlautstƤrke" #: ../src/fenrir/commands/commands/dec_sound_volume.py:29 #: ../src/fenrir/commands/commands/inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "{0} Prozent TonlautstƤrke" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:18 msgid "decreases the pitch of the speech" msgstr "Verringert die Stimmhƶhe der Sprachausgabe" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:26 #: ../src/fenrir/commands/commands/inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "{0} Prozent Stimmhƶhe" #: ../src/fenrir/commands/commands/dec_speech_rate.py:18 msgid "decreases the rate of the speech" msgstr "Verringert die Sprechgeschwindigkeit" #: ../src/fenrir/commands/commands/dec_speech_rate.py:27 #: ../src/fenrir/commands/commands/inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "{0} Prozent Sprechgeschwindigkeit" #: ../src/fenrir/commands/commands/dec_speech_volume.py:18 msgid "decreases the volume of the speech" msgstr "Verringert die SprachlautstƤrke" #: ../src/fenrir/commands/commands/dec_speech_volume.py:27 #: ../src/fenrir/commands/commands/inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "{0} Prozent SprachlautstƤrke" #: ../src/fenrir/commands/commands/exit_review.py:17 #: ../src/fenrir/commands/onCursorChange/66000-exit_review_mode.py:17 msgid "exits review mode" msgstr "VerlƤsst die Bildschirmdarstellung" #: ../src/fenrir/commands/commands/exit_review.py:21 msgid "Not in review mode" msgstr "Nicht in der Bildschirmdarstellung" #: ../src/fenrir/commands/commands/exit_review.py:25 msgid "leave review mode" msgstr "Bildschirmdarstellung verlassen" #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:19 msgid "export the current fenrir clipboard to a file" msgstr "Aktuelle Fenrir-Zwischenablage in Datei exportieren" #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:43 msgid "clipboard exported to file" msgstr "Zwischenablage in Datei exportiert" #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21 msgid "export the current fenrir clipboard to X clipboard" msgstr "Aktuelle Fenrir-Zwischenablage in die X-Zwischenablage exportieren" #: ../src/fenrir/commands/commands/first_clipboard.py:17 msgid "selects the first clipboard" msgstr "WƤhlt die erste Zwischenablage" #: ../src/fenrir/commands/commands/forward_keypress.py:17 msgid "sends the following keypress to the terminal" msgstr "Sendet die nachfolgende Taste an das Terminal" #: ../src/fenrir/commands/commands/forward_keypress.py:21 msgid "Forward next keypress" msgstr "NƤchste Taste durchreichen" #: ../src/fenrir/commands/commands/import_clipboard_from_file.py:19 msgid "imports text from clipboard file to the clipboard" msgstr "Importiert Text aus Datei in die Zwischenablage" #: ../src/fenrir/commands/commands/import_clipboard_from_file.py:27 msgid "File does not exist" msgstr "Datei existiert nicht" #: ../src/fenrir/commands/commands/inc_alsa_volume.py:24 msgid "Increase system volume" msgstr "SystemlautstƤrke erhƶhen" #: ../src/fenrir/commands/commands/inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "Regelt die LautstƤrke für eingehende Tƶne" #: ../src/fenrir/commands/commands/inc_speech_pitch.py:18 msgid "increases the pitch of the speech" msgstr "Hebt die Stimmhƶhe an" #: ../src/fenrir/commands/commands/inc_speech_rate.py:18 msgid "increase the speech rate" msgstr "Hebt die Sprechgeschwindigkeit an" #: ../src/fenrir/commands/commands/inc_speech_volume.py:18 msgid "increase the speech volume" msgstr "Erhƶht die SprachlautstƤrke" #: ../src/fenrir/commands/commands/indent_curr_line.py:18 msgid "shows the indention level for the current line" msgstr "Zeigt den Einrückungsgrad der aktuellen Zeile an" #: ../src/fenrir/commands/commands/indent_curr_line.py:33 msgid "indent {0}" msgstr "Einrückung {0}" #: ../src/fenrir/commands/commands/last_clipboard.py:17 msgid "selects the last clipboard" msgstr "WƤhlt die letzte Zwischenablage" #: ../src/fenrir/commands/commands/last_incoming.py:17 msgid "displays the last received text" msgstr "Zeigt den zuletzt empfangenen Text an" #: ../src/fenrir/commands/commands/marked_text.py:18 msgid "speaks the currently selected text that will be copied to the clipboard" msgstr "" "Liest den momentan gewƤhlten Text vor, der in die Zwischenablage kopiert wird" #: ../src/fenrir/commands/commands/marked_text.py:23 msgid "please set begin and endmark" msgstr "Bitte zuerst Start- und Endmarke setzen" #: ../src/fenrir/commands/commands/next_clipboard.py:17 msgid "selects the next clipboard" msgstr "WƤhlt die nƤchste Zwischenablage" #: ../src/fenrir/commands/commands/next_clipboard.py:26 msgid "First clipboard " msgstr "Erste Zwischenablage" #: ../src/fenrir/commands/commands/paste_clipboard.py:18 msgid "pastes the text from the currently selected clipboard" msgstr "Fügt den Text aus der momentan gewƤhlten Zwischenablage ein" #: ../src/fenrir/commands/commands/present_first_line.py:18 msgid "present first line" msgstr "Gibt die erste Zeile aus" #: ../src/fenrir/commands/commands/present_last_line.py:18 #: ../src/fenrir/commands/commands/review_curr_line.py:18 msgid "current line" msgstr "Aktuelle Zeile" #: ../src/fenrir/commands/commands/prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "WƤhlt die vorherige Zwischenablage" #: ../src/fenrir/commands/commands/prev_clipboard.py:26 msgid "Last clipboard " msgstr "Letzte Zwischenablage" #: ../src/fenrir/commands/commands/quit_fenrir.py:17 msgid "exits Fenrir" msgstr "Beendet Fenrir" #: ../src/fenrir/commands/commands/remove_marks.py:17 msgid "removes marks from selected text" msgstr "Entfernt Marken aus gewƤhltem Text" #: ../src/fenrir/commands/commands/remove_marks.py:21 msgid "Remove marks" msgstr "Marken entfernen" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "Entfernt das aktuelle Wort aus dem Ausnahmenwƶrterbuch" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50 msgid "{0} is already removed from dict" msgstr "{0} wurde bereits aus dem Wƶrterbuch entfernt" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "{0} entfernt" #: ../src/fenrir/commands/commands/review_bottom.py:17 msgid "move review to bottom of screen" msgstr "Bildschirm-Cursor zum unteren Bildschirmrand bewegen" #: ../src/fenrir/commands/commands/review_bottom.py:21 msgid "Bottom" msgstr "Unten" #: ../src/fenrir/commands/commands/review_curr_char.py:18 msgid "presents the current character." msgstr "Gibt das aktuelle Zeichen aus." #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "Setzt die Ansicht auf das aktuelle Zeichen und gibt es phonetisch aus" #: ../src/fenrir/commands/commands/review_curr_word.py:18 msgid "current word." msgstr "Aktuelles Wort." #: ../src/fenrir/commands/commands/review_curr_word.py:32 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_down.py:27 #: ../src/fenrir/commands/commands/review_next_char.py:28 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_next_line.py:34 #: ../src/fenrir/commands/commands/review_next_word.py:34 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_prev_char.py:31 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_prev_line.py:32 #: ../src/fenrir/commands/commands/review_prev_word.py:32 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_up.py:27 msgid "end of screen" msgstr "Ende des Bildschirms" #: ../src/fenrir/commands/commands/review_curr_word.py:35 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_next_char.py:31 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_next_word.py:37 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_prev_char.py:34 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_prev_word.py:35 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_up.py:30 msgid "line break" msgstr "Zeilenumbruch" #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19 msgid "phonetically spells the current word and set review to it" msgstr "Buchstabiert das aktuelle Wort phonetisch und setzt die Ansicht darauf" #: ../src/fenrir/commands/commands/review_down.py:18 msgid "set review cursor to char below the current char and present it." msgstr "" "Zieht den Bildschirm-Cursor auf das Zeichen unterhalb des aktuellen Zeichens " "und gibt es aus." #: ../src/fenrir/commands/commands/review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "" "Setzt den Bildschirm-Cursor an den Anfang der aktuellen Zeile und zeigt " "deren Inhalt an" #: ../src/fenrir/commands/commands/review_line_begin.py:30 msgid "beginning of line" msgstr "Anfang der Zeile" #: ../src/fenrir/commands/commands/review_line_end.py:18 #: ../src/fenrir/commands/commands/review_line_first_char.py:19 #: ../src/fenrir/commands/commands/review_line_last_char.py:18 msgid "set review cursor to end of current line and display the content" msgstr "" "Setzt den Bildschirm-Cursor ans Ende der aktuellen Zeile und zeigt deren " "Inhalt an" #: ../src/fenrir/commands/commands/review_line_end.py:27 msgid "end of line" msgstr "Ende der Zeile" #: ../src/fenrir/commands/commands/review_line_first_char.py:26 msgid "line is empty" msgstr "Zeile ist leer" #: ../src/fenrir/commands/commands/review_line_first_char.py:33 msgid "first char in line indent {0}" msgstr "Erstes Zeichen in Zeileneinrückung {0}" #: ../src/fenrir/commands/commands/review_line_last_char.py:27 msgid "last char in line" msgstr "Letztes Zeichen in Zeile" #: ../src/fenrir/commands/commands/review_next_char.py:18 msgid "moves review to the next character and presents it" msgstr "Bewegt die Ansicht zum nƤchsten Zeichen und gibt es aus" #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "Gibt das nƤchste Zeichen phonetisch aus und setzt die Ansicht darauf" #: ../src/fenrir/commands/commands/review_next_line.py:18 msgid "moves review to the next line and presents it" msgstr "Bewegt die Ansicht zur nƤchsten Zeile und gibt diese aus" #: ../src/fenrir/commands/commands/review_next_word.py:18 msgid "moves review to the next word and presents it" msgstr "Bewegt die Ansicht zum nƤchsten Wort und gibt es aus" #: ../src/fenrir/commands/commands/review_prev_char.py:18 msgid "moves review to the previous character and presents it" msgstr "Bewegt die Ansicht zum vorherigen Zeichen und gibt es aus" #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "Gibt das vorherige Zeichen phonetisch aus und setzt die Ansicht darauf" #: ../src/fenrir/commands/commands/review_prev_line.py:18 msgid "moves review to the previous line and presents it" msgstr "Bewegt die Ansicht zur vorherigen Zeile und gibt diese aus" #: ../src/fenrir/commands/commands/review_prev_word.py:18 msgid "moves review focus to the previous word and presents it" msgstr "Bewegt den Ansichts-Fokus zum vorherigen Wort und gibt dieses aus" #: ../src/fenrir/commands/commands/review_top.py:18 msgid "move review to top of screen" msgstr "Bewegt die Ansicht an den oberen Bildschirmrand" #: ../src/fenrir/commands/commands/review_top.py:22 msgid "Top" msgstr "Oben" #: ../src/fenrir/commands/commands/review_up.py:18 msgid "set review cursor to the char in the line below and present it" msgstr "" "Setzt den Bildschirm-Cursor auf das Zeichen in der darunter liegenden Zeile " "und gibt dieses aus" #: ../src/fenrir/commands/commands/set_bookmark_1.py:18 #: ../src/fenrir/commands/commands/set_bookmark_10.py:18 #: ../src/fenrir/commands/commands/set_bookmark_2.py:18 #: ../src/fenrir/commands/commands/set_bookmark_3.py:18 #: ../src/fenrir/commands/commands/set_bookmark_4.py:18 #: ../src/fenrir/commands/commands/set_bookmark_5.py:18 #: ../src/fenrir/commands/commands/set_bookmark_6.py:18 #: ../src/fenrir/commands/commands/set_bookmark_7.py:18 #: ../src/fenrir/commands/commands/set_bookmark_8.py:18 #: ../src/fenrir/commands/commands/set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "Lesezeichen {0} setzen" #: ../src/fenrir/commands/commands/set_bookmark_1.py:22 #: ../src/fenrir/commands/commands/set_bookmark_10.py:22 #: ../src/fenrir/commands/commands/set_bookmark_2.py:22 #: ../src/fenrir/commands/commands/set_bookmark_3.py:22 #: ../src/fenrir/commands/commands/set_bookmark_4.py:22 #: ../src/fenrir/commands/commands/set_bookmark_5.py:22 #: ../src/fenrir/commands/commands/set_bookmark_6.py:22 #: ../src/fenrir/commands/commands/set_bookmark_7.py:22 #: ../src/fenrir/commands/commands/set_bookmark_8.py:22 #: ../src/fenrir/commands/commands/set_bookmark_9.py:22 msgid "No Mark found" msgstr "Keine Marke gefunden" #: ../src/fenrir/commands/commands/set_bookmark_1.py:32 #: ../src/fenrir/commands/commands/set_bookmark_10.py:32 #: ../src/fenrir/commands/commands/set_bookmark_2.py:32 #: ../src/fenrir/commands/commands/set_bookmark_3.py:32 #: ../src/fenrir/commands/commands/set_bookmark_4.py:32 #: ../src/fenrir/commands/commands/set_bookmark_5.py:32 #: ../src/fenrir/commands/commands/set_bookmark_6.py:32 #: ../src/fenrir/commands/commands/set_bookmark_7.py:32 #: ../src/fenrir/commands/commands/set_bookmark_8.py:32 #: ../src/fenrir/commands/commands/set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "Lesezeichen {0} für Anwendung {1} gesetzt" #: ../src/fenrir/commands/commands/set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "Setzt Marken zum AuswƤhlen und Kopieren von Text in die Zwischenablage" #: ../src/fenrir/commands/commands/set_mark.py:21 msgid "no review cursor" msgstr "Kein Bildschirm-Cursor" #: ../src/fenrir/commands/commands/set_mark.py:26 #: ../src/fenrir/commands/commands/set_mark.py:28 msgid "set mark" msgstr "Marke setzen" #: ../src/fenrir/commands/commands/set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "Fenstermodus setzen, benƶtigt 2 Marken" #: ../src/fenrir/commands/commands/set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "Fenstermodus für Anwendung {0} eingeschaltet" #: ../src/fenrir/commands/commands/set_window_application.py:25 msgid "Set window begin and end marks" msgstr "Setze Fensteranfangs- und -endmarken" #: ../src/fenrir/commands/commands/shut_up.py:17 msgid "interrupts the current presentation" msgstr "Unterbricht die aktuelle Ausgabe" #: ../src/fenrir/commands/commands/spell_check.py:26 msgid "checks the spelling of the current word" msgstr "Prüft die Rechtschreibung des aktuellen Wortes" #: ../src/fenrir/commands/commands/spell_check.py:52 #: ../src/fenrir/commands/onCursorChange/62000-spell_check.py:130 msgid "misspelled" msgstr "Falsch geschrieben" #: ../src/fenrir/commands/commands/spell_check.py:54 msgid "correct" msgstr "Korrekt" #: ../src/fenrir/commands/commands/subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "Skript: {0} VollstƤndiger Pfad: {1}" #: ../src/fenrir/commands/commands/subprocess.py:24 msgid "scriptfile does not exist" msgstr "Skript-Datei existiert nicht" #: ../src/fenrir/commands/commands/subprocess.py:27 msgid "scriptfile is not a file" msgstr "Skript-Datei ist keine Datei" #: ../src/fenrir/commands/commands/subprocess.py:30 msgid "scriptfile is not executable" msgstr "Skript-Datei ist nicht ausführbar" #: ../src/fenrir/commands/commands/temp_disable_speech.py:17 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "Sprachausgabe bis zum nƤchsten Tastendruck ausschalten" #: ../src/fenrir/commands/commands/temp_disable_speech.py:21 msgid "speech temporary disabled" msgstr "Sprachausgabe vorübergehend ausgeschaltet" #: ../src/fenrir/commands/commands/time.py:18 msgid "presents the time" msgstr "Gibt die Zeit aus" #: ../src/fenrir/commands/commands/toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "Automatisches Vorlesen von neuem Text ein- oder ausschalten" #: ../src/fenrir/commands/commands/toggle_auto_read.py:21 msgid "autoread enabled" msgstr "Automatisches Vorlesen eingeschaltet" #: ../src/fenrir/commands/commands/toggle_auto_read.py:23 msgid "autoread disabled" msgstr "Automatisches Vorlesen ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "Schaltet die automatische Rechtschreibprüfung ein oder aus" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "Automatische Rechtschreibprüfung eingeschaltet" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "Automatische Rechtschreibprüfung ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_auto_time.py:16 msgid "enables or disables automatic reading of time after an period" msgstr "Schaltet das automatische Vorlesen der Zeit ein oder aus" #: ../src/fenrir/commands/commands/toggle_auto_time.py:21 msgid "autotime enabled" msgstr "Automatische Zeitansage eingeschaltet" #: ../src/fenrir/commands/commands/toggle_auto_time.py:23 msgid "autotime disabled" msgstr "Automatische Zeitansage ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_braille.py:17 msgid "enables and disables output in braille" msgstr "Schaltet die Braille-Ausgabe ein oder aus" #: ../src/fenrir/commands/commands/toggle_braille.py:21 msgid "braille disabled" msgstr "Braille ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_braille.py:24 msgid "braille enabled" msgstr "Braille eingeschaltet" #: ../src/fenrir/commands/commands/toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "Schaltet die Ansage von Emoticons anstelle der Zeichen ein oder aus" #: ../src/fenrir/commands/commands/toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "Emoticons eingeschaltet" #: ../src/fenrir/commands/commands/toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "Emoticons ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 msgid "enables or disables tracking of highlighted text" msgstr "Schaltet die Verfolgung von hervorgehobenem Text ein oder aus" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "Hervorhebungen verfolgen" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "Cursor-Verfolgung" #: ../src/fenrir/commands/commands/toggle_output.py:17 msgid "toggles all output settings" msgstr "Schaltet alle Ausgabe-Einstellungen um" #: ../src/fenrir/commands/commands/toggle_output.py:23 msgid "Fenrir muted" msgstr "Fenrir stummgeschaltet" #: ../src/fenrir/commands/commands/toggle_output.py:31 msgid "Fenrir unmuted" msgstr "Stummschaltung aus" #: ../src/fenrir/commands/commands/toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "Keine Satzzeichen gefunden." #: ../src/fenrir/commands/commands/toggle_sound.py:17 msgid "enables or disables sound" msgstr "Schaltet Tƶne ein oder aus" #: ../src/fenrir/commands/commands/toggle_sound.py:21 msgid "sound disabled" msgstr "Tƶne ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_sound.py:24 msgid "sound enabled" msgstr "Tƶne eingeschaltet" #: ../src/fenrir/commands/commands/toggle_speech.py:17 msgid "enables or disables speech" msgstr "Schaltet die Sprachausgabe ein oder aus" #: ../src/fenrir/commands/commands/toggle_speech.py:21 msgid "speech disabled" msgstr "Sprachausgabe ausgeschaltet" #: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "Sprachausgabe eingeschaltet" #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:19 msgid "" "You are leaving the tutorial mode. Press that shortcut again to enter the " "tutorial mode again." msgstr "" "Lernmodus wird verlassen. Zum erneuten Betreten ein weiteres Mal diese " "Tastenkombination drücken." #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:22 msgid "" "you entered the tutorial mode. In that mode the commands are not executed. " "but you get a description of what the shortcut does. To leave the tutorial " "mode, press that shortcut again." msgstr "" "Lernmodus gestartet. In diesem Modus werden keine Befehle ausgeführt, jedoch " "wird die Funktion für jede Tastenkombination beschrieben. Zum Verlassen " "erneut diese Tastenkombination drücken." #: ../src/fenrir/commands/help/curr_help.py:17 msgid "get current help message" msgstr "Aktuelle Hilfenachricht abrufen" #: ../src/fenrir/commands/help/next_help.py:17 msgid "get next help message" msgstr "NƤchste Hilfenachricht abrufen" #: ../src/fenrir/commands/help/prev_help.py:17 msgid "get prev help message" msgstr "Vorherige Hilfenachricht abrufen" #: ../src/fenrir/commands/onHeartBeat/76000-time.py:66 msgid "Autotime: {0}" msgstr "Die Zeit: {0}" #: ../src/fenrir/commands/onInput/80000-capslock.py:22 msgid "Capslock on" msgstr "Feststelltaste ein" #: ../src/fenrir/commands/onInput/80000-capslock.py:24 msgid "Capslock off" msgstr "Feststelltaste aus" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "Rollen ein" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "Rollen aus" #: ../src/fenrir/commands/onInput/80500-numlock.py:22 msgid "Numlock on" msgstr "Nummernblock ein" #: ../src/fenrir/commands/onInput/80500-numlock.py:24 msgid "Numlock off" msgstr "Nummernblock aus" #: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "Bildschirm {0}" #: ../src/fenrir/commands/onScreenUpdate/56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "Schaltet die Verfolgung von Hervorhebungen ein oder aus" #: ../src/fenrir/core/fenrirManager.py:27 msgid "Start Fenrir" msgstr "Fenrir starten" #: ../src/fenrir/core/fenrirManager.py:170 msgid "Quit Fenrir" msgstr "Fenrir beenden" #: ../src/fenrir/core/helpManager.py:44 msgid "toggles the tutorial mode" msgstr "Schaltet den Lernmodus um" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "black" msgstr "schwarz" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "blue" msgstr "blau" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "cyan" msgstr "türkis" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "green" msgstr "grün" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "red" msgstr "rot" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "white" msgstr "weiß" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Magenta" msgstr "Magenta" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "brown/yellow" msgstr "braun/gelb" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Black" msgstr "Schwarz" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Blue" msgstr "Blau" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Cyan" msgstr "Türkis" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Dark gray" msgstr "Dunkelgrau" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Green" msgstr "Grün" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light blue" msgstr "Hellblau" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light cyan" msgstr "Helles türkis" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light gray" msgstr "Hellgrau" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light magenta" msgstr "Helles Magenta" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light red" msgstr "Hellrot" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light yellow" msgstr "Hellgelb" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Red" msgstr "Rot" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "White" msgstr "Weiß" #: ../src/fenrir/screenDriver/vcsaDriver.py:262 msgid "underlined" msgstr "unterstrichen" #: ../src/fenrir/screenDriver/vcsaDriver.py:266 msgid "bold" msgstr "fett" #: ../src/fenrir/screenDriver/vcsaDriver.py:270 msgid "blink" msgstr "blinkend" #: ../src/fenrir/screenDriver/vcsaDriver.py:273 #: ../src/fenrir/screenDriver/vcsaDriver.py:275 msgid "Default" msgstr "Standard" fenrir/locale/es/000077500000000000000000000000001513650123000142055ustar00rootroot00000000000000fenrir/locale/es/LC_MESSAGES/000077500000000000000000000000001513650123000157725ustar00rootroot00000000000000fenrir/locale/es/LC_MESSAGES/fenrir.mo000066400000000000000000000342271513650123000176240ustar00rootroot00000000000000Ž•Óģ 8 9 $G l ( $Ŗ Ļ Ö ć ļ ü  2Ba „ø Ė × ā7ī &3 B$Pu ””$„#Ź"ī^2p'£Ėäü1BTZk'{'£ĖŻ6ķ$ , 9GW!m "°#Ó÷*BU&g>Ž?Ķ= ,Kx’+­ Ł å ó23EyŒ„!Ą#ā * 5C Xcƒ7 2Ų- -96g1žŠį5ł=/Am9Æ4é;NlnjŪFXj…\—1ō(&O c7„¼ Ģ×ń $A]x“,²ßš:BT@—@Ų>.X‡ –7¤GÜ$4C]¶y 0 : Q r ‹ ¤ ¼ Ö Sā 6"8L"$…"7Ŗ"*ā" ##1#N#`#x#Œ#¦#%»##į#$"!$D$b${$™$“$AÄ$%%%">%(a%CŠ%Ī%ß%0ć%<&9Q&d‹&'š&'06'-g'•'µ''Ņ'$ś'( 3(=(Q(,b(#(³(Ē(-Ū( ) ) )1)H)e){)–):Æ)ź)+ *6*N*$c*Dˆ*PĶ*W+:v+±+Ī+4ź+ ,-,=,L,=g,<„,ā,--8-O-n-- ¬-¹-Ź- ā-4ī-#.>.V.q.‰.¢.¼.Ó.ī.% /)1/([/)„/I®/Gų/@0V0€n0ļ0 o1 |1ˆ1„1‘·11I2&{2¢2$ø26Ż23 -3 :3[3{3–3!±3"Ó3$ö3#4'?4g47|4“4'»4'ć4F 5R5Il50¶5ē5ś50 6.;6j6|6‹6*«6ŅÖ6©7%¼7ā7"8$8!A8c8ƒ8#“C3',B|mIk–…‹ ‘[™”$4&›E]hw_if%NQ‡WzAŠ’}Œb ‰X) VL\@yuqspƒ.SZnl˜`0Mr€:7<1>JO—TK-gFUcDjŽR;•/†œ6„o"!š^+YeH 8xˆ?a *2(dtPG~= 9‚{v5Autotime: {0}Bookmark for application {0} not setBookmark {0} not setBookmark {0} removed for application {1}Bookmark {0} set for application {1}BottomCapslock offCapslock onFenrir mutedFenrir unmutedFirst clipboard Forward next keypressLast clipboard Move braille view to the left.Move braille view to the right.No Mark foundNo punctuation found.Not in review modeNot in window ModeNumlock offNumlock onQuit FenrirReads from the top of the screen to the cursor positionRemove marksScrolllock offScrolllock onSet the braille view back to cursor.Set window begin and end marksStart FenrirTopTurn off window mode for applicationWindow Mode off for application {0}Window Mode on for application {0}You are leaving the tutorial mode. Press that shortcut again to enter the tutorial mode again.adds the current word to the exceptions dictionaryadjusts the volume for in coming soundsauto spellcheck disabledauto spellcheck enabledautoread disabledautoread enabledautotime disabledautotime enabledbeginning of lineblankbraille disabledbraille enabledchecks the spelling of the current wordclears the currently selected clipboardclipboard clearedclipboard emptycopies marked text to the currently selected clipboardcorrectcurrent linecurrent word.cursor trackingdecrease sound volumedecreases the pitch of the speechdecreases the rate of the speechdecreases the volume of the speechdisables speech until next keypressdisplays the last received textdisplays the position of the review cursoremoticons disabledemoticons enabledenables and disables output in brailleenables or disables announcement of emoticons instead of charsenables or disables automatic reading of new text as it appearsenables or disables automatic reading of time after an periodenables or disables automatic spell checkingenables or disables soundenables or disables speechenables or disables tracking of highlightedend of lineend of screenexits Fenrirexits review modeexport the current fenrir clipboard to X clipboardflush the braille device if a message is written onhighlight trackingincrease the speech rateincrease the speech volumeincreases the pitch of the speechinterrupts the current presentationlast char in lineleave review modeline breakline is emptyline {0}, column {1}misspelledmove review to bottom of screenmove review to top of screenmoves review focus to the previous word and presents itmoves review to the next character and presents itmoves review to the next line and presents itmoves review to the next word and presents itmoves review to the previous character and presents itmoves review to the previous line and presents itno review cursorone or two marks neededpastes the text from the currently selected clipboardphonetically presents the next character and set review to itphonetically presents the previous character and set review to itphonetically spells the current word and set review to itplaces marks to select text to copy to the clipboardplease set begin and endmarkpresent first linepresents the current character.presents the current column number for review cursor in review mode or the text cursor if not. Starts with 1presents the current line number for review cursor in review mode or the text cursor if not. Starts with 1presents the datepresents the timepyenchant is not installedread Bookmark {0}read to end of line, use review cursor if you are in review mode, otherwhise use text cursorreads from the cursor to the bottom of the screenreads the contents of the current screenremove Bookmark {0}removes marks from selected textremoves the current word from the exceptions dictionaryscreen is emptyscreen {0}script: {0} fullpath: {1}scriptfile does not existscriptfile is not a filescriptfile is not executableselects the first clipboardselects the last clipboardselects the next clipboardselects the previous clipboardsends the following keypress to the terminalset Bookmark {0}set Window Mode, needs 2 marks set markset review and phonetically presents the current characterset review cursor to begin of current line and display the contentset review cursor to char below the current char and present it.set review cursor to end of current line and display the contentset review cursor to the char in the line below and present itshows the indention level for the current linesound disabledsound enabledspeaks the contents of the currently selected clipboardspeaks the currently selected text that will be copied to the clipboardspeech disabledspeech enabledspeech temporary disabledtoggles all output settingsyou entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again.{0} added{0} is already in dict{0} is already removed from dict{0} percent sound volume{0} percent speech pitch{0} percent speech rate{0} percent speech volume{0} removedProject-Id-Version: POT-Creation-Date: 2017-02-26 22:19+UTC PO-Revision-Date: 2017-02-26 17:01-0600 Last-Translator: Language-Team: Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 X-Generator: Poedit 1.6.11 Plural-Forms: nplurals=2; plural=(n != 1); Hora automĆ”tica: {0}El marcador para la aplicación {0} no se ha establecidoNo se ha establecido el marcador {0}el marcador {0} de la aplicación {1} ha sido eliminadoAƱadido marcador {0} para aplicación {1}FinBloqueo mayĆŗsculas desactivadoBloqueo mayĆŗsculas activadoFenrir silenciadoDesactivado el silencioPrimer portapapelesEnviar la siguiente teclaÚltimo portapapelesMover la vista Braille a la izquierdaMover la vista braille a la derechaNo se han encontrado marcasNo se ha encontrado la puntuaciónNo estĆ” en modo de revisiónNo estĆ” en modo ventanaBloqueo numĆ©rico desactivadoBloqueo numĆ©rico activadoCerrando FenrirLee desde el inicio de la pantalla hasta la posición del cursor.Marcas eliminadasBloqueo de desplazamiento desactivadoBloqueo de desplazamiento activadoEstablecer la vista Braille en el cursorEstablece una marca de principio y otra para el final de la ventanaIniciando fenrirFinDesactiva el modo de ventana para la aplicaciónEl modo de ventana estĆ” desactivado para la aplicación {0}El modo de ventana estĆ” activado para la aplicación {0}Has salido del tutorial. Presiona la misma combinación de teclado para entrar al tutorial de nuevo.aƱade la palabra actual al diccionarioaumenta el volumen del sonidocorrección ortogrĆ”fica automĆ”tica desactivadacorrección ortogrĆ”fica automĆ”tica activadaLectura automĆ”tica desactivadaLectura automĆ”tica activadaLectura automĆ”tica de hora desactivadalectura automĆ”tica de hora activadaprincipio de lĆ­neaen blancoBraille desactivadoBraille activadoRevisa la ortografĆ­a para la palabra actualVacĆ­a el portapapeles seleccionadoPortapapeles vacĆ­oPortapapeles vacĆ­oCopia el texto marcado al portapapeles en usoCorrectolĆ­nea actualPalabra actual. Seguimiento del cursorReduce el volumen del sonidoReduce el tono de vozReduce la velocidad de vozReduce el volumen de vozDesactiva el habla hasta la siguiente pulsación de teclasLee el Ćŗltimo mensaje recibidoIndica la posición del cursor de revisiónEmoticonos desactivadosEmoticonos activadosActiva y desactiva la salida BrailleActiva o desactiva el anunciado de emoticonos en lugar de caracteresActiva o desactiva la lectura de texto cuando hay nuevo contenido en la pantallaActiva o desactiva la lectura automĆ”tica de la hora despuĆ©s de un intervalo de tiempoActiva o desactiva la corrección ortogrĆ”fica automĆ”ticaActiva o desactiva el sonidoActiva o desactiva el hablaActiva o desactiva el seguimiento de texto resaltadoFin de lĆ­neaFin de pantallaSale de FenrirSale del modo de revisiónExporta el contenido del portapapeles de Fenrir al servidor XLimpia el dispositivo braille al escribir un mensaje en Ć©l.Seguimiento del texto resaltadoAumenta la velocidad de vozAumenta el volumen de vozAumenta el tono de vozInterrumpe el habla y braille.Ćŗltimo carĆ”cter de la lĆ­neaSaliendo del modo de revisiónNueva lĆ­neaLĆ­nea en blancoLĆ­nea {0}, columna {1}mal escritoMueve el cursor de revisión al final de la pantallair al final de la pantallaLee la palabra anteriorLee el siguiente carĆ”cterLee la siguiente lĆ­neaLee la siguiente palabraLee el carĆ”cter anteriorLee la lĆ­nea anteriorNo hay cursor de revisiónse necesita una o dos marcasPega el texto del portapapeles en usoLee fonĆ©ticamente el siguiente carĆ”cterLee fonĆ©ticamente el carĆ”cter anteriorDeletrea fonĆ©ticamente la palabra actualEstablece marcas para seleccionar texto que serĆ” copiado al portapapelesEstablece una marca de principio y otra para el final de la selección.lee la primera lĆ­neaLee el carĆ”cter actualIndica el nĆŗmero de columna actual para el cursor de revisión si se estĆ” en el modo de revisión, o el cursor de texto si no.Indica el nĆŗmero de lĆ­nea actual para el cursor de revisión si se estĆ” en el modo de revisión, o el cursor de texto si no.Lee la fechaLee la horaPyenchant no estĆ” instaladoLeer marcador {0}Leer hasta el fin de lĆ­nea, utiliza el cursor de revisión cuando el modo de revisión estĆ” activo, de lo contrario utiliza el cursor de texto.Lee desde el cursor hasta el final de la pantallaLee el contenido de la pantalla actualEliminar marcador {0}Quitar marcas del texto seleccionadoQuita la palabra actual del diccionario de excepcionesLa pantalla estĆ” vacĆ­apantalla {0}Script: {0} Ruta de archivo: {1}el archivo del script no existeEl script no es un archivoel script no es ejecutableSelecciona el primer portapapelesSelecciona el Ćŗltimo portapapelesSelecciona el siguiente portapapelesSelecciona el portapapeles anteriorEnvĆ­a la siguiente tecla a la terminalAƱadir marcador {0}se necesitan dos marcas para establecer el modo ventanaMarcarLee fonĆ©ticamente el Ćŗltimo carĆ”cterlee la lĆ­nea actual desde el principioMueve el cursor de revisión al carĆ”cter despuĆ©s del actual y lo leeLee el final de la lĆ­neaMueve el cursor de revisión al carĆ”cter en la siguiente lĆ­nea y lo leeLee el nivel de indentación de la lĆ­nea actualsonido desactivadoSonido activadoHabla el contenido del portapapeles seleccionadoLee el texto que serĆ” copiado al portapapelesHabla desactivadaHabla activadaHabla desactivada temporalmenteConmuta el silencio del lector de pantallaHas entrado al tutorial. En este modo las combinaciones de teclado no se ejecutarĆ”n pero te darĆ”n una descripción de lo que hacen. Para salir del tutorial, presiona la misma combinación de teclado de nuevo.{0} se ha aƱadido{0} ya se encuentra en el diccionario{0} no estĆ” en el diccionariovolumen de sonido al {0} porcientoTono de voz al {0} porcientoVelocidad de voz al {0} porcientoVolumen de voz al {0} porcientose ha eliminado {0}fenrir/locale/es/LC_MESSAGES/fenrir.po000066400000000000000000000777101513650123000176330ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2017-02-26 22:19+UTC\n" "PO-Revision-Date: 2017-02-26 17:01-0600\n" "Last-Translator: \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 1.6.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "aƱade la palabra actual al diccionario" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34 #: ../src/fenrir/commands/commands/spell_check.py:29 #: ../src/fenrir/commands/commands/spell_check.py:36 msgid "pyenchant is not installed" msgstr "Pyenchant no estĆ” instalado" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:49 msgid "{0} is already in dict" msgstr "{0} ya se encuentra en el diccionario" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:52 msgid "{0} added" msgstr "{0} se ha aƱadido" #: ../src/fenrir/commands/commands/bookmark_1.py:19 #: ../src/fenrir/commands/commands/bookmark_10.py:19 #: ../src/fenrir/commands/commands/bookmark_2.py:19 #: ../src/fenrir/commands/commands/bookmark_3.py:19 #: ../src/fenrir/commands/commands/bookmark_4.py:19 #: ../src/fenrir/commands/commands/bookmark_5.py:19 #: ../src/fenrir/commands/commands/bookmark_6.py:19 #: ../src/fenrir/commands/commands/bookmark_7.py:19 #: ../src/fenrir/commands/commands/bookmark_8.py:19 #: ../src/fenrir/commands/commands/bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "Leer marcador {0}" #: ../src/fenrir/commands/commands/bookmark_1.py:24 #: ../src/fenrir/commands/commands/bookmark_10.py:24 #: ../src/fenrir/commands/commands/bookmark_2.py:24 #: ../src/fenrir/commands/commands/bookmark_3.py:24 #: ../src/fenrir/commands/commands/bookmark_4.py:24 #: ../src/fenrir/commands/commands/bookmark_5.py:24 #: ../src/fenrir/commands/commands/bookmark_6.py:24 #: ../src/fenrir/commands/commands/bookmark_7.py:24 #: ../src/fenrir/commands/commands/bookmark_8.py:24 #: ../src/fenrir/commands/commands/bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "No se ha establecido el marcador {0}" #: ../src/fenrir/commands/commands/bookmark_1.py:27 #: ../src/fenrir/commands/commands/bookmark_1.py:30 #: ../src/fenrir/commands/commands/bookmark_10.py:27 #: ../src/fenrir/commands/commands/bookmark_10.py:30 #: ../src/fenrir/commands/commands/bookmark_2.py:27 #: ../src/fenrir/commands/commands/bookmark_2.py:30 #: ../src/fenrir/commands/commands/bookmark_3.py:27 #: ../src/fenrir/commands/commands/bookmark_3.py:30 #: ../src/fenrir/commands/commands/bookmark_4.py:27 #: ../src/fenrir/commands/commands/bookmark_4.py:30 #: ../src/fenrir/commands/commands/bookmark_5.py:27 #: ../src/fenrir/commands/commands/bookmark_5.py:30 #: ../src/fenrir/commands/commands/bookmark_6.py:27 #: ../src/fenrir/commands/commands/bookmark_6.py:30 #: ../src/fenrir/commands/commands/bookmark_7.py:27 #: ../src/fenrir/commands/commands/bookmark_7.py:30 #: ../src/fenrir/commands/commands/bookmark_8.py:27 #: ../src/fenrir/commands/commands/bookmark_8.py:30 #: ../src/fenrir/commands/commands/bookmark_9.py:27 #: ../src/fenrir/commands/commands/bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "El marcador para la aplicación {0} no se ha establecido" #: ../src/fenrir/commands/commands/bookmark_1.py:43 #: ../src/fenrir/commands/commands/bookmark_10.py:43 #: ../src/fenrir/commands/commands/bookmark_2.py:43 #: ../src/fenrir/commands/commands/bookmark_3.py:43 #: ../src/fenrir/commands/commands/bookmark_4.py:43 #: ../src/fenrir/commands/commands/bookmark_5.py:43 #: ../src/fenrir/commands/commands/bookmark_6.py:43 #: ../src/fenrir/commands/commands/bookmark_7.py:43 #: ../src/fenrir/commands/commands/bookmark_8.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27 #: ../src/fenrir/commands/commands/indent_curr_line.py:31 #: ../src/fenrir/commands/commands/marked_text.py:33 #: ../src/fenrir/commands/commands/present_first_line.py:25 #: ../src/fenrir/commands/commands/present_last_line.py:25 #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27 #: ../src/fenrir/commands/commands/review_curr_line.py:27 #: ../src/fenrir/commands/commands/review_curr_word.py:27 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_line_begin.py:27 #: ../src/fenrir/commands/commands/review_next_line.py:29 #: ../src/fenrir/commands/commands/review_next_word.py:29 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_prev_line.py:27 #: ../src/fenrir/commands/commands/review_prev_word.py:27 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27 #: ../src/fenrir/commands/onInput/55000-present_line_if_cursor_change_vertical.py:38 #: ../src/fenrir/commands/onInput/72000-history.py:50 msgid "blank" msgstr "en blanco" #: ../src/fenrir/commands/commands/braille_flush.py:17 msgid "flush the braille device if a message is written on" msgstr "Limpia el dispositivo braille al escribir un mensaje en Ć©l." #: ../src/fenrir/commands/commands/braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "Mover la vista Braille a la izquierda" #: ../src/fenrir/commands/commands/braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "Mover la vista braille a la derecha" #: ../src/fenrir/commands/commands/braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "Establecer la vista Braille en el cursor" #: ../src/fenrir/commands/commands/clear_bookmark_1.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "Eliminar marcador {0}" #: ../src/fenrir/commands/commands/clear_bookmark_1.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "el marcador {0} de la aplicación {1} ha sido eliminado" #: ../src/fenrir/commands/commands/clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "VacĆ­a el portapapeles seleccionado" #: ../src/fenrir/commands/commands/clear_clipboard.py:22 msgid "clipboard cleared" msgstr "Portapapeles vacĆ­o" #: ../src/fenrir/commands/commands/clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "Desactiva el modo de ventana para la aplicación" #: ../src/fenrir/commands/commands/clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "El modo de ventana estĆ” desactivado para la aplicación {0}" #: ../src/fenrir/commands/commands/clear_window_application.py:24 msgid "Not in window Mode" msgstr "No estĆ” en modo ventana" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "Copia el texto marcado al portapapeles en uso" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:22 msgid "one or two marks needed" msgstr "se necesita una o dos marcas" #: ../src/fenrir/commands/commands/curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "Habla el contenido del portapapeles seleccionado" #: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:29 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:32 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:35 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:38 #: ../src/fenrir/commands/commands/first_clipboard.py:21 #: ../src/fenrir/commands/commands/last_clipboard.py:21 #: ../src/fenrir/commands/commands/next_clipboard.py:21 #: ../src/fenrir/commands/commands/paste_clipboard.py:23 #: ../src/fenrir/commands/commands/paste_clipboard.py:26 #: ../src/fenrir/commands/commands/paste_clipboard.py:29 #: ../src/fenrir/commands/commands/paste_clipboard.py:32 #: ../src/fenrir/commands/commands/prev_clipboard.py:21 msgid "clipboard empty" msgstr "Portapapeles vacĆ­o" #: ../src/fenrir/commands/commands/curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "Lee el contenido de la pantalla actual" #: ../src/fenrir/commands/commands/curr_screen.py:21 msgid "screen is empty" msgstr "La pantalla estĆ” vacĆ­a" #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "Lee desde el cursor hasta el final de la pantalla" #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "Lee desde el inicio de la pantalla hasta la posición del cursor." #: ../src/fenrir/commands/commands/cursor_column.py:17 msgid "" "presents the current column number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "Indica el nĆŗmero de columna actual para el cursor de revisión si se estĆ” en " "el modo de revisión, o el cursor de texto si no." #: ../src/fenrir/commands/commands/cursor_lineno.py:17 msgid "" "presents the current line number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "Indica el nĆŗmero de lĆ­nea actual para el cursor de revisión si se estĆ” en el " "modo de revisión, o el cursor de texto si no." #: ../src/fenrir/commands/commands/cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "Indica la posición del cursor de revisión" #: ../src/fenrir/commands/commands/cursor_position.py:23 msgid "line {0}, column {1}" msgstr "LĆ­nea {0}, columna {1}" #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18 msgid "" "read to end of line, use review cursor if you are in review mode, otherwhise " "use text cursor" msgstr "" "Leer hasta el fin de lĆ­nea, utiliza el cursor de revisión cuando el modo de " "revisión estĆ” activo, de lo contrario utiliza el cursor de texto." #: ../src/fenrir/commands/commands/date.py:18 msgid "presents the date" msgstr "Lee la fecha" #: ../src/fenrir/commands/commands/dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "Reduce el volumen del sonido" #: ../src/fenrir/commands/commands/dec_sound_volume.py:29 #: ../src/fenrir/commands/commands/inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "volumen de sonido al {0} porciento" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:18 msgid "decreases the pitch of the speech" msgstr "Reduce el tono de voz" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:27 #: ../src/fenrir/commands/commands/inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "Tono de voz al {0} porciento" #: ../src/fenrir/commands/commands/dec_speech_rate.py:18 msgid "decreases the rate of the speech" msgstr "Reduce la velocidad de voz" #: ../src/fenrir/commands/commands/dec_speech_rate.py:27 #: ../src/fenrir/commands/commands/inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "Velocidad de voz al {0} porciento" #: ../src/fenrir/commands/commands/dec_speech_volume.py:18 msgid "decreases the volume of the speech" msgstr "Reduce el volumen de voz" #: ../src/fenrir/commands/commands/dec_speech_volume.py:27 #: ../src/fenrir/commands/commands/inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "Volumen de voz al {0} porciento" #: ../src/fenrir/commands/commands/exit_review.py:17 msgid "exits review mode" msgstr "Sale del modo de revisión" #: ../src/fenrir/commands/commands/exit_review.py:21 msgid "Not in review mode" msgstr "No estĆ” en modo de revisión" #: ../src/fenrir/commands/commands/exit_review.py:25 msgid "leave review mode" msgstr "Saliendo del modo de revisión" #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21 msgid "export the current fenrir clipboard to X clipboard" msgstr "Exporta el contenido del portapapeles de Fenrir al servidor X" #: ../src/fenrir/commands/commands/first_clipboard.py:17 msgid "selects the first clipboard" msgstr "Selecciona el primer portapapeles" #: ../src/fenrir/commands/commands/forward_keypress.py:17 msgid "sends the following keypress to the terminal" msgstr "EnvĆ­a la siguiente tecla a la terminal" #: ../src/fenrir/commands/commands/forward_keypress.py:21 msgid "Forward next keypress" msgstr "Enviar la siguiente tecla" #: ../src/fenrir/commands/commands/inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "aumenta el volumen del sonido" #: ../src/fenrir/commands/commands/inc_speech_pitch.py:18 msgid "increases the pitch of the speech" msgstr "Aumenta el tono de voz" #: ../src/fenrir/commands/commands/inc_speech_rate.py:18 msgid "increase the speech rate" msgstr "Aumenta la velocidad de voz" #: ../src/fenrir/commands/commands/inc_speech_volume.py:18 msgid "increase the speech volume" msgstr "Aumenta el volumen de voz" #: ../src/fenrir/commands/commands/indent_curr_line.py:18 msgid "shows the indention level for the current line" msgstr "Lee el nivel de indentación de la lĆ­nea actual" #: ../src/fenrir/commands/commands/indent_curr_line.py:33 msgid "indent {0}" msgstr "" #: ../src/fenrir/commands/commands/last_clipboard.py:17 msgid "selects the last clipboard" msgstr "Selecciona el Ćŗltimo portapapeles" #: ../src/fenrir/commands/commands/last_incoming.py:17 msgid "displays the last received text" msgstr "Lee el Ćŗltimo mensaje recibido" #: ../src/fenrir/commands/commands/marked_text.py:18 msgid "speaks the currently selected text that will be copied to the clipboard" msgstr "Lee el texto que serĆ” copiado al portapapeles" #: ../src/fenrir/commands/commands/marked_text.py:23 msgid "please set begin and endmark" msgstr "Establece una marca de principio y otra para el final de la selección." #: ../src/fenrir/commands/commands/next_clipboard.py:17 msgid "selects the next clipboard" msgstr "Selecciona el siguiente portapapeles" #: ../src/fenrir/commands/commands/next_clipboard.py:26 msgid "First clipboard " msgstr "Primer portapapeles" #: ../src/fenrir/commands/commands/paste_clipboard.py:18 msgid "pastes the text from the currently selected clipboard" msgstr "Pega el texto del portapapeles en uso" #: ../src/fenrir/commands/commands/present_first_line.py:18 msgid "present first line" msgstr "lee la primera lĆ­nea" #: ../src/fenrir/commands/commands/present_last_line.py:18 #: ../src/fenrir/commands/commands/review_curr_line.py:18 msgid "current line" msgstr "lĆ­nea actual" #: ../src/fenrir/commands/commands/prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "Selecciona el portapapeles anterior" #: ../src/fenrir/commands/commands/prev_clipboard.py:26 msgid "Last clipboard " msgstr "Último portapapeles" #: ../src/fenrir/commands/commands/quit_fenrir.py:17 msgid "exits Fenrir" msgstr "Sale de Fenrir" #: ../src/fenrir/commands/commands/remove_marks.py:17 msgid "removes marks from selected text" msgstr "Quitar marcas del texto seleccionado" #: ../src/fenrir/commands/commands/remove_marks.py:21 msgid "Remove marks" msgstr "Marcas eliminadas" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "Quita la palabra actual del diccionario de excepciones" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50 msgid "{0} is already removed from dict" msgstr "{0} no estĆ” en el diccionario" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "se ha eliminado {0}" #: ../src/fenrir/commands/commands/review_bottom.py:17 msgid "move review to bottom of screen" msgstr "Mueve el cursor de revisión al final de la pantalla" #: ../src/fenrir/commands/commands/review_bottom.py:21 msgid "Bottom" msgstr "Fin" #: ../src/fenrir/commands/commands/review_curr_char.py:18 msgid "presents the current character." msgstr "Lee el carĆ”cter actual" #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "Lee fonĆ©ticamente el Ćŗltimo carĆ”cter" #: ../src/fenrir/commands/commands/review_curr_word.py:18 msgid "current word." msgstr "Palabra actual. " #: ../src/fenrir/commands/commands/review_curr_word.py:32 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_down.py:27 #: ../src/fenrir/commands/commands/review_next_char.py:28 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_next_line.py:34 #: ../src/fenrir/commands/commands/review_next_word.py:34 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_prev_char.py:31 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_prev_line.py:32 #: ../src/fenrir/commands/commands/review_prev_word.py:32 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_up.py:27 msgid "end of screen" msgstr "Fin de pantalla" #: ../src/fenrir/commands/commands/review_curr_word.py:35 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_next_char.py:31 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_next_word.py:37 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_prev_char.py:34 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_prev_word.py:35 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_up.py:30 msgid "line break" msgstr "Nueva lĆ­nea" #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19 msgid "phonetically spells the current word and set review to it" msgstr "Deletrea fonĆ©ticamente la palabra actual" #: ../src/fenrir/commands/commands/review_down.py:18 msgid "set review cursor to char below the current char and present it." msgstr "Mueve el cursor de revisión al carĆ”cter despuĆ©s del actual y lo lee" #: ../src/fenrir/commands/commands/review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "lee la lĆ­nea actual desde el principio" #: ../src/fenrir/commands/commands/review_line_begin.py:30 msgid "beginning of line" msgstr "principio de lĆ­nea" #: ../src/fenrir/commands/commands/review_line_end.py:18 #: ../src/fenrir/commands/commands/review_line_first_char.py:19 #: ../src/fenrir/commands/commands/review_line_last_char.py:18 msgid "set review cursor to end of current line and display the content" msgstr "Lee el final de la lĆ­nea" #: ../src/fenrir/commands/commands/review_line_end.py:27 msgid "end of line" msgstr "Fin de lĆ­nea" #: ../src/fenrir/commands/commands/review_line_first_char.py:26 msgid "line is empty" msgstr "LĆ­nea en blanco" #: ../src/fenrir/commands/commands/review_line_first_char.py:33 msgid "first char in line indent {0}" msgstr "" #: ../src/fenrir/commands/commands/review_line_last_char.py:27 msgid "last char in line" msgstr "Ćŗltimo carĆ”cter de la lĆ­nea" #: ../src/fenrir/commands/commands/review_next_char.py:18 msgid "moves review to the next character and presents it" msgstr "Lee el siguiente carĆ”cter" #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "Lee fonĆ©ticamente el siguiente carĆ”cter" #: ../src/fenrir/commands/commands/review_next_line.py:18 msgid "moves review to the next line and presents it" msgstr "Lee la siguiente lĆ­nea" #: ../src/fenrir/commands/commands/review_next_word.py:18 msgid "moves review to the next word and presents it" msgstr "Lee la siguiente palabra" #: ../src/fenrir/commands/commands/review_prev_char.py:18 msgid "moves review to the previous character and presents it" msgstr "Lee el carĆ”cter anterior" #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "Lee fonĆ©ticamente el carĆ”cter anterior" #: ../src/fenrir/commands/commands/review_prev_line.py:18 msgid "moves review to the previous line and presents it" msgstr "Lee la lĆ­nea anterior" #: ../src/fenrir/commands/commands/review_prev_word.py:18 msgid "moves review focus to the previous word and presents it" msgstr "Lee la palabra anterior" #: ../src/fenrir/commands/commands/review_top.py:18 msgid "move review to top of screen" msgstr "ir al final de la pantalla" #: ../src/fenrir/commands/commands/review_top.py:22 msgid "Top" msgstr "Fin" #: ../src/fenrir/commands/commands/review_up.py:18 msgid "set review cursor to the char in the line below and present it" msgstr "Mueve el cursor de revisión al carĆ”cter en la siguiente lĆ­nea y lo lee" #: ../src/fenrir/commands/commands/set_bookmark_1.py:18 #: ../src/fenrir/commands/commands/set_bookmark_10.py:18 #: ../src/fenrir/commands/commands/set_bookmark_2.py:18 #: ../src/fenrir/commands/commands/set_bookmark_3.py:18 #: ../src/fenrir/commands/commands/set_bookmark_4.py:18 #: ../src/fenrir/commands/commands/set_bookmark_5.py:18 #: ../src/fenrir/commands/commands/set_bookmark_6.py:18 #: ../src/fenrir/commands/commands/set_bookmark_7.py:18 #: ../src/fenrir/commands/commands/set_bookmark_8.py:18 #: ../src/fenrir/commands/commands/set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "AƱadir marcador {0}" #: ../src/fenrir/commands/commands/set_bookmark_1.py:22 #: ../src/fenrir/commands/commands/set_bookmark_10.py:22 #: ../src/fenrir/commands/commands/set_bookmark_2.py:22 #: ../src/fenrir/commands/commands/set_bookmark_3.py:22 #: ../src/fenrir/commands/commands/set_bookmark_4.py:22 #: ../src/fenrir/commands/commands/set_bookmark_5.py:22 #: ../src/fenrir/commands/commands/set_bookmark_6.py:22 #: ../src/fenrir/commands/commands/set_bookmark_7.py:22 #: ../src/fenrir/commands/commands/set_bookmark_8.py:22 #: ../src/fenrir/commands/commands/set_bookmark_9.py:22 msgid "No Mark found" msgstr "No se han encontrado marcas" #: ../src/fenrir/commands/commands/set_bookmark_1.py:32 #: ../src/fenrir/commands/commands/set_bookmark_10.py:32 #: ../src/fenrir/commands/commands/set_bookmark_2.py:32 #: ../src/fenrir/commands/commands/set_bookmark_3.py:32 #: ../src/fenrir/commands/commands/set_bookmark_4.py:32 #: ../src/fenrir/commands/commands/set_bookmark_5.py:32 #: ../src/fenrir/commands/commands/set_bookmark_6.py:32 #: ../src/fenrir/commands/commands/set_bookmark_7.py:32 #: ../src/fenrir/commands/commands/set_bookmark_8.py:32 #: ../src/fenrir/commands/commands/set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "AƱadido marcador {0} para aplicación {1}" #: ../src/fenrir/commands/commands/set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "" "Establece marcas para seleccionar texto que serĆ” copiado al portapapeles" #: ../src/fenrir/commands/commands/set_mark.py:21 msgid "no review cursor" msgstr "No hay cursor de revisión" #: ../src/fenrir/commands/commands/set_mark.py:26 #: ../src/fenrir/commands/commands/set_mark.py:28 msgid "set mark" msgstr "Marcar" #: ../src/fenrir/commands/commands/set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "se necesitan dos marcas para establecer el modo ventana" #: ../src/fenrir/commands/commands/set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "El modo de ventana estĆ” activado para la aplicación {0}" #: ../src/fenrir/commands/commands/set_window_application.py:25 msgid "Set window begin and end marks" msgstr "Establece una marca de principio y otra para el final de la ventana" #: ../src/fenrir/commands/commands/shut_up.py:17 msgid "interrupts the current presentation" msgstr "Interrumpe el habla y braille." #: ../src/fenrir/commands/commands/spell_check.py:26 msgid "checks the spelling of the current word" msgstr "Revisa la ortografĆ­a para la palabra actual" #: ../src/fenrir/commands/commands/spell_check.py:52 #: ../src/fenrir/commands/onInput/62000-spell_check.py:132 msgid "misspelled" msgstr "mal escrito" #: ../src/fenrir/commands/commands/spell_check.py:54 msgid "correct" msgstr "Correcto" #: ../src/fenrir/commands/commands/subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "Script: {0} Ruta de archivo: {1}" #: ../src/fenrir/commands/commands/subprocess.py:24 msgid "scriptfile does not exist" msgstr "el archivo del script no existe" #: ../src/fenrir/commands/commands/subprocess.py:27 msgid "scriptfile is not a file" msgstr "El script no es un archivo" #: ../src/fenrir/commands/commands/subprocess.py:30 msgid "scriptfile is not executable" msgstr "el script no es ejecutable" #: ../src/fenrir/commands/commands/temp_disable_speech.py:17 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "Desactiva el habla hasta la siguiente pulsación de teclas" #: ../src/fenrir/commands/commands/temp_disable_speech.py:21 msgid "speech temporary disabled" msgstr "Habla desactivada temporalmente" #: ../src/fenrir/commands/commands/time.py:18 msgid "presents the time" msgstr "Lee la hora" #: ../src/fenrir/commands/commands/toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "" "Activa o desactiva la lectura de texto cuando hay nuevo contenido en la " "pantalla" #: ../src/fenrir/commands/commands/toggle_auto_read.py:21 msgid "autoread enabled" msgstr "Lectura automĆ”tica activada" #: ../src/fenrir/commands/commands/toggle_auto_read.py:23 msgid "autoread disabled" msgstr "Lectura automĆ”tica desactivada" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "Activa o desactiva la corrección ortogrĆ”fica automĆ”tica" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "corrección ortogrĆ”fica automĆ”tica activada" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "corrección ortogrĆ”fica automĆ”tica desactivada" #: ../src/fenrir/commands/commands/toggle_auto_time.py:16 msgid "enables or disables automatic reading of time after an period" msgstr "" "Activa o desactiva la lectura automĆ”tica de la hora despuĆ©s de un intervalo " "de tiempo" #: ../src/fenrir/commands/commands/toggle_auto_time.py:21 msgid "autotime enabled" msgstr "lectura automĆ”tica de hora activada" #: ../src/fenrir/commands/commands/toggle_auto_time.py:23 msgid "autotime disabled" msgstr "Lectura automĆ”tica de hora desactivada" #: ../src/fenrir/commands/commands/toggle_braille.py:17 msgid "enables and disables output in braille" msgstr "Activa y desactiva la salida Braille" #: ../src/fenrir/commands/commands/toggle_braille.py:21 msgid "braille disabled" msgstr "Braille desactivado" #: ../src/fenrir/commands/commands/toggle_braille.py:24 msgid "braille enabled" msgstr "Braille activado" #: ../src/fenrir/commands/commands/toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "Activa o desactiva el anunciado de emoticonos en lugar de caracteres" #: ../src/fenrir/commands/commands/toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "Emoticonos activados" #: ../src/fenrir/commands/commands/toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "Emoticonos desactivados" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 #: ../src/fenrir/commands/onInput/56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "Activa o desactiva el seguimiento de texto resaltado" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "Seguimiento del texto resaltado" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "Seguimiento del cursor" #: ../src/fenrir/commands/commands/toggle_output.py:17 msgid "toggles all output settings" msgstr "Conmuta el silencio del lector de pantalla" #: ../src/fenrir/commands/commands/toggle_output.py:23 msgid "Fenrir muted" msgstr "Fenrir silenciado" #: ../src/fenrir/commands/commands/toggle_output.py:31 msgid "Fenrir unmuted" msgstr "Desactivado el silencio" #: ../src/fenrir/commands/commands/toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "No se ha encontrado la puntuación" #: ../src/fenrir/commands/commands/toggle_sound.py:17 msgid "enables or disables sound" msgstr "Activa o desactiva el sonido" #: ../src/fenrir/commands/commands/toggle_sound.py:21 msgid "sound disabled" msgstr "sonido desactivado" #: ../src/fenrir/commands/commands/toggle_sound.py:24 msgid "sound enabled" msgstr "Sonido activado" #: ../src/fenrir/commands/commands/toggle_speech.py:17 msgid "enables or disables speech" msgstr "Activa o desactiva el habla" #: ../src/fenrir/commands/commands/toggle_speech.py:21 msgid "speech disabled" msgstr "Habla desactivada" #: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "Habla activada" #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:18 msgid "" "You are leaving the tutorial mode. Press that shortcut again to enter the " "tutorial mode again." msgstr "" "Has salido del tutorial. Presiona la misma combinación de teclado para " "entrar al tutorial de nuevo." #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:21 msgid "" "you entered the tutorial mode. In that mode the commands are not executed. " "but you get a description of what the shortcut does. To leave the tutorial " "mode, press that shortcut again." msgstr "" "Has entrado al tutorial. En este modo las combinaciones de teclado no se " "ejecutarĆ”n pero te darĆ”n una descripción de lo que hacen. Para salir del " "tutorial, presiona la misma combinación de teclado de nuevo." #: ../src/fenrir/commands/onInput/80000-capslock.py:22 msgid "Capslock on" msgstr "Bloqueo mayĆŗsculas activado" #: ../src/fenrir/commands/onInput/80000-capslock.py:24 msgid "Capslock off" msgstr "Bloqueo mayĆŗsculas desactivado" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "Bloqueo de desplazamiento activado" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "Bloqueo de desplazamiento desactivado" #: ../src/fenrir/commands/onInput/80500-numlock.py:22 msgid "Numlock on" msgstr "Bloqueo numĆ©rico activado" #: ../src/fenrir/commands/onInput/80500-numlock.py:24 msgid "Numlock off" msgstr "Bloqueo numĆ©rico desactivado" #: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "pantalla {0}" #: ../src/fenrir/commands/onScreenUpdate/76000-time.py:66 msgid "Autotime: {0}" msgstr "Hora automĆ”tica: {0}" #: ../src/fenrir/fenrir.py:24 msgid "Start Fenrir" msgstr "Iniciando fenrir" #: ../src/fenrir/fenrir.py:99 msgid "Quit Fenrir" msgstr "Cerrando Fenrir" fenrir/locale/pl/000077500000000000000000000000001513650123000142115ustar00rootroot00000000000000fenrir/locale/pl/LC_MESSAGES/000077500000000000000000000000001513650123000157765ustar00rootroot00000000000000fenrir/locale/pl/LC_MESSAGES/fenrir.mo000066400000000000000000000403761513650123000176320ustar00rootroot00000000000000Ž•Ä<\ x y‡$’·(Ģ$õ ! .: ?I` hu„˜©æÅÜ ģ ÷    %2:Y y‡° Ć Ļ Ś7ę "/ >$Lq $”Ę#Ģ"š^2r'„Ķč+<N_qw}ƒˆž ®'»'ć -6H ‡ ”¢²·!Ķ ļ"#3W*w¢µ&Ē>ī?-=m,«Ųņ+ 09 j v „‘2£-Ö3"Vo…›”1“ę’! <#Gk}  𨠽Čč72=-p-ž6Ģ15F5^=”AŅ94Nƒ ³lÓ@Rd\‘1ī( I M a 7‚ ŗ Ź Õ ļ  !"!?![!v!‘!,°!Ż!ī!":"BR"@•"@Ö">#.V#…# ”#7¢#GŚ#"$2$A$[$w$ ‘$œ$¶¢$ Y%c% z%›%“%Ķ%å%’% &Œ%&²'Ä' Ė'*Õ'(*()H(r(y(( £( ­(ŗ( Ł(ć(õ())))F)N)m)|) ) š) §)“)Ä)Ō)Ū)ł)*2*(O*"x*›*°*Ä*)Ó*ż*++-+)C+m+Œ+›+"¢+Å+(Ģ+&õ+,/4,0d,!•,-·,,å,@-2S-(†-'Æ-×-č-ļ- õ- ’- ..'.9.%K.$q.–. Ŗ.·.8×.//(/8/ L/!V/x/“/®/6Ź/#0&%0L0c0'y0-”0DĻ0A1BV1 ™1ŗ11Ų19 2 D2 R2`2o20Œ2,½2$ź2A3%Q3'w3(Ÿ3Č3Š3#ė34+4H4 c4 p4‘4§4æ4Ō4ę4ż4, 5-95Ag5?©5?é5@)6@j6@«6ģ6 7+&7KR7Kž7Lź7778"o8’8®8nĒ869%Q9!w9™9~“9*3:$^:ƒ:Œ:%¢:.Č:÷: ;$;8;S;"r;•;Æ;Ē;į;'ū;#<(8<a<Bq<E“<Hś<BC=D†=-Ė=ł=>,">AO>‘>£>“>*Ń>ü> ?"?“)?Ž?#ž?%"@$H@m@‹@Ŗ@$Ź@ļ@‡·Z?v¶T,_¤½D Ŗ@p~49 Äcs«Ɲøˆ5„`3’*W§Įa%r†} y“MwØ>)Š oP$^®JHg1=›#x|S2"b„•¼I¹˜Q…X—O{­fLj8<± BdG¬u€+zF!]-lN&K'‰‘n“;mÆŗ[7Žƒ²/tĄŒšĀA(Ee–¦”qœiY\° µækh‚ŸCV¾:¢.6UžR0 »‹£”™©³Autotime: {0}BlackBlueBookmark for application {0} not setBookmark {0} not setBookmark {0} removed for application {1}Bookmark {0} set for application {1}BottomCapslock offCapslock onCyanDark grayDecrease system volumeDefaultFenrir mutedFenrir unmutedFile does not existFirst clipboard Forward next keypressGreenIncrease system volumeLast clipboard Light blueLight cyanLight grayLight magentaLight redLight yellowMagentaMove braille view to the left.Move braille view to the right.No Mark foundNo punctuation found.Not in review modeNot in window ModeNumlock offNumlock onQuit FenrirReads from the top of the screen to the cursor positionRedRemove marksScrolllock offScrolllock onSet the braille view back to cursor.Set window begin and end marksStart FenrirTopTurn off window mode for applicationWhiteWindow Mode off for application {0}Window Mode on for application {0}You are leaving the tutorial mode. Press that shortcut again to enter the tutorial mode again.adds the current word to the exceptions dictionaryadjusts the volume for in coming soundsalsaaudio is not installedauto spellcheck disabledauto spellcheck enabledautoread disabledautoread enabledautotime disabledautotime enabledbeginning of lineblackblankblinkblueboldbraille disabledbraille enabledbrown/yellowchecks the spelling of the current wordclears the currently selected clipboardclipboard clearedclipboard emptyclipboard exported to filecopies marked text to the currently selected clipboardcorrectcurrent linecurrent word.cursor trackingcyandecrease sound volumedecreases the pitch of the speechdecreases the rate of the speechdecreases the volume of the speechdisables speech until next keypressdisplays the last received textdisplays the position of the review cursoremoticons disabledemoticons enabledenables and disables output in brailleenables or disables announcement of emoticons instead of charsenables or disables automatic reading of new text as it appearsenables or disables automatic reading of time after an periodenables or disables automatic spell checkingenables or disables soundenables or disables speechenables or disables tracking of highlightedenables or disables tracking of highlighted textend of lineend of screenexits Fenrirexits review modeexport the current fenrir clipboard to X clipboardexport the current fenrir clipboard to a filefirst char in line indent {0}flush the braille device if a message is written onget current help messageget next help messageget prev help messagegreenhighlight trackingimports text from clipboard file to the clipboardincrease the speech rateincrease the speech volumeincreases the pitch of the speechindent {0}interrupts the current presentationlast char in lineleave review modeline breakline is emptyline {0}, column {1}misspelledmove review to bottom of screenmove review to top of screenmoves review focus to the previous word and presents itmoves review to the next character and presents itmoves review to the next line and presents itmoves review to the next word and presents itmoves review to the previous character and presents itmoves review to the previous line and presents itno review cursorone or two marks neededpastes the text from the currently selected clipboardphonetically presents the next character and set review to itphonetically presents the previous character and set review to itphonetically spells the current word and set review to itplaces marks to select text to copy to the clipboardplease set begin and endmarkpresent first linepresents the current character.presents the current column number for review cursor in review mode or the text cursor if not. Starts with 1presents the datepresents the timepyenchant is not installedread Bookmark {0}read to end of line, use review cursor if you are in review mode, otherwhise use text cursorreads from the cursor to the bottom of the screenreads the contents of the current screenredremove Bookmark {0}removes marks from selected textremoves the current word from the exceptions dictionaryscreen is emptyscreen {0}script: {0} fullpath: {1}scriptfile does not existscriptfile is not a filescriptfile is not executableselects the first clipboardselects the last clipboardselects the next clipboardselects the previous clipboardsends the following keypress to the terminalset Bookmark {0}set Window Mode, needs 2 marks set markset review and phonetically presents the current characterset review cursor to begin of current line and display the contentset review cursor to char below the current char and present it.set review cursor to end of current line and display the contentset review cursor to the char in the line below and present itshows the indention level for the current linesound disabledsound enabledspeaks the contents of the currently selected clipboardspeaks the currently selected text that will be copied to the clipboardspeech disabledspeech enabledspeech temporary disabledtoggles all output settingstoggles the tutorial modeunderlinedwhiteyou entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again.{0} added{0} is already in dict{0} is already removed from dict{0} percent sound volume{0} percent speech pitch{0} percent speech rate{0} percent speech volume{0} percent system volume{0} removedProject-Id-Version: POT-Creation-Date: 2017-12-27 17:34+CET PO-Revision-Date: 2018-10-23 16:35+0200 Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 X-Generator: Poedit 2.2 Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2); Last-Translator: Language: pl_PL Jest godzina: {0}CzarnyNiebieskiZakładka dla aplikacji {0} nie ustawiona.Zakładka {0} nie ustawiona.Zakładka {0} usunięta dla aplikacji {1}.Zakładka {0} ustawiona dla aplikacji {1}Dół.Capslock wyłączony.Capslock włączonyTurkusowyCiemno-szaryZmniejsza głośność systemuDomyślnyFenrir wyciszony.Fenrir odciszonyPlik nie istnieje.Pierwszy showekPrzepuść następny klawiszZielonyZwiększa głośność systemuOstatni showekJasno-niebieski.Jasny turkusJasno-szary.Jasna fuksjaJasno-czerwony.Jasno-żółty.FuksjaPrzesuwa widok brajla w lewo.Przesuwa widok brajla w prawo.Nie znaleziono znacznika.Nie znaleziono interpunkcji.Nie znajdujesz się w trybie przeglądu.Nie znajdujesz się w trybie okna.Numlock wyłączony.Numlock włączony.Zamknij FenrirCzyta od góry ekranu do pozycji kursora.CzerwonyUsuń znacznikiScrollock wyłączony.Scrollock włączony.Przesuwa widok brajla do pozycji kursora.Ustaw początek i koniec okna.Uruchom FenrirGóra.Wyłącza tryb okna dla aplikacji.BiałyTryb okna dla aplikacji {0} wyłączony.Tryb okna włączony dla aplikacji {0}Opuszczasz tryb pomocy.Dodaje aktualne słowo do słownika wyjątków.Dostosowuje głośność zdarzeń dÅŗwiękowych.Alsaaudio nie jest zainstalowany.Automatyczne sprawdzanie pisowni wyłączone.Automatyczne sprawdzanie pisowni włączone.Wyłączono automatyczne ogłaszanie dynamicznych zmian treści.Włączono ogłaszanie dynamicznych zmian treści.Wyłączono okresowe odczytywanie czasu.Włączono okresowe odczytywanie czasu.Początek linii.CzarnyPustaMigającyniebieskiPogrubionyBrajl wyłączony.Brajl włączony.Brązowo-żółtySprawdza pisownię aktualnego słowa.Czyści aktualnie zaznaczony showek.Showek wyczyszczonyShowek pustyShowek wyeksportowany do pliku.Kopiuje zaznaczony tekst do aktualnie wybranego schowka.PoprawnyAktualna liniaAktualne słowoŚledzenie kursora.TurkusowyZmniejsza głośność dÅŗwięku.Zmniejsza wysokość mowy.Zmniejsza prędkość mowyZmniejsza głośność mowyWyłącza mowę do następnego naciśnięcia klawisza.Wyświetla ostatnio odebrany tekst.Wyświetla pozycję kursora przegląduEmotikony wyłączone.Emotikony włączone.Włącza lub wyłącza wyjście brajla.Włącza lub wyłącza odczytywanie emotikon.Włącza lub wyłącza informowanie o dynamicznych zmianach treści.Włącza lub wyłącza okresowe, automatyczne odczytywanie czasu.Włącza lub wyłącza automatyczne sprawdzanie błędów pisowni.Włącza lub wyłącza dÅŗwięk.Włącza lub wyłącza mowę.Włącza lub wyłącza śledzenie podświetlenia.Włącza lub wyłącza śledzenie podświetlonego tekstu.Koniec linii.Koniec ekranuZamyka Fenrir.Wychodzi z trybu przeglądu.Wyeksportuj aktualny showek Fenrir do schowka X.Wyeksportuj aktualny showek Fenrir do pliku.Pierwszy znak w linii o wcięciu {0}Przeładowuje urządzenie brajla w przypadku nadpisywania tekstu.Odczytaj aktualną wiadomość pomocyOdczytaj następną wiadomość pomocy.Odczytaj poprzednią wiadomość pomocy.ZielonyŚledzenie podświetlenia.Importuje tekst z pliku do schowka.Zwiększa prędkość mowy.Zwiększa głośność mowy.Zwiększa wysokość mowy.Wcięcie {0}Przerywa aktualną prezentację.Ostatni znak w linii.Opuść tryb przegląduZnak końca wiersza.Linia jest pusta.Linia {0}, kolumna {1}Błąd pisowniPrzenieś kursor przeglądu na dół ekranu.Przenieś kursor przeglądu na górę ekranu.Przesuwa kursor przeglądu do poprzedniego słowa i odczytuje je.Przesuwa kursor przeglądu do następnego znaku i odczytuje go.Przesuwa kursor przeglądu do następnej linii i odczytuje ją.Przesuwa kursor przeglądu do następnego słowa i odczytuje je.Przesuwa kursor przeglądu do poprzedniego znaku i odczytuje go.Przenosi kursor przeglądu do poprzedniej linii i odczytuje ją.Brak kursora przeglądu.Wymagane jeden lub dwa znacznikiWkleja tekst z aktualnie wybranego schowka.Fonetycznie odczytuje następny znak i przenosi do niego kursor przeglądu.Odczytuje fonetycznie poprzedni znak i przenosi do niego kursor przeglądu.Fonetycznie odczytuje aktualne słowo i przenosi do niego kursor przeglądu.Ustawia znaczniki w tekście do skopiowania do schowka.ustaw znacznik początku i końca.Odczytuje pierwszą linię.Odczytuje aktualny znak.Odczytuje numer aktualnej kolumny dla kursora przeglądu (jeśli w trybie przeglądu), lub dla kursora tekstu.Odczytuje aktualną datę.Wyświetla i odczytuje aktualny czas.Pyenchant nie jest zainstalowany.Przeczytaj Zakładkę {0}.Czyta tekst do końca linii. Używa kursora przeglądu (jeśli w trybie przeglądu), w przeciwnym razie używa kursora tekstu.Czyta od pozycji kursora do końca ekranu.Wypowiada treść aktualnego ekranu.CzerwonyUsuń zakładkę {0}.Usuwa znaczniki z zaznaczonego tekstuUsuwa aktualne słowo ze słownika wyjątków.Ekran jest pusty.Ekran {0}Skrypt: {0}, ścieżka dostępu: {1}Plik skryptu nie istnieje.Plik skryptu nie jest plikiem.Plik skryptu nie jest wykonywalny.Wybiera pierwszy schowek.Wybiera ostatni showek.Wybiera następny showek.Wybiera poprzedni showek.Wysyła następny klawisz do terminala.Ustaw zakładkę {0}ustaw tryb okna, wymagane dwa znaczniki.ustaw znacznik.Ustawia kursor przeglądu i fonetycznie odczytuje zaznaczony znak.Ustawia kursor przeglądu na początku linii i odczytuje jej treść.ustawia kursor przeglądu do znaku pod aktualnym znakiem i odczytuje go.Ustawia kursor przeglądu na końcu linii i odczytuje jej treść.Przenieś kursor przeglądu do znaku w linii poniżej i odczytaj go.Pokazuje poziom wcięcia dla aktualnej linii.DÅŗwięk wyłączonyDÅŗwięk włączonyWypowiada treść aktualnie wybranego showkaWypowiada zaznaczony tekst który zostanie skopiowany do schowka.Mowa wyłączona.Mowa włączona.Mowa tymczasowo wyłączona.Przełącza wszystkie ustawienia wyjścia.Przełącza tryb pomocy.PodkreślonyBiałyWszedłeś w tryb pomocy. W tym trybie naciskane klawisze nie są wykonywane a jedynie odczytywane jest ich przeznaczenie. Aby opuścić tryb pomocy, naciśnij ten skrót ponownie.Słowo {0} dodane do słownika.{0} już znajduje się w słowniku.{0} już jest usunięte ze słownika.Głośność dÅŗwięku: {0} procent.Wysokość mowy: {0} procent.Prędkość mowy: {0} procent.Głośność mowy: {0} procent.Głośność systemowa: {0} procent.{0} usunięte.fenrir/locale/pl/LC_MESSAGES/fenrir.po000066400000000000000000001106201513650123000176230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2017-12-27 17:34+CET\n" "PO-Revision-Date: 2018-10-23 16:35+0200\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 2.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 " "|| n%100>14) ? 1 : 2);\n" "Last-Translator: \n" "Language: pl_PL\n" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "Dodaje aktualne słowo do słownika wyjątków." #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34 #: ../src/fenrir/commands/commands/spell_check.py:29 #: ../src/fenrir/commands/commands/spell_check.py:36 msgid "pyenchant is not installed" msgstr "Pyenchant nie jest zainstalowany." #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:49 msgid "{0} is already in dict" msgstr "{0} już znajduje się w słowniku." #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:52 msgid "{0} added" msgstr "Słowo {0} dodane do słownika." #: ../src/fenrir/commands/commands/bookmark_1.py:19 #: ../src/fenrir/commands/commands/bookmark_10.py:19 #: ../src/fenrir/commands/commands/bookmark_2.py:19 #: ../src/fenrir/commands/commands/bookmark_3.py:19 #: ../src/fenrir/commands/commands/bookmark_4.py:19 #: ../src/fenrir/commands/commands/bookmark_5.py:19 #: ../src/fenrir/commands/commands/bookmark_6.py:19 #: ../src/fenrir/commands/commands/bookmark_7.py:19 #: ../src/fenrir/commands/commands/bookmark_8.py:19 #: ../src/fenrir/commands/commands/bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "Przeczytaj Zakładkę {0}." #: ../src/fenrir/commands/commands/bookmark_1.py:24 #: ../src/fenrir/commands/commands/bookmark_10.py:24 #: ../src/fenrir/commands/commands/bookmark_2.py:24 #: ../src/fenrir/commands/commands/bookmark_3.py:24 #: ../src/fenrir/commands/commands/bookmark_4.py:24 #: ../src/fenrir/commands/commands/bookmark_5.py:24 #: ../src/fenrir/commands/commands/bookmark_6.py:24 #: ../src/fenrir/commands/commands/bookmark_7.py:24 #: ../src/fenrir/commands/commands/bookmark_8.py:24 #: ../src/fenrir/commands/commands/bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "Zakładka {0} nie ustawiona." #: ../src/fenrir/commands/commands/bookmark_1.py:27 #: ../src/fenrir/commands/commands/bookmark_1.py:30 #: ../src/fenrir/commands/commands/bookmark_10.py:27 #: ../src/fenrir/commands/commands/bookmark_10.py:30 #: ../src/fenrir/commands/commands/bookmark_2.py:27 #: ../src/fenrir/commands/commands/bookmark_2.py:30 #: ../src/fenrir/commands/commands/bookmark_3.py:27 #: ../src/fenrir/commands/commands/bookmark_3.py:30 #: ../src/fenrir/commands/commands/bookmark_4.py:27 #: ../src/fenrir/commands/commands/bookmark_4.py:30 #: ../src/fenrir/commands/commands/bookmark_5.py:27 #: ../src/fenrir/commands/commands/bookmark_5.py:30 #: ../src/fenrir/commands/commands/bookmark_6.py:27 #: ../src/fenrir/commands/commands/bookmark_6.py:30 #: ../src/fenrir/commands/commands/bookmark_7.py:27 #: ../src/fenrir/commands/commands/bookmark_7.py:30 #: ../src/fenrir/commands/commands/bookmark_8.py:27 #: ../src/fenrir/commands/commands/bookmark_8.py:30 #: ../src/fenrir/commands/commands/bookmark_9.py:27 #: ../src/fenrir/commands/commands/bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "Zakładka dla aplikacji {0} nie ustawiona." #: ../src/fenrir/commands/commands/bookmark_1.py:43 #: ../src/fenrir/commands/commands/bookmark_10.py:43 #: ../src/fenrir/commands/commands/bookmark_2.py:43 #: ../src/fenrir/commands/commands/bookmark_3.py:43 #: ../src/fenrir/commands/commands/bookmark_4.py:43 #: ../src/fenrir/commands/commands/bookmark_5.py:43 #: ../src/fenrir/commands/commands/bookmark_6.py:43 #: ../src/fenrir/commands/commands/bookmark_7.py:43 #: ../src/fenrir/commands/commands/bookmark_8.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27 #: ../src/fenrir/commands/commands/indent_curr_line.py:31 #: ../src/fenrir/commands/commands/marked_text.py:33 #: ../src/fenrir/commands/commands/present_first_line.py:25 #: ../src/fenrir/commands/commands/present_last_line.py:25 #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27 #: ../src/fenrir/commands/commands/review_curr_line.py:27 #: ../src/fenrir/commands/commands/review_curr_word.py:27 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_line_begin.py:27 #: ../src/fenrir/commands/commands/review_next_line.py:29 #: ../src/fenrir/commands/commands/review_next_word.py:29 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_prev_line.py:27 #: ../src/fenrir/commands/commands/review_prev_word.py:27 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27 #: ../src/fenrir/commands/onCursorChange/55000-present_line_if_cursor_change_vertical.py:37 #: ../src/fenrir/commands/onScreenUpdate/60000-history.py:49 msgid "blank" msgstr "Pusta" #: ../src/fenrir/commands/commands/braille_flush.py:17 msgid "flush the braille device if a message is written on" msgstr "Przeładowuje urządzenie brajla w przypadku nadpisywania tekstu." #: ../src/fenrir/commands/commands/braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "Przesuwa widok brajla w lewo." #: ../src/fenrir/commands/commands/braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "Przesuwa widok brajla w prawo." #: ../src/fenrir/commands/commands/braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "Przesuwa widok brajla do pozycji kursora." #: ../src/fenrir/commands/commands/clear_bookmark_1.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "Usuń zakładkę {0}." #: ../src/fenrir/commands/commands/clear_bookmark_1.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "Zakładka {0} usunięta dla aplikacji {1}." #: ../src/fenrir/commands/commands/clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "Czyści aktualnie zaznaczony showek." #: ../src/fenrir/commands/commands/clear_clipboard.py:22 msgid "clipboard cleared" msgstr "Showek wyczyszczony" #: ../src/fenrir/commands/commands/clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "Wyłącza tryb okna dla aplikacji." #: ../src/fenrir/commands/commands/clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "Tryb okna dla aplikacji {0} wyłączony." #: ../src/fenrir/commands/commands/clear_window_application.py:24 msgid "Not in window Mode" msgstr "Nie znajdujesz się w trybie okna." #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "Kopiuje zaznaczony tekst do aktualnie wybranego schowka." #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:22 msgid "one or two marks needed" msgstr "Wymagane jeden lub dwa znaczniki" #: ../src/fenrir/commands/commands/curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "Wypowiada treść aktualnie wybranego showka" #: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:29 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:32 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:35 #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:38 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:30 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:33 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:36 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:39 #: ../src/fenrir/commands/commands/first_clipboard.py:21 #: ../src/fenrir/commands/commands/last_clipboard.py:21 #: ../src/fenrir/commands/commands/next_clipboard.py:21 #: ../src/fenrir/commands/commands/paste_clipboard.py:23 #: ../src/fenrir/commands/commands/paste_clipboard.py:26 #: ../src/fenrir/commands/commands/paste_clipboard.py:29 #: ../src/fenrir/commands/commands/paste_clipboard.py:32 #: ../src/fenrir/commands/commands/prev_clipboard.py:21 msgid "clipboard empty" msgstr "Showek pusty" #: ../src/fenrir/commands/commands/curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "Wypowiada treść aktualnego ekranu." #: ../src/fenrir/commands/commands/curr_screen.py:21 msgid "screen is empty" msgstr "Ekran jest pusty." #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "Czyta od pozycji kursora do końca ekranu." #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "Czyta od góry ekranu do pozycji kursora." #: ../src/fenrir/commands/commands/cursor_column.py:17 msgid "" "presents the current column number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "Odczytuje numer aktualnej kolumny dla kursora przeglądu (jeśli w trybie " "przeglądu), lub dla kursora tekstu." #: ../src/fenrir/commands/commands/cursor_lineno.py:17 msgid "" "presents the current line number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" #: ../src/fenrir/commands/commands/cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "Wyświetla pozycję kursora przeglądu" #: ../src/fenrir/commands/commands/cursor_position.py:23 msgid "line {0}, column {1}" msgstr "Linia {0}, kolumna {1}" #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18 msgid "" "read to end of line, use review cursor if you are in review mode, otherwhise " "use text cursor" msgstr "" "Czyta tekst do końca linii. Używa kursora przeglądu (jeśli w trybie " "przeglądu), w przeciwnym razie używa kursora tekstu." #: ../src/fenrir/commands/commands/date.py:18 msgid "presents the date" msgstr "Odczytuje aktualną datę." #: ../src/fenrir/commands/commands/dec_alsa_volume.py:24 msgid "Decrease system volume" msgstr "Zmniejsza głośność systemu" #: ../src/fenrir/commands/commands/dec_alsa_volume.py:28 #: ../src/fenrir/commands/commands/inc_alsa_volume.py:28 msgid "alsaaudio is not installed" msgstr "Alsaaudio nie jest zainstalowany." #: ../src/fenrir/commands/commands/dec_alsa_volume.py:36 #: ../src/fenrir/commands/commands/inc_alsa_volume.py:36 msgid "{0} percent system volume" msgstr "Głośność systemowa: {0} procent." #: ../src/fenrir/commands/commands/dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "Zmniejsza głośność dÅŗwięku." #: ../src/fenrir/commands/commands/dec_sound_volume.py:29 #: ../src/fenrir/commands/commands/inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "Głośność dÅŗwięku: {0} procent." #: ../src/fenrir/commands/commands/dec_speech_pitch.py:18 msgid "decreases the pitch of the speech" msgstr "Zmniejsza wysokość mowy." #: ../src/fenrir/commands/commands/dec_speech_pitch.py:26 #: ../src/fenrir/commands/commands/inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "Wysokość mowy: {0} procent." #: ../src/fenrir/commands/commands/dec_speech_rate.py:18 msgid "decreases the rate of the speech" msgstr "Zmniejsza prędkość mowy" #: ../src/fenrir/commands/commands/dec_speech_rate.py:27 #: ../src/fenrir/commands/commands/inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "Prędkość mowy: {0} procent." #: ../src/fenrir/commands/commands/dec_speech_volume.py:18 msgid "decreases the volume of the speech" msgstr "Zmniejsza głośność mowy" #: ../src/fenrir/commands/commands/dec_speech_volume.py:27 #: ../src/fenrir/commands/commands/inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "Głośność mowy: {0} procent." #: ../src/fenrir/commands/commands/exit_review.py:17 #: ../src/fenrir/commands/onCursorChange/66000-exit_review_mode.py:17 msgid "exits review mode" msgstr "Wychodzi z trybu przeglądu." #: ../src/fenrir/commands/commands/exit_review.py:21 msgid "Not in review mode" msgstr "Nie znajdujesz się w trybie przeglądu." #: ../src/fenrir/commands/commands/exit_review.py:25 msgid "leave review mode" msgstr "Opuść tryb przeglądu" #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:19 msgid "export the current fenrir clipboard to a file" msgstr "Wyeksportuj aktualny showek Fenrir do pliku." #: ../src/fenrir/commands/commands/export_clipboard_to_file.py:43 msgid "clipboard exported to file" msgstr "Showek wyeksportowany do pliku." #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21 msgid "export the current fenrir clipboard to X clipboard" msgstr "Wyeksportuj aktualny showek Fenrir do schowka X." #: ../src/fenrir/commands/commands/first_clipboard.py:17 msgid "selects the first clipboard" msgstr "Wybiera pierwszy schowek." #: ../src/fenrir/commands/commands/forward_keypress.py:17 msgid "sends the following keypress to the terminal" msgstr "Wysyła następny klawisz do terminala." #: ../src/fenrir/commands/commands/forward_keypress.py:21 msgid "Forward next keypress" msgstr "Przepuść następny klawisz" #: ../src/fenrir/commands/commands/import_clipboard_from_file.py:19 msgid "imports text from clipboard file to the clipboard" msgstr "Importuje tekst z pliku do schowka." #: ../src/fenrir/commands/commands/import_clipboard_from_file.py:27 msgid "File does not exist" msgstr "Plik nie istnieje." #: ../src/fenrir/commands/commands/inc_alsa_volume.py:24 msgid "Increase system volume" msgstr "Zwiększa głośność systemu" #: ../src/fenrir/commands/commands/inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "Dostosowuje głośność zdarzeń dÅŗwiękowych." #: ../src/fenrir/commands/commands/inc_speech_pitch.py:18 msgid "increases the pitch of the speech" msgstr "Zwiększa wysokość mowy." #: ../src/fenrir/commands/commands/inc_speech_rate.py:18 msgid "increase the speech rate" msgstr "Zwiększa prędkość mowy." #: ../src/fenrir/commands/commands/inc_speech_volume.py:18 msgid "increase the speech volume" msgstr "Zwiększa głośność mowy." #: ../src/fenrir/commands/commands/indent_curr_line.py:18 msgid "shows the indention level for the current line" msgstr "Pokazuje poziom wcięcia dla aktualnej linii." #: ../src/fenrir/commands/commands/indent_curr_line.py:33 msgid "indent {0}" msgstr "Wcięcie {0}" #: ../src/fenrir/commands/commands/last_clipboard.py:17 msgid "selects the last clipboard" msgstr "Wybiera ostatni showek." #: ../src/fenrir/commands/commands/last_incoming.py:17 msgid "displays the last received text" msgstr "Wyświetla ostatnio odebrany tekst." #: ../src/fenrir/commands/commands/marked_text.py:18 msgid "speaks the currently selected text that will be copied to the clipboard" msgstr "Wypowiada zaznaczony tekst który zostanie skopiowany do schowka." #: ../src/fenrir/commands/commands/marked_text.py:23 msgid "please set begin and endmark" msgstr "ustaw znacznik początku i końca." #: ../src/fenrir/commands/commands/next_clipboard.py:17 msgid "selects the next clipboard" msgstr "Wybiera następny showek." #: ../src/fenrir/commands/commands/next_clipboard.py:26 msgid "First clipboard " msgstr "Pierwszy showek" #: ../src/fenrir/commands/commands/paste_clipboard.py:18 msgid "pastes the text from the currently selected clipboard" msgstr "Wkleja tekst z aktualnie wybranego schowka." #: ../src/fenrir/commands/commands/present_first_line.py:18 msgid "present first line" msgstr "Odczytuje pierwszą linię." #: ../src/fenrir/commands/commands/present_last_line.py:18 #: ../src/fenrir/commands/commands/review_curr_line.py:18 msgid "current line" msgstr "Aktualna linia" #: ../src/fenrir/commands/commands/prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "Wybiera poprzedni showek." #: ../src/fenrir/commands/commands/prev_clipboard.py:26 msgid "Last clipboard " msgstr "Ostatni showek" #: ../src/fenrir/commands/commands/quit_fenrir.py:17 msgid "exits Fenrir" msgstr "Zamyka Fenrir." #: ../src/fenrir/commands/commands/remove_marks.py:17 msgid "removes marks from selected text" msgstr "Usuwa znaczniki z zaznaczonego tekstu" #: ../src/fenrir/commands/commands/remove_marks.py:21 msgid "Remove marks" msgstr "Usuń znaczniki" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "Usuwa aktualne słowo ze słownika wyjątków." #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50 msgid "{0} is already removed from dict" msgstr "{0} już jest usunięte ze słownika." #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "{0} usunięte." #: ../src/fenrir/commands/commands/review_bottom.py:17 msgid "move review to bottom of screen" msgstr "Przenieś kursor przeglądu na dół ekranu." #: ../src/fenrir/commands/commands/review_bottom.py:21 msgid "Bottom" msgstr "Dół." #: ../src/fenrir/commands/commands/review_curr_char.py:18 msgid "presents the current character." msgstr "Odczytuje aktualny znak." #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "Ustawia kursor przeglądu i fonetycznie odczytuje zaznaczony znak." #: ../src/fenrir/commands/commands/review_curr_word.py:18 msgid "current word." msgstr "Aktualne słowo" #: ../src/fenrir/commands/commands/review_curr_word.py:32 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_down.py:27 #: ../src/fenrir/commands/commands/review_next_char.py:28 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_next_line.py:34 #: ../src/fenrir/commands/commands/review_next_word.py:34 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_prev_char.py:31 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_prev_line.py:32 #: ../src/fenrir/commands/commands/review_prev_word.py:32 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_up.py:27 msgid "end of screen" msgstr "Koniec ekranu" #: ../src/fenrir/commands/commands/review_curr_word.py:35 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_next_char.py:31 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_next_word.py:37 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_prev_char.py:34 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_prev_word.py:35 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_up.py:30 msgid "line break" msgstr "Znak końca wiersza." #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19 msgid "phonetically spells the current word and set review to it" msgstr "" "Fonetycznie odczytuje aktualne słowo i przenosi do niego kursor przeglądu." #: ../src/fenrir/commands/commands/review_down.py:18 msgid "set review cursor to char below the current char and present it." msgstr "" "ustawia kursor przeglądu do znaku pod aktualnym znakiem i odczytuje go." #: ../src/fenrir/commands/commands/review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "Ustawia kursor przeglądu na początku linii i odczytuje jej treść." #: ../src/fenrir/commands/commands/review_line_begin.py:30 msgid "beginning of line" msgstr "Początek linii." #: ../src/fenrir/commands/commands/review_line_end.py:18 #: ../src/fenrir/commands/commands/review_line_first_char.py:19 #: ../src/fenrir/commands/commands/review_line_last_char.py:18 msgid "set review cursor to end of current line and display the content" msgstr "Ustawia kursor przeglądu na końcu linii i odczytuje jej treść." #: ../src/fenrir/commands/commands/review_line_end.py:27 msgid "end of line" msgstr "Koniec linii." #: ../src/fenrir/commands/commands/review_line_first_char.py:26 msgid "line is empty" msgstr "Linia jest pusta." #: ../src/fenrir/commands/commands/review_line_first_char.py:33 msgid "first char in line indent {0}" msgstr "Pierwszy znak w linii o wcięciu {0}" #: ../src/fenrir/commands/commands/review_line_last_char.py:27 msgid "last char in line" msgstr "Ostatni znak w linii." #: ../src/fenrir/commands/commands/review_next_char.py:18 msgid "moves review to the next character and presents it" msgstr "Przesuwa kursor przeglądu do następnego znaku i odczytuje go." #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "" "Fonetycznie odczytuje następny znak i przenosi do niego kursor przeglądu." #: ../src/fenrir/commands/commands/review_next_line.py:18 msgid "moves review to the next line and presents it" msgstr "Przesuwa kursor przeglądu do następnej linii i odczytuje ją." #: ../src/fenrir/commands/commands/review_next_word.py:18 msgid "moves review to the next word and presents it" msgstr "Przesuwa kursor przeglądu do następnego słowa i odczytuje je." #: ../src/fenrir/commands/commands/review_prev_char.py:18 msgid "moves review to the previous character and presents it" msgstr "Przesuwa kursor przeglądu do poprzedniego znaku i odczytuje go." #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "" "Odczytuje fonetycznie poprzedni znak i przenosi do niego kursor przeglądu." #: ../src/fenrir/commands/commands/review_prev_line.py:18 msgid "moves review to the previous line and presents it" msgstr "Przenosi kursor przeglądu do poprzedniej linii i odczytuje ją." #: ../src/fenrir/commands/commands/review_prev_word.py:18 msgid "moves review focus to the previous word and presents it" msgstr "Przesuwa kursor przeglądu do poprzedniego słowa i odczytuje je." #: ../src/fenrir/commands/commands/review_top.py:18 msgid "move review to top of screen" msgstr "Przenieś kursor przeglądu na górę ekranu." #: ../src/fenrir/commands/commands/review_top.py:22 msgid "Top" msgstr "Góra." #: ../src/fenrir/commands/commands/review_up.py:18 msgid "set review cursor to the char in the line below and present it" msgstr "Przenieś kursor przeglądu do znaku w linii poniżej i odczytaj go." #: ../src/fenrir/commands/commands/set_bookmark_1.py:18 #: ../src/fenrir/commands/commands/set_bookmark_10.py:18 #: ../src/fenrir/commands/commands/set_bookmark_2.py:18 #: ../src/fenrir/commands/commands/set_bookmark_3.py:18 #: ../src/fenrir/commands/commands/set_bookmark_4.py:18 #: ../src/fenrir/commands/commands/set_bookmark_5.py:18 #: ../src/fenrir/commands/commands/set_bookmark_6.py:18 #: ../src/fenrir/commands/commands/set_bookmark_7.py:18 #: ../src/fenrir/commands/commands/set_bookmark_8.py:18 #: ../src/fenrir/commands/commands/set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "Ustaw zakładkę {0}" #: ../src/fenrir/commands/commands/set_bookmark_1.py:22 #: ../src/fenrir/commands/commands/set_bookmark_10.py:22 #: ../src/fenrir/commands/commands/set_bookmark_2.py:22 #: ../src/fenrir/commands/commands/set_bookmark_3.py:22 #: ../src/fenrir/commands/commands/set_bookmark_4.py:22 #: ../src/fenrir/commands/commands/set_bookmark_5.py:22 #: ../src/fenrir/commands/commands/set_bookmark_6.py:22 #: ../src/fenrir/commands/commands/set_bookmark_7.py:22 #: ../src/fenrir/commands/commands/set_bookmark_8.py:22 #: ../src/fenrir/commands/commands/set_bookmark_9.py:22 msgid "No Mark found" msgstr "Nie znaleziono znacznika." #: ../src/fenrir/commands/commands/set_bookmark_1.py:32 #: ../src/fenrir/commands/commands/set_bookmark_10.py:32 #: ../src/fenrir/commands/commands/set_bookmark_2.py:32 #: ../src/fenrir/commands/commands/set_bookmark_3.py:32 #: ../src/fenrir/commands/commands/set_bookmark_4.py:32 #: ../src/fenrir/commands/commands/set_bookmark_5.py:32 #: ../src/fenrir/commands/commands/set_bookmark_6.py:32 #: ../src/fenrir/commands/commands/set_bookmark_7.py:32 #: ../src/fenrir/commands/commands/set_bookmark_8.py:32 #: ../src/fenrir/commands/commands/set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "Zakładka {0} ustawiona dla aplikacji {1}" #: ../src/fenrir/commands/commands/set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "Ustawia znaczniki w tekście do skopiowania do schowka." #: ../src/fenrir/commands/commands/set_mark.py:21 msgid "no review cursor" msgstr "Brak kursora przeglądu." #: ../src/fenrir/commands/commands/set_mark.py:26 #: ../src/fenrir/commands/commands/set_mark.py:28 msgid "set mark" msgstr "ustaw znacznik." #: ../src/fenrir/commands/commands/set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "ustaw tryb okna, wymagane dwa znaczniki." #: ../src/fenrir/commands/commands/set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "Tryb okna włączony dla aplikacji {0}" #: ../src/fenrir/commands/commands/set_window_application.py:25 msgid "Set window begin and end marks" msgstr "Ustaw początek i koniec okna." #: ../src/fenrir/commands/commands/shut_up.py:17 msgid "interrupts the current presentation" msgstr "Przerywa aktualną prezentację." #: ../src/fenrir/commands/commands/spell_check.py:26 msgid "checks the spelling of the current word" msgstr "Sprawdza pisownię aktualnego słowa." #: ../src/fenrir/commands/commands/spell_check.py:52 #: ../src/fenrir/commands/onCursorChange/62000-spell_check.py:130 msgid "misspelled" msgstr "Błąd pisowni" #: ../src/fenrir/commands/commands/spell_check.py:54 msgid "correct" msgstr "Poprawny" #: ../src/fenrir/commands/commands/subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "Skrypt: {0}, ścieżka dostępu: {1}" #: ../src/fenrir/commands/commands/subprocess.py:24 msgid "scriptfile does not exist" msgstr "Plik skryptu nie istnieje." #: ../src/fenrir/commands/commands/subprocess.py:27 msgid "scriptfile is not a file" msgstr "Plik skryptu nie jest plikiem." #: ../src/fenrir/commands/commands/subprocess.py:30 msgid "scriptfile is not executable" msgstr "Plik skryptu nie jest wykonywalny." #: ../src/fenrir/commands/commands/temp_disable_speech.py:17 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "Wyłącza mowę do następnego naciśnięcia klawisza." #: ../src/fenrir/commands/commands/temp_disable_speech.py:21 msgid "speech temporary disabled" msgstr "Mowa tymczasowo wyłączona." #: ../src/fenrir/commands/commands/time.py:18 msgid "presents the time" msgstr "Wyświetla i odczytuje aktualny czas." #: ../src/fenrir/commands/commands/toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "Włącza lub wyłącza informowanie o dynamicznych zmianach treści." #: ../src/fenrir/commands/commands/toggle_auto_read.py:21 msgid "autoread enabled" msgstr "Włączono ogłaszanie dynamicznych zmian treści." #: ../src/fenrir/commands/commands/toggle_auto_read.py:23 msgid "autoread disabled" msgstr "Wyłączono automatyczne ogłaszanie dynamicznych zmian treści." #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "Włącza lub wyłącza automatyczne sprawdzanie błędów pisowni." #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "Automatyczne sprawdzanie pisowni włączone." #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "Automatyczne sprawdzanie pisowni wyłączone." #: ../src/fenrir/commands/commands/toggle_auto_time.py:16 msgid "enables or disables automatic reading of time after an period" msgstr "Włącza lub wyłącza okresowe, automatyczne odczytywanie czasu." #: ../src/fenrir/commands/commands/toggle_auto_time.py:21 msgid "autotime enabled" msgstr "Włączono okresowe odczytywanie czasu." #: ../src/fenrir/commands/commands/toggle_auto_time.py:23 msgid "autotime disabled" msgstr "Wyłączono okresowe odczytywanie czasu." #: ../src/fenrir/commands/commands/toggle_braille.py:17 msgid "enables and disables output in braille" msgstr "Włącza lub wyłącza wyjście brajla." #: ../src/fenrir/commands/commands/toggle_braille.py:21 msgid "braille disabled" msgstr "Brajl wyłączony." #: ../src/fenrir/commands/commands/toggle_braille.py:24 msgid "braille enabled" msgstr "Brajl włączony." #: ../src/fenrir/commands/commands/toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "Włącza lub wyłącza odczytywanie emotikon." #: ../src/fenrir/commands/commands/toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "Emotikony włączone." #: ../src/fenrir/commands/commands/toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "Emotikony wyłączone." #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 msgid "enables or disables tracking of highlighted text" msgstr "Włącza lub wyłącza śledzenie podświetlonego tekstu." #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "Śledzenie podświetlenia." #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "Śledzenie kursora." #: ../src/fenrir/commands/commands/toggle_output.py:17 msgid "toggles all output settings" msgstr "Przełącza wszystkie ustawienia wyjścia." #: ../src/fenrir/commands/commands/toggle_output.py:23 msgid "Fenrir muted" msgstr "Fenrir wyciszony." #: ../src/fenrir/commands/commands/toggle_output.py:31 msgid "Fenrir unmuted" msgstr "Fenrir odciszony" #: ../src/fenrir/commands/commands/toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "Nie znaleziono interpunkcji." #: ../src/fenrir/commands/commands/toggle_sound.py:17 msgid "enables or disables sound" msgstr "Włącza lub wyłącza dÅŗwięk." #: ../src/fenrir/commands/commands/toggle_sound.py:21 msgid "sound disabled" msgstr "DÅŗwięk wyłączony" #: ../src/fenrir/commands/commands/toggle_sound.py:24 msgid "sound enabled" msgstr "DÅŗwięk włączony" #: ../src/fenrir/commands/commands/toggle_speech.py:17 msgid "enables or disables speech" msgstr "Włącza lub wyłącza mowę." #: ../src/fenrir/commands/commands/toggle_speech.py:21 msgid "speech disabled" msgstr "Mowa wyłączona." #: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "Mowa włączona." #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:19 msgid "" "You are leaving the tutorial mode. Press that shortcut again to enter the " "tutorial mode again." msgstr "Opuszczasz tryb pomocy." #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:22 msgid "" "you entered the tutorial mode. In that mode the commands are not executed. " "but you get a description of what the shortcut does. To leave the tutorial " "mode, press that shortcut again." msgstr "" "Wszedłeś w tryb pomocy. W tym trybie naciskane klawisze nie są wykonywane a " "jedynie odczytywane jest ich przeznaczenie. Aby opuścić tryb pomocy, " "naciśnij ten skrót ponownie." #: ../src/fenrir/commands/help/curr_help.py:17 msgid "get current help message" msgstr "Odczytaj aktualną wiadomość pomocy" #: ../src/fenrir/commands/help/next_help.py:17 msgid "get next help message" msgstr "Odczytaj następną wiadomość pomocy." #: ../src/fenrir/commands/help/prev_help.py:17 msgid "get prev help message" msgstr "Odczytaj poprzednią wiadomość pomocy." #: ../src/fenrir/commands/onHeartBeat/76000-time.py:66 msgid "Autotime: {0}" msgstr "Jest godzina: {0}" #: ../src/fenrir/commands/onInput/80000-capslock.py:22 msgid "Capslock on" msgstr "Capslock włączony" #: ../src/fenrir/commands/onInput/80000-capslock.py:24 msgid "Capslock off" msgstr "Capslock wyłączony." #: ../src/fenrir/commands/onInput/80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "Scrollock włączony." #: ../src/fenrir/commands/onInput/80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "Scrollock wyłączony." #: ../src/fenrir/commands/onInput/80500-numlock.py:22 msgid "Numlock on" msgstr "Numlock włączony." #: ../src/fenrir/commands/onInput/80500-numlock.py:24 msgid "Numlock off" msgstr "Numlock wyłączony." #: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "Ekran {0}" #: ../src/fenrir/commands/onScreenUpdate/56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "Włącza lub wyłącza śledzenie podświetlenia." #: ../src/fenrir/core/fenrirManager.py:27 msgid "Start Fenrir" msgstr "Uruchom Fenrir" #: ../src/fenrir/core/fenrirManager.py:170 msgid "Quit Fenrir" msgstr "Zamknij Fenrir" #: ../src/fenrir/core/helpManager.py:44 msgid "toggles the tutorial mode" msgstr "Przełącza tryb pomocy." #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "black" msgstr "Czarny" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "blue" msgstr "niebieski" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "cyan" msgstr "Turkusowy" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "green" msgstr "Zielony" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "red" msgstr "Czerwony" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 msgid "white" msgstr "Biały" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Magenta" msgstr "Fuksja" #: ../src/fenrir/screenDriver/vcsaDriver.py:38 #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "brown/yellow" msgstr "Brązowo-żółty" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Black" msgstr "Czarny" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Blue" msgstr "Niebieski" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Cyan" msgstr "Turkusowy" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Dark gray" msgstr "Ciemno-szary" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Green" msgstr "Zielony" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light blue" msgstr "Jasno-niebieski." #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light cyan" msgstr "Jasny turkus" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light gray" msgstr "Jasno-szary." #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light magenta" msgstr "Jasna fuksja" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light red" msgstr "Jasno-czerwony." #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Light yellow" msgstr "Jasno-żółty." #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "Red" msgstr "Czerwony" #: ../src/fenrir/screenDriver/vcsaDriver.py:39 msgid "White" msgstr "Biały" #: ../src/fenrir/screenDriver/vcsaDriver.py:262 msgid "underlined" msgstr "Podkreślony" #: ../src/fenrir/screenDriver/vcsaDriver.py:266 msgid "bold" msgstr "Pogrubiony" #: ../src/fenrir/screenDriver/vcsaDriver.py:270 msgid "blink" msgstr "Migający" #: ../src/fenrir/screenDriver/vcsaDriver.py:273 #: ../src/fenrir/screenDriver/vcsaDriver.py:275 msgid "Default" msgstr "Domyślny" fenrir/locale/pt/000077500000000000000000000000001513650123000142215ustar00rootroot00000000000000fenrir/locale/pt/LC_MESSAGES/000077500000000000000000000000001513650123000160065ustar00rootroot00000000000000fenrir/locale/pt/LC_MESSAGES/fenrir.mo000066400000000000000000000351731513650123000176410ustar00rootroot00000000000000Ž•Ÿß ˆ ‰ $— ¼ (Ń $ś  & 3 ?L[l‚’± Ńßõ  ' 27> vƒ ’$ Å äń$õ#">^a2Ą'ó4L^o’¤Ŗ»'Ė'ó-6=t | ‰—§!½ ß"##G*g’„&·>Ž?=],›Čā+ż ) 5 CP2b•3³ēś!. P#[‘ £ ®¼ ŃÜü72Q-„-²6ą1IZ5r=ØAę9(4b—“ĒlējTæŃćž\1m(ŸČ Ü7ż5 EPj„ŗÖń ,+Xi‰:’BĶ@@Q>’.Ń 7GU­¼Ö¶ņ © ³ Ź ė !!5! O!‰[!å",ü")#+D#+p#œ#„#ø#Č#Ś# ń##$6$/V$.†$µ$Ī$ī$%%0%?%8N% ‡%•%Ŗ%3¼%)š%&+&*0&-[&,‰&l¶&5#'#Y'1}'.Æ'Ž'ż'(6(P( a(k(~(&Ž(6µ(ģ( )K()t) |)ˆ)—)®)Ę)Ü)ł)1*D*(c*Œ*¢*$µ*>Ś*B+B\+:Ÿ+Ś+ņ+, , 8, E, Q,_,Sw,'Ė,?ó,3-L-i-‚- ˜-!¢-Ä-Ž-÷-..1.,I.$v.=›.6Ł.3/5D/6z/3±/å/ü/>0H[0H¤0Bķ0N0101°1Ė1rē1qZ2Ģ2Ż2ī2 3r 34“3Č3ę3"ü334S4f4!o4‘4$Æ4%Ō4,ś4+'5,S5,€52­5ą5-ō5 "6:/6Mj6Sø6I 7IV7' 7Č7 ×7Bć7T&8{8 ‹8˜8*ø8¾ć8¢9±9#Ī9ņ9:",:O: n:-XrK“_:D…F†‘ Qx—Azu\)YtŽ 2m"1*{~œBpŒdo<’4I$@sn&‚l>™U^GžSWkšq›[ Lbv‰eO;C?0TJ6(#`/RwhgHV]=5ˆyac|%+fj‡ „ƒ‹–M8•iZ N 7E}39'.,”€PŸŠ˜!Autotime: {0}Bookmark for application {0} not setBookmark {0} not setBookmark {0} removed for application {1}Bookmark {0} set for application {1}BottomCapslock offCapslock onFenrir mutedFenrir unmutedFirst clipboard Forward next keypressLast clipboard Move braille view to the left.Move braille view to the right.No Mark foundNo punctuation found.Not in review modeNot in window ModeNumlock offNumlock onQuit FenrirReads from the top of the screen to the cursor positionRemove marksScrolllock offScrolllock onSet the braille view back to cursor.Set window begin and end marksStart FenrirTopTurn off window mode for applicationWindow Mode off for application {0}Window Mode on for application {0}You are leaving the tutorial mode. Press that shortcut again to enter the tutorial mode again.adds the current word to the exceptions dictionaryadjusts the volume for in coming soundsauto spellcheck disabledauto spellcheck enabledautoread disabledautoread enabledautotime disabledautotime enabledbeginning of lineblankbraille disabledbraille enabledchecks the spelling of the current wordclears the currently selected clipboardclipboard clearedclipboard emptycopies marked text to the currently selected clipboardcorrectcurrent linecurrent word.cursor trackingdecrease sound volumedecreases the pitch of the speechdecreases the rate of the speechdecreases the volume of the speechdisables speech until next keypressdisplays the last received textdisplays the position of the review cursoremoticons disabledemoticons enabledenables and disables output in brailleenables or disables announcement of emoticons instead of charsenables or disables automatic reading of new text as it appearsenables or disables automatic reading of time after an periodenables or disables automatic spell checkingenables or disables soundenables or disables speechenables or disables tracking of highlightedend of lineend of screenexits Fenrirexits review modeexport the current fenrir clipboard to X clipboardfirst char in line indent {0}flush the braille device if a message is written onhighlight trackingincrease the speech rateincrease the speech volumeincreases the pitch of the speechindent {0}interrupts the current presentationlast char in lineleave review modeline breakline is emptyline {0}, column {1}misspelledmove review to bottom of screenmove review to top of screenmoves review focus to the previous word and presents itmoves review to the next character and presents itmoves review to the next line and presents itmoves review to the next word and presents itmoves review to the previous character and presents itmoves review to the previous line and presents itno review cursorone or two marks neededpastes the text from the currently selected clipboardphonetically presents the next character and set review to itphonetically presents the previous character and set review to itphonetically spells the current word and set review to itplaces marks to select text to copy to the clipboardplease set begin and endmarkpresent first linepresents the current character.presents the current column number for review cursor in review mode or the text cursor if not. Starts with 1presents the current line number for review cursor in review mode or the text cursor if not. Starts with 1presents the datepresents the timepyenchant is not installedread Bookmark {0}read to end of line, use review cursor if you are in review mode, otherwhise use text cursorreads from the cursor to the bottom of the screenreads the contents of the current screenremove Bookmark {0}removes marks from selected textremoves the current word from the exceptions dictionaryscreen is emptyscreen {0}script: {0} fullpath: {1}scriptfile does not existscriptfile is not a filescriptfile is not executableselects the first clipboardselects the last clipboardselects the next clipboardselects the previous clipboardsends the following keypress to the terminalset Bookmark {0}set Window Mode, needs 2 marks set markset review and phonetically presents the current characterset review cursor to begin of current line and display the contentset review cursor to char below the current char and present it.set review cursor to end of current line and display the contentset review cursor to the char in the line below and present itshows the indention level for the current linesound disabledsound enabledspeaks the contents of the currently selected clipboardspeaks the currently selected text that will be copied to the clipboardspeech disabledspeech enabledspeech temporary disabledtoggles all output settingsyou entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again.{0} added{0} is already in dict{0} is already removed from dict{0} percent sound volume{0} percent speech pitch{0} percent speech rate{0} percent speech volume{0} removedProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2017-02-26 22:19+UTC PO-Revision-Date: 2018-07-10 22:55-0400 Last-Translator: Roberta Santos Language-Team: Brazilian Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 Language: pt_BR Plural-Forms: nplurals=2; plural=(n > 1); Tempo automĆ”tico: {0}Marcador para o aplicativo {0} nĆ£o definidoMarcador {0} nĆ£o definidoMarcador {0} removido para o aplicativo {1}Marcador {0} definido para o aplicativo {1}InferiorCapslock desligadoCapslock ligadoFenrir silenciadoFenrir nĆ£o silenciadoPrimeira Ć”rea de transferĆŖnciaAvanƧar próxima tecla pressionadaÚltima Ć”rea de transferĆŖnciaMover a visualização braille para a esquerda.Mover a visualização braille para a direita.Nenhuma marca encontradaNenhuma pontuação encontrada.NĆ£o em modo de revisĆ£oNĆ£o no Modo de JanelaNumlock desligadoNumlock ligadoSair do FenrirLĆŖ da parte superior da tela atĆ© a posição do cursorRemove marcasScrolllock desligadoScrolllock ligadoDefine a visualização braille de volta ao cursor.Definir marcas de inĆ­cio e fim da janelaIniciar o FenrirTopoDesativar o Modo de Janela para aplicativoModo de Janela desativado para aplicativo {0}Modo de Janela ativado para o aplicativo {0}VocĆŖ estĆ” saindo do modo tutorial. Pressione esse atalho novamente para entrar no modo tutorial novamente.adiciona a palavra atual ao dicionĆ”rio de exceƧƵesajusta o volume para próximos sonsverificação ortogrĆ”fica automĆ”tica desativadaverificação ortogrĆ”fica automĆ”tica ativadaleitura automĆ”tica desativadaleitura automĆ”tica ativadatempo automĆ”tico desativadotempo automĆ”tico ativadoinĆ­cio da linhaem brancobraille desativadobraille ativadoverifica a ortografia da palavra atuallimpa a Ć”rea de transferĆŖncia atualmente selecionadaĆ”rea de transferĆŖncia limpaĆ”rea de transferĆŖncia vaziacopia o texto marcado para a Ć”rea de transferĆŖncia atualmente selecionadacorretolinha atualpalavra atual.rastreamento do cursordiminui o volume do somdiminui o tom da faladiminui a velocidade da faladiminui o volume da faladesativa a fala atĆ© a próxima tecla pressionadaexibe o Ćŗltimo texto recebidomostra a posição do cursor de revisĆ£oemoticons desativadosemoticons ativadosativa e desativa a saĆ­da em brailleativa ou desativa o anĆŗncio de emoticons em vez de caracteresativa ou desativa a leitura automĆ”tica de novo texto como apareceativa ou desativa a leitura automĆ”tica do tempo após um perĆ­odoativa ou desativa a verificação ortogrĆ”fica automĆ”ticaativa ou desativa o somativa ou desativa a falaativa ou desativa o rastreamento em destaquefim da linhafim da telasai do Fenrirsai do modo de revisĆ£oexportar a Ć”rea de transferĆŖncia atual do fenrir para a Ć”rea de transferĆŖncia Xprimeiro caracter no recuo da linha {0}liberar o dispositivo braile se uma mensagem estiver escrita emrastreamento em destaqueaumenta a velocidade da falaaumenta o volume da falaaumenta o tom da falarecuo {0}interrompe a apresentação atualĆŗltimo caracter na linhasair do modo de revisĆ£oquebra de linhaa linha estĆ” vazialinha {0}, coluna {1}com erros ortogrĆ”ficosmover revisĆ£o para a parte inferior da telamover a revisĆ£o para o topo da telamove o foco da revisĆ£o para a palavra anterior e a apresentamove a revisĆ£o para o próximo caracter e o apresentamove a revisĆ£o para a próxima linha e a apresentamove a revisĆ£o para a próxima palavra e a apresentamove a revisĆ£o para o caracter anterior e o apresentamove a revisĆ£o para a linha anterior e a apresentasem cursor de revisĆ£ouma ou duas marcas necessĆ”riascola o texto da Ć”rea de transferĆŖncia atualmente selecionadaapresenta o próximo caracter foneticamente e define a revisĆ£o para eleapresenta o caracter anterior foneticamente e define a revisĆ£o para elesoletra foneticamente a palavra atual e define a revisĆ£o para elacoloca marcas para selecionar texto para copiar para a Ć”rea de transferĆŖnciapor favor, defina o inĆ­cio e o fim da seleçãoapresenta a primeira linhaapresenta o caracter atual.apresenta o nĆŗmero da coluna atual do cursor de revisĆ£o no modo de revisĆ£o ou do cursor de texto. ComeƧa com 1apresenta o nĆŗmero da linha atual do cursor de revisĆ£o no modo de revisĆ£o ou do cursor de texto. ComeƧa com 1apresenta a dataapresenta a horapyenchant nĆ£o estĆ” instaladoler o marcador {0}ler atĆ© o final da linha, use o cursor de revisĆ£o se vocĆŖ estiver no modo de revisĆ£o, ou use o cursor de textolĆŖ a partir do cursor atĆ© a parte inferior da telalĆŖ o conteĆŗdo da tela atualremove o marcador {0}remove marcas do texto selecionadoremove a palavra atual do dicionĆ”rio de exceƧƵesa tela estĆ” vaziatela {0}script: {0} caminho completo: {1}arquivo de script nĆ£o existearquivo de script nĆ£o Ć© um arquivoarquivo de script nĆ£o Ć© executĆ”velseleciona a primeira Ć”rea de transferĆŖnciaseleciona a Ćŗltima Ć”rea de transferĆŖnciaseleciona a próxima Ć”rea de transferĆŖnciaseleciona a Ć”rea de transferĆŖncia anteriorenvia a próxima tecla pressionada para o terminaldefine Marcador {0}definir o Modo de Janela, precisa de 2 marcasdefine marcadefine revisĆ£o e apresenta o caracter atual foneticamentedefine o cursor de revisĆ£o para o inĆ­cio da linha atual e exibe o conteĆŗdodefine o cursor de revisĆ£o para o caracter abaixo do caracter atual e o apresenta.define o cursor de revisĆ£o para o fim da linha atual e exibe o conteĆŗdodefine o cursor de revisĆ£o para o caracter na linha abaixo e o apresentamostra o nĆ­vel de recuo da linha atualsom desativadosom ativadofala o conteĆŗdo da Ć”rea de transferĆŖncia atualmente selecionadafala o texto atualmente selecionado que serĆ” copiado para a Ć”rea de transferĆŖnciafala desativadafala ativadafala temporariamente desativadaalterna todas as configuraƧƵes de saĆ­davocĆŖ entrou no modo tutorial. Nesse modo os comandos nĆ£o sĆ£o executados. Mas vocĆŖ obtĆ©m uma descrição do que o atalho faz. Para sair do modo tutorial, pressione esse atalho novamente.{0} adicionado{0} jĆ” estĆ” no dicionĆ”rio{0} jĆ” foi removido do dicionĆ”rio{0} porcento do volume do som{0} porcento do tom da fala{0} porcento da velocidade da fala{0} porcento do volume da fala{0} removidofenrir/locale/pt/LC_MESSAGES/pt_BR.po000066400000000000000000001023651513650123000173630ustar00rootroot00000000000000# Portuguese translations for PACKAGE fenrir # TraduƧƵes em portuguĆŖs brasileiro para o pacote fenrir. # Copyright (C) 2018 F123 Consulting # Kyle , 2018. # Roberta Santos , 2018. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2017-02-26 22:19+UTC\n" "PO-Revision-Date: 2018-07-10 22:55-0400\n" "Last-Translator: Roberta Santos \n" "Language-Team: Brazilian Portuguese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "adiciona a palavra atual ao dicionĆ”rio de exceƧƵes" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34 #: ../src/fenrir/commands/commands/spell_check.py:29 #: ../src/fenrir/commands/commands/spell_check.py:36 msgid "pyenchant is not installed" msgstr "pyenchant nĆ£o estĆ” instalado" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:49 msgid "{0} is already in dict" msgstr "{0} jĆ” estĆ” no dicionĆ”rio" #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:52 msgid "{0} added" msgstr "{0} adicionado" #: ../src/fenrir/commands/commands/bookmark_1.py:19 #: ../src/fenrir/commands/commands/bookmark_10.py:19 #: ../src/fenrir/commands/commands/bookmark_2.py:19 #: ../src/fenrir/commands/commands/bookmark_3.py:19 #: ../src/fenrir/commands/commands/bookmark_4.py:19 #: ../src/fenrir/commands/commands/bookmark_5.py:19 #: ../src/fenrir/commands/commands/bookmark_6.py:19 #: ../src/fenrir/commands/commands/bookmark_7.py:19 #: ../src/fenrir/commands/commands/bookmark_8.py:19 #: ../src/fenrir/commands/commands/bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "ler o marcador {0}" #: ../src/fenrir/commands/commands/bookmark_1.py:24 #: ../src/fenrir/commands/commands/bookmark_10.py:24 #: ../src/fenrir/commands/commands/bookmark_2.py:24 #: ../src/fenrir/commands/commands/bookmark_3.py:24 #: ../src/fenrir/commands/commands/bookmark_4.py:24 #: ../src/fenrir/commands/commands/bookmark_5.py:24 #: ../src/fenrir/commands/commands/bookmark_6.py:24 #: ../src/fenrir/commands/commands/bookmark_7.py:24 #: ../src/fenrir/commands/commands/bookmark_8.py:24 #: ../src/fenrir/commands/commands/bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "Marcador {0} nĆ£o definido" #: ../src/fenrir/commands/commands/bookmark_1.py:27 #: ../src/fenrir/commands/commands/bookmark_1.py:30 #: ../src/fenrir/commands/commands/bookmark_10.py:27 #: ../src/fenrir/commands/commands/bookmark_10.py:30 #: ../src/fenrir/commands/commands/bookmark_2.py:27 #: ../src/fenrir/commands/commands/bookmark_2.py:30 #: ../src/fenrir/commands/commands/bookmark_3.py:27 #: ../src/fenrir/commands/commands/bookmark_3.py:30 #: ../src/fenrir/commands/commands/bookmark_4.py:27 #: ../src/fenrir/commands/commands/bookmark_4.py:30 #: ../src/fenrir/commands/commands/bookmark_5.py:27 #: ../src/fenrir/commands/commands/bookmark_5.py:30 #: ../src/fenrir/commands/commands/bookmark_6.py:27 #: ../src/fenrir/commands/commands/bookmark_6.py:30 #: ../src/fenrir/commands/commands/bookmark_7.py:27 #: ../src/fenrir/commands/commands/bookmark_7.py:30 #: ../src/fenrir/commands/commands/bookmark_8.py:27 #: ../src/fenrir/commands/commands/bookmark_8.py:30 #: ../src/fenrir/commands/commands/bookmark_9.py:27 #: ../src/fenrir/commands/commands/bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "Marcador para o aplicativo {0} nĆ£o definido" #: ../src/fenrir/commands/commands/bookmark_1.py:43 #: ../src/fenrir/commands/commands/bookmark_10.py:43 #: ../src/fenrir/commands/commands/bookmark_2.py:43 #: ../src/fenrir/commands/commands/bookmark_3.py:43 #: ../src/fenrir/commands/commands/bookmark_4.py:43 #: ../src/fenrir/commands/commands/bookmark_5.py:43 #: ../src/fenrir/commands/commands/bookmark_6.py:43 #: ../src/fenrir/commands/commands/bookmark_7.py:43 #: ../src/fenrir/commands/commands/bookmark_8.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27 #: ../src/fenrir/commands/commands/indent_curr_line.py:31 #: ../src/fenrir/commands/commands/marked_text.py:33 #: ../src/fenrir/commands/commands/present_first_line.py:25 #: ../src/fenrir/commands/commands/present_last_line.py:25 #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27 #: ../src/fenrir/commands/commands/review_curr_line.py:27 #: ../src/fenrir/commands/commands/review_curr_word.py:27 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_line_begin.py:27 #: ../src/fenrir/commands/commands/review_next_line.py:29 #: ../src/fenrir/commands/commands/review_next_word.py:29 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27 #: ../src/fenrir/commands/commands/review_prev_line.py:27 #: ../src/fenrir/commands/commands/review_prev_word.py:27 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27 #: ../src/fenrir/commands/onInput/55000-present_line_if_cursor_change_vertical.py:38 #: ../src/fenrir/commands/onInput/72000-history.py:50 msgid "blank" msgstr "em branco" #: ../src/fenrir/commands/commands/braille_flush.py:17 msgid "flush the braille device if a message is written on" msgstr "liberar o dispositivo braile se uma mensagem estiver escrita em" #: ../src/fenrir/commands/commands/braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "Mover a visualização braille para a esquerda." #: ../src/fenrir/commands/commands/braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "Mover a visualização braille para a direita." #: ../src/fenrir/commands/commands/braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "Define a visualização braille de volta ao cursor." #: ../src/fenrir/commands/commands/clear_bookmark_1.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:17 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "remove o marcador {0}" #: ../src/fenrir/commands/commands/clear_bookmark_1.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_10.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_2.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_3.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_4.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_5.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_6.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_7.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "Marcador {0} removido para o aplicativo {1}" #: ../src/fenrir/commands/commands/clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "limpa a Ć”rea de transferĆŖncia atualmente selecionada" #: ../src/fenrir/commands/commands/clear_clipboard.py:22 msgid "clipboard cleared" msgstr "Ć”rea de transferĆŖncia limpa" #: ../src/fenrir/commands/commands/clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "Desativar o Modo de Janela para aplicativo" #: ../src/fenrir/commands/commands/clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "Modo de Janela desativado para aplicativo {0}" #: ../src/fenrir/commands/commands/clear_window_application.py:24 msgid "Not in window Mode" msgstr "NĆ£o no Modo de Janela" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "copia o texto marcado para a Ć”rea de transferĆŖncia atualmente selecionada" #: ../src/fenrir/commands/commands/copy_marked_to_clipboard.py:22 msgid "one or two marks needed" msgstr "uma ou duas marcas necessĆ”rias" #: ../src/fenrir/commands/commands/curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "fala o conteĆŗdo da Ć”rea de transferĆŖncia atualmente selecionada" #: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:29 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:32 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:35 #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:38 #: ../src/fenrir/commands/commands/first_clipboard.py:21 #: ../src/fenrir/commands/commands/last_clipboard.py:21 #: ../src/fenrir/commands/commands/next_clipboard.py:21 #: ../src/fenrir/commands/commands/paste_clipboard.py:23 #: ../src/fenrir/commands/commands/paste_clipboard.py:26 #: ../src/fenrir/commands/commands/paste_clipboard.py:29 #: ../src/fenrir/commands/commands/paste_clipboard.py:32 #: ../src/fenrir/commands/commands/prev_clipboard.py:21 msgid "clipboard empty" msgstr "Ć”rea de transferĆŖncia vazia" #: ../src/fenrir/commands/commands/curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "lĆŖ o conteĆŗdo da tela atual" #: ../src/fenrir/commands/commands/curr_screen.py:21 msgid "screen is empty" msgstr "a tela estĆ” vazia" #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "lĆŖ a partir do cursor atĆ© a parte inferior da tela" #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "LĆŖ da parte superior da tela atĆ© a posição do cursor" #: ../src/fenrir/commands/commands/cursor_column.py:17 msgid "" "presents the current column number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "apresenta o nĆŗmero da coluna atual do cursor de revisĆ£o no modo de revisĆ£o ou do " "cursor de texto. ComeƧa com 1" #: ../src/fenrir/commands/commands/cursor_lineno.py:17 msgid "" "presents the current line number for review cursor in review mode or the " "text cursor if not. Starts with 1" msgstr "" "apresenta o nĆŗmero da linha atual do cursor de revisĆ£o no modo de revisĆ£o ou do " "cursor de texto. ComeƧa com 1" #: ../src/fenrir/commands/commands/cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "mostra a posição do cursor de revisĆ£o" #: ../src/fenrir/commands/commands/cursor_position.py:23 msgid "line {0}, column {1}" msgstr "linha {0}, coluna {1}" #: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18 msgid "" "read to end of line, use review cursor if you are in review mode, otherwhise " "use text cursor" msgstr "" "ler atĆ© o final da linha, use o cursor de revisĆ£o se vocĆŖ estiver no modo de revisĆ£o, ou " "use o cursor de texto" #: ../src/fenrir/commands/commands/date.py:18 msgid "presents the date" msgstr "apresenta a data" #: ../src/fenrir/commands/commands/dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "diminui o volume do som" #: ../src/fenrir/commands/commands/dec_sound_volume.py:29 #: ../src/fenrir/commands/commands/inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "{0} porcento do volume do som" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:18 msgid "decreases the pitch of the speech" msgstr "diminui o tom da fala" #: ../src/fenrir/commands/commands/dec_speech_pitch.py:27 #: ../src/fenrir/commands/commands/inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "{0} porcento do tom da fala" #: ../src/fenrir/commands/commands/dec_speech_rate.py:18 msgid "decreases the rate of the speech" msgstr "diminui a velocidade da fala" #: ../src/fenrir/commands/commands/dec_speech_rate.py:27 #: ../src/fenrir/commands/commands/inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "{0} porcento da velocidade da fala" #: ../src/fenrir/commands/commands/dec_speech_volume.py:18 msgid "decreases the volume of the speech" msgstr "diminui o volume da fala" #: ../src/fenrir/commands/commands/dec_speech_volume.py:27 #: ../src/fenrir/commands/commands/inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "{0} porcento do volume da fala" #: ../src/fenrir/commands/commands/exit_review.py:17 msgid "exits review mode" msgstr "sai do modo de revisĆ£o" #: ../src/fenrir/commands/commands/exit_review.py:21 msgid "Not in review mode" msgstr "NĆ£o em modo de revisĆ£o" #: ../src/fenrir/commands/commands/exit_review.py:25 msgid "leave review mode" msgstr "sair do modo de revisĆ£o" #: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21 msgid "export the current fenrir clipboard to X clipboard" msgstr "exportar a Ć”rea de transferĆŖncia atual do fenrir para a Ć”rea de transferĆŖncia X" #: ../src/fenrir/commands/commands/first_clipboard.py:17 msgid "selects the first clipboard" msgstr "seleciona a primeira Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/forward_keypress.py:17 msgid "sends the following keypress to the terminal" msgstr "envia a próxima tecla pressionada para o terminal" #: ../src/fenrir/commands/commands/forward_keypress.py:21 msgid "Forward next keypress" msgstr "AvanƧar próxima tecla pressionada" #: ../src/fenrir/commands/commands/inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "ajusta o volume para próximos sons" #: ../src/fenrir/commands/commands/inc_speech_pitch.py:18 msgid "increases the pitch of the speech" msgstr "aumenta o tom da fala" #: ../src/fenrir/commands/commands/inc_speech_rate.py:18 msgid "increase the speech rate" msgstr "aumenta a velocidade da fala" #: ../src/fenrir/commands/commands/inc_speech_volume.py:18 msgid "increase the speech volume" msgstr "aumenta o volume da fala" #: ../src/fenrir/commands/commands/indent_curr_line.py:18 msgid "shows the indention level for the current line" msgstr "mostra o nĆ­vel de recuo da linha atual" #: ../src/fenrir/commands/commands/indent_curr_line.py:33 msgid "indent {0}" msgstr "recuo {0}" #: ../src/fenrir/commands/commands/last_clipboard.py:17 msgid "selects the last clipboard" msgstr "seleciona a Ćŗltima Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/last_incoming.py:17 msgid "displays the last received text" msgstr "exibe o Ćŗltimo texto recebido" #: ../src/fenrir/commands/commands/marked_text.py:18 msgid "speaks the currently selected text that will be copied to the clipboard" msgstr "fala o texto atualmente selecionado que serĆ” copiado para a Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/marked_text.py:23 msgid "please set begin and endmark" msgstr "por favor, defina o inĆ­cio e o fim da seleção" #: ../src/fenrir/commands/commands/next_clipboard.py:17 msgid "selects the next clipboard" msgstr "seleciona a próxima Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/next_clipboard.py:26 msgid "First clipboard " msgstr "Primeira Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/paste_clipboard.py:18 msgid "pastes the text from the currently selected clipboard" msgstr "cola o texto da Ć”rea de transferĆŖncia atualmente selecionada" #: ../src/fenrir/commands/commands/present_first_line.py:18 msgid "present first line" msgstr "apresenta a primeira linha" #: ../src/fenrir/commands/commands/present_last_line.py:18 #: ../src/fenrir/commands/commands/review_curr_line.py:18 msgid "current line" msgstr "linha atual" #: ../src/fenrir/commands/commands/prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "seleciona a Ć”rea de transferĆŖncia anterior" #: ../src/fenrir/commands/commands/prev_clipboard.py:26 msgid "Last clipboard " msgstr "Última Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/quit_fenrir.py:17 msgid "exits Fenrir" msgstr "sai do Fenrir" #: ../src/fenrir/commands/commands/remove_marks.py:17 msgid "removes marks from selected text" msgstr "remove marcas do texto selecionado" #: ../src/fenrir/commands/commands/remove_marks.py:21 msgid "Remove marks" msgstr "Remove marcas" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "remove a palavra atual do dicionĆ”rio de exceƧƵes" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50 msgid "{0} is already removed from dict" msgstr "{0} jĆ” foi removido do dicionĆ”rio" #: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "{0} removido" #: ../src/fenrir/commands/commands/review_bottom.py:17 msgid "move review to bottom of screen" msgstr "mover revisĆ£o para a parte inferior da tela" #: ../src/fenrir/commands/commands/review_bottom.py:21 msgid "Bottom" msgstr "Inferior" #: ../src/fenrir/commands/commands/review_curr_char.py:18 msgid "presents the current character." msgstr "apresenta o caracter atual." #: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "define revisĆ£o e apresenta o caracter atual foneticamente" #: ../src/fenrir/commands/commands/review_curr_word.py:18 msgid "current word." msgstr "palavra atual." #: ../src/fenrir/commands/commands/review_curr_word.py:32 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_down.py:27 #: ../src/fenrir/commands/commands/review_next_char.py:28 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_next_line.py:34 #: ../src/fenrir/commands/commands/review_next_word.py:34 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_prev_char.py:31 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30 #: ../src/fenrir/commands/commands/review_prev_line.py:32 #: ../src/fenrir/commands/commands/review_prev_word.py:32 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36 #: ../src/fenrir/commands/commands/review_up.py:27 msgid "end of screen" msgstr "fim da tela" #: ../src/fenrir/commands/commands/review_curr_word.py:35 #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_next_char.py:31 #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_next_word.py:37 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_prev_char.py:34 #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33 #: ../src/fenrir/commands/commands/review_prev_word.py:35 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39 #: ../src/fenrir/commands/commands/review_up.py:30 msgid "line break" msgstr "quebra de linha" #: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19 #: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19 msgid "phonetically spells the current word and set review to it" msgstr "soletra foneticamente a palavra atual e define a revisĆ£o para ela" #: ../src/fenrir/commands/commands/review_down.py:18 msgid "set review cursor to char below the current char and present it." msgstr "define o cursor de revisĆ£o para o caracter abaixo do caracter atual e o apresenta." #: ../src/fenrir/commands/commands/review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "define o cursor de revisĆ£o para o inĆ­cio da linha atual e exibe o conteĆŗdo" #: ../src/fenrir/commands/commands/review_line_begin.py:30 msgid "beginning of line" msgstr "inĆ­cio da linha" #: ../src/fenrir/commands/commands/review_line_end.py:18 #: ../src/fenrir/commands/commands/review_line_first_char.py:19 #: ../src/fenrir/commands/commands/review_line_last_char.py:18 msgid "set review cursor to end of current line and display the content" msgstr "define o cursor de revisĆ£o para o fim da linha atual e exibe o conteĆŗdo" #: ../src/fenrir/commands/commands/review_line_end.py:27 msgid "end of line" msgstr "fim da linha" #: ../src/fenrir/commands/commands/review_line_first_char.py:26 msgid "line is empty" msgstr "a linha estĆ” vazia" #: ../src/fenrir/commands/commands/review_line_first_char.py:33 msgid "first char in line indent {0}" msgstr "primeiro caracter no recuo da linha {0}" #: ../src/fenrir/commands/commands/review_line_last_char.py:27 msgid "last char in line" msgstr "Ćŗltimo caracter na linha" #: ../src/fenrir/commands/commands/review_next_char.py:18 msgid "moves review to the next character and presents it" msgstr "move a revisĆ£o para o próximo caracter e o apresenta" #: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "apresenta o próximo caracter foneticamente e define a revisĆ£o para ele" #: ../src/fenrir/commands/commands/review_next_line.py:18 msgid "moves review to the next line and presents it" msgstr "move a revisĆ£o para a próxima linha e a apresenta" #: ../src/fenrir/commands/commands/review_next_word.py:18 msgid "moves review to the next word and presents it" msgstr "move a revisĆ£o para a próxima palavra e a apresenta" #: ../src/fenrir/commands/commands/review_prev_char.py:18 msgid "moves review to the previous character and presents it" msgstr "move a revisĆ£o para o caracter anterior e o apresenta" #: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "apresenta o caracter anterior foneticamente e define a revisĆ£o para ele" #: ../src/fenrir/commands/commands/review_prev_line.py:18 msgid "moves review to the previous line and presents it" msgstr "move a revisĆ£o para a linha anterior e a apresenta" #: ../src/fenrir/commands/commands/review_prev_word.py:18 msgid "moves review focus to the previous word and presents it" msgstr "move o foco da revisĆ£o para a palavra anterior e a apresenta" #: ../src/fenrir/commands/commands/review_top.py:18 msgid "move review to top of screen" msgstr "mover a revisĆ£o para o topo da tela" #: ../src/fenrir/commands/commands/review_top.py:22 msgid "Top" msgstr "Topo" #: ../src/fenrir/commands/commands/review_up.py:18 msgid "set review cursor to the char in the line below and present it" msgstr "define o cursor de revisĆ£o para o caracter na linha abaixo e o apresenta" #: ../src/fenrir/commands/commands/set_bookmark_1.py:18 #: ../src/fenrir/commands/commands/set_bookmark_10.py:18 #: ../src/fenrir/commands/commands/set_bookmark_2.py:18 #: ../src/fenrir/commands/commands/set_bookmark_3.py:18 #: ../src/fenrir/commands/commands/set_bookmark_4.py:18 #: ../src/fenrir/commands/commands/set_bookmark_5.py:18 #: ../src/fenrir/commands/commands/set_bookmark_6.py:18 #: ../src/fenrir/commands/commands/set_bookmark_7.py:18 #: ../src/fenrir/commands/commands/set_bookmark_8.py:18 #: ../src/fenrir/commands/commands/set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "define Marcador {0}" #: ../src/fenrir/commands/commands/set_bookmark_1.py:22 #: ../src/fenrir/commands/commands/set_bookmark_10.py:22 #: ../src/fenrir/commands/commands/set_bookmark_2.py:22 #: ../src/fenrir/commands/commands/set_bookmark_3.py:22 #: ../src/fenrir/commands/commands/set_bookmark_4.py:22 #: ../src/fenrir/commands/commands/set_bookmark_5.py:22 #: ../src/fenrir/commands/commands/set_bookmark_6.py:22 #: ../src/fenrir/commands/commands/set_bookmark_7.py:22 #: ../src/fenrir/commands/commands/set_bookmark_8.py:22 #: ../src/fenrir/commands/commands/set_bookmark_9.py:22 msgid "No Mark found" msgstr "Nenhuma marca encontrada" #: ../src/fenrir/commands/commands/set_bookmark_1.py:32 #: ../src/fenrir/commands/commands/set_bookmark_10.py:32 #: ../src/fenrir/commands/commands/set_bookmark_2.py:32 #: ../src/fenrir/commands/commands/set_bookmark_3.py:32 #: ../src/fenrir/commands/commands/set_bookmark_4.py:32 #: ../src/fenrir/commands/commands/set_bookmark_5.py:32 #: ../src/fenrir/commands/commands/set_bookmark_6.py:32 #: ../src/fenrir/commands/commands/set_bookmark_7.py:32 #: ../src/fenrir/commands/commands/set_bookmark_8.py:32 #: ../src/fenrir/commands/commands/set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "Marcador {0} definido para o aplicativo {1}" #: ../src/fenrir/commands/commands/set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "coloca marcas para selecionar texto para copiar para a Ć”rea de transferĆŖncia" #: ../src/fenrir/commands/commands/set_mark.py:21 msgid "no review cursor" msgstr "sem cursor de revisĆ£o" #: ../src/fenrir/commands/commands/set_mark.py:26 #: ../src/fenrir/commands/commands/set_mark.py:28 msgid "set mark" msgstr "define marca" #: ../src/fenrir/commands/commands/set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "definir o Modo de Janela, precisa de 2 marcas" #: ../src/fenrir/commands/commands/set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "Modo de Janela ativado para o aplicativo {0}" #: ../src/fenrir/commands/commands/set_window_application.py:25 msgid "Set window begin and end marks" msgstr "Definir marcas de inĆ­cio e fim da janela" #: ../src/fenrir/commands/commands/shut_up.py:17 msgid "interrupts the current presentation" msgstr "interrompe a apresentação atual" #: ../src/fenrir/commands/commands/spell_check.py:26 msgid "checks the spelling of the current word" msgstr "verifica a ortografia da palavra atual" #: ../src/fenrir/commands/commands/spell_check.py:52 #: ../src/fenrir/commands/onInput/62000-spell_check.py:132 msgid "misspelled" msgstr "com erros ortogrĆ”ficos" #: ../src/fenrir/commands/commands/spell_check.py:54 msgid "correct" msgstr "correto" #: ../src/fenrir/commands/commands/subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "script: {0} caminho completo: {1}" #: ../src/fenrir/commands/commands/subprocess.py:24 msgid "scriptfile does not exist" msgstr "arquivo de script nĆ£o existe" #: ../src/fenrir/commands/commands/subprocess.py:27 msgid "scriptfile is not a file" msgstr "arquivo de script nĆ£o Ć© um arquivo" #: ../src/fenrir/commands/commands/subprocess.py:30 msgid "scriptfile is not executable" msgstr "arquivo de script nĆ£o Ć© executĆ”vel" #: ../src/fenrir/commands/commands/temp_disable_speech.py:17 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "desativa a fala atĆ© a próxima tecla pressionada" #: ../src/fenrir/commands/commands/temp_disable_speech.py:21 msgid "speech temporary disabled" msgstr "fala temporariamente desativada" #: ../src/fenrir/commands/commands/time.py:18 msgid "presents the time" msgstr "apresenta a hora" #: ../src/fenrir/commands/commands/toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "ativa ou desativa a leitura automĆ”tica de novo texto como aparece" #: ../src/fenrir/commands/commands/toggle_auto_read.py:21 msgid "autoread enabled" msgstr "leitura automĆ”tica ativada" #: ../src/fenrir/commands/commands/toggle_auto_read.py:23 msgid "autoread disabled" msgstr "leitura automĆ”tica desativada" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "ativa ou desativa a verificação ortogrĆ”fica automĆ”tica" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "verificação ortogrĆ”fica automĆ”tica ativada" #: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "verificação ortogrĆ”fica automĆ”tica desativada" #: ../src/fenrir/commands/commands/toggle_auto_time.py:16 msgid "enables or disables automatic reading of time after an period" msgstr "ativa ou desativa a leitura automĆ”tica do tempo após um perĆ­odo" #: ../src/fenrir/commands/commands/toggle_auto_time.py:21 msgid "autotime enabled" msgstr "tempo automĆ”tico ativado" #: ../src/fenrir/commands/commands/toggle_auto_time.py:23 msgid "autotime disabled" msgstr "tempo automĆ”tico desativado" #: ../src/fenrir/commands/commands/toggle_braille.py:17 msgid "enables and disables output in braille" msgstr "ativa e desativa a saĆ­da em braille" #: ../src/fenrir/commands/commands/toggle_braille.py:21 msgid "braille disabled" msgstr "braille desativado" #: ../src/fenrir/commands/commands/toggle_braille.py:24 msgid "braille enabled" msgstr "braille ativado" #: ../src/fenrir/commands/commands/toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "ativa ou desativa o anĆŗncio de emoticons em vez de caracteres" #: ../src/fenrir/commands/commands/toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "emoticons ativados" #: ../src/fenrir/commands/commands/toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "emoticons desativados" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 #: ../src/fenrir/commands/onInput/56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "ativa ou desativa o rastreamento em destaque" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "rastreamento em destaque" #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "rastreamento do cursor" #: ../src/fenrir/commands/commands/toggle_output.py:17 msgid "toggles all output settings" msgstr "alterna todas as configuraƧƵes de saĆ­da" #: ../src/fenrir/commands/commands/toggle_output.py:23 msgid "Fenrir muted" msgstr "Fenrir silenciado" #: ../src/fenrir/commands/commands/toggle_output.py:31 msgid "Fenrir unmuted" msgstr "Fenrir nĆ£o silenciado" #: ../src/fenrir/commands/commands/toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "Nenhuma pontuação encontrada." #: ../src/fenrir/commands/commands/toggle_sound.py:17 msgid "enables or disables sound" msgstr "ativa ou desativa o som" #: ../src/fenrir/commands/commands/toggle_sound.py:21 msgid "sound disabled" msgstr "som desativado" #: ../src/fenrir/commands/commands/toggle_sound.py:24 msgid "sound enabled" msgstr "som ativado" #: ../src/fenrir/commands/commands/toggle_speech.py:17 msgid "enables or disables speech" msgstr "ativa ou desativa a fala" #: ../src/fenrir/commands/commands/toggle_speech.py:21 msgid "speech disabled" msgstr "fala desativada" #: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "fala ativada" #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:18 msgid "" "You are leaving the tutorial mode. Press that shortcut again to enter the " "tutorial mode again." msgstr "" "VocĆŖ estĆ” saindo do modo tutorial. Pressione esse atalho novamente para entrar no " "modo tutorial novamente." #: ../src/fenrir/commands/commands/toggle_tutorial_mode.py:21 msgid "" "you entered the tutorial mode. In that mode the commands are not executed. " "but you get a description of what the shortcut does. To leave the tutorial " "mode, press that shortcut again." msgstr "" "vocĆŖ entrou no modo tutorial. Nesse modo os comandos nĆ£o sĆ£o executados. " "Mas vocĆŖ obtĆ©m uma descrição do que o atalho faz. Para sair do modo " "tutorial, pressione esse atalho novamente." #: ../src/fenrir/commands/onInput/80000-capslock.py:22 msgid "Capslock on" msgstr "Capslock ligado" #: ../src/fenrir/commands/onInput/80000-capslock.py:24 msgid "Capslock off" msgstr "Capslock desligado" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "Scrolllock ligado" #: ../src/fenrir/commands/onInput/80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "Scrolllock desligado" #: ../src/fenrir/commands/onInput/80500-numlock.py:22 msgid "Numlock on" msgstr "Numlock ligado" #: ../src/fenrir/commands/onInput/80500-numlock.py:24 msgid "Numlock off" msgstr "Numlock desligado" #: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "tela {0}" #: ../src/fenrir/commands/onScreenUpdate/76000-time.py:66 msgid "Autotime: {0}" msgstr "Tempo automĆ”tico: {0}" #: ../src/fenrir/fenrir.py:24 msgid "Start Fenrir" msgstr "Iniciar o Fenrir" #: ../src/fenrir/fenrir.py:99 msgid "Quit Fenrir" msgstr "Sair do Fenrir" fenrir/locale/ru/000077500000000000000000000000001513650123000142245ustar00rootroot00000000000000fenrir/locale/ru/LC_MESSAGES/000077500000000000000000000000001513650123000160115ustar00rootroot00000000000000fenrir/locale/ru/LC_MESSAGES/fenrir.mo000066400000000000000000000600061513650123000176350ustar00rootroot00000000000000Ž•ļ”  $#9 ]kq$v›(°$Łž  6U nx! ±"Ņ#õG aæ‚BSCg5« įīż"8>Un!‰#«Ļß ļ ś    (5LT>Y.˜-Ēõ'47\C”#Ų ü  3 F R]$y8ž<×I3^)’¼ Õ+į7 E I V;w³Ń!ē  $&Kj z‡–$šæ#Å"é2 '?g#‚"¦Éāś!3DZo‡“˜® ¾'Ė'ó-=+X6„» Ć ŠŽī# *0[n>€Bæ?,Bo‰2¤$×+ü0( Y esˆ Ŗ-¼"ź & C ` y  © Ć Ł ļ !#!A!G!1Z!5Œ! Ā!Ķ!Ō!ė! " """ <"G"(d""¬"'Ė""ó"# '#51#=g#A„#4ē#$9$L$l$~$$«$\½$1%(L%u%y%7%Å%Ķ% Ż%č%&&7&R&m&;Œ&Č&Ł&ł&:'B='€''¦' µ'7Ć'ū' (( 4(B(^( x(‚(ˆ( (½(Ś(ó( )$)>) X)8d)*Q®*O+'P+ x+ …+L+0Ż+C,KR, ž,©,Ć,lŪ,0H-y-5-#Å--é-/.MG.™•.&//kV/Ā01Ł0‚ 1hŽ1"÷1 2#;2%_25…2»27Ź2/3123'd3+Œ3+ø3ä344,4C4c4r4.Œ4»4Ī4Œ×4dd5\É5@&6Bg6CŖ6[ī6zJ7^Å7$8(D8*m8˜8·8Š89ē8J!9Œl9Žł9‰ˆ:R;Ue;-»;é;J<=N<Œ<›<A¶<nų<3g=›=Aŗ=ü=>T2>6‡>%¾>ä>,ś> '?C4? x?Dƒ?3Č?Sü?FP@%—@2½@0š@O!AMqA0æA.šAVBTvB*ĖB(öBC 9C FCQC bC mCzC˜C!“CBÖCID%cD%‰D?ÆDgļD_WE·EŹEēE'F1*F\FXtFDĶFG2G\PGi­GQHhiHPŅH7#IN[IJŖIVõIgLJ“JĢJ%åJ( K4K0MKW~K-ÖKELBJLKL5ŁLIMGYMO”M9ńMK+N;wNK³NQ’NQO+`OYŒOpęOWPhP/{P$«PŠPźP:Q+?QSkQ[æQYRYuR_ĻR[/S(‹S“ScČS”,T–ĮTrXUFĖU+V->VlV‡V#£V!ĒVęéV>ŠWBXRX#aXR…XŲXéXYY 2Y6SY<ŠY<ĒY>ZiCZ)­ZT×Z,[oK[Ž»[+J\<v\2³\0ę\S]k]‡],”]Ī]=å]7#^[^ t^(^/Ø^Ų^5õ^'+_1S_3…_9¹_ó_ActionAutomatic time announcement disabledAutomatic time announcement enabledAutotime: {0}BlackBlueBookmark for application {0} not setBookmark {0} not setBookmark {0} removed for application {1}Bookmark {0} set for application {1}BottomCapslock offCapslock onClear the Braille device if it is displaying a messageColumn number for cursorDark grayDecrease system volumeDecreases the pitch of the speechDecreases the rate of the speechDecreases the volume of the speechEnables and disables Braille outputEnables or disables automatic reading of time after specified intervalsEntering or Leaving v menu mode.Entering tutorial mode. In this mode commands are described but not executed. You can move through the list of commands with the up and down arrow keys. To Exit tutorial mode press Fenrir+f1.Entering v menu.Exiting Review ModeExiting tutorial mode. To enter tutorial mode again press Fenrir+f1Export current fenrir clipboard to X or GUI clipboardFenrir mutedFenrir unmutedFile does not existFirst clipboard Forward next keypressGreenIncrease system volumeIncrease the speech rateIncrease the speech volumeIncreases the pitch of the speechInterrupts the current presentationLast clipboard Leaving v menu.Light blueLight cyanLight grayLight magentaLight redLight yellowLine number for cursorMagentaMenuMove Review to the end of current line and display the contentMove Review to the first character on the lineMove Review to the last character on the lineMove braille view to the left.Move braille view to the right.Move review to the bottom of the screenMove review to the character below the current positionMove review to the character in the line above the current positionMoves review to the next character No mark foundNo punctuation found.Not in Review ModeNot in window ModeNumlock offNumlock onOne or two marks are neededPhonetically spells the current wordPhonetically spells the next word and moves review to itPhonetically spells the previous word and moves review to itPresents the currently selected text that will be copied to the clipboardPresents the indentation level for the current linePresents the text which was last receivedQuick menu not availableQuit FenrirReads attributes of current cursor positionReads from the top of the screen to the cursor positionRedRemove marksRemoves marks from selected textSaves your current Fenrir settings so they are the default.Script file is not executableScript file not foundScript source is not a valid fileScrolllock offScrolllock onSet the braille view back to cursor.Set window begin and end marksSettings saved.Start FenrirSticky Mode OnTopTurn off window mode for applicationWhiteWindow Mode off for application {0}Window Mode on for application {0}adds the current word to the exceptions dictionaryadjusts the volume for in coming soundsalsaaudio is not installedannouncement of attributes disabledannouncement of attributes enabledauto spellcheck disabledauto spellcheck enabledautoindent disabledautoindent enabledautoread disabledautoread enabledbarrier mode disabledbarrier mode enabledbeginning of lineblackblankblinkblueboldbraille disabledbraille enabledbrown/yellowchecks the spelling of the current wordclears the currently selected clipboardclipboard clearedclipboard emptyclipboard exported to filecopies last presented text to the clipboardcopies marked text to the currently selected clipboardcorrectcurrent linecurrent word.cursor trackingdecrease sound volumedefaultdisables speech until next keypressdisplays the position of the review cursoremoticons disabledemoticons enabledenables or disables announcement of emoticons instead of charsenables or disables automatic reading of indentation level changesenables or disables automatic reading of new text as it appearsenables or disables automatic spell checkingenables or disables soundenables or disables speechenables or disables the announcement of attributesenables or disables the barrier modeenables or disables tracking of highlightedenables or disables tracking of highlighted textend of lineend of screenenter v menu submenuexecute v menu entryexits Fenrirexits review modeexport the current fenrir clipboard to a filefirst character in line indent {0}get current help messageget current quick menu entryget current quick menu valueget current v menu entryget next help messageget next quick menu entryget next quick menu valueget next v menu entryget prev help messageget prev v menu entryget previous quick menu entryget previous quick menu valuegreenhighlight trackingimports text from clipboard file to the clipboardimports the graphical clipboard to Fenrir's clipboardindent {0}italiclast character in lineleave v menu submenuline breakline is emptyline {0}, column {1}, Terminal {2}misspelledmove review to top of screenmoves review focus to the previous word moves review to the next line moves review to the next word moves review to the previous character moves review to the previous line no review cursornot foundpastes the text from the currently selected clipboardphonetically presents the next character and set review to itphonetically presents the previous character and set review to itplaces marks to select text to copy to the clipboardplease set begin and endmarkpresent first linepresents the current character.presents the datepresents the timepyenchant is not installedread Bookmark {0}read to end of line, use review cursor if you are in review mode, otherwhise use text cursorreads from the cursor to the bottom of the screenreads the contents of the current screenredremove Bookmark {0}removes the current word from the exceptions dictionaryreversescreen is emptyscreen {0}script: {0} fullpath: {1}search for an menu entryselects the first clipboardselects the last clipboardselects the next clipboardselects the previous clipboardsends the following keypress to the terminal or applicationset Bookmark {0}set Window Mode, needs 2 marks set markset review and phonetically presents the current characterset review cursor to begin of current line and display the contentsetting invalidsetting value invalidsound disabledsound enabledspeaks the contents of the currently selected clipboardspeech disabledspeech enabledspeech temporary disabledstrikethroughtoggles all output settingstoggles the tutorial modeunderlinewhite{0} added to dictionary{0} is already in dictionary{0} is not in the dictionary{0} percent sound volume{0} percent speech pitch{0} percent speech rate{0} percent speech volume{0} percent system volume{0} removedProject-Id-Version: PACKAGE VERSION POT-Creation-Date: 2020-04-19 09:11+0700 PO-Revision-Date: 2020-04-19 19:26+07 Last-Translator: denis rybin Language-Team: russian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generated-By: pygettext.py 1.5 ДействиеАвтоматическое сообщение времени Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾ŠŠ²Ń‚Š¾Š¼Š°Ń‚ŠøŃ‡ŠµŃŠŗŠ¾Šµ сообщение времени Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾Š¾Š±ŃŠŃŠ²Š»ŠµŠ½ŠøŠµ времени {0}черныйсинийЗаклаГка Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0} не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š°Š—Š°ŠŗŠ»Š°Š“ŠŗŠ° {0} не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š°Š—Š°ŠŗŠ»Š°Š“ŠŗŠ° {0} уГалена Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {1}ЗаклаГка {0} ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š° Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {1}ŠšŠ¾Š½ŠµŃ†Capslock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Capslock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾ Š‘Ń€Š°Š¹Š»Ń, если оно отображает сообщение.ŠŠ¾Š¼ŠµŃ€ столбца Š“Š»Ń ŠŗŃƒŃ€ŃŠ¾Ń€Š°.темно ŃŠµŃ€Ń‹Š¹Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ системы.Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ тон речи.Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ ŃŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ речи.Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ речи.Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Šø Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š° Š‘Ń€Š°Š¹Š»Ń.Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ автоматического сообщение времени в указанном интервале.вхоГ Šø выхоГ ŠøŠ· v Š¼ŠµŠ½ŃŽŠ’ŠŗŠ»ŃŽŃ‡ŠµŠ½ режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ. Š’ ŃŃ‚Š¾Š¼ режиме можно Š¾Š·Š½Š°ŠŗŠ¾Š¼ŠøŃ‚ŃŒŃŃ с описанием команГ сами команГы не Š²Ń‹ŠæŠ¾Š»Š½ŃŃŽŃ‚ся. ŠŸŠµŃ€ŠµŠ¼ŠµŃ‰Š°Ń‚ŃŒŃŃ по списку можно с ŠæŠ¾Š¼Š¾Ń‰ŃŒŃŽ клавиш стрелок вверх, вниз. Š”Š»Ń Š·Š°ŠŗŃ€Ń‹Ń‚ŠøŃ нажмите fenrir+f1вхоГ в v Š¼ŠµŠ½ŃŽŠ—Š°ŠŗŃ€Ń‹Ń‚ŠøŠµ режима просмотра.Режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ закрыт. Чтобы снова войти в режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ нажмите fenrir+f1Экспорт Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ Š±ŃƒŃ„ŠµŃ€Š° обмена fenrir в Š±ŃƒŃ„ер обмена X или GUIŠ ŠµŃ‡ŃŒ fenrir Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Š ŠµŃ‡ŃŒ fenrir Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Š¤Š°Š¹Š» не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚.ŠŸŠµŃ€Š²Ń‹Š¹ Š±ŃƒŃ„ŠµŃ€ обмена.ŠŸŠµŃ€ŠµŃŠ»Š°Ń‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŃƒŃŽ клавишу.зеленыйУвеличение громкости системы.Увеличение скорости речи.Увеличение громкости речи.Увеличение тона речи.ŠŸŃ€ŠµŃ€Ń‹Š²Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŃƒŃŽ Ń€ŠµŃ‡ŃŒ.ПослеГний Š±ŃƒŃ„ер обмена.Š²Ń‹ŃŠŃ…Š¾Š“ ŠøŠ· v Š¼ŠµŠ½ŃŽŠ³Š¾Š»ŃƒŠ±Š¾Š¹ŃŠ²ŠµŃ‚Š»Š¾-Š³Š¾Š»ŃƒŠ±Š¾Š¹ŃŠ²ŠµŃ‚Š»Š¾ŃŠµŃ€Ń‹Š¹Š”Š²ŠµŃ‚Š»Š¾-ŠæŃƒŃ€ŠæŃƒŃ€Š½Ń‹Š¹Ń€Š¾Š·Š¾Š²Ń‹Š¹ŃŠ²ŠµŃ‚Š»Š¾ Š¶ŠµŠ»Ń‚Ń‹Š¹ŠŠ¾Š¼ŠµŃ€ строки Š“Š»Ń ŠŗŃƒŃ€ŃŠ¾Ń€Š°.ŠæŃƒŃ€ŠæŃƒŃ€Š½Ń‹Š¹ŠœŠµŠ½ŃŽŠ£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в конец Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки Šø Š¾Ń‚Š¾Š±Ń€Š°Š·ŠøŃ‚ŃŒ соГержимое.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŠµŃ€Š²Š¾Š¼Ńƒ символу ŃŃ‚Ń€Š¾ŠŗŠøŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ Šŗ послеГнему символу на ŃŃ‚Ń€Š¾ŠŗŠµŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ брайлевский виГ влево.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ брайлевский виГ вправо.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ просмотр в конец ŃŠŗŃ€Š°Š½Š°.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ обзор на символ ниже Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора на символ в строке Š²Ń‹ŃˆŠµ Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции.ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¼Ńƒ символу ŠœŠµŃ‚ŠŗŠ° не найГена.ŠŸŃƒŠ½ŠŗŃ‚ŃƒŠ°Ń†ŠøŃ не Š½Š°Š¹Š“ŠµŠ½Š°ŠŠµŃ‚ в режиме просмотра.ŠŠµ в режиме окна.Numlock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Numlock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠŠµŠ¾Š±Ń…Š¾Š“ŠøŠ¼Ń‹ оГна или Гве ментки.ŠŸŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ фонетически Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ словоФонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ слово Šø перемещает ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему.Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ слово Šø перемещает ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему.Дообщает Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ выбранный текст, который Š±ŃƒŠ“ет скопирован в Š±ŃƒŃ„ер обмена.Дообщает ŃƒŃ€Š¾Š²ŠµŠ½ŃŒ Š¾Ń‚ŃŃ‚ŃƒŠæŠ° Š“Š»Ń Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки.Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ текст, который был ŠæŠ¾Š»ŃƒŃ‡ŠµŠ½ послеГним.Быстрое Š¼ŠµŠ½ŃŽ Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾.Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ fenrirЧитает Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Ń‹ Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции ŠŗŃƒŃ€ŃŠ¾Ń€Š°Š§Ń‚ение сначала ŃŠŗŃ€Š°Š½Š° Го ŠŗŃƒŃ€ŃŠ¾Ń€Š°.ŠŗŃ€Š°ŃŠ½Ń‹Š¹Š£Š“Š°Š»ŠøŃ‚ŃŒ метки.Š£Š“Š°Š»ŠøŃ‚ŃŒ метки ŠøŠ· выбранного текста.Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠµ настройки fenrir как настройки по ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽ.Файл скрипта не ŠøŃŠæŠ¾Š»Š½ŃŠµŠ¼Ń‹Š¹Š”крипт не Š½Š°Š¹Š“ŠµŠ½Š˜ŃŃ…Š¾Š“Š½ŠøŠŗ скрипта Š½ŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ файлScrolllock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Scrolllock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ брайлевский виГ обратно на ŠŗŃƒŃ€ŃŠ¾Ń€.Установка начала Šø конца Š¾ŠŗŠ½Š°ŠŠ°ŃŃ‚ройки сохраненыfenrir Š·Š°ŠæŃƒŃ‰ŠµŠ½Š ŠµŠ¶ŠøŠ¼ Š·Š°Š»ŠøŠæŠ°Š½ŠøŃ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠŠ°Ń‡Š°Š»Š¾ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ режим окна Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ.белыйРежим окна Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½ Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0}Режим окна Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0}Š“Š¾Š±Š°Š²Š»ŃŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ слово в ŃŠ»Š¾Š²Š°Ń€ŃŒ ŠøŃŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµŠ ŠµŠ³ŃƒŠ»ŠøŃ€ŃƒŠµŃ‚ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š²Ń…Š¾Š“ŃŃ‰ŠøŃ… звуков.alsaaudio не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š¾Š§Ń‚ŠµŠ½ŠøŠµ Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š² Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾Š§Ń‚ŠµŠ½ŠøŠµ Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š² Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° орфографических ошибок Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° орфографических ошибок Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Ń‡Ń‚ение Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š² Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾Ń‡Ń‚ŠµŠ½ŠøŠµ Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š² Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾ŠŠ²Ń‚Š¾Š¼Š°Ń‚ŠøŃ‡ŠµŃŠŗŠ¾Šµ чтение нового текста Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾ŠŠ²Ń‚оматическое чтение нового текста Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾Š ŠµŠ¶ŠøŠ¼ Š±Š°Ń€ŃŒŠµŃ€Š° Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š ŠµŠ¶ŠøŠ¼ Š±Š°Ń€ŃŒŠµŃ€Š° Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠŠ°Ń‡Š°Š»Š¾ ŃŃ‚Ń€Š¾ŠŗŠøŃ‡ŠµŃ€Š½Ń‹Š¹ŠæŃƒŃŃ‚Š¾ŠœŠµŃ€Ń†Š°Š½ŠøŠµŃŠøŠ½ŠøŠ¹Š–ŠøŃ€Š½Ń‹Š¹Š‘Ń€Š°ŠøŠ»ŃŒ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š‘Ń€Š°ŠøŠ»ŃŒ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠŗŠ¾Ń€ŠøŃ‡Š½ŠµŠ²Ń‹Š¹/Š¶ŠµŠ»Ń‚Ń‹Š¹ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŃ‚ написание Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ слова.ŠžŃ‡ŠøŃ‰Š°ŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ выбранный Š±ŃƒŃ„ер обмена.Š‘ŃƒŃ„ŠµŃ€ обмена очищен.Š‘ŃƒŃ„ŠµŃ€ обмена ŠæŃƒŃŃ‚ой.Š‘ŃƒŃ„ŠµŃ€ обмена ŃŠŗŃŠæŠ¾Ń€Ń‚ŠøŃ€Š¾Š²Š°Š½ в файл.ŠšŠ¾ŠæŠøŃ€ŃƒŠµŃ‚ послеГний преГставленный текст в Š±ŃƒŃ„ер обмена.ŠšŠ¾ŠæŠøŃ€ŃƒŠµŃ‚ помеченный текст в выбранный Š±ŃƒŃ„ер обмена.ŠŸŃ€Š°Š²ŠøŠ»ŃŒŠ½Š¾Š¢ŠµŠŗŃƒŃ‰Š°Ń строка.Š¢ŠµŠŗŃƒŃ‰ŠµŠµ слово.ŠžŃ‚ŃŠ»ŠµŠ¶ŠøŠ²Š°Š½ŠøŠµ ŠŗŃƒŃ€ŃŠ¾Ń€Š°Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ звука.По ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń€ŠµŃ‡ŃŒ пока не нажата ŃŠ»ŠµŠ“ŃƒŃŽŃ‰Š°Ń ŠŗŠ»Š°Š²ŠøŃˆŠ°ŠžŃ‚Š¾Š±Ń€Š°Š¶Š°ŠµŃ‚ положение ŠŗŃƒŃ€ŃŠ¾Ń€Š° обзора.Дмайлы Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹Š”Š¼Š°Š¹Š»Ń‹ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ смайлов вместо символов.Š²ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ чтение ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ ŃƒŃ€Š¾Š²Š½Ń Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š².Š²ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń‡Ń‚ŠµŠ½ŠøŃ нового Ń‚ŠµŠŗŃŃ‚Š°Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ ŠæŃ€Š¾Š²ŠµŃ€ŠŗŃƒ орфографических ошибок.Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Š·Š²ŃƒŠŗŠ¾Š²Ń‹Ń… ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Ń€ŠµŃ‡ŠøŠ’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Ń‡Ń‚ŠµŠ½ŠøŃ Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š²Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ режима Š±Š°Ń€ŃŒŠµŃ€Š°Š’ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ отслеживание Š²Ń‹Š“ŠµŠ»ŠµŠ½ŠøŃŠ’ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ отслеживание выГеленного Ń‚ŠµŠŗŃŃ‚Š°ŠšŠ¾Š½ŠµŃ† ŃŃ‚Ń€Š¾ŠŗŠøŠšŠ¾Š½ŠµŃ† ŃŠŗŃ€Š°Š½Š°.войти в ŠæŠ¾Š“Š¼ŠµŠ½ŃŽ Š¼ŠµŠ½ŃŽŠ’Ń‹ŠæŠ¾Š»Š½ŠøŃ‚ŃŒ ŠæŃƒŠ½ŠŗŃ‚ v Š¼ŠµŠ½ŃŽŠ’Ń‹Ń…Š¾Š“ ŠøŠ· fenrir.ВыхоГ ŠøŠ· режима просмотра.Š­ŠŗŃŠæŠ¾Ń€Ń‚ŠøŃ€Š¾Š²Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена Fenrir в файл.ŠŸŠµŃ€Š²Ń‹Š¹ символ в строке {0}ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ сообщение ŠæŠ¾Š“ŃŠŗŠ°Š·ŠŗŠøŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ быстрый ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ.ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ vŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ сообщение ŠæŠ¾Š“ŃŠŗŠ°Š·ŠŗŠøŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ быстрый ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ.ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ.ŠæŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ vŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ сообщение ŠæŠ¾Š“ŃŠŗŠ°Š·ŠŗŠøŠæŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ vŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ быстрого Š¼ŠµŠ½ŃŽ.ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ.Š·ŠµŠ»ŠµŠ½Ń‹Š¹ŠžŃ‚ŃŠ»ŠµŠ¶ŠøŠ²Š°Š½ŠøŠµ Š²Ń‹Š“ŠµŠ»ŠµŠ½ŠøŃŠøŠ¼ŠæŠ¾Ń€Ń‚ŠøŃ€ŃƒŠµŃ‚ текст ŠøŠ· Š±ŃƒŃ„ŠµŃ€Š° файла в Š±ŃƒŃ„ер Š¾Š±Š¼ŠµŠ½Š°Š˜Š¼ŠæŠ¾Ń€Ń‚ŠøŃ€ŃƒŠµŃ‚ графический Š±ŃƒŃ„ер обмена в Š±ŃƒŃ„ер обмена Фенрира.ŠžŃ‚ŃŃ‚ŃƒŠæ {0}ŠšŃƒŃ€ŃŠøŠ²Š½Ń‹Š¹ŠŸŠ¾ŃŠ»ŠµŠ“Š½ŠøŠ¹ символ в строкеВыйти v Š¼ŠµŠ½ŃŽ ŠæŠ¾Š“Š¼ŠµŠ½ŃŽŠ Š°Š·Ń€Ń‹Š² строкиДтрока ŠæŃƒŃŃ‚Š°ŃŠ”Ń‚Ń€Š¾ŠŗŠ° {0}, столбец {1}, терминал {2}ŠžŃ€Ń„Š¾Š³Ń€Š°Ń„ŠøŃ‡ŠµŃŠŗŠ°Ń Š¾ŃˆŠøŠ±ŠŗŠ°ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в начало ŃŠŗŃ€Š°Š½Š°ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¼Ńƒ ŃŠ»Š¾Š²ŃƒŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¹ ŃŃ‚Ń€Š¾ŠŗŠµŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¼Ńƒ ŃŠ»Š¾Š²ŃƒŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¼Ńƒ ŃŠøŠ¼Š²Š¾Š»ŃƒŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¹ ŃŃ‚Ń€Š¾ŠŗŠµŠŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€Š° ŠæŃ€Š¾ŃŠ¼Š¾Ń‚Ń€Š°ŠŠµ Š½Š°Š¹Š“ŠµŠ½Š¾Š’ŃŃ‚Š°Š²Š»ŃŠµŃ‚ текст ŠøŠ· Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ выбранного Š±ŃƒŃ„ера обмена.Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ символ Šø ŃƒŃŃ‚Š°Š½Š°Š²Š»ŠøŠ²Š°ŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему.Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ символ Šø ŃƒŃŃ‚Š°Š½Š°Š²Š»ŠøŠ²Š°ŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему.Дтавит метки Š“Š»Ń выбора текста Š“Š»Ń ŠŗŠ¾ŠæŠøŃ€Š¾Š²Š°Š½ŠøŃ в Š±ŃƒŃ„ер обмена.ŠŸŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŃ‚Šµ начало Šø конец.Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ ŠæŠµŃ€Š²ŃƒŃŽ ŃŃ‚Ń€Š¾ŠŗŃƒ.Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ символ.Š”Š¾Š¾Š±Ń‰ŠøŃ‚ŃŒ Š“Š°Ń‚Ńƒ.Š”Š¾Š¾Š±Ń‰ŠøŃ‚ŃŒ Š²Ń€ŠµŠ¼Ńpyenchant не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Ń‡Ń‚ŠµŠ½ŠøŠµ заклаГки {0}Чтение Го конца строки, ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚Šµ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора, если вы Š½Š°Ń…Š¾Š“ŠøŃ‚ŠµŃŃŒ в режиме просмотра, иначе ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚е текстовый ŠŗŃƒŃ€ŃŠ¾Ń€.Чтение от ŠŗŃƒŃ€ŃŠ¾Ń€Š° Го конца ŃŠŗŃ€Š°Š½Š°.Чтение соГержимого Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ ŃŠŗŃ€Š°Š½Š°.ŠŗŃ€Š°ŃŠ½Ń‹Š¹Š£Š“Š°Š»ŠøŃ‚ŃŒ заклаГку {0}Š£Š“Š°Š»ŃŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ слова ŠøŠ· ŃŠ»Š¾Š²Š°Ń€Ń ŠøŃŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠ¹.ŠžŠ±Ń€Š°Ń‚Š½Ń‹Š¹Š­ŠŗŃ€Š°Š½ ŠæŃƒŃŃ‚Š¾Š¹.Экран {0} Дкрипт; {0}, ŠæŃƒŃ‚ŃŒ {1}поиск ŠæŃƒŠ½ŠŗŃ‚а Š¼ŠµŠ½ŃŽŠ’ыбирает первый Š±ŃƒŃ„ер обмена.Выбирает послеГний Š±ŃƒŃ„ер обмена.Выбирает ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена.Выбирает ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена.ŠžŃ‚ŠæŃ€Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ нажатие на терминал или приложение.Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ заклаГку {0}Установка режима окна Š½ŃƒŠ¶Š“Š°ŠµŃ‚ŃŃ в Š“Š²ŃƒŃ… меткахУстановка метки.Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ обзор Šø фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ символ.Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в начало Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки Šø Š¾Ń‚Š¾Š±Ń€Š°Š·ŠøŃ‚ŃŒ соГержимое.ŠŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Š°Ń настройкаЗначение настройки Š½ŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Š¾ŠµŠ—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ ŃŃ„Ń„ŠµŠŗŃ‚Ń‹ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ ŃŃ„Ń„ŠµŠŗŃ‚Ń‹ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹Š“Š¾Š²Š¾Ń€ŠøŃ‚ соГержимое выбранного Š±ŃƒŃ„ера обмена.Š ŠµŃ‡ŃŒ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Š ŠµŃ‡ŃŒ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Š ŠµŃ‡ŃŒ временно Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°Š—Š°Ń‡ŠµŃ€ŠŗŠ½ŃƒŃ‚Ń‹Š¹ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ все настройки Š²Ń‹Š²Š¾Š“Š°ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ в режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃŠŸŠ¾Š“Ń‡ŠµŃ€ŠŗŠ½ŃƒŃ‚Ń‹Š¹Š±ŠµŠ»Ń‹Š¹{0} Гобавлено в ŃŠ»Š¾Š²Š°Ń€ŃŒ{0} уже Š½Š°Ń…Š¾Š“ŠøŃ‚ŃŃ в словаре{0} нет в ŃŠ»Š¾Š²Š°Ń€ŠµŠ“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ звука {0} процентов.Тон речи {0} процентов.Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ речи {0} процентов.Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ речи {0} процентов.Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ системы {0} процентов.{0} уГаленоfenrir/locale/ru/LC_MESSAGES/fenrir.po000066400000000000000000001601531513650123000176440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2020-04-19 09:11+0700\n" "PO-Revision-Date: 2020-04-19 19:26+07\n" "Last-Translator: denis rybin \n" "Language-Team: russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../src/fenrirscreenreader/commands/commands/add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "Š“Š¾Š±Š°Š²Š»ŃŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ слово в ŃŠ»Š¾Š²Š°Ń€ŃŒ ŠøŃŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ" #: ../src/fenrirscreenreader/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrirscreenreader/commands/commands/remove_word_from_spell_check.py:34 #: ../src/fenrirscreenreader/commands/commands/spell_check.py:35 msgid "pyenchant is not installed" msgstr "pyenchant не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½" #: ../src/fenrirscreenreader/commands/commands/add_word_to_spell_check.py:49 msgid "{0} is already in dictionary" msgstr "{0} уже Š½Š°Ń…Š¾Š“ŠøŃ‚ŃŃ в словаре" #: ../src/fenrirscreenreader/commands/commands/add_word_to_spell_check.py:52 msgid "{0} added to dictionary" msgstr "{0} Гобавлено в ŃŠ»Š¾Š²Š°Ń€ŃŒ" #: ../src/fenrirscreenreader/commands/commands/attribute_cursor.py:18 #: ../src/fenrirscreenreader/commands/onCursorChange/85000-has_attribute.py:18 msgid "Reads attributes of current cursor position" msgstr "Читает Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Ń‹ Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции ŠŗŃƒŃ€ŃŠ¾Ń€Š°" #: ../src/fenrirscreenreader/commands/commands/bookmark_1.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_10.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_2.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_3.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_4.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_5.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_6.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_7.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_8.py:19 #: ../src/fenrirscreenreader/commands/commands/bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "чтение заклаГки {0}" #: ../src/fenrirscreenreader/commands/commands/bookmark_1.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_10.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_2.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_3.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_4.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_5.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_6.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_7.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_8.py:24 #: ../src/fenrirscreenreader/commands/commands/bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "ЗаклаГка {0} не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/bookmark_1.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_1.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_10.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_10.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_2.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_2.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_3.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_3.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_4.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_4.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_5.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_5.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_6.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_6.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_7.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_7.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_8.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_8.py:30 #: ../src/fenrirscreenreader/commands/commands/bookmark_9.py:27 #: ../src/fenrirscreenreader/commands/commands/bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "ЗаклаГка Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0} не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/bookmark_1.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_10.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_2.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_3.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_4.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_5.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_6.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_7.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_8.py:43 #: ../src/fenrirscreenreader/commands/commands/bookmark_9.py:43 #: ../src/fenrirscreenreader/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrirscreenreader/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrirscreenreader/commands/commands/cursor_read_to_end_of_line.py:27 #: ../src/fenrirscreenreader/commands/commands/indent_curr_line.py:31 #: ../src/fenrirscreenreader/commands/commands/marked_text.py:33 #: ../src/fenrirscreenreader/commands/commands/present_first_line.py:25 #: ../src/fenrirscreenreader/commands/commands/present_last_line.py:25 #: ../src/fenrirscreenreader/commands/commands/review_curr_char_phonetic.py:27 #: ../src/fenrirscreenreader/commands/commands/review_curr_line.py:27 #: ../src/fenrirscreenreader/commands/commands/review_curr_word.py:27 #: ../src/fenrirscreenreader/commands/commands/review_curr_word_phonetic.py:27 #: ../src/fenrirscreenreader/commands/commands/review_line_begin.py:27 #: ../src/fenrirscreenreader/commands/commands/review_next_line.py:29 #: ../src/fenrirscreenreader/commands/commands/review_next_word.py:29 #: ../src/fenrirscreenreader/commands/commands/review_next_word_phonetic.py:27 #: ../src/fenrirscreenreader/commands/commands/review_prev_line.py:27 #: ../src/fenrirscreenreader/commands/commands/review_prev_word.py:27 #: ../src/fenrirscreenreader/commands/commands/review_prev_word_phonetic.py:27 #: ../src/fenrirscreenreader/commands/onCursorChange/65000-present_line_if_cursor_change_vertical.py:37 #: ../src/fenrirscreenreader/commands/onScreenUpdate/60000-history.py:59 msgid "blank" msgstr "ŠæŃƒŃŃ‚Š¾" #: ../src/fenrirscreenreader/commands/commands/braille_flush.py:17 msgid "Clear the Braille device if it is displaying a message" msgstr "ŠžŃ‡ŠøŃŃ‚ŠøŃ‚ŃŒ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾ Š‘Ń€Š°Š¹Š»Ń, если оно отображает сообщение." #: ../src/fenrirscreenreader/commands/commands/braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ брайлевский виГ влево." #: ../src/fenrirscreenreader/commands/commands/braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ брайлевский виГ вправо." #: ../src/fenrirscreenreader/commands/commands/braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ брайлевский виГ обратно на ŠŗŃƒŃ€ŃŠ¾Ń€." #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_1.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_10.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_2.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_3.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_4.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_5.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_6.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_7.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_8.py:17 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "Š£Š“Š°Š»ŠøŃ‚ŃŒ заклаГку {0}" #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_1.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_10.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_2.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_3.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_4.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_5.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_6.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_7.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrirscreenreader/commands/commands/clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "ЗаклаГка {0} уГалена Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {1}" #: ../src/fenrirscreenreader/commands/commands/clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "ŠžŃ‡ŠøŃ‰Š°ŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ выбранный Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/clear_clipboard.py:21 msgid "clipboard cleared" msgstr "Š‘ŃƒŃ„ŠµŃ€ обмена очищен." #: ../src/fenrirscreenreader/commands/commands/clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ режим окна Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ." #: ../src/fenrirscreenreader/commands/commands/clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "Режим окна Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½ Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0}" #: ../src/fenrirscreenreader/commands/commands/clear_window_application.py:24 msgid "Not in window Mode" msgstr "ŠŠµ в режиме окна." #: #: ../src/fenrirscreenreader/commands/commands/copy_last_echo_to_clipboard.py:18 msgid "copies last presented text to the clipboard" msgstr "ŠšŠ¾ŠæŠøŃ€ŃƒŠµŃ‚ послеГний преГставленный текст в Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "ŠšŠ¾ŠæŠøŃ€ŃƒŠµŃ‚ помеченный текст в выбранный Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/copy_marked_to_clipboard.py:22 msgid "One or two marks are needed" msgstr "ŠŠµŠ¾Š±Ń…Š¾Š“ŠøŠ¼Ń‹ оГна или Гве ментки." #: ../src/fenrirscreenreader/commands/commands/curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "Говорит соГержимое выбранного Š±ŃƒŃ„ера обмена." #: ../src/fenrirscreenreader/commands/commands/curr_clipboard.py:21 #: ../src/fenrirscreenreader/commands/commands/export_clipboard_to_file.py:28 #: ../src/fenrirscreenreader/commands/commands/export_clipboard_to_x.py:27 #: ../src/fenrirscreenreader/commands/commands/first_clipboard.py:21 #: ../src/fenrirscreenreader/commands/commands/last_clipboard.py:21 #: ../src/fenrirscreenreader/commands/commands/next_clipboard.py:21 #: ../src/fenrirscreenreader/commands/commands/paste_clipboard.py:23 #: ../src/fenrirscreenreader/commands/commands/prev_clipboard.py:21 msgid "clipboard empty" msgstr "Š‘ŃƒŃ„ŠµŃ€ обмена ŠæŃƒŃŃ‚ой." #: ../src/fenrirscreenreader/commands/commands/curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "Чтение соГержимого Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ ŃŠŗŃ€Š°Š½Š°." #: ../src/fenrirscreenreader/commands/commands/curr_screen.py:21 msgid "screen is empty" msgstr "Экран ŠæŃƒŃŃ‚ой." #: ../src/fenrirscreenreader/commands/commands/curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "Чтение от ŠŗŃƒŃ€ŃŠ¾Ń€Š° Го конца ŃŠŗŃ€Š°Š½Š°." #: ../src/fenrirscreenreader/commands/commands/curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "Чтение сначала ŃŠŗŃ€Š°Š½Š° Го ŠŗŃƒŃ€ŃŠ¾Ń€Š°." #: ../src/fenrirscreenreader/commands/commands/current_quick_menu_entry.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/current_quick_menu_entry.py:17 msgid "get current quick menu entry" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ быстрый ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/commands/current_quick_menu_value.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/current_quick_menu_value.py:17 msgid "get current quick menu value" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ." #: ../src/fenrirscreenreader/commands/commands/cursor_column.py:17 msgid "Column number for cursor" msgstr "ŠŠ¾Š¼ŠµŃ€ столбца Š“Š»Ń ŠŗŃƒŃ€ŃŠ¾Ń€Š°." #: ../src/fenrirscreenreader/commands/commands/cursor_lineno.py:17 msgid "Line number for cursor" msgstr "ŠŠ¾Š¼ŠµŃ€ строки Š“Š»Ń ŠŗŃƒŃ€ŃŠ¾Ń€Š°." #: ../src/fenrirscreenreader/commands/commands/cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "ŠžŃ‚Š¾Š±Ń€Š°Š¶Š°ŠµŃ‚ положение ŠŗŃƒŃ€ŃŠ¾Ń€Š° обзора." #: ../src/fenrirscreenreader/commands/commands/cursor_position.py:23 msgid "line {0}, column {1}, Terminal {2}" msgstr "Дтрока {0}, столбец {1}, терминал {2}" #: #: ../src/fenrirscreenreader/commands/commands/cursor_read_to_end_of_line.py:18 msgid "read to end of line, use review cursor if you are in review mode, otherwhise use text cursor" msgstr "Чтение Го конца строки, ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚Šµ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора, если вы Š½Š°Ń…Š¾Š“ŠøŃ‚ŠµŃŃŒ в режиме просмотра, иначе ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚е текстовый ŠŗŃƒŃ€ŃŠ¾Ń€." #: ../src/fenrirscreenreader/commands/commands/date.py:18 msgid "presents the date" msgstr "Š”Š¾Š¾Š±Ń‰ŠøŃ‚ŃŒ Š“Š°Ń‚Ńƒ." #: ../src/fenrirscreenreader/commands/commands/dec_alsa_volume.py:24 msgid "Decrease system volume" msgstr "Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ системы." #: ../src/fenrirscreenreader/commands/commands/dec_alsa_volume.py:28 #: ../src/fenrirscreenreader/commands/commands/inc_alsa_volume.py:28 msgid "alsaaudio is not installed" msgstr "alsaaudio не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/dec_alsa_volume.py:36 #: ../src/fenrirscreenreader/commands/commands/inc_alsa_volume.py:36 msgid "{0} percent system volume" msgstr "Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ системы {0} процентов." #: ../src/fenrirscreenreader/commands/commands/dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ звука." #: ../src/fenrirscreenreader/commands/commands/dec_sound_volume.py:29 #: ../src/fenrirscreenreader/commands/commands/inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ звука {0} процентов." #: ../src/fenrirscreenreader/commands/commands/dec_speech_pitch.py:18 msgid "Decreases the pitch of the speech" msgstr "Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ тон речи." #: ../src/fenrirscreenreader/commands/commands/dec_speech_pitch.py:26 #: ../src/fenrirscreenreader/commands/commands/inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "Тон речи {0} процентов." #: ../src/fenrirscreenreader/commands/commands/dec_speech_rate.py:18 msgid "Decreases the rate of the speech" msgstr "Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ ŃŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ речи." #: ../src/fenrirscreenreader/commands/commands/dec_speech_rate.py:27 #: ../src/fenrirscreenreader/commands/commands/inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ речи {0} процентов." #: ../src/fenrirscreenreader/commands/commands/dec_speech_volume.py:18 msgid "Decreases the volume of the speech" msgstr "Š£Š¼ŠµŠ½ŃŒŃˆŠøŃ‚ŃŒ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ речи." #: ../src/fenrirscreenreader/commands/commands/dec_speech_volume.py:27 #: ../src/fenrirscreenreader/commands/commands/inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ речи {0} процентов." #: ../src/fenrirscreenreader/commands/commands/exit_review.py:17 #: ../src/fenrirscreenreader/commands/onCursorChange/95000-exit_review_mode.py:17 msgid "exits review mode" msgstr "ВыхоГ ŠøŠ· режима просмотра." #: ../src/fenrirscreenreader/commands/commands/exit_review.py:21 msgid "Not in Review Mode" msgstr "ŠŠµŃ‚ в режиме просмотра." #: ../src/fenrirscreenreader/commands/commands/exit_review.py:25 msgid "Exiting Review Mode" msgstr "Закрытие режима просмотра." #: ../src/fenrirscreenreader/commands/commands/export_clipboard_to_file.py:19 msgid "export the current fenrir clipboard to a file" msgstr "Š­ŠŗŃŠæŠ¾Ń€Ń‚ŠøŃ€Š¾Š²Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена Fenrir в файл." #: ../src/fenrirscreenreader/commands/commands/export_clipboard_to_file.py:34 msgid "clipboard exported to file" msgstr "Š‘ŃƒŃ„ŠµŃ€ обмена ŃŠŗŃŠæŠ¾Ń€Ń‚ŠøŃ€Š¾Š²Š°Š½ в файл." #: ../src/fenrirscreenreader/commands/commands/export_clipboard_to_x.py:20 msgid "Export current fenrir clipboard to X or GUI clipboard" msgstr "Экспорт Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ Š±ŃƒŃ„ŠµŃ€Š° обмена fenrir в Š±ŃƒŃ„ер обмена X или GUI" #: ../src/fenrirscreenreader/commands/commands/first_clipboard.py:17 msgid "selects the first clipboard" msgstr "Выбирает первый Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/forward_keypress.py:17 msgid "sends the following keypress to the terminal or application" msgstr "ŠžŃ‚ŠæŃ€Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ нажатие на терминал или приложение." #: ../src/fenrirscreenreader/commands/commands/forward_keypress.py:21 msgid "Forward next keypress" msgstr "ŠŸŠµŃ€ŠµŃŠ»Š°Ń‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŃƒŃŽ клавишу." #: #: ../src/fenrirscreenreader/commands/commands/import_clipboard_from_file.py:19 msgid "imports text from clipboard file to the clipboard" msgstr "ŠøŠ¼ŠæŠ¾Ń€Ń‚ŠøŃ€ŃƒŠµŃ‚ текст ŠøŠ· Š±ŃƒŃ„ŠµŃ€Š° файла в Š±ŃƒŃ„ер обмена" #: #: ../src/fenrirscreenreader/commands/commands/import_clipboard_from_file.py:27 msgid "File does not exist" msgstr "Файл не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚." #: ../src/fenrirscreenreader/commands/commands/import_clipboard_from_x.py:21 msgid "imports the graphical clipboard to Fenrir's clipboard" msgstr "Š˜Š¼ŠæŠ¾Ń€Ń‚ŠøŃ€ŃƒŠµŃ‚ графический Š±ŃƒŃ„ер обмена в Š±ŃƒŃ„ер обмена Фенрира." #: ../src/fenrirscreenreader/commands/commands/inc_alsa_volume.py:24 msgid "Increase system volume" msgstr "Увеличение громкости системы." #: ../src/fenrirscreenreader/commands/commands/inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "Š ŠµŠ³ŃƒŠ»ŠøŃ€ŃƒŠµŃ‚ Š³Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š²Ń…Š¾Š“ŃŃ‰ŠøŃ… звуков." #: ../src/fenrirscreenreader/commands/commands/inc_speech_pitch.py:18 msgid "Increases the pitch of the speech" msgstr "Увеличение тона речи." #: ../src/fenrirscreenreader/commands/commands/inc_speech_rate.py:18 msgid "Increase the speech rate" msgstr "Увеличение скорости речи." #: ../src/fenrirscreenreader/commands/commands/inc_speech_volume.py:18 msgid "Increase the speech volume" msgstr "Увеличение громкости речи." #: ../src/fenrirscreenreader/commands/commands/indent_curr_line.py:18 msgid "Presents the indentation level for the current line" msgstr "Дообщает ŃƒŃ€Š¾Š²ŠµŠ½ŃŒ Š¾Ń‚ŃŃ‚ŃƒŠæŠ° Š“Š»Ń Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки." #: ../src/fenrirscreenreader/commands/commands/indent_curr_line.py:33 msgid "indent {0}" msgstr "ŠžŃ‚ŃŃ‚ŃƒŠæ {0}" #: ../src/fenrirscreenreader/commands/commands/last_clipboard.py:17 msgid "selects the last clipboard" msgstr "Выбирает послеГний Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/last_incoming.py:17 msgid "Presents the text which was last received" msgstr "Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ текст, который был ŠæŠ¾Š»ŃƒŃ‡ŠµŠ½ послеГним." #: ../src/fenrirscreenreader/commands/commands/marked_text.py:18 msgid "Presents the currently selected text that will be copied to the clipboard" msgstr "Дообщает Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ выбранный текст, который Š±ŃƒŠ“ет скопирован в Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/marked_text.py:23 msgid "please set begin and endmark" msgstr "ŠŸŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŃ‚Šµ начало Šø конец." #: ../src/fenrirscreenreader/commands/commands/next_clipboard.py:17 msgid "selects the next clipboard" msgstr "Выбирает ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена." #: ../src/fenrirscreenreader/commands/commands/next_clipboard.py:28 #: ../src/fenrirscreenreader/commands/commands/prev_clipboard.py:28 msgid "First clipboard " msgstr "ŠŸŠµŃ€Š²Ń‹Š¹ Š±ŃƒŃ„ŠµŃ€ обмена." #: ../src/fenrirscreenreader/commands/commands/next_clipboard.py:30 #: ../src/fenrirscreenreader/commands/commands/prev_clipboard.py:30 msgid "Last clipboard " msgstr "ПослеГний Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/next_quick_menu_entry.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/next_quick_menu_entry.py:17 msgid "get next quick menu entry" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ быстрый ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ." #: ../src/fenrirscreenreader/commands/commands/next_quick_menu_entry.py:27 #: ../src/fenrirscreenreader/commands/commands/prev_quick_menu_entry.py:27 #: ../src/fenrirscreenreader/commands/quickMenu/next_quick_menu_entry.py:27 #: ../src/fenrirscreenreader/commands/quickMenu/prev_quick_menu_entry.py:27 msgid "Quick menu not available" msgstr "Быстрое Š¼ŠµŠ½ŃŽ Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾." #: ../src/fenrirscreenreader/commands/commands/next_quick_menu_value.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/next_quick_menu_value.py:17 msgid "get next quick menu value" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ." #: ../src/fenrirscreenreader/commands/commands/paste_clipboard.py:19 msgid "pastes the text from the currently selected clipboard" msgstr "Š’ŃŃ‚Š°Š²Š»ŃŠµŃ‚ текст ŠøŠ· Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ выбранного Š±ŃƒŃ„ера обмена." #: ../src/fenrirscreenreader/commands/commands/present_first_line.py:18 msgid "present first line" msgstr "Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ ŠæŠµŃ€Š²ŃƒŃŽ ŃŃ‚Ń€Š¾ŠŗŃƒ." #: ../src/fenrirscreenreader/commands/commands/present_last_line.py:18 #: ../src/fenrirscreenreader/commands/commands/review_curr_line.py:18 msgid "current line" msgstr "Š¢ŠµŠŗŃƒŃ‰Š°Ń строка." #: ../src/fenrirscreenreader/commands/commands/prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "Выбирает ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ Š±ŃƒŃ„ŠµŃ€ обмена." #: ../src/fenrirscreenreader/commands/commands/prev_quick_menu_entry.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/prev_quick_menu_entry.py:17 msgid "get previous quick menu entry" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ быстрого Š¼ŠµŠ½ŃŽ." #: ../src/fenrirscreenreader/commands/commands/prev_quick_menu_value.py:17 #: ../src/fenrirscreenreader/commands/quickMenu/prev_quick_menu_value.py:17 msgid "get previous quick menu value" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ значение быстрого Š¼ŠµŠ½ŃŽ." #: ../src/fenrirscreenreader/commands/commands/quit_fenrir.py:17 msgid "exits Fenrir" msgstr "ВыхоГ ŠøŠ· fenrir." #: ../src/fenrirscreenreader/commands/commands/remove_marks.py:17 msgid "Removes marks from selected text" msgstr "Š£Š“Š°Š»ŠøŃ‚ŃŒ метки ŠøŠ· выбранного текста." #: ../src/fenrirscreenreader/commands/commands/remove_marks.py:21 msgid "Remove marks" msgstr "Š£Š“Š°Š»ŠøŃ‚ŃŒ метки." #: #: ../src/fenrirscreenreader/commands/commands/remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "Š£Š“Š°Š»ŃŠµŃ‚ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ слова ŠøŠ· ŃŠ»Š¾Š²Š°Ń€Ń ŠøŃŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠ¹." #: #: ../src/fenrirscreenreader/commands/commands/remove_word_from_spell_check.py:50 msgid "{0} is not in the dictionary" msgstr "{0} нет в словаре" #: #: ../src/fenrirscreenreader/commands/commands/remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "{0} уГалено" #: ../src/fenrirscreenreader/commands/commands/review_bottom.py:17 msgid "Move review to the bottom of the screen" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ просмотр в конец ŃŠŗŃ€Š°Š½Š°." #: ../src/fenrirscreenreader/commands/commands/review_bottom.py:21 msgid "Bottom" msgstr "ŠšŠ¾Š½ŠµŃ†" #: ../src/fenrirscreenreader/commands/commands/review_curr_char.py:18 msgid "presents the current character." msgstr "Š”Š¾Š¾Š±Ń‰Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ символ." #: ../src/fenrirscreenreader/commands/commands/review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ обзор Šø фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ символ." #: ../src/fenrirscreenreader/commands/commands/review_curr_word.py:18 msgid "current word." msgstr "Š¢ŠµŠŗŃƒŃ‰ŠµŠµ слово." #: ../src/fenrirscreenreader/commands/commands/review_curr_word.py:32 #: ../src/fenrirscreenreader/commands/commands/review_curr_word_phonetic.py:36 #: ../src/fenrirscreenreader/commands/commands/review_down.py:27 #: ../src/fenrirscreenreader/commands/commands/review_next_char.py:28 #: ../src/fenrirscreenreader/commands/commands/review_next_char_phonetic.py:30 #: ../src/fenrirscreenreader/commands/commands/review_next_line.py:34 #: ../src/fenrirscreenreader/commands/commands/review_next_word.py:34 #: ../src/fenrirscreenreader/commands/commands/review_next_word_phonetic.py:36 #: ../src/fenrirscreenreader/commands/commands/review_prev_char.py:31 #: ../src/fenrirscreenreader/commands/commands/review_prev_char_phonetic.py:30 #: ../src/fenrirscreenreader/commands/commands/review_prev_line.py:32 #: ../src/fenrirscreenreader/commands/commands/review_prev_word.py:32 #: ../src/fenrirscreenreader/commands/commands/review_prev_word_phonetic.py:36 #: ../src/fenrirscreenreader/commands/commands/review_up.py:27 msgid "end of screen" msgstr "ŠšŠ¾Š½ŠµŃ† ŃŠŗŃ€Š°Š½Š°." #: ../src/fenrirscreenreader/commands/commands/review_curr_word.py:35 #: ../src/fenrirscreenreader/commands/commands/review_curr_word_phonetic.py:39 #: ../src/fenrirscreenreader/commands/commands/review_next_char.py:31 #: ../src/fenrirscreenreader/commands/commands/review_next_char_phonetic.py:33 #: ../src/fenrirscreenreader/commands/commands/review_next_word.py:37 #: ../src/fenrirscreenreader/commands/commands/review_next_word_phonetic.py:39 #: ../src/fenrirscreenreader/commands/commands/review_prev_char.py:34 #: ../src/fenrirscreenreader/commands/commands/review_prev_char_phonetic.py:33 #: ../src/fenrirscreenreader/commands/commands/review_prev_word.py:35 #: ../src/fenrirscreenreader/commands/commands/review_prev_word_phonetic.py:39 #: ../src/fenrirscreenreader/commands/commands/review_up.py:30 msgid "line break" msgstr "Разрыв строки" #: ../src/fenrirscreenreader/commands/commands/review_curr_word_phonetic.py:19 msgid "Phonetically spells the current word" msgstr "ŠŸŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ фонетически Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ слово" #: ../src/fenrirscreenreader/commands/commands/review_down.py:18 msgid "Move review to the character below the current position" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ обзор на символ ниже Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции." #: ../src/fenrirscreenreader/commands/commands/review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в начало Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки Šø Š¾Ń‚Š¾Š±Ń€Š°Š·ŠøŃ‚ŃŒ соГержимое." #: ../src/fenrirscreenreader/commands/commands/review_line_begin.py:30 msgid "beginning of line" msgstr "ŠŠ°Ń‡Š°Š»Š¾ строки" #: ../src/fenrirscreenreader/commands/commands/review_line_end.py:18 msgid "Move Review to the end of current line and display the content" msgstr "Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в конец Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ строки Šø Š¾Ń‚Š¾Š±Ń€Š°Š·ŠøŃ‚ŃŒ соГержимое." #: ../src/fenrirscreenreader/commands/commands/review_line_end.py:27 msgid "end of line" msgstr "ŠšŠ¾Š½ŠµŃ† строки" #: ../src/fenrirscreenreader/commands/commands/review_line_first_char.py:19 msgid "Move Review to the first character on the line" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŠµŃ€Š²Š¾Š¼Ńƒ символу строки" #: ../src/fenrirscreenreader/commands/commands/review_line_first_char.py:26 msgid "line is empty" msgstr "Дтрока ŠæŃƒŃŃ‚Š°Ń" #: ../src/fenrirscreenreader/commands/commands/review_line_first_char.py:33 msgid "first character in line indent {0}" msgstr "ŠŸŠµŃ€Š²Ń‹Š¹ символ в строке {0}" #: ../src/fenrirscreenreader/commands/commands/review_line_last_char.py:18 msgid "Move Review to the last character on the line" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ Šŗ послеГнему символу на строке" #: ../src/fenrirscreenreader/commands/commands/review_line_last_char.py:27 msgid "last character in line" msgstr "ПослеГний символ в строке" #: ../src/fenrirscreenreader/commands/commands/review_next_char.py:18 msgid "Moves review to the next character " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¼Ńƒ символу " #: ../src/fenrirscreenreader/commands/commands/review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ символ Šø ŃƒŃŃ‚Š°Š½Š°Š²Š»ŠøŠ²Š°ŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему." #: ../src/fenrirscreenreader/commands/commands/review_next_line.py:18 msgid "moves review to the next line " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¹ строке" #: ../src/fenrirscreenreader/commands/commands/review_next_word.py:18 msgid "moves review to the next word " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠ¼Ńƒ слову" #: ../src/fenrirscreenreader/commands/commands/review_next_word_phonetic.py:19 msgid "Phonetically spells the next word and moves review to it" msgstr "Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ слово Šø перемещает ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему." #: ../src/fenrirscreenreader/commands/commands/review_prev_char.py:18 msgid "moves review to the previous character " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¼Ńƒ символу" #: ../src/fenrirscreenreader/commands/commands/review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ символ Šø ŃƒŃŃ‚Š°Š½Š°Š²Š»ŠøŠ²Š°ŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему." #: ../src/fenrirscreenreader/commands/commands/review_prev_line.py:18 msgid "moves review to the previous line " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¹ строке" #: ../src/fenrirscreenreader/commands/commands/review_prev_word.py:18 msgid "moves review focus to the previous word " msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¼Ńƒ слову" #: ../src/fenrirscreenreader/commands/commands/review_prev_word_phonetic.py:19 msgid "Phonetically spells the previous word and moves review to it" msgstr "Фонетически ŠæŃ€ŠµŠ“ŃŃ‚Š°Š²Š»ŃŠµŃ‚ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ слово Šø перемещает ŠŗŃƒŃ€ŃŠ¾Ń€ обзора Šŗ нему." #: ../src/fenrirscreenreader/commands/commands/review_top.py:18 msgid "move review to top of screen" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ просмотра в начало ŃŠŗŃ€Š°Š½Š°" #: ../src/fenrirscreenreader/commands/commands/review_top.py:22 msgid "Top" msgstr "ŠŠ°Ń‡Š°Š»Š¾" #: ../src/fenrirscreenreader/commands/commands/review_up.py:18 msgid "Move review to the character in the line above the current position" msgstr "ŠŸŠµŃ€ŠµŠ¼ŠµŃŃ‚ŠøŃ‚ŃŒ ŠŗŃƒŃ€ŃŠ¾Ń€ обзора на символ в строке Š²Ń‹ŃˆŠµ Ń‚ŠµŠŗŃƒŃ‰ŠµŠ¹ позиции." #: ../src/fenrirscreenreader/commands/commands/save_settings.py:18 msgid "Saves your current Fenrir settings so they are the default." msgstr "Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠµ настройки fenrir как настройки по ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽ." #: ../src/fenrirscreenreader/commands/commands/save_settings.py:22 msgid "Settings saved." msgstr "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø сохранены" #: ../src/fenrirscreenreader/commands/commands/set_bookmark_1.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_10.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_2.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_3.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_4.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_5.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_6.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_7.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_8.py:18 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "Š£ŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ заклаГку {0}" #: ../src/fenrirscreenreader/commands/commands/set_bookmark_1.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_10.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_2.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_3.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_4.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_5.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_6.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_7.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_8.py:22 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_9.py:22 msgid "No mark found" msgstr "ŠœŠµŃ‚ŠŗŠ° не найГена." #: ../src/fenrirscreenreader/commands/commands/set_bookmark_1.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_10.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_2.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_3.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_4.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_5.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_6.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_7.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_8.py:32 #: ../src/fenrirscreenreader/commands/commands/set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "ЗаклаГка {0} ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š° Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {1}" #: ../src/fenrirscreenreader/commands/commands/set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "Дтавит метки Š“Š»Ń выбора текста Š“Š»Ń ŠŗŠ¾ŠæŠøŃ€Š¾Š²Š°Š½ŠøŃ в Š±ŃƒŃ„ер обмена." #: ../src/fenrirscreenreader/commands/commands/set_mark.py:21 msgid "no review cursor" msgstr "ŠŠµŃ‚ ŠŗŃƒŃ€ŃŠ¾Ń€Š° просмотра" #: ../src/fenrirscreenreader/commands/commands/set_mark.py:26 #: ../src/fenrirscreenreader/commands/commands/set_mark.py:28 msgid "set mark" msgstr "Установка метки." #: ../src/fenrirscreenreader/commands/commands/set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "Установка режима окна Š½ŃƒŠ¶Š“Š°ŠµŃ‚ŃŃ в Š“Š²ŃƒŃ… метках" #: ../src/fenrirscreenreader/commands/commands/set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "Режим окна Š“Š»Ń ŠæŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŃ {0}" #: ../src/fenrirscreenreader/commands/commands/set_window_application.py:25 msgid "Set window begin and end marks" msgstr "Установка начала Šø конца окна" #: ../src/fenrirscreenreader/commands/commands/shut_up.py:17 msgid "Interrupts the current presentation" msgstr "ŠŸŃ€ŠµŃ€Ń‹Š²Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŃƒŃŽ Ń€ŠµŃ‡ŃŒ." #: ../src/fenrirscreenreader/commands/commands/spell_check.py:26 msgid "checks the spelling of the current word" msgstr "ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŃ‚ написание Ń‚ŠµŠŗŃƒŃ‰ŠµŠ³Š¾ слова." #: ../src/fenrirscreenreader/commands/commands/spell_check.py:51 #: ../src/fenrirscreenreader/commands/onCursorChange/35000-spell_check.py:129 msgid "misspelled" msgstr "ŠžŃ€Ń„Š¾Š³Ń€Š°Ń„ŠøŃ‡ŠµŃŠŗŠ°Ń ошибка" #: ../src/fenrirscreenreader/commands/commands/spell_check.py:53 msgid "correct" msgstr "ŠŸŃ€Š°Š²ŠøŠ»ŃŒŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "Дкрипт; {0}, ŠæŃƒŃ‚ŃŒ {1}" #: ../src/fenrirscreenreader/commands/commands/subprocess.py:24 msgid "Script file not found" msgstr "Дкрипт не найГен" #: ../src/fenrirscreenreader/commands/commands/subprocess.py:27 msgid "Script source is not a valid file" msgstr "Š˜ŃŃ…Š¾Š“Š½ŠøŠŗ скрипта Š½ŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ файл" #: ../src/fenrirscreenreader/commands/commands/subprocess.py:30 msgid "Script file is not executable" msgstr "Файл скрипта не ŠøŃŠæŠ¾Š»Š½ŃŠµŠ¼Ń‹Š¹" #: ../src/fenrirscreenreader/commands/commands/temp_disable_speech.py:17 #: ../src/fenrirscreenreader/commands/onByteInput/15000-enable_temp_speech.py:17 #: ../src/fenrirscreenreader/commands/onKeyInput/15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń€ŠµŃ‡ŃŒ пока не нажата ŃŠ»ŠµŠ“ŃƒŃŽŃ‰Š°Ń клавиша" #: ../src/fenrirscreenreader/commands/commands/time.py:18 msgid "presents the time" msgstr "Š”Š¾Š¾Š±Ń‰ŠøŃ‚ŃŒ Š²Ń€ŠµŠ¼Ń" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_indent.py:16 msgid "enables or disables automatic reading of indentation level changes" msgstr "Š²ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ чтение ŠøŠ·Š¼ŠµŠ½ŠµŠ½ŠøŃ ŃƒŃ€Š¾Š²Š½Ń Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š²." #: ../src/fenrirscreenreader/commands/commands/toggle_auto_indent.py:21 msgid "autoindent enabled" msgstr "чтение Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š² Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_indent.py:23 msgid "autoindent disabled" msgstr "чтение Š¾Ń‚ŃŃ‚ŃƒŠæŠ¾Š² Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "Š²ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń‡Ń‚ŠµŠ½ŠøŃ нового текста" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_read.py:21 msgid "autoread enabled" msgstr "Автоматическое чтение нового текста Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_read.py:23 msgid "autoread disabled" msgstr "Автоматическое чтение нового текста Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ ŠæŃ€Š¾Š²ŠµŃ€ŠŗŃƒ орфографических ошибок." #: ../src/fenrirscreenreader/commands/commands/toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° орфографических ошибок Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° орфографических ошибок Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_time.py:16 msgid "Enables or disables automatic reading of time after specified intervals" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ автоматического сообщение времени в указанном интервале." #: ../src/fenrirscreenreader/commands/commands/toggle_auto_time.py:21 msgid "Automatic time announcement enabled" msgstr "Автоматическое сообщение времени Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_auto_time.py:23 msgid "Automatic time announcement disabled" msgstr "Автоматическое сообщение времени Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_barrier.py:16 msgid "enables or disables the barrier mode" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ режима Š±Š°Ń€ŃŒŠµŃ€Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_barrier.py:21 msgid "barrier mode enabled" msgstr "Режим Š±Š°Ń€ŃŒŠµŃ€Š° Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/commands/toggle_barrier.py:23 msgid "barrier mode disabled" msgstr "Режим Š±Š°Ń€ŃŒŠµŃ€Š° Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/commands/toggle_braille.py:17 msgid "Enables and disables Braille output" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Šø Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š° Š‘Ń€Š°Š¹Š»Ń." #: ../src/fenrirscreenreader/commands/commands/toggle_braille.py:21 msgid "braille disabled" msgstr "Š‘Ń€Š°ŠøŠ»ŃŒ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/commands/toggle_braille.py:24 msgid "braille enabled" msgstr "Š‘Ń€Š°ŠøŠ»ŃŒ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/commands/toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ смайлов вместо символов." #: ../src/fenrirscreenreader/commands/commands/toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "Дмайлы Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹" #: ../src/fenrirscreenreader/commands/commands/toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "Дмайлы Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹" #: ../src/fenrirscreenreader/commands/commands/toggle_has_attribute.py:16 msgid "enables or disables the announcement of attributes" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Ń‡Ń‚ŠµŠ½ŠøŃ Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š²" #: ../src/fenrirscreenreader/commands/commands/toggle_has_attribute.py:21 msgid "announcement of attributes enabled" msgstr "Чтение Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š² Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_has_attribute.py:23 msgid "announcement of attributes disabled" msgstr "Чтение Š°Ń‚Ń€ŠøŠ±ŃƒŃ‚Š¾Š² Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾" #: ../src/fenrirscreenreader/commands/commands/toggle_highlight_tracking.py:16 msgid "enables or disables tracking of highlighted text" msgstr "Š’ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ отслеживание выГеленного текста" #: ../src/fenrirscreenreader/commands/commands/toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "ŠžŃ‚ŃŠ»ŠµŠ¶ŠøŠ²Š°Š½ŠøŠµ Š²Ń‹Š“ŠµŠ»ŠµŠ½ŠøŃ" #: ../src/fenrirscreenreader/commands/commands/toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "ŠžŃ‚ŃŠ»ŠµŠ¶ŠøŠ²Š°Š½ŠøŠµ ŠŗŃƒŃ€ŃŠ¾Ń€Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_output.py:17 msgid "toggles all output settings" msgstr "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ все настройки вывоГа" #: ../src/fenrirscreenreader/commands/commands/toggle_output.py:23 msgid "Fenrir muted" msgstr "Š ŠµŃ‡ŃŒ fenrir Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_output.py:31 msgid "Fenrir unmuted" msgstr "Š ŠµŃ‡ŃŒ fenrir Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "ŠŸŃƒŠ½ŠŗŃ‚ŃƒŠ°Ń†ŠøŃ не найГена" #: ../src/fenrirscreenreader/commands/commands/toggle_sound.py:17 msgid "enables or disables sound" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Š·Š²ŃƒŠŗŠ¾Š²Ń‹Ń… ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²" #: ../src/fenrirscreenreader/commands/commands/toggle_sound.py:21 msgid "sound disabled" msgstr "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ ŃŃ„Ń„ŠµŠŗŃ‚Ń‹ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹" #: ../src/fenrirscreenreader/commands/commands/toggle_sound.py:24 msgid "sound enabled" msgstr "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ ŃŃ„Ń„ŠµŠŗŃ‚Ń‹ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹" #: ../src/fenrirscreenreader/commands/commands/toggle_speech.py:17 msgid "enables or disables speech" msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ речи" #: ../src/fenrirscreenreader/commands/commands/toggle_speech.py:22 msgid "speech disabled" msgstr "Š ŠµŃ‡ŃŒ Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_speech.py:25 #: ../src/fenrirscreenreader/commands/onByteInput/15000-enable_temp_speech.py:24 #: ../src/fenrirscreenreader/commands/onKeyInput/15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "Š ŠµŃ‡ŃŒ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/commands/commands/toggle_tutorial_mode.py:18 msgid "Exiting tutorial mode. To enter tutorial mode again press Fenrir+f1" msgstr "Режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ закрыт. Чтобы снова войти в режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ нажмите fenrir+f1" #: ../src/fenrirscreenreader/commands/commands/toggle_tutorial_mode.py:22 msgid "Entering tutorial mode. In this mode commands are described but not executed. You can move through the list of commands with the up and down arrow keys. To Exit tutorial mode press Fenrir+f1." msgstr "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ. Š’ ŃŃ‚Š¾Š¼ режиме можно Š¾Š·Š½Š°ŠŗŠ¾Š¼ŠøŃ‚ŃŒŃŃ с описанием команГ сами команГы не Š²Ń‹ŠæŠ¾Š»Š½ŃŃŽŃ‚ся. ŠŸŠµŃ€ŠµŠ¼ŠµŃ‰Š°Ń‚ŃŒŃŃ по списку можно с ŠæŠ¾Š¼Š¾Ń‰ŃŒŃŽ клавиш стрелок вверх, вниз. Š”Š»Ń Š·Š°ŠŗŃ€Ń‹Ń‚ŠøŃ нажмите fenrir+f1" #: ../src/fenrirscreenreader/commands/commands/toggle_vmenu_mode.py:18 msgid "Entering or Leaving v menu mode." msgstr "вхоГ Šø выхоГ ŠøŠ· v Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/commands/toggle_vmenu_mode.py:22 msgid "Entering v menu." msgstr "вхоГ в v Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/commands/toggle_vmenu_mode.py:24 msgid "Leaving v menu." msgstr "Š²Ń‹ŃŠŃ…Š¾Š“ ŠøŠ· v Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/help/curr_help.py:17 msgid "get current help message" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠµŠµ сообщение поГсказки" #: ../src/fenrirscreenreader/commands/help/next_help.py:17 msgid "get next help message" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ сообщение поГсказки" #: ../src/fenrirscreenreader/commands/help/prev_help.py:17 msgid "get prev help message" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ сообщение поГсказки" #: #: ../src/fenrirscreenreader/commands/onCursorChange/65000-present_line_if_cursor_change_vertical.py:46 msgid "indented " msgstr "" #: ../src/fenrirscreenreader/commands/onHeartBeat/76000-time.py:66 msgid "Autotime: {0}" msgstr "Š¾Š±ŃŠŃŠ²Š»ŠµŠ½ŠøŠµ времени {0}" #: ../src/fenrirscreenreader/commands/onKeyInput/80000-capslock.py:22 msgid "Capslock on" msgstr "Capslock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/onKeyInput/80000-capslock.py:24 msgid "Capslock off" msgstr "Capslock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/onKeyInput/80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "Scrolllock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/onKeyInput/80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "Scrolllock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/onKeyInput/80500-numlock.py:22 msgid "Numlock on" msgstr "Numlock Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/commands/onKeyInput/80500-numlock.py:24 msgid "Numlock off" msgstr "Numlock Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: #: ../src/fenrirscreenreader/commands/onScreenChanged/80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "Экран {0} " #: #: ../src/fenrirscreenreader/commands/onScreenUpdate/56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "Š’ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ или Š¾Ń‚ŠŗŠ»ŃŽŃ‡Š°ŠµŃ‚ отслеживание Š²Ń‹Š“ŠµŠ»ŠµŠ½ŠøŃ" #: ../src/fenrirscreenreader/commands/vmenu-navigation/curr_vmenu_entry.py:17 msgid "get current v menu entry" msgstr "ŠŸŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ v" #: ../src/fenrirscreenreader/commands/vmenu-navigation/dec_level_vmenu.py:17 msgid "leave v menu submenu" msgstr "Выйти v Š¼ŠµŠ½ŃŽ ŠæŠ¾Š“Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/vmenu-navigation/exec_vmenu_entry.py:17 msgid "execute v menu entry" msgstr "Š’Ń‹ŠæŠ¾Š»Š½ŠøŃ‚ŃŒ ŠæŃƒŠ½ŠŗŃ‚ v Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/vmenu-navigation/inc_level_vmenu.py:17 msgid "enter v menu submenu" msgstr "войти в ŠæŠ¾Š“Š¼ŠµŠ½ŃŽ Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/vmenu-navigation/next_vmenu_entry.py:17 msgid "get next v menu entry" msgstr "ŠæŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ v" #: ../src/fenrirscreenreader/commands/vmenu-navigation/prev_vmenu_entry.py:17 msgid "get prev v menu entry" msgstr "ŠæŠ¾Š»ŃƒŃ‡ŠøŃ‚ŃŒ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠøŠ¹ ŠæŃƒŠ½ŠŗŃ‚ Š¼ŠµŠ½ŃŽ v" #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_a.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_b.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_c.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_d.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_e.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_f.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_g.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_h.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_i.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_j.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_k.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_l.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_m.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_n.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_o.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_p.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_q.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_r.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_s.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_t.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_u.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_v.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_w.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_x.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_y.py:17 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_z.py:17 msgid "search for an menu entry" msgstr "поиск ŠæŃƒŠ½ŠŗŃ‚а Š¼ŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_a.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_b.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_c.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_d.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_e.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_f.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_g.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_h.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_i.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_j.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_k.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_l.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_m.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_n.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_o.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_p.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_q.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_r.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_s.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_t.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_u.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_v.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_w.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_x.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_y.py:23 #: ../src/fenrirscreenreader/commands/vmenu-navigation/search_z.py:23 msgid "not found" msgstr "ŠŠµ найГено" #: ../src/fenrirscreenreader/core/attributeManager.py:168 msgid "bold" msgstr "Жирный" #: ../src/fenrirscreenreader/core/attributeManager.py:176 msgid "italic" msgstr "ŠšŃƒŃ€ŃŠøŠ²Š½Ń‹Š¹" #: ../src/fenrirscreenreader/core/attributeManager.py:184 msgid "underline" msgstr "ŠŸŠ¾Š“Ń‡ŠµŃ€ŠŗŠ½ŃƒŃ‚Ń‹Š¹" #: ../src/fenrirscreenreader/core/attributeManager.py:192 msgid "strikethrough" msgstr "Š—Š°Ń‡ŠµŃ€ŠŗŠ½ŃƒŃ‚Ń‹Š¹" #: ../src/fenrirscreenreader/core/attributeManager.py:200 msgid "reverse" msgstr "ŠžŠ±Ń€Š°Ń‚Š½Ń‹Š¹" #: ../src/fenrirscreenreader/core/attributeManager.py:208 msgid "blink" msgstr "ŠœŠµŃ€Ń†Š°Š½ŠøŠµ" #: ../src/fenrirscreenreader/core/attributeManager.py:225 #: ../src/fenrirscreenreader/core/attributeManager.py:232 msgid "default" msgstr "По ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽ" #: ../src/fenrirscreenreader/core/byteManager.py:103 #: ../src/fenrirscreenreader/core/byteManager.py:105 msgid "Sticky Mode On" msgstr "Режим Š·Š°Š»ŠøŠæŠ°Š½ŠøŃ Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½" #: ../src/fenrirscreenreader/core/byteManager.py:109 msgid "bypass" msgstr "" #: ../src/fenrirscreenreader/core/fenrirManager.py:26 msgid "Start Fenrir" msgstr "fenrir Š·Š°ŠæŃƒŃ‰ŠµŠ½" #: ../src/fenrirscreenreader/core/fenrirManager.py:234 msgid "Quit Fenrir" msgstr "Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ fenrir" #: ../src/fenrirscreenreader/core/helpManager.py:77 msgid "toggles the tutorial mode" msgstr "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ в режим Š¾Š±ŃƒŃ‡ŠµŠ½ŠøŃ" #: ../src/fenrirscreenreader/core/outputManager.py:297 msgid "speech temporary disabled" msgstr "Š ŠµŃ‡ŃŒ временно Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š°" #: ../src/fenrirscreenreader/core/quickMenuManager.py:124 msgid "setting invalid" msgstr "ŠŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Š°Ń настройка" #: ../src/fenrirscreenreader/core/quickMenuManager.py:131 msgid "setting value invalid" msgstr "Значение настройки Š½ŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Š¾Šµ" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "black" msgstr "черный" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "blue" msgstr "синий" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "cyan" msgstr "" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "green" msgstr "зеленый" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "red" msgstr "красный" #: ../src/fenrirscreenreader/core/screenDriver.py:12 msgid "white" msgstr "белый" #: ../src/fenrirscreenreader/core/screenDriver.py:12 #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Magenta" msgstr "ŠæŃƒŃ€ŠæŃƒŃ€Š½Ń‹Š¹" #: ../src/fenrirscreenreader/core/screenDriver.py:12 #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "brown/yellow" msgstr "коричневый/желтый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Black" msgstr "черный" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Blue" msgstr "синий" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Cyan" msgstr "" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Dark gray" msgstr "темно серый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Green" msgstr "зеленый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light blue" msgstr "голубой" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light cyan" msgstr "светло-голубой" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light gray" msgstr "светлосерый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light magenta" msgstr "Дветло-ŠæŃƒŃ€ŠæŃƒŃ€Š½Ń‹Š¹" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light red" msgstr "розовый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Light yellow" msgstr "светло желтый" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "Red" msgstr "красный" #: ../src/fenrirscreenreader/core/screenDriver.py:13 msgid "White" msgstr "белый" #: ../src/fenrirscreenreader/core/vmenuManager.py:66 #: ../src/fenrirscreenreader/core/vmenuManager.py:226 msgid "Menu" msgstr "ŠœŠµŠ½ŃŽ" #: ../src/fenrirscreenreader/core/vmenuManager.py:234 msgid "Action" msgstr "Действие" fenrir/pytest.ini000066400000000000000000000034741513650123000144000ustar00rootroot00000000000000[pytest] # Pytest configuration for Fenrir screen reader # Test discovery patterns python_files = test_*.py *_test.py python_classes = Test* python_functions = test_* # Test paths testpaths = tests # Minimum Python version minversion = 3.7 # Output options addopts = # Verbose output with test names -v # Show extra test summary info -ra # Enable strict markers (only registered markers allowed) --strict-markers # Show local variables in tracebacks --showlocals # Warnings configuration -W ignore::DeprecationWarning # Optional plugins (uncomment if installed): # --timeout=30 # Requires pytest-timeout # --cov-report=term-missing # Requires pytest-cov # -x # Stop on first failure # Register custom markers markers = unit: Unit tests (fast, no mocking) integration: Integration tests (require mocking) driver: Driver tests (require root access) slow: Tests that take more than 1 second remote: Tests for remote control functionality settings: Tests for settings and configuration commands: Tests for command system vmenu: Tests for VMenu system # Coverage configuration [coverage:run] source = src/fenrirscreenreader omit = */tests/* */vmenu-profiles/* */__pycache__/* */site-packages/* [coverage:report] # Fail if coverage falls below this percentage # fail_under = 70 exclude_lines = # Standard pragma pragma: no cover # Don't complain about missing debug code def __repr__ # Don't complain if tests don't hit defensive assertion code raise AssertionError raise NotImplementedError # Don't complain about abstract methods @abstractmethod # Don't complain about initialization if __name__ == .__main__.: [coverage:html] directory = htmlcov fenrir/requirements.txt000066400000000000000000000001271513650123000156230ustar00rootroot00000000000000daemonize dbus-python evdev pexpect pyenchant pyperclip pyte pyudev pyxdg setproctitle fenrir/setup.py000077500000000000000000000110131513650123000140500ustar00rootroot00000000000000#!/usr/bin/env python3 import os, glob, sys import os.path from shutil import copyfile from setuptools import find_namespace_packages from setuptools import setup # handle flags for package manager like aurman and pacaur. # Allow both environment variable and command line flag forceSettingsFlag = ( "--force-settings" in sys.argv or os.environ.get('FENRIR_FORCE_SETTINGS') == '1' ) if "--force-settings" in sys.argv: sys.argv.remove("--force-settings") dataFiles = [] # Handle locale files localeFiles = glob.glob('locale/*/LC_MESSAGES/*.mo') for localeFile in localeFiles: lang = localeFile.split(os.sep)[1] destDir = f'/usr/share/locale/{lang}/LC_MESSAGES' dataFiles.append((destDir, [localeFile])) # Handle other configuration files directories = glob.glob('config/*') for directory in directories: files = glob.glob(directory+'/*') destDir = '' if 'config/punctuation' in directory : destDir = '/etc/fenrirscreenreader/punctuation' elif 'config/keyboard' in directory: destDir = '/etc/fenrirscreenreader/keyboard' elif 'config/settings' in directory: destDir = '/etc/fenrirscreenreader/settings' if not forceSettingsFlag: try: files = [f for f in files if not f.endswith('settings.conf')] except Exception as e: pass elif 'config/scripts' in directory: destDir = '/usr/share/fenrirscreenreader/scripts' if destDir != '': dataFiles.append((destDir, files)) files = glob.glob('config/sound/default/*') destDir = '/usr/share/sounds/fenrirscreenreader/default' dataFiles.append((destDir, files)) files = glob.glob('config/sound//template/*') destDir = '/usr/share/sounds/fenrirscreenreader/template' dataFiles.append((destDir, files)) files = glob.glob('tools/*') dataFiles.append(('/usr/share/fenrirscreenreader/tools', files)) dataFiles.append(('/usr/share/man/man1', ['docs/fenrir.1'])) def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() setup( # Application name: name="fenrir-screenreader", # description description="A TTY Screen Reader for Linux.", long_description=read('README.md'), long_description_content_type="text/markdown", keywords=['screenreader', 'a11y', 'accessibility', 'terminal', 'TTY', 'console'], license="License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", url="https://git.stormux.org/storm/fenrir/", classifiers=[ "Programming Language :: Python", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Development Status :: 5 - Production/Stable", "Topic :: Multimedia :: Sound/Audio :: Speech", "Environment :: Console", ], # Application author details: author="Storm Dragon, Jeremiah, Chrys and others", author_email="storm_dragon@stormux.org", # Packages package_dir={'': 'src'}, packages=find_namespace_packages( where='src', include=['fenrirscreenreader*'] ), scripts=['src/fenrir'], # Include additional files into the package include_package_data=True, zip_safe=False, data_files=dataFiles, # Dependent packages (distributions) python_requires='>=3.6', install_requires=[ "evdev>=1.1.2", "daemonize>=2.5.0", "dbus-python>=1.2.8", "pyperclip", "pyudev>=0.21.0", "setuptools", "setproctitle", "pexpect", "pyte>=0.7.0", ], ) if not forceSettingsFlag: print('') # create settings file from example if not exist if not os.path.isfile('/etc/fenrirscreenreader/settings/settings.conf'): try: copyfile('config/fenrirscreenreader/settings/settings.conf', '/etc/fenrirscreenreader/settings/settings.conf') print('create settings file in /etc/fenrirscreenreader/settings/settings.conf') except OSError as e: print(f"Could not copy settings file to destination: {e}") else: print('settings.conf file found. It is not overwritten automatical') print('') print('To have Fenrir start at boot:') print('sudo systemctl enable fenrir') print('Pulseaudio users may want to run:') print('/usr/share/fenrirscreenreader/tools/configure_pulse.sh') print('once as their user account and once as root to configure Pulseaudio.') print('Please install the following packages manually:') print('- Speech-dispatcher: for the default speech driver') print('- Espeak: as basic TTS engine') print('- sox: is a player for the generic sound driver') fenrir/src/000077500000000000000000000000001513650123000131265ustar00rootroot00000000000000fenrir/src/__init__.py000077500000000000000000000000001513650123000152300ustar00rootroot00000000000000fenrir/src/fenrir000077500000000000000000000111521513650123000143410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import argparse import inspect import os import sys from daemonize import Daemonize from fenrirscreenreader import fenrirVersion from fenrirscreenreader.core import fenrirManager # Get the fenrir installation path fenrirPath = os.path.dirname(os.path.realpath( os.path.abspath(inspect.getfile(inspect.currentframe())))) if fenrirPath not in sys.path: sys.path.append(fenrirPath) def create_argument_parser(): """Create and return the argument parser for Fenrir""" argumentParser = argparse.ArgumentParser( description="Fenrir - A console screen reader for Linux", formatter_class=argparse.RawDescriptionHelpFormatter ) argumentParser.add_argument( '-v', '--version', action='version', version=f'Fenrir screen reader version {fenrirVersion.version}-{fenrirVersion.code_name}', help='Show version information and exit' ) argumentParser.add_argument( '-f', '--foreground', action='store_true', help='Run Fenrir in the foreground (default: run as daemon)' ) argumentParser.add_argument( '-s', '--setting', metavar='SETTING-FILE', default='/etc/fenrir/settings/settings.conf', help='Path to custom settings file' ) argumentParser.add_argument( '-o', '--options', metavar='SECTION#SETTING=VALUE;..', default='', help='Override settings file options. Format: SECTION#SETTING=VALUE;... (case sensitive)' ) argumentParser.add_argument( '-d', '--debug', action='store_true', help='Enable debug mode' ) argumentParser.add_argument( '-p', '--print', action='store_true', help='Print debug messages to screen' ) argumentParser.add_argument( '-e', '--emulated-pty', action='store_true', help='Use PTY emulation with escape sequences for input (enables desktop/X/Wayland usage)' ) argumentParser.add_argument( '-E', '--emulated-evdev', action='store_true', help='Use PTY emulation with evdev for input (single instance)' ) argumentParser.add_argument( '-F', '--force-all-screens', action='store_true', help='Force Fenrir to respond on all screens, ignoring ignoreScreen setting') argumentParser.add_argument( '-i', '-I', '--ignore-screen', metavar='SCREEN', action='append', help='Ignore specific screen(s). Can be used multiple times. Same as ignoreScreen setting.' ) return argumentParser def validate_arguments(cliArgs): """Validate command line arguments""" if cliArgs.options: for option in cliArgs.options.split(';'): if option and ('#' not in option or '=' not in option): return False, f"Invalid option format: {option}\nExpected format: SECTION#SETTING=VALUE" if cliArgs.emulated_pty and cliArgs.emulated_evdev: return False, "Cannot use both --emulated-pty and --emulated-evdev simultaneously" return True, None def run_fenrir(): """Main function that runs Fenrir""" fenrirApp = None try: fenrirApp = fenrirManager.FenrirManager(cliArgs) fenrirApp.proceed() except Exception as e: print(f"Error starting Fenrir: {e}", file=sys.stderr) if fenrirApp and hasattr(fenrirApp, 'cleanup_on_error'): try: fenrirApp.cleanup_on_error() except Exception as cleanup_error: print( f"Error during cleanup: {cleanup_error}", file=sys.stderr) sys.exit(1) finally: if fenrirApp: del fenrirApp # Clean up PID file if it exists pidFile = "/run/fenrir.pid" if os.path.exists(pidFile): try: os.remove(pidFile) except Exception: pass def main(): global cliArgs argumentParser = create_argument_parser() cliArgs = argumentParser.parse_args() # Validate arguments isValid, errorMsg = validate_arguments(cliArgs) if not isValid: argumentParser.error(errorMsg) sys.exit(1) if cliArgs.foreground or cliArgs.emulated_pty: # Run directly in foreground run_fenrir() else: # Run as daemon pidFile = "/run/fenrir.pid" daemonProcess = Daemonize( app="fenrir", pid=pidFile, action=run_fenrir, chdir=fenrirPath ) daemonProcess.start() if __name__ == "__main__": main() fenrir/src/fenrirscreenreader/000077500000000000000000000000001513650123000167765ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/__init__.py000077500000000000000000000000001513650123000211000ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/000077500000000000000000000000001513650123000205775ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/__init__.py000077500000000000000000000000001513650123000227010ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/command_template.py000066400000000000000000000007421513650123000244650ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): pass def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/000077500000000000000000000000001513650123000224005ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/commands/00_init_commands.py000066400000000000000000000015341513650123000261000ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # this command is just to initialize stuff. # like init index lists in MemoryManager # it is not useful to execute it from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment # clipboard self.env["runtime"]["MemoryManager"].add_index_list( "clipboardHistory", self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "number_of_clipboards" ), ) def shutdown(self): pass def get_description(self): return "No description found" def run(self): pass def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/__init__.py000077500000000000000000000000001513650123000245020ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/commands/add_word_to_spell_check.py000066400000000000000000000051351513650123000275770ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils initialized = False try: import enchant initialized = True except Exception as e: pass class command: def __init__(self): self.language = "" self.spellChecker = None def initialize(self, environment): self.env = environment self.update_spell_language() def shutdown(self): pass def get_description(self): return _("adds the current word to the exceptions dictionary") def update_spell_language(self): self.spellChecker = enchant.Dict( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) ) self.language = self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) def run(self): if not initialized: return if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) != self.language ): try: self.update_spell_language() except Exception as e: return cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() # get the word new_content = self.env["screen"]["new_content_text"].split("\n")[ cursor_pos["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word(cursor_pos["x"], 0, new_content) ) curr_word = curr_word.strip( string.whitespace + r'!"#$%&\()*+,-./:;<=Ƃ?@[\\]^_{|}~' ) if curr_word != "": if self.spellChecker.is_added(curr_word): self.env["runtime"]["OutputManager"].present_text( _("{0} is already in dictionary").format( curr_word, ), sound_icon="Cancel", interrupt=True, ) else: self.spellChecker.add(curr_word) self.env["runtime"]["OutputManager"].present_text( _("{0} added to dictionary").format( curr_word, ), sound_icon="Accept", interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/adjustment_base.py000066400000000000000000000067611513650123000261340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import math from fenrirscreenreader.core.i18n import _ class adjustment_command: """Base class for speech and sound adjustment commands""" def __init__(self, section, setting, direction, step=0.1): self.section = section # 'speech' or 'sound' self.setting = setting # 'rate', 'pitch', 'volume' self.direction = direction # 'inc' or 'dec' self.step = step def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): action = "Increase" if self.direction == "inc" else "Decrease" if self.section == "speech": return _(f"{action} the speech {self.setting}") else: return _(f"{action} the {self.section} {self.setting}") def run(self): if self.section == "sound" and self.setting == "volume": # Sound volume uses different method self._adjust_sound_volume() else: # Speech rate, pitch, volume use standard method self._adjust_speech_setting() def _adjust_speech_setting(self): """Adjust speech settings (rate, pitch, volume)""" value = self.env["runtime"]["SettingsManager"].get_setting_as_float( self.section, self.setting ) # Apply adjustment with rounding if self.direction == "inc": value = round((math.ceil(10 * value) / 10) + self.step, 2) if value > 1.0: value = 1.0 else: # dec value = round((math.ceil(10 * value) / 10) - self.step, 2) if value < 0.0: value = 0.0 # Set the new value self.env["runtime"]["SettingsManager"].set_setting( self.section, self.setting, str(value) ) # Present feedback percentage = int(value * 100) if self.section == "speech": feedback = _("{0} percent speech {1}").format( percentage, self.setting ) else: feedback = _("{0} percent {1} {2}").format( percentage, self.section, self.setting ) self.env["runtime"]["OutputManager"].present_text( feedback, sound_icon="", interrupt=True ) def _adjust_sound_volume(self): """Adjust sound volume using same logic as speech""" value = self.env["runtime"]["SettingsManager"].get_setting_as_float( self.section, self.setting ) # Sound volume uses same math as speech settings if self.direction == "inc": value = round((math.ceil(10 * value) / 10) + self.step, 2) if value > 1.0: value = 1.0 else: # dec value = round((math.ceil(10 * value) / 10) - self.step, 2) if value < 0.0: value = 0.0 # Set the new value self.env["runtime"]["SettingsManager"].set_setting( self.section, self.setting, str(value) ) # Present feedback with appropriate sound icon percentage = int(value * 100) sound_icon = "SoundOn" if self.direction == "inc" else "SoundOff" feedback = _("{0} percent sound volume").format(percentage) self.env["runtime"]["OutputManager"].present_text( feedback, sound_icon=sound_icon, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/announce_fenrir_version.py000066400000000000000000000017051513650123000276750ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader import fenrirVersion from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Present the version of Fenrir currently in use.") def run(self): try: self.env["runtime"]["OutputManager"].present_text( f"Fenrir screen reader version " f"{fenrirVersion.version}-{fenrirVersion.code_name}", interrupt=True, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( _("Version information is unavailable."), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/apply_tested_voice.py000066400000000000000000000071011513650123000266330ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Apply the last tested voice from safe voice browser" def run(self): try: # Check if we have a tested voice if ( "commandBuffer" not in self.env or "lastTestedModule" not in self.env["commandBuffer"] or "lastTestedVoice" not in self.env["commandBuffer"] ): self.env["runtime"]["OutputManager"].present_text( "No voice has been tested yet", interrupt=True ) self.env["runtime"]["OutputManager"].present_text( "Use voice browser first", interrupt=True ) return module = self.env["commandBuffer"]["lastTestedModule"] voice = self.env["commandBuffer"]["lastTestedVoice"] self.env["runtime"]["OutputManager"].present_text( f"Applying {voice} from {module}", interrupt=True ) # Apply to runtime settings only (temporary until saved) SettingsManager = self.env["runtime"]["SettingsManager"] # Store old values for safety old_driver = SettingsManager.get_setting("speech", "driver") old_module = SettingsManager.get_setting("speech", "module") old_voice = SettingsManager.get_setting("speech", "voice") try: # Apply new settings to runtime only (use set_setting to update # settingArgDict) SettingsManager.set_setting( "speech", "driver", "speechdDriver" ) SettingsManager.set_setting("speech", "module", module) SettingsManager.set_setting("speech", "voice", voice) # Apply to speech driver instance directly if "SpeechDriver" in self.env["runtime"]: SpeechDriver = self.env["runtime"]["SpeechDriver"] # Set the module and voice on the driver instance SpeechDriver.set_module(module) SpeechDriver.set_voice(voice) self.env["runtime"]["OutputManager"].present_text( "Voice applied successfully!", interrupt=True ) self.env["runtime"]["OutputManager"].present_text( "Use save settings to make permanent", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Accept") except Exception as e: # Revert on failure SettingsManager.set_setting("speech", "driver", old_driver) SettingsManager.set_setting("speech", "module", old_module) SettingsManager.set_setting("speech", "voice", old_voice) self.env["runtime"]["OutputManager"].present_text( f"Failed to apply voice, reverted: {str(e)}", interrupt=True, ) self.env["runtime"]["OutputManager"].play_sound("Error") except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Apply voice error: {str(e)}", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Error") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/attribute_cursor.py000066400000000000000000000024231513650123000263530ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import screen_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Reads attributes of current cursor position") def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() try: attributes = self.env["runtime"][ "AttributeManager" ].get_attribute_by_xy(cursor_pos["x"], cursor_pos["y"]) except Exception as e: print(e) attribute_format_string = self.env["runtime"][ "SettingsManager" ].get_setting("general", "attribute_format_string") attribute_format_string = self.env["runtime"][ "AttributeManager" ].format_attributes(attributes, attribute_format_string) self.env["runtime"]["OutputManager"].present_text( attribute_format_string, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/bookmark_1.py000066400000000000000000000010701513650123000247750ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(1, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_10.py000066400000000000000000000010711513650123000250560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(10, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_2.py000066400000000000000000000010701513650123000247760ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(2, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_3.py000066400000000000000000000010701513650123000247770ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(3, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_4.py000066400000000000000000000010701513650123000250000ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(4, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_5.py000066400000000000000000000010701513650123000250010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(5, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_6.py000066400000000000000000000010701513650123000250020ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(6, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_7.py000066400000000000000000000010701513650123000250030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(7, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_8.py000066400000000000000000000010701513650123000250040ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(8, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_9.py000066400000000000000000000010701513650123000250050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(9, "read") fenrir/src/fenrirscreenreader/commands/commands/bookmark_base.py000066400000000000000000000155711513650123000255620ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils from fenrirscreenreader.utils import mark_utils class bookmark_command: """Base class for bookmark operations - read, set, clear""" def __init__(self, bookmark_id, action="read"): self.ID = str(bookmark_id) self.action = action def initialize(self, environment): self.env = environment # Always initialize bookmark structure - all commands need this if self.ID not in self.env["commandBuffer"]["bookMarks"]: self.env["commandBuffer"]["bookMarks"][self.ID] = {} def shutdown(self): pass def get_description(self): if self.action == "read": return _("read Bookmark {0}").format(self.ID) elif self.action == "set": return _("set Bookmark {0}").format(self.ID) elif self.action == "clear": return _("remove Bookmark {0}").format(self.ID) return f"{self.action} Bookmark {self.ID}" def run(self): if self.action == "read": self._read_bookmark() elif self.action == "set": self._set_bookmark() elif self.action == "clear": self._clear_bookmark() def _read_bookmark(self): curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() if not self.env["commandBuffer"]["bookMarks"][self.ID]: self.env["runtime"]["OutputManager"].present_text( "Bookmark {0} not set".format(self.ID), interrupt=True ) return if curr_app not in self.env["commandBuffer"]["bookMarks"][self.ID]: self.env["runtime"]["OutputManager"].present_text( "Bookmark for application {0} not set".format(curr_app), interrupt=True, ) return if not self.env["commandBuffer"]["bookMarks"][self.ID][curr_app].get( "1" ): self.env["runtime"]["OutputManager"].present_text( "Bookmark for application {0} not set".format(curr_app), interrupt=True, ) return # Get bookmarked text marked = "" start_mark = self.env["commandBuffer"]["bookMarks"][self.ID][curr_app][ "1" ].copy() if self.env["commandBuffer"]["bookMarks"][self.ID][curr_app]["2"]: end_mark = self.env["commandBuffer"]["bookMarks"][self.ID][ curr_app ]["2"].copy() marked = mark_utils.get_text_between_marks( start_mark, end_mark, self.env["screen"]["new_content_text"] ) else: x, y, marked = line_utils.get_current_line( start_mark["x"], start_mark["y"], self.env["screen"]["new_content_text"], ) if marked.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( marked, interrupt=True ) def _set_bookmark(self): if not self.env["commandBuffer"]["Marks"]["1"]: self.env["runtime"]["OutputManager"].present_text( _("No mark found"), interrupt=True ) return curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() self.env["commandBuffer"]["bookMarks"][self.ID][curr_app] = {} bookmarks = self.env["commandBuffer"]["bookMarks"][self.ID][curr_app] bookmarks["1"] = self.env["commandBuffer"]["Marks"]["1"].copy() if self.env["commandBuffer"]["Marks"]["2"]: bookmarks["2"] = self.env["commandBuffer"]["Marks"]["2"].copy() else: bookmarks["2"] = None self.env["runtime"]["OutputManager"].present_text( _("Bookmark {0} set for application {1}").format( self.ID, curr_app ), interrupt=True, ) # Clear marks after setting bookmark self.env["commandBuffer"]["Marks"]["1"] = None self.env["commandBuffer"]["Marks"]["2"] = None def _clear_bookmark(self): curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() bookmarks = self.env["commandBuffer"]["bookMarks"] if self.ID in bookmarks and curr_app in bookmarks[self.ID]: del self.env["commandBuffer"]["bookMarks"][self.ID][curr_app] self.env["runtime"]["OutputManager"].present_text( _("Bookmark {0} removed for application {1}").format( self.ID, curr_app ), interrupt=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("Bookmark {0} not set for application {1}").format( self.ID, curr_app ), interrupt=True, ) def set_callback(self, callback): pass # Factory function to create bookmark command instances def create_bookmark_commands(): """Create all bookmark command instances""" commands = {} # Create read bookmark commands (bookmark_1 through bookmark_10) for i in range(1, 11): commands[f"bookmark_{i}"] = lambda i=i: bookmark_command(i, "read") # Create set bookmark commands (set_bookmark_1 through set_bookmark_10) for i in range(1, 11): commands[f"set_bookmark_{i}"] = lambda i=i: bookmark_command(i, "set") # Create clear bookmark commands (clear_bookmark_1 through # clear_bookmark_10) for i in range(1, 11): commands[f"clear_bookmark_{i}"] = lambda i=i: bookmark_command( i, "clear" ) return commands # For backwards compatibility, provide individual command classes # This allows the existing command loading system to work unchanged def _make_command_class(bookmark_id, action): """Create a command class for a specific bookmark and action""" class command(bookmark_command): def __init__(self): super().__init__(bookmark_id, action) return command # Generate individual command classes for each bookmark operation # These will be used by the existing command loading system # Read bookmarks (bookmark_1.py style) for i in range(1, 11): globals()[f"bookmark_{i}_command"] = _make_command_class(i, "read") # Set bookmarks (set_bookmark_1.py style) for i in range(1, 11): globals()[f"set_bookmark_{i}_command"] = _make_command_class(i, "set") # Clear bookmarks (clear_bookmark_1.py style) for i in range(1, 11): globals()[f"clear_bookmark_{i}_command"] = _make_command_class(i, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_1.py000066400000000000000000000010711513650123000261440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(1, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_10.py000066400000000000000000000010721513650123000262250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(10, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_2.py000066400000000000000000000010711513650123000261450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(2, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_3.py000066400000000000000000000010711513650123000261460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(3, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_4.py000066400000000000000000000010711513650123000261470ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(4, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_5.py000066400000000000000000000010711513650123000261500ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(5, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_6.py000066400000000000000000000010711513650123000261510ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(6, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_7.py000066400000000000000000000010711513650123000261520ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(7, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_8.py000066400000000000000000000010711513650123000261530ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(8, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_bookmark_9.py000066400000000000000000000010711513650123000261540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(9, "clear") fenrir/src/fenrirscreenreader/commands/commands/clear_clipboard.py000066400000000000000000000013421513650123000260570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("clears the currently selected clipboard") def run(self): self.env["runtime"]["MemoryManager"].clear_current_index_list( "clipboardHistory" ) self.env["runtime"]["OutputManager"].present_text( _("clipboard cleared"), interrupt=True ) return def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/clear_window_application.py000066400000000000000000000020431513650123000300110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Turn off window mode for application") def run(self): if self.env["runtime"]["CursorManager"].clear_window_for_application(): curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() self.env["runtime"]["OutputManager"].present_text( _("Window Mode off for application {0}").format( curr_app, ), interrupt=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("Not in window Mode"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/copy_last_echo_to_clipboard.py000066400000000000000000000016731513650123000304750ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("copies last presented text to the clipboard") def run(self): last_echo = self.env["runtime"]["OutputManager"].get_last_echo() if last_echo.rstrip() != "": last_echo = last_echo.rstrip() self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", last_echo ) self.env["runtime"]["OutputManager"].present_text( last_echo, sound_icon="CopyToClipboard", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/copy_marked_to_clipboard.py000066400000000000000000000052371513650123000277770ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("copies marked text to the currently selected clipboard") def get_text_from_screen(self, start_mark, end_mark): screen_content = self.env["screen"]["new_content_text"] screen_lines = screen_content.split("\n") start_y = min(start_mark["y"], len(screen_lines) - 1) end_y = min(end_mark["y"], len(screen_lines) - 1) # If marks are on the same line if start_y == end_y: line = screen_lines[start_y] start_x = min(start_mark["x"], len(line)) end_x = min(end_mark["x"], len(line)) + 1 return line[start_x:end_x] # Handle multi-line selection result = [] # First line (from start mark to end of line) first_line = screen_lines[start_y] start_x = min(start_mark["x"], len(first_line)) result.append(first_line[start_x:].rstrip()) # Middle lines (complete lines) for lineNum in range(start_y + 1, end_y): result.append(screen_lines[lineNum].rstrip()) # Last line (from start to end mark) if end_y > start_y: last_line = screen_lines[end_y] end_x = min(end_mark["x"], len(last_line)) + 1 result.append(last_line[:end_x].rstrip()) return "\n".join(result) def run(self): if not self.env["commandBuffer"]["Marks"]["1"]: self.env["runtime"]["OutputManager"].present_text( _("One or two marks are needed"), interrupt=True ) return if not self.env["commandBuffer"]["Marks"]["2"]: self.env["runtime"]["CursorManager"].set_mark() # use the last first and the last setted mark as range start_mark = self.env["commandBuffer"]["Marks"]["1"].copy() end_mark = self.env["commandBuffer"]["Marks"]["2"].copy() # Replace mark_utils.get_text_between_marks with our new method marked = self.get_text_from_screen(start_mark, end_mark) self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", marked ) # reset marks self.env["runtime"]["CursorManager"].clear_marks() self.env["runtime"]["OutputManager"].present_text( marked, sound_icon="CopyToClipboard", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/curr_clipboard.py000066400000000000000000000017441513650123000257520ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("speaks the contents of the currently selected clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") self.env["runtime"]["OutputManager"].present_text( clipboard, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/curr_screen.py000066400000000000000000000015451513650123000252710ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("reads the contents of the current screen") def run(self): if self.env["screen"]["new_content_text"].isspace(): self.env["runtime"]["OutputManager"].present_text( _("screen is empty"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( self.env["screen"]["new_content_text"], interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/curr_screen_after_cursor.py000066400000000000000000000022141513650123000300410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("reads from the cursor to the bottom of the screen") def run(self): # Prefer review cursor over text cursor cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() text_after_cursor = mark_utils.get_text_after_mark( cursor_pos, self.env["screen"]["new_content_text"] ) if text_after_cursor.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( text_after_cursor, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/curr_screen_before_cursor.py000066400000000000000000000023611513650123000302050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Reads from the top of the screen to the cursor position") def run(self): # Prefer review cursor over text cursor if self.env["screen"]["newCursorReview"]: cursor_pos = self.env["screen"]["newCursorReview"].copy() else: cursor_pos = self.env["screen"]["new_cursor"].copy() text_before_cursor = mark_utils.get_text_before_mark( cursor_pos, self.env["screen"]["new_content_text"] ) if text_before_cursor.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( text_before_cursor, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/current_quick_menu_entry.py000066400000000000000000000014671513650123000301050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current quick menu entry") def run(self): menu = "" value = "" menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/current_quick_menu_value.py000066400000000000000000000012231513650123000300460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current quick menu value") def run(self): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cursor_column.py000066400000000000000000000015731513650123000256520ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Column number for cursor") def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["OutputManager"].present_text( str(cursor_pos["x"] + 1), interrupt=True ) self.env["runtime"]["OutputManager"].announce_active_cursor() self.env["runtime"]["OutputManager"].present_text( " column number", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cursor_lineno.py000066400000000000000000000015671513650123000256440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Line number for cursor") def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["OutputManager"].present_text( str(cursor_pos["y"] + 1), interrupt=True ) self.env["runtime"]["OutputManager"].announce_active_cursor() self.env["runtime"]["OutputManager"].present_text( " line number", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cursor_position.py000066400000000000000000000016571513650123000262240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("displays the position of the review cursor") def run(self): # Prefer review cursor over text cursor cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["OutputManager"].present_text( _("line {0}, column {1}, Terminal {2}").format( cursor_pos["y"] + 1, cursor_pos["x"] + 1, self.env["screen"]["newTTY"], ), interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cursor_read_line_to_cursor.py000066400000000000000000000024431513650123000303730ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "read line to cursor pos, use review cursor if you are in review mode, " "otherwhise use text cursor" ) def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() x, y, curr_line = line_utils.get_current_line( cursor_pos["x"], cursor_pos["y"], self.env["screen"]["new_content_text"], ) if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( curr_line[: cursor_pos["x"]], interrupt=True ) self.env["runtime"]["OutputManager"].announce_active_cursor() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cursor_read_to_end_of_line.py000066400000000000000000000024371513650123000303130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "read to end of line, use review cursor if you are in review mode, " "otherwhise use text cursor" ) def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() x, y, curr_line = line_utils.get_current_line( cursor_pos["x"], cursor_pos["y"], self.env["screen"]["new_content_text"], ) if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( curr_line[cursor_pos["x"] :], interrupt=True ) self.env["runtime"]["OutputManager"].announce_active_cursor() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cycle_key_echo.py000066400000000000000000000037461513650123000257310ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Cycle through key echo modes: character, word, off") def run(self): settings_manager = self.env["runtime"]["SettingsManager"] output_manager = self.env["runtime"]["OutputManager"] # Get current settings char_echo_mode = settings_manager.get_setting("keyboard", "char_echo_mode") word_echo = settings_manager.get_setting_as_bool("keyboard", "word_echo") # Determine current state and cycle to next # States: character (char=1, word=False) -> word (char=0, word=True) -> off (char=0, word=False) if char_echo_mode == "1" and not word_echo: # Currently character echo, switch to word echo settings_manager.set_setting("keyboard", "char_echo_mode", "0") settings_manager.set_setting("keyboard", "word_echo", "True") output_manager.present_text( _("Echo by word"), interrupt=True ) elif word_echo: # Currently word echo, switch to off settings_manager.set_setting("keyboard", "char_echo_mode", "0") settings_manager.set_setting("keyboard", "word_echo", "False") output_manager.present_text( _("Echo off"), interrupt=True ) else: # Currently off (or caps mode), switch to character echo settings_manager.set_setting("keyboard", "char_echo_mode", "1") settings_manager.set_setting("keyboard", "word_echo", "False") output_manager.present_text( _("Echo by character"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/cycle_keyboard_layout.py000066400000000000000000000063521513650123000273340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("cycles between available keyboard layouts") def get_available_layouts(self): """Get list of available keyboard layout files""" layouts = [] # Check standard locations for keyboard layouts settings_root = "/etc/fenrirscreenreader/" if not os.path.exists(settings_root): # Fallback to source directory import fenrirscreenreader fenrir_path = os.path.dirname(fenrirscreenreader.__file__) settings_root = fenrir_path + "/../../config/" keyboard_path = settings_root + "keyboard/" if os.path.exists(keyboard_path): for file in os.listdir(keyboard_path): if ( file.endswith(".conf") and not file.startswith("__") and not file.lower().startswith("pty") ): layout_name = file.replace(".conf", "") if layout_name not in layouts: layouts.append(layout_name) # Ensure we have at least basic layouts if not layouts: layouts = ["desktop", "laptop"] else: layouts.sort() return layouts def run(self): current_layout = self.env["runtime"]["SettingsManager"].get_setting( "keyboard", "keyboard_layout" ) # Extract layout name from full path if needed if "/" in current_layout: current_layout = os.path.basename(current_layout).replace( ".conf", "" ) # Get available layouts available_layouts = self.get_available_layouts() # Find next layout in cycle try: current_index = available_layouts.index(current_layout) next_index = (current_index + 1) % len(available_layouts) except ValueError: # If current layout not found, start from beginning next_index = 0 next_layout = available_layouts[next_index] # Update setting and reload shortcuts self.env["runtime"]["SettingsManager"].set_setting( "keyboard", "keyboard_layout", next_layout ) # Reload shortcuts with new layout try: self.env["runtime"]["InputManager"].reload_shortcuts() self.env["runtime"]["OutputManager"].present_text( _("Switched to {} keyboard layout").format(next_layout), interrupt=True, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Error reloading shortcuts: " + str(e), debug.DebugLevel.ERROR ) self.env["runtime"]["OutputManager"].present_text( _("Error switching keyboard layout"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/date.py000066400000000000000000000017311513650123000236710ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("presents the date") def run(self): date_format = self.env["runtime"]["SettingsManager"].get_setting( "general", "date_format" ) # get the time formatted date_string = datetime.datetime.strftime( datetime.datetime.now(), date_format ) # present the time via speak and braile, there is no soundicon, # interrupt the current speech self.env["runtime"]["OutputManager"].present_text( date_string, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/dec_sound_volume.py000066400000000000000000000011211513650123000262770ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("sound", "volume", "dec") fenrir/src/fenrirscreenreader/commands/commands/dec_speech_pitch.py000066400000000000000000000011211513650123000262160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "pitch", "dec") fenrir/src/fenrirscreenreader/commands/commands/dec_speech_rate.py000066400000000000000000000011201513650123000260410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "rate", "dec") fenrir/src/fenrirscreenreader/commands/commands/dec_speech_volume.py000066400000000000000000000011221513650123000264170ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "volume", "dec") fenrir/src/fenrirscreenreader/commands/commands/exit_review.py000066400000000000000000000015611513650123000253070ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("exits review mode") def run(self): if not self.env["runtime"]["CursorManager"].is_review_mode(): self.env["runtime"]["OutputManager"].present_text( _("Not in Review Mode"), interrupt=True ) return self.env["runtime"]["CursorManager"].clear_review_cursor() self.env["runtime"]["OutputManager"].present_text( _("Exiting Review Mode"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/export_clipboard_to_file.py000066400000000000000000000041201513650123000300100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment, script_path=""): self.env = environment def shutdown(self): pass def get_description(self): return _("export the current fenrir clipboard to a file") def run(self): clipboard_file_path = self.env["runtime"][ "SettingsManager" ].get_setting("general", "clipboard_export_path") clipboard_file_path = clipboard_file_path.replace( "$user", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$USER", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$User", self.env["general"]["curr_user"] ) clipboard_file = open(clipboard_file_path, "w") try: if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") clipboard_file.write(clipboard) clipboard_file.close() os.chmod(clipboard_file_path, 0o644) self.env["runtime"]["OutputManager"].present_text( _("clipboard exported to file"), interrupt=True ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "export_clipboard_to_file:run: Filepath:" + clipboard_file + " trace:" + str(e), debug.DebugLevel.ERROR, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/export_clipboard_to_x.py000066400000000000000000000057031513650123000273500ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import _thread import importlib import os import pyperclip from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment, script_path=""): self.env = environment self.script_path = script_path def shutdown(self): pass def get_description(self): return _("Export current fenrir clipboard to X or GUI clipboard") def run(self): _thread.start_new_thread(self._thread_run, ()) def _thread_run(self): try: # Check if clipboard is empty if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return # Get current clipboard content clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") # Remember original display environment variable if it exists original_display = os.environ.get("DISPLAY", "") success = False # Try different display options for i in range(10): display = f":{i}" try: # Set display environment variable os.environ["DISPLAY"] = display # Attempt to set clipboard content # Weird workaround for some distros importlib.reload(pyperclip) pyperclip.copy(clipboard) # If we get here without exception, we found a working # display success = True break except Exception: # Failed for this display, try next one continue # Restore original display setting if original_display: os.environ["DISPLAY"] = original_display else: os.environ.pop("DISPLAY", None) # Notify the user of the result if success: self.env["runtime"]["OutputManager"].present_text( _("exported to the X session."), interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _( "failed to export to X clipboard. No available display " "found." ), interrupt=True, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( str(e), sound_icon="", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/first_clipboard.py000066400000000000000000000020571513650123000261240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("selects the first clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return self.env["runtime"]["MemoryManager"].set_first_index( "clipboardHistory" ) clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") self.env["runtime"]["OutputManager"].present_text( clipboard, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/forward_keypress.py000066400000000000000000000012501513650123000263410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("sends the following keypress to the terminal or application") def run(self): self.env["input"]["key_forward"] = 3 self.env["runtime"]["OutputManager"].present_text( _("Forward next keypress"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/import_clipboard_from_file.py000066400000000000000000000034211513650123000303250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("imports text from clipboard file to the clipboard") def run(self): clipboard_file_path = self.env["runtime"][ "SettingsManager" ].get_setting("general", "clipboard_export_path") clipboard_file_path = clipboard_file_path.replace( "$user", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$USER", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$User", self.env["general"]["curr_user"] ) if not os.path.exists(clipboard_file_path): self.env["runtime"]["OutputManager"].present_text( _("File does not exist"), sound_icon="", interrupt=True ) return clipboard_file = open(clipboard_file_path, "r") imported = clipboard_file.read() clipboard_file.close() self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", imported ) self.env["runtime"]["OutputManager"].present_text( "Import to Clipboard", sound_icon="CopyToClipboard", interrupt=True ) self.env["runtime"]["OutputManager"].present_text( imported, sound_icon="", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/import_clipboard_from_x.py000066400000000000000000000055031513650123000276600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import _thread import importlib import os import pyperclip from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment, script_path=""): self.env = environment self.script_path = script_path def shutdown(self): pass def get_description(self): return _("imports the graphical clipboard to Fenrir's clipboard") def run(self): _thread.start_new_thread(self._thread_run, ()) def _thread_run(self): try: # Remember original display environment variable if it exists original_display = os.environ.get("DISPLAY", "") clipboard_content = None # Try different display options for i in range(10): display = f":{i}" try: # Set display environment variable os.environ["DISPLAY"] = display # Attempt to get clipboard content # Weird workaround for some distros importlib.reload(pyperclip) clipboard_content = pyperclip.paste() # If we get here without exception, we found a working # display if clipboard_content: break except Exception: # Failed for this display, try next one continue # Restore original display setting if original_display: os.environ["DISPLAY"] = original_display else: os.environ.pop("DISPLAY", None) # Process the clipboard content if we found any if clipboard_content and isinstance(clipboard_content, str): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", clipboard_content ) self.env["runtime"]["OutputManager"].present_text( "Import to Clipboard", sound_icon="CopyToClipboard", interrupt=True, ) self.env["runtime"]["OutputManager"].present_text( clipboard_content, sound_icon="", interrupt=False ) else: self.env["runtime"]["OutputManager"].present_text( "No text found in clipboard or no accessible display", interrupt=True, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( str(e), sound_icon="", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/inc_sound_volume.py000066400000000000000000000011211513650123000263150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("sound", "volume", "inc") fenrir/src/fenrirscreenreader/commands/commands/inc_speech_pitch.py000066400000000000000000000011211513650123000262340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "pitch", "inc") fenrir/src/fenrirscreenreader/commands/commands/inc_speech_rate.py000066400000000000000000000011201513650123000260570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "rate", "inc") fenrir/src/fenrirscreenreader/commands/commands/inc_speech_volume.py000066400000000000000000000011221513650123000264350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "adjustment_base.py") _spec = importlib.util.spec_from_file_location("adjustment_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) adjustment_command = _module.adjustment_command class command(adjustment_command): def __init__(self): super().__init__("speech", "volume", "inc") fenrir/src/fenrirscreenreader/commands/commands/indent_curr_line.py000066400000000000000000000025611513650123000263010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Presents the indentation level for the current line") def run(self): # Prefer review cursor over text cursor if self.env["screen"]["newCursorReview"]: cursor_pos = self.env["screen"]["newCursorReview"].copy() else: cursor_pos = self.env["screen"]["new_cursor"].copy() x, y, curr_line = line_utils.get_current_line( cursor_pos["x"], cursor_pos["y"], self.env["screen"]["new_content_text"], ) if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("indent {0}").format( len(curr_line) - len(curr_line.lstrip()) ), interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/last_clipboard.py000066400000000000000000000020271513650123000257350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("selects the last clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return self.env["runtime"]["MemoryManager"].set_last_index("clipboardHistory") clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") self.env["runtime"]["OutputManager"].present_text( clipboard, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/marked_text.py000066400000000000000000000030111513650123000252540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import mark_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Presents the currently selected text that will be copied to the " "clipboard" ) def run(self): if not ( self.env["commandBuffer"]["Marks"]["1"] and self.env["commandBuffer"]["Marks"]["2"] ): self.env["runtime"]["OutputManager"].present_text( _("please set begin and endmark"), interrupt=True ) return # use the last first and the last setted mark as range start_mark = self.env["commandBuffer"]["Marks"]["1"].copy() end_mark = self.env["commandBuffer"]["Marks"]["2"].copy() marked = mark_utils.get_text_between_marks( start_mark, end_mark, self.env["screen"]["new_content_text"] ) if marked.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( marked, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/next_clipboard.py000066400000000000000000000031471513650123000257540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("selects the next clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return self.env["runtime"]["MemoryManager"].get_next_index("clipboardHistory") is_first = self.env["runtime"]["MemoryManager"].is_first_index( "clipboardHistory" ) is_last = self.env["runtime"]["MemoryManager"].is_last_index( "clipboardHistory" ) clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") if is_first: self.env["runtime"]["OutputManager"].present_text( _("First clipboard "), interrupt=True ) if is_last: self.env["runtime"]["OutputManager"].present_text( _("Last clipboard "), interrupt=True ) speech_interrupt = not (is_last or is_first) self.env["runtime"]["OutputManager"].present_text( clipboard, interrupt=speech_interrupt ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/next_quick_menu_entry.py000066400000000000000000000021141513650123000273670ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next quick menu entry") def run(self): menu = "" value = "" if self.env["runtime"]["QuickMenuManager"].next_entry(): menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"][ "QuickMenuManager" ].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Quick menu not available"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/next_quick_menu_value.py000066400000000000000000000013411513650123000273430ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next quick menu value") def run(self): if self.env["runtime"]["QuickMenuManager"].next_value(): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/paste_clipboard.py000066400000000000000000000025611513650123000261110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.env["runtime"]["MemoryManager"].add_index_list( "clipboardHistory", self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "number_of_clipboards" ), ) def shutdown(self): pass def get_description(self): return _("pastes the text from the currently selected clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return self.env["runtime"]["OutputManager"].present_text( "paste clipboard", sound_icon="PasteClipboardOnScreen", interrupt=True, ) clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") self.env["runtime"]["ScreenManager"].inject_text_to_screen(clipboard) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/present_first_line.py000066400000000000000000000016701513650123000266540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("present first line") def run(self): x, y, first_line = line_utils.get_current_line( 0, 0, self.env["screen"]["new_content_text"] ) if first_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( first_line, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/present_last_line.py000066400000000000000000000017461513650123000264740ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("current line") def run(self): x, y, last_line = line_utils.get_current_line( 0, self.env["screen"]["lines"] - 1, self.env["screen"]["new_content_text"], ) if last_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( last_line, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/prev_clipboard.py000066400000000000000000000031521513650123000257460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("selects the previous clipboard") def run(self): if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return self.env["runtime"]["MemoryManager"].set_pref_index("clipboardHistory") is_first = self.env["runtime"]["MemoryManager"].is_first_index( "clipboardHistory" ) is_last = self.env["runtime"]["MemoryManager"].is_last_index( "clipboardHistory" ) clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") if is_first: self.env["runtime"]["OutputManager"].present_text( _("First clipboard "), interrupt=True ) if is_last: self.env["runtime"]["OutputManager"].present_text( _("Last clipboard "), interrupt=True ) speech_interrupt = not (is_last or is_first) self.env["runtime"]["OutputManager"].present_text( clipboard, interrupt=speech_interrupt ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/prev_quick_menu_entry.py000066400000000000000000000021201513650123000273620ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get previous quick menu entry") def run(self): menu = "" value = "" if self.env["runtime"]["QuickMenuManager"].prev_entry(): menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"][ "QuickMenuManager" ].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Quick menu not available"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/prev_quick_menu_value.py000066400000000000000000000013451513650123000273450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get previous quick menu value") def run(self): if self.env["runtime"]["QuickMenuManager"].prev_value(): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/progress_bar_monitor.py000066400000000000000000000240361513650123000272160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re import threading import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment # Use commandBuffer like other commands if "progress_monitoring" not in self.env["commandBuffer"]: # Check if progress monitoring should be enabled by default from # settings try: default_enabled = self.env["runtime"][ "SettingsManager" ].get_setting_as_bool("sound", "progress_monitoring") except Exception as e: # If setting doesn't exist, default to False default_enabled = False self.env["commandBuffer"]["progress_monitoring"] = default_enabled self.env["commandBuffer"]["lastProgressTime"] = 0 self.env["commandBuffer"]["lastProgressValue"] = -1 def shutdown(self): self.stop_progress_monitoring() def get_description(self): return _("Toggle progress bar monitoring with ascending tones") def run(self): # Check if commandBuffer exists if "progress_monitoring" not in self.env["commandBuffer"]: self.env["commandBuffer"]["progress_monitoring"] = False self.env["commandBuffer"]["lastProgressTime"] = 0 self.env["commandBuffer"]["lastProgressValue"] = -1 if self.env["commandBuffer"]["progress_monitoring"]: self.stop_progress_monitoring() self.env["runtime"]["OutputManager"].present_text( _("Progress monitoring disabled"), interrupt=True ) else: self.start_progress_monitoring() self.env["runtime"]["OutputManager"].present_text( _("Progress monitoring enabled"), interrupt=True ) def start_progress_monitoring(self): self.env["commandBuffer"]["progress_monitoring"] = True self.env["commandBuffer"]["lastProgressTime"] = time.time() self.env["commandBuffer"]["lastProgressValue"] = -1 # Don't control speech - let user decide with silence_until_prompt def stop_progress_monitoring(self): self.env["commandBuffer"]["progress_monitoring"] = False # Don't control speech - progress monitor is beep-only def detect_progress(self, text): if not self.env["commandBuffer"]["progress_monitoring"]: return # Skip progress detection if current screen looks like a prompt if self.is_current_line_prompt(): return current_time = time.time() # Pattern 1: Percentage (50%, 25.5%, etc.) percent_match = re.search(r"(\d+(?:\.\d+)?)\s*%", text) if percent_match: percentage = float(percent_match.group(1)) if percentage != self.env["commandBuffer"]["lastProgressValue"]: self.play_progress_tone(percentage) self.env["commandBuffer"]["lastProgressValue"] = percentage self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 2: Fraction (15/100, 3 of 10, etc.) fraction_match = re.search(r"(\d+)\s*(?:of|/)\s*(\d+)", text) if fraction_match: current = int(fraction_match.group(1)) total = int(fraction_match.group(2)) if total > 0: percentage = (current / total) * 100 if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.play_progress_tone(percentage) self.env["commandBuffer"]["lastProgressValue"] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 3: Progress bars ([#### ], [====> ], etc.) # Improved pattern to avoid matching IRC channels like [#channel] bar_match = re.search(r"\[([#=\-\*]+)([\s\.]*)\]", text) if bar_match: filled = len(bar_match.group(1)) unfilled = len(bar_match.group(2)) total = filled + unfilled # Require at least 2 progress chars total and unfilled portion must # be spaces/dots if total >= 2 and ( not bar_match.group(2) or re.match(r"^[\s\.]*$", bar_match.group(2)) ): percentage = (filled / total) * 100 if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.play_progress_tone(percentage) self.env["commandBuffer"]["lastProgressValue"] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 4: Generic activity indicators (Loading..., Working..., etc.) activity_pattern = re.search( ( r"(loading|processing|working|installing|downloading|" r"compiling|building).*\.{2,}" ), text, re.IGNORECASE, ) if activity_pattern: # Play a steady beep every 2 seconds for ongoing activity if ( current_time - self.env["commandBuffer"]["lastProgressTime"] >= 2.0 ): self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time def play_progress_tone(self, percentage): # Map 0-100% to 400-1200Hz frequency range frequency = 400 + (percentage * 8) frequency = max(400, min(1200, frequency)) # Clamp to safe range self.env["runtime"]["OutputManager"].play_frequence( frequency, 0.15, interrupt=False ) def play_activity_beep(self): # Single tone for generic activity self.env["runtime"]["OutputManager"].play_frequence( 800, 0.1, interrupt=False ) def is_current_line_prompt(self): """Check if the current line looks like a standalone prompt (not command with progress)""" import re try: # Get the current screen content if not self.env["screen"]["new_content_text"]: return False lines = self.env["screen"]["new_content_text"].split("\n") if not lines: return False # Check the last line (most common) and current cursor line for # prompt patterns lines_to_check = [] # Add last line (most common for prompts) if lines: lines_to_check.append(lines[-1]) # Add current cursor line if different from last line if ( self.env["screen"]["new_cursor"]["y"] < len(lines) and self.env["screen"]["new_cursor"]["y"] != len(lines) - 1 ): lines_to_check.append( lines[self.env["screen"]["new_cursor"]["y"]] ) # Standalone prompt patterns (no commands mixed in) standalone_prompt_patterns = [ r"^\s*\$\s*$", # Just $ (with whitespace) r"^\s*#\s*$", # Just # (with whitespace) r"^\s*>\s*$", # Just > (with whitespace) r"^\[.*\]\s*[\\\$#>]\s*$", # [path]$ without commands r"^[a-zA-Z0-9._-]+[\\\$#>]\s*$", # bash-5.1$ without commands # Interactive prompt patterns (these ARE standalone) r".*\?\s*\[[YyNn]/[YyNn]\]\s*$", # ? [Y/n] or ? [y/N] style r".*\?\s*\[[Yy]es/[Nn]o\]\s*$", # ? [Yes/No] style # "continue? [Y/n]" style r".*continue\?\s*\[[YyNn]/[YyNn]\].*$", r"^::.*\?\s*\[[YyNn]/[YyNn]\].*$", # pacman style prompts # Authentication prompts (these ARE standalone) r"^\[[Ss]udo\]\s*[Pp]assword\s*for\s+.*:\s*$", # [sudo] password r"^[Pp]assword\s*:\s*$", # Password: r".*[Pp]assword\s*:\s*$", # general password prompts # Continuation prompts (these ARE standalone) r"^[Pp]ress\s+any\s+key\s+to\s+continue.*$", # Press any key r"^[Aa]re\s+you\s+sure\?\s*.*$", # Are you sure? ] for line in lines_to_check: line = line.strip() if not line: continue # Check if this line contains both a prompt AND other content (like commands) # If so, don't treat it as a standalone prompt has_prompt_marker = bool( re.search(r".*@.*[\\\$#>]", line) or re.search(r"^\[.*\]\s*[\\\$#>]", line) ) if has_prompt_marker: # If line has prompt marker but also has significant content after it, # it's a command line, not a standalone prompt prompt_end = max( line.rfind("$"), line.rfind("#"), line.rfind(">"), line.rfind("\\"), ) if ( prompt_end >= 0 and prompt_end < len(line) - 5 ): # More than just whitespace after prompt continue # This is a command line, not a standalone prompt for pattern in standalone_prompt_patterns: try: if re.search(pattern, line): return True except re.error: continue return False except Exception as e: # If anything fails, assume it's not a prompt to be safe return False def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/quit_fenrir.py000066400000000000000000000010231513650123000252750ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("exits Fenrir") def run(self): self.env["runtime"]["EventManager"].stop_main_event_loop() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/read_all_by_line.py000066400000000000000000000043471513650123000262260ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Read all text line by line from current position") def run(self): self.env["runtime"]["OutputManager"].present_text( "Read-all functionality temporarily disabled", interrupt=True ) return # Check if speechd is available for callbacks try: speech_driver = self.env['runtime']['SpeechDriver'] if not (hasattr(speech_driver, '_sd') and speech_driver._sd): self.env["runtime"]["OutputManager"].present_text( _("Read all requires speech-dispatcher - not available with current speech driver"), interrupt=True ) return except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllByLine run: Error checking speech driver: {e}", debug.DebugLevel.ERROR ) return # Check if ReadAllManager is available if "ReadAllManager" not in self.env["runtime"]: self.env["runtime"]["OutputManager"].present_text( _("Read all manager not in runtime"), interrupt=True ) return elif not self.env["runtime"]["ReadAllManager"]: self.env["runtime"]["OutputManager"].present_text( _("Read all manager is None"), interrupt=True ) return # Start continuous line-by-line reading if self.env["runtime"]["ReadAllManager"].is_active(): # Stop if already active self.env["runtime"]["ReadAllManager"].stop_read_all() else: # Start line-by-line reading self.env["runtime"]["ReadAllManager"].start_read_all('line') def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/read_all_by_page.py000066400000000000000000000040751513650123000262110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Read all text page by page from current position") def run(self): # Check if speechd is available for callbacks try: speech_driver = self.env['runtime']['SpeechDriver'] if not (hasattr(speech_driver, '_sd') and speech_driver._sd): self.env["runtime"]["OutputManager"].present_text( _("Read all requires speech-dispatcher - not available with current speech driver"), interrupt=True ) return except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllByPage run: Error checking speech driver: {e}", debug.DebugLevel.ERROR ) return # Check if ReadAllManager is available if "ReadAllManager" not in self.env["runtime"]: self.env["runtime"]["OutputManager"].present_text( _("Read all manager not in runtime"), interrupt=True ) return elif not self.env["runtime"]["ReadAllManager"]: self.env["runtime"]["OutputManager"].present_text( _("Read all manager is None"), interrupt=True ) return # Start continuous page-by-page reading if self.env["runtime"]["ReadAllManager"].is_active(): # Stop if already active self.env["runtime"]["ReadAllManager"].stop_read_all() else: # Start page-by-page reading self.env["runtime"]["ReadAllManager"].start_read_all('page') def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/remove_marks.py000066400000000000000000000012221513650123000254410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Removes marks from selected text") def run(self): self.env["runtime"]["CursorManager"].clear_marks() self.env["runtime"]["OutputManager"].present_text( _("Remove marks"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/remove_word_from_spell_check.py000066400000000000000000000053601513650123000306650ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils initialized = False try: import enchant initialized = True except Exception as e: pass class command: def __init__(self): self.language = "" self.spellChecker = None def initialize(self, environment): self.env = environment self.update_spell_language() def shutdown(self): pass def get_description(self): return _("removes the current word from the exceptions dictionary") def update_spell_language(self): self.spellChecker = enchant.Dict( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) ) self.language = self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) def run(self): if not initialized: self.env["runtime"]["OutputManager"].present_text( _("pyenchant is not installed"), interrupt=True ) return if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) != self.language ): try: self.update_spell_language() except Exception as e: return cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() # get the word new_content = self.env["screen"]["new_content_text"].split("\n")[ cursor_pos["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word(cursor_pos["x"], 0, new_content) ) curr_word = curr_word.strip( string.whitespace + r'!"#$%&()*+,-./:;<=Ƃ?@[\\]^_{|}~' ) if not curr_word.isspace(): if self.spellChecker.is_removed(curr_word): self.env["runtime"]["OutputManager"].present_text( _("{0} is not in the dictionary").format( curr_word, ), sound_icon="Cancel", interrupt=True, ) else: self.spellChecker.remove(curr_word) self.env["runtime"]["OutputManager"].present_text( _("{0} removed").format( curr_word, ), sound_icon="Accept", interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_bottom.py000066400000000000000000000013471513650123000256440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Move review to the bottom of the screen") def run(self): self.env["screen"]["newCursorReview"] = { "x": 0, "y": self.env["screen"]["lines"] - 1, } self.env["runtime"]["OutputManager"].present_text( _("Bottom"), interrupt=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_curr_char.py000066400000000000000000000054331513650123000263100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("presents the current character.") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() # In table mode, sync to cell start if cursor is outside current cell if self.env["runtime"]["TableManager"].is_table_mode(): table_info = self.env["runtime"]["TableManager"].get_current_table_cell_info() if table_info: cursor_pos = self.env["screen"]["newCursorReview"] line_text = self.env["runtime"]["ScreenManager"].get_line_text( cursor_pos["y"] ) if line_text: column_start = self.env["runtime"]["TableManager"].get_column_start_position( line_text, table_info["column_index"] ) cell_content = table_info["cell_content"] cell_end = column_start + len(cell_content) # If cursor is outside the current cell, move to cell start if ( cursor_pos["x"] < column_start or cursor_pos["x"] >= cell_end ): self.env["screen"]["newCursorReview"]["x"] = column_start ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, curr_char, interrupt=True, announce_capital=True, flush=False, ) # is has attribute it enabled? if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ): cursor_pos = self.env["screen"]["newCursorReview"] if not self.env["runtime"]["AttributeManager"].has_attributes( cursor_pos ): return self.env["runtime"]["OutputManager"].present_text( "has attribute", sound_icon="HasAttributes", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_curr_char_phonetic.py000066400000000000000000000026101513650123000301730ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("set review and phonetically presents the current character") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if curr_char.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: curr_char = char_utils.get_phonetic(curr_char) self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=True, announce_capital=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_curr_line.py000066400000000000000000000024401513650123000263150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("current line") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_line, ) = line_utils.get_current_line( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( curr_line, interrupt=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_curr_word.py000066400000000000000000000067541513650123000263550ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("current word.") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_word, end_of_screen, line_break, ) = word_utils.get_current_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) # Check if we're in table mode and provide table-aware output is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() self.env["runtime"]["DebugManager"].write_debug_out( f"review_curr_word: is_table_mode={is_table_mode}", debug.DebugLevel.INFO ) if is_table_mode: # Get current cell info using internal column tracking table_info = ( self.env["runtime"]["TableManager"].get_current_table_cell_info() ) if table_info: # Announce with table context - cell content first, then header output_text = ( f"{table_info['cell_content']} {table_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) return # Exit early for table mode else: # Fallback to regular word announcement if curr_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( curr_word, interrupt=True, flush=False ) else: # Regular word announcement if curr_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( curr_word, interrupt=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_curr_word_phonetic.py000066400000000000000000000044631513650123000302410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Phonetically spells the current word") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_word, end_of_screen, line_break, ) = word_utils.get_current_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if curr_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: first_sequence = True for c in curr_word: curr_char = char_utils.get_phonetic(c) self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=first_sequence, announce_capital=True, flush=False, ) first_sequence = False if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_down.py000066400000000000000000000031321513650123000253010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Move review to the character below the current position") def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], downChar, end_of_screen, ) = char_utils.get_down_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) self.env["runtime"]["OutputManager"].present_text( downChar, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_line_begin.py000066400000000000000000000051331513650123000264300ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "set review cursor to begin of current line and display the content" ) def run(self): # Check if we're in table mode first is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() if is_table_mode: table_info = self.env["runtime"]["TableManager"].move_to_first_cell() if table_info: output_text = ( f"{table_info['cell_content']} {table_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) self.env["runtime"]["OutputManager"].present_text( _("first cell"), interrupt=False ) else: self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # Regular line begin navigation (when not in table mode) cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["CursorManager"].set_review_cursor_position( 0, cursor_pos["y"] ) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if curr_char.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("beginning of line"), interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_line_end.py000066400000000000000000000046361513650123000261210ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Move Review to the end of current line and display the content" ) def run(self): # Check if we're in table mode first is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() if is_table_mode: table_info = self.env["runtime"]["TableManager"].move_to_last_cell() if table_info: output_text = ( f"{table_info['cell_content']} {table_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) self.env["runtime"]["OutputManager"].present_text( _("last cell"), interrupt=False ) else: self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # Regular line end navigation (when not in table mode) cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["CursorManager"].set_review_cursor_position( self.env["screen"]["columns"] - 1, cursor_pos["y"] ) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("end of line"), interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_line_first_char.py000066400000000000000000000056701513650123000274760ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Move Review to the first character on the line") def run(self): # Check if we're in table mode first is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() if is_table_mode: table_info = self.env["runtime"]["TableManager"].move_to_first_char_in_cell() if table_info: char_utils.present_char_for_review( self.env, table_info['character'], interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("first character in cell {0}").format(table_info['column_header']), interrupt=False, ) else: self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # Regular line first character navigation (when not in table mode) cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() x, y, curr_line = line_utils.get_current_line( cursor_pos["x"], cursor_pos["y"], self.env["screen"]["new_content_text"], ) if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("line is empty"), interrupt=True ) return self.env["runtime"]["CursorManager"].set_review_cursor_position( (len(curr_line) - len(curr_line.lstrip())), cursor_pos["y"] ) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, curr_char, interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("first character in line indent {0}").format( str(len(curr_line) - len(curr_line.lstrip())) ), interrupt=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_line_last_char.py000066400000000000000000000045671513650123000273160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Move Review to the last character on the line") def run(self): # Check if we're in table mode first is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() if is_table_mode: table_info = self.env["runtime"]["TableManager"].move_to_last_char_in_cell() if table_info: char_utils.present_char_for_review( self.env, table_info['character'], interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("last character in cell {0}").format(table_info['column_header']), interrupt=False, ) else: self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # Regular line last character navigation (when not in table mode) cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["CursorManager"].set_review_cursor_position( self.env["screen"]["columns"] - 1, cursor_pos["y"] ) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], lastChar, ) = char_utils.get_last_char_in_line( self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, lastChar, interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("last character in line"), interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_next_char.py000066400000000000000000000120371513650123000263110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Moves review to the next character") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() # Check if we're in table mode for bounded navigation if self.env["runtime"]["TableManager"].is_table_mode(): table_info = self.env["runtime"]["TableManager"].get_current_table_cell_info() if table_info: cursor_pos = self.env["screen"]["newCursorReview"] line_text = self.env["runtime"]["ScreenManager"].get_line_text( cursor_pos["y"] ) if line_text: column_start = self.env["runtime"]["TableManager"].get_column_start_position( line_text, table_info["column_index"] ) cell_content = table_info["cell_content"] cell_end = column_start + len(cell_content) # Check if we're already at the end of the cell if cursor_pos["x"] >= cell_end - 1: # At cell boundary - announce end and don't move char_utils.present_char_for_review( self.env, cell_content[-1] if cell_content else "", interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("end of cell"), interrupt=False, sound_icon="EndOfLine" ) return # Move within cell bounds relative_pos = cursor_pos["x"] - column_start if relative_pos < len(cell_content) - 1: new_relative_pos = relative_pos + 1 self.env["screen"]["newCursorReview"]["x"] = ( column_start + new_relative_pos ) # Get character at new position if new_relative_pos < len(cell_content): next_char = cell_content[new_relative_pos] else: next_char = "" char_utils.present_char_for_review( self.env, next_char, interrupt=True, announce_capital=True, flush=False, ) return # Regular navigation for non-table mode ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], next_char, end_of_screen, line_break, ) = char_utils.get_next_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, next_char, interrupt=True, announce_capital=True, flush=False, ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) # is has attribute it enabled? if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ): cursor_pos = self.env["screen"]["newCursorReview"] if not self.env["runtime"]["AttributeManager"].has_attributes( cursor_pos ): return self.env["runtime"]["OutputManager"].present_text( "has attribute", sound_icon="HasAttributes", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_next_char_phonetic.py000066400000000000000000000036651513650123000302110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "phonetically presents the next character and set review to it" ) def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], next_char, end_of_screen, line_break, ) = char_utils.get_next_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) next_char = char_utils.get_phonetic(next_char) self.env["runtime"]["OutputManager"].present_text( next_char, interrupt=True, announce_capital=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_next_line.py000066400000000000000000000035501513650123000263230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("moves review to the next line ") def run(self): self.env["screen"]["oldCursorReview"] = self.env["screen"][ "newCursorReview" ] if not self.env["screen"]["newCursorReview"]: self.env["screen"]["newCursorReview"] = self.env["screen"][ "new_cursor" ].copy() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], nextLine, end_of_screen, ) = line_utils.get_next_line( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if nextLine.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( nextLine, interrupt=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_next_word.py000066400000000000000000000077431513650123000263570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("moves review to the next word ") def run(self): # Check if we're in table mode FIRST - before any word navigation is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() self.env["runtime"]["DebugManager"].write_debug_out( f"review_next_word: is_table_mode={is_table_mode}", debug.DebugLevel.INFO ) if is_table_mode: table_info = ( self.env["runtime"]["TableManager"].move_to_next_column() ) if table_info and table_info.get("at_end"): # Stay on current cell and play end of line sound current_info = table_info["current_info"] if current_info: output_text = f"{current_info['cell_content']}" self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) # Play end of line sound self.env["runtime"]["OutputManager"].present_text( _("end of line"), interrupt=False, sound_icon="EndOfLine" ) elif table_info: # Normal column navigation - announce cell content with column info output_text = ( f"{table_info['cell_content']} {table_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) else: # No table info available, but still in table mode self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # ALWAYS return in table mode to prevent regular word navigation # Regular word navigation (only when NOT in table mode) self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], next_word, end_of_screen, line_break, ) = word_utils.get_next_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) # Regular word announcement if next_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( next_word, interrupt=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_next_word_phonetic.py000066400000000000000000000045041513650123000302400ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Phonetically spells the next word and moves review to it") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], next_word, end_of_screen, line_break, ) = word_utils.get_next_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if next_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: first_sequence = True for c in next_word: curr_char = char_utils.get_phonetic(c) self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=first_sequence, announce_capital=True, flush=False, ) first_sequence = False if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_prev_char.py000066400000000000000000000123771513650123000263160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("moves review to the previous character") def run(self): self.env["screen"]["oldCursorReview"] = self.env["screen"][ "newCursorReview" ] if not self.env["screen"]["newCursorReview"]: self.env["screen"]["newCursorReview"] = self.env["screen"][ "new_cursor" ].copy() # Check if we're in table mode for bounded navigation if self.env["runtime"]["TableManager"].is_table_mode(): table_info = self.env["runtime"]["TableManager"].get_current_table_cell_info() if table_info: cursor_pos = self.env["screen"]["newCursorReview"] line_text = self.env["runtime"]["ScreenManager"].get_line_text( cursor_pos["y"] ) if line_text: column_start = self.env["runtime"]["TableManager"].get_column_start_position( line_text, table_info["column_index"] ) # Check if we're already at the start of the cell if cursor_pos["x"] <= column_start: # At cell boundary - announce start and don't move char_utils.present_char_for_review( self.env, ( table_info["cell_content"][0] if table_info["cell_content"] else "" ), interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("start of cell"), interrupt=False, sound_icon="StartOfLine" ) return # Move within cell bounds cell_content = table_info["cell_content"] relative_pos = cursor_pos["x"] - column_start if relative_pos > 0: new_relative_pos = relative_pos - 1 self.env["screen"]["newCursorReview"]["x"] = ( column_start + new_relative_pos ) # Get character at new position if new_relative_pos < len(cell_content): prev_char = cell_content[new_relative_pos] else: prev_char = "" char_utils.present_char_for_review( self.env, prev_char, interrupt=True, announce_capital=True, flush=False, ) return # Regular navigation for non-table mode ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], prev_char, end_of_screen, line_break, ) = char_utils.get_prev_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, prev_char, interrupt=True, announce_capital=True, flush=False, ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) # is has attribute it enabled? if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ): cursor_pos = self.env["screen"]["newCursorReview"] if not self.env["runtime"]["AttributeManager"].has_attributes( cursor_pos ): return self.env["runtime"]["OutputManager"].present_text( "has attribute", sound_icon="HasAttributes", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_prev_char_phonetic.py000066400000000000000000000036711513650123000302040ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "phonetically presents the previous character and set review to it" ) def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], prev_char, end_of_screen, line_break, ) = char_utils.get_prev_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) prev_char = char_utils.get_phonetic(prev_char) self.env["runtime"]["OutputManager"].present_text( prev_char, interrupt=True, announce_capital=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_prev_line.py000066400000000000000000000032731513650123000263230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("moves review to the previous line ") def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], prev_line, end_of_screen, ) = line_utils.get_prev_line( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if prev_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( prev_line, interrupt=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_prev_word.py000066400000000000000000000101001513650123000263320ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("moves review focus to the previous word ") def run(self): # Check if we're in table mode FIRST - before any word navigation is_table_mode = self.env["runtime"]["TableManager"].is_table_mode() self.env["runtime"]["DebugManager"].write_debug_out( f"review_prev_word: is_table_mode={is_table_mode}", debug.DebugLevel.INFO ) if is_table_mode: table_info = ( self.env["runtime"]["TableManager"].move_to_prev_column() ) if table_info and table_info.get("at_start"): # Stay on current cell at beginning of line current_info = table_info["current_info"] if current_info: output_text = ( f"{current_info['cell_content']} {current_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) # Play start of line sound self.env["runtime"]["OutputManager"].present_text( _("start of line"), interrupt=False, sound_icon="StartOfLine" ) elif table_info: # Normal column navigation - announce cell content with column info output_text = ( f"{table_info['cell_content']} {table_info['column_header']}" ) self.env["runtime"]["OutputManager"].present_text( output_text, interrupt=True, flush=False ) else: # No table info available, but still in table mode self.env["runtime"]["OutputManager"].present_text( _("no table data"), interrupt=True, flush=False ) return # ALWAYS return in table mode to prevent regular word navigation # Regular word navigation (only when NOT in table mode) self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], prev_word, end_of_screen, line_break, ) = word_utils.get_prev_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) # Regular word announcement if prev_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( prev_word, interrupt=True, flush=False ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=False, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_prev_word_phonetic.py000066400000000000000000000045361513650123000302430ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Phonetically spells the previous word and moves review to it" ) def run(self): self.env["runtime"][ "CursorManager" ].enter_review_mode_curr_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], prev_word, end_of_screen, line_break, ) = word_utils.get_prev_word( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) if prev_word.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), interrupt=True, flush=False ) else: first_sequence = True for c in prev_word: curr_char = char_utils.get_phonetic(c) self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=first_sequence, announce_capital=True, flush=False, ) first_sequence = False if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_screen_first_char.py000066400000000000000000000025301513650123000300160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Move Review to the first character on the screen (left top)") def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["CursorManager"].set_review_cursor_position(0, 0) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], lastChar, ) = char_utils.get_last_char_in_line( self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, lastChar, interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("first character in screen"), interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_screen_last_char.py000066400000000000000000000027041513650123000276350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Move Review to the last character on the screen (right bottom)" ) def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() self.env["runtime"]["CursorManager"].set_review_cursor_position( self.env["screen"]["columns"] - 1, self.env["screen"]["lines"] - 1 ) ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], lastChar, ) = char_utils.get_last_char_in_line( self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) char_utils.present_char_for_review( self.env, lastChar, interrupt=True, announce_capital=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( _("last character in screen"), interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_top.py000066400000000000000000000013071513650123000251360ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("move review to top of screen") def run(self): self.env["screen"]["newCursorReview"] = {"x": 0, "y": 0} self.env["runtime"]["OutputManager"].present_text( _("Top"), interrupt=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/review_up.py000066400000000000000000000037131513650123000247630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Move review to the character in the line above the current position" ) def run(self): cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], upChar, end_of_screen, ) = char_utils.get_up_char( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], self.env["screen"]["new_content_text"], ) line_break = False self.env["runtime"]["OutputManager"].present_text( upChar, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) if end_of_screen: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "end_of_screen" ): self.env["runtime"]["OutputManager"].present_text( _("end of screen"), interrupt=True, sound_icon="EndOfScreen", ) if line_break: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "line_break" ): self.env["runtime"]["OutputManager"].present_text( _("line break"), interrupt=False, sound_icon="EndOfLine" ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/save_settings.py000066400000000000000000000015351513650123000256340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import settingsManager from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Saves your current Fenrir settings so they are the default.") def run(self): settings_file = self.env["runtime"][ "SettingsManager" ].get_settings_file() self.env["runtime"]["SettingsManager"].save_settings(settings_file) self.env["runtime"]["OutputManager"].present_text( _("Settings saved."), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_1.py000066400000000000000000000010671513650123000256560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(1, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_10.py000066400000000000000000000010701513650123000257300ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(10, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_2.py000066400000000000000000000010671513650123000256570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(2, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_3.py000066400000000000000000000010671513650123000256600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(3, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_4.py000066400000000000000000000010671513650123000256610ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(4, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_5.py000066400000000000000000000010671513650123000256620ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(5, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_6.py000066400000000000000000000010671513650123000256630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(6, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_7.py000066400000000000000000000010671513650123000256640ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(7, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_8.py000066400000000000000000000010671513650123000256650ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(8, "set") fenrir/src/fenrirscreenreader/commands/commands/set_bookmark_9.py000066400000000000000000000010671513650123000256660ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _base_path = os.path.join(os.path.dirname(__file__), "bookmark_base.py") _spec = importlib.util.spec_from_file_location("bookmark_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) bookmark_command = _module.bookmark_command class command(bookmark_command): def __init__(self): super().__init__(9, "set") fenrir/src/fenrirscreenreader/commands/commands/set_mark.py000066400000000000000000000033751513650123000245670ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("places marks to select text to copy to the clipboard") def run(self): if not self.env["runtime"]["CursorManager"].is_review_mode(): self.env["runtime"]["OutputManager"].present_text( _("no review cursor"), interrupt=True ) return # If in table mode, set header row instead of regular mark if self.env["runtime"]["TableManager"].is_table_mode(): success = self.env["runtime"]["TableManager"].set_header_row_from_cursor() if success: self.env["runtime"]["OutputManager"].present_text( _("header row set"), sound_icon="PlaceStartMark", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("could not set header row"), interrupt=True ) return # Regular mark functionality curr_mark = self.env["runtime"]["CursorManager"].set_mark() if curr_mark == 1: self.env["runtime"]["OutputManager"].present_text( _("set mark"), sound_icon="PlaceStartMark", interrupt=True ) elif curr_mark == 2: self.env["runtime"]["OutputManager"].present_text( _("set mark"), sound_icon="PlaceEndMark", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/set_window_application.py000066400000000000000000000020771513650123000275250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("set Window Mode, needs 2 marks ") def run(self): if self.env["runtime"]["CursorManager"].set_window_for_application(): curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() self.env["runtime"]["OutputManager"].present_text( _("Window Mode on for application {0}").format(curr_app), interrupt=True, ) self.env["runtime"]["CursorManager"].clear_marks() else: self.env["runtime"]["OutputManager"].present_text( _("Set window begin and end marks"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/shut_up.py000066400000000000000000000012601513650123000244400ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Interrupts the current presentation") def run(self): if len(self.env["input"]["prev_deepest_input"]) > len( self.env["input"]["curr_input"] ): return self.env["runtime"]["OutputManager"].interrupt_output() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/silence_until_prompt.py000066400000000000000000000146741513650123000272240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment # Use commandBuffer like other commands if "silenceUntilPrompt" not in self.env["commandBuffer"]: self.env["commandBuffer"]["silenceUntilPrompt"] = False def shutdown(self): pass def get_description(self): return _("Toggle speech silence until shell prompt returns") def run(self): if self.env["commandBuffer"]["silenceUntilPrompt"]: self.disable_silence() else: self.enable_silence() def enable_silence(self): self.env["commandBuffer"]["silenceUntilPrompt"] = True self.env["runtime"]["OutputManager"].present_text( _("Speech silenced until prompt returns"), sound_icon="SpeechOff", interrupt=True, ) # Disable speech but don't use the normal temp disable that reactivates # on keypress self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", "False" ) def disable_silence(self): self.env["commandBuffer"]["silenceUntilPrompt"] = False # Re-enable speech self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", "True" ) self.env["runtime"]["OutputManager"].present_text( _("Speech restored"), sound_icon="SpeechOn", interrupt=True ) def check_for_prompt(self, text): """Check if the current line contains a shell prompt pattern""" if not self.env["commandBuffer"]["silenceUntilPrompt"]: return False # First check for exact matches from settings (with backward # compatibility) try: exact_matches = self.env["runtime"]["SettingsManager"].get_setting( "prompt", "exact_matches" ) if exact_matches: exact_list = [ match.strip() for match in exact_matches.split(",") if match.strip() ] for exactMatch in exact_list: if text.strip() == exactMatch: self.env["runtime"]["DebugManager"].write_debug_out( "found exact prompt match: " + exactMatch, debug.DebugLevel.INFO, ) self.disable_silence() return True except Exception as e: # Prompt section doesn't exist in settings, skip custom exact # matches pass # Get custom patterns from settings (with backward compatibility) prompt_patterns = [] try: custom_patterns = self.env["runtime"][ "SettingsManager" ].get_setting("prompt", "custom_patterns") # Add custom patterns from settings if they exist if custom_patterns: custom_list = [ pattern.strip() for pattern in custom_patterns.split(",") if pattern.strip() ] prompt_patterns.extend(custom_list) except Exception as e: # Prompt section doesn't exist in settings, skip custom patterns pass # Add default shell prompt patterns prompt_patterns.extend( [ r"^\s*\$\s*$", # Just $ (with whitespace) r"^\s*#\s*$", # Just # (with whitespace) r"^\s*>\s*$", # Just > (with whitespace) r".*@.*[\\\$#>]\s*$", # Contains @ and ends with prompt char (user@host style) r"^\[.*\]\s*[\\\$#>]\s*$", # [anything]$ style prompts # Simple shell names like bash-5.1$ r"^[a-zA-Z0-9._-]+[\\\$#>]\s*$", # Interactive prompt patterns # Package manager confirmation prompts r".*\?\s*\[[YyNn]/[YyNn]\]\s*$", # ? [Y/n] or ? [y/N] style r".*\?\s*\[[Yy]es/[Nn]o\]\s*$", # ? [Yes/No] style r".*\?\s*\([YyNn]/[YyNn]\)\s*$", # ? (Y/n) or ? (y/N) style r".*\?\s*\([Yy]es/[Nn]o\)\s*$", # ? (Yes/No) style r".*continue\?\s*\[[YyNn]/[YyNn]\].*$", # "continue? [Y/n]" style r".*ok\s*\[[YyNn]/[YyNn]\].*$", # "Is this ok [y/N]:" style # pacman ":: Proceed? [Y/n]" style r"^::.*\?\s*\[[YyNn]/[YyNn]\].*$", # Authentication prompts # [sudo] password for user: r"^\[[Ss]udo\]\s*[Pp]assword\s*for\s+.*:\s*$", r"^[Pp]assword\s*:\s*$", # Password: r".*[Pp]assword\s*:\s*$", # general password prompts r".*'s\s*[Pp]assword\s*:\s*$", # user's password: r"^[Ee]nter\s+[Pp]assphrase.*:\s*$", # Enter passphrase: # Please enter passphrase: r"^[Pp]lease\s+enter\s+[Pp]assphrase.*:\s*$", # General confirmation and continuation prompts # Press any key to continue r"^[Pp]ress\s+any\s+key\s+to\s+continue.*$", r"^[Aa]re\s+you\s+sure\?\s*.*$", # Are you sure? r"^[Pp]lease\s+confirm.*$", # Please confirm r".*confirm.*\([YyNn]/[YyNn]\).*$", # confirm (y/n) r".*\([Yy]/[Nn]\)\s*$", # ends with (Y/n) or (y/N) ] ) for pattern in prompt_patterns: try: if re.search(pattern, text.strip()): self.env["runtime"]["DebugManager"].write_debug_out( "found prompt pattern: " + pattern, debug.DebugLevel.INFO, ) self.disable_silence() return True except re.error as e: # Invalid regex pattern, skip it and log the error self.env["runtime"]["DebugManager"].write_debug_out( "Invalid prompt pattern: " + pattern + " Error: " + str(e), debug.DebugLevel.ERROR, ) continue return False def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/spell_check.py000066400000000000000000000045521513650123000252340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils initialized = False try: import enchant initialized = True except Exception as e: pass class command: def __init__(self): self.language = "" self.spellChecker = None def initialize(self, environment): self.env = environment self.update_spell_language() def shutdown(self): pass def get_description(self): return _("checks the spelling of the current word") def update_spell_language(self): if not initialized: return self.spellChecker = enchant.Dict( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) ) self.language = self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) def run(self): if not initialized: self.env["runtime"]["OutputManager"].present_text( _("pyenchant is not installed"), interrupt=True ) return if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) != self.language ): try: self.update_spell_language() except Exception as e: return cursor_pos = self.env["runtime"][ "CursorManager" ].get_review_or_text_cursor() # get the word new_content = self.env["screen"]["new_content_text"].split("\n")[ cursor_pos["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word(cursor_pos["x"], 0, new_content) ) if not curr_word.isspace(): if not self.spellChecker.check(curr_word): self.env["runtime"]["OutputManager"].present_text( _("misspelled"), sound_icon="mispell", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("correct"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/subprocess.py000066400000000000000000000046441513650123000251520ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import _thread import os import subprocess from subprocess import PIPE from subprocess import Popen from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment, script_path=""): self.env = environment self.script_path = script_path def shutdown(self): pass def get_description(self): return _("script: {0} fullpath: {1}").format( os.path.basename(self.script_path), self.script_path ) def run(self): if not os.path.exists(self.script_path): self.env["runtime"]["OutputManager"].present_text( _("Script file not found"), sound_icon="", interrupt=False ) return if not os.path.isfile(self.script_path): self.env["runtime"]["OutputManager"].present_text( _("Script source is not a valid file"), sound_icon="", interrupt=False, ) return if not os.access(self.script_path, os.X_OK): self.env["runtime"]["OutputManager"].present_text( _("Script file is not executable"), sound_icon="", interrupt=False, ) return _thread.start_new_thread(self._thread_run, ()) def _thread_run(self): try: callstring = ( self.script_path + " " + self.env["general"]["curr_user"] ) p = Popen(callstring, stdout=PIPE, stderr=PIPE, shell=True) stdout, stderr = p.communicate() stdout = stdout.decode("utf-8") stderr = stderr.decode("utf-8") self.env["runtime"]["OutputManager"].interrupt_output() if stderr != "": self.env["runtime"]["OutputManager"].present_text( str(stderr), sound_icon="", interrupt=False ) if stdout != "": self.env["runtime"]["OutputManager"].present_text( str(stdout), sound_icon="", interrupt=False ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( str(e), sound_icon="", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/temp_disable_speech.py000066400000000000000000000010521513650123000267270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("disables speech until next keypress") def run(self): self.env["runtime"]["OutputManager"].temp_disable_speech() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/time.py000066400000000000000000000017311513650123000237120ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("presents the time") def run(self): time_format = self.env["runtime"]["SettingsManager"].get_setting( "general", "time_format" ) # get the time formatted time_string = datetime.datetime.strftime( datetime.datetime.now(), time_format ) # present the time via speak and braile, there is no soundicon, # interrupt the current speech self.env["runtime"]["OutputManager"].present_text( time_string, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_auto_indent.py000066400000000000000000000024101513650123000266210ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "enables or disables automatic reading of indentation level changes" ) def run(self): self.env["runtime"]["SettingsManager"].set_setting( "general", "auto_present_indent", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_present_indent" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_present_indent" ): self.env["runtime"]["OutputManager"].present_text( _("autoindent enabled"), sound_icon="", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("autoindent disabled"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_auto_read.py000066400000000000000000000023731513650123000262630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "enables or disables automatic reading of new text as it appears" ) def run(self): self.env["runtime"]["SettingsManager"].set_setting( "speech", "auto_read_incoming", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): self.env["runtime"]["OutputManager"].present_text( _("autoread enabled"), sound_icon="", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("autoread disabled"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_auto_spell_check.py000066400000000000000000000023361513650123000276230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables automatic spell checking") def run(self): self.env["runtime"]["SettingsManager"].set_setting( "general", "auto_spell_check", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_spell_check" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_spell_check" ): self.env["runtime"]["OutputManager"].present_text( _("auto spellcheck enabled"), sound_icon="", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("auto spellcheck disabled"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_auto_time.py000066400000000000000000000025231513650123000263030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "Enables or disables automatic reading of time after specified " "intervals" ) def run(self): self.env["runtime"]["SettingsManager"].set_setting( "time", "enabled", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "enabled" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("Automatic time announcement enabled"), sound_icon="", interrupt=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("Automatic time announcement disabled"), sound_icon="", interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_barrier.py000066400000000000000000000022641513650123000257450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables the barrier mode") def run(self): self.env["runtime"]["SettingsManager"].set_setting( "barrier", "enabled", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("barrier mode enabled"), sound_icon="", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("barrier mode disabled"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_emoticons.py000066400000000000000000000023441513650123000263160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "enables or disables announcement of emoticons instead of chars" ) def run(self): self.env["runtime"]["SettingsManager"].set_setting( "general", "emoticons", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "emoticons" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "emoticons" ): self.env["runtime"]["OutputManager"].present_text( _("emoticons enabled"), sound_icon="", interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("emoticons disabled"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_has_attribute.py000066400000000000000000000024621513650123000271550ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables the announcement of attributes") def run(self): self.env["runtime"]["SettingsManager"].set_setting( "general", "hasattributes", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ): self.env["runtime"]["OutputManager"].present_text( _("announcement of attributes enabled"), sound_icon="", interrupt=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("announcement of attributes disabled"), sound_icon="", interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_highlight_tracking.py000066400000000000000000000053771513650123000301600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables tracking of highlighted text") def run(self): highlight_mode = self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "highlight" ) cursor_mode = self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "cursor" ) table_mode = self.env["runtime"]["TableManager"].is_table_mode() self.env["runtime"]["DebugManager"].write_debug_out( f"toggle_highlight_tracking: highlight={highlight_mode}, " f"cursor={cursor_mode}, table={table_mode}", debug.DebugLevel.INFO ) # Cycle through modes: highlight → cursor → table → highlight if highlight_mode and not table_mode: # Switch to cursor mode self.env["runtime"]["SettingsManager"].set_setting( "focus", "highlight", "False" ) self.env["runtime"]["SettingsManager"].set_setting( "focus", "cursor", "True" ) self.env["runtime"]["TableManager"].set_table_mode(False) self.env["runtime"]["OutputManager"].present_text( _("cursor tracking"), sound_icon="", interrupt=True ) elif cursor_mode and not table_mode: # Switch to table mode self.env["runtime"]["SettingsManager"].set_setting( "focus", "highlight", "False" ) self.env["runtime"]["SettingsManager"].set_setting( "focus", "cursor", "False" ) self.env["runtime"]["TableManager"].set_table_mode(True) self.env["runtime"]["OutputManager"].present_text( _("table mode"), sound_icon="", interrupt=True ) else: # Switch to highlight mode (default) - also handles stuck table mode self.env["runtime"]["SettingsManager"].set_setting( "focus", "highlight", "True" ) self.env["runtime"]["SettingsManager"].set_setting( "focus", "cursor", "False" ) self.env["runtime"]["TableManager"].set_table_mode(False) self.env["runtime"]["OutputManager"].present_text( _("highlight tracking"), sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_output.py000066400000000000000000000027311513650123000256560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("toggles all output settings") def run(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ) or self.env["runtime"]["SettingsManager"].get_setting_as_bool( "sound", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("Fenrir muted"), sound_icon="Accept", interrupt=True ) self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", "False" ) self.env["runtime"]["SettingsManager"].set_setting( "sound", "enabled", "False" ) else: self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", "True" ) self.env["runtime"]["SettingsManager"].set_setting( "sound", "enabled", "True" ) self.env["runtime"]["OutputManager"].present_text( _("Fenrir unmuted"), sound_icon="Cancel", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_punctuation_level.py000066400000000000000000000017731513650123000300630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if self.env["runtime"]["PunctuationManager"].cycle_punctuation(): self.env["runtime"]["OutputManager"].present_text( self.env["runtime"]["SettingsManager"].get_setting( "general", "punctuation_level" ), interrupt=True, ignore_punctuation=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("No punctuation found."), interrupt=True, ignore_punctuation=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_sound.py000066400000000000000000000024071513650123000254460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables sound") def run(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "sound", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("sound disabled"), sound_icon="SoundOff", interrupt=True ) self.env["runtime"]["SettingsManager"].set_setting( "sound", "enabled", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "sound", "enabled" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "sound", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("sound enabled"), sound_icon="SoundOn", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_speech.py000066400000000000000000000025251513650123000255660ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables speech") def run(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ): self.env["runtime"]["OutputManager"].interrupt_output() self.env["runtime"]["OutputManager"].present_text( _("speech disabled"), sound_icon="SpeechOff", interrupt=True ) self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", str( not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ) ), ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ): self.env["runtime"]["OutputManager"].present_text( _("speech enabled"), sound_icon="SpeechOn", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_tutorial_mode.py000066400000000000000000000021721513650123000271640ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): self.env["runtime"]["HelpManager"].toggle_tutorial_mode() return _( "Exiting tutorial mode. To enter tutorial mode again press Fenrir+f1" ) def run(self): self.env["runtime"]["HelpManager"].toggle_tutorial_mode() if self.env["runtime"]["HelpManager"].is_tutorial_mode(): self.env["runtime"]["OutputManager"].present_text( _( "Entering tutorial mode. In this mode commands are described but not " "executed. You can move through the list of commands with the up and " "down arrow keys. To Exit tutorial mode press Fenrir+f1." ), interrupt=True, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/toggle_vmenu_mode.py000066400000000000000000000016641513650123000264600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): self.env["runtime"]["VmenuManager"].toggle_vmenu_mode() return _("Entering or Leaving v menu mode.") def run(self): self.env["runtime"]["VmenuManager"].toggle_vmenu_mode() if self.env["runtime"]["VmenuManager"].get_active(): self.env["runtime"]["OutputManager"].present_text( _("Entering v menu."), interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Leaving v menu."), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser.py000066400000000000000000000245111513650123000256250ustar00rootroot00000000000000#!/usr/bin/env python3 import subprocess import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.testMessage = "This is a voice test. The quick brown fox jumps over the lazy dog." self.modules = [] self.voices = [] self.module_index = 0 self.voice_index = 0 self.browserActive = False self.originalBindings = {} self.lastAnnounceTime = 0 def shutdown(self): pass def get_description(self): return "Interactive voice browser with arrow key navigation" def run(self): if self.browserActive: self.exit_voice_browser() return self.env["runtime"]["OutputManager"].present_text( "Starting voice browser", interrupt=True ) # Load modules self.modules = self.get_speechd_modules() if not self.modules: self.env["runtime"]["OutputManager"].present_text( "No speech modules found", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Error") return # Set current module current_module = self.env["runtime"]["SettingsManager"].get_setting( "speech", "module" ) if current_module and current_module in self.modules: self.module_index = self.modules.index(current_module) # Load voices self.load_voices_for_current_module() # Set current voice current_voice = self.env["runtime"]["SettingsManager"].get_setting( "speech", "voice" ) if current_voice and current_voice in self.voices: self.voice_index = self.voices.index(current_voice) # Enter browser mode self.enter_voice_browser() self.announce_current_selection() def enter_voice_browser(self): """Enter voice browser mode with custom key bindings""" self.browserActive = True # Store original bindings self.originalBindings = self.env["bindings"].copy() # Override navigation keys for voice browsing # Use lambda to capture self and create bound methods self.env["bindings"][str([1, ["KEY_UP"]])] = "VOICE_BROWSER_PREV_VOICE" self.env["bindings"][ str([1, ["KEY_DOWN"]]) ] = "VOICE_BROWSER_NEXT_VOICE" self.env["bindings"][ str([1, ["KEY_LEFT"]]) ] = "VOICE_BROWSER_PREV_MODULE" self.env["bindings"][ str([1, ["KEY_RIGHT"]]) ] = "VOICE_BROWSER_NEXT_MODULE" self.env["bindings"][str([1, ["KEY_ENTER"]])] = "VOICE_BROWSER_TEST" self.env["bindings"][str([1, ["KEY_SPACE"]])] = "VOICE_BROWSER_APPLY" self.env["bindings"][str([1, ["KEY_ESC"]])] = "VOICE_BROWSER_EXIT" # Register browser commands self.register_browser_commands() self.env["runtime"]["OutputManager"].present_text( "Voice browser active", interrupt=True ) self.env["runtime"]["OutputManager"].present_text( "Up/Down=voices, Left/Right=modules, Enter=test, Space=apply, Esc=exit", interrupt=True, ) def register_browser_commands(self): """Register voice browser commands with the command manager""" # Create command objects for voice browser actions CommandManager = self.env["runtime"]["CommandManager"] # This is a hack - we'll store references to our methods in the environment # so the key handlers can call them if "voiceBrowserInstance" not in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"] = self def exit_voice_browser(self): """Exit voice browser and restore normal key bindings""" if not self.browserActive: return self.browserActive = False # Restore original bindings self.env["bindings"] = self.originalBindings # Clean up if "voiceBrowserInstance" in self.env["runtime"]: del self.env["runtime"]["voiceBrowserInstance"] self.env["runtime"]["OutputManager"].present_text( "Voice browser exited", interrupt=True ) def load_voices_for_current_module(self): """Load voices for current module""" if self.module_index < len(self.modules): module = self.modules[self.module_index] self.voices = self.get_module_voices(module) self.voice_index = 0 # Reset to first voice when changing modules def announce_current_selection(self): """Announce current module and voice""" # Throttle announcements to avoid spam now = time.time() if now - self.lastAnnounceTime < 0.3: return self.lastAnnounceTime = now if not self.modules or self.module_index >= len(self.modules): return module = self.modules[self.module_index] if self.voices and self.voice_index < len(self.voices): voice = self.voices[self.voice_index] self.env["runtime"]["OutputManager"].present_text( f"{module}: {voice} ({self.voice_index + 1}/{len(self.voices)})", interrupt=True, ) else: self.env["runtime"]["OutputManager"].present_text( f"{module}: No voices", interrupt=True ) def next_voice(self): """Move to next voice""" if not self.voices: return self.voice_index = (self.voice_index + 1) % len(self.voices) self.announce_current_selection() def prev_voice(self): """Move to previous voice""" if not self.voices: return self.voice_index = (self.voice_index - 1) % len(self.voices) self.announce_current_selection() def next_module(self): """Move to next module""" self.module_index = (self.module_index + 1) % len(self.modules) self.load_voices_for_current_module() self.announce_current_selection() def prev_module(self): """Move to previous module""" self.module_index = (self.module_index - 1) % len(self.modules) self.load_voices_for_current_module() self.announce_current_selection() def test_voice(self): """Test current voice""" if not self.voices or self.voice_index >= len(self.voices): self.env["runtime"]["OutputManager"].present_text( "No voice selected", interrupt=True ) return module = self.modules[self.module_index] voice = self.voices[self.voice_index] self.env["runtime"]["OutputManager"].present_text( "Testing...", interrupt=True ) if self.preview_voice(module, voice): # Store for apply command self.env["commandBuffer"]["lastTestedModule"] = module self.env["commandBuffer"]["lastTestedVoice"] = voice self.env["runtime"]["OutputManager"].play_sound("Accept") else: self.env["runtime"]["OutputManager"].play_sound("Error") def apply_voice(self): """Apply current voice to Fenrir""" if not self.voices or self.voice_index >= len(self.voices): return module = self.modules[self.module_index] voice = self.voices[self.voice_index] try: SettingsManager = self.env["runtime"]["SettingsManager"] SettingsManager.settings["speech"]["driver"] = "speechdDriver" SettingsManager.settings["speech"]["module"] = module SettingsManager.settings["speech"]["voice"] = voice if "SpeechDriver" in self.env["runtime"]: SpeechDriver = self.env["runtime"]["SpeechDriver"] SpeechDriver.shutdown() SpeechDriver.initialize(self.env) self.env["runtime"]["OutputManager"].present_text( "Voice applied!", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Accept") except Exception as e: self.env["runtime"]["OutputManager"].present_text( "Apply failed", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Error") def preview_voice(self, module, voice): """Test voice with spd-say""" try: cmd = ["spd-say", "-o", module, "-y", voice, self.testMessage] result = subprocess.run(cmd, timeout=10) return result.returncode == 0 except Exception: return False def get_speechd_modules(self): """Get available speech modules""" try: result = subprocess.run( ["spd-say", "-O"], capture_output=True, text=True, timeout=10 ) if result.returncode == 0: lines = result.stdout.strip().split("\n") return [line.strip() for line in lines[1:] if line.strip()] except Exception: pass return [] def get_module_voices(self, module): """Get voices for module""" try: result = subprocess.run( ["spd-say", "-o", module, "-L"], capture_output=True, text=True, timeout=10, ) if result.returncode == 0: lines = result.stdout.strip().split("\n") voices = [] for line in lines[1:]: if not line.strip(): continue if module.lower() == "espeak-ng": voice = self.process_espeak_voice(line) if voice: voices.append(voice) else: voices.append(line.strip()) return voices except Exception: pass return [] def process_espeak_voice(self, voiceLine): """Process espeak voice format""" parts = [p for p in voiceLine.split() if p] if len(parts) < 2: return None lang_code = parts[-2].lower() variant = parts[-1].lower() return ( f"{lang_code}+{variant}" if variant and variant != "none" else lang_code ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_apply.py000066400000000000000000000010021513650123000270200ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: apply current voice" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].apply_voice() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_exit.py000066400000000000000000000010071513650123000266510ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: exit browser mode" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].exit_voice_browser() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_next_module.py000066400000000000000000000007721513650123000302330ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: next module" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].next_module() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_next_voice.py000066400000000000000000000007701513650123000300510ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: next voice" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].next_voice() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_prev_module.py000066400000000000000000000007761513650123000302350ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: previous module" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].prev_module() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_prev_voice.py000066400000000000000000000007741513650123000300530ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: previous voice" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].prev_voice() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_safe.py000066400000000000000000000200061513650123000266160ustar00rootroot00000000000000#!/usr/bin/env python3 import subprocess import threading import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.testMessage = ( "Voice test: The quick brown fox jumps over the lazy dog." ) def shutdown(self): pass def get_description(self): return "Safe voice browser - cycles through voices without hanging" def run(self): try: self.env["runtime"]["OutputManager"].present_text( "Starting safe voice browser", interrupt=True ) # Get modules with timeout protection modules = self.get_speechd_modules_with_timeout() if not modules: self.env["runtime"]["OutputManager"].present_text( "No speech modules found", interrupt=True ) return # Get current position from commandBuffer or start fresh module_index = self.env["commandBuffer"].get( "safeBrowserModuleIndex", 0 ) voice_index = self.env["commandBuffer"].get( "safeBrowserVoiceIndex", 0 ) # Ensure valid module index if module_index >= len(modules): module_index = 0 current_module = modules[module_index] self.env["runtime"]["OutputManager"].present_text( f"Loading voices for {current_module}...", interrupt=True ) # Get voices with timeout protection voices = self.get_module_voices_with_timeout(current_module) if not voices: self.env["runtime"]["OutputManager"].present_text( f"No voices in {current_module}, trying next module", interrupt=True, ) module_index = (module_index + 1) % len(modules) self.env["commandBuffer"][ "safeBrowserModuleIndex" ] = module_index self.env["commandBuffer"]["safeBrowserVoiceIndex"] = 0 return # Ensure valid voice index if voice_index >= len(voices): voice_index = 0 current_voice = voices[voice_index] # Announce current selection self.env["runtime"]["OutputManager"].present_text( f"Module: {current_module} ({module_index + 1}/{len(modules)})", interrupt=True, ) self.env["runtime"]["OutputManager"].present_text( f"Voice: {current_voice} ({voice_index + 1}/{len(voices)})", interrupt=True, ) # Test voice in background thread to avoid blocking self.env["runtime"]["OutputManager"].present_text( "Testing voice...", interrupt=True ) # Use threading to prevent freezing test_thread = threading.Thread( target=self.test_voice_async, args=(current_module, current_voice), ) test_thread.daemon = True test_thread.start() # Store tested voice for apply command self.env["commandBuffer"]["lastTestedModule"] = current_module self.env["commandBuffer"]["lastTestedVoice"] = current_voice # Advance to next voice for next run voice_index += 1 if voice_index >= len(voices): voice_index = 0 module_index = (module_index + 1) % len(modules) # Store position for next run self.env["commandBuffer"]["safeBrowserModuleIndex"] = module_index self.env["commandBuffer"]["safeBrowserVoiceIndex"] = voice_index # Give instructions self.env["runtime"]["OutputManager"].present_text( "Run again for next voice, or use apply voice command", interrupt=True, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Voice browser error: {str(e)}", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Error") def test_voice_async(self, module, voice): """Test voice in background thread to avoid blocking""" try: # Run with strict timeout cmd = ["spd-say", "-o", module, "-y", voice, self.testMessage] result = subprocess.run(cmd, timeout=5, capture_output=True) # Schedule success sound for main thread if result.returncode == 0: # We can't call OutputManager from background thread safely # So we'll just let the main thread handle feedback pass except subprocess.TimeoutExpired: # Voice test timed out - this is okay, don't crash pass except Exception: # Any other error - also okay, don't crash pass def get_speechd_modules_with_timeout(self): """Get speech modules with timeout protection""" try: result = subprocess.run( ["spd-say", "-O"], capture_output=True, text=True, timeout=3 ) if result.returncode == 0: lines = result.stdout.strip().split("\n") modules = [line.strip() for line in lines[1:] if line.strip()] # Limit to first 10 modules to prevent overload return modules[:10] except subprocess.TimeoutExpired: self.env["runtime"]["OutputManager"].present_text( "Module detection timed out", interrupt=True ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Module detection failed: {str(e)}", interrupt=True ) return [] def get_module_voices_with_timeout(self, module): """Get voices with timeout and limits""" try: result = subprocess.run( ["spd-say", "-o", module, "-L"], capture_output=True, text=True, timeout=5, ) if result.returncode == 0: lines = result.stdout.strip().split("\n") voices = [] for line in lines[1:]: if not line.strip(): continue if module.lower() == "espeak-ng": voice = self.process_espeak_voice(line) if voice: voices.append(voice) else: voices.append(line.strip()) # Limit voice count to prevent memory issues if len(voices) > 1000: self.env["runtime"]["OutputManager"].present_text( f"found {len(voices)} voices, limiting to first 1000", interrupt=True, ) voices = voices[:1000] return voices except subprocess.TimeoutExpired: self.env["runtime"]["OutputManager"].present_text( f"Voice detection for {module} timed out", interrupt=True ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Voice detection failed: {str(e)}", interrupt=True ) return [] def process_espeak_voice(self, voiceLine): """Process espeak voice format""" try: parts = [p for p in voiceLine.split() if p] if len(parts) < 2: return None lang_code = parts[-2].lower() variant = parts[-1].lower() return ( f"{lang_code}+{variant}" if variant and variant != "none" else lang_code ) except Exception: return None def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/commands/voice_browser_test.py000066400000000000000000000010001513650123000266500ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Voice browser: test current voice" def run(self): if "voiceBrowserInstance" in self.env["runtime"]: self.env["runtime"]["voiceBrowserInstance"].test_voice() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/help/000077500000000000000000000000001513650123000215275ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/help/Readme.txt000066400000000000000000000001411513650123000234610ustar00rootroot00000000000000this folder contains help and tutorial related functions. those are not bindable but hard coded. fenrir/src/fenrirscreenreader/commands/help/__init__.py000077500000000000000000000000001513650123000236310ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/help/curr_help.py000066400000000000000000000011721513650123000240650ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current help message") def run(self): text = self.env["runtime"]["HelpManager"].get_help_for_current_index() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/help/next_help.py000066400000000000000000000012571513650123000240740ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next help message") def run(self): self.env["runtime"]["HelpManager"].next_index() text = self.env["runtime"]["HelpManager"].get_help_for_current_index() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/help/prev_help.py000066400000000000000000000012571513650123000240720ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get prev help message") def run(self): self.env["runtime"]["HelpManager"].prev_index() text = self.env["runtime"]["HelpManager"].get_help_for_current_index() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onByteInput/000077500000000000000000000000001513650123000230575ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onByteInput/10000-shut_up.py000066400000000000000000000027561513650123000255700ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "interrupt_on_key_press" ): return if self.env["runtime"]["InputManager"].no_key_pressed(): return if self.env["runtime"]["ScreenManager"].is_screen_change(): return if len(self.env["input"]["curr_input"]) <= len( self.env["input"]["prev_input"] ): return # if the filter is set if ( self.env["runtime"]["SettingsManager"] .get_setting("keyboard", "interrupt_on_key_press_filter") .strip() != "" ): filter_list = ( self.env["runtime"]["SettingsManager"] .get_setting("keyboard", "interrupt_on_key_press_filter") .split(",") ) for curr_key in self.env["input"]["curr_input"]: if curr_key not in filter_list: return self.env["runtime"]["OutputManager"].interrupt_output() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onByteInput/15000-enable_temp_speech.py000066400000000000000000000022251513650123000276770ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("disables speech until next keypress") def run(self): if not self.env["commandBuffer"]["enableSpeechOnKeypress"]: return self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", str(self.env["commandBuffer"]["enableSpeechOnKeypress"]), ) self.env["commandBuffer"]["enableSpeechOnKeypress"] = False # Also disable prompt watching since speech was manually re-enabled if "silenceUntilPrompt" in self.env["commandBuffer"]: self.env["commandBuffer"]["silenceUntilPrompt"] = False self.env["runtime"]["OutputManager"].present_text( _("speech enabled"), sound_icon="SpeechOn", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onByteInput/__init__.py000066400000000000000000000000001513650123000251560ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onCursorChange/000077500000000000000000000000001513650123000235175ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onCursorChange/15000-char_echo.py000066400000000000000000000046151513650123000264550ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Announces characters as they are typed") def run(self): # enabled? active = self.env["runtime"]["SettingsManager"].get_setting_as_int( "keyboard", "char_echo_mode" ) # 0 = off if active == 0: return # 2 = caps only if active == 2: if not self.env["input"]["new_caps_lock"]: return # big changes are no char (but the value is bigger than one maybe the # differ needs longer than you can type, so a little strange random # buffer for now) x_move = abs( self.env["screen"]["new_cursor"]["x"] - self.env["screen"]["old_cursor"]["x"] ) if x_move > 3: return if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: if self.env["runtime"][ "InputManager" ].get_last_deepest_input() in [["KEY_TAB"]]: return elif self.env["runtime"]["InputManager"].get_shortcut_type() in [ "BYTE" ]: if self.env["runtime"]["ByteManager"].get_last_byte_key() in [ b" ", b"\t", ]: return # detect deletion or chilling if ( self.env["screen"]["new_cursor"]["x"] <= self.env["screen"]["old_cursor"]["x"] ): return # is there any change? if not self.env["runtime"]["ScreenManager"].is_delta(): return # filter unneded space on word begin curr_delta = self.env["screen"]["new_delta"] if ( len(curr_delta.strip()) != len(curr_delta) and curr_delta.strip() != "" ): curr_delta = curr_delta.strip() self.env["runtime"]["OutputManager"].present_text( curr_delta, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/25000-word_echo_type.py000066400000000000000000000043731513650123000275560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Announces completed words during typing") def run(self): # is it enabled? if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "word_echo" ): return # is navigation? if ( self.env["screen"]["new_cursor"]["x"] - self.env["screen"]["old_cursor"]["x"] != 1 ): return # just when cursor move worddetection is needed if not self.env["runtime"][ "CursorManager" ].is_cursor_horizontal_move(): return # for now no new line if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return # currently writing if self.env["runtime"]["ScreenManager"].is_delta(): return # get the word new_content = self.env["screen"]["new_content_text"].split("\n")[ self.env["screen"]["new_cursor"]["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word( self.env["screen"]["new_cursor"]["x"], 0, new_content ) ) # is there a word? if curr_word == "": return # at the end of a word if ( self.env["screen"]["new_cursor"]["x"] >= len(new_content) or not new_content[self.env["screen"]["new_cursor"]["x"]].isspace() ): return # at the end of a word if (x + len(curr_word) != self.env["screen"]["new_cursor"]["x"]) and ( x + len(curr_word) != self.env["screen"]["new_cursor"]["x"] - 1 ): return self.env["runtime"]["OutputManager"].present_text( curr_word, interrupt=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/35000-spell_check.py000066400000000000000000000132111513650123000270100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os import string from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils initialized = False try: import enchant initialized = True except Exception as e: pass class command: def __init__(self): self.language = "" self.spellChecker = "" def initialize(self, environment): self.env = environment self.update_spell_language() def shutdown(self): pass def get_description(self): return "No Description found" def update_spell_language(self): if not initialized: return self.spellChecker = enchant.Dict( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) ) self.language = self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) def run(self): if not initialized: return if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_spell_check" ): return if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "spell_check_language" ) != self.language ): try: self.update_spell_language() except Exception as e: return # just when horizontal cursor move worddetection is needed if not self.env["runtime"][ "CursorManager" ].is_cursor_horizontal_move(): return # for now no new line if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return # more than a keyecho? if len(self.env["screen"]["new_delta"]) > 1: return # deletion if self.env["runtime"]["ScreenManager"].is_negative_delta(): return # first place could not be the end of a word if self.env["screen"]["new_cursor"]["x"] == 0: return # get the word (just for speedup only look at current line new_content = self.env["screen"]["new_content_text"].split("\n")[ self.env["screen"]["new_cursor"]["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word( self.env["screen"]["new_cursor"]["x"], 0, new_content ) ) # was this a typed word? if self.env["runtime"]["ScreenManager"].is_delta(): if not ( new_content[self.env["screen"]["old_cursor"]["x"]] in string.whitespace + '!"#$%&()*+,-./:;<=>?@[\\]^_{|}~' and x != self.env["screen"]["old_cursor"]["x"] ): return else: curr_word = curr_word.strip( string.whitespace + '!"#$%&()*+,-./:;<=>?@[\\]^_{|}~' ) else: # or just arrow arround? if not new_content[ self.env["screen"]["new_cursor"]["x"] ].isspace(): return if ( x + len(curr_word) != self.env["screen"]["new_cursor"]["x"] ) and ( x + len(curr_word) != self.env["screen"]["new_cursor"]["x"] - 1 ): return # just on end of word if self.env["screen"]["new_cursor"]["x"] > 0: if ( not new_content[ self.env["screen"]["old_cursor"]["x"] - 1 ].lower() in string.ascii_lowercase ): return # ignore bash buildins if curr_word in [ "cd", "fg", "bg", "alias", "bind", "dir", "caller", "buildin", "command", "declare", "echo", "enable", "help", "let", "local", "logout", "mapfile", "printf", "read", "readarray", "source", "type", "typeset", "ulimit", "unalias", ]: return # ignore the application name if curr_word.upper() == "FENRIR": return if curr_word[0] == "-": return if curr_word[0] == "/": return if curr_word[0] == "#": return if curr_word.startswith("./"): return if "@" in curr_word and "." in curr_word: return if curr_word[0] == "@": return if curr_word.isnumeric(): return if curr_word.isdecimal(): return if curr_word.isspace(): return try: if os.path.exists("/bin/" + curr_word): return except Exception as e: pass try: if os.path.exists("/usr/bin/" + curr_word): return except Exception as e: pass try: if os.path.exists("/sbin/" + curr_word): return except Exception as e: pass if not self.spellChecker.check(curr_word): self.env["runtime"]["OutputManager"].present_text( _("misspelled"), sound_icon="mispell", interrupt=False, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/45000-char_delete_echo.py000066400000000000000000000033361513650123000300010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "char_delete_echo" ): return # detect typing or chilling if ( self.env["screen"]["new_cursor"]["x"] >= self.env["screen"]["old_cursor"]["x"] ): return # More than just a deletion happend if self.env["runtime"]["ScreenManager"].is_delta(ignoreSpace=True): return # no deletion if not self.env["runtime"]["ScreenManager"].is_negative_delta(): return # too much for a single backspace... # word begin produce a diff wiht len == 2 |a | others with 1 |a| if len(self.env["screen"]["newNegativeDelta"]) > 2: return curr_negative_delta = self.env["screen"]["newNegativeDelta"] if ( len(curr_negative_delta.strip()) != len(curr_negative_delta) and curr_negative_delta.strip() != "" ): curr_negative_delta = curr_negative_delta.strip() self.env["runtime"]["OutputManager"].present_text( curr_negative_delta, interrupt=True, ignore_punctuation=True, announce_capital=True, flush=False, ) def set_callback(self, callback): pass 50000-present_char_if_cursor_change_horizontal.py000066400000000000000000000071721513650123000347710ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onCursorChange#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import char_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "cursor" ): return if self.env["runtime"]["ScreenManager"].is_screen_change(): return # detect an change on the screen, we just want to cursor arround, so no # change should appear if self.env["runtime"]["ScreenManager"].is_delta(): return if self.env["runtime"]["ScreenManager"].is_negative_delta(): return # is a vertical change? if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return # is it a horizontal change? if not self.env["runtime"][ "CursorManager" ].is_cursor_horizontal_move(): return # echo word insteed of char if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "word_echo" ): if ( abs( self.env["screen"]["old_cursor"]["x"] - self.env["screen"]["new_cursor"]["x"] ) != 1 ): # get the word new_content = self.env["screen"]["new_content_text"].split( "\n" )[self.env["screen"]["new_cursor"]["y"]] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word( self.env["screen"]["new_cursor"]["x"], 0, new_content ) ) if self.env["screen"]["new_cursor"]["x"] == x: return x, y, curr_char = char_utils.get_current_char( self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], self.env["screen"]["new_content_text"], ) # Don't interrupt ongoing auto-read announcements do_interrupt = True if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): do_interrupt = False if curr_char.isspace(): # Only announce spaces during pure navigation (arrow keys) # Check if this is really navigation by looking at input history if self.env["runtime"]["InputManager"].get_shortcut_type() in [ "KEY" ] and self.env["runtime"]["InputManager"].get_last_deepest_input()[ 0 ] in [ "KEY_LEFT", "KEY_RIGHT", "KEY_UP", "KEY_DOWN", ]: char_utils.present_char_for_review( self.env, curr_char, interrupt=do_interrupt, announce_capital=True, flush=False, ) else: self.env["runtime"]["OutputManager"].present_text( curr_char, interrupt=do_interrupt, ignore_punctuation=True, announce_capital=True, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/55000-tab_completion.py000066400000000000000000000144471513650123000275510ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment # Initialize tab completion state tracking if "tabCompletion" not in self.env["commandBuffer"]: self.env["commandBuffer"]["tabCompletion"] = { "lastTabTime": 0, "pendingCompletion": None, "retryCount": 0 } def shutdown(self): pass def get_description(self): return _("Announces tab completions when detected") def _is_recent_tab_input(self): """Check if TAB was pressed recently (within 200ms window)""" current_time = time.time() tab_detected = False # Check KEY mode if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: if (self.env["runtime"]["InputManager"].get_last_deepest_input() in [["KEY_TAB"]]): tab_detected = True self.env["commandBuffer"]["tabCompletion"]["lastTabTime"] = current_time # Check BYTE mode elif self.env["runtime"]["InputManager"].get_shortcut_type() in ["BYTE"]: for currByte in self.env["runtime"]["ByteManager"].get_last_byte_key(): if currByte == 9: # Tab character tab_detected = True self.env["commandBuffer"]["tabCompletion"]["lastTabTime"] = current_time # Check if tab was pressed recently (200ms window) if not tab_detected: time_since_tab = current_time - self.env["commandBuffer"]["tabCompletion"]["lastTabTime"] if time_since_tab <= 0.2: # 200ms window tab_detected = True return tab_detected def _is_flexible_completion_match(self, x_move, delta_text): """Use flexible matching instead of strict equality""" if not delta_text: return False delta_len = len(delta_text) # Exact match (preserve original behavior) if x_move == delta_len: return True # Flexible range: allow ±2 characters difference # Handles spacing adjustments and unicode width variations if abs(x_move - delta_len) <= 2 and delta_len > 0: return True # For longer completions, allow proportional variance if delta_len > 10 and abs(x_move - delta_len) <= (delta_len * 0.2): return True return False def _detect_completion_patterns(self, delta_text): """Detect common tab completion patterns for improved accuracy""" if not delta_text: return False delta_stripped = delta_text.strip() # File extension completion if '.' in delta_stripped and delta_stripped.count('.') <= 2: return True # Path completion (contains / or \) if '/' in delta_stripped or '\\' in delta_stripped: return True # Command parameter completion (starts with -) if delta_stripped.startswith('-') and len(delta_stripped) > 1: return True # Word boundary completion (alphanumeric content) if delta_stripped.isalnum() and len(delta_stripped) >= 2: return True return False def run(self): """Enhanced tab completion detection with improved reliability""" # Basic cursor movement check (preserve original logic) x_move = ( self.env["screen"]["new_cursor"]["x"] - self.env["screen"]["old_cursor"]["x"] ) if x_move <= 0: return # Enhanced tab input detection with persistence tab_detected = self._is_recent_tab_input() # Fallback for non-tab movements (preserve original thresholds) if not tab_detected: if x_move < 5: return # Screen delta availability check if not self.env["runtime"]["ScreenManager"].is_delta(): # If tab was detected but no delta yet, store for potential retry if tab_detected and self.env["commandBuffer"]["tabCompletion"]["retryCount"] < 2: self.env["commandBuffer"]["tabCompletion"]["pendingCompletion"] = { "x_move": x_move, "timestamp": time.time() } self.env["commandBuffer"]["tabCompletion"]["retryCount"] += 1 return delta_text = self.env["screen"]["new_delta"] # Enhanced correlation checking with flexible matching if not self._is_flexible_completion_match(x_move, delta_text): # Additional pattern-based validation for edge cases if not (tab_detected and self._detect_completion_patterns(delta_text)): return # Reset retry counter on successful detection self.env["commandBuffer"]["tabCompletion"]["retryCount"] = 0 self.env["commandBuffer"]["tabCompletion"]["pendingCompletion"] = None # Mark that we've handled this delta to prevent duplicate announcements # This prevents the incoming text handler from also announcing the same content self.env["commandBuffer"]["tabCompletion"]["lastProcessedDelta"] = delta_text self.env["commandBuffer"]["tabCompletion"]["lastProcessedTime"] = time.time() # Text filtering and announcement (preserve original behavior) curr_delta = delta_text if (len(curr_delta.strip()) != len(curr_delta) and curr_delta.strip() != ""): curr_delta = curr_delta.strip() # Don't interrupt ongoing auto-read announcements do_interrupt = True if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): do_interrupt = False # Enhanced announcement with better handling of empty completions if curr_delta: self.env["runtime"]["OutputManager"].present_text( curr_delta, interrupt=do_interrupt, announce_capital=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/60000-word_echo_navigation.py000066400000000000000000000041651513650123000307320ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import word_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): # is navigation? if ( not abs( self.env["screen"]["old_cursor"]["x"] - self.env["screen"]["new_cursor"]["x"] ) > 1 ): return # just when cursor move worddetection is needed if not self.env["runtime"][ "CursorManager" ].is_cursor_horizontal_move(): return # for now no new line if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return # currently writing if self.env["runtime"]["ScreenManager"].is_delta(): return # get the word new_content = self.env["screen"]["new_content_text"].split("\n")[ self.env["screen"]["new_cursor"]["y"] ] x, y, curr_word, end_of_screen, line_break = ( word_utils.get_current_word( self.env["screen"]["new_cursor"]["x"], 0, new_content ) ) # is there a word? if curr_word == "": return # at the start of a word if (x + len(curr_word) != self.env["screen"]["new_cursor"]["x"]) and ( self.env["screen"]["new_cursor"]["x"] != x ): return # Don't interrupt ongoing auto-read announcements do_interrupt = True if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): do_interrupt = False self.env["runtime"]["OutputManager"].present_text( curr_word, interrupt=do_interrupt, flush=False ) def set_callback(self, callback): pass 65000-present_line_if_cursor_change_vertical.py000066400000000000000000000074731513650123000344350ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onCursorChange#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): self.lastIdent = -1 def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "cursor" ): return if self.env["runtime"]["ScreenManager"].is_screen_change(): self.lastIdent = 0 return # Don't announce cursor movements when auto-read is handling incoming text # This prevents interrupting ongoing auto-read announcements if self.env["runtime"]["ScreenManager"].is_delta(): return # is a vertical change? if not self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return x, y, curr_line = line_utils.get_current_line( self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], self.env["screen"]["new_content_text"], ) # Don't interrupt ongoing auto-read announcements with cursor movement do_interrupt = True if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): do_interrupt = False if curr_line.isspace(): self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=do_interrupt, flush=False ) else: # ident curr_ident = len(curr_line) - len(curr_line.lstrip()) if self.lastIdent == -1: self.lastIdent = curr_ident if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_present_indent" ): if self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "auto_present_indent_mode" ) in [0, 1]: if self.lastIdent != curr_ident: self.env["runtime"]["OutputManager"].play_frequence( curr_ident * 50, 0.1, interrupt=do_interrupt ) if self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "auto_present_indent_mode" ) in [0, 2]: if self.lastIdent != curr_ident: self.env["runtime"]["OutputManager"].present_text( _("indented ") + str(curr_ident) + " ", interrupt=do_interrupt, flush=False, ) do_interrupt = False # barrier say_line = curr_line if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ): is_barrier, barrierLine = self.env["runtime"][ "BarrierManager" ].handle_line_barrier( self.env["screen"]["new_content_text"].split("\n"), self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], ) if is_barrier: say_line = barrierLine # output self.env["runtime"]["OutputManager"].present_text( say_line, interrupt=do_interrupt, flush=False ) self.lastIdent = curr_ident def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/68000-auto_identation_horizontal.py000066400000000000000000000061171513650123000322100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils from fenrirscreenreader.utils import word_utils class command: def __init__(self): self.lastIdent = -1 def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "cursor" ): return if self.env["runtime"]["ScreenManager"].is_screen_change(): self.lastIdent = 0 return # Skip if no cursor movement at all if (not self.env["runtime"]["CursorManager"].is_cursor_horizontal_move() and not self.env["runtime"]["CursorManager"].is_cursor_vertical_move()): return x, y, curr_line = line_utils.get_current_line( self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], self.env["screen"]["new_content_text"], ) curr_ident = self.env["screen"]["new_cursor"]["x"] if curr_line.isspace(): # Don't beep for lines with only spaces - no meaningful indentation return # Lines with actual content - calculate proper indentation lastIdent, lastY, last_line = line_utils.get_current_line( self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], self.env["screen"]["old_content_text"], ) if curr_line.strip() != last_line.strip(): return if len(curr_line.lstrip()) == len(last_line.lstrip()): return curr_ident = len(curr_line) - len(curr_line.lstrip()) if curr_ident <= 0: return # Initialize lastIdent if needed if self.lastIdent == -1: self.lastIdent = curr_ident # Only beep/announce if indentation level has changed if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "auto_present_indent" ) and self.lastIdent != curr_ident: if self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "auto_present_indent_mode" ) in [0, 1]: self.env["runtime"]["OutputManager"].play_frequence( curr_ident * 50, 0.1, interrupt=False ) if self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "autePresentIndentMode" ) in [0, 2]: self.env["runtime"]["OutputManager"].present_text( _("indented ") + str(curr_ident) + " ", interrupt=False, flush=False, ) # Always update lastIdent for next comparison self.lastIdent = curr_ident def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/85000-has_attribute.py000066400000000000000000000023651513650123000274070ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import screen_utils class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Reads attributes of current cursor position") def run(self): # is it enabled? if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "hasattributes" ): return # is a vertical change? if not ( self.env["runtime"]["CursorManager"].is_cursor_vertical_move() or self.env["runtime"]["CursorManager"].is_cursor_horizontal_move() ): return cursor_pos = self.env["screen"]["new_cursor"] if not self.env["runtime"]["AttributeManager"].has_attributes( cursor_pos ): return self.env["runtime"]["OutputManager"].present_text( "has attribute", sound_icon="HasAttributes", interrupt=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/95000-exit_review_mode.py000066400000000000000000000013751513650123000301100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("exits review mode") def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "leave_review_on_cursor_change" ): return if self.env["runtime"]["CursorManager"].is_review_mode(): self.env["runtime"]["CursorManager"].clear_review_cursor() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onCursorChange/__init__.py000077500000000000000000000000001513650123000256210ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onHeartBeat/000077500000000000000000000000001513650123000227735ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onHeartBeat/2000-GetSessionInfo.py000077500000000000000000000012531513650123000266270ustar00rootroot00000000000000#!/usr/bin/env python3 import datetime import time from fenrirscreenreader.core.i18n import _ # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.last_time = datetime.datetime.now() self.lastDateString = "" self.lastTimeString = "" def shutdown(self): pass def get_description(self): return "No Description found" def run(self): self.env["runtime"]["ScreenDriver"].get_session_information() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onHeartBeat/55000-tab_completion_retry.py000066400000000000000000000101021513650123000302320ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Handles delayed retry for tab completion detection") def run(self): """Check for and process pending tab completions with slight delay""" # Only process if we have tab completion state if "tabCompletion" not in self.env["commandBuffer"]: return tab_state = self.env["commandBuffer"]["tabCompletion"] pending = tab_state.get("pendingCompletion") if not pending: return current_time = time.time() # Process pending completion after 50ms delay if current_time - pending["timestamp"] < 0.05: return # Check if screen delta is now available if not self.env["runtime"]["ScreenManager"].is_delta(): # Give up after 200ms total if current_time - pending["timestamp"] > 0.2: tab_state["pendingCompletion"] = None tab_state["retryCount"] = 0 return # Process the delayed completion delta_text = self.env["screen"]["new_delta"] x_move = pending["x_move"] # Use the same flexible matching logic as main tab completion match_found = self._is_flexible_completion_match(x_move, delta_text) if not match_found: # Try pattern-based detection as final fallback match_found = self._detect_completion_patterns(delta_text) if match_found and delta_text: # Mark that we've handled this delta to prevent duplicate announcements tab_state["lastProcessedDelta"] = delta_text tab_state["lastProcessedTime"] = current_time # Filter and announce the completion curr_delta = delta_text if (len(curr_delta.strip()) != len(curr_delta) and curr_delta.strip() != ""): curr_delta = curr_delta.strip() if curr_delta: self.env["runtime"]["OutputManager"].present_text( curr_delta, interrupt=True, announce_capital=True, flush=False ) # Clear pending completion tab_state["pendingCompletion"] = None tab_state["retryCount"] = 0 def _is_flexible_completion_match(self, x_move, delta_text): """Use flexible matching (duplicated from main command for heartbeat use)""" if not delta_text: return False delta_len = len(delta_text) # Exact match if x_move == delta_len: return True # Flexible range: allow ±2 characters difference if abs(x_move - delta_len) <= 2 and delta_len > 0: return True # For longer completions, allow proportional variance if delta_len > 10 and abs(x_move - delta_len) <= (delta_len * 0.2): return True return False def _detect_completion_patterns(self, delta_text): """Detect common tab completion patterns (duplicated from main command)""" if not delta_text: return False delta_stripped = delta_text.strip() # File extension completion if '.' in delta_stripped and delta_stripped.count('.') <= 2: return True # Path completion if '/' in delta_stripped or '\\' in delta_stripped: return True # Command parameter completion if delta_stripped.startswith('-') and len(delta_stripped) > 1: return True # Word boundary completion if delta_stripped.isalnum() and len(delta_stripped) >= 2: return True return False def set_callback(self, callback): passfenrir/src/fenrirscreenreader/commands/onHeartBeat/65000-prompt_flush.py000066400000000000000000000023161513650123000265410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): return if "pendingPromptText" not in self.env["commandBuffer"]: return pending_text = self.env["commandBuffer"]["pendingPromptText"] if not pending_text: return pending_time = self.env["commandBuffer"].get("pendingPromptTime", 0) delay = self.env["runtime"]["SettingsManager"].get_setting_as_float( "speech", "batch_flush_interval" ) if time.time() - pending_time < delay: return self.env["runtime"]["OutputManager"].present_text( pending_text, interrupt=False, flush=False ) self.env["commandBuffer"]["pendingPromptText"] = "" def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onHeartBeat/76000-time.py000077500000000000000000000066611513650123000247710ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.last_time = datetime.datetime.now() self.lastDateString = "" self.lastTimeString = "" def shutdown(self): pass def get_description(self): return "No Description found" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "enabled" ): return on_minutes = self.env["runtime"]["SettingsManager"].get_setting( "time", "on_minutes" ) delay_sec = self.env["runtime"]["SettingsManager"].get_setting_as_int( "time", "delay_sec" ) # no need if on_minutes == "" and delay_sec <= 0: return on_minutes = on_minutes.split(",") now = datetime.datetime.now() # ignore on_minutes if there is a delay_sec if delay_sec > 0: if int((now - self.last_time).total_seconds()) < delay_sec: return else: # should announce? if not str(now.minute).zfill(2) in on_minutes: return # already announced? if now.hour == self.last_time.hour: if now.minute == self.last_time.minute: return date_format = self.env["runtime"]["SettingsManager"].get_setting( "general", "date_format" ) date_string = datetime.datetime.strftime(now, date_format) present_date = ( self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "present_date" ) and self.lastDateString != date_string ) present_time = self.env["runtime"][ "SettingsManager" ].get_setting_as_bool("time", "present_time") # no changed value to announce if not (present_date or present_time): return time_format = self.env["runtime"]["SettingsManager"].get_setting( "general", "time_format" ) time_string = datetime.datetime.strftime(now, time_format) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "interrupt" ): self.env["runtime"]["OutputManager"].interrupt_output() if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "time", "announce" ): self.env["runtime"]["OutputManager"].play_sound_icon("announce") if present_time: # present the time self.env["runtime"]["OutputManager"].present_text( _("It's {0}").format( time_string.replace(":00", " O'clock ").lstrip("0") ), sound_icon="", interrupt=False, ) # Check if it's 12:00 AM if now.hour == 0 and now.minute == 0: # present the date self.env["runtime"]["OutputManager"].present_text( date_string, sound_icon="", interrupt=False ) self.last_time = datetime.datetime.now() self.lastTimeString = time_string def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onHeartBeat/__init__.py000077500000000000000000000000001513650123000250750ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onKeyInput/000077500000000000000000000000001513650123000227045ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onKeyInput/10000-shut_up.py000066400000000000000000000027551513650123000254140ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "interrupt_on_key_press" ): return if self.env["runtime"]["InputManager"].no_key_pressed(): return if self.env["runtime"]["ScreenManager"].is_screen_change(): return if len(self.env["input"]["curr_input"]) <= len( self.env["input"]["prev_input"] ): return # if the filter is set if ( self.env["runtime"]["SettingsManager"] .get_setting("keyboard", "interrupt_on_key_press_filter") .strip() != "" ): filter_list = ( self.env["runtime"]["SettingsManager"] .get_setting("keyboard", "interrupt_on_key_press_filter") .split(",") ) for curr_key in self.env["input"]["curr_input"]: if curr_key not in filter_list: return self.env["runtime"]["OutputManager"].interrupt_output() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/15000-enable_temp_speech.py000066400000000000000000000024611513650123000275260ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("disables speech until next keypress") def run(self): if self.env["runtime"]["InputManager"].no_key_pressed(): return if len(self.env["input"]["prev_input"]) > 0: return if not self.env["commandBuffer"]["enableSpeechOnKeypress"]: return self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", str(self.env["commandBuffer"]["enableSpeechOnKeypress"]), ) self.env["commandBuffer"]["enableSpeechOnKeypress"] = False # Also disable prompt watching since speech was manually re-enabled if "silenceUntilPrompt" in self.env["commandBuffer"]: self.env["commandBuffer"]["silenceUntilPrompt"] = False self.env["runtime"]["OutputManager"].present_text( _("speech enabled"), sound_icon="SpeechOn", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/80000-capslock.py000066400000000000000000000016331513650123000255250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): if ( self.env["input"]["old_caps_lock"] == self.env["input"]["new_caps_lock"] ): return if self.env["input"]["new_caps_lock"]: self.env["runtime"]["OutputManager"].present_text( _("Capslock on"), interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Capslock off"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/80300-scrolllock.py000066400000000000000000000016451513650123000261030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): if ( self.env["input"]["old_scroll_lock"] == self.env["input"]["new_scroll_lock"] ): return if self.env["input"]["new_scroll_lock"]: self.env["runtime"]["OutputManager"].present_text( _("Scrolllock on"), interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Scrolllock off"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/80500-numlock.py000066400000000000000000000031561513650123000254050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): if self.env["input"]["old_num_lock"] == self.env["input"]["new_num_lock"]: return # Only announce numlock changes if an actual numlock key was pressed # AND the LED state actually changed (some numpads send spurious NUMLOCK events) current_input = self.env["input"]["curr_input"] # Check if this is a genuine numlock key press by verifying: # 1. KEY_NUMLOCK is in the current input sequence # 2. The LED state has actually changed # 3. This isn't just a side effect from a KP_ key (which some buggy numpads do) is_genuine_numlock = ( current_input and "KEY_NUMLOCK" in current_input and not any(key.startswith("KEY_KP") for key in current_input if isinstance(key, str)) ) if is_genuine_numlock: if self.env["input"]["new_num_lock"]: self.env["runtime"]["OutputManager"].present_text( _("Numlock on"), interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Numlock off"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/81000-key_echo.py000066400000000000000000000011221513650123000255060ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): if self.env["runtime"]["HelpManager"].is_tutorial_mode(): self.env["runtime"]["InputManager"].key_echo() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onKeyInput/__init__.py000066400000000000000000000000001513650123000250030ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onPlugInputDevice/000077500000000000000000000000001513650123000242035ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onPlugInputDevice/50000-plugSound.py000077500000000000000000000022001513650123000271740ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.last_time = time.time() def shutdown(self): pass def get_description(self): return "No description found" def run(self): play_sound = False device_list = self.env["runtime"][ "InputManager" ].get_last_detected_devices() try: for deviceEntry in device_list: # dont play sounds for virtual devices play_sound = play_sound or not deviceEntry["virtual"] except Exception as e: play_sound = True if play_sound: if time.time() - self.last_time > 5: self.env["runtime"]["OutputManager"].play_sound_icon( sound_icon="accept", interrupt=True ) last_time = time.time() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onPlugInputDevice/__init__.py000077500000000000000000000000001513650123000263050ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onScreenChanged/000077500000000000000000000000001513650123000236255ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onScreenChanged/10000-shut_up.py000066400000000000000000000010001513650123000263130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): self.env["runtime"]["OutputManager"].interrupt_output() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/20000-reset_last_cursor_attribute.py000066400000000000000000000010421513650123000324600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): self.env["runtime"]["AttributeManager"].reset_last_cursor_attribute() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/21000-reset_barrier_change.py000066400000000000000000000010321513650123000307700ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): self.env["runtime"]["BarrierManager"].reset_barrier_change() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/70000-barrier_detect.py000066400000000000000000000015231513650123000276220ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ): return self.env["runtime"]["BarrierManager"].handle_line_barrier( self.env["screen"]["new_content_text"].split("\n"), self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/80000-screen_change_announcement.py000066400000000000000000000015441513650123000322060ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): self.env["runtime"]["OutputManager"].present_text( _("screen {0}").format(self.env["screen"]["newTTY"]), sound_icon="ChangeTTY", interrupt=True, flush=False, ) self.env["runtime"]["OutputManager"].present_text( self.env["screen"]["new_content_text"], interrupt=False, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/85000-reset_marks.py000066400000000000000000000010201513650123000271610ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): self.env["runtime"]["CursorManager"].clear_marks() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/89000-leave_review_mode.py000066400000000000000000000012671513650123000303440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "review", "leave_review_on_screen_change" ): return self.env["runtime"]["CursorManager"].clear_review_cursor() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenChanged/__init__.py000066400000000000000000000000001513650123000257240ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onScreenUpdate/000077500000000000000000000000001513650123000235165ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onScreenUpdate/55000-tui_focus_handler.py000066400000000000000000000022641513650123000302400ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.core import debug class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _( "TUI focus mode handler - suppresses screen update spam " "for interactive TUI applications" ) def run(self): # Check if TUI mode is enabled if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "tui" ): return # TUI mode is active - set suppression flag for incoming handler # This prevents the 70000-incoming.py command from announcing # screen updates self.env["commandBuffer"]["tuiSuppressIncoming"] = True self.env["runtime"]["DebugManager"].write_debug_out( "tui_focus_handler: TUI mode active, suppressing incoming text", debug.DebugLevel.INFO ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/56000-highlight_tracking.py000066400000000000000000000015631513650123000303760ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enables or disables tracking of highlighted") def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "highlight" ): return attribute_delta = self.env["runtime"][ "AttributeManager" ].get_attribute_delta() self.env["runtime"]["OutputManager"].present_text( attribute_delta, sound_icon="", interrupt=True, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/60000-history.py000066400000000000000000000067261513650123000262470ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "" def run(self): if self.env["screen"]["newAttribDelta"] != "": return if self.env["runtime"]["ScreenManager"].is_screen_change(): return if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): return if self.env["runtime"]["AttributeManager"].is_attribute_change(): return # hack for pdmenu and maybe other dialog apps that place the cursor at # last cell/row # this is not to be identified as history if ( self.env["screen"]["new_cursor"]["x"] == self.env["runtime"]["ScreenManager"].get_columns() - 1 ) and ( self.env["screen"]["new_cursor"]["y"] == self.env["runtime"]["ScreenManager"].get_rows() - 1 ): return if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: if not ( self.env["runtime"]["InputManager"].get_last_deepest_input() in [["KEY_UP"], ["KEY_DOWN"]] ): return elif self.env["runtime"]["InputManager"].get_shortcut_type() in [ "BYTE" ]: if not ( self.env["runtime"]["ByteManager"].get_last_byte_key() in [b"^[[A", b"^[[B"] ): return # Get the current cursor's line from both old and new content prev_line = self.env["screen"]["old_content_text"].split("\n")[ self.env["screen"]["new_cursor"]["y"] ] curr_line = self.env["screen"]["new_content_text"].split("\n")[ self.env["screen"]["new_cursor"]["y"] ] is_blank = curr_line.strip() == "" if prev_line == curr_line: if self.env["screen"]["new_delta"] != "": return announce = curr_line if not is_blank: curr_prompt = curr_line.find("$") root_prompt = curr_line.find("#") if curr_prompt <= 0: if root_prompt > 0: curr_prompt = root_prompt else: announce = curr_line if curr_prompt > 0: remove_digits = str.maketrans("0123456789", " ") if prev_line[:curr_prompt].translate( remove_digits ) == curr_line[:curr_prompt].translate(remove_digits): announce = curr_line[curr_prompt + 1 :] else: announce = curr_line if is_blank: self.env["runtime"]["OutputManager"].present_text( _("blank"), sound_icon="EmptyLine", interrupt=True, flush=False ) else: self.env["runtime"]["OutputManager"].present_text( announce, interrupt=True, flush=False ) self.env["commandsIgnore"]["onScreenUpdate"]["CHAR_DELETE_ECHO"] = True self.env["commandsIgnore"]["onScreenUpdate"]["CHAR_ECHO"] = True self.env["commandsIgnore"]["onScreenUpdate"]["INCOMING_IGNORE"] = True def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py000066400000000000000000000606721513650123000303100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Detects progress patterns for progress bar monitoring" def run(self): # Only run if progress monitoring is enabled try: if ( "progress_monitoring" in self.env["commandBuffer"] and self.env["commandBuffer"]["progress_monitoring"] ): # Check if current line is a prompt - if so, reset progress # state if self.is_current_line_prompt(): self.reset_progress_state() # Only check new incoming text (new_delta), but filter out # screen changes elif ( self.env["screen"]["new_delta"] and self.is_real_progress_update() ): self.detect_progress(self.env["screen"]["new_delta"]) except Exception as e: # Log errors for debugging instead of silently ignoring self.env["runtime"]["DebugManager"].write_debug_out( "Progress detector error: " + str(e), debug.DebugLevel.ERROR, ) def is_real_progress_update(self): """Check if this is a real progress update vs screen change/window switch""" # If the screen/application changed, it's not a progress update if self.env["runtime"]["ScreenManager"].is_screen_change(): self.env["runtime"]["DebugManager"].write_debug_out( "Progress filter: screen change detected", debug.DebugLevel.INFO ) return False # If there was a large cursor movement, it's likely navigation, not # progress if self.env["runtime"]["CursorManager"].is_cursor_vertical_move(): x_move = abs( self.env["screen"]["new_cursor"]["x"] - self.env["screen"]["old_cursor"]["x"] ) y_move = abs( self.env["screen"]["new_cursor"]["y"] - self.env["screen"]["old_cursor"]["y"] ) # Large movements suggest navigation, not progress output if y_move > 2 or x_move > 20: self.env["runtime"]["DebugManager"].write_debug_out( f"Progress filter: large cursor move y={y_move} x={x_move}", debug.DebugLevel.INFO, ) return False # Check if delta is too large (screen change) vs small incremental # updates delta_text = self.env["screen"]["new_delta"] delta_length = len(delta_text) if ( delta_length > 200 ): # Allow longer progress lines like Claude Code's status self.env["runtime"]["DebugManager"].write_debug_out( f"Progress filter: delta too long ({delta_length})", debug.DebugLevel.INFO, ) return False # If delta contains newlines and is substantial, let incoming handler # deal with it to avoid interfering with multi-line text output if '\n' in delta_text and delta_length > 50: self.env["runtime"]["DebugManager"].write_debug_out( f"Progress filter: multiline delta ({delta_length} chars)", debug.DebugLevel.INFO, ) return False # Check if current line looks like a prompt - progress unlikely during # prompts if self.is_current_line_prompt(): self.env["runtime"]["DebugManager"].write_debug_out( "Progress filter: prompt detected", debug.DebugLevel.INFO ) return False return True def reset_progress_state(self): """Reset progress state when a prompt is detected, allowing new progress operations to start fresh""" self.env["runtime"]["DebugManager"].write_debug_out( "Resetting progress state due to prompt detection", debug.DebugLevel.INFO, ) self.env["commandBuffer"]["lastProgressValue"] = -1 self.env["commandBuffer"]["lastProgressTime"] = 0 def detect_progress(self, text): import re import time current_time = time.time() # Debug: Print what we're checking self.env["runtime"]["DebugManager"].write_debug_out( "Progress detector checking: '" + text + "'", debug.DebugLevel.INFO ) # Filter out URLs to prevent false positives if self.contains_url(text): self.env["runtime"]["DebugManager"].write_debug_out( "Skipping progress detection - text contains URL", debug.DebugLevel.INFO ) return # Note: Auto-disable on 100% completion removed to respect user # settings # Pattern 1: Percentage (50%, 25.5%, etc.) # Filter out common non-progress percentages (weather, system stats, # etc.) percent_match = re.search(r"(\d+(?:\.\d+)?)\s*%", text) if percent_match: percentage = float(percent_match.group(1)) # Only trigger on realistic progress percentages (0-100%) if 0 <= percentage <= 100: # Filter out weather/system stats that contain percentages if not re.search( r"\b(?:humidity|cpu|memory|disk|usage|temp|weather|forecast)\b", text, re.IGNORECASE, ): self.env["runtime"]["DebugManager"].write_debug_out( "found percentage: " + str(percentage), debug.DebugLevel.INFO, ) if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.env["runtime"]["DebugManager"].write_debug_out( "Playing tone for: " + str(percentage), debug.DebugLevel.INFO, ) self.play_progress_tone(percentage) self.env["commandBuffer"][ "lastProgressValue" ] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 1a2: Curl classic progress format (percentage without % symbol) # Extract percentage from curl's classic format curl_classic_match = re.search( r"^\s*(\d+)\s+\d+[kMGT]?\s+(\d+)\s+\d+[kMGT]?\s+\d+\s+\d+\s+\d+[kMGT]?\s+\d+\s+\d+:\d+:\d+\s+\d+:\d+:\d+\s+\d+:\d+:\d+\s+\d+[kMGT]?\s*$", text ) if curl_classic_match: # Use the first percentage (total progress) percentage = float(curl_classic_match.group(1)) if 0 <= percentage <= 100: self.env["runtime"]["DebugManager"].write_debug_out( "found curl classic percentage: " + str(percentage), debug.DebugLevel.INFO, ) if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.env["runtime"]["DebugManager"].write_debug_out( "Playing tone for curl: " + str(percentage), debug.DebugLevel.INFO, ) self.play_progress_tone(percentage) self.env["commandBuffer"][ "lastProgressValue" ] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 1b: Time/token activity (not percentage-based, so use single # beep) time_match = re.search(r"(?:(?:remaining|elapsed|left|ETA|eta)[:;\s]*(\d+)s|(\d+)s\s+(?:remaining|elapsed|left))", text, re.IGNORECASE) token_match = re.search(r"(?:processing|generating|used|consumed)\s+(\d+)\s+tokens", text, re.IGNORECASE) # Pattern 1c: dd command output (bytes copied with transfer rate) dd_match = re.search(r"\d+\s+bytes.*copied.*\d+\s+s.*[kMGT]?B/s", text) # Pattern 1d: Curl-style transfer data (bytes, speed indicators - legacy) curl_match = re.search( r"(\d+\s+\d+\s+\d+\s+\d+.*?(?:k|M|G)?.*?--:--:--|Speed)", text ) # Pattern 1e: General transfer progress (size, rate, time patterns) transfer_match = re.search( r"\d+\s+\d+[kMGT]?\s+\d+\s+\d+[kMGT]?.*?\d+\.\d+[kMGT].*?\d+:\d+:\d+", text ) # Pattern 1f: Pacman-style transfer progress (flexible size/speed/time) pacman_match = re.search( r"\d+(?:\.\d+)?\s+[kKmMgGtT]iB\s+\d+(?:\.\d+)?\s+[kKmMgGtT]iB/s\s+\d+:\d+", text ) if time_match or token_match or dd_match or curl_match or transfer_match or pacman_match: # For non-percentage progress, use a single activity beep every 2 # seconds if ( current_time - self.env["commandBuffer"]["lastProgressTime"] >= 2.0 ): self.env["runtime"]["DebugManager"].write_debug_out( "Playing activity beep for transfer progress", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 2: Fraction (15/100, 3 of 10, etc.) fraction_match = re.search(r"(\d+)\s*(?:of|/)\s*(\d+)", text) if fraction_match: current = int(fraction_match.group(1)) total = int(fraction_match.group(2)) # Filter out dates, page numbers, and other non-progress fractions if (total > 0 and total <= 1000 and current <= total and not re.search(r"\b(?:page|chapter|section|line|row|column|year|month|day)\b", text, re.IGNORECASE) and not re.search(r"\d{1,2}/\d{1,2}/\d{2,4}", text)): # Date pattern percentage = (current / total) * 100 if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.play_progress_tone(percentage) self.env["commandBuffer"]["lastProgressValue"] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 3: Progress bars ([#### ], [====> ], etc.) # Improved pattern to avoid matching IRC channels like [#channel] bar_match = re.search(r"\[([#=\*]+)([\s\.\-]*)\]", text) if bar_match: filled = len(bar_match.group(1)) unfilled = len(bar_match.group(2)) total = filled + unfilled # Require at least 2 progress chars total and unfilled portion must # be spaces/dots if total >= 2 and ( not bar_match.group(2) or re.match(r"^[\s\.]*$", bar_match.group(2)) ): percentage = (filled / total) * 100 if ( percentage != self.env["commandBuffer"]["lastProgressValue"] ): self.play_progress_tone(percentage) self.env["commandBuffer"]["lastProgressValue"] = percentage self.env["commandBuffer"][ "lastProgressTime" ] = current_time return # Pattern 4: Generic activity indicators (Loading..., Working..., etc.) activity_pattern = re.search( r"(loading|processing|working|installing|downloading|compiling|building).*\.{2,}", text, re.IGNORECASE, ) if activity_pattern: # Play a steady beep every 2 seconds for ongoing activity if ( current_time - self.env["commandBuffer"]["lastProgressTime"] >= 2.0 ): self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 5: Braille spinner indicators braille_match = re.search(r'[ā ‹ā ™ā ¹ā øā ¼ā “ā ¦ā §ā ‡ā ā”æā£Ÿā£Æā£·ā£¾ā£½ā£»ā¢æ]', text) if braille_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 6: Claude Code working indicators (various symbols + activity text + "esc/ctrl+c to interrupt") # Matches any: [symbol] [Task description]… (... to interrupt ...) # Symbols include: * ✢ ✽ ✶ ✻ Ā· • ā—¦ ā—‹ ā— ā—† and similar decorative characters # Example: ✽ Reviewing script for issues… (ctrl+c to interrupt Ā· 33s Ā· ↑ 1.6k tokens Ā· thought for 4s) claude_progress_match = re.search( r'[*āœ¢āœ½āœ¶āœ»Ā·ā€¢ā—¦ā—‹ā—ā—†]\s+\w+.*?…\s*\(.*(?:esc|ctrl\+c) to interrupt.*\)', text, re.IGNORECASE, ) if claude_progress_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.env["runtime"]["DebugManager"].write_debug_out( "Playing Claude Code activity beep", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 6b: Claude Code tool invocation indicators (ā— Tool Name(...)) # Example: ā— Web Search("query here") tool_invocation_match = re.search( r'[ā—ā—‹ā—‰ā€¢ā—¦]\s+(?:Web\s*Search|Read|Write|Edit|Bash|Glob|Grep|Task|WebFetch)\s*\(', text, re.IGNORECASE, ) if tool_invocation_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.env["runtime"]["DebugManager"].write_debug_out( "Playing Claude Code tool invocation beep", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 6c: Bullet/white bullet activity lines (•/ā—¦ ...) bullet_activity_match = re.search( ( r'^\s*[•◦]\s+.*(?:…|\.{3,}|\b(?:thinking|working|processing|' r'analyzing|searching|reading|writing|planning|running|' r'executing|updating|building|installing|compiling|downloading|' r'reviewing|generating|responding|applying|fixing|editing|' r'creating|preparing|checking|opening|loading|fetching|' r'retrieving|scanning|indexing|summarizing)\b)' ), text, re.IGNORECASE, ) if bullet_activity_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.env["runtime"]["DebugManager"].write_debug_out( "Playing bullet activity beep", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 7: Moon phase spinner indicators moon_match = re.search(r'[šŸŒ‘šŸŒ’šŸŒ“šŸŒ”šŸŒ•šŸŒ–šŸŒ—šŸŒ˜]', text) if moon_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 8: Thinking/processing with timing (šŸ”„ Thinking... 23s) thinking_match = re.search(r'šŸ”„[^\w]*(?:thinking|processing|working|analyzing)[^\d]*(\d+)s?\b', text, re.IGNORECASE) if thinking_match: # Extract timing value for activity beep frequency adjustment seconds = int(thinking_match.group(1)) # Use slightly longer interval for thinking patterns to avoid spam thinking_interval = 1.5 if seconds < 10 else 2.0 if ( current_time - self.env["commandBuffer"]["lastProgressTime"] >= thinking_interval ): self.env["runtime"]["DebugManager"].write_debug_out( f"Playing thinking activity beep (timing: {seconds}s)", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 9: Half-circle/circle progress indicators (◐ ā—“ ā—’ ā—‘) circle_match = re.search(r'[◐◓◒◑]', text) if circle_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return # Pattern 10: Task status indicators (ā— Task Output, ā—‹ Task Running, etc.) # Matches bullet points with task-related status text task_status_match = re.search( r'[ā—ā—‹ā—‰]\s+(?:Task\s+)?(?:Output|Running|Pending|Working|Processing)\s+[a-zA-Z0-9]+', text, re.IGNORECASE, ) if task_status_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.5: self.env["runtime"]["DebugManager"].write_debug_out( "Playing task status activity beep", debug.DebugLevel.INFO, ) self.play_activity_beep() self.env["commandBuffer"]["lastProgressTime"] = current_time return def play_progress_tone(self, percentage): # Map 0-100% to 400-1200Hz frequency range frequency = 400 + (percentage * 8) frequency = max(400, min(1200, frequency)) # Clamp to safe range # Use Sox directly for clean quiet tones like: play -qn synth .1 tri # 400 gain -8 self.play_quiet_tone(frequency, 0.1) def play_activity_beep(self): # Single tone for generic activity self.play_quiet_tone(800, 0.08) def play_quiet_tone(self, frequency, duration): """Play a quiet tone using Sox directly with flood protection""" import shlex import subprocess import time # Flood protection: prevent beeps closer than 0.1 seconds apart current_time = time.time() if not hasattr(self, '_last_beep_time'): self._last_beep_time = 0 if current_time - self._last_beep_time < 0.1: # Skip this beep to prevent audio crackling on low-resource systems return self._last_beep_time = current_time # Build the Sox command: play -qn synth tri gain # -8 command = f"play -qn synth {duration} tri {frequency} gain -8" try: # Only play if sound is enabled if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "sound", "enabled" ): subprocess.Popen( shlex.split(command), stdin=None, stdout=None, stderr=None, shell=False, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Sox tone error: " + str(e), debug.DebugLevel.ERROR ) def is_current_line_prompt(self): """Check if the current line looks like a standalone prompt (not command with progress)""" import re try: # Get the current screen content if not self.env["screen"]["new_content_text"]: return False lines = self.env["screen"]["new_content_text"].split("\n") if not lines: return False # Check the last line (most common) and current cursor line for # prompt patterns lines_to_check = [] # Add last line (most common for prompts) if lines: lines_to_check.append(lines[-1]) # Add current cursor line if different from last line if ( self.env["screen"]["new_cursor"]["y"] < len(lines) and self.env["screen"]["new_cursor"]["y"] != len(lines) - 1 ): lines_to_check.append( lines[self.env["screen"]["new_cursor"]["y"]] ) # Standalone prompt patterns (no commands mixed in) standalone_prompt_patterns = [ r"^\s*\$\s*$", # Just $ (with whitespace) r"^\s*#\s*$", # Just # (with whitespace) r"^\s*>\s*$", # Just > (with whitespace) r"^\[.*\]\s*[\\\$#>]\s*$", # [path]$ without commands r"^[a-zA-Z0-9._-]+[\\\$#>]\s*$", # bash-5.1$ without commands # Interactive prompt patterns (these ARE standalone) r".*\?\s*\[[YyNn]/[YyNn]\]\s*$", # ? [Y/n] or ? [y/N] style r".*\?\s*\[[Yy]es/[Nn]o\]\s*$", # ? [Yes/No] style # "continue? [Y/n]" style r".*continue\?\s*\[[YyNn]/[YyNn]\].*$", r"^::.*\?\s*\[[YyNn]/[YyNn]\].*$", # pacman style prompts # Authentication prompts (these ARE standalone) r"^\[[Ss]udo\]\s*[Pp]assword\s*for\s+.*:\s*$", # [sudo] password r"^[Pp]assword\s*:\s*$", # Password: r".*[Pp]assword\s*:\s*$", # general password prompts # Continuation prompts (these ARE standalone) r"^[Pp]ress\s+any\s+key\s+to\s+continue.*$", # Press any key r"^[Aa]re\s+you\s+sure\?\s*.*$", # Are you sure? ] for line in lines_to_check: line = line.strip() if not line: continue # Check if this line contains both a prompt AND other content (like commands) # If so, don't treat it as a standalone prompt has_prompt_marker = bool( re.search(r".*@.*[\\\$#>]", line) or re.search(r"^\[.*\]\s*[\\\$#>]", line) ) if has_prompt_marker: # If line has prompt marker but also has significant content after it, # it's a command line, not a standalone prompt prompt_end = max( line.rfind("$"), line.rfind("#"), line.rfind(">"), line.rfind("\\"), ) if ( prompt_end >= 0 and prompt_end < len(line) - 5 ): # More than just whitespace after prompt continue # This is a command line, not a standalone prompt for pattern in standalone_prompt_patterns: try: if re.search(pattern, line): return True except re.error: continue return False except Exception: # If anything fails, assume it's not a prompt to be safe return False def contains_url(self, text): """Check if text contains URLs that might cause false progress detection""" import re # Specific URL patterns - only match actual URLs, not filenames url_patterns = [ r"\S+://\S+\.\S{2,}", # Any protocol:// with domain.ext r"www\.[^\s]+\.[a-zA-Z]{2,}", # www.domain.ext patterns ] for pattern in url_patterns: if re.search(pattern, text, re.IGNORECASE): return True return False def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/66000-prompt_detector.py000066400000000000000000000171011513650123000277530ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Detects shell prompts for silence until prompt feature" def run(self): # Only run if silence until prompt is active try: if ( "silenceUntilPrompt" in self.env["commandBuffer"] and self.env["commandBuffer"]["silenceUntilPrompt"] ): # Check the current line for prompt patterns if self.env["screen"]["new_content_text"]: lines = self.env["screen"]["new_content_text"].split("\n") if lines and self.env["screen"]["new_cursor"]["y"] < len( lines ): current_line = lines[ self.env["screen"]["new_cursor"]["y"] ] self.check_for_prompt(current_line) except Exception as e: # Silently ignore errors to avoid disrupting normal operation self.env["runtime"]["DebugManager"].write_debug_out( "prompt_detector run: Error in prompt detection: " + str(e), debug.DebugLevel.ERROR, ) def check_for_prompt(self, text): """Check if the current line contains a shell prompt pattern""" import re # Debug: Print what we're checking self.env["runtime"]["DebugManager"].write_debug_out( "Prompt detector checking: '" + text + "'", debug.DebugLevel.INFO ) # First check for exact matches from settings (with backward # compatibility) try: exact_matches = self.env["runtime"]["SettingsManager"].get_setting( "prompt", "exact_matches" ) if exact_matches: exact_list = [ match.strip() for match in exact_matches.split(",") if match.strip() ] for exactMatch in exact_list: if text.strip() == exactMatch: self.env["runtime"]["DebugManager"].write_debug_out( "found exact prompt match: " + exactMatch, debug.DebugLevel.INFO, ) self._restore_speech() return True except Exception as e: # Prompt section doesn't exist in settings, skip custom exact # matches pass # Get custom patterns from settings (with backward compatibility) prompt_patterns = [] try: custom_patterns = self.env["runtime"][ "SettingsManager" ].get_setting("prompt", "custom_patterns") # Add custom patterns from settings if they exist if custom_patterns: custom_list = [ pattern.strip() for pattern in custom_patterns.split(",") if pattern.strip() ] prompt_patterns.extend(custom_list) except Exception as e: # Prompt section doesn't exist in settings, skip custom patterns pass # Add default shell prompt patterns prompt_patterns.extend( [ r"^\s*\$\s*$", # Just $ (with whitespace) r"^\s*#\s*$", # Just # (with whitespace) r"^\s*>\s*$", # Just > (with whitespace) r".*@.*[\\\$#>]\s*$", # Contains @ and ends with prompt char (user@host style) r"^\[.*\]\s*[\\\$#>]\s*$", # [anything]$ style prompts # Simple shell names like bash-5.1$ r"^[a-zA-Z0-9._-]+[\\\$#>]\s*$", # Interactive prompt patterns # Package manager confirmation prompts r".*\?\s*\[[YyNn]/[YyNn]\]\s*$", # ? [Y/n] or ? [y/N] style r".*\?\s*\[[Yy]es/[Nn]o\]\s*$", # ? [Yes/No] style r".*\?\s*\([YyNn]/[YyNn]\)\s*$", # ? (Y/n) or ? (y/N) style r".*\?\s*\([Yy]es/[Nn]o\)\s*$", # ? (Yes/No) style r".*continue\?\s*\[[YyNn]/[YyNn]\].*$", # "continue? [Y/n]" style r".*ok\s*\[[YyNn]/[YyNn]\].*$", # "Is this ok [y/N]:" style # pacman ":: Proceed? [Y/n]" style r"^::.*\?\s*\[[YyNn]/[YyNn]\].*$", # Authentication prompts # [sudo] password for user: r"^\[[Ss]udo\]\s*[Pp]assword\s*for\s+.*:\s*$", r"^[Pp]assword\s*:\s*$", # Password: r".*[Pp]assword\s*:\s*$", # general password prompts r".*'s\s*[Pp]assword\s*:\s*$", # user's password: r"^[Ee]nter\s+[Pp]assphrase.*:\s*$", # Enter passphrase: # Please enter passphrase: r"^[Pp]lease\s+enter\s+[Pp]assphrase.*:\s*$", # General confirmation and continuation prompts # Press any key to continue r"^[Pp]ress\s+any\s+key\s+to\s+continue.*$", r"^[Aa]re\s+you\s+sure\?\s*.*$", # Are you sure? r"^[Pp]lease\s+confirm.*$", # Please confirm r".*confirm.*\([YyNn]/[YyNn]\).*$", # confirm (y/n) r".*\([Yy]/[Nn]\)\s*$", # ends with (Y/n) or (y/N) ] ) for pattern in prompt_patterns: try: if re.search(pattern, text.strip()): self.env["runtime"]["DebugManager"].write_debug_out( "found prompt pattern: " + pattern, debug.DebugLevel.INFO, ) self._restore_speech() return True except re.error as e: # Invalid regex pattern, skip it and log the error self.env["runtime"]["DebugManager"].write_debug_out( "Invalid prompt pattern: " + pattern + " Error: " + str(e), debug.DebugLevel.ERROR, ) continue return False def _restore_speech(self): """Helper method to restore speech when prompt is detected""" # If speech is already enabled, just clear flags to avoid unnecessary # interrupts on prompt return if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ): self.env["commandBuffer"]["silenceUntilPrompt"] = False if "enableSpeechOnKeypress" in self.env["commandBuffer"]: self.env["commandBuffer"]["enableSpeechOnKeypress"] = False return # Disable silence mode self.env["commandBuffer"]["silenceUntilPrompt"] = False # Also disable the keypress-based speech restoration since we're # enabling it now if "enableSpeechOnKeypress" in self.env["commandBuffer"]: self.env["commandBuffer"]["enableSpeechOnKeypress"] = False # Re-enable speech self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", "True" ) self.env["runtime"]["OutputManager"].present_text( _("Speech restored"), sound_icon="SpeechOn", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/70000-incoming.py000066400000000000000000000135111513650123000263400ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core.i18n import _ class command: def __init__(self): self._update_times = [] self._line_count_times = [] self._batched_text = [] self._last_flush_time = 0 self._in_flood_mode = False def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Announces incoming text changes") def _reset_flood_state(self): self._update_times = [] self._line_count_times = [] self._batched_text = [] self._last_flush_time = 0 self._in_flood_mode = False def _is_rapid_updates(self): current_time = time.time() window = self.env["runtime"]["SettingsManager"].get_setting_as_float( "speech", "rapid_update_window" ) threshold = self.env["runtime"]["SettingsManager"].get_setting_as_int( "speech", "rapid_update_threshold" ) self._update_times = [ ts for ts in self._update_times if current_time - ts < window ] self._update_times.append(current_time) return len(self._update_times) >= threshold def _is_high_volume(self, delta_text): current_time = time.time() window = self.env["runtime"]["SettingsManager"].get_setting_as_float( "speech", "rapid_update_window" ) threshold = self.env["runtime"]["SettingsManager"].get_setting_as_int( "speech", "flood_line_threshold" ) line_count = max(1, delta_text.count("\n") + 1) self._line_count_times = [ (ts, count) for ts, count in self._line_count_times if current_time - ts < window ] self._line_count_times.append((current_time, line_count)) total_lines = sum(count for _, count in self._line_count_times) return total_lines >= threshold def _add_to_batch(self, text): new_lines = text.splitlines() if text.endswith("\n"): new_lines.append("") self._batched_text.extend(new_lines) max_lines = self.env["runtime"]["SettingsManager"].get_setting_as_int( "speech", "max_batch_lines" ) if len(self._batched_text) > max_lines: self._batched_text = self._batched_text[-max_lines:] def _flush_batch(self): if not self._batched_text: return text = "\n".join(self._batched_text) self._batched_text = [] self._last_flush_time = time.time() self.env["runtime"]["OutputManager"].present_text( text, interrupt=False, flush=False ) def _was_handled_by_tab_completion(self, delta_text): """Check if this delta was already handled by tab completion to avoid duplicates""" if "tabCompletion" not in self.env["commandBuffer"]: return False tab_state = self.env["commandBuffer"]["tabCompletion"] # Check if this exact delta was processed recently by tab completion if (tab_state.get("lastProcessedDelta") == delta_text and tab_state.get("lastProcessedTime")): # Only suppress if processed within the last 50ms to avoid stale suppression # Reduced from 100ms to minimize false positives with rapid multi-line updates time_since_processed = time.time() - tab_state["lastProcessedTime"] if time_since_processed <= 0.05: return True return False def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "auto_read_incoming" ): return # is there something to read? if not self.env["runtime"]["ScreenManager"].is_delta(ignoreSpace=True): return delta_text = self.env["screen"]["new_delta"] if self.env["runtime"]["ScreenManager"].is_screen_change(): self._reset_flood_state() # Skip if tab completion already handled this delta if self._was_handled_by_tab_completion(delta_text): return # this must be a keyecho or something # if len(self.env['screen']['new_delta'].strip(' \n\t')) <= 1: x_move = abs( self.env["screen"]["new_cursor"]["x"] - self.env["screen"]["old_cursor"]["x"] ) y_move = abs( self.env["screen"]["new_cursor"]["y"] - self.env["screen"]["old_cursor"]["y"] ) if (x_move >= 1) and x_move == len(delta_text): # if len(self.env['screen']['new_delta'].strip(' \n\t0123456789')) # <= 2: if "\n" not in delta_text: return rapid = self._is_rapid_updates() high_volume = self._is_high_volume(delta_text) if (rapid and high_volume) or self._in_flood_mode: if not self._in_flood_mode: self._last_flush_time = time.time() self._in_flood_mode = True self._add_to_batch(delta_text) interval = self.env["runtime"][ "SettingsManager" ].get_setting_as_float("speech", "batch_flush_interval") if time.time() - self._last_flush_time >= interval: self._flush_batch() if not rapid or not high_volume: if self._batched_text: self._flush_batch() self._in_flood_mode = False return # print(x_move, y_move, len(self.env['screen']['new_delta']), len(self.env['screen']['newNegativeDelta'])) self.env["runtime"]["OutputManager"].present_text( delta_text, interrupt=False, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/80000-barrier_detect.py000066400000000000000000000016651513650123000275230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No Description found" def run(self): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ): return if not self.env["runtime"]["ScreenManager"].is_delta(ignoreSpace=True): return self.env["runtime"]["BarrierManager"].handle_line_barrier( self.env["screen"]["new_content_text"].split("\n"), self.env["screen"]["new_cursor"]["x"], self.env["screen"]["new_cursor"]["y"], ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/onScreenUpdate/__init__.py000077500000000000000000000000001513650123000256200ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onSwitchApplicationProfile/000077500000000000000000000000001513650123000261025ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onSwitchApplicationProfile/__init__.py000066400000000000000000000000001513650123000302010ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/onSwitchApplicationProfile/default.py000066400000000000000000000015001513650123000300740ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def load(self): return print("--------------") print("default") print("load new", self.env["screen"]["new_application"]) print("--------------") def unload(self): return print("--------------") print("default") print("unload old", self.env["screen"]["oldApplication"]) print("--------------") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/000077500000000000000000000000001513650123000225405ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/quickMenu/current_quick_menu_entry.py000066400000000000000000000014671513650123000302450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current quick menu entry") def run(self): menu = "" value = "" menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/current_quick_menu_value.py000066400000000000000000000012231513650123000302060ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current quick menu value") def run(self): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/next_quick_menu_entry.py000066400000000000000000000021141513650123000275270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next quick menu entry") def run(self): menu = "" value = "" if self.env["runtime"]["QuickMenuManager"].next_entry(): menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"][ "QuickMenuManager" ].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Quick menu not available"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/next_quick_menu_value.py000066400000000000000000000013411513650123000275030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next quick menu value") def run(self): if self.env["runtime"]["QuickMenuManager"].next_value(): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/prev_quick_menu_entry.py000066400000000000000000000021201513650123000275220ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get previous quick menu entry") def run(self): menu = "" value = "" if self.env["runtime"]["QuickMenuManager"].prev_entry(): menu = self.env["runtime"]["QuickMenuManager"].get_current_entry() if menu != "": value = self.env["runtime"][ "QuickMenuManager" ].get_current_value() self.env["runtime"]["OutputManager"].present_text( menu + " " + value, interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("Quick menu not available"), interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/quickMenu/prev_quick_menu_value.py000066400000000000000000000013451513650123000275050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get previous quick menu value") def run(self): if self.env["runtime"]["QuickMenuManager"].prev_value(): value = self.env["runtime"]["QuickMenuManager"].get_current_value() self.env["runtime"]["OutputManager"].present_text( value, interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/sayAll/000077500000000000000000000000001513650123000220245ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/sayAll/__init__.py000077500000000000000000000000001513650123000241260ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/switchTrigger_template.py000066400000000000000000000010071513650123000256670ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def unload(self): pass def load(self): pass def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/000077500000000000000000000000001513650123000240665ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-navigation/__init__.py000077500000000000000000000000001513650123000261700ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-navigation/curr_vmenu_entry.py000066400000000000000000000011631513650123000300470ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get current v menu entry") def run(self): text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/dec_level_vmenu.py000066400000000000000000000012471513650123000276000ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("leave v menu submenu") def run(self): self.env["runtime"]["VmenuManager"].dec_level() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/exec_vmenu_entry.py000066400000000000000000000010231513650123000300130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("execute v menu entry") def run(self): self.env["runtime"]["VmenuManager"].execute_menu() def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/inc_level_vmenu.py000066400000000000000000000012471513650123000276160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("enter v menu submenu") def run(self): self.env["runtime"]["VmenuManager"].inc_level() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/next_vmenu_entry.py000066400000000000000000000012511513650123000300500ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get next v menu entry") def run(self): self.env["runtime"]["VmenuManager"].next_index() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/page_down_vmenu.py000066400000000000000000000012521513650123000276150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("jump down 10% in v menu") def run(self): self.env["runtime"]["VmenuManager"].page_down() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/page_up_vmenu.py000066400000000000000000000012461513650123000272750ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("jump up 10% in v menu") def run(self): self.env["runtime"]["VmenuManager"].page_up() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/prev_vmenu_entry.py000066400000000000000000000012511513650123000300460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("get prev v menu entry") def run(self): self.env["runtime"]["VmenuManager"].prev_index() text = self.env["runtime"]["VmenuManager"].get_current_entry() self.env["runtime"]["OutputManager"].present_text(text, interrupt=True) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_a.py000066400000000000000000000010711513650123000262040ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("a") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_b.py000066400000000000000000000010711513650123000262050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("b") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_c.py000066400000000000000000000010711513650123000262060ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("c") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_d.py000066400000000000000000000010711513650123000262070ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("d") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_e.py000066400000000000000000000010711513650123000262100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("e") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_f.py000066400000000000000000000010711513650123000262110ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("f") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_g.py000066400000000000000000000010711513650123000262120ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("g") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_h.py000066400000000000000000000010711513650123000262130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("h") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_i.py000066400000000000000000000010711513650123000262140ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("i") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_j.py000066400000000000000000000010711513650123000262150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("j") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_k.py000066400000000000000000000010711513650123000262160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("k") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_l.py000066400000000000000000000010711513650123000262170ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("l") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_m.py000066400000000000000000000010711513650123000262200ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("m") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_n.py000066400000000000000000000010711513650123000262210ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("n") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_o.py000066400000000000000000000010711513650123000262220ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("o") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_p.py000066400000000000000000000010711513650123000262230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("p") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_q.py000066400000000000000000000010711513650123000262240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("q") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_r.py000066400000000000000000000010711513650123000262250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("r") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_s.py000066400000000000000000000010711513650123000262260ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("s") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_t.py000066400000000000000000000010711513650123000262270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("t") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_u.py000066400000000000000000000010711513650123000262300ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("u") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_v.py000066400000000000000000000010711513650123000262310ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("v") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_w.py000066400000000000000000000010711513650123000262320ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("w") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_x.py000066400000000000000000000010711513650123000262330ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("x") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_y.py000066400000000000000000000010711513650123000262340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("y") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/search_z.py000066400000000000000000000010711513650123000262350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import importlib.util import os from fenrirscreenreader.core.i18n import _ _spec = importlib.util.spec_from_file_location( "vmenu_search_base", os.path.join(os.path.dirname(__file__), "vmenu_search_base.py"), ) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) vmenu_search_command = _module.vmenu_search_command class command(vmenu_search_command): def __init__(self): super().__init__("z") fenrir/src/fenrirscreenreader/commands/vmenu-navigation/vmenu_search_base.py000066400000000000000000000017331513650123000301150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class vmenu_search_command: """Base class for VMenu search commands""" def __init__(self, search_char): self.search_char = search_char.lower() def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("search for a menu entry") def run(self): text = self.env["runtime"]["VmenuManager"].search_entry( self.search_char ) if text != "": self.env["runtime"]["OutputManager"].present_text( text, interrupt=True ) else: self.env["runtime"]["OutputManager"].present_text( _("not found"), sound_icon="ErrorScreen", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/000077500000000000000000000000001513650123000235525ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/BYTE/000077500000000000000000000000001513650123000243155ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/BYTE/__init__.py000077500000000000000000000000001513650123000264170ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/000077500000000000000000000000001513650123000242025ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/__init__.py000077500000000000000000000000001513650123000263040ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/000077500000000000000000000000001513650123000253055ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/__init__.py000066400000000000000000000000271513650123000274150ustar00rootroot00000000000000# Emoji VMenu category fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/000077500000000000000000000000001513650123000264015ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/__init__.py000066400000000000000000000000321513650123000305050ustar00rootroot00000000000000# Flags emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/argentina.py000066400000000000000000000011461513650123000307250ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡¦šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Argentina flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Argentina flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/australia.py000066400000000000000000000011461513650123000307420ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡¦šŸ‡ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Australia flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Australia flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/belgium.py000066400000000000000000000011421513650123000303750ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡§šŸ‡Ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Belgium flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Belgium flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/brazil.py000066400000000000000000000011401513650123000302320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡§šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Brazil flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Brazil flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/canada.py000066400000000000000000000011401513650123000301560ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ØšŸ‡¦" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Canada flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Canada flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/china.py000066400000000000000000000011361513650123000300360ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ØšŸ‡³" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add China flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added China flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/denmark.py000066400000000000000000000011421513650123000303720ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡©šŸ‡°" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Denmark flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Denmark flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/finland.py000066400000000000000000000011421513650123000303640ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡«šŸ‡®" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Finland flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Finland flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/france.py000066400000000000000000000011401513650123000302050ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡«šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add France flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added France flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/germany.py000066400000000000000000000011421513650123000304130ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡©šŸ‡Ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Germany flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Germany flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/greece.py000066400000000000000000000011401513650123000302010ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡¬šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Greece flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Greece flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/india.py000066400000000000000000000011361513650123000300400ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡®šŸ‡³" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add India flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added India flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/ireland.py000066400000000000000000000011421513650123000303670ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡®šŸ‡Ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Ireland flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Ireland flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/israel.py000066400000000000000000000011401513650123000302260ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡®šŸ‡±" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Israel flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Israel flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/italy.py000066400000000000000000000011361513650123000300760ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡®šŸ‡¹" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Italy flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Italy flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/japan.py000066400000000000000000000011361513650123000300450ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ÆšŸ‡µ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Japan flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Japan flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/mexico.py000066400000000000000000000011401513650123000302330ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡²šŸ‡½" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Mexico flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Mexico flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/netherlands.py000066400000000000000000000011521513650123000312610ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡³šŸ‡±" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Netherlands flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Netherlands flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/norway.py000066400000000000000000000011401513650123000302660ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡³šŸ‡“" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Norway flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Norway flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/poland.py000066400000000000000000000011401513650123000302240ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡µšŸ‡±" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Poland flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Poland flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/portugal.py000066400000000000000000000011441513650123000306100ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡µšŸ‡¹" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Portugal flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Portugal flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/russia.py000066400000000000000000000011401513650123000302550ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡·šŸ‡ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Russia flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Russia flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/south_africa.py000066400000000000000000000011541513650123000314230ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡æšŸ‡¦" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add South Africa flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added South Africa flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/south_korea.py000066400000000000000000000011521513650123000312750ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡°šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add South Korea flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added South Korea flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/spain.py000066400000000000000000000011361513650123000300660ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ŖšŸ‡ø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Spain flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Spain flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/sweden.py000066400000000000000000000011401513650123000302340ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡øšŸ‡Ŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Sweden flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Sweden flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/switzerland.py000066400000000000000000000011521513650123000313200ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ØšŸ‡­" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Switzerland flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Switzerland flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/turkey.py000066400000000000000000000011401513650123000302720ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡¹šŸ‡·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Turkey flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Turkey flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/uk.py000066400000000000000000000011301513650123000273650ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡¬šŸ‡§" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add UK flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added UK flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/ukraine.py000066400000000000000000000011421513650123000304070ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ŗšŸ‡¦" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Ukraine flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Ukraine flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/flags/usa.py000066400000000000000000000011321513650123000275400ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‡ŗšŸ‡ø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add USA flag emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added USA flag to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/000077500000000000000000000000001513650123000262345ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/__init__.py000066400000000000000000000000311513650123000303370ustar00rootroot00000000000000# Food emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/apple.py000066400000000000000000000011071513650123000277060ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Red apple emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added red apple to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/avocado.py000066400000000000000000000011031513650123000302150ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ„‘" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Avocado emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added avocado to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/beer.py000066400000000000000000000010751513650123000275260ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŗ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Beer emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added beer to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/birthday_cake.py000066400000000000000000000011171513650123000313770ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ‚" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Birthday cake emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added birthday cake to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/coffee.py000066400000000000000000000011211513650123000300300ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā˜•" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add coffee emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added coffee to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/donut.py000066400000000000000000000010771513650123000277440ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ©" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Donut emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added donut to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/hamburger.py000066400000000000000000000011301513650123000305550ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ”" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add hamburger emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added hamburger to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/pizza.py000066400000000000000000000011201513650123000277350ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ•" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add pizza emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added pizza to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/strawberry.py000066400000000000000000000011111513650123000310040ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ“" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Strawberry emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added strawberry to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/food/taco.py000066400000000000000000000010751513650123000275370ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌮" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Taco emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added taco to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/000077500000000000000000000000001513650123000271215ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/__init__.py000066400000000000000000000000351513650123000312300ustar00rootroot00000000000000# Holidays emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/alien_monster.py000066400000000000000000000011171513650123000323320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‘¾" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Alien monster emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added alien monster to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/bat.py000066400000000000000000000011141513650123000302360ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ¦‡" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add bat emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added bat to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/black_cat.py000066400000000000000000000011151513650123000313740ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸˆā€ā¬›" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Black cat emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added black cat to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/bunny.py000066400000000000000000000011201513650123000306200ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🐰" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add bunny emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added bunny to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/cauldron.py000066400000000000000000000010751513650123000313050ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ§™" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Mage emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added mage to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/christmas_tree.py000066400000000000000000000011421513650123000325050ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ„" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Christmas tree emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Christmas tree to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/coffin.py000066400000000000000000000011031513650123000307320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "āš°ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Coffin emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added coffin to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/easter_egg.py000066400000000000000000000011321513650123000315750ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🄚" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Easter egg emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Easter egg to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/fireworks.py000066400000000000000000000011301513650123000315010ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ†" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add fireworks emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added fireworks to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/ghost.py000066400000000000000000000011201513650123000306110ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‘»" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add ghost emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added ghost to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/gift.py000066400000000000000000000011161513650123000304230ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add gift emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added gift to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/jack_o_lantern.py000066400000000000000000000011421513650123000324420ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽƒ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add jack o'lantern emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added jack o'lantern to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/mummy.py000066400000000000000000000010771513650123000306440ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🧟" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Mummy emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added mummy to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/santa.py000066400000000000000000000011201513650123000305730ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŽ…" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add Santa emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added Santa to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/shamrock.py000066400000000000000000000011301513650123000312750ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā˜˜ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add shamrock emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added shamrock to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/skull.py000066400000000000000000000011201513650123000306170ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ’€" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add skull emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added skull to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/snowman.py000066400000000000000000000011231513650123000311520ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "⛄" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add snowman emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added snowman to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/spider.py000066400000000000000000000011221513650123000307550ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ•·" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add spider emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added spider to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/turkey.py000066400000000000000000000011221513650123000310120ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🦃" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add turkey emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added turkey to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/vampire.py000066400000000000000000000011031513650123000311310ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ§›" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Vampire emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added vampire to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/web.py000066400000000000000000000011141513650123000302450ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ•øļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Spider web emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added spider web to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/witch.py000066400000000000000000000011101513650123000306020ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ§™ā€ā™€ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Witch emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added witch to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/holidays/zombie.py000066400000000000000000000011011513650123000307510ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🧟" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Zombie emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added zombie to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/000077500000000000000000000000001513650123000266035ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/__init__.py000066400000000000000000000000331513650123000307100ustar00rootroot00000000000000# Nature emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/butterfly.py000066400000000000000000000011071513650123000311740ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ¦‹" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Butterfly emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added butterfly to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/cat.py000066400000000000000000000010731513650123000277250ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🐱" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Cat emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added cat to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/cherry_blossom.py000066400000000000000000000011211513650123000322020ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌸" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Cherry blossom emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added cherry blossom to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/dog.py000066400000000000000000000010731513650123000277270ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🐶" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Dog emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added dog to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/moon.py000066400000000000000000000011161513650123000301240ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸŒ™" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add moon emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added moon to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/rainbow.py000066400000000000000000000011031513650123000306110ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌈" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Rainbow emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added rainbow to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/rose.py000066400000000000000000000010751513650123000301300ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌹" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Rose emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added rose to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/sun.py000066400000000000000000000011161513650123000277610ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā˜€ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add sun emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sun to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/sunflower.py000066400000000000000000000011071513650123000312000ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌻" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Sunflower emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sunflower to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/tree.py000066400000000000000000000011161513650123000301130ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🌳" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add tree emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added tree to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/nature/wolf.py000066400000000000000000000011441513650123000301240ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🐺" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Wolf emoji - The mighty Fenrir!" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added the mighty wolf Fenrir to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/000077500000000000000000000000001513650123000265715ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/__init__.py000066400000000000000000000000331513650123000306760ustar00rootroot00000000000000# People emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/a_grinning.py000066400000000000000000000011171513650123000312560ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜€" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Grinning face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added grinning face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/angry.py000066400000000000000000000011111513650123000302550ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😠" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Angry face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added angry face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/beaming.py000066400000000000000000000011371513650123000305470ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😁" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Beaming face with smiling eyes emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added beaming face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/blowing_kiss.py000066400000000000000000000011311513650123000316310ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😘" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Face blowing a kiss emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added face blowing kiss to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/cool.py000066400000000000000000000011071513650123000300760ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜Ž" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Cool face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added cool face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/crying.py000066400000000000000000000011131513650123000304320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😭" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Crying face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added crying face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/devil.py000066400000000000000000000011111513650123000302400ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😈" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Devil face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added devil face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/dizzy.py000066400000000000000000000011111513650123000303060ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😵" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Dizzy face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added dizzy face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/exploding_head.py000066400000000000000000000011211513650123000321100ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤯" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Exploding head emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added exploding head to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/face_with_symbols.py000066400000000000000000000011421513650123000326420ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤬" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Face with symbols over mouth emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added face with symbols to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/grinning_sweat.py000066400000000000000000000011451513650123000321620ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜…" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Grinning face with sweat emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added grinning face with sweat to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/heart_eyes.py000066400000000000000000000011401513650123000312670ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Smiling face with heart-eyes emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added heart-eyes face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/hearts_around.py000066400000000000000000000011451513650123000320020ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🄰" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Smiling face with hearts emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added smiling face with hearts to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/imp.py000066400000000000000000000011371513650123000277320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‘æ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Angry face with horns emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added angry face with horns to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/laughing.py000066400000000000000000000011401513650123000307350ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜‚" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add laughing face emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added laughing face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/mindblown.py000066400000000000000000000011121513650123000311270ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤯" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Mind blown emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added mind blown to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/nauseated.py000066400000000000000000000011211513650123000311070ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤢" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Nauseated face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added nauseated face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/pleading.py000066400000000000000000000011171513650123000307260ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🄺" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Pleading face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added pleading face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/poop.py000066400000000000000000000010751513650123000301230ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ’©" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Poop emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added poop to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/rolling_laughing.py000066400000000000000000000011471513650123000324720ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤣" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Rolling on floor laughing emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added rolling on floor laughing to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/sad.py000066400000000000000000000011051513650123000277070ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😢" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Sad face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sad face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/savoring_food.py000066400000000000000000000011311513650123000317760ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜‹" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Face savoring food emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added face savoring food to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/screaming.py000066400000000000000000000011211513650123000311060ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😱" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Screaming face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added screaming face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/shocked.py000066400000000000000000000011151513650123000305610ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😱" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Shocked face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added shocked face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/smiling.py000066400000000000000000000011361513650123000306060ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "😊" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add smiling face emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added smiling face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/smirking.py000066400000000000000000000011171513650123000307660ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Smirking face emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added smirking face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/thumbs_up.py000066400000000000000000000011301513650123000311440ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ‘" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add thumbs up emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added thumbs up to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/people/winking.py000066400000000000000000000011361513650123000306120ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ˜‰" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add winking face emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added winking face to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/000077500000000000000000000000001513650123000267755ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/__init__.py000066400000000000000000000000341513650123000311030ustar00rootroot00000000000000# Symbols emoji subcategory fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/chains.py000066400000000000000000000011031513650123000306070ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā›“ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Chains emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added chains to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/checkmark.py000066400000000000000000000011271513650123000313000ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "āœ…" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add checkmark emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added checkmark to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/crossbones.py000066400000000000000000000010751513650123000315320ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🦓" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Bone emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added bone to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/dagger.py000066400000000000000000000011041513650123000305740ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ—”ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Dagger emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added dagger to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/fire.py000066400000000000000000000010751513650123000302770ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ”„" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Fire emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added fire to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/folded_hands.py000066400000000000000000000011151513650123000317570ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ™" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Folded hands emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added folded hands to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/heart.py000066400000000000000000000011221513650123000304460ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā¤ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add heart emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added heart to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/high_voltage.py000066400000000000000000000011521513650123000320060ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "⚔" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "High voltage lightning bolt emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added high voltage lightning bolt to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/hundred_points.py000066400000000000000000000011301513650123000323670ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "šŸ’Æ" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Hundred points symbol emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added hundred points to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/lightning.py000066400000000000000000000011061513650123000313300ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "⚔" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Lightning emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added lightning to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/peace.py000066400000000000000000000011131513650123000304200ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "āœŒļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Peace sign emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added peace sign to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/rock_on.py000066400000000000000000000011271513650123000310020ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "🤘" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Sign of the horns emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sign of the horns to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/skull_crossbones.py000066400000000000000000000011371513650123000327430ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "ā˜ ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Skull and crossbones emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added skull and crossbones to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/sparkles.py000066400000000000000000000011041513650123000311670ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "✨" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Sparkles emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sparkles to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/star.py000066400000000000000000000011151513650123000303160ustar00rootroot00000000000000class command(): def initialize(self, environment): self.env = environment self.emoji = "⭐" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Add star emoji to clipboard" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added star to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/emoji/symbols/sword.py000066400000000000000000000011031513650123000305000ustar00rootroot00000000000000 class command(): def initialize(self, environment): self.env = environment self.emoji = "āš”ļø" def shutdown(self): pass def setCallback(self, callback): pass def getDescription(self): return "Sword emoji" def run(self): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", self.emoji ) self.env["runtime"]["OutputManager"].present_text( "Added sword to clipboard", interrupt=False, flush=False ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/000077500000000000000000000000001513650123000254675ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/__init__.py000066400000000000000000000000451513650123000275770ustar00rootroot00000000000000# Fenrir Configuration VMenu Profile fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/config_base.py000066400000000000000000000125021513650123000303000ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import configparser import os import shutil import tempfile from datetime import datetime from fenrirscreenreader.core.i18n import _ class config_command: """Base class for configuration management commands""" def __init__(self): self.env = None self.settings_file = None self.config = None def initialize(self, environment): self.env = environment self.settings_file = self.env["runtime"][ "SettingsManager" ].settings_file self.config = self.env["runtime"]["SettingsManager"].settings def shutdown(self): pass def set_callback(self, callback): pass def present_text(self, text, interrupt=True, flush=True): """Present text to user with proper speech handling""" self.env["runtime"]["OutputManager"].present_text( text, interrupt=interrupt, flush=flush ) def play_sound(self, soundName): """Play system sound""" sound_icon = "" if soundName == "Accept": sound_icon = "Accept" elif soundName == "Error": sound_icon = "ErrorSound" elif soundName == "Cancel": sound_icon = "Cancel" if sound_icon: self.env["runtime"]["OutputManager"].present_text( "", sound_icon=sound_icon, interrupt=False ) def backup_config(self, announce=True): """Create backup of current configuration file""" try: if not os.path.exists(self.settings_file): message = "Configuration file not found" if announce: self.present_text(message) return False, message # Create backup with timestamp timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") backup_path = f"{self.settings_file}.backup_{timestamp}" shutil.copy2(self.settings_file, backup_path) message = f"Configuration backed up to {backup_path}" if announce: self.present_text("Configuration backup created successfully") return True, message except Exception as e: message = f"Failed to backup configuration: {str(e)}" if announce: self.present_text(message) return False, message def reload_config(self): """Reload configuration from file""" try: # Force settings manager to reload from file self.env["runtime"]["SettingsManager"].load_settings() self.config = self.env["runtime"]["SettingsManager"].settings return True except Exception as e: self.present_text(f"Failed to reload configuration: {str(e)}") return False def find_default_config(self): """Find default configuration file path""" # Look for default config in multiple locations default_paths = [ "/etc/fenrir/settings/settings.conf.default", "/usr/share/fenrir/settings/settings.conf", os.path.join( os.path.dirname(self.settings_file), "settings.conf.default" ), os.path.join( os.path.dirname(os.path.dirname(self.settings_file)), "settings", "settings.conf.default", ), ] for path in default_paths: if os.path.exists(path): return path return None def create_basic_defaults(self): """Create basic default configuration manually""" try: # Create a new config with basic defaults self.config = configparser.ConfigParser() # Add basic sections and settings self.config.add_section("speech") self.config.set("speech", "driver", "speechdDriver") self.config.set("speech", "rate", "0.75") self.config.set("speech", "pitch", "0.5") self.config.set("speech", "volume", "1.0") self.config.add_section("sound") self.config.set("sound", "driver", "genericDriver") self.config.set("sound", "volume", "0.7") self.config.add_section("keyboard") self.config.set("keyboard", "driver", "evdevDriver") self.config.set("keyboard", "keyboard_layout", "desktop") self.config.add_section("screen") self.config.set("screen", "driver", "vcsaDriver") self.config.add_section("general") self.config.set("general", "debug_mode", "Off") return True except Exception as e: self.present_text(f"Failed to create basic defaults: {str(e)}") return False def get_setting(self, section, setting, default=None): """Get setting value from settings manager""" try: return self.env["runtime"]["SettingsManager"].get_setting(section, setting) except Exception: return default def set_setting(self, section, setting, value): """Set setting value via settings manager""" try: self.env["runtime"]["SettingsManager"].set_setting(section, setting, value) return True except Exception: return False fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/000077500000000000000000000000001513650123000271045ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/__init__.py000066400000000000000000000000371513650123000312150ustar00rootroot00000000000000# Fenrir general configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/set_punctuation_all.py000066400000000000000000000022601513650123000335320ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set punctuation to All (every punctuation mark)" def run(self): current_level = self.get_setting("general", "punctuation_level", "some") if current_level.lower() == "all": self.present_text("Punctuation level already set to All") return success = self.set_setting("general", "punctuation_level", "all") if success: self.present_text("Punctuation level set to All - every punctuation mark will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change punctuation level") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/set_punctuation_most.py000066400000000000000000000022611513650123000337450ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set punctuation to Most (detailed punctuation)" def run(self): current_level = self.get_setting("general", "punctuation_level", "some") if current_level.lower() == "most": self.present_text("Punctuation level already set to Most") return success = self.set_setting("general", "punctuation_level", "most") if success: self.present_text("Punctuation level set to Most - detailed punctuation will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change punctuation level") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/set_punctuation_none.py000066400000000000000000000022541513650123000337240ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set punctuation to None (no punctuation spoken)" def run(self): current_level = self.get_setting("general", "punctuation_level", "some") if current_level.lower() == "none": self.present_text("Punctuation level already set to None") return success = self.set_setting("general", "punctuation_level", "none") if success: self.present_text("Punctuation level set to None - no punctuation will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change punctuation level") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/set_punctuation_some.py000066400000000000000000000022601513650123000337250ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set punctuation to Some (basic punctuation only)" def run(self): current_level = self.get_setting("general", "punctuation_level", "some") if current_level.lower() == "some": self.present_text("Punctuation level already set to Some") return success = self.set_setting("general", "punctuation_level", "some") if success: self.present_text("Punctuation level set to Some - basic punctuation will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change punctuation level") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/general/toggle_debug.py000066400000000000000000000033001513650123000321010ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Toggle debug mode" def run(self): current_level = self.get_setting("general", "debug_level", "0") # Present current debug level if current_level == "0": self.present_text("Current debug mode: disabled") new_level = "1" state_text = "enabled" else: self.present_text(f"Current debug level: {current_level}") new_level = "0" state_text = "disabled" success = self.set_setting("general", "debug_level", new_level) if success: self.present_text(f"Debug mode {state_text}") if new_level != "0": debug_mode = self.get_setting("general", "debug_mode", "File") if debug_mode == "File": self.present_text( "Debug output will be written to log file" ) else: self.present_text( "Debug output will be printed to console" ) self.play_sound("Accept") else: self.present_text("Failed to change debug mode") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/000077500000000000000000000000001513650123000272675ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/__init__.py000066400000000000000000000000401513650123000313720ustar00rootroot00000000000000# Fenrir keyboard configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/set_char_echo_always.py000066400000000000000000000022441513650123000340110ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set character echo to Always (echo all typed characters)" def run(self): current_mode = self.get_setting("keyboard", "char_echo_mode", "1") if current_mode == "1": self.present_text("Character echo already set to Always") return success = self.set_setting("keyboard", "char_echo_mode", "1") if success: self.present_text("Character echo set to Always - all typed characters will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change character echo mode") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/set_char_echo_caps.py000066400000000000000000000023141513650123000334350ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set character echo to Caps Lock (echo only when caps lock is on)" def run(self): current_mode = self.get_setting("keyboard", "char_echo_mode", "1") if current_mode == "2": self.present_text("Character echo already set to Caps Lock mode") return success = self.set_setting("keyboard", "char_echo_mode", "2") if success: self.present_text("Character echo set to Caps Lock mode - characters will be spoken only when caps lock is on") self.play_sound("Accept") else: self.present_text("Failed to change character echo mode") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/set_char_echo_none.py000066400000000000000000000022251513650123000334470ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set character echo to None (no character echo)" def run(self): current_mode = self.get_setting("keyboard", "char_echo_mode", "1") if current_mode == "0": self.present_text("Character echo already set to None") return success = self.set_setting("keyboard", "char_echo_mode", "0") if success: self.present_text("Character echo set to None - no typed characters will be spoken") self.play_sound("Accept") else: self.present_text("Failed to change character echo mode") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/toggle_grab_devices.py000066400000000000000000000027421513650123000336240ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Toggle exclusive keyboard access" def run(self): current_state = self.getBooleanSetting("keyboard", "grab_devices", True) new_state = self.toggleBooleanSetting("keyboard", "grab_devices") if new_state != current_state: state_text = "enabled" if new_state else "disabled" self.present_text(f"Exclusive keyboard access {state_text}") if new_state: self.present_text( "Fenrir will have exclusive control of keyboard input" ) else: self.present_text( "Fenrir will share keyboard input with other applications" ) self.present_text( "Please restart Fenrir for this change to take effect" ) self.play_sound("Accept") else: self.present_text("Failed to change keyboard grab setting") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/keyboard/toggle_word_echo.py000066400000000000000000000024351513650123000331570ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Toggle word echo when pressing space" def run(self): current_state = self.getBooleanSetting("keyboard", "word_echo", False) new_state = self.toggleBooleanSetting("keyboard", "word_echo") if new_state != current_state: state_text = "enabled" if new_state else "disabled" self.present_text(f"Word echo {state_text}") if new_state: self.present_text("Words will be spoken when you press space") else: self.present_text( "Words will not be spoken when you press space" ) self.play_sound("Accept") else: self.present_text("Failed to change word echo setting") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/000077500000000000000000000000001513650123000276035ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/__init__.py000066400000000000000000000000421513650123000317100ustar00rootroot00000000000000# Fenrir management configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/backup_config.py000066400000000000000000000022731513650123000327530ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Create backup of current configuration" def run(self): self.present_text("Creating configuration backup...") success, message = self.backup_config(announce=False) if success: # Force the message to be queued and spoken self.env["runtime"]["OutputManager"].present_text( "Configuration backup created successfully", interrupt=False, flush=False, ) else: self.env["runtime"]["OutputManager"].present_text( "Failed to create configuration backup", interrupt=False, flush=False, ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/reload_config.py000066400000000000000000000016541513650123000327560ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Reload configuration from file" def run(self): self.present_text("Reloading configuration from file...") success = self.reload_config() if success: self.present_text("Configuration reloaded successfully") self.play_sound("Accept") else: self.present_text("Failed to reload configuration") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/reset_defaults.py000066400000000000000000000120461513650123000331710ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os import shutil from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Reset configuration to default settings" def run(self): self.present_text("WARNING: This will reset all settings to defaults") self.present_text("Creating backup before reset...") # Create backup first backupSuccess, backupMessage = self.backup_config(announce=False) if not backupSuccess: self.present_text( "Failed to create backup. Reset cancelled for safety.", interrupt=False, ) self.play_sound("Error") return # Find default configuration file default_config_path = self.find_default_config() if default_config_path and os.path.isfile(default_config_path): try: # Copy default configuration over current shutil.copy2(default_config_path, self.settings_file) # Reload the configuration self.reload_config() self.present_text( "Configuration reset to defaults successfully", interrupt=False, flush=False, ) self.present_text( "Please restart Fenrir for all changes to take effect", interrupt=False, flush=False, ) except Exception as e: self.present_text( f"Failed to reset configuration: {str(e)}", interrupt=False, flush=False, ) else: # Manually create basic default configuration self.create_basic_defaults() def find_default_config(self): """Find the default configuration file""" possible_paths = [ "/usr/share/fenrirscreenreader/config/settings/settings.conf", "/etc/fenrirscreenreader/settings/settings.conf.default", os.path.join( os.path.dirname(self.settings_file), "settings.conf.default" ), # Development path os.path.join( os.path.dirname(__file__), "..", "..", "..", "..", "..", "..", "config", "settings", "settings.conf", ), ] for path in possible_paths: if os.path.isfile(path): return path return None def create_basic_defaults(self): """Create basic default configuration manually""" try: self.config.clear() # Basic speech defaults self.config["speech"] = { "enabled": "True", "driver": "speechdDriver", "rate": "0.5", "pitch": "0.5", "volume": "1.0", "auto_read_incoming": "True", } # Basic sound defaults self.config["sound"] = { "enabled": "True", "driver": "genericDriver", "theme": "default", "volume": "0.7", } # Basic keyboard defaults self.config["keyboard"] = { "driver": "evdevDriver", "device": "ALL", "keyboard_layout": "desktop", "char_echo_mode": "1", "word_echo": "False", "char_delete_echo": "True", } # Basic screen defaults self.config["screen"] = { "driver": "vcsaDriver", "encoding": "auto", } # Basic general defaults self.config["general"] = { "punctuation_level": "some", "debug_level": "0", "number_of_clipboards": "50", } # Write the configuration with open(self.settings_file, "w") as configfile: self.config.write(configfile) self.present_text( "Basic default configuration created", interrupt=False, flush=False, ) self.present_text( "Please restart Fenrir for changes to take effect", interrupt=False, flush=False, ) except Exception as e: self.present_text( f"Failed to create default configuration: {str(e)}", interrupt=False, flush=False, ) fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/revert_to_saved.py000066400000000000000000000047211513650123000333540ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Discard temporary changes and revert to saved settings" def run(self): self.env["runtime"]["OutputManager"].present_text( "Reverting to saved configuration...", interrupt=True ) try: # Reload settings from file, discarding runtime changes SettingsManager = self.env["runtime"]["SettingsManager"] SettingsManager.load_settings() # Reinitialize speech system with restored settings if "SpeechDriver" in self.env["runtime"]: try: SpeechDriver = self.env["runtime"]["SpeechDriver"] SpeechDriver.shutdown() SpeechDriver.initialize(self.env) except Exception as e: print( f"revert_to_saved SpeechDriver: Error reinitializing speech driver: {str(e)}" ) # Reinitialize sound system with restored settings if "sound_driver" in self.env["runtime"]: try: sound_driver = self.env["runtime"]["sound_driver"] sound_driver.shutdown() sound_driver.initialize(self.env) except Exception as e: print( f"revert_to_saved sound_driver: Error reinitializing sound driver: {str(e)}" ) self.env["runtime"]["OutputManager"].present_text( "Successfully reverted to saved settings", interrupt=False, flush=False, ) self.env["runtime"]["OutputManager"].present_text( "All temporary changes have been discarded", interrupt=False, flush=False, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Error reverting settings: {str(e)}", interrupt=False, flush=False, ) self.env["runtime"]["OutputManager"].present_text( "You may need to restart Fenrir", interrupt=False, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/save_config.py000066400000000000000000000022131513650123000324360ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Save current configuration to file" def run(self): self.present_text("Saving current configuration...") try: # Force reload and save of current configuration self.reload_config() # Write the configuration file with open(self.settings_file, "w") as configfile: self.config.write(configfile) self.present_text("Configuration saved successfully") self.play_sound("Accept") except Exception as e: self.present_text(f"Failed to save configuration: {str(e)}") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/save_session_settings.py000066400000000000000000000025611513650123000346020ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Save current session settings to configuration file" def run(self): self.env["runtime"]["OutputManager"].present_text( "Saving current session settings to configuration file...", interrupt=True, ) try: # This calls the settings manager's save method which writes # current runtime settings to file self.env["runtime"]["SettingsManager"].save_settings() self.env["runtime"]["OutputManager"].present_text( "Session settings saved successfully!", interrupt=False, flush=False, ) self.env["runtime"]["OutputManager"].present_text( "All temporary changes are now permanent.", interrupt=False, flush=False, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Failed to save settings: {str(e)}", interrupt=False, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/management/show_unsaved_changes.py000066400000000000000000000063051513650123000343560ustar00rootroot00000000000000#!/usr/bin/env python3 import configparser from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Show temporary changes not yet saved to file" def run(self): self.env["runtime"]["OutputManager"].present_text( "Checking for unsaved changes...", interrupt=True ) try: # Read the current config file settings_file = self.env["runtime"][ "SettingsManager" ].settings_file file_config = configparser.ConfigParser(interpolation=None) file_config.read(settings_file) # Compare with runtime settings runtime_settings = self.env["runtime"]["SettingsManager"].settings changes = [] # Check speech settings specifically speech_sections = [ "speech", "sound", "keyboard", "screen", "general", ] for section in speech_sections: if section in runtime_settings and section in file_config: for option in runtime_settings[section]: runtime_value = runtime_settings[section][option] try: file_value = file_config[section][option] except Exception as e: file_value = "" if runtime_value != file_value: changes.append( f"{section}.{option}: {file_value} → {runtime_value}" ) if changes: self.env["runtime"]["OutputManager"].present_text( f"found {len(changes)} unsaved changes:", interrupt=True ) for change in changes[:5]: # Limit to first 5 changes self.env["runtime"]["OutputManager"].present_text( change, interrupt=True ) if len(changes) > 5: self.env["runtime"]["OutputManager"].present_text( f"... and {len(changes) - 5} more changes", interrupt=True, ) self.env["runtime"]["OutputManager"].present_text( "Use save command to make these changes permanent", interrupt=True, ) self.env["runtime"]["OutputManager"].play_sound("Accept") else: self.env["runtime"]["OutputManager"].present_text( "No unsaved changes found", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Cancel") except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Error checking for changes: {str(e)}", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Error") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/000077500000000000000000000000001513650123000267465ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/__init__.py000066400000000000000000000000361513650123000310560ustar00rootroot00000000000000# Fenrir screen configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/select_driver.py000066400000000000000000000040121513650123000321470ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Select screen driver" def run(self): current_driver = self.get_setting("screen", "driver", "vcsaDriver") # Present current driver driver_descriptions = { "vcsaDriver": "VCSA Driver - Linux TTY console access", "ptyDriver": "PTY Driver - terminal emulation", "dummyDriver": "Dummy Driver - for testing only", "debugDriver": "Debug Driver - development/debugging", } current_description = driver_descriptions.get( current_driver, "Unknown driver" ) self.present_text(f"Current screen driver: {current_description}") # Cycle through the available drivers drivers = ["vcsaDriver", "ptyDriver", "dummyDriver", "debugDriver"] try: current_index = drivers.index(current_driver) next_index = (current_index + 1) % len(drivers) new_driver = drivers[next_index] except ValueError: new_driver = "vcsaDriver" # Default to VCSA success = self.set_setting("screen", "driver", new_driver) if success: new_description = driver_descriptions[new_driver] self.present_text(f"Screen driver changed to: {new_description}") self.present_text( "Please restart Fenrir for this change to take effect." ) self.play_sound("Accept") else: self.present_text("Failed to change screen driver") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/set_encoding_auto.py000066400000000000000000000022531513650123000330130ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set screen encoding to Auto (automatic detection)" def run(self): current_encoding = self.get_setting("screen", "encoding", "auto") if current_encoding.lower() == "auto": self.present_text("Screen encoding already set to Auto") return success = self.set_setting("screen", "encoding", "auto") if success: self.present_text("Screen encoding set to Auto - Fenrir will automatically detect text encoding") self.play_sound("Accept") else: self.present_text("Failed to change screen encoding") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/set_encoding_cp1252.py000066400000000000000000000022551513650123000327610ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set screen encoding to CP1252 (Windows Western European)" def run(self): current_encoding = self.get_setting("screen", "encoding", "auto") if current_encoding.lower() == "cp1252": self.present_text("Screen encoding already set to CP1252") return success = self.set_setting("screen", "encoding", "cp1252") if success: self.present_text("Screen encoding set to CP1252 - Windows Western European encoding") self.play_sound("Accept") else: self.present_text("Failed to change screen encoding") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/set_encoding_iso88591.py000066400000000000000000000022371513650123000332560ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set screen encoding to ISO-8859-1 (Latin-1)" def run(self): current_encoding = self.get_setting("screen", "encoding", "auto") if current_encoding.lower() == "iso-8859-1": self.present_text("Screen encoding already set to ISO-8859-1") return success = self.set_setting("screen", "encoding", "iso-8859-1") if success: self.present_text("Screen encoding set to ISO-8859-1 - Latin-1 encoding") self.play_sound("Accept") else: self.present_text("Failed to change screen encoding") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/screen/set_encoding_utf8.py000066400000000000000000000022131513650123000327250ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Set screen encoding to UTF-8 (Unicode)" def run(self): current_encoding = self.get_setting("screen", "encoding", "auto") if current_encoding.lower() == "utf-8": self.present_text("Screen encoding already set to UTF-8") return success = self.set_setting("screen", "encoding", "utf-8") if success: self.present_text("Screen encoding set to UTF-8 - Unicode text encoding") self.play_sound("Accept") else: self.present_text("Failed to change screen encoding") self.play_sound("Error")fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/000077500000000000000000000000001513650123000266175ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/__init__.py000066400000000000000000000000351513650123000307260ustar00rootroot00000000000000# Fenrir sound configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/adjust_volume.py000066400000000000000000000034021513650123000320510ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Adjust sound volume" def run(self): current_volume = self.getFloatSetting("sound", "volume", 0.7) # Present current volume volume_percent = int(current_volume * 100) self.present_text(f"Current sound volume: {volume_percent} percent") # Adjust volume by 10% new_volume = self.adjustFloatSetting("sound", "volume", 0.1, 0.0, 1.0) if new_volume != current_volume: new_percent = int(new_volume * 100) self.present_text( f"Sound volume set to {new_percent} percent", interrupt=False ) self.play_sound("Accept") else: # If we hit the maximum, try decreasing instead new_volume = self.adjustFloatSetting( "sound", "volume", -0.1, 0.0, 1.0 ) if new_volume != current_volume: new_percent = int(new_volume * 100) self.present_text( f"Sound volume set to {new_percent} percent", interrupt=False, ) self.play_sound("Accept") else: self.present_text("Sound volume unchanged", interrupt=False) self.play_sound("Cancel") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/select_driver.py000066400000000000000000000032041513650123000320220ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Select sound driver (genericDriver or gstreamerDriver)" def run(self): current_driver = self.get_setting("sound", "driver", "genericDriver") # Present current driver self.present_text(f"Current sound driver: {current_driver}") # Toggle between the two available drivers if current_driver == "genericDriver": new_driver = "gstreamerDriver" driver_description = ( "GStreamer Driver - advanced multimedia framework" ) else: new_driver = "genericDriver" driver_description = "Generic Driver - uses SOX for audio playback" success = self.set_setting("sound", "driver", new_driver) if success: self.present_text( f"Sound driver changed to {new_driver}. {driver_description}" ) self.present_text( "Please restart Fenrir for this change to take effect." ) self.play_sound("Accept") else: self.present_text("Failed to change sound driver") self.play_sound("Error") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/select_theme.py000066400000000000000000000063451513650123000316420ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Select sound theme" def run(self): current_theme = self.get_setting("sound", "theme", "default") # Present current theme self.present_text(f"Current sound theme: {current_theme}") # Look for available sound themes sound_paths = [ "/usr/share/sounds", "/usr/share/fenrirscreenreader/sounds", os.path.expanduser("~/.local/share/fenrirscreenreader/sounds"), ] available_themes = self.get_available_themes(sound_paths) if len(available_themes) > 1: # For this implementation, cycle through available themes try: current_index = available_themes.index(current_theme) next_index = (current_index + 1) % len(available_themes) new_theme = available_themes[next_index] except ValueError: # Current theme not found in available themes, use first one new_theme = available_themes[0] success = self.set_setting("sound", "theme", new_theme) if success: self.present_text(f"Sound theme changed to: {new_theme}") self.play_sound("Accept") else: self.present_text("Failed to change sound theme") self.play_sound("Error") else: self.present_text("Only default sound theme is available") self.play_sound("Cancel") def get_available_themes(self, searchPaths): """Find available sound themes in the search paths""" themes = ["default"] # Always include default for path in searchPaths: if os.path.isdir(path): try: for item in os.listdir(path): full_path = os.path.join(path, item) if ( os.path.isdir(full_path) and item != "default" and item not in themes ): # Check if it looks like a sound theme (contains # sound files) if self.is_valid_sound_theme(full_path): themes.append(item) except Exception: continue return themes def is_valid_sound_theme(self, themePath): """Check if a directory contains sound files""" sound_extensions = [".wav", ".ogg", ".mp3", ".flac"] try: for file in os.listdir(themePath): if any(file.lower().endswith(ext) for ext in sound_extensions): return True except Exception: pass return False fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/sound/toggle_enabled.py000066400000000000000000000020721513650123000321250ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os from fenrirscreenreader.core.i18n import _ # Load base configuration class _base_path = os.path.join(os.path.dirname(__file__), "..", "config_base.py") _spec = importlib.util.spec_from_file_location("config_base", _base_path) _module = importlib.util.module_from_spec(_spec) _spec.loader.exec_module(_module) config_command = _module.config_command class command(config_command): def __init__(self): super().__init__() def get_description(self): return "Toggle sound output on or off" def run(self): current_state = self.getBooleanSetting("sound", "enabled", True) new_state = self.toggleBooleanSetting("sound", "enabled") if new_state != current_state: state_text = "enabled" if new_state else "disabled" self.present_text(f"Sound {state_text}") # Only play sound if we enabled sound if new_state: self.play_sound("Accept") else: self.present_text("Failed to change sound setting") fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/000077500000000000000000000000001513650123000267365ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/__init__.py000066400000000000000000000000361513650123000310460ustar00rootroot00000000000000# Fenrir speech configuration fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/adjust_pitch.py000066400000000000000000000026631513650123000320000ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Adjust speech pitch (voice height)" def run(self): try: # Get current pitch current_pitch = float( self.env["runtime"]["SettingsManager"].get_setting( "speech", "pitch" ) ) except Exception as e: current_pitch = 0.5 # Present current pitch pitch_percent = int(current_pitch * 100) self.env["runtime"]["OutputManager"].present_text( f"Current speech pitch: {pitch_percent} percent", interrupt=True ) # Increase by 10%, wrap around if at max new_pitch = current_pitch + 0.1 if new_pitch > 1.0: new_pitch = 0.1 # Wrap to minimum # Apply the new pitch self.env["runtime"]["SettingsManager"].set_setting( "speech", "pitch", str(new_pitch) ) new_percent = int(new_pitch * 100) self.env["runtime"]["OutputManager"].present_text( f"Speech pitch set to {new_percent} percent", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Accept") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/adjust_rate.py000066400000000000000000000025761513650123000316270ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Adjust speech rate (speed)" def run(self): try: # Get current rate current_rate = float( self.env["runtime"]["SettingsManager"].get_setting( "speech", "rate" ) ) except Exception as e: current_rate = 0.5 # Present current rate rate_percent = int(current_rate * 100) self.env["runtime"]["OutputManager"].present_text( f"Current speech rate: {rate_percent} percent", interrupt=True ) # Increase by 10%, wrap around if at max new_rate = current_rate + 0.1 if new_rate > 1.0: new_rate = 0.1 # Wrap to minimum # Apply the new rate self.env["runtime"]["SettingsManager"].set_setting( "speech", "rate", str(new_rate) ) new_percent = int(new_rate * 100) self.env["runtime"]["OutputManager"].present_text( f"Speech rate set to {new_percent} percent", interrupt=False, flush=False, ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/adjust_speech_rate.py000066400000000000000000000037641513650123000331560ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Adjust speech rate (temporary - use save to make permanent)" def run(self): try: # Get current rate from runtime settings (may be temporary) SettingsManager = self.env["runtime"]["SettingsManager"] current_rate = float(SettingsManager.get_setting("speech", "rate")) except Exception as e: current_rate = 0.5 # Present current rate rate_percent = int(current_rate * 100) self.env["runtime"]["OutputManager"].present_text( f"Current speech rate: {rate_percent} percent", interrupt=True ) # Increase by 10%, wrap around if at max new_rate = current_rate + 0.1 if new_rate > 1.0: new_rate = 0.1 # Wrap to minimum # Apply ONLY to runtime - this is temporary until saved SettingsManager = self.env["runtime"]["SettingsManager"] SettingsManager.settings["speech"]["rate"] = str(new_rate) # Apply to speech system immediately for this session if "SpeechDriver" in self.env["runtime"]: try: self.env["runtime"]["SpeechDriver"].set_rate(new_rate) except Exception as e: print( f"adjust_speech_rate set_rate: Error setting speech rate: {str(e)}" ) new_percent = int(new_rate * 100) self.env["runtime"]["OutputManager"].present_text( f"Speech rate temporarily set to {new_percent} percent", interrupt=False, flush=False, ) self.env["runtime"]["OutputManager"].present_text( "Use save command to make permanent", interrupt=False, flush=False ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/adjust_volume.py000066400000000000000000000027021513650123000321720ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Adjust speech volume (loudness)" def run(self): try: # Get current volume current_volume = float( self.env["runtime"]["SettingsManager"].get_setting( "speech", "volume" ) ) except Exception as e: current_volume = 1.0 # Present current volume volume_percent = int(current_volume * 100) self.env["runtime"]["OutputManager"].present_text( f"Current speech volume: {volume_percent} percent", interrupt=True ) # Increase by 10%, wrap around if at max new_volume = current_volume + 0.1 if new_volume > 1.0: new_volume = 0.1 # Wrap to minimum # Apply the new volume self.env["runtime"]["SettingsManager"].set_setting( "speech", "volume", str(new_volume) ) new_percent = int(new_volume * 100) self.env["runtime"]["OutputManager"].present_text( f"Speech volume set to {new_percent} percent", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Accept") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/fenrir/speech/show_current_settings.py000066400000000000000000000057451513650123000337650ustar00rootroot00000000000000#!/usr/bin/env python3 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Show current speech settings" def run(self): # Get current speech settings driver = self.env["runtime"]["SettingsManager"].get_setting( "speech", "driver" ) module = self.env["runtime"]["SettingsManager"].get_setting( "speech", "module" ) voice = self.env["runtime"]["SettingsManager"].get_setting( "speech", "voice" ) rate = self.env["runtime"]["SettingsManager"].get_setting( "speech", "rate" ) pitch = self.env["runtime"]["SettingsManager"].get_setting( "speech", "pitch" ) volume = self.env["runtime"]["SettingsManager"].get_setting( "speech", "volume" ) enabled = self.env["runtime"]["SettingsManager"].get_setting( "speech", "enabled" ) self.env["runtime"]["OutputManager"].present_text( "Current speech settings:", interrupt=True ) # Present all settings self.env["runtime"]["OutputManager"].present_text( f"Speech enabled: {enabled}", interrupt=True ) self.env["runtime"]["OutputManager"].present_text( f"Driver: {driver}", interrupt=True ) if module: self.env["runtime"]["OutputManager"].present_text( f"Module: {module}", interrupt=True ) if voice: self.env["runtime"]["OutputManager"].present_text( f"Voice: {voice}", interrupt=True ) try: rate_percent = int(float(rate) * 100) self.env["runtime"]["OutputManager"].present_text( f"Rate: {rate_percent} percent", interrupt=True ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Rate: {rate}", interrupt=True ) try: pitch_percent = int(float(pitch) * 100) self.env["runtime"]["OutputManager"].present_text( f"Pitch: {pitch_percent} percent", interrupt=True ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Pitch: {pitch}", interrupt=True ) try: volume_percent = int(float(volume) * 100) self.env["runtime"]["OutputManager"].present_text( f"Volume: {volume_percent} percent", interrupt=True ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Volume: {volume}", interrupt=True ) self.env["runtime"]["OutputManager"].play_sound("Accept") def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/000077500000000000000000000000001513650123000246015ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/__init__.py000077500000000000000000000000001513650123000267030ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/file/000077500000000000000000000000001513650123000255205ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/file/__init__.py000077500000000000000000000000001513650123000276220ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/file/open.py000066400000000000000000000011141513650123000270300ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/file/save.py000066400000000000000000000011131513650123000270240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open save", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/search/000077500000000000000000000000001513650123000260465ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/search/__init__.py000077500000000000000000000000001513650123000301500ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/search/replace.py000066400000000000000000000011171513650123000300330ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run replace macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/search/search.py000066400000000000000000000011161513650123000276640ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run search macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mc/search/test.py000066400000000000000000000014341513650123000274010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Test mc search functionality") def run(self): # Test command for mc search operations test_message = _("MC search test: This demonstrates search functionality") # present the test message self.env["runtime"]["OutputManager"].present_text( test_message, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/000077500000000000000000000000001513650123000251735ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/__init__.py000077500000000000000000000000001513650123000272750ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/file/000077500000000000000000000000001513650123000261125ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/file/__init__.py000077500000000000000000000000001513650123000302140ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/file/issue.py000066400000000000000000000013231513650123000276130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.key_macro = [ [1, "KEY_LEFTCTRL"], [1, "KEY_G"], [0.05, "sleep"], [0, "KEY_G"], [0, "KEY_LEFTCTRL"], ] def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["InputManager"].send_keys(self.key_macro) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/file/open.py000066400000000000000000000014171513650123000274300ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.macro = [ [1, "KEY_LEFTSHIFT"], [1, "KEY_LEFTCTRL"], [1, "KEY_N"], [0.05, "SLEEP"], [0, "KEY_N"], [0, "KEY_LEFTCTRL"], [0, "KEY_LEFTSHIFT"], ] def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["InputManager"].send_keys(self.macro) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/file/save.py000066400000000000000000000011131513650123000274160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open save", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/search/000077500000000000000000000000001513650123000264405ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/search/__init__.py000077500000000000000000000000001513650123000305420ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/search/replace.py000066400000000000000000000011171513650123000304250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run replace macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/search/search.py000066400000000000000000000011161513650123000302560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run search macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/mutt/search/test.py000066400000000000000000000014421513650123000277720ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Test mutt search functionality") def run(self): # Test command for mutt search operations test_message = _("Mutt search test: This demonstrates search functionality") # present the test message self.env["runtime"]["OutputManager"].present_text( test_message, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/000077500000000000000000000000001513650123000251355ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/Help/000077500000000000000000000000001513650123000260255ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/Help/__init__.py000077500000000000000000000000001513650123000301270ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/Help/about_nano.py000077500000000000000000000020471513650123000305320ustar00rootroot00000000000000#!/usr/bin/env python # -*- encoding: utf-8 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.key_macro = [ [1, "KEY_LEFTCTRL"], [1, "KEY_G"], [0.05, "SLEEP"], [0, "KEY_G"], [0, "KEY_LEFTCTRL"], ] def shutdown(self): pass def get_description(self): return "Learn about the Nano text editor." def run(self): self.env["runtime"]["OutputManager"].present_text( "Okay, loading the information about Nano.", interrupt=True ) if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: self.env["runtime"]["InputManager"].send_keys(self.key_macro) elif self.env["runtime"]["InputManager"].get_shortcut_type() in [ "BYTE" ]: self.env["runtime"]["ByteManager"].send_bytes(self.byteMakro) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/__init__.py000077500000000000000000000000001513650123000272370ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/file/000077500000000000000000000000001513650123000260545ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/file/__init__.py000077500000000000000000000000001513650123000301560ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/file/open.py000066400000000000000000000011141513650123000273640ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/file/save.py000077500000000000000000000020321513650123000273640ustar00rootroot00000000000000#!/usr/bin/env python # -*- encoding: utf-8 from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment self.key_macro = [ [1, "KEY_LEFTCTRL"], [1, "KEY_S"], [0.05, "SLEEP"], [0, "KEY_S"], [0, "KEY_LEFTCTRL"], ] def shutdown(self): pass def get_description(self): return "Save your work." def run(self): self.env["runtime"]["OutputManager"].present_text( "Okay, you will now be asked to save your work.", interrupt=True ) if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: self.env["runtime"]["InputManager"].send_keys(self.key_macro) elif self.env["runtime"]["InputManager"].get_shortcut_type() in [ "BYTE" ]: self.env["runtime"]["ByteManager"].send_bytes(self.byteMakro) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/search/000077500000000000000000000000001513650123000264025ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/search/__init__.py000077500000000000000000000000001513650123000305040ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/search/replace.py000066400000000000000000000011171513650123000303670ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run replace macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/search/search.py000066400000000000000000000011161513650123000302200ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run search macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/nano/search/test.py000066400000000000000000000014421513650123000277340ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Test nano search functionality") def run(self): # Test command for nano search operations test_message = _("Nano search test: This demonstrates search functionality") # present the test message self.env["runtime"]["OutputManager"].present_text( test_message, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/000077500000000000000000000000001513650123000247755ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/__init__.py000077500000000000000000000000001513650123000270770ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/file/000077500000000000000000000000001513650123000257145ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/file/__init__.py000077500000000000000000000000001513650123000300160ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/file/open.py000066400000000000000000000011141513650123000272240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/file/save.py000066400000000000000000000011131513650123000272200ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run open save", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/search/000077500000000000000000000000001513650123000262425ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/search/__init__.py000077500000000000000000000000001513650123000303440ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/search/replace.py000066400000000000000000000011171513650123000302270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run replace macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/search/search.py000066400000000000000000000011161513650123000300600ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "No description found" def run(self): self.env["runtime"]["OutputManager"].present_text( "ok i run search macro", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/KEY/vim/search/test.py000066400000000000000000000014371513650123000276000ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import datetime from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return _("Test vim search functionality") def run(self): # Test command for vim search operations test_message = _("Vim search test: This demonstrates search functionality") # present the test message self.env["runtime"]["OutputManager"].present_text( test_message, sound_icon="", interrupt=True ) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/commands/vmenu-profiles/__init__.py000077500000000000000000000000001513650123000256540ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/commands/vmenu-profiles/template.py000066400000000000000000000021501513650123000257350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core.i18n import _ class command: def __init__(self): pass def initialize(self, environment): self.env = environment # examples: # self.key_macro = [[1,'KEY_LEFTCTRL'],[1,'KEY_O'],[0.05,'SLEEP'],[0,'KEY_O'],[0,'KEY_LEFTCTRL']] # self.key_macro = [[1,'KEY_LEFTSHIFT'],[1,'KEY_LEFTCTRL'],[1,'KEY_N'],[0.05,'SLEEP'],[0,'KEY_N'],[0,'KEY_LEFTCTRL'],[0,'KEY_LEFTSHIFT']] self.key_macro = [] self.byteMakro = [] def shutdown(self): pass def get_description(self): return "No description found" def run(self): if self.env["runtime"]["InputManager"].get_shortcut_type() in ["KEY"]: self.env["runtime"]["InputManager"].send_keys(self.key_macro) elif self.env["runtime"]["InputManager"].get_shortcut_type() in [ "BYTE" ]: self.env["runtime"]["ByteManager"].send_bytes(self.byteMakro) def set_callback(self, callback): pass fenrir/src/fenrirscreenreader/core/000077500000000000000000000000001513650123000177265ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/core/__init__.py000066400000000000000000000000001513650123000220250ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/core/applicationManager.py000066400000000000000000000017411513650123000241010ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class ApplicationManager: def __init__(self): pass def initialize(self, environment): self.env = environment def shutdown(self): pass def get_current_application(self): curr_app = self.env["screen"]["new_application"].upper() if not curr_app: curr_app = "DEFAULT" if curr_app == "": curr_app = "DEFAULT" return curr_app def get_prev_application(self): prev_app = self.env["screen"]["oldApplication"].upper() if not prev_app: prev_app = "DEFAULT" if prev_app == "": prev_app = "DEFAULT" return prev_app def is_application_change(self): return ( self.env["screen"]["oldApplication"] != self.env["screen"]["new_application"] ) fenrir/src/fenrirscreenreader/core/attributeManager.py000066400000000000000000000666541513650123000236170ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from collections import Counter from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class AttributeManager: def __init__(self): self.currAttributes = None self.prevAttributes = None self.currAttributeDelta = "" self.currAttributeCursor = None self.prefAttributeCursor = None self.init_default_attributes() self.prevLastCursorAttribute = None self.currLastCursorAttribute = None def initialize(self, environment): self.env = environment def shutdown(self): pass def set_last_cursor_attribute(self, lastCursorAttribute): self.prevLastCursorAttribute = self.currLastCursorAttribute self.currLastCursorAttribute = lastCursorAttribute def reset_last_cursor_attribute(self): self.prevLastCursorAttribute = None self.currLastCursorAttribute = None def is_last_cursor_attribute_change(self): if self.prevLastCursorAttribute is None: return False return self.prevLastCursorAttribute != self.currLastCursorAttribute def get_curr_attribute_cursor(self): return self.currAttributeCursor def is_attribute_cursor_active(self): return self.currAttributeCursor is not None def is_attribute_change(self): if not self.prevAttributes: return False return self.currAttributes != self.prevAttributes def reset_attribute_all(self): self.reset_attribute_delta() self.reset_attribute_cursor() def get_attribute_delta(self): return self.currAttributeDelta def reset_attribute_delta(self): self.currAttributeDelta = "" def set_attribute_delta(self, currAttributeDelta): self.currAttributeDelta = currAttributeDelta def reset_attribute_cursor(self): self.currAttributeCursor = None self.prefAttributeCursor = None def set_attribute_cursor(self, currAttributeCursor): self.prefAttributeCursor = self.currAttributeCursor self.currAttributeCursor = currAttributeCursor.copy() def reset_attributes(self, currAttributes): self.prevAttributes = None self.currAttributes = currAttributes def set_attributes(self, currAttributes): self.prevAttributes = self.currAttributes self.currAttributes = currAttributes.copy() def get_attribute_by_xy(self, x, y): if not self.currAttributes: return None if len(self.currAttributes) < y: return None if len(self.currAttributes[y]) < x - 1: return None try: return self.currAttributes[y][x] except KeyError: try: return self.defaultAttributes[0] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "AttributeManager get_attribute_by_xy: Error accessing default attributes: " + str(e), debug.DebugLevel.ERROR, ) return None def append_default_attributes(self, attribute): if not attribute: return if len(attribute) != 10: return self.defaultAttributes.append(attribute) def init_default_attributes(self): self.defaultAttributes = [None] self.defaultAttributes.append( [ "default", # fg "default", # bg False, # bold False, # italics False, # underscore False, # strikethrough False, # reverse False, # blink "default", # fontsize "default", # fontfamily ] ) # end attribute def is_default_attribute(self, attribute): return attribute in self.defaultAttributes def has_attributes(self, cursor, update=True): if not cursor: return False cursor_pos = cursor.copy() try: attribute = self.get_attribute_by_xy( cursor_pos["x"], cursor_pos["y"] ) if update: self.set_last_cursor_attribute(attribute) if not self.is_last_cursor_attribute_change(): return False if self.is_default_attribute(attribute): return False except Exception as e: return False return True def format_attributes(self, attribute, attribute_format_string=""): # "black", # "red", # "green", # "brown", # "blue", # "magenta", # "cyan", # "white", # "default" # white. # _order_ # "fg", # "bg", # "bold", # "italics", # "underscore", # "strikethrough", # "reverse", # "blink" # "fontsieze" # "fontfamily" if attribute_format_string == "": attribute_format_string = self.env["runtime"][ "SettingsManager" ].get_setting("general", "attribute_format_string") if not attribute_format_string: return "" if attribute_format_string == "": return "" if not attribute: return "" if len(attribute) != 10: return "" # 0 FG color (name) try: attribute_format_string = attribute_format_string.replace( "fenrirFGColor", _(attribute[0]) ) except Exception as e: attribute_format_string = attribute_format_string.replace( "fenrirFGColor", "" ) # 1 BG color (name) try: attribute_format_string = attribute_format_string.replace( "fenrirBGColor", _(attribute[1]) ) except Exception as e: attribute_format_string = attribute_format_string.replace( "fenrirBGColor", "" ) # 2 bold (True/ False) try: if attribute[2]: attribute_format_string = attribute_format_string.replace( "fenrirBold", _("bold") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirBold", "" ) # 3 italics (True/ False) try: if attribute[3]: attribute_format_string = attribute_format_string.replace( "fenrirItalics", _("italic") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirItalics", "" ) # 4 underline (True/ False) try: if attribute[4]: attribute_format_string = attribute_format_string.replace( "fenrirUnderline", _("underline") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirUnderline", "" ) # 5 strikethrough (True/ False) try: if attribute[5]: attribute_format_string = attribute_format_string.replace( "fenrirStrikethrough", _("strikethrough") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirStrikethrough", "" ) # 6 reverse (True/ False) try: if attribute[6]: attribute_format_string = attribute_format_string.replace( "fenrirReverse", _("reverse") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirReverse", "" ) # 7 blink (True/ False) try: if attribute[7]: attribute_format_string = attribute_format_string.replace( "fenrirBlink", _("blink") ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirBlink", "" ) # 8 font size (int/ string) try: try: attribute_format_string = attribute_format_string.replace( "fenrirFontSize", int(attribute[8]) ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "AttributeManager formatAttributeToString: Error formatting font size as int: " + str(e), debug.DebugLevel.ERROR, ) try: attribute_format_string = attribute_format_string.replace( "fenrirFontSize", str(attribute[8]) ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "AttributeManager formatAttributeToString: Error formatting font size as string: " + str(e), debug.DebugLevel.ERROR, ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirFontSize", _("default") ) # 9 font family (string) try: attribute_format_string = attribute_format_string.replace( "fenrirFont", attribute[9] ) except Exception as e: pass attribute_format_string = attribute_format_string.replace( "fenrirFont", _("default") ) return attribute_format_string def track_highlights(self): """ Detects text with changed attributes (highlighting) between screen updates. This is crucial for screen readers to announce when text becomes highlighted, selected, or changes visual emphasis (bold, reverse video, color changes, etc.) Enhanced version includes bracket pattern detection for better context in applications like ninjam that use patterns like [X]mute or [ ]mute. Returns: tuple: (highlighted_text, cursor_position) - highlighted_text: string of characters that gained highlighting - cursor_position: dict {'x': col, 'y': row} of first highlighted char """ result = "" curr_cursor = None # Early exit conditions - no attribute comparison possible if self.prevAttributes is None: # First screen load - no previous attributes to compare against return result, curr_cursor if self.prevAttributes == self.currAttributes: # No attribute changes detected return result, curr_cursor if self.currAttributes is None: # Error condition - current attributes missing return result, curr_cursor if len(self.currAttributes) == 0: # Special case for PTY environments with no text content return result, curr_cursor # Get current screen text to correlate with attribute changes text = self.env["runtime"]["ScreenManager"].get_screen_text() text_lines = text.split("\n") # Sanity check: text lines must match attribute array dimensions if len(text_lines) != len(self.currAttributes): return result, curr_cursor # Track highlighted positions for context analysis highlighted_positions = [] # Compare attributes line by line, character by character for line in range(len(self.prevAttributes)): if self.prevAttributes[line] != self.currAttributes[line]: # This line has attribute changes - examine each character # position for column in range(len(self.prevAttributes[line])): if ( self.prevAttributes[line][column] == self.currAttributes[line][column] ): # No change at this position continue # Attribute changed at this position - check if it's worth # announcing if self.is_useful_for_tracking( line, column, self.currAttributes, self.prevAttributes ): # First highlighted character becomes cursor position # for navigation if not curr_cursor: curr_cursor = {"x": column, "y": line} # Store position for context analysis highlighted_positions.append((line, column)) # Accumulate highlighted characters result += text_lines[line][column] # Add space between lines of highlighted text for speech # clarity result += " " # Enhanced bracket pattern detection for better context if highlighted_positions: try: enhanced_result = self._detect_bracket_context(text_lines, highlighted_positions, result) if enhanced_result and enhanced_result != result: # Debug logging for bracket detection try: self.env["runtime"]["DebugManager"].write_debug_out( f"AttributeManager bracket detection: Original='{result}' Enhanced='{enhanced_result}'", debug.DebugLevel.INFO ) except Exception: pass # Don't let debug logging break functionality result = enhanced_result except Exception as e: # If bracket detection fails, fall back to original result try: self.env["runtime"]["DebugManager"].write_debug_out( f"AttributeManager bracket detection error: {e}", debug.DebugLevel.ERROR ) except Exception: pass # Don't let debug logging break functionality return result, curr_cursor def _detect_bracket_context(self, text_lines, highlighted_positions, original_result): """ Analyzes highlighted positions to detect bracket patterns and provide better context. This method specifically looks for patterns like [X]mute, [ ]mute, [X]xmit, etc. that are common in applications like ninjam where the bracket content indicates state but the meaningful context is the surrounding text. Args: text_lines: List of text lines from the screen highlighted_positions: List of (line, column) tuples of highlighted characters original_result: The original highlighted text result Returns: str: Enhanced result with context, or None if no bracket pattern detected """ if not highlighted_positions: return None # Group positions by line for easier analysis positions_by_line = {} for line, column in highlighted_positions: if line not in positions_by_line: positions_by_line[line] = [] positions_by_line[line].append(column) enhanced_results = [] for line_num, columns in positions_by_line.items(): if line_num >= len(text_lines): continue line_text = text_lines[line_num] columns.sort() # Process columns in order # Look for bracket patterns in this line bracket_context = self._analyze_bracket_pattern(line_text, columns) if bracket_context: enhanced_results.append(bracket_context) # If we found enhanced context, return it; otherwise return None to use original if enhanced_results: # Remove duplicates while preserving order unique_results = [] seen = set() for result in enhanced_results: if result not in seen: unique_results.append(result) seen.add(result) return " ".join(unique_results) return None def _analyze_bracket_pattern(self, line_text, highlighted_columns): """ Analyzes a single line for bracket patterns around highlighted positions. Looks for patterns like: - master: [X]mute -> "master mute on" - metronome: [ ]mute -> "metronome mute off" - [Left] [X]xmit -> "Left xmit on" Args: line_text: The text of the line highlighted_columns: List of column positions that are highlighted Returns: str: Context-aware description, or None if no pattern found """ if not line_text or not highlighted_columns: return None # Look for bracket patterns around highlighted positions # Process columns in order and only return the first meaningful match for col in highlighted_columns: bracket_info = self._find_bracket_at_position(line_text, col) if bracket_info: bracket_start, bracket_end, bracket_content = bracket_info # Get context before and after the bracket context_before = self._get_context_before(line_text, bracket_start) context_after = self._get_context_after(line_text, bracket_end) # Build meaningful description description = self._build_bracket_description( context_before, bracket_content, context_after ) # Only return if we have meaningful context (not just state) if description and (context_before or context_after): return description return None def _find_bracket_at_position(self, line_text, position): """ Determines if a position is within a bracket pattern like [X] or [ ]. Args: line_text: The text line position: Column position to check Returns: tuple: (bracket_start, bracket_end, bracket_content) or None """ if position >= len(line_text): return None # Look for opening bracket before or at position bracket_start = None for i in range(max(0, position - 2), min(len(line_text), position + 3)): if line_text[i] == '[': bracket_start = i break if bracket_start is None: return None # Look for closing bracket after bracket_start bracket_end = None for i in range(bracket_start + 1, min(len(line_text), bracket_start + 5)): if line_text[i] == ']': bracket_end = i break if bracket_end is None: return None # Check if our position is within the bracket if bracket_start <= position <= bracket_end: bracket_content = line_text[bracket_start + 1:bracket_end] # Filter out brackets that are likely not controls # Skip brackets that contain complex content like "[-10.5dB center]" if len(bracket_content) > 3 and ('dB' in bracket_content or 'Hz' in bracket_content): return None return bracket_start, bracket_end, bracket_content return None def _get_context_before(self, line_text, bracket_start): """ Gets meaningful context words before a bracket. Args: line_text: The text line bracket_start: Position of opening bracket Returns: str: Context words before bracket, or empty string """ if bracket_start <= 0: return "" # Get text before bracket before_text = line_text[:bracket_start].rstrip() # Special handling for common ninjam patterns # Look for patterns like "master: " or "metronome: " or bracketed labels # Check if we have a colon-separated label immediately before if ':' in before_text: # Get the last colon-separated part parts = before_text.split('|') # Split by pipe first last_part = parts[-1].strip() if ':' in last_part: # Extract the label before the colon label_parts = last_part.split(':') if len(label_parts) >= 2: return label_parts[-2].strip() # Look for bracketed content that might be a label # Pattern: [Something] [X]target -> "Something" bracket_matches = [] i = 0 while i < len(before_text): if before_text[i] == '[': start = i i += 1 while i < len(before_text) and before_text[i] != ']': i += 1 if i < len(before_text): # Found closing bracket content = before_text[start+1:i] if content.strip(): bracket_matches.append(content.strip()) i += 1 # If we found bracketed content, use the last one if bracket_matches: return bracket_matches[-1] # Fall back to removing bracketed content and getting words cleaned_text = "" bracket_level = 0 for char in before_text: if char == '[': bracket_level += 1 elif char == ']': bracket_level -= 1 elif bracket_level == 0: cleaned_text += char # Clean up separators and get meaningful words words = [] for word in cleaned_text.replace(':', '').replace('|', '').strip().split(): if word and not word.startswith('[') and not word.endswith(']'): words.append(word) # Return last word as context if words: return words[-1] return "" def _get_context_after(self, line_text, bracket_end): """ Gets meaningful context words after a bracket. Args: line_text: The text line bracket_end: Position of closing bracket Returns: str: Context words after bracket, or empty string """ if bracket_end >= len(line_text) - 1: return "" # Get text after bracket and find first meaningful word after_text = line_text[bracket_end + 1:].lstrip() # Get first word, removing common separators words = after_text.replace(':', '').replace('|', '').strip().split() if words: return words[0] return "" def _build_bracket_description(self, context_before, bracket_content, context_after): """ Builds a human-readable description from bracket context. Args: context_before: Words before the bracket bracket_content: Content inside brackets (X, space, etc.) context_after: Words after the bracket Returns: str: Human-readable description """ # Clean up bracket content bracket_content = bracket_content.strip() # Determine state based on bracket content if bracket_content == 'X': state = "on" elif bracket_content == '' or bracket_content == ' ': state = "off" else: state = bracket_content # For other patterns # Build description prioritizing context_before, then context_after # Add spaces between components for better speech clarity components = [] if context_before: components.append(context_before) if context_after: components.append(context_after) components.append(state) # Join with spaces for better speech flow return " ".join(components) def is_useful_for_tracking( self, line, column, currAttributes, prevAttributes, attribute=1, mode="zaxe", ): """ Determines if an attribute change at a specific position is worth announcing. This prevents announcing every minor attribute change and focuses on meaningful highlighting that indicates user selections, focus changes, or important emphasis. Args: line, column: Position of the attribute change currAttributes, prevAttributes: Current and previous attribute arrays attribute: Which attribute to examine (1=background color by default) mode: Detection algorithm ('zaxe', 'default', 'barrier') Returns: bool: True if this attribute change should be announced to user """ # Sanity checks for valid position and sufficient screen content if len(currAttributes) <= 3: return False if line < 0: return False if line > len(currAttributes): return False useful = False if mode == "default": # Simple mode: announce any non-default attribute useful = not self.is_default_attribute( currAttributes[line][column] ) elif (mode == "zaxe") or (mode == ""): # Context-aware mode: only announce attributes that stand out from surroundings # This prevents announcing entire blocks of highlighted text character by character # by checking if the attribute differs from adjacent lines if line == 0: # Top line: compare against lines below useful = ( currAttributes[line][column][attribute] != currAttributes[line + 1][column][attribute] ) and ( currAttributes[line][column][attribute] != currAttributes[line + 2][column][attribute] ) elif line >= len(prevAttributes): # Bottom line: compare against lines above useful = ( currAttributes[line][column][attribute] != currAttributes[line - 1][column][attribute] ) and ( currAttributes[line][column][attribute] != currAttributes[line - 2][column][attribute] ) else: # Middle lines: compare against both directions useful = ( currAttributes[line][column][attribute] != currAttributes[line + 1][column][attribute] ) and ( currAttributes[line][column][attribute] != currAttributes[line - 1][column][attribute] ) elif mode == "barrier": # Barrier mode: future enhancement for detecting screen # boundaries/separators useful = True return useful fenrir/src/fenrirscreenreader/core/barrierManager.py000066400000000000000000000056021513650123000232240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re import string from fenrirscreenreader.core import debug class BarrierManager: def __init__(self): self.currIsBarrier = False self.prefIsBarrier = False def initialize(self, environment): self.env = environment def shutdown(self): pass def update_barrier_change(self, is_barrier): self.prefIsBarrier = self.currIsBarrier self.currIsBarrier = is_barrier def reset_barrier_change(self): self.currIsBarrier = False self.prefIsBarrier = False def is_barrier_change(self): return self.currIsBarrier != self.prefIsBarrier def handle_line_barrier( self, text, xCursor, yCursor, output=True, do_interrupt=True ): is_barrier = False try: is_barrier, say_line = self.get_barrier_text( text, xCursor, yCursor ) except Exception as e: return False, "" self.update_barrier_change(is_barrier) if self.is_barrier_change(): if output: if is_barrier: self.env["runtime"]["OutputManager"].play_sound_icon( sound_icon="BarrierStart", interrupt=do_interrupt ) else: self.env["runtime"]["OutputManager"].play_sound_icon( sound_icon="BarrierEnd", interrupt=do_interrupt ) if not is_barrier: say_line = "" return is_barrier, say_line def get_barrier_text(self, text, xCursor, yCursor): line = text[yCursor] if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "barrier", "enabled" ): return False, line offset = xCursor left_barriers = self.env["runtime"]["SettingsManager"].get_setting( "barrier", "left_barriers" ) right_barriers = self.env["runtime"]["SettingsManager"].get_setting( "barrier", "right_barriers" ) # is the cursor at the begin or end of an entry: # print(line[:offset + 1].count('│'),line[offset:].count('│')) # start for b in left_barriers: if line[: offset + 1].count(b) > line[offset:].count(b): offset = xCursor - 1 start = line[:offset].rfind(b) if start != -1: start += 1 break if start == -1: return False, line # end for b in right_barriers: end = line[start:].find(b) if end != -1: end = start + end break if end == -1: return False, line if start == end: return False, line return True, line[start:end] fenrir/src/fenrirscreenreader/core/byteManager.py000066400000000000000000000175761513650123000225560ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import inspect import os import re import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.i18n import _ currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class ByteManager: def __init__(self): self.switchCtrlModeOnce = 0 self.controlMode = True self.repeat = 1 self.lastInputTime = time.time() self.lastByteKey = b"" def initialize(self, environment): self.env = environment def shutdown(self): pass def unify_escape_seq(self, escapeSequence): converted_escape_sequence = escapeSequence if converted_escape_sequence[0] == 27: converted_escape_sequence = b"^[" + converted_escape_sequence[1:] if len(converted_escape_sequence) > 1: if ( converted_escape_sequence[0] == 94 and converted_escape_sequence[1] == 91 ): converted_escape_sequence = ( b"^[" + converted_escape_sequence[2:] ) return converted_escape_sequence def handle_byte_stream(self, event_data, sep=b"\x1b"): buffer = event_data # handle prefix end_index = buffer.find(sep) if end_index > 0: curr_sequence = buffer[:end_index] buffer = buffer[end_index:] self.handle_single_byte_sequence(curr_sequence) # special handlig for none found (performance) elif end_index == -1: self.handle_single_byte_sequence(buffer) return # handle outstanding sequence while buffer != b"": end_index = buffer[len(sep) :].find(sep) if end_index == -1: curr_sequence = buffer buffer = b"" else: curr_sequence = buffer[: end_index + len(sep)] buffer = buffer[end_index + len(sep) :] self.handle_single_byte_sequence(curr_sequence) def handle_byte_input(self, event_data): if not event_data: return if event_data == b"": return try: self.env["runtime"]["DebugManager"].write_debug_out( "handle_byte_input " + event_data.decode("utf8"), debug.DebugLevel.INFO, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ByteManager handle_byte_input: Error decoding byte data: " + str(e), debug.DebugLevel.ERROR, ) self.handle_byte_stream(event_data) def handle_single_byte_sequence(self, event_data): converted_escape_sequence = self.unify_escape_seq(event_data) if self.switchCtrlModeOnce > 0: self.switchCtrlModeOnce -= 1 is_control_mode = False if ( self.controlMode and not self.switchCtrlModeOnce == 1 or not self.controlMode ): is_control_mode = self.handle_control_mode(event_data) is_command = False if ( self.controlMode and not self.switchCtrlModeOnce == 1 or not self.controlMode and self.switchCtrlModeOnce == 1 ): if self.lastByteKey == converted_escape_sequence: if time.time() - self.lastInputTime <= self.env["runtime"][ "SettingsManager" ].get_setting_as_float("keyboard", "double_tap_timeout"): self.repeat += 1 shortcut_data = b"" for i in range(self.repeat): shortcut_data = shortcut_data + converted_escape_sequence is_command = self.detect_byte_command(shortcut_data) # fall back to single stroke - do we want this? if not is_command: is_command = self.detect_byte_command( converted_escape_sequence ) self.repeat = 1 if not (is_command or is_control_mode): self.env["runtime"]["ScreenManager"].inject_text_to_screen( event_data ) if not is_command: self.repeat = 1 self.lastByteKey = converted_escape_sequence self.lastInputTime = time.time() def get_last_byte_key(self): return self.lastByteKey def handle_control_mode(self, escapeSequence): converted_escape_sequence = self.unify_escape_seq(escapeSequence) if converted_escape_sequence == b"^[R": self.controlMode = not self.controlMode self.switchCtrlModeOnce = 0 if self.controlMode: self.env["runtime"]["OutputManager"].present_text( _("Sticky Mode On"), sound_icon="Accept", interrupt=True, flush=True, ) else: self.env["runtime"]["OutputManager"].present_text( _("Sticky Mode On"), sound_icon="Cancel", interrupt=True, flush=True, ) return True if converted_escape_sequence == b"^[:": self.switchCtrlModeOnce = 2 self.env["runtime"]["OutputManager"].present_text( _("bypass"), sound_icon="PTYBypass", interrupt=True, flush=True ) return True return False def send_bytes(self, byteMacro): pass def detect_byte_command(self, escapeSequence): converted_escape_sequence = self.unify_escape_seq(escapeSequence) command = self.env["runtime"]["InputManager"].get_command_for_shortcut( converted_escape_sequence ) if command != "": self.env["runtime"]["EventManager"].put_to_event_queue( FenrirEventType.execute_command, command ) command = "" return True return False def load_byte_shortcuts( self, kb_config_path=fenrir_path + "/../../config/keyboard/pty.conf" ): kb_config = open(kb_config_path, "r") while True: line = kb_config.readline() if not line: break line = line.replace("\n", "") if line.replace(" ", "") == "": continue if line.replace(" ", "").startswith("#"): continue if line.count("=") != 1: continue values = line.split("=") clean_shortcut = bytes(values[0], "UTF-8") repeat = 1 if len(clean_shortcut) > 2: if chr(clean_shortcut[1]) == ",": try: repeat = int(chr(clean_shortcut[0])) clean_shortcut = clean_shortcut[2:] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ByteManager load_byte_shortcuts: Error parsing repeat count: " + str(e), debug.DebugLevel.ERROR, ) repeat = 1 clean_shortcut = clean_shortcut shortcut = b"" for i in range(repeat): shortcut += clean_shortcut command_name = values[1].upper() self.env["bindings"][shortcut] = command_name self.env["runtime"]["DebugManager"].write_debug_out( "Byte Shortcut: " + str(shortcut) + " command:" + command_name, debug.DebugLevel.INFO, on_any_level=True, ) kb_config.close() fenrir/src/fenrirscreenreader/core/commandData.py000066400000000000000000000010471513650123000225120ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug # used as shared memory between commands # use this in your own commands command_buffer = { "enableSpeechOnKeypress": False, "Marks": {"1": None, "2": None}, "bookMarks": {}, "windowArea": {}, } # used by the command_manager command_info = { # 'curr_command': '', "lastCommandExecutionTime": time.time(), "lastCommandRequestTime": time.time(), } fenrir/src/fenrirscreenreader/core/commandManager.py000066400000000000000000000474501513650123000232230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import glob import inspect import os import time from fenrirscreenreader.core import debug from fenrirscreenreader.utils import module_utils currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class CommandManager: def __init__(self): pass def initialize(self, environment): self.env = environment # commands self.env["commands"] = {} self.env["commandsIgnore"] = {} for command_folder in self.env["general"]["commandFolderList"]: self.env["runtime"]["CommandManager"].load_commands(command_folder) if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "command_path" ) != "" ): self.env["runtime"]["CommandManager"].load_commands( command_folder, self.env["runtime"]["SettingsManager"].get_setting( "general", "command_path" ), ) # scripts for scriptKey self.env["runtime"]["CommandManager"].load_script_commands() def shutdown(self): for command_folder in self.env["general"]["commandFolderList"]: self.env["runtime"]["CommandManager"].shutdown_commands( command_folder ) def load_file(self, filepath=""): if filepath == "": return None if not os.path.exists(filepath): self.env["runtime"]["DebugManager"].write_debug_out( "load_file: filepath not exists:" + filepath, debug.DebugLevel.WARNING, ) return None if os.path.isdir(filepath): self.env["runtime"]["DebugManager"].write_debug_out( "load_file: filepath is a directory:" + filepath, debug.DebugLevel.ERROR, ) return None if not os.access(filepath, os.R_OK): self.env["runtime"]["DebugManager"].write_debug_out( "load_file: filepath not readable:" + filepath, debug.DebugLevel.ERROR, ) return None try: file_name, file_extension = os.path.splitext(filepath) file_name = file_name.split("/")[-1] if file_name.startswith("__"): return None if file_extension.lower() == ".py": command_mod = module_utils.import_module(file_name, filepath) command = command_mod.command() command.initialize(self.env) self.env["runtime"]["DebugManager"].write_debug_out( "load_file: Load command:" + filepath, debug.DebugLevel.INFO, on_any_level=True, ) return command except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "load_file: Loading command:" + filepath, debug.DebugLevel.ERROR, ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) return None def load_commands(self, section="commands", command_path=""): if command_path == "": command_path = fenrir_path + "/commands/" if not command_path.endswith("/"): command_path += "/" command_folder = command_path + section + "/" if not os.path.exists(command_folder): self.env["runtime"]["DebugManager"].write_debug_out( "load_commands: command_folder not exists:" + command_folder, debug.DebugLevel.WARNING, ) return if not os.path.isdir(command_folder): self.env["runtime"]["DebugManager"].write_debug_out( "load_commands: command_folder not a directory:" + command_folder, debug.DebugLevel.ERROR, ) return if not os.access(command_folder, os.R_OK): self.env["runtime"]["DebugManager"].write_debug_out( "load_commands: command_folder not readable:" + command_folder, debug.DebugLevel.ERROR, ) return self.env["commands"][section] = {} self.env["commandsIgnore"][section] = {} command_list = glob.glob(command_folder + "*") for command in command_list: try: file_name, file_extension = os.path.splitext(command) file_name = file_name.split("/")[-1] if file_name.startswith("__"): continue # Skip base classes that shouldn't be loaded as commands if file_name.endswith("_base"): continue # Check if command already exists to prevent duplicate loading if ( file_name.upper() in self.env["commands"][section] and self.env["commands"][section][file_name.upper()] is not None ): continue if file_extension.lower() == ".py": command_mod = module_utils.import_module( file_name, command ) self.env["commands"][section][ file_name.upper() ] = command_mod.command() self.env["commandsIgnore"][section][ file_name.upper()[file_name.upper().find("-") + 1 :] + "_IGNORE" ] = False self.env["commands"][section][ file_name.upper() ].initialize(self.env) self.env["runtime"]["DebugManager"].write_debug_out( "load_commands: Load command:" + section + "." + file_name.upper(), debug.DebugLevel.INFO, on_any_level=True, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "load_commands: Loading command:" + command, debug.DebugLevel.ERROR, ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) continue def load_script_commands(self, section="commands", script_path=""): if script_path == "": script_path = self.env["runtime"]["SettingsManager"].get_setting( "general", "script_path" ) if not script_path.endswith("/"): script_path += "/" if not os.path.exists(script_path): if os.path.exists(fenrir_path + "/../../config/scripts/"): script_path = fenrir_path + "/../../config/scripts/" else: self.env["runtime"]["DebugManager"].write_debug_out( "scriptpath not exists:" + script_path, debug.DebugLevel.WARNING, ) return if not os.path.isdir(script_path): self.env["runtime"]["DebugManager"].write_debug_out( "scriptpath not a directory:" + script_path, debug.DebugLevel.ERROR, ) return if not os.access(script_path, os.R_OK): self.env["runtime"]["DebugManager"].write_debug_out( "scriptpath not readable:" + script_path, debug.DebugLevel.ERROR, ) return command_list = glob.glob(script_path + "*") sub_command = fenrir_path + "/commands/commands/subprocess.py" for command in command_list: invalid = False try: file_name, file_extension = os.path.splitext(command) file_name = file_name.split("/")[-1] if file_name.startswith("__"): continue if file_name.upper() in self.env["commands"][section]: continue command_mod = module_utils.import_module( file_name, sub_command ) self.env["commands"][section][ file_name.upper() ] = command_mod.command() self.env["commands"][section][file_name.upper()].initialize( self.env, command ) self.env["runtime"]["DebugManager"].write_debug_out( "Load script:" + section + "." + file_name.upper(), debug.DebugLevel.INFO, on_any_level=True, ) comm_settings = file_name.upper().split("__-__") if len(comm_settings) == 1: keys = comm_settings[0] elif len(comm_settings) == 2: keys = comm_settings[1] elif len(comm_settings) > 2: continue keys = keys.split("__+__") shortcut_keys = [] shortcut = [] for key in keys: if not self.env["runtime"]["InputManager"].is_valid_key( key.upper() ): self.env["runtime"]["DebugManager"].write_debug_out( "invalid key : " + key.upper() + " script:" + file_name, debug.DebugLevel.WARNING, ) invalid = True break shortcut_keys.append(key.upper()) if invalid: continue if "KEY_SCRIPT" not in shortcut_keys: shortcut_keys.append("KEY_SCRIPT") shortcut.append(1) shortcut.append(sorted(shortcut_keys)) self.env["bindings"][str(shortcut)] = file_name.upper() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Loading script:" + file_name, debug.DebugLevel.ERROR ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) continue def shutdown_commands(self, section): # Check if the section exists in the commands dictionary if section not in self.env["commands"]: self.env["runtime"]["DebugManager"].write_debug_out( "shutdown_commands: section not found:" + section, debug.DebugLevel.WARNING, ) return for command in sorted(self.env["commands"][section]): try: self.env["commands"][section][command].shutdown() del self.env["commands"][section][command] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Shutdown command:" + section + "." + command, debug.DebugLevel.ERROR, ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) continue def execute_switch_trigger(self, trigger, unLoadScript, loadScript): if self.env["runtime"]["ScreenManager"].is_ignored_screen(): return # unload old_script = unLoadScript if self.command_exists(old_script, trigger): try: self.env["runtime"]["DebugManager"].write_debug_out( "Executing switchtrigger.unload:" + trigger + "." + old_script, debug.DebugLevel.INFO, ) self.env["commands"][trigger][old_script].unload() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Executing trigger:" + trigger + "." + old_script, debug.DebugLevel.ERROR, ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) # load new_script = loadScript if self.command_exists(new_script, trigger): try: self.env["runtime"]["DebugManager"].write_debug_out( "Executing switchtrigger.load:" + trigger + "." + new_script, debug.DebugLevel.INFO, ) self.env["commands"][trigger][new_script].load() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Executing trigger:" + trigger + "." + new_script, debug.DebugLevel.ERROR, ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) def execute_default_trigger(self, trigger, force=False): if not force: if self.env["runtime"]["ScreenManager"].is_ignored_screen(): return for command in sorted(self.env["commands"][trigger]): if self.command_exists(command, trigger): try: if self.env["commandsIgnore"][trigger][ command[command.find("-") + 1 :] + "_IGNORE" ]: self.env["commandsIgnore"][trigger][ command[command.find("-") + 1 :] + "_IGNORE" ] = False self.env["runtime"]["DebugManager"].write_debug_out( "ignore trigger.command:" + trigger + "." + command, debug.DebugLevel.INFO, ) else: self.env["runtime"]["DebugManager"].write_debug_out( "Executing trigger.command:" + trigger + "." + command, debug.DebugLevel.INFO, ) self.env["commands"][trigger][command].run() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Executing trigger:" + trigger + "." + command + str(e), debug.DebugLevel.ERROR, ) def execute_command(self, command, section="commands"): if self.env["runtime"]["ScreenManager"].is_ignored_screen(): return if self.command_exists(command, section): try: if ( self.env["runtime"]["HelpManager"].is_tutorial_mode() and section != "help" ): self.env["runtime"]["DebugManager"].write_debug_out( "Tutorial for command:" + section + "." + command, debug.DebugLevel.INFO, ) description = self.get_command_description( command, section ) self.env["runtime"]["OutputManager"].present_text( description, interrupt=False ) else: self.env["runtime"]["DebugManager"].write_debug_out( "Executing command:" + section + "." + command, debug.DebugLevel.INFO, ) self.run_command(command, section) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Executing command:" + section + "." + command + " " + str(e), debug.DebugLevel.ERROR, ) def run_command(self, command, section="commands"): if self.command_exists(command, section): try: self.env["runtime"]["DebugManager"].write_debug_out( "run_command command:" + section + "." + command, debug.DebugLevel.INFO, ) self.env["commands"][section][command].run() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "run_command command:" + section + "." + command + " " + str(e), debug.DebugLevel.ERROR, ) self.env["commandInfo"]["lastCommandExecutionTime"] = time.time() def get_command_description(self, command, section="commands"): if self.command_exists(command, section): try: return self.env["commands"][section][command].get_description() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "command_manager.get_command_description:" + str(e), debug.DebugLevel.ERROR, ) self.env["commandInfo"]["lastCommandExecutionTime"] = time.time() def command_exists(self, command, section="commands"): try: return command in self.env["commands"][section] except Exception as e: return False def get_shortcut_for_command(self, command, formatKeys=False): shortcut = [] try: raw_shortcut = list(self.env["bindings"].keys())[ list(self.env["bindings"].values()).index(command) ] # prefer numbers for multitap for k in ["2", "3", "4", "5", "6", "7", "8"]: if k in raw_shortcut: formatted_key = k if formatKeys: formatted_key = formatted_key.lower() formatted_key += " times " shortcut.append(formatted_key) raw_shortcut.remove(k) # prefer metha keys for k in [ "KEY_FENRIR", "KEY_SCRIPT", "KEY_CTRL", "KEY_SHIFT", "KEY_ALT", "KEY_META", ]: if k in raw_shortcut: formatted_key = k if formatKeys: formatted_key = formatted_key.lower() formatted_key = formatted_key.replace( "key_kp", " keypad " ) formatted_key = formatted_key.replace("key_", " ") shortcut.append(formatted_key) raw_shortcut.remove(k) # handle other keys for k in raw_shortcut: formatted_key = k if formatKeys: formatted_key = formatted_key.lower() formatted_key = formatted_key.replace("key_kp", " keypad ") formatted_key = formatted_key.replace("key_", " ") shortcut.append(formatted_key) except Exception as e: pass return shortcut fenrir/src/fenrirscreenreader/core/cursorManager.py000066400000000000000000000153261513650123000231170ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class CursorManager: def __init__(self): pass def initialize(self, environment): self.env = environment def should_process_numpad_commands(self): """ Check if numpad commands should be processed based on numlock state Return True if numlock is OFF (commands should work) Return False if numlock is ON (let keys type numbers) """ # Return False if numlock is ON return not self.env["input"]["new_num_lock"] def shutdown(self): pass def clear_marks(self): self.env["commandBuffer"]["Marks"]["1"] = None self.env["commandBuffer"]["Marks"]["2"] = None def is_mark_set(self): return self.env["commandBuffer"]["Marks"]["1"] is not None def is_single_mark(self): return ( self.env["commandBuffer"]["Marks"]["1"] is not None and self.env["commandBuffer"]["Marks"]["2"] is None ) def is_multible_mark(self): return ( self.env["commandBuffer"]["Marks"]["1"] is not None and self.env["commandBuffer"]["Marks"]["2"] is not None ) def set_mark(self): curr_cursor = None if self.env["screen"]["newCursorReview"]: curr_cursor = self.env["screen"]["newCursorReview"].copy() else: curr_cursor = self.env["screen"]["new_cursor"].copy() if not self.env["commandBuffer"]["Marks"]["1"]: self.env["commandBuffer"]["Marks"]["1"] = curr_cursor.copy() return 1 else: self.env["commandBuffer"]["Marks"]["2"] = curr_cursor.copy() return 2 return 0 def get_review_or_text_cursor(self): if self.env["screen"]["newCursorReview"]: return self.env["screen"]["newCursorReview"].copy() else: return self.env["screen"]["new_cursor"].copy() def clear_review_cursor(self): if not self.is_review_mode(): return self.env["screen"]["oldCursorReview"] = None self.env["screen"]["newCursorReview"] = None def is_cursor_horizontal_move(self): return ( self.env["screen"]["new_cursor"]["x"] != self.env["screen"]["old_cursor"]["x"] ) def is_cursor_vertical_move(self): return ( self.env["screen"]["new_cursor"]["y"] != self.env["screen"]["old_cursor"]["y"] ) def is_review_mode(self): return self.env["screen"]["newCursorReview"] is not None def enter_review_mode_curr_text_cursor(self, overwrite=False): if self.is_review_mode() and not overwrite: return self.env["screen"]["oldCursorReview"] = self.env["screen"][ "newCursorReview" ] if not self.env["screen"]["newCursorReview"]: self.env["screen"]["newCursorReview"] = self.env["screen"][ "new_cursor" ].copy() if ( self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "highlight" ) and self.env["runtime"][ "AttributeManager" ].is_attribute_cursor_active() ): self.env["screen"]["newCursorReview"] = ( self.env["runtime"]["AttributeManager"] .get_curr_attribute_cursor() .copy() ) def set_review_cursor_position(self, x, y): if not self.is_review_mode(): self.enter_review_mode_curr_text_cursor() self.env["screen"]["oldCursorReview"] = self.env["screen"][ "newCursorReview" ] self.env["screen"]["newCursorReview"]["x"] = x self.env["screen"]["newCursorReview"]["y"] = y def is_application_window_set(self): try: curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() if ( curr_app in self.env["commandBuffer"]["windowArea"] and "1" in self.env["commandBuffer"]["windowArea"][curr_app] and self.env["commandBuffer"]["windowArea"][curr_app]["1"] is not None ): return True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "CursorManager is_application_window_set: Error checking window area: " + str(e), debug.DebugLevel.ERROR, ) return False def set_window_for_application(self, start=None, end=None): x1 = 0 x2 = 0 y1 = 0 y2 = 0 if start is None: if not self.env["commandBuffer"]["Marks"]["1"]: return False else: x1 = self.env["commandBuffer"]["Marks"]["1"]["x"] y1 = self.env["commandBuffer"]["Marks"]["1"]["y"] else: x1 = start["x"] y1 = start["y"] if end is None: if not self.env["commandBuffer"]["Marks"]["2"]: return False else: x2 = self.env["commandBuffer"]["Marks"]["2"]["x"] y2 = self.env["commandBuffer"]["Marks"]["2"]["y"] else: x2 = end["x"] y2 = end["y"] curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() self.env["commandBuffer"]["windowArea"][curr_app] = {} if x1 * y1 <= x2 * y2: self.env["commandBuffer"]["windowArea"][curr_app]["1"] = { "x": x1, "y": y1, } self.env["commandBuffer"]["windowArea"][curr_app]["2"] = { "x": x2, "y": y2, } else: self.env["commandBuffer"]["windowArea"][curr_app]["1"] = { "x": x2, "y": y2, } self.env["commandBuffer"]["windowArea"][curr_app]["2"] = { "x": x1, "y": y1, } return True def clear_window_for_application(self): curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() try: del self.env["commandBuffer"]["windowArea"][curr_app] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "CursorManager clear_window_for_application: Error clearing window area: " + str(e), debug.DebugLevel.ERROR, ) return False return True fenrir/src/fenrirscreenreader/core/debug.py000066400000000000000000000003471513650123000213720ustar00rootroot00000000000000#!/usr/bin/env python3 from enum import Enum class DebugLevel(Enum): DEACTIVE = 0 ERROR = 1 WARNING = 2 INFO = 3 def __int__(self): return self.value def __str__(self): return self.name fenrir/src/fenrirscreenreader/core/debugManager.py000066400000000000000000000070711513650123000226660ustar00rootroot00000000000000#!/usr/bin/env python3 # Debugger module for the Fenrir screen reader. import os import pathlib from datetime import datetime from fenrirscreenreader.core import debug class DebugManager: def __init__(self, file_name=""): self._file = None self._fileOpened = False self._fileName = ( "/tmp/fenrir_" + str(os.getpid()) + "_" + str(datetime.utcnow().strftime("%Y-%m-%d_%H-%M-%S")) + ".log" ) if file_name != "": self._fileName = file_name def initialize(self, environment): self.env = environment def shutdown(self): self.close_debug_file() def __del__(self): try: self.shutdown() except Exception as e: # Cannot use debug manager to log its own shutdown errors print(f"DebugManager shutdown: Error during shutdown: {e}") def open_debug_file(self, file_name=""): self._fileOpened = False if file_name != "": self._fileName = file_name if self._fileName != "": directory = os.path.dirname(self._fileName) if not os.path.exists(directory): pathlib.Path(directory).mkdir(parents=True, exist_ok=True) try: self._file = open(self._fileName, "a") # Set readable permissions for all users (644) os.chmod(self._fileName, 0o644) self._fileOpened = True except Exception as e: print(e) def write_debug_out( self, text, level=debug.DebugLevel.DEACTIVE, on_any_level=False ): mode = self.env["runtime"]["SettingsManager"].get_setting( "general", "debug_mode" ) if mode == "": mode = "FILE" mode = mode.upper().split(",") file_mode = "FILE" in mode print_mode = "PRINT" in mode if ( int( self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "debug_level" ) ) < int(level) ) and not ( on_any_level and int( self.env["runtime"]["SettingsManager"].get_setting_as_int( "general", "debug_level" ) ) > int(debug.DebugLevel.DEACTIVE) ): if self._fileOpened: self.close_debug_file() return else: if not self._fileOpened and file_mode: self.open_debug_file() timestamp = str(datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f")) if on_any_level: level_info = "INFO ANY" else: level_info = str(level) # Changed order: text comes first, then level and timestamp msg = text + " - " + level_info + " " + timestamp if print_mode: print(msg) if file_mode: try: self._file.write(msg + "\n") except Exception as e: print(e) def close_debug_file(self): if not self._fileOpened: return False if self._file is not None: try: self._file.close() except Exception as e: print(e) self._fileOpened = False return True def get_debug_file(self): return self._fileName def set_debug_file(self, file_name): self.close_debug_file() self._fileName = file_name fenrir/src/fenrirscreenreader/core/dynamicKeyboardLayoutMenu.py000066400000000000000000000167111513650123000254360ustar00rootroot00000000000000#!/usr/bin/env python3 import glob import os from fenrirscreenreader.core import debug class DynamicKeyboardLayoutCommand: """Dynamic command class for keyboard layout selection""" def __init__(self, layoutName, layoutPath, env): self.layoutName = layoutName self.layoutPath = layoutPath # Extract just the base name without extension for comparison self.layoutBaseName = layoutName self.env = env def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return f"Set keyboard layout to {self.layoutName}" def run(self): try: settingsManager = self.env["runtime"]["SettingsManager"] currentLayout = settingsManager.get_setting( "keyboard", "keyboard_layout" ) # Check if already set (compare both full path and base name) currentBaseName = os.path.splitext(os.path.basename(currentLayout))[0] if currentLayout else "" if currentBaseName.lower() == self.layoutBaseName.lower() or currentLayout.lower() == self.layoutPath.lower(): self.env["runtime"]["OutputManager"].present_text( f"Keyboard layout already set to {self.layoutName}" ) return # Set the new layout in the config file using full path try: # Update the setting in memory settingsManager.set_setting( "keyboard", "keyboard_layout", self.layoutPath ) # Save to the actual config file configFilePath = settingsManager.get_settings_file() settingsManager.save_settings(configFilePath) self.env["runtime"]["OutputManager"].present_text( f"Keyboard layout set to {self.layoutName}. Please restart Fenrir for this change to take effect." ) # Play accept sound self.env["runtime"]["OutputManager"].present_text( "", sound_icon="Accept", interrupt=False ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Failed to change keyboard layout to {self.layoutName}" ) self.env["runtime"]["DebugManager"].write_debug_out( f"DynamicKeyboardLayout: Error setting layout {self.layoutName}: {e}", debug.DebugLevel.ERROR, ) # Play error sound self.env["runtime"]["OutputManager"].present_text( "", sound_icon="ErrorSound", interrupt=False ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Keyboard layout change error: {str(e)}", interrupt=True ) self.env["runtime"]["DebugManager"].write_debug_out( f"DynamicKeyboardLayout: Unexpected error for {self.layoutName}: {e}", debug.DebugLevel.ERROR, ) def set_callback(self, callback): pass def add_dynamic_keyboard_layout_menus(VmenuManager): """Add dynamic keyboard layout menus to vmenu system""" try: env = VmenuManager.env # Get keyboard layout files layouts = get_keyboard_layouts(env) if not layouts: return # Create keyboard layouts submenu layoutMenu = {} # Add layout commands for layoutName, layoutPath in layouts: layoutCommand = DynamicKeyboardLayoutCommand( layoutName, layoutPath, env ) layoutMenu[f"{layoutName} Action"] = layoutCommand # Find keyboard menu in existing vmenu structure # If fenrir menu exists, add layouts under it if "fenrir Menu" in VmenuManager.menuDict: fenrirMenu = VmenuManager.menuDict["fenrir Menu"] if "keyboard Menu" in fenrirMenu: # Add dynamic layouts to existing keyboard menu keyboardMenu = fenrirMenu["keyboard Menu"] keyboardMenu["Keyboard Layouts Menu"] = layoutMenu else: # Create keyboard menu with layouts fenrirMenu["keyboard Menu"] = { "Keyboard Layouts Menu": layoutMenu } else: # Create standalone keyboard layouts menu VmenuManager.menuDict["Keyboard Layouts Menu"] = layoutMenu except Exception as e: # Use debug manager for error logging if "DebugManager" in env.get("runtime", {}): env["runtime"]["DebugManager"].write_debug_out( f"Error creating dynamic keyboard layout menus: {e}", debug.DebugLevel.ERROR, ) else: print(f"Error creating dynamic keyboard layout menus: {e}") def get_keyboard_layouts(env): """Get available keyboard layouts from keyboard directory""" layouts = [] try: # Get keyboard directory paths keyboardDirs = [] # Check system installation path systemKeyboardPath = "/etc/fenrirscreenreader/keyboard/" if os.path.exists(systemKeyboardPath): keyboardDirs.append(systemKeyboardPath) # Check source/development path try: import fenrirscreenreader fenrirPath = os.path.dirname(fenrirscreenreader.__file__) devKeyboardPath = os.path.join( fenrirPath, "..", "..", "config", "keyboard" ) devKeyboardPath = os.path.abspath(devKeyboardPath) if os.path.exists(devKeyboardPath): keyboardDirs.append(devKeyboardPath) except Exception: pass # Get current layout setting path try: currentLayoutSetting = env["runtime"]["SettingsManager"].get_setting( "keyboard", "keyboard_layout" ) if currentLayoutSetting and os.path.exists(currentLayoutSetting): currentLayoutDir = os.path.dirname(currentLayoutSetting) if currentLayoutDir not in keyboardDirs: keyboardDirs.append(currentLayoutDir) except Exception: pass # Scan for .conf files seenLayouts = set() for keyboardDir in keyboardDirs: try: confFiles = glob.glob(os.path.join(keyboardDir, "*.conf")) for confFile in confFiles: layoutName = os.path.splitext(os.path.basename(confFile))[ 0 ] if layoutName not in seenLayouts: seenLayouts.add(layoutName) layouts.append((layoutName, confFile)) except Exception as e: if "DebugManager" in env.get("runtime", {}): env["runtime"]["DebugManager"].write_debug_out( f"Error scanning keyboard directory {keyboardDir}: {e}", debug.DebugLevel.WARNING, ) # Sort layouts alphabetically layouts.sort(key=lambda x: x[0].lower()) except Exception as e: if "DebugManager" in env.get("runtime", {}): env["runtime"]["DebugManager"].write_debug_out( f"Error getting keyboard layouts: {e}", debug.DebugLevel.ERROR, ) return layouts fenrir/src/fenrirscreenreader/core/dynamicVoiceMenu.py000066400000000000000000000320041513650123000235360ustar00rootroot00000000000000#!/usr/bin/env python3 import importlib.util import os import subprocess import time from fenrirscreenreader.core import debug class DynamicVoiceCommand: """Dynamic command class for voice selection""" def __init__(self, module, voice, env): self.module = module self.voice = voice self.env = env self.testMessage = "This is a voice test. The quick brown fox jumps over the lazy dog." def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return f"Select voice: {self.voice}" def run(self): try: self.env["runtime"]["OutputManager"].present_text( f"Testing voice {self.voice} from {self.module}. Please wait.", interrupt=True, ) # Brief pause before testing to avoid speech overlap time.sleep(0.5) # Test voice testResult, errorMsg = self.test_voice() if testResult: self.env["runtime"]["OutputManager"].present_text( "Voice test completed successfully. Navigate to Apply Tested Voice to use this voice.", interrupt=False, flush=False, ) # Store for confirmation (use same variables as # apply_tested_voice.py) self.env["commandBuffer"]["lastTestedModule"] = self.module self.env["commandBuffer"]["lastTestedVoice"] = self.voice self.env["commandBuffer"]["pendingVoiceModule"] = self.module self.env["commandBuffer"]["pendingVoiceVoice"] = self.voice self.env["commandBuffer"]["voiceTestCompleted"] = True else: self.env["runtime"]["OutputManager"].present_text( f"Voice test failed: {errorMsg}", interrupt=False, flush=False, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Voice selection error: {str(e)}", interrupt=False, flush=False, ) def test_voice(self): """Test voice with spd-say""" try: cmd = [ "spd-say", "-C", "-w", "-o", self.module, "-y", self.voice, self.testMessage, ] result = subprocess.run( cmd, timeout=8, capture_output=True, text=True ) if result.returncode == 0: return True, "Voice test successful" else: error_msg = ( result.stderr.strip() if result.stderr else f"Command failed with return code {result.returncode}" ) return False, error_msg except subprocess.TimeoutExpired: return False, "Voice test timed out" except Exception as e: return False, f"Error running voice test: {str(e)}" def set_callback(self, callback): pass class DynamicApplyVoiceCommand: """Command to apply the tested voice""" def __init__(self, env): self.env = env def initialize(self, environment): self.env = environment def shutdown(self): pass def get_description(self): return "Apply tested voice to Fenrir" def run(self): try: if not self.env["commandBuffer"].get("voiceTestCompleted", False): self.env["runtime"]["OutputManager"].present_text( "No voice has been tested yet", interrupt=True ) return module = self.env["commandBuffer"]["pendingVoiceModule"] voice = self.env["commandBuffer"]["pendingVoiceVoice"] self.env["runtime"]["OutputManager"].present_text( f"Applying {voice} from {module}", interrupt=True ) # Debug: Show current settings settings_manager = self.env["runtime"]["SettingsManager"] current_module = settings_manager.get_setting("speech", "module") current_voice = settings_manager.get_setting("speech", "voice") self.env["runtime"]["OutputManager"].present_text( f"Current: {current_voice} from {current_module}", interrupt=False, flush=False, ) # Apply to runtime settings with fallback settings_manager = self.env["runtime"]["SettingsManager"] # Store old values for safety old_driver = settings_manager.get_setting("speech", "driver") old_module = settings_manager.get_setting("speech", "module") old_voice = settings_manager.get_setting("speech", "voice") try: # Apply new settings to runtime only (use set_setting to update # settingArgDict) settings_manager.set_setting( "speech", "driver", "speechdDriver" ) settings_manager.set_setting("speech", "module", module) settings_manager.set_setting("speech", "voice", voice) # Apply settings to speech driver directly if "SpeechDriver" in self.env["runtime"]: SpeechDriver = self.env["runtime"]["SpeechDriver"] # Get current module to see if we're changing modules current_module = settings_manager.get_setting( "speech", "module" ) module_changing = current_module != module # Set module and voice on driver instance first SpeechDriver.set_module(module) SpeechDriver.set_voice(voice) if module_changing: # Module change requires reinitializing the speech # driver self.env["runtime"]["OutputManager"].present_text( f"Switching from {current_module} to {module} module", interrupt=True, ) SpeechDriver.shutdown() SpeechDriver.initialize(self.env) # Re-set after initialization SpeechDriver.set_module(module) SpeechDriver.set_voice(voice) self.env["runtime"]["OutputManager"].present_text( "Speech driver reinitialized", interrupt=True ) # Debug: verify what was actually set self.env["runtime"]["OutputManager"].present_text( f"Speech driver now has module: {SpeechDriver.module}, voice: {SpeechDriver.voice}", interrupt=True, ) # Force application by speaking a test message self.env["runtime"]["OutputManager"].present_text( "Voice applied successfully! You should hear this in the new voice.", interrupt=True, ) # Brief pause then more speech to test time.sleep(1) self.env["runtime"]["OutputManager"].present_text( "Use save settings to make permanent", interrupt=True ) # Clear pending state self.env["commandBuffer"]["voiceTestCompleted"] = False # Exit vmenu after successful application self.env["runtime"]["VmenuManager"].set_active(False) except Exception as e: # Revert on failure settings_manager.settings["speech"]["driver"] = old_driver settings_manager.settings["speech"]["module"] = old_module settings_manager.settings["speech"]["voice"] = old_voice # Try to reinitialize with old settings if "SpeechDriver" in self.env["runtime"]: try: SpeechDriver = self.env["runtime"]["SpeechDriver"] SpeechDriver.shutdown() SpeechDriver.initialize(self.env) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "dynamicVoiceMenu: Error reinitializing speech driver: " + str(e), debug.DebugLevel.ERROR, ) self.env["runtime"]["OutputManager"].present_text( f"Failed to apply voice, reverted: {str(e)}", interrupt=False, flush=False, ) except Exception as e: self.env["runtime"]["OutputManager"].present_text( f"Apply voice error: {str(e)}", interrupt=False, flush=False ) def set_callback(self, callback): pass def add_dynamic_voice_menus(VmenuManager): """Add dynamic voice menus to vmenu system""" try: env = VmenuManager.env # Get speech modules modules = get_speechd_modules() if not modules: return # Create voice browser submenu voice_browser_menu = {} # Add apply voice command apply_command = DynamicApplyVoiceCommand(env) voice_browser_menu["Apply Tested Voice Action"] = apply_command # Add modules as submenus for module in modules[ :8 ]: # Limit to 8 modules to keep menu manageable module_menu = {} # Get voices for this module voices = get_module_voices(module) if voices: # Add voice commands for voice in voices: voice_command = DynamicVoiceCommand(module, voice, env) module_menu[f"{voice} Action"] = voice_command else: module_menu["No voices available Action"] = ( create_info_command(f"No voices found for {module}", env) ) voice_browser_menu[f"{module} Menu"] = module_menu # Add to main menu dict VmenuManager.menuDict["Voice Browser Menu"] = voice_browser_menu except Exception as e: # Use debug manager instead of print for error logging if "DebugManager" in env["runtime"]: env["runtime"]["DebugManager"].write_debug_out( f"Error creating dynamic voice menus: {e}", debug.DebugLevel.ERROR, ) else: print(f"Error creating dynamic voice menus: {e}") def create_info_command(message, env): """Create a simple info command""" class InfoCommand: def __init__(self, message, env): self.message = message self.env = env def initialize(self, environment): pass def shutdown(self): pass def get_description(self): return self.message def run(self): self.env["runtime"]["OutputManager"].present_text( self.message, interrupt=True ) def set_callback(self, callback): pass return InfoCommand(message, env) def get_speechd_modules(): """Get available speech modules""" try: result = subprocess.run( ["spd-say", "-O"], capture_output=True, text=True, timeout=5 ) if result.returncode == 0: lines = result.stdout.strip().split("\n") return [line.strip() for line in lines[1:] if line.strip()] except Exception: pass return [] def get_module_voices(module): """Get voices for a module""" try: result = subprocess.run( ["spd-say", "-o", module, "-L"], capture_output=True, text=True, timeout=8, ) if result.returncode == 0: lines = result.stdout.strip().split("\n") voices = [] for line in lines[1:]: if not line.strip(): continue if module.lower() == "espeak-ng": voice = process_espeak_voice(line) if voice: voices.append(voice) else: voices.append(line.strip()) return voices except Exception: pass return [] def process_espeak_voice(voiceLine): """Process espeak voice format""" try: parts = [p for p in voiceLine.split() if p] if len(parts) < 2: return None lang_code = parts[-2].lower() variant = parts[-1].lower() return ( f"{lang_code}+{variant}" if variant and variant != "none" else lang_code ) except Exception: return None fenrir/src/fenrirscreenreader/core/environment.py000066400000000000000000000017761513650123000226570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import commandData from fenrirscreenreader.core import debug from fenrirscreenreader.core.generalData import general_data from fenrirscreenreader.core.inputData import input_data from fenrirscreenreader.core.outputData import output_data from fenrirscreenreader.core.punctuationData import punctuation_data from fenrirscreenreader.core.runtimeData import runtime_data from fenrirscreenreader.core.screenData import screen_data from fenrirscreenreader.core.settingsData import settings_data environment = { "screen": screen_data, "runtime": runtime_data, "general": general_data, "settings": settings_data, "commandInfo": commandData.command_info, "commandBuffer": commandData.command_buffer, "input": input_data, "punctuation": punctuation_data, "output": output_data, "soundIcons": {}, "bindings": {}, "rawBindings": {}, } fenrir/src/fenrirscreenreader/core/eventData.py000066400000000000000000000010261513650123000222120ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from enum import Enum from fenrirscreenreader.core import debug class FenrirEventType(Enum): ignore = 0 stop_main_loop = 1 screen_update = 2 keyboard_input = 3 plug_input_device = 4 screen_changed = 5 heart_beat = 6 execute_command = 7 byte_input = 8 remote_incomming = 9 def __int__(self): return self.value def __str__(self): return self.name fenrir/src/fenrirscreenreader/core/eventManager.py000066400000000000000000000071021513650123000227140ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from ctypes import c_bool from multiprocessing import Queue from multiprocessing.sharedctypes import Value from queue import Empty from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType class EventManager: def __init__(self): self.running = Value(c_bool, True) self._eventQueue = Queue() self.clean_event_queue() def initialize(self, environment): self.env = environment def shutdown(self): self.clean_event_queue() def proceed_event_loop(self): event = self._eventQueue.get() st = time.time() self.event_dispatcher(event) # print('NET loop ' + str(time.time() - st)) def event_dispatcher(self, event): self.env["runtime"]["DebugManager"].write_debug_out( "EventManager:event_dispatcher:start: event: " + str(event["Type"]), debug.DebugLevel.INFO, ) if not event: return if not event["Type"]: return if event["Type"] == FenrirEventType.ignore: return elif event["Type"] == FenrirEventType.stop_main_loop: self.handle_stop_main_loop(event) elif event["Type"] == FenrirEventType.screen_update: self.env["runtime"]["FenrirManager"].handle_screen_update(event) elif event["Type"] == FenrirEventType.keyboard_input: self.env["runtime"]["FenrirManager"].handle_input(event) elif event["Type"] == FenrirEventType.plug_input_device: self.env["runtime"]["FenrirManager"].handle_plug_input_device( event ) elif event["Type"] == FenrirEventType.screen_changed: self.env["runtime"]["FenrirManager"].handle_screen_change(event) elif event["Type"] == FenrirEventType.heart_beat: self.env["runtime"]["FenrirManager"].handle_heart_beat(event) elif event["Type"] == FenrirEventType.execute_command: self.env["runtime"]["FenrirManager"].handle_execute_command(event) elif event["Type"] == FenrirEventType.byte_input: self.env["runtime"]["FenrirManager"].handle_byte_input(event) elif event["Type"] == FenrirEventType.remote_incomming: self.env["runtime"]["FenrirManager"].handle_remote_incomming(event) def is_main_event_loop_running(self): return self.running.value == 1 def start_main_event_loop(self): self.running.value = 1 while self.is_main_event_loop_running(): self.proceed_event_loop() def handle_stop_main_loop(self, event): self.running.value = 0 time.sleep(0.1) def stop_main_event_loop(self): self._eventQueue.put( {"Type": FenrirEventType.stop_main_loop, "data": None} ) def clean_event_queue(self): if self._eventQueue.empty(): return try: while True: self._eventQueue.get_nowait() except Empty: pass def get_event_queue(self): return self._eventQueue def get_running(self): return self.running def get_event_queue_size(self): return self._eventQueue.qsize() def put_to_event_queue(self, event, data): if not isinstance(event, FenrirEventType): return False if event == FenrirEventType.ignore: return False self._eventQueue.put({"Type": event, "data": data}) return True fenrir/src/fenrirscreenreader/core/fenrirManager.py000066400000000000000000000437151513650123000230720ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os import signal import sys import time from fenrirscreenreader.core import debug from fenrirscreenreader.core import settingsManager from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.i18n import _ class FenrirManager: def __init__(self, cliArgs): self.is_initialized = False self.environment = None self.signal_handlers_set = False try: self.environment = ( settingsManager.SettingsManager().init_fenrir_config( cliArgs, self ) ) if not self.environment: raise RuntimeError( "Cannot Initialize. Maybe the configfile is not available or not parseable" ) self.environment["runtime"]["OutputManager"].present_text( _("Start Fenrir"), sound_icon="ScreenReaderOn", interrupt=True ) # Set signal handlers after successful initialization signal.signal(signal.SIGINT, self.capture_signal) signal.signal(signal.SIGTERM, self.capture_signal) self.signal_handlers_set = True self.is_initialized = True self.modifierInput = False self.singleKeyCommand = False self.command = "" self.set_process_name() except Exception as e: # Clean up any partial initialization self.cleanup_on_error() raise def proceed(self): if not self.is_initialized: return self.environment["runtime"]["EventManager"].start_main_event_loop() self.shutdown() def handle_input(self, event): self.environment["runtime"]["DebugManager"].write_debug_out( "DEBUG INPUT fenrirMan:" + str(event), debug.DebugLevel.INFO ) if not event["data"]: event["data"] = self.environment["runtime"][ "InputManager" ].get_input_event() if event["data"]: event["data"]["event_name"] = self.environment["runtime"][ "InputManager" ].convert_event_name(event["data"]["event_name"]) self.environment["runtime"]["InputManager"].handle_input_event( event["data"] ) else: return if self.environment["runtime"]["InputManager"].no_key_pressed(): self.environment["runtime"]["InputManager"].clear_last_deep_input() if self.environment["runtime"]["ScreenManager"].is_ignored_screen(): self.environment["runtime"]["InputManager"].write_event_buffer() else: if self.environment["runtime"]["HelpManager"].is_tutorial_mode(): self.environment["runtime"][ "InputManager" ].clear_event_buffer() self.environment["runtime"]["InputManager"].key_echo( event["data"] ) if self.environment["runtime"]["VmenuManager"].get_active(): self.environment["runtime"][ "InputManager" ].clear_event_buffer() self.detect_shortcut_command() if self.modifierInput: self.environment["runtime"][ "InputManager" ].clear_event_buffer() if self.singleKeyCommand: if self.environment["runtime"][ "InputManager" ].no_key_pressed(): self.environment["runtime"][ "InputManager" ].clear_event_buffer() else: self.environment["runtime"][ "InputManager" ].write_event_buffer() if self.environment["runtime"]["InputManager"].no_key_pressed(): self.modifierInput = False self.singleKeyCommand = False self.environment["runtime"]["InputManager"].write_event_buffer() self.environment["runtime"]["InputManager"].handle_device_grab() if self.environment["input"]["key_forward"] > 0: self.environment["input"]["key_forward"] -= 1 self.environment["runtime"]["CommandManager"].execute_default_trigger( "onKeyInput" ) def handle_byte_input(self, event): if not event["data"] or event["data"] == b"": return self.environment["runtime"]["ByteManager"].handle_byte_input( event["data"] ) self.environment["runtime"]["CommandManager"].execute_default_trigger( "onByteInput" ) def handle_execute_command(self, event): if not event["data"] or event["data"] == "": return current_command = event["data"] # Check for active read-all and interrupt it on any other key press self._interrupt_read_all_if_active(current_command) # special modes if self.environment["runtime"]["HelpManager"].is_tutorial_mode(): if self.environment["runtime"]["CommandManager"].command_exists( current_command, "help" ): self.environment["runtime"]["CommandManager"].execute_command( current_command, "help" ) return elif self.environment["runtime"]["VmenuManager"].get_active(): if self.environment["runtime"]["CommandManager"].command_exists( current_command, "vmenu-navigation" ): self.environment["runtime"]["CommandManager"].execute_command( current_command, "vmenu-navigation" ) return # default self.environment["runtime"]["CommandManager"].execute_command( current_command, "commands" ) def _interrupt_read_all_if_active(self, current_command): """Check for active read-all and interrupt it on any other key press.""" try: # Skip interruption for read-all commands themselves (they toggle) if current_command in ["read_all_by_line", "read_all_by_page"]: return # Stop read-all if any other command is executed if ("ReadAllManager" in self.environment["runtime"] and self.environment["runtime"]["ReadAllManager"] and self.environment["runtime"]["ReadAllManager"].is_active()): self.environment["runtime"]["ReadAllManager"].stop_read_all() except Exception as e: # Ignore errors in interrupt logic to prevent cascading issues self.environment["runtime"]["DebugManager"].write_debug_out( f"_interrupt_read_all_if_active: {e}", debug.DebugLevel.ERROR ) def handle_remote_incomming(self, event): if not event["data"]: return self.environment["runtime"]["RemoteManager"].handle_remote_incomming( event["data"] ) def handle_screen_change(self, event): self.environment["runtime"]["ScreenManager"].handle_screen_change( event["data"] ) if self.environment["runtime"]["VmenuManager"].get_active(): return self.environment["runtime"]["CommandManager"].execute_default_trigger( "onScreenChanged" ) self.environment["runtime"]["ScreenDriver"].get_curr_screen() def handle_screen_update(self, event): self.environment["runtime"]["ScreenManager"].handle_screen_update( event["data"] ) if ( time.time() - self.environment["runtime"]["InputManager"].get_last_input_time() >= 0.3 ): self.environment["runtime"]["InputManager"].clear_last_deep_input() if ( self.environment["runtime"][ "CursorManager" ].is_cursor_vertical_move() or self.environment["runtime"][ "CursorManager" ].is_cursor_horizontal_move() ): self.environment["runtime"][ "CommandManager" ].execute_default_trigger("onCursorChange") self.environment["runtime"]["CommandManager"].execute_default_trigger( "onScreenUpdate" ) self.environment["runtime"]["InputManager"].clear_last_deep_input() def handle_plug_input_device(self, event): try: self.environment["runtime"][ "InputManager" ].set_last_detected_devices(event["data"]) except Exception as e: self.environment["runtime"]["DebugManager"].write_debug_out( "handle_plug_input_device: Error setting last detected devices: " + str(e), debug.DebugLevel.ERROR, ) self.environment["runtime"]["InputManager"].handle_plug_input_device( event["data"] ) self.environment["runtime"]["CommandManager"].execute_default_trigger( "onPlugInputDevice", force=True ) self.environment["runtime"]["InputManager"].set_last_detected_devices( None ) def handle_heart_beat(self, event): self.environment["runtime"]["CommandManager"].execute_default_trigger( "onHeartBeat", force=True ) def detect_shortcut_command(self): if self.environment["input"]["key_forward"] > 0: return if len(self.environment["input"]["prev_input"]) > len( self.environment["input"]["curr_input"] ): return if self.environment["runtime"]["InputManager"].is_key_press(): self.modifierInput = self.environment["runtime"][ "InputManager" ].curr_key_is_modifier() else: if not self.environment["runtime"][ "InputManager" ].no_key_pressed(): if self.singleKeyCommand: self.singleKeyCommand = ( len(self.environment["input"]["curr_input"]) == 1 ) if not ( self.singleKeyCommand and self.environment["runtime"]["InputManager"].no_key_pressed() ): current_shortcut = self.environment["runtime"][ "InputManager" ].get_curr_shortcut() self.command = self.environment["runtime"][ "InputManager" ].get_command_for_shortcut(current_shortcut) if not self.modifierInput: if self.environment["runtime"]["InputManager"].is_key_press(): if self.command != "": self.singleKeyCommand = True if not (self.singleKeyCommand or self.modifierInput): return # fire event if self.command != "": if self.modifierInput: self.environment["runtime"]["EventManager"].put_to_event_queue( FenrirEventType.execute_command, self.command ) self.command = "" else: if self.singleKeyCommand: self.environment["runtime"][ "EventManager" ].put_to_event_queue( FenrirEventType.execute_command, self.command ) self.command = "" def set_process_name(self, name="fenrir"): """Attempts to set the process name to 'fenrir'.""" try: from setproctitle import setproctitle except ImportError: pass else: setproctitle(name) return True try: from ctypes import byref from ctypes import cdll from ctypes import create_string_buffer libc = cdll.LoadLibrary("libc.so.6") string_buffer = create_string_buffer(len(name) + 1) string_buffer.value = bytes(name, "UTF-8") libc.prctl(15, byref(string_buffer), 0, 0, 0) return True except Exception as e: self.environment["runtime"]["DebugManager"].write_debug_out( "setProcName: Error setting process name: " + str(e), debug.DebugLevel.ERROR, ) return False def shutdown_request(self): try: self.environment["runtime"]["EventManager"].stop_main_event_loop() except Exception as e: self.environment["runtime"]["DebugManager"].write_debug_out( "shutdown_request: Error stopping main event loop: " + str(e), debug.DebugLevel.ERROR, ) def capture_signal(self, sigInit, frame): self.shutdown_request() def shutdown(self): self.environment["runtime"]["InputManager"].ungrab_all_devices() self.environment["runtime"]["EventManager"].stop_main_event_loop() self.environment["runtime"]["OutputManager"].present_text( _("Quit Fenrir"), sound_icon="ScreenReaderOff", interrupt=True ) self.environment["runtime"]["EventManager"].clean_event_queue() time.sleep(0.6) for currentManager in self.environment["general"]["managerList"]: if self.environment["runtime"][currentManager]: self.environment["runtime"][currentManager].shutdown() del self.environment["runtime"][currentManager] self.environment = None def cleanup_on_error(self): """Clean up partially initialized state when initialization fails""" try: # Reset signal handlers to default if they were set if self.signal_handlers_set: signal.signal(signal.SIGINT, signal.SIG_DFL) signal.signal(signal.SIGTERM, signal.SIG_DFL) self.signal_handlers_set = False # Clean up any initialized managers if self.environment: try: # Try to ungrab devices if input manager exists if ( "runtime" in self.environment and "InputManager" in self.environment["runtime"] ): if self.environment["runtime"]["InputManager"]: self.environment["runtime"][ "InputManager" ].ungrab_all_devices() except Exception: pass # Ignore errors during cleanup try: # Try to stop event manager if it exists if ( "runtime" in self.environment and "EventManager" in self.environment["runtime"] ): if self.environment["runtime"]["EventManager"]: self.environment["runtime"][ "EventManager" ].stop_main_event_loop() except Exception: pass # Ignore errors during cleanup try: # Try to clean up all managers if ( "general" in self.environment and "managerList" in self.environment["general"] ): for currentManager in self.environment["general"][ "managerList" ]: if ( "runtime" in self.environment and currentManager in self.environment["runtime"] and self.environment["runtime"][currentManager] ): try: self.environment["runtime"][ currentManager ].shutdown() del self.environment["runtime"][ currentManager ] except Exception: pass # Ignore errors during cleanup except Exception: pass # Ignore errors during cleanup # Clean up socket files that might not be removed by the driver try: socket_file = None if ( "runtime" in self.environment and "SettingsManager" in self.environment["runtime"] ): try: socket_file = self.environment["runtime"][ "SettingsManager" ].get_setting("remote", "socket_file") except Exception: pass # Use default socket file path if not socket_file: # Use default socket file paths socket_file = "/tmp/fenrirscreenreader-deamon.sock" if os.path.exists(socket_file): os.unlink(socket_file) # Also try PID-based socket file pid_socket_file = ( "/tmp/fenrirscreenreader-" + str(os.getpid()) + ".sock" ) if os.path.exists(pid_socket_file): os.unlink(pid_socket_file) elif os.path.exists(socket_file): os.unlink(socket_file) except Exception: pass # Ignore errors during socket cleanup self.environment = None except Exception: pass # Ignore all errors during error cleanup fenrir/src/fenrirscreenreader/core/generalData.py000066400000000000000000000023121513650123000225050ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug general_data = { "args": None, "tutorialMode": False, "curr_user": "", "prev_user": "", "managerList": [ "AttributeManager", "PunctuationManager", "ByteManager", "CursorManager", "ApplicationManager", "CommandManager", "ScreenManager", "InputManager", "OutputManager", "HelpManager", "MemoryManager", "EventManager", "ProcessManager", "VmenuManager", "QuickMenuManager", "ReadAllManager", "RemoteManager", "SettingsManager", "SayAllManager", "TableManager", "TextManager", "BarrierManager", "DebugManager", ], "commandFolderList": [ "commands", "onKeyInput", "onByteInput", "onCursorChange", "onScreenUpdate", "onScreenChanged", "onHeartBeat", "onPlugInputDevice", "onApplicationChange", "onSwitchApplicationProfile", "help", "vmenu-navigation", ], } fenrir/src/fenrirscreenreader/core/helpManager.py000077500000000000000000000124401513650123000225270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class HelpManager: def __init__(self): self.helpDict = {} self.tutorialListIndex = None def initialize(self, environment): self.env = environment def shutdown(self): pass def toggle_tutorial_mode(self): self.set_tutorial_mode(not self.env["general"]["tutorialMode"]) def set_tutorial_mode(self, newTutorialMode): if self.env["runtime"]["VmenuManager"].get_active(): return self.env["general"]["tutorialMode"] = newTutorialMode if newTutorialMode: self.create_help_dict() self.env["bindings"][ str([1, ["KEY_ESC"]]) ] = "TOGGLE_TUTORIAL_MODE" self.env["bindings"][str([1, ["KEY_UP"]])] = "PREV_HELP" self.env["bindings"][str([1, ["KEY_DOWN"]])] = "NEXT_HELP" self.env["bindings"][str([1, ["KEY_SPACE"]])] = "CURR_HELP" else: try: self.env["bindings"] = self.env["runtime"][ "SettingsManager" ].get_binding_backup() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "HelpManager set_tutorial_mode: Error restoring binding backup: " + str(e), debug.DebugLevel.ERROR, ) def is_tutorial_mode(self): return self.env["general"]["tutorialMode"] def get_formatted_shortcut_for_command(self, command): shortcut = [] raw_shortcut = [] try: raw_shortcut = list(self.env["bindings"].keys())[ list(self.env["bindings"].values()).index(command) ] raw_shortcut = self.env["rawBindings"][raw_shortcut] # prefer numbers for multitap if raw_shortcut[0] in range(2, 9): formatted_key = str(raw_shortcut[0]) + " times " shortcut.append(formatted_key) # prefer metha keys for k in [ "KEY_FENRIR", "KEY_SCRIPT", "KEY_CTRL", "KEY_SHIFT", "KEY_ALT", "KEY_META", ]: if k in raw_shortcut[1]: formatted_key = k formatted_key = formatted_key.lower() formatted_key = formatted_key.replace("key_kp", " keypad ") formatted_key = formatted_key.replace("key_", " ") shortcut.append(formatted_key) raw_shortcut[1].remove(k) # handle other keys for k in raw_shortcut[1]: formatted_key = k formatted_key = formatted_key.lower() formatted_key = formatted_key.replace("key_kp", " keypad ") formatted_key = formatted_key.replace("key_", " ") shortcut.append(formatted_key) except Exception as e: return "" shortcut = str(shortcut) shortcut = shortcut.replace("[", "") shortcut = shortcut.replace("]", "") shortcut = shortcut.replace("'", "") return shortcut def get_command_help_text(self, command, section="commands"): command_name = command.lower() command_name = command_name.split("__-__")[0] command_name = command_name.replace("_", " ") command_name = command_name.replace("_", " ") if command == "TOGGLE_TUTORIAL_MODE": command_description = _("toggles the tutorial mode") else: command_description = self.env["runtime"][ "CommandManager" ].get_command_description(command, section="commands") if command_description == "": command_description = "no Description available" command_shortcut = self.get_formatted_shortcut_for_command(command) if command_shortcut == "": command_shortcut = "unbound" helptext = ( command_name + ", Shortcut " + command_shortcut + ", Description " + command_description ) return helptext def create_help_dict(self, section="commands"): self.helpDict = {} for command in sorted(self.env["commands"][section].keys()): self.helpDict[len(self.helpDict)] = self.get_command_help_text( command, section ) if len(self.helpDict) > 0: self.tutorialListIndex = 0 else: self.tutorialListIndex = None def get_help_for_current_index(self): if self.tutorialListIndex is None: return "" return self.helpDict[self.tutorialListIndex] def next_index(self): if self.tutorialListIndex is None: return self.tutorialListIndex += 1 if self.tutorialListIndex >= len(self.helpDict): self.tutorialListIndex = 0 def prev_index(self): if self.tutorialListIndex is None: return self.tutorialListIndex -= 1 if self.tutorialListIndex < 0: self.tutorialListIndex = len(self.helpDict) - 1 fenrir/src/fenrirscreenreader/core/i18n.py000066400000000000000000000005621513650123000210620ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import builtins import gettext import locale # the only function we really need to call here is gettext.install. # Python3 has simplified this. gettext.install("fenrir") # Make _ available for import to satisfy static analysis tools _ = builtins._ fenrir/src/fenrirscreenreader/core/inputData.py000066400000000000000000000263301513650123000222350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug input_data = { "curr_input": [], "prev_input": [], "prev_deepest_input": [], "event_buffer": [], "shortcut_repeat": 0, "fenrir_key": [], "script_key": [], "key_forward": 0, "last_input_time": time.time(), "old_num_lock": True, "new_num_lock": True, "old_scroll_lock": True, "new_scroll_lock": True, "old_caps_lock": False, "new_caps_lock": False, } input_event = { "event_name": "", "event_value": "", "event_sec": 0, "event_usec": 0, "event_state": 0, "event_type": 0, } key_names = [ "KEY_RESERVED", "KEY_ESC", "KEY_1", "KEY_2", "KEY_3", "KEY_4", "KEY_5", "KEY_6", "KEY_7", "KEY_8", "KEY_9", "KEY_0", "KEY_MINUS", "KEY_EQUAL", "KEY_BACKSPACE", "KEY_TAB", "KEY_Q", "KEY_W", "KEY_E", "KEY_R", "KEY_T", "KEY_Y", "KEY_U", "KEY_I", "KEY_O", "KEY_P", "KEY_LEFTBRACE", "KEY_RIGHTBRACE", "KEY_ENTER", "KEY_LEFTCTRL", "KEY_A", "KEY_S", "KEY_D", "KEY_F", "KEY_G", "KEY_H", "KEY_J", "KEY_K", "KEY_L", "KEY_SEMICOLON", "KEY_APOSTROPHE", "KEY_GRAVE", "KEY_LEFTSHIFT", "KEY_BACKSLASH", "KEY_Z", "KEY_X", "KEY_C", "KEY_V", "KEY_B", "KEY_N", "KEY_M", "KEY_COMMA", "KEY_DOT", "KEY_SLASH", "KEY_RIGHTSHIFT", "KEY_KPASTERISK", "KEY_LEFTALT", "KEY_SPACE", "KEY_CAPSLOCK", "KEY_F1", "KEY_F2", "KEY_F3", "KEY_F4", "KEY_F5", "KEY_F6", "KEY_F7", "KEY_F8", "KEY_F9", "KEY_F10", "KEY_NUMLOCK", "KEY_SCROLLLOCK", "KEY_KP7", "KEY_KP8", "KEY_KP9", "KEY_KPMINUS", "KEY_KP4", "KEY_KP5", "KEY_KP6", "KEY_KPPLUS", "KEY_KP1", "KEY_KP2", "KEY_KP3", "KEY_KP0", "KEY_KPDOT", "KEY_ZENKAKUHANKAKU", "KEY_102ND", "KEY_F11", "KEY_F12", "KEY_RO", "KEY_KATAKANA", "KEY_HIRAGANA", "KEY_HENKAN", "KEY_KATAKANAHIRAGANA", "KEY_MUHENKAN", "KEY_KPJPCOMMA", "KEY_KPENTER", "KEY_RIGHTCTRL", "KEY_KPSLASH", "KEY_SYSRQ", "KEY_RIGHTALT", "KEY_LINEFEED", "KEY_HOME", "KEY_UP", "KEY_PAGEUP", "KEY_LEFT", "KEY_RIGHT", "KEY_END", "KEY_DOWN", "KEY_PAGEDOWN", "KEY_INSERT", "KEY_DELETE", "KEY_MACRO", "KEY_MIN_INTERESTING", "KEY_MUTE", "KEY_VOLUMEDOWN", "KEY_VOLUMEUP", "KEY_POWER", "KEY_KPEQUAL", "KEY_KPPLUSMINUS", "KEY_PAUSE", "KEY_SCALE", "KEY_KPCOMMA", "KEY_HANGEUL", "KEY_HANGUEL", "KEY_HANJA", "KEY_YEN", "KEY_LEFTMETA", "KEY_RIGHTMETA", "KEY_COMPOSE", "KEY_STOP", "KEY_AGAIN", "KEY_PROPS", "KEY_UNDO", "KEY_FRONT", "KEY_COPY", "KEY_OPEN", "KEY_PASTE", "KEY_FIND", "KEY_CUT", "KEY_HELP", "KEY_MENU", "KEY_CALC", "KEY_SETUP", "KEY_SLEEP", "KEY_WAKEUP", "KEY_FILE", "KEY_SENDFILE", "KEY_DELETEFILE", "KEY_XFER", "KEY_PROG1", "KEY_PROG2", "KEY_WWW", "KEY_MSDOS", "KEY_COFFEE", "KEY_SCREENLOCK", "KEY_DIRECTION", "KEY_ROTATE_DISPLAY", "KEY_CYCLEWINDOWS", "KEY_MAIL", "KEY_BOOKMARKS", "KEY_COMPUTER", "KEY_BACK", "KEY_FORWARD", "KEY_CLOSECD", "KEY_EJECTCD", "KEY_EJECTCLOSECD", "KEY_NEXTSONG", "KEY_PLAYPAUSE", "KEY_PREVIOUSSONG", "KEY_STOPCD", "KEY_RECORD", "KEY_REWIND", "KEY_PHONE", "KEY_ISO", "KEY_CONFIG", "KEY_HOMEPAGE", "KEY_REFRESH", "KEY_EXIT", "KEY_MOVE", "KEY_EDIT", "KEY_SCROLLUP", "KEY_SCROLLDOWN", "KEY_KPLEFTPAREN", "KEY_KPRIGHTPAREN", "KEY_NEW", "KEY_REDO", "KEY_F13", "KEY_F14", "KEY_F15", "KEY_F16", "KEY_F17", "KEY_F18", "KEY_F19", "KEY_F20", "KEY_F21", "KEY_F22", "KEY_F23", "KEY_F24", "KEY_PLAYCD", "KEY_PAUSECD", "KEY_PROG3", "KEY_PROG4", "KEY_DASHBOARD", "KEY_SUSPEND", "KEY_CLOSE", "KEY_PLAY", "KEY_FASTFORWARD", "KEY_BASSBOOST", "KEY_PRINT", "KEY_HP", "KEY_CAMERA", "KEY_SOUND", "KEY_QUESTION", "KEY_EMAIL", "KEY_CHAT", "KEY_SEARCH", "KEY_CONNECT", "KEY_FINANCE", "KEY_SPORT", "KEY_SHOP", "KEY_ALTERASE", "KEY_CANCEL", "KEY_BRIGHTNESSDOWN", "KEY_BRIGHTNESSUP", "KEY_MEDIA", "KEY_SWITCHVIDEOMODE", "KEY_KBDILLUMTOGGLE", "KEY_KBDILLUMDOWN", "KEY_KBDILLUMUP", "KEY_SEND", "KEY_REPLY", "KEY_FORWARDMAIL", "KEY_SAVE", "KEY_DOCUMENTS", "KEY_BATTERY", "KEY_BLUETOOTH", "KEY_WLAN", "KEY_UWB", "KEY_UNKNOWN", "KEY_VIDEO_NEXT", "KEY_VIDEO_PREV", "KEY_BRIGHTNESS_CYCLE", "KEY_BRIGHTNESS_AUTO", "KEY_BRIGHTNESS_ZERO", "KEY_DISPLAY_OFF", "KEY_WIMAX", "KEY_WWAN", "KEY_RFKILL", "KEY_MICMUTE", "BTN_0", "BTN_MISC", "BTN_1", "BTN_2", "BTN_3", "BTN_4", "BTN_5", "BTN_6", "BTN_7", "BTN_8", "BTN_9", "BTN_LEFT", "BTN_MOUSE", "BTN_RIGHT", "BTN_MIDDLE", "BTN_SIDE", "BTN_EXTRA", "BTN_FORWARD", "BTN_BACK", "BTN_TASK", "BTN_JOYSTICK", "BTN_TRIGGER", "BTN_THUMB", "BTN_THUMB2", "BTN_TOP", "BTN_TOP2", "BTN_PINKIE", "BTN_BASE", "BTN_BASE2", "BTN_BASE3", "BTN_BASE4", "BTN_BASE5", "BTN_BASE6", "BTN_DEAD", "BTN_A", "BTN_GAMEPAD", "BTN_SOUTH", "BTN_B", "BTN_EAST", "BTN_C", "BTN_NORTH", "BTN_X", "BTN_WEST", "BTN_Y", "BTN_Z", "BTN_TL", "BTN_TR", "BTN_TL2", "BTN_TR2", "BTN_SELECT", "BTN_START", "BTN_MODE", "BTN_THUMBL", "BTN_THUMBR", "BTN_DIGI", "BTN_TOOL_PEN", "BTN_TOOL_RUBBER", "BTN_TOOL_BRUSH", "BTN_TOOL_PENCIL", "BTN_TOOL_AIRBRUSH", "BTN_TOOL_FINGER", "BTN_TOOL_MOUSE", "BTN_TOOL_LENS", "BTN_TOOL_QUINTTAP", "BTN_TOUCH", "BTN_STYLUS", "BTN_STYLUS2", "BTN_TOOL_DOUBLETAP", "BTN_TOOL_TRIPLETAP", "BTN_TOOL_QUADTAP", "BTN_GEAR_DOWN", "BTN_WHEEL", "BTN_GEAR_UP", "KEY_OK", "KEY_SELECT", "KEY_GOTO", "KEY_CLEAR", "KEY_POWER2", "KEY_OPTION", "KEY_INFO", "KEY_TIME", "KEY_VENDOR", "KEY_ARCHIVE", "KEY_PROGRAM", "KEY_CHANNEL", "KEY_FAVORITES", "KEY_EPG", "KEY_PVR", "KEY_MHP", "KEY_LANGUAGE", "KEY_TITLE", "KEY_SUBTITLE", "KEY_ANGLE", "KEY_ZOOM", "KEY_MODE", "KEY_KEYBOARD", "KEY_SCREEN", "KEY_PC", "KEY_TV", "KEY_TV2", "KEY_VCR", "KEY_VCR2", "KEY_SAT", "KEY_SAT2", "KEY_CD", "KEY_TAPE", "KEY_RADIO", "KEY_TUNER", "KEY_PLAYER", "KEY_TEXT", "KEY_DVD", "KEY_AUX", "KEY_MP3", "KEY_AUDIO", "KEY_VIDEO", "KEY_DIRECTORY", "KEY_LIST", "KEY_MEMO", "KEY_CALENDAR", "KEY_RED", "KEY_GREEN", "KEY_YELLOW", "KEY_BLUE", "KEY_CHANNELUP", "KEY_CHANNELDOWN", "KEY_FIRST", "KEY_LAST", "KEY_AB", "KEY_NEXT", "KEY_RESTART", "KEY_SLOW", "KEY_SHUFFLE", "KEY_BREAK", "KEY_PREVIOUS", "KEY_DIGITS", "KEY_TEEN", "KEY_TWEN", "KEY_VIDEOPHONE", "KEY_GAMES", "KEY_ZOOMIN", "KEY_ZOOMOUT", "KEY_ZOOMRESET", "KEY_WORDPROCESSOR", "KEY_EDITOR", "KEY_SPREADSHEET", "KEY_GRAPHICSEDITOR", "KEY_PRESENTATION", "KEY_DATABASE", "KEY_NEWS", "KEY_VOICEMAIL", "KEY_ADDRESSBOOK", "KEY_MESSENGER", "KEY_BRIGHTNESS_TOGGLE", "KEY_DISPLAYTOGGLE", "KEY_SPELLCHECK", "KEY_LOGOFF", "KEY_DOLLAR", "KEY_EURO", "KEY_FRAMEBACK", "KEY_FRAMEFORWARD", "KEY_CONTEXT_MENU", "KEY_MEDIA_REPEAT", "KEY_10CHANNELSUP", "KEY_10CHANNELSDOWN", "KEY_IMAGES", "KEY_DEL_EOL", "KEY_DEL_EOS", "KEY_INS_LINE", "KEY_DEL_LINE", "KEY_FN", "KEY_FN_ESC", "KEY_FN_F1", "KEY_FN_F2", "KEY_FN_F3", "KEY_FN_F4", "KEY_FN_F5", "KEY_FN_F6", "KEY_FN_F7", "KEY_FN_F8", "KEY_FN_F9", "KEY_FN_F10", "KEY_FN_F11", "KEY_FN_F12", "KEY_FN_1", "KEY_FN_2", "KEY_FN_D", "KEY_FN_E", "KEY_FN_F", "KEY_FN_S", "KEY_FN_B", "KEY_BRL_DOT1", "KEY_BRL_DOT2", "KEY_BRL_DOT3", "KEY_BRL_DOT4", "KEY_BRL_DOT5", "KEY_BRL_DOT6", "KEY_BRL_DOT7", "KEY_BRL_DOT8", "KEY_BRL_DOT9", "KEY_BRL_DOT10", "KEY_NUMERIC_0", "KEY_NUMERIC_1", "KEY_NUMERIC_2", "KEY_NUMERIC_3", "KEY_NUMERIC_4", "KEY_NUMERIC_5", "KEY_NUMERIC_6", "KEY_NUMERIC_7", "KEY_NUMERIC_8", "KEY_NUMERIC_9", "KEY_NUMERIC_STAR", "KEY_NUMERIC_POUND", "KEY_NUMERIC_A", "KEY_NUMERIC_B", "KEY_NUMERIC_C", "KEY_NUMERIC_D", "KEY_CAMERA_FOCUS", "KEY_WPS_BUTTON", "KEY_TOUCHPAD_TOGGLE", "KEY_TOUCHPAD_ON", "KEY_TOUCHPAD_OFF", "KEY_CAMERA_ZOOMIN", "KEY_CAMERA_ZOOMOUT", "KEY_CAMERA_UP", "KEY_CAMERA_DOWN", "KEY_CAMERA_LEFT", "KEY_CAMERA_RIGHT", "KEY_ATTENDANT_ON", "KEY_ATTENDANT_OFF", "KEY_ATTENDANT_TOGGLE", "KEY_LIGHTS_TOGGLE", "BTN_DPAD_UP", "BTN_DPAD_DOWN", "BTN_DPAD_LEFT", "BTN_DPAD_RIGHT", "KEY_ALS_TOGGLE", "KEY_BUTTONCONFIG", "KEY_TASKMANAGER", "KEY_JOURNAL", "KEY_CONTROLPANEL", "KEY_APPSELECT", "KEY_SCREENSAVER", "KEY_VOICECOMMAND", "KEY_BRIGHTNESS_MIN", "KEY_BRIGHTNESS_MAX", "KEY_KBDINPUTASSIST_PREV", "KEY_KBDINPUTASSIST_NEXT", "KEY_KBDINPUTASSIST_PREVGROUP", "KEY_KBDINPUTASSIST_NEXTGROUP", "KEY_KBDINPUTASSIST_ACCEPT", "KEY_KBDINPUTASSIST_CANCEL", "KEY_RIGHT_UP", "KEY_RIGHT_DOWN", "KEY_LEFT_UP", "KEY_LEFT_DOWN", "KEY_ROOT_MENU", "KEY_MEDIA_TOP_MENU", "KEY_NUMERIC_11", "KEY_NUMERIC_12", "KEY_AUDIO_DESC", "KEY_3D_MODE", "KEY_NEXT_FAVORITE", "KEY_STOP_RECORD", "KEY_PAUSE_RECORD", "KEY_VOD", "KEY_UNMUTE", "KEY_DATA", "KEY_FASTREVERSE", "KEY_SLOWREVERSE", "BTN_TRIGGER_HAPPY", "BTN_TRIGGER_HAPPY1", "BTN_TRIGGER_HAPPY2", "BTN_TRIGGER_HAPPY3", "BTN_TRIGGER_HAPPY4", "BTN_TRIGGER_HAPPY5", "BTN_TRIGGER_HAPPY6", "BTN_TRIGGER_HAPPY7", "BTN_TRIGGER_HAPPY8", "BTN_TRIGGER_HAPPY9", "BTN_TRIGGER_HAPPY10", "BTN_TRIGGER_HAPPY11", "BTN_TRIGGER_HAPPY12", "BTN_TRIGGER_HAPPY13", "BTN_TRIGGER_HAPPY14", "BTN_TRIGGER_HAPPY15", "BTN_TRIGGER_HAPPY16", "BTN_TRIGGER_HAPPY17", "BTN_TRIGGER_HAPPY18", "BTN_TRIGGER_HAPPY19", "BTN_TRIGGER_HAPPY20", "BTN_TRIGGER_HAPPY21", "BTN_TRIGGER_HAPPY22", "BTN_TRIGGER_HAPPY23", "BTN_TRIGGER_HAPPY24", "BTN_TRIGGER_HAPPY25", "BTN_TRIGGER_HAPPY26", "BTN_TRIGGER_HAPPY27", "BTN_TRIGGER_HAPPY28", "BTN_TRIGGER_HAPPY29", "BTN_TRIGGER_HAPPY30", "BTN_TRIGGER_HAPPY31", "BTN_TRIGGER_HAPPY32", "BTN_TRIGGER_HAPPY33", "BTN_TRIGGER_HAPPY34", "BTN_TRIGGER_HAPPY35", "BTN_TRIGGER_HAPPY36", "BTN_TRIGGER_HAPPY37", "BTN_TRIGGER_HAPPY38", "BTN_TRIGGER_HAPPY39", "BTN_TRIGGER_HAPPY40", "KEY_FENRIR", "KEY_SCRIPT", "KEY_ALT", "KEY_CTRL", "KEY_META", "KEY_SHIFT", ] fenrir/src/fenrirscreenreader/core/inputDriver.py000066400000000000000000000051421513650123000226150ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug class InputDriver: def __init__(self): self._initialized = False def initialize(self, environment): self.env = environment self.env["runtime"]["InputManager"].set_shortcut_type("KEY") self._is_initialized = True def shutdown(self): if self._initialized: self.remove_all_devices() self._is_initialized = False def get_input_event(self): time.sleep(0.1) return None def clear_event_buffer(self): if not self._initialized: return del self.env["input"]["event_buffer"][:] def update_input_devices(self, new_devices=None, init=False): if not self._initialized: return def get_led_state(self, led=0): if not self._initialized: return False return False def toggle_led_state(self, led=0): if not self._initialized: return def grab_all_devices(self): if not self._initialized: return True return True def ungrab_all_devices(self): if not self._initialized: return True return True def force_ungrab(self): """Emergency method to release grabbed devices in case of failure""" if not self._initialized: return True try: # Try standard ungrab first return self.ungrab_all_devices() except Exception as e: # Just log the failure and inform the user if ( hasattr(self, "env") and "runtime" in self.env and "DebugManager" in self.env["runtime"] ): self.env["runtime"]["DebugManager"].write_debug_out( f"Emergency device release failed: {str(e)}", debug.DebugLevel.ERROR, ) else: print(f"Emergency device release failed: {str(e)}") return False def has_i_devices(self): if not self._initialized: return False return True def remove_all_devices(self): if not self._initialized: return def send_key(self): if not self._initialized: return def __del__(self): if not self._initialized: return try: self.remove_all_devices() except Exception as e: print(f"InputDriver __del__: Error removing devices: {str(e)}") fenrir/src/fenrirscreenreader/core/inputManager.py000066400000000000000000000541751513650123000227460ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import inspect import os import time import traceback from fenrirscreenreader.core import debug from fenrirscreenreader.core import inputData from fenrirscreenreader.core.i18n import _ currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class InputManager: def __init__(self): self.shortcutType = "KEY" self.executeDeviceGrab = False self.lastDetectedDevices = None def set_shortcut_type(self, shortcutType="KEY"): if shortcutType in ["KEY", "BYTE"]: self.shortcutType = shortcutType def get_shortcut_type(self): return self.shortcutType def initialize(self, environment): self.env = environment self.env["runtime"]["SettingsManager"].load_driver( self.env["runtime"]["SettingsManager"].get_setting( "keyboard", "driver" ), "InputDriver", ) self.update_input_devices() # init LEDs with current state self.env["input"]["new_num_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state() self.env["input"]["old_num_lock"] = self.env["input"]["new_num_lock"] self.env["input"]["new_caps_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state(1) self.env["input"]["old_caps_lock"] = self.env["input"]["new_caps_lock"] self.env["input"]["new_scroll_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state(2) self.env["input"]["old_scroll_lock"] = self.env["input"]["new_scroll_lock"] self.lastDeepestInput = [] self.lastEvent = None self.env["input"]["shortcut_repeat"] = 1 self.lastInputTime = time.time() def shutdown(self): self.remove_all_devices() self.env["runtime"]["SettingsManager"].shutdown_driver("InputDriver") def get_input_event(self): event = None try: event = self.env["runtime"]["InputDriver"].get_input_event() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager get_input_event: Error getting input event: " + str(e), debug.DebugLevel.ERROR, ) return event def set_execute_device_grab(self, newExecuteDeviceGrab=True): self.executeDeviceGrab = newExecuteDeviceGrab def handle_device_grab(self, force=False): if force: self.set_execute_device_grab() if not self.executeDeviceGrab: return if self.env["input"]["event_buffer"] != []: return if not self.no_key_pressed(): return if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): self.executeDeviceGrab = False return # Add maximum retries to prevent infinite loops max_retries = 5 retry_count = 0 grab_timeout = 3 # Timeout in seconds start_time = time.time() if self.env["runtime"]["ScreenManager"].get_curr_screen_ignored(): while not self.ungrab_all_devices(): retry_count += 1 if ( retry_count >= max_retries or (time.time() - start_time) > grab_timeout ): self.env["runtime"]["DebugManager"].write_debug_out( "Failed to ungrab devices after multiple attempts", debug.DebugLevel.ERROR, ) # Force a release of devices if possible through # alternative means try: self.env["runtime"]["InputDriver"].force_ungrab() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager handle_device_grab: Error forcing ungrab: " + str(e), debug.DebugLevel.ERROR, ) break time.sleep(0.25) self.env["runtime"]["DebugManager"].write_debug_out( f"retry ungrab_all_devices {retry_count}/{max_retries}", debug.DebugLevel.WARNING, ) else: while not self.grab_all_devices(): retry_count += 1 if ( retry_count >= max_retries or (time.time() - start_time) > grab_timeout ): self.env["runtime"]["DebugManager"].write_debug_out( "Failed to grab devices after multiple attempts", debug.DebugLevel.ERROR, ) # Continue without grabbing input - limited functionality # but not locked break time.sleep(0.25) self.env["runtime"]["DebugManager"].write_debug_out( f"retry grab_all_devices {retry_count}/{max_retries}", debug.DebugLevel.WARNING, ) self.executeDeviceGrab = False def send_keys(self, keyMacro): for e in keyMacro: key = "" value = 0 if len(e) != 2: continue if isinstance(e[0], int) and isinstance(e[1], str): key = e[1].upper() value = e[0] elif isinstance(e[1], int) and isinstance(e[0], str): key = e[0].upper() value = e[1] else: continue if key.upper() == "SLEEP": time.sleep(value) else: self.env["runtime"]["InputDriver"].send_key(key, value) def get_last_event(self): return self.lastEvent def handle_input_event(self, event_data): if not event_data: return self.lastEvent = event_data # a hang apears.. try to fix if self.env["input"]["event_buffer"] == []: if self.env["input"]["curr_input"] != []: self.env["input"]["curr_input"] = [] self.env["input"]["shortcut_repeat"] = 1 self.env["input"]["prev_input"] = self.env["input"]["curr_input"].copy() if event_data["event_state"] == 0: if event_data["event_name"] in self.env["input"]["curr_input"]: self.env["input"]["curr_input"].remove(event_data["event_name"]) if len(self.env["input"]["curr_input"]) > 1: self.env["input"]["curr_input"] = sorted( self.env["input"]["curr_input"] ) elif len(self.env["input"]["curr_input"]) == 0: self.env["input"]["shortcut_repeat"] = 1 self.lastInputTime = time.time() elif event_data["event_state"] == 1: if not event_data["event_name"] in self.env["input"]["curr_input"]: self.env["input"]["curr_input"].append(event_data["event_name"]) if len(self.env["input"]["curr_input"]) > 1: self.env["input"]["curr_input"] = sorted( self.env["input"]["curr_input"] ) if len(self.lastDeepestInput) < len( self.env["input"]["curr_input"] ): self.set_last_deepest_input( self.env["input"]["curr_input"].copy() ) elif self.lastDeepestInput == self.env["input"]["curr_input"]: if time.time() - self.lastInputTime <= self.env["runtime"][ "SettingsManager" ].get_setting_as_float("keyboard", "double_tap_timeout"): self.env["input"]["shortcut_repeat"] += 1 else: self.env["input"]["shortcut_repeat"] = 1 self.handle_led_states(event_data) self.lastInputTime = time.time() elif event_data["event_state"] == 2: self.lastInputTime = time.time() self.env["input"]["old_num_lock"] = self.env["input"]["new_num_lock"] self.env["input"]["new_num_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state() self.env["input"]["old_caps_lock"] = self.env["input"]["new_caps_lock"] self.env["input"]["new_caps_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state(1) self.env["input"]["old_scroll_lock"] = self.env["input"]["new_scroll_lock"] self.env["input"]["new_scroll_lock"] = self.env["runtime"][ "InputDriver" ].get_led_state(2) self.env["runtime"]["DebugManager"].write_debug_out( "curr_input " + str(self.env["input"]["curr_input"]), debug.DebugLevel.INFO, ) if self.no_key_pressed(): self.env["input"]["prev_input"] = [] def handle_led_states(self, m_event): if self.curr_key_is_modifier(): return try: if m_event["event_name"] == "KEY_NUMLOCK": self.env["runtime"]["InputDriver"].toggle_led_state() elif m_event["event_name"] == "KEY_CAPSLOCK": self.env["runtime"]["InputDriver"].toggle_led_state(1) elif m_event["event_name"] == "KEY_SCROLLLOCK": self.env["runtime"]["InputDriver"].toggle_led_state(2) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager handle_led_states: Error toggling LED state: " + str(e), debug.DebugLevel.ERROR, ) def grab_all_devices(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): try: return self.env["runtime"]["InputDriver"].grab_all_devices() except Exception as e: return False return True def ungrab_all_devices(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): try: return self.env["runtime"]["InputDriver"].ungrab_all_devices() except Exception as e: return False return True def handle_plug_input_device(self, event_data): for deviceEntry in event_data: self.update_input_devices(deviceEntry["device"]) def update_input_devices(self, newDevice=None): try: self.env["runtime"]["InputDriver"].update_input_devices(newDevice) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager update_input_devices: Error updating input devices: " + str(e), debug.DebugLevel.ERROR, ) try: if self.env["runtime"]["ScreenManager"]: self.handle_device_grab(force=True) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager update_input_devices: Error handling device grab: " + str(e), debug.DebugLevel.ERROR, ) def remove_all_devices(self): try: self.env["runtime"]["InputDriver"].remove_all_devices() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputManager remove_all_devices: Error removing devices: " + str(e), debug.DebugLevel.ERROR, ) def convert_event_name(self, event_name): if not event_name: return "" if event_name == "": return "" event_name = event_name.upper() if event_name == "KEY_LEFTCTRL": event_name = "KEY_CTRL" elif event_name == "KEY_RIGHTCTRL": event_name = "KEY_CTRL" elif event_name == "KEY_LEFTSHIFT": event_name = "KEY_SHIFT" elif event_name == "KEY_RIGHTSHIFT": event_name = "KEY_SHIFT" elif event_name == "KEY_LEFTALT": event_name = "KEY_ALT" elif event_name == "KEY_RIGHTALT": event_name = "KEY_ALT" elif event_name == "KEY_LEFTMETA": event_name = "KEY_META" elif event_name == "KEY_RIGHTMETA": event_name = "KEY_META" if self.is_fenrir_key(event_name): event_name = "KEY_FENRIR" if self.is_script_key(event_name): event_name = "KEY_SCRIPT" return event_name def clear_event_buffer(self): try: self.env["runtime"]["InputDriver"].clear_event_buffer() except Exception as e: pass def set_last_deepest_input(self, currentDeepestInput): self.lastDeepestInput = currentDeepestInput def clear_last_deep_input(self): self.lastDeepestInput = [] def get_last_input_time(self): return self.lastInputTime def get_last_deepest_input(self): return self.lastDeepestInput def write_event_buffer(self): try: if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): self.env["runtime"]["InputDriver"].write_event_buffer() self.clear_event_buffer() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Error while write_u_input", debug.DebugLevel.ERROR ) self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) def no_key_pressed(self): return self.env["input"]["curr_input"] == [] def is_key_press(self): return (self.env["input"]["prev_input"] == []) and ( self.env["input"]["curr_input"] != [] ) def get_prev_deepest_shortcut(self): shortcut = [] shortcut.append(self.env["input"]["shortcut_repeat"]) shortcut.append(self.get_last_deepest_input()) return str(shortcut) def get_prev_shortcut(self): shortcut = [] shortcut.append(self.env["input"]["shortcut_repeat"]) shortcut.append(self.env["input"]["prev_input"]) return str(shortcut) def get_curr_shortcut(self, inputSequence=None): shortcut = [] shortcut.append(self.env["input"]["shortcut_repeat"]) numpad_keys = [ "KEY_KP0", "KEY_KP1", "KEY_KP2", "KEY_KP3", "KEY_KP4", "KEY_KP5", "KEY_KP6", "KEY_KP7", "KEY_KP8", "KEY_KP9", "KEY_KPDOT", "KEY_KPPLUS", "KEY_KPMINUS", "KEY_KPASTERISK", "KEY_KPSLASH", "KEY_KPENTER", "KEY_KPEQUAL", ] if inputSequence: # Check if any key in the sequence is a numpad key and numlock is ON # If numlock is ON and any key in the sequence is a numpad key, # return an empty shortcut if not self.env["runtime"][ "CursorManager" ].should_process_numpad_commands(): for key in inputSequence: if key in numpad_keys: # Return an empty/invalid shortcut that won't match any # command return "[]" shortcut.append(inputSequence) else: # Same check for current input if not self.env["runtime"][ "CursorManager" ].should_process_numpad_commands(): for key in self.env["input"]["curr_input"]: if key in numpad_keys: # Return an empty/invalid shortcut that won't match any # command return "[]" shortcut.append(self.env["input"]["curr_input"]) if len(self.env["input"]["prev_input"]) < len( self.env["input"]["curr_input"] ): if self.env["input"][ "shortcut_repeat" ] > 1 and not self.shortcut_exists(str(shortcut)): shortcut = [] self.env["input"]["shortcut_repeat"] = 1 shortcut.append(self.env["input"]["shortcut_repeat"]) shortcut.append(self.env["input"]["curr_input"]) self.env["runtime"]["DebugManager"].write_debug_out( "curr_shortcut " + str(shortcut), debug.DebugLevel.INFO ) return str(shortcut) def curr_key_is_modifier(self): if len(self.get_last_deepest_input()) != 1: return False return (self.env["input"]["curr_input"][0] == "KEY_FENRIR") or ( self.env["input"]["curr_input"][0] == "KEY_SCRIPT" ) def is_fenrir_key(self, event_name): return event_name in self.env["input"]["fenrir_key"] def is_script_key(self, event_name): return event_name in self.env["input"]["script_key"] def get_command_for_shortcut(self, shortcut): if not self.shortcut_exists(shortcut): return "" return self.env["bindings"][shortcut] def key_echo(self, event_data=None): if not event_data: event_data = self.get_last_event() if not event_data: return key_name = "" if event_data["event_state"] == 1: key_name = event_data["event_name"].lower() if key_name.startswith("key_"): key_name = key_name[4:] self.env["runtime"]["OutputManager"].present_text( _(key_name), interrupt=True ) def shortcut_exists(self, shortcut): return shortcut in self.env["bindings"] def load_shortcuts( self, kb_config_path=fenrir_path + "/../../config/keyboard/desktop.conf", ): kb_config = open(kb_config_path, "r") while True: invalid = False line = kb_config.readline() if not line: break line = line.replace("\n", "") if line.replace(" ", "") == "": continue if line.replace(" ", "").startswith("#"): continue if line.count("=") != 1: continue sep_line = line.split("=") command_name = sep_line[1].upper() sep_line[0] = sep_line[0].replace(" ", "") sep_line[0] = sep_line[0].replace("'", "") sep_line[0] = sep_line[0].replace('"', "") keys = sep_line[0].split(",") shortcut_keys = [] shortcut_repeat = 1 shortcut = [] for key in keys: try: shortcut_repeat = int(key) except Exception as e: if not self.is_valid_key(key.upper()): self.env["runtime"]["DebugManager"].write_debug_out( "invalid key : " + key.upper() + " command:" + command_name, debug.DebugLevel.WARNING, ) invalid = True break shortcut_keys.append(key.upper()) if invalid: continue shortcut.append(shortcut_repeat) shortcut.append(sorted(shortcut_keys)) if len(shortcut_keys) != 1 and "KEY_FENRIR" not in shortcut_keys: self.env["runtime"]["DebugManager"].write_debug_out( "invalid shortcut (missing KEY_FENRIR): " + str(shortcut) + " command:" + command_name, debug.DebugLevel.ERROR, ) continue self.env["runtime"]["DebugManager"].write_debug_out( "Shortcut: " + str(shortcut) + " command:" + command_name, debug.DebugLevel.INFO, on_any_level=True, ) self.env["bindings"][str(shortcut)] = command_name self.env["rawBindings"][str(shortcut)] = shortcut kb_config.close() # fix bindings self.env["bindings"][ str([1, ["KEY_F1", "KEY_FENRIR"]]) ] = "TOGGLE_TUTORIAL_MODE" def is_valid_key(self, key): return key in inputData.key_names def set_last_detected_devices(self, devices): self.lastDetectedDevices = devices def get_last_detected_devices(self): return self.lastDetectedDevices def reload_shortcuts(self): """Reload keyboard shortcuts from current layout setting""" # Clear existing bindings self.env["bindings"].clear() self.env["rawBindings"].clear() # Get current layout path layout_setting = self.env["runtime"]["SettingsManager"].get_setting( "keyboard", "keyboard_layout" ) # Resolve full path if needed if not os.path.exists(layout_setting): settings_root = "/etc/fenrirscreenreader/" if not os.path.exists(settings_root): import fenrirscreenreader fenrir_path = os.path.dirname(fenrirscreenreader.__file__) settings_root = fenrir_path + "/../../config/" layout_path = ( settings_root + "keyboard/" + layout_setting + ".conf" ) if not os.path.exists(layout_path): # Fallback to default if layout not found layout_path = settings_root + "keyboard/desktop.conf" else: layout_path = layout_setting # Reload shortcuts self.load_shortcuts(layout_path) self.env["runtime"]["DebugManager"].write_debug_out( "Reloaded shortcuts from: " + layout_path, debug.DebugLevel.INFO, on_any_level=True, ) fenrir/src/fenrirscreenreader/core/memoryManager.py000066400000000000000000000132751513650123000231130ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug class MemoryManager: def __init__(self): self.listStorage = {} def initialize(self, environment): self.env = environment def shutdown(self): pass def list_storage_valid(self, name, checkIndex=False): try: if checkIndex: index = self.listStorage[name]["index"] if index == -1: return self.listStorage[name]["list"] == [] return self.listStorage[name]["list"][index] is not None else: return isinstance(self.listStorage[name]["list"], list) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "list_storage_valid " + str(e), debug.DebugLevel.ERROR ) return False def add_value_to_first_index(self, name, value): if not self.list_storage_valid(name): return if self.listStorage[name]["maxLength"] is None: # Fallback: if maxLength is still None, apply default limit of 1000 self.listStorage[name]["list"] = [value] + self.listStorage[name][ "list" ][:999] else: self.listStorage[name]["list"] = [value] + self.listStorage[name][ "list" ][: self.listStorage[name]["maxLength"] - 1] self.listStorage[name]["index"] = 0 def add_index_list(self, name, maxLength=1000, currList=[], curr_index=-1): if len(currList) != 0 and (curr_index == -1): curr_index = 0 self.listStorage[name] = { "list": currList, "index": curr_index, "maxLength": maxLength, } def is_last_index(self, name): if not self.list_storage_valid(name): return False return ( self.listStorage[name]["index"] == len(self.listStorage[name]["list"]) - 1 ) def is_first_index(self, name): if not self.list_storage_valid(name): return False return self.listStorage[name]["index"] == 0 def get_next_index(self, name): if not self.list_storage_valid(name): return False if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return False self.listStorage[name]["index"] += 1 if ( self.listStorage[name]["index"] > len(self.listStorage[name]["list"]) - 1 ): self.listStorage[name]["index"] = 0 return True def set_pref_index(self, name): if not self.list_storage_valid(name): return False if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return False self.listStorage[name]["index"] -= 1 if self.listStorage[name]["index"] < 0: self.listStorage[name]["index"] = ( len(self.listStorage[name]["list"]) - 1 ) return True def set_first_index(self, name): if not self.list_storage_valid(name): return False if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return False self.listStorage[name]["index"] = 0 return True def get_index_list_len(self, name): if not self.list_storage_valid(name): return 0 if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return 0 return len(self.listStorage[name]) def set_last_index(self, name): if not self.list_storage_valid(name): return False if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return False self.listStorage[name]["index"] = ( len(self.listStorage[name]["list"]) - 1 ) return True def clear_current_index_list(self, name): if not self.list_storage_valid(name): return False self.listStorage[name]["list"] = [] self.listStorage[name]["index"] = -1 def get_current_index(self, name): if not self.list_storage_valid(name): return False if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return False try: return self.listStorage[name]["index"] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "MemoryManager get_current_index: Error accessing index for " + name + ": " + str(e), debug.DebugLevel.ERROR, ) return -1 def is_index_list_empty(self, name): if not self.list_storage_valid(name): return False return len(self.listStorage[name]["list"]) == 0 def get_index_list_element(self, name): if not self.list_storage_valid(name): return None if self.is_index_list_empty(name): self.listStorage[name]["index"] = -1 return None curr_index = self.get_current_index(name) if curr_index == -1: return None try: return self.listStorage[name]["list"][curr_index] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "MemoryManager get_index_list_element: Error accessing element for " + name + ": " + str(e), debug.DebugLevel.ERROR, ) return None fenrir/src/fenrirscreenreader/core/outputData.py000066400000000000000000000004541513650123000224350ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug output_data = { "nextFlush": time.time(), "messageText": "", "messageOffset": None, "cursorOffset": None, } fenrir/src/fenrirscreenreader/core/outputManager.py000066400000000000000000000412051513650123000231350ustar00rootroot00000000000000#!/bin/python # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re import string import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import line_utils class OutputManager: def __init__(self): self.last_echo = "" def initialize(self, environment): self.env = environment self.env["runtime"]["SettingsManager"].load_driver( self.env["runtime"]["SettingsManager"].get_setting( "speech", "driver" ), "SpeechDriver", ) self.env["runtime"]["SettingsManager"].load_driver( self.env["runtime"]["SettingsManager"].get_setting( "sound", "driver" ), "SoundDriver", ) def shutdown(self): self.env["runtime"]["SettingsManager"].shutdown_driver("SoundDriver") self.env["runtime"]["SettingsManager"].shutdown_driver("SpeechDriver") def present_text( self, text, interrupt=True, sound_icon="", ignore_punctuation=False, announce_capital=False, flush=True, ): if text == "": return if ( self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "read_numbers_as_digits" ) and len(text.strip()) > 1 ): text = re.sub(r"(\d)", r"\1 ", text).rstrip() self.env["runtime"]["DebugManager"].write_debug_out( "present_text:\nsoundIcon:'" + sound_icon + "'\nText:\n" + text, debug.DebugLevel.INFO, ) if self.play_sound_icon(sound_icon, interrupt): self.env["runtime"]["DebugManager"].write_debug_out( "sound_icon found", debug.DebugLevel.INFO ) return if (len(text) > 1) and (text.strip(string.whitespace) == ""): return is_capital = self._should_announce_capital(text, announce_capital) use_pitch_for_capital = False if is_capital: indicator = self.env["runtime"]["SettingsManager"].get_setting( "speech", "capital_indicator" ).lower() if indicator == "none": pass # No indication elif indicator == "beep": # Play beep with interrupt=True to fix stacking self.play_sound_icon("capital", True) elif indicator == "pitch": use_pitch_for_capital = True elif indicator == "both": self.play_sound_icon("capital", True) use_pitch_for_capital = True else: # Default to pitch for unknown values use_pitch_for_capital = True self.last_echo = text self.speak_text( text, interrupt, ignore_punctuation, use_pitch_for_capital, flush ) def _should_announce_capital(self, text, announce_capital): if not announce_capital or not text: return False if len(text) == 1: return text.isupper() if any(char.isspace() for char in text): return False if not any(char.isalpha() for char in text): return False return text.isupper() def get_last_echo(self): return self.last_echo def process_mid_word_punctuation(self, text): """ Process punctuation that appears mid-word to ensure proper pronunciation. Specifically handles dots between word characters (e.g., "settings.conf" -> "settings dot conf") and dots at word beginnings (e.g., ".local" -> "dot local") while preserving sentence-ending periods and other punctuation behavior. """ if not text: return text # Handle dots at the beginning of words (like .local, .bashrc, .config) # Look for non-word character (or start of string), dot, then word characters text = re.sub(r'(? 20000: self.env["runtime"]["DebugManager"].write_debug_out( "OutputManager.play_frequence::Filefrequence is out of range:" + str(frequence), debug.DebugLevel.INFO, ) return False if self.env["runtime"]["SoundDriver"] is None: self.env["runtime"]["DebugManager"].write_debug_out( "No SoundDriver in OutputManager.play_frequence: SoundDriver not loaded", debug.DebugLevel.ERROR, ) return False try: self.env["runtime"]["SoundDriver"].set_volume( self.env["runtime"]["SettingsManager"].get_setting_as_float( "sound", "volume" ) ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "OutputManager.play_sound_icon::set_volume: " + str(e), debug.DebugLevel.ERROR, ) adjust_volume = 0.0 try: adjust_volume = 1.0 - (frequence / 20000) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "OutputManager play_frequence: Error calculating adjust volume: " + str(e), debug.DebugLevel.ERROR, ) if adjust_volume > 9.0: adjust_volume = 9.0 try: self.env["runtime"]["SoundDriver"].play_frequence( frequence, duration, adjust_volume, interrupt ) return True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "OutputManager.play_sound_icon::play_sound_file: " + str(e), debug.DebugLevel.ERROR, ) return False return False def temp_disable_speech(self): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "speech", "enabled" ): self.present_text( _("speech temporary disabled"), sound_icon="SpeechOff", interrupt=True, ) self.env["commandBuffer"]["enableSpeechOnKeypress"] = True # Also enable prompt watching for automatic speech restoration if "silenceUntilPrompt" not in self.env["commandBuffer"]: self.env["commandBuffer"]["silenceUntilPrompt"] = False self.env["commandBuffer"]["silenceUntilPrompt"] = True self.env["runtime"]["SettingsManager"].set_setting( "speech", "enabled", str( not self.env["runtime"][ "SettingsManager" ].get_setting_as_bool("speech", "enabled") ), ) self.interrupt_output() def announce_active_cursor(self, interrupt_p=False): if self.env["runtime"]["CursorManager"].is_review_mode(): self.present_text(" review cursor ", interrupt=interrupt_p) else: self.present_text(" text cursor ", interrupt=interrupt_p) def reset_SpeechDriver(self): """Reset speech driver to clean state - called by settings_manager""" if ( "SpeechDriver" in self.env["runtime"] and self.env["runtime"]["SpeechDriver"] ): try: self.env["runtime"]["SpeechDriver"].reset() self.env["runtime"]["DebugManager"].write_debug_out( "Speech driver reset successfully", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"reset_SpeechDriver error: {e}", debug.DebugLevel.ERROR ) fenrir/src/fenrirscreenreader/core/processManager.py000066400000000000000000000160661513650123000232620ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import signal import time from multiprocessing import Process from threading import Thread from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType # Standalone functions for multiprocessing (cannot be instance methods) def _heart_beat_timer(running): """ Standalone heartbeat timer function for multiprocessing. Returns current timestamp after a short sleep. """ try: time.sleep(0.5) except Exception as e: print(f"ProcessManager _heart_beat_timer: Error during sleep: {e}") return time.time() def _custom_event_worker_process( running, event_queue, function, pargs=None, run_once=False ): """ Standalone worker function for custom events in multiprocessing. Cannot use instance methods due to pickle limitations with self.env. """ if not callable(function): return while running.value: try: if pargs: function(running, event_queue, pargs) else: function(running, event_queue) except Exception as e: # Cannot use DebugManager in multiprocess context print( f"ProcessManager:_custom_event_worker_process:function(" f"{function}):{e}" ) if run_once: break def _simple_event_worker_process( running, event_queue, event, function, pargs=None, run_once=False ): """ Standalone worker function for simple events in multiprocessing. Cannot use instance methods due to pickle limitations with self.env. """ if not isinstance(event, FenrirEventType): return if not callable(function): return while running.value: data = None try: if pargs: data = function(running, pargs) else: data = function(running) except Exception as e: # Cannot use DebugManager in multiprocess context print( f"ProcessManager:_simple_event_worker_process:function(" f"{function}):{e}" ) try: event_queue.put({"Type": event, "data": data}, timeout=0.1) except Exception as e: print(f"ProcessManager: Failed to put event to queue: {e}") if run_once: break class ProcessManager: def __init__(self): self._Processes = [] self._Threads = [] def initialize(self, environment): self.env = environment self.running = self.env["runtime"]["EventManager"].get_running() self.add_simple_event_thread( FenrirEventType.heart_beat, _heart_beat_timer, multiprocess=True, ) def shutdown(self): self.terminate_all_processes() def terminate_all_processes(self): for proc in self._Processes: # try: # proc.terminate() # except KeyboardInterrupt: # pass # except: # pass proc.join(timeout=5.0) # Timeout to prevent hanging shutdown for t in self._Threads: t.join(timeout=5.0) # Timeout to prevent hanging shutdown def heart_beat_timer(self, active): try: time.sleep(0.5) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ProcessManager heart_beat_timer: Error during sleep: " + str(e), debug.DebugLevel.ERROR, ) return time.time() def add_custom_event_thread( self, function, pargs=None, multiprocess=False, run_once=False ): event_queue = self.env["runtime"]["EventManager"].get_event_queue() original_sigint_handler = signal.signal(signal.SIGINT, signal.SIG_IGN) if multiprocess: t = Process( target=_custom_event_worker_process, args=(self.running, event_queue, function, pargs, run_once), ) self._Processes.append(t) else: # use thread instead of process t = Thread( target=self.custom_event_worker_thread, args=(event_queue, function, pargs, run_once), ) self._Threads.append(t) t.start() signal.signal(signal.SIGINT, original_sigint_handler) def add_simple_event_thread( self, event, function, pargs=None, multiprocess=False, run_once=False ): original_sigint_handler = signal.signal(signal.SIGINT, signal.SIG_IGN) if multiprocess: # Get event queue reference before creating process event_queue = self.env["runtime"]["EventManager"].get_event_queue() t = Process( target=_simple_event_worker_process, args=(self.running, event_queue, event, function, pargs, run_once), ) self._Processes.append(t) else: t = Thread( target=self.simple_event_worker_thread, args=(event, function, pargs, run_once), ) self._Threads.append(t) t.start() signal.signal(signal.SIGINT, original_sigint_handler) def custom_event_worker_thread( self, event_queue, function, pargs=None, run_once=False ): # if not isinstance(event_queue, Queue): # return if not callable(function): return while self.running.value: try: if pargs: function(self.running, event_queue, pargs) else: function(self.running, event_queue) except Exception as e: # Cannot use DebugManager in multiprocess context due to # pickle limitations with file handles print( "ProcessManager:custom_event_worker_thread:function(" + str(function) + "):" + str(e) ) if run_once: break def simple_event_worker_thread( self, event, function, pargs=None, run_once=False ): if not isinstance(event, FenrirEventType): return if not callable(function): return while self.running.value: data = None try: if pargs: data = function(self.running, pargs) else: data = function(self.running) except Exception as e: # Cannot use DebugManager in multiprocess context due to # pickle limitations with file handles print( "ProcessManager:simple_event_worker_thread:function(" + str(function) + "):" + str(e) ) self.env["runtime"]["EventManager"].put_to_event_queue(event, data) if run_once: break fenrir/src/fenrirscreenreader/core/punctuationData.py000066400000000000000000000007571513650123000234540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from collections import OrderedDict from fenrirscreenreader.core import debug punctuation_data = { "LEVELDICT": { "none": "", "some": "#-$~+*-/\\@", "most": ".,:-$~ +*-/\\@!#%^&*()[]}{<>;", "all": string.punctuation + " §", }, "PUNCTDICT": {}, "CUSTOMDICT": OrderedDict(), "EMOTICONDICT": OrderedDict(), } fenrir/src/fenrirscreenreader/core/punctuationManager.py000066400000000000000000000212021513650123000241410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import inspect import os import re import string from fenrirscreenreader.core import debug currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class PunctuationManager: def __init__(self): pass def initialize(self, environment): self.env = environment self.allPunctNone = dict.fromkeys( map(ord, string.punctuation + "§ "), " " ) # replace with None: # dot, comma, grave, apostrophe # for char in [ord('`'),ord("'")]: # self.allPunctNone[char] = None # dont restore the following (for announce correct pause) for char in [ ord("'"), ord("."), ord(","), ord(";"), ord(":"), ord("?"), ord("!"), ord("-"), ]: self.allPunctNone[char] = chr(char) def shutdown(self): pass def remove_unused(self, text, curr_level=""): # dont translate dot and comma because they create a pause curr_all_punct_none = self.allPunctNone.copy() # Check if we should replace undefined punctuation with spaces replace_with_space = self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "replace_undefined_punctuation_with_space" ) # If the setting is disabled, use the old behavior (remove completely) if not replace_with_space: # Create a map that removes undefined punctuation instead of replacing with spaces curr_all_punct_none = dict.fromkeys( map(ord, string.punctuation + "§ "), None ) # Restore the pause-important characters for char in [ ord("'"), ord("."), ord(","), ord(";"), ord(":"), ord("?"), ord("!"), ord("-"), ]: curr_all_punct_none[char] = chr(char) # Remove characters that are defined in the current punctuation level for char in curr_level: try: del curr_all_punct_none[ord(char)] except Exception as e: pass return text.translate(curr_all_punct_none) def use_custom_dict(self, text, customDict, seperator=""): result_text = str(text) if customDict: for key, item in customDict.items(): try: regex_lbl = "REGEX;" if key.upper().startswith(regex_lbl) and ( len(key) > len(regex_lbl) ): result_text = re.sub( str(key[len(regex_lbl) :]), seperator + str(item) + seperator, result_text, ) else: result_text = result_text.replace( str(key), seperator + str(item) + seperator ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "use_custom_dict replace:'" + key + "' with '" + item + "' failed:" + str(e), debug.DebugLevel.ERROR, on_any_level=False, ) return result_text def use_punctuation_dict(self, text, punctuationDict, punctuation): result_text = str(text) if punctuationDict and punctuation and punctuation != "": if " " in punctuation: result_text = result_text.replace( " ", " " + punctuationDict[" "] + " " ) for key, item in punctuationDict.items(): if ( punctuation != "" and key in punctuation ) and key not in " ": if ( self.env["runtime"]["SettingsManager"].get_setting( "general", "respect_punctuation_pause" ) and len(key) == 1 and key in "',.;:?!" ): result_text = result_text.replace( str(key), " " + str(item) + str(key) + " " ) else: result_text = result_text.replace( str(key), " " + str(item) + " " ) return result_text def is_puctuation(self, char): return char in self.env["punctuation"]["PUNCTDICT"] def proceed_punctuation(self, text, ignore_punctuation=False): if ignore_punctuation: return text result_text = text result_text = self.use_custom_dict( result_text, self.env["punctuation"]["CUSTOMDICT"] ) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "general", "emoticons" ): result_text = self.use_custom_dict( result_text, self.env["punctuation"]["EMOTICONDICT"], " " ) curr_punct_level = "" if ( self.env["runtime"]["SettingsManager"] .get_setting("general", "punctuation_level") .lower() in self.env["punctuation"]["LEVELDICT"] ): curr_punct_level = self.env["punctuation"]["LEVELDICT"][ self.env["runtime"]["SettingsManager"] .get_setting("general", "punctuation_level") .lower() ] else: curr_punct_level = string.punctuation + " §" result_text = self.use_punctuation_dict( result_text, self.env["punctuation"]["PUNCTDICT"], curr_punct_level ) result_text = self.remove_unused(result_text, curr_punct_level) return result_text def cycle_punctuation(self): punct_list = list(self.env["punctuation"]["LEVELDICT"].keys()) try: curr_index = punct_list.index( self.env["runtime"]["SettingsManager"] .get_setting("general", "punctuation_level") .lower() ) # curr punctuation except Exception as e: return False curr_index += 1 if curr_index >= len(punct_list): curr_index = 0 curr_level = punct_list[curr_index] self.env["runtime"]["SettingsManager"].set_setting( "general", "punctuation_level", curr_level.lower() ) return True def load_dicts( self, dictConfigPath=fenrir_path + "/../../config/punctuation/default.conf", ): dict_config = open(dictConfigPath, "r") curr_dict_name = "" while True: line = dict_config.readline() if not line: break line = line.replace("\n", "") if line.replace(" ", "") == "": continue if line.replace(" ", "").startswith("#"): if not line.replace(" ", "").startswith("#:===:"): continue if line.replace(" ", "").upper().startswith("[") and line.replace( " ", "" ).upper().endswith("DICT]"): curr_dict_name = line[ line.find("[") + 1 : line.upper().find("DICT]") + 4 ].upper() else: if curr_dict_name == "": continue if ":===:" not in line: continue sep_line = line.split(":===:") if len(sep_line) == 1: sep_line.append("") elif len(sep_line) < 1: continue elif len(sep_line) > 2: sep_line[1] = ":===:" self.env["punctuation"][curr_dict_name][sep_line[0]] = ( sep_line[1] ) self.env["runtime"]["DebugManager"].write_debug_out( "Punctuation: " + curr_dict_name + "." + str(sep_line[0]) + " :" + sep_line[1], debug.DebugLevel.INFO, on_any_level=True, ) dict_config.close() fenrir/src/fenrirscreenreader/core/quickMenuManager.py000066400000000000000000000566621513650123000235530ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.core.settingsData import settings_data import subprocess import time class SpeechHelperMixin: """Helper methods for querying speech-dispatcher modules and voices. Provides caching and query functionality for speech-dispatcher module and voice enumeration, reusing proven logic from voice_browser.py. """ def __init__(self): self._modules_cache = None self._voices_cache = {} # {module_name: [voice_list]} self._cache_timestamp = 0 self._cache_timeout = 300 # 5 minutes def get_speechd_modules(self): """Get available speech-dispatcher modules (cached). Returns: list: Available module names (e.g., ['espeak-ng', 'festival']) """ now = time.time() # Return cached if valid if (self._modules_cache and (now - self._cache_timestamp) < self._cache_timeout): return self._modules_cache # Query spd-say try: result = subprocess.run( ["spd-say", "-O"], capture_output=True, text=True, timeout=8 ) if result.returncode == 0: lines = result.stdout.strip().split("\n") self._modules_cache = [ line.strip() for line in lines[1:] if line.strip() and line.strip().lower() != "dummy" ] self._cache_timestamp = now return self._modules_cache except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( (f"QuickMenuManager get_speechd_modules: " f"Error querying modules: {e}"), debug.DebugLevel.ERROR ) return [] def get_module_voices(self, module): """Get voices for a specific module (cached per-module). Args: module (str): Module name (e.g., 'espeak-ng') Returns: list: Available voice names for this module """ # Return cached if available if module in self._voices_cache: return self._voices_cache[module] # Query spd-say try: result = subprocess.run( ["spd-say", "-o", module, "-L"], capture_output=True, text=True, timeout=8 ) if result.returncode == 0: lines = result.stdout.strip().split("\n") voices = [] for line in lines[1:]: if not line.strip(): continue if module.lower() == "espeak-ng": voice = self._process_espeak_voice(line) if voice: voices.append(voice) elif module.lower() == "voxin": # For Voxin, store voice name with language voice_data = self._process_voxin_voice(line) if voice_data: voices.append(voice_data) else: # For other modules, extract first field (voice name) parts = line.strip().split() if parts: voices.append(parts[0]) self._voices_cache[module] = voices return voices except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( (f"QuickMenuManager get_module_voices: " f"Error querying voices for {module}: {e}"), debug.DebugLevel.ERROR ) return [] def _process_espeak_voice(self, voice_line): """Process espeak-ng voice format into usable voice name. Args: voice_line (str): Raw line from spd-say -L output Returns: str: Processed voice name (e.g., 'en-us' or 'en-us+f3') """ parts = [p for p in voice_line.split() if p] if len(parts) < 2: return None lang_code = parts[-2].lower() variant = parts[-1].lower() return (f"{lang_code}+{variant}" if variant and variant != "none" else lang_code) def _process_voxin_voice(self, voice_line): """Process Voxin voice format with language information. Args: voice_line (str): Raw line from spd-say -o voxin -L output Format: NAME LANGUAGE VARIANT Returns: str: Voice name with language encoded (e.g., 'daniel-embedded-high|en-GB') """ parts = [p for p in voice_line.split() if p] if len(parts) < 2: return None voice_name = parts[0] language = parts[1] # Encode language with voice for later extraction return f"{voice_name}|{language}" def _select_default_voice(self, voices): """Select a sensible default voice from list, preferring user's language. Args: voices (list): List of available voice names Returns: str: Selected default voice (matches user language if possible) """ if not voices: return "" # Get current voice to preserve language preference current_voice = self.env["runtime"]["SettingsManager"].get_setting( "speech", "voice" ) # Get configured language from settings configured_lang = self.env["runtime"]["SettingsManager"].get_setting( "speech", "language" ) # Extract language code from current voice if available current_lang = None if current_voice: # Extract language code (e.g., 'en-gb' from 'en-gb+male') current_lang = current_voice.split('+')[0].lower() # Build preference list: current language, configured language, English preferences = [] if current_lang: preferences.append(current_lang) if configured_lang: preferences.append(configured_lang.lower()) preferences.extend(['en-gb', 'en-us', 'en']) # Remove duplicates while preserving order seen = set() preferences = [x for x in preferences if not (x in seen or seen.add(x))] # Try exact matches for preferred languages for pref in preferences: for voice in voices: # Extract language if voice is in "name|lang" format voice_to_check = voice if "|" in voice: _, voice_lang = voice.split("|", 1) voice_to_check = voice_lang if voice_to_check.lower() == pref: return voice # Try voices starting with preferred language codes for pref in preferences: for voice in voices: # Extract language if voice is in "name|lang" format voice_to_check = voice if "|" in voice: _, voice_lang = voice.split("|", 1) voice_to_check = voice_lang if voice_to_check.lower().startswith(pref): return voice # Fall back to first available voice return voices[0] def invalidate_speech_cache(self): """Clear cached module and voice data.""" self._modules_cache = None self._voices_cache = {} self._cache_timestamp = 0 class QuickMenuManager(SpeechHelperMixin): def __init__(self): SpeechHelperMixin.__init__(self) self.position = 0 self.quickMenu = [] self.settings = settings_data def initialize(self, environment): self.env = environment # Load base menu from config menu_string = self.env["runtime"]["SettingsManager"].get_setting( "menu", "quick_menu" ) # Dynamically add speech-dispatcher specific items if self._is_speechd_driver_active(): menu_string = self._add_speechd_menu_items(menu_string) self.load_menu(menu_string) def shutdown(self): pass def _is_speechd_driver_active(self): """Check if speechdDriver is currently active. Returns: bool: True if speech driver is speechdDriver """ try: driver = self.env["runtime"]["SettingsManager"].get_setting( "speech", "driver" ) return driver == "speechdDriver" except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( (f"QuickMenuManager _is_speechd_driver_active: " f"Error checking driver: {e}"), debug.DebugLevel.ERROR ) return False def _add_speechd_menu_items(self, menu_string): """Add speech-dispatcher module and voice to quick menu. Args: menu_string (str): Existing menu string from config Returns: str: Updated menu string with module and voice added """ if not menu_string: return "speech#module;speech#voice" # Check if already present (user manually added) if "speech#module" in menu_string or "speech#voice" in menu_string: return menu_string # Add module and voice after existing items return f"{menu_string};speech#module;speech#voice" def load_menu(self, menuString): self.position = 0 self.quickMenu = [] if menuString == "": return entrys = menuString.split(";") for e in entrys: entry = e.split("#") if len(entry) != 2: continue try: t = self.settings[entry[0]][entry[1]] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "QuickMenuManager load_menu: Setting not found " + str(entry) + ": " + str(e), debug.DebugLevel.ERROR, ) print(entry[0], entry[1], "not found") continue self.quickMenu.append({"section": entry[0], "setting": entry[1]}) def next_entry(self): if len(self.quickMenu) == 0: return False self.position += 1 if self.position >= len(self.quickMenu): self.position = 0 return True def prev_entry(self): if len(self.quickMenu) == 0: return False self.position -= 1 if self.position < 0: self.position = len(self.quickMenu) - 1 return True def next_value(self): if len(self.quickMenu) == 0: return False section = self.quickMenu[self.position]["section"] setting = self.quickMenu[self.position]["setting"] value_string = "" try: value_string = self.env["runtime"]["SettingsManager"].get_setting( section, setting ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "QuickMenuManager next_value: Error getting setting value: " + str(e), debug.DebugLevel.ERROR, ) return False try: if isinstance(self.settings[section][setting], str): # Check for special string cycling cases if section == "speech" and setting == "module": return self.cycle_speech_module("next") elif section == "speech" and setting == "voice": return self.cycle_speech_voice("next") else: # Generic strings not supported for cycling value = str(value_string) return False elif isinstance(self.settings[section][setting], bool): if value_string not in ["True", "False"]: return False value = not value self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value) ) elif isinstance(self.settings[section][setting], int): value = int(value_string) value += 1 self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value) ) elif isinstance(self.settings[section][setting], float): value = float(value_string) value += 0.05 if value > 1.0: value = 1.0 self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value)[:4] ) except Exception as e: return False return True def prev_value(self): if len(self.quickMenu) == 0: return False section = self.quickMenu[self.position]["section"] setting = self.quickMenu[self.position]["setting"] value_string = "" try: value_string = self.env["runtime"]["SettingsManager"].get_setting( section, setting ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "QuickMenuManager prev_value: Error getting setting value: " + str(e), debug.DebugLevel.ERROR, ) return False try: if isinstance(self.settings[section][setting], str): # Check for special string cycling cases if section == "speech" and setting == "module": return self.cycle_speech_module("prev") elif section == "speech" and setting == "voice": return self.cycle_speech_voice("prev") else: # Generic strings not supported for cycling value = str(value_string) return False elif isinstance(self.settings[section][setting], bool): if value_string not in ["True", "False"]: return False value = not value self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value) ) elif isinstance(self.settings[section][setting], int): value = int(value_string) value -= 1 if value < 0: value = 0 self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value) ) elif isinstance(self.settings[section][setting], float): value = float(value_string) value -= 0.05 if value < 0.0: value = 0.0 self.env["runtime"]["SettingsManager"].set_setting( section, setting, str(value)[:4] ) except Exception as e: return False return True def cycle_speech_module(self, direction): """Cycle to next/previous speech-dispatcher module. Args: direction (str): 'next' or 'prev' Returns: bool: True if successful, False otherwise """ try: # Get available modules modules = self.get_speechd_modules() if not modules: self.env["runtime"]["OutputManager"].present_text( "No modules available", interrupt=True ) return False # Get current module current_module = self.env["runtime"]["SettingsManager"].get_setting( "speech", "module" ) # Find current index try: current_index = (modules.index(current_module) if current_module else 0) except ValueError: current_index = 0 # Cycle to next/previous if direction == "next": new_index = (current_index + 1) % len(modules) else: # prev new_index = (current_index - 1) % len(modules) new_module = modules[new_index] # Update setting (runtime only) self.env["runtime"]["SettingsManager"].set_setting( "speech", "module", new_module ) # Select sensible default voice for new module voices = self.get_module_voices(new_module) if voices: default_voice = self._select_default_voice(voices) # Parse voice name and language for modules like Voxin voice_name = default_voice voice_lang = None if "|" in default_voice: voice_name, voice_lang = default_voice.split("|", 1) self.env["runtime"]["SettingsManager"].set_setting( "speech", "voice", voice_name ) # Apply voice to speech driver immediately if "SpeechDriver" in self.env["runtime"]: try: self.env["runtime"]["SpeechDriver"].set_module( new_module ) # Set language first if available if voice_lang: self.env["runtime"]["SpeechDriver"].set_language( voice_lang ) # Then set voice self.env["runtime"]["SpeechDriver"].set_voice( voice_name ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( (f"QuickMenuManager cycle_speech_module: " f"Error applying voice: {e}"), debug.DebugLevel.ERROR ) # Announce new module self.env["runtime"]["OutputManager"].present_text( new_module, interrupt=True ) return True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"QuickMenuManager cycle_speech_module: Error: {e}", debug.DebugLevel.ERROR ) return False def cycle_speech_voice(self, direction): """Cycle to next/previous voice for current module. Args: direction (str): 'next' or 'prev' Returns: bool: True if successful, False otherwise """ try: # Get current module current_module = self.env["runtime"]["SettingsManager"].get_setting( "speech", "module" ) if not current_module: self.env["runtime"]["OutputManager"].present_text( "No module selected", interrupt=True ) return False # Get available voices for this module voices = self.get_module_voices(current_module) if not voices: self.env["runtime"]["OutputManager"].present_text( f"No voices for module {current_module}", interrupt=True ) return False # Get current voice current_voice = self.env["runtime"]["SettingsManager"].get_setting( "speech", "voice" ) # Find current index (handle Voxin voice|language format) current_index = 0 if current_voice: try: # Try exact match first current_index = voices.index(current_voice) except ValueError: # For Voxin, compare just the voice name part for i, voice in enumerate(voices): voice_name = voice.split("|")[0] if "|" in voice else voice if voice_name == current_voice: current_index = i break # Cycle to next/previous if direction == "next": new_index = (current_index + 1) % len(voices) else: # prev new_index = (current_index - 1) % len(voices) new_voice = voices[new_index] # Parse voice name and language for modules like Voxin voice_name = new_voice voice_lang = None if "|" in new_voice: # Format: "voicename|language" (e.g., "daniel-embedded-high|en-GB") voice_name, voice_lang = new_voice.split("|", 1) # Update setting (runtime only) - store the voice name only self.env["runtime"]["SettingsManager"].set_setting( "speech", "voice", voice_name ) # Apply voice to speech driver immediately if "SpeechDriver" in self.env["runtime"]: try: # Set language first if available if voice_lang: self.env["runtime"]["SpeechDriver"].set_language( voice_lang ) # Then set voice self.env["runtime"]["SpeechDriver"].set_voice(voice_name) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( (f"QuickMenuManager cycle_speech_voice: " f"Error applying voice: {e}"), debug.DebugLevel.ERROR ) # Announce new voice (voice name only, not language) self.env["runtime"]["OutputManager"].present_text( voice_name, interrupt=True ) return True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"QuickMenuManager cycle_speech_voice: Error: {e}", debug.DebugLevel.ERROR ) return False def get_current_entry(self): if len(self.quickMenu) == 0: return "" try: return ( _(self.quickMenu[self.position]["section"]) + " " + _(self.quickMenu[self.position]["setting"]) ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "QuickMenuManager get_current_entry: Error formatting entry: " + str(e), debug.DebugLevel.ERROR, ) return _("setting invalid") def get_current_value(self): if len(self.quickMenu) == 0: return "" try: return self.env["runtime"]["SettingsManager"].get_setting( self.quickMenu[self.position]["section"], self.quickMenu[self.position]["setting"], ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "QuickMenuManager get_current_value: Error getting setting value: " + str(e), debug.DebugLevel.ERROR, ) return _("setting value invalid") fenrir/src/fenrirscreenreader/core/readAllManager.py000066400000000000000000000102071513650123000231370ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug import threading import time class ReadAllManager: """Manages continuous read-all functionality with speech completion callbacks.""" def __init__(self): self.active = False self.mode = None # 'line' or 'page' self.stop_requested = False self.env = None self.items_read = 0 self._lock = threading.Lock() def initialize(self, environment): self.env = environment def shutdown(self): self.stop_read_all() def start_read_all(self, mode): """Start continuous reading in line or page mode.""" with self._lock: if self.active: self.stop_read_all() self.active = True self.mode = mode self.stop_requested = False self.items_read = 0 self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Starting read-all mode '{mode}'", debug.DebugLevel.INFO ) # Send first navigation key self._send_navigation_key() def stop_read_all(self): """Stop continuous reading.""" with self._lock: if not self.active: return self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Stopping read-all after {self.items_read} {self.mode}s", debug.DebugLevel.INFO ) self.active = False self.stop_requested = True self.mode = None # Cancel any pending speech try: self.env['runtime']['SpeechDriver'].cancel() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Error canceling speech: {e}", debug.DebugLevel.ERROR ) def is_active(self): """Check if read-all is currently active.""" return self.active def get_mode(self): """Get current read-all mode ('line' or 'page').""" return self.mode def _send_navigation_key(self): """Send appropriate navigation key based on mode.""" if not self.active or self.stop_requested: return try: if self.mode == 'line': key_sequence = [[1, 'KEY_DOWN'], [0, 'KEY_DOWN']] key_name = 'KEY_DOWN' elif self.mode == 'page': key_sequence = [[1, 'KEY_PAGEDOWN'], [0, 'KEY_PAGEDOWN']] key_name = 'KEY_PAGEDOWN' else: return self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Sending {key_name} ({self.items_read + 1})", debug.DebugLevel.INFO ) self.env['runtime']['InputManager'].send_keys(key_sequence) self.items_read += 1 except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Error sending key: {e}", debug.DebugLevel.ERROR ) self.stop_read_all() def speech_completed(self): """Called when speech completes - continue reading if active.""" if not self.active or self.stop_requested: return self.env["runtime"]["DebugManager"].write_debug_out( f"ReadAllManager: Speech completed, continuing read-all", debug.DebugLevel.INFO ) # Small delay to prevent overwhelming the system def continue_reading(): time.sleep(0.1) if self.active and not self.stop_requested: self._send_navigation_key() # Use daemon thread to avoid blocking thread = threading.Thread(target=continue_reading, daemon=True) thread.start() fenrir/src/fenrirscreenreader/core/remoteDriver.py000066400000000000000000000006361513650123000227540ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class RemoteDriver: def __init__(self): self._is_initialized = False def initialize(self, environment): self.env = environment self._is_initialized = True def shutdown(self): self._is_initialized = False fenrir/src/fenrirscreenreader/core/remoteManager.py000066400000000000000000000367161513650123000231030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. """ Remote controll: sectioncommandparameters sections:command,setting setting commands: - set section#setting=value[;section#setting=value] - reset command commands: - say text to speech - interrupt examples settings: settings set section#setting=value[,section#setting=value] setting set speech#voice=de setting reset setting save /path/settings.conf command: command say this is a test command interrupt """ import os import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.i18n import _ class RemoteManager: def __init__(self): # command controll self.commandConst = "COMMAND " self.sayConst = "SAY " self.vmenuConst = "VMENU " self.resetVmenuConst = "RESETVMENU" self.interruptConst = "INTERRUPT" self.quitAppConst = "QUITAPPLICATION" self.tempDisableSpeechConst = "TEMPDISABLESPEECH" self.defineWindowConst = "WINDOW " self.resetWindowConst = "RESETWINDOW" self.setClipboardConst = "CLIPBOARD " self.exportClipboardConst = "EXPORTCLIPBOARD" # setting controll self.settingConst = "SETTING " self.setSettingConst = "SET " self.saveAsSettingConst = "SAVEAS " self.saveSettingConst = "SAVE" self.resetSettingConst = "RESET" def initialize(self, environment): self.env = environment self.env["runtime"]["SettingsManager"].load_driver( self.env["runtime"]["SettingsManager"].get_setting( "remote", "driver" ), "RemoteDriver", ) def shutdown(self): self.env["runtime"]["SettingsManager"].shutdown_driver("RemoteDriver") def handle_settings_change_with_response(self, settings_text): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "remote", "enable_settings_remote" ): return { "success": False, "message": "Settings remote control is disabled", } upper_settings_text = settings_text.upper() try: # set setting if upper_settings_text.startswith(self.setSettingConst): parameter_text = settings_text[len(self.setSettingConst) :] self.set_settings(parameter_text) return { "success": True, "message": f"Setting applied: {parameter_text}", } # save as setting elif upper_settings_text.startswith(self.saveAsSettingConst): parameter_text = settings_text[len(self.saveAsSettingConst) :] self.save_settings(parameter_text) return { "success": True, "message": f"Settings saved to: {parameter_text}", } # save setting elif upper_settings_text == self.saveSettingConst: self.save_settings() return {"success": True, "message": "Settings saved"} # reset setting elif upper_settings_text == self.resetSettingConst: self.reset_settings() return { "success": True, "message": "Settings reset to defaults", } else: return { "success": False, "message": f"Unknown settings command: {settings_text}", } except Exception as e: return {"success": False, "message": f"Settings error: {str(e)}"} def handle_settings_change(self, settings_text): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "remote", "enable_settings_remote" ): return upper_settings_text = settings_text.upper() # set setting if upper_settings_text.startswith(self.setSettingConst): parameter_text = settings_text[len(self.setSettingConst) :] self.set_settings(parameter_text) # save as setting elif upper_settings_text.startswith(self.saveAsSettingConst): parameter_text = settings_text[len(self.saveAsSettingConst) :] self.save_settings(parameter_text) # save setting elif upper_settings_text == self.saveSettingConst: self.save_settings() # reset setting elif upper_settings_text == self.resetSettingConst: self.reset_settings() def handle_command_execution_with_response(self, command_text): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "remote", "enable_command_remote" ): return { "success": False, "message": "Command remote control is disabled", } upper_command_text = command_text.upper() try: # say if upper_command_text.startswith(self.sayConst): parameter_text = command_text[len(self.sayConst) :] self.say(parameter_text) return { "success": True, "message": f"Speaking: {parameter_text[:50]}{'...' if len(parameter_text) > 50 else ''}", } # interrupt elif upper_command_text == self.interruptConst: self.interrupt_speech() return {"success": True, "message": "Speech interrupted"} # temp disable speech elif upper_command_text == self.tempDisableSpeechConst: self.temp_disable_speech() return { "success": True, "message": "Speech temporarily disabled", } # set vmenu elif upper_command_text.startswith(self.vmenuConst): parameter_text = command_text[len(self.vmenuConst) :] self.set_vmenu(parameter_text) return { "success": True, "message": f"VMenu set to: {parameter_text}", } # reset vmenu elif upper_command_text == self.resetVmenuConst: self.reset_vmenu() return {"success": True, "message": "VMenu reset"} # quit fenrir elif upper_command_text == self.quitAppConst: self.quit_fenrir() return {"success": True, "message": "Fenrir shutting down"} # define window elif upper_command_text.startswith(self.defineWindowConst): parameter_text = command_text[len(self.defineWindowConst) :] self.define_window(parameter_text) return { "success": True, "message": f"Window defined: {parameter_text}", } # reset window elif upper_command_text == self.resetWindowConst: self.reset_window() return {"success": True, "message": "Window reset"} # set clipboard elif upper_command_text.startswith(self.setClipboardConst): parameter_text = command_text[len(self.setClipboardConst) :] self.set_clipboard(parameter_text) return { "success": True, "message": f"Clipboard set: {parameter_text[:50]}{'...' if len(parameter_text) > 50 else ''}", } elif upper_command_text.startswith(self.exportClipboardConst): self.export_clipboard() return { "success": True, "message": "Clipboard exported to file", } else: return { "success": False, "message": f"Unknown command: {command_text}", } except Exception as e: return {"success": False, "message": f"Command error: {str(e)}"} def handle_command_execution(self, command_text): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "remote", "enable_command_remote" ): return upper_command_text = command_text.upper() # say if upper_command_text.startswith(self.sayConst): parameter_text = command_text[len(self.sayConst) :] self.say(parameter_text) # interrupt elif upper_command_text == self.interruptConst: self.interrupt_speech() # temp disable speech elif upper_command_text == self.tempDisableSpeechConst: self.temp_disable_speech() # set vmenu elif upper_command_text.startswith(self.vmenuConst): parameter_text = command_text[len(self.vmenuConst) :] self.set_vmenu(parameter_text) # reset vmenu elif upper_command_text == self.resetVmenuConst: self.reset_vmenu() # quit fenrir elif upper_command_text == self.quitAppConst: self.quit_fenrir() # define window elif upper_command_text.startswith(self.defineWindowConst): parameter_text = command_text[len(self.defineWindowConst) :] self.define_window(parameter_text) # reset window elif upper_command_text == self.resetWindowConst: self.reset_window() # set clipboard elif upper_command_text.startswith(self.setClipboardConst): parameter_text = command_text[len(self.setClipboardConst) :] self.set_clipboard(parameter_text) elif upper_command_text.startswith(self.exportClipboardConst): self.export_clipboard() def temp_disable_speech(self): self.env["runtime"]["OutputManager"].temp_disable_speech() def set_vmenu(self, vmenu=""): self.env["runtime"]["VmenuManager"].set_curr_menu(vmenu) def reset_vmenu(self): self.env["runtime"]["VmenuManager"].set_curr_menu() def set_clipboard(self, text=""): self.env["runtime"]["MemoryManager"].add_value_to_first_index( "clipboardHistory", text ) def quit_fenrir(self): self.env["runtime"]["EventManager"].stop_main_event_loop() def define_window(self, window_text): start = {} end = {} try: window_list = window_text.split(" ") if len(window_list) < 4: return start["x"] = int(window_list[0]) start["y"] = int(window_list[1]) end["x"] = int(window_list[2]) end["y"] = int(window_list[3]) self.env["runtime"]["CursorManager"].set_window_for_application( start, end ) except Exception as e: pass def reset_window(self): self.env["runtime"]["CursorManager"].clear_window_for_application() def say(self, text): if not text: return if text == "": return self.env["runtime"]["OutputManager"].speak_text(text) def interrupt_speech(self): self.env["runtime"]["OutputManager"].interrupt_output() def export_clipboard(self): clipboard_file_path = self.env["runtime"][ "SettingsManager" ].get_setting("general", "clipboard_export_path") clipboard_file_path = clipboard_file_path.replace( "$user", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$USER", self.env["general"]["curr_user"] ) clipboard_file_path = clipboard_file_path.replace( "$User", self.env["general"]["curr_user"] ) clipboard_file = open(clipboard_file_path, "w") try: if self.env["runtime"]["MemoryManager"].is_index_list_empty( "clipboardHistory" ): self.env["runtime"]["OutputManager"].present_text( _("clipboard empty"), interrupt=True ) return clipboard = self.env["runtime"][ "MemoryManager" ].get_index_list_element("clipboardHistory") # Fenrir will crash if the clipboard variable is type None if clipboard is not None: clipboard_file.write(clipboard) else: clipboard_file.write("") clipboard_file.close() os.chmod(clipboard_file_path, 0o644) self.env["runtime"]["OutputManager"].present_text( _("clipboard exported to file"), interrupt=True ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "export_clipboard_to_file:run: Filepath:" + clipboard_file + " trace:" + str(e), debug.DebugLevel.ERROR, ) def save_settings(self, setting_config_path=None): if not setting_config_path: setting_config_path = self.env["runtime"][ "SettingsManager" ].get_settings_file() if setting_config_path == "": return self.env["runtime"]["SettingsManager"].save_settings( setting_config_path ) def reset_settings(self): self.env["runtime"]["SettingsManager"].reset_setting_arg_dict() def set_settings(self, settingsArgs): self.env["runtime"]["SettingsManager"].parse_setting_args(settingsArgs) self.env["runtime"]["ScreenManager"].update_screen_ignored() self.env["runtime"]["InputManager"].handle_device_grab(force=True) def handle_remote_incomming_with_response(self, event_data): if not event_data: return {"success": False, "message": "No data received"} upper_event_data = event_data.upper() self.env["runtime"]["DebugManager"].write_debug_out( "RemoteManager:handle_remote_incomming_with_response: event: " + str(event_data), debug.DebugLevel.INFO, ) try: if upper_event_data.startswith(self.settingConst): settings_text = event_data[len(self.settingConst) :] return self.handle_settings_change_with_response(settings_text) elif upper_event_data.startswith(self.commandConst): command_text = event_data[len(self.commandConst) :] return self.handle_command_execution_with_response( command_text ) else: return { "success": False, "message": "Unknown command format. Use 'COMMAND ...' or 'SETTING ...'", } except Exception as e: return {"success": False, "message": f"Exception: {str(e)}"} def handle_remote_incomming(self, event_data): if not event_data: return upper_event_data = event_data.upper() self.env["runtime"]["DebugManager"].write_debug_out( "RemoteManager:handle_remote_incomming: event: " + str(event_data), debug.DebugLevel.INFO, ) if upper_event_data.startswith(self.settingConst): settings_text = event_data[len(self.settingConst) :] self.handle_settings_change(settings_text) elif upper_event_data.startswith(self.commandConst): command_text = event_data[len(self.commandConst) :] self.handle_command_execution(command_text) fenrir/src/fenrirscreenreader/core/runtimeData.py000066400000000000000000000010521513650123000225530ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug runtime_data = { "SpeechDriver": None, "ScreenDriver": None, "SoundDriver": None, "InputDriver": None, "RemoteDriver": None, "InputManager": None, "CommandManager": None, "ScreenManager": None, "OutputManager": None, "DebugManager": None, "SettingsManager": None, "FenrirManager": None, "EventManager": None, "ProcessManager": None, } fenrir/src/fenrirscreenreader/core/sayAllManager.py000066400000000000000000000012421513650123000230170ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class SayAllManager: def __init__(self): self.isActive = False self.isActiveLock = None def initialize(self, environment): self.env = environment def shutdown(self): pass def set_is_active(self, isActive): pass def start(self): pass def is_say_all_active(self): pass def say_all_worker(self): pass def stop(self): pass def finish(self): pass def goto_next_page(self): pass fenrir/src/fenrirscreenreader/core/screenData.py000066400000000000000000000015771513650123000223630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug screen_data = { "columns": 0, "lines": 0, "oldDelta": "", "oldAttribDelta": "", "oldNegativeDelta": "", "oldCursorReview": None, "oldCursorAttrib": None, "old_cursor": {"x": 0, "y": 0}, "oldContentBytes": b"", "old_content_text": "", "oldContentAttrib": None, "oldApplication": "", "oldTTY": None, "new_delta": "", "newNegativeDelta": "", "newAttribDelta": "", "newCursorReview": None, "newCursorAttrib": None, "new_cursor": {"x": 0, "y": 0}, "newContentBytes": b"", "new_content_text": "", "newContentAttrib": None, "newTTY": "0", "new_application": "", "lastScreenUpdate": time.time(), "autoIgnoreScreens": [], } fenrir/src/fenrirscreenreader/core/screenDriver.py000066400000000000000000000026661513650123000227450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ class ScreenDriver: def __init__(self): self._is_initialized = False self.bgColorNames = { 0: _("black"), 1: _("blue"), 2: _("green"), 3: _("cyan"), 4: _("red"), 5: _("Magenta"), 6: _("brown/yellow"), 7: _("white"), } self.fgColorNames = { 0: _("Black"), 1: _("Blue"), 2: _("Green"), 3: _("Cyan"), 4: _("Red"), 5: _("Magenta"), 6: _("brown/yellow"), 7: _("Light gray"), 8: _("Dark gray"), 9: _("Light blue"), 10: ("Light green"), 11: _("Light cyan"), 12: _("Light red"), 13: _("Light magenta"), 14: _("Light yellow"), 15: _("White"), } def initialize(self, environment): self.env = environment self._is_initialized = True def shutdown(self): self._is_initialized = False def get_curr_screen(self): pass def inject_text_to_screen(self, text, screen=None): pass def get_curr_application(self): pass def get_session_information(self): pass fenrir/src/fenrirscreenreader/core/screenManager.py000066400000000000000000000502731513650123000230610ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import difflib import os import re import time from fenrirscreenreader.core import debug from fenrirscreenreader.utils import screen_utils class ScreenManager: def __init__(self): self.differ = difflib.Differ() self.currScreenIgnored = False self.prevScreenIgnored = False self.prevScreenText = "" self.currScreenText = "" self.colums = None self.rows = None # Compile regex once for better performance self._space_normalize_regex = re.compile(" +") def get_rows(self): return self.rows def get_columns(self): return self.colums def initialize(self, environment): self.env = environment self.env["runtime"]["SettingsManager"].load_driver( self.env["runtime"]["SettingsManager"].get_setting( "screen", "driver" ), "ScreenDriver", ) self.get_curr_screen() self.get_curr_screen() self.get_session_information() self.update_screen_ignored() self.update_screen_ignored() def reset_screen_text(self, screen_text): self.prevScreenText = "" self.currScreenText = screen_text def set_screen_text(self, screen_text): self.prevScreenText = self.currScreenText self.currScreenText = screen_text def get_screen_text(self): return self.currScreenText def get_line_text(self, line_number): """Get text from a specific line (0-based index)""" if not self.env["screen"]["new_content_text"]: return "" lines = self.env["screen"]["new_content_text"].split("\n") if line_number < 0 or line_number >= len(lines): return "" return lines[line_number] def get_curr_screen(self): try: self.env["runtime"]["ScreenDriver"].get_curr_screen() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ScreenManager get_curr_screen: Error getting current screen: " + str(e), debug.DebugLevel.ERROR, ) def get_session_information(self): try: self.env["runtime"]["ScreenDriver"].get_session_information() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ScreenManager get_session_information: Error getting session info: " + str(e), debug.DebugLevel.ERROR, ) def shutdown(self): self.env["runtime"]["SettingsManager"].shutdown_driver("ScreenDriver") def is_curr_screen_ignored_changed(self): return self.get_curr_screen_ignored() != self.get_prev_screen_ignored() def handle_screen_change(self, event_data): self.get_curr_screen() self.get_session_information() self.update_screen_ignored() if self.is_curr_screen_ignored_changed(): self.env["runtime"]["InputManager"].set_execute_device_grab() self.env["runtime"]["InputManager"].handle_device_grab() # Update current application detection on screen change try: self.env["runtime"]["ScreenDriver"].get_curr_application() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Application detection failed: {str(e)}", debug.DebugLevel.ERROR ) if not self.is_ignored_screen(self.env["screen"]["newTTY"]): self.update(event_data, "onScreenChange") self.env["screen"]["lastScreenUpdate"] = time.time() else: self.env["runtime"]["OutputManager"].interrupt_output() def handle_screen_update(self, event_data): self.env["screen"]["oldApplication"] = self.env["screen"][ "new_application" ] self.update_screen_ignored() if self.is_curr_screen_ignored_changed(): self.env["runtime"]["InputManager"].set_execute_device_grab() self.env["runtime"]["InputManager"].handle_device_grab() if not self.get_curr_screen_ignored(): self.update(event_data, "onScreenUpdate") self.env["screen"]["lastScreenUpdate"] = time.time() elif self.is_curr_screen_ignored_changed(): self.env["runtime"]["OutputManager"].interrupt_output() def get_curr_screen_ignored(self): return self.currScreenIgnored def get_prev_screen_ignored(self): return self.prevScreenIgnored def update_screen_ignored(self): self.prevScreenIgnored = self.currScreenIgnored self.currScreenIgnored = self.is_ignored_screen( self.env["screen"]["newTTY"] ) def update(self, event_data, trigger="onUpdate"): # set new "old" values self.env["screen"]["oldContentBytes"] = self.env["screen"][ "newContentBytes" ] self.env["screen"]["old_content_text"] = self.env["screen"][ "new_content_text" ] self.env["screen"]["old_cursor"] = self.env["screen"][ "new_cursor" ].copy() self.env["screen"]["oldDelta"] = self.env["screen"]["new_delta"] self.env["screen"]["oldNegativeDelta"] = self.env["screen"][ "newNegativeDelta" ] self.env["screen"]["newContentBytes"] = event_data["bytes"] # get metadata like cursor or screensize self.env["screen"]["lines"] = int(event_data["lines"]) self.env["screen"]["columns"] = int(event_data["columns"]) self.colums = int(event_data["columns"]) self.rows = int(event_data["lines"]) self.env["screen"]["new_cursor"]["x"] = int( event_data["textCursor"]["x"] ) self.env["screen"]["new_cursor"]["y"] = int( event_data["textCursor"]["y"] ) self.env["screen"]["newTTY"] = event_data["screen"] self.env["screen"]["new_content_text"] = event_data["text"] # screen change if self.is_screen_change(): self.env["screen"]["oldContentBytes"] = b"" self.reset_screen_text(event_data["text"]) self.env["runtime"]["AttributeManager"].reset_attributes( event_data["attributes"] ) self.env["runtime"]["AttributeManager"].reset_attribute_cursor() self.env["screen"]["old_content_text"] = "" self.env["screen"]["old_cursor"]["x"] = 0 self.env["screen"]["old_cursor"]["y"] = 0 self.env["screen"]["oldDelta"] = "" self.env["screen"]["oldNegativeDelta"] = "" else: self.set_screen_text(event_data["text"]) self.env["runtime"]["AttributeManager"].set_attributes( event_data["attributes"] ) # initialize current deltas self.env["screen"]["newNegativeDelta"] = "" self.env["screen"]["new_delta"] = "" self.env["runtime"]["AttributeManager"].reset_attribute_delta() # Diff generation - critical for screen reader functionality # This code detects and categorizes screen content changes to provide appropriate # speech feedback (typing echo vs incoming text vs screen updates) # Track whether this appears to be typing (user input) vs other screen # changes typing = False diff_list = [] if ( self.env["screen"]["old_content_text"] != self.env["screen"]["new_content_text"] ): # Special case: Initial screen content (going from empty to populated) # This handles first screen load or TTY switch scenarios if ( self.env["screen"]["new_content_text"] != "" and self.env["screen"]["old_content_text"] == "" ): # Pre-process screen text for comparison - collapse multiple spaces to single space # This normalization prevents spurious diffs from spacing # inconsistencies old_screen_text = self._space_normalize_regex.sub( " ", self.env["runtime"][ "ScreenManager" ].get_window_area_in_text( self.env["screen"]["old_content_text"] ), ) new_screen_text = self._space_normalize_regex.sub( " ", self.env["runtime"][ "ScreenManager" ].get_window_area_in_text( self.env["screen"]["new_content_text"] ), ) if old_screen_text == "" and new_screen_text != "": self.env["screen"]["new_delta"] = new_screen_text else: # Calculate byte positions for the current cursor's line in the flat text buffer # Formula: (line_number * columns) + line_number accounts for newlines # Each line contributes 'columns' chars + 1 newline char cursor_line_start = ( self.env["screen"]["new_cursor"]["y"] * self.env["screen"]["columns"] + self.env["screen"]["new_cursor"]["y"] ) cursor_line_end = ( cursor_line_start + self.env["screen"]["columns"] ) # TYPING DETECTION ALGORITHM # Determines if this screen change is likely user typing vs other content changes # All conditions must be met for typing detection: if ( abs( self.env["screen"]["old_cursor"]["x"] - self.env["screen"]["new_cursor"]["x"] ) >= 1 and self.env["screen"]["old_cursor"]["y"] == self.env["screen"]["new_cursor"]["y"] and self.env["screen"]["new_content_text"][ :cursor_line_start ] == self.env["screen"]["old_content_text"][ :cursor_line_start ] and self.env["screen"]["new_content_text"][ cursor_line_end: ] == self.env["screen"]["old_content_text"][cursor_line_end:] ): # Condition 1: Cursor moved horizontally by at least 1 position (typical of typing) # Condition 2: Cursor stayed on same line (typing doesn't usually change lines) # Condition 3: Content BEFORE cursor line is unchanged (text above typing area) # Condition 4: Content AFTER cursor line is unchanged (text below typing area) # Together: only the current line changed, cursor moved # horizontally = likely typing # Optimize diff calculation for typing by focusing on a # small window around cursor cursor_line_start_offset = cursor_line_start cursor_line_end_offset = cursor_line_end # Limit analysis window to avoid processing entire long lines # +3 provides safety buffer beyond cursor position to catch edge cases if ( cursor_line_end > cursor_line_start + self.env["screen"]["new_cursor"]["x"] + 3 ): cursor_line_end_offset = ( cursor_line_start + self.env["screen"]["new_cursor"]["x"] + 3 ) # Extract just the relevant text sections for # character-level diff old_screen_text = self.env["screen"]["old_content_text"][ cursor_line_start_offset:cursor_line_end_offset ] new_screen_text = self.env["screen"]["new_content_text"][ cursor_line_start_offset:cursor_line_end_offset ] # Character-level diff for typing detection (not # line-level) diff = self.differ.compare( old_screen_text, new_screen_text ) diff_list = list(diff) typing = True # Validate typing assumption by checking if detected # changes match cursor movement temp_new_delta = "".join( x[2:] for x in diff_list if x[0] == "+" ) if temp_new_delta.strip() != "": # Compare diff result against expected typing pattern # Expected: characters between old and new cursor # positions expected_typing = "".join( new_screen_text[ self.env["screen"]["old_cursor"][ "x" ] : self.env["screen"]["new_cursor"]["x"] ].rstrip() ) # If diff doesn't match expected typing pattern, treat # as general screen change if temp_new_delta != expected_typing: # Fallback: treat entire current line as new # content diff_list = [ "+ " + self.env["screen"]["new_content_text"].split( "\n" )[self.env["screen"]["new_cursor"]["y"]] + "\n" ] typing = False else: # GENERAL SCREEN CHANGE DETECTION # Not typing - handle as line-by-line content change # This catches: incoming messages, screen updates, # application output, etc. # Pre-process screen text for comparison - collapse multiple spaces to single space # This normalization prevents spurious diffs from spacing # inconsistencies old_screen_text = self._space_normalize_regex.sub( " ", self.env["runtime"][ "ScreenManager" ].get_window_area_in_text( self.env["screen"]["old_content_text"] ), ) new_screen_text = self._space_normalize_regex.sub( " ", self.env["runtime"][ "ScreenManager" ].get_window_area_in_text( self.env["screen"]["new_content_text"] ), ) diff = self.differ.compare( old_screen_text.split("\n"), new_screen_text.split("\n"), ) diff_list = list(diff) # Extract added and removed content from diff results # Output format depends on whether this was detected as typing # or general change if not typing: # Line-based changes: join with newlines for proper speech # cadence self.env["screen"]["new_delta"] = "\n".join( x[2:] for x in diff_list if x[0] == "+" ) else: # Character-based changes: no newlines for smooth typing # echo self.env["screen"]["new_delta"] = "".join( x[2:] for x in diff_list if x[0] == "+" ) # Negative delta (removed content) - used for backspace/delete # detection self.env["screen"]["newNegativeDelta"] = "".join( x[2:] for x in diff_list if x[0] == "-" ) # track highlighted try: if self.env["runtime"]["AttributeManager"].is_attribute_change(): if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "focus", "highlight" ): attribute_delta, attributeCursor = self.env["runtime"][ "AttributeManager" ].track_highlights() if attributeCursor: self.env["runtime"][ "AttributeManager" ].set_attribute_cursor(attributeCursor) self.env["runtime"][ "AttributeManager" ].set_attribute_delta(attribute_delta) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ScreenManager:update:highlight: " + str(e), debug.DebugLevel.ERROR, ) def is_ignored_screen(self, screen=None): if screen is None: screen = self.env["screen"]["newTTY"] # Check if force all screens flag is set if self.env["runtime"].get("force_all_screens", False): return False ignore_screens = [] fix_ignore_screens = self.env["runtime"][ "SettingsManager" ].get_setting("screen", "ignore_screen") if fix_ignore_screens != "": ignore_screens.extend(fix_ignore_screens.split(",")) if self.env["runtime"]["SettingsManager"].get_setting_as_bool( "screen", "autodetect_ignore_screen" ): ignore_screens.extend(self.env["screen"]["autoIgnoreScreens"]) self.env["runtime"]["DebugManager"].write_debug_out( "ScreenManager:is_ignored_screen ignore:" + str(ignore_screens) + " current:" + str(screen), debug.DebugLevel.INFO, ) return screen in ignore_screens def is_screen_change(self): if not self.env["screen"]["oldTTY"]: return False return self.env["screen"]["newTTY"] != self.env["screen"]["oldTTY"] def is_delta(self, ignoreSpace=False): new_delta = self.env["screen"]["new_delta"] if ignoreSpace: new_delta = new_delta.strip() return new_delta != "" def is_negative_delta(self): return self.env["screen"]["newNegativeDelta"] != "" def get_window_area_in_text(self, text): if not self.env["runtime"][ "CursorManager" ].is_application_window_set(): return text window_text = "" window_list = text.split("\n") curr_app = self.env["runtime"][ "ApplicationManager" ].get_current_application() window_list = window_list[ self.env["commandBuffer"]["windowArea"][curr_app]["1"][ "y" ] : self.env["commandBuffer"]["windowArea"][curr_app]["2"]["y"] + 1 ] for line in window_list: window_text += ( line[ self.env["commandBuffer"]["windowArea"][curr_app]["1"][ "x" ] : self.env["commandBuffer"]["windowArea"][curr_app]["2"][ "x" ] + 1 ] + "\n" ) return window_text def inject_text_to_screen(self, text, screen=None): try: self.env["runtime"]["ScreenDriver"].inject_text_to_screen( text, screen ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "ScreenManager:inject_text_to_screen " + str(e), debug.DebugLevel.ERROR, ) fenrir/src/fenrirscreenreader/core/settingsData.py000066400000000000000000000077421513650123000227440ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug settings_data = { "sound": { "enabled": True, "driver": "genericDriver", "theme": "default", "volume": 1.0, "generic_play_file_command": "play -q -v fenrirVolume fenrirSoundFile", "generic_frequency_command": "play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence", "progress_monitoring": True, }, "speech": { "enabled": True, "driver": "genericDriver", "server_path": "", "rate": 0.75, "pitch": 0.5, "capital_pitch": 0.8, "capital_indicator": "pitch", "volume": 1.0, "module": "", "voice": "en-us", "language": "", "auto_read_incoming": True, "read_numbers_as_digits": False, "rapid_update_threshold": 5, "rapid_update_window": 0.3, "batch_flush_interval": 0.5, "max_batch_lines": 100, "flood_line_threshold": 500, "generic_speech_command": 'espeak -a fenrirVolume -s fenrirRate -p fenrirPitch -v fenrirVoice "fenrirText"', "fenrir_min_volume": 0, "fenrir_max_volume": 200, "fenrir_min_pitch": 0, "fenrir_max_pitch": 99, "fenrir_min_rate": 80, "fenrir_max_rate": 450, }, "screen": { "driver": "vcsaDriver", "encoding": "auto", "screen_update_delay": 0.1, "ignore_screen": "", "autodetect_ignore_screen": False, }, "general": { "debug_level": debug.DebugLevel.DEACTIVE, "debug_mode": "FILE", "debug_file": "", "punctuation_profile": "default", "punctuation_level": "some", "respect_punctuation_pause": True, "replace_undefined_punctuation_with_space": True, "new_line_pause": True, "number_of_clipboards": 10, "clipboard_export_path": "/tmp/fenrirClipboard", "emoticons": True, "fenrir_keys": "KEY_KP0,KEY_META", "script_keys": "KEY_COMPOSE", "time_format": "%I:%M%P", "date_format": "%A, %B %d, %Y", "auto_spell_check": False, "spell_check_language": "en_US", "script_path": "/usr/share/fenrirscreenreader/scripts", "command_path": "/usr/share/fenrirscreenreader/commands", "attribute_format_string": "Background fenrirBGColor,Foreground fenrirFGColor,fenrirUnderline,fenrirBold,fenrirBlink, Font fenrirFont,Fontsize fenrirFontSize", "auto_present_indent": False, "auto_present_indent_mode": 1, "has_attributes": True, "shell": "", }, "focus": { "cursor": True, "highlight": False, }, "remote": { "enabled": True, "driver": "unixDriver", "port": 22447, "socket_file": "", "enable_settings_remote": True, "enable_command_remote": True, }, "barrier": { "enabled": True, "left_barriers": "ā”‚ā””ā”Œā”€", "right_barriers": "ā”‚ā”˜ā”ā”€", }, "review": { "line_break": True, "end_of_screen": True, "leave_review_on_cursor_change": True, "leave_review_on_screen_change": True, }, "menu": { "vmenu_path": "", "quick_menu": "speech#rate;speech#pitch;speech#volume", }, "time": { "enabled": False, "present_time": True, "present_date": True, "delay_sec": 0, "on_minutes": "00,30", "announce": True, "interrupt": False, }, "keyboard": { "driver": "evdev", "device": "all", "grab_devices": True, "ignore_shortcuts": False, "keyboard_layout": "desktop", "char_echo_mode": 2, # while capslock "char_delete_echo": True, "word_echo": True, "interrupt_on_key_press": True, "interrupt_on_key_press_filter": "", "double_tap_timeout": 0.2, }, } fenrir/src/fenrirscreenreader/core/settingsManager.py000066400000000000000000000755231513650123000234470ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import inspect import os from configparser import ConfigParser from fenrirscreenreader.core import applicationManager from fenrirscreenreader.core import attributeManager from fenrirscreenreader.core import barrierManager from fenrirscreenreader.core import byteManager from fenrirscreenreader.core import commandManager from fenrirscreenreader.core import cursorManager from fenrirscreenreader.core import debug from fenrirscreenreader.core import debugManager from fenrirscreenreader.core import environment from fenrirscreenreader.core import eventManager from fenrirscreenreader.core import helpManager from fenrirscreenreader.core import inputManager from fenrirscreenreader.core import memoryManager from fenrirscreenreader.core import outputManager from fenrirscreenreader.core import processManager from fenrirscreenreader.core import punctuationManager from fenrirscreenreader.core import quickMenuManager from fenrirscreenreader.core import readAllManager from fenrirscreenreader.core import remoteManager from fenrirscreenreader.core import sayAllManager from fenrirscreenreader.core import screenManager from fenrirscreenreader.core import tableManager from fenrirscreenreader.core import textManager from fenrirscreenreader.core import vmenuManager from fenrirscreenreader.core.settingsData import settings_data from fenrirscreenreader.utils import module_utils currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class SettingsManager: def __init__(self): self.settings = settings_data self.settingArgDict = {} self.bindingsBackup = None self.settings_file = "" def initialize(self, environment): self.env = environment def shutdown(self): pass def get_binding_backup(self): return self.bindingsBackup.copy() def load_sound_icons(self, soundIconPath, environment=None): # Use passed environment or fall back to self.env env = environment if environment is not None else self.env try: with open(soundIconPath + "/soundicons.conf", "r") as siConfig: while True: line = siConfig.readline() if not line: break line = line.replace("\n", "") if line.replace(" ", "") == "": continue if line.replace(" ", "").startswith("#"): continue if line.count("=") != 1: continue values = line.split("=") sound_icon = values[0].upper() values[1] = values[1].replace("'", "") values[1] = values[1].replace('"', "") sound_icon_file = "" if os.path.exists(values[1]): sound_icon_file = values[1] else: if not soundIconPath.endswith("/"): soundIconPath += "/" if os.path.exists(soundIconPath + values[1]): sound_icon_file = soundIconPath + values[1] env["soundIcons"][sound_icon] = sound_icon_file env["runtime"]["DebugManager"].write_debug_out( "SoundIcon: " + sound_icon + "." + sound_icon_file, debug.DebugLevel.INFO, on_any_level=True, ) except (IOError, OSError) as e: env["runtime"]["DebugManager"].write_debug_out( "load_sound_icons: failed to load sound icons from " + soundIconPath + ". Error: " + str(e), debug.DebugLevel.ERROR, ) def get_settings_file(self): return self.settings_file def set_settings_file(self, settings_file): if not os.path.exists(settings_file): return if not os.access(settings_file, os.R_OK): return self.settings_file = settings_file def load_settings(self, setting_config_path): if not os.path.exists(setting_config_path): return False if not os.access(setting_config_path, os.R_OK): return False self.env["settings"] = ConfigParser() try: self.env["settings"].read(setting_config_path) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "settings_manager load_settings: Error reading config file: " + str(e), debug.DebugLevel.ERROR, ) return False self.set_settings_file(setting_config_path) return True def save_settings(self, setting_config_path): # set opt dict here # save file try: # print('file: ',setting_config_path) for section, settings in self.settingArgDict.items(): for setting, value in settings.items(): # print(section, setting, value) self.env["settings"].set(section, setting, value) # print('full',self.env['settings']) config_file = open(setting_config_path, "w") self.env["settings"].write(config_file) config_file.close() os.chmod(setting_config_path, 0o644) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "save_settings: save settingsfile:" + setting_config_path + "failed. Error:" + str(e), debug.DebugLevel.ERROR, ) def set_setting(self, section, setting, value): self.set_option_arg_dict(section, setting, value) # self.env['settings'].set(section, setting, value) def get_setting(self, section, setting): value = "" try: value = self.settingArgDict[section][setting] return value except Exception as e: pass try: value = self.env["settings"].get(section, setting) except Exception as e: value = str(self.settings[section][setting]) return value def get_setting_as_int(self, section, setting): value = 0 try: value = int(self.settingArgDict[section][setting]) return value except Exception as e: pass try: value = self.env["settings"].getint(section, setting) except Exception as e: value = self.settings[section][setting] return value def get_setting_as_float(self, section, setting): value = 0.0 try: value = float(self.settingArgDict[section][setting]) return value except Exception as e: pass try: value = self.env["settings"].getfloat(section, setting) except Exception as e: value = self.settings[section][setting] return value def get_setting_as_bool(self, section, setting): value = False try: value = self.settingArgDict[section][setting].upper() in [ "1", "YES", "JA", "TRUE", ] return value except Exception as e: pass try: value = self.env["settings"].getboolean(section, setting) except Exception as e: value = self.settings[section][setting] return value def load_driver(self, driverName, driverType): # Map runtime keys to actual directory names driver_dir_map = { "InputDriver": "inputDriver", "ScreenDriver": "screenDriver", "SpeechDriver": "speechDriver", "SoundDriver": "soundDriver", "RemoteDriver": "remoteDriver", } driver_dir = driver_dir_map.get(driverType, driverType) try: if self.env["runtime"][driverType] is not None: self.env["runtime"][driverType].shutdown(self.env) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "settings_manager load_driver: Error shutting down driver: " + str(e), debug.DebugLevel.ERROR, ) try: driver_mod = module_utils.import_module( driverName, fenrir_path + "/" + driver_dir + "/" + driverName + ".py", ) self.env["runtime"][driverType] = driver_mod.driver() self.env["runtime"][driverType].initialize(self.env) self.env["runtime"]["DebugManager"].write_debug_out( "Loading Driver " + driverType + " (" + driverName + ") OK", debug.DebugLevel.INFO, on_any_level=True, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "Loading Driver " + driverType + " (" + driverName + ") FAILED:" + str(e), debug.DebugLevel.ERROR, ) try: driver_mod = module_utils.import_module( driverName, fenrir_path + "/" + driver_dir + "/dummyDriver.py", ) self.env["runtime"][driverType] = driver_mod.driver() self.env["runtime"][driverType].initialize(self.env) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "(fallback) Loading Driver " + driverType + " (dummyDriver) FAILED:" + str(e), debug.DebugLevel.ERROR, ) def shutdown_driver(self, driverType): try: self.env["runtime"][driverType].shutdown() except Exception as e: pass del self.env["runtime"][driverType] def set_fenrir_keys(self, keys): keys = keys.upper() key_list = keys.split(",") for key in key_list: if key not in self.env["input"]["fenrir_key"]: self.env["input"]["fenrir_key"].append(key) def set_script_keys(self, keys): keys = keys.upper() key_list = keys.split(",") for key in key_list: if key not in self.env["input"]["script_key"]: self.env["input"]["script_key"].append(key) def reset_setting_arg_dict(self): self.settingArgDict = {} self.env["runtime"]["OutputManager"].reset_SpeechDriver() def set_option_arg_dict(self, section, setting, value): # section = section.lower() # setting = setting.lower() try: e = self.settingArgDict[section] except KeyError: self.settingArgDict[section] = {} try: t = self.settings[section][setting] except Exception as e: print(section, setting, "not found") return try: v = value # Initialize v with the original value if isinstance(self.settings[section][setting], str): v = str(value) elif isinstance(self.settings[section][setting], bool): if value not in ["True", "False"]: raise ValueError( "could not convert string to bool: " + value ) v = value == "True" elif isinstance(self.settings[section][setting], int): v = int(value) elif isinstance(self.settings[section][setting], float): v = float(value) # Content validation for critical settings self._validate_setting_value(section, setting, v) self.settingArgDict[section][setting] = str(value) except Exception as e: print( "settings_manager:set_option_arg_dict:Datatype missmatch: " + section + "#" + setting + "=" + str(value) + " Error:" + str(e) ) # self.env['runtime']['DebugManager'].write_debug_out('settings_manager:set_option_arg_dict:Datatype # missmatch: '+ section + '#' + setting + '=' + value + ' Error:' # + str(e), debug.DebugLevel.ERROR) return def _validate_setting_value(self, section, setting, value): """Validate setting values for critical screen reader functionality. Only validates settings that could cause crashes or accessibility issues. Invalid values raise ValueError which is caught by the calling method. """ # Speech settings validation - critical for accessibility if section == "speech": if setting == "rate": if not (0.0 <= value <= 3.0): raise ValueError( f"Speech rate must be between 0.0 and 3.0, got {value}" ) elif setting == "pitch": if not (0.0 <= value <= 2.0): raise ValueError( f"Speech pitch must be between 0.0 and 2.0, got {value}" ) elif setting == "volume": if not (0.0 <= value <= 1.5): raise ValueError( f"Speech volume must be between 0.0 and 1.5, got {value}" ) elif setting == "driver": valid_drivers = [ "speechdDriver", "genericDriver", "dummyDriver", ] if value not in valid_drivers: raise ValueError( f"Invalid speech driver: {value}. Valid options: {valid_drivers}" ) # Sound settings validation elif section == "sound": if setting == "volume": if not (0.0 <= value <= 1.5): raise ValueError( f"Sound volume must be between 0.0 and 1.5, got {value}" ) elif setting == "driver": valid_drivers = [ "genericDriver", "gstreamerDriver", "dummyDriver", ] if value not in valid_drivers: raise ValueError( f"Invalid sound driver: {value}. Valid options: {valid_drivers}" ) # Screen settings validation elif section == "screen": if setting == "driver": valid_drivers = ["vcsaDriver", "ptyDriver", "dummyDriver"] if value not in valid_drivers: raise ValueError( f"Invalid screen driver: {value}. Valid options: {valid_drivers}" ) # Input settings validation elif section == "keyboard": if setting == "driver": valid_drivers = [ "evdevDriver", "ptyDriver", "atspiDriver", "dummyDriver", ] if value not in valid_drivers: raise ValueError( f"Invalid input driver: {value}. Valid options: {valid_drivers}" ) # General settings validation elif section == "general": if setting == "debug_level": if not (0 <= value <= 3): raise ValueError( f"Debug level must be between 0 and 3, got {value}" ) def parse_setting_args(self, settingArgs): if settingArgs is None: return for optionElem in settingArgs.split(";"): setting_val_list = [] section_option_list = [] section = "" option = "" value = "" setting_val_list = optionElem.split("=", 1) if len(setting_val_list) != 2: continue if "#" in setting_val_list[0]: section_option_list = setting_val_list[0].split("#", 1) elif "." in setting_val_list[0]: section_option_list = setting_val_list[0].split(".", 1) elif "," in setting_val_list[0]: section_option_list = setting_val_list[0].split(",", 1) elif "!" in setting_val_list[0]: section_option_list = setting_val_list[0].split("!", 1) else: continue if len(section_option_list) != 2: continue section = str(section_option_list[0]) option = str(section_option_list[1]) value = str(setting_val_list[1]) self.set_option_arg_dict(section, option, value) def init_fenrir_config( self, cliArgs, fenrir_manager=None, environment=environment.environment ): settings_root = "/etc/fenrirscreenreader/" settings_file = cliArgs.setting sound_root = "/usr/share/sounds/fenrirscreenreader/" # get fenrir settings root if not os.path.exists(settings_root): if os.path.exists(fenrir_path + "/../../config/"): settings_root = fenrir_path + "/../../config/" else: return None # get settings file if settings_file is None or not os.path.exists(settings_file): if os.path.exists(settings_root + "/settings/settings.conf"): settings_file = settings_root + "/settings/settings.conf" else: return None # get sound themes root if not os.path.exists(sound_root): if os.path.exists(fenrir_path + "/../../config/sound/"): sound_root = fenrir_path + "/../../config/sound/" environment["runtime"]["SettingsManager"] = self environment["runtime"]["SettingsManager"].initialize(environment) valid_config = environment["runtime"]["SettingsManager"].load_settings( settings_file ) if not valid_config: return None if cliArgs.options != "": self.parse_setting_args(cliArgs.options) if cliArgs.debug: self.set_setting("general", "debug_level", 3) if cliArgs.print: self.set_setting("general", "debug_level", 3) self.set_setting("general", "debug_mode", "PRINT") if cliArgs.emulated_pty: # Set PTY driver settings pty_settings = { "screen": {"driver": "ptyDriver"}, "keyboard": {"driver": "ptyDriver", "keyboard_layout": "pty"} } for section, settings in pty_settings.items(): for key, value in settings.items(): self.set_setting(section, key, value) if cliArgs.emulated_evdev: self.set_setting("screen", "driver", "ptyDriver") self.set_setting("keyboard", "driver", "evdevDriver") self.set_fenrir_keys(self.get_setting("general", "fenrir_keys")) self.set_script_keys(self.get_setting("general", "script_keys")) environment["runtime"]["DebugManager"] = debugManager.DebugManager( self.env["runtime"]["SettingsManager"].get_setting( "general", "debug_file" ) ) environment["runtime"]["DebugManager"].initialize(environment) if cliArgs.force_all_screens: environment["runtime"]["force_all_screens"] = True if cliArgs.ignore_screen: current_ignore_screen = self.get_setting("screen", "ignore_screen") if current_ignore_screen: ignore_screens = ( current_ignore_screen.split(",") + cliArgs.ignore_screen ) else: ignore_screens = cliArgs.ignore_screen self.set_setting( "screen", "ignore_screen", ",".join(ignore_screens) ) if not os.path.exists( self.get_setting("sound", "theme") + "/soundicons.conf" ): if os.path.exists(sound_root + self.get_setting("sound", "theme")): self.set_setting( "sound", "theme", sound_root + self.get_setting("sound", "theme"), ) if os.path.exists( self.get_setting("sound", "theme") + "/soundicons.conf" ): environment["runtime"]["SettingsManager"].load_sound_icons( self.get_setting("sound", "theme"), environment ) else: environment["runtime"]["SettingsManager"].load_sound_icons( self.get_setting("sound", "theme"), environment ) environment["runtime"][ "PunctuationManager" ] = punctuationManager.PunctuationManager() environment["runtime"]["PunctuationManager"].initialize(environment) environment["runtime"]["TextManager"] = textManager.TextManager() environment["runtime"]["TextManager"].initialize(environment) if not os.path.exists( self.get_setting("general", "punctuation_profile") ): if os.path.exists( settings_root + "punctuation/" + self.get_setting("general", "punctuation_profile") ): self.set_setting( "general", "punctuation_profile", settings_root + "punctuation/" + self.get_setting("general", "punctuation_profile"), ) environment["runtime"]["PunctuationManager"].load_dicts( self.get_setting("general", "punctuation_profile") ) if os.path.exists( settings_root + "punctuation/" + self.get_setting("general", "punctuation_profile") + ".conf" ): self.set_setting( "general", "punctuation_profile", settings_root + "punctuation/" + self.get_setting("general", "punctuation_profile") + ".conf", ) environment["runtime"]["PunctuationManager"].load_dicts( self.get_setting("general", "punctuation_profile") ) else: environment["runtime"]["PunctuationManager"].load_dicts( self.get_setting("general", "punctuation_profile") ) if fenrir_manager: environment["runtime"]["FenrirManager"] = fenrir_manager environment["runtime"]["MemoryManager"] = memoryManager.MemoryManager() environment["runtime"]["MemoryManager"].initialize(environment) environment["runtime"][ "AttributeManager" ] = attributeManager.AttributeManager() environment["runtime"]["AttributeManager"].initialize(environment) environment["runtime"]["EventManager"] = eventManager.EventManager() environment["runtime"]["EventManager"].initialize(environment) environment["runtime"][ "ProcessManager" ] = processManager.ProcessManager() environment["runtime"]["ProcessManager"].initialize(environment) environment["runtime"]["OutputManager"] = outputManager.OutputManager() environment["runtime"]["OutputManager"].initialize(environment) environment["runtime"]["ByteManager"] = byteManager.ByteManager() environment["runtime"]["ByteManager"].initialize(environment) environment["runtime"]["InputManager"] = inputManager.InputManager() environment["runtime"]["InputManager"].initialize(environment) environment["runtime"]["ScreenManager"] = screenManager.ScreenManager() environment["runtime"]["ScreenManager"].initialize(environment) environment["runtime"][ "CommandManager" ] = commandManager.CommandManager() environment["runtime"]["CommandManager"].initialize(environment) environment["runtime"]["HelpManager"] = helpManager.HelpManager() environment["runtime"]["HelpManager"].initialize(environment) environment["runtime"]["RemoteManager"] = remoteManager.RemoteManager() environment["runtime"]["RemoteManager"].initialize(environment) if environment["runtime"]["InputManager"].get_shortcut_type() == "KEY": if not os.path.exists( self.get_setting("keyboard", "keyboard_layout") ): if os.path.exists( settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") ): self.set_setting( "keyboard", "keyboard_layout", settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout"), ) environment["runtime"]["InputManager"].load_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) if os.path.exists( settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") + ".conf" ): self.set_setting( "keyboard", "keyboard_layout", settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") + ".conf", ) environment["runtime"]["InputManager"].load_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) else: environment["runtime"]["InputManager"].load_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) elif ( environment["runtime"]["InputManager"].get_shortcut_type() == "BYTE" ): if not os.path.exists( self.get_setting("keyboard", "keyboard_layout") ): if os.path.exists( settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") ): self.set_setting( "keyboard", "keyboard_layout", settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout"), ) environment["runtime"]["ByteManager"].load_byte_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) if os.path.exists( settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") + ".conf" ): self.set_setting( "keyboard", "keyboard_layout", settings_root + "keyboard/" + self.get_setting("keyboard", "keyboard_layout") + ".conf", ) environment["runtime"]["ByteManager"].load_byte_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) else: environment["runtime"]["ByteManager"].load_byte_shortcuts( self.get_setting("keyboard", "keyboard_layout") ) environment["runtime"]["CursorManager"] = cursorManager.CursorManager() environment["runtime"]["CursorManager"].initialize(environment) environment["runtime"][ "ApplicationManager" ] = applicationManager.ApplicationManager() environment["runtime"]["ApplicationManager"].initialize(environment) environment["runtime"]["TextManager"] = textManager.TextManager() environment["runtime"]["TextManager"].initialize(environment) environment["runtime"]["TableManager"] = tableManager.TableManager() environment["runtime"]["TableManager"].initialize(environment) environment["runtime"][ "BarrierManager" ] = barrierManager.BarrierManager() environment["runtime"]["BarrierManager"].initialize(environment) environment["runtime"]["SayAllManager"] = sayAllManager.SayAllManager() environment["runtime"]["SayAllManager"].initialize(environment) environment["runtime"]["VmenuManager"] = vmenuManager.VmenuManager() environment["runtime"]["VmenuManager"].initialize(environment) environment["runtime"][ "QuickMenuManager" ] = quickMenuManager.QuickMenuManager() environment["runtime"]["QuickMenuManager"].initialize(environment) environment["runtime"][ "ReadAllManager" ] = readAllManager.ReadAllManager() environment["runtime"]["ReadAllManager"].initialize(environment) # only possible after having input and screen managers with clean # buffer environment["runtime"]["InputManager"].write_event_buffer() environment["runtime"]["InputManager"].handle_device_grab(force=True) environment["runtime"]["DebugManager"].write_debug_out( r"/-------environment-------/", debug.DebugLevel.INFO, on_any_level=True, ) environment["runtime"]["DebugManager"].write_debug_out( str(environment), debug.DebugLevel.INFO, on_any_level=True ) environment["runtime"]["DebugManager"].write_debug_out( r"/-------settings.conf-------/", debug.DebugLevel.INFO, on_any_level=True, ) environment["runtime"]["DebugManager"].write_debug_out( str(environment["settings"]._sections), debug.DebugLevel.INFO, on_any_level=True, ) environment["runtime"]["DebugManager"].write_debug_out( r"/-------self.settingArgDict-------/", debug.DebugLevel.INFO, on_any_level=True, ) environment["runtime"]["DebugManager"].write_debug_out( str(self.settingArgDict), debug.DebugLevel.INFO, on_any_level=True ) self.bindingsBackup = environment["bindings"].copy() return environment fenrir/src/fenrirscreenreader/core/soundDriver.py000066400000000000000000000022051513650123000226030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class sound_driver: def __init__(self): self.volume = None self._initialized = False def initialize(self, environment): self.env = environment self._initialized = True def shutdown(self): if not self._initialized: return self.cancel() self._is_initialized = False def play_frequence( self, frequence, duration, adjust_volume=0.0, interrupt=True ): if not self._initialized: return if interrupt: self.cancel() def play_sound_file(self, file_path, interrupt=True): if not self._initialized: return if interrupt: self.cancel() def cancel(self): if not self._initialized: return def set_callback(self, callback): if not self._initialized: return def set_volume(self, volume): if not self._initialized: return self.volume = volume fenrir/src/fenrirscreenreader/core/speechDriver.py000066400000000000000000000050631513650123000227270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug class speech_driver: def __init__(self): pass def initialize(self, environment): self._is_initialized = False self.language = None self.voice = None self.module = None self.pitch = None self.rate = None self.volume = None self.env = environment self._is_initialized = True def shutdown(self): if self._is_initialized: self.cancel() self._is_initialized = False def speak(self, text, queueable=True, ignore_punctuation=False): if not self._is_initialized: return if not queueable: self.cancel() def cancel(self): if not self._is_initialized: return def set_callback(self, callback): if not self._is_initialized: return if not callback: return def clear_buffer(self): if not self._is_initialized: return def set_voice(self, voice): if not self._is_initialized: return if voice == "": return self.voice = voice def set_pitch(self, pitch): if not self._is_initialized: return if not isinstance(pitch, float): return if pitch < 0.0: return if pitch > 1.0: return self.pitch = pitch def set_rate(self, rate): if not self._is_initialized: return if not isinstance(rate, float): return if rate < 0.0: return if rate > 1.0: return self.rate = rate def set_module(self, module): if not self._is_initialized: return if not isinstance(module, str): return if module == "": return self.module = module def reset(self): self.shutdown() self.initialize(self.env) def set_language(self, language): if not self._is_initialized: return if not isinstance(language, str): return if language == "": return self.language = language def set_volume(self, volume): if not self._is_initialized: return if not isinstance(volume, float): return if volume < 0.0: return if volume > 1.0: return self.volume = volume fenrir/src/fenrirscreenreader/core/tableManager.py000066400000000000000000000517611513650123000226740ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re from fenrirscreenreader.core import debug class TableManager: def __init__(self): self.headLine = "" self.defaultSeparators = ["+", ";", "|", " "] self.noOfHeadLineColumns = 0 self.headColumnSep = "" self.rowColumnSep = "" self.headerRow = [] self.tableMode = False self.currentColumn = 0 self.currentRow = 0 def initialize(self, environment): self.env = environment def shutdown(self): pass def is_table_mode(self): return self.tableMode def set_table_mode(self, active): self.tableMode = active if not active: self.clear_header_row() else: # Initialize current position when entering table mode self.sync_table_position_from_cursor() def set_header_row_from_cursor(self): """Set header row from current cursor position""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return False cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return False # Get the line text at cursor position line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return False # Parse the line into columns self.headerRow = self.parse_line_into_columns(line_text) return len(self.headerRow) > 0 def clear_header_row(self): """Clear the stored header row""" self.headerRow = [] def has_header_row(self): """Check if header row is set""" return len(self.headerRow) > 0 def get_column_header(self, column_index): """Get header for a specific column (0-based)""" if column_index < 0: return f"Column {column_index + 1}" if len(self.headerRow) == 0: return f"Column {column_index + 1}" if column_index >= len(self.headerRow): return f"Column {column_index + 1}" header = self.headerRow[column_index].strip() if not header: # If header is empty return f"Column {column_index + 1}" return header def get_column_count(self): """Get number of columns based on header row""" return len(self.headerRow) def parse_line_into_columns(self, line_text): """Parse a line into columns using various separators""" if not line_text: return [] # Try different separators in order of preference separators = [',', '|', ';', '\t'] for sep in separators: if sep in line_text: columns = line_text.split(sep) if len(columns) > 1: return columns # If no clear separator, try to detect aligned columns return self.detect_aligned_columns(line_text) def detect_aligned_columns(self, line_text): """Detect columns in space-aligned text""" if not line_text: return [] # Split on multiple spaces (2 or more) parts = re.split(r' +', line_text) if len(parts) > 1: return parts # Fallback: treat as single column return [line_text] def get_cell_content(self, line_text, column_index): """Get content of a specific cell in a line""" columns = self.parse_line_into_columns(line_text) if column_index < 0 or column_index >= len(columns): return "" return columns[column_index].strip() def get_table_cell_info(self, cursor_pos): """Get table cell information for speech output""" line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns: return None # Find which column we're in based on cursor x position column_index = self.get_column_index_from_x_position(line_text, cursor_pos["x"]) if column_index < 0 or column_index >= len(columns): return None # Use header if available, otherwise generic column name if self.has_header_row(): column_header = self.get_column_header(column_index) else: column_header = f"Column {column_index + 1}" return { 'column_index': column_index, 'column_header': column_header, 'cell_content': columns[column_index].strip(), 'total_columns': len(columns), 'row_number': cursor_pos["y"] + 1 } def get_column_index_from_x_position(self, line_text, x_pos): """Determine which column an x position falls into""" columns = self.parse_line_into_columns(line_text) if not columns: return 0 # Handle CSV/delimited text if ',' in line_text or '|' in line_text or ';' in line_text or '\t' in line_text: current_pos = 0 for i, column in enumerate(columns): column_end = current_pos + len(column) if current_pos <= x_pos <= column_end: return i current_pos = column_end + 1 # +1 for separator else: # Handle space-aligned text - find the column by position ranges current_pos = 0 for i, column in enumerate(columns): # Find where this column starts in the original text if i == 0: column_start = 0 else: # Find the column by searching from current position column_start = line_text.find(column.strip(), current_pos) if column_start == -1: column_start = current_pos column_end = column_start + len(column.strip()) if column_start <= x_pos <= column_end: return i current_pos = column_end # If past the end, return last column return len(columns) - 1 def sync_table_position_from_cursor(self): """Sync internal table position from current cursor position""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if cursor_pos: old_column = self.currentColumn self.currentRow = cursor_pos["y"] line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if line_text: self.currentColumn = self.get_column_index_from_x_position(line_text, cursor_pos["x"]) else: self.currentColumn = 0 self.env["runtime"]["DebugManager"].write_debug_out( f"TableManager sync: old_column={old_column}, new_column={self.currentColumn}, cursor_x={cursor_pos['x']}, cursor_y={cursor_pos['y']}", debug.DebugLevel.INFO ) def move_to_next_column(self): """Move to next column in table""" self.env["runtime"]["DebugManager"].write_debug_out( f"TableManager move_to_next_column: currentColumn={self.currentColumn}", debug.DebugLevel.INFO ) if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns: return None self.env["runtime"]["DebugManager"].write_debug_out( f"TableManager: line_text='{line_text}', columns={columns}, currentColumn={self.currentColumn}", debug.DebugLevel.INFO ) # Don't sync from cursor position - maintain our own tracking # Check if we're already at the last column if self.currentColumn >= len(columns) - 1: # At end of line - return special indicator but keep position return {"at_end": True, "current_info": self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn)} # Move to next column self.currentColumn += 1 self.env["runtime"]["DebugManager"].write_debug_out( f"TableManager: moved to column {self.currentColumn}", debug.DebugLevel.INFO ) # Return info for the new column without moving cursor position return self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn) def move_to_prev_column(self): """Move to previous column in table""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns: return None # Don't sync from cursor position - maintain our own tracking # Check if we're already at the first column if self.currentColumn <= 0: # At beginning of line - return special indicator but keep position return {"at_start": True, "current_info": self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn)} # Move to previous column self.currentColumn -= 1 # Return info for the new column without moving cursor position return self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn) def get_current_table_cell_info(self): """Get current table cell info using internal position tracking""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None return self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn) def get_table_cell_info_by_indices(self, row, column_index): """Get table cell info for specific row and column indices""" line_text = self.env["runtime"]["ScreenManager"].get_line_text(row) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns or column_index < 0 or column_index >= len(columns): return None # Always get column header (fallback to generic if needed) column_header = self.get_column_header(column_index) cell_content = columns[column_index].strip() if not cell_content: # Handle empty cells cell_content = "blank" return { 'column_index': column_index, 'column_header': column_header, 'cell_content': cell_content, 'total_columns': len(columns), 'row_number': row + 1 } def get_column_start_position(self, line_text, column_index): """Get the starting x position of a specific column""" columns = self.parse_line_into_columns(line_text) if not columns or column_index < 0 or column_index >= len(columns): return 0 # For CSV/delimited text - find the actual position in the original line if ',' in line_text or '|' in line_text or ';' in line_text or '\t' in line_text: # Determine the separator being used separator = ',' if '|' in line_text and line_text.count('|') > line_text.count(','): separator = '|' elif ';' in line_text and line_text.count(';') > line_text.count(','): separator = ';' elif '\t' in line_text: separator = '\t' # Find the position by splitting and calculating if column_index == 0: return 0 # Count characters up to the target column parts = line_text.split(separator) position = 0 for i in range(column_index): if i < len(parts): position += len(parts[i]) + 1 # +1 for separator return position else: # For space-aligned text, find the actual position of the column if column_index == 0: return 0 # Find the column text in the line target_text = columns[column_index].strip() search_start = 0 for i in range(column_index): prev_text = columns[i].strip() found_pos = line_text.find(prev_text, search_start) if found_pos != -1: search_start = found_pos + len(prev_text) column_pos = line_text.find(target_text, search_start) return column_pos if column_pos != -1 else search_start def is_cursor_within_current_cell(self, cursor_x, cursor_y): """Check if the given cursor position is within the current table cell""" if not self.is_table_mode(): return False line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_y) if not line_text: return False columns = self.parse_line_into_columns(line_text) if not columns or self.currentColumn < 0 or self.currentColumn >= len(columns): return False # Get the bounds of the current column column_start = self.get_column_start_position(line_text, self.currentColumn) column_text = columns[self.currentColumn] column_end = column_start + len(column_text) # Check if cursor is within the column bounds return column_start <= cursor_x < column_end def move_to_first_cell(self): """Move to first cell in current row""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns: return None # Set current column to first column self.currentColumn = 0 # Return info for the first column return self.get_table_cell_info_by_indices(cursor_pos["y"], 0) def move_to_last_cell(self): """Move to last cell in current row""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns: return None # Set current column to last column self.currentColumn = len(columns) - 1 # Return info for the last column return self.get_table_cell_info_by_indices(cursor_pos["y"], self.currentColumn) def move_to_first_char_in_cell(self): """Move to first character in current cell""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns or self.currentColumn < 0 or self.currentColumn >= len(columns): return None # Get column start position column_start = self.get_column_start_position(line_text, self.currentColumn) # Find first non-space character in the column column_text = columns[self.currentColumn] first_char_offset = len(column_text) - len(column_text.lstrip()) # Set cursor position to first character in cell new_x = column_start + first_char_offset self.env["runtime"]["CursorManager"].set_review_cursor_position(new_x, cursor_pos["y"]) # Get the character at the new position from fenrirscreenreader.utils import char_utils ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( new_x, cursor_pos["y"], self.env["screen"]["new_content_text"], ) return { 'cell_content': column_text.strip(), 'column_header': self.get_column_header(self.currentColumn), 'character': curr_char, 'position': 'first' } def move_to_last_char_in_cell(self): """Move to last character in current cell""" if not self.env["runtime"]["CursorManager"].is_review_mode(): return None cursor_pos = self.env["runtime"]["CursorManager"].get_review_or_text_cursor() if not cursor_pos: return None line_text = self.env["runtime"]["ScreenManager"].get_line_text(cursor_pos["y"]) if not line_text: return None columns = self.parse_line_into_columns(line_text) if not columns or self.currentColumn < 0 or self.currentColumn >= len(columns): return None # Get column start position column_start = self.get_column_start_position(line_text, self.currentColumn) column_text = columns[self.currentColumn] # Find last non-space character in the column trimmed_text = column_text.rstrip() if not trimmed_text: # If empty cell, go to column start new_x = column_start else: # Find the position of the last character new_x = column_start + len(trimmed_text) - 1 # Set cursor position to last character in cell self.env["runtime"]["CursorManager"].set_review_cursor_position(new_x, cursor_pos["y"]) # Get the character at the new position from fenrirscreenreader.utils import char_utils ( self.env["screen"]["newCursorReview"]["x"], self.env["screen"]["newCursorReview"]["y"], curr_char, ) = char_utils.get_current_char( new_x, cursor_pos["y"], self.env["screen"]["new_content_text"], ) return { 'cell_content': column_text.strip(), 'column_header': self.get_column_header(self.currentColumn), 'character': curr_char, 'position': 'last' } def reset_table_mode(self): self.set_head_line() def set_head_column_sep(self, columnSep=""): self.headColumnSep = columnSep if columnSep == "": self.noOfHeadLineColumns = 0 else: self.coun_no_of_head_columns() def coun_no_of_head_columns(self): if self.headLine and self.headColumnSep: self.noOfHeadLineColumns = len(self.headLine.split(self.headColumnSep)) def search_for_head_column_sep(self, headLine): """Find the most likely column separator in a header line""" separators = [',', '|', ';', '\t'] for sep in separators: if sep in headLine: return sep # Check for multiple spaces (aligned columns) if ' ' in headLine: return ' ' return "" def set_row_column_sep(self, columnSep=""): self.rowColumnSep = columnSep def set_head_line(self, headLine=""): self.set_head_column_sep() self.set_row_column_sep() if headLine != "": sep = self.search_for_head_column_sep(headLine) if sep != "": self.headLine = headLine self.set_head_column_sep(sep) fenrir/src/fenrirscreenreader/core/textManager.py000066400000000000000000000073431513650123000225660ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import re import string from fenrirscreenreader.core import debug class TextManager: def __init__(self): # https://regex101.com/ self.regExSingle = re.compile(r"(([^\w\s])\2{5,})") self.regExDouble = re.compile(r"([^\w\s]{2,}){5,}") def initialize(self, environment): self.env = environment def shutdown(self): pass def replace_head_lines(self, text): # fast len check for bigger typing echo if len(text) < 5: return text # more strong check, to not match if not needed: if ( len( text.strip( string.ascii_letters + string.digits + string.whitespace ) ) < 5 ): return text result = "" new_text = "" last_pos = 0 for match in self.regExDouble.finditer(text): span = match.span() new_text += text[last_pos : span[0]] number_of_chars = len(text[span[0] : span[1]]) name = text[span[0] : span[1]][:2] if not self.env["runtime"]["PunctuationManager"].is_puctuation( name[0] ): last_pos = span[1] continue if name[0] == name[1]: new_text += ( " " + str(number_of_chars) + " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[0], True) + " " ) else: new_text += ( " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[0], True) + " " + str(int(number_of_chars / 2)) + " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[1], True) + " " ) last_pos = span[1] if last_pos != 0: new_text += " " new_text += text[last_pos:] last_pos = 0 for match in self.regExSingle.finditer(new_text): span = match.span() result += new_text[last_pos : span[0]] number_of_chars = len(new_text[span[0] : span[1]]) name = new_text[span[0] : span[1]][:2] if not self.env["runtime"]["PunctuationManager"].is_puctuation( name[0] ): last_pos = span[1] continue if name[0] == name[1]: result += ( " " + str(number_of_chars) + " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[0], True) + " " ) else: result += ( " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[0], True) + " " + str(int(number_of_chars / 2)) + " " + self.env["runtime"][ "PunctuationManager" ].proceed_punctuation(name[1], True) + " " ) last_pos = span[1] if last_pos != 0: result += " " result += new_text[last_pos:] return result fenrir/src/fenrirscreenreader/core/vmenuManager.py000077500000000000000000000350261513650123000227360ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import inspect import os import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.i18n import _ from fenrirscreenreader.utils import module_utils currentdir = os.path.dirname( os.path.realpath(os.path.abspath(inspect.getfile(inspect.currentframe()))) ) fenrir_path = os.path.dirname(currentdir) class VmenuManager: def __init__(self): self.menuDict = {} self.curr_index = None self.currMenu = "" self.active = False self.reset = True self.useTimeout = True self.searchText = "" self.lastSearchTime = time.time() def initialize(self, environment): self.env = environment # use default path self.defaultVMenuPath = ( fenrir_path + "/commands/vmenu-profiles/" + self.env["runtime"]["InputManager"].get_shortcut_type() ) # if there is no user configuration if ( self.env["runtime"]["SettingsManager"].get_setting( "menu", "vmenu_path" ) != "" ): self.defaultVMenuPath = self.env["runtime"][ "SettingsManager" ].get_setting("menu", "vmenu_path") if not self.defaultVMenuPath.endswith("/"): self.defaultVMenuPath += "/" self.defaultVMenuPath += self.env["runtime"][ "InputManager" ].get_shortcut_type() self.create_menu_tree() self.closeAfterAction = False def shutdown(self): pass def clear_search_text(self): self.searchText = "" def search_entry(self, value, forceReset=False): if self.curr_index is None: return "" if self.reset or forceReset: self.clear_search_text() else: if self.useTimeout: if time.time() - self.lastSearchTime > 1: self.clear_search_text() self.searchText += value.upper() self.lastSearchTime = time.time() start_index = self.get_curr_index() while True: if not self.next_index(): return "" entry = self.get_current_entry() if entry.upper().startswith(self.searchText): return entry if start_index == self.get_curr_index(): return "" def set_curr_menu(self, currMenu=""): self.curr_index = None self.currMenu = "" if currMenu != "": currMenu += " " + _("Menu") try: t = self.menuDict[currMenu] l = list(self.menuDict.keys()) self.curr_index = [l.index(currMenu)] except Exception as e: print(e) self.currMenu = "" self.curr_index = None return if self.inc_level(): self.currMenu = currMenu else: self.currMenu = "" self.curr_index = None def get_curr_menu(self): return self.currMenu def get_active(self): return self.active def toggle_vmenu_mode(self, closeAfterAction=True): self.set_active(not self.get_active(), closeAfterAction) def set_active(self, active, closeAfterAction=True): if self.env["runtime"]["HelpManager"].is_tutorial_mode(): return self.active = active if self.active: self.closeAfterAction = closeAfterAction try: self.create_menu_tree() except Exception as e: print(e) try: if self.currMenu != "": self.set_curr_menu(self.currMenu) if self.curr_index is None: if len(self.menuDict) > 0: self.curr_index = [0] except Exception as e: print(e) try: # navigation self.env["bindings"][ str([1, ["KEY_ESC"]]) ] = "TOGGLE_VMENU_MODE" self.env["bindings"][str([1, ["KEY_UP"]])] = "PREV_VMENU_ENTRY" self.env["bindings"][ str([1, ["KEY_DOWN"]]) ] = "NEXT_VMENU_ENTRY" self.env["bindings"][ str([1, ["KEY_SPACE"]]) ] = "CURR_VMENU_ENTRY" self.env["bindings"][ str([1, ["KEY_LEFT"]]) ] = "DEC_LEVEL_VMENU" self.env["bindings"][ str([1, ["KEY_RIGHT"]]) ] = "INC_LEVEL_VMENU" self.env["bindings"][ str([1, ["KEY_ENTER"]]) ] = "EXEC_VMENU_ENTRY" # search self.env["bindings"][str([1, ["KEY_A"]])] = "SEARCH_A" self.env["bindings"][str([1, ["KEY_B"]])] = "SEARCH_B" self.env["bindings"][str([1, ["KEY_C"]])] = "SEARCH_C" self.env["bindings"][str([1, ["KEY_D"]])] = "SEARCH_D" self.env["bindings"][str([1, ["KEY_E"]])] = "SEARCH_E" self.env["bindings"][str([1, ["KEY_F"]])] = "SEARCH_F" self.env["bindings"][str([1, ["KEY_G"]])] = "SEARCH_G" self.env["bindings"][str([1, ["KEY_H"]])] = "SEARCH_H" self.env["bindings"][str([1, ["KEY_I"]])] = "SEARCH_I" self.env["bindings"][str([1, ["KEY_J"]])] = "SEARCH_J" self.env["bindings"][str([1, ["KEY_K"]])] = "SEARCH_K" self.env["bindings"][str([1, ["KEY_L"]])] = "SEARCH_L" self.env["bindings"][str([1, ["KEY_M"]])] = "SEARCH_M" self.env["bindings"][str([1, ["KEY_N"]])] = "SEARCH_N" self.env["bindings"][str([1, ["KEY_O"]])] = "SEARCH_O" self.env["bindings"][str([1, ["KEY_P"]])] = "SEARCH_P" self.env["bindings"][str([1, ["KEY_Q"]])] = "SEARCH_Q" self.env["bindings"][str([1, ["KEY_R"]])] = "SEARCH_R" self.env["bindings"][str([1, ["KEY_S"]])] = "SEARCH_S" self.env["bindings"][str([1, ["KEY_T"]])] = "SEARCH_T" self.env["bindings"][str([1, ["KEY_U"]])] = "SEARCH_U" self.env["bindings"][str([1, ["KEY_V"]])] = "SEARCH_V" self.env["bindings"][str([1, ["KEY_W"]])] = "SEARCH_W" self.env["bindings"][str([1, ["KEY_X"]])] = "SEARCH_X" self.env["bindings"][str([1, ["KEY_Y"]])] = "SEARCH_Y" self.env["bindings"][str([1, ["KEY_Z"]])] = "SEARCH_Z" # page navigation self.env["bindings"][ str([1, ["KEY_PAGEUP"]]) ] = "PAGE_UP_VMENU" self.env["bindings"][ str([1, ["KEY_PAGEDOWN"]]) ] = "PAGE_DOWN_VMENU" except Exception as e: print(e) else: try: self.curr_index = None self.env["bindings"] = self.env["runtime"][ "SettingsManager" ].get_binding_backup() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VmenuManager set_active: Error loading binding backup: " + str(e), debug.DebugLevel.ERROR, ) def create_menu_tree(self, resetIndex=True): if resetIndex: self.curr_index = None menu = self.fs_tree_to_dict(self.defaultVMenuPath) if menu: self.menuDict = menu # Add dynamic voice menus try: from fenrirscreenreader.core.dynamicVoiceMenu import ( add_dynamic_voice_menus, ) add_dynamic_voice_menus(self) except Exception as e: print(f"Error adding dynamic voice menus: {e}") # Add dynamic keyboard layout menus try: from fenrirscreenreader.core.dynamicKeyboardLayoutMenu import ( add_dynamic_keyboard_layout_menus, ) add_dynamic_keyboard_layout_menus(self) except Exception as e: print(f"Error adding dynamic keyboard layout menus: {e}") # index still valid? if self.curr_index is not None: try: r = self.get_value_by_path(self.menuDict, self.curr_index) if r == {}: self.curr_index = None except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VmenuManager create_menu_tree: Error checking menu index validity: " + str(e), debug.DebugLevel.ERROR, ) self.curr_index = None def execute_menu(self): if self.curr_index is None: return try: command = self.get_value_by_path(self.menuDict, self.curr_index) if command is not None: command.run() if self.closeAfterAction: self.set_active(False) except Exception as e: try: self.inc_level() text = self.get_current_entry() self.env["runtime"]["OutputManager"].present_text( text, interrupt=True ) except Exception as ex: self.env["runtime"]["DebugManager"].write_debug_out( "VmenuManager execute_menu: Error presenting menu text: " + str(ex), debug.DebugLevel.ERROR, ) def inc_level(self): if self.curr_index is None: return False try: r = self.get_value_by_path(self.menuDict, self.curr_index + [0]) if r == {}: return False except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VmenuManager inc_level: Error accessing menu path: " + str(e), debug.DebugLevel.ERROR, ) return False self.curr_index.append(0) return True def dec_level(self): if self.curr_index is None: return False if self.currMenu != "": if len(self.curr_index) <= 2: return False elif len(self.curr_index) == 1: return False self.curr_index = self.curr_index[: len(self.curr_index) - 1] return True def next_index(self): if self.curr_index is None: return False if self.curr_index[len(self.curr_index) - 1] + 1 >= len( self.get_nested_by_path(self.menuDict, self.curr_index[:-1]) ): self.curr_index[len(self.curr_index) - 1] = 0 else: self.curr_index[len(self.curr_index) - 1] += 1 return True def get_curr_index(self): if self.curr_index is None: return 0 return self.curr_index[len(self.curr_index) - 1] def prev_index(self): if self.curr_index is None: return False if self.curr_index[len(self.curr_index) - 1] == 0: self.curr_index[len(self.curr_index) - 1] = ( len( self.get_nested_by_path( self.menuDict, self.curr_index[:-1] ) ) - 1 ) else: self.curr_index[len(self.curr_index) - 1] -= 1 return True def page_up(self): if self.curr_index is None: return False menu_size = len( self.get_nested_by_path(self.menuDict, self.curr_index[:-1]) ) if menu_size <= 1: return False jump_size = max(1, int(menu_size * 0.1)) # 10% of menu size, minimum 1 new_index = self.curr_index[len(self.curr_index) - 1] - jump_size if new_index < 0: new_index = 0 self.curr_index[len(self.curr_index) - 1] = new_index return True def page_down(self): if self.curr_index is None: return False menu_size = len( self.get_nested_by_path(self.menuDict, self.curr_index[:-1]) ) if menu_size <= 1: return False jump_size = max(1, int(menu_size * 0.1)) # 10% of menu size, minimum 1 new_index = self.curr_index[len(self.curr_index) - 1] + jump_size if new_index >= menu_size: new_index = menu_size - 1 self.curr_index[len(self.curr_index) - 1] = new_index return True def get_current_entry(self): return self.get_keys_by_path(self.menuDict, self.curr_index)[ self.curr_index[-1] ] def fs_tree_to_dict(self, path_): for root, dirs, files in os.walk(path_): tree = { d + " " + _("Menu"): self.fs_tree_to_dict(os.path.join(root, d)) for d in dirs if not d.startswith("__") } for f in files: try: file_name, file_extension = os.path.splitext(f) file_name = file_name.split("/")[-1] if file_name.startswith("__"): continue # Skip base classes that shouldn't be loaded as commands if file_name.endswith("_base"): continue command = self.env["runtime"]["CommandManager"].load_file( root + "/" + f ) tree.update({file_name + " " + _("Action"): command}) except Exception as e: print(e) return tree # note we discontinue iteration trough os.walk def get_nested_by_path(self, complete, path): path = path.copy() if path != []: index = list(complete.keys())[path[0]] nested = self.get_nested_by_path(complete[index], path[1:]) return nested else: return complete def get_keys_by_path(self, complete, path): if not isinstance(complete, dict): return [] d = complete for i in path[:-1]: d = d[list(d.keys())[i]] return list(d.keys()) def get_value_by_path(self, complete, path): if not isinstance(complete, dict): return complete d = complete.copy() for i in path: d = d[list(d.keys())[i]] return d fenrir/src/fenrirscreenreader/fenrirVersion.py000066400000000000000000000002441513650123000222030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. version = "2026.01.28" code_name = "master" fenrir/src/fenrirscreenreader/inputDriver/000077500000000000000000000000001513650123000213115ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/inputDriver/__init__.py000066400000000000000000000000001513650123000234100ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/inputDriver/debugDriver.py000066400000000000000000000043301513650123000241250ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.inputDriver import InputDriver as inputDriver class driver(inputDriver): def __init__(self): inputDriver.__init__(self) def initialize(self, environment): self.env = environment self.env["runtime"]["InputManager"].set_shortcut_type("KEY") self._initialized = True print("Input Debug Driver: Initialized") def shutdown(self): if self._initialized: self.remove_all_devices() self._initialized = False print("Input Debug Driver: Shutdown") def get_input_event(self): time.sleep(0.1) if not self._initialized: return None print("Input Debug Driver: get_input_event") return None def write_event_buffer(self): if not self._initialized: return print("Input Debug Driver: write_event_buffer") def clear_event_buffer(self): if not self._initialized: return del self.env["input"]["event_buffer"][:] print("Input Debug Driver: clear_event_buffer") def update_input_devices(self, new_devices=None, init=False): if not self._initialized: return print("Input Debug Driver: update_input_devices") def get_led_state(self, led=0): if not self._initialized: return False return False def toggle_led_state(self, led=0): if not self._initialized: return print("Input Debug Driver: toggle_led_state") def grab_all_devices(self): if not self._initialized: return print("Input Debug Driver: grab_all_devices") def ungrab_all_devices(self): if not self._initialized: return print("Input Debug Driver: ungrab_all_devices") def remove_all_devices(self): if not self._initialized: return print("Input Debug Driver: remove_all_devices") def __del__(self): if self._initialized: self.remove_all_devices() print("Input Debug Driver: __del__") fenrir/src/fenrirscreenreader/inputDriver/dummyDriver.py000066400000000000000000000005221513650123000241710ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.inputDriver import InputDriver as inputDriver class driver(inputDriver): def __init__(self): inputDriver.__init__(self) fenrir/src/fenrirscreenreader/inputDriver/evdevDriver.py000066400000000000000000001115331513650123000241540ustar00rootroot00000000000000# Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import multiprocessing import threading import time from ctypes import c_bool from multiprocessing.sharedctypes import Value from select import select from fenrirscreenreader.core import debug from fenrirscreenreader.core import inputData from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.inputDriver import InputDriver as inputDriver _evdevAvailable = False _udevAvailable = False _evdevAvailableError = "" _udevAvailableError = "" try: import evdev from evdev import InputDevice from evdev import UInput from evdev import ecodes as e _evdevAvailable = True except Exception as e: _evdevAvailableError = str(e) try: import pyudev _udevAvailable = True except Exception as e: _udevAvailableError = str(e) class driver(inputDriver): """Linux evdev input driver for Fenrir screen reader. This driver provides access to Linux input devices through the evdev interface, allowing Fenrir to capture keyboard input, manage device grabbing for exclusive access, and inject synthetic input events. Features: - Automatic device detection and hotplug support via udev - Device grabbing to prevent input from reaching other applications - Key event mapping and filtering - UInput support for synthetic key injection - Multi-device support with thread-safe access Attributes: iDevices (dict): Map of file descriptor to InputDevice objects iDevicesFD (list): Shared list of file descriptors for multiprocessing uDevices (dict): Map of file descriptor to UInput devices gDevices (dict): Map of file descriptor to grab status iDeviceNo (int): Total number of input devices UInputinject (UInput): Device for injecting synthetic events _deviceLock (Lock): Thread lock for device access """ def __init__(self): inputDriver.__init__(self) self._manager = multiprocessing.Manager() self.iDevices = {} self.iDevicesFD = self._manager.list() self.uDevices = {} self.gDevices = {} self.iDeviceNo = 0 self.watch_dog = Value(c_bool, True) self.UInputinject = UInput() self._deviceLock = threading.Lock() def initialize(self, environment): """Initialize the evdev input driver. Sets up device monitoring, starts watchdog threads for device hotplug detection and input monitoring, and configures the input subsystem. Args: environment: Fenrir environment dictionary with runtime managers Note: Requires evdev and optionally pyudev libraries. Falls back gracefully if libraries are not available. """ self.env = environment self.env["runtime"]["InputManager"].set_shortcut_type("KEY") global _evdevAvailable global _udevAvailable global _evdevAvailableError global _udevAvailableError if not _udevAvailable: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver:" + _udevAvailableError, debug.DebugLevel.ERROR ) if not _evdevAvailable: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver:" + _evdevAvailableError, debug.DebugLevel.ERROR ) return if _udevAvailable: self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.plug_input_device_watchdog_udev ) self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.input_watchdog ) self._initialized = True def plug_input_device_watchdog_udev(self, active, event_queue): """Monitor for input device hotplug events via udev. Runs in a separate thread to detect when input devices are plugged/unplugged and generates appropriate events for device management. Args: active: Shared boolean controlling the watchdog loop event_queue: Queue for sending device events to main process Events Generated: FenrirEventType.plug_input_device: When new devices are detected Note: Filters out virtual devices and devices from assistive technologies like BRLTTY to avoid conflicts. """ context = pyudev.Context() monitor = pyudev.Monitor.from_netlink(context) monitor.filter_by(subsystem="input") monitor.start() ignore_plug = False while active.value: valid_devices = [] device = monitor.poll(1) while device: self.env["runtime"]["DebugManager"].write_debug_out( "plug_input_device_watchdog_udev:" + str(device), debug.DebugLevel.INFO, ) try: try: # FIX: Check if attributes exist before accessing them if ( hasattr(device, "name") and device.name and device.name.upper() in ["", "SPEAKUP", "FENRIR-UINPUT"] ): ignore_plug = True if ( hasattr(device, "phys") and device.phys and device.phys.upper() in ["", "SPEAKUP", "FENRIR-UINPUT"] ): ignore_plug = True if ( hasattr(device, "name") and device.name and "BRLTTY" in device.name.upper() ): ignore_plug = True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "plug_input_device_watchdog_udev CHECK NAME CRASH: " + str(e), debug.DebugLevel.ERROR, ) if not ignore_plug: virtual = ( "/sys/devices/virtual/input/" in device.sys_path ) if device.device_node: valid_devices.append( { "device": device.device_node, "virtual": virtual, } ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "plug_input_device_watchdog_udev APPEND CRASH: " + str(e), debug.DebugLevel.ERROR, ) try: poll_timeout = 1 device = monitor.poll(poll_timeout) except Exception: device = None ignore_plug = False if valid_devices: event_queue.put( { "Type": FenrirEventType.plug_input_device, "data": valid_devices, } ) return time.time() def input_watchdog(self, active, event_queue): """Main input monitoring loop. Monitors all registered input devices for key events using select(). Processes key events, maps them to Fenrir's internal format, and forwards them to the main application. Args: active: Shared boolean controlling the watchdog loop event_queue: Queue for sending input events to main process Events Generated: FenrirEventType.keyboard_input: For key press/release events Note: Uses thread-safe device access and handles device disconnection gracefully. Non-keyboard events are forwarded to UInput devices. """ try: while active.value: # Get a snapshot of devices for select() to avoid lock # contention with self._deviceLock: devices_snapshot = self.iDevices.copy() if not devices_snapshot: time.sleep(0.1) continue r, w, x = select(devices_snapshot, [], [], 0.8) event = None found_key_in_sequence = False foreward = False event_fired = False for fd in r: # Check if device still exists before accessing with self._deviceLock: if fd not in self.iDevices: continue device = self.iDevices[fd] udevice = self.uDevices.get(fd) try: event = device.read_one() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver handle_input_event: Error reading event: " + str(e), debug.DebugLevel.ERROR, ) self.remove_device(fd) continue while event: self.env["runtime"]["DebugManager"].write_debug_out( "input_watchdog: EVENT:" + str(event), debug.DebugLevel.INFO, ) self.env["input"]["event_buffer"].append( [device, udevice, event] ) if event.type == evdev.events.EV_KEY: if not found_key_in_sequence: found_key_in_sequence = True if event.code != 0: curr_map_event = self.map_event(event) if not curr_map_event: event = device.read_one() continue if not isinstance( curr_map_event["event_name"], str ): event = device.read_one() continue if curr_map_event["event_state"] in [0, 1, 2]: event_queue.put( { "Type": FenrirEventType.keyboard_input, "data": curr_map_event.copy(), } ) event_fired = True else: # Forward non-keyboard events: 2=EV_REL, 3=EV_ABS, 17=EV_LED if event.type in [2, 3, 17]: foreward = True event = device.read_one() if not found_key_in_sequence: if foreward and not event_fired: self.write_event_buffer() self.clear_event_buffer() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "INPUT WATCHDOG CRASH: " + str(e), debug.DebugLevel.ERROR ) def write_event_buffer(self): if not self._initialized: return for iDevice, uDevice, event in self.env["input"]["event_buffer"]: try: if uDevice: if self.gDevices[iDevice.fd]: self.write_u_input(uDevice, event) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver write_event_buffer: Error writing event: " + str(e), debug.DebugLevel.ERROR, ) def write_u_input(self, uDevice, event): if not self._initialized: return uDevice.write_event(event) time.sleep(0.0000002) uDevice.syn() def update_input_devices(self, new_devices=None, init=False): """Update the list of monitored input devices. Scans for available input devices and adds suitable ones based on the configured device mode. Supports filtering by device type and name matching. Args: new_devices (list, optional): Specific devices to add init (bool): Whether this is initial device setup Device Modes: - 'ALL': Monitor all keyboard devices - 'NOMICE': Monitor keyboards but exclude pointing devices - Device names: Comma-separated list of specific device names Note: Automatically filters out virtual devices, assistive technology devices, and devices with insufficient key counts. """ if init: self.remove_all_devices() device_file_list = None if new_devices and not init: if not isinstance(new_devices, list): new_devices = [new_devices] device_file_list = new_devices else: device_file_list = evdev.list_devices() if len(device_file_list) == self.iDeviceNo: return if not device_file_list: return mode = ( self.env["runtime"]["SettingsManager"] .get_setting("keyboard", "device") .upper() ) i_devices_files = [] for device in self.iDevices: i_devices_files.append(self.iDevices[device].path) event_type = evdev.events for deviceFile in device_file_list: try: if not deviceFile: continue if deviceFile == "": continue if deviceFile in i_devices_files: continue try: with open(deviceFile) as f: pass except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver update_input_devices: Error opening device file: " + str(e), debug.DebugLevel.ERROR, ) continue # 3 pos absolute # 2 pos relative # 1 Keys try: curr_device = evdev.InputDevice(deviceFile) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver createDeviceType: Error creating device: " + str(e), debug.DebugLevel.ERROR, ) continue try: # FIX: Check if attributes exist before accessing them if ( hasattr(curr_device, "name") and curr_device.name and curr_device.name.upper() in ["", "SPEAKUP", "FENRIR-UINPUT"] ): continue if ( hasattr(curr_device, "phys") and curr_device.phys and curr_device.phys.upper() in ["", "SPEAKUP", "FENRIR-UINPUT"] ): continue if ( hasattr(curr_device, "name") and curr_device.name and "BRLTTY" in curr_device.name.upper() ): continue except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver: Error checking device capabilities: " + str(e), debug.DebugLevel.ERROR, ) cap = curr_device.capabilities() if mode in ["ALL", "NOMICE"]: if event_type.EV_KEY in cap: if ( 116 in cap[event_type.EV_KEY] and len(cap[event_type.EV_KEY]) < 10 ): self.env["runtime"][ "DebugManager" ].write_debug_out( "Device Skipped (has 116):" + curr_device.name, debug.DebugLevel.INFO, ) continue # Check if device has numpad keys - use lower threshold for dedicated numpads numpad_keys = [ evdev.ecodes.KEY_KP0, evdev.ecodes.KEY_KP1, evdev.ecodes.KEY_KP2, evdev.ecodes.KEY_KP3, evdev.ecodes.KEY_KP4, evdev.ecodes.KEY_KP5, evdev.ecodes.KEY_KP6, evdev.ecodes.KEY_KP7, evdev.ecodes.KEY_KP8, evdev.ecodes.KEY_KP9, evdev.ecodes.KEY_KPPLUS, evdev.ecodes.KEY_KPMINUS, evdev.ecodes.KEY_KPASTERISK, evdev.ecodes.KEY_KPSLASH, evdev.ecodes.KEY_KPENTER, evdev.ecodes.KEY_KPDOT ] has_numpad_keys = any(key in cap[event_type.EV_KEY] for key in numpad_keys) min_key_threshold = 10 if has_numpad_keys else 60 if len(cap[event_type.EV_KEY]) < min_key_threshold: threshold_type = "numpad" if has_numpad_keys else "keyboard" self.env["runtime"][ "DebugManager" ].write_debug_out( f"Device Skipped (< {min_key_threshold} keys for {threshold_type}):" + curr_device.name, debug.DebugLevel.INFO, ) continue if mode == "ALL": self.add_device(curr_device) self.env["runtime"][ "DebugManager" ].write_debug_out( "Device added (ALL):" + self.iDevices[curr_device.fd].name, debug.DebugLevel.INFO, ) elif mode == "NOMICE": if not ( (event_type.EV_REL in cap) or (event_type.EV_ABS in cap) ): self.add_device(curr_device) self.env["runtime"][ "DebugManager" ].write_debug_out( "Device added (NOMICE):" + self.iDevices[curr_device.fd].name, debug.DebugLevel.INFO, ) else: self.env["runtime"][ "DebugManager" ].write_debug_out( "Device Skipped (NOMICE):" + curr_device.name, debug.DebugLevel.INFO, ) else: self.env["runtime"]["DebugManager"].write_debug_out( "Device Skipped (no EV_KEY):" + curr_device.name, debug.DebugLevel.INFO, ) elif curr_device.name.upper() in mode.split(","): self.add_device(curr_device) self.env["runtime"]["DebugManager"].write_debug_out( "Device added (Name):" + self.iDevices[curr_device.fd].name, debug.DebugLevel.INFO, ) except Exception as e: try: device_name = ( curr_device.name if hasattr(curr_device, "name") else "unknown" ) self.env["runtime"]["DebugManager"].write_debug_out( "Device Skipped (Exception): " + deviceFile + " " + device_name + " " + str(e), debug.DebugLevel.INFO, ) except Exception as ex: self.env["runtime"]["DebugManager"].write_debug_out( "Device Skipped (Exception): " + deviceFile + " " + str(ex), debug.DebugLevel.INFO, ) self.iDeviceNo = len(evdev.list_devices()) self.update_m_pi_devices_fd() def update_m_pi_devices_fd(self): try: for fd in self.iDevices: if fd not in self.iDevicesFD: self.iDevicesFD.append(fd) for fd in self.iDevicesFD: if fd not in self.iDevices: self.iDevicesFD.remove(fd) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver update_m_pi_devices_fd: Error updating device file descriptors: " + str(e), debug.DebugLevel.ERROR, ) def map_event(self, event): if not self._initialized: return None if not event: return None m_event = inputData.input_event try: # mute is a list = ['KEY_MIN_INTERESTING', 'KEY_MUTE'] m_event["event_name"] = evdev.ecodes.keys[event.code] if isinstance(m_event["event_name"], list): if len(m_event["event_name"]) > 0: m_event["event_name"] = m_event["event_name"][0] if isinstance(m_event["event_name"], list): if len(m_event["event_name"]) > 0: m_event["event_name"] = m_event["event_name"][0] m_event["event_value"] = event.code m_event["event_sec"] = event.sec m_event["event_usec"] = event.usec m_event["event_state"] = event.value m_event["event_type"] = event.type return m_event except Exception as e: return None def get_led_state(self, led=0): if not self.has_i_devices(): return False # 0 = Numlock # 1 = Capslock # 2 = Rollen # Use the first device with LED capability as authoritative source # to avoid inconsistent readings from multiple devices during initialization for fd, dev in self.iDevices.items(): # Check if device has LED capability (capability 17) if 17 in dev.capabilities(): return led in dev.leds() # Fallback to old behavior if no device has LED capability for fd, dev in self.iDevices.items(): if led in dev.leds(): return True return False def toggle_led_state(self, led=0): if not self.has_i_devices(): return False led_state = self.get_led_state(led) for i in self.iDevices: if self.gDevices[i]: # 17 LEDs if 17 in self.iDevices[i].capabilities(): if led_state == 1: self.iDevices[i].set_led(led, 0) else: self.iDevices[i].set_led(led, 1) def grab_all_devices(self): if not self._initialized: return True ok = True for fd in self.iDevices: if not self.gDevices[fd]: ok = ok and self.grab_device(fd) return ok def ungrab_all_devices(self): if not self._initialized: return True ok = True for fd in self.iDevices: if self.gDevices[fd]: ok = ok and self.ungrab_device(fd) return ok def create_u_input_dev(self, fd): if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): self.uDevices[fd] = None return try: test = self.uDevices[fd] return except KeyError: self.uDevices[fd] = None if self.uDevices[fd] is not None: return try: self.uDevices[fd] = UInput.from_device( self.iDevices[fd], name="fenrir-uinput", phys="fenrir-uinput" ) except Exception as e: try: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: compat fallback: " + str(e), debug.DebugLevel.WARNING, ) dev = self.iDevices[fd] cap = dev.capabilities() del cap[0] self.uDevices[fd] = UInput( cap, name="fenrir-uinput", phys="fenrir-uinput" ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: init Uinput not possible: " + str(e), debug.DebugLevel.ERROR, ) return def add_device(self, newDevice): """Add a new input device to the monitoring list. Creates the necessary data structures for device monitoring, sets up UInput forwarding if device grabbing is enabled, and initializes device state. Args: newDevice: evdev.InputDevice object to add Note: Thread-safe operation. Automatically cleans up on failure. """ self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: device added: " + str(newDevice.fd) + " " + str(newDevice), debug.DebugLevel.INFO, ) with self._deviceLock: try: self.iDevices[newDevice.fd] = newDevice self.create_u_input_dev(newDevice.fd) self.gDevices[newDevice.fd] = False except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: error adding device: " + str(e), debug.DebugLevel.ERROR, ) # if it doesnt work clean up try: del self.iDevices[newDevice.fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error removing iDevice: " + str(e), debug.DebugLevel.ERROR, ) try: del self.uDevices[newDevice.fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error removing uDevice: " + str(e), debug.DebugLevel.ERROR, ) try: del self.gDevices[newDevice.fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver add_device: Error cleaning up gDevice: " + str(e), debug.DebugLevel.ERROR, ) def grab_device(self, fd): """Grab exclusive access to an input device. Takes exclusive control of the device, preventing other applications from receiving its input. Also resets modifier key states to prevent stuck keys. Args: fd (int): File descriptor of device to grab Returns: bool: True if grab successful, False otherwise Note: Only effective if grabDevices setting is enabled. """ if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): return True # FIX: Handle exception variable scope correctly grab_error = None try: self.iDevices[fd].grab() self.gDevices[fd] = True self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: grab device (" + str(self.iDevices[fd].name) + ")", debug.DebugLevel.INFO, ) # Reset modifier keys on successful grab if self.uDevices[fd]: modifier_keys = [ e.KEY_LEFTCTRL, e.KEY_RIGHTCTRL, e.KEY_LEFTALT, e.KEY_RIGHTALT, e.KEY_LEFTSHIFT, e.KEY_RIGHTSHIFT, ] for key in modifier_keys: try: self.uDevices[fd].write(e.EV_KEY, key, 0) # 0 = key up self.uDevices[fd].syn() except Exception as mod_error: self.env["runtime"]["DebugManager"].write_debug_out( "Failed to reset modifier key: " + str(mod_error), debug.DebugLevel.WARNING, ) except IOError: if not self.gDevices[fd]: return False except Exception as ex: grab_error = ex if grab_error: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: grabing not possible: " + str(grab_error), debug.DebugLevel.ERROR, ) return False return True def ungrab_device(self, fd): """Release exclusive access to an input device. Returns control of the device to the system, allowing other applications to receive its input. Args: fd (int): File descriptor of device to ungrab Returns: bool: True if ungrab successful, False otherwise """ if not self.env["runtime"]["SettingsManager"].get_setting_as_bool( "keyboard", "grab_devices" ): return True # FIX: Handle exception variable scope correctly ungrab_error = None try: self.iDevices[fd].ungrab() self.gDevices[fd] = False self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: ungrab device (" + str(self.iDevices[fd].name) + ")", debug.DebugLevel.INFO, ) except IOError: if self.gDevices[fd]: return False except Exception as ex: ungrab_error = ex if ungrab_error: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: ungrabing not possible: " + str(ungrab_error), debug.DebugLevel.ERROR, ) return False return True def remove_device(self, fd): """Remove an input device from monitoring. Cleanly removes a device by ungrabbing it, closing file handles, and cleaning up all associated data structures. Args: fd (int): File descriptor of device to remove Note: Thread-safe operation with comprehensive error handling. """ with self._deviceLock: try: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: device removed: " + str(fd) + " " + str(self.iDevices[fd]), debug.DebugLevel.INFO, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "InputDriver evdev: device removed: " + str(fd) + " Error: " + str(e), debug.DebugLevel.INFO, ) self.clear_event_buffer() try: self.ungrab_device(fd) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error ungrabbing device " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) try: self.iDevices[fd].close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error closing iDevice " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) try: self.uDevices[fd].close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error closing uDevice " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) try: del self.iDevices[fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error deleting iDevice " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) try: del self.uDevices[fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error deleting uDevice " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) try: del self.gDevices[fd] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver remove_device: Error deleting gDevice " + str(fd) + ": " + str(e), debug.DebugLevel.ERROR, ) self.update_m_pi_devices_fd() def has_i_devices(self): if not self._initialized: return False if not self.iDevices: return False if len(self.iDevices) == 0: return False return True def send_key(self, key, state): """Inject a synthetic key event. Sends a key press or release event using UInput. Used for features like key forwarding and macro execution. Args: key (str): Key name (e.g., 'KEY_A') state (int): Key state (0=release, 1=press, 2=repeat) """ if not self._initialized: return try: self.UInputinject.write(e.EV_KEY, e.ecodes[key], state) self.UInputinject.syn() except Exception as ex: self.env["runtime"]["DebugManager"].write_debug_out( "evdevDriver send_key: Error sending key " + str(key) + ": " + str(ex), debug.DebugLevel.ERROR, ) def remove_all_devices(self): if not self.has_i_devices(): return devices = self.iDevices.copy() for fd in devices: self.remove_device(fd) self.iDevices.clear() self.uDevices.clear() self.gDevices.clear() self.iDeviceNo = 0 fenrir/src/fenrirscreenreader/inputDriver/ptyDriver.py000066400000000000000000000160251513650123000236570ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.inputDriver import InputDriver as inputDriver class driver(inputDriver): """PTY (Pseudo-terminal) input driver for Fenrir screen reader. This driver provides input handling for terminal emulation environments where direct device access (evdev) is not available or appropriate. It uses byte-based input processing instead of key event processing. This is primarily used when running Fenrir in terminal emulators, desktop environments, or other contexts where traditional TTY device access is not available. Features: - Byte-based input processing - Terminal emulation compatibility - Simplified input handling for non-TTY environments """ def __init__(self): self._is_initialized = False inputDriver.__init__(self) def initialize(self, environment): """Initialize the PTY input driver. Sets the input manager to use byte-based shortcuts instead of key-based shortcuts, enabling proper operation in terminal emulation environments. Args: environment: Fenrir environment dictionary Returns: bool: True if initialization successful, False otherwise """ try: if environment is None: raise ValueError("Environment cannot be None") self.env = environment # Validate required managers are available if "runtime" not in self.env: raise ValueError("Runtime environment missing") if "InputManager" not in self.env["runtime"]: raise ValueError("InputManager not available") self.env["runtime"]["InputManager"].set_shortcut_type("BYTE") self._is_initialized = True self.env["runtime"]["DebugManager"].write_debug_out( "PTY inputDriver: Initialized with byte-based shortcuts", debug.DebugLevel.INFO ) return True except Exception as e: # Log error if possible, otherwise fallback to print try: if hasattr(self, 'env') and self.env and "runtime" in self.env: self.env["runtime"]["DebugManager"].write_debug_out( f"PTY inputDriver: Initialization failed: {e}", debug.DebugLevel.ERROR ) else: print(f"PTY inputDriver initialization error: {e}") except: print(f"PTY inputDriver initialization error: {e}") self._is_initialized = False return False def shutdown(self): """Shutdown the PTY input driver. Performs cleanup operations when the driver is being stopped. For PTY driver, this involves cleaning up any resources and logging the shutdown. """ if not self._is_initialized: return try: self.env["runtime"]["DebugManager"].write_debug_out( "PTY inputDriver: Shutting down", debug.DebugLevel.INFO ) except Exception as e: # Fallback logging if debug manager is unavailable print(f"PTY inputDriver shutdown error: {e}") finally: self._is_initialized = False def get_input_event(self): """Get input event from PTY. For PTY driver, input events are handled through the byte-based shortcut system rather than direct device events. This method returns None as PTY input is processed through the screen driver and InputManager's byte processing. Returns: None: PTY driver uses byte-based processing, not event-based """ return None def is_device_connected(self): """Check if PTY input device is connected. For PTY driver, the "device" is the terminal interface itself, which is considered connected if the driver is initialized. Returns: bool: True if driver is initialized, False otherwise """ return self._is_initialized def get_device_name(self): """Get the name of the PTY input device. Returns: str: Human-readable name of the PTY input device """ return "PTY (Pseudo-terminal) Input" def grab_devices(self, grab=True): """Grab or release input devices. For PTY driver, device grabbing is not applicable since input is processed through terminal emulation rather than direct device access. Args: grab (bool): Whether to grab (True) or release (False) devices Returns: bool: Always returns True for PTY driver (no-op success) """ if not self._is_initialized: return False action = "grab" if grab else "release" self.env["runtime"]["DebugManager"].write_debug_out( f"PTY inputDriver: {action} devices (no-op for PTY)", debug.DebugLevel.INFO ) return True def has_device_detection(self): """Check if driver supports device detection. PTY driver does not support dynamic device detection since it operates on the terminal interface directly. Returns: bool: Always False for PTY driver """ return False def get_device_list(self): """Get list of available input devices. For PTY driver, there is only one logical device - the terminal interface itself. Returns: list: Single-item list containing PTY device info """ if not self._is_initialized: return [] return [{ 'name': 'PTY Terminal', 'path': '/dev/pts/*', 'type': 'terminal', 'connected': True }] def get_led_state(self, led_mask=None): """Get LED state information. PTY driver cannot access LED states since it operates through terminal emulation rather than direct hardware access. Args: led_mask: LED mask parameter (ignored for PTY) Returns: dict: Empty dict (no LED access for PTY) """ return {} def set_led_state(self, led_dict): """Set LED states. PTY driver cannot control LEDs since it operates through terminal emulation rather than direct hardware access. Args: led_dict (dict): LED state dictionary (ignored for PTY) Returns: bool: Always False (LED control not supported) """ return False fenrir/src/fenrirscreenreader/remoteDriver/000077500000000000000000000000001513650123000214455ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/remoteDriver/__init__.py000077500000000000000000000000001513650123000235470ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/remoteDriver/dummyDriver.py000066400000000000000000000005121513650123000243240ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.remoteDriver import RemoteDriver as remoteDriver class driver(remoteDriver): def __init__(self): remoteDriver.__init__(self) fenrir/src/fenrirscreenreader/remoteDriver/tcpDriver.py000066400000000000000000000066311513650123000237670ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os import os.path import select import socket from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.remoteDriver import RemoteDriver as remoteDriver class driver(remoteDriver): def __init__(self): remoteDriver.__init__(self) def initialize(self, environment): self.env = environment # Use threading instead of multiprocessing to avoid pickle issues # with self.env (which contains unpicklable file handles) self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.watch_dog, multiprocess=False ) def watch_dog(self, active, event_queue): # echo "command say this is a test" | nc localhost 22447 self.fenrirSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.fenrirSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.fenrirSock.settimeout(5.0) # Prevent hanging on slow clients self.host = "127.0.0.1" self.port = self.env["runtime"]["SettingsManager"].get_setting_as_int( "remote", "port" ) self.fenrirSock.bind((self.host, self.port)) self.fenrirSock.listen(1) while active.value: try: r, _, _ = select.select([self.fenrirSock], [], [], 0.8) except select.error: break if r == []: continue if self.fenrirSock in r: client_sock, client_addr = self.fenrirSock.accept() # Ensure client socket is always closed to prevent resource # leaks try: try: rawdata = client_sock.recv(8129) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "tcpDriver watch_dog: Error receiving data from " "client: " + str(e), debug.DebugLevel.ERROR, ) rawdata = b"" # Set default empty data if recv fails try: data = rawdata.decode("utf-8").rstrip().lstrip() event_queue.put( {"Type": FenrirEventType.remote_incomming, "data": data} ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "tcpDriver watch_dog: Error decoding/queuing data: " + str(e), debug.DebugLevel.ERROR, ) finally: # Always close client socket, even if data processing fails try: client_sock.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "tcpDriver watch_dog: Error closing client socket: " + str(e), debug.DebugLevel.ERROR, ) if self.fenrirSock: self.fenrirSock.close() self.fenrirSock = None fenrir/src/fenrirscreenreader/remoteDriver/unixDriver.py000066400000000000000000000105611513650123000241610ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import os import os.path import select import socket from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.remoteDriver import RemoteDriver as remoteDriver class driver(remoteDriver): def __init__(self): remoteDriver.__init__(self) def initialize(self, environment): self.env = environment # Use threading instead of multiprocessing to avoid pickle issues # with self.env (which contains unpicklable file handles) self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.watch_dog, multiprocess=False ) def watch_dog(self, active, event_queue): # echo "command say this is a test" | socat - # UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock socket_file = "" try: socket_file = self.env["runtime"]["SettingsManager"].get_setting( "remote", "socket_file" ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "unixDriver watch_dog: Error getting socket file setting: " + str(e), debug.DebugLevel.ERROR, ) if socket_file == "": if ( self.env["runtime"]["SettingsManager"].get_setting( "screen", "driver" ) == "vcsaDriver" ): socket_file = "/tmp/fenrirscreenreader-deamon.sock" else: socket_file = ( "/tmp/fenrirscreenreader-" + str(os.getppid()) + ".sock" ) if os.path.exists(socket_file): os.unlink(socket_file) self.fenrirSock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.fenrirSock.bind(socket_file) os.chmod(socket_file, 0o666) # Allow all users to read/write self.fenrirSock.listen(1) while active.value: # Check if the client is still connected and if data is available: try: r, _, _ = select.select([self.fenrirSock], [], [], 0.8) except select.error: break if r == []: continue if self.fenrirSock in r: client_sock, client_addr = self.fenrirSock.accept() # Ensure client socket is always closed to prevent resource # leaks try: try: rawdata = client_sock.recv(8129) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "unixDriver watch_dog: Error receiving data from " "client: " + str(e), debug.DebugLevel.ERROR, ) rawdata = b"" # Set default empty data if recv fails try: data = rawdata.decode("utf-8").rstrip().lstrip() event_queue.put( { "Type": FenrirEventType.remote_incomming, "data": data, } ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "unixDriver watch_dog: Error decoding/queuing data: " + str(e), debug.DebugLevel.ERROR, ) finally: # Always close client socket, even if data processing fails try: client_sock.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "unixDriver watch_dog: Error closing client socket: " + str(e), debug.DebugLevel.ERROR, ) if self.fenrirSock: self.fenrirSock.close() self.fenrirSock = None if os.path.exists(socket_file): os.unlink(socket_file) fenrir/src/fenrirscreenreader/screenDriver/000077500000000000000000000000001513650123000214315ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/screenDriver/__init__.py000077500000000000000000000000001513650123000235330ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/screenDriver/dummyDriver.py000066400000000000000000000005121513650123000243100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.screenDriver import ScreenDriver as screenDriver class driver(screenDriver): def __init__(self): screenDriver.__init__(self) fenrir/src/fenrirscreenreader/screenDriver/ptyDriver.py000066400000000000000000000543651513650123000240100ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import fcntl import getpass import os import pty import shlex import signal import struct import sys import termios import threading import time import tty from select import select import pyte from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.screenDriver import ScreenDriver as screenDriver from fenrirscreenreader.utils import screen_utils # PTY Driver Constants class PTYConstants: # Timeouts (in seconds) DEFAULT_READ_TIMEOUT = 0.3 INPUT_READ_TIMEOUT = 0.01 OUTPUT_READ_TIMEOUT = 0.05 # Faster than default but allows for network lag SELECT_TIMEOUT = 0.05 PROCESS_TERMINATION_TIMEOUT = 3.0 PROCESS_KILL_DELAY = 0.5 # Polling intervals (in seconds) MIN_POLL_INTERVAL = 0.001 # Limits MAX_TERMINAL_LINES = 10000 DEFAULT_READ_BUFFER_SIZE = 65536 INPUT_BUFFER_SIZE = 4096 # Error codes IO_ERROR_ERRNO = 5 class FenrirScreen(pyte.Screen): def set_margins(self, *args, **kwargs): kwargs.pop("private", None) super(FenrirScreen, self).set_margins(*args, **kwargs) class Terminal: def __init__(self, columns, lines, p_in, env=None): self.text = "" self.attributes = None self.screen = FenrirScreen(columns, lines) self.env = env # Environment for proper logging # Pre-create default attribute template to avoid repeated allocation self._default_attribute = [ "default", "default", False, False, False, False, False, False, "default", "default" ] self.screen.write_process_input = lambda data: p_in.write( data.encode() ) self.stream = pyte.ByteStream() self.stream.attach(self.screen) def _log_error(self, message, level=None): """Log error message using proper debug manager if available.""" if self.env and "runtime" in self.env and "DebugManager" in self.env["runtime"]: try: log_level = level if level else debug.DebugLevel.ERROR self.env["runtime"]["DebugManager"].write_debug_out( f"PTY Terminal: {message}", log_level ) return except Exception: pass # Fallback to print if debug manager fails # Fallback logging when debug manager unavailable print(f"PTY Terminal: {message}") def feed(self, data): self.stream.feed(data) def update_attributes(self, initialize=False): buffer = self.screen.buffer lines = None if not initialize: lines = self.screen.dirty else: lines = range(self.screen.lines) try: self.attributes = [ [ list(attribute[1:]) + [False, "default", "default"] if len(attribute) > 1 else [False, "default", "default"] for attribute in line.values() ] for line in buffer.values() ] except Exception as e: self._log_error(f"Error initializing attributes: {e}") # Fallback to empty attributes self.attributes = [[] for _ in range(self.screen.lines)] for y in lines: # Validate y is within reasonable bounds (prevent memory exhaustion) if y >= PTYConstants.MAX_TERMINAL_LINES: self._log_error( f"Line index {y} exceeds maximum {PTYConstants.MAX_TERMINAL_LINES}, " f"skipping attribute update", debug.DebugLevel.WARNING ) continue # Check if line y exists in buffer before accessing it if y not in buffer: # Only log this occasionally to prevent spam if y % 10 == 0: # Log every 10th missing line # Pre-format string to avoid repeated f-string operations line_range = f"{y}-{y+9}" self._log_error( f"Lines {line_range} not found in buffer, skipping attribute updates", debug.DebugLevel.WARNING ) continue # Ensure attributes array is large enough for line y while len(self.attributes) <= y: self.attributes.append([]) try: self.attributes[y] = [ list(attribute[1:]) + [False, "default", "default"] for attribute in (buffer[y].values()) ] except Exception as e: self._log_error(f"Error updating attributes for line {y}: {e}") # Initialize with empty attributes if update fails self.attributes[y] = [] if len(self.attributes[y]) < self.screen.columns: diff = self.screen.columns - len(self.attributes[y]) # Use pre-created template for efficiency self.attributes[y] += [self._default_attribute[:] for _ in range(diff)] def resize(self, lines, columns): self.screen.resize(lines, columns) self.set_cursor() self.update_attributes(True) def set_cursor(self, x=-1, y=-1): # Determine target cursor position x_pos = x if x != -1 else self.screen.cursor.x y_pos = y if y != -1 else self.screen.cursor.y # Validate and clamp cursor position to screen bounds max_x = max(0, self.screen.columns - 1) max_y = max(0, self.screen.lines - 1) self.screen.cursor.x = max(0, min(x_pos, max_x)) self.screen.cursor.y = max(0, min(y_pos, max_y)) def get_screen_content(self): cursor = self.screen.cursor # Only regenerate text if screen is dirty or text doesn't exist if not hasattr(self, 'text') or self.screen.dirty: self.text = "\n".join(self.screen.display) self.update_attributes(self.attributes is None) self.screen.dirty.clear() # Return screen content without unnecessary copying # Only copy attributes if they exist and need protection screen_data = { "cursor": (cursor.x, cursor.y), "lines": self.screen.lines, "columns": self.screen.columns, "text": self.text, "attributes": self.attributes[:] if self.attributes else [], # Shallow copy only if needed "screen": "pty", "screenUpdateTime": time.time(), } return screen_data class driver(screenDriver): def __init__(self): screenDriver.__init__(self) self.signalPipe = os.pipe() self.p_out = None self.terminal = None self.p_pid = -1 self.terminal_lock = threading.Lock() # Synchronize terminal operations signal.signal(signal.SIGWINCH, self.handle_sigwinch) # Runtime configuration storage self.pty_config = {} def _load_pty_settings(self): """Load PTY-specific settings from configuration with fallbacks to defaults.""" try: settings_manager = self.env["runtime"]["SettingsManager"] # Load timeout settings with defaults self.pty_config = { 'input_timeout': float(settings_manager.get_setting( 'screen', 'ptyInputTimeout', PTYConstants.INPUT_READ_TIMEOUT )), 'output_timeout': float(settings_manager.get_setting( 'screen', 'ptyOutputTimeout', PTYConstants.OUTPUT_READ_TIMEOUT )), 'select_timeout': float(settings_manager.get_setting( 'screen', 'ptySelectTimeout', PTYConstants.SELECT_TIMEOUT )), 'process_termination_timeout': float(settings_manager.get_setting( 'screen', 'ptyProcessTimeout', PTYConstants.PROCESS_TERMINATION_TIMEOUT )), 'poll_interval': float(settings_manager.get_setting( 'screen', 'ptyPollInterval', PTYConstants.MIN_POLL_INTERVAL )) } self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Loaded configuration: {self.pty_config}", debug.DebugLevel.INFO ) except Exception as e: # Fallback to constants if settings fail self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Failed to load settings, using defaults: {e}", debug.DebugLevel.WARNING ) self.pty_config = { 'input_timeout': PTYConstants.INPUT_READ_TIMEOUT, 'output_timeout': PTYConstants.OUTPUT_READ_TIMEOUT, 'select_timeout': PTYConstants.SELECT_TIMEOUT, 'process_termination_timeout': PTYConstants.PROCESS_TERMINATION_TIMEOUT, 'poll_interval': PTYConstants.MIN_POLL_INTERVAL } def initialize(self, environment): self.env = environment self.command = self.env["runtime"]["SettingsManager"].get_setting( "general", "shell" ) # Load configurable timeouts from settings self._load_pty_settings() self.shortcutType = self.env["runtime"][ "InputManager" ].get_shortcut_type() self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.terminal_emulation ) def get_curr_screen(self): self.env["screen"]["oldTTY"] = "pty" self.env["screen"]["newTTY"] = "pty" def inject_text_to_screen(self, msg_bytes, screen=None): if not screen: screen = self.p_out.fileno() if isinstance(msg_bytes, str): msg_bytes = bytes(msg_bytes, "UTF-8") os.write(screen, msg_bytes) def get_session_information(self): self.env["screen"]["autoIgnoreScreens"] = [] self.env["general"]["prev_user"] = getpass.getuser() self.env["general"]["curr_user"] = getpass.getuser() def read_all(self, fd, timeout=PTYConstants.DEFAULT_READ_TIMEOUT, interruptFd=None, len=PTYConstants.DEFAULT_READ_BUFFER_SIZE): """Read all available data from file descriptor with efficient polling. Uses progressively longer wait times to balance responsiveness with CPU usage. """ msg_bytes = b"" fd_list = [fd] if interruptFd: fd_list.append(interruptFd) starttime = time.time() poll_timeout = self.pty_config.get('poll_interval', PTYConstants.MIN_POLL_INTERVAL) # Use configured interval while True: # Use consistent short polling for responsiveness r = screen_utils.has_more_what(fd_list, poll_timeout) # Nothing more to read if fd not in r: # Check overall timeout if (time.time() - starttime) >= timeout: break continue try: data = os.read(fd, len) if data == b"": raise EOFError msg_bytes += data except OSError as e: self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver read_all: OS error reading from fd {fd}: {e}", debug.DebugLevel.ERROR ) # For I/O errors, exit immediately to prevent endless retry loops if e.errno == PTYConstants.IO_ERROR_ERRNO: # Input/output error self.env["runtime"]["DebugManager"].write_debug_out( "PTY screenDriver: Terminal connection lost, stopping read loop", debug.DebugLevel.ERROR ) raise EOFError("Terminal connection lost") break # Exit on interrupt available if interruptFd and interruptFd in r: break # Check overall timeout if (time.time() - starttime) >= timeout: break return msg_bytes def open_terminal(self, columns, lines, command): p_pid, master_fd = pty.fork() if p_pid == 0: # Child. argv = shlex.split(command) env = os.environ.copy() # values are VT100,xterm-256color,linux try: if env["TERM"] == "": env["TERM"] = "linux" except Exception as e: # Child process doesn't have access to debug manager # Use fallback logging with more context print( f"ptyDriver open_terminal (child): TERM environment error: {e}" ) env["TERM"] = "linux" os.execvpe(argv[0], argv, env) # File-like object for I/O with the child process aka command. p_out = os.fdopen(master_fd, "w+b", 0) return Terminal(columns, lines, p_out, self.env), p_pid, p_out def resize_terminal(self, fd): s = struct.pack("HHHH", 0, 0, 0, 0) s = fcntl.ioctl(0, termios.TIOCGWINSZ, s) fcntl.ioctl(fd, termios.TIOCSWINSZ, s) lines, columns, _, _ = struct.unpack("hhhh", s) return lines, columns def get_terminal_size(self, fd): s = struct.pack("HHHH", 0, 0, 0, 0) lines, columns, _, _ = struct.unpack( "HHHH", fcntl.ioctl(fd, termios.TIOCGWINSZ, s) ) return lines, columns def handle_sigwinch(self, *args): os.write(self.signalPipe[1], b"w") def terminal_emulation(self, active, event_queue): try: old_attr = termios.tcgetattr(sys.stdin) tty.setraw(0) lines, columns = self.get_terminal_size(0) if self.command == "": self.command = screen_utils.get_shell() self.terminal, self.p_pid, self.p_out = self.open_terminal( columns, lines, self.command ) lines, columns = self.resize_terminal(self.p_out) self.terminal.resize(lines, columns) fd_list = [sys.stdin, self.p_out, self.signalPipe[0]] while active.value: r, _, _ = select(fd_list, [], [], self.pty_config.get('select_timeout', PTYConstants.SELECT_TIMEOUT)) # Configurable timeout # none if r == []: continue # signals if self.signalPipe[0] in r: os.read(self.signalPipe[0], 1) lines, columns = self.resize_terminal(self.p_out) self.terminal.resize(lines, columns) # input if sys.stdin in r: try: msg_bytes = self.read_all(sys.stdin.fileno(), timeout=self.pty_config.get('input_timeout', PTYConstants.INPUT_READ_TIMEOUT), len=PTYConstants.INPUT_BUFFER_SIZE) except (EOFError, OSError): event_queue.put( { "Type": FenrirEventType.stop_main_loop, "data": None, } ) break if self.shortcutType == "KEY": try: self.inject_text_to_screen(msg_bytes) except Exception as e: self.env["runtime"][ "DebugManager" ].write_debug_out( "ptyDriver getInputData: Error injecting text to screen: " + str(e), debug.DebugLevel.ERROR, ) event_queue.put( { "Type": FenrirEventType.stop_main_loop, "data": None, } ) break else: event_queue.put( { "Type": FenrirEventType.byte_input, "data": msg_bytes, } ) # output if self.p_out in r: try: msg_bytes = self.read_all( self.p_out.fileno(), timeout=self.pty_config.get('output_timeout', PTYConstants.OUTPUT_READ_TIMEOUT), interruptFd=sys.stdin.fileno() ) except (EOFError, OSError): event_queue.put( { "Type": FenrirEventType.stop_main_loop, "data": None, } ) break # Synchronize terminal operations to prevent race conditions with self.terminal_lock: # Feed data to terminal and get consistent screen state self.terminal.feed(msg_bytes) screen_content = self.terminal.get_screen_content() # Send screen update event with consistent state event_queue.put( { "Type": FenrirEventType.screen_update, "data": screen_utils.create_screen_event_data( screen_content ), } ) # Inject to actual screen (outside lock to avoid blocking) self.inject_text_to_screen( msg_bytes, screen=sys.stdout.fileno() ) except Exception as e: # Process died? self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver terminal_emulation: Exception occurred: {e}", debug.DebugLevel.ERROR ) event_queue.put( {"Type": FenrirEventType.stop_main_loop, "data": None} ) finally: self._safe_cleanup_process() self._safe_cleanup_resources(old_attr) event_queue.put( {"Type": FenrirEventType.stop_main_loop, "data": None} ) def _safe_cleanup_process(self): """Safely terminate the child process with timeout and fallback to SIGKILL.""" if not hasattr(self, 'p_pid') or self.p_pid is None: return try: # Check if process is still alive os.kill(self.p_pid, 0) # Signal 0 checks if process exists except OSError: # Process already dead self.p_pid = None return try: # Try graceful termination first self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Terminating process {self.p_pid} gracefully", debug.DebugLevel.INFO ) os.kill(self.p_pid, signal.SIGTERM) # Wait for graceful termination timeout = self.pty_config.get('process_termination_timeout', PTYConstants.PROCESS_TERMINATION_TIMEOUT) start_time = time.time() while time.time() - start_time < timeout: try: os.kill(self.p_pid, 0) # Check if still alive time.sleep(0.1) except OSError: # Process terminated gracefully self.p_pid = None return # Process didn't terminate gracefully, use SIGKILL self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Process {self.p_pid} didn't terminate gracefully, using SIGKILL", debug.DebugLevel.WARNING ) os.kill(self.p_pid, signal.SIGKILL) time.sleep(PTYConstants.PROCESS_KILL_DELAY) # Give it a moment except OSError as e: self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Error terminating process {self.p_pid}: {e}", debug.DebugLevel.ERROR ) finally: self.p_pid = None def _safe_cleanup_resources(self, old_attr=None): """Safely clean up file descriptors and terminal attributes.""" # Close output pipe safely if hasattr(self, 'p_out') and self.p_out is not None: try: self.p_out.close() self.env["runtime"]["DebugManager"].write_debug_out( "PTY screenDriver: Closed output pipe", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Error closing output pipe: {e}", debug.DebugLevel.ERROR ) finally: self.p_out = None # Restore terminal attributes safely if old_attr is not None: try: termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_attr) self.env["runtime"]["DebugManager"].write_debug_out( "PTY screenDriver: Restored terminal attributes", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"PTY screenDriver: Error restoring terminal attributes: {e}", debug.DebugLevel.ERROR ) def get_curr_application(self): pass fenrir/src/fenrirscreenreader/screenDriver/vcsaDriver.py000066400000000000000000001353421513650123000241230ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # attrib: # http://rampex.ihep.su/Linux/linux_howto/html/tutorials/mini/Colour-ls-6.html # 0 = black, 1 = blue, 2 = green, 3 = cyan, 4 = red, 5 = purple, 6 = brown/yellow, 7 = white. # https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py # blink = 5 if attr & 1 else 0 # bold = 1 if attr & 16 else 0 import fcntl import glob import os import select import subprocess import termios import time from array import array from fcntl import ioctl from struct import pack from struct import unpack from struct import unpack_from import dbus from fenrirscreenreader.core import debug from fenrirscreenreader.core.eventData import FenrirEventType from fenrirscreenreader.core.screenDriver import ScreenDriver as screenDriver from fenrirscreenreader.utils import screen_utils class driver(screenDriver): """Linux VCSA (Virtual Console Screen Access) driver for Fenrir screen reader. This driver provides access to Linux virtual consoles (TTYs) through the VCSA interface, allowing real-time monitoring of screen content and cursor position. It supports both text content extraction and color/attribute detection. The driver monitors multiple virtual consoles simultaneously and can detect: - Screen content changes (text updates) - Cursor movement - TTY switching - Text attributes (colors, bold, etc.) - Session information via D-Bus/logind Attributes: ListSessions: D-Bus method for listing login sessions sysBus: D-Bus system bus connection charmap: Character mapping for text decoding bgColorValues: Background color value mappings fgColorValues: Foreground color value mappings hichar: High character mask for Unicode support """ def __init__(self): screenDriver.__init__(self) self.ListSessions = None self.sysBus = None self.charmap = {} self.bgColorValues = { 0: "black", 1: "blue", 2: "green", 3: "cyan", 4: "red", 5: "magenta", 6: "brown/yellow", 7: "white", } self.fgColorValues = { 0: "black", 1: "blue", 2: "green", 3: "cyan", 4: "red", 5: "magenta", 6: "brown/yellow", 7: "light gray", 8: "dark gray", 9: "light blue", 10: "light green", 11: "light cyan", 12: "light red", 13: "light magenta", 14: "light yellow", 15: "white", } self.hichar = None try: # set workaround for paste clipboard -> inject_text_to_screen subprocess.run( ["sysctl", "dev.tty.legacy_tiocsti=1"], check=False, capture_output=True, timeout=5, ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver shutdown: Error running fgconsole: " + str(e), debug.DebugLevel.ERROR, ) def initialize(self, environment): """Initialize the VCSA driver with the given environment. Sets up default attributes, starts the screen monitoring watchdog process, and prepares the driver for screen content monitoring. Args: environment: The Fenrir environment dictionary containing runtime managers and configuration settings. """ self.env = environment self.env["runtime"]["AttributeManager"].append_default_attributes( [ self.fgColorValues[7], # fg self.bgColorValues[0], # bg False, # bold False, # italics False, # underscore False, # strikethrough False, # reverse False, # blink "default", # fontsize "default", # fontfamily ] ) # end attribute ) # Use threading instead of multiprocessing to avoid pickle issues # with self.env (which contains unpicklable file handles) self.env["runtime"]["ProcessManager"].add_custom_event_thread( self.update_watchdog, multiprocess=False ) def get_curr_screen(self): """Get the currently active TTY number. Reads from /sys/devices/virtual/tty/tty0/active to determine which virtual console is currently active and updates the environment. Updates: env['screen']['oldTTY']: Previous TTY number env['screen']['newTTY']: Current TTY number """ self.env["screen"]["oldTTY"] = self.env["screen"]["newTTY"] try: with open( "/sys/devices/virtual/tty/tty0/active", "r" ) as currScreenFile: self.env["screen"]["newTTY"] = str(currScreenFile.read()[3:-1]) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( str(e), debug.DebugLevel.ERROR ) def inject_text_to_screen(self, text, screen=None): """Inject text into the specified screen as if typed by user. Uses the TIOCSTI ioctl to simulate keystrokes on the target TTY. This is primarily used for clipboard paste functionality. Args: text (str): Text to inject into the screen screen (str, optional): Target screen device (e.g., '/dev/tty1'). If None, uses current TTY. Note: Requires appropriate permissions and may need legacy_tiocsti=1 kernel parameter on newer systems. """ use_screen = "/dev/tty" + self.env["screen"]["newTTY"] if screen is not None: use_screen = screen with open(use_screen, "w") as fd: text_bytes = text.encode('utf-8') for byte in text_bytes: fcntl.ioctl(fd, termios.TIOCSTI, bytes([byte])) def get_session_information(self): """Retrieve session information via D-Bus logind interface. Connects to systemd-logind to gather information about active sessions, including session types and TTY assignments. This helps identify which screens should be automatically ignored (e.g., X11 sessions). Updates: env['screen']['autoIgnoreScreens']: List of screens to ignore env['general']['curr_user']: Current user for active session env['general']['prev_user']: Previous user Note: Gracefully handles cases where logind is not available. """ self.env["screen"]["autoIgnoreScreens"] = [] try: if not self.sysBus: self.sysBus = dbus.SystemBus() obj = self.sysBus.get_object( "org.freedesktop.login1", "/org/freedesktop/login1" ) inf = dbus.Interface(obj, "org.freedesktop.login1.Manager") self.ListSessions = inf.get_dbus_method("ListSessions") sessions = self.ListSessions() for session in sessions: obj = self.sysBus.get_object( "org.freedesktop.login1", session[4] ) inf = dbus.Interface(obj, "org.freedesktop.DBus.Properties") session_type = inf.Get( "org.freedesktop.login1.Session", "Type" ) screen = str(inf.Get("org.freedesktop.login1.Session", "VTNr")) if screen == "": screen = str( inf.Get("org.freedesktop.login1.Session", "TTY") ) screen = screen[screen.upper().find("TTY") + 3 :] if screen == "": self.env["runtime"]["DebugManager"].write_debug_out( "No TTY found for session:" + session[4], debug.DebugLevel.ERROR, ) return if session_type.upper() != "TTY": self.env["screen"]["autoIgnoreScreens"] += [screen] if screen == self.env["screen"]["newTTY"]: if self.env["general"]["curr_user"] != session[2]: self.env["general"]["prev_user"] = self.env["general"][ "curr_user" ] self.env["general"]["curr_user"] = session[2] except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "get_session_information: Maybe no LoginD:" + str(e), debug.DebugLevel.ERROR, ) # self.env['runtime']['DebugManager'].write_debug_out('get_session_information:' + str(self.env['screen']['autoIgnoreScreens']) + ' ' + str(self.env['general']) ,debug.DebugLevel.INFO) def read_file(self, file): """Read content from a file handle with error recovery. Attempts to read the entire file content, falling back to line-by-line reading if the initial read fails. This is used for reading VCSA/VCSU device files. Args: file: Open file handle to read from Returns: bytes: File content as bytes """ d = b"" file.seek(0) try: d = file.read() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver get_screen_text: Error reading file: " + str(e), debug.DebugLevel.ERROR, ) file.seek(0) while True: # Read from file try: d += file.readline(1) if not d: break except Exception as e: break return d def update_watchdog(self, active, event_queue): """Main watchdog loop for monitoring screen changes. This is the core monitoring function that runs in a separate process. It uses epoll to efficiently monitor multiple VCSA devices and the active TTY file for changes. When changes are detected, it generates appropriate events for the main Fenrir process. The watchdog monitors: - Screen content changes (text updates) - TTY switches (screen changes) - Cursor position changes Args: active: Shared boolean value controlling the watchdog loop event_queue: Queue for sending events to the main process Events Generated: - FenrirEventType.screen_changed: When switching TTYs - FenrirEventType.screen_update: When screen content changes Note: This method runs in a multiprocess context and includes comprehensive cleanup of file handles in the finally block. """ vcsa = {} vcsu = {} tty = None watchdog = None try: use_vcsu = os.access("/dev/vcsu", os.R_OK) vcsa_devices = glob.glob("/dev/vcsa*") vcsu_devices = None last_screen_content = b"" # Open TTY file with proper cleanup tty = open("/sys/devices/virtual/tty/tty0/active", "r") curr_screen = str(tty.read()[3:-1]) old_screen = curr_screen # Open VCSA devices with proper cleanup tracking for vcsaDev in vcsa_devices: index = str(vcsaDev[9:]) vcsa[index] = open(vcsaDev, "rb") if index == curr_screen: last_screen_content = self.read_file(vcsa[index]) # Open VCSU devices if available if use_vcsu: vcsu_devices = glob.glob("/dev/vcsu*") for vcsuDev in vcsu_devices: index = str(vcsuDev[9:]) vcsu[index] = open(vcsuDev, "rb") self.update_char_map(curr_screen) watchdog = select.epoll() watchdog.register( vcsa[curr_screen], select.POLLPRI | select.POLLERR ) watchdog.register(tty, select.POLLPRI | select.POLLERR) while active.value: changes = watchdog.poll(1) for change in changes: fileno = change[0] event = change[1] if fileno == tty.fileno(): self.env["runtime"]["DebugManager"].write_debug_out( "ScreenChange", debug.DebugLevel.INFO ) tty.seek(0) curr_screen = str(tty.read()[3:-1]) if curr_screen != old_screen: try: watchdog.unregister(vcsa[old_screen]) except Exception as e: self.env["runtime"][ "DebugManager" ].write_debug_out( "vcsaDriver update_watchdog: Error unregistering watchdog: " + str(e), debug.DebugLevel.ERROR, ) try: watchdog.register( vcsa[curr_screen], select.POLLPRI | select.POLLERR, ) except Exception as e: self.env["runtime"][ "DebugManager" ].write_debug_out( "vcsaDriver update_watchdog: Error registering watchdog: " + str(e), debug.DebugLevel.ERROR, ) self.update_char_map(curr_screen) old_screen = curr_screen try: vcsa[curr_screen].seek(0) last_screen_content = self.read_file( vcsa[curr_screen] ) except Exception as e: self.env["runtime"][ "DebugManager" ].write_debug_out( "vcsaDriver update_watchdog: Error reading screen content: " + str(e), debug.DebugLevel.ERROR, ) vcsu_content = None if use_vcsu: vcsu[curr_screen].seek(0) vcsu_content = self.read_file( vcsu[curr_screen] ) event_queue.put( { "Type": FenrirEventType.screen_changed, "data": self.create_screen_event_data( curr_screen, last_screen_content, vcsu_content, ), } ) else: self.env["runtime"]["DebugManager"].write_debug_out( "screen_update", debug.DebugLevel.INFO ) vcsa[curr_screen].seek(0) time.sleep(0.01) dirty_content = self.read_file(vcsa[curr_screen]) screen_content = dirty_content vcsu_content = None timeout = time.time() # error case if screen_content == b"": continue if last_screen_content == b"": last_screen_content = screen_content if ( abs( int(screen_content[2]) - int(last_screen_content[2]) ) in [1, 2] ) and ( int(screen_content[3]) == int(last_screen_content[3]) ): # Skip X Movement pass elif ( abs( int(screen_content[3]) - int(last_screen_content[3]) ) in [1] ) and ( int(screen_content[2]) == int(last_screen_content[2]) ): # Skip Y Movement pass else: # anything else? wait for completion while True: screen_content = dirty_content time.sleep(0.02) # r,_,_ = select.select([vcsa[curr_screen]], [], [], 0.07) # if not vcsa[curr_screen] in r: # break vcsa[curr_screen].seek(0) dirty_content = self.read_file( vcsa[curr_screen] ) if screen_content == dirty_content: break if time.time() - timeout >= 0.1: screen_content = dirty_content break if use_vcsu: vcsu[curr_screen].seek(0) vcsu_content = self.read_file(vcsu[curr_screen]) last_screen_content = screen_content event_queue.put( { "Type": FenrirEventType.screen_update, "data": self.create_screen_event_data( curr_screen, screen_content, vcsu_content ), } ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VCSA:update_watchdog:" + str(e), debug.DebugLevel.ERROR ) time.sleep(0.2) finally: # Clean up all file handles try: if watchdog: watchdog.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver update_watchdog: Error closing watchdog: " + str(e), debug.DebugLevel.ERROR, ) try: if tty: tty.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver shutdown: Error closing TTY: " + str(e), debug.DebugLevel.ERROR, ) for handle in vcsa.values(): try: handle.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver shutdown: Error closing VCSA handle: " + str(e), debug.DebugLevel.ERROR, ) for handle in vcsu.values(): try: handle.close() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver shutdown: Error closing VCSU handle: " + str(e), debug.DebugLevel.ERROR, ) def create_screen_event_data(self, screen, vcsaContent, vcsu_content=None): """Create standardized screen event data from VCSA content. Processes raw VCSA bytes into a structured event data dictionary containing screen dimensions, cursor position, text content, and color attributes. Args: screen (str): TTY number (e.g., '1' for tty1) vcsaContent (bytes): Raw VCSA device content vcsu_content (bytes, optional): VCSU content for Unicode support Returns: dict: Event data with keys: - bytes: Raw VCSA content - lines: Screen height - columns: Screen width - textCursor: Cursor position {x, y} - screen: TTY number - screenUpdateTime: Timestamp - text: Decoded text content - attributes: Color/formatting attributes """ event_data = { "bytes": vcsaContent, "lines": int(vcsaContent[0]), "columns": int(vcsaContent[1]), "textCursor": {"x": int(vcsaContent[2]), "y": int(vcsaContent[3])}, "screen": screen, "screenUpdateTime": time.time(), "text": "", "attributes": [], } try: event_data["text"], event_data["attributes"] = ( self.auto_decode_vcsa( vcsaContent[4:], event_data["lines"], event_data["columns"] ) ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver create_screen_event_data: Error decoding VCSA content: " + str(e), debug.DebugLevel.ERROR, ) # VCSU seems to give b' ' instead of b'\x00\x00\x00' (tsp), # deactivated until its fixed if vcsu_content is not None: try: vcsu_content_as_text = vcsu_content.decode("UTF-32") event_data["text"] = screen_utils.insert_newlines( vcsu_content_as_text, event_data["columns"] ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver create_screen_event_data: Error decoding VCSU content: " + str(e), debug.DebugLevel.ERROR, ) return event_data.copy() def update_char_map(self, screen): """Update character mapping for the specified screen. Reads the Unicode font mapping from the TTY to properly decode character data from VCSA. This handles special characters and Unicode properly. Args: screen (str): TTY number to update mapping for Updates: self.charmap: Dictionary mapping byte values to Unicode characters self.hichar: High character mask for extended characters """ self.charmap = {} try: with open("/dev/tty" + screen, "rb") as tty: GIO_UNIMAP = 0x4B66 VT_GETHIFONTMASK = 0x560D himask = array("H", (0,)) ioctl(tty, VT_GETHIFONTMASK, himask) (self.hichar,) = unpack_from("@H", himask) sz = 512 line = "" while True: try: unipairs = array("H", [0] * (2 * sz)) unimapdesc = array( "B", pack("@HP", sz, unipairs.buffer_info()[0]) ) ioctl(tty.fileno(), GIO_UNIMAP, unimapdesc) break except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VCSA:update_char_map:scaling up sz=" + str(sz) + " " + str(e), debug.DebugLevel.WARNING, ) sz *= 2 except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "VCSA:update_char_map:" + str(e), debug.DebugLevel.ERROR ) return (ncodes,) = unpack_from("@H", unimapdesc) utable = unpack_from("@%dH" % (2 * ncodes), unipairs) for u, b in zip(utable[::2], utable[1::2]): if self.charmap.get(b) is None: self.charmap[b] = chr(u) def auto_decode_vcsa(self, allData, rows, cols): """Decode raw VCSA data into text and attributes. Processes the character and attribute data from VCSA devices, extracting both the text content and formatting information (colors, bold, blink, etc.). Args: allData (bytes): Raw character and attribute data from VCSA rows (int): Number of screen rows cols (int): Number of screen columns Returns: tuple: (text_content, attributes) - text_content (str): Decoded text with newlines - attributes (list): List of attribute arrays for each character Note: Each character in VCSA is stored as 2 bytes: character + attribute. Attributes encode foreground/background colors, bold, blink, etc. """ all_text = "" all_attrib = [] i = 0 for y in range(rows): line_text = "" line_attrib = [] blink = 0 bold = 0 ink = 7 paper = 0 for x in range(cols): data = allData[i : i + 2] i += 2 if data == b" \x07": # attr = 7 # ink = 7 # paper = 0 # ch = ' ' char_attrib = [ self.fgColorValues[7], # fg self.bgColorValues[0], # bg False, # bold False, # italics False, # underscore False, # strikethrough False, # reverse False, # blink "default", # fontsize "default", ] # fontfamily line_attrib.append(char_attrib) line_text += " " continue ch = None try: (sh,) = unpack("=H", data) attr = (sh >> 8) & 0xFF ch = sh & 0xFF try: if sh & self.hichar: ch |= 0x100 except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver auto_decode_vcsa: Error processing character: " + str(e), debug.DebugLevel.ERROR, ) ch = None if self.hichar == 0x100: attr >>= 1 ink = attr & 0x0F paper = (attr >> 4) & 0x0F if attr & 1: blink = 1 # blink seems to be set always, ignore for now blink = 0 bold = 0 if attr & 16: bold = 1 # if (ink != 7) or (paper != 0): # print(ink,paper) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "vcsaDriver auto_decode_vcsa: Error processing attributes: " + str(e), debug.DebugLevel.ERROR, ) try: line_text += self.charmap[ch] except KeyError: line_text += "?" char_attrib = [ self.fgColorValues[ink], self.bgColorValues[paper], bold == 1, # bold False, # italics False, # underscore False, # strikethrough False, # reverse blink == 1, # blink "default", # fontsize "default", ] # fontfamily line_attrib.append(char_attrib) all_text += line_text if y + 1 < rows: all_text += "\n" all_attrib.append(line_attrib) return str(all_text), all_attrib def get_screen_process_for_tty(self, tty_num): """Find the screen process associated with specific TTY""" try: result = subprocess.run([ 'ps', '-eo', 'pid,ppid,comm,tty,stat', '--no-headers' ], capture_output=True, text=True, timeout=2) for line in result.stdout.strip().split('\n'): if not line.strip(): continue parts = line.split() if len(parts) >= 4 and parts[2] == 'screen' and f'tty{tty_num}' in parts[3]: return parts[0] # Return PID of screen process except (subprocess.TimeoutExpired, subprocess.CalledProcessError): pass return None def get_screen_session_process(self, screen_tty_pid): """Get the session manager process for a TTY screen process""" try: result = subprocess.run([ 'ps', '-eo', 'pid,ppid,comm', '--no-headers' ], capture_output=True, text=True, timeout=2) for line in result.stdout.strip().split('\n'): if not line.strip(): continue parts = line.split() if len(parts) >= 3 and parts[1] == screen_tty_pid and parts[2] == 'screen': return parts[0] # Return session manager PID except (subprocess.TimeoutExpired, subprocess.CalledProcessError): pass return None def parse_active_app_from_pstree(self, pstree_output): """Parse pstree output to find currently active application""" try: # Look for processes that indicate active applications # Example: screen(1786)---bash(1787)---irssi(2016) import re # Find all application processes (non-bash, non-screen) # Pattern excludes --- prefix from pstree connection lines app_pattern = r'([a-zA-Z0-9_]+)\((\d+)\)' matches = re.findall(app_pattern, pstree_output) skip_processes = {'screen', 'bash', 'sh', 'grep', 'ps', 'sudo', 'sleep', 'clipboard_sync'} applications = [] for app_name, pid in matches: if app_name.lower() not in skip_processes: # Check if this process is in foreground state try: ps_result = subprocess.run([ 'ps', '-p', pid, '-o', 'stat', '--no-headers' ], capture_output=True, text=True, timeout=1) if ps_result.returncode == 0: stat = ps_result.stdout.strip() # Prioritize active processes priority = 0 if 'S' in stat or 'R' in stat: # Active processes priority += 10 if '+' in stat: # Foreground processes priority += 20 if 'l' in stat.lower(): # Locked processes priority += 5 applications.append((app_name, pid, priority, stat)) except: # If we can't check status, still consider it with low priority applications.append((app_name, pid, 1, 'unknown')) # Sort by priority and return the highest priority application if applications: applications.sort(key=lambda x: (x[2], int(x[1])), reverse=True) best_app = applications[0][0].upper() self.env["runtime"]["DebugManager"].write_debug_out( f"parse_active_app_from_pstree found {len(applications)} apps, selected: {best_app}", debug.DebugLevel.INFO ) return best_app except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Error parsing pstree output: {str(e)}", debug.DebugLevel.ERROR ) return None def get_app_from_screen_session(self, tty_num): """Get current application from active screen window on specific TTY""" try: # Find the screen session PID for this TTY ps_result = subprocess.run([ 'ps', '-eo', 'pid,ppid,comm,tty,args', '--no-headers' ], capture_output=True, text=True, timeout=2) if ps_result.returncode == 0: # Find the main screen process for our TTY screen_pid = None for line in ps_result.stdout.split('\n'): if not line.strip(): continue parts = line.split(None, 4) if len(parts) >= 4 and parts[2] == 'screen' and f'tty{tty_num}' in parts[3]: screen_pid = parts[0] break if not screen_pid: return None # Get the session manager screen process (child of TTY screen) session_pid = None for line in ps_result.stdout.split('\n'): if not line.strip(): continue parts = line.split(None, 4) if len(parts) >= 3 and parts[1] == screen_pid and parts[2] == 'screen': session_pid = parts[0] break if not session_pid: return None self.env["runtime"]["DebugManager"].write_debug_out( f"Found screen session PID: {session_pid}", debug.DebugLevel.INFO ) # Get all bash processes under this screen session bash_processes = [] for line in ps_result.stdout.split('\n'): if not line.strip(): continue parts = line.split(None, 4) if len(parts) >= 3 and parts[1] == session_pid and parts[2] == 'bash': bash_processes.append(parts[0]) # Check each bash for child applications, prioritizing active ones best_app = None best_priority = 0 for bash_pid in bash_processes: child_result = subprocess.run([ 'ps', '--ppid', bash_pid, '-o', 'comm,stat', '--no-headers' ], capture_output=True, text=True, timeout=1) if child_result.returncode == 0: for child_line in child_result.stdout.split('\n'): if not child_line.strip(): continue child_parts = child_line.split() if len(child_parts) >= 2: child_comm, child_stat = child_parts[0], child_parts[1] if child_comm.lower() not in ['grep', 'ps', 'bash', 'sh', 'sudo', 'sleep']: # Calculate priority based on process state priority = 0 if 'R' in child_stat: # Running priority += 30 elif 'S' in child_stat: # Sleeping priority += 20 if '+' in child_stat: # Foreground priority += 20 self.env["runtime"]["DebugManager"].write_debug_out( f"Found child process: {child_comm} ({child_stat}) priority: {priority}", debug.DebugLevel.INFO ) if priority > best_priority: best_app = child_comm.upper() best_priority = priority if best_app: self.env["runtime"]["DebugManager"].write_debug_out( f"Selected best app: {best_app} (priority: {best_priority})", debug.DebugLevel.INFO ) return best_app except (subprocess.TimeoutExpired, subprocess.CalledProcessError, FileNotFoundError) as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Error getting app from screen session: {str(e)}", debug.DebugLevel.ERROR ) return None def parse_latest_active_app_from_pstree(self, pstree_output): """Parse pstree output to find the most recently active application""" try: import re # Find all application processes with PIDs app_pattern = r'([a-zA-Z0-9_]+)\((\d+)\)' matches = re.findall(app_pattern, pstree_output) skip_processes = {'screen', 'bash', 'sh', 'grep', 'ps', 'sudo', 'sleep', 'clipboard_sync'} applications = [] for app_name, pid in matches: if app_name.lower() not in skip_processes: # Check if this process is still active and get its start time try: ps_result = subprocess.run([ 'ps', '-p', pid, '-o', 'stat,lstart', '--no-headers' ], capture_output=True, text=True, timeout=1) if ps_result.returncode == 0: stat_info = ps_result.stdout.strip().split(None, 1) if len(stat_info) >= 2: stat = stat_info[0] start_time = stat_info[1] # Prioritize processes that are active or have recent activity priority = 0 if 'S' in stat or 'R' in stat: # Running or sleeping (active) priority += 10 if '+' in stat: # Foreground process priority += 20 applications.append((app_name, pid, priority, start_time)) except: # If we can't get status, still consider it but with low priority applications.append((app_name, pid, 1, 'unknown')) # Sort by priority (highest first), then by PID (most recent) if applications: applications.sort(key=lambda x: (x[2], int(x[1])), reverse=True) best_app = applications[0][0].upper() self.env["runtime"]["DebugManager"].write_debug_out( f"Found {len(applications)} applications, selected: {best_app}", debug.DebugLevel.INFO ) return best_app except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Error parsing latest active app from pstree: {str(e)}", debug.DebugLevel.ERROR ) return None def get_app_from_tmux_session(self, tty_num): """Get current application from tmux session on specific TTY""" try: # Try tmux list-panes to find active application result = subprocess.run([ 'tmux', 'list-panes', '-F', '#{pane_active} #{pane_current_command} #{pane_tty}' ], capture_output=True, text=True, timeout=2) if result.returncode == 0: for line in result.stdout.strip().split('\n'): if not line.strip(): continue parts = line.split() if len(parts) >= 3 and parts[0] == '1': # Active pane tty_part = parts[2] if tty_num in tty_part: app = parts[1].upper() if app not in ['BASH', 'SH']: self.env["runtime"]["DebugManager"].write_debug_out( f"Found tmux application: {app}", debug.DebugLevel.INFO ) return app except (subprocess.TimeoutExpired, subprocess.CalledProcessError, FileNotFoundError): pass return None def get_curr_application(self): """Enhanced application detection supporting screen/tmux sessions. Multi-method approach: 1. Try screen session detection via process tree analysis 2. Try tmux session detection via tmux commands 3. Fall back to standard ps-based detection Updates: env['screen']['new_application']: Name of current application Features: - Detects applications inside screen/tmux sessions - Handles multiple screen sessions on different TTYs - Provides detailed debug logging for troubleshooting """ curr_screen = self.env["screen"]["newTTY"] detected_app = None self.env["runtime"]["DebugManager"].write_debug_out( f"Starting application detection for TTY{curr_screen}", debug.DebugLevel.INFO ) # Method 1: Try screen session detection try: detected_app = self.get_app_from_screen_session(curr_screen) if detected_app: self.env["runtime"]["DebugManager"].write_debug_out( f"Screen session detection found: {detected_app}", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Screen session detection failed: {str(e)}", debug.DebugLevel.ERROR ) # Method 2: Try tmux session detection if not detected_app: try: detected_app = self.get_app_from_tmux_session(curr_screen) if detected_app: self.env["runtime"]["DebugManager"].write_debug_out( f"Tmux session detection found: {detected_app}", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Tmux session detection failed: {str(e)}", debug.DebugLevel.ERROR ) # Method 3: Fall back to standard ps-based detection if not detected_app: try: detected_app = self.get_app_via_standard_ps(curr_screen) if detected_app: self.env["runtime"]["DebugManager"].write_debug_out( f"Standard ps detection found: {detected_app}", debug.DebugLevel.INFO ) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Standard ps detection failed: {str(e)}", debug.DebugLevel.ERROR ) # Update application if we found one and it's different if detected_app and self.env["screen"]["new_application"] != detected_app: self.env["screen"]["new_application"] = detected_app self.env["runtime"]["DebugManager"].write_debug_out( f"Application changed to: {detected_app}", debug.DebugLevel.INFO ) def get_app_via_standard_ps(self, curr_screen): """Fallback ps-based application detection for non-screen/tmux environments""" try: # Simple TTY-specific detection as fallback result = subprocess.run([ 'ps', '-t', f'tty{curr_screen}', '-o', 'comm,stat', '--no-headers' ], capture_output=True, text=True, timeout=2) if result.returncode == 0: for line in result.stdout.split('\n'): if not line.strip(): continue parts = line.split() if len(parts) >= 2: comm, stat = parts[0], parts[1] if '+' in stat and comm.upper() not in ['BASH', 'SH', 'SCREEN', 'GREP', 'PS']: self.env["runtime"]["DebugManager"].write_debug_out( f"Fallback detection found: {comm}", debug.DebugLevel.INFO ) return comm.upper() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( f"Standard ps detection error: {str(e)}", debug.DebugLevel.ERROR ) return None fenrir/src/fenrirscreenreader/soundDriver/000077500000000000000000000000001513650123000213025ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/soundDriver/__init__.py000077500000000000000000000000001513650123000234040ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/soundDriver/debugDriver.py000066400000000000000000000035771513650123000241320ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.soundDriver import sound_driver class driver(sound_driver): def __init__(self): sound_driver.__init__(self) def initialize(self, environment): self.env = environment self._initialized = True print("Sound Debug Driver: Initialized") def shutdown(self): if not self._initialized: return self.cancel() self._initialized = False print("Sound Debug Driver: Shutdown") def play_frequence( self, frequence, duration, adjust_volume=0.0, interrupt=True ): if not self._initialized: return if interrupt: self.cancel() print( "Sound Debug Driver: play_frequence:" + " freq:" + str(frequence) + " duration:" + str(duration) + " adjust_volume:" + str(adjust_volume) ) print("Sound Debug Driver: -----------------------------------") def play_sound_file(self, file_path, interrupt=True): if not self._initialized: return if interrupt: self.cancel() print("Sound Debug Driver: play_sound_file:" + str(file_path)) print("Sound Debug Driver: -----------------------------------") def cancel(self): if not self._initialized: return print("Sound Debug Driver: Cancel") def set_callback(self, callback): if not self._initialized: return print("Sound Debug Driver: set_callback") def set_volume(self, volume): if not self._initialized: return self.volume = volume print("Sound Debug Driver: set_volume:" + str(self.volume)) fenrir/src/fenrirscreenreader/soundDriver/dummyDriver.py000066400000000000000000000004711513650123000241650ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug from fenrirscreenreader.core.soundDriver import sound_driver class driver(sound_driver): def __init__(self): sound_driver.__init__(self) fenrir/src/fenrirscreenreader/soundDriver/genericDriver.py000066400000000000000000000121651513650123000244510ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import shlex import subprocess from fenrirscreenreader.core import debug from fenrirscreenreader.core.soundDriver import sound_driver class driver(sound_driver): """Generic sound driver for Fenrir screen reader. This driver provides sound playback through external command-line tools like sox, aplay, or other audio utilities. It supports both sound file playback and frequency/tone generation. Features: - Configurable external command execution - Sound file playback (WAV, OGG, etc.) - Frequency/tone generation - Process management and cancellation Attributes: proc: Currently running subprocess for sound playback soundFileCommand (str): Command template for playing sound files frequenceCommand (str): Command template for generating frequencies """ def __init__(self): sound_driver.__init__(self) self.proc = None self.soundType = "" self.soundFileCommand = "" self.frequenceCommand = "" def initialize(self, environment): """Initialize the generic sound driver. Loads command templates from configuration for sound file playback and frequency generation. Args: environment: Fenrir environment dictionary with settings """ self.env = environment self.soundFileCommand = self.env["runtime"][ "SettingsManager" ].get_setting("sound", "generic_play_file_command") self.frequenceCommand = self.env["runtime"][ "SettingsManager" ].get_setting("sound", "generic_frequency_command") if self.soundFileCommand == "": self.soundFileCommand = "play -q -v fenrirVolume fenrirSoundFile" if self.frequenceCommand == "": self.frequenceCommand = ( "play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence" ) self._initialized = True def play_frequence( self, frequence, duration, adjust_volume=0.0, interrupt=True ): """Play a tone at the specified frequency. Args: frequence (float): Frequency in Hz duration (float): Duration in seconds adjust_volume (float): Volume adjustment interrupt (bool): Whether to interrupt current sound """ if not self._initialized: return if interrupt: self.cancel() popen_frequence_command = shlex.split(self.frequenceCommand) for idx, word in enumerate(popen_frequence_command): word = word.replace( "fenrirVolume", str(self.volume * adjust_volume) ) word = word.replace("fenrirDuration", str(duration)) word = word.replace("fenrirFrequence", str(frequence)) popen_frequence_command[idx] = word self.proc = subprocess.Popen( popen_frequence_command, stdin=None, stdout=None, stderr=None, shell=False, ) self.soundType = "frequence" def play_sound_file(self, file_path, interrupt=True): """Play a sound file. Args: file_path (str): Path to the sound file to play interrupt (bool): Whether to interrupt current sound """ if not self._initialized: return if interrupt: self.cancel() # Validate file path to prevent injection import os if not os.path.isfile(file_path) or ".." in file_path: return popen_sound_file_command = shlex.split(self.soundFileCommand) for idx, word in enumerate(popen_sound_file_command): word = word.replace("fenrirVolume", str(self.volume)) word = word.replace("fenrirSoundFile", shlex.quote(str(file_path))) popen_sound_file_command[idx] = word self.proc = subprocess.Popen(popen_sound_file_command, shell=False) self.soundType = "file" def cancel(self): """Cancel currently playing sound. Terminates the subprocess playing sound and cleans up resources. """ if not self._initialized: return if self.soundType == "": return if self.soundType == "file": self.proc.kill() try: # Wait for process to finish to prevent zombies self.proc.wait(timeout=1.0) except subprocess.TimeoutExpired: pass # Process already terminated except Exception as e: pass # Handle any other wait errors if self.soundType == "frequence": self.proc.kill() try: # Wait for process to finish to prevent zombies self.proc.wait(timeout=1.0) except subprocess.TimeoutExpired: pass # Process already terminated except Exception as e: pass # Handle any other wait errors self.soundType = "" fenrir/src/fenrirscreenreader/soundDriver/gstreamerDriver.py000066400000000000000000000124761513650123000250330ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import threading import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.soundDriver import sound_driver _gstreamerAvailable = False try: import gi from gi.repository import GLib gi.require_version("Gst", "1.0") from gi.repository import Gst _gstreamerAvailable, args = Gst.init_check(None) except Exception as e: _gstreamerAvailable = False _availableError = str(e) class driver(sound_driver): def __init__(self): sound_driver.__init__(self) self._source = None self._sink = None def initialize(self, environment): self.env = environment global _gstreamerAvailable self._initialized = _gstreamerAvailable if not self._initialized: global _availableError self.environment["runtime"]["DebugManager"].write_debug_out( "Gstreamer not available " + _availableError, debug.DebugLevel.ERROR, ) return self._player = Gst.ElementFactory.make("playbin", "player") bus = self._player.get_bus() bus.add_signal_watch() bus.connect("message", self._on_player_message) self._pipeline = Gst.Pipeline(name="fenrir-pipeline") bus = self._pipeline.get_bus() bus.add_signal_watch() bus.connect("message", self._on_pipeline_message) self._source = Gst.ElementFactory.make("audiotestsrc", "src") self._volume = Gst.ElementFactory.make("volume", "volume") self._sink = Gst.ElementFactory.make("autoaudiosink", "output") self._pipeline.add(self._source) self._pipeline.add(self._volume) self._pipeline.add(self._sink) self._source.link(self._volume) self._volume.link(self._sink) self.mainloop = GLib.MainLoop() self.thread = threading.Thread(target=self.mainloop.run) self.thread.start() def shutdown(self): if not self._initialized: return self.cancel() self.mainloop.quit() # Wait for the GLib MainLoop thread to finish to prevent shutdown races if hasattr(self, "thread") and self.thread.is_alive(): # 2 second timeout to prevent hanging self.thread.join(timeout=2.0) def _on_player_message(self, bus, message): if not self._initialized: return if message.type == Gst.MessageType.EOS: self._player.set_state(Gst.State.NULL) elif message.type == Gst.MessageType.ERROR: self._player.set_state(Gst.State.NULL) error, info = message.parse_error() self.env["runtime"]["DebugManager"].write_debug_out( "GSTREAMER: _on_player_message" + str(error) + str(info), debug.DebugLevel.WARNING, ) def _on_pipeline_message(self, bus, message): if not self._initialized: return if message.type == Gst.MessageType.EOS: self._pipeline.set_state(Gst.State.NULL) elif message.type == Gst.MessageType.ERROR: self._pipeline.set_state(Gst.State.NULL) error, info = message.parse_error() self.env["runtime"]["DebugManager"].write_debug_out( "GSTREAMER: _on_pipeline_message" + str(error) + str(info), debug.DebugLevel.WARNING, ) def _on_timeout(self, element): if not self._initialized: return element.set_state(Gst.State.NULL) def play_sound_file(self, file_name, interrupt=True): if not self._initialized: return if interrupt: self.cancel() self._player.set_property("volume", self.volume) self._player.set_property("uri", "file://%s" % file_name) self._player.set_state(Gst.State.PLAYING) def play_frequence( self, frequence, duration, adjust_volume=0.0, interrupt=True ): if not self._initialized: return if interrupt: self.cancel() # Always reset pipeline to prevent volume accumulation self._pipeline.set_state(Gst.State.NULL) duration = duration * 1000 # Use dedicated volume element for better control # GStreamer volume property behaves very differently than sox for low frequencies if adjust_volume > 0.8: # This indicates low frequency indentation beeps # Extremely aggressive boost - GStreamer really struggles with low frequencies effective_volume = self.volume * adjust_volume * 50.0 # Ridiculous multiplier to match sox else: effective_volume = self.volume * adjust_volume * 3.0 self._volume.set_property("volume", effective_volume) self._source.set_property("volume", 1.0) # Set source to full, control via volume element self._source.set_property("freq", frequence) self._pipeline.set_state(Gst.State.PLAYING) GLib.timeout_add(duration, self._on_timeout, self._pipeline) def cancel(self, element=None): if not self._initialized: return if element: element.set_state(Gst.State.NULL) return self._player.set_state(Gst.State.NULL) self._pipeline.set_state(Gst.State.NULL) fenrir/src/fenrirscreenreader/speechDriver/000077500000000000000000000000001513650123000214215ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/speechDriver/Readme.md000066400000000000000000000001401513650123000231330ustar00rootroot00000000000000espeak = espeak driver speechd = speech-dispatcher driver generic = generic driver via /bin/say fenrir/src/fenrirscreenreader/speechDriver/__init__.py000077500000000000000000000000001513650123000235230ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/speechDriver/debugDriver.py000066400000000000000000000100671513650123000242410ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # generic driver from fenrirscreenreader.core import debug from fenrirscreenreader.core.speechDriver import speech_driver class driver(speech_driver): """Debug speech driver for Fenrir development and testing. This driver provides speech output to console/debug output instead of actual audio, making it useful for development, testing, and debugging scenarios where audio output is not needed or available. All speech operations are logged to console with descriptive messages, allowing developers to trace speech behavior without audio hardware. """ def __init__(self): speech_driver.__init__(self) def initialize(self, environment): """Initialize the debug speech driver. Args: environment: Fenrir environment dictionary """ self._is_initialized = True self.env = environment print("Speech Debug Driver: Initialized") def shutdown(self): """Shutdown the debug speech driver.""" if self._is_initialized: self.cancel() self._is_initialized = False print("Speech Debug Driver: Shutdown") def speak(self, text, queueable=True, ignore_punctuation=False): """Output speech text to console for debugging. Args: text (str): Text to speak queueable (bool): Whether speech can be queued ignore_punctuation (bool): Whether to ignore punctuation """ if not self._is_initialized: return if not queueable: self.cancel() print("Speech Debug Driver: Speak:" + text) print("Speech Debug Driver: -----------------------------------") def cancel(self): """Log speech cancellation to console.""" if not self._is_initialized: return print("Speech Debug Driver: Cancel") def set_callback(self, callback): """Log callback setting to console. Args: callback: Callback function (logged but not used) """ print("Speech Debug Driver: set_callback") def clear_buffer(self): """Log buffer clearing to console.""" if not self._is_initialized: return print("Speech Debug Driver: clear_buffer") def set_voice(self, voice): """Log voice setting to console. Args: voice: Voice setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_voice:" + str(voice)) def set_pitch(self, pitch): """Log pitch setting to console. Args: pitch: Pitch setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_pitch:" + str(pitch)) def set_rate(self, rate): """Log rate setting to console. Args: rate: Rate setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_rate:" + str(rate)) def set_module(self, module): """Log module setting to console. Args: module: Module setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_module:" + str(module)) def set_language(self, language): """Log language setting to console. Args: language: Language setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_language:" + str(language)) def set_volume(self, volume): """Log volume setting to console. Args: volume: Volume setting (logged but not used) """ if not self._is_initialized: return print("Speech Debug Driver: set_volume:" + str(volume)) fenrir/src/fenrirscreenreader/speechDriver/dummyDriver.py000066400000000000000000000005161513650123000243040ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # generic driver from fenrirscreenreader.core import debug from fenrirscreenreader.core.speechDriver import speech_driver class driver(speech_driver): def __init__(self): speech_driver.__init__(self) fenrir/src/fenrirscreenreader/speechDriver/genericDriver.py000066400000000000000000000212171513650123000245660ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # generic driver import shlex import subprocess from queue import Empty from queue import Queue from subprocess import Popen from threading import Lock from threading import Thread from fenrirscreenreader.core import debug from fenrirscreenreader.core.speechDriver import speech_driver class SpeakQueue(Queue): def clear(self): try: while True: self.get_nowait() except Empty: pass class driver(speech_driver): def __init__(self): speech_driver.__init__(self) self.proc = None self.speechThread = Thread(target=self.worker) self.lock = Lock() self.textQueue = SpeakQueue() def initialize(self, environment): self.env = environment self.minVolume = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_min_volume") self.maxVolume = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_max_volume") self.minPitch = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_min_pitch") self.maxPitch = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_max_pitch") self.minRate = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_min_rate") self.maxRate = self.env["runtime"][ "SettingsManager" ].get_setting_as_int("speech", "fenrir_max_rate") self.speechCommand = self.env["runtime"][ "SettingsManager" ].get_setting("speech", "generic_speech_command") if self.speechCommand == "": self.speechCommand = 'espeak -a fenrirVolume -s fenrirRate -p fenrirPitch -v fenrirVoice -- "fenrirText"' if False: # for debugging overwrite here # self.speechCommand = 'spd-say --wait -r 100 -i 100 "fenrirText"' self.speechCommand = 'flite -t "fenrirText"' self._is_initialized = True if self._is_initialized: self.speechThread.start() def shutdown(self): if not self._is_initialized: return self.cancel() self.textQueue.put(-1) def speak(self, text, queueable=True, ignore_punctuation=False): if not self._is_initialized: return if not queueable: self.cancel() utterance = { "text": text, "volume": self.volume, "rate": self.rate, "pitch": self.pitch, "module": self.module, "language": self.language, "voice": self.voice, } self.textQueue.put(utterance.copy()) def cancel(self): if not self._is_initialized: return self.clear_buffer() self.lock.acquire(True) try: if self.proc: try: self.proc.terminate() # Wait for process to finish to prevent zombies try: self.proc.wait(timeout=1.0) except subprocess.TimeoutExpired: # If terminate didn't work, force kill self.proc.kill() self.proc.wait(timeout=1.0) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "speech_driver:Cancel:self.proc.terminate():" + str(e), debug.DebugLevel.WARNING, ) try: self.proc.kill() # Wait after kill to prevent zombies self.proc.wait(timeout=1.0) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "speech_driver:Cancel:self.proc.kill():" + str(e), debug.DebugLevel.WARNING, ) self.proc = None finally: # Ensure lock is always released, even if process termination fails self.lock.release() def clear_buffer(self): if not self._is_initialized: return self.textQueue.clear() def set_voice(self, voice): if not self._is_initialized: return self.voice = str(voice) def set_pitch(self, pitch): if not self._is_initialized: return self.pitch = str( self.minPitch + pitch * (self.maxPitch - self.minPitch) ) def set_rate(self, rate): if not self._is_initialized: return self.rate = str(self.minRate + rate * (self.maxRate - self.minRate)) def set_module(self, module): if not self._is_initialized: return self.module = str(module) def set_language(self, language): if not self._is_initialized: return self.language = str(language) def set_volume(self, volume): if not self._is_initialized: return self.volume = str( self.minVolume + volume * (self.maxVolume - self.minVolume) ) def worker(self): while True: utterance = self.textQueue.get() if isinstance(utterance, int): if utterance == -1: return else: continue elif not isinstance(utterance, dict): continue # no text means nothing to speak if "text" not in utterance: continue if not isinstance(utterance["text"], str): continue if utterance["text"] == "": continue # check for valid data fields if "volume" not in utterance: utterance["volume"] = "" if not isinstance(utterance["volume"], str): utterance["volume"] = "" if "module" not in utterance: utterance["module"] = "" if not isinstance(utterance["module"], str): utterance["module"] = "" if "language" not in utterance: utterance["language"] = "" if not isinstance(utterance["language"], str): utterance["language"] = "" if "voice" not in utterance: utterance["voice"] = "" if not isinstance(utterance["voice"], str): utterance["voice"] = "" if "pitch" not in utterance: utterance["pitch"] = "" if not isinstance(utterance["pitch"], str): utterance["pitch"] = "" if "rate" not in utterance: utterance["rate"] = "" if not isinstance(utterance["rate"], str): utterance["rate"] = "" popen_speech_command = shlex.split(self.speechCommand) for idx, word in enumerate(popen_speech_command): word = word.replace("fenrirVolume", str(utterance["volume"])) word = word.replace("fenrirModule", str(utterance["module"])) word = word.replace( "fenrirLanguage", str(utterance["language"]) ) word = word.replace("fenrirVoice", str(utterance["voice"])) word = word.replace("fenrirPitch", str(utterance["pitch"])) word = word.replace("fenrirRate", str(utterance["rate"])) # Properly quote text to prevent command injection word = word.replace( "fenrirText", shlex.quote(str(utterance["text"])) ) popen_speech_command[idx] = word try: self.env["runtime"]["DebugManager"].write_debug_out( "speech_driver:worker:" + " ".join(popen_speech_command), debug.DebugLevel.INFO, ) self.lock.acquire(True) self.proc = Popen( popen_speech_command, stdin=None, stdout=None, stderr=None, shell=False, ) self.lock.release() self.proc.wait() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "speech_driver:worker:" + str(e), debug.DebugLevel.ERROR ) self.lock.acquire(True) self.proc = None self.lock.release() fenrir/src/fenrirscreenreader/speechDriver/speechdDriver.py000066400000000000000000000175271513650123000245760ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. # speech-dispatcher driver from fenrirscreenreader.core import debug from fenrirscreenreader.core.speechDriver import speech_driver class driver(speech_driver): """Speech-dispatcher driver for Fenrir screen reader. This driver provides text-to-speech functionality through speech-dispatcher, which acts as a common interface to various TTS engines. It supports voice selection, speech parameters (rate, pitch, volume), and multiple TTS modules. Features: - Dynamic voice switching and parameter adjustment - Support for multiple speech-dispatcher modules (espeak, festival, etc.) - Real-time speech cancellation and queueing - Language and voice selection - Speech callbacks for synchronization Attributes: _sd: Speech-dispatcher client connection language (str): Current speech language voice (str): Current voice name module (str): Current TTS module name """ def __init__(self): speech_driver.__init__(self) def initialize(self, environment): """Initialize the speech-dispatcher connection. Establishes connection to speech-dispatcher daemon and configures initial speech parameters. Sets up callbacks and prepares the speech subsystem for use. Args: environment: Fenrir environment dictionary with settings and managers Note: Gracefully handles cases where speech-dispatcher is not available. """ self._sd = None self.env = environment self._is_initialized = False # Only set these if they haven't been set yet (preserve existing # values) if not hasattr(self, "language") or self.language is None: self.language = "" if not hasattr(self, "voice") or self.voice is None: self.voice = "" if not hasattr(self, "module") or self.module is None: self.module = "" try: import speechd self._sd = speechd.SSIPClient("fenrir-dev") self._punct = speechd.PunctuationMode() self._is_initialized = True except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver initialize:" + str(e), debug.DebugLevel.ERROR ) def shutdown(self): """Shutdown the speech-dispatcher connection. Cleanly closes the connection to speech-dispatcher and releases any allocated resources. """ if not self._is_initialized: return self.cancel() try: self._sd.close() except Exception as e: pass self._is_initialized = False def speak(self, text, queueable=True, ignore_punctuation=False): """Speak the given text through speech-dispatcher. Args: text (str): Text to speak queueable (bool): Whether speech can be queued with other speech ignore_punctuation (bool): Whether to ignore punctuation settings Note: Handles text preprocessing and manages speech queue based on parameters. """ if not queueable: self.cancel() if not self._is_initialized: self.initialize(self.env) if not queueable: self.cancel() if not self._is_initialized: return try: if self.module != "": self._sd.set_output_module(self.module) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_module:" + str(e), debug.DebugLevel.ERROR ) try: if self.language != "": self._sd.set_language(self.language) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_language:" + str(e), debug.DebugLevel.ERROR ) try: if self.voice != "": self._sd.set_synthesis_voice(self.voice) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_voice:" + str(e), debug.DebugLevel.ERROR ) try: if ignore_punctuation: self._sd.set_punctuation(self._punct.ALL) else: self._sd.set_punctuation(self._punct.NONE) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_punctuation:" + str(e), debug.DebugLevel.ERROR, ) try: # Check if read-all is active and add callback if needed if ("ReadAllManager" in self.env["runtime"] and self.env["runtime"]["ReadAllManager"] and self.env["runtime"]["ReadAllManager"].is_active()): import speechd def read_all_callback(msg_id, client_id, event_type, *args): if (event_type == speechd.CallbackType.END and self.env["runtime"]["ReadAllManager"] and self.env["runtime"]["ReadAllManager"].is_active()): self.env["runtime"]["ReadAllManager"].speech_completed() self._sd.speak(text, callback=read_all_callback, event_types=(speechd.CallbackType.END,)) else: self._sd.speak(text) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver speak:" + str(e), debug.DebugLevel.ERROR ) self._is_initialized = False def cancel(self): """Cancel all pending and current speech. Immediately stops speech output and clears the speech queue. """ if not self._is_initialized: self.initialize(self.env) if not self._is_initialized: return try: self._sd.cancel() except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver cancel:" + str(e), debug.DebugLevel.ERROR ) self._is_initialized = False def set_pitch(self, pitch): """Set the speech pitch. Args: pitch (float): Speech pitch (0.0 to 1.0, where 0.5 is normal) """ if not self._is_initialized: return try: self._sd.set_pitch(int(-100 + pitch * 200)) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_pitch:" + str(e), debug.DebugLevel.ERROR ) def set_rate(self, rate): """Set the speech rate. Args: rate (float): Speech rate (0.0 to 1.0, where 0.5 is normal) """ if not self._is_initialized: return try: self._sd.set_rate(int(-100 + rate * 200)) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_rate:" + str(e), debug.DebugLevel.ERROR ) def set_volume(self, volume): """Set the speech volume. Args: volume (float): Volume level (0.0 to 1.0) """ if not self._is_initialized: return try: self._sd.set_volume(int(-100 + volume * 200)) except Exception as e: self.env["runtime"]["DebugManager"].write_debug_out( "SpeechDriver set_volume:" + str(e), debug.DebugLevel.ERROR ) fenrir/src/fenrirscreenreader/utils/000077500000000000000000000000001513650123000201365ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/utils/__init__.py000077500000000000000000000000001513650123000222400ustar00rootroot00000000000000fenrir/src/fenrirscreenreader/utils/char_utils.py000066400000000000000000000107201513650123000226450ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug def get_prev_char(curr_x, curr_y, curr_text): line_break = False end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen, line_break wrapped_lines = curr_text.split("\n") x = curr_x y = curr_y if x - 1 < 0: if y - 1 >= 0: y -= 1 x = len(wrapped_lines[y]) - 1 line_break = True else: line_break = False end_of_screen = True else: x -= 1 curr_char = "" if not end_of_screen: curr_char = wrapped_lines[y][x] return x, y, curr_char, end_of_screen, line_break def get_current_char(curr_x, curr_y, curr_text): if curr_text == "": return -1, -1, "" wrapped_lines = curr_text.split("\n") curr_char = wrapped_lines[curr_y][curr_x] return curr_x, curr_y, curr_char def get_up_char(curr_x, curr_y, curr_text): end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen wrapped_lines = curr_text.split("\n") curr_y -= 1 if curr_y < 0: curr_y = 0 else: end_of_screen = True curr_char = "" if not end_of_screen: curr_char = wrapped_lines[curr_y][curr_x] return curr_x, curr_y, curr_char, end_of_screen def get_down_char(curr_x, curr_y, curr_text): end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen wrapped_lines = curr_text.split("\n") curr_y += 1 if curr_y >= len(wrapped_lines): curr_y = len(wrapped_lines) - 1 else: end_of_screen = True curr_char = "" if not end_of_screen: curr_char = wrapped_lines[curr_y][curr_x] return curr_x, curr_y, curr_char, end_of_screen def get_last_char_in_line(curr_y, curr_text): end_of_screen = False if curr_text == "": return -1, -1, "" wrapped_lines = curr_text.split("\n") curr_x = len(wrapped_lines[curr_y].rstrip()) - 1 if curr_x < 0: curr_x = 0 curr_char = wrapped_lines[curr_y][curr_x] return curr_x, curr_y, curr_char def get_next_char(curr_x, curr_y, curr_text): line_break = False end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen, line_break wrapped_lines = curr_text.split("\n") x = curr_x y = curr_y if x + 1 == len(wrapped_lines[y]): if y + 1 <= len(wrapped_lines) - 1: y += 1 x = 0 line_break = True else: line_break = False end_of_screen = True else: x += 1 curr_char = "" if not end_of_screen: curr_char = wrapped_lines[y][x] return x, y, curr_char, end_of_screen, line_break def get_phonetic(curr_char): if len(curr_char) != 1: return curr_char phonetics_dict = { "A": "alpha", "B": "bravo", "C": "charlie", "D": "delta", "E": "echo", "F": "foxtrot", "G": "golf", "H": "hotel", "I": "india", "J": "juliet", "K": "kilo", "L": "lima", "M": "mike", "N": "november", "O": "oscar", "P": "papa", "Q": "quebec", "R": "romeo", "S": "sierra", "T": "tango", "U": "uniform", "V": "victor", "W": "whisky", "X": "x ray", "Y": "yankee", "Z": "zulu", } try: phon_char = phonetics_dict[curr_char.upper()] if curr_char.isupper(): phon_char = phon_char[0].upper() + phon_char[1:] return phon_char except Exception as e: # Utility function, no env access - return fallback return curr_char def present_char_for_review( env, char, interrupt=True, announce_capital=True, flush=False ): """Present a character for explicit review commands only""" if char == " ": if " " in env["punctuation"]["PUNCTDICT"]: announce_char = env["punctuation"]["PUNCTDICT"][" "] else: announce_char = "space" env["runtime"]["OutputManager"].present_text( announce_char, interrupt=interrupt, flush=flush ) else: env["runtime"]["OutputManager"].present_text( char, interrupt=interrupt, ignore_punctuation=True, announce_capital=announce_capital, flush=flush, ) fenrir/src/fenrirscreenreader/utils/fenrir-config.py000066400000000000000000000011131513650123000232340ustar00rootroot00000000000000#!/usr/bin/env python3 import configparser import os import sys from inspect import isfunction from os import listdir from os.path import isfile from os.path import join from xdg import BaseDirectory # Get configuration directory if len(sys.argv) > 1: config_path = sys.argv[1] elif os.geteuid() == 0: # Save settings system wide config_path = "/etc/fenrir.conf" else: # Use local settings config_path = BaseDirectory.xdg_data_home + "/fenrir" if not os.path.exists(config_path): os.makedirs(config_path) config_path = config_path + "/fenrir.conf" fenrir/src/fenrirscreenreader/utils/line_utils.py000066400000000000000000000023631513650123000226630ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug def get_prev_line(curr_x, curr_y, curr_text): end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen wrapped_lines = curr_text.split("\n") x = curr_x y = curr_y if y - 1 >= 0: y -= 1 else: end_of_screen = True x = curr_x curr_line = "" if not end_of_screen: curr_line = wrapped_lines[y] return x, y, curr_line, end_of_screen def get_current_line(curr_x, curr_y, curr_text): if curr_text == "": return -1, -1, "" wrapped_lines = curr_text.split("\n") x = curr_x y = curr_y x = 0 curr_line = wrapped_lines[y] return x, y, curr_line def get_next_line(curr_x, curr_y, curr_text): end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen wrapped_lines = curr_text.split("\n") x = curr_x y = curr_y if y + 1 < len(wrapped_lines): y += 1 else: end_of_screen = True x = curr_x curr_line = "" if not end_of_screen: curr_line = wrapped_lines[y] return x, y, curr_line, end_of_screen fenrir/src/fenrirscreenreader/utils/mark_utils.py000066400000000000000000000040321513650123000226610ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug def get_text_between_marks(firstMark, secondMark, in_text): if in_text is None: return "" if not isinstance(in_text, list): in_text = in_text.split("\n") if len(in_text) < 1: return "" if firstMark is None: return "" if secondMark is None: return "" if (firstMark["y"] + 1) * (firstMark["x"] + 1) <= (secondMark["y"] + 1) * ( secondMark["x"] + 1 ): start_mark = firstMark.copy() end_mark = secondMark.copy() else: end_mark = firstMark.copy() start_mark = secondMark.copy() text_part = "" if start_mark["y"] == end_mark["y"]: text_part += in_text[start_mark["y"]][ start_mark["x"] : end_mark["x"] + 1 ] else: curr_y = start_mark["y"] while curr_y <= end_mark["y"]: if curr_y < end_mark["y"]: if curr_y == start_mark["y"]: text_part += in_text[curr_y][start_mark["x"] :] else: text_part += in_text[curr_y] if len(in_text[curr_y].strip()) != 0: if len(text_part) - len(text_part.rstrip()) > 0: text_part = text_part[: len(text_part.rstrip())] + "\n" else: text_part += "\n" else: text_part += in_text[curr_y][: end_mark["x"] + 1] curr_y += 1 return text_part def get_text_before_mark(mark, in_text): if in_text is None: return "" if mark is None: return "" return get_text_between_marks({"x": 0, "y": 0}, mark, in_text) def get_text_after_mark(mark, in_text): if in_text is None: return "" if mark is None: return "" in_text = in_text.split("\n") return get_text_between_marks( mark, {"x": len(in_text[0]) - 1, "y": len(in_text) - 1}, in_text ) fenrir/src/fenrirscreenreader/utils/module_utils.py000066400000000000000000000013611513650123000232160ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import sys version = sys.version[:3] # we only need major.minor version. if version in ["3.3", "3.4"]: from importlib.machinery import SourceFileLoader else: # Python 3.5+, no support for python < 3.3. import importlib.util def import_module(moduleName, moduleLocation): if version in ["3.3", "3.4"]: return SourceFileLoader(moduleName, moduleLocation).load_module() else: spec = importlib.util.spec_from_file_location( moduleName, moduleLocation ) driver_mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(driver_mod) return driver_mod fenrir/src/fenrirscreenreader/utils/review_utils.py000066400000000000000000000002421513650123000232270ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. from fenrirscreenreader.core import debug fenrir/src/fenrirscreenreader/utils/screen_utils.py000066400000000000000000000062761513650123000232220ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import getpass import os import string import time from select import select from fenrirscreenreader.core import debug def remove_nonprintable(text): # Get the difference of all ASCII characters from the set of printable # characters nonprintable = set([chr(i) for i in range(128)]).difference( string.printable ) # Use translate to remove all non-printable characters return text.translate({ord(character): None for character in nonprintable}) def insert_newlines(string, every=64): return "\n".join( string[i : i + every] for i in range(0, len(string), every) ) def split_every(toSplit, every=64): return list(toSplit[i : i + every] for i in range(0, len(toSplit), every)) def create_screen_event_data(content): event_data = { "bytes": content, "lines": content["lines"], "columns": content["columns"], "textCursor": { "x": int(content["cursor"][0]), "y": int(content["cursor"][1]), }, "screen": content["screen"], "text": content["text"], "attributes": content["attributes"], "screenUpdateTime": time.time(), } return event_data.copy() def has_more(fd, timetout=0.05): r, _, _ = select([fd], [], [], timetout) return fd in r def has_more_what(fd_list, timetout=0.05): if not isinstance(fd_list, list): return [] elif fd_list == []: return [] r, _, _ = select(fd_list, [], [], timetout) return r def is_valid_shell(shell=""): if not isinstance(shell, str): return False if shell == "": return False try: if not os.path.isfile(shell): return False if not os.access(shell, os.X_OK): return False except Exception as e: # Utility function, no env access - use fallback logging print( f"screen_utils is_valid_shell: Error checking shell {shell}: {e}" ) return False return True def get_shell(): try: shell = os.environ["FENRIRSHELL"] if is_valid_shell(shell): return shell except Exception as e: # Utility function, no env access - continue silently pass try: shell = os.environ["SHELL"] if is_valid_shell(shell): return shell except Exception as e: # Utility function, no env access - continue silently pass try: if os.access("/etc/passwd", os.R_OK): with open("/etc/passwd") as f: users = f.readlines() for user in users: (username, encrypwd, uid, gid, gecos, homedir, shell) = ( user.split(":") ) shell = shell.replace("\n", "") if username == getpass.getuser(): if is_valid_shell(shell): return shell except Exception as e: # Utility function, no env access - continue silently pass if is_valid_shell("/bin/bash"): return "/bin/bash" return "/bin/sh" fenrir/src/fenrirscreenreader/utils/word_utils.py000066400000000000000000000101711513650123000227030ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. import string from fenrirscreenreader.core import debug def get_current_word(curr_x, curr_y, curr_text): line_break = False end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen, line_break if curr_text.strip(string.whitespace) == "": return curr_x, curr_y, "", end_of_screen, line_break x = curr_x y = curr_y curr_word = "" wrapped_lines = curr_text.split("\n") curr_line = wrapped_lines[y] found = False while not found: if not curr_line[x] in string.whitespace: if x == 0: found = True else: if curr_line[x - 1] in string.whitespace: found = True if not found: if x - 1 < 0: if y - 1 < 0: line_break = False end_of_screen = True return curr_x, curr_y, "", end_of_screen, line_break else: y -= 1 curr_line = wrapped_lines[y] x = len(curr_line) - 1 line_break = True else: x -= 1 if found: curr_word = curr_line[x:] for d in string.whitespace: delimiter_pos = curr_word.find(d) if delimiter_pos != -1: curr_word = curr_word[:delimiter_pos] return x, y, curr_word, end_of_screen, line_break return curr_x, curr_y, "", False, False def get_prev_word(curr_x, curr_y, curr_text): line_break = False end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen, line_break if curr_text.strip(string.whitespace) == "": return curr_x, curr_y, "", end_of_screen, line_break x, y, curr_word, end_of_screen, line_break_curr_word = get_current_word( curr_x, curr_y, curr_text ) if end_of_screen: return x, y, curr_word, end_of_screen, line_break wrapped_lines = curr_text.split("\n") curr_line = wrapped_lines[y] if x - 1 < 0: if y - 1 < 0: line_break = False end_of_screen = True return curr_x, curr_y, "", end_of_screen, line_break else: y -= 1 curr_line = wrapped_lines[y] x = len(curr_line) - 1 line_break = True else: x -= 1 line_break_curr_word = line_break or line_break_curr_word x, y, curr_word, end_of_screen, line_break = get_current_word( x, y, curr_text ) line_break = line_break or line_break_curr_word return x, y, curr_word, end_of_screen, line_break def get_next_word(curr_x, curr_y, curr_text): line_break = False end_of_screen = False if curr_text == "": return -1, -1, "", end_of_screen, line_break if curr_text.strip(string.whitespace) == "": return curr_x, curr_y, "", end_of_screen, line_break x = curr_x y = curr_y curr_word = "" wrapped_lines = curr_text.split("\n") curr_line = wrapped_lines[y] found = False while not found: if not found: if x + 1 > len(curr_line) - 1: if y + 1 > len(wrapped_lines) - 1: line_break = False end_of_screen = True return curr_x, curr_y, "", end_of_screen, line_break else: y += 1 curr_line = wrapped_lines[y] x = 0 line_break = True else: x += 1 if not curr_line[x] in string.whitespace: if x == 0: found = True else: if curr_line[x - 1] in string.whitespace: found = True if found: curr_word = curr_line[x:] for d in string.whitespace: delimiter_pos = curr_word.find(d) if delimiter_pos != -1: curr_word = curr_word[:delimiter_pos] return x, y, curr_word, end_of_screen, line_break return curr_x, curr_y, "", False, False fenrir/tests/000077500000000000000000000000001513650123000135015ustar00rootroot00000000000000fenrir/tests/PRE_COMMIT_INTEGRATION.md000066400000000000000000000120561513650123000173700ustar00rootroot00000000000000# Pre-Commit Test Integration ## Overview The test suite is now automatically executed as part of the pre-commit hook, ensuring all commits maintain code quality and passing tests. ## What Happens on Commit When you run `git commit`, the pre-commit hook now performs **5 validation steps**: ``` 1. Python syntax validation (all files) 2. Common issue detection (modified files) 3. Core module import testing 4. Test suite execution (37 tests) ← NEW! 5. Secret/credential detection ``` ## Test Execution ```bash 4. Running test suite... ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /home/storm/git/fenrir configfile: pytest.ini collected 37 items tests/integration/test_remote_control.py .................... [ 54%] tests/unit/test_settings_validation.py ................. [100%] ============================== 37 passed in 0.44s ============================== āœ“ All tests passed ``` **Performance:** Tests complete in **< 1 second**, adding minimal overhead to the commit process. ## Behavior ### āœ… Tests Pass - Commit Allowed ```bash $ git commit -m "Add new feature" Fenrir Pre-commit Validation ================================== 1. Validating Python syntax... āœ“ Syntax validation passed 2. Checking modified files... āœ“ No common issues found 3. Testing core module imports... āœ“ Core module imports successful 4. Running test suite... āœ“ All tests passed (37 passed in 0.44s) 5. Checking for potential secrets... āœ“ No potential secrets found ================================================== āœ“ All pre-commit validations passed Commit allowed to proceed ``` ### āŒ Tests Fail - Commit Blocked ```bash $ git commit -m "Broken feature" Fenrir Pre-commit Validation ================================== [... earlier checks pass ...] 4. Running test suite... āœ— Test suite failed Run: pytest tests/ -v (to see details) ================================================== āœ— Pre-commit validation failed Commit blocked - please fix issues above Quick fixes: • Python syntax: python3 tools/validate_syntax.py --fix • Run tests: pytest tests/ -v • Review flagged files manually • Re-run commit after fixes ``` ## Installation The pre-commit hook is installed via: ```bash # One-time setup ./tools/install_validation_hook.sh # Or manually ln -sf ../../tools/pre-commit-hook .git/hooks/pre-commit ``` ## Requirements ### Required - Python 3.7+ - Git repository ### Optional but Recommended - `pytest` - For running tests (gracefully skipped if not installed) If pytest is not installed, you'll see: ``` 4. Running test suite... ⚠ pytest not installed - skipping tests Install with: pip install pytest Or full test suite: pip install -r tests/requirements.txt ``` The commit will still proceed, but tests won't run. ## Benefits 1. **Catch bugs early** - Tests run before code reaches the repository 2. **Maintain quality** - Broken code can't be committed 3. **Fast feedback** - Tests complete in < 1 second 4. **Zero overhead** - Gracefully degrades if pytest isn't installed 5. **Confidence** - Know that all commits pass tests ## Bypassing the Hook **Not recommended**, but if you need to commit without running tests: ```bash # Skip all pre-commit checks (use with caution!) git commit --no-verify -m "Emergency hotfix" ``` **Warning:** Only use `--no-verify` for legitimate emergencies. Bypassing tests defeats their purpose. ## Troubleshooting ### Tests fail on commit but pass manually ```bash # Check environment matches cd /home/storm/git/fenrir pytest tests/ -v # Verify PYTHONPATH echo $PYTHONPATH ``` ### Hook doesn't run tests ```bash # Check pytest is installed pytest --version # Install if missing pip install pytest # Or full test dependencies pip install -r tests/requirements.txt ``` ### Hook takes too long The test suite is designed to run in < 1 second. If it's slower: ```bash # Check test timing pytest tests/ --durations=10 # Look for slow tests (should all be < 100ms) ``` ## Statistics - **Tests Executed:** 37 - **Execution Time:** 0.44 seconds - **Pass Rate:** 100% - **Coverage:** Unit tests (17) + Integration tests (20) ## Future Enhancements Possible additions to pre-commit validation: - **Coverage threshold** - Require minimum test coverage percentage - **Performance regression** - Warn if tests get slower - **Incremental testing** - Only run tests for modified code - **Parallel execution** - Use `pytest -n auto` (requires pytest-xdist) ## Related Documentation - `tests/README.md` - Test strategy overview - `tests/TESTING_GUIDE.md` - Comprehensive testing guide - `TESTING_SUMMARY.md` - Test implementation summary - `tools/pre-commit-hook` - Pre-commit hook source code ## Summary Adding tests to the pre-commit hook ensures: - āœ… All commits have passing tests - āœ… Regressions are caught immediately - āœ… Code quality is maintained - āœ… Minimal performance impact (< 1 second) - āœ… Graceful degradation without pytest **Result:** Higher code quality with virtually zero developer friction. fenrir/tests/README.md000066400000000000000000000120751513650123000147650ustar00rootroot00000000000000# Fenrir Test Suite This directory contains automated tests for the Fenrir screen reader. Testing a screen reader that requires root access and hardware interaction presents unique challenges, so we use a multi-layered testing strategy. ## Test Strategy ### 1. Unit Tests (No Root Required) Test individual components in isolation without requiring hardware access: - **Core Managers**: Logic testing without driver dependencies - **Utility Functions**: String manipulation, cursor calculations, text processing - **Settings Validation**: Configuration parsing and validation - **Remote Command Parsing**: Command/setting string processing ### 2. Integration Tests (No Root Required) Test component interactions using mocked drivers: - **Remote Control**: Unix socket and TCP communication - **Command System**: Command loading and execution flow - **Event Processing**: Event queue and dispatching - **Settings Manager**: Configuration loading and runtime changes ### 3. Driver Tests (Root Required, Optional) Test actual hardware interaction (only run in CI or explicitly by developers): - **VCSA Driver**: Screen reading on real TTY - **Evdev Driver**: Keyboard input capture - **Speech Drivers**: TTS output validation - **Sound Drivers**: Audio playback testing ### 4. End-to-End Tests (Root Required, Manual) Real-world usage scenarios run manually by developers: - Full Fenrir startup/shutdown cycle - Remote control from external scripts - VMenu navigation and command execution - Speech output for screen changes ## Running Tests ```bash # Install test dependencies pip install pytest pytest-cov pytest-mock pytest-timeout # Run all unit and integration tests (no root required) pytest tests/ # Run with coverage report pytest tests/ --cov=src/fenrirscreenreader --cov-report=html # Run only unit tests pytest tests/unit/ # Run only integration tests pytest tests/integration/ # Run specific test file pytest tests/unit/test_settings_manager.py # Run with verbose output pytest tests/ -v # Run driver tests (requires root) sudo pytest tests/drivers/ -v ``` ## Test Organization ``` tests/ ā”œā”€ā”€ README.md # This file ā”œā”€ā”€ conftest.py # Shared pytest fixtures ā”œā”€ā”€ unit/ # Unit tests (fast, no mocking needed) │ ā”œā”€ā”€ test_settings_validation.py │ ā”œā”€ā”€ test_cursor_utils.py │ ā”œā”€ā”€ test_text_utils.py │ └── test_remote_parsing.py ā”œā”€ā”€ integration/ # Integration tests (require mocking) │ ā”œā”€ā”€ test_remote_control.py │ ā”œā”€ā”€ test_command_manager.py │ ā”œā”€ā”€ test_event_manager.py │ └── test_settings_manager.py └── drivers/ # Driver tests (require root) ā”œā”€ā”€ test_vcsa_driver.py ā”œā”€ā”€ test_evdev_driver.py └── test_speech_drivers.py ``` ## Writing Tests ### Example Unit Test ```python def test_speech_rate_validation(): """Test that speech rate validation rejects out-of-range values.""" manager = SettingsManager() # Valid values should pass manager._validate_setting_value('speech', 'rate', 0.5) manager._validate_setting_value('speech', 'rate', 3.0) # Invalid values should raise ValueError with pytest.raises(ValueError): manager._validate_setting_value('speech', 'rate', -1.0) with pytest.raises(ValueError): manager._validate_setting_value('speech', 'rate', 10.0) ``` ### Example Integration Test ```python def test_remote_control_unix_socket(tmp_path): """Test Unix socket remote control accepts commands.""" socket_path = tmp_path / "test.sock" # Start mock remote driver driver = MockUnixDriver(socket_path) # Send command send_remote_command(socket_path, "command say Hello") # Verify command was received assert driver.received_commands[-1] == "command say Hello" ``` ## Test Coverage Goals - **Unit Tests**: 80%+ coverage on utility functions and validation logic - **Integration Tests**: 60%+ coverage on core managers and command system - **Overall**: 70%+ coverage on non-driver code Driver code is excluded from coverage metrics as it requires hardware interaction. ## Continuous Integration Tests are designed to run in CI environments without root access: - Unit and integration tests run on every commit - Driver tests are skipped in CI (require actual hardware) - Coverage reports are generated and tracked over time ## Test Principles 1. **No Root by Default**: Most tests should run without elevated privileges 2. **Fast Execution**: Unit tests complete in <1 second each 3. **Isolated**: Tests don't depend on each other or external state 4. **Deterministic**: Tests produce same results every run 5. **Documented**: Each test has a clear docstring explaining what it tests 6. **Realistic Mocks**: Mocked components behave like real ones ## Future Enhancements - **Performance Tests**: Measure input-to-speech latency - **Stress Tests**: Rapid event processing, memory leak detection - **Accessibility Tests**: Verify all features work without vision - **Compatibility Tests**: Test across different Linux distributions fenrir/tests/TESTING_GUIDE.md000066400000000000000000000255231513650123000160640ustar00rootroot00000000000000# Fenrir Testing Guide Complete guide to running and writing tests for the Fenrir screen reader. ## Quick Start ### 1. Install Test Dependencies ```bash # Install test requirements pip install -r tests/requirements.txt # Or install individually pip install pytest pytest-cov pytest-mock pytest-timeout ``` ### 2. Run Tests ```bash # Run all tests (unit + integration) pytest tests/ # Run only unit tests (fastest) pytest tests/unit/ -v # Run only integration tests pytest tests/integration/ -v # Run with coverage report pytest tests/ --cov=src/fenrirscreenreader --cov-report=html # Then open htmlcov/index.html in a browser # Run specific test file pytest tests/unit/test_settings_validation.py -v # Run specific test class pytest tests/unit/test_settings_validation.py::TestSpeechSettingsValidation -v # Run specific test pytest tests/unit/test_settings_validation.py::TestSpeechSettingsValidation::test_speech_rate_valid_range -v ``` ### 3. Useful Test Options ```bash # Stop on first failure pytest tests/ -x # Show test output (print statements, logging) pytest tests/ -s # Run tests in parallel (faster, requires: pip install pytest-xdist) pytest tests/ -n auto # Show slowest 10 tests pytest tests/ --durations=10 # Run only tests matching a keyword pytest tests/ -k "remote" # Run tests with specific markers pytest tests/ -m unit # Only unit tests pytest tests/ -m integration # Only integration tests pytest tests/ -m "not slow" # Skip slow tests ``` ## Test Structure ``` tests/ ā”œā”€ā”€ README.md # Test overview and strategy ā”œā”€ā”€ TESTING_GUIDE.md # This file - detailed usage guide ā”œā”€ā”€ requirements.txt # Test dependencies ā”œā”€ā”€ conftest.py # Shared fixtures and pytest config ā”œā”€ā”€ unit/ # Unit tests (fast, isolated) │ ā”œā”€ā”€ __init__.py │ ā”œā”€ā”€ test_settings_validation.py # Settings validation tests │ ā”œā”€ā”€ test_cursor_utils.py # Cursor calculation tests │ └── test_text_utils.py # Text processing tests ā”œā”€ā”€ integration/ # Integration tests (require mocking) │ ā”œā”€ā”€ __init__.py │ ā”œā”€ā”€ test_remote_control.py # Remote control functionality │ ā”œā”€ā”€ test_command_manager.py # Command loading/execution │ └── test_event_manager.py # Event queue processing └── drivers/ # Driver tests (require root) ā”œā”€ā”€ __init__.py ā”œā”€ā”€ test_vcsa_driver.py # TTY screen reading └── test_evdev_driver.py # Keyboard input capture ``` ## Writing New Tests ### Unit Test Example ```python """tests/unit/test_my_feature.py""" import pytest @pytest.mark.unit def test_speech_rate_calculation(): """Test that speech rate is calculated correctly.""" rate = calculate_speech_rate(0.5) assert 0.0 <= rate <= 1.0 assert rate == 0.5 ``` ### Integration Test Example ```python """tests/integration/test_my_integration.py""" import pytest @pytest.mark.integration def test_remote_command_execution(mock_environment): """Test remote command execution flow.""" manager = RemoteManager() manager.initialize(mock_environment) result = manager.handle_command_execution_with_response("say test") assert result["success"] is True mock_environment["runtime"]["OutputManager"].speak_text.assert_called_once() ``` ### Using Fixtures Common fixtures are defined in `conftest.py`: ```python def test_with_mock_environment(mock_environment): """Use the shared mock environment fixture.""" # mock_environment provides mocked runtime managers assert "runtime" in mock_environment assert "DebugManager" in mock_environment["runtime"] def test_with_temp_config(temp_config_file): """Use a temporary config file.""" # temp_config_file is a Path object to a valid test config assert temp_config_file.exists() content = temp_config_file.read_text() assert "[speech]" in content ``` ## Test Markers Tests can be marked to categorize them: ```python @pytest.mark.unit # Fast, isolated unit test @pytest.mark.integration # Integration test with mocking @pytest.mark.driver # Requires root access (skipped by default) @pytest.mark.slow # Takes > 1 second @pytest.mark.remote # Tests remote control functionality @pytest.mark.settings # Tests settings/configuration @pytest.mark.commands # Tests command system @pytest.mark.vmenu # Tests VMenu system ``` Run tests by marker: ```bash pytest tests/ -m unit # Only unit tests pytest tests/ -m "unit or integration" # Unit and integration pytest tests/ -m "not slow" # Skip slow tests ``` ## Code Coverage ### View Coverage Report ```bash # Generate HTML coverage report pytest tests/ --cov=src/fenrirscreenreader --cov-report=html # Open report in browser firefox htmlcov/index.html # Or your preferred browser # Terminal coverage report pytest tests/ --cov=src/fenrirscreenreader --cov-report=term-missing ``` ### Coverage Goals - **Unit Tests**: 80%+ coverage on utility functions and validation logic - **Integration Tests**: 60%+ coverage on core managers - **Overall**: 70%+ coverage on non-driver code Driver code is excluded from coverage as it requires hardware interaction. ## Testing Best Practices ### 1. Test One Thing ```python # Good - tests one specific behavior def test_speech_rate_rejects_negative(): with pytest.raises(ValueError): validate_rate(-1.0) # Bad - tests multiple unrelated things def test_speech_settings(): validate_rate(0.5) # Rate validation validate_pitch(1.0) # Pitch validation validate_volume(0.8) # Volume validation ``` ### 2. Use Descriptive Names ```python # Good - clear what's being tested def test_speech_rate_rejects_values_above_three(): ... # Bad - unclear purpose def test_rate(): ... ``` ### 3. Arrange-Act-Assert Pattern ```python def test_remote_command_parsing(): # Arrange - set up test data manager = RemoteManager() command = "say Hello World" # Act - execute the code being tested result = manager.parse_command(command) # Assert - verify the result assert result["action"] == "say" assert result["text"] == "Hello World" ``` ### 4. Mock External Dependencies ```python def test_clipboard_export(mock_environment, tmp_path): """Test clipboard export without real file operations.""" # Use mock environment instead of real Fenrir runtime manager = RemoteManager() manager.initialize(mock_environment) # Use temporary path instead of /tmp clipboard_path = tmp_path / "clipboard" mock_environment["runtime"]["SettingsManager"].get_setting = Mock( return_value=str(clipboard_path) ) manager.export_clipboard() assert clipboard_path.exists() ``` ### 5. Test Error Paths ```python def test_remote_command_handles_invalid_input(): """Test that invalid commands are handled gracefully.""" manager = RemoteManager() # Test with various invalid inputs result1 = manager.handle_command_execution_with_response("") result2 = manager.handle_command_execution_with_response("invalid") result3 = manager.handle_command_execution_with_response("command unknown") # All should return error results, not crash assert all(not r["success"] for r in [result1, result2, result3]) ``` ## Debugging Tests ### Run with More Verbosity ```bash # Show test names and outcomes pytest tests/ -v # Show test names, outcomes, and print statements pytest tests/ -v -s # Show local variables on failure pytest tests/ --showlocals # Show full diff on assertion failures pytest tests/ -vv ``` ### Use pytest.set_trace() for Debugging ```python def test_complex_logic(): result = complex_function() pytest.set_trace() # Drop into debugger here assert result == expected ``` ### Run Single Test Repeatedly ```bash # Useful for debugging flaky tests pytest tests/unit/test_my_test.py::test_specific_test --count=100 ``` ## Continuous Integration ### GitHub Actions Example ```yaml name: Tests on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.9' - name: Install dependencies run: | pip install -r requirements.txt pip install -r tests/requirements.txt - name: Run tests run: pytest tests/ --cov=src/fenrirscreenreader --cov-report=xml - name: Upload coverage uses: codecov/codecov-action@v3 ``` ## Common Issues ### ImportError: No module named 'fenrirscreenreader' **Solution**: Make sure you're running pytest from the project root, or set PYTHONPATH: ```bash export PYTHONPATH="${PYTHONPATH}:$(pwd)/src" pytest tests/ ``` ### Tests hang or timeout **Solution**: Use the timeout decorator or pytest-timeout: ```bash pytest tests/ --timeout=30 # Global 30s timeout ``` Or mark specific tests: ```python @pytest.mark.timeout(5) def test_that_might_hang(): ... ``` ### Mocks not working as expected **Solution**: Check that you're patching the right location: ```python # Good - patch where it's used @patch('fenrirscreenreader.core.remoteManager.OutputManager') # Bad - patch where it's defined @patch('fenrirscreenreader.core.outputManager.OutputManager') ``` ## Advanced Topics ### Parametrized Tests Test multiple inputs with one test: ```python @pytest.mark.parametrize("rate,expected", [ (0.0, True), (1.5, True), (3.0, True), (-1.0, False), (10.0, False), ]) def test_rate_validation(rate, expected): try: validate_rate(rate) assert expected is True except ValueError: assert expected is False ``` ### Test Fixtures with Cleanup ```python @pytest.fixture def temp_fenrir_instance(): """Start a test Fenrir instance.""" fenrir = FenrirTestInstance() fenrir.start() yield fenrir # Test runs here # Cleanup after test fenrir.stop() fenrir.cleanup() ``` ### Testing Async Code ```python @pytest.mark.asyncio async def test_async_speech(): result = await async_speak("test") assert result.success ``` ## Getting Help - **Pytest Documentation**: https://docs.pytest.org/ - **Fenrir Issues**: https://github.com/chrys87/fenrir/issues - **Test Coverage**: Run with `--cov-report=html` and inspect `htmlcov/index.html` ## Contributing Tests When contributing tests: 1. **Follow naming conventions**: `test_*.py` for files, `test_*` for functions 2. **Add docstrings**: Explain what each test verifies 3. **Use appropriate markers**: `@pytest.mark.unit`, `@pytest.mark.integration`, etc. 4. **Keep tests fast**: Unit tests should complete in <100ms 5. **Test edge cases**: Empty strings, None, negative numbers, etc. 6. **Update this guide**: If you add new test patterns or fixtures Happy testing! 🧪 fenrir/tests/conftest.py000066400000000000000000000135521513650123000157060ustar00rootroot00000000000000""" Shared pytest fixtures for Fenrir tests. This file contains fixtures and configuration used across all test modules. """ import os import sys import tempfile from pathlib import Path from unittest.mock import MagicMock, Mock import pytest # Add src directory to Python path for imports fenrir_root = Path(__file__).parent.parent sys.path.insert(0, str(fenrir_root / "src")) @pytest.fixture def mock_environment(): """Create a minimal mock environment for testing. Returns a mock environment dict with required runtime managers mocked. This allows testing components without initializing the full Fenrir stack. """ env = { "runtime": { "DebugManager": Mock(write_debug_out=Mock()), "OutputManager": Mock( present_text=Mock(), speak_text=Mock(), interrupt_output=Mock(), ), "SettingsManager": Mock( get_setting=Mock(return_value="default"), get_setting_as_int=Mock(return_value=0), get_setting_as_float=Mock(return_value=0.0), get_setting_as_bool=Mock(return_value=True), ), "InputManager": Mock( sendKeys=Mock(), handle_device_grab=Mock(), ), "ScreenManager": Mock(update_screen_ignored=Mock()), "EventManager": Mock(stop_main_event_loop=Mock()), "MemoryManager": Mock( add_value_to_first_index=Mock(), get_index_list_element=Mock(return_value="test clipboard"), is_index_list_empty=Mock(return_value=False), ), "VmenuManager": Mock( set_curr_menu=Mock(), ), "CursorManager": Mock( set_window_for_application=Mock(), clear_window_for_application=Mock(), ), }, "settings": Mock(), "general": { "curr_user": "testuser", }, } return env @pytest.fixture def temp_config_file(tmp_path): """Create a temporary configuration file for testing. Returns path to a valid test configuration file. """ config_path = tmp_path / "test_settings.conf" config_content = """[sound] enabled=True driver=gstreamerDriver theme=default volume=0.7 [speech] enabled=True driver=speechdDriver rate=0.5 pitch=0.5 volume=1.0 autoReadIncoming=True [screen] driver=vcsaDriver encoding=auto screenUpdateDelay=0.05 [keyboard] driver=evdevDriver device=ALL grabDevices=True keyboardLayout=desktop [general] debugLevel=2 debugMode=File [remote] enable=True driver=unixDriver port=22447 enableSettingsRemote=True enableCommandRemote=True """ config_path.write_text(config_content) return config_path @pytest.fixture def temp_socket_path(tmp_path): """Create a temporary Unix socket path for testing. Returns path that can be used for Unix socket testing. """ return tmp_path / "test_fenrir.sock" @pytest.fixture def temp_clipboard_file(tmp_path): """Create a temporary clipboard file for testing. Returns path to a temporary file for clipboard operations. """ clipboard_path = tmp_path / "fenrirClipboard" clipboard_path.write_text("") return clipboard_path @pytest.fixture def sample_screen_data(): """Return sample screen data for testing screen-related functionality. Returns dict with screen dimensions and content. """ return { "columns": 80, "lines": 24, "delta": "Hello World", "cursor": {"x": 0, "y": 0}, "content": "Sample screen content\nSecond line\nThird line", } @pytest.fixture def sample_remote_commands(): """Return sample remote control commands for testing. Returns list of valid remote commands. """ return [ "command say Hello World", "command interrupt", "setting set speech#rate=0.8", "setting set speech#pitch=0.6", "setting set sound#volume=0.5", "setting reset", ] @pytest.fixture def invalid_remote_commands(): """Return invalid remote control commands for testing validation. Returns list of commands that should be rejected. """ return [ "setting set speech#rate=999", # Out of range "setting set speech#rate=-1", # Negative value "setting set speech#pitch=10", # Out of range "setting set speech#volume=-0.5", # Negative volume "setting set invalid#setting=value", # Invalid section "command unknown_command", # Unknown command ] # Pytest hooks for test session customization def pytest_configure(config): """Configure pytest with custom settings.""" # Add custom markers config.addinivalue_line( "markers", "unit: Unit tests (fast, no mocking required)" ) config.addinivalue_line( "markers", "integration: Integration tests (require mocking)" ) config.addinivalue_line( "markers", "driver: Driver tests (require root access)" ) config.addinivalue_line( "markers", "slow: Tests that take more than 1 second" ) def pytest_collection_modifyitems(config, items): """Modify test collection to skip driver tests unless explicitly run. Driver tests require root access and hardware, so skip by default. Run with: pytest --run-driver-tests """ skip_driver = pytest.mark.skip( reason="Driver tests require root access (use --run-driver-tests)" ) run_driver_tests = config.getoption("--run-driver-tests", default=False) for item in items: if "driver" in item.keywords and not run_driver_tests: item.add_marker(skip_driver) def pytest_addoption(parser): """Add custom command line options.""" parser.addoption( "--run-driver-tests", action="store_true", default=False, help="Run driver tests that require root access", ) fenrir/tests/integration/000077500000000000000000000000001513650123000160245ustar00rootroot00000000000000fenrir/tests/integration/__init__.py000066400000000000000000000000751513650123000201370ustar00rootroot00000000000000"""Integration tests for Fenrir screen reader components.""" fenrir/tests/integration/test_remote_control.py000066400000000000000000000267551513650123000225070ustar00rootroot00000000000000""" Integration tests for remote control functionality. Tests the remote control system including Unix socket and TCP communication, command parsing, and settings management. """ import pytest import socket import time from unittest.mock import Mock, patch from fenrirscreenreader.core.remoteManager import RemoteManager @pytest.mark.integration @pytest.mark.remote class TestRemoteCommandParsing: """Test remote control command parsing and execution.""" def setup_method(self): """Create RemoteManager instance for each test.""" self.manager = RemoteManager() def test_say_command_parsing(self, mock_environment): """Test parsing of 'command say' messages.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "say Hello World" ) assert result["success"] is True assert "Speaking" in result["message"] mock_environment["runtime"]["OutputManager"].speak_text.assert_called_once_with( "Hello World" ) def test_interrupt_command(self, mock_environment): """Test speech interruption command.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response("interrupt") assert result["success"] is True mock_environment["runtime"][ "OutputManager" ].interrupt_output.assert_called_once() def test_setting_change_parsing(self, mock_environment): """Test parsing of 'setting set' commands.""" self.manager.initialize(mock_environment) # Mock parse_setting_args to verify it gets called with patch.object( mock_environment["runtime"]["SettingsManager"], "parse_setting_args" ) as mock_parse: result = self.manager.handle_settings_change_with_response( "set speech#rate=0.8" ) assert result["success"] is True mock_parse.assert_called_once_with("speech#rate=0.8") def test_clipboard_command(self, mock_environment): """Test clipboard setting via remote control.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "clipboard Test clipboard content" ) assert result["success"] is True mock_environment["runtime"][ "MemoryManager" ].add_value_to_first_index.assert_called_once_with( "clipboardHistory", "Test clipboard content" ) def test_quit_command(self, mock_environment): """Test Fenrir shutdown command.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "quitapplication" ) assert result["success"] is True mock_environment["runtime"][ "EventManager" ].stop_main_event_loop.assert_called_once() def test_unknown_command_rejection(self, mock_environment): """Test that unknown commands are rejected.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "unknown_command" ) assert result["success"] is False assert "Unknown command" in result["message"] @pytest.mark.integration @pytest.mark.remote class TestRemoteSettingsControl: """Test remote control of settings.""" def setup_method(self): """Create RemoteManager instance for each test.""" self.manager = RemoteManager() def test_setting_reset(self, mock_environment): """Test resetting settings to defaults.""" self.manager.initialize(mock_environment) with patch.object( mock_environment["runtime"]["SettingsManager"], "reset_setting_arg_dict" ) as mock_reset: result = self.manager.handle_settings_change_with_response("reset") assert result["success"] is True mock_reset.assert_called_once() def test_setting_save(self, mock_environment): """Test saving settings to file.""" self.manager.initialize(mock_environment) mock_environment["runtime"]["SettingsManager"].get_settings_file = Mock( return_value="/tmp/test.conf" ) with patch.object( mock_environment["runtime"]["SettingsManager"], "save_settings" ) as mock_save: result = self.manager.handle_settings_change_with_response("save") assert result["success"] is True mock_save.assert_called_once() def test_settings_remote_disabled(self, mock_environment): """Test that settings commands are blocked when disabled.""" mock_environment["runtime"]["SettingsManager"].get_setting_as_bool = Mock( return_value=False ) self.manager.initialize(mock_environment) result = self.manager.handle_settings_change_with_response( "set speech#rate=0.5" ) assert result["success"] is False assert "disabled" in result["message"].lower() @pytest.mark.integration @pytest.mark.remote class TestRemoteDataFormat: """Test remote control data format handling.""" def setup_method(self): """Create RemoteManager instance for each test.""" self.manager = RemoteManager() def test_command_prefix_case_insensitive(self, mock_environment): """Test that command prefixes are case-insensitive.""" self.manager.initialize(mock_environment) # All of these should work result1 = self.manager.handle_remote_incomming_with_response( "COMMAND say test" ) result2 = self.manager.handle_remote_incomming_with_response( "command say test" ) result3 = self.manager.handle_remote_incomming_with_response( "CoMmAnD say test" ) assert all(r["success"] for r in [result1, result2, result3]) def test_setting_prefix_case_insensitive(self, mock_environment): """Test that setting prefixes are case-insensitive.""" self.manager.initialize(mock_environment) with patch.object( mock_environment["runtime"]["SettingsManager"], "parse_setting_args" ): result1 = self.manager.handle_remote_incomming_with_response( "SETTING set speech#rate=0.5" ) result2 = self.manager.handle_remote_incomming_with_response( "setting set speech#rate=0.5" ) assert all(r["success"] for r in [result1, result2]) def test_empty_data_handling(self, mock_environment): """Test handling of empty remote data.""" self.manager.initialize(mock_environment) result = self.manager.handle_remote_incomming_with_response("") assert result["success"] is False assert "No data" in result["message"] def test_invalid_format_rejection(self, mock_environment): """Test rejection of invalid command format.""" self.manager.initialize(mock_environment) result = self.manager.handle_remote_incomming_with_response( "invalid format without prefix" ) assert result["success"] is False assert "Unknown command format" in result["message"] @pytest.mark.integration @pytest.mark.remote class TestWindowDefinition: """Test window definition via remote control.""" def setup_method(self): """Create RemoteManager instance for each test.""" self.manager = RemoteManager() def test_define_window_valid_coordinates(self, mock_environment): """Test defining a window with valid coordinates.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "window 10 5 70 20" ) assert result["success"] is True mock_environment["runtime"][ "CursorManager" ].set_window_for_application.assert_called_once() # Verify the coordinates were parsed correctly call_args = mock_environment["runtime"][ "CursorManager" ].set_window_for_application.call_args start, end = call_args[0] assert start == {"x": 10, "y": 5} assert end == {"x": 70, "y": 20} def test_define_window_insufficient_coordinates(self, mock_environment): """Test that window definition with < 4 coordinates is ignored.""" self.manager.initialize(mock_environment) # Should succeed but not call set_window_for_application result = self.manager.handle_command_execution_with_response("window 10 20") assert result["success"] is True mock_environment["runtime"][ "CursorManager" ].set_window_for_application.assert_not_called() def test_reset_window(self, mock_environment): """Test resetting window to full screen.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response("resetwindow") assert result["success"] is True mock_environment["runtime"][ "CursorManager" ].clear_window_for_application.assert_called_once() @pytest.mark.integration @pytest.mark.remote class TestVMenuControl: """Test VMenu control via remote.""" def setup_method(self): """Create RemoteManager instance for each test.""" self.manager = RemoteManager() def test_set_vmenu(self, mock_environment): """Test setting VMenu to specific menu.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response( "vmenu /vim/file/save" ) assert result["success"] is True mock_environment["runtime"]["VmenuManager"].set_curr_menu.assert_called_once_with( "/vim/file/save" ) def test_reset_vmenu(self, mock_environment): """Test resetting VMenu to default.""" self.manager.initialize(mock_environment) result = self.manager.handle_command_execution_with_response("resetvmenu") assert result["success"] is True mock_environment["runtime"]["VmenuManager"].set_curr_menu.assert_called_once_with() @pytest.mark.integration @pytest.mark.remote @pytest.mark.slow class TestRemoteControlThroughput: """Test remote control performance characteristics.""" def test_rapid_say_commands(self, mock_environment): """Test handling of rapid successive say commands.""" manager = RemoteManager() manager.initialize(mock_environment) # Send 100 rapid commands for i in range(100): result = manager.handle_command_execution_with_response(f"say test {i}") assert result["success"] is True # Verify all were queued assert ( mock_environment["runtime"]["OutputManager"].speak_text.call_count == 100 ) def test_rapid_setting_changes(self, mock_environment): """Test handling of rapid setting changes.""" manager = RemoteManager() manager.initialize(mock_environment) # Rapidly change speech rate with patch.object( mock_environment["runtime"]["SettingsManager"], "parse_setting_args" ) as mock_parse: for rate in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]: result = manager.handle_settings_change_with_response( f"set speech#rate={rate}" ) assert result["success"] is True assert mock_parse.call_count == 6 fenrir/tests/requirements.txt000066400000000000000000000013361513650123000167700ustar00rootroot00000000000000# Test dependencies for Fenrir screen reader # Install with: pip install -r tests/requirements.txt # Core testing framework (required) pytest>=7.0.0 # Optional but recommended plugins pytest-cov>=4.0.0 # Coverage reporting (pytest --cov) pytest-mock>=3.10.0 # Enhanced mocking utilities pytest-timeout>=2.1.0 # Timeout for hanging tests (pytest --timeout) pytest-xdist>=3.0.0 # Parallel test execution (pytest -n auto) # Additional testing utilities (optional) freezegun>=1.2.0 # Time mocking responses>=0.22.0 # HTTP mocking (for future web features) # Minimal install (just pytest): # pip install pytest # # Full install (all features): # pip install -r tests/requirements.txt fenrir/tests/unit/000077500000000000000000000000001513650123000144605ustar00rootroot00000000000000fenrir/tests/unit/__init__.py000066400000000000000000000000661513650123000165730ustar00rootroot00000000000000"""Unit tests for Fenrir screen reader components.""" fenrir/tests/unit/test_settings_validation.py000066400000000000000000000202431513650123000221440ustar00rootroot00000000000000""" Unit tests for settings validation in SettingsManager. Tests the _validate_setting_value method to ensure proper input validation for all configurable settings that could cause crashes or accessibility issues. """ import pytest import sys from pathlib import Path # Import the settings manager from fenrirscreenreader.core.settingsManager import SettingsManager @pytest.mark.unit @pytest.mark.settings class TestSpeechSettingsValidation: """Test validation of speech-related settings.""" def setup_method(self): """Create a SettingsManager instance for each test.""" self.manager = SettingsManager() def test_speech_rate_valid_range(self): """Speech rate should accept values between 0.0 and 3.0.""" # Valid boundary values self.manager._validate_setting_value("speech", "rate", 0.0) self.manager._validate_setting_value("speech", "rate", 1.5) self.manager._validate_setting_value("speech", "rate", 3.0) def test_speech_rate_rejects_negative(self): """Speech rate should reject negative values.""" with pytest.raises(ValueError, match="must be between 0.0 and 3.0"): self.manager._validate_setting_value("speech", "rate", -0.1) def test_speech_rate_rejects_too_high(self): """Speech rate should reject values above 3.0.""" with pytest.raises(ValueError, match="must be between 0.0 and 3.0"): self.manager._validate_setting_value("speech", "rate", 10.0) def test_speech_pitch_valid_range(self): """Speech pitch should accept values between 0.0 and 2.0.""" self.manager._validate_setting_value("speech", "pitch", 0.0) self.manager._validate_setting_value("speech", "pitch", 1.0) self.manager._validate_setting_value("speech", "pitch", 2.0) def test_speech_pitch_rejects_invalid(self): """Speech pitch should reject out-of-range values.""" with pytest.raises(ValueError, match="must be between 0.0 and 2.0"): self.manager._validate_setting_value("speech", "pitch", -1.0) with pytest.raises(ValueError, match="must be between 0.0 and 2.0"): self.manager._validate_setting_value("speech", "pitch", 5.0) def test_speech_volume_valid_range(self): """Speech volume should accept values between 0.0 and 1.5.""" self.manager._validate_setting_value("speech", "volume", 0.0) self.manager._validate_setting_value("speech", "volume", 1.0) self.manager._validate_setting_value("speech", "volume", 1.5) def test_speech_volume_rejects_negative(self): """Speech volume should reject negative values.""" with pytest.raises(ValueError, match="must be between 0.0 and 1.5"): self.manager._validate_setting_value("speech", "volume", -0.5) def test_speech_driver_whitelisted(self): """Speech driver should only accept whitelisted values.""" # Valid drivers self.manager._validate_setting_value("speech", "driver", "speechdDriver") self.manager._validate_setting_value("speech", "driver", "genericDriver") self.manager._validate_setting_value("speech", "driver", "dummyDriver") # Invalid driver with pytest.raises(ValueError, match="Invalid speech driver"): self.manager._validate_setting_value( "speech", "driver", "nonexistentDriver" ) @pytest.mark.unit @pytest.mark.settings class TestSoundSettingsValidation: """Test validation of sound-related settings.""" def setup_method(self): """Create a SettingsManager instance for each test.""" self.manager = SettingsManager() def test_sound_volume_valid_range(self): """Sound volume should accept values between 0.0 and 1.5.""" self.manager._validate_setting_value("sound", "volume", 0.0) self.manager._validate_setting_value("sound", "volume", 0.7) self.manager._validate_setting_value("sound", "volume", 1.5) def test_sound_volume_rejects_invalid(self): """Sound volume should reject out-of-range values.""" with pytest.raises(ValueError, match="must be between 0.0 and 1.5"): self.manager._validate_setting_value("sound", "volume", -0.1) with pytest.raises(ValueError, match="must be between 0.0 and 1.5"): self.manager._validate_setting_value("sound", "volume", 2.0) def test_sound_driver_whitelisted(self): """Sound driver should only accept whitelisted values.""" # Valid drivers self.manager._validate_setting_value("sound", "driver", "genericDriver") self.manager._validate_setting_value("sound", "driver", "gstreamerDriver") self.manager._validate_setting_value("sound", "driver", "dummyDriver") # Invalid driver with pytest.raises(ValueError, match="Invalid sound driver"): self.manager._validate_setting_value("sound", "driver", "invalidDriver") @pytest.mark.unit @pytest.mark.settings class TestDriverValidation: """Test validation of driver selection settings.""" def setup_method(self): """Create a SettingsManager instance for each test.""" self.manager = SettingsManager() def test_screen_driver_whitelisted(self): """Screen driver should only accept whitelisted values.""" # Valid drivers self.manager._validate_setting_value("screen", "driver", "vcsaDriver") self.manager._validate_setting_value("screen", "driver", "ptyDriver") self.manager._validate_setting_value("screen", "driver", "dummyDriver") # Invalid driver with pytest.raises(ValueError, match="Invalid screen driver"): self.manager._validate_setting_value("screen", "driver", "unknownDriver") def test_keyboard_driver_whitelisted(self): """Keyboard driver should only accept whitelisted values.""" # Valid drivers self.manager._validate_setting_value("keyboard", "driver", "evdevDriver") self.manager._validate_setting_value("keyboard", "driver", "ptyDriver") self.manager._validate_setting_value("keyboard", "driver", "atspiDriver") self.manager._validate_setting_value("keyboard", "driver", "dummyDriver") # Invalid driver with pytest.raises(ValueError, match="Invalid input driver"): self.manager._validate_setting_value("keyboard", "driver", "badDriver") @pytest.mark.unit @pytest.mark.settings class TestGeneralSettingsValidation: """Test validation of general settings.""" def setup_method(self): """Create a SettingsManager instance for each test.""" self.manager = SettingsManager() def test_debug_level_valid_range(self): """Debug level should accept values 0-3.""" self.manager._validate_setting_value("general", "debug_level", 0) self.manager._validate_setting_value("general", "debug_level", 1) self.manager._validate_setting_value("general", "debug_level", 2) self.manager._validate_setting_value("general", "debug_level", 3) def test_debug_level_rejects_invalid(self): """Debug level should reject values outside 0-3.""" with pytest.raises(ValueError, match="must be between 0 and 3"): self.manager._validate_setting_value("general", "debug_level", -1) with pytest.raises(ValueError, match="must be between 0 and 3"): self.manager._validate_setting_value("general", "debug_level", 10) @pytest.mark.unit @pytest.mark.settings class TestValidationSkipsUnknownSettings: """Test that validation doesn't error on unknown settings.""" def setup_method(self): """Create a SettingsManager instance for each test.""" self.manager = SettingsManager() def test_unknown_section_no_error(self): """Unknown sections should not raise errors during validation.""" # Should not raise - validation only applies to known critical settings self.manager._validate_setting_value("unknown_section", "setting", "value") def test_unknown_setting_no_error(self): """Unknown settings in known sections should not raise errors.""" # Should not raise - only specific critical settings are validated self.manager._validate_setting_value("speech", "unknown_setting", "value") fenrir/tools/000077500000000000000000000000001513650123000134775ustar00rootroot00000000000000fenrir/tools/cleanup_cache.py000077500000000000000000000227311513650123000166330ustar00rootroot00000000000000#!/usr/bin/env python3 """ Fenrir Cache Cleanup Tool Removes Python cache files and directories from the repository. These files should never be committed and can cause issues. Usage: python3 tools/cleanup_cache.py # Show what would be removed python3 tools/cleanup_cache.py --remove # Actually remove cache files python3 tools/cleanup_cache.py --check # Exit with error if cache files found """ import os import sys import argparse import shutil from pathlib import Path class CacheCleanup: def __init__(self, verbose=True): self.verbose = verbose self.cache_dirs = [] self.cache_files = [] def log(self, message, level="INFO"): """Log a message with appropriate formatting.""" if not self.verbose and level == "INFO": return colors = { "INFO": "\033[0;36m", # Cyan "SUCCESS": "\033[0;32m", # Green "WARNING": "\033[1;33m", # Yellow "ERROR": "\033[0;31m", # Red "HEADER": "\033[1;34m", # Bold Blue } reset = "\033[0m" color = colors.get(level, "") if level == "HEADER": print(f"\n{color}{'='*60}") print(f"{message}") print(f"{'='*60}{reset}") else: symbol = { "SUCCESS": "āœ“", "ERROR": "āœ—", "WARNING": "⚠", "INFO": "•" }.get(level, "•") print(f"{color}{symbol} {message}{reset}") def find_cache_files(self, directory): """Find all Python cache files and directories.""" directory = Path(directory) for root, dirs, files in os.walk(directory): root_path = Path(root) # Skip .git directory entirely if '.git' in root_path.parts: continue # Find __pycache__ directories if '__pycache__' in dirs: cache_dir = root_path / '__pycache__' self.cache_dirs.append(cache_dir) # Don't traverse into __pycache__ directories dirs.remove('__pycache__') # Find .pyc files outside of __pycache__ for file in files: if file.endswith('.pyc'): cache_file = root_path / file self.cache_files.append(cache_file) def show_findings(self): """Display what cache files were found.""" total_items = len(self.cache_dirs) + len(self.cache_files) if total_items == 0: self.log("No Python cache files found", "SUCCESS") return True self.log(f"Found {total_items} cache items:", "WARNING") if self.cache_dirs: self.log(f"\n__pycache__ directories ({len(self.cache_dirs)}):", "WARNING") for cache_dir in sorted(self.cache_dirs): # Show size of directory size = self.get_directory_size(cache_dir) self.log(f" {cache_dir} ({size} files)", "WARNING") if self.cache_files: self.log(f"\nLoose .pyc files ({len(self.cache_files)}):", "WARNING") for cache_file in sorted(self.cache_files): # Show file size try: size = cache_file.stat().st_size size_str = self.format_size(size) self.log(f" {cache_file} ({size_str})", "WARNING") except OSError: self.log(f" {cache_file} (size unknown)", "WARNING") return False def get_directory_size(self, directory): """Get the number of files in a directory.""" try: return len(list(directory.rglob('*'))) except OSError: return 0 def format_size(self, size_bytes): """Format file size in human-readable format.""" if size_bytes < 1024: return f"{size_bytes} B" elif size_bytes < 1024 * 1024: return f"{size_bytes // 1024} KB" else: return f"{size_bytes // (1024 * 1024)} MB" def remove_cache_files(self): """Actually remove the cache files and directories.""" removed_count = 0 errors = [] # Remove __pycache__ directories for cache_dir in self.cache_dirs: try: if cache_dir.exists(): shutil.rmtree(cache_dir) self.log(f"Removed directory: {cache_dir}", "SUCCESS") removed_count += 1 except OSError as e: error_msg = f"Failed to remove {cache_dir}: {e}" errors.append(error_msg) self.log(error_msg, "ERROR") # Remove .pyc files for cache_file in self.cache_files: try: if cache_file.exists(): cache_file.unlink() self.log(f"Removed file: {cache_file}", "SUCCESS") removed_count += 1 except OSError as e: error_msg = f"Failed to remove {cache_file}: {e}" errors.append(error_msg) self.log(error_msg, "ERROR") if errors: self.log(f"Encountered {len(errors)} errors during cleanup", "ERROR") return False else: self.log(f"Successfully removed {removed_count} cache items", "SUCCESS") return True def check_gitignore(self): """Check if .gitignore properly excludes cache files.""" gitignore_path = Path('.gitignore') if not gitignore_path.exists(): self.log("Warning: No .gitignore file found", "WARNING") return False try: with open(gitignore_path, 'r') as f: content = f.read() has_pycache = '__pycache__' in content or '__pycache__/' in content has_pyc = '*.pyc' in content if has_pycache and has_pyc: self.log("āœ“ .gitignore properly excludes Python cache files", "SUCCESS") return True else: missing = [] if not has_pycache: missing.append("__pycache__/") if not has_pyc: missing.append("*.pyc") self.log(f"Warning: .gitignore missing: {', '.join(missing)}", "WARNING") return False except OSError as e: self.log(f"Could not read .gitignore: {e}", "ERROR") return False def suggest_gitignore_additions(self): """Suggest additions to .gitignore.""" self.log("\nRecommended .gitignore entries for Python:", "INFO") print(""" # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg """) def main(): parser = argparse.ArgumentParser(description='Clean Python cache files from Fenrir repository') parser.add_argument('--remove', action='store_true', help='Actually remove cache files (default is dry-run)') parser.add_argument('--check', action='store_true', help='Exit with non-zero code if cache files found') parser.add_argument('--quiet', action='store_true', help='Reduce output verbosity') parser.add_argument('--directory', default='.', help='Directory to scan (default: current directory)') args = parser.parse_args() # Ensure we're in the project root if not Path("src/fenrirscreenreader").exists(): print("Error: Must be run from Fenrir project root directory") sys.exit(1) cleanup = CacheCleanup(verbose=not args.quiet) cleanup.log("FENRIR CACHE CLEANUP", "HEADER") cleanup.log(f"Scanning directory: {Path(args.directory).absolute()}") # Find cache files cleanup.find_cache_files(args.directory) # Show what we found no_cache_found = cleanup.show_findings() if no_cache_found: # Check .gitignore anyway cleanup.check_gitignore() cleanup.log("\nāœ… Repository is clean of Python cache files", "SUCCESS") sys.exit(0) # Check .gitignore gitignore_ok = cleanup.check_gitignore() if not gitignore_ok: cleanup.suggest_gitignore_additions() # Handle different modes if args.remove: cleanup.log("\n🧹 REMOVING CACHE FILES", "HEADER") success = cleanup.remove_cache_files() if success: cleanup.log("\nāœ… Cache cleanup completed successfully", "SUCCESS") sys.exit(0) else: cleanup.log("\nāŒ Cache cleanup completed with errors", "ERROR") sys.exit(1) elif args.check: cleanup.log("\nāŒ Cache files found - validation failed", "ERROR") cleanup.log("Run with --remove to clean up cache files", "INFO") sys.exit(1) else: # Dry run mode cleanup.log("\nšŸ’” DRY RUN MODE", "HEADER") cleanup.log("Add --remove to actually delete these files", "INFO") cleanup.log("Add --check to fail if cache files are present", "INFO") sys.exit(0) if __name__ == '__main__': main() fenrir/tools/clipboard_sync.sh000077500000000000000000000062601513650123000170350ustar00rootroot00000000000000#!/bin/bash # Fenrir X11 Clipboard Sync # Synchronizes between X11 clipboard and Fenrir clipboard file # Prevents loops using checksums and timestamps # Check for root privileges if [[ $(whoami) != "root" ]]; then echo "Error: This script must be run as root to access Fenrir's clipboard file" echo "Run with: sudo DISPLAY=:0 ./clipboard_sync.sh" exit 1 fi FENRIR_CLIPBOARD_FILE="${1:-/tmp/fenrirClipboard}" STATE_FILE="/var/tmp/.fenrir_clipboard_state" # Simple state tracking without complex locking get_file_checksum() { if [[ -f "$FENRIR_CLIPBOARD_FILE" ]]; then md5sum "$FENRIR_CLIPBOARD_FILE" 2>/dev/null | cut -d' ' -f1 else echo "" fi } get_clipboard_checksum() { xclip -o -selection clipboard 2>/dev/null | md5sum | cut -d' ' -f1 } # Initialize state rm -f "$STATE_FILE" 2>/dev/null echo "Starting Fenrir clipboard sync..." echo "Monitoring file: $FENRIR_CLIPBOARD_FILE" # Check dependencies if ! command -v xclip >/dev/null 2>&1; then echo "Error: xclip is required but not installed" echo "Install with: sudo apt install xclip" exit 1 fi if ! command -v inotifywait >/dev/null 2>&1; then echo "Error: inotify-tools is required but not installed" echo "Install with: sudo apt install inotify-tools" exit 1 fi # Create clipboard file if it doesn't exist touch "$FENRIR_CLIPBOARD_FILE" echo "Starting Fenrir clipboard sync..." while true; do # Read last state if [[ -f "$STATE_FILE" ]]; then read -r LAST_FILE_CHECKSUM LAST_CLIPBOARD_CHECKSUM LAST_UPDATE_TIME < "$STATE_FILE" else LAST_FILE_CHECKSUM="" LAST_CLIPBOARD_CHECKSUM="" LAST_UPDATE_TIME="0" fi # Get current checksums CURRENT_FILE_CHECKSUM=$(get_file_checksum) CURRENT_CLIPBOARD_CHECKSUM=$(get_clipboard_checksum) CURRENT_TIME=$(date +%s) # Skip update if we just made one (prevent immediate loops) TIME_SINCE_LAST=$((CURRENT_TIME - LAST_UPDATE_TIME)) if [[ $TIME_SINCE_LAST -lt 3 ]]; then sleep 1 continue fi # Clipboard changed if [[ "$CURRENT_CLIPBOARD_CHECKSUM" != "$LAST_CLIPBOARD_CHECKSUM" ]]; then echo "X11 clipboard changed, updating file..." if xclip -o -selection clipboard > "$FENRIR_CLIPBOARD_FILE" 2>/dev/null; then CURRENT_FILE_CHECKSUM=$(get_file_checksum) echo "$CURRENT_FILE_CHECKSUM $CURRENT_CLIPBOARD_CHECKSUM $CURRENT_TIME" > "$STATE_FILE" echo "File updated successfully" else echo "Failed to update file from clipboard" fi sleep 1 continue fi # File changed if [[ "$CURRENT_FILE_CHECKSUM" != "$LAST_FILE_CHECKSUM" ]]; then echo "Fenrir clipboard file changed, updating X11 clipboard..." if cat "$FENRIR_CLIPBOARD_FILE" | xclip -i -selection clipboard 2>/dev/null; then CURRENT_CLIPBOARD_CHECKSUM=$(get_clipboard_checksum) echo "$CURRENT_FILE_CHECKSUM $CURRENT_CLIPBOARD_CHECKSUM $CURRENT_TIME" > "$STATE_FILE" echo "X11 clipboard updated successfully" else echo "Failed to update clipboard from file" fi sleep 1 continue fi sleep 1 donefenrir/tools/configure_pipewire.sh000077500000000000000000000221141513650123000177230ustar00rootroot00000000000000#!/bin/bash # This script configures pipewire to work both in the graphical environment and in the console with root apps. # Supports both legacy WirePlumber (Lua) and modern WirePlumber (0.5+ config format) # Detect WirePlumber version detect_wireplumber_version() { if command -v wireplumber >/dev/null 2>&1; then local version version=$(wireplumber --version 2>/dev/null | grep -oP 'wireplumber \K[0-9]+\.[0-9]+' | head -n1) if [ -n "$version" ]; then echo "$version" return 0 fi fi # Default to legacy if detection fails echo "0.4" return 1 } # Compare versions (returns 0 if version1 >= version2) version_ge() { [ "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ] } if [[ $(whoami) != "root" ]]; then # Track overall success CONFIG_SUCCESS=true # Get the current user's XDG_HOME xdgPath="${XDG_CONFIG_HOME:-$HOME/.config}" mkdir -p "$xdgPath/pipewire" || CONFIG_SUCCESS=false # Detect WirePlumber version WP_VERSION=$(detect_wireplumber_version) echo "Detected WirePlumber version: $WP_VERSION" # Determine configuration format if version_ge "$WP_VERSION" "0.5"; then echo "Using modern WirePlumber configuration format (0.5+)" USE_MODERN_CONFIG=true mkdir -p "$xdgPath/wireplumber/wireplumber.conf.d" mkdir -p "$xdgPath/wireplumber/main.conf.d" mkdir -p "$xdgPath/wireplumber/bluetooth.conf.d" else echo "Using legacy WirePlumber Lua configuration format" USE_MODERN_CONFIG=false mkdir -p "$xdgPath/wireplumber/main.lua.d" mkdir -p "$xdgPath/wireplumber/bluetooth.lua.d" fi # Create drop-in configuration for PipeWire-Pulse console access mkdir -p "$xdgPath/pipewire/pipewire-pulse.conf.d" # Warn user if we are going to overwrite an existing fenrir console config if [ -f "$xdgPath/pipewire/pipewire-pulse.conf.d/50-fenrir-console.conf" ]; then read -r -p "This will replace the current file located at $xdgPath/pipewire/pipewire-pulse.conf.d/50-fenrir-console.conf, press enter to continue or control+c to abort. " fi cat << "EOF" > "$xdgPath/pipewire/pipewire-pulse.conf.d/50-fenrir-console.conf" || CONFIG_SUCCESS=false # Fenrir console audio support # Adds secondary socket for console applications like Fenrir pulse.properties = { # the addresses this server listens on server.address = [ "unix:native" "unix:/tmp/pulse.sock" # console access socket ] } # client/stream specific properties pulse.rules = [ { # speech dispatcher asks for too small latency and then underruns. matches = [ { application.name = "~speech-dispatcher*" } ] actions = { update-props = { pulse.min.req = 1024/48000 # 21ms pulse.min.quantum = 1024/48000 # 21ms } } } ] EOF # Create WirePlumber configuration to prevent audio device suspension on console switch if [ "$USE_MODERN_CONFIG" = true ]; then # Modern WirePlumber 0.5+ configuration format CONFIG_FILE="$xdgPath/wireplumber/main.conf.d/50-fenrir-no-suspend.conf" if [ -f "$CONFIG_FILE" ]; then read -r -p "This will replace the current file located at $CONFIG_FILE, press enter to continue or control+c to abort. " fi cat << "EOF" > "$CONFIG_FILE" || CONFIG_SUCCESS=false # Fenrir console audio support # Prevents audio device suspension when switching to TTY console monitor.alsa.rules = [ { matches = [ { device.name = "~alsa_card.*" } ] actions = { update-props = { api.alsa.use-acp = true api.acp.auto-profile = false api.acp.auto-port = false session.suspend-timeout-seconds = 0 } } } { matches = [ { node.name = "~alsa_input.*" } { node.name = "~alsa_output.*" } ] actions = { update-props = { session.suspend-timeout-seconds = 0 } } } ] EOF else # Legacy Lua configuration format CONFIG_FILE="$xdgPath/wireplumber/main.lua.d/50-fenrir-no-suspend.lua" if [ -f "$CONFIG_FILE" ]; then read -r -p "This will replace the current file located at $CONFIG_FILE, press enter to continue or control+c to abort. " fi cat << "EOF" > "$CONFIG_FILE" || CONFIG_SUCCESS=false -- Fenrir console audio support -- Prevents audio device suspension when switching to TTY console alsa_monitor.rules = { { matches = { { { "device.name", "matches", "alsa_card.*" }, }, }, apply_properties = { ["api.alsa.use-acp"] = true, ["api.acp.auto-profile"] = false, ["api.acp.auto-port"] = false, ["session.suspend-timeout-seconds"] = 0 }, }, { matches = { { { "node.name", "matches", "alsa_input.*" }, }, { { "node.name", "matches", "alsa_output.*" }, }, }, apply_properties = { ["session.suspend-timeout-seconds"] = 0 }, }, } EOF fi # Create WirePlumber bluetooth configuration to prevent disconnection on TTY switch if [ "$USE_MODERN_CONFIG" = true ]; then # Modern WirePlumber 0.5+ configuration format CONFIG_FILE="$xdgPath/wireplumber/bluetooth.conf.d/50-fenrir-bluez.conf" if [ -f "$CONFIG_FILE" ]; then read -r -p "This will replace the current file located at $CONFIG_FILE, press enter to continue or control+c to abort. " fi cat << "EOF" > "$CONFIG_FILE" || CONFIG_SUCCESS=false # Fenrir console audio support # Prevents bluetooth disconnection when switching TTY monitor.bluez.properties = { # Disable logind integration to prevent bluetooth device suspension on TTY switch bluez5.enable-sbc-xq = true bluez5.enable-msbc = true bluez5.enable-hw-volume = true } monitor.bluez.rules = [ { matches = [ { device.name = "~bluez_card.*" } ] actions = { update-props = { session.suspend-timeout-seconds = 0 } } } ] EOF else # Legacy Lua configuration format CONFIG_FILE="$xdgPath/wireplumber/bluetooth.lua.d/30-fenrir-bluez.lua" if [ -f "$CONFIG_FILE" ]; then read -r -p "This will replace the current file located at $CONFIG_FILE, press enter to continue or control+c to abort. " fi cat << "EOF" > "$CONFIG_FILE" || CONFIG_SUCCESS=false -- Fenrir console audio support -- Disables logind module to prevent bluetooth disconnection when switching TTY bluez_monitor = {} bluez_monitor.properties = {} bluez_monitor.rules = {} function bluez_monitor.enable() load_monitor("bluez", { properties = bluez_monitor.properties, rules = bluez_monitor.rules, }) end EOF fi echo "" echo "Configuration files created successfully." if [ "$USE_MODERN_CONFIG" = true ]; then echo "Using modern WirePlumber 0.5+ configuration format (.conf files)" else echo "Using legacy WirePlumber configuration format (.lua files)" fi echo "" echo "Please ensure that your user is added to the audio group." echo "If you have not yet done so, please run this script as root to write the client.conf file." else # This section does the root part: CONFIG_SUCCESS=true xdgPath="/root/.config" mkdir -p "$xdgPath/pulse" || CONFIG_SUCCESS=false # Warn user if we are going to overwrite an existing client.conf if [ -f "$xdgPath/pulse/client.conf" ]; then read -r -p "This will replace the current file located at $xdgPath/pulse/client.conf, press enter to continue or control+c to abort. " fi cat << "EOF" > "$xdgPath/pulse/client.conf" || CONFIG_SUCCESS=false # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, see . ## Configuration file for PulseAudio clients. See pulse-client.conf(5) for ## more information. Default values are commented out. Use either ; or # for ## commenting. ; default-sink = ; default-source = default-server = unix:/tmp/pulse.sock ; default-dbus-server = autospawn = no ; autospawn = yes ; daemon-binary = /usr/bin/pulseaudio ; extra-arguments = --log-target=syslog ; cookie-file = ; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; auto-connect-localhost = no ; auto-connect-display = no EOF echo "If you have not yet done so, run this script as your normal user to write the user configs" fi # If there were no errors tell user to restart, else warn them errors happened. if [ "$CONFIG_SUCCESS" = true ]; then echo "Configuration created successfully, please restart both Pipewire-pulseaudio and Wireplumber or your system, for changes to take affect." exit 0 else echo "Errors were encountered whilst writing the configuration, please correct them manually." exit 1 fi fenrir/tools/configure_pulse.sh000077500000000000000000000054511513650123000172340ustar00rootroot00000000000000#!/bin/bash # This script configures Pulse to work both in the graphical environment and in the console with root apps. if [[ $(whoami) != "root" ]]; then # Get the current user's XDG_HOME xdgPath="${XDG_CONFIG_HOME:-$HOME/.config}" mkdir -p "$xdgPath/pulse" # Warn user if we are going to overwrite an existing default.pa if [ -f "$xdgPath/pulse/default.pa" ]; then read -p "This will replace the current file located at $xdgPath/pulse/default.pa, press enter to continue or control+c to abort. " continue fi echo '.include /etc/pulse/default.pa load-module module-switch-on-connect load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse.sock' > $xdgPath/pulse/default.pa echo "If you have not yet done so, please run this script as root to write the client.conf file." else # This section does the root part: xdgPath="/root/.config" mkdir -p "$xdgPath/pulse" # Warn user if we are going to overwrite an existing default.pa if [ -f "$xdgPath/pulse/default.pa" ]; then read -p "This will replace the current file located at $xdgPath/pulse/default.pa, press enter to continue or control+c to abort. " continue fi cat << EOF > "$xdgPath/pulse/client.conf" # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, see . ## Configuration file for PulseAudio clients. See pulse-client.conf(5) for ## more information. Default values are commented out. Use either ; or # for ## commenting. ; default-sink = ; default-source = default-server = unix:/tmp/pulse.sock ; default-dbus-server = autospawn = no ; autospawn = yes ; daemon-binary = /usr/bin/pulseaudio ; extra-arguments = --log-target=syslog ; cookie-file = ; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; auto-connect-localhost = no ; auto-connect-display = no EOF echo "If you have not yet done so, run this script as your normal user to write the user default.pa" fi # If there were no errors tell user to restart, else warn them errors happened. if [ $? -eq 0 ]; then echo "Configuration created successfully, please restart Pulseaudio or your system, for changes to take affect." else echo "Errors were encountered whilst writing the configuration, please correct them manually." fi exit 0 fenrir/tools/deviceInfo.py000077500000000000000000000002511513650123000161250ustar00rootroot00000000000000from pyudev import Context context = Context() for device in context.list_devices(subsystem='input'): print('{0} - {1}'.format(device.sys_name, device.device_type)) fenrir/tools/fenrir-ignore-screen000077500000000000000000000041131513650123000174470ustar00rootroot00000000000000#!/usr/bin/env python3 import os, argparse def addScreenToIgnoreList(ignoreFileName = '/tmp/fenrirSuspend', screen = '1', useCurrentScreen = True): if useCurrentScreen: tty = open('/sys/devices/virtual/tty/tty0/active','r') screen = str(tty.read()[3:-1]) if not screen: print('No screen given.') ignoreScreens = [] ignoreScreensStr = '' if ignoreFileName != '': if os.access(ignoreFileName, os.R_OK): with open(ignoreFileName, 'r') as fp: try: ignoreScreens = [] content = str(fp.read()) if content != '': ignoreScreens = content.split(',') except Exception as e: print(e) added = False if not screen in ignoreScreens: ignoreScreens.append(screen) added = True ignoreScreensStr = ','.join(ignoreScreens) with open(ignoreFileName, 'w') as fp: fp.write(ignoreScreensStr) if added: print('Add screen {0} to ignore file:{1}'.format(screen, ignoreFileName)) else: print('Screen {0} already exists in ignore file:{1}'.format(screen, ignoreFileName)) if __name__ == "__main__": parser = argparse.ArgumentParser(description='Ignore screens in fenrir. If no screen is given use current screen.') parser.add_argument('-s', '--screen', metavar='SCREEN', default=None, help='Ignore a given screen. Use current screen as default.') parser.add_argument('-f', '--file', metavar='File', default='/tmp/fenrirSuspend', help='Specify the suspendingScreenFile') try: args = parser.parse_args() ignoreFileName = args.file useCurrentScreen = False screen = None if args.screen: screen = args.screen else: useCurrentScreen = True addScreenToIgnoreList(ignoreFileName, screen, useCurrentScreen) except Exception as e: parser.print_help() fenrir/tools/fenrir-unignore-screen000077500000000000000000000042131513650123000200130ustar00rootroot00000000000000#!/usr/bin/env python3 import os, argparse def removeScreenFromIgnoreList(ignoreFileName = '/tmp/fenrirSuspend', screen = '1', useCurrentScreen = True): if useCurrentScreen: tty = open('/sys/devices/virtual/tty/tty0/active','r') screen = str(tty.read()[3:-1]) if not screen: print('No screen given.') ignoreScreens = [] ignoreScreensStr = '' if ignoreFileName != '': if os.access(ignoreFileName, os.R_OK): with open(ignoreFileName, 'r') as fp: try: ignoreScreens = [] content = str(fp.read()) if content != '': ignoreScreens = content.split(',') except Exception as e: print(e) removed = False if screen in ignoreScreens: ignoreScreens.remove(screen) removed = True ignoreScreensStr = ','.join(ignoreScreens) with open(ignoreFileName, 'w') as fp: fp.write(ignoreScreensStr) if removed: print('Remove screen {0} to ignore file:{1}'.format(screen, ignoreFileName)) else: print('Screen {0} does not exists in ignore file:{1}'.format(screen, ignoreFileName)) if __name__ == "__main__": parser = argparse.ArgumentParser(description='Unignore screens in fenrir to make it active again. If no screen is given use current screen.') parser.add_argument('-s', '--screen', metavar='SCREEN', default=None, help='Ignore a given screen. Use current screen as default.') parser.add_argument('-f', '--file', metavar='File', default='/tmp/fenrirSuspend', help='Specify the suspendingScreenFile') try: args = parser.parse_args() ignoreFileName = args.file useCurrentScreen = False screen = None if args.screen: screen = args.screen else: useCurrentScreen = True removeScreenFromIgnoreList(ignoreFileName, screen, useCurrentScreen) except Exception as e: parser.print_help() fenrir/tools/fenrir.pot000066400000000000000000001257661513650123000155310ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2020-04-19 08:56+0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=cp1251\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../src/fenrirscreenreader\commands\commands\add_word_to_spell_check.py:27 msgid "adds the current word to the exceptions dictionary" msgstr "" #: ../src/fenrirscreenreader\commands\commands\add_word_to_spell_check.py:34 #: ../src/fenrirscreenreader\commands\commands\remove_word_from_spell_check.py:34 #: ../src/fenrirscreenreader\commands\commands\spell_check.py:35 msgid "pyenchant is not installed" msgstr "" #: ../src/fenrirscreenreader\commands\commands\add_word_to_spell_check.py:49 msgid "{0} is already in dictionary" msgstr "" #: ../src/fenrirscreenreader\commands\commands\add_word_to_spell_check.py:52 msgid "{0} added to dictionary" msgstr "" #: ../src/fenrirscreenreader\commands\commands\attribute_cursor.py:18 #: ../src/fenrirscreenreader\commands\onCursorChange\85000-has_attribute.py:18 msgid "Reads attributes of current cursor position" msgstr "" #: ../src/fenrirscreenreader\commands\commands\bookmark_1.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_10.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_2.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_3.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_4.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_5.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_6.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_7.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_8.py:19 #: ../src/fenrirscreenreader\commands\commands\bookmark_9.py:19 msgid "read Bookmark {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\bookmark_1.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_10.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_2.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_3.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_4.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_5.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_6.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_7.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_8.py:24 #: ../src/fenrirscreenreader\commands\commands\bookmark_9.py:24 msgid "Bookmark {0} not set" msgstr "" #: ../src/fenrirscreenreader\commands\commands\bookmark_1.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_1.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_10.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_10.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_2.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_2.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_3.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_3.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_4.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_4.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_5.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_5.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_6.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_6.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_7.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_7.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_8.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_8.py:30 #: ../src/fenrirscreenreader\commands\commands\bookmark_9.py:27 #: ../src/fenrirscreenreader\commands\commands\bookmark_9.py:30 msgid "Bookmark for application {0} not set" msgstr "" #: ../src/fenrirscreenreader\commands\commands\bookmark_1.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_10.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_2.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_3.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_4.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_5.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_6.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_7.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_8.py:43 #: ../src/fenrirscreenreader\commands\commands\bookmark_9.py:43 #: ../src/fenrirscreenreader\commands\commands\curr_screen_after_cursor.py:27 #: ../src/fenrirscreenreader\commands\commands\curr_screen_before_cursor.py:30 #: ../src/fenrirscreenreader\commands\commands\cursor_read_to_end_of_line.py:27 #: ../src/fenrirscreenreader\commands\commands\indent_curr_line.py:31 #: ../src/fenrirscreenreader\commands\commands\marked_text.py:33 #: ../src/fenrirscreenreader\commands\commands\present_first_line.py:25 #: ../src/fenrirscreenreader\commands\commands\present_last_line.py:25 #: ../src/fenrirscreenreader\commands\commands\review_curr_char_phonetic.py:27 #: ../src/fenrirscreenreader\commands\commands\review_curr_line.py:27 #: ../src/fenrirscreenreader\commands\commands\review_curr_word.py:27 #: ../src/fenrirscreenreader\commands\commands\review_curr_word_phonetic.py:27 #: ../src/fenrirscreenreader\commands\commands\review_line_begin.py:27 #: ../src/fenrirscreenreader\commands\commands\review_next_line.py:29 #: ../src/fenrirscreenreader\commands\commands\review_next_word.py:29 #: ../src/fenrirscreenreader\commands\commands\review_next_word_phonetic.py:27 #: ../src/fenrirscreenreader\commands\commands\review_prev_line.py:27 #: ../src/fenrirscreenreader\commands\commands\review_prev_word.py:27 #: ../src/fenrirscreenreader\commands\commands\review_prev_word_phonetic.py:27 #: ../src/fenrirscreenreader\commands\onCursorChange\65000-present_line_if_cursor_change_vertical.py:37 #: ../src/fenrirscreenreader\commands\onScreenUpdate\60000-history.py:59 msgid "blank" msgstr "" #: ../src/fenrirscreenreader\commands\commands\braille_flush.py:17 msgid "Clear the Braille device if it is displaying a message" msgstr "" #: ../src/fenrirscreenreader\commands\commands\braille_pan_left.py:17 msgid "Move braille view to the left." msgstr "" #: ../src/fenrirscreenreader\commands\commands\braille_pan_right.py:17 msgid "Move braille view to the right." msgstr "" #: ../src/fenrirscreenreader\commands\commands\braille_return_to_cursor.py:17 msgid "Set the braille view back to cursor." msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_1.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_10.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_2.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_3.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_4.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_5.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_6.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_7.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_8.py:17 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_9.py:17 msgid "remove Bookmark {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_1.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_10.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_2.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_3.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_4.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_5.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_6.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_7.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_8.py:24 #: ../src/fenrirscreenreader\commands\commands\clear_bookmark_9.py:24 msgid "Bookmark {0} removed for application {1}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_clipboard.py:17 msgid "clears the currently selected clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_clipboard.py:21 msgid "clipboard cleared" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_window_application.py:17 msgid "Turn off window mode for application" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_window_application.py:22 msgid "Window Mode off for application {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\clear_window_application.py:24 msgid "Not in window Mode" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\copy_last_echo_to_clipboard.py:18 msgid "copies last presented text to the clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\copy_marked_to_clipboard.py:18 msgid "copies marked text to the currently selected clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\copy_marked_to_clipboard.py:22 msgid "One or two marks are needed" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_clipboard.py:17 msgid "speaks the contents of the currently selected clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_clipboard.py:21 #: ../src/fenrirscreenreader\commands\commands\export_clipboard_to_file.py:28 #: ../src/fenrirscreenreader\commands\commands\export_clipboard_to_x.py:27 #: ../src/fenrirscreenreader\commands\commands\first_clipboard.py:21 #: ../src/fenrirscreenreader\commands\commands\last_clipboard.py:21 #: ../src/fenrirscreenreader\commands\commands\next_clipboard.py:21 #: ../src/fenrirscreenreader\commands\commands\paste_clipboard.py:23 #: ../src/fenrirscreenreader\commands\commands\prev_clipboard.py:21 msgid "clipboard empty" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_screen.py:17 msgid "reads the contents of the current screen" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_screen.py:21 msgid "screen is empty" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_screen_after_cursor.py:18 msgid "reads from the cursor to the bottom of the screen" msgstr "" #: ../src/fenrirscreenreader\commands\commands\curr_screen_before_cursor.py:18 msgid "Reads from the top of the screen to the cursor position" msgstr "" #: ../src/fenrirscreenreader\commands\commands\current_quick_menu_entry.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\current_quick_menu_entry.py:17 msgid "get current quick menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\commands\current_quick_menu_value.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\current_quick_menu_value.py:17 msgid "get current quick menu value" msgstr "" #: ../src/fenrirscreenreader\commands\commands\cursor_column.py:17 msgid "Column number for cursor" msgstr "" #: ../src/fenrirscreenreader\commands\commands\cursor_lineno.py:17 msgid "Line number for cursor" msgstr "" #: ../src/fenrirscreenreader\commands\commands\cursor_position.py:17 msgid "displays the position of the review cursor" msgstr "" #: ../src/fenrirscreenreader\commands\commands\cursor_position.py:23 msgid "line {0}, column {1}, Terminal {2}" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\cursor_read_to_end_of_line.py:18 msgid "read to end of line, use review cursor if you are in review mode, otherwhise use text cursor" msgstr "" #: ../src/fenrirscreenreader\commands\commands\date.py:18 msgid "presents the date" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_alsa_volume.py:24 msgid "Decrease system volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_alsa_volume.py:28 #: ../src/fenrirscreenreader\commands\commands\inc_alsa_volume.py:28 msgid "alsaaudio is not installed" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_alsa_volume.py:36 #: ../src/fenrirscreenreader\commands\commands\inc_alsa_volume.py:36 msgid "{0} percent system volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_sound_volume.py:18 msgid "decrease sound volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_sound_volume.py:29 #: ../src/fenrirscreenreader\commands\commands\inc_sound_volume.py:29 msgid "{0} percent sound volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_pitch.py:18 msgid "Decreases the pitch of the speech" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_pitch.py:26 #: ../src/fenrirscreenreader\commands\commands\inc_speech_pitch.py:27 msgid "{0} percent speech pitch" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_rate.py:18 msgid "Decreases the rate of the speech" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_rate.py:27 #: ../src/fenrirscreenreader\commands\commands\inc_speech_rate.py:27 msgid "{0} percent speech rate" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_volume.py:18 msgid "Decreases the volume of the speech" msgstr "" #: ../src/fenrirscreenreader\commands\commands\dec_speech_volume.py:27 #: ../src/fenrirscreenreader\commands\commands\inc_speech_volume.py:27 msgid "{0} percent speech volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\exit_review.py:17 #: ../src/fenrirscreenreader\commands\onCursorChange\95000-exit_review_mode.py:17 msgid "exits review mode" msgstr "" #: ../src/fenrirscreenreader\commands\commands\exit_review.py:21 msgid "Not in Review Mode" msgstr "" #: ../src/fenrirscreenreader\commands\commands\exit_review.py:25 msgid "Exiting Review Mode" msgstr "" #: ../src/fenrirscreenreader\commands\commands\export_clipboard_to_file.py:19 msgid "export the current fenrir clipboard to a file" msgstr "" #: ../src/fenrirscreenreader\commands\commands\export_clipboard_to_file.py:34 msgid "clipboard exported to file" msgstr "" #: ../src/fenrirscreenreader\commands\commands\export_clipboard_to_x.py:20 msgid "Export current fenrir clipboard to X or GUI clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\first_clipboard.py:17 msgid "selects the first clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\forward_keypress.py:17 msgid "sends the following keypress to the terminal or application" msgstr "" #: ../src/fenrirscreenreader\commands\commands\forward_keypress.py:21 msgid "Forward next keypress" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\import_clipboard_from_file.py:19 msgid "imports text from clipboard file to the clipboard" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\import_clipboard_from_file.py:27 msgid "File does not exist" msgstr "" #: ../src/fenrirscreenreader\commands\commands\import_clipboard_from_x.py:21 msgid "imports the graphical clipboard to Fenrir's clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\inc_alsa_volume.py:24 msgid "Increase system volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\inc_sound_volume.py:18 msgid "adjusts the volume for in coming sounds" msgstr "" #: ../src/fenrirscreenreader\commands\commands\inc_speech_pitch.py:18 msgid "Increases the pitch of the speech" msgstr "" #: ../src/fenrirscreenreader\commands\commands\inc_speech_rate.py:18 msgid "Increase the speech rate" msgstr "" #: ../src/fenrirscreenreader\commands\commands\inc_speech_volume.py:18 msgid "Increase the speech volume" msgstr "" #: ../src/fenrirscreenreader\commands\commands\indent_curr_line.py:18 msgid "Presents the indentation level for the current line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\indent_curr_line.py:33 msgid "indent {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\last_clipboard.py:17 msgid "selects the last clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\last_incoming.py:17 msgid "Presents the text which was last received" msgstr "" #: ../src/fenrirscreenreader\commands\commands\marked_text.py:18 msgid "Presents the currently selected text that will be copied to the clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\marked_text.py:23 msgid "please set begin and endmark" msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_clipboard.py:17 msgid "selects the next clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_clipboard.py:28 #: ../src/fenrirscreenreader\commands\commands\prev_clipboard.py:28 msgid "First clipboard " msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_clipboard.py:30 #: ../src/fenrirscreenreader\commands\commands\prev_clipboard.py:30 msgid "Last clipboard " msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_quick_menu_entry.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\next_quick_menu_entry.py:17 msgid "get next quick menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_quick_menu_entry.py:27 #: ../src/fenrirscreenreader\commands\commands\prev_quick_menu_entry.py:27 #: ../src/fenrirscreenreader\commands\quickMenu\next_quick_menu_entry.py:27 #: ../src/fenrirscreenreader\commands\quickMenu\prev_quick_menu_entry.py:27 msgid "Quick menu not available" msgstr "" #: ../src/fenrirscreenreader\commands\commands\next_quick_menu_value.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\next_quick_menu_value.py:17 msgid "get next quick menu value" msgstr "" #: ../src/fenrirscreenreader\commands\commands\paste_clipboard.py:19 msgid "pastes the text from the currently selected clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\present_first_line.py:18 msgid "present first line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\present_last_line.py:18 #: ../src/fenrirscreenreader\commands\commands\review_curr_line.py:18 msgid "current line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\prev_clipboard.py:17 msgid "selects the previous clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\prev_quick_menu_entry.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\prev_quick_menu_entry.py:17 msgid "get previous quick menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\commands\prev_quick_menu_value.py:17 #: ../src/fenrirscreenreader\commands\quickMenu\prev_quick_menu_value.py:17 msgid "get previous quick menu value" msgstr "" #: ../src/fenrirscreenreader\commands\commands\quit_fenrir.py:17 msgid "exits Fenrir" msgstr "" #: ../src/fenrirscreenreader\commands\commands\remove_marks.py:17 msgid "Removes marks from selected text" msgstr "" #: ../src/fenrirscreenreader\commands\commands\remove_marks.py:21 msgid "Remove marks" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\remove_word_from_spell_check.py:27 msgid "removes the current word from the exceptions dictionary" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\remove_word_from_spell_check.py:50 msgid "{0} is not in the dictionary" msgstr "" #: #: ../src/fenrirscreenreader\commands\commands\remove_word_from_spell_check.py:53 msgid "{0} removed" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_bottom.py:17 msgid "Move review to the bottom of the screen" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_bottom.py:21 msgid "Bottom" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_char.py:18 msgid "presents the current character." msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_char_phonetic.py:18 msgid "set review and phonetically presents the current character" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_word.py:18 msgid "current word." msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_word.py:32 #: ../src/fenrirscreenreader\commands\commands\review_curr_word_phonetic.py:36 #: ../src/fenrirscreenreader\commands\commands\review_down.py:27 #: ../src/fenrirscreenreader\commands\commands\review_next_char.py:28 #: ../src/fenrirscreenreader\commands\commands\review_next_char_phonetic.py:30 #: ../src/fenrirscreenreader\commands\commands\review_next_line.py:34 #: ../src/fenrirscreenreader\commands\commands\review_next_word.py:34 #: ../src/fenrirscreenreader\commands\commands\review_next_word_phonetic.py:36 #: ../src/fenrirscreenreader\commands\commands\review_prev_char.py:31 #: ../src/fenrirscreenreader\commands\commands\review_prev_char_phonetic.py:30 #: ../src/fenrirscreenreader\commands\commands\review_prev_line.py:32 #: ../src/fenrirscreenreader\commands\commands\review_prev_word.py:32 #: ../src/fenrirscreenreader\commands\commands\review_prev_word_phonetic.py:36 #: ../src/fenrirscreenreader\commands\commands\review_up.py:27 msgid "end of screen" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_word.py:35 #: ../src/fenrirscreenreader\commands\commands\review_curr_word_phonetic.py:39 #: ../src/fenrirscreenreader\commands\commands\review_next_char.py:31 #: ../src/fenrirscreenreader\commands\commands\review_next_char_phonetic.py:33 #: ../src/fenrirscreenreader\commands\commands\review_next_word.py:37 #: ../src/fenrirscreenreader\commands\commands\review_next_word_phonetic.py:39 #: ../src/fenrirscreenreader\commands\commands\review_prev_char.py:34 #: ../src/fenrirscreenreader\commands\commands\review_prev_char_phonetic.py:33 #: ../src/fenrirscreenreader\commands\commands\review_prev_word.py:35 #: ../src/fenrirscreenreader\commands\commands\review_prev_word_phonetic.py:39 #: ../src/fenrirscreenreader\commands\commands\review_up.py:30 msgid "line break" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_curr_word_phonetic.py:19 msgid "Phonetically spells the current word" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_down.py:18 msgid "Move review to the character below the current position" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_begin.py:18 msgid "set review cursor to begin of current line and display the content" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_begin.py:30 msgid "beginning of line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_end.py:18 msgid "Move Review to the end of current line and display the content" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_end.py:27 msgid "end of line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_first_char.py:19 msgid "Move Review to the first character on the line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_first_char.py:26 msgid "line is empty" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_first_char.py:33 msgid "first character in line indent {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_last_char.py:18 msgid "Move Review to the last character on the line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_line_last_char.py:27 msgid "last character in line" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_next_char.py:18 msgid "Moves review to the next character " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_next_char_phonetic.py:18 msgid "phonetically presents the next character and set review to it" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_next_line.py:18 msgid "moves review to the next line " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_next_word.py:18 msgid "moves review to the next word " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_next_word_phonetic.py:19 msgid "Phonetically spells the next word and moves review to it" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_prev_char.py:18 msgid "moves review to the previous character " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_prev_char_phonetic.py:18 msgid "phonetically presents the previous character and set review to it" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_prev_line.py:18 msgid "moves review to the previous line " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_prev_word.py:18 msgid "moves review focus to the previous word " msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_prev_word_phonetic.py:19 msgid "Phonetically spells the previous word and moves review to it" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_top.py:18 msgid "move review to top of screen" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_top.py:22 msgid "Top" msgstr "" #: ../src/fenrirscreenreader\commands\commands\review_up.py:18 msgid "Move review to the character in the line above the current position" msgstr "" #: ../src/fenrirscreenreader\commands\commands\save_settings.py:18 msgid "Saves your current Fenrir settings so they are the default." msgstr "" #: ../src/fenrirscreenreader\commands\commands\save_settings.py:22 msgid "Settings saved." msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_bookmark_1.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_10.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_2.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_3.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_4.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_5.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_6.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_7.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_8.py:18 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_9.py:18 msgid "set Bookmark {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_bookmark_1.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_10.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_2.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_3.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_4.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_5.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_6.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_7.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_8.py:22 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_9.py:22 msgid "No mark found" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_bookmark_1.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_10.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_2.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_3.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_4.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_5.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_6.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_7.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_8.py:32 #: ../src/fenrirscreenreader\commands\commands\set_bookmark_9.py:32 msgid "Bookmark {0} set for application {1}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_mark.py:17 msgid "places marks to select text to copy to the clipboard" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_mark.py:21 msgid "no review cursor" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_mark.py:26 #: ../src/fenrirscreenreader\commands\commands\set_mark.py:28 msgid "set mark" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_window_application.py:17 msgid "set Window Mode, needs 2 marks " msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_window_application.py:22 msgid "Window Mode on for application {0}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\set_window_application.py:25 msgid "Set window begin and end marks" msgstr "" #: ../src/fenrirscreenreader\commands\commands\shut_up.py:17 msgid "Interrupts the current presentation" msgstr "" #: ../src/fenrirscreenreader\commands\commands\spell_check.py:26 msgid "checks the spelling of the current word" msgstr "" #: ../src/fenrirscreenreader\commands\commands\spell_check.py:51 #: ../src/fenrirscreenreader\commands\onCursorChange\35000-spell_check.py:129 msgid "misspelled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\spell_check.py:53 msgid "correct" msgstr "" #: ../src/fenrirscreenreader\commands\commands\subprocess.py:21 msgid "script: {0} fullpath: {1}" msgstr "" #: ../src/fenrirscreenreader\commands\commands\subprocess.py:24 msgid "Script file not found" msgstr "" #: ../src/fenrirscreenreader\commands\commands\subprocess.py:27 msgid "Script source is not a valid file" msgstr "" #: ../src/fenrirscreenreader\commands\commands\subprocess.py:30 msgid "Script file is not executable" msgstr "" #: ../src/fenrirscreenreader\commands\commands\temp_disable_speech.py:17 #: ../src/fenrirscreenreader\commands\onByteInput\15000-enable_temp_speech.py:17 #: ../src/fenrirscreenreader\commands\onKeyInput\15000-enable_temp_speech.py:17 msgid "disables speech until next keypress" msgstr "" #: ../src/fenrirscreenreader\commands\commands\time.py:18 msgid "presents the time" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_indent.py:16 msgid "enables or disables automatic reading of indentation level changes" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_indent.py:21 msgid "autoindent enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_indent.py:23 msgid "autoindent disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_read.py:16 msgid "enables or disables automatic reading of new text as it appears" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_read.py:21 msgid "autoread enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_read.py:23 msgid "autoread disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_spell_check.py:17 msgid "enables or disables automatic spell checking" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_spell_check.py:22 msgid "auto spellcheck enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_spell_check.py:24 msgid "auto spellcheck disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_time.py:16 msgid "Enables or disables automatic reading of time after specified intervals" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_time.py:21 msgid "Automatic time announcement enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_auto_time.py:23 msgid "Automatic time announcement disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_barrier.py:16 msgid "enables or disables the barrier mode" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_barrier.py:21 msgid "barrier mode enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_barrier.py:23 msgid "barrier mode disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_braille.py:17 msgid "Enables and disables Braille output" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_braille.py:21 msgid "braille disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_braille.py:24 msgid "braille enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_emoticons.py:16 msgid "enables or disables announcement of emoticons instead of chars" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_emoticons.py:21 msgid "emoticons enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_emoticons.py:23 msgid "emoticons disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_has_attribute.py:16 msgid "enables or disables the announcement of attributes" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_has_attribute.py:21 msgid "announcement of attributes enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_has_attribute.py:23 msgid "announcement of attributes disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_highlight_tracking.py:16 msgid "enables or disables tracking of highlighted text" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_highlight_tracking.py:24 msgid "highlight tracking" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_highlight_tracking.py:26 msgid "cursor tracking" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_output.py:17 msgid "toggles all output settings" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_output.py:23 msgid "Fenrir muted" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_output.py:31 msgid "Fenrir unmuted" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_punctuation_level.py:23 msgid "No punctuation found." msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_sound.py:17 msgid "enables or disables sound" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_sound.py:21 msgid "sound disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_sound.py:24 msgid "sound enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_speech.py:17 msgid "enables or disables speech" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_speech.py:22 msgid "speech disabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_speech.py:25 #: ../src/fenrirscreenreader\commands\onByteInput\15000-enable_temp_speech.py:24 #: ../src/fenrirscreenreader\commands\onKeyInput\15000-enable_temp_speech.py:28 msgid "speech enabled" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_tutorial_mode.py:18 msgid "Exiting tutorial mode. To enter tutorial mode again press Fenrir+f1" msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_tutorial_mode.py:22 msgid "Entering tutorial mode. In this mode commands are described but not executed. You can move through the list of commands with the up and down arrow keys. To Exit tutorial mode press Fenrir+f1." msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_vmenu_mode.py:18 msgid "Entering or Leaving v menu mode." msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_vmenu_mode.py:22 msgid "Entering v menu." msgstr "" #: ../src/fenrirscreenreader\commands\commands\toggle_vmenu_mode.py:24 msgid "Leaving v menu." msgstr "" #: ../src/fenrirscreenreader\commands\help\curr_help.py:17 msgid "get current help message" msgstr "" #: ../src/fenrirscreenreader\commands\help\next_help.py:17 msgid "get next help message" msgstr "" #: ../src/fenrirscreenreader\commands\help\prev_help.py:17 msgid "get prev help message" msgstr "" #: #: ../src/fenrirscreenreader\commands\onCursorChange\65000-present_line_if_cursor_change_vertical.py:46 msgid "indented " msgstr "" #: ../src/fenrirscreenreader\commands\onHeartBeat\76000-time.py:66 msgid "Autotime: {0}" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80000-capslock.py:22 msgid "Capslock on" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80000-capslock.py:24 msgid "Capslock off" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80300-scrolllock.py:22 msgid "Scrolllock on" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80300-scrolllock.py:24 msgid "Scrolllock off" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80500-numlock.py:22 msgid "Numlock on" msgstr "" #: ../src/fenrirscreenreader\commands\onKeyInput\80500-numlock.py:24 msgid "Numlock off" msgstr "" #: #: ../src/fenrirscreenreader\commands\onScreenChanged\80000-screen_change_announcement.py:20 msgid "screen {0}" msgstr "" #: #: ../src/fenrirscreenreader\commands\onScreenUpdate\56000-highlight_tracking.py:16 msgid "enables or disables tracking of highlighted" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\curr_vmenu_entry.py:17 msgid "get current v menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\dec_level_vmenu.py:17 msgid "leave v menu submenu" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\exec_vmenu_entry.py:17 msgid "execute v menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\inc_level_vmenu.py:17 msgid "enter v menu submenu" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\next_vmenu_entry.py:17 msgid "get next v menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\prev_vmenu_entry.py:17 msgid "get prev v menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_a.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_b.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_c.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_d.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_e.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_f.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_g.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_h.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_i.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_j.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_k.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_l.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_m.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_n.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_o.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_p.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_q.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_r.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_s.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_t.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_u.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_v.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_w.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_x.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_y.py:17 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_z.py:17 msgid "search for an menu entry" msgstr "" #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_a.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_b.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_c.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_d.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_e.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_f.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_g.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_h.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_i.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_j.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_k.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_l.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_m.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_n.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_o.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_p.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_q.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_r.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_s.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_t.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_u.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_v.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_w.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_x.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_y.py:23 #: ../src/fenrirscreenreader\commands\vmenu-navigation\search_z.py:23 msgid "not found" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:168 msgid "bold" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:176 msgid "italic" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:184 msgid "underline" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:192 msgid "strikethrough" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:200 msgid "reverse" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:208 msgid "blink" msgstr "" #: ../src/fenrirscreenreader\core\attributeManager.py:225 #: ../src/fenrirscreenreader\core\attributeManager.py:232 msgid "default" msgstr "" #: ../src/fenrirscreenreader\core\byteManager.py:103 #: ../src/fenrirscreenreader\core\byteManager.py:105 msgid "Sticky Mode On" msgstr "" #: ../src/fenrirscreenreader\core\byteManager.py:109 msgid "bypass" msgstr "" #: ../src/fenrirscreenreader\core\fenrirManager.py:26 msgid "Start Fenrir" msgstr "" #: ../src/fenrirscreenreader\core\fenrirManager.py:234 msgid "Quit Fenrir" msgstr "" #: ../src/fenrirscreenreader\core\helpManager.py:77 msgid "toggles the tutorial mode" msgstr "" #: ../src/fenrirscreenreader\core\outputManager.py:297 msgid "speech temporary disabled" msgstr "" #: ../src/fenrirscreenreader\core\quickMenuManager.py:124 msgid "setting invalid" msgstr "" #: ../src/fenrirscreenreader\core\quickMenuManager.py:131 msgid "setting value invalid" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "black" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "blue" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "cyan" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "green" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "red" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 msgid "white" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Magenta" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:12 #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "brown/yellow" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Black" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Blue" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Cyan" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Dark gray" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Green" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light blue" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light cyan" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light gray" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light magenta" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light red" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Light yellow" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "Red" msgstr "" #: ../src/fenrirscreenreader\core\screenDriver.py:13 msgid "White" msgstr "" #: ../src/fenrirscreenreader\core\vmenuManager.py:66 #: ../src/fenrirscreenreader\core\vmenuManager.py:226 msgid "Menu" msgstr "" #: ../src/fenrirscreenreader\core\vmenuManager.py:234 msgid "Action" msgstr "" fenrir/tools/generate_translations.sh000066400000000000000000000002211513650123000204210ustar00rootroot00000000000000#!/usr/bin/env bash sudo pygettext3 -d fenrir ../src/fenrirscreenreader/*.py ../src/fenrirscreenreader/*/*.py ../src/fenrirscreenreader/*/*/*.py fenrir/tools/install_validation_hook.sh000077500000000000000000000077251513650123000207510ustar00rootroot00000000000000#!/bin/bash # Safe Installation of Fenrir Validation Hook # # This script safely installs the composite pre-commit hook that combines # your existing version management with new code quality validation. set -e # Colors for output GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' BLUE='\033[1;34m' NC='\033[0m' # No Color echo -e "${BLUE}Fenrir Validation Hook Installation${NC}" echo "====================================" # Check we're in the right directory if [ ! -f "CLAUDE.md" ] || [ ! -d "src/fenrirscreenreader" ]; then echo -e "${RED}Error: Must be run from Fenrir project root directory${NC}" exit 1 fi # Check if there's already a pre-commit hook if [ -f ".git/hooks/pre-commit" ]; then echo -e "\n${YELLOW}Existing pre-commit hook detected${NC}" # Check if it's a symlink (our validation hook) or a regular file (version hook) if [ -L ".git/hooks/pre-commit" ]; then echo -e "${YELLOW}Current hook appears to be our validation hook (symlink)${NC}" read -p "Replace with composite hook that includes version management? (y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo -e "${YELLOW}Installation cancelled${NC}" exit 0 fi rm .git/hooks/pre-commit else echo -e "${GREEN}Current hook appears to be the version management hook (regular file)${NC}" # Back up the existing hook backup_name=".git/hooks/pre-commit.backup.$(date +%Y%m%d_%H%M%S)" cp .git/hooks/pre-commit "$backup_name" echo -e "${GREEN}āœ“ Existing hook backed up to: $backup_name${NC}" # Verify the backup contains version management code if grep -q "versionFile" "$backup_name"; then echo -e "${GREEN}āœ“ Backup contains version management logic${NC}" else echo -e "${YELLOW}⚠ Backup doesn't appear to contain version management logic${NC}" echo -e "${YELLOW} You may need to manually restore version management functionality${NC}" fi read -p "Install composite hook (version management + validation)? (Y/n): " -n 1 -r echo if [[ $REPLY =~ ^[Nn]$ ]]; then echo -e "${YELLOW}Installation cancelled${NC}" exit 0 fi fi else echo -e "${YELLOW}No existing pre-commit hook found${NC}" read -p "Install composite hook? (Y/n): " -n 1 -r echo if [[ $REPLY =~ ^[Nn]$ ]]; then echo -e "${YELLOW}Installation cancelled${NC}" exit 0 fi fi # Install the composite hook echo -e "\n${YELLOW}Installing composite pre-commit hook...${NC}" cp tools/pre-commit-composite .git/hooks/pre-commit chmod +x .git/hooks/pre-commit echo -e "${GREEN}āœ“ Composite hook installed${NC}" # Test the hook echo -e "\n${YELLOW}Testing the composite hook...${NC}" if ./.git/hooks/pre-commit >/dev/null 2>&1; then echo -e "${GREEN}āœ“ Composite hook test passed${NC}" else echo -e "${RED}⚠ Composite hook test found issues (this may be normal)${NC}" echo " Run manually to see details: ./.git/hooks/pre-commit" fi # Final instructions echo -e "\n${GREEN}Installation Complete!${NC}" echo "" echo "Your composite pre-commit hook now provides:" echo " 1. āœ“ Version management (existing functionality preserved)" echo " 2. āœ“ Python syntax validation" echo " 3. āœ“ Core module import testing" echo " 4. āœ“ Common issue detection" echo "" echo "Development workflow:" echo " • Make your changes" echo " • git add . && git commit" echo " • Hook runs automatically (version update + validation)" echo "" echo "Manual validation (optional):" echo " • python3 tools/validate_syntax.py --fix" echo " • python3 tools/validate_release.py --quick" echo "" echo -e "${BLUE}Environment variables:${NC}" echo -e "${BLUE} SKIP_VERSION_UPDATE=1 Skip version management${NC}" echo "" if [ -f ".git/hooks/pre-commit.backup."* ]; then echo -e "${YELLOW}Note: Your original hook is backed up and can be restored if needed${NC}" fifenrir/tools/listDevices.py000077500000000000000000000015131513650123000163320ustar00rootroot00000000000000#!/usr/bin/env python3 import evdev from evdev import InputDevice, UInput from select import select import time iDevices = map(evdev.InputDevice, (evdev.list_devices())) iDevices = {dev.fd: dev for dev in iDevices} print('----------------------') for fd in iDevices: dev = iDevices[fd] cap = dev.capabilities() print('Name: ' + str(dev.name)) print('LEDs: ' + str(dev.leds())) print('Has Keys: '+ str(evdev.events.EV_KEY in cap)) if evdev.events.EV_KEY in cap: print('No. of keys: ' + str(len(cap[evdev.events.EV_KEY]))) print('has Key 116: ' + str(116 in cap[evdev.events.EV_KEY])) print('Is Mouse: ' + str(((evdev.events.EV_REL in cap) or (evdev.events.EV_ABS in cap)))) print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print(dev.capabilities(verbose=True)) print('----------------------') fenrir/tools/pre-commit-composite000077500000000000000000000234741513650123000175130ustar00rootroot00000000000000#!/bin/bash # Fenrir Composite Pre-commit Hook # # This hook combines version management and code quality validation. # It first runs the version management logic, then runs validation. set -e # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[1;34m' NC='\033[0m' # No Color echo -e "${BLUE}Fenrir Pre-commit Validation${NC}" echo "==================================" # Get the repository root REPO_ROOT=$(git rev-parse --show-toplevel) cd "$REPO_ROOT" # ============================================================================ # PART 1: VERSION MANAGEMENT (existing logic) # ============================================================================ echo -e "\n${YELLOW}1. Version Management...${NC}" # Check if SKIP_VERSION_UPDATE is set if [[ "${SKIP_VERSION_UPDATE}" = "1" ]]; then echo -e "${YELLOW}Notice: Skipping version update due to SKIP_VERSION_UPDATE=1${NC}" else # Verify .git/versionpath exists if [[ ! -f ".git/versionpath" ]]; then echo -e "${RED}Error: .git/versionpath not found. Please create it with contents:${NC}" echo -e "${YELLOW}versionFile=\"path/to/your/version/file\"${NC}" exit 1 fi # Source the version path file source ".git/versionpath" # Validate that versionFile variable was set if [[ -z "$versionFile" ]]; then echo -e "${RED}Error: versionFile variable not set in .git/versionpath${NC}" exit 1 fi # Get current date components year=$(date +%Y) month=$(date +%m) day=$(date +%d) # Create new version string newVersion="$year.$month.$day" # Get current branch name branchName=$(git rev-parse --abbrev-ref HEAD) # Check if we're in the middle of a merge if [[ -f ".git/MERGE_HEAD" ]]; then echo -e "${YELLOW}Warning: In the middle of a merge. Skipping version update.${NC}" else # Check if file exists relative to git root if [[ ! -f "$versionFile" ]]; then echo -e "${RED}Error: Version file not found at $versionFile${NC}" exit 1 fi # Store original version file content originalContent=$(cat "$versionFile") # Check if version actually needs updating if ! grep -q "version = \"$newVersion\"" "$versionFile"; then # Update the version in the file sed -i "s/version = [\"']\{0,1\}[0-9.]\+[\"']\{0,1\}/version = \"$newVersion\"/" "$versionFile" fi # Check if code_name exists and isn't "stable" if grep -q "code_name.*=.*\"stable\"" "$versionFile"; then # Don't modify stable code_name : elif grep -q "code_name.*=.*\"$branchName\"" "$versionFile"; then # code_name already matches branch name, no need to update : elif grep -q "code_name" "$versionFile"; then # Update existing code_name sed -i "s/code_name = [\"']\{0,1\}[^\"']*[\"']\{0,1\}/code_name = \"$branchName\"/" "$versionFile" else # Add code_name after the version line sed -i "/version = / a\code_name = \"$branchName\"" "$versionFile" fi # Check if the file was actually modified if [[ "$(cat "$versionFile")" != "$originalContent" ]]; then echo -e "${GREEN}āœ“ Version file updated to $newVersion${NC}" if ! git diff --cached --quiet "$versionFile"; then echo -e "${YELLOW}Notice: Version file was already staged, updates made to staged version${NC}" else git add "$versionFile" echo -e "${YELLOW}Notice: Version file has been staged${NC}" fi else echo -e "${GREEN}āœ“ No version updates needed${NC}" fi fi fi # ============================================================================ # PART 2: CODE QUALITY VALIDATION (our new logic) # ============================================================================ echo -e "\n${YELLOW}2. Code Quality Validation...${NC}" # Track validation results VALIDATION_FAILED=0 # 2a. Python Syntax Validation echo -e "\n${YELLOW} 2a. Validating Python syntax...${NC}" if python3 tools/validate_syntax.py --check-only >/dev/null 2>&1; then echo -e "${GREEN} āœ“ Syntax validation passed${NC}" else echo -e "${RED} āœ— Syntax validation failed${NC}" echo " Run: python3 tools/validate_syntax.py --fix" VALIDATION_FAILED=1 fi # 2a2. PEP8/flake8 Validation (for staged Python files only) echo -e "\n${YELLOW} 2a2. Checking PEP8 compliance...${NC}" if command -v flake8 >/dev/null 2>&1 && [ -n "$STAGED_PYTHON_FILES" ]; then PEP8_ISSUES=0 # Check staged Python files with flake8 # Focus on critical issues, ignore cosmetic ones for pre-commit FLAKE8_SELECT="E9,F63,F7,F82" # Critical syntax/import errors only FLAKE8_IGNORE="E501,W503,E203" # Ignore line length and some formatting for file in $STAGED_PYTHON_FILES; do if [ -f "$file" ]; then flake8_output=$(flake8 --select="$FLAKE8_SELECT" --ignore="$FLAKE8_IGNORE" "$file" 2>/dev/null || true) if [ -n "$flake8_output" ]; then if [ $PEP8_ISSUES -eq 0 ]; then echo -e "${RED} āœ— Critical PEP8 issues found:${NC}" fi echo -e "${RED} $file:${NC}" echo "$flake8_output" | sed 's/^/ /' PEP8_ISSUES=1 fi fi done if [ $PEP8_ISSUES -eq 0 ]; then echo -e "${GREEN} āœ“ No critical PEP8 issues in staged files${NC}" else echo -e "${RED} āœ— Critical PEP8 issues found${NC}" echo -e "${YELLOW} Run: flake8 --select=E9,F63,F7,F82 for details${NC}" VALIDATION_FAILED=1 fi elif [ -n "$STAGED_PYTHON_FILES" ]; then echo -e "${YELLOW} ⚠ flake8 not available (install with: pip install flake8)${NC}" else echo -e "${GREEN} āœ“ No Python files to check${NC}" fi # 2b. Check for common issues in modified files echo -e "\n${YELLOW} 2b. Checking modified files for common issues...${NC}" # Get list of staged files (all types) STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM || true) STAGED_PYTHON_FILES=$(echo "$STAGED_FILES" | grep '\.py$' || true) if [ -n "$STAGED_FILES" ]; then ISSUES_FOUND=0 # Check for cache files being committed CACHE_FILES=$(echo "$STAGED_FILES" | grep -E '(__pycache__|\.pyc$)' || true) if [ -n "$CACHE_FILES" ]; then echo -e "${RED} āœ— Python cache files staged for commit:${NC}" echo "$CACHE_FILES" | while read cache_file; do echo -e "${RED} $cache_file${NC}" done echo -e "${RED} āœ— Run: python3 tools/cleanup_cache.py --remove${NC}" ISSUES_FOUND=1 fi # Check Python files for specific issues if [ -n "$STAGED_PYTHON_FILES" ]; then for file in $STAGED_PYTHON_FILES; do if [ -f "$file" ]; then # Check for unterminated strings (the main issue from the email) if grep -n 'f".*{$' "$file" >/dev/null 2>&1; then echo -e "${RED} āœ— $file: Potential unterminated f-string${NC}" ISSUES_FOUND=1 fi # Check for missing imports that are commonly used if grep -q 'debug\.DebugLevel\.' "$file" && ! grep -q 'from.*debug' "$file" && ! grep -q 'import.*debug' "$file"; then echo -e "${YELLOW} ⚠ $file: Uses debug.DebugLevel but no debug import found${NC}" fi fi done fi if [ $ISSUES_FOUND -eq 0 ]; then echo -e "${GREEN} āœ“ No common issues found in staged files${NC}" else echo -e "${RED} āœ— Common issues found in staged files${NC}" VALIDATION_FAILED=1 fi else echo -e "${GREEN} āœ“ No files staged for commit${NC}" fi # 2c. Quick import test for core modules (informational only) echo -e "\n${YELLOW} 2c. Testing core module imports...${NC}" IMPORT_WARNINGS=0 # Test core imports that are critical (but don't fail on import issues - might be dependency related) CORE_MODULES=( "src.fenrirscreenreader.core.fenrirManager" "src.fenrirscreenreader.core.commandManager" "src.fenrirscreenreader.core.eventManager" ) cd src for module in "${CORE_MODULES[@]}"; do if python3 -c "import $module" 2>/dev/null; then echo -e "${GREEN} āœ“ $module${NC}" else echo -e "${YELLOW} ⚠ $module (import failed - might be dependency related)${NC}" IMPORT_WARNINGS=1 fi done cd "$REPO_ROOT" if [ $IMPORT_WARNINGS -eq 1 ]; then echo -e "${YELLOW} ⚠ Some core module imports failed (non-blocking)${NC}" echo -e "${YELLOW} This may be due to missing runtime dependencies${NC}" else echo -e "${GREEN} āœ“ Core module imports successful${NC}" fi # ============================================================================ # FINAL SUMMARY # ============================================================================ echo -e "\n============================================================" if [ $VALIDATION_FAILED -eq 0 ]; then echo -e "${GREEN}āœ“ All pre-commit validations passed${NC}" echo -e "${GREEN}āœ“ Version management completed${NC}" echo -e "${GREEN}āœ“ Code quality checks passed${NC}" echo -e "${GREEN}Commit allowed to proceed${NC}" # Show skip option echo -e "\n${BLUE}Tip: You can skip version updates with SKIP_VERSION_UPDATE=1${NC}" exit 0 else echo -e "${RED}āœ— Pre-commit validation failed${NC}" echo -e "${RED}Commit blocked - please fix issues above${NC}" echo "" echo "Quick fixes:" echo " • Python syntax: python3 tools/validate_syntax.py --fix" echo " • Review flagged files manually" echo " • Re-run commit after fixes" echo "" echo -e "${BLUE}Note: Version management completed successfully${NC}" exit 1 fifenrir/tools/pre-commit-hook000077500000000000000000000132751513650123000164470ustar00rootroot00000000000000#!/bin/bash # Fenrir Pre-commit Hook # # This hook validates Python syntax and basic code quality before commits. # Install with: ln -sf ../../tools/pre-commit-hook .git/hooks/pre-commit set -e # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}Fenrir Pre-commit Validation${NC}" echo "==================================" # Get the repository root REPO_ROOT=$(git rev-parse --show-toplevel) cd "$REPO_ROOT" # Track validation results VALIDATION_FAILED=0 # 1. Python Syntax Validation echo -e "\n${YELLOW}1. Validating Python syntax...${NC}" if python3 tools/validate_syntax.py --check-only; then echo -e "${GREEN}āœ“ Syntax validation passed${NC}" else echo -e "${RED}āœ— Syntax validation failed${NC}" echo "Run: python3 tools/validate_syntax.py --fix" VALIDATION_FAILED=1 fi # 2. Check for common issues in modified files echo -e "\n${YELLOW}2. Checking modified files for common issues...${NC}" # Get list of staged Python files STAGED_PYTHON_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$' || true) if [ -n "$STAGED_PYTHON_FILES" ]; then ISSUES_FOUND=0 for file in $STAGED_PYTHON_FILES; do if [ -f "$file" ]; then # Check for broken f-strings (multiline issues that cause syntax errors) # Pattern 1: f-string with opening brace at end of line (likely broken across lines) if grep -n 'f"[^"]*{[^}]*$' "$file" >/dev/null 2>&1; then echo -e "${RED}āœ— $file: Potential broken multiline f-string${NC}" grep -n 'f"[^"]*{[^}]*$' "$file" | head -3 ISSUES_FOUND=1 fi # Pattern 2: Lines that end with just an opening brace (common in broken f-strings) if grep -n '^\s*[^#]*{$' "$file" >/dev/null 2>&1; then echo -e "${YELLOW}⚠ $file: Lines ending with lone opening brace (check f-strings)${NC}" fi # Check for missing imports that are commonly used if grep -q 'debug\.DebugLevel\.' "$file" && ! grep -q 'from.*debug' "$file" && ! grep -q 'import.*debug' "$file"; then echo -e "${YELLOW}⚠ $file: Uses debug.DebugLevel but no debug import found${NC}" fi # Check for extremely long lines (over 120 chars) that might indicate issues if awk 'length($0) > 120 {print NR ": " $0; exit 1}' "$file" >/dev/null 2>&1; then # Only warn, don't fail line_num=$(awk 'length($0) > 120 {print NR; exit}' "$file") echo -e "${YELLOW}⚠ $file:$line_num: Very long line (>120 chars)${NC}" fi fi done if [ $ISSUES_FOUND -eq 0 ]; then echo -e "${GREEN}āœ“ No common issues found in modified files${NC}" else echo -e "${RED}āœ— Common issues found in modified files${NC}" VALIDATION_FAILED=1 fi else echo -e "${GREEN}āœ“ No Python files modified${NC}" fi # 3. Quick import test for core modules echo -e "\n${YELLOW}3. Testing core module imports...${NC}" IMPORT_FAILED=0 # Test core imports that are critical CORE_MODULES=( "src.fenrirscreenreader.core.fenrirManager" "src.fenrirscreenreader.core.commandManager" "src.fenrirscreenreader.core.eventManager" ) cd src for module in "${CORE_MODULES[@]}"; do if python3 -c "import $module" 2>/dev/null; then echo -e "${GREEN}āœ“ $module${NC}" else echo -e "${RED}āœ— $module (import failed)${NC}" IMPORT_FAILED=1 fi done cd "$REPO_ROOT" if [ $IMPORT_FAILED -eq 1 ]; then echo -e "${RED}āœ— Core module import test failed${NC}" VALIDATION_FAILED=1 else echo -e "${GREEN}āœ“ Core module imports successful${NC}" fi # 4. Run test suite echo -e "\n${YELLOW}4. Running test suite...${NC}" if command -v pytest >/dev/null 2>&1; then # Run tests quietly, show summary at end if pytest tests/ -q --tb=short 2>&1 | tail -20; then echo -e "${GREEN}āœ“ All tests passed${NC}" else echo -e "${RED}āœ— Test suite failed${NC}" echo "Run: pytest tests/ -v (to see details)" VALIDATION_FAILED=1 fi else echo -e "${YELLOW}⚠ pytest not installed - skipping tests${NC}" echo " Install with: pip install pytest" echo " Or full test suite: pip install -r tests/requirements.txt" fi # 5. Check for secrets or sensitive data echo -e "\n${YELLOW}5. Checking for potential secrets...${NC}" SECRETS_FOUND=0 if [ -n "$STAGED_PYTHON_FILES" ]; then for file in $STAGED_PYTHON_FILES; do if [ -f "$file" ]; then # Check for potential passwords, keys, tokens if grep -i -E '(password|passwd|pwd|key|token|secret|api_key).*=.*["'"'"'][^"'"'"']{8,}["'"'"']' "$file" >/dev/null 2>&1; then echo -e "${RED}āœ— $file: Potential hardcoded secret detected${NC}" SECRETS_FOUND=1 fi fi done fi if [ $SECRETS_FOUND -eq 0 ]; then echo -e "${GREEN}āœ“ No potential secrets found${NC}" else echo -e "${RED}āœ— Potential secrets found - please review${NC}" VALIDATION_FAILED=1 fi # Summary echo -e "\n==================================================" if [ $VALIDATION_FAILED -eq 0 ]; then echo -e "${GREEN}āœ“ All pre-commit validations passed${NC}" echo -e "${GREEN}Commit allowed to proceed${NC}" exit 0 else echo -e "${RED}āœ— Pre-commit validation failed${NC}" echo -e "${RED}Commit blocked - please fix issues above${NC}" echo "" echo "Quick fixes:" echo " • Python syntax: python3 tools/validate_syntax.py --fix" echo " • Run tests: pytest tests/ -v" echo " • Review flagged files manually" echo " • Re-run commit after fixes" exit 1 fifenrir/tools/setup_validation.sh000077500000000000000000000061131513650123000174110ustar00rootroot00000000000000#!/bin/bash # Fenrir Validation Setup Script # # Sets up the validation tools and pre-commit hooks for Fenrir development. # Run this once after cloning the repository. set -e # Colors for output GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color echo -e "${GREEN}Fenrir Development Environment Setup${NC}" echo "======================================" # Check we're in the right directory if [ ! -f "CLAUDE.md" ] || [ ! -d "src/fenrirscreenreader" ]; then echo -e "${RED}Error: Must be run from Fenrir project root directory${NC}" exit 1 fi # Make validation scripts executable echo -e "\n${YELLOW}1. Making validation scripts executable...${NC}" chmod +x tools/validate_syntax.py chmod +x tools/validate_pep8.py chmod +x tools/validate_release.py chmod +x tools/cleanup_cache.py chmod +x tools/pre-commit-hook chmod +x tools/install_validation_hook.sh chmod +x tools/pre-commit-composite echo -e "${GREEN}āœ“ Scripts are now executable${NC}" # Install pre-commit hook echo -e "\n${YELLOW}2. Installing composite pre-commit hook...${NC}" echo -e "${YELLOW}This preserves existing version management functionality.${NC}" # Use the safe installation script if ./tools/install_validation_hook.sh; then echo -e "${GREEN}āœ“ Composite pre-commit hook installed${NC}" else echo -e "${RED}⚠ Hook installation encountered issues${NC}" echo " You can install manually with: ./tools/install_validation_hook.sh" fi # Test validation tools echo -e "\n${YELLOW}3. Testing validation tools...${NC}" # Test syntax validator if python3 tools/validate_syntax.py --check-only >/dev/null 2>&1; then echo -e "${GREEN}āœ“ Syntax validator working${NC}" else echo -e "${RED}⚠ Syntax validator found issues${NC}" echo " Run: python3 tools/validate_syntax.py --fix" fi # Test pre-commit hook if ./tools/pre-commit-hook >/dev/null 2>&1; then echo -e "${GREEN}āœ“ Pre-commit hook working${NC}" else echo -e "${RED}⚠ Pre-commit hook found issues${NC}" echo " This is normal if there are uncommitted changes" fi # Verify dependencies for full validation echo -e "\n${YELLOW}4. Checking validation dependencies...${NC}" missing_deps=() if ! command -v python3 >/dev/null 2>&1; then missing_deps+=("python3") fi if ! python3 -c "import ast" >/dev/null 2>&1; then missing_deps+=("python3-ast") fi if [ ${#missing_deps[@]} -eq 0 ]; then echo -e "${GREEN}āœ“ All validation dependencies available${NC}" else echo -e "${RED}Missing dependencies: ${missing_deps[*]}${NC}" fi # Final instructions echo -e "\n${GREEN}Setup complete!${NC}" echo "" echo "Development workflow:" echo " 1. Make your changes" echo " 2. python3 tools/validate_syntax.py --fix" echo " 3. python3 tools/validate_release.py --quick" echo " 4. git add . && git commit (pre-commit hook runs automatically)" echo "" echo "Before releases:" echo " python3 tools/validate_release.py" echo " cat RELEASE_CHECKLIST.md" echo "" echo -e "${YELLOW}Tip: The pre-commit hook will now run automatically on every commit${NC}" echo -e "${YELLOW} and prevent syntax errors from being committed.${NC}"fenrir/tools/startx.sh000077500000000000000000000015041513650123000153630ustar00rootroot00000000000000#!/bin/bash cleanup() { # Make sure Fenrir is restored on exit of this script echo -n "setting set screen#suspendingScreen=" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock } # Call the cleanup function on exit of this script trap cleanup EXIT # Get the number of the current terminal term=$(tty) term="${term##*tty}" # Make sure term is a number, otherwise we're in something like screen, and x will not start. if ! [[ "$term" =~ ^[1-9]+$ ]]; then echo "This does not appear to be a terminal from where X may be started. Please make sure you are not in a screen or tmux session." trap - EXIT exit 1 fi # Suspend the current terminal for Fenrir echo -n "setting set screen#suspendingScreen=$term" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Start the x session command startx exit 0 fenrir/tools/traceEvdev.py000077500000000000000000000012421513650123000161430ustar00rootroot00000000000000#!/usr/bin/env python3 import evdev from evdev import InputDevice from select import select import time devices = map(evdev.InputDevice, (evdev.list_devices())) devices = {dev.fd: dev for dev in devices} for fd in devices: for i in devices[fd].capabilities(True): print(devices[fd].fn,devices[fd].name,i) while True: r, w, x = select(devices, [], []) if r != []: for fd in r: for event in devices[fd].read(): print('Devicename:'+ devices[fd].name + ' Devicepath:' + devices[fd].fn + ' EventType: ' + str(event.type) + ' Events:' + str(devices[fd].active_keys(verbose=True)) + ' Value:' + str(event.value)) fenrir/tools/validate_pep8.py000077500000000000000000000340661513650123000166120ustar00rootroot00000000000000#!/usr/bin/env python3 """ Fenrir PEP8 Validation and Auto-Fix Tool Validates Python code style using flake8 and applies safe automatic fixes. Designed to work with Fenrir's existing codebase while respecting timing-critical code. Usage: python3 tools/validate_pep8.py # Check all Python files python3 tools/validate_pep8.py --fix-safe # Auto-fix safe issues python3 tools/validate_pep8.py --check-only # Exit with error if issues found python3 tools/validate_pep8.py --staged # Check only staged files """ import os import sys import argparse import subprocess import tempfile from pathlib import Path class PEP8Validator: def __init__(self, verbose=True): self.verbose = verbose self.errors = [] self.warnings = [] self.fixes_applied = [] def log(self, message, level="INFO"): """Log a message with appropriate formatting.""" if not self.verbose and level == "INFO": return colors = { "INFO": "\033[0;36m", # Cyan "SUCCESS": "\033[0;32m", # Green "WARNING": "\033[1;33m", # Yellow "ERROR": "\033[0;31m", # Red "HEADER": "\033[1;34m", # Bold Blue } reset = "\033[0m" color = colors.get(level, "") if level == "HEADER": print(f"\n{color}{'='*60}") print(f"{message}") print(f"{'='*60}{reset}") else: symbol = { "SUCCESS": "āœ“", "ERROR": "āœ—", "WARNING": "⚠", "INFO": "•" }.get(level, "•") print(f"{color}{symbol} {message}{reset}") def check_flake8_available(self): """Check if flake8 is available.""" try: result = subprocess.run(["flake8", "--version"], capture_output=True, text=True, timeout=5) if result.returncode == 0: version = result.stdout.strip().split('\n')[0] self.log(f"Using flake8: {version}") return True else: return False except (subprocess.TimeoutExpired, FileNotFoundError): return False def get_python_files(self, directory=None, staged_only=False): """Get list of Python files to check.""" if staged_only: try: result = subprocess.run([ "git", "diff", "--cached", "--name-only", "--diff-filter=ACM" ], capture_output=True, text=True, timeout=10) if result.returncode == 0: files = [f for f in result.stdout.strip().split('\n') if f.endswith('.py') and Path(f).exists()] return [Path(f) for f in files if f] else: self.warnings.append("Could not get staged files, checking all files") staged_only = False except subprocess.TimeoutExpired: self.warnings.append("Git command timed out, checking all files") staged_only = False if not staged_only: directory = Path(directory or "src/fenrirscreenreader") if not directory.exists(): self.errors.append(f"Directory {directory} does not exist") return [] python_files = list(directory.rglob("*.py")) # Filter out cache and build directories python_files = [f for f in python_files if not any( part.startswith(('__pycache__', '.git', 'build', 'dist')) for part in f.parts)] return python_files return [] def run_flake8(self, files, select=None, ignore=None): """Run flake8 on the given files.""" if not files: return True, "" cmd = ["flake8"] if select: cmd.extend(["--select", select]) if ignore: cmd.extend(["--ignore", ignore]) # Add files cmd.extend([str(f) for f in files]) try: result = subprocess.run(cmd, capture_output=True, text=True, timeout=30) return result.returncode == 0, result.stdout except subprocess.TimeoutExpired: self.errors.append("flake8 command timed out") return False, "" except Exception as e: self.errors.append(f"Failed to run flake8: {e}") return False, "" def categorize_issues(self, flake8_output): """Categorize flake8 issues by severity and safety for auto-fixing.""" lines = flake8_output.strip().split('\n') issues = {'critical': [], 'safe_fixable': [], 'manual': []} for line in lines: if not line.strip(): continue # Parse flake8 output: filename:line:col: code message parts = line.split(':', 3) if len(parts) < 4: continue filename = parts[0] line_num = parts[1] col = parts[2] code_msg = parts[3].strip() code = code_msg.split()[0] if code_msg else "" # Categorize by error code if code.startswith('E9') or code.startswith('F'): # Critical syntax/import errors issues['critical'].append(line) elif code in ['E111', 'E114', 'E117', 'E121', 'E122', 'E123', 'E124', 'E125', 'E126', 'E127', 'E128', 'E129', 'E131', 'E133', 'W291', 'W292', 'W293']: # Safe indentation and whitespace fixes # But skip timing-critical files if not any(critical in filename.lower() for critical in ['evdevdriver', 'vcsadriver', 'screenmanager', 'inputmanager']): issues['safe_fixable'].append(line) else: issues['manual'].append(line) else: # Everything else needs manual review issues['manual'].append(line) return issues def apply_safe_fixes(self, files): """Apply safe automatic fixes using autopep8.""" try: # Check if autopep8 is available result = subprocess.run(["autopep8", "--version"], capture_output=True, text=True, timeout=5) if result.returncode != 0: self.warnings.append("autopep8 not available for auto-fixing") return False except (subprocess.TimeoutExpired, FileNotFoundError): self.warnings.append("autopep8 not available for auto-fixing") return False fixed_count = 0 for file_path in files: # Skip timing-critical files if any(critical in str(file_path).lower() for critical in ['evdevdriver', 'vcsadriver', 'screenmanager', 'inputmanager']): self.log(f"Skipping timing-critical file: {file_path}", "WARNING") continue try: # Apply safe fixes only cmd = [ "autopep8", "--in-place", "--select", "E111,E114,E117,E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E133,W291,W292,W293", str(file_path) ] result = subprocess.run(cmd, capture_output=True, text=True, timeout=10) if result.returncode == 0: self.fixes_applied.append(f"Applied safe PEP8 fixes to {file_path}") fixed_count += 1 else: self.warnings.append(f"Could not auto-fix {file_path}: {result.stderr}") except subprocess.TimeoutExpired: self.warnings.append(f"Auto-fix timed out for {file_path}") except Exception as e: self.warnings.append(f"Error auto-fixing {file_path}: {e}") return fixed_count > 0 def validate_files(self, files, fix_safe=False): """Validate Python files for PEP8 compliance.""" if not files: self.log("No Python files to validate") return True self.log(f"Validating {len(files)} Python files") # Run comprehensive flake8 check success, output = self.run_flake8(files) if not output.strip(): self.log("All files pass PEP8 validation", "SUCCESS") return True # Categorize issues issues = self.categorize_issues(output) # Report critical issues if issues['critical']: self.log(f"Critical issues found ({len(issues['critical'])}):", "ERROR") for issue in issues['critical'][:10]: # Limit output self.log(f" {issue}", "ERROR") if len(issues['critical']) > 10: self.log(f" ... and {len(issues['critical']) - 10} more", "ERROR") # Handle safe fixable issues if issues['safe_fixable']: if fix_safe: self.log(f"Auto-fixing {len(issues['safe_fixable'])} safe issues...", "INFO") # Get unique files from safe_fixable issues fix_files = set() for issue in issues['safe_fixable']: filename = issue.split(':')[0] fix_files.add(Path(filename)) if self.apply_safe_fixes(fix_files): self.log("Safe auto-fixes applied", "SUCCESS") # Re-run flake8 to see remaining issues success, output = self.run_flake8(files) if output.strip(): remaining_issues = self.categorize_issues(output) issues = remaining_issues else: issues = {'critical': [], 'safe_fixable': [], 'manual': []} else: self.log(f"Safe fixable issues found ({len(issues['safe_fixable'])}):", "WARNING") for issue in issues['safe_fixable'][:5]: self.log(f" {issue}", "WARNING") if len(issues['safe_fixable']) > 5: self.log(f" ... and {len(issues['safe_fixable']) - 5} more", "WARNING") self.log("Run with --fix-safe to auto-fix these", "INFO") # Report manual issues if issues['manual']: self.log(f"Manual review needed ({len(issues['manual'])}):", "WARNING") for issue in issues['manual'][:5]: self.log(f" {issue}", "WARNING") if len(issues['manual']) > 5: self.log(f" ... and {len(issues['manual']) - 5} more", "WARNING") # Return success if only manual issues remain (non-critical) return len(issues['critical']) == 0 def generate_report(self): """Generate final validation report.""" total_issues = len(self.errors) + len(self.warnings) if self.fixes_applied: self.log(f"\nAUTO-FIXES APPLIED ({len(self.fixes_applied)}):", "HEADER") for fix in self.fixes_applied: self.log(fix, "SUCCESS") if self.errors: self.log(f"\nERRORS ({len(self.errors)}):", "HEADER") for error in self.errors: self.log(error, "ERROR") if self.warnings: self.log(f"\nWARNINGS ({len(self.warnings)}):", "HEADER") for warning in self.warnings: self.log(warning, "WARNING") if len(self.errors) == 0: self.log("\nāœ… PEP8 VALIDATION PASSED", "SUCCESS") if self.warnings: self.log("Non-critical style issues found - consider manual review", "INFO") return True else: self.log("\nāŒ PEP8 VALIDATION FAILED", "ERROR") self.log("Critical issues must be fixed", "ERROR") return False def main(): parser = argparse.ArgumentParser(description='Validate and fix PEP8 compliance in Fenrir') parser.add_argument('--fix-safe', action='store_true', help='Apply safe automatic fixes (avoids timing-critical files)') parser.add_argument('--check-only', action='store_true', help='Exit with non-zero code if issues found') parser.add_argument('--staged', action='store_true', help='Check only staged files') parser.add_argument('--quiet', action='store_true', help='Reduce output verbosity') parser.add_argument('--directory', default='src/fenrirscreenreader', help='Directory to scan (default: src/fenrirscreenreader)') args = parser.parse_args() validator = PEP8Validator(verbose=not args.quiet) validator.log("FENRIR PEP8 VALIDATION", "HEADER") # Check if flake8 is available if not validator.check_flake8_available(): validator.log("flake8 is required but not available", "ERROR") validator.log("Install with: pip install flake8", "INFO") if args.fix_safe: validator.log("For auto-fixing, also install: pip install autopep8", "INFO") sys.exit(1) # Get files to validate files = validator.get_python_files( directory=args.directory if not args.staged else None, staged_only=args.staged ) if not files: validator.log("No Python files found to validate") sys.exit(0) # Validate files success = validator.validate_files(files, fix_safe=args.fix_safe) # Generate report validation_passed = validator.generate_report() if args.check_only and not validation_passed: sys.exit(1) elif validation_passed: sys.exit(0) else: sys.exit(1) if __name__ == '__main__': main() fenrir/tools/validate_release.py000077500000000000000000000422721513650123000173540ustar00rootroot00000000000000#!/usr/bin/env python3 """ Fenrir Release Validation Tool Comprehensive validation suite for Fenrir releases, including syntax validation, dependency checking, import testing, and basic functionality validation. Usage: python3 tools/validate_release.py # Full validation python3 tools/validate_release.py --quick # Skip slow tests python3 tools/validate_release.py --fix # Auto-fix issues where possible """ import ast import os import sys import argparse import subprocess import tempfile import importlib.util from pathlib import Path import time class ReleaseValidator: def __init__(self, verbose=True): self.verbose = verbose self.errors = [] self.warnings = [] self.fixes_applied = [] self.tests_run = 0 self.tests_passed = 0 def log(self, message, level="INFO"): """Log a message with appropriate formatting.""" if not self.verbose and level == "INFO": return colors = { "INFO": "\033[0;36m", # Cyan "SUCCESS": "\033[0;32m", # Green "WARNING": "\033[1;33m", # Yellow "ERROR": "\033[0;31m", # Red "HEADER": "\033[1;34m", # Bold Blue } reset = "\033[0m" color = colors.get(level, "") if level == "HEADER": print(f"\n{color}{'='*60}") print(f"{message}") print(f"{'='*60}{reset}") else: symbol = { "SUCCESS": "āœ“", "ERROR": "āœ—", "WARNING": "⚠", "INFO": "•" }.get(level, "•") print(f"{color}{symbol} {message}{reset}") def run_test(self, name, test_func, *args, **kwargs): """Run a test and track results.""" self.tests_run += 1 try: result = test_func(*args, **kwargs) if result: self.tests_passed += 1 self.log(f"{name}: PASSED", "SUCCESS") else: self.log(f"{name}: FAILED", "ERROR") return result except Exception as e: self.log(f"{name}: ERROR - {e}", "ERROR") self.errors.append(f"{name}: {e}") return False def validate_python_syntax(self, directory, fix_mode=False): """Validate Python syntax across all files.""" python_files = list(Path(directory).rglob("*.py")) # Filter out cache and build directories python_files = [f for f in python_files if not any(part.startswith(('__pycache__', '.git', 'build', 'dist')) for part in f.parts)] syntax_errors = [] fixed_files = [] for filepath in python_files: try: with open(filepath, 'r', encoding='utf-8') as f: content = f.read() ast.parse(content, filename=str(filepath)) except SyntaxError as e: syntax_errors.append((filepath, e)) if fix_mode: # Try to fix common f-string issues fixed_content = self.fix_fstring_issues(content) if fixed_content != content: try: ast.parse(fixed_content, filename=str(filepath)) # Fix worked, write it back with open(filepath, 'w', encoding='utf-8') as f: f.write(fixed_content) fixed_files.append(filepath) syntax_errors.pop() # Remove from errors except SyntaxError: pass # Fix didn't work except Exception as e: syntax_errors.append((filepath, e)) if fixed_files: self.fixes_applied.extend([f"Fixed f-string syntax in {f}" for f in fixed_files]) if syntax_errors: for filepath, error in syntax_errors[:5]: # Show only first 5 if isinstance(error, SyntaxError): self.errors.append(f"Syntax error in {filepath}:{error.lineno}: {error.msg}") else: self.errors.append(f"Error in {filepath}: {error}") if len(syntax_errors) > 5: self.errors.append(f"... and {len(syntax_errors) - 5} more syntax errors") return len(syntax_errors) == 0 def fix_fstring_issues(self, content): """Fix common f-string syntax issues.""" lines = content.split('\n') for i, line in enumerate(lines): # Look for f-strings that span multiple lines incorrectly if ('f"' in line and line.count('"') % 2 == 1 and i + 1 < len(lines) and lines[i + 1].strip()): next_line = lines[i + 1] # Common patterns to fix if (next_line.strip().endswith('}"') or 'str(e)}' in next_line or next_line.strip().startswith(('fenrirVersion.', 'self.'))): # Merge the lines properly fixed_line = line.rstrip() + next_line.strip() lines[i] = fixed_line lines[i + 1] = '' return '\n'.join(line for line in lines if line.strip() or not line) def validate_dependencies(self): """Run the existing dependency checker.""" try: result = subprocess.run([ sys.executable, "check-dependencies.py" ], capture_output=True, text=True, timeout=30) if result.returncode == 0: return True else: self.errors.append(f"Dependency check failed: {result.stderr}") return False except subprocess.TimeoutExpired: self.errors.append("Dependency check timed out") return False except Exception as e: self.errors.append(f"Could not run dependency check: {e}") return False def validate_core_imports(self): """Test importing core Fenrir modules.""" # Change to src directory for imports original_path = sys.path.copy() src_dir = Path.cwd() / "src" if src_dir.exists(): sys.path.insert(0, str(src_dir)) core_modules = [ "fenrirscreenreader.core.fenrirManager", "fenrirscreenreader.core.commandManager", "fenrirscreenreader.core.eventManager", "fenrirscreenreader.core.screenManager", "fenrirscreenreader.core.inputManager", "fenrirscreenreader.core.outputManager", ] import_failures = [] for module_name in core_modules: try: importlib.import_module(module_name) except ImportError as e: import_failures.append(f"{module_name}: {e}") except Exception as e: import_failures.append(f"{module_name}: Unexpected error: {e}") # Restore path sys.path = original_path if import_failures: self.errors.extend(import_failures) return False return True def validate_command_structure(self): """Validate command file structure and naming.""" commands_dir = Path("src/fenrirscreenreader/commands") if not commands_dir.exists(): self.errors.append("Commands directory not found") return False issues = [] # Check command directories expected_dirs = ["commands", "onHeartBeat", "onKeyInput", "onCursorChange", "onScreenUpdate", "onScreenChanged", "vmenu-profiles"] for expected_dir in expected_dirs: if not (commands_dir / expected_dir).exists(): issues.append(f"Missing expected directory: {expected_dir}") # Check for critical issues only (skip template files and base classes) for py_file in commands_dir.rglob("*.py"): if (py_file.name.startswith("__") or "template" in py_file.name.lower() or "base" in py_file.name.lower()): continue try: with open(py_file, 'r', encoding='utf-8') as f: content = f.read() # Critical structure checks only if "class command" not in content: issues.append(f"{py_file}: Missing 'class command' definition") # Skip method checks for files that inherit from base classes if ("super().__init__" in content or "importlib.util" in content or "_base.py" in content): continue # These inherit methods from base classes # Only check direct implementations # Special case: Application profile commands use load/unload instead of run if "onSwitchApplicationProfile" in str(py_file): if "def load" not in content and "def unload" not in content: issues.append(f"{py_file}: Missing 'load' or 'unload' method") else: critical_methods = ["run"] # Focus on the most critical method for method in critical_methods: if (f"def {method}" not in content and "super()" not in content): # Skip if uses inheritance issues.append(f"{py_file}: Missing '{method}' method") except Exception as e: issues.append(f"{py_file}: Could not validate structure: {e}") # Only report critical issues, not template/base class warnings critical_issues = [issue for issue in issues if not any(skip in issue.lower() for skip in ["template", "base", "missing 'initialize'", "missing 'shutdown'"])] if critical_issues: self.warnings.extend(critical_issues[:5]) # Limit warnings if len(critical_issues) > 5: self.warnings.append(f"... and {len(critical_issues) - 5} more critical command structure issues") # Return success if no critical issues (warnings are acceptable) return len(critical_issues) == 0 def validate_configuration_files(self): """Validate configuration file structure.""" config_dir = Path("config") if not config_dir.exists(): self.errors.append("Config directory not found") return False required_configs = [ "settings/settings.conf", "keyboard/desktop.conf", "punctuation/default.conf" ] missing_configs = [] for config_file in required_configs: if not (config_dir / config_file).exists(): missing_configs.append(config_file) if missing_configs: self.errors.extend([f"Missing config file: {f}" for f in missing_configs]) return False return True def validate_installation_scripts(self): """Validate installation and setup scripts.""" required_scripts = ["setup.py", "install.sh", "uninstall.sh"] missing_scripts = [] for script in required_scripts: if not Path(script).exists(): missing_scripts.append(script) if missing_scripts: self.warnings.extend([f"Missing installation script: {s}" for s in missing_scripts]) # Check setup.py syntax if it exists if Path("setup.py").exists(): try: with open("setup.py", 'r') as f: content = f.read() ast.parse(content, filename="setup.py") except SyntaxError as e: self.errors.append(f"setup.py syntax error: {e}") return False return len(missing_scripts) == 0 def validate_repository_cleanliness(self): """Check for cache files and other artifacts that shouldn't be in git.""" # Check for Python cache files in git tracking try: result = subprocess.run([ "git", "ls-files", "--cached" ], capture_output=True, text=True, timeout=10) if result.returncode == 0: tracked_files = result.stdout.strip().split('\n') cache_files = [f for f in tracked_files if '__pycache__' in f or f.endswith('.pyc')] if cache_files: self.errors.extend([f"Python cache file tracked in git: {f}" for f in cache_files[:5]]) if len(cache_files) > 5: self.errors.append(f"... and {len(cache_files) - 5} more cache files in git") return False else: return True else: self.warnings.append("Could not check git tracked files") return True except subprocess.TimeoutExpired: self.warnings.append("Git check timed out") return True except Exception as e: self.warnings.append(f"Could not check repository cleanliness: {e}") return True def generate_report(self): """Generate final validation report.""" self.log("FENRIR RELEASE VALIDATION REPORT", "HEADER") # Test Summary success_rate = (self.tests_passed / self.tests_run * 100) if self.tests_run > 0 else 0 self.log(f"Tests run: {self.tests_run}") self.log(f"Tests passed: {self.tests_passed}") self.log(f"Success rate: {success_rate:.1f}%") # Fixes Applied if self.fixes_applied: self.log("\nAUTO-FIXES APPLIED:", "HEADER") for fix in self.fixes_applied: self.log(fix, "SUCCESS") # Errors if self.errors: self.log(f"\nERRORS ({len(self.errors)}):", "HEADER") for error in self.errors: self.log(error, "ERROR") # Warnings if self.warnings: self.log(f"\nWARNINGS ({len(self.warnings)}):", "HEADER") for warning in self.warnings: self.log(warning, "WARNING") # Final Status if not self.errors and success_rate >= 80: self.log("\nšŸŽ‰ RELEASE VALIDATION PASSED", "SUCCESS") self.log("The codebase appears ready for release", "SUCCESS") return True elif not self.errors: self.log("\nāš ļø RELEASE VALIDATION PASSED WITH WARNINGS", "WARNING") self.log("Release is possible but issues should be addressed", "WARNING") return True else: self.log("\nāŒ RELEASE VALIDATION FAILED", "ERROR") self.log("Critical issues must be fixed before release", "ERROR") return False def main(): parser = argparse.ArgumentParser(description='Comprehensive Fenrir release validation') parser.add_argument('--quick', action='store_true', help='Skip slow tests (dependency checking)') parser.add_argument('--fix', action='store_true', help='Attempt to fix issues automatically where possible') parser.add_argument('--quiet', action='store_true', help='Reduce output verbosity') args = parser.parse_args() # Ensure we're in the project root if not Path("src/fenrirscreenreader").exists(): print("Error: Must be run from Fenrir project root directory") sys.exit(1) validator = ReleaseValidator(verbose=not args.quiet) validator.log("FENRIR RELEASE VALIDATION STARTING", "HEADER") start_time = time.time() # Run validation tests validator.run_test( "Python syntax validation", validator.validate_python_syntax, "src/fenrirscreenreader", args.fix ) if not args.quick: validator.run_test( "Dependency validation", validator.validate_dependencies ) validator.run_test( "Core module imports", validator.validate_core_imports ) validator.run_test( "Command structure validation", validator.validate_command_structure ) validator.run_test( "Configuration files validation", validator.validate_configuration_files ) validator.run_test( "Installation scripts validation", validator.validate_installation_scripts ) validator.run_test( "Repository cleanliness validation", validator.validate_repository_cleanliness ) # Generate final report elapsed_time = time.time() - start_time validator.log(f"\nValidation completed in {elapsed_time:.1f} seconds") success = validator.generate_report() sys.exit(0 if success else 1) if __name__ == '__main__': main() fenrir/tools/validate_syntax.py000077500000000000000000000237011513650123000172560ustar00rootroot00000000000000#!/usr/bin/env python3 """ Fenrir Syntax Validation Tool Validates Python syntax across the entire Fenrir codebase without writing cache files. Designed to catch syntax errors before packaging or releases. Usage: python3 tools/validate_syntax.py # Validate all Python files python3 tools/validate_syntax.py --fix # Fix common issues automatically python3 tools/validate_syntax.py --check-only # Exit with non-zero if errors found """ import ast import os import re import sys import argparse import tempfile from pathlib import Path class SyntaxValidator: def __init__(self): self.errors = [] self.warnings = [] self.fixed = [] def check_fstring_issues(self, content): """Check for common f-string formatting issues that cause syntax errors.""" issues = [] lines = content.split('\n') for i, line in enumerate(lines, 1): # Check for f-strings that appear to be broken across lines # Pattern: f"some text { if re.search(r'f"[^"]*{[^}]*$', line.strip()): issues.append(f"Line {i}: Potential broken multiline f-string") return issues def validate_file(self, filepath): """Validate syntax of a single Python file.""" try: with open(filepath, 'r', encoding='utf-8') as f: content = f.read() # Check for specific f-string issues before AST parsing fstring_issues = self.check_fstring_issues(content) if fstring_issues: # Create a synthetic syntax error for f-string issues error_msg = f"F-string issues: {'; '.join(fstring_issues)}" self.errors.append((filepath, SyntaxError(error_msg), content)) return False, content # Parse with AST (catches syntax errors) ast.parse(content, filename=str(filepath)) return True, content except SyntaxError as e: error_msg = f"{filepath}:{e.lineno}: {e.msg}" self.errors.append((filepath, e, content)) return False, content except UnicodeDecodeError as e: error_msg = f"{filepath}: Unicode decode error: {e}" self.errors.append((filepath, e, None)) return False, None except Exception as e: error_msg = f"{filepath}: Unexpected error: {e}" self.errors.append((filepath, e, None)) return False, None def fix_common_issues(self, filepath, content): """Attempt to fix common syntax issues automatically.""" if not content: return False, content original_content = content fixed_issues = [] # Fix unterminated f-strings (the main issue from the email) lines = content.split('\n') modified = False for i, line in enumerate(lines): # Look for f-strings that span multiple lines incorrectly if 'f"' in line and line.count('"') % 2 == 1: # Check if this looks like a broken multi-line f-string indent = len(line) - len(line.lstrip()) # Look ahead for continuation j = i + 1 while j < len(lines) and lines[j].strip(): next_line = lines[j] next_indent = len(next_line) - len(next_line.lstrip()) # If next line is indented more and has closing brace/quote if (next_indent > indent and ('"' in next_line or '}' in next_line)): # Try to fix by joining lines properly combined_line = line.rstrip() continuation = next_line.strip() if continuation.startswith(('"', '}', 'str(e)', 'self.', 'fenrirVersion.')): # Fix common patterns if 'str(e)}' in continuation: fixed_line = line.replace('f"', 'f"').rstrip() + '{' + continuation.replace('"', '') + '}' elif continuation.startswith('"'): fixed_line = line + continuation else: fixed_line = line.rstrip() + continuation lines[i] = fixed_line lines[j] = '' # Remove the continuation line modified = True fixed_issues.append(f"Line {i+1}: Fixed multi-line f-string") break j += 1 if modified: content = '\n'.join(lines) # Clean up empty lines that were created content = '\n'.join(line for line in content.split('\n') if line.strip() or not line) # Verify the fix worked try: ast.parse(content, filename=str(filepath)) self.fixed.append((filepath, fixed_issues)) return True, content except SyntaxError: # Fix didn't work, return original return False, original_content return False, content def scan_directory(self, directory, fix_mode=False): """Scan directory for Python files and validate them.""" python_files = [] # Find all Python files for root, dirs, files in os.walk(directory): # Skip cache and build directories dirs[:] = [d for d in dirs if not d.startswith(('__pycache__', '.git', 'build', 'dist'))] for file in files: if file.endswith('.py'): python_files.append(Path(root) / file) print(f"Validating {len(python_files)} Python files...") valid_count = 0 fixed_count = 0 for filepath in sorted(python_files): is_valid, content = self.validate_file(filepath) if is_valid: valid_count += 1 print(f"āœ“ {filepath}") else: print(f"āœ— {filepath}") if fix_mode and content: # Try to fix the file was_fixed, fixed_content = self.fix_common_issues(filepath, content) if was_fixed: # Write the fixed content back with open(filepath, 'w', encoding='utf-8') as f: f.write(fixed_content) print(f" → Fixed automatically") fixed_count += 1 # Re-validate is_valid_now, _ = self.validate_file(filepath) if is_valid_now: valid_count += 1 return valid_count, len(python_files), fixed_count def print_summary(self, valid_count, total_count, fixed_count=0): """Print validation summary.""" print(f"\n{'='*60}") print(f"SYNTAX VALIDATION SUMMARY") print(f"{'='*60}") print(f"Valid files: {valid_count}/{total_count}") print(f"Invalid files: {total_count - valid_count}") if fixed_count > 0: print(f"Auto-fixed: {fixed_count}") if self.errors: print(f"\nERRORS ({len(self.errors)}):") for filepath, error, _ in self.errors: if isinstance(error, SyntaxError): print(f" {filepath}:{error.lineno}: {error.msg}") else: print(f" {filepath}: {error}") if self.fixed: print(f"\nAUTO-FIXES APPLIED ({len(self.fixed)}):") for filepath, fixes in self.fixed: print(f" {filepath}:") for fix in fixes: print(f" - {fix}") success_rate = (valid_count / total_count) * 100 if total_count > 0 else 0 print(f"\nSuccess rate: {success_rate:.1f}%") return len(self.errors) == 0 def main(): parser = argparse.ArgumentParser(description='Validate Python syntax in Fenrir codebase') parser.add_argument('--fix', action='store_true', help='Attempt to fix common syntax issues automatically') parser.add_argument('--check-only', action='store_true', help='Exit with non-zero code if syntax errors found') parser.add_argument('--directory', default='src/fenrirscreenreader', help='Directory to scan (default: src/fenrirscreenreader)') args = parser.parse_args() # Find project root script_dir = Path(__file__).parent project_root = script_dir.parent target_dir = project_root / args.directory if not target_dir.exists(): print(f"Error: Directory {target_dir} does not exist") sys.exit(1) print(f"Fenrir Syntax Validator") print(f"Target directory: {target_dir}") print(f"Fix mode: {'ON' if args.fix else 'OFF'}") print() validator = SyntaxValidator() valid_count, total_count, fixed_count = validator.scan_directory(target_dir, fix_mode=args.fix) all_valid = validator.print_summary(valid_count, total_count, fixed_count) if args.check_only and not all_valid: print(f"\nValidation failed: {total_count - valid_count} files have syntax errors") sys.exit(1) elif not all_valid: print(f"\nWarning: {total_count - valid_count} files have syntax errors") if not args.fix: print("Run with --fix to attempt automatic fixes") sys.exit(1) else: print(f"\nāœ“ All {total_count} files have valid syntax") sys.exit(0) if __name__ == '__main__': main() fenrir/uninstall.sh000077500000000000000000000011241513650123000147050ustar00rootroot00000000000000#!/bin/bash #Basic uninstall script for Fenrir. cat << EOF Fenrir is going to remove. All scripts and settings will be lost. EOF # ask read -p "This will remove Fenrir and its settings from your system,, press ctrl+C to cancel, or enter to continue." continue # do it unlink /usr/bin/fenrir unlink /usr/bin/fenrir-daemon rm -rf /opt/fenrirscreenreader rm -rf /usr/share/fenrirscreenreader rm -rf /etc/fenrirscreenreader rm -rf /usr/share/sounds/fenrirscreenreader rm -f /etc/systemd/system/fenrir.service # success message cat << EOF Fenrir has been successfully removed from your system. EOF