glances-3.4.0.3/0000755000175000017500000000000014432156570013206 5ustar epsilonepsilonglances-3.4.0.3/README.rst0000644000175000017500000003734414432156570014710 0ustar epsilonepsilon=============================== Glances - An eye on your system =============================== .. image:: https://img.shields.io/pypi/v/glances.svg :target: https://pypi.python.org/pypi/Glances .. image:: https://img.shields.io/github/stars/nicolargo/glances.svg :target: https://github.com/nicolargo/glances/ :alt: Github stars .. image:: https://img.shields.io/docker/pulls/nicolargo/glances :target: https://hub.docker.com/r/nicolargo/glances/ :alt: Docker pull .. image:: https://pepy.tech/badge/glances/month :target: https://pepy.tech/project/glances :alt: Pypi downloads .. image:: https://github.com/nicolargo/glances/actions/workflows/test.yml/badge.svg :target: https://github.com/nicolargo/glances/actions :alt: Linux tests (GitHub Actions) .. image:: https://img.shields.io/github/contributors/nicolargo/glances :target: https://github.com/nicolargo/glances/issues?q=is%3Aissue+is%3Aopen+label%3A%22needs+contributor%22 :alt: Contibutors .. image:: https://scrutinizer-ci.com/g/nicolargo/glances/badges/quality-score.png?b=develop :target: https://scrutinizer-ci.com/g/nicolargo/glances/?branch=develop :alt: Code quality .. image:: https://img.shields.io/github/sponsors/nicolargo :target: https://github.com/sponsors/nicolargo :alt: Sponsors .. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo :target: https://twitter.com/nicolargo :alt: @nicolargo Summary ======= **Glances** is an open-source system cross-platform monitoring tool. It allows real-time monitoring of various aspects of your system such as CPU, memory, disk, network usage etc. It also allows monitoring of running processes, logged in users, temperatures, voltages, fan speeds etc. It also supports container monitoring, it supports different container management systems such as Docker, LXC. The information is presented in an easy to read dashboard and can also be used for remote monitoring of systems via a web interface or command line interface. It is easy to install and use and can be customized to show only the information that you are interested in. .. image:: https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-summary.png In client/server mode, remote monitoring could be done via terminal, Web interface or API (XML-RPC and RESTful). Stats can also be exported to files or external time/value databases, CSV or direct output to STDOUT. .. image:: https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-responsive-webdesign.png Glances is written in Python and uses libraries to grab information from your system. It is based on an open architecture where developers can add new plugins or exports modules. Project sponsorship =================== You can help me to achieve my goals of improving this open-source project or just say "thank you" by: - sponsor me using one-time or monthly tier Github sponsors_ page - send me some pieces of bitcoin: 185KN9FCix3svJYp7JQM7hRMfSKyeaJR4X - buy me a gift on my wishlist_ page Any and all contributions are greatly appreciated. Requirements ============ - ``python>=2.7`` or ``python>=3.4`` - ``psutil>=5.3.0`` (better with latest version) - ``defusedxml`` (in order to monkey patch xmlrpc) - ``ujson`` (an optimized alternative to the standard json module) - ``future`` (for Python 2 support) *Note for Python 2.6 users* Glances no longer supports Python 2.6. Please upgrade to a minimum Python version of 2.7/3.4+ or downgrade to Glances 2.6.2 (last version with Python 2.6 support). *Deprecation warning note for Python 2.x users* Glances version 4.0 will no longer supports Python 2.x. Optional dependencies: - ``batinfo`` (for battery monitoring) - ``bernhard`` (for the Riemann export module) - ``bottle`` (for Web server mode) - ``cassandra-driver`` (for the Cassandra export module) - ``chevron`` (for the action script feature) - ``couchdb`` (for the CouchDB export module) - ``docker`` (for the Containers Docker monitoring support) [Linux/macOS-only / Python >= 3.6] - ``elasticsearch`` (for the Elastic Search export module) - ``graphitesender`` (For the Graphite export module) - ``hddtemp`` (for HDD temperature monitoring support) [Linux-only] - ``influxdb`` (for the InfluxDB version 1 export module) - ``influxdb-client`` (for the InfluxDB version 2 export module) [Only for Python >= 3.6] - ``kafka-python`` (for the Kafka export module) - ``netifaces`` (for the IP plugin) - ``py3nvml`` (for the GPU plugin) [Only for Python 3] - ``pika`` (for the RabbitMQ/ActiveMQ export module) - ``podman`` (for the Containers Podman monitoring support) [Linux/macOS-only / Python >= 3.6] - ``potsdb`` (for the OpenTSDB export module) - ``prometheus_client`` (for the Prometheus export module) - ``py-cpuinfo`` (for the Quicklook CPU info module) - ``pygal`` (for the graph export module) - ``pymdstat`` (for RAID support) [Linux-only] - ``pymongo`` (for the MongoDB export module) [Only for Python >= 3.7] - ``pysnmp`` (for SNMP support) - ``pySMART.smartx`` (for HDD Smart support) [Linux-only] - ``pyzmq`` (for the ZeroMQ export module) - ``requests`` (for the Ports, Cloud plugins and RESTful export module) - ``scandir`` (for the Folders plugin) [Only for Python < 3.5] - ``sparklines`` (for the Quick Plugin sparklines option) - ``statsd`` (for the StatsD export module) - ``wifi`` (for the wifi plugin) [Linux-only] - ``zeroconf`` (for the autodiscover mode) Installation ============ There are several methods to test/install Glances on your system. Choose your weapon! PyPI: The standard way ---------------------- Glances is on ``PyPI``. By using PyPI, you will be using the latest stable version. To install Glances, simply use ``pip``: .. code-block:: console pip install --user glances *Note*: Python headers are required to install `psutil`_, a Glances dependency. For example, on Debian/Ubuntu you need to install first the *python-dev* package (*python-devel* on Fedora/CentOS/RHEL). For Windows, just install psutil from the binary installation file. *Note 2 (for the Wifi plugin)*: If you want to use the Wifi plugin, you need to install the *wireless-tools* package on your system. By default, Glances is installed without the Web interface dependencies. To install it, use the following command: .. code-block:: console pip install --user 'glances[web]' For a full installation (with all features): .. code-block:: console pip install --user 'glances[all]' To upgrade Glances to the latest version: .. code-block:: console pip install --user --upgrade glances The current develop branch is published to the test.pypi.org package index. If you want to test the develop version (could be instable), enter: .. code-block:: console pip install --user -i https://test.pypi.org/simple/ Glances Glances Auto Install script: the easy way ----------------------------------------- To install both dependencies and the latest Glances production ready version (aka *master* branch), just enter the following command line: .. code-block:: console curl -L https://bit.ly/glances | /bin/bash or .. code-block:: console wget -O- https://bit.ly/glances | /bin/bash *Note*: This is only supported on some GNU/Linux distributions and Mac OS X. If you want to support other distributions, please contribute to `glancesautoinstall`_. Docker: the fun way ------------------- Glances Docker images are availables. You can use it to monitor your server and all your containers ! Get the Glances container: .. code-block:: console docker pull nicolargo/glances:latest-full The following tags are availables: - *latest-full* for a full Alpine Glances image (latest release) with all dependencies - *latest* for a basic Alpine Glances (latest release) version with minimal dependencies (Bottle and Docker) - *dev* for a basic Alpine Glances image (based on development branch) with all dependencies (Warning: may be instable) - *ubuntu-latest-full* for a full Ubuntu Glances image (latest release) with all dependencies - *ubuntu-latest* for a basic Ubuntu Glances (latest release) version with minimal dependencies (Bottle and Docker) - *ubuntu-dev* for a basic Ubuntu Glances image (based on development branch) with all dependencies (Warning: may be instable) Run last version of Glances container in *console mode*: .. code-block:: console docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it nicolargo/glances:latest-full Additionally, if you want to use your own glances.conf file, you can create your own Dockerfile: .. code-block:: console FROM nicolargo/glances:latest COPY glances.conf /etc/glances.conf CMD python -m glances -C /etc/glances.conf $GLANCES_OPT Alternatively, you can specify something along the same lines with docker run options (notice the `GLANCES_OPT` environment variable setting parameters for the glances startup command): .. code-block:: console docker run -e TZ="${TZ}" -v `pwd`/glances.conf:/etc/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -e GLANCES_OPT="-C /etc/glances.conf" -it nicolargo/glances:latest-full Where \`pwd\`/glances.conf is a local directory containing your glances.conf file. Run the container in *Web server mode*: .. code-block:: console docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances:latest-full For a full list of options, see the Glances `Docker`_ documentation page. GNU/Linux --------- `Glances` is available on many Linux distributions, so you should be able to install it using your favorite package manager. Be aware that when you use this method the operating system `package`_ for `Glances` may not be the latest version. Note: The Debian package (and all other Debian-based distributions) do not include anymore the JS statics files used by the Web interface (see ``issue2021``). If you want to add it to your Glances installation, follow the instructions: ``issue2021comment``. FreeBSD ------- To install the binary package: .. code-block:: console # pkg install py38-glances To install Glances from ports: .. code-block:: console # cd /usr/ports/sysutils/py-glances/ # make install clean macOS ----- If you do not want to use the glancesautoinstall script, follow this procedure. macOS users can install Glances using ``Homebrew`` or ``MacPorts``. Homebrew ```````` .. code-block:: console $ brew install glances MacPorts ```````` .. code-block:: console $ sudo port install glances Windows ------- Install `Python`_ for Windows (Python 2.7.9+ and 3.4+ ship with pip) and then run the following command: .. code-block:: console $ pip install glances Android ------- You need a rooted device and the `Termux`_ application (available on the Google Play Store). Start Termux on your device and enter: .. code-block:: console $ apt update $ apt upgrade $ apt install clang python $ pip install bottle $ pip install glances And start Glances: .. code-block:: console $ glances You can also run Glances in server mode (-s or -w) in order to remotely monitor your Android device. Source ------ To install Glances from source: .. code-block:: console $ wget https://github.com/nicolargo/glances/archive/vX.Y.tar.gz -O - | tar xz $ cd glances-* # python setup.py install *Note*: Python headers are required to install psutil. Chef ---- An awesome ``Chef`` cookbook is available to monitor your infrastructure: https://supermarket.chef.io/cookbooks/glances (thanks to Antoine Rouyer) Puppet ------ You can install Glances using ``Puppet``: https://github.com/rverchere/puppet-glances Ansible ------- A Glances ``Ansible`` role is available: https://galaxy.ansible.com/zaxos/glances-ansible-role/ Usage ===== For the standalone mode, just run: .. code-block:: console $ glances For the Web server mode, run: .. code-block:: console $ glances -w and enter the URL ``http://:61208`` in your favorite web browser. For the client/server mode, run: .. code-block:: console $ glances -s on the server side and run: .. code-block:: console $ glances -c on the client one. You can also detect and display all Glances servers available on your network or defined in the configuration file: .. code-block:: console $ glances --browser You can also display raw stats on stdout: .. code-block:: console $ glances --stdout cpu.user,mem.used,load cpu.user: 30.7 mem.used: 3278204928 load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27} cpu.user: 3.4 mem.used: 3275251712 load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27} ... or in a CSV format thanks to the stdout-csv option: .. code-block:: console $ glances --stdout-csv now,cpu.user,mem.used,load now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15 2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04 2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04 ... or in a JSON format thanks to the stdout-json option (attribute not supported in this mode in order to have a real JSON object in output): .. code-block:: console $ glances --stdout-json cpu,mem cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0} mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416} ... and RTFM, always. Documentation ============= For complete documentation have a look at the readthedocs_ website. If you have any question (after RTFM!), please post it on the official Q&A `forum`_. Gateway to other services ========================= Glances can export stats to: ``CSV`` file, ``JSON`` file, ``InfluxDB``, ``Cassandra``, ``CouchDB``, ``OpenTSDB``, ``Prometheus``, ``StatsD``, ``ElasticSearch``, ``RabbitMQ/ActiveMQ``, ``ZeroMQ``, ``Kafka``, ``Riemann``, ``Graphite`` and ``RESTful`` server. How to contribute ? =================== If you want to contribute to the Glances project, read this `wiki`_ page. There is also a chat dedicated to the Glances developers: .. image:: https://badges.gitter.im/Join%20Chat.svg :target: https://gitter.im/nicolargo/glances?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge Author ====== Nicolas Hennion (@nicolargo) .. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo :target: https://twitter.com/nicolargo License ======= Glances is distributed under the LGPL version 3 license. See ``COPYING`` for more details. .. _psutil: https://github.com/giampaolo/psutil .. _glancesautoinstall: https://github.com/nicolargo/glancesautoinstall .. _Python: https://www.python.org/getit/ .. _Termux: https://play.google.com/store/apps/details?id=com.termux .. _readthedocs: https://glances.readthedocs.io/ .. _forum: https://groups.google.com/forum/?hl=en#!forum/glances-users .. _wiki: https://github.com/nicolargo/glances/wiki/How-to-contribute-to-Glances-%3F .. _package: https://repology.org/project/glances/versions .. _sponsors: https://github.com/sponsors/nicolargo .. _wishlist: https://www.amazon.fr/hz/wishlist/ls/BWAAQKWFR3FI?ref_=wl_share .. _issue2021: https://github.com/nicolargo/glances/issues/2021#issuecomment-1197831157 .. _issue2021comment: https://github.com/nicolargo/glances/issues/2021#issuecomment-1197831157 .. _Docker: https://github.com/nicolargo/glances/blob/develop/docs/docker.rst glances-3.4.0.3/uninstall.sh0000755000175000017500000000061514432156570015560 0ustar epsilonepsilon#!/bin/sh if [ $(id -u) -ne 0 ]; then echo -e "* ERROR: User $(whoami) is not root, and does not have sudo privileges" exit 1 fi if [ ! -f "setup.py" ]; then echo -e "* ERROR: Setup file doesn't exist" exit 1 fi python setup.py install --record install.record for i in $(cat install.record); do rm $i done echo -e "\n\n* SUCCESS: Uninstall complete." rm install.record glances-3.4.0.3/docker-requirements.txt0000644000175000017500000000051214432156570017735 0ustar epsilonepsilon# install with base requirements file -r requirements.txt docker>=6.1.1; python_version >= "3.7" podman; python_version >= "3.6" packaging; python_version >= "3.7" python-dateutil six urllib3<2.0 # See issue https://github.com/nicolargo/glances/issues/2392 requests # See issue - https://github.com/nicolargo/glances/issues/2233 glances-3.4.0.3/pyproject.toml0000644000175000017500000000233014432156570016120 0ustar epsilonepsilon[tool.black] line-length = 120 skip-string-normalization = true exclude = '\./glances/outputs/static/*' [tool.ruff] # Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default. select = ["E", "F"] ignore = [] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"] unfixable = [] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", "docs" ] # Same as Black. line-length = 120 # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Assume Python 3.11 target-version = "py311" [tool.ruff.mccabe] # Unlike Flake8, default to a complexity level of 10. max-complexity = 10glances-3.4.0.3/CODE-OF-CONDUCT.md0000644000175000017500000000624014432156570015643 0ustar epsilonepsilon# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at nicolashennion@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org glances-3.4.0.3/conf/0000755000175000017500000000000014432156570014133 5ustar epsilonepsilonglances-3.4.0.3/conf/glances-grafana-flux.json0000644000175000017500000017754014432156570021031 0ustar epsilonepsilon{ "__inputs": [ { "name": "DS_GLANCES", "label": "glances", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "8.2.5" }, { "type": "panel", "id": "heatmap", "name": "Heatmap", "version": "" }, { "type": "datasource", "id": "influxdb", "name": "InfluxDB", "version": "1.0.0" }, { "type": "panel", "id": "stat", "name": "Stat", "version": "" }, { "type": "panel", "id": "timeseries", "name": "Time series", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "gnetId": null, "graphTooltip": 0, "id": null, "iteration": 1638092370245, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 29, "panels": [], "title": "Glances $host", "type": "row" }, { "cacheTimeout": null, "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 6, "w": 2, "x": 0, "y": 1 }, "id": 5, "interval": null, "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.2.5", "targets": [ { "column": "cpucore", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"load\" and\n r._field == \"cpucore\" and\n r.hostname == \"${host}\"\n )\n |> last()", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "cpucore" ], "type": "field" }, { "params": [], "type": "max" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "Core", "type": "stat" }, { "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 6, "w": 20, "x": 2, "y": 1 }, "id": 4, "links": [], "options": { "legend": { "calcs": [ "mean", "max", "min" ], "displayMode": "table", "placement": "right" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "1min", "column": "min1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"load\" and\n r._field == \"min5\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean5\")\n \n ", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "min1" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "randomWalk('random walk')" }, { "alias": "1min", "column": "min1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"load\" and\n r._field == \"min15\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean15\")\n \n ", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "min1" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "randomWalk('random walk')" }, { "alias": "1min", "column": "min1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"load\" and\n r._field == \"min1\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean1\")\n \n ", "refId": "C", "resultFormat": "time_series", "select": [ [ { "params": [ "min1" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "randomWalk('random walk')" } ], "timeFrom": null, "timeShift": null, "title": "Load", "type": "timeseries" }, { "cacheTimeout": null, "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "fixedColor": "rgb(31, 120, 193)", "mode": "fixed" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 6, "w": 2, "x": 22, "y": 1 }, "id": 18, "interval": null, "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.2.5", "targets": [ { "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "processcount", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"processcount\" and\n r._field == \"total\" and\n r.hostname == \"${host}\"\n )\n |> last()", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "last" } ] ], "series": "processcount", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "Processes", "type": "stat" }, { "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 7 }, "id": 6, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "User", "column": "user", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"cpu\" and\n r._field == \"user\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"user\")\n \n ", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "user" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "System", "column": "system", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"cpu\" and\n r._field == \"system\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"system\")\n \n ", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "system" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" }, { "alias": "IoWait", "column": "iowait", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"cpu\" and\n r._field == \"iowait\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"iowait\")\n \n ", "refId": "C", "resultFormat": "time_series", "select": [ [ { "params": [ "iowait" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "CPU (%)", "type": "timeseries" }, { "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*total./" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-red", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 2 } ] }, { "matcher": { "id": "byRegexp", "options": "/^used.*$/" }, "properties": [ { "id": "custom.fillOpacity", "value": 30 } ] } ] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 7 }, "id": 7, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "Used", "column": "used", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "mem", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"mem\" and\n r._field == \"used\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"used\")\n \n ", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "mem", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "Max", "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "mem", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"mem\" and\n r._field == \"total\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"total\")\n \n ", "rawQuery": false, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "mem", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "MEM", "type": "timeseries" }, { "datasource": "${DS_GLANCES}", "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 30, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bps" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 14 }, "id": 9, "links": [], "options": { "legend": { "calcs": [ "mean", "max", "min" ], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "In", "column": "enp0s25.rx", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "hide": false, "interval": "", "measurement": "$host.network", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"network\" and\n (r._field == \"rx\" or r._field == \"time_since_update\") and\n r.interface_name == \"${interface}\" and\n r.hostname == \"${host}\"\n )\n |> pivot(\n rowKey:[\"_time\"],\n columnKey: [\"_field\"],\n valueColumn: \"_value\"\n )\n |> map(fn: (r) => ({ r with _value: (r.rx / r.time_since_update) * 8.0 }))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> keep(columns: [\"_time\", \"_value\"])\n |> rename(columns: {_value: \"rx_rate\"})\n", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "eth0.rx" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "network", "tags": [] }, { "alias": "Out", "column": "eth0.tx*-1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "$host.network", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"network\" and\n (r._field == \"tx\" or r._field == \"time_since_update\") and\n r.interface_name == \"${interface}\" and\n r.hostname == \"${host}\"\n )\n |> pivot(\n rowKey:[\"_time\"],\n columnKey: [\"_field\"],\n valueColumn: \"_value\"\n )\n |> map(fn: (r) => ({ r with _value: (r.tx / r.time_since_update) * -8.0 }))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> keep(columns: [\"_time\", \"_value\"])\n |> rename(columns: {_value: \"tx_rate\"})\n", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "eth0.tx" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "network", "tags": [], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "$interface network interface", "transformations": [], "type": "timeseries" }, { "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/total.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-red", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 2 } ] }, { "matcher": { "id": "byRegexp", "options": "/used.*/" }, "properties": [ { "id": "custom.fillOpacity", "value": 30 } ] } ] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 14 }, "id": 8, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "Used", "column": "used", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "$host.memswap", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"memswap\" and\n r._field == \"used\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"used\")\n ", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "memswap", "tags": [] }, { "alias": "Max", "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "$host.memswap", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"memswap\" and\n r._field == \"total\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"total\")\n \n ", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "memswap", "tags": [], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "SWAP", "type": "timeseries" }, { "datasource": "${DS_GLANCES}", "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 15, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 21 }, "id": 10, "links": [], "options": { "legend": { "calcs": [ "mean", "max", "min" ], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "Read", "column": "sda2.read_bytes", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "$host.diskio", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"diskio\" and\n (r._field == \"read_bytes\" or r._field == \"time_since_update\") and\n r.disk_name == \"${disk}\" and\n r.hostname == \"${host}\"\n )\n |> pivot(\n rowKey:[\"_time\"],\n columnKey: [\"_field\"],\n valueColumn: \"_value\"\n )\n |> map(fn: (r) => ({ r with _value: (r.read_bytes / r.time_since_update) }))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> keep(columns: [\"_time\", \"_value\"])\n |> rename(columns: {_value: \"read_rate\"})\n", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "sda2.read_bytes" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "diskio", "tags": [] }, { "alias": "Write", "column": "sda2.write_bytes", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "$host.diskio", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"diskio\" and\n (r._field == \"write_bytes\" or r._field == \"time_since_update\") and\n r.disk_name == \"${disk}\" and\n r.hostname == \"${host}\"\n )\n |> pivot(\n rowKey:[\"_time\"],\n columnKey: [\"_field\"],\n valueColumn: \"_value\"\n )\n |> map(fn: (r) => ({ r with _value: (r.write_bytes / r.time_since_update) * -1.0 }))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> keep(columns: [\"_time\", \"_value\"])\n |> rename(columns: {_value: \"write_rate\"})\n", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "sda2.write_bytes" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "diskio", "tags": [], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "$disk disk IO", "type": "timeseries" }, { "datasource": "${DS_GLANCES}", "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 3, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Max" }, "properties": [ { "id": "color", "value": { "fixedColor": "#BF1B00", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Used" }, "properties": [ { "id": "custom.fillOpacity", "value": 100 }, { "id": "custom.fillOpacity", "value": 80 } ] } ] }, "gridPos": { "h": 7, "w": 10, "x": 12, "y": 21 }, "id": 11, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "targets": [ { "alias": "Used", "column": "\"/.used\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"fs\" and\n r._field == \"used\" and\n r.mnt_point == \"/\" and \n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"used\")\n \n ", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "Max", "column": "\"/.size\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"fs\" and\n r._field == \"size\" and\n r.mnt_point == \"/\" and \n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"size\")\n \n ", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "size" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "timeFrom": null, "timeShift": null, "title": "/ Size", "type": "timeseries" }, { "cacheTimeout": null, "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(71, 212, 59, 0.4)", "value": null }, { "color": "rgba(245, 150, 40, 0.73)", "value": 70 }, { "color": "rgba(225, 40, 40, 0.59)", "value": 90 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 7, "w": 2, "x": 22, "y": 21 }, "id": 16, "interval": null, "links": [], "maxDataPoints": 100, "options": { "colorMode": "background", "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.2.5", "targets": [ { "column": "\"/.percent\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"fs\" and\n r._field == \"percent\" and\n r.mnt_point == \"/\" and \n r.hostname == \"${host}\"\n )\n |> last()\n", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "percent" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "/ used", "type": "stat" }, { "collapsed": false, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 28 }, "id": 33, "panels": [], "title": "Sensors $host", "type": "row" }, { "cards": { "cardPadding": null, "cardRound": null }, "color": { "cardColor": "rgb(255, 0, 0)", "colorScale": "sqrt", "colorScheme": "interpolateReds", "exponent": 1, "min": null, "mode": "opacity" }, "dataFormat": "timeseries", "datasource": "${DS_GLANCES}", "gridPos": { "h": 6, "w": 12, "x": 0, "y": 29 }, "heatmap": {}, "hideZeroBuckets": false, "highlightCards": true, "id": 21, "legend": { "show": false }, "links": [], "reverseYBuckets": false, "targets": [ { "alias": "AmbientTemperature", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "sensors", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"sensors\" and\n r._field == \"value\" and\n r.label == \"Ambient\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"Ambient\")\n \n ", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "label", "operator": "=", "value": "Ambient" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "Ambient temperature", "tooltip": { "show": true, "showHistogram": false }, "type": "heatmap", "xAxis": { "show": true }, "xBucketNumber": null, "xBucketSize": null, "yAxis": { "decimals": null, "format": "celsius", "logBase": 1, "max": null, "min": "0", "show": true, "splitFactor": null }, "yBucketBound": "auto", "yBucketNumber": null, "yBucketSize": null }, { "cards": { "cardPadding": null, "cardRound": null }, "color": { "cardColor": "rgb(255, 0, 0)", "colorScale": "sqrt", "colorScheme": "interpolateOranges", "exponent": 1, "mode": "opacity" }, "dataFormat": "timeseries", "datasource": "${DS_GLANCES}", "gridPos": { "h": 6, "w": 12, "x": 12, "y": 29 }, "heatmap": {}, "hideZeroBuckets": false, "highlightCards": true, "id": 23, "legend": { "show": false }, "links": [], "reverseYBuckets": false, "targets": [ { "alias": "CpuTemperature", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "sensors", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"sensors\" and\n r._field == \"value\" and\n r.label == \"CPU\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"Ambient\")\n \n ", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "label", "operator": "=", "value": "CPU" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "CPU temperature", "tooltip": { "show": true, "showHistogram": false }, "type": "heatmap", "xAxis": { "show": true }, "xBucketNumber": null, "xBucketSize": null, "yAxis": { "decimals": null, "format": "celsius", "logBase": 1, "max": null, "min": "0", "show": true, "splitFactor": null }, "yBucketBound": "auto", "yBucketNumber": null, "yBucketSize": null }, { "collapsed": false, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 35 }, "id": 37, "panels": [], "title": "Containers hosted on $host", "type": "row" }, { "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "cpu_percent" }, "properties": [ { "id": "color", "value": { "fixedColor": "#cca300", "mode": "fixed" } }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "memory_usage" }, "properties": [ { "id": "color", "value": { "fixedColor": "#2f575e", "mode": "fixed" } }, { "id": "unit", "value": "decbytes" }, { "id": "custom.fillOpacity", "value": 36 } ] } ] }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 36 }, "id": 25, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.2.5", "repeat": "container", "repeatDirection": "v", "targets": [ { "alias": "MEM", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "docker", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"docker\" and\n r._field == \"memory_usage\" and\n r.name == \"${container}\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"MEM\")\n \n ", "rawQuery": false, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "memory_usage" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "name", "operator": "=~", "value": "/^$container$/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "CPU%", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "docker", "orderByTime": "ASC", "policy": "default", "query": "from(bucket: \"glances\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"docker\" and\n r._field == \"cpu_percent\" and\n r.name == \"${container}\" and\n r.hostname == \"${host}\"\n )\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"CPU%\")\n \n ", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "cpu_percent" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "name", "operator": "=~", "value": "/^$container$/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "timeFrom": null, "timeShift": null, "title": "$container container", "type": "timeseries" } ], "refresh": "5s", "schemaVersion": 32, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"hostname\",\n predicate: (r) => true,\n start: -1d\n)", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "host", "options": [], "query": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"hostname\",\n predicate: (r) => true,\n start: -1d\n)", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"name\",\n predicate: (r) => true,\n start: -1d\n)", "description": null, "error": null, "hide": 0, "includeAll": true, "label": null, "multi": true, "name": "container", "options": [], "query": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"name\",\n predicate: (r) => true,\n start: -1d\n)", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"interface_name\",\n predicate: (r) => true,\n start: -1d\n)", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "interface", "options": [], "query": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"interface_name\",\n predicate: (r) => true,\n start: -1d\n)", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"disk_name\",\n predicate: (r) => true,\n start: -1d\n)", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "disk", "options": [], "query": "import \"influxdata/influxdb/v1\"\nv1.tagValues(\n bucket: v.bucket,\n tag: \"disk_name\",\n predicate: (r) => true,\n start: -1d\n)", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": { "collapse": false, "enable": true, "notice": false, "now": true, "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "status": "Stable", "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ], "type": "timepicker" }, "timezone": "browser", "title": "Glances For FLUX", "uid": "ESYAe0tnk", "version": 21 }glances-3.4.0.3/conf/glances.conf0000644000175000017500000005100414432156570016416 0ustar epsilonepsilon############################################################################## # Globals Glances parameters ############################################################################## [global] # Stats refresh rate (default is a minimum of 2 seconds) # Can be overwrite by the -t option # It is also possible to overwrite it in each plugin sections refresh=2 # Does Glances should check if a newer version is available on PyPI ? check_update=true # History size (maximum number of values) # Default is 1200 values (~1h with the default refresh rate) history_size=1200 # Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z) #strftime_format="%Y-%m-%d %H:%M:%S %Z" ############################################################################## # User interface ############################################################################## [outputs] # Theme name for the Curses interface: black or white curse_theme=black # Limit the number of processes to display in the WebUI max_processes_display=30 ############################################################################## # plugins ############################################################################## [quicklook] # Set to true to disable a plugin # Note: you can also disable it from the command line (see --disable-plugin ) disable=False # Graphical percentage char used in the terminal user interface (default is |) percentage_char=| # Define CPU, MEM and SWAP thresholds in % cpu_careful=50 cpu_warning=70 cpu_critical=90 mem_careful=50 mem_warning=70 mem_critical=90 swap_careful=50 swap_warning=70 swap_critical=90 [system] # This plugin display the first line in the Glances UI with: # Hostname / Operating system name / Architecture information # Set to true to disable a plugin disable=False # Default refresh rate is 60 seconds #refresh=60 [cpu] disable=False # See https://scoutapm.com/blog/slow_server_flow_chart # # I/O wait percentage should be lower than 1/# (# = Logical CPU cores) # Leave commented to just use the default config: # Careful=1/#*100-20% / Warning=1/#*100-10% / Critical=1/#*100 #iowait_careful=30 #iowait_warning=40 #iowait_critical=50 # # Total % is 100 - idle total_careful=65 total_warning=75 total_critical=85 total_log=True # # Default values if not defined: 50/70/90 (except for iowait) user_careful=50 user_warning=70 user_critical=90 user_log=False #user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert # system_careful=50 system_warning=70 system_critical=90 system_log=False # steal_careful=50 steal_warning=70 steal_critical=90 #steal_log=True # # Context switch limit (core / second) # Leave commented to just use the default config (critical is 50000*# (Logical CPU cores) #ctx_switches_careful=10000 #ctx_switches_warning=12000 #ctx_switches_critical=14000 [percpu] disable=False # Define CPU thresholds in % # Default values if not defined: 50/70/90 user_careful=50 user_warning=70 user_critical=90 iowait_careful=50 iowait_warning=70 iowait_critical=90 system_careful=50 system_warning=70 system_critical=90 [gpu] disable=False # Default processor values if not defined: 50/70/90 proc_careful=50 proc_warning=70 proc_critical=90 # Default memory values if not defined: 50/70/90 mem_careful=50 mem_warning=70 mem_critical=90 [mem] disable=False # Define RAM thresholds in % # Default values if not defined: 50/70/90 careful=50 #careful_action_repeat=echo {{percent}} >> /tmp/memory.alert warning=70 critical=90 [memswap] disable=False # Define SWAP thresholds in % # Default values if not defined: 50/70/90 careful=50 warning=70 critical=90 [load] disable=False # Define LOAD thresholds # Value * number of cores # Default values if not defined: 0.7/1.0/5.0 per number of cores # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages # http://www.linuxjournal.com/article/9001 careful=0.7 warning=1.0 critical=5.0 #log=False [network] disable=False # Default bitrate thresholds in % of the network interface speed # Default values if not defined: 70/80/90 rx_careful=70 rx_warning=80 rx_critical=90 tx_careful=70 tx_warning=80 tx_critical=90 # Define the list of hidden network interfaces (comma-separated regexp) #hide=docker.*,lo # Define the list of wireless network interfaces to be show (comma-separated) #show=docker.* # WLAN 0 alias #wlan0_alias=Wireless # It is possible to overwrite the bitrate thresholds per interface # WLAN 0 Default limits (in bits per second aka bps) for interface bitrate #wlan0_rx_careful=4000000 #wlan0_rx_warning=5000000 #wlan0_rx_critical=6000000 #wlan0_rx_log=True #wlan0_tx_careful=700000 #wlan0_tx_warning=900000 #wlan0_tx_critical=1000000 #wlan0_tx_log=True [ip] disable=False public_refresh_interval=300 public_ip_disabled=False # Configuration for the Censys online service # Need to create an aacount: https://censys.io/login censys_url=https://search.censys.io/api # Get your own credential here: https://search.censys.io/account/api # Enter your credential and uncomment the following lines #censys_username= #censys_password= # List of fields to be displayed in user interface (comma separated) censys_fields=location:continent,location:country,autonomous_system:name [connections] # Display additional information about TCP connections # This plugin is disabled by default disable=True # nf_conntrack thresholds in % nf_conntrack_percent_careful=70 nf_conntrack_percent_warning=80 nf_conntrack_percent_critical=90 [wifi] disable=True # Define the list of hidden wireless network interfaces (comma-separated regexp) hide=lo,docker.* # Define the list of wireless network interfaces to be show (comma-separated) #show=docker.* # Define SIGNAL thresholds in db (lower is better...) # Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength careful=-65 warning=-75 critical=-85 [diskio] disable=False # Define the list of hidden disks (comma-separated regexp) #hide=sda2,sda5,loop.* hide=loop.*,/dev/loop.* # Define the list of disks to be show (comma-separated) #show=sda.* # Alias for sda1 #sda1_alias=InternalDisk [fs] disable=False # Define the list of file system to hide (comma-separated regexp) hide=/boot.*,/snap.* # Define the list of file system to show (comma-separated regexp) #show=/,/srv # Define filesystem space thresholds in % # Default values if not defined: 50/70/90 # It is also possible to define per mount point value # Example: /_careful=40 careful=50 warning=70 critical=90 # Allow additional file system types (comma-separated FS type) #allow=shm [irq] # Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html # This plugin is disabled by default disable=True [folders] # Documentation: https://glances.readthedocs.io/en/latest/aoa/folders.html disable=False # Define a folder list to monitor # The list is composed of items (list_#nb <= 10) # An item is defined by: # * path: absolute path # * careful: optional careful threshold (in MB) # * warning: optional warning threshold (in MB) # * critical: optional critical threshold (in MB) # * refresh: interval in second between two refreshes #folder_1_path=/tmp #folder_1_careful=2500 #folder_1_warning=3000 #folder_1_critical=3500 #folder_1_refresh=60 #folder_2_path=/home/nicolargo/Videos #folder_2_warning=17000 #folder_2_critical=20000 #folder_3_path=/nonexisting #folder_4_path=/root [cloud] # Documentation: https://glances.readthedocs.io/en/latest/aoa/cloud.html # This plugin is disabled by default disable=True [raid] # Documentation: https://glances.readthedocs.io/en/latest/aoa/raid.html # This plugin is disabled by default disable=True [smart] # Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html # This plugin is disabled by default disable=True [hddtemp] disable=False # Define hddtemp server IP and port (default is 127.0.0.1 and 7634 (TCP)) host=127.0.0.1 port=7634 [sensors] # Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html disable=False # By default refresh every refresh time * 2 #refresh=6 # Hide some sensors #hide=ambient # Sensors core thresholds (in Celsius...) # Default values are grabbed from the system #temperature_core_careful=60 #temperature_core_warning=70 #temperature_core_critical=80 # Temperatures threshold in °C for hddtemp # Default values if not defined: 45/52/60 temperature_hdd_careful=45 temperature_hdd_warning=52 temperature_hdd_critical=60 # Battery threshold in % battery_careful=80 battery_warning=90 battery_critical=95 # Sensors alias #temp1_alias=Motherboard 0 #temp2_alias=Motherboard 1 #core 0_temperature_core_alias=CPU Core 0 temp #core 0_fans_speed_alias=CPU Core 0 fan #or #core 0_alias=CPU Core 0 #core 1_alias=CPU Core 1 [processcount] disable=False # If you want to change the refresh rate of the processing list, please uncomment: #refresh=10 [processlist] disable=False # Sort key: if not defined, the sort is automatically done by Glances (recommended) # Should be one of the following: # cpu_percent, memory_percent, io_counters, name, cpu_times, username #sort_key=memory_percent # Define CPU/MEM (per process) thresholds in % # Default values if not defined: 50/70/90 cpu_careful=50 cpu_warning=70 cpu_critical=90 mem_careful=50 mem_warning=70 mem_critical=90 # # Nice priorities range from -20 to 19. # Configure nice levels using a comma separated list. # # Nice: Example 1, non-zero is warning (default behavior) nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 # # Nice: Example 2, low priority processes escalate from careful to critical #nice_careful=1,2,3,4,5,6,7,8,9 #nice_warning=10,11,12,13,14 #nice_critical=15,16,17,18,19 [ports] disable=False # Interval in second between two scans # Ports scanner plugin configuration refresh=30 # Set the default timeout (in second) for a scan (can be overwritten in the scan list) timeout=3 # If port_default_gateway is True, add the default gateway on top of the scan list port_default_gateway=True # # Define the scan list (1 < x < 255) # port_x_host (name or IP) is mandatory # port_x_port (TCP port number) is optional (if not set, use ICMP) # port_x_description is optional (if not set, define to host:port) # port_x_timeout is optional and overwrite the default timeout value # port_x_rtt_warning is optional and defines the warning threshold in ms # #port_1_host=192.168.0.1 #port_1_port=80 #port_1_description=Home Box #port_1_timeout=1 #port_2_host=www.free.fr #port_2_description=My ISP #port_3_host=www.google.com #port_3_description=Internet ICMP #port_3_rtt_warning=1000 #port_4_description=Internet Web #port_4_host=www.google.com #port_4_port=80 #port_4_rtt_warning=1000 # # Define Web (URL) monitoring list (1 < x < 255) # web_x_url is the URL to monitor (example: http://my.site.com/folder) # web_x_description is optional (if not set, define to URL) # web_x_timeout is optional and overwrite the default timeout value # web_x_rtt_warning is optional and defines the warning respond time in ms (approximately) # #web_1_url=https://blog.nicolargo.com #web_1_description=My Blog #web_1_rtt_warning=3000 #web_2_url=https://github.com #web_3_url=http://www.google.fr #web_3_description=Google Fr #web_4_url=https://blog.nicolargo.com/nonexist #web_4_description=Intranet [containers] disable=False # Only show specific containers (comma separated list of container name or regular expression) # Comment this line to display all containers (default configuration) #show=telegraf # Hide some containers (comma separated list of container name or regular expression) # Comment this line to display all containers (default configuration) #hide=telegraf # Define the maximum docker size name (default is 20 chars) max_name_size=20 #cpu_careful=50 # Thresholds for CPU and MEM (in %) #cpu_warning=70 #cpu_critical=90 #mem_careful=20 #mem_warning=50 #mem_critical=70 # # Per container thresholds #containername_cpu_careful=10 #containername_cpu_warning=20 #containername_cpu_critical=30 # # By default, Glances only display running containers # Set the following key to True to display all containers all=False # Define Podman sock #podman_sock=unix:///run/user/1000/podman/podman.sock [amps] # AMPs configuration are defined in the bottom of this file disable=False ############################################################################## # Client/server ############################################################################## [serverlist] # Define the static servers list #server_1_name=localhost #server_1_alias=My local PC #server_1_port=61209 #server_2_name=localhost #server_2_port=61235 #server_3_name=192.168.0.17 #server_3_alias=Another PC on my network #server_3_port=61209 #server_4_name=pasbon #server_4_port=61237 [passwords] # Define the passwords list related to the [serverlist] section # Syntax: host=password # Where: host is the hostname # password is the clear password # Additionally (and optionally) a default password could be defined #localhost=abc #default=defaultpassword # # Define the path of the local '.pwd' file (default is system one) #local_password_path=~/.config/glances ############################################################################## # Exports ############################################################################## [graph] # Configuration for the --export graph option # Set the path where the graph (.svg files) will be created # Can be overwrite by the --graph-path command line option path=/tmp # It is possible to generate the graphs automatically by setting the # generate_every to a non zero value corresponding to the seconds between # two generation. Set it to 0 to disable graph auto generation. generate_every=60 # See following configuration keys definitions in the Pygal lib documentation # http://pygal.org/en/stable/documentation/index.html width=800 height=600 style=DarkStyle [influxdb] # !!! # Will be DEPRECATED in future release. # Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x) # !!! # Configuration for the --export influxdb option # https://influxdb.com/ host=localhost port=8086 protocol=http user=root password=root db=glances # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` [influxdb2] # Configuration for the --export influxdb2 option # https://influxdb.com/ host=localhost port=8086 protocol=http org=nicolargo bucket=glances token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA== # Set the interval between two exports (in seconds) # If the interval is set to 0, the Glances refresh time is used (default behavor) #interval=0 # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` [cassandra] # Configuration for the --export cassandra option # Also works for the ScyllaDB # https://influxdb.com/ or http://www.scylladb.com/ host=localhost port=9042 protocol_version=3 keyspace=glances replication_factor=2 # If not define, table name is set to host key table=localhost # If not define, username and password will not be used #username=cassandra #password=password [opentsdb] # Configuration for the --export opentsdb option # http://opentsdb.net/ host=localhost port=4242 #prefix=glances #tags=foo:bar,spam:eggs [statsd] # Configuration for the --export statsd option # https://github.com/etsy/statsd host=localhost port=8125 #prefix=glances [elasticsearch] # Configuration for the --export elasticsearch option # Data are available via the ES RESTful API. ex: URL//cpu # https://www.elastic.co scheme=http host=localhost port=9200 index=glances [riemann] # Configuration for the --export riemann option # http://riemann.io host=localhost port=5555 [rabbitmq] # Configuration for the --export rabbitmq option host=localhost port=5672 user=guest password=guest queue=glances_queue #protocol=amqps [mqtt] # Configuration for the --export mqtt option host=localhost port=8883 tls=false user=guest password=guest topic=glances topic_structure=per-metric [couchdb] # Configuration for the --export couchdb option # https://www.couchdb.org host=localhost port=5984 db=glances # user and password are optional (comment if not configured on the server side) # If they are used, then the https protocol will be used #user=root #password=root [mongodb] # Configuration for the --export mongodb option # https://www.mongodb.com host=localhost port=27017 db=glances user=root password=example [kafka] # Configuration for the --export kafka option # http://kafka.apache.org/ host=localhost port=9092 topic=glances #compression=gzip # Tags will be added for all events #tags=foo:bar,spam:eggs # You can also use dynamic values #tags=hostname:`hostname -f` [zeromq] # Configuration for the --export zeromq option # http://www.zeromq.org # Use * to bind on all interfaces host=* port=5678 # Glances envelopes the stats in a publish message with two frames: # - First frame containing the following prefix (STRING) # - Second frame with the Glances plugin name (STRING) # - Third frame with the Glances plugin stats (JSON) prefix=G [prometheus] # Configuration for the --export prometheus option # https://prometheus.io # Create a Prometheus exporter listening on localhost:9091 (default configuration) # Metric are exporter using the following name: # __{labelkey:labelvalue} # Note: You should add this exporter to your Prometheus server configuration: # scrape_configs: # - job_name: 'glances_exporter' # scrape_interval: 5s # static_configs: # - targets: ['localhost:9091'] # # Labels will be added for all measurements (default is src:glances) # labels=foo:bar,spam:eggs # You can also use dynamic values # labels=system:`uname -s` # host=localhost port=9091 #prefix=glances labels=src:glances [restful] # Configuration for the --export restful option # Example, export to http://localhost:6789/ host=localhost port=6789 protocol=http path=/ [graphite] # Configuration for the --export graphite option # https://graphiteapp.org/ host=localhost port=2003 # Prefix will be added for all measurement name prefix=glances # System name added between the prefix and the stats # By default, system_name = FQDN #system_name=mycomputer ############################################################################## # AMPS # * enable: Enable (true) or disable (false) the AMP # * regex: Regular expression to filter the process(es) # * refresh: The AMP is executed every refresh seconds # * one_line: (optional) Force (if true) the AMP to be displayed in one line # * command: (optional) command to execute when the process is detected (thk to the regex) # * countmin: (optional) minimal number of processes # A warning will be displayed if number of process < count # * countmax: (optional) maximum number of processes # A warning will be displayed if number of process > count # * : Others variables can be defined and used in the AMP script ############################################################################## [amp_dropbox] # Use the default AMP (no dedicated AMP Python script) # Check if the Dropbox daemon is running # Every 3 seconds, display the 'dropbox status' command line enable=false regex=.*dropbox.* refresh=3 one_line=false command=dropbox status countmin=1 [amp_python] # Use the default AMP (no dedicated AMP Python script) # Monitor all the Python scripts # Alert if more than 20 Python scripts are running enable=false regex=.*python.* refresh=3 countmax=20 [amp_conntrack] # Use comma separated for multiple commands (no space around the comma) # If the regex key is not defined, the AMP will be executed every refresh second # and the process count will not be displayed (countmin and countmax will be ignore) enable=false refresh=30 one_line=false command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max [amp_nginx] # Use the NGinx AMP # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) enable=false regex=\/usr\/sbin\/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status [amp_systemd] # Use the Systemd AMP enable=false regex=\/lib\/systemd\/systemd refresh=30 one_line=true systemctl_cmd=/bin/systemctl --plain [amp_systemv] # Use the Systemv AMP enable=false regex=\/sbin\/init refresh=30 one_line=true service_cmd=/usr/bin/service --status-all glances-3.4.0.3/conf/glances-grafana-influxql.json0000644000175000017500000016554114432156570021713 0ustar epsilonepsilon{ "__inputs": [ { "name": "DS_GLANCES", "label": "glances", "description": "", "type": "datasource", "pluginId": "influxdb", "pluginName": "InfluxDB" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "7.5.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "" }, { "type": "panel", "id": "heatmap", "name": "Heatmap", "version": "" }, { "type": "datasource", "id": "influxdb", "name": "InfluxDB", "version": "1.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "" }, { "type": "panel", "id": "text", "name": "Text", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "gnetId": null, "graphTooltip": 0, "id": null, "iteration": 1622127318980, "links": [], "panels": [ { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 6, "w": 2, "x": 0, "y": 0 }, "id": 5, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "", "targets": [ { "column": "cpucore", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"cpucore\") FROM \"$host.load\" WHERE $timeFilter GROUP BY time($interval)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "cpucore" ], "type": "field" }, { "params": [], "type": "max" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "thresholds": "", "title": "Core", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "annotate": { "enable": false }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 1, "fillGradient": 0, "grid": { "max": null, "min": null }, "gridPos": { "h": 6, "w": 20, "x": 2, "y": 0 }, "hiddenSeries": false, "id": 4, "interactive": true, "legend": { "alignAsTable": true, "avg": true, "current": false, "max": true, "min": true, "rightSide": true, "show": true, "total": false, "values": true }, "legend_counts": true, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "resolution": 100, "scale": 1, "seriesOverrides": [], "spaceLength": 10, "spyable": true, "stack": true, "steppedLine": false, "targets": [ { "alias": "1min", "column": "min1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"min1\") FROM \"$host.load\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "min1" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "randomWalk('random walk')" }, { "alias": "5mins", "column": "min5", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"min5\") FROM \"$host.load\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "min5" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" }, { "alias": "15mins", "column": "min15", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "load", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"min15\") FROM \"$host.load\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "C", "resultFormat": "time_series", "select": [ [ { "params": [ "min15" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "load", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "timezone": "browser", "title": "Load", "tooltip": { "query_as_alias": true, "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 6, "w": 2, "x": 22, "y": 0 }, "id": 18, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "processcount", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"total\") FROM \"$host.processcount\" WHERE $timeFilter GROUP BY time($interval)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "last" } ] ], "series": "processcount", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "thresholds": "", "title": "Processes", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 0, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 6 }, "hiddenSeries": false, "id": 6, "legend": { "avg": true, "current": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "User", "column": "user", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"user\") FROM \"$host.cpu\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "user" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "System", "column": "system", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"system\") FROM \"$host.cpu\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "system" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" }, { "alias": "IoWait", "column": "iowait", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "cpu", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"iowait\") FROM \"$host.cpu\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "C", "resultFormat": "time_series", "select": [ [ { "params": [ "iowait" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "cpu", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "CPU (%)", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percent", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": { "Max": "#BF1B00" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 0, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 6 }, "hiddenSeries": false, "id": 7, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "Used", "column": "used", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "mem", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"used\") FROM \"mem\" WHERE (\"hostname\" =~ /^$host$/) AND $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "mem", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "Max", "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "mem", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"total\") FROM \"mem\" WHERE $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": false, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "mem", "tags": [ { "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "MEM", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:2371", "format": "bytes", "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:2372", "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 3, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 13 }, "hiddenSeries": false, "id": 9, "legend": { "avg": true, "current": false, "max": true, "min": true, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Tx", "yaxis": 1 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "In", "column": "enp0s25.rx", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "interval": "", "measurement": "$host.network", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"rx\")/mean(\"time_since_update\")*8 FROM \"network\" WHERE (\"hostname\" =~ /^$host$/) AND (\"interface_name\" =~ /^$interface$/) AND $timeFilter GROUP BY time($interval) fill(none)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "eth0.rx" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "network", "tags": [] }, { "alias": "Out", "column": "eth0.tx*-1", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "$host.network", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"tx\")/mean(\"time_since_update\")*-8 FROM \"network\" WHERE (\"hostname\" =~ /^$host$/) AND (\"interface_name\" =~ /^$interface$/) AND $timeFilter GROUP BY time($interval) fill(none)", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "eth0.tx" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "network", "tags": [], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "$interface network interface", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:2467", "format": "bps", "logBase": 1, "max": null, "min": null, "show": true }, { "$$hashKey": "object:2468", "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": { "Max": "#BF1B00" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 0, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 13 }, "hiddenSeries": false, "id": 8, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "Used", "column": "used", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "$host.memswap", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"used\") FROM \"memswap\" WHERE (\"hostname\" =~ /^$host$/) AND $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "memswap", "tags": [] }, { "alias": "Max", "column": "total", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" } ], "measurement": "$host.memswap", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"total\") FROM \"memswap\" WHERE (\"hostname\" =~ /^$host$/) AND $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "total" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "memswap", "tags": [], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "SWAP", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:2690", "format": "bytes", "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:2691", "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 0, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 20 }, "hiddenSeries": false, "id": 10, "legend": { "avg": true, "current": false, "max": true, "min": true, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Write", "yaxis": 2 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "Read", "column": "sda2.read_bytes", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "$host.diskio", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"read_bytes\")/mean(\"time_since_update\") FROM \"diskio\" WHERE (\"hostname\" =~ /^$host$/) AND (\"disk_name\" =~ /^$disk$/) AND $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "sda2.read_bytes" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "diskio", "tags": [] }, { "alias": "Write", "column": "sda2.write_bytes", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "$host.diskio", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"write_bytes\")/mean(\"time_since_update\") FROM \"diskio\" WHERE (\"hostname\" =~ /^$host$/) AND (\"disk_name\" =~ /^$disk$/) AND $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": true, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "sda2.write_bytes" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "diskio", "tags": [], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "$disk disk IO", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:2782", "format": "bytes", "logBase": 1, "max": null, "min": null, "show": true }, { "$$hashKey": "object:2783", "format": "bytes", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": { "Max": "#BF1B00" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "fill": 0, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 8, "x": 12, "y": 20 }, "hiddenSeries": false, "id": 11, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 3, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "$$hashKey": "object:3095", "alias": "Used", "fill": 10, "fillGradient": 8 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "Used", "column": "\"/.used\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"/.used\") FROM \"$host.fs\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "used" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "Max", "column": "\"/.size\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"/.size\") FROM \"$host.fs\" WHERE $timeFilter GROUP BY time($interval) fill(null)", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "size" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ], "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "/ Size", "tooltip": { "shared": false, "sort": 0, "value_type": "cumulative" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:2891", "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true }, { "$$hashKey": "object:2892", "format": "short", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "rgba(71, 212, 59, 0.4)", "rgba(245, 150, 40, 0.73)", "rgba(225, 40, 40, 0.59)" ], "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "format": "percent", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 7, "w": 2, "x": 20, "y": 20 }, "id": 16, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(193, 71, 31)", "show": true }, "tableColumn": "", "targets": [ { "column": "\"/.percent\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"/.percent\") FROM \"$host.fs\" WHERE $timeFilter GROUP BY time($interval)", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "percent" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "thresholds": "70,90", "title": "/ used", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "rgba(71, 212, 59, 0.4)", "rgba(245, 150, 40, 0.73)", "rgba(225, 40, 40, 0.59)" ], "datasource": "${DS_GLANCES}", "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "format": "percent", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 7, "w": 2, "x": 22, "y": 20 }, "id": 17, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(193, 71, 31)", "show": true }, "tableColumn": "", "targets": [ { "column": "\"/home.percent\"", "dsType": "influxdb", "function": "mean", "groupBy": [ { "params": [ "auto" ], "type": "time" } ], "measurement": "fs", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"percent\") FROM \"fs\" WHERE (\"hostname\" =~ /^$host$/) AND (\"mnt_point\" = '/boot') AND $timeFilter GROUP BY time($__interval)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "percent" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "series": "fs", "tags": [ { "key": "mnt_point", "operator": "=", "value": "/boot" } ] } ], "thresholds": "70,90", "title": "/boot used", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "datasource": null, "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 3, "w": 24, "x": 0, "y": 27 }, "id": 22, "links": [], "options": { "content": "", "mode": "markdown" }, "pluginVersion": "7.5.3", "title": "Sensors", "type": "text" }, { "cards": { "cardPadding": null, "cardRound": null }, "color": { "cardColor": "rgb(255, 0, 0)", "colorScale": "sqrt", "colorScheme": "interpolateReds", "exponent": 1, "min": null, "mode": "opacity" }, "dataFormat": "timeseries", "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 30 }, "heatmap": {}, "hideZeroBuckets": false, "highlightCards": true, "id": 21, "legend": { "show": false }, "links": [], "reverseYBuckets": false, "targets": [ { "alias": "AmbientTemperature", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "sensors", "orderByTime": "ASC", "policy": "default", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "label", "operator": "=", "value": "Ambient" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "Ambiant temperature", "tooltip": { "show": true, "showHistogram": false }, "type": "heatmap", "xAxis": { "show": true }, "xBucketNumber": null, "xBucketSize": null, "yAxis": { "decimals": null, "format": "celsius", "logBase": 1, "max": null, "min": "0", "show": true, "splitFactor": null }, "yBucketBound": "auto", "yBucketNumber": null, "yBucketSize": null }, { "cards": { "cardPadding": null, "cardRound": null }, "color": { "cardColor": "rgb(255, 0, 0)", "colorScale": "sqrt", "colorScheme": "interpolateOranges", "exponent": 1, "mode": "opacity" }, "dataFormat": "timeseries", "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 30 }, "heatmap": {}, "hideZeroBuckets": false, "highlightCards": true, "id": 23, "legend": { "show": false }, "links": [], "reverseYBuckets": false, "targets": [ { "alias": "CpuTemperature", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "sensors", "orderByTime": "ASC", "policy": "default", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "label", "operator": "=", "value": "CPU" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "title": "CPU temperature", "tooltip": { "show": true, "showHistogram": false }, "type": "heatmap", "xAxis": { "show": true }, "xBucketNumber": null, "xBucketSize": null, "yAxis": { "decimals": null, "format": "celsius", "logBase": 1, "max": null, "min": "0", "show": true, "splitFactor": null }, "yBucketBound": "auto", "yBucketNumber": null, "yBucketSize": null }, { "datasource": null, "editable": true, "error": false, "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 3, "w": 24, "x": 0, "y": 36 }, "id": 13, "links": [], "options": { "content": "", "mode": "markdown" }, "pluginVersion": "7.5.3", "style": {}, "title": "Containers", "type": "text" }, { "aliasColors": { "$host.docker.mean": "#ba43a9", "CPU%": "#cca300", "MEM": "#2f575e" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "${DS_GLANCES}", "fieldConfig": { "defaults": {}, "overrides": [ { "matcher": { "id": "byName", "options": "MEM" }, "properties": [ { "id": "unit", "value": "decbytes" } ] } ] }, "fill": 0, "fillGradient": 0, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 39 }, "hiddenSeries": false, "id": 25, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "7.5.3", "pointradius": 5, "points": false, "renderer": "flot", "repeat": "container", "repeatDirection": "v", "seriesOverrides": [ { "$$hashKey": "object:3517", "alias": "MEM", "yaxis": 2 }, { "$$hashKey": "object:3518", "alias": "MEM", "fill": 10, "fillGradient": 8, "steppedLine": true, "zindex": -3 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "CPU%", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "docker", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"cpu_percent\") FROM \"$host.docker\" WHERE $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "cpu_percent" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "name", "operator": "=~", "value": "/^$container$/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] }, { "alias": "MEM", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "hide": false, "measurement": "docker", "orderByTime": "ASC", "policy": "default", "query": "SELECT mean(\"cpu_percent\") FROM \"$host.docker\" WHERE $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": false, "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "memory_usage" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "name", "operator": "=~", "value": "/^$container$/" }, { "condition": "AND", "key": "hostname", "operator": "=~", "value": "/^$host$/" } ] } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "$container container", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "$$hashKey": "object:3541", "format": "short", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "$$hashKey": "object:3542", "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 27, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "show tag values with key=\"hostname\"", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "host", "options": [], "query": "show tag values with key=\"hostname\"", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "show tag values with key=\"name\"", "description": null, "error": null, "hide": 0, "includeAll": true, "label": null, "multi": true, "name": "container", "options": [], "query": "show tag values with key=\"name\"", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "show tag values with key=\"interface_name\"", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "interface", "options": [], "query": "show tag values with key=\"interface_name\"", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "${DS_GLANCES}", "definition": "show tag values with key=\"disk_name\"", "description": null, "error": null, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "disk", "options": [], "query": "show tag values with key=\"disk_name\"", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": { "collapse": false, "enable": true, "notice": false, "now": true, "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "status": "Stable", "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ], "type": "timepicker" }, "timezone": "browser", "title": "Glances", "uid": "000000002", "version": 4 } glances-3.4.0.3/.reuse/0000755000175000017500000000000014432156570014407 5ustar epsilonepsilonglances-3.4.0.3/.reuse/dep50000644000175000017500000000046414432156570015173 0ustar epsilonepsilonFormat: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Glances Upstream-Contact: Nicolas Hennion Source: https://github.com/nicolargo/glances # Sample paragraph, commented out: # # Files: src/* # Copyright: $YEAR $NAME <$CONTACT> # License: ... glances-3.4.0.3/unitest-xmlrpc.py0000755000175000017500000001272214432156570016565 0ustar epsilonepsilon#!/usr/bin/env python # -*- coding: utf-8 -*- # # Glances - An eye on your system # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Glances unitary tests suite for the XML-RPC API.""" import json import shlex import subprocess import time import unittest import os from glances import __version__ from glances.compat import ServerProxy SERVER_PORT = 61234 URL = "http://localhost:%s" % SERVER_PORT pid = None # Init the XML-RPC client client = ServerProxy(URL) # Unitest class # ============== print('XML-RPC API unitary tests for Glances %s' % __version__) class TestGlances(unittest.TestCase): """Test Glances class.""" def setUp(self): """The function is called *every time* before test_*.""" print('\n' + '=' * 78) def test_000_start_server(self): """Start the Glances Web Server.""" global pid print('INFO: [TEST_000] Start the Glances Web Server') if os.path.isfile("./venv/bin/python"): cmdline = "./venv/bin/python" else: cmdline = "python" cmdline += " -m glances -B localhost -s -p %s" % SERVER_PORT print("Run the Glances Server on port %s" % SERVER_PORT) args = shlex.split(cmdline) pid = subprocess.Popen(args) print("Please wait...") time.sleep(1) self.assertTrue(pid is not None) def test_001_all(self): """All.""" method = "getAll()" print('INFO: [TEST_001] Connection test') print("XML-RPC request: %s" % method) req = json.loads(client.getAll()) self.assertIsInstance(req, dict) def test_002_pluginslist(self): """Plugins list.""" method = "getAllPlugins()" print('INFO: [TEST_002] Get plugins list') print("XML-RPC request: %s" % method) req = json.loads(client.getAllPlugins()) self.assertIsInstance(req, list) def test_003_system(self): """System.""" method = "getSystem()" print('INFO: [TEST_003] Method: %s' % method) req = json.loads(client.getSystem()) self.assertIsInstance(req, dict) def test_004_cpu(self): """CPU.""" method = "getCpu(), getPerCpu(), getLoad() and getCore()" print('INFO: [TEST_004] Method: %s' % method) req = json.loads(client.getCpu()) self.assertIsInstance(req, dict) req = json.loads(client.getPerCpu()) self.assertIsInstance(req, list) req = json.loads(client.getLoad()) self.assertIsInstance(req, dict) req = json.loads(client.getCore()) self.assertIsInstance(req, dict) def test_005_mem(self): """MEM.""" method = "getMem() and getMemSwap()" print('INFO: [TEST_005] Method: %s' % method) req = json.loads(client.getMem()) self.assertIsInstance(req, dict) req = json.loads(client.getMemSwap()) self.assertIsInstance(req, dict) def test_006_net(self): """NETWORK.""" method = "getNetwork()" print('INFO: [TEST_006] Method: %s' % method) req = json.loads(client.getNetwork()) self.assertIsInstance(req, list) def test_007_disk(self): """DISK.""" method = "getFs(), getFolders() and getDiskIO()" print('INFO: [TEST_007] Method: %s' % method) req = json.loads(client.getFs()) self.assertIsInstance(req, list) req = json.loads(client.getFolders()) self.assertIsInstance(req, list) req = json.loads(client.getDiskIO()) self.assertIsInstance(req, list) def test_008_sensors(self): """SENSORS.""" method = "getSensors()" print('INFO: [TEST_008] Method: %s' % method) req = json.loads(client.getSensors()) self.assertIsInstance(req, list) def test_009_process(self): """PROCESS.""" method = "getProcessCount() and getProcessList()" print('INFO: [TEST_009] Method: %s' % method) req = json.loads(client.getProcessCount()) self.assertIsInstance(req, dict) req = json.loads(client.getProcessList()) self.assertIsInstance(req, list) def test_010_all_limits(self): """All limits.""" method = "getAllLimits()" print('INFO: [TEST_010] Method: %s' % method) req = json.loads(client.getAllLimits()) self.assertIsInstance(req, dict) self.assertIsInstance(req['cpu'], dict) def test_011_all_views(self): """All views.""" method = "getAllViews()" print('INFO: [TEST_011] Method: %s' % method) req = json.loads(client.getAllViews()) self.assertIsInstance(req, dict) self.assertIsInstance(req['cpu'], dict) def test_012_irq(self): """IRQS""" method = "getIrqs()" print('INFO: [TEST_012] Method: %s' % method) req = json.loads(client.getIrq()) self.assertIsInstance(req, list) def test_013_plugin_views(self): """Plugin views.""" method = "getViewsCpu()" print('INFO: [TEST_013] Method: %s' % method) req = json.loads(client.getViewsCpu()) self.assertIsInstance(req, dict) def test_999_stop_server(self): """Stop the Glances Web Server.""" print('INFO: [TEST_999] Stop the Glances Server') print("Stop the Glances Server") pid.terminate() time.sleep(1) self.assertTrue(True) if __name__ == '__main__': unittest.main() glances-3.4.0.3/unitest-all.sh0000755000175000017500000000012014432156570015777 0ustar epsilonepsilon#!/bin/bash set -ev ./unitest.py && ./unitest-restful.py && ./unitest-xmlrpc.py glances-3.4.0.3/snap/0000755000175000017500000000000014432156570014147 5ustar epsilonepsilonglances-3.4.0.3/snap/snapcraft.yaml0000644000175000017500000000436314432156570017022 0ustar epsilonepsilonname: glances adopt-info: glances summary: Glances an Eye on your system. A top/htop alternative. description: | Glances is a cross-platform monitoring tool which aims to present a maximum of information in a minimum of space through a curses or Web based interface. It can adapt dynamically the displayed information depending on the user interface size. base: core20 grade: stable confinement: strict apps: glances: command: bin/glances-launch $SNAP/bin/glances plugs: - network - system-observe - mount-observe - hardware-observe - log-observe - network-observe - physical-memory-observe - upower-observe - home - network-bind environment: LANG: C.UTF-8 LC_ALL: C.UTF-8 plugs: home-glances-config: interface: personal-files read: - $HOME/.config/glances/glances.conf etc-glances-config: interface: system-files read: - /etc/glances/glances.conf parts: glances: after: - selective-checkout plugin: python source: . # FIXME: Theoretically this also replaces `summary` and `description` # keys, however due to the following bug we still need to keep # them until it is fixed. # https://bugs.launchpad.net/snapcraft/+bug/1813364 parse-info: [setup.py] override-pull: | snapcraftctl pull "$SNAPCRAFT_STAGE"/scriptlets/selective-checkout bottle: plugin: python source: https://github.com/bottlepy/bottle.git source-branch: release-0.12 source-depth: 1 override-build: | mkdir -p $SNAPCRAFT_PART_BUILD/dist cp -r $SNAPCRAFT_PART_BUILD/dist $SNAPCRAFT_PART_INSTALL/bottle-dist organize: bottle-dist: bottle/dist docker: plugin: python source: https://github.com/docker/docker-py.git source-tag: '3.7.3' source-depth: 1 override-build: | mkdir -p $SNAPCRAFT_PART_BUILD/dist cp -r $SNAPCRAFT_PART_BUILD/dist $SNAPCRAFT_PART_INSTALL/docker-dist organize: docker-dist: docker/dist launchers: source: snap/local/launchers plugin: dump organize: '*': bin/ selective-checkout: plugin: nil build-packages: - git stage-snaps: - selective-checkout prime: - -* glances-3.4.0.3/snap/local/0000755000175000017500000000000014432156570015241 5ustar epsilonepsilonglances-3.4.0.3/snap/local/launchers/0000755000175000017500000000000014432156570017225 5ustar epsilonepsilonglances-3.4.0.3/snap/local/launchers/glances-launch0000755000175000017500000000131014432156570022032 0ustar epsilonepsilon#!/usr/bin/env bash # This is the maintenance launcher for the snap, make necessary runtime # environment changes to make the snap work here. You may also insert # security confinement/deprecation/obsoletion notice of the snap here. set \ -o errexit \ -o errtrace \ -o nounset \ -o pipefail # Use user's real home directory for canonical configuration path access HOME="$( getent passwd "${USER}" \ | cut --delimiter=: --fields=6 )" # Use snap's own folder for cache directory declare XDG_CACHE_HOME mkdir \ --parents \ "${SNAP_USER_DATA}"/.cache XDG_CACHE_HOME="${SNAP_USER_DATA}"/.cache export XDG_CACHE_HOME # Finally run the next part of the command chain exec "${@}" glances-3.4.0.3/.coveragerc0000644000175000017500000000105314432156570015326 0ustar epsilonepsilon[report] include = *glances* omit = setup.py glances/outputs/* glances/exports/* glances/compat.py glances/autodiscover.py glances/client_browser.py glances/config.py glances/history.py glances/monitored_list.py glances/outdated.py glances/password*.py glances/snmp.py glances/static_list.py exclude_lines = pragma: no cover if PY3: if __name__ == .__main__.: if sys.platform.startswith except ImportError: raise NotImplementedError if WINDOWS if MACOS if BSD glances-3.4.0.3/webui-requirements.txt0000644000175000017500000000010214432156570017574 0ustar epsilonepsilon# install with base requirements file -r requirements.txt bottle glances-3.4.0.3/unitest-restful.py0000755000175000017500000002043614432156570016745 0ustar epsilonepsilon#!/usr/bin/env python # -*- coding: utf-8 -*- # # Glances - An eye on your system # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Glances unitary tests suite for the RESTful API.""" import shlex import subprocess import time import numbers import unittest import os from glances import __version__ from glances.compat import text_type import requests SERVER_PORT = 61234 API_VERSION = 3 URL = "http://localhost:{}/api/{}".format(SERVER_PORT, API_VERSION) pid = None # Unitest class # ============== print('RESTful API unitary tests for Glances %s' % __version__) class TestGlances(unittest.TestCase): """Test Glances class.""" def setUp(self): """The function is called *every time* before test_*.""" print('\n' + '=' * 78) def http_get(self, url, deflate=False): """Make the request""" if deflate: ret = requests.get(url, stream=True, headers={'Accept-encoding': 'deflate'}) else: ret = requests.get(url, headers={'Accept-encoding': 'identity'}) return ret def test_000_start_server(self): """Start the Glances Web Server.""" global pid print('INFO: [TEST_000] Start the Glances Web Server') if os.path.isfile("./venv/bin/python"): cmdline = "./venv/bin/python" else: cmdline = "python" cmdline += " -m glances -B localhost -w -p %s" % SERVER_PORT print("Run the Glances Web Server on port %s" % SERVER_PORT) args = shlex.split(cmdline) pid = subprocess.Popen(args) print("Please wait 5 seconds...") time.sleep(5) self.assertTrue(pid is not None) def test_001_all(self): """All.""" method = "all" print('INFO: [TEST_001] Get all stats') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) def test_001a_all_deflate(self): """All.""" method = "all" print('INFO: [TEST_001a] Get all stats (with Deflate compression)') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method), deflate=True) self.assertTrue(req.ok) self.assertTrue(req.headers['Content-Encoding'] == 'deflate') def test_002_pluginslist(self): """Plugins list.""" method = "pluginslist" print('INFO: [TEST_002] Plugins list') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), list) self.assertIn('cpu', req.json()) def test_003_plugins(self): """Plugins.""" method = "pluginslist" print('INFO: [TEST_003] Plugins') plist = self.http_get("%s/%s" % (URL, method)) for p in plist.json(): print("HTTP RESTful request: %s/%s" % (URL, p)) req = self.http_get("%s/%s" % (URL, p)) self.assertTrue(req.ok) if p in ('uptime', 'now'): self.assertIsInstance(req.json(), text_type) elif p in ('fs', 'percpu', 'sensors', 'alert', 'processlist', 'diskio', 'hddtemp', 'batpercent', 'network', 'folders', 'amps', 'ports', 'irq', 'wifi', 'gpu'): self.assertIsInstance(req.json(), list) elif p in ('psutilversion', 'help'): pass else: self.assertIsInstance(req.json(), dict) def test_004_items(self): """Items.""" method = "cpu" print('INFO: [TEST_004] Items for the CPU method') ilist = self.http_get("%s/%s" % (URL, method)) for i in ilist.json(): print("HTTP RESTful request: %s/%s/%s" % (URL, method, i)) req = self.http_get("%s/%s/%s" % (URL, method, i)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) print(req.json()[i]) self.assertIsInstance(req.json()[i], numbers.Number) def test_005_values(self): """Values.""" method = "processlist" print('INFO: [TEST_005] Item=Value for the PROCESSLIST method') print("%s/%s/pid/0" % (URL, method)) req = self.http_get("%s/%s/pid/0" % (URL, method)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) def test_006_all_limits(self): """All limits.""" method = "all/limits" print('INFO: [TEST_006] Get all limits') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) def test_007_all_views(self): """All views.""" method = "all/views" print('INFO: [TEST_007] Get all views') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) def test_008_plugins_limits(self): """Plugins limits.""" method = "pluginslist" print('INFO: [TEST_008] Plugins limits') plist = self.http_get("%s/%s" % (URL, method)) for p in plist.json(): print("HTTP RESTful request: %s/%s/limits" % (URL, p)) req = self.http_get("%s/%s/limits" % (URL, p)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) def test_009_plugins_views(self): """Plugins views.""" method = "pluginslist" print('INFO: [TEST_009] Plugins views') plist = self.http_get("%s/%s" % (URL, method)) for p in plist.json(): print("HTTP RESTful request: %s/%s/views" % (URL, p)) req = self.http_get("%s/%s/views" % (URL, p)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) def test_010_history(self): """History.""" method = "history" print('INFO: [TEST_010] History') print("HTTP RESTful request: %s/cpu/%s" % (URL, method)) req = self.http_get("%s/cpu/%s" % (URL, method)) self.assertIsInstance(req.json(), dict) self.assertIsInstance(req.json()['user'], list) self.assertTrue(len(req.json()['user']) > 0) print("HTTP RESTful request: %s/cpu/%s/3" % (URL, method)) req = self.http_get("%s/cpu/%s/3" % (URL, method)) self.assertIsInstance(req.json(), dict) self.assertIsInstance(req.json()['user'], list) self.assertTrue(len(req.json()['user']) > 1) print("HTTP RESTful request: %s/cpu/system/%s" % (URL, method)) req = self.http_get("%s/cpu/system/%s" % (URL, method)) self.assertIsInstance(req.json(), dict) self.assertIsInstance(req.json()['system'], list) self.assertTrue(len(req.json()['system']) > 0) print("HTTP RESTful request: %s/cpu/system/%s/3" % (URL, method)) req = self.http_get("%s/cpu/system/%s/3" % (URL, method)) self.assertIsInstance(req.json(), dict) self.assertIsInstance(req.json()['system'], list) self.assertTrue(len(req.json()['system']) > 1) def test_011_issue1401(self): """Check issue #1401.""" method = "network/interface_name" print('INFO: [TEST_011] Issue #1401') req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) self.assertIsInstance(req.json(), dict) self.assertIsInstance(req.json()['interface_name'], list) def test_012_status(self): """Check status endpoint.""" method = "status" print('INFO: [TEST_012] Status') print("HTTP RESTful request: %s/%s" % (URL, method)) req = self.http_get("%s/%s" % (URL, method)) self.assertTrue(req.ok) self.assertEqual(req.text, "Active") def test_999_stop_server(self): """Stop the Glances Web Server.""" print('INFO: [TEST_999] Stop the Glances Web Server') print("Stop the Glances Web Server") pid.terminate() time.sleep(1) self.assertTrue(True) if __name__ == '__main__': unittest.main() glances-3.4.0.3/pylint.cfg0000644000175000017500000001667614432156570015226 0ustar epsilonepsilon[MASTER] # Specify a configuration file. #rcfile= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Profiled execution. profile=no # Add files or directories to the blacklist. They should be base names, not # paths. ignore=CVS # Pickle collected data for later comparisons. persistent=yes # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [MESSAGES CONTROL] # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time. #enable= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where # it should appear only once). disable=C,no-name-in-module [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html. You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. output-format=text # Include message's id in output include-ids=no # Include symbolic ids of messages in output symbols=no # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Tells whether to display a full report or only the messages reports=yes # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectively contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (RP0004). comment=no [VARIABLES] # Tells whether we should check for unused import in __init__ files. init-import=no # A regular expression matching the beginning of the name of dummy variables # (i.e. not used). dummy-variables-rgx=_|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins=_ [TYPECHECK] # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of classes names for which member attributes should not be checked # (useful for classes with attributes dynamically set). ignored-classes=SQLObject # When zope mode is activated, add a predefined set of Zope acquired attributes # to generated-members. zope=no # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E0201 when accessed. Python regular # expressions are accepted. generated-members=REQUEST,acl_users,aq_parent [FORMAT] # Maximum number of characters on a single line. max-line-length=80 # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME,XXX,TODO [BASIC] # Required attributes for module, separated by a comma required-attributes= # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=i,j,k,ex,Run,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # Regular expression which should only match functions or classes name which do # not require a docstring no-docstring-rgx=__.*__ [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # Ignore imports when computing similarities. ignore-imports=no [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,string,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report RP0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= [CLASSES] # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=mcs [DESIGN] # Maximum number of arguments for function / method max-args=5 # Argument names that match this expression will be ignored. Default to name # with leading underscore ignored-argument-names=_.* # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branchs=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=2 # Maximum number of public methods for a class (see R0904). max-public-methods=20 [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" overgeneral-exceptions=Exception glances-3.4.0.3/AUTHORS0000644000175000017500000000325214432156570014260 0ustar epsilonepsilon========== Developers ========== Nicolas Hennion (aka) Nicolargo http://blog.nicolargo.com https://twitter.com/nicolargo https://github.com/nicolargo nicolashennion@gmail.com PGP Fingerprint: A0D9 628F 5A83 A879 48EA B1FE BA43 C11F 2C8B 4347 PGP Public key: gpg --keyserver pgp.mit.edu --recv-keys 0xba43c11f2c8b4347 Alessio Sergi (aka) Al3hex (thanks you for the great job on this project) https://twitter.com/al3hex https://github.com/asergi Floran Brutel (aka) notFloran (maintainer of the Web User Interface) https://github.com/notFloran Brandon Philips (aka) Philips http://ifup.org/ https://github.com/philips Jon Renner (aka) Jrenner https://github.com/jrenner Maxime Desbrus (aka) Desbma https://github.com/desbma Nicolas Hart (aka) NclsHart (for the Web user interface) https://github.com/nclsHart Sylvain Mouquet (aka) SylvainMouquet (for the Web user interface) http://github.com/sylvainmouquet Erik Eriksson (aka) Molobrakos (for the MQTT plugin and various PR) https://www.linkedin.com/in/error-errorsson/ ========= Packagers ========= 林博仁(Buo-ren Lin) Lin-Buo-Ren for the Snap package https://lin-buo-ren.github.io/ https://snapcraft.io/glances/releases Daniel Echeverry and Sebastien Badia for the Debian package https://tracker.debian.org/pkg/glances Philip Lacroix and Nicolas Kovacs for the Slackware (SlackBuild) package gasol.wu@gmail.com for the FreeBSD port Frederic Aoustin (https://github.com/fraoustin) and Nicolas Bourges (installer) for the Windows port Aljaž Srebrnič for the MacPorts package http://www.macports.org/ports.php?by=name&substr=glances John Kirkham for the conda package (at conda-forge) https://github.com/conda-forge/glances-feedstock glances-3.4.0.3/sonar-project.properties0000644000175000017500000000111114432156570020104 0ustar epsilonepsilon# Required metadata sonar.projectKey=glances sonar.projectName=Glances sonar.projectVersion=2.7 # Path to the parent source code directory. # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. # Since SonarQube 4.2, this property is optional if sonar.modules is set. # If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file. sonar.sources=glances # Language sonar.language=py # Encoding of the source code sonar.sourceEncoding=UTF-8 # Additional parameters #sonar.my.property=value glances-3.4.0.3/SECURITY.md0000644000175000017500000000275314432156570015006 0ustar epsilonepsilon# Security Policy ## Supported Versions Use this section to tell people about which versions of your project are currently being supported with security updates. | Version | Support security updates | | ------- | ------------------------ | | 3.x | :white_check_mark: | | < 3.0 | :x: | ## Reporting a Vulnerability If there are any vulnerabilities in {{cookiecutter.project_name}}, don't hesitate to report them. 1. Describe the vulnerability. * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) * Full paths of source file(s) related to the manifestation of the issue * The location of the affected source code (tag/branch/commit or direct URL) * Any special configuration required to reproduce the issue * Step-by-step instructions to reproduce the issue * Proof-of-concept or exploit code (if possible) * Impact of the issue, including how an attacker might exploit the issue 2. If you have a fix, that is most welcome -- please attach or summarize it in your message! 3. We will evaluate the vulnerability and, if necessary, release a fix or mitigating steps to address it. We will contact you to let you know the outcome, and will credit you in the report. 4. Please do not disclose the vulnerability publicly until a fix is released! Once we have either a) published a fix, or b) declined to address the vulnerability for whatever reason, you are free to publicly disclose it. glances-3.4.0.3/NEWS.rst0000644000175000017500000021253014432156570014517 0ustar epsilonepsilon============================================================================== Glances changelog ============================================================================== =============== Version 3.4.0.3 =============== Bugs corrected: * Add glances binary to '/usr/local/bin' + Update ENV PATH to include '/venv/bin' in Dockerfiles #2419 * No more threshold display in the WebUI cpu/mem and memswap plugins #2420 =============== Version 3.4.0.2 =============== Bugs corrected: * Cannot start Glances 3.4.0.1 on Windows 10: SIGHUP not defined #2408 * Influxdb2 export not working #2407 =============== Version 3.4.0.1 =============== Bug corrected: * 3.4.0 crash on startupwith minimal deps #2401 =============== Version 3.4.0 =============== Enhancements: * Enhance process "extended stats" display (in Curses interface) #2225 _You can now *pin* a specific process to the top of the process list_ * Improve Glances start time by disabling Docker and Podman version getter - Related to #1985 * Customizable InfluxDB2 export interval #2348 * Improve kill signal management #2194 * Display a critical error message if Glances is ran with both webserver and rpcserver mode * Refactor the Cloud plugin, disable it by default in the default configuration file - Related to #2279 * Correct clear-text logging of sensitive information (security alert #29) * Use of a broken or weak cryptographic hashing algorithm (SHA256) on password storage #2175 Bug corrected: * Correct issue (error message) concerning the Cloud plugin - Related to #2392 * InfluxDB2 export doesn't process folders correctly - missing key #2327 * Index error when displaying programs on MacOS #2360 * Dissociate 2 sensors with exactly the same names #2280 * All times displayed in UTC - Container not using TZ/localtime (Docker) #2278 * It is not possible to return API data for a particular mount point (FS plugin) #1162 Documentation and CI: * chg: Dockerfile - structured & cleaner build process #2386 * Ubuntu is back as additional Docker images. Alpine stays the default one. Related to #2185 * Improve Makefile amd docker-compose to support Podman and GPU * Workaround to pin urlib3<2.0 - Related to #2392 * Error while generating the documentation (ModuleNotFoundError: No module named 'glances') #2391 * Update Flamegraph (memory profiling) * Improve template for issue report and feature request * Parameters in the VIRT column #2343 * Graph generation documentation is not clear #2336 * docs: Docker - include tag details * Add global architecture diagram (Excalidraw) * Links to documents in sample glances.conf are not valid. #2271 * Add semgrep support * Smartmontools missing from full docker image #2262 * Improve documentation regarding regexp in configuration file * Improve documentation about the [ip] plugin #2251 Cyber security update: * All libs have been updated to the latest version Full roadmap here: https://github.com/nicolargo/glances/milestone/62?closed=1 Refactor the Docker images factory, from now, Alpine and Ubuntu images will be provided (nicolargo/glances): - *latest-full* for a full Alpine Glances image (latest release) with all dependencies - *latest* for a basic Alpine Glances (latest release) version with minimal dependencies (Bottle and Docker) - *dev* for a basic Alpine Glances image (based on development branch) with all dependencies (Warning: may be instable) - *ubuntu-latest-full* for a full Ubuntu Glances image (latest release) with all dependencies - *ubuntu-latest* for a basic Ubuntu Glances (latest release) version with minimal dependencies (Bottle and Docker) - *ubuntu-dev* for a basic Ubuntu Glances image (based on development branch) with all dependencies (Warning: may be instable) Contributors for this version: * Nicolargo * RazCrimson: a very special thanks to @RazCrimson for his huge work on this version ! * Bharath Vignesh J K * Raz Crimson * fr4nc0is * Florian Calvet * Ali Erdinç Köroğlu * Jose Vicente Nunez * Rui Chen * Ryan Horiguchi * mfridge * snyk-bot =============== Version 3.3.1.1 =============== Hard patch on the master branch. Bug corrected: * "ModuleNotFoundError: No module named 'ujson'" #2246 * Remove surrounding quotes for quoted command arguments #2247 (related to #2239) =============== Version 3.3.1 =============== Enhancements: * Minor change on the help screen * Refactor some loop in the processes function * Replace json by ujson #2201 Bug corrected: * Unable to see docker related information #2180 * CSV export dependent on sort order for docker container cpu #2156 * Error when process list is displayed in Programs mode #2209 * Console formatting permanently messed up when other text printed #2211 * API GET uptime returns formatted string, not seconds as the doc says #2158 * Glances UI is breaking for multiline commands #2189 Documentation and CI: * Add unitary test for memory profiling * Update memory profile chart * Add run-docker-ubuntu-* in Makefile * The open-web-browser option was missing dashes #2219 * Correct regexp in glances.conf file example * What is CW from network #2222 (related to discussion #2221) * Change Glances repology URL * Add example for the date format * Correct Flake8 configuration file * Drop UT for Python 3.5 and 3.6 (no more available in Ubuntu 22.04) * Correct unitary test with Python 3.5 * Update Makefile with comments * Update Python minimal requirement for py3nvlm * Update security policy (user can open private issue directly in Github) * Add a simple run script. Entry point for IDE debuger Cyber security update: * Security alert on ujson < 5.4 * Merge pull request #2243 from nicolargo/renovate/nvidia-cuda-12.x * Merge pull request #2244 from nicolargo/renovate/crazy-max-ghaction-docker-meta-4.x * Merge pull request #2228 from nicolargo/renovate/zeroconf-0.x * Merge pull request #2242 from nicolargo/renovate/crazy-max-ghaction-docker-meta-4.x * Merge pull request #2239 from mfridge/action-command-split * Merge pull request #2165 from nicolargo/renovate/zeroconf-0.x * Merge pull request #2199 from nicolargo/renovate/alpine-3.x * Merge pull request #2202 from chncaption/oscs_fix_cdr0ts8au51t49so8c6g * Bump loader-utils from 2.0.0 to 2.0.3 in /glances/outputs/static #2187 - Update Web lib Contributors for this version: * Nicolargo * renovate[bot] * chncaption * fkwong * *mfridge And also a big thanks to @RazCrimson (https://github.com/RazCrimson) for the support to the Glances community ! =============== Version 3.3.0.4 =============== Refactor the Docker images factory, from now, only Alpine image wll be provided. The following Docker images (nicolargo/glances) are availables: - *latest-full* for a full Alpine Glances image (latest release) with all dependencies - *latest* for a basic Alpine Glances (latest release) version with minimal dependencies (Bottle and Docker) - *dev* for a basic Alpine Glances image (based on development branch) with all dependencies (Warning: may be instable) =============== Version 3.3.0.2 =============== Bug corrected: * Password files in same configuration dir in effect #2143 * Fail to load config file on Python 3.10 #2176 =============== Version 3.3.0.1 =============== Just a version to rebuild the Docker images. =============== Version 3.3.0 =============== Enhancements: * Migration from AngularJS to Angular/React/Vue #2100 (many thanks to @fr4nc0is) * Improve the IP module with a link to Censys #2105 * Add the public IP information to the WebUI #2105 * Add an option to show a configurable clock/time module to display #2150 * Add sort information on Docker plugin (console mode). Related to #2138 * Password files in same configuration dir in effect #2143 * If the container name is long, then display the start, not the end - Related to #1732 * Make the Web UI same than Console for CPU plugin * [WINDOWS] Reorganise CPU stats display #2131 * Remove the static exportable_plugins list from glances_export.py #1556 * Limiting data exported for economic storage #1443 Bug corrected: * glances.conf FS hide not applying #1666 * AMP: regex with special chars #2152 * fix(help-screen): add missing shortcuts and columnize algorithmically #2135 * Correct issue with the regexp filter (use fullmatch instead of match) * Errors when running Glances as web service #1702 * Apply alias to Duplicate sensor name #1686 * Make the hide function in sensors section compliant with lower/upercase #1590 * Web UI truncates the days part of CPU time counter of the process list #2108 * Correct alignement issue with the diskio plugin (Console UI) Documentation and CI: * Refactor Docker file CI * Add Codespell to the CI pipeline #2148 * Please add docker-compose example and document example. #2151 * [DOC] Glances failed to start and some other issues - BSD #2106 * [REQUEST Docker image] Output log to stdout #2128 (for debian) * Fix code scanning alert - Clear-text logging of sensitive information #2124 * Improve makefile (with online documentation) * buildx failed with: ERROR: failed to solve: python:3.10-slim-buster: no match for platform in manifest #2120 * [Update docs] Can I export only the fields I need in csv report? #2113 * Windows Python 3 installation fails on dependency package "future" #2109 Contributors for this version: * fr4nc0is : a very special thanks to @fr4nc0is for his huge work on the Glances v3.3.0 WebUI !!! * Kostis Anagnostopoulos * Kian-Meng Ang * dependabot[bot] * matthewaaronthacker * and your servant Nicolargo =============== Version 3.2.7 =============== Enhancements: * Config to disable all plugins by default (or enable an exclusive list) #2089 * Keybind(s) for modifying nice level #2081 * [WEBUI] Reorganize help screen #2037 * Add a Json stdout option #2060 * Improve error message when export error occurs * Improve error message when MQTT error occurs * Change the way core are displayed * Remove unused key in the process list * Refactor top menu of the curse interface * Improve Irix display for the load plugin Bug corrected: * In the sensor plugin thresholds in the configuration file should overwrite system ones #2058 * Drive names truncated in Web UI #2055 * Correct issue with CPU label Documentation and CI: * Improve makefile help #2078 * Add quote to the update command line (already ok for the installation). Related to #2073 * Make Glances (almost) compliant with REUSE #2042 * Update README for Debian package users * Update documentation for Docker * Update docs for new shortcut * Disable Pyright on the Git actions pipeline * Refactor comments * Except datutil import error * Another dep issue solved in the Alpine Docker + issue in the outdated method Contributors for this version: * Nicolargo * Sylvain MOUQUET * FastThenLeft * Jiajie Chen * dbrennand * ewuerger =============== Version 3.2.6 =============== Enhancement requests: * Create a Show option in the configuration file to only show some stats #2052 * Use glances.conf file inside docker-compose folder for Docker images * Optionally disable public ip #2030 * Update public ip at intervals #2029 Bug corrected: * Unitary tests should run loopback interface #2051 * Add python-datutil dep for Focker plugin #2045 * Add venv to list of .PHONY in Makefile #2043 * Glances API Documentation displays non valid json #2036 A big thanks to @RazCrimson for his contribution ! Thanks for others contributors: * Steven Conaway * aekoroglu =============== Version 3.2.5 =============== Enhancement requests: * Add a Accumulated per program function to the Glances process list needs test new feature plugin/ps #2015 * Including battery and AC adapter health in Glances enhancement new feature #1049 * Display uptime of a docker container enhancement plugin/docker #2004 * Add a code formatter enhancement #1964 Bugs corrected: * Threading.Event.isSet is deprecated in Python 3.10 #2017 * Fix code scanning alert - Clear-text logging of sensitive information security #2006 * The gpu temperature unit are displayed incorrectly in web ui bug #2002 * Doc for 'alert' Restfull/JSON API response documentation #1994 * Show the spinning state of a disk documentation #1993 * Web server status check endpoint enhancement #1988 * --time parameter being ignored for client/server mode bug #1978 * Amp with pipe do not work documentation #1976 * glances_ip.py plugin relies on low rating / malicious site domain bug security #1975 * "N" command freezes/unfreezes the current time instead of show/hide bug #1974 * Missing commands in help "h" screen enhancement needs contributor #1973 * Grafana dashboards not displayed with influxdb2 enhancement needs contributor #1960 * Glances reports different amounts of used memory than free -m or top documentation #1924 * Missing: Help command doesn't have info on TCP Connections bug documentation enhancement needs contributor #1675 * Docstring convention documentation enhancement #940 Thanks for the bug report and the patch: @RazCrimson, @Karthikeyan Singaravelan, @Moldavite, @ledwards =============== Version 3.2.4.1 =============== Bugs corrected: * Missing packaging dependency when using pip install #1955 =============== Version 3.2.4 =============== Bugs corrected: * Failure to start on Apple M1 Max #1939 * Influxdb2 via SSL #1934 * Update WebUI (security patch). Thanks to @notFloran. * Switch from black <> white theme with the '9' hotkey - Related to issue #976 * Fix: Docker plugin - Invalid IO stats with Arch Linux #1945 * Bug Fix: Docker plugin - Network stats not being displayed #1944 * Fix Grafana CPU temperature panel #1954 * is_disabled name fix #1949 * Fix tipo in documentation #1932 * distutils is deprecated in Python 3.10 #1923 * Separate battery percentages #1920 * Update docs and correct make docs-server target in Makefile Enhancement requests: * Improve --issue by displaying the second update iteration and not the first one. More relevant * Improve --issue option with Python version and paths * Correct an issue on idle display * Refactor Mem + MemSwap Curse * Refactor CPU Curses code Contributors for this version: * Nicolargo * RazCrimson * Floran Brutel * H4ckerxx44 * Mohamad Mansour * Néfix Estrada * Zameer Manji =============== Version 3.2.3.1 =============== Patch to correct issue (regression) #1922: * Incorrect processes disk IO stats #1922 * DSM 6 docker error crash /sys/class/power_supply #1921 =============== Version 3.2.3 =============== Bugs corrected: * Docker container monitoring only show half command? #1912 * Processor name getting cut off #1917 * batinfo not in docker image (and in requirements files...) ? #1915 * Glances don't send hostname (tag) to influxdb2 #1913 * Public IP address doesn't display anymore #1910 * Debian Docker images broken with version 3.2.2 #1905 Enhancement requests: * Make the process sort list configurable through the command line #1903 * [WebUI] truncates network name #1699 =============== Version 3.2.2 =============== Bugs corrected: * [3.2.0/3.2.1] keybinding not working anymore #1904 * InfluxDB/InfluxDB2 Export object has no attribute hostname #1899 Documentation: The "make docs" generate RestFull/API documentation file. =============== Version 3.2.1 =============== Bugs corrected: * Glances 3.2.0 and influxdb export - Missing network data bug #1893 Enhancement requests: * Security audit - B411 enhancement (Monkey patch XML RPC Lib) #1025 * Also search glances.conf file in /usr/share/doc/glances/glances.conf #1862 =============== Version 3.2.0 =============== This release is a major version (but minor number because the API did not change). It focus on *CPU consumption*. I use `Flame profiling https://github.com/nicolargo/glances/wiki/Glances-FlameGraph`_ and code optimization to *reduce CPU consumption from 20% to 50%* depending on your system. Enhancement and development requests: * Improve CPU consumption - Make the refresh rate configurable per plugin #1870 - Add caching for processing username and cmdline - Correct and improve refresh time method - Set refresh rate for global CPU percent - Set the default refresh rate of system stats to 60 seconds - Default refresh time for sensors is refresh rate * 2 - Improve history perf - Change main curses loop - Improve Docker client connection - Update Flame profiling * Get system sensors temperatures thresholds #1864 * Filter data exported from Docker plugin * Make the Docker API connection timeout configurable * Add --issue to Github issue template * Add release-note in the Makefile * Add some comments in cpu_percent * Add some comments to the processlist.py * Set minimal version for PSUtil to 5.3.0 * Add comment to default glances.conf file * Improve code quality #820 * Update WebUI for security vuln Bugs corrected: * Quit from help should return to main screen, not exit #1874 * AttributeError: 'NoneType' object has no attribute 'current' #1875 * Merge pull request #1873 from metayan/fix-history-add * Correct filter * Correct Flake8 issue in plugins * Pressing Q to get rid of irq not working #1792 * Spelling correction in docs #1886 * Starting an alias with a number causes a crash #1885 * Network interfaces not applying in web UI #1884 * Docker containers information missing with Docker 20.10.x #1878 * Get system sensors temperatures thresholds #1864 Contibutors for this version: * Nicolargo * Markus Pöschl * Clifford W. Hansen * Blake * Yan =============== Version 3.1.7 =============== Enhancements and bug corrected: * Security audit - B411 #1025 (by nicolargo) * GPU temperature not shown in webview #1849 (by nicolargo) * Remove shell=True for actions (following Bandit issue report) #1851 (by nicolargo) * Replace Travis by Github action #1850 (by nicolargo) * '/api/3/processlist/pid/3936'use this api can't get right info,all messy code #1828 (by nicolargo) * Refactor the way importants stats are displayed #1826 (by nicolargo) * Re-apply the Add hide option to sensors plugin #1596 PR (by nicolargo) * Smart plugin error while start glances as root #1806 (by nicolargo) * Plugin quicklook takes more than one seconds to update #1820 (by nicolargo) * Replace Pystache by Chevron 2/2 See #1817 (by nicolargo) * Doc. No SMART screenshot. #1799 (by nicolargo) * Update docs following PR #1798 (by nicolargo) Contributors for this version: - Nicolargo - Deosrc - dependabot[bot] - Michael J. Cohen - Rui Chen - Stefan Eßer - Tuux =============== Version 3.1.6.2 =============== Bugs corrected: * Remove bad merge for a non tested feature (see https://github.com/nicolargo/glances/issues/1787#issuecomment-774682954) Version 3.1.6.1 =============== Bugs corrected: * Glances crash after installing module for shown GPU information on Windows 10 #1800 Version 3.1.6 ============= Enhancements and new features: * Kill a process from the Curses interface #1444 * Manual refresh on F5 in the Curses interface #1753 * Hide function in sensors section #1590 * Enhancement Request: .conf parameter for AMP #1690 * Password for Web/Browser mode #1674 * Unable to connect to Influxdb 2.0 #1776 * ci: fix release process and improve build speeds #1782 * Cache cpuinfo output #1700 * sort by clicking improvements and bug #1578 * Allow embedded AMP python script to be placed in a configurable location #1734 * Add attributes to stdout/stdout-csv plugins #1733 * Do not shorten container names #1723 Bugs corrected: * Version tag for docker image packaging #1754 * Unusual characters in cmdline cause lines to disappear and corrupt the display #1692 * UnicodeDecodeError on any command with a utf8 character in its name #1676 * Docker image is not up to date install #1662 * Add option to set the strftime format #1785 * fix: docker dev build contains all optional requirements #1779 * GPU information is incomplete via web #1697 * [WebUI] Fix display of null values for GPU plugin #1773 * crash on startup on Illumos when no swap is configured #1767 * Glances crashes with 2 GPUS bug #1683 * [Feature Request] Filter Docker containers#1748 * Error with IP Plugin : object has no attribute #1528 * docker-compose #1760 * [WebUI] Fix sort by disk io #1759 * Connection to MQTT server failst #1705 * Misleading image tag latest-arm needs contributor packaging #1419 * Docker nicolargo/glances:latest missing arm builds? #1746 * Alpine image is broken packaging #1744 * RIP Alpine? needs contributor packaging #1741 * Manpage improvement documentation #1743 * Make build reproducible packaging #1740 * Automated multiarch builds for docker #1716 * web ui of glances is not coming #1721 * fixing command in json.rst #1724 * Fix container rss value #1722 * Alpine Image is broken needs test packaging #1720 * Fix gpu plugin to handle multiple gpus with different reporting capabilities bug #1634 Version 3.1.5 ============= Enhancements and new features: * Enhancement: RSS for containers enhancement #1694 * exports: support rabbitmq amqps enhancement #1687 * Quick Look missing CPU Infos enhancement #1685 * Add amqps protocol support for rabbitmq export #1688 * Select host in Grafana json #1684 * Value for free disk space is counterintuative on ext file systems enhancement #644 Bugs corrected: * Can't start server: unexpected keyword argument 'address' bug enhancement #1693 * class AmpsList method _build_amps_list() Windows fail (glances/amps_list.py) bug #1689 * Fix grammar in sensors documentation #1681 * Reflect "used percent" user disk space for [fs] alert #1680 * Bug: [fs] plugin needs to reflect user disk space usage needs test #1658 * Fixed formatting on FS example #1673 * Missing temperature documentation #1664 * Wiki page for starting as a service documentation #1661 * How to start glances with --username option on syetemd? documentation #1657 * tests using /etc/glances/glances.conf from already installed version bug #1654 * Unittests: Use sys.executable instead of hardcoding the python interpreter #1655 * Glances should not phone home install #1646 * Add lighttpd reverse proxy config to the wiki documentation #1643 * Undefined name 'i' in plugins/glances_gpu.py bug #1635 Version 3.1.4 ============= Enhancements and new features: * FS filtering can be done on device name documentation enhancement #1606 * Feature request: Include hostname in all (e.g. kafka) exports #1594 * Threading.isAlive was removed in Python 3.9. Use is_alive. #1585 * log file under public/shared tmp/ folders must not have deterministic name #1575 * Install / Systemd Debian documentation #1560 * Display load as percentage when Irix mode is disable #1554 * [WebUI] Add a new TCP connections status plugin new feature #1547 * Make processes.sort_key configurable enhancement #1536 * NVIDIA GPU temperature #1523 * Feature request: HDD S.M.A.R.T. #1288 Bugs corrected: * Glances 3.1.3: when no network interface with Public address #1615 * NameError: name 'logger' is not defined #1602 * Disk IO stats missing after upgrade to 5.5.x kernel #1601 * Glances don't want to run on Crostini (LXC Container, Debian 10, python 3.7.3) #1600 * Kafka key name needs to be bytes #1593 * Can't start glances with glances --export mqtt #1581 * [WEBUI] AMP plugins is not displayed correctly in the Web Interface #1574 * Unhandled AttributeError when no config files found #1569 * Glances writing lots of Docker Error message in logs file enhancement #1561 * GPU stats not showing on mobile web view bug needs test #1555 * KeyError: b'Rss:' in memory_maps #1551 * CPU usage is always 100% #1550 * IP plugin still exporting data when disabled #1544 * Quicklook plugin not working on Systemd #1537 Version 3.1.3 ============= Enhancements and new features: * Add a new TCP connections status plugin enhancement #1526 * Add --enable-plugin option from the command line Bugs corrected: * Fix custom refresh time in the web UI #1548 by notFloran * Fix issue in WebUI with empty docker stats #1546 by notFloran * Glances fails without network interface bug #1535 * Disable option in the configuration file is now take into account Others: * Sensors plugin is disable by default (high CPU consumption on some Liux distribution). Version 3.1.2 ============= Enhancements and new features: * Make CSV export append instead of replace #1525 * HDDTEMP config IP and Port #1508 * [Feature Request] Option in config to change character used to display percentage in Quicklook #1508 Bugs corrected: * Cannot restart glances with --export influxdb after update to 3.1.1 bug #1530 * ip plugin empty interface bug #1509 * Glances Snap doesn't run on Orange Pi Zero running Ubuntu Core 16 bug #1517 * Error with IP Plugin : object has no attribute bug #1528 * repair the problem that when running 'glances --stdout-csv amps' #1520 * Possible typo in glances_influxdb.py #1514 Others: * In debug mode (-d) all duration (init, update are now logged). Grep duration in log file. Version 3.1.1 ============= Enhancements and new features: * Please add some sparklines! #1446 * Add Load Average (similar to Linux) on Windows #344 * Add authprovider for cassandra export (thanks to @EmilienMottet) #1395 * Curses's browser server list sorting added (thanks to @limfreee) #1396 * ElasticSearch: add date to index, unbreak object push (thanks to @genevera) #1438 * Performance issue with large folder #1491 * Can't connect to influxdb with https enabled #1497 Bugs corrected: * Fix Cassandra table name export #1402 * 500 Internal Server Error /api/3/network/interface_name #1401 * Connection to MQTT server failed : getaddrinfo() argument 2 must be integer or string #1450 * `l` keypress (hide alert log) not working after some time #1449 * Too less data using prometheus exporter #1462 * Getting an error when running with prometheus exporter #1469 * Stack trace when starts Glances on CentOS #1470 * UnicodeEncodeError: 'ascii' codec can't encode character u'\u25cf' - Raspbian stretch #1483 * Prometheus integration broken with latest prometheus_client #1397 * "sorted by ?" is displayed when setting the sort criterion to "USER" #1407 * IP plugin displays incorrect subnet mask #1417 * Glances PsUtil ValueError on IoCounter with TASK kernel options #1440 * Per CPU in Web UI have some display issues. #1494 * Fan speed and voltages section? #1398 Others: * Documentation is unclear how to get Docker information #1386 * Add 'all' target to the Pip install (install all dependencies) * Allow comma separated commands in AMP Version 3.1 =========== Enhancements and new features: * Add a CSV output format to the STDOUT output mode #1363 * Feature request: HDD S.M.A.R.T. reports (thanks to @tnibert) #1288 * Sort docker stats #1276 * Prohibit some plug-in data from being exported to influxdb #1368 * Disable plugin from Glances configuration file #1378 * Curses-browser's server list paging added (thanks to @limfreee) #1385 * Client Browser's thread management added (thanks to @limfreee) #1391 Bugs corrected: * TypeError: '<' not supported between instances of 'float' and 'str' #1315 * GPU plugin not exported to influxdb #1333 * Crash after running fine for several hours #1335 * Timezone listed doesn’t match system timezone, outputs wrong time #1337 * Compare issue with Process.cpu_times() #1339 * ERROR -- Can not grab extended stats (invalid attr name 'num_fds') #1351 * Action on port/web plugins is not working #1358 * Support for monochrome (serial) terminals e.g. vt220 #1362 * TypeError on opening (Wifi plugin) #1373 * Some field name are incorrect in CSV export #1372 * Standard output misbehaviour (need to flush) #1376 * Create an option to set the username to use in Web or RPC Server mode #1381 * Missing kernel task names when the webui is switched to long process names #1371 * Drive name with special characters causes crash #1383 * Cannot get stats in Cloud plugin (404) #1384 Others: * Add Docker documentation (thanks to @rgarrigue) * Refactor Glances logs (now called Glances events) * "chart" extra dep replace by "graph" #1389 Version 3.0.2 ============= Bug corrected: * Glances IO Errorno 22 - Invalid argument #1326 Version 3.0.1 ============= Bug corrected: * AMPs error if no output are provided by the system call #1314 Version 3.0 =========== See the release note here: https://github.com/nicolargo/glances/wiki/Glances-3.0-Release-Note Enhancements and new features: * Make the left side bar width dynamic in the Curse UI #1177 * Add threads number in the process list #1259 * A way to have only REST API available and disable WEB GUI access #1149 * Refactor graph export plugin (& replace Matplolib by Pygal) #697 * Docker module doesn't export details about stopped containers #1152 * Add dynamic fields in all sections of the configuration file #1204 * Make plugins and export CLI option dynamical #1173 * Add a light mode for the console UI #1165 * Refactor InfluxDB (API is now stable) #1166 * Add deflate compression support to the RestAPI #1182 * Add a code of conduct for Glances project's participants #1211 * Context switches bottleneck identification #1212 * Take advantage of the psutil issue #1025 (Add process_iter(attrs, ad_value)) #1105 * Nice Process Priority Configuration #1218 * Display debug message if dep lib is not found #1224 * Add a new output mode to stdout #1168 * Huge refactor of the WebUI packaging thanks to @spike008t #1239 * Add time zone to the current time #1249 * Use HTTPs URLs to check public IP address #1253 * Add labels support to Promotheus exporter #1255 * Overlap in Web UI when monitoring a machine with 16 cpu threads #1265 * Support for exporting data to a MQTT server #1305 One more thing ! A new Grafana Dash is available with: * Network interface variable * Disk variable * Container CPU Bugs corrected: * Crash in the Wifi plugin on my Laptop #1151 * Failed to connect to bus: No such file or directory #1156 * glances_plugin.py has a problem with specific docker output #1160 * Key error 'address' in the IP plugin #1176 * NameError: name 'mode' is not defined in case of interrupt shortly after starting the server mode #1175 * Crash on startup: KeyError: 'hz_actual_raw' on Raspbian 9.1 #1170 * Add missing mount-observe and system-observe interfaces #1179 * OS specific arguments should be documented and reported #1180 * 'ascii' codec can't encode character u'\U0001f4a9' in position 4: ordinal not in range(128) #1185 * KeyError: 'memory_info' on stats sum #1188 * Electron/Atom processes displayed wrong in process list #1192 * Another encoding issue... With both Python 2 and Python 3 #1197 * Glances do not exit when eating 'q' #1207 * FreeBSD blackhole bug #1202 * Glances crashes when mountpoint with non ASCII characters exists #1201 * [WEB UI] Minor issue on the Web UI #1240 * [Glances 3.0 RC1] Client/Server is broken #1244 * Fixing horizontal scrolling #1248 * Stats updated during export (thread issue) #1250 * Glances --browser crashed when more than 40 glances servers on screen 78x45 #1256 * OSX - Python 3 and empty percent and res #1251 * Crashes when influxdb option set #1260 * AMP for kernel process is not working #1261 * Arch linux package (2.11.1-2) psutil (v5.4.1): RuntimeWarning: ignoring OSError #1203 * Glances crash with extended process stats #1283 * Terminal window stuck at the last accessed *protected* server #1275 * Glances shows mdadm RAID0 as degraded when chunksize=128k and the array isn't degraded. #1299 * Never starts in a server on Google Cloud and FreeBSD #1292 Backward-incompatible changes: * Support for Python 3.3 has been dropped (EOL 2017-09-29) * Support for psutil < 5.3.0 has been dropped * Minimum supported Docker API version is now 1.21 (Docker plugins) * Support for InfluxDB < 0.9 is deprecated (InfluxDB exporter) * Zeroconf lib should be pinned to 0.19.1 for Python 2.x * --disable- no longer available (use --disable-plugin ) * --export- no longer available (use --export ) News command line options: --disable-webui Disable the WebUI (only RESTful API will respond) --enable-light Enable the light mode for the UI interface --modules-list Display plugins and exporters list --disable-plugin plugin1,plugin2 Disable a list of comma separated plugins --export exporter1,exporter2 Export stats to a comma separated exporters --stdout plugin1,plugin2.attribute Display stats to stdout News configuration keys in the glances.conf file: Graph: [graph] # Configuration for the --export graph option # Set the path where the graph (.svg files) will be created # Can be overwrite by the --graph-path command line option path=/tmp # It is possible to generate the graphs automatically by setting the # generate_every to a non zero value corresponding to the seconds between # two generation. Set it to 0 to disable graph auto generation. generate_every=60 # See following configuration keys definitions in the Pygal lib documentation # http://pygal.org/en/stable/documentation/index.html width=800 height=600 style=DarkStyle Processes list Nice value: [processlist] # Nice priorities range from -20 to 19. # Configure nice levels using a comma separated list. # # Nice: Example 1, non-zero is warning (default behavior) nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 # # Nice: Example 2, low priority processes escalate from careful to critical #nice_careful=1,2,3,4,5,6,7,8,9 #nice_warning=10,11,12,13,14 #nice_critical=15,16,17,18,19 Docker plugin (related to #1152) [docker] # By default, Glances only display running containers # Set the following key to True to display all containers all=False All configuration file values (related to #1204) [influxdb] # It is possible to use dynamic system command prefix=`hostname` tags=foo:bar,spam:eggs,system:`uname -a` ============================================================================== Glances Version 2 ============================================================================== Version 2.11.1 ============== * [WebUI] Sensors not showing on Web (issue #1142) * Client and Quiet mode don't work together (issue #1139) Version 2.11 ============ Enhancements and new features: * New export plugin: standard and configurable RESTful exporter (issue #1129) * Add a JSON export module (issue #1130) * [WIP] Refactoring of the WebUI Bugs corrected: * Installing GPU plugin crashes entire Glances (issue #1102) * Potential memory leak in Windows WebUI (issue #1056) * glances_network `OSError: [Errno 19] No such device` (issue #1106) * GPU plugin. : ... not JSON serializable"> (issue #1112) * PermissionError on macOS (issue #1120) * Can't move up or down in glances --browser (issue #1113) * Unable to give aliases to or hide network interfaces and disks (issue #1126) * `UnicodeDecodeError` on mountpoints with non-breaking spaces (issue #1128) Installation: * Create a Snap of Glances (issue #1101) Version 2.10 ============ Enhancements and new features: * New plugin to scan remote Web sites (URL) (issue #981) * Add trends in the Curses interface (issue #1077) * Add new repeat function to the action (issue #952) * Use -> and <- arrows keys to switch between processing sort (issue #1075) * Refactor __init__ and main scripts (issue #1050) * [WebUI] Improve WebUI for Windows 10 (issue #1052) Bugs corrected: * StatsD export prefix option is ignored (issue #1074) * Some FS and LAN metrics fail to export correctly to StatsD (issue #1068) * Problem with non breaking space in file system name (issue #1065) * TypeError: string indices must be integers (Network plugin) (issue #1054) * No Offline status for timeouted ports? (issue #1084) * When exporting, uptime values loop after 1 day (issue #1092) Installation: * Create a package.sh script to generate .DEB, .RPM and others... (issue #722) ==> https://github.com/nicolargo/glancesautopkg * OSX: can't python setup.py install due to python 3.5 constraint (issue #1064) Version 2.9.1 ============= Bugs corrected: * Glances PerCPU issues with Curses UI on Android (issue #1071) * Remove extra } in format string (issue #1073) Version 2.9.0 ============= Enhancements and new features: * Add a Prometheus export module (issue #930) * Add a Kafka export module (issue #858) * Port in the -c URI (-c hostname:port) (issue #996) Bugs corrected: * On Windows --export-statsd terminates immediately and does not export (issue #1067) * Glances v2.8.7 issues with Curses UI on Android (issue #1053) * Fails to start, OSError in sensors_temperatures (issue #1057) * Crashes after long time running the glances --browser (issue #1059) * Sensor values don't refresh since psutil backend (issue #1061) * glances-version.db Permission denied (issue #1066) Version 2.8.8 ============= Bugs corrected: * Drop requests to check for outdated Glances version * Glances cannot load "Powersupply" (issue #1051) Version 2.8.7 ============= Bugs corrected: * Windows OS - Global name standalone not defined again (issue #1030) Version 2.8.6 ============= Bugs corrected: * Windows OS - Global name standalone not defined (issue #1030) Version 2.8.5 ============= Bugs corrected: * Cloud plugin error: Name 'requests' is not defined (issue #1047) Version 2.8.4 ============= Bugs corrected: * Correct issue on Travis CI test Version 2.8.3 ============= Enhancements and new features: * Use new sensors-related APIs of psutil 5.1.0 (issue #1018) * Add a "Cloud" plugin to grab stats inside the AWS EC2 API (issue #1029) Bugs corrected: * Unable to launch Glances on Windows (issue #1021) * Glances --export-influxdb starts Webserver (issue #1038) * Cut mount point name if it is too long (issue #1045) * TypeError: string indices must be integers in per cpu (issue #1027) * Glances crash on RPi 1 running ArchLinuxARM (issue #1046) Version 2.8.2 ============= Bugs corrected: * InfluxDB export in 2.8.1 is broken (issue #1026) Version 2.8.1 ============= Enhancements and new features: * Enable docker plugin on Windows (issue #1009) - Thanks to @fraoustin Bugs corrected: * Glances export issue with CPU and SENSORS (issue #1024) * Can't export data to a CSV file in Client/Server mode (issue #1023) * Autodiscover error while binding on IPv6 addresses (issue #1002) * GPU plugin is display when hitting '4' or '5' shortkeys (issue #1012) * Interrupts and usb_fiq (issue #1007) * Docker image does not work in web server mode! (issue #1017) * IRQ plugin is not display anymore (issue #1013) * Autodiscover error while binding on IPv6 addresses (issue #1002) Version 2.8 =========== Changes: * The curses interface on Windows is no more. The web-based interface is now the default. (issue #946) * The name of the log file now contains the name of the current user logged in, i.e., 'glances-USERNAME.log'. * IRQ plugin off by default. '--disable-irq' option replaced by '--enable-irq'. Enhancements and new features: * GPU monitoring (limited to NVidia) (issue #170) * WebUI CPU consumption optimization (issue #836) * Not compatible with the new Docker API 2.0 (Docker 1.13) (issue #1000) * Add ZeroMQ exporter (issue #939) * Add CouchDB exporter (issue #928) * Add hotspot Wifi information (issue #937) * Add default interface speed and automatic rate thresolds (issue #718) * Highlight max stats in the processes list (issue #878) * Docker alerts and actions (issue #875) * Glances API returns the processes PPID (issue #926) * Configure server cached time from the command line --cached-time (issue #901) * Make the log logger configurable (issue #900) * System uptime in export (issue #890) * Refactor the --disable-* options (issue #948) * PID column too small if kernel.pid_max is > 99999 (issue #959) Bugs corrected: * Glances RAID plugin Traceback (issue #927) * Default AMP crashes when 'command' given (issue #933) * Default AMP ignores `enable` setting (issue #932) * /proc/interrupts not found in an OpenVZ container (issue #947) Version 2.7.1 ============= Bugs corrected: * AMP plugin crashes on start with Python 3 (issue #917) * Ports plugin crashes on start with Python 3 (issue #918) Version 2.7 =========== Backward-incompatible changes: * Drop support for Python 2.6 (issue #300) Deprecated: * Monitoring process list module is replaced by AMP (see issue #780) * Use --export-graph instead of --enable-history (issue #696) * Use --path-graph instead of --path-history (issue #696) Enhancements and new features: * Add Application Monitoring Process plugin (issue #780) * Add a new "Ports scanner" plugin (issue #734) * Add a new IRQ monitoring plugin (issue #911) * Improve IP plugin to display public IP address (issue #646) * CPU additional stats monitoring: Context switch, Interrupts... (issue #810) * Filter processes by others stats (username) (issue #748) * [Folders] Differentiate permission issue and non-existence of a directory (issue #828) * [Web UI] Add cpu name in quicklook plugin (issue #825) * Allow theme to be set in configuration file (issue #862) * Display a warning message when Glances is outdated (issue #865) * Refactor stats history and export to graph. History available through API (issue #696) * Add Cassandra/Scylla export plugin (issue #857) * Huge pull request by Nicolas Hart to optimize the WebUI (issue #906) * Improve documentation: http://glances.readthedocs.io (issue #872) Bugs corrected: * Crash on launch when viewing temperature of laptop HDD in sleep mode (issue #824) * [Web UI] Fix folders plugin never displayed (issue #829) * Correct issue IP plugin: VPN with no internet access (issue #842) * Idle process is back on FreeBSD and Windows (issue #844) * On Windows, Glances try to display unexisting Load stats (issue #871) * Check CPU info (issue #881) * Unicode error on processlist on Windows server 2008 (french) (issue #886) * PermissionError/OSError when starting glances (issue #885) * Zeroconf problem with zeroconf_type = "_%s._tcp." % __appname__ (issue #888) * Zeroconf problem with zeroconf service name (issue #889) * [WebUI] Glances will not get past loading screen - Windows OS (issue #815) * Improper bytes/unicode in glances_hddtemp.py (issue #887) * Top 3 processes are back in the alert summary Code quality follow up: from 5.93 to 6.24 (source: https://scrutinizer-ci.com/g/nicolargo/glances) Version 2.6.2 ============= Bugs corrected: * Crash with Docker 1.11 (issue #848) Version 2.6.1 ============= Enhancements and new features: * Add a connector to Riemann (issue #822 by Greogo Nagy) Bugs corrected: * Browsing for servers which are in the [serverlist] is broken (issue #819) * [WebUI] Glances will not get past loading screen (issue #815) opened 9 days ago * Python error after upgrading from 2.5.1 to 2.6 bug (issue #813) Version 2.6 =========== Deprecations: * Add deprecation warning for Python 2.6. Python 2.6 support will be dropped in future releases. Please switch to at least Python 2.7 or 3.3+ as soon as possible. See http://www.snarky.ca/stop-using-python-2-6 for more information. Enhancements and new features: * Add a connector to ElasticSearch (welcome to Kibana dashboard) (issue #311) * New folders' monitoring plugins (issue #721) * Use wildcard (regexp) to the hide configuration option for network, diskio and fs sections (issue #799 ) * Command line arguments are now take into account in the WebUI (#789 by @notFloran) * Change username for server and web server authentication (issue #693) * Add an option to disable top menu (issue #766) * Add IOps in the DiskIO plugin (issue #763) * Add hide configuration key for FS Plugin (issue #736) * Add process summary min/max stats (issue #703) * Add timestamp to the CSV export module (issue #708) * Add a shortcut 'E' to delete process filter (issue #699) * By default, hide disk I/O ram1-** (issue #714) * When Glances is starting the notifications should be delayed (issue #732) * Add option (--disable-bg) to disable ANSI background colours (issue #738 by okdana) * [WebUI] add "pointer" cursor for sortable columns (issue #704 by @notFloran) * [WebUI] Make web page title configurable (issue #724) * Do not show interface in down state (issue #765) * InfluxDB > 0.9.3 needs float and not int for numerical value (issue#749 and issue#750 by nicolargo) Bugs corrected: * Can't read sensors on a Thinkpad (issue #711) * InfluxDB/OpenTSDB: tag parsing broken (issue #713) * Grafana Dashboard outdated for InfluxDB 0.9.x (issue #648) * '--tree' breaks process filter on Debian 8 (issue #768) * Fix highlighting of process when it contains whitespaces (issue #546 by Alessio Sergi) * Fix RAID support in Python 3 (issue #793 by Alessio Sergi) * Use dict view objects to avoid issue (issue #758 by Alessio Sergi) * System exit if Cpu not supported by the Cpuinfo lib (issue #754 by nicolargo) * KeyError: 'cpucore' when exporting data to InfluxDB (issue #729 by nicolargo) Others: * A new Glances docker container to monitor your Docker infrastructure is available here (issue #728): https://hub.docker.com/r/nicolargo/glances/ * Documentation is now generated automatically thanks to Sphinx and the Alessio Sergi patch (https://glances.readthedocs.io/en/latest/) Contributors summary: * Nicolas Hennion: 112 commits * Alessio Sergi: 55 commits * Floran Brutel: 19 commits * Nicolas Hart: 8 commits * @desbma: 4 commits * @dana: 2 commits * Damien Martin, Raju Kadam, @georgewhewell: 1 commit Version 2.5.1 ============= Bugs corrected: * Unable to unlock password protected servers in browser mode bug (issue #694) * Correct issue when Glances is started in console on Windows OS * [WebUI] when alert is ongoing hide level enhancement (issue #692) Version 2.5 =========== Enhancements and new features: * Allow export of Docker and sensors plugins stats to InfluxDB, StatsD... (issue #600) * Docker plugin shows IO and network bitrate (issue #520) * Server password configuration for the browser mode (issue #500) * Add support for OpenTSDB export (issue #638) * Add additional stats (iowait, steal) to the perCPU plugin (issue #672) * Support Fahrenheit unit in the sensor plugin using the --fahrenheit command line option (issue #620) * When a process filter is set, display sum of CPU, MEM... (issue #681) * Improve the QuickLookplugin by adding hardware CPU info (issue #673) * WebUI display a message if server is not available (issue #564) * Display an error if export is not used in the standalone/client mode (issue #614) * New --disable-quicklook, --disable-cpu, --disable-mem, --disable-swap, --disable-load tags (issue #631) * Complete refactoring of the WebUI thanks to the (awesome) Floran pull (issue #656) * Network cumulative /combination feature available in the WebUI (issue #552) * IRIX mode off implementation (issue#628) * Short process name displays arguments (issue #609) * Server password configuration for the browser mode (issue #500) * Display an error if export is not used in the standalone/client mode (issue #614) Bugs corrected: * The WebUI displays bad sensors stats (issue #632) * Filter processes crashes with a bad regular expression pattern (issue #665) * Error with IP plugin (issue #651) * Crach with Docker plugin (issue #649) * Docker plugin crashes with webserver mode (issue #654) * Infrequently crashing due to assert (issue #623) * Value for free disk space is counterintuative on ext file systems (issue #644) * Try/catch for unexpected psutil.NoSuchProcess: process no longer exists (issue #432) * Fatal error using Python 3.4 and Docker plugin bug (issue #602) * Add missing new line before g man option (issue #595) * Remove unnecessary type="text/css" for link (HTML5) (issue #595) * Correct server mode issue when no network interface is available (issue #528) * Avoid crach on olds kernels (issue #554) * Avoid crashing if LC_ALL is not defined by user (issue #517) * Add a disable HDD temperature option on the command line (issue #515) Version 2.4.2 ============= Bugs corrected: * Process no longer exists (again) (issue #613) * Crash when "top extended stats" is enabled on OS X (issue #612) * Graphical percentage bar displays "?" (issue #608) * Quick look doesn't work (issue #605) * [Web UI] Display empty Battery sensors enhancement (issue #601) * [Web UI] Per CPU plugin has to be improved (issue #566) Version 2.4.1 ============= Bugs corrected: * Fatal error using Python 3.4 and Docker plugin bug (issue #602) Version 2.4 =========== Changes: * Glances doesn't provide a system-wide configuration file by default anymore. Just copy it in any of the supported locations. See glances-doc.html for more information. (issue #541) * The default key bindings have been changed to: - 'u': sort processes by USER - 'U': show cumulative network I/O * No more translations Enhancements and new features: * The Web user interface is now based on AngularJS (issue #473, #508, #468) * Implement a 'quick look' plugin (issue #505) * Add sort processes by USER (issue #531) * Add a new IP information plugin (issue #509) * Add RabbitMQ export module (issue #540 Thk to @Katyucha) * Add a quiet mode (-q), can be useful using with export module * Grab FAN speed in the Glances sensors plugin (issue #501) * Allow logical mounts points in the FS plugin (issue #448) * Add a --disable-hddtemp to disable HDD temperature module at startup (issue #515) * Increase alert minimal delay to 6 seconds (issue #522) * If the Curses application raises an exception, restore the terminal correctly (issue #537) Bugs corrected: * Monitor list, all processes are take into account (issue #507) * Duplicated --enable-history in the doc (issue #511) * Sensors title is displayed if no sensors are detected (issue #510) * Server mode issue when no network interface is available (issue #528) * DEBUG mode activated by default with Python 2.6 (issue #512) * Glances display of time trims the hours showing only minutes and seconds (issue #543) * Process list header not decorating when sorting by command (issue #551) Version 2.3 =========== Enhancements and new features: * Add the Docker plugin (issue #440) with per container CPU and memory monitoring (issue #490) * Add the RAID plugin (issue #447) * Add actions on alerts (issue #132). It is now possible to run action (command line) by triggers. Action could contain {{tag}} (Mustache) with stat value. * Add InfluxDB export module (--export-influxdb) (issue #455) * Add StatsD export module (--export-statsd) (issue #465) * Refactor export module (CSV export option is now --export-csv). It is now possible to export stats from the Glances client mode (issue #463) * The Web interface is now based on Bootstrap / RWD grid (issue #417, #366 and #461) Thanks to Nicolas Hart @nclsHart * It is now possible, through the configuration file, to define if an alarm should be logged or not (using the _log option) (issue #437) * You can now set alarm for Disk IO * API: add getAllLimits and getAllViews methods (issue #481) and allow CORS request (issue #479) * SNMP client support NetApp appliance (issue #394) Bugs corrected: * R/W error with the glances.log file (issue #474) Other enhancement: * Alert < 3 seconds are no longer displayed Version 2.2.1 ============= * Fix incorrect kernel thread detection with --hide-kernel-threads (issue #457) * Handle IOError exception if no /etc/os-release to use Glances on Synology DSM (issue #458) * Check issue error in client/server mode (issue #459) Version 2.2 =========== Enhancements and new features: * Add centralized curse interface with a Glances servers list to monitor (issue #418) * Add processes tree view (--tree) (issue #444) * Improve graph history feature (issue #69) * Extended stats is disable by default (use --enable-process-extended to enable it - issue #430) * Add a short key ('F') and a command line option (--fs-free-space) to display FS free space instead of used space (issue #411) * Add a short key ('2') and a command line option (--disable-left-sidebar) to disable/enable the side bar (issue #429) * Add CPU times sort short key ('t') in the curse interface (issue #449) * Refactor operating system detection for GNU/Linux operating system * Code optimization Bugs corrected: * Correct a bug with Glances pip install --user (issue #383) * Correct issue on battery stat update (issue #433) * Correct issue on process no longer exist (issues #414 and #432) Version 2.1.2 ============= Maintenance version (only needed for Mac OS X). Bugs corrected: * Mac OS X: Error if Glances is not ran with sudo (issue #426) Version 2.1.1 ============= Enhancement: * Automatically compute top processes number for the current screen (issue #408) * CPU and Memory footprint optimization (issue #401) Bugs corrected: * Mac OS X 10.9: Exception at start (issue #423) * Process no longer exists (issue #421) * Error with Glances Client with Python 3.4.1 (issue #419) * TypeError: memory_maps() takes exactly 2 arguments (issue #413) * No filesystem information since Glances 2.0 bug enhancement (issue #381) Version 2.1 =========== * Add user process filter feature User can define a process filter pattern (as a regular expression). The pattern could be defined from the command line (-f ) or by pressing the ENTER key in the curse interface. For the moment, process filter feature is only available in standalone mode. * Add extended processes information for top process Top process stats availables: CPU affinity, extended memory information (shared, text, lib, datat, dirty, swap), open threads/files and TCP/UDP network sessions, IO nice level For the moment, extended processes stats are only available in standalone mode. * Add --process-short-name tag and '/' key to switch between short/command line * Create a max_processes key in the configuration file The goal is to reduce the number of displayed processes in the curses UI and so limit the CPU footprint of the Glances standalone mode. The API always return all the processes, the key is only active in the curses UI. If the key is not define, all the processes will be displayed. The default value is 20 (processes displayed). For the moment, this feature is only available in standalone mode. * Alias for network interfaces, disks and sensors Users can configure alias from the Glances configuration file. * Add Glances log message (in the /tmp/glances.log file) The default log level is INFO, you can switch to the DEBUG mode using the -d option on the command line. * Add RESTful API to the Web server mode RESTful API doc: https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API * Improve SNMP fallback mode for Cisco IOS, VMware ESXi * Add --theme-white feature to optimize display for white background * Experimental history feature (--enable-history option on the command line) This feature allows users to generate graphs within the curse interface. Graphs are available for CPU, LOAD and MEM. To generate graph, click on the 'g' key. To reset the history, press the 'r' key. Note: This feature uses the matplotlib library. * CI: Improve Travis coverage Bugs corrected: * Quitting glances leaves a column layout to the current terminal (issue #392) * Glances crashes with malformed UTF-8 sequences in process command lines (issue #391) * SNMP fallback mode is not Python 3 compliant (issue #386) * Trouble using batinfo, hddtemp, pysensors w/ Python (issue #324) Version 2.0.1 ============= Maintenance version. Bugs corrected: * Error when displaying numeric process user names (#380) * Display users without username correctly (#379) * Bug when parsing configuration file (#378) * The sda2 partition is not seen by glances (#376) * Client crash if server is ended during XML request (#375) * Error with the Sensors module on Debian/Ubuntu (#373) * Windows don't view all processes (#319) Version 2.0 =========== Glances v2.0 is not a simple upgrade of the version 1.x but a complete code refactoring. Based on a plugins system, it aims at providing an easy way to add new features. - Core defines the basics and commons functions. - all stats are grabbed through plugins (see the glances/plugins source folder). - also outputs methods (Curse, Web mode, CSV) are managed as plugins. The Curse interface is almost the same than the version 1.7. Some improvements have been made: - space optimisation for the CPU, LOAD and MEM stats (justified alignment) - CPU: . CPU stats are displayed as soon as Glances is started . steal CPU alerts are no more logged - LOAD: . 5 min LOAD alerts are no more logged - File System: . Display the device name (if space is available) - Sensors: . Sensors and HDD temperature are displayed in the same block - Process list: . Refactor columns: CPU%, MEM%, VIRT, RES, PID, USER, NICE, STATUS, TIME, IO, Command/name . The running processes status is highlighted . The process name is highlighted in the command line Glances 2.0 brings a brand new Web Interface. You can run Glances in Web server mode and consult the stats directly from a standard Web Browser. The client mode can now fallback to a simple SNMP mode if Glances server is not found on the remote machine. Complete release notes: * Cut ifName and DiskName if they are too long in the curses interface (by Nicolargo) * Windows CLI is OK but early experimental (by Nicolargo) * Add bitrate limits to the networks interfaces (by Nicolargo) * Batteries % stats are now in the sensors list (by Nicolargo) * Refactor the client/server password security: using SHA256 (by Nicolargo, based on Alessio Sergi's example script) * Refactor the CSV output (by Nicolargo) * Glances client fallback to SNMP server if Glances one not found (by Nicolargo) * Process list: Highlight running/basename processes (by Alessio Sergi) * New Web server mode thk to the Bottle library (by Nicolargo) * Responsive design for Bottle interface (by Nicolargo) * Remove HTML output (by Nicolargo) * Enable/disable for optional plugins through the command line (by Nicolargo) * Refactor the API (by Nicolargo) * Load-5 alert are no longer logged (by Nicolargo) * Rename In/Out by Read/Write for DiskIO according to #339 (by Nicolargo) * Migrate from pysensors to py3sensors (by Alessio Sergi) * Migration to psutil 2.x (by Nicolargo) * New plugins system (by Nicolargo) * Python 2.x and 3.x compatibility (by Alessio Sergi) * Code quality improvements (by Alessio Sergi) * Refactor unitaries tests (by Nicolargo) * Development now follow the git flow workflow (by Nicolargo) ============================================================================== Glances Version 1 ============================================================================== Version 1.7.7 ============= * Fix CVS export [issue #348] * Adapt to psutil 2.1.1 * Compatibility with Python 3.4 * Improve German update Version 1.7.6 ============= * Adapt to psutil 2.0.0 API * Fixed psutil 0.5.x support on Windows * Fix help screen in 80x24 terminal size * Implement toggle of process list display ('z' key) Version 1.7.5 ============= * Force the PyPI installer to use the psutil branch 1.x (#333) Version 1.7.4 ============= * Add threads number in the task summary line (#308) * Add system uptime (#276) * Add CPU steal % to cpu extended stats (#309) * You can hide disk from the IOdisk view using the conf file (#304) * You can hide network interface from the Network view using the conf file * Optimisation of CPU consumption (around ~10%) * Correct issue #314: Client/server mode always asks for password * Correct issue #315: Defining password in client/server mode doesn't work as intended * Correct issue #316: Crash in client server mode * Correct issue #318: Argument parser, try-except blocks never get triggered Version 1.7.3 ============= * Add --password argument to enter the client/server password from the prompt * Fix an issue with the configuration file path (#296) * Fix an issue with the HTML template (#301) Version 1.7.2 ============= * Console interface is now Microsoft Windows compatible (thk to @fraoustin) * Update documentation and Wiki regarding the API * Added package name for python sources/headers in openSUSE/SLES/SLED * Add FreeBSD packager * Bugs corrected Version 1.7.1 ============= * Fix IoWait error on FreeBSD / Mac OS * HDDTemp module is now Python v3 compatible * Don't warn a process is not running if countmin=0 * Add PyPI badge on the README.rst * Update documentation * Add document structure for http://readthedocs.org Version 1.7 =========== * Add monitored processes list * Add hard disk temperature monitoring (thanks to the HDDtemp daemon) * Add batteries capacities information (thanks to the Batinfo lib) * Add command line argument -r toggles processes (reduce CPU usage) * Add command line argument -1 to run Glances in per CPU mode * Platform/architecture is more specific now * XML-RPC server: Add IPv6 support for the client/server mode * Add support for local conf file * Add a uninstall script * Add getNetTimeSinceLastUpdate() getDiskTimeSinceLastUpdate() and getProcessDiskTimeSinceLastUpdate() in the API * Add more translation: Italien, Chinese * and last but not least... up to 100 hundred bugs corrected / software and * docs improvements Version 1.6.1 ============= * Add per-user settings (configuration file) support * Add -z/--nobold option for better appearance under Solarized terminal * Key 'u' shows cumulative net traffic * Work in improving autoUnit * Take into account the number of core in the CPU process limit * API improvement add time_since_update for disk, process_disk and network * Improve help display * Add more dummy FS to the ignore list * Code refactory: psutil < 0.4.1 is deprecated (Thk to Alessio) * Correct a bug on the CPU process limit * Fix crash bug when specifying custom server port * Add Debian style init script for the Glances server Version 1.6 =========== * Configuration file: user can defines limits * In client/server mode, limits are set by the server side * Display limits in the help screen * Add per process IO (read and write) rate in B per second IO rate only available on Linux from a root account * If CPU iowait alert then sort by processes by IO rate * Per CPU display IOwait (if data is available) * Add password for the client/server mode (-P password) * Process column style auto (underline) or manual (bold) * Display a sort indicator (is space is available) * Change the table key in the help screen Version 1.5.2 ============= * Add sensors module (enable it with -e option) * Improve CPU stats (IO wait, Nice, IRQ) * More stats in lower space (yes it's possible) * Refactor processes list and count (lower CPU/MEM footprint) * Add functions to the RCP method * Completed unit test * and fixes... Version 1.5.1 ============= * Patch for psutil 0.4 compatibility * Test psutil version before running Glances Version 1.5 =========== * Add a client/server mode (XMLRPC) for remote monitoring * Correct a bug on process IO with non root users * Add 'w' shortkey to delete finished warning message * Add 'x' shortkey to delete finished warning/critical message * Bugs correction * Code optimization Version 1.4.2.2 =============== * Add switch between bit/sec and byte/sec for network IO * Add Changelog (generated with gitchangelog) Version 1.4.2.1 =============== * Minor patch to solve memomy issue (#94) on Mac OS X Version 1.4.2 ============= * Use the new virtual_memory() and virtual_swap() fct (psutil) * Display "Top process" in logs * Minor patch on man page for Debian packaging * Code optimization (less try and except) Version 1.4.1.1 =============== * Minor patch to disable Process IO for OS X (not available in psutil) Version 1.4.1 ============= * Per core CPU stats (if space is available) * Add Process IO Read/Write information (if space is available) * Uniformize units Version 1.4 =========== * Goodby StatGrab... Welcome to the psutil library ! * No more autotools, use setup.py to install (or package) * Only major stats (CPU, Load and memory) use background colors * Improve operating system name detection * New system info: one-line layout and add Arch Linux support * No decimal places for values < GB * New memory and swap layout * Add percentage of usage for both memory and swap * Add MEM% usage, NICE, STATUS, UID, PID and running TIME per process * Add sort by MEM% ('m' key) * Add sort by Process name ('p' key) * Multiple minor fixes, changes and improvements * Disable Disk IO module from the command line (-d) * Disable Mount module from the command line (-m) * Disable Net rate module from the command line (-n) * Improved FreeBSD support * Cleaning code and style * Code is now checked with pep8 * CSV and HTML output (experimental functions, no yet documentation) Version 1.3.7 ============= * Display (if terminal space is available) an alerts history (logs) * Add a limits class to manage stats limits * Manage black and white console (issue #31) Version 1.3.6 ============= * Add control before libs import * Change static Python path (issue #20) * Correct a bug with a network interface disaippear (issue #27) * Add French and Spanish translation (thx to Jean Bob) Version 1.3.5 ============= * Add an help panel when Glances is running (key: 'h') * Add keys descriptions in the syntax (--help | -h) Version 1.3.4 ============= * New key: 'n' to enable/disable network stats * New key: 'd' to enable/disable disk IO stats * New key: 'f' to enable/disable FS stats * Reorganised the screen when stat are not available|disable * Force Glances to use the enmbeded fs stats (issue #16) Version 1.3.3 ============= * Automatically switch between process short and long name * Center the host / system information * Always put the hour/date in the bottom/right * Correct a bug if there is a lot of Disk/IO * Add control about available libstatgrab functions Version 1.3.2 ============= * Add alert for network bit rate° * Change the caption * Optimised net, disk IO and fs display (share the space) Disable on Ubuntu because the libstatgrab return a zero value for the network interface speed. Version 1.3.1 ============= * Add alert on load (depend on number of CPU core) * Fix bug when the FS list is very long Version 1.3 =========== * Add file system stats (total and used space) * Adapt unit dynamically (K, M, G) * Add man page (Thanks to Edouard Bourguignon) Version 1.2 =========== * Resize the terminal and the windows are adapted dynamically * Refresh screen instantanetly when a key is pressed Version 1.1.3 ============= * Add disk IO monitoring * Add caption * Correct a bug when computing the bitrate with the option -t * Catch CTRL-C before init the screen (Bug #2) * Check if mem.total = 0 before division (Bug #1) glances-3.4.0.3/unitest.py0000755000175000017500000004341314432156570015263 0ustar epsilonepsilon#!/usr/bin/env python # -*- coding: utf-8 -*- # # Glances - An eye on your system # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Glances unitary tests suite.""" # # ./venv/bin/python unitest.py # import time import unittest from glances.main import GlancesMain from glances.stats import GlancesStats from glances import __version__ from glances.globals import WINDOWS, LINUX from glances.outputs.glances_bars import Bar from glances.thresholds import GlancesThresholdOk from glances.thresholds import GlancesThresholdCareful from glances.thresholds import GlancesThresholdWarning from glances.thresholds import GlancesThresholdCritical from glances.thresholds import GlancesThresholds from glances.plugins.glances_plugin import GlancesPlugin from glances.programs import processes_to_programs from glances.compat import subsample, range, string_value_to_float from glances.secure import secure_popen from glances.compat import PY3 if PY3: pass # Global variables # ================= # Init Glances core core = GlancesMain() test_config = core.get_config() test_args = core.get_args() # Init Glances stats stats = GlancesStats(config=test_config, args=test_args) # Unitest class # ============== print('Unitary tests for Glances %s' % __version__) class TestGlances(unittest.TestCase): """Test Glances class.""" def setUp(self): """The function is called *every time* before test_*.""" print('\n' + '=' * 78) def test_000_update(self): """Update stats (mandatory step for all the stats). The update is made twice (for rate computation). """ print('INFO: [TEST_000] Test the stats update function') try: stats.update() except Exception as e: print('ERROR: Stats update failed: %s' % e) self.assertTrue(False) time.sleep(1) try: stats.update() except Exception as e: print('ERROR: Stats update failed: %s' % e) self.assertTrue(False) self.assertTrue(True) def test_001_plugins(self): """Check mandatory plugins.""" plugins_to_check = ['system', 'cpu', 'load', 'mem', 'memswap', 'network', 'diskio', 'fs'] print('INFO: [TEST_001] Check the mandatory plugins list: %s' % ', '.join(plugins_to_check)) plugins_list = stats.getPluginsList() for plugin in plugins_to_check: self.assertTrue(plugin in plugins_list) def test_002_system(self): """Check SYSTEM plugin.""" stats_to_check = ['hostname', 'os_name'] print('INFO: [TEST_002] Check SYSTEM stats: %s' % ', '.join(stats_to_check)) stats_grab = stats.get_plugin('system').get_raw() for stat in stats_to_check: # Check that the key exist self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat) print('INFO: SYSTEM stats: %s' % stats_grab) def test_003_cpu(self): """Check CPU plugin.""" stats_to_check = ['system', 'user', 'idle'] print('INFO: [TEST_003] Check mandatory CPU stats: %s' % ', '.join(stats_to_check)) stats_grab = stats.get_plugin('cpu').get_raw() for stat in stats_to_check: # Check that the key exist self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat) # Check that % is > 0 and < 100 self.assertGreaterEqual(stats_grab[stat], 0) self.assertLessEqual(stats_grab[stat], 100) print('INFO: CPU stats: %s' % stats_grab) @unittest.skipIf(WINDOWS, "Load average not available on Windows") def test_004_load(self): """Check LOAD plugin.""" stats_to_check = ['cpucore', 'min1', 'min5', 'min15'] print('INFO: [TEST_004] Check LOAD stats: %s' % ', '.join(stats_to_check)) stats_grab = stats.get_plugin('load').get_raw() for stat in stats_to_check: # Check that the key exist self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat) # Check that % is > 0 self.assertGreaterEqual(stats_grab[stat], 0) print('INFO: LOAD stats: %s' % stats_grab) def test_005_mem(self): """Check MEM plugin.""" stats_to_check = ['available', 'used', 'free', 'total'] print('INFO: [TEST_005] Check MEM stats: %s' % ', '.join(stats_to_check)) stats_grab = stats.get_plugin('mem').get_raw() for stat in stats_to_check: # Check that the key exist self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat) # Check that % is > 0 self.assertGreaterEqual(stats_grab[stat], 0) print('INFO: MEM stats: %s' % stats_grab) def test_006_swap(self): """Check MEMSWAP plugin.""" stats_to_check = ['used', 'free', 'total'] print('INFO: [TEST_006] Check SWAP stats: %s' % ', '.join(stats_to_check)) stats_grab = stats.get_plugin('memswap').get_raw() for stat in stats_to_check: # Check that the key exist self.assertTrue(stat in stats_grab, msg='Cannot find key: %s' % stat) # Check that % is > 0 self.assertGreaterEqual(stats_grab[stat], 0) print('INFO: SWAP stats: %s' % stats_grab) def test_007_network(self): """Check NETWORK plugin.""" print('INFO: [TEST_007] Check NETWORK stats') stats_grab = stats.get_plugin('network').get_raw() self.assertTrue(type(stats_grab) is list, msg='Network stats is not a list') print('INFO: NETWORK stats: %s' % stats_grab) def test_008_diskio(self): """Check DISKIO plugin.""" print('INFO: [TEST_008] Check DISKIO stats') stats_grab = stats.get_plugin('diskio').get_raw() self.assertTrue(type(stats_grab) is list, msg='DiskIO stats is not a list') print('INFO: diskio stats: %s' % stats_grab) def test_009_fs(self): """Check File System plugin.""" # stats_to_check = [ ] print('INFO: [TEST_009] Check FS stats') stats_grab = stats.get_plugin('fs').get_raw() self.assertTrue(type(stats_grab) is list, msg='FileSystem stats is not a list') print('INFO: FS stats: %s' % stats_grab) def test_010_processes(self): """Check Process plugin.""" # stats_to_check = [ ] print('INFO: [TEST_010] Check PROCESS stats') stats_grab = stats.get_plugin('processcount').get_raw() # total = stats_grab['total'] self.assertTrue(type(stats_grab) is dict, msg='Process count stats is not a dict') print('INFO: PROCESS count stats: %s' % stats_grab) stats_grab = stats.get_plugin('processlist').get_raw() self.assertTrue(type(stats_grab) is list, msg='Process count stats is not a list') print('INFO: PROCESS list stats: %s items in the list' % len(stats_grab)) # Check if number of processes in the list equal counter # self.assertEqual(total, len(stats_grab)) def test_011_folders(self): """Check File System plugin.""" # stats_to_check = [ ] print('INFO: [TEST_011] Check FOLDER stats') stats_grab = stats.get_plugin('folders').get_raw() self.assertTrue(type(stats_grab) is list, msg='Folders stats is not a list') print('INFO: Folders stats: %s' % stats_grab) def test_012_ip(self): """Check IP plugin.""" print('INFO: [TEST_012] Check IP stats') stats_grab = stats.get_plugin('ip').get_raw() self.assertTrue(type(stats_grab) is dict, msg='IP stats is not a dict') print('INFO: IP stats: %s' % stats_grab) @unittest.skipIf(not LINUX, "IRQs available only on Linux") def test_013_irq(self): """Check IRQ plugin.""" print('INFO: [TEST_013] Check IRQ stats') stats_grab = stats.get_plugin('irq').get_raw() self.assertTrue(type(stats_grab) is list, msg='IRQ stats is not a list') print('INFO: IRQ stats: %s' % stats_grab) @unittest.skipIf(not LINUX, "GPU available only on Linux") def test_013_gpu(self): """Check GPU plugin.""" print('INFO: [TEST_014] Check GPU stats') stats_grab = stats.get_plugin('gpu').get_raw() self.assertTrue(type(stats_grab) is list, msg='GPU stats is not a list') print('INFO: GPU stats: %s' % stats_grab) def test_014_sorted_stats(self): """Check sorted stats method.""" print('INFO: [TEST_015] Check sorted stats method') aliases = { "key2": "alias11", "key5": "alias2", } unsorted_stats = [ {"key": "key4"}, {"key": "key2"}, {"key": "key5"}, {"key": "key21"}, {"key": "key3"}, ] gp = GlancesPlugin() gp.get_key = lambda: "key" gp.has_alias = aliases.get gp.stats = unsorted_stats sorted_stats = gp.sorted_stats() self.assertEqual(len(sorted_stats), 5) self.assertEqual(sorted_stats[0]["key"], "key5") self.assertEqual(sorted_stats[1]["key"], "key2") self.assertEqual(sorted_stats[2]["key"], "key3") self.assertEqual(sorted_stats[3]["key"], "key4") self.assertEqual(sorted_stats[4]["key"], "key21") def test_015_subsample(self): """Test subsampling function.""" print('INFO: [TEST_015] Subsampling') for l_test in [([1, 2, 3], 4), ([1, 2, 3, 4], 4), ([1, 2, 3, 4, 5, 6, 7], 4), ([1, 2, 3, 4, 5, 6, 7, 8], 4), (list(range(1, 800)), 4), (list(range(1, 8000)), 800)]: l_subsample = subsample(l_test[0], l_test[1]) self.assertLessEqual(len(l_subsample), l_test[1]) def test_016_hddsmart(self): """Check hard disk SMART data plugin.""" try: from glances.compat import is_admin except ImportError: print("INFO: [TEST_016] pySMART not found, not running SMART plugin test") return stat = 'DeviceName' print('INFO: [TEST_016] Check SMART stats: {}'.format(stat)) stats_grab = stats.get_plugin('smart').get_raw() if not is_admin(): print("INFO: Not admin, SMART list should be empty") assert len(stats_grab) == 0 elif stats_grab == {}: print("INFO: Admin but SMART list is empty") assert len(stats_grab) == 0 else: print(stats_grab) self.assertTrue(stat in stats_grab[0].keys(), msg='Cannot find key: %s' % stat) print('INFO: SMART stats: %s' % stats_grab) def test_017_programs(self): """Check Programs function (it's not a plugin).""" # stats_to_check = [ ] print('INFO: [TEST_017] Check PROGRAM stats') stats_grab = processes_to_programs(stats.get_plugin('processlist').get_raw()) self.assertTrue(type(stats_grab) is list, msg='Programs stats is not a list') print('INFO: PROGRAM list stats: %s items in the list' % len(stats_grab)) # Check if number of processes in the list equal counter # self.assertEqual(total, len(stats_grab)) def test_018_string_value_to_float(self): """Check string_value_to_float function""" print('INFO: [TEST_018] Check string_value_to_float function') self.assertEqual(string_value_to_float('32kB'), 32000.0) self.assertEqual(string_value_to_float('32 KB'), 32000.0) self.assertEqual(string_value_to_float('15.5MB'), 15500000.0) self.assertEqual(string_value_to_float('25.9'), 25.9) self.assertEqual(string_value_to_float('12'), 12) self.assertEqual(string_value_to_float('--'), None) def test_094_thresholds(self): """Test thresholds classes""" print('INFO: [TEST_094] Thresholds') ok = GlancesThresholdOk() careful = GlancesThresholdCareful() warning = GlancesThresholdWarning() critical = GlancesThresholdCritical() self.assertTrue(ok < careful) self.assertTrue(careful < warning) self.assertTrue(warning < critical) self.assertFalse(ok > careful) self.assertEqual(ok, ok) self.assertEqual(str(ok), 'OK') thresholds = GlancesThresholds() thresholds.add('cpu_percent', 'OK') self.assertEqual(thresholds.get(stat_name='cpu_percent').description(), 'OK') def test_095_methods(self): """Test mandatories methods""" print('INFO: [TEST_095] Mandatories methods') mandatories_methods = ['reset', 'update'] plugins_list = stats.getPluginsList() for plugin in plugins_list: for method in mandatories_methods: self.assertTrue(hasattr(stats.get_plugin(plugin), method), msg='{} has no method {}()'.format(plugin, method)) def test_096_views(self): """Test get_views method""" print('INFO: [TEST_096] Test views') plugins_list = stats.getPluginsList() for plugin in plugins_list: stats.get_plugin(plugin).get_raw() views_grab = stats.get_plugin(plugin).get_views() self.assertTrue(type(views_grab) is dict, msg='{} view is not a dict'.format(plugin)) def test_097_attribute(self): """Test GlancesAttribute classes""" print('INFO: [TEST_097] Test attribute') # GlancesAttribute from glances.attribute import GlancesAttribute a = GlancesAttribute('a', description='ad', history_max_size=3) self.assertEqual(a.name, 'a') self.assertEqual(a.description, 'ad') a.description = 'adn' self.assertEqual(a.description, 'adn') a.value = 1 a.value = 2 self.assertEqual(len(a.history), 2) a.value = 3 self.assertEqual(len(a.history), 3) a.value = 4 # Check if history_max_size=3 is OK self.assertEqual(len(a.history), 3) self.assertEqual(a.history_size(), 3) self.assertEqual(a.history_len(), 3) self.assertEqual(a.history_value()[1], 4) self.assertEqual(a.history_mean(nb=3), 4.5) def test_098_history(self): """Test GlancesHistory classes""" print('INFO: [TEST_098] Test history') # GlancesHistory from glances.history import GlancesHistory h = GlancesHistory() h.add('a', 1, history_max_size=100) h.add('a', 2, history_max_size=100) h.add('a', 3, history_max_size=100) h.add('b', 10, history_max_size=100) h.add('b', 20, history_max_size=100) h.add('b', 30, history_max_size=100) self.assertEqual(len(h.get()), 2) self.assertEqual(len(h.get()['a']), 3) h.reset() self.assertEqual(len(h.get()), 2) self.assertEqual(len(h.get()['a']), 0) def test_099_output_bars_must_be_between_0_and_100_percent(self): """Test quick look plugin. > bar.min_value 0 > bar.max_value 100 > bar.percent = -1 > bar.percent 0 > bar.percent = 101 > bar.percent 100 """ print('INFO: [TEST_099] Test progress bar') bar = Bar(size=1) bar.percent = -1 self.assertLessEqual(bar.percent, bar.min_value) bar.percent = 101 self.assertGreaterEqual(bar.percent, bar.max_value) def test_100_secure(self): """Test secure functions""" print('INFO: [TEST_100] Secure functions') if WINDOWS: self.assertEqual(secure_popen('echo TEST'), 'TEST\r\n') self.assertEqual(secure_popen('echo TEST1 && echo TEST2'), 'TEST1\r\nTEST2\r\n') else: self.assertEqual(secure_popen('echo -n TEST'), 'TEST') self.assertEqual(secure_popen('echo FOO | grep FOO'), 'FOO\n') self.assertEqual(secure_popen('echo -n TEST1 && echo -n TEST2'), 'TEST1TEST2') def test_200_memory_leak(self): """Memory leak check""" # Only available in PY3 if not PY3: return import tracemalloc print('INFO: [TEST_200] Memory leak check') tracemalloc.start() # 3 iterations just to init the stats and fill the memory for _ in range(3): stats.update() # Start the memory leak check snapshot_begin = tracemalloc.take_snapshot() for _ in range(3): stats.update() snapshot_end = tracemalloc.take_snapshot() snapshot_diff = snapshot_end.compare_to(snapshot_begin, 'filename') memory_leak = sum([s.size_diff for s in snapshot_diff]) print('INFO: Memory leak: {} bytes'.format(memory_leak)) # snapshot_begin = tracemalloc.take_snapshot() for _ in range(30): stats.update() snapshot_end = tracemalloc.take_snapshot() snapshot_diff = snapshot_end.compare_to(snapshot_begin, 'filename') memory_leak = sum([s.size_diff for s in snapshot_diff]) print('INFO: Memory leak: {} bytes'.format(memory_leak)) # snapshot_begin = tracemalloc.take_snapshot() for _ in range(300): stats.update() snapshot_end = tracemalloc.take_snapshot() snapshot_diff = snapshot_end.compare_to(snapshot_begin, 'filename') memory_leak = sum([s.size_diff for s in snapshot_diff]) print('INFO: Memory leak: {} bytes'.format(memory_leak)) snapshot_top = snapshot_end.compare_to(snapshot_begin, 'traceback') print("Memory consumption (top 5):") for stat in snapshot_top[:5]: print(stat) for line in stat.traceback.format(): print(line) def test_999_the_end(self): """Free all the stats""" print('INFO: [TEST_999] Free the stats') stats.end() self.assertTrue(True) if __name__ == '__main__': unittest.main() glances-3.4.0.3/COPYING0000644000175000017500000012216214432156570014245 0ustar epsilonepsilonGNU 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. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . glances-3.4.0.3/run.py0000755000175000017500000000031514432156570014366 0ustar epsilonepsilon#!/usr/bin/python # -*- coding: utf-8 -*- import re import sys from glances import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(main()) glances-3.4.0.3/glances/0000755000175000017500000000000014432156570014622 5ustar epsilonepsilonglances-3.4.0.3/glances/snmp.py0000644000175000017500000001012014432156570016143 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # import sys from glances.logger import logger # Import mandatory PySNMP lib try: from pysnmp.entity.rfc3413.oneliner import cmdgen except ImportError: logger.critical("PySNMP library not found. To install it: pip install pysnmp") sys.exit(2) class GlancesSNMPClient(object): """SNMP client class (based on pysnmp library).""" def __init__(self, host='localhost', port=161, version='2c', community='public', user='private', auth=''): super(GlancesSNMPClient, self).__init__() self.cmdGen = cmdgen.CommandGenerator() self.version = version self.host = host self.port = port self.community = community self.user = user self.auth = auth def __buid_result(self, varBinds): """Build the results.""" ret = {} for name, val in varBinds: if str(val) == '': ret[name.prettyPrint()] = '' else: ret[name.prettyPrint()] = val.prettyPrint() # In Python 3, prettyPrint() return 'b'linux'' instead of 'linux' if ret[name.prettyPrint()].startswith('b\''): ret[name.prettyPrint()] = ret[name.prettyPrint()][2:-1] return ret def __get_result__(self, errorIndication, errorStatus, errorIndex, varBinds): """Put results in table.""" ret = {} if not errorIndication or not errorStatus: ret = self.__buid_result(varBinds) return ret def get_by_oid(self, *oid): """SNMP simple request (list of OID). One request per OID list. :param oid: oid list :return: a dict """ if self.version == '3': errorIndication, errorStatus, errorIndex, varBinds = self.cmdGen.getCmd( cmdgen.UsmUserData(self.user, self.auth), cmdgen.UdpTransportTarget((self.host, self.port)), *oid ) else: errorIndication, errorStatus, errorIndex, varBinds = self.cmdGen.getCmd( cmdgen.CommunityData(self.community), cmdgen.UdpTransportTarget((self.host, self.port)), *oid ) return self.__get_result__(errorIndication, errorStatus, errorIndex, varBinds) def __bulk_result__(self, errorIndication, errorStatus, errorIndex, varBindTable): ret = [] if not errorIndication or not errorStatus: for varBindTableRow in varBindTable: ret.append(self.__buid_result(varBindTableRow)) return ret def getbulk_by_oid(self, non_repeaters, max_repetitions, *oid): """SNMP getbulk request. In contrast to snmpwalk, this information will typically be gathered in a single transaction with the agent, rather than one transaction per variable found. * non_repeaters: This specifies the number of supplied variables that should not be iterated over. * max_repetitions: This specifies the maximum number of iterations over the repeating variables. * oid: oid list > Return a list of dicts """ if self.version.startswith('3'): errorIndication, errorStatus, errorIndex, varBinds = self.cmdGen.getCmd( cmdgen.UsmUserData(self.user, self.auth), cmdgen.UdpTransportTarget((self.host, self.port)), non_repeaters, max_repetitions, *oid ) if self.version.startswith('2'): errorIndication, errorStatus, errorIndex, varBindTable = self.cmdGen.bulkCmd( cmdgen.CommunityData(self.community), cmdgen.UdpTransportTarget((self.host, self.port)), non_repeaters, max_repetitions, *oid ) else: # Bulk request are not available with SNMP version 1 return [] return self.__bulk_result__(errorIndication, errorStatus, errorIndex, varBindTable) glances-3.4.0.3/glances/ports_list.py0000644000175000017500000001144014432156570017376 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances ports list (Ports plugin).""" from glances.compat import range from glances.logger import logger from glances.globals import BSD # XXX *BSDs: Segmentation fault (core dumped) # -- https://bitbucket.org/al45tair/netifaces/issues/15 # Also used in the glances_ip plugin if not BSD: try: import netifaces netifaces_tag = True except ImportError: netifaces_tag = False else: netifaces_tag = False class GlancesPortsList(object): """Manage the ports list for the ports plugin.""" _section = "ports" _default_refresh = 60 _default_timeout = 3 def __init__(self, config=None, args=None): # ports_list is a list of dict (JSON compliant) # [ {'host': 'www.google.fr', 'port': 443, 'refresh': 30, 'description': Internet, 'status': True} ... ] # Load the configuration file self._ports_list = self.load(config) def load(self, config): """Load the ports list from the configuration file.""" ports_list = [] if config is None: logger.debug("No configuration file available. Cannot load ports list.") elif not config.has_section(self._section): logger.debug("No [%s] section in the configuration file. Cannot load ports list." % self._section) else: logger.debug("Start reading the [%s] section in the configuration file" % self._section) refresh = int(config.get_value(self._section, 'refresh', default=self._default_refresh)) timeout = int(config.get_value(self._section, 'timeout', default=self._default_timeout)) # Add default gateway on top of the ports_list lists default_gateway = config.get_value(self._section, 'port_default_gateway', default='False') if default_gateway.lower().startswith('true') and netifaces_tag: new_port = {} try: new_port['host'] = netifaces.gateways()['default'][netifaces.AF_INET][0] except KeyError: new_port['host'] = None # ICMP new_port['port'] = 0 new_port['description'] = 'DefaultGateway' new_port['refresh'] = refresh new_port['timeout'] = timeout new_port['status'] = None new_port['rtt_warning'] = None new_port['indice'] = str('port_0') logger.debug("Add default gateway %s to the static list" % (new_port['host'])) ports_list.append(new_port) # Read the scan list for i in range(1, 256): new_port = {} postfix = 'port_%s_' % str(i) # Read mandatory configuration key: host new_port['host'] = config.get_value(self._section, '%s%s' % (postfix, 'host')) if new_port['host'] is None: continue # Read optionals configuration keys # Port is set to 0 by default. 0 mean ICMP check instead of TCP check new_port['port'] = config.get_value(self._section, '%s%s' % (postfix, 'port'), 0) new_port['description'] = config.get_value( self._section, '%sdescription' % postfix, default="%s:%s" % (new_port['host'], new_port['port']) ) # Default status new_port['status'] = None # Refresh rate in second new_port['refresh'] = refresh # Timeout in second new_port['timeout'] = int(config.get_value(self._section, '%stimeout' % postfix, default=timeout)) # RTT warning new_port['rtt_warning'] = config.get_value(self._section, '%srtt_warning' % postfix, default=None) if new_port['rtt_warning'] is not None: # Convert to second new_port['rtt_warning'] = int(new_port['rtt_warning']) / 1000.0 # Indice new_port['indice'] = 'port_' + str(i) # Add the server to the list logger.debug("Add port %s:%s to the static list" % (new_port['host'], new_port['port'])) ports_list.append(new_port) # Ports list loaded logger.debug("Ports list loaded: %s" % ports_list) return ports_list def get_ports_list(self): """Return the current server list (dict of dict).""" return self._ports_list def set_server(self, pos, key, value): """Set the key to the value for the pos (position in the list).""" self._ports_list[pos][key] = value glances-3.4.0.3/glances/stats.py0000644000175000017500000002741514432156570016343 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """The stats manager.""" import collections import os import sys import threading import traceback from glances.logger import logger from glances.globals import exports_path, plugins_path, sys_path from glances.timer import Counter class GlancesStats(object): """This class stores, updates and gives stats.""" # Script header constant header = "glances_" def __init__(self, config=None, args=None): # Set the config instance self.config = config # Set the argument instance self.args = args # Load plugins and exports modules self.first_export = True self.load_modules(self.args) def __getattr__(self, item): """Overwrite the getattr method in case of attribute is not found. The goal is to dynamically generate the following methods: - getPlugname(): return Plugname stat in JSON format - getViewsPlugname(): return views of the Plugname stat in JSON format """ # Check if the attribute starts with 'get' if item.startswith('getViews'): # Get the plugin name plugname = item[len('getViews') :].lower() # Get the plugin instance plugin = self._plugins[plugname] if hasattr(plugin, 'get_json_views'): # The method get_views exist, return it return getattr(plugin, 'get_json_views') else: # The method get_views is not found for the plugin raise AttributeError(item) elif item.startswith('get'): # Get the plugin name plugname = item[len('get') :].lower() # Get the plugin instance plugin = self._plugins[plugname] if hasattr(plugin, 'get_stats'): # The method get_stats exist, return it return getattr(plugin, 'get_stats') else: # The method get_stats is not found for the plugin raise AttributeError(item) else: # Default behavior raise AttributeError(item) def load_modules(self, args): """Wrapper to load: plugins and export modules.""" # Init the plugins dict # Active plugins dictionary self._plugins = collections.defaultdict(dict) # Load the plugins self.load_plugins(args=args) # Init the export modules dict # Active exporters dictionary self._exports = collections.defaultdict(dict) # All available exporters dictionary self._exports_all = collections.defaultdict(dict) # Load the export modules self.load_exports(args=args) # Restoring system path sys.path = sys_path def _load_plugin(self, plugin_script, args=None, config=None): """Load the plugin (script), init it and add to the _plugin dict.""" # The key is the plugin name # for example, the file glances_xxx.py # generate self._plugins_list["xxx"] = ... name = plugin_script[len(self.header) : -3].lower() # Load the plugin class try: # Import the plugin plugin = __import__(plugin_script[:-3]) # Init and add the plugin to the dictionary self._plugins[name] = plugin.Plugin(args=args, config=config) except Exception as e: # If a plugin can not be loaded, display a critical message # on the console but do not crash logger.critical("Error while initializing the {} plugin ({})".format(name, e)) logger.error(traceback.format_exc()) # An error occurred, disable the plugin if args is not None: setattr(args, 'disable_' + name, False) else: # Manage the default status of the plugin (enable or disable) if args is not None: # If the all key is set in the disable_plugin option then look in the enable_plugin option if getattr(args, 'disable_all', False): logger.debug('%s => %s', name, getattr(args, 'enable_' + name, False)) setattr(args, 'disable_' + name, not getattr(args, 'enable_' + name, False)) else: setattr(args, 'disable_' + name, getattr(args, 'disable_' + name, False)) def load_plugins(self, args=None): """Load all plugins in the 'plugins' folder.""" start_duration = Counter() for item in os.listdir(plugins_path): if item.startswith(self.header) and item.endswith(".py") and item != (self.header + "plugin.py"): # Load the plugin start_duration.reset() self._load_plugin(os.path.basename(item), args=args, config=self.config) logger.debug("Plugin {} started in {} seconds".format(item, start_duration.get())) # Log plugins list logger.debug("Active plugins list: {}".format(self.getPluginsList())) def load_exports(self, args=None): """Load all export modules in the 'exports' folder.""" if args is None: return False header = "glances_" # Build the export module available list args_var = vars(locals()['args']) for item in os.listdir(exports_path): export_name = os.path.basename(item)[len(header) : -3].lower() if ( item.startswith(header) and item.endswith(".py") and item != (header + "export.py") and item != (header + "history.py") ): self._exports_all[export_name] = os.path.basename(item)[:-3] # Set the disable_ to False by default setattr(self.args, 'export_' + export_name, getattr(self.args, 'export_' + export_name, False)) # Aim is to check if the export module should be loaded for export_name in self._exports_all: if getattr(self.args, 'export_' + export_name, False): # Import the export module export_module = __import__(self._exports_all[export_name]) # Add the export to the dictionary # The key is the module name # for example, the file glances_xxx.py # generate self._exports_list["xxx"] = ... self._exports[export_name] = export_module.Export(args=args, config=self.config) self._exports_all[export_name] = self._exports[export_name] # Log plugins list logger.debug("Active exports modules list: {}".format(self.getExportsList())) return True def getPluginsList(self, enable=True): """Return the plugins list. if enable is True, only return the active plugins (default) if enable is False, return all the plugins Return: list of plugin name """ if enable: return [p for p in self._plugins if self._plugins[p].is_enabled()] else: return [p for p in self._plugins] def getExportsList(self, enable=True): """Return the exports list. if enable is True, only return the active exporters (default) if enable is False, return all the exporters :return: list of export module names """ if enable: return [e for e in self._exports] else: return [e for e in self._exports_all] def load_limits(self, config=None): """Load the stats limits (except the one in the exclude list).""" # For each plugins, call the load_limits method for p in self._plugins: self._plugins[p].load_limits(config) def update(self): """Wrapper method to update the stats.""" # For standalone and server modes # For each plugins, call the update method for p in self._plugins: if self._plugins[p].is_disabled(): # If current plugin is disable # then continue to next plugin continue # Update the stats... self._plugins[p].update() # ... the history self._plugins[p].update_stats_history() # ... and the views self._plugins[p].update_views() def export(self, input_stats=None): """Export all the stats. Each export module is ran in a dedicated thread. """ if self.first_export: logger.debug("Do not export stats during the first iteration because some information are missing") self.first_export = False return False input_stats = input_stats or {} for e in self._exports: logger.debug("Export stats using the %s module" % e) thread = threading.Thread(target=self._exports[e].update, args=(input_stats,)) thread.start() return True def getAll(self): """Return all the stats (list).""" return [self._plugins[p].get_raw() for p in self._plugins] def getAllAsDict(self): """Return all the stats (dict).""" return {p: self._plugins[p].get_raw() for p in self._plugins} def getAllExports(self, plugin_list=None): """Return all the stats to be exported (list). Default behavior is to export all the stat if plugin_list is provided, only export stats of given plugin (list) """ if plugin_list is None: # All enabled plugins should be exported plugin_list = self.getPluginsList() return [self._plugins[p].get_export() for p in self._plugins] def getAllExportsAsDict(self, plugin_list=None): """Return all the stats to be exported (list). Default behavior is to export all the stat if plugin_list is provided, only export stats of given plugin (list) """ if plugin_list is None: # All enabled plugins should be exported plugin_list = self.getPluginsList() return {p: self._plugins[p].get_export() for p in plugin_list} def getAllLimits(self, plugin_list=None): """Return the plugins limits list. Default behavior is to export all the limits if plugin_list is provided, only export limits of given plugin (list) """ if plugin_list is None: # All enabled plugins should be exported plugin_list = self.getPluginsList() return [self._plugins[p].limits for p in plugin_list] def getAllLimitsAsDict(self, plugin_list=None): """Return all the stats limits (dict). Default behavior is to export all the limits if plugin_list is provided, only export limits of given plugin (list) """ if plugin_list is None: # All enabled plugins should be exported plugin_list = self.getPluginsList() return {p: self._plugins[p].limits for p in plugin_list} def getAllViews(self): """Return the plugins views.""" return [self._plugins[p].get_views() for p in self._plugins] def getAllViewsAsDict(self): """Return all the stats views (dict).""" return {p: self._plugins[p].get_views() for p in self._plugins} def get_plugin_list(self): """Return the plugin list.""" return self._plugins def get_plugin(self, plugin_name): """Return the plugin name.""" if plugin_name in self._plugins: return self._plugins[plugin_name] else: return None def end(self): """End of the Glances stats.""" # Close export modules for e in self._exports: self._exports[e].exit() # Close plugins for p in self._plugins: self._plugins[p].exit() glances-3.4.0.3/glances/exports/0000755000175000017500000000000014432156570016326 5ustar epsilonepsilonglances-3.4.0.3/glances/exports/glances_graph.py0000644000175000017500000001050214432156570021473 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Graph exporter interface class.""" from pygal import DateTimeLine import pygal.style import sys import os import tempfile import errno from glances.logger import logger from glances.timer import Timer from glances.compat import iteritems, time_serie_subsample from glances.exports.glances_export import GlancesExport class Export(GlancesExport): """This class manages the Graph export module.""" def __init__(self, config=None, args=None): """Init the export IF.""" super(Export, self).__init__(config=config, args=args) # Load the Graph configuration file section (is exists) self.export_enable = self.load_conf('graph', options=['path', 'generate_every', 'width', 'height', 'style']) # Manage options (command line arguments overwrite configuration file) self.path = args.export_graph_path or self.path self.generate_every = int(getattr(self, 'generate_every', 0)) self.width = int(getattr(self, 'width', 800)) self.height = int(getattr(self, 'height', 600)) self.style = getattr(pygal.style, getattr(self, 'style', 'DarkStyle'), pygal.style.DarkStyle) # Create export folder try: os.makedirs(self.path) except OSError as e: if e.errno != errno.EEXIST: logger.critical("Cannot create the Graph output folder {} ({})".format(self.path, e)) sys.exit(2) # Check if output folder is writeable try: tempfile.TemporaryFile(dir=self.path) except OSError: logger.critical("Graph output folder {} is not writeable".format(self.path)) sys.exit(2) logger.info("Graphs will be created in the {} folder".format(self.path)) if self.generate_every != 0: logger.info("Graphs will be created automatically every {} seconds".format(self.generate_every)) logger.info("or when 'g' key is pressed (only through the CLI interface)") # Start the timer self._timer = Timer(self.generate_every) else: logger.info("Graphs will be created when 'g' key is pressed (in the CLI interface)") self._timer = None def exit(self): """Close the files.""" logger.debug("Finalise export interface %s" % self.export_name) def update(self, stats): """Generate Graph file in the output folder.""" if self.generate_every != 0 and self._timer.finished(): self.args.generate_graph = True self._timer.reset() if not self.args.generate_graph: return plugins = stats.getPluginsList() for plugin_name in plugins: plugin = stats._plugins[plugin_name] if plugin_name in self.plugins_to_export(stats): self.export(plugin_name, plugin.get_export_history()) logger.info("Graphs created in {}".format(self.path)) self.args.generate_graph = False def export(self, title, data): """Generate graph from the data. Example for the mem plugin: {'percent': [ (datetime.datetime(2018, 3, 24, 16, 27, 47, 282070), 51.8), (datetime.datetime(2018, 3, 24, 16, 27, 47, 540999), 51.9), (datetime.datetime(2018, 3, 24, 16, 27, 50, 653390), 52.0), (datetime.datetime(2018, 3, 24, 16, 27, 53, 749702), 52.0), (datetime.datetime(2018, 3, 24, 16, 27, 56, 825660), 52.0), ... ] } Return: * True if the graph have been generated * False if the graph have not been generated """ if data == {}: return False chart = DateTimeLine( title=title.capitalize(), width=self.width, height=self.height, style=self.style, show_dots=False, legend_at_bottom=True, x_label_rotation=20, x_value_formatter=lambda dt: dt.strftime('%Y/%m/%d %H:%M:%S'), ) for k, v in iteritems(time_serie_subsample(data, self.width)): chart.add(k, v) chart.render_to_file(os.path.join(self.path, title + '.svg')) return True glances-3.4.0.3/glances/exports/glances_influxdb.py0000644000175000017500000001276714432156570022224 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """InfluxDB (up to InfluxDB 1.7.x) interface class.""" import sys from platform import node from glances.logger import logger from glances.exports.glances_export import GlancesExport from influxdb import InfluxDBClient from influxdb.client import InfluxDBClientError class Export(GlancesExport): """This class manages the InfluxDB export module.""" def __init__(self, config=None, args=None): """Init the InfluxDB export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.user = None self.password = None self.db = None # Optional configuration keys self.protocol = 'http' self.prefix = None self.tags = None self.hostname = None # Load the InfluxDB configuration file self.export_enable = self.load_conf( 'influxdb', mandatories=['host', 'port', 'user', 'password', 'db'], options=['protocol', 'prefix', 'tags'] ) if not self.export_enable: exit('Missing INFLUXDB version 1 config') # The hostname is always add as a tag self.hostname = node().split('.')[0] # Init the InfluxDB client self.client = self.init() def init(self): """Init the connection to the InfluxDB server.""" if not self.export_enable: return None # Correct issue #1530 if self.protocol is not None and (self.protocol.lower() == 'https'): ssl = True else: ssl = False try: db = InfluxDBClient( host=self.host, port=self.port, ssl=ssl, verify_ssl=False, username=self.user, password=self.password, database=self.db, ) get_all_db = [i['name'] for i in db.get_list_database()] except InfluxDBClientError as e: logger.critical("Cannot connect to InfluxDB database '%s' (%s)" % (self.db, e)) sys.exit(2) if self.db in get_all_db: logger.info("Stats will be exported to InfluxDB server: {}".format(db._baseurl)) else: logger.critical("InfluxDB database '%s' did not exist. Please create it" % self.db) sys.exit(2) return db def _normalize(self, name, columns, points): """Normalize data for the InfluxDB's data model. :return: a list of measurements. """ ret = [] # Build initial dict by crossing columns and point data_dict = dict(zip(columns, points)) # issue1871 - Check if a key exist. If a key exist, the value of # the key should be used as a tag to identify the measurement. keys_list = [k.split('.')[0] for k in columns if k.endswith('.key')] if len(keys_list) == 0: keys_list = [None] for measurement in keys_list: # Manage field if measurement is not None: fields = { k.replace('{}.'.format(measurement), ''): data_dict[k] for k in data_dict if k.startswith('{}.'.format(measurement)) } else: fields = data_dict # Transform to InfluxDB data model # https://docs.influxdata.com/influxdb/v1.8/write_protocols/line_protocol_reference/ for k in fields: # Do not export empty (None) value if fields[k] is None: continue # Convert numerical to float try: fields[k] = float(fields[k]) except (TypeError, ValueError): # Convert others to string try: fields[k] = str(fields[k]) except (TypeError, ValueError): pass # Manage tags tags = self.parse_tags(self.tags) if 'key' in fields and fields['key'] in fields: # Create a tag from the key # Tag should be an string (see InfluxDB data model) tags[fields['key']] = str(fields[fields['key']]) # Remove it from the field list (can not be a field and a tag) fields.pop(fields['key']) # Add the hostname as a tag tags['hostname'] = self.hostname # Add the measurement to the list ret.append({'measurement': name, 'tags': tags, 'fields': fields}) return ret def export(self, name, columns, points): """Write the points to the InfluxDB server.""" # Manage prefix if self.prefix is not None: name = self.prefix + '.' + name # Write input to the InfluxDB database if len(points) == 0: logger.debug("Cannot export empty {} stats to InfluxDB".format(name)) else: try: self.client.write_points(self._normalize(name, columns, points), time_precision="s") except Exception as e: # Log level set to debug instead of error (see: issue #1561) logger.debug("Cannot export {} stats to InfluxDB ({})".format(name, e)) else: logger.debug("Export {} stats to InfluxDB".format(name)) glances-3.4.0.3/glances/exports/glances_influxdb2.py0000644000175000017500000001426614432156570022302 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """InfluxDB (from to InfluxDB 1.8+) interface class.""" import sys from platform import node from glances.logger import logger from glances.exports.glances_export import GlancesExport from influxdb_client import InfluxDBClient, WriteOptions class Export(GlancesExport): """This class manages the InfluxDB export module.""" def __init__(self, config=None, args=None): """Init the InfluxDB export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.org = None self.bucket = None self.token = None # Optional configuration keys self.protocol = 'http' self.prefix = None self.tags = None self.hostname = None self.interval = None # Load the InfluxDB configuration file self.export_enable = self.load_conf( 'influxdb2', mandatories=['host', 'port', 'user', 'password', 'org', 'bucket', 'token'], options=['protocol', 'prefix', 'tags', 'interval'], ) if not self.export_enable: exit('Missing influxdb2 config') # Interval between two exports (in seconds) if self.interval is None: self.interval = 0 try: self.interval = int(self.interval) except ValueError: logger.warning("InfluxDB export interval is not an integer, use default value") self.interval = 0 # and should be set to the Glances refresh time if the value is 0 self.interval = self.interval if self.interval > 0 else self.args.time logger.debug("InfluxDB export interval is set to {} seconds".format(self.interval)) # The hostname is always add as a tag self.hostname = node().split('.')[0] # Init the InfluxDB client self.client = self.init() def init(self): """Init the connection to the InfluxDB server.""" if not self.export_enable: return None url = '{}://{}:{}'.format(self.protocol, self.host, self.port) try: # See docs: https://influxdb-client.readthedocs.io/en/stable/api.html#influxdbclient client = InfluxDBClient(url=url, enable_gzip=False, verify_ssl=False, org=self.org, token=self.token) except Exception as e: logger.critical("Cannot connect to InfluxDB server '%s' (%s)" % (url, e)) sys.exit(2) else: logger.info( "Connected to InfluxDB server version {} ({})".format(client.health().version, client.health().message) ) # Create the write client write_client = client.write_api( write_options=WriteOptions( batch_size=500, flush_interval=self.interval * 1000, jitter_interval=2000, retry_interval=5000, max_retries=5, max_retry_delay=30000, exponential_base=2, ) ) return write_client def _normalize(self, name, columns, points): """Normalize data for the InfluxDB's data model. :return: a list of measurements. """ ret = [] # Build initial dict by crossing columns and point data_dict = dict(zip(columns, points)) # issue1871 - Check if a key exist. If a key exist, the value of # the key should be used as a tag to identify the measurement. keys_list = [k.split('.')[0] for k in columns if k.endswith('.key')] if len(keys_list) == 0: keys_list = [None] for measurement in keys_list: # Manage field if measurement is not None: fields = { k.replace('{}.'.format(measurement), ''): data_dict[k] for k in data_dict if k.startswith('{}.'.format(measurement)) } else: fields = data_dict # Transform to InfluxDB datamodel # https://docs.influxdata.com/influxdb/v2.0/reference/syntax/line-protocol/ for k in fields: # Do not export empty (None) value if fields[k] is None: continue # Convert numerical to float try: fields[k] = float(fields[k]) except (TypeError, ValueError): # Convert others to string try: fields[k] = str(fields[k]) except (TypeError, ValueError): pass # Manage tags tags = self.parse_tags(self.tags) if 'key' in fields and fields['key'] in fields: # Create a tag from the key # Tag should be an string (see InfluxDB data model) tags[fields['key']] = str(fields[fields['key']]) # Remove it from the field list (can not be a field and a tag) fields.pop(fields['key']) # Add the hostname as a tag tags['hostname'] = self.hostname # Add the measurement to the list ret.append({'measurement': name, 'tags': tags, 'fields': fields}) return ret def export(self, name, columns, points): """Write the points to the InfluxDB server.""" # Manage prefix if self.prefix is not None: name = self.prefix + '.' + name # Write input to the InfluxDB database if len(points) == 0: logger.debug("Cannot export empty {} stats to InfluxDB".format(name)) else: try: self.client.write(self.bucket, self.org, self._normalize(name, columns, points), time_precision="s") except Exception as e: # Log level set to debug instead of error (see: issue #1561) logger.debug("Cannot export {} stats to InfluxDB ({})".format(name, e)) else: logger.debug("Export {} stats to InfluxDB".format(name)) glances-3.4.0.3/glances/exports/glances_statsd.py0000644000175000017500000000440114432156570021675 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Statsd interface class.""" from numbers import Number from glances.compat import range from glances.logger import logger from glances.exports.glances_export import GlancesExport from statsd import StatsClient class Export(GlancesExport): """This class manages the Statsd export module.""" def __init__(self, config=None, args=None): """Init the Statsd export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) # N/A # Optional configuration keys self.prefix = None # Load the configuration file self.export_enable = self.load_conf('statsd', mandatories=['host', 'port'], options=['prefix']) if not self.export_enable: exit('Missing STATSD config') # Default prefix for stats is 'glances' if self.prefix is None: self.prefix = 'glances' # Init the Statsd client self.client = self.init() def init(self): """Init the connection to the Statsd server.""" if not self.export_enable: return None logger.info("Stats will be exported to StatsD server: {}:{}".format(self.host, self.port)) return StatsClient(self.host, int(self.port), prefix=self.prefix) def export(self, name, columns, points): """Export the stats to the Statsd server.""" for i in range(len(columns)): if not isinstance(points[i], Number): continue stat_name = '{}.{}'.format(name, columns[i]) stat_value = points[i] try: self.client.gauge(normalize(stat_name), stat_value) except Exception as e: logger.error("Can not export stats to Statsd (%s)" % e) logger.debug("Export {} stats to Statsd".format(name)) def normalize(name): """Normalize name for the Statsd convention""" # Name should not contain some specials chars (issue #1068) ret = name.replace(':', '') ret = ret.replace('%', '') ret = ret.replace(' ', '_') return ret glances-3.4.0.3/glances/exports/glances_cassandra.py0000644000175000017500000001052514432156570022336 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Cassandra/Scylla interface class.""" import sys from datetime import datetime from numbers import Number from glances.logger import logger from glances.exports.glances_export import GlancesExport from cassandra.auth import PlainTextAuthProvider from cassandra.cluster import Cluster from cassandra.util import uuid_from_time from cassandra import InvalidRequest class Export(GlancesExport): """This class manages the Cassandra/Scylla export module.""" def __init__(self, config=None, args=None): """Init the Cassandra export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.keyspace = None # Optional configuration keys self.protocol_version = 3 self.replication_factor = 2 self.table = None self.username = None self.password = None # Load the Cassandra configuration file section self.export_enable = self.load_conf( 'cassandra', mandatories=['host', 'port', 'keyspace'], options=['protocol_version', 'replication_factor', 'table', 'username', 'password'], ) if not self.export_enable: sys.exit(2) # Init the Cassandra client self.cluster, self.session = self.init() def init(self): """Init the connection to the Cassandra server.""" if not self.export_enable: return None # if username and/or password are not set the connection will try to connect with no auth auth_provider = PlainTextAuthProvider(username=self.username, password=self.password) # Cluster try: cluster = Cluster( [self.host], port=int(self.port), protocol_version=int(self.protocol_version), auth_provider=auth_provider, ) session = cluster.connect() except Exception as e: logger.critical("Cannot connect to Cassandra cluster '%s:%s' (%s)" % (self.host, self.port, e)) sys.exit(2) # Keyspace try: session.set_keyspace(self.keyspace) except InvalidRequest: logger.info("Create keyspace {} on the Cassandra cluster".format(self.keyspace)) c = "CREATE KEYSPACE %s WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '%s' }" % ( self.keyspace, self.replication_factor, ) session.execute(c) session.set_keyspace(self.keyspace) logger.info( "Stats will be exported to Cassandra cluster {} ({}) in keyspace {}".format( cluster.metadata.cluster_name, cluster.metadata.all_hosts(), self.keyspace ) ) # Table try: session.execute( "CREATE TABLE %s (plugin text, time timeuuid, stat map, PRIMARY KEY (plugin, time)) \ WITH CLUSTERING ORDER BY (time DESC)" % self.table ) except Exception: logger.debug("Cassandra table %s already exist" % self.table) return cluster, session def export(self, name, columns, points): """Write the points to the Cassandra cluster.""" logger.debug("Export {} stats to Cassandra".format(name)) # Remove non number stats and convert all to float (for Boolean) data = {k: float(v) for (k, v) in dict(zip(columns, points)).iteritems() if isinstance(v, Number)} # Write input to the Cassandra table try: stmt = "INSERT INTO {} (plugin, time, stat) VALUES (?, ?, ?)".format(self.table) query = self.session.prepare(stmt) self.session.execute(query, (name, uuid_from_time(datetime.now()), data)) except Exception as e: logger.error("Cannot export {} stats to Cassandra ({})".format(name, e)) def exit(self): """Close the Cassandra export module.""" # To ensure all connections are properly closed self.session.shutdown() self.cluster.shutdown() # Call the father method super(Export, self).exit() glances-3.4.0.3/glances/exports/glances_json.py0000644000175000017500000000427214432156570021352 0ustar epsilonepsilon"""JSON interface class.""" import sys from glances.globals import json_dumps from glances.compat import PY3, listkeys from glances.logger import logger from glances.exports.glances_export import GlancesExport class Export(GlancesExport): """This class manages the JSON export module.""" def __init__(self, config=None, args=None): """Init the JSON export IF.""" super(Export, self).__init__(config=config, args=args) # JSON file name self.json_filename = args.export_json_file # Set the JSON output file try: if PY3: self.json_file = open(self.json_filename, 'w') self.json_file.close() else: self.json_file = open(self.json_filename, 'wb') self.json_file.close() except IOError as e: logger.critical("Cannot create the JSON file: {}".format(e)) sys.exit(2) logger.info("Exporting stats to file: {}".format(self.json_filename)) self.export_enable = True # Buffer for dict of stats self.buffer = {} def exit(self): """Close the JSON file.""" logger.debug("Finalise export interface %s" % self.export_name) self.json_file.close() def export(self, name, columns, points): """Export the stats to the JSON file.""" # Check for completion of loop for all exports if name == self.last_exported_list()[0] and self.buffer != {}: # One whole loop has been completed # Flush stats to file logger.debug("Exporting stats ({}) to JSON file ({})".format(listkeys(self.buffer), self.json_filename)) # Export stats to JSON file if PY3: with open(self.json_filename, "w") as self.json_file: self.json_file.write("{}\n".format(json_dumps(self.buffer))) else: with open(self.json_filename, "wb") as self.json_file: self.json_file.write("{}\n".format(json_dumps(self.buffer))) # Reset buffer self.buffer = {} # Add current stat to the buffer self.buffer[name] = dict(zip(columns, points)) glances-3.4.0.3/glances/exports/glances_restful.py0000644000175000017500000000416614432156570022067 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """RESTful interface class.""" from glances.compat import listkeys from glances.logger import logger from glances.exports.glances_export import GlancesExport from requests import post class Export(GlancesExport): """This class manages the RESTful export module. Be aware that stats will be exported in one big POST request""" def __init__(self, config=None, args=None): """Init the RESTful export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.protocol = None self.path = None # Load the RESTful section in the configuration file self.export_enable = self.load_conf('restful', mandatories=['host', 'port', 'protocol', 'path']) if not self.export_enable: exit('Missing RESTFUL config') # Init the stats buffer # It's a dict of stats self.buffer = {} # Init the Statsd client self.client = self.init() def init(self): """Init the connection to the RESTful server.""" if not self.export_enable: return None # Build the RESTful URL where the stats will be posted url = '{}://{}:{}{}'.format(self.protocol, self.host, self.port, self.path) logger.info("Stats will be exported to the RESTful endpoint {}".format(url)) return url def export(self, name, columns, points): """Export the stats to the Statsd server.""" if name == self.last_exported_list()[0] and self.buffer != {}: # One complete loop have been done logger.debug("Export stats ({}) to RESTful endpoint ({})".format(listkeys(self.buffer), self.client)) # Export stats post(self.client, json=self.buffer, allow_redirects=True) # Reset buffer self.buffer = {} # Add current stat to the buffer self.buffer[name] = dict(zip(columns, points)) glances-3.4.0.3/glances/exports/glances_couchdb.py0000644000175000017500000000554114432156570022010 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """CouchDB interface class.""" import sys from datetime import datetime from glances.logger import logger from glances.exports.glances_export import GlancesExport import couchdb import couchdb.mapping class Export(GlancesExport): """This class manages the CouchDB export module.""" def __init__(self, config=None, args=None): """Init the CouchDB export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.db = None # Optional configuration keys self.user = None self.password = None # Load the Cassandra configuration file section self.export_enable = self.load_conf('couchdb', mandatories=['host', 'port', 'db'], options=['user', 'password']) if not self.export_enable: sys.exit(2) # Init the CouchDB client self.client = self.init() def init(self): """Init the connection to the CouchDB server.""" if not self.export_enable: return None if self.user is None: server_uri = 'http://{}:{}/'.format(self.host, self.port) else: # Force https if a login/password is provided # Related to https://github.com/nicolargo/glances/issues/2124 server_uri = 'https://{}:{}@{}:{}/'.format(self.user, self.password, self.host, self.port) try: s = couchdb.Server(server_uri) except Exception as e: logger.critical("Cannot connect to CouchDB server %s (%s)" % (server_uri, e)) sys.exit(2) else: logger.info("Connected to the CouchDB server") try: s[self.db] except Exception: # Database did not exist # Create it... s.create(self.db) else: logger.info("There is already a %s database" % self.db) return s def database(self): """Return the CouchDB database object""" return self.client[self.db] def export(self, name, columns, points): """Write the points to the CouchDB server.""" logger.debug("Export {} stats to CouchDB".format(name)) # Create DB input data = dict(zip(columns, points)) # Set the type to the current stat name data['type'] = name data['time'] = couchdb.mapping.DateTimeField()._to_json(datetime.now()) # Write data to the CouchDB database # Result can be seen at: http://127.0.0.1:5984/_utils try: self.client[self.db].save(data) except Exception as e: logger.error("Cannot export {} stats to CouchDB ({})".format(name, e)) glances-3.4.0.3/glances/exports/glances_prometheus.py0000644000175000017500000000621714432156570022575 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Prometheus interface class.""" import sys from numbers import Number from glances.logger import logger from glances.exports.glances_export import GlancesExport from glances.compat import iteritems, listkeys from prometheus_client import start_http_server, Gauge class Export(GlancesExport): """This class manages the Prometheus export module.""" METRIC_SEPARATOR = '_' def __init__(self, config=None, args=None): """Init the Prometheus export IF.""" super(Export, self).__init__(config=config, args=args) # Load the Prometheus configuration file section self.export_enable = self.load_conf('prometheus', mandatories=['host', 'port', 'labels'], options=['prefix']) if not self.export_enable: exit('Missing PROMETHEUS config') # Optionals configuration keys if self.prefix is None: self.prefix = 'glances' if self.labels is None: self.labels = 'src:glances' # Init the metric dict # Perhaps a better method is possible... self._metric_dict = {} # Init the Prometheus Exporter self.init() def init(self): """Init the Prometheus Exporter""" try: start_http_server(port=int(self.port), addr=self.host) except Exception as e: logger.critical("Can not start Prometheus exporter on {}:{} ({})".format(self.host, self.port, e)) sys.exit(2) else: logger.info("Start Prometheus exporter on {}:{}".format(self.host, self.port)) def export(self, name, columns, points): """Write the points to the Prometheus exporter using Gauge.""" logger.debug("Export {} stats to Prometheus exporter".format(name)) # Remove non number stats and convert all to float (for Boolean) data = {k: float(v) for (k, v) in iteritems(dict(zip(columns, points))) if isinstance(v, Number)} # Write metrics to the Prometheus exporter for k, v in iteritems(data): # Prometheus metric name: prefix_ metric_name = self.prefix + self.METRIC_SEPARATOR + str(name) + self.METRIC_SEPARATOR + str(k) # Prometheus is very sensible to the metric name # See: https://prometheus.io/docs/practices/naming/ for c in ['.', '-', '/', ' ']: metric_name = metric_name.replace(c, self.METRIC_SEPARATOR) # Get the labels labels = self.parse_tags(self.labels) # Manage an internal dict between metric name and Gauge if metric_name not in self._metric_dict: self._metric_dict[metric_name] = Gauge(metric_name, k, labelnames=listkeys(labels)) # Write the value if hasattr(self._metric_dict[metric_name], 'labels'): # Add the labels (see issue #1255) self._metric_dict[metric_name].labels(**labels).set(v) else: self._metric_dict[metric_name].set(v) glances-3.4.0.3/glances/exports/glances_graphite.py0000644000175000017500000000634114432156570022203 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Graphite interface class.""" import sys from numbers import Number from glances.logger import logger from glances.exports.glances_export import GlancesExport from graphitesend import GraphiteClient class Export(GlancesExport): """This class manages the Graphite export module.""" def __init__(self, config=None, args=None): """Init the Graphite export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) # N/A # Optional configuration keys self.debug = False self.prefix = None self.system_name = None # Load the configuration file self.export_enable = self.load_conf('graphite', mandatories=['host', 'port'], options=['prefix', 'system_name']) if not self.export_enable: sys.exit(2) # Default prefix for stats is 'glances' if self.prefix is None: self.prefix = 'glances' # Convert config option type self.port = int(self.port) # Init the Graphite client self.client = self.init() def init(self): """Init the connection to the Graphite server.""" client = None if not self.export_enable: return client try: if self.system_name is None: client = GraphiteClient( graphite_server=self.host, graphite_port=self.port, prefix=self.prefix, lowercase_metric_names=True, debug=self.debug, ) else: client = GraphiteClient( graphite_server=self.host, graphite_port=self.port, prefix=self.prefix, system_name=self.system_name, lowercase_metric_names=True, debug=self.debug, ) except Exception as e: logger.error("Can not write data to Graphite server: {}:{} ({})".format(self.host, self.port, e)) client = None else: logger.info("Stats will be exported to Graphite server: {}:{}".format(self.host, self.port)) return client def export(self, name, columns, points): """Export the stats to the Graphite server.""" if self.client is None: return False before_filtering_dict = dict(zip([normalize('{}.{}'.format(name, i)) for i in columns], points)) after_filtering_dict = dict(filter(lambda i: isinstance(i[1], Number), before_filtering_dict.items())) try: self.client.send_dict(after_filtering_dict) except Exception as e: logger.error("Can not export stats to Graphite (%s)" % e) return False else: logger.debug("Export {} stats to Graphite".format(name)) return True def normalize(name): """Normalize name for the Graphite convention""" # Name should not contain space ret = name.replace(' ', '_') return ret glances-3.4.0.3/glances/exports/__init__.py0000644000175000017500000000000014432156570020425 0ustar epsilonepsilonglances-3.4.0.3/glances/exports/glances_zeromq.py0000644000175000017500000000554714432156570021724 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ZeroMQ interface class.""" import sys from glances.compat import b from glances.logger import logger from glances.exports.glances_export import GlancesExport from glances.globals import json_dumps import zmq from zmq.utils.strtypes import asbytes class Export(GlancesExport): """This class manages the ZeroMQ export module.""" def __init__(self, config=None, args=None): """Init the ZeroMQ export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.prefix = None # Optionals configuration keys # N/A # Load the ZeroMQ configuration file section ([export_zeromq]) self.export_enable = self.load_conf('zeromq', mandatories=['host', 'port', 'prefix'], options=[]) if not self.export_enable: exit('Missing ZEROMQ config') # Init the ZeroMQ context self.context = None self.client = self.init() def init(self): """Init the connection to the CouchDB server.""" if not self.export_enable: return None server_uri = 'tcp://{}:{}'.format(self.host, self.port) try: self.context = zmq.Context() publisher = self.context.socket(zmq.PUB) publisher.bind(server_uri) except Exception as e: logger.critical("Cannot connect to ZeroMQ server %s (%s)" % (server_uri, e)) sys.exit(2) else: logger.info("Connected to the ZeroMQ server %s" % server_uri) return publisher def exit(self): """Close the socket and context""" if self.client is not None: self.client.close() if self.context is not None: self.context.destroy() def export(self, name, columns, points): """Write the points to the ZeroMQ server.""" logger.debug("Export {} stats to ZeroMQ".format(name)) # Create DB input data = dict(zip(columns, points)) # Do not publish empty stats if data == {}: return False # Glances envelopes the stats in a publish message with two frames: # - First frame containing the following prefix (STRING) # - Second frame with the Glances plugin name (STRING) # - Third frame with the Glances plugin stats (JSON) message = [b(self.prefix), b(name), asbytes(json_dumps(data))] # Write data to the ZeroMQ bus # Result can be view: tcp://host:port try: self.client.send_multipart(message) except Exception as e: logger.error("Cannot export {} stats to ZeroMQ ({})".format(name, e)) return True glances-3.4.0.3/glances/exports/glances_export.py0000644000175000017500000001616714432156570021730 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ I am your father... ...for all Glances exports IF. """ from glances.globals import json_dumps from glances.compat import NoOptionError, NoSectionError, iteritems, iterkeys from glances.logger import logger class GlancesExport(object): """Main class for Glances export IF.""" # List of non exportable plugins # @TODO: remove this part and make all plugins exportable (see issue #1556) # @TODO: also make this list configurable by the user (see issue #1443) non_exportable_plugins = [ 'alert', 'amps', 'help', 'now', 'plugin', 'ports', 'processlist', 'psutilversion', 'quicklook', ] def __init__(self, config=None, args=None): """Init the export class.""" # Export name (= module name without glances_) self.export_name = self.__class__.__module__[len('glances_') :] logger.debug("Init export module %s" % self.export_name) # Init the config & args self.config = config self.args = args # By default export is disabled # Needs to be set to True in the __init__ class of child self.export_enable = False # Mandatory for (most of) the export module self.host = None self.port = None # Save last export list self._last_exported_list = None def exit(self): """Close the export module.""" logger.debug("Finalise export interface %s" % self.export_name) def load_conf(self, section, mandatories=['host', 'port'], options=None): """Load the export
configuration in the Glances configuration file. :param section: name of the export section to load :param mandatories: a list of mandatory parameters to load :param options: a list of optional parameters to load :returns: Boolean -- True if section is found """ options = options or [] if self.config is None: return False # By default read the mandatory host:port items try: for opt in mandatories: setattr(self, opt, self.config.get_value(section, opt)) except NoSectionError: logger.error("No {} configuration found".format(section)) return False except NoOptionError as e: logger.error("Error in the {} configuration ({})".format(section, e)) return False # Load options for opt in options: try: setattr(self, opt, self.config.get_value(section, opt)) except NoOptionError: pass logger.debug("Load {} from the Glances configuration file".format(section)) logger.debug("{} parameters: {}".format(section, {opt: getattr(self, opt) for opt in mandatories + options})) return True def get_item_key(self, item): """Return the value of the item 'key'.""" ret = None try: ret = item[item['key']] except KeyError: logger.error("No 'key' available in {}".format(item)) if isinstance(ret, list): return ret[0] else: return ret def parse_tags(self, tags): """Parse tags into a dict. :param tags: a comma separated list of 'key:value' pairs. Example: foo:bar,spam:eggs :return: a dict of tags. Example: {'foo': 'bar', 'spam': 'eggs'} """ d_tags = {} if tags: try: d_tags = dict([x.split(':') for x in tags.split(',')]) except ValueError: # one of the 'key:value' pairs was missing logger.info('Invalid tags passed: %s', tags) d_tags = {} return d_tags def plugins_to_export(self, stats): """Return the list of plugins to export. :param stats: the stats object :return: a list of plugins to export """ return [p for p in stats.getPluginsList() if p not in self.non_exportable_plugins] def last_exported_list(self): """Return the list of plugins last exported.""" return self._last_exported_list def update(self, stats): """Update stats to a server. The method builds two lists: names and values and calls the export method to export the stats. Note: this class can be overwritten (for example in CSV and Graph). """ if not self.export_enable: return False # Get all the stats & limits self._last_exported_list = self.plugins_to_export(stats) all_stats = stats.getAllExportsAsDict(plugin_list=self.last_exported_list()) all_limits = stats.getAllLimitsAsDict(plugin_list=self.last_exported_list()) # Loop over plugins to export for plugin in self.last_exported_list(): if isinstance(all_stats[plugin], dict): all_stats[plugin].update(all_limits[plugin]) elif isinstance(all_stats[plugin], list): # TypeError: string indices must be integers (Network plugin) #1054 for i in all_stats[plugin]: i.update(all_limits[plugin]) else: continue export_names, export_values = self.__build_export(all_stats[plugin]) self.export(plugin, export_names, export_values) return True def __build_export(self, stats): """Build the export lists.""" export_names = [] export_values = [] if isinstance(stats, dict): # Stats is a dict # Is there a key ? if 'key' in iterkeys(stats) and stats['key'] in iterkeys(stats): pre_key = '{}.'.format(stats[stats['key']]) else: pre_key = '' # Walk through the dict for key, value in iteritems(stats): if isinstance(value, bool): value = json_dumps(value) if isinstance(value, list): try: value = value[0] except IndexError: value = '' if isinstance(value, dict): item_names, item_values = self.__build_export(value) item_names = [pre_key + key.lower() + str(i) for i in item_names] export_names += item_names export_values += item_values else: export_names.append(pre_key + key.lower()) export_values.append(value) elif isinstance(stats, list): # Stats is a list (of dict) # Recursive loop through the list for item in stats: item_names, item_values = self.__build_export(item) export_names += item_names export_values += item_values return export_names, export_values def export(self, name, columns, points): # This method should be implemented by each exporter pass glances-3.4.0.3/glances/exports/glances_elasticsearch.py0000644000175000017500000000557014432156570023215 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ElasticSearch interface class.""" import sys from datetime import datetime from glances.logger import logger from glances.exports.glances_export import GlancesExport from elasticsearch import Elasticsearch, helpers class Export(GlancesExport): """This class manages the ElasticSearch (ES) export module.""" def __init__(self, config=None, args=None): """Init the ES export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.index = None # Load the ES configuration file self.export_enable = self.load_conf( 'elasticsearch', mandatories=['scheme', 'host', 'port', 'index'], options=[] ) if not self.export_enable: sys.exit(2) # Init the ES client self.client = self.init() def init(self): """Init the connection to the ES server.""" if not self.export_enable: return None try: es = Elasticsearch(hosts=['{}://{}:{}'.format(self.scheme, self.host, self.port)]) except Exception as e: logger.critical( "Cannot connect to ElasticSearch server %s://%s:%s (%s)" % (self.scheme, self.host, self.port, e) ) sys.exit(2) if not es.ping(): logger.critical("Cannot ping the ElasticSearch server %s://%s:%s" % (self.scheme, self.host, self.port)) sys.exit(2) else: logger.info("Connected to the ElasticSearch server %s://%s:%s" % (self.scheme, self.host, self.port)) return es def export(self, name, columns, points): """Write the points to the ES server.""" logger.debug("Export {} stats to ElasticSearch".format(name)) # Generate index name with the index field + current day index = '{}-{}'.format(self.index, datetime.utcnow().strftime("%Y.%m.%d")) # Create DB input # https://elasticsearch-py.readthedocs.io/en/master/helpers.html actions = [] dt_now = datetime.utcnow().isoformat('T') action = { "_index": index, "_id": '{}.{}'.format(name, dt_now), "_type": 'glances-{}'.format(name), "_source": {"plugin": name, "timestamp": dt_now}, } action['_source'].update(zip(columns, [str(p) for p in points])) actions.append(action) logger.debug("Exporting the following object to elasticsearch: {}".format(action)) # Write input to the ES index try: helpers.bulk(self.client, actions) except Exception as e: logger.error("Cannot export {} stats to ElasticSearch ({})".format(name, e)) glances-3.4.0.3/glances/exports/glances_opentsdb.py0000644000175000017500000000472514432156570022222 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """OpenTSDB interface class.""" import sys from numbers import Number from glances.compat import range from glances.logger import logger from glances.exports.glances_export import GlancesExport import potsdb class Export(GlancesExport): """This class manages the OpenTSDB export module.""" def __init__(self, config=None, args=None): """Init the OpenTSDB export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) # N/A # Optionals configuration keys self.prefix = None self.tags = None # Load the configuration file self.export_enable = self.load_conf('opentsdb', mandatories=['host', 'port'], options=['prefix', 'tags']) if not self.export_enable: exit('Missing OPENTSDB config') # Default prefix for stats is 'glances' if self.prefix is None: self.prefix = 'glances' # Init the OpenTSDB client self.client = self.init() def init(self): """Init the connection to the OpenTSDB server.""" if not self.export_enable: return None try: db = potsdb.Client(self.host, port=int(self.port), check_host=True) except Exception as e: logger.critical("Cannot connect to OpenTSDB server %s:%s (%s)" % (self.host, self.port, e)) sys.exit(2) return db def export(self, name, columns, points): """Export the stats to the Statsd server.""" for i in range(len(columns)): if not isinstance(points[i], Number): continue stat_name = '{}.{}.{}'.format(self.prefix, name, columns[i]) stat_value = points[i] tags = self.parse_tags(self.tags) try: self.client.send(stat_name, stat_value, **tags) except Exception as e: logger.error("Can not export stats %s to OpenTSDB (%s)" % (name, e)) logger.debug("Export {} stats to OpenTSDB".format(name)) def exit(self): """Close the OpenTSDB export module.""" # Waits for all outstanding metrics to be sent and background thread closes self.client.wait() # Call the father method super(Export, self).exit() glances-3.4.0.3/glances/exports/glances_mqtt.py0000644000175000017500000001056714432156570021372 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """MQTT interface class.""" import socket import string import sys from glances.logger import logger from glances.exports.glances_export import GlancesExport from glances.globals import json_dumps # Import paho for MQTT from requests import certs import paho.mqtt.client as paho class Export(GlancesExport): """This class manages the MQTT export module.""" def __init__(self, config=None, args=None): """Init the MQTT export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.user = None self.password = None self.topic = None self.tls = 'true' # Load the MQTT configuration file self.export_enable = self.load_conf( 'mqtt', mandatories=['host', 'password'], options=['port', 'user', 'topic', 'tls', 'topic_structure'] ) if not self.export_enable: exit('Missing MQTT config') # Get the current hostname self.hostname = socket.gethostname() self.port = int(self.port) or 8883 self.topic = self.topic or 'glances' self.user = self.user or 'glances' self.tls = self.tls and self.tls.lower() == 'true' self.topic_structure = (self.topic_structure or 'per-metric').lower() if self.topic_structure not in ['per-metric', 'per-plugin']: logger.critical("topic_structure must be either 'per-metric' or 'per-plugin'.") sys.exit(2) # Init the MQTT client self.client = self.init() if not self.client: exit("MQTT client initialization failed") def init(self): """Init the connection to the MQTT server.""" if not self.export_enable: return None try: client = paho.Client(client_id='glances_' + self.hostname, clean_session=False) client.username_pw_set(username=self.user, password=self.password) if self.tls: client.tls_set(certs.where()) client.connect(host=self.host, port=self.port) client.loop_start() return client except Exception as e: logger.critical("Connection to MQTT server %s:%s failed with error: %s " % (self.host, self.port, e)) return None def export(self, name, columns, points): """Write the points in MQTT.""" WHITELIST = '_-' + string.ascii_letters + string.digits SUBSTITUTE = '_' def whitelisted(s, whitelist=WHITELIST, substitute=SUBSTITUTE): return ''.join(c if c in whitelist else substitute for c in s) if self.topic_structure == 'per-metric': for sensor, value in zip(columns, points): try: sensor = [whitelisted(name) for name in sensor.split('.')] to_export = [self.topic, self.hostname, name] to_export.extend(sensor) topic = '/'.join(to_export) self.client.publish(topic, value) except Exception as e: logger.error("Can not export stats to MQTT server (%s)" % e) elif self.topic_structure == 'per-plugin': try: topic = '/'.join([self.topic, self.hostname, name]) sensor_values = dict(zip(columns, points)) # Build the value to output output_value = dict() for key in sensor_values: split_key = key.split('.') # Add the parent keys if they don't exist current_level = output_value for depth in range(len(split_key) - 1): if split_key[depth] not in current_level: current_level[split_key[depth]] = dict() current_level = current_level[split_key[depth]] # Add the value current_level[split_key[len(split_key) - 1]] = sensor_values[key] json_value = json_dumps(output_value) self.client.publish(topic, json_value) except Exception as e: logger.error("Can not export stats to MQTT server (%s)" % e) glances-3.4.0.3/glances/exports/glances_mongodb.py0000644000175000017500000000435514432156570022030 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """MongoDB interface class.""" import sys from glances.logger import logger from glances.exports.glances_export import GlancesExport import pymongo from urllib.parse import quote_plus class Export(GlancesExport): """This class manages the MongoDB export module.""" def __init__(self, config=None, args=None): """Init the MongoDB export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.db = None # Optional configuration keys self.user = None self.password = None # Load the Cassandra configuration file section self.export_enable = self.load_conf('mongodb', mandatories=['host', 'port', 'db'], options=['user', 'password']) if not self.export_enable: sys.exit(2) # Init the CouchDB client self.client = self.init() def init(self): """Init the connection to the CouchDB server.""" if not self.export_enable: return None server_uri = 'mongodb://%s:%s@%s:%s' % (quote_plus(self.user), quote_plus(self.password), self.host, self.port) try: client = pymongo.MongoClient(server_uri) client.admin.command('ping') except Exception as e: logger.critical("Cannot connect to MongoDB server %s:%s (%s)" % (self.host, self.port, e)) sys.exit(2) else: logger.info("Connected to the MongoDB server") return client def database(self): """Return the CouchDB database object""" return self.client[self.db] def export(self, name, columns, points): """Write the points to the MongoDB server.""" logger.debug("Export {} stats to MongoDB".format(name)) # Create DB input data = dict(zip(columns, points)) # Write data to the MongoDB database try: self.database()[name].insert_one(data) except Exception as e: logger.error("Cannot export {} stats to MongoDB ({})".format(name, e)) glances-3.4.0.3/glances/exports/glances_csv.py0000644000175000017500000001070614432156570021173 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """CSV interface class.""" import os.path import csv import sys import time from glances.compat import PY3, iterkeys, itervalues from glances.logger import logger from glances.exports.glances_export import GlancesExport class Export(GlancesExport): """This class manages the CSV export module.""" def __init__(self, config=None, args=None): """Init the CSV export IF.""" super(Export, self).__init__(config=config, args=args) # CSV file name self.csv_filename = args.export_csv_file # Set the CSV output file # (see https://github.com/nicolargo/glances/issues/1525) if not os.path.isfile(self.csv_filename) or args.export_csv_overwrite: # File did not exist, create it file_mode = 'w' self.old_header = None else: # A CSV file already exit, append new data file_mode = 'a' # Header will be checked later # Get the existing one try: self.csv_file = open_csv_file(self.csv_filename, 'r') reader = csv.reader(self.csv_file) except IOError as e: logger.critical("Cannot open existing CSV file: {}".format(e)) sys.exit(2) self.old_header = next(reader, None) self.csv_file.close() try: self.csv_file = open_csv_file(self.csv_filename, file_mode) self.writer = csv.writer(self.csv_file) except IOError as e: logger.critical("Cannot create the CSV file: {}".format(e)) sys.exit(2) logger.info("Stats exported to CSV file: {}".format(self.csv_filename)) self.export_enable = True self.first_line = True def exit(self): """Close the CSV file.""" logger.debug("Finalise export interface %s" % self.export_name) self.csv_file.close() def update(self, stats): """Update stats in the CSV output file.""" # Get the stats all_stats = stats.getAllExportsAsDict(plugin_list=self.plugins_to_export(stats)) # Init data with timestamp (issue#708) if self.first_line: csv_header = ['timestamp'] csv_data = [time.strftime('%Y-%m-%d %H:%M:%S')] # Loop over plugins to export for plugin in self.plugins_to_export(stats): if isinstance(all_stats[plugin], list): for stat in sorted(all_stats[plugin], key=lambda x: x['key']): # First line: header if self.first_line: csv_header += ['{}_{}_{}'.format(plugin, self.get_item_key(stat), item) for item in stat] # Others lines: stats csv_data += itervalues(stat) elif isinstance(all_stats[plugin], dict): # First line: header if self.first_line: fieldnames = iterkeys(all_stats[plugin]) csv_header += ('{}_{}'.format(plugin, fieldname) for fieldname in fieldnames) # Others lines: stats csv_data += itervalues(all_stats[plugin]) # Export to CSV # Manage header if self.first_line: if self.old_header is None: # New file, write the header on top on the CSV file self.writer.writerow(csv_header) # File already exist, check if header are compatible if self.old_header != csv_header and self.old_header is not None: # Header are different, log an error and do not write data logger.error("Cannot append data to existing CSV file. Headers are different.") logger.debug("Old header: {}".format(self.old_header)) logger.debug("New header: {}".format(csv_header)) else: # Header are equals, ready to write data self.old_header = None # Only do this once self.first_line = False # Manage data if self.old_header is None: self.writer.writerow(csv_data) self.csv_file.flush() def open_csv_file(file_name, file_mode): if PY3: csv_file = open(file_name, file_mode, newline='') else: csv_file = open(file_name, file_mode + 'b') return csv_file glances-3.4.0.3/glances/exports/glances_kafka.py0000644000175000017500000000545114432156570021456 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Kafka interface class.""" import sys from glances.logger import logger from glances.exports.glances_export import GlancesExport from glances.globals import json_dumps from kafka import KafkaProducer class Export(GlancesExport): """This class manages the Kafka export module.""" def __init__(self, config=None, args=None): """Init the Kafka export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.topic = None # Optional configuration keys self.compression = None self.tags = None # Load the Kafka configuration file section self.export_enable = self.load_conf( 'kafka', mandatories=['host', 'port', 'topic'], options=['compression', 'tags'] ) if not self.export_enable: exit('Missing KAFKA config') # Init the kafka client self.client = self.init() def init(self): """Init the connection to the Kafka server.""" if not self.export_enable: return None # Build the server URI with host and port server_uri = '{}:{}'.format(self.host, self.port) try: s = KafkaProducer( bootstrap_servers=server_uri, value_serializer=lambda v: json_dumps(v).encode('utf-8'), compression_type=self.compression, ) except Exception as e: logger.critical("Cannot connect to Kafka server %s (%s)" % (server_uri, e)) sys.exit(2) else: logger.info("Connected to the Kafka server %s" % server_uri) return s def export(self, name, columns, points): """Write the points to the kafka server.""" logger.debug("Export {} stats to Kafka".format(name)) # Create DB input data = dict(zip(columns, points)) if self.tags is not None: data.update(self.parse_tags(self.tags)) # Send stats to the kafka topic # key= # value=JSON dict try: self.client.send( self.topic, # Kafka key name needs to be bytes #1593 key=name.encode('utf-8'), value=data, ) except Exception as e: logger.error("Cannot export {} stats to Kafka ({})".format(name, e)) def exit(self): """Close the Kafka export module.""" # To ensure all connections are properly closed self.client.flush() self.client.close() # Call the father method super(Export, self).exit() glances-3.4.0.3/glances/exports/glances_riemann.py0000644000175000017500000000403414432156570022026 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Riemann interface class.""" import socket from numbers import Number from glances.compat import range from glances.logger import logger from glances.exports.glances_export import GlancesExport # Import bernhard for Riemann import bernhard class Export(GlancesExport): """This class manages the Riemann export module.""" def __init__(self, config=None, args=None): """Init the Riemann export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) # N/A # Optional configuration keys # N/A # Load the Riemann configuration self.export_enable = self.load_conf('riemann', mandatories=['host', 'port'], options=[]) if not self.export_enable: exit('Missing RIEMANN config') # Get the current hostname self.hostname = socket.gethostname() # Init the Riemann client self.client = self.init() def init(self): """Init the connection to the Riemann server.""" if not self.export_enable: return None try: client = bernhard.Client(host=self.host, port=self.port) return client except Exception as e: logger.critical("Connection to Riemann failed : %s " % e) return None def export(self, name, columns, points): """Write the points in Riemann.""" for i in range(len(columns)): if not isinstance(points[i], Number): continue else: data = {'host': self.hostname, 'service': name + " " + columns[i], 'metric': points[i]} logger.debug(data) try: self.client.send(data) except Exception as e: logger.error("Cannot export stats to Riemann (%s)" % e) glances-3.4.0.3/glances/exports/glances_rabbitmq.py0000644000175000017500000000551014432156570022176 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """JMS interface class.""" import datetime import socket import sys from numbers import Number from glances.compat import range from glances.logger import logger from glances.exports.glances_export import GlancesExport # Import pika for RabbitMQ import pika class Export(GlancesExport): """This class manages the rabbitMQ export module.""" def __init__(self, config=None, args=None): """Init the RabbitMQ export IF.""" super(Export, self).__init__(config=config, args=args) # Mandatory configuration keys (additional to host and port) self.user = None self.password = None self.queue = None self.protocol = None # Optionals configuration keys # N/A # Load the rabbitMQ configuration file self.export_enable = self.load_conf( 'rabbitmq', mandatories=['host', 'port', 'user', 'password', 'queue'], options=['protocol'] ) if not self.export_enable: exit('Missing RABBITMQ config') # Get the current hostname self.hostname = socket.gethostname() # Init the rabbitmq client self.client = self.init() def init(self): """Init the connection to the rabbitmq server.""" if not self.export_enable: return None # Needed for when protocol is not specified and when protocol is upper case # only amqp and amqps supported if self.protocol is not None and (self.protocol.lower() == 'amqps'): self.protocol = 'amqps' else: self.protocol = 'amqp' try: parameters = pika.URLParameters( self.protocol + '://' + self.user + ':' + self.password + '@' + self.host + ':' + self.port + '/' ) connection = pika.BlockingConnection(parameters) channel = connection.channel() return channel except Exception as e: logger.critical("Connection to rabbitMQ server %s:%s failed. %s" % (self.host, self.port, e)) sys.exit(2) def export(self, name, columns, points): """Write the points in RabbitMQ.""" data = 'hostname=' + self.hostname + ', name=' + name + ', dateinfo=' + datetime.datetime.utcnow().isoformat() for i in range(len(columns)): if not isinstance(points[i], Number): continue else: data += ", " + columns[i] + "=" + str(points[i]) logger.debug(data) try: self.client.basic_publish(exchange='', routing_key=self.queue, body=data) except Exception as e: logger.error("Can not export stats to RabbitMQ (%s)" % e) glances-3.4.0.3/glances/password_list.py0000644000175000017500000000423614432156570020076 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances passwords list.""" from glances.logger import logger from glances.password import GlancesPassword class GlancesPasswordList(GlancesPassword): """Manage the Glances passwords list for the client|browser/server.""" _section = "passwords" def __init__(self, config=None, args=None): super(GlancesPasswordList, self).__init__() # password_dict is a dict (JSON compliant) # {'host': 'password', ... } # Load the configuration file self._password_dict = self.load(config) def load(self, config): """Load the password from the configuration file.""" password_dict = {} if config is None: logger.warning("No configuration file available. Cannot load password list.") elif not config.has_section(self._section): logger.warning("No [%s] section in the configuration file. Cannot load password list." % self._section) else: logger.info("Start reading the [%s] section in the configuration file" % self._section) password_dict = dict(config.items(self._section)) # Password list loaded logger.info("%s password(s) loaded from the configuration file" % len(password_dict)) return password_dict def get_password(self, host=None): """Get the password from a Glances client or server. If host=None, return the current server list (dict). Else, return the host's password (or the default one if defined or None) """ if host is None: return self._password_dict else: try: return self._password_dict[host] except (KeyError, TypeError): try: return self._password_dict['default'] except (KeyError, TypeError): return None def set_password(self, host, password): """Set a password for a specific host.""" self._password_dict[host] = password glances-3.4.0.3/glances/config.py0000644000175000017500000002662714432156570016456 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the configuration file.""" import os import sys import multiprocessing from io import open import re from glances.compat import ConfigParser, NoOptionError, NoSectionError, system_exec from glances.globals import BSD, LINUX, MACOS, SUNOS, WINDOWS from glances.logger import logger def user_config_dir(): r"""Return the per-user config dir (full path). - Linux, *BSD, SunOS: ~/.config/glances - macOS: ~/Library/Application Support/glances - Windows: %APPDATA%\glances """ if WINDOWS: path = os.environ.get('APPDATA') elif MACOS: path = os.path.expanduser('~/Library/Application Support') else: path = os.environ.get('XDG_CONFIG_HOME') or os.path.expanduser('~/.config') if path is None: path = '' else: path = os.path.join(path, 'glances') return path def user_cache_dir(): r"""Return the per-user cache dir (full path). - Linux, *BSD, SunOS: ~/.cache/glances - macOS: ~/Library/Caches/glances - Windows: {%LOCALAPPDATA%,%APPDATA%}\glances\cache """ if WINDOWS: path = os.path.join(os.environ.get('LOCALAPPDATA') or os.environ.get('APPDATA'), 'glances', 'cache') elif MACOS: path = os.path.expanduser('~/Library/Caches/glances') else: path = os.path.join(os.environ.get('XDG_CACHE_HOME') or os.path.expanduser('~/.cache'), 'glances') return path def system_config_dir(): r"""Return the system-wide config dir (full path). - Linux, SunOS: /etc/glances - *BSD, macOS: /usr/local/etc/glances - Windows: %APPDATA%\glances """ if LINUX or SUNOS: path = '/etc' elif BSD or MACOS: path = '/usr/local/etc' else: path = os.environ.get('APPDATA') if path is None: path = '' else: path = os.path.join(path, 'glances') return path def default_config_dir(): r"""Return the system-wide config dir (full path). - Linux, SunOS, *BSD, macOS: /usr/share/doc (as defined in the setup.py files) - Windows: %APPDATA%\glances """ if LINUX or SUNOS or BSD or MACOS: path = '/usr/share/doc' else: path = os.environ.get('APPDATA') if path is None: path = '' else: path = os.path.join(path, 'glances') return path class Config(object): """This class is used to access/read config file, if it exists. :param config_dir: the path to search for config file :type config_dir: str or None """ def __init__(self, config_dir=None): self.config_dir = config_dir self.config_filename = 'glances.conf' self._loaded_config_file = None # Re pattern for optimize research of `foo` self.re_pattern = re.compile(r'(\`.+?\`)') try: self.parser = ConfigParser(interpolation=None) except TypeError: self.parser = ConfigParser() self.read() def config_file_paths(self): r"""Get a list of config file paths. The list is built taking into account of the OS, priority and location. * custom path: /path/to/glances * Linux, SunOS: ~/.config/glances, /etc/glances * *BSD: ~/.config/glances, /usr/local/etc/glances * macOS: ~/Library/Application Support/glances, /usr/local/etc/glances * Windows: %APPDATA%\glances The config file will be searched in the following order of priority: * /path/to/file (via -C flag) * user's home directory (per-user settings) * system-wide directory (system-wide settings) * default pip directory (as defined in the setup.py file) """ paths = [] if self.config_dir: paths.append(self.config_dir) paths.append(os.path.join(user_config_dir(), self.config_filename)) paths.append(os.path.join(system_config_dir(), self.config_filename)) paths.append(os.path.join(default_config_dir(), self.config_filename)) return paths def read(self): """Read the config file, if it exists. Using defaults otherwise.""" for config_file in self.config_file_paths(): logger.debug('Search glances.conf file in {}'.format(config_file)) if os.path.exists(config_file): try: with open(config_file, encoding='utf-8') as f: self.parser.read_file(f) self.parser.read(f) logger.info("Read configuration file '{}'".format(config_file)) except UnicodeDecodeError as err: logger.error("Can not read configuration file '{}': {}".format(config_file, err)) sys.exit(1) # Save the loaded configuration file path (issue #374) self._loaded_config_file = config_file break # Set the default values for section not configured self.sections_set_default() def sections_set_default(self): # Globals if not self.parser.has_section('global'): self.parser.add_section('global') self.set_default('global', 'strftime_format', '') self.set_default('global', 'check_update', 'true') # Quicklook if not self.parser.has_section('quicklook'): self.parser.add_section('quicklook') self.set_default_cwc('quicklook', 'cpu') self.set_default_cwc('quicklook', 'mem') self.set_default_cwc('quicklook', 'swap') # CPU if not self.parser.has_section('cpu'): self.parser.add_section('cpu') self.set_default_cwc('cpu', 'user') self.set_default_cwc('cpu', 'system') self.set_default_cwc('cpu', 'steal') # By default I/O wait should be lower than 1/number of CPU cores iowait_bottleneck = (1.0 / multiprocessing.cpu_count()) * 100.0 self.set_default_cwc( 'cpu', 'iowait', [ str(iowait_bottleneck - (iowait_bottleneck * 0.20)), str(iowait_bottleneck - (iowait_bottleneck * 0.10)), str(iowait_bottleneck), ], ) # Context switches bottleneck identification #1212 ctx_switches_bottleneck = (500000 * 0.10) * multiprocessing.cpu_count() self.set_default_cwc( 'cpu', 'ctx_switches', [ str(ctx_switches_bottleneck - (ctx_switches_bottleneck * 0.20)), str(ctx_switches_bottleneck - (ctx_switches_bottleneck * 0.10)), str(ctx_switches_bottleneck), ], ) # Per-CPU if not self.parser.has_section('percpu'): self.parser.add_section('percpu') self.set_default_cwc('percpu', 'user') self.set_default_cwc('percpu', 'system') # Load if not self.parser.has_section('load'): self.parser.add_section('load') self.set_default_cwc('load', cwc=['0.7', '1.0', '5.0']) # Mem if not self.parser.has_section('mem'): self.parser.add_section('mem') self.set_default_cwc('mem') # Swap if not self.parser.has_section('memswap'): self.parser.add_section('memswap') self.set_default_cwc('memswap') # NETWORK if not self.parser.has_section('network'): self.parser.add_section('network') self.set_default_cwc('network', 'rx') self.set_default_cwc('network', 'tx') # FS if not self.parser.has_section('fs'): self.parser.add_section('fs') self.set_default_cwc('fs') # Sensors if not self.parser.has_section('sensors'): self.parser.add_section('sensors') self.set_default_cwc('sensors', 'temperature_core', cwc=['60', '70', '80']) self.set_default_cwc('sensors', 'temperature_hdd', cwc=['45', '52', '60']) self.set_default_cwc('sensors', 'battery', cwc=['80', '90', '95']) # Process list if not self.parser.has_section('processlist'): self.parser.add_section('processlist') self.set_default_cwc('processlist', 'cpu') self.set_default_cwc('processlist', 'mem') @property def loaded_config_file(self): """Return the loaded configuration file.""" return self._loaded_config_file def as_dict(self): """Return the configuration as a dict""" dictionary = {} for section in self.parser.sections(): dictionary[section] = {} for option in self.parser.options(section): dictionary[section][option] = self.parser.get(section, option) return dictionary def sections(self): """Return a list of all sections.""" return self.parser.sections() def items(self, section): """Return the items list of a section.""" return self.parser.items(section) def has_section(self, section): """Return info about the existence of a section.""" return self.parser.has_section(section) def set_default_cwc(self, section, option_header=None, cwc=['50', '70', '90']): """Set default values for careful, warning and critical.""" if option_header is None: header = '' else: header = option_header + '_' self.set_default(section, header + 'careful', cwc[0]) self.set_default(section, header + 'warning', cwc[1]) self.set_default(section, header + 'critical', cwc[2]) def set_default(self, section, option, default): """If the option did not exist, create a default value.""" if not self.parser.has_option(section, option): self.parser.set(section, option, default) def get_value(self, section, option, default=None): """Get the value of an option, if it exists. If it did not exist, then return the default value. It allows user to define dynamic configuration key (see issue#1204) Dynamic value should starts and end with the ` char Example: prefix=`hostname` """ ret = default try: ret = self.parser.get(section, option) except (NoOptionError, NoSectionError): pass # Search a substring `foo` and replace it by the result of its exec if ret is not None: try: match = self.re_pattern.findall(ret) for m in match: ret = ret.replace(m, system_exec(m[1:-1])) except TypeError: pass return ret def get_int_value(self, section, option, default=0): """Get the int value of an option, if it exists.""" try: return self.parser.getint(section, option) except (NoOptionError, NoSectionError): return int(default) def get_float_value(self, section, option, default=0.0): """Get the float value of an option, if it exists.""" try: return self.parser.getfloat(section, option) except (NoOptionError, NoSectionError): return float(default) def get_bool_value(self, section, option, default=True): """Get the bool value of an option, if it exists.""" try: return self.parser.getboolean(section, option) except (NoOptionError, NoSectionError): return bool(default) glances-3.4.0.3/glances/timer.py0000644000175000017500000000306714432156570016322 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """The timer manager.""" from time import time from datetime import datetime # Global list to manage the elapsed time last_update_times = {} def getTimeSinceLastUpdate(IOType): """Return the elapsed time since last update.""" global last_update_times # assert(IOType in ['net', 'disk', 'process_disk']) current_time = time() last_time = last_update_times.get(IOType) if not last_time: time_since_update = 1 else: time_since_update = current_time - last_time last_update_times[IOType] = current_time return time_since_update class Timer(object): """The timer class. A simple chronometer.""" def __init__(self, duration): self.duration = duration self.start() def start(self): self.target = time() + self.duration def reset(self, duration=None): if duration is not None: self.set(duration) self.start() def get(self): return self.duration - (self.target - time()) def set(self, duration): self.duration = duration def finished(self): return time() > self.target class Counter(object): """The counter class.""" def __init__(self): self.start() def start(self): self.target = datetime.now() def reset(self): self.start() def get(self): return (datetime.now() - self.target).total_seconds() glances-3.4.0.3/glances/static_list.py0000644000175000017500000000625414432156570017525 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances server static list.""" from socket import gaierror, gethostbyname from glances.compat import range from glances.logger import logger class GlancesStaticServer(object): """Manage the static servers list for the client browser.""" _section = "serverlist" def __init__(self, config=None, args=None): # server_list is a list of dict (JSON compliant) # [ {'key': 'zeroconf name', ip': '172.1.2.3', 'port': 61209, 'cpu': 3, 'mem': 34 ...} ... ] # Load the configuration file self._server_list = self.load(config) def load(self, config): """Load the server list from the configuration file.""" server_list = [] if config is None: logger.debug("No configuration file available. Cannot load server list.") elif not config.has_section(self._section): logger.warning("No [%s] section in the configuration file. Cannot load server list." % self._section) else: logger.info("Start reading the [%s] section in the configuration file" % self._section) for i in range(1, 256): new_server = {} postfix = 'server_%s_' % str(i) # Read the server name (mandatory) for s in ['name', 'port', 'alias']: new_server[s] = config.get_value(self._section, '%s%s' % (postfix, s)) if new_server['name'] is not None: # Manage optional information if new_server['port'] is None: new_server['port'] = '61209' new_server['username'] = 'glances' # By default, try empty (aka no) password new_server['password'] = '' try: new_server['ip'] = gethostbyname(new_server['name']) except gaierror as e: logger.error("Cannot get IP address for server %s (%s)" % (new_server['name'], e)) continue new_server['key'] = new_server['name'] + ':' + new_server['port'] # Default status is 'UNKNOWN' new_server['status'] = 'UNKNOWN' # Server type is 'STATIC' new_server['type'] = 'STATIC' # Add the server to the list logger.debug("Add server %s to the static list" % new_server['name']) server_list.append(new_server) # Server list loaded logger.info("%s server(s) loaded from the configuration file" % len(server_list)) logger.debug("Static server list: %s" % server_list) return server_list def get_servers_list(self): """Return the current server list (list of dict).""" return self._server_list def set_server(self, server_pos, key, value): """Set the key to the value for the server_pos (position in the list).""" self._server_list[server_pos][key] = value glances-3.4.0.3/glances/autodiscover.py0000644000175000017500000002257514432156570017716 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage autodiscover Glances server (thk to the ZeroConf protocol).""" import socket import sys from glances.globals import BSD from glances.logger import logger try: from zeroconf import __version__ as __zeroconf_version, ServiceBrowser, ServiceInfo, Zeroconf zeroconf_tag = True except ImportError: zeroconf_tag = False # Zeroconf 0.17 or higher is needed if zeroconf_tag: zeroconf_min_version = (0, 17, 0) zeroconf_version = tuple([int(num) for num in __zeroconf_version.split('.')]) logger.debug("Zeroconf version {} detected.".format(__zeroconf_version)) if zeroconf_version < zeroconf_min_version: logger.critical("Please install zeroconf 0.17 or higher.") sys.exit(1) # Global var # Recent versions of the zeroconf python package doesn't like a zeroconf type that ends with '._tcp.'. # Correct issue: zeroconf problem with zeroconf_type = "_%s._tcp." % 'glances' #888 zeroconf_type = "_%s._tcp.local." % 'glances' class AutoDiscovered(object): """Class to manage the auto discovered servers dict.""" def __init__(self): # server_dict is a list of dict (JSON compliant) # [ {'key': 'zeroconf name', ip': '172.1.2.3', 'port': 61209, 'cpu': 3, 'mem': 34 ...} ... ] self._server_list = [] def get_servers_list(self): """Return the current server list (list of dict).""" return self._server_list def set_server(self, server_pos, key, value): """Set the key to the value for the server_pos (position in the list).""" self._server_list[server_pos][key] = value def add_server(self, name, ip, port): """Add a new server to the list.""" new_server = { 'key': name, # Zeroconf name with both hostname and port 'name': name.split(':')[0], # Short name 'ip': ip, # IP address seen by the client 'port': port, # TCP port 'username': 'glances', # Default username 'password': '', # Default password 'status': 'UNKNOWN', # Server status: 'UNKNOWN', 'OFFLINE', 'ONLINE', 'PROTECTED' 'type': 'DYNAMIC', } # Server type: 'STATIC' or 'DYNAMIC' self._server_list.append(new_server) logger.debug("Updated servers list (%s servers): %s" % (len(self._server_list), self._server_list)) def remove_server(self, name): """Remove a server from the dict.""" for i in self._server_list: if i['key'] == name: try: self._server_list.remove(i) logger.debug("Remove server %s from the list" % name) logger.debug("Updated servers list (%s servers): %s" % (len(self._server_list), self._server_list)) except ValueError: logger.error("Cannot remove server %s from the list" % name) class GlancesAutoDiscoverListener(object): """Zeroconf listener for Glances server.""" def __init__(self): # Create an instance of the servers list self.servers = AutoDiscovered() def get_servers_list(self): """Return the current server list (list of dict).""" return self.servers.get_servers_list() def set_server(self, server_pos, key, value): """Set the key to the value for the server_pos (position in the list).""" self.servers.set_server(server_pos, key, value) def add_service(self, zeroconf, srv_type, srv_name): """Method called when a new Zeroconf client is detected. Note: the return code will never be used :return: True if the zeroconf client is a Glances server """ if srv_type != zeroconf_type: return False logger.debug("Check new Zeroconf server: %s / %s" % (srv_type, srv_name)) info = zeroconf.get_service_info(srv_type, srv_name) if info and (info.addresses or info.parsed_addresses): address = info.addresses[0] if info.addresses else info.parsed_addresses[0] new_server_ip = socket.inet_ntoa(address) new_server_port = info.port # Add server to the global dict self.servers.add_server(srv_name, new_server_ip, new_server_port) logger.info("New Glances server detected (%s from %s:%s)" % (srv_name, new_server_ip, new_server_port)) else: logger.warning("New Glances server detected, but failed to be get Zeroconf ServiceInfo ") return True def remove_service(self, zeroconf, srv_type, srv_name): """Remove the server from the list.""" self.servers.remove_server(srv_name) logger.info("Glances server %s removed from the autodetect list" % srv_name) class GlancesAutoDiscoverServer(object): """Implementation of the Zeroconf protocol (server side for the Glances client).""" def __init__(self, args=None): if zeroconf_tag: logger.info("Init autodiscover mode (Zeroconf protocol)") try: self.zeroconf = Zeroconf() except socket.error as e: logger.error("Cannot start Zeroconf (%s)" % e) self.zeroconf_enable_tag = False else: self.listener = GlancesAutoDiscoverListener() self.browser = ServiceBrowser(self.zeroconf, zeroconf_type, self.listener) self.zeroconf_enable_tag = True else: logger.error("Cannot start autodiscover mode (Zeroconf lib is not installed)") self.zeroconf_enable_tag = False def get_servers_list(self): """Return the current server list (dict of dict).""" if zeroconf_tag and self.zeroconf_enable_tag: return self.listener.get_servers_list() else: return [] def set_server(self, server_pos, key, value): """Set the key to the value for the server_pos (position in the list).""" if zeroconf_tag and self.zeroconf_enable_tag: self.listener.set_server(server_pos, key, value) def close(self): if zeroconf_tag and self.zeroconf_enable_tag: self.zeroconf.close() class GlancesAutoDiscoverClient(object): """Implementation of the zeroconf protocol (client side for the Glances server).""" def __init__(self, hostname, args=None): if zeroconf_tag: zeroconf_bind_address = args.bind_address try: self.zeroconf = Zeroconf() except socket.error as e: logger.error("Cannot start zeroconf: {}".format(e)) # XXX *BSDs: Segmentation fault (core dumped) # -- https://bitbucket.org/al45tair/netifaces/issues/15 if not BSD: try: # -B @ overwrite the dynamic IPv4 choice if zeroconf_bind_address == '0.0.0.0': zeroconf_bind_address = self.find_active_ip_address() except KeyError: # Issue #528 (no network interface available) pass # Ensure zeroconf_bind_address is an IP address not an host zeroconf_bind_address = socket.gethostbyname(zeroconf_bind_address) # Check IP v4/v6 address_family = socket.getaddrinfo(zeroconf_bind_address, args.port)[0][0] # Start the zeroconf service try: self.info = ServiceInfo( zeroconf_type, '{}:{}.{}'.format(hostname, args.port, zeroconf_type), address=socket.inet_pton(address_family, zeroconf_bind_address), port=args.port, weight=0, priority=0, properties={}, server=hostname, ) except TypeError: # Manage issue 1663 with breaking change on ServiceInfo method # address (only one address) is replaced by addresses (list of addresses) self.info = ServiceInfo( zeroconf_type, name='{}:{}.{}'.format(hostname, args.port, zeroconf_type), addresses=[socket.inet_pton(address_family, zeroconf_bind_address)], port=args.port, weight=0, priority=0, properties={}, server=hostname, ) try: self.zeroconf.register_service(self.info) except Exception as e: logger.error("Error while announcing Glances server: {}".format(e)) else: print("Announce the Glances server on the LAN (using {} IP address)".format(zeroconf_bind_address)) else: logger.error("Cannot announce Glances server on the network: zeroconf library not found.") @staticmethod def find_active_ip_address(): """Try to find the active IP addresses.""" import netifaces # Interface of the default gateway gateway_itf = netifaces.gateways()['default'][netifaces.AF_INET][1] # IP address for the interface return netifaces.ifaddresses(gateway_itf)[netifaces.AF_INET][0]['addr'] def close(self): if zeroconf_tag: self.zeroconf.unregister_service(self.info) self.zeroconf.close() glances-3.4.0.3/glances/stats_server.py0000644000175000017500000000323614432156570017724 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """The stats server manager.""" import collections from glances.stats import GlancesStats from glances.logger import logger class GlancesStatsServer(GlancesStats): """This class stores, updates and gives stats for the server.""" def __init__(self, config=None, args=None): # Init the stats super(GlancesStatsServer, self).__init__(config=config, args=args) # Init the all_stats dict used by the server # all_stats is a dict of dicts filled by the server self.all_stats = collections.defaultdict(dict) # In the update method, disable extended process stats logger.info("Disable extended processes stats in server mode") def update(self, input_stats=None): """Update the stats.""" input_stats = input_stats or {} # Force update of all the stats super(GlancesStatsServer, self).update() # Disable the extended processes stats because it cause an high CPU load self._plugins['processcount'].disable_extended() # Build all_stats variable (concatenation of all the stats) self.all_stats = self._set_stats(input_stats) def _set_stats(self, input_stats): """Set the stats to the input_stats one.""" # Build the all_stats with the get_raw() method of the plugins return {p: self._plugins[p].get_raw() for p in self._plugins if self._plugins[p].is_enabled()} def getAll(self): """Return the stats as a list.""" return self.all_stats glances-3.4.0.3/glances/stats_client.py0000644000175000017500000000400014432156570017662 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """The stats server manager.""" import sys from glances.stats import GlancesStats from glances.globals import sys_path from glances.logger import logger class GlancesStatsClient(GlancesStats): """This class stores, updates and gives stats for the client.""" def __init__(self, config=None, args=None): """Init the GlancesStatsClient class.""" super(GlancesStatsClient, self).__init__(config=config, args=args) # Init the configuration self.config = config # Init the arguments self.args = args def set_plugins(self, input_plugins): """Set the plugin list according to the Glances server.""" header = "glances_" for item in input_plugins: # Import the plugin try: plugin = __import__(header + item) except ImportError: # Server plugin can not be imported from the client side logger.error( "Can not import {} plugin. Please upgrade your Glances client/server version.".format(item) ) else: # Add the plugin to the dictionary # The key is the plugin name # for example, the file glances_xxx.py # generate self._plugins_list["xxx"] = ... logger.debug("Server uses {} plugin".format(item)) self._plugins[item] = plugin.Plugin(args=self.args) # Restoring system path sys.path = sys_path def update(self, input_stats): """Update all the stats.""" # For Glances client mode for p in input_stats: # Update plugin stats with items sent by the server self._plugins[p].set_stats(input_stats[p]) # Update the views for the updated stats self._plugins[p].update_views() glances-3.4.0.3/glances/filter.py0000644000175000017500000001050614432156570016463 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # import re from glances.logger import logger class GlancesFilter(object): """Allow Glances to filter processes >>> f = GlancesFilter() >>> f.filter = '.*python.*' >>> f.filter '.*python.*' >>> f.key None >>> f.filter = 'user:nicolargo' >>> f.filter 'nicolargo' >>> f.key 'user' >>> f.filter = 'username:.*nico.*' >>> f.filter '.*nico.*' >>> f.key 'username' """ def __init__(self): # Filter entered by the user (string) self._filter_input = None # Filter to apply self._filter = None # Filter regular expression self._filter_re = None # Dict key where the filter should be applied # Default is None: search on command line and process name self._filter_key = None @property def filter_input(self): """Return the filter given by the user (as a string)""" return self._filter_input @property def filter(self): """Return the current filter to be applied""" return self._filter @filter.setter def filter(self, value): """Set the filter (as a string) and compute the regular expression A filter could be one of the following: - python > Process name of cmd start with python - .*python.* > Process name of cmd contain python - username:nicolargo > Process of nicolargo user """ self._filter_input = value if value is None: self._filter = None self._filter_key = None else: new_filter = value.split(':') if len(new_filter) == 1: self._filter = new_filter[0] self._filter_key = None else: self._filter = new_filter[1] self._filter_key = new_filter[0] self._filter_re = None if self.filter is not None: logger.info("Set filter to {} on key {}".format(self.filter, self.filter_key)) # Compute the regular expression try: self._filter_re = re.compile(self.filter) logger.debug("Filter regex compilation OK: {}".format(self.filter)) except Exception as e: logger.error("Cannot compile filter regex: {} ({})".format(self.filter, e)) self._filter = None self._filter_re = None self._filter_key = None @property def filter_re(self): """Return the filter regular expression""" return self._filter_re @property def filter_key(self): """key where the filter should be applied""" return self._filter_key def is_filtered(self, process): """Return True if the process item match the current filter :param process: A dict corresponding to the process item. """ if self.filter is None: # No filter => Not filtered return False if self.filter_key is None: # Apply filter on command line and process name return self._is_process_filtered(process, key='name') or self._is_process_filtered(process, key='cmdline') else: # Apply filter on return self._is_process_filtered(process) def _is_process_filtered(self, process, key=None): """Return True if the process[key] should be filtered according to the current filter""" if key is None: key = self.filter_key try: # If the item process[key] is a list, convert it to a string # in order to match it with the current regular expression if isinstance(process[key], list): value = ' '.join(process[key]) else: value = process[key] except KeyError: # If the key did not exist return False try: return self._filter_re.fullmatch(value) is None except (AttributeError, TypeError): # AttributeError - Filter processes crashes with a bad regular expression pattern (issue #665) # TypeError - Filter processes crashes if value is None (issue #1105) return False glances-3.4.0.3/glances/secure.py0000644000175000017500000000425714432156570016472 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Secures functions for Glances""" from glances.compat import nativestr from subprocess import Popen, PIPE import re def secure_popen(cmd): """A more or less secure way to execute system commands Multiple command should be separated with a && :return: the result of the commands """ ret = '' # Split by multiple commands '&&' for c in cmd.split('&&'): ret += __secure_popen(c) return ret def __secure_popen(cmd): """A more or less secure way to execute system command Manage redirection (>) and pipes (|) """ # Split by redirection '>' cmd_split_redirect = cmd.split('>') if len(cmd_split_redirect) > 2: return 'Glances error: Only one file redirection allowed ({})'.format(cmd) elif len(cmd_split_redirect) == 2: stdout_redirect = cmd_split_redirect[1].strip() cmd = cmd_split_redirect[0] else: stdout_redirect = None sub_cmd_stdin = None p_last = None # Split by pipe '|' for sub_cmd in cmd.split('|'): # Split by space character, but do no split spaces within quotes (remove surrounding quotes, though) tmp_split = [_ for _ in list(filter(None, re.split(r'(\s+)|(".*?"+?)|(\'.*?\'+?)', sub_cmd))) if _ != ' '] sub_cmd_split = [_[1:-1] if (_[0] == _[-1] == '"') or (_[0] == _[-1] == '\'') else _ for _ in tmp_split] p = Popen(sub_cmd_split, shell=False, stdin=sub_cmd_stdin, stdout=PIPE, stderr=PIPE) if p_last is not None: # Allow p_last to receive a SIGPIPE if p exits. p_last.stdout.close() p_last = p sub_cmd_stdin = p.stdout p_ret = p_last.communicate() if nativestr(p_ret[1]) == '': # No error ret = nativestr(p_ret[0]) if stdout_redirect is not None: # Write result to redirection file with open(stdout_redirect, "w") as stdout_redirect_file: stdout_redirect_file.write(ret) else: # Error ret = nativestr(p_ret[1]) return ret glances-3.4.0.3/glances/thresholds.py0000644000175000017500000000513114432156570017353 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ Thresholds classes: OK, CAREFUL, WARNING, CRITICAL """ import sys from functools import total_ordering class GlancesThresholds(object): """Class to manage thresholds dict for all Glances plugins: key: Glances stats (example: cpu_user) value: Threshold instance """ threshold_list = ['OK', 'CAREFUL', 'WARNING', 'CRITICAL'] def __init__(self): self.current_module = sys.modules[__name__] self._thresholds = {} def get(self, stat_name=None): """Return the threshold dict. If stat_name is None, return the threshold for all plugins (dict of Threshold*) Else return the Threshold* instance for the given plugin """ if stat_name is None: return self._thresholds if stat_name in self._thresholds: return self._thresholds[stat_name] else: return {} def add(self, stat_name, threshold_description): """Add a new threshold to the dict (key = stat_name)""" if threshold_description not in self.threshold_list: return False else: self._thresholds[stat_name] = getattr( self.current_module, 'GlancesThreshold' + threshold_description.capitalize() )() return True # Global variable uses to share thresholds between Glances components glances_thresholds = GlancesThresholds() @total_ordering class _GlancesThreshold(object): """Father class for all other Thresholds""" def description(self): return self._threshold['description'] def value(self): return self._threshold['value'] def __repr__(self): return str(self._threshold) def __str__(self): return self.description() def __lt__(self, other): return self.value() < other.value() def __eq__(self, other): return self.value() == other.value() class GlancesThresholdOk(_GlancesThreshold): """Ok Threshold class""" _threshold = {'description': 'OK', 'value': 0} class GlancesThresholdCareful(_GlancesThreshold): """Careful Threshold class""" _threshold = {'description': 'CAREFUL', 'value': 1} class GlancesThresholdWarning(_GlancesThreshold): """Warning Threshold class""" _threshold = {'description': 'WARNING', 'value': 2} class GlancesThresholdCritical(_GlancesThreshold): """Warning Threshold class""" _threshold = {'description': 'CRITICAL', 'value': 3} glances-3.4.0.3/glances/events.py0000644000175000017500000001652014432156570016504 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage Glances events (previously Glances logs in Glances < 3.1).""" import time from datetime import datetime from glances.compat import range from glances.processes import glances_processes, sort_stats class GlancesEvents(object): """This class manages events inside the Glances software. Events is a list of event (stored in the self.events_list var) event_state = "OK|CAREFUL|WARNING|CRITICAL" event_type = "CPU*|LOAD|MEM|MON" event_value = value Item (or event) is defined by: ["begin", "end", "WARNING|CRITICAL", "CPU|LOAD|MEM", MAX, AVG, MIN, SUM, COUNT, [top3 process list], "Processes description", "top sort key"] """ def __init__(self): """Init the events class.""" # Maximum size of the events list self.events_max = 10 # Init the logs list self.events_list = [] def get(self): """Return the raw events list.""" return self.events_list def len(self): """Return the number of events in the logs list.""" return self.events_list.__len__() def __event_exist(self, event_type): """Return the event position, if it exists. An event exist if: * end is < 0 * event_type is matching Return -1 if the item is not found. """ for i in range(self.len()): if self.events_list[i][1] < 0 and self.events_list[i][3] == event_type: return i return -1 def get_event_sort_key(self, event_type): """Return the process sort key""" # Process sort depending on alert type if event_type.startswith("MEM"): # Sort TOP process by memory_percent ret = 'memory_percent' elif event_type.startswith("CPU_IOWAIT"): # Sort TOP process by io_counters (only for Linux OS) ret = 'io_counters' else: # Default sort is... ret = 'cpu_percent' return ret def set_process_sort(self, event_type): """Define the process auto sort key from the alert type.""" if glances_processes.auto_sort: glances_processes.set_sort_key(self.get_event_sort_key(event_type)) def reset_process_sort(self): """Reset the process auto sort key.""" if glances_processes.auto_sort: glances_processes.set_sort_key('auto') def add(self, event_state, event_type, event_value, proc_list=None, proc_desc="", peak_time=6): """Add a new item to the logs list. If 'event' is a 'new one', add it at the beginning of the list. If 'event' is not a 'new one', update the list . If event < peak_time then the alert is not set. """ proc_list = proc_list or glances_processes.getlist() # Add or update the log event_index = self.__event_exist(event_type) if event_index < 0: # Event did not exist, add it self._create_event(event_state, event_type, event_value, proc_list, proc_desc, peak_time) else: # Event exist, update it self._update_event(event_index, event_state, event_type, event_value, proc_list, proc_desc, peak_time) return self.len() def _create_event(self, event_state, event_type, event_value, proc_list, proc_desc, peak_time): """Add a new item in the log list. Item is added only if the criticality (event_state) is WARNING or CRITICAL. """ if event_state == "WARNING" or event_state == "CRITICAL": # Define the automatic process sort key self.set_process_sort(event_type) # Create the new log item # Time is stored in Epoch format # Epoch -> DMYHMS = datetime.fromtimestamp(epoch) item = [ time.mktime(datetime.now().timetuple()), # START DATE -1, # END DATE event_state, # STATE: WARNING|CRITICAL event_type, # TYPE: CPU, LOAD, MEM... event_value, # MAX event_value, # AVG event_value, # MIN event_value, # SUM 1, # COUNT [], # TOP 3 PROCESS LIST proc_desc, # MONITORED PROCESSES DESC glances_processes.sort_key, ] # TOP PROCESS SORT KEY # Add the item to the list self.events_list.insert(0, item) # Limit the list to 'events_max' items if self.len() > self.events_max: self.events_list.pop() return True else: return False def _update_event(self, event_index, event_state, event_type, event_value, proc_list, proc_desc, peak_time): """Update an event in the list""" if event_state == "OK" or event_state == "CAREFUL": # Reset the automatic process sort key self.reset_process_sort() # Set the end of the events end_time = time.mktime(datetime.now().timetuple()) if end_time - self.events_list[event_index][0] > peak_time: # If event is > peak_time seconds self.events_list[event_index][1] = end_time else: # If event <= peak_time seconds, ignore self.events_list.remove(self.events_list[event_index]) else: # Update the item self.set_process_sort(event_type) # State if event_state == "CRITICAL": self.events_list[event_index][2] = event_state # Min value self.events_list[event_index][6] = min(self.events_list[event_index][6], event_value) # Max value self.events_list[event_index][4] = max(self.events_list[event_index][4], event_value) # Average value self.events_list[event_index][7] += event_value self.events_list[event_index][8] += 1 self.events_list[event_index][5] = self.events_list[event_index][7] / self.events_list[event_index][8] # TOP PROCESS LIST (only for CRITICAL ALERT) if event_state == "CRITICAL": events_sort_key = self.get_event_sort_key(event_type) # Sort the current process list to retrieve the TOP 3 processes self.events_list[event_index][9] = sort_stats(proc_list, events_sort_key)[0:3] self.events_list[event_index][11] = events_sort_key # MONITORED PROCESSES DESC self.events_list[event_index][10] = proc_desc return True def clean(self, critical=False): """Clean the logs list by deleting finished items. By default, only delete WARNING message. If critical = True, also delete CRITICAL message. """ # Create a new clean list clean_events_list = [] while self.len() > 0: item = self.events_list.pop() if item[1] < 0 or (not critical and item[2].startswith("CRITICAL")): clean_events_list.insert(0, item) # The list is now the clean one self.events_list = clean_events_list return self.len() glances_events = GlancesEvents() glances-3.4.0.3/glances/amps_list.py0000644000175000017500000001351314432156570017172 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the AMPs list.""" import os import re import threading from glances.compat import listkeys, iteritems from glances.logger import logger from glances.globals import amps_path from glances.processes import glances_processes class AmpsList(object): """This class describes the optional application monitoring process list. The AMP list is a list of processes with a specific monitoring action. The list (Python list) is composed of items (Python dict). An item is defined (dict keys): *... """ # The dict __amps_dict = {} def __init__(self, args, config): """Init the AMPs list.""" self.args = args self.config = config # Load the AMP configurations / scripts self.load_configs() def load_configs(self): """Load the AMP configuration files.""" if self.config is None: return False # Display a warning (deprecated) message if the monitor section exist if "monitor" in self.config.sections(): logger.warning( "A deprecated [monitor] section exists in the Glances configuration file. You should use the new \ Applications Monitoring Process module instead \ (http://glances.readthedocs.io/en/develop/aoa/amps.html)." ) header = "glances_" # For each AMP script, call the load_config method for s in self.config.sections(): if s.startswith("amp_"): # An AMP section exists in the configuration file # If an AMP script exist in the glances/amps folder, use it amp_conf_name = s[4:] amp_script = os.path.join(amps_path, header + s[4:] + ".py") if not os.path.exists(amp_script): # If not, use the default script amp_script = os.path.join(amps_path, "glances_default.py") try: amp = __import__(os.path.basename(amp_script)[:-3]) except ImportError as e: logger.warning("Missing Python Lib ({}), cannot load {} AMP".format(e, amp_conf_name)) except Exception as e: logger.warning("Cannot load {} AMP ({})".format(amp_conf_name, e)) else: # Add the AMP to the dictionary # The key is the AMP name # for example, the file glances_xxx.py # generate self._amps_list["xxx"] = ... self.__amps_dict[amp_conf_name] = amp.Amp(name=amp_conf_name, args=self.args) # Load the AMP configuration self.__amps_dict[amp_conf_name].load_config(self.config) # Log AMPs list logger.debug("AMPs list: {}".format(self.getList())) return True def __str__(self): return str(self.__amps_dict) def __repr__(self): return self.__amps_dict def __getitem__(self, item): return self.__amps_dict[item] def __len__(self): return len(self.__amps_dict) def update(self): """Update the command result attributed.""" # Get the current processes list (once) processlist = glances_processes.getlist() # Iter upon the AMPs dict for k, v in iteritems(self.get()): if not v.enable(): # Do not update if the enable tag is set continue if v.regex() is None: # If there is no regex, execute anyway (see issue #1690) v.set_count(0) # Call the AMP update method thread = threading.Thread(target=v.update_wrapper, args=[[]]) thread.start() continue amps_list = self._build_amps_list(v, processlist) if len(amps_list) > 0: # At least one process is matching the regex logger.debug("AMPS: {} processes {} detected ({})".format(len(amps_list), k, amps_list)) # Call the AMP update method thread = threading.Thread(target=v.update_wrapper, args=[amps_list]) thread.start() else: # Set the process number to 0 v.set_count(0) if v.count_min() is not None and v.count_min() > 0: # Only display the "No running process message" if count_min is defined v.set_result("No running process") return self.__amps_dict def _build_amps_list(self, amp_value, processlist): """Return the AMPS process list according to the amp_value Search application monitored processes by a regular expression """ ret = [] try: # Search in both cmdline and name (for kernel thread, see #1261) for p in processlist: if (re.search(amp_value.regex(), p['name']) is not None) or ( p['cmdline'] is not None and p['cmdline'] != [] and re.search(amp_value.regex(), ' '.join(p['cmdline'])) is not None ): ret.append( {'pid': p['pid'], 'cpu_percent': p['cpu_percent'], 'memory_percent': p['memory_percent']} ) except (TypeError, KeyError) as e: logger.debug("Can not build AMPS list ({})".format(e)) return ret def getList(self): """Return the AMPs list.""" return listkeys(self.__amps_dict) def get(self): """Return the AMPs dict.""" return self.__amps_dict def set(self, new_dict): """Set the AMPs dict.""" self.__amps_dict = new_dict glances-3.4.0.3/glances/programs.py0000644000175000017500000000545314432156570017035 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # # from glances.logger import logger # This constant defines the list of available processes sort key sort_programs_key_list = ['cpu_percent', 'memory_percent', 'cpu_times', 'io_counters', 'name'] def processes_to_programs(processes): """Convert a list of processes to a list of programs.""" # Start to build a dict of programs (key is program name) programs_dict = {} key = 'name' for p in processes: if p[key] not in programs_dict: # Create a new entry in the dict (new program) programs_dict[p[key]] = { 'time_since_update': p['time_since_update'], # some values can be None, e.g. macOS system processes 'num_threads': p['num_threads'] or 0, 'cpu_percent': p['cpu_percent'] or 0, 'memory_percent': p['memory_percent'] or 0, 'cpu_times': p['cpu_times'] or (), 'memory_info': p['memory_info'] or (), 'io_counters': p['io_counters'] or (), 'childrens': [p['pid']], # Others keys are not used # but should be set to be compliant with the existing process_list 'name': p['name'], 'cmdline': [p['name']], 'pid': '_', 'username': p['username'] if 'username' in p else '_', 'nice': p['nice'], 'status': p['status'], } else: # Update a existing entry in the dict (existing program) # some values can be None, e.g. macOS system processes programs_dict[p[key]]['num_threads'] += p['num_threads'] or 0 programs_dict[p[key]]['cpu_percent'] += p['cpu_percent'] or 0 programs_dict[p[key]]['memory_percent'] += p['memory_percent'] or 0 programs_dict[p[key]]['cpu_times'] += p['cpu_times'] or () programs_dict[p[key]]['memory_info'] += p['memory_info'] or () programs_dict[p[key]]['io_counters'] += p['io_counters'] programs_dict[p[key]]['childrens'].append(p['pid']) # If all the subprocess has the same value, display it programs_dict[p[key]]['username'] = ( p['username'] if ('username' in p) and (p['username'] == programs_dict[p[key]]['username']) else '_' ) programs_dict[p[key]]['nice'] = p['nice'] if p['nice'] == programs_dict[p[key]]['nice'] else '_' programs_dict[p[key]]['status'] = p['status'] if p['status'] == programs_dict[p[key]]['status'] else '_' # Convert the dict to a list of programs return [programs_dict[p] for p in programs_dict] glances-3.4.0.3/glances/__init__.py0000644000175000017500000001270014432156570016733 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # # """Init the Glances software.""" # Import system libs import locale import platform import signal import sys # Global name # Version should start and end with a numerical char # See https://packaging.python.org/specifications/core-metadata/#version __version__ = '3.4.0.3' __author__ = 'Nicolas Hennion ' __license__ = 'LGPLv3' # Import psutil try: from psutil import __version__ as psutil_version except ImportError: print('psutil library not found. Glances cannot start.') sys.exit(1) # Import Glances libs # Note: others Glances libs will be imported optionally from glances.compat import PY3 from glances.logger import logger from glances.main import GlancesMain from glances.timer import Counter # Check locale try: locale.setlocale(locale.LC_ALL, '') except locale.Error: print("Warning: Unable to set locale. Expect encoding problems.") # Check Python version if sys.version_info < (2, 7) or (3, 0) <= sys.version_info < (3, 4): print('Glances requires at least Python 2.7 or 3.4 to run.') sys.exit(1) # Check psutil version psutil_min_version = (5, 3, 0) psutil_version_info = tuple([int(num) for num in psutil_version.split('.')]) if psutil_version_info < psutil_min_version: print('psutil 5.3.0 or higher is needed. Glances cannot start.') sys.exit(1) # Trac malloc is only available on Python 3.4 or higher if PY3: import tracemalloc def __signal_handler(signal, frame): logger.debug("Signal {} catched".format(signal)) end() def end(): """Stop Glances.""" try: mode.end() except (NameError, KeyError): # NameError: name 'mode' is not defined in case of interrupt shortly... # ...after starting the server mode (issue #1175) pass logger.info("Glances stopped gracefully") # The end... sys.exit(0) def start(config, args): """Start Glances.""" # Load mode global mode if args.trace_malloc or args.memory_leak: tracemalloc.start() start_duration = Counter() if core.is_standalone(): from glances.standalone import GlancesStandalone as GlancesMode elif core.is_client(): if core.is_client_browser(): from glances.client_browser import GlancesClientBrowser as GlancesMode else: from glances.client import GlancesClient as GlancesMode elif core.is_server(): from glances.server import GlancesServer as GlancesMode elif core.is_webserver(): from glances.webserver import GlancesWebServer as GlancesMode # Init the mode logger.info("Start {} mode".format(GlancesMode.__name__)) mode = GlancesMode(config=config, args=args) # Start the main loop logger.debug("Glances started in {} seconds".format(start_duration.get())) if args.stop_after: logger.info('Glances will be stopped in ~{} seconds'.format(args.stop_after * args.time * args.memory_leak * 2)) if args.memory_leak: print( 'Memory leak detection, please wait ~{} seconds...'.format( args.stop_after * args.time * args.memory_leak * 2 ) ) # First run without dump to fill the memory mode.serve_n(args.stop_after) # Then start the memory-leak loop snapshot_begin = tracemalloc.take_snapshot() if args.stdout_issue or args.stdout_apidoc: # Serve once for issue/test mode mode.serve_issue() else: # Serve forever mode.serve_forever() if args.memory_leak: snapshot_end = tracemalloc.take_snapshot() snapshot_diff = snapshot_end.compare_to(snapshot_begin, 'filename') memory_leak = sum([s.size_diff for s in snapshot_diff]) print("Memory consumption: {0:.1f}KB (see log for details)".format(memory_leak / 1000)) logger.info("Memory consumption (top 5):") for stat in snapshot_diff[:5]: logger.info(stat) elif args.trace_malloc: # See more options here: https://docs.python.org/3/library/tracemalloc.html snapshot = tracemalloc.take_snapshot() top_stats = snapshot.statistics("filename") print("[ Trace malloc - Top 10 ]") for stat in top_stats[:10]: print(stat) # Shutdown mode.end() def main(): """Main entry point for Glances. Select the mode (standalone, client or server) Run it... """ # SIGHUP not available on Windows (see issue #2408) if sys.platform.startswith('win'): signal_list = (signal.SIGTERM, signal.SIGINT) else: signal_list = (signal.SIGTERM, signal.SIGINT, signal.SIGHUP) # Catch the kill signal for sig in signal_list: signal.signal(sig, __signal_handler) # Log Glances and psutil version logger.info('Start Glances {}'.format(__version__)) logger.info( '{} {} ({}) and psutil {} detected'.format( platform.python_implementation(), platform.python_version(), sys.executable, psutil_version ) ) # Share global var global core # Create the Glances main instance # Glances options from the command line are read first (in __init__) # then the options from the config file (in parse_args) core = GlancesMain() # Glances can be ran in standalone, client or server mode start(config=core.get_config(), args=core.get_args()) glances-3.4.0.3/glances/webserver.py0000644000175000017500000000222314432156570017177 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Glances Web Interface (Bottle based).""" from glances.globals import WINDOWS from glances.processes import glances_processes from glances.stats import GlancesStats from glances.outputs.glances_bottle import GlancesBottle class GlancesWebServer(object): """This class creates and manages the Glances Web server session.""" def __init__(self, config=None, args=None): # Init stats self.stats = GlancesStats(config, args) if not WINDOWS and args.no_kernel_threads: # Ignore kernel threads in process list glances_processes.disable_kernel_threads() # Initial system information update self.stats.update() # Init the Bottle Web server self.web = GlancesBottle(config=config, args=args) def serve_forever(self): """Main loop for the Web server.""" self.web.start(self.stats) def end(self): """End of the Web server.""" self.web.end() self.stats.end() glances-3.4.0.3/glances/processes.py0000644000175000017500000005647414432156570017222 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # import os from glances.compat import iterkeys from glances.globals import BSD, LINUX, MACOS, WINDOWS from glances.timer import Timer, getTimeSinceLastUpdate from glances.filter import GlancesFilter from glances.programs import processes_to_programs from glances.logger import logger import psutil # This constant defines the list of available processes sort key sort_processes_key_list = ['cpu_percent', 'memory_percent', 'username', 'cpu_times', 'io_counters', 'name'] # Sort dictionary for human sort_for_human = { 'io_counters': 'disk IO', 'cpu_percent': 'CPU consumption', 'memory_percent': 'memory consumption', 'cpu_times': 'process time', 'username': 'user name', 'name': 'processs name', None: 'None', } class GlancesProcesses(object): """Get processed stats using the psutil library.""" def __init__(self, cache_timeout=60): """Init the class to collect stats about processes.""" # Init the args, coming from the GlancesStandalone class # Should be set by the set_args method self.args = None # Add internals caches because psutil do not cache all the stats # See: https://github.com/giampaolo/psutil/issues/462 self.username_cache = {} self.cmdline_cache = {} # The internals caches will be cleaned each 'cache_timeout' seconds self.cache_timeout = cache_timeout # First iteration, no cache self.cache_timer = Timer(0) # Init the io_old dict used to compute the IO bitrate # key = pid # value = [ read_bytes_old, write_bytes_old ] self.io_old = {} # Init stats self.auto_sort = None self._sort_key = None # Default processes sort key is 'auto' # Can be overwrite from the configuration file (issue#1536) => See glances_processlist.py init self.set_sort_key('auto', auto=True) self.processlist = [] self.reset_processcount() # Cache is a dict with key=pid and value = dict of cached value self.processlist_cache = {} # Tag to enable/disable the processes stats (to reduce the Glances CPU consumption) # Default is to enable the processes stats self.disable_tag = False # Extended stats for top process is enable by default self.disable_extended_tag = False self.extended_process = None # Test if the system can grab io_counters try: p = psutil.Process() p.io_counters() except Exception as e: logger.warning('PsUtil can not grab processes io_counters ({})'.format(e)) self.disable_io_counters = True else: logger.debug('PsUtil can grab processes io_counters') self.disable_io_counters = False # Test if the system can grab gids try: p = psutil.Process() p.gids() except Exception as e: logger.warning('PsUtil can not grab processes gids ({})'.format(e)) self.disable_gids = True else: logger.debug('PsUtil can grab processes gids') self.disable_gids = False # Maximum number of processes showed in the UI (None if no limit) self._max_processes = None # Process filter is a regular expression self._filter = GlancesFilter() # Whether or not to hide kernel threads self.no_kernel_threads = False # Store maximums values in a dict # Used in the UI to highlight the maximum value self._max_values_list = ('cpu_percent', 'memory_percent') # { 'cpu_percent': 0.0, 'memory_percent': 0.0 } self._max_values = {} self.reset_max_values() def set_args(self, args): """Set args.""" self.args = args def reset_processcount(self): """Reset the global process count""" self.processcount = {'total': 0, 'running': 0, 'sleeping': 0, 'thread': 0, 'pid_max': None} def update_processcount(self, plist): """Update the global process count from the current processes list""" # Update the maximum process ID (pid) number self.processcount['pid_max'] = self.pid_max # For each key in the processcount dict # count the number of processes with the same status for k in iterkeys(self.processcount): self.processcount[k] = len(list(filter(lambda v: v['status'] is k, plist))) # Compute thread self.processcount['thread'] = sum(i['num_threads'] for i in plist if i['num_threads'] is not None) # Compute total self.processcount['total'] = len(plist) def enable(self): """Enable process stats.""" self.disable_tag = False self.update() def disable(self): """Disable process stats.""" self.disable_tag = True def enable_extended(self): """Enable extended process stats.""" self.disable_extended_tag = False self.update() def disable_extended(self): """Disable extended process stats.""" self.disable_extended_tag = True @property def pid_max(self): """ Get the maximum PID value. On Linux, the value is read from the `/proc/sys/kernel/pid_max` file. From `man 5 proc`: The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platforms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million). If the file is unreadable or not available for whatever reason, returns None. Some other OSes: - On FreeBSD and macOS the maximum is 99999. - On OpenBSD >= 6.0 the maximum is 99999 (was 32766). - On NetBSD the maximum is 30000. :returns: int or None """ if LINUX: # XXX: waiting for https://github.com/giampaolo/psutil/issues/720 try: with open('/proc/sys/kernel/pid_max', 'rb') as f: return int(f.read()) except (OSError, IOError): return None else: return None @property def processes_count(self): """Get the current number of processes showed in the UI.""" return min(self._max_processes - 2, glances_processes.processcount['total'] - 1) @property def max_processes(self): """Get the maximum number of processes showed in the UI.""" return self._max_processes @max_processes.setter def max_processes(self, value): """Set the maximum number of processes showed in the UI.""" self._max_processes = value @property def process_filter_input(self): """Get the process filter (given by the user).""" return self._filter.filter_input @property def process_filter(self): """Get the process filter (current apply filter).""" return self._filter.filter @process_filter.setter def process_filter(self, value): """Set the process filter.""" self._filter.filter = value @property def process_filter_key(self): """Get the process filter key.""" return self._filter.filter_key @property def process_filter_re(self): """Get the process regular expression compiled.""" return self._filter.filter_re def disable_kernel_threads(self): """Ignore kernel threads in process list.""" self.no_kernel_threads = True @property def sort_reverse(self): """Return True to sort processes in reverse 'key' order, False instead.""" if self.sort_key == 'name' or self.sort_key == 'username': return False return True def max_values(self): """Return the max values dict.""" return self._max_values def get_max_values(self, key): """Get the maximum values of the given stat (key).""" return self._max_values[key] def set_max_values(self, key, value): """Set the maximum value for a specific stat (key).""" self._max_values[key] = value def reset_max_values(self): """Reset the maximum values dict.""" self._max_values = {} for k in self._max_values_list: self._max_values[k] = 0.0 def get_extended_stats(self, proc): """Get the extended stats for the given PID.""" # - cpu_affinity (Linux, Windows, FreeBSD) # - ionice (Linux and Windows > Vista) # - num_ctx_switches (not available on Illumos/Solaris) # - num_fds (Unix-like) # - num_handles (Windows) # - memory_maps (only swap, Linux) # https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/ # - connections (TCP and UDP) # - CPU min/max/mean # Set the extended stats list (OS dependant) extended_stats = ['cpu_affinity', 'ionice', 'num_ctx_switches'] if LINUX: # num_fds only available on Unix system (see issue #1351) extended_stats += ['num_fds'] if WINDOWS: extended_stats += ['num_handles'] ret = {} try: # Get the extended stats selected_process = psutil.Process(proc['pid']) ret = selected_process.as_dict(attrs=extended_stats, ad_value=None) if LINUX: try: ret['memory_swap'] = sum([v.swap for v in selected_process.memory_maps()]) except (psutil.NoSuchProcess, KeyError): # (KeyError catch for issue #1551) pass except (psutil.AccessDenied, NotImplementedError): # NotImplementedError: /proc/${PID}/smaps file doesn't exist # on kernel < 2.6.14 or CONFIG_MMU kernel configuration option # is not enabled (see psutil #533/glances #413). ret['memory_swap'] = None try: ret['tcp'] = len(selected_process.connections(kind="tcp")) ret['udp'] = len(selected_process.connections(kind="udp")) except (psutil.AccessDenied, psutil.NoSuchProcess): # Manage issue1283 (psutil.AccessDenied) ret['tcp'] = None ret['udp'] = None except (psutil.NoSuchProcess, ValueError, AttributeError) as e: logger.error('Can not grab extended stats ({})'.format(e)) self.extended_process = None ret['extended_stats'] = False else: logger.debug('Grab extended stats for process {}'.format(proc['pid'])) # Compute CPU and MEM min/max/mean for stat_prefix in ['cpu', 'memory']: if stat_prefix + '_min' not in self.extended_process: ret[stat_prefix + '_min'] = proc[stat_prefix + '_percent'] else: ret[stat_prefix + '_min'] = ( proc[stat_prefix + '_percent'] if proc[stat_prefix + '_min'] > proc[stat_prefix + '_percent'] else proc[stat_prefix + '_min'] ) if stat_prefix + '_max' not in self.extended_process: ret[stat_prefix + '_max'] = proc[stat_prefix + '_percent'] else: ret[stat_prefix + '_max'] = ( proc[stat_prefix + '_percent'] if proc[stat_prefix + '_max'] < proc[stat_prefix + '_percent'] else proc[stat_prefix + '_max'] ) if stat_prefix + '_mean_sum' not in self.extended_process: ret[stat_prefix + '_mean_sum'] = proc[stat_prefix + '_percent'] else: ret[stat_prefix + '_mean_sum'] = proc[stat_prefix + '_mean_sum'] + proc[stat_prefix + '_percent'] if stat_prefix + '_mean_counter' not in self.extended_process: ret[stat_prefix + '_mean_counter'] = 1 else: ret[stat_prefix + '_mean_counter'] = proc[stat_prefix + '_mean_counter'] + 1 ret[stat_prefix + '_mean'] = ret[stat_prefix + '_mean_sum'] / ret[stat_prefix + '_mean_counter'] ret['extended_stats'] = True return ret def is_selected_extended_process(self, position): """Return True if the process is the selected one for extended stats.""" return ( hasattr(self.args, 'programs') and not self.args.programs and hasattr(self.args, 'enable_process_extended') and self.args.enable_process_extended and not self.disable_extended_tag and hasattr(self.args, 'cursor_position') and position == self.args.cursor_position and not self.args.disable_cursor ) def update(self): """Update the processes stats.""" # Reset the stats self.processlist = [] self.reset_processcount() # Do not process if disable tag is set if self.disable_tag: return # Time since last update (for disk_io rate computation) time_since_update = getTimeSinceLastUpdate('process_disk') # Grab standard stats ##################### sorted_attrs = ['cpu_percent', 'cpu_times', 'memory_percent', 'name', 'status', 'num_threads'] displayed_attr = ['memory_info', 'nice', 'pid'] # 'name' can not be cached because it is used for filtering cached_attrs = ['cmdline', 'username'] # Some stats are optional if not self.disable_io_counters: sorted_attrs.append('io_counters') if not self.disable_gids: displayed_attr.append('gids') # Some stats are not sort key # An optimisation can be done be only grabbed displayed_attr # for displayed processes (but only in standalone mode...) sorted_attrs.extend(displayed_attr) # Some stats are cached (not necessary to be refreshed every time) if self.cache_timer.finished(): sorted_attrs += cached_attrs self.cache_timer.set(self.cache_timeout) self.cache_timer.reset() is_cached = False else: is_cached = True # Build the processes stats list (it is why we need psutil>=5.3.0) # This is one of the main bottleneck of Glances (see flame graph) # Filter processes self.processlist = list( filter( lambda p: not (BSD and p.info['name'] == 'idle') and not (WINDOWS and p.info['name'] == 'System Idle Process') and not (MACOS and p.info['name'] == 'kernel_task') and not (self.no_kernel_threads and LINUX and p.info['gids'].real == 0), psutil.process_iter(attrs=sorted_attrs, ad_value=None), ) ) # Only get the info key self.processlist = [p.info for p in self.processlist] # Sort the processes list by the current sort_key self.processlist = sort_stats(self.processlist, sorted_by=self.sort_key, reverse=True) # Update the processcount self.update_processcount(self.processlist) # Loop over processes and : # - add extended stats for selected process # - add metadata for position, proc in enumerate(self.processlist): # Extended stats ################ # Get the selected process when the 'e' key is pressed if self.is_selected_extended_process(position): self.extended_process = proc # Grab extended stats only for the selected process (see issue #2225) if self.extended_process is not None and proc['pid'] == self.extended_process['pid']: proc.update(self.get_extended_stats(self.extended_process)) self.extended_process = proc # Meta data ########### # PID is the key proc['key'] = 'pid' # Time since last update (for disk_io rate computation) proc['time_since_update'] = time_since_update # Process status (only keep the first char) proc['status'] = str(proc['status'])[:1].upper() # Process IO # procstat['io_counters'] is a list: # [read_bytes, write_bytes, read_bytes_old, write_bytes_old, io_tag] # If io_tag = 0 > Access denied or first time (display "?") # If io_tag = 1 > No access denied (display the IO rate) if 'io_counters' in proc and proc['io_counters'] is not None: io_new = [proc['io_counters'].read_bytes, proc['io_counters'].write_bytes] # For IO rate computation # Append saved IO r/w bytes try: proc['io_counters'] = io_new + self.io_old[proc['pid']] io_tag = 1 except KeyError: proc['io_counters'] = io_new + [0, 0] io_tag = 0 # then save the IO r/w bytes self.io_old[proc['pid']] = io_new else: proc['io_counters'] = [0, 0] + [0, 0] io_tag = 0 # Append the IO tag (for display) proc['io_counters'] += [io_tag] # Manage cached information if is_cached: # Grab cached values (in case of a new incoming process) if proc['pid'] not in self.processlist_cache: try: self.processlist_cache[proc['pid']] = psutil.Process(pid=proc['pid']).as_dict( attrs=cached_attrs, ad_value=None ) except psutil.NoSuchProcess: pass # Add cached value to current stat try: proc.update(self.processlist_cache[proc['pid']]) except KeyError: pass else: # Save values to cache self.processlist_cache[proc['pid']] = {cached: proc[cached] for cached in cached_attrs} # Apply user filter self.processlist = list(filter(lambda p: not self._filter.is_filtered(p), self.processlist)) # Compute the maximum value for keys in self._max_values_list: CPU, MEM # Useful to highlight the processes with maximum values for k in self._max_values_list: values_list = [i[k] for i in self.processlist if i[k] is not None] if values_list: self.set_max_values(k, max(values_list)) def get_count(self): """Get the number of processes.""" return self.processcount def getlist(self, sorted_by=None, as_programs=False): """Get the processlist. By default, return the list of threads. If as_programs is True, return the list of programs.""" if as_programs: return processes_to_programs(self.processlist) else: return self.processlist @property def sort_key(self): """Get the current sort key.""" return self._sort_key def set_sort_key(self, key, auto=True): """Set the current sort key.""" if key == 'auto': self.auto_sort = True self._sort_key = 'cpu_percent' else: self.auto_sort = auto self._sort_key = key def nice_decrease(self, pid): """Decrease nice level On UNIX this is a number which usually goes from -20 to 20. The higher the nice value, the lower the priority of the process.""" p = psutil.Process(pid) try: p.nice(p.nice() - 1) logger.info('Set nice level of process {} to {} (higher the priority)'.format(pid, p.nice())) except psutil.AccessDenied: logger.warning( 'Can not decrease (higher the priority) the nice level of process {} (access denied)'.format(pid) ) def nice_increase(self, pid): """Increase nice level On UNIX this is a number which usually goes from -20 to 20. The higher the nice value, the lower the priority of the process.""" p = psutil.Process(pid) try: p.nice(p.nice() + 1) logger.info('Set nice level of process {} to {} (lower the priority)'.format(pid, p.nice())) except psutil.AccessDenied: logger.warning( 'Can not increase (lower the priority) the nice level of process {} (access denied)'.format(pid) ) def kill(self, pid, timeout=3): """Kill process with pid""" assert pid != os.getpid(), "Glances can kill itself..." p = psutil.Process(pid) logger.debug('Send kill signal to process: {}'.format(p)) p.kill() return p.wait(timeout) def weighted(value): """Manage None value in dict value.""" return -float('inf') if value is None else value def _sort_io_counters(process, sorted_by='io_counters', sorted_by_secondary='memory_percent'): """Specific case for io_counters :return: Sum of io_r + io_w """ return process[sorted_by][0] - process[sorted_by][2] + process[sorted_by][1] - process[sorted_by][3] def _sort_cpu_times(process, sorted_by='cpu_times', sorted_by_secondary='memory_percent'): """Specific case for cpu_times Patch for "Sorting by process time works not as expected #1321" By default PsUtil only takes user time into account see (https://github.com/giampaolo/psutil/issues/1339) The following implementation takes user and system time into account """ return process[sorted_by][0] + process[sorted_by][1] def _sort_lambda(sorted_by='cpu_percent', sorted_by_secondary='memory_percent'): """Return a sort lambda function for the sorted_by key""" ret = None if sorted_by == 'io_counters': ret = _sort_io_counters elif sorted_by == 'cpu_times': ret = _sort_cpu_times return ret def sort_stats(stats, sorted_by='cpu_percent', sorted_by_secondary='memory_percent', reverse=True): """Return the stats (dict) sorted by (sorted_by). Reverse the sort if reverse is True. """ if sorted_by is None and sorted_by_secondary is None: # No need to sort... return stats # Check if a specific sort should be done sort_lambda = _sort_lambda(sorted_by=sorted_by, sorted_by_secondary=sorted_by_secondary) if sort_lambda is not None: # Specific sort try: stats.sort(key=sort_lambda, reverse=reverse) except Exception: # If an error is detected, fallback to cpu_percent stats.sort( key=lambda process: (weighted(process['cpu_percent']), weighted(process[sorted_by_secondary])), reverse=reverse, ) else: # Standard sort try: stats.sort( key=lambda process: (weighted(process[sorted_by]), weighted(process[sorted_by_secondary])), reverse=reverse, ) except (KeyError, TypeError): # Fallback to name stats.sort(key=lambda process: process['name'] if process['name'] is not None else '~', reverse=False) return stats glances_processes = GlancesProcesses() glances-3.4.0.3/glances/server.py0000644000175000017500000002002714432156570016503 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances server.""" from glances.globals import json_dumps import socket import sys from base64 import b64decode from glances import __version__ from glances.compat import SimpleXMLRPCRequestHandler, SimpleXMLRPCServer from glances.autodiscover import GlancesAutoDiscoverClient from glances.logger import logger from glances.stats_server import GlancesStatsServer from glances.timer import Timer class GlancesXMLRPCHandler(SimpleXMLRPCRequestHandler, object): """Main XML-RPC handler.""" rpc_paths = ('/RPC2',) def end_headers(self): # Hack to add a specific header # Thk to: https://gist.github.com/rca/4063325 self.send_my_headers() super(GlancesXMLRPCHandler, self).end_headers() def send_my_headers(self): # Specific header is here (solved the issue #227) self.send_header("Access-Control-Allow-Origin", "*") def authenticate(self, headers): # auth = headers.get('Authorization') try: (basic, _, encoded) = headers.get('Authorization').partition(' ') except Exception: # Client did not ask for authentication # If server need it then exit return not self.server.isAuth else: # Client authentication (basic, _, encoded) = headers.get('Authorization').partition(' ') assert basic == 'Basic', 'Only basic authentication supported' # Encoded portion of the header is a string # Need to convert to byte-string encoded_byte_string = encoded.encode() # Decode base64 byte string to a decoded byte string decoded_bytes = b64decode(encoded_byte_string) # Convert from byte string to a regular string decoded_string = decoded_bytes.decode() # Get the username and password from the string (username, _, password) = decoded_string.partition(':') # Check that username and password match internal global dictionary return self.check_user(username, password) def check_user(self, username, password): # Check username and password in the dictionary if username in self.server.user_dict: from glances.password import GlancesPassword pwd = GlancesPassword(username=username, config=self.config) return pwd.check_password(self.server.user_dict[username], password) else: return False def parse_request(self): if SimpleXMLRPCRequestHandler.parse_request(self): # Next we authenticate if self.authenticate(self.headers): return True else: # if authentication fails, tell the client self.send_error(401, 'Authentication failed') return False def log_message(self, log_format, *args): # No message displayed on the server side pass class GlancesXMLRPCServer(SimpleXMLRPCServer, object): """Init a SimpleXMLRPCServer instance (IPv6-ready).""" finished = False def __init__(self, bind_address, bind_port=61209, requestHandler=GlancesXMLRPCHandler, config=None): self.bind_address = bind_address self.bind_port = bind_port self.config = config try: self.address_family = socket.getaddrinfo(bind_address, bind_port)[0][0] except socket.error as e: logger.error("Couldn't open socket: {}".format(e)) sys.exit(1) super(GlancesXMLRPCServer, self).__init__((bind_address, bind_port), requestHandler) def end(self): """Stop the server""" self.server_close() self.finished = True def serve_forever(self): """Main loop""" while not self.finished: self.handle_request() class GlancesInstance(object): """All the methods of this class are published as XML-RPC methods.""" def __init__(self, config=None, args=None): # Init stats self.stats = GlancesStatsServer(config=config, args=args) # Initial update self.stats.update() # cached_time is the minimum time interval between stats updates # i.e. XML/RPC calls will not retrieve updated info until the time # since last update is passed (will retrieve old cached info instead) self.timer = Timer(0) self.cached_time = args.cached_time def __update__(self): # Never update more than 1 time per cached_time if self.timer.finished(): self.stats.update() self.timer = Timer(self.cached_time) def init(self): # Return the Glances version return __version__ def getAll(self): # Update and return all the stats self.__update__() return json_dumps(self.stats.getAll()) def getAllPlugins(self): # Return the plugins list return json_dumps(self.stats.getPluginsList()) def getAllLimits(self): # Return all the plugins limits return json_dumps(self.stats.getAllLimitsAsDict()) def getAllViews(self): # Return all the plugins views return json_dumps(self.stats.getAllViewsAsDict()) def __getattr__(self, item): """Overwrite the getattr method in case of attribute is not found. The goal is to dynamically generate the API get'Stats'() methods. """ header = 'get' # Check if the attribute starts with 'get' if item.startswith(header): try: # Update the stat self.__update__() # Return the attribute return getattr(self.stats, item) except Exception: # The method is not found for the plugin raise AttributeError(item) else: # Default behavior raise AttributeError(item) class GlancesServer(object): """This class creates and manages the TCP server.""" def __init__(self, requestHandler=GlancesXMLRPCHandler, config=None, args=None): # Args self.args = args # Init the XML RPC server try: self.server = GlancesXMLRPCServer(args.bind_address, args.port, requestHandler, config=config) except Exception as e: logger.critical("Cannot start Glances server: {}".format(e)) sys.exit(2) else: print('Glances XML-RPC server is running on {}:{}'.format(args.bind_address, args.port)) # The users dict # username / password couple # By default, no auth is needed self.server.user_dict = {} self.server.isAuth = False # Register functions self.server.register_introspection_functions() self.server.register_instance(GlancesInstance(config, args)) if not self.args.disable_autodiscover: # Note: The Zeroconf service name will be based on the hostname # Correct issue: Zeroconf problem with zeroconf service name #889 logger.info('Autodiscover is enabled with service name {}'.format(socket.gethostname().split('.', 1)[0])) self.autodiscover_client = GlancesAutoDiscoverClient(socket.gethostname().split('.', 1)[0], args) else: logger.info("Glances autodiscover announce is disabled") def add_user(self, username, password): """Add an user to the dictionary.""" self.server.user_dict[username] = password self.server.isAuth = True def serve_forever(self): """Call the main loop.""" # Set the server login/password (if -P/--password tag) if self.args.password != "": self.add_user(self.args.username, self.args.password) # Serve forever self.server.serve_forever() def end(self): """End of the Glances server session.""" if not self.args.disable_autodiscover: self.autodiscover_client.close() self.server.end() glances-3.4.0.3/glances/cpu_percent.py0000644000175000017500000001172414432156570017510 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """CPU percent stats shared between CPU and Quicklook plugins.""" from glances.logger import logger from glances.timer import Timer from glances.compat import FileNotFoundError, PermissionError import psutil class CpuPercent(object): """Get and store the CPU percent.""" def __init__(self, cached_timer_cpu=3): self.cpu_info = {'cpu_name': None, 'cpu_hz_current': None, 'cpu_hz': None} self.cpu_percent = 0 self.percpu_percent = [] # Get CPU name self.__get_cpu_name() # cached_timer_cpu is the minimum time interval between stats updates # since last update is passed (will retrieve old cached info instead) self.cached_timer_cpu = cached_timer_cpu self.timer_cpu = Timer(0) self.timer_percpu = Timer(0) # psutil.cpu_freq() consumes lots of CPU # So refresh the stats every refresh*2 (6 seconds) self.cached_timer_cpu_info = cached_timer_cpu * 2 self.timer_cpu_info = Timer(0) def get_key(self): """Return the key of the per CPU list.""" return 'cpu_number' def get(self, percpu=False): """Update and/or return the CPU using the psutil library. If percpu, return the percpu stats""" if percpu: return self.__get_percpu() else: return self.__get_cpu() def get_info(self): """Get additional information about the CPU""" # Never update more than 1 time per cached_timer_cpu_info if self.timer_cpu_info.finished() and hasattr(psutil, 'cpu_freq'): # Get the CPU freq current/max try: cpu_freq = psutil.cpu_freq() except Exception as e: logger.debug('Can not grab CPU information ({})'.format(e)) else: if hasattr(cpu_freq, 'current'): self.cpu_info['cpu_hz_current'] = cpu_freq.current else: self.cpu_info['cpu_hz_current'] = None if hasattr(cpu_freq, 'max'): self.cpu_info['cpu_hz'] = cpu_freq.max else: self.cpu_info['cpu_hz'] = None # Reset timer for cache self.timer_cpu_info.reset(duration=self.cached_timer_cpu_info) return self.cpu_info def __get_cpu_name(self): # Get the CPU name once from the /proc/cpuinfo file # @TODO: Multisystem... try: self.cpu_info['cpu_name'] = open('/proc/cpuinfo', 'r').readlines()[4].split(':')[1].strip() except (FileNotFoundError, PermissionError, IndexError, KeyError, AttributeError): self.cpu_info['cpu_name'] = 'CPU' return self.cpu_info['cpu_name'] def __get_cpu(self): """Update and/or return the CPU using the psutil library.""" # Never update more than 1 time per cached_timer_cpu if self.timer_cpu.finished(): self.cpu_percent = psutil.cpu_percent(interval=0.0) # Reset timer for cache self.timer_cpu.reset(duration=self.cached_timer_cpu) return self.cpu_percent def __get_percpu(self): """Update and/or return the per CPU list using the psutil library.""" # Never update more than 1 time per cached_timer_cpu if self.timer_percpu.finished(): self.percpu_percent = [] for cpu_number, cputimes in enumerate(psutil.cpu_times_percent(interval=0.0, percpu=True)): cpu = { 'key': self.get_key(), 'cpu_number': cpu_number, 'total': round(100 - cputimes.idle, 1), 'user': cputimes.user, 'system': cputimes.system, 'idle': cputimes.idle, } # The following stats are for API purposes only if hasattr(cputimes, 'nice'): cpu['nice'] = cputimes.nice if hasattr(cputimes, 'iowait'): cpu['iowait'] = cputimes.iowait if hasattr(cputimes, 'irq'): cpu['irq'] = cputimes.irq if hasattr(cputimes, 'softirq'): cpu['softirq'] = cputimes.softirq if hasattr(cputimes, 'steal'): cpu['steal'] = cputimes.steal if hasattr(cputimes, 'guest'): cpu['guest'] = cputimes.guest if hasattr(cputimes, 'guest_nice'): cpu['guest_nice'] = cputimes.guest_nice # Append new CPU to the list self.percpu_percent.append(cpu) # Reset timer for cache self.timer_percpu.reset(duration=self.cached_timer_cpu) return self.percpu_percent # CpuPercent instance shared between plugins cpu_percent = CpuPercent() glances-3.4.0.3/glances/outdated.py0000644000175000017500000001362014432156570017007 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage Glances update.""" from datetime import datetime, timedelta import threading import json import pickle import os from ssl import CertificateError from glances import __version__ from glances.compat import nativestr, urlopen, HTTPError, URLError from glances.config import user_cache_dir from glances.globals import safe_makedirs from glances.logger import logger try: from packaging.version import Version PACKAGING_IMPORT = True except Exception as e: logger.warning("Unable to import 'packaging' module ({}). Glances cannot check for updates.".format(e)) PACKAGING_IMPORT = False PYPI_API_URL = 'https://pypi.python.org/pypi/Glances/json' class Outdated(object): """ This class aims at providing methods to warn the user when a new Glances version is available on the PyPI repository (https://pypi.python.org/pypi/Glances/). """ def __init__(self, args, config): """Init the Outdated class""" self.args = args self.config = config self.cache_dir = user_cache_dir() self.cache_file = os.path.join(self.cache_dir, 'glances-version.db') # Set default value... self.data = {u'installed_version': __version__, u'latest_version': '0.0', u'refresh_date': datetime.now()} # Disable update check if `packaging` is not installed if not PACKAGING_IMPORT: self.args.disable_check_update = True # Read the configuration file only if update check is not explicitly disabled if not self.args.disable_check_update: self.load_config(config) logger.debug("Check Glances version up-to-date: {}".format(not self.args.disable_check_update)) # And update ! self.get_pypi_version() def load_config(self, config): """Load outdated parameter in the global section of the configuration file.""" global_section = 'global' if hasattr(config, 'has_section') and config.has_section(global_section): self.args.disable_check_update = config.get_value(global_section, 'check_update').lower() == 'false' else: logger.debug("Cannot find section {} in the configuration file".format(global_section)) return False return True def installed_version(self): return self.data['installed_version'] def latest_version(self): return self.data['latest_version'] def refresh_date(self): return self.data['refresh_date'] def get_pypi_version(self): """Wrapper to get the latest PyPI version (async) The data are stored in a cached file Only update online once a week """ if self.args.disable_check_update: return # If the cached file exist, read-it cached_data = self._load_cache() if cached_data == {}: # Update needed # Update and save the cache thread = threading.Thread(target=self._update_pypi_version) thread.start() else: # Update not needed self.data['latest_version'] = cached_data['latest_version'] logger.debug("Get Glances version from cache file") def is_outdated(self): """Return True if a new version is available""" if self.args.disable_check_update: # Check is disabled by configuration return False logger.debug( "Check Glances version (installed: {} / latest: {})".format(self.installed_version(), self.latest_version()) ) return Version(self.latest_version()) > Version(self.installed_version()) def _load_cache(self): """Load cache file and return cached data""" # If the cached file exist, read-it max_refresh_date = timedelta(days=7) cached_data = {} try: with open(self.cache_file, 'rb') as f: cached_data = pickle.load(f) except Exception as e: logger.debug("Cannot read version from cache file: {} ({})".format(self.cache_file, e)) else: logger.debug("Read version from cache file") if ( cached_data['installed_version'] != self.installed_version() or datetime.now() - cached_data['refresh_date'] > max_refresh_date ): # Reset the cache if: # - the installed version is different # - the refresh_date is > max_refresh_date cached_data = {} return cached_data def _save_cache(self): """Save data to the cache file.""" # Create the cache directory safe_makedirs(self.cache_dir) # Create/overwrite the cache file try: with open(self.cache_file, 'wb') as f: pickle.dump(self.data, f) except Exception as e: logger.error("Cannot write version to cache file {} ({})".format(self.cache_file, e)) def _update_pypi_version(self): """Get the latest PyPI version (as a string) via the RESTful JSON API""" logger.debug("Get latest Glances version from the PyPI RESTful API ({})".format(PYPI_API_URL)) # Update the current time self.data[u'refresh_date'] = datetime.now() try: res = urlopen(PYPI_API_URL, timeout=3).read() except (HTTPError, URLError, CertificateError) as e: logger.debug("Cannot get Glances version from the PyPI RESTful API ({})".format(e)) else: self.data[u'latest_version'] = json.loads(nativestr(res))['info']['version'] logger.debug("Save Glances version to the cache file") # Save result to the cache file # Note: also saved if the Glances PyPI version cannot be grabbed self._save_cache() return self.data glances-3.4.0.3/glances/main.py0000644000175000017500000007110014432156570016117 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Glances main class.""" import argparse import sys import tempfile from glances import __version__, psutil_version from glances.compat import input, disable, enable, PY3 from glances.config import Config from glances.globals import WINDOWS from glances.processes import sort_processes_key_list from glances.logger import logger, LOG_FILENAME class GlancesMain(object): """Main class to manage Glances instance.""" # Default stats' minimum refresh time is 2 seconds DEFAULT_REFRESH_TIME = 2 # Set the default cache lifetime to 1 second (only for server) cached_time = 1 # By default, Glances is ran in standalone mode (no client/server) client_tag = False # Server TCP port number (default is 61209) server_port = 61209 # Web Server TCP port number (default is 61208) web_server_port = 61208 # Default username/password for client/server mode username = "glances" password = "" # Examples of use example_of_use = """ Examples of use: Monitor local machine (standalone mode): $ glances Display all Glances modules (plugins and exporters) and exit: $ glances --module-list Monitor local machine with the Web interface and start RESTful server: $ glances -w Glances web server started on http://0.0.0.0:61208/ Only start RESTful API (without the WebUI): $ glances -w --disable-webui Glances API available on http://0.0.0.0:61208/api/ Monitor local machine and export stats to a CSV file (standalone mode): $ glances --export csv --export-csv-file /tmp/glances.csv Monitor local machine and export stats to a InfluxDB server with 5s refresh rate (standalone mode): $ glances -t 5 --export influxdb Start a Glances XML-RPC server (server mode): $ glances -s Connect Glances to a Glances XML-RPC server (client mode): $ glances -c Connect Glances to a Glances server and export stats to a StatsD server (client mode): $ glances -c --export statsd Start the client browser (browser mode): $ glances --browser Display stats to stdout (one stat per line, possible to go inside stats using plugin.attribute): $ glances --stdout now,cpu.user,mem.used,load Display JSON stats to stdout (one stats per line): $ glances --stdout-json now,cpu,mem,load Display CSV stats to stdout (all stats in one line): $ glances --stdout-csv now,cpu.user,mem.used,load Enable some plugins disabled by default (comma separated list): $ glances --enable-plugin sensors Disable some plugins (comma separated list): $ glances --disable-plugin network,ports Disable all plugins except some (comma separated list): $ glances --disable-plugin all --enable-plugin cpu,mem,load """ def __init__(self): """Manage the command line arguments.""" # Read the command line arguments self.args = self.parse_args() def init_args(self): """Init all the command line arguments.""" version = 'Glances v{} with PsUtil v{}\nLog file: {}'.format(__version__, psutil_version, LOG_FILENAME) parser = argparse.ArgumentParser( prog='glances', conflict_handler='resolve', formatter_class=argparse.RawDescriptionHelpFormatter, epilog=self.example_of_use, ) parser.add_argument('-V', '--version', action='version', version=version) parser.add_argument('-d', '--debug', action='store_true', default=False, dest='debug', help='enable debug mode') parser.add_argument('-C', '--config', dest='conf_file', help='path to the configuration file') # Disable plugin parser.add_argument( '--modules-list', '--module-list', action='store_true', default=False, dest='modules_list', help='display modules (plugins & exports) list and exit', ) parser.add_argument( '--disable-plugin', '--disable-plugins', dest='disable_plugin', help='disable plugin (comma separated list or all). If all is used, \ then you need to configure --enable-plugin.', ) parser.add_argument( '--enable-plugin', '--enable-plugins', dest='enable_plugin', help='enable plugin (comma separated list)' ) parser.add_argument( '--disable-process', action='store_true', default=False, dest='disable_process', help='disable process module', ) # Enable or disable option parser.add_argument( '--disable-webui', action='store_true', default=False, dest='disable_webui', help='disable the Web Interface', ) parser.add_argument( '--light', '--enable-light', action='store_true', default=False, dest='enable_light', help='light mode for Curses UI (disable all but top menu)', ) parser.add_argument( '-0', '--disable-irix', action='store_true', default=False, dest='disable_irix', help='task\'s cpu usage will be divided by the total number of CPUs', ) parser.add_argument( '-1', '--percpu', action='store_true', default=False, dest='percpu', help='start Glances in per CPU mode' ) parser.add_argument( '-2', '--disable-left-sidebar', action='store_true', default=False, dest='disable_left_sidebar', help='disable network, disk I/O, FS and sensors modules', ) parser.add_argument( '-3', '--disable-quicklook', action='store_true', default=False, dest='disable_quicklook', help='disable quick look module', ) parser.add_argument( '-4', '--full-quicklook', action='store_true', default=False, dest='full_quicklook', help='disable all but quick look and load', ) parser.add_argument( '-5', '--disable-top', action='store_true', default=False, dest='disable_top', help='disable top menu (QL, CPU, MEM, SWAP and LOAD)', ) parser.add_argument( '-6', '--meangpu', action='store_true', default=False, dest='meangpu', help='start Glances in mean GPU mode' ) parser.add_argument( '--disable-history', action='store_true', default=False, dest='disable_history', help='disable stats history', ) parser.add_argument( '--disable-bold', action='store_true', default=False, dest='disable_bold', help='disable bold mode in the terminal', ) parser.add_argument( '--disable-bg', action='store_true', default=False, dest='disable_bg', help='disable background colors in the terminal', ) parser.add_argument( '--enable-irq', action='store_true', default=False, dest='enable_irq', help='enable IRQ module' ), parser.add_argument( '--enable-process-extended', action='store_true', default=False, dest='enable_process_extended', help='enable extended stats on top process', ) parser.add_argument( '--separator', '--enable-separator', action='store_true', default=False, dest='enable_separator', help='enable separator in the UI', ), parser.add_argument( '--disable-cursor', action='store_true', default=False, dest='disable_cursor', help='disable cursor (process selection) in the UI', ), # Sort processes list parser.add_argument( '--sort-processes', dest='sort_processes_key', choices=sort_processes_key_list, help='Sort processes by: {}'.format(', '.join(sort_processes_key_list)), ) # Display processes list by program name and not by thread parser.add_argument( '--programs', '--program', action='store_true', default=False, dest='programs', help='Accumulate processes by program', ) # Export modules feature parser.add_argument('--export', dest='export', help='enable export module (comma separated list)') parser.add_argument( '--export-csv-file', default='./glances.csv', dest='export_csv_file', help='file path for CSV exporter' ) parser.add_argument( '--export-csv-overwrite', action='store_true', default=False, dest='export_csv_overwrite', help='overwrite existing CSV file', ) parser.add_argument( '--export-json-file', default='./glances.json', dest='export_json_file', help='file path for JSON exporter' ) parser.add_argument( '--export-graph-path', default=tempfile.gettempdir(), dest='export_graph_path', help='Folder for Graph exporter', ) # Client/Server option parser.add_argument( '-c', '--client', dest='client', help='connect to a Glances server by IPv4/IPv6 address or hostname' ) parser.add_argument( '-s', '--server', action='store_true', default=False, dest='server', help='run Glances in server mode' ) parser.add_argument( '--browser', action='store_true', default=False, dest='browser', help='start the client browser (list of servers)', ) parser.add_argument( '--disable-autodiscover', action='store_true', default=False, dest='disable_autodiscover', help='disable autodiscover feature', ) parser.add_argument( '-p', '--port', default=None, type=int, dest='port', help='define the client/server TCP port [default: {}]'.format(self.server_port), ) parser.add_argument( '-B', '--bind', default='0.0.0.0', dest='bind_address', help='bind server to the given IPv4/IPv6 address or hostname', ) parser.add_argument( '--username', action='store_true', default=False, dest='username_prompt', help='define a client/server username', ) parser.add_argument( '--password', action='store_true', default=False, dest='password_prompt', help='define a client/server password', ) parser.add_argument('-u', dest='username_used', help='use the given client/server username') parser.add_argument('--snmp-community', default='public', dest='snmp_community', help='SNMP community') parser.add_argument('--snmp-port', default=161, type=int, dest='snmp_port', help='SNMP port') parser.add_argument('--snmp-version', default='2c', dest='snmp_version', help='SNMP version (1, 2c or 3)') parser.add_argument('--snmp-user', default='private', dest='snmp_user', help='SNMP username (only for SNMPv3)') parser.add_argument( '--snmp-auth', default='password', dest='snmp_auth', help='SNMP authentication key (only for SNMPv3)' ) parser.add_argument( '--snmp-force', action='store_true', default=False, dest='snmp_force', help='force SNMP mode' ) parser.add_argument( '-t', '--time', default=self.DEFAULT_REFRESH_TIME, type=float, dest='time', help='set minimum refresh rate in seconds [default: {} sec]'.format(self.DEFAULT_REFRESH_TIME), ) parser.add_argument( '-w', '--webserver', action='store_true', default=False, dest='webserver', help='run Glances in web server mode (bottle needed)', ) parser.add_argument( '--cached-time', default=self.cached_time, type=int, dest='cached_time', help='set the server cache time [default: {} sec]'.format(self.cached_time), ) parser.add_argument( '--stop-after', default=None, type=int, dest='stop_after', help='stop Glances after n refresh', ) parser.add_argument( '--open-web-browser', action='store_true', default=False, dest='open_web_browser', help='try to open the Web UI in the default Web browser', ) # Display options parser.add_argument( '-q', '--quiet', default=False, action='store_true', dest='quiet', help='do not display the curses interface', ) parser.add_argument( '-f', '--process-filter', default=None, type=str, dest='process_filter', help='set the process filter pattern (regular expression)', ) parser.add_argument( '--process-short-name', action='store_true', default=True, dest='process_short_name', help='force short name for processes name', ) parser.add_argument( '--process-long-name', action='store_false', default=False, dest='process_short_name', help='force long name for processes name', ) parser.add_argument( '--stdout', default=None, dest='stdout', help='display stats to stdout, one stat per line (comma separated list of plugins/plugins.attribute)', ) parser.add_argument( '--stdout-json', default=None, dest='stdout_json', help='display stats to stdout, JSON format (comma separated list of plugins/plugins.attribute)', ) parser.add_argument( '--stdout-csv', default=None, dest='stdout_csv', help='display stats to stdout, CSV format (comma separated list of plugins/plugins.attribute)', ) parser.add_argument( '--issue', default=None, action='store_true', dest='stdout_issue', help='test all plugins and exit (please copy/paste the output if you open an issue)', ) parser.add_argument( '--trace-malloc', default=False, action='store_true', dest='trace_malloc', help='trace memory allocation and display it at the end of the process (python 3.4 or higher needed)', ) parser.add_argument( '--memory-leak', default=False, action='store_true', dest='memory_leak', help='test memory leak (python 3.4 or higher needed)', ) parser.add_argument( '--api-doc', default=None, action='store_true', dest='stdout_apidoc', help='display fields descriptions' ) if not WINDOWS: parser.add_argument( '--hide-kernel-threads', action='store_true', default=False, dest='no_kernel_threads', help='hide kernel threads in process list (not available on Windows)', ) parser.add_argument( '-b', '--byte', action='store_true', default=False, dest='byte', help='display network rate in byte per second', ) parser.add_argument( '--diskio-show-ramfs', action='store_true', default=False, dest='diskio_show_ramfs', help='show RAM Fs in the DiskIO plugin', ) parser.add_argument( '--diskio-iops', action='store_true', default=False, dest='diskio_iops', help='show IO per second in the DiskIO plugin', ) parser.add_argument( '--fahrenheit', action='store_true', default=False, dest='fahrenheit', help='display temperature in Fahrenheit (default is Celsius)', ) parser.add_argument( '--fs-free-space', action='store_true', default=False, dest='fs_free_space', help='display FS free space instead of used', ) parser.add_argument( '--sparkline', action='store_true', default=False, dest='sparkline', help='display sparklines instead of bar in the curses interface', ) parser.add_argument( '--disable-unicode', action='store_true', default=False, dest='disable_unicode', help='disable unicode characters in the curses interface', ) parser.add_argument( '--theme-white', action='store_true', default=False, dest='theme_white', help='optimize display colors for white background', ) # Globals options parser.add_argument( '--disable-check-update', action='store_true', default=False, dest='disable_check_update', help='disable online Glances version ckeck', ) parser.add_argument( '--strftime', dest='strftime_format', default='', help='strftime format string for displaying current date in standalone mode', ) return parser def parse_args(self): """Parse command line arguments.""" args = self.init_args().parse_args() # Load the configuration file, if it exists # This function should be called after the parse_args # because the configuration file path can be defined self.config = Config(args.conf_file) # Debug mode if args.debug: from logging import DEBUG logger.setLevel(DEBUG) else: from warnings import simplefilter simplefilter("ignore") # Plugins refresh rate if self.config.has_section('global'): global_refresh = self.config.get_float_value('global', 'refresh', default=self.DEFAULT_REFRESH_TIME) else: global_refresh = self.DEFAULT_REFRESH_TIME # The configuration key can be overwrite from the command line if args.time == self.DEFAULT_REFRESH_TIME: args.time = global_refresh logger.debug('Global refresh rate is set to {} seconds'.format(args.time)) # Plugins disable/enable # Allow users to disable plugins from the glances.conf (issue #1378) for s in self.config.sections(): if self.config.has_section(s) and (self.config.get_bool_value(s, 'disable', False)): disable(args, s) logger.debug('{} disabled by the configuration file'.format(s)) # The configuration key can be overwrite from the command line if args and args.disable_plugin and 'all' in args.disable_plugin.split(','): if not args.enable_plugin: logger.critical("'all' key in --disable-plugin needs to be used with --enable-plugin") sys.exit(2) else: logger.info( "'all' key in --disable-plugin, only plugins defined with --enable-plugin will be available" ) if args.disable_plugin is not None: for p in args.disable_plugin.split(','): disable(args, p) if args.enable_plugin is not None: for p in args.enable_plugin.split(','): enable(args, p) # Exporters activation if args.export is not None: for p in args.export.split(','): setattr(args, 'export_' + p, True) # Client/server Port if args.port is None: if args.webserver: args.port = self.web_server_port else: args.port = self.server_port # Port in the -c URI #996 if args.client is not None: args.client, args.port = ( x if x else y for (x, y) in zip(args.client.partition(':')[::2], (args.client, args.port)) ) # Autodiscover if args.disable_autodiscover: logger.info("Auto discover mode is disabled") # In web server mode if args.webserver: args.process_short_name = True # Server or client login/password if args.username_prompt: # Every username needs a password args.password_prompt = True # Prompt username if args.server: args.username = self.__get_username(description='Define the Glances server username: ') elif args.webserver: args.username = self.__get_username(description='Define the Glances webserver username: ') elif args.client: args.username = self.__get_username(description='Enter the Glances server username: ') else: if args.username_used: # A username has been set using the -u option ? args.username = args.username_used else: # Default user name is 'glances' args.username = self.username if args.password_prompt or args.username_used: # Interactive or file password if args.server: args.password = self.__get_password( description='Define the Glances server password ({} username): '.format(args.username), confirm=True, username=args.username, ) elif args.webserver: args.password = self.__get_password( description='Define the Glances webserver password ({} username): '.format(args.username), confirm=True, username=args.username, ) elif args.client: args.password = self.__get_password( description='Enter the Glances server password ({} username): '.format(args.username), clear=True, username=args.username, ) else: # Default is no password args.password = self.password # By default help is hidden args.help_tag = False # Display Rx and Tx, not the sum for the network args.network_sum = False args.network_cumul = False # Manage light mode if args.enable_light: logger.info("Light mode is on") args.disable_left_sidebar = True disable(args, 'process') disable(args, 'alert') disable(args, 'amps') disable(args, 'docker') # Manage full quicklook option if args.full_quicklook: logger.info("Full quicklook mode") enable(args, 'quicklook') disable(args, 'cpu') disable(args, 'mem') disable(args, 'memswap') enable(args, 'load') # Manage disable_top option if args.disable_top: logger.info("Disable top menu") disable(args, 'quicklook') disable(args, 'cpu') disable(args, 'mem') disable(args, 'memswap') disable(args, 'load') # Init the generate_graph tag # Should be set to True to generate graphs args.generate_graph = False # Control parameter and exit if it is not OK self.args = args # Export is only available in standalone or client mode (issue #614) export_tag = self.args.export is not None and any(self.args.export) if WINDOWS and export_tag: # On Windows, export is possible but only in quiet mode # See issue #1038 logger.info("On Windows OS, export disable the Web interface") self.args.quiet = True self.args.webserver = False elif not (self.is_standalone() or self.is_client()) and export_tag: logger.critical("Export is only available in standalone or client mode") sys.exit(2) # Filter is only available in standalone mode if not args.process_filter and not self.is_standalone(): logger.debug("Process filter is only available in standalone mode") # Cursor option is only available in standalone mode if not args.disable_cursor and not self.is_standalone(): logger.debug("Cursor is only available in standalone mode") # Disable HDDTemp if sensors are disabled if getattr(self.args, 'disable_sensors', False): disable(self.args, 'hddtemp') logger.debug("Sensors and HDDTemp are disabled") if getattr(self.args, 'trace_malloc', True) and not (PY3 or self.is_standalone()): logger.critical("Option --trace-malloc is only available with Python 3 and terminal mode") sys.exit(2) if getattr(self.args, 'memory_leak', True) and not (PY3 or self.is_standalone()): logger.critical("Option --memory-leak is only available with Python 3 and terminal mode") sys.exit(2) elif getattr(self.args, 'memory_leak', True) and (PY3 or self.is_standalone()): logger.info('Memory leak detection enabled') self.args.quiet = True if not self.args.stop_after: self.args.stop_after = 60 self.args.time = 1 self.args.disable_history = True # Let the plugins known the Glances mode self.args.is_standalone = self.is_standalone() self.args.is_client = self.is_client() self.args.is_client_browser = self.is_client_browser() self.args.is_server = self.is_server() self.args.is_webserver = self.is_webserver() # Check mode compatibility self.check_mode_compatibility() return args def check_mode_compatibility(self): """Check mode compatibility""" if self.args.is_server and self.args.is_webserver: logger.critical("Server and Web server mode are incompatible") sys.exit(2) def is_standalone(self): """Return True if Glances is running in standalone mode.""" return not self.args.client and not self.args.browser and not self.args.server and not self.args.webserver def is_client(self): """Return True if Glances is running in client mode.""" return (self.args.client or self.args.browser) and not self.args.server def is_client_browser(self): """Return True if Glances is running in client browser mode.""" return self.args.browser and not self.args.server def is_server(self): """Return True if Glances is running in server mode.""" return not self.args.client and self.args.server def is_webserver(self): """Return True if Glances is running in Web server mode.""" return not self.args.client and self.args.webserver def get_config(self): """Return configuration file object.""" return self.config def get_args(self): """Return the arguments.""" return self.args def get_mode(self): """Return the mode.""" return self.mode def __get_username(self, description=''): """Read an username from the command line.""" return input(description) def __get_password(self, description='', confirm=False, clear=False, username='glances'): """Read a password from the command line. - if confirm = True, with confirmation - if clear = True, plain (clear password) """ from glances.password import GlancesPassword password = GlancesPassword(username=username, config=self.get_config()) return password.get_password(description, confirm, clear) glances-3.4.0.3/glances/client_browser.py0000644000175000017500000002353614432156570020226 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances client browser (list of Glances server).""" import ujson import socket import threading from glances.compat import Fault, ProtocolError, ServerProxy from glances.client import GlancesClient, GlancesClientTransport from glances.logger import logger, LOG_FILENAME from glances.password_list import GlancesPasswordList as GlancesPassword from glances.static_list import GlancesStaticServer from glances.autodiscover import GlancesAutoDiscoverServer from glances.outputs.glances_curses_browser import GlancesCursesBrowser class GlancesClientBrowser(object): """This class creates and manages the TCP client browser (servers list).""" def __init__(self, config=None, args=None): # Store the arg/config self.args = args self.config = config self.static_server = None self.password = None # Load the configuration file self.load() # Start the autodiscover mode (Zeroconf listener) if not self.args.disable_autodiscover: self.autodiscover_server = GlancesAutoDiscoverServer() else: self.autodiscover_server = None # Init screen self.screen = GlancesCursesBrowser(args=self.args) def load(self): """Load server and password list from the configuration file.""" # Init the static server list (if defined) self.static_server = GlancesStaticServer(config=self.config) # Init the password list (if defined) self.password = GlancesPassword(config=self.config) def get_servers_list(self): """Return the current server list (list of dict). Merge of static + autodiscover servers list. """ ret = [] if self.args.browser: ret = self.static_server.get_servers_list() if self.autodiscover_server is not None: ret = self.static_server.get_servers_list() + self.autodiscover_server.get_servers_list() return ret def __get_uri(self, server): """Return the URI for the given server dict.""" # Select the connection mode (with or without password) if server['password'] != "": if server['status'] == 'PROTECTED': # Try with the preconfigure password (only if status is PROTECTED) clear_password = self.password.get_password(server['name']) if clear_password is not None: server['password'] = self.password.get_hash(clear_password) return 'http://{}:{}@{}:{}'.format(server['username'], server['password'], server['ip'], server['port']) else: return 'http://{}:{}'.format(server['ip'], server['port']) def __update_stats(self, server): """Update stats for the given server (picked from the server list)""" # Get the server URI uri = self.__get_uri(server) # Try to connect to the server t = GlancesClientTransport() t.set_timeout(3) # Get common stats try: s = ServerProxy(uri, transport=t) except Exception as e: logger.warning("Client browser couldn't create socket ({})".format(e)) else: # Mandatory stats try: # CPU% cpu_percent = 100 - ujson.loads(s.getCpu())['idle'] server['cpu_percent'] = '{:.1f}'.format(cpu_percent) # MEM% server['mem_percent'] = ujson.loads(s.getMem())['percent'] # OS (Human Readable name) server['hr_name'] = ujson.loads(s.getSystem())['hr_name'] except (socket.error, Fault, KeyError) as e: logger.debug("Error while grabbing stats form server ({})".format(e)) server['status'] = 'OFFLINE' except ProtocolError as e: if e.errcode == 401: # Error 401 (Authentication failed) # Password is not the good one... server['password'] = None server['status'] = 'PROTECTED' else: server['status'] = 'OFFLINE' logger.debug("Cannot grab stats from server ({} {})".format(e.errcode, e.errmsg)) else: # Status server['status'] = 'ONLINE' # Optional stats (load is not available on Windows OS) try: # LOAD load_min5 = ujson.loads(s.getLoad())['min5'] server['load_min5'] = '{:.2f}'.format(load_min5) except Exception as e: logger.warning("Error while grabbing stats form server ({})".format(e)) return server def __display_server(self, server): """Connect and display the given server""" # Display the Glances client for the selected server logger.debug("Selected server {}".format(server)) # Connection can take time # Display a popup self.screen.display_popup('Connect to {}:{}'.format(server['name'], server['port']), duration=1) # A password is needed to access to the server's stats if server['password'] is None: # First of all, check if a password is available in the [passwords] section clear_password = self.password.get_password(server['name']) if clear_password is None or self.get_servers_list()[self.screen.active_server]['status'] == 'PROTECTED': # Else, the password should be enter by the user # Display a popup to enter password clear_password = self.screen.display_popup( 'Password needed for {}: '.format(server['name']), is_input=True ) # Store the password for the selected server if clear_password is not None: self.set_in_selected('password', self.password.get_hash(clear_password)) # Display the Glance client on the selected server logger.info("Connect Glances client to the {} server".format(server['key'])) # Init the client args_server = self.args # Overwrite connection setting args_server.client = server['ip'] args_server.port = server['port'] args_server.username = server['username'] args_server.password = server['password'] client = GlancesClient(config=self.config, args=args_server, return_to_browser=True) # Test if client and server are in the same major version if not client.login(): self.screen.display_popup( "Sorry, cannot connect to '{}'\n" "See '{}' for more details".format(server['name'], LOG_FILENAME) ) # Set the ONLINE status for the selected server self.set_in_selected('status', 'OFFLINE') else: # Start the client loop # Return connection type: 'glances' or 'snmp' connection_type = client.serve_forever() try: logger.debug("Disconnect Glances client from the {} server".format(server['key'])) except IndexError: # Server did not exist anymore pass else: # Set the ONLINE status for the selected server if connection_type == 'snmp': self.set_in_selected('status', 'SNMP') else: self.set_in_selected('status', 'ONLINE') # Return to the browser (no server selected) self.screen.active_server = None def __serve_forever(self): """Main client loop.""" # No need to update the server list # It's done by the GlancesAutoDiscoverListener class (autodiscover.py) # Or define statically in the configuration file (module static_list.py) # For each server in the list, grab elementary stats (CPU, LOAD, MEM, OS...) thread_list = {} while not self.screen.is_end: logger.debug("Iter through the following server list: {}".format(self.get_servers_list())) for v in self.get_servers_list(): key = v["key"] thread = thread_list.get(key, None) if thread is None or thread.is_alive() is False: thread = threading.Thread(target=self.__update_stats, args=[v]) thread_list[key] = thread thread.start() # Update the screen (list or Glances client) if self.screen.active_server is None: # Display the Glances browser self.screen.update(self.get_servers_list()) else: # Display the active server self.__display_server(self.get_servers_list()[self.screen.active_server]) # exit key pressed for thread in thread_list.values(): thread.join() def serve_forever(self): """Wrapper to the serve_forever function. This function will restore the terminal to a sane state before re-raising the exception and generating a traceback. """ try: return self.__serve_forever() finally: self.end() def set_in_selected(self, key, value): """Set the (key, value) for the selected server in the list.""" # Static list then dynamic one if self.screen.active_server >= len(self.static_server.get_servers_list()): self.autodiscover_server.set_server( self.screen.active_server - len(self.static_server.get_servers_list()), key, value ) else: self.static_server.set_server(self.screen.active_server, key, value) def end(self): """End of the client browser session.""" self.screen.end() glances-3.4.0.3/glances/actions.py0000644000175000017500000000602314432156570016635 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage on alert actions.""" from glances.logger import logger from glances.timer import Timer from glances.secure import secure_popen try: import chevron except ImportError: logger.debug("Chevron library not found (action scripts won't work)") chevron_tag = False else: chevron_tag = True class GlancesActions(object): """This class manage action if an alert is reached.""" def __init__(self, args=None): """Init GlancesActions class.""" # Dict with the criticality status # - key: stat_name # - value: criticality # Goal: avoid to execute the same command twice self.status = {} # Add a timer to avoid any trigger when Glances is started (issue#732) # Action can be triggered after refresh * 2 seconds if hasattr(args, 'time'): self.start_timer = Timer(args.time * 2) else: self.start_timer = Timer(3) def get(self, stat_name): """Get the stat_name criticality.""" try: return self.status[stat_name] except KeyError: return None def set(self, stat_name, criticality): """Set the stat_name to criticality.""" self.status[stat_name] = criticality def run(self, stat_name, criticality, commands, repeat, mustache_dict=None): """Run the commands (in background). :param stat_name: plugin_name (+ header) :param criticality: criticality of the trigger :param commands: a list of command line with optional {{mustache}} :param repeat: If True, then repeat the action :param mustache_dict: Plugin stats (can be use within {{mustache}}) :return: True if the commands have been ran. """ if (self.get(stat_name) == criticality and not repeat) or not self.start_timer.finished(): # Action already executed => Exit return False logger.debug( "{} action {} for {} ({}) with stats {}".format( "Repeat" if repeat else "Run", commands, stat_name, criticality, mustache_dict ) ) # Run all actions in background for cmd in commands: # Replace {{arg}} by the dict one (Thk to {Mustache}) if chevron_tag: cmd_full = chevron.render(cmd, mustache_dict) else: cmd_full = cmd # Execute the action logger.info("Action triggered for {} ({}): {}".format(stat_name, criticality, cmd_full)) try: ret = secure_popen(cmd_full) except OSError as e: logger.error("Action error for {} ({}): {}".format(stat_name, criticality, e)) else: logger.debug("Action result for {} ({}): {}".format(stat_name, criticality, ret)) self.set(stat_name, criticality) return True glances-3.4.0.3/glances/folder_list.py0000644000175000017500000001535014432156570017506 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the folder list.""" from __future__ import unicode_literals import os from glances.timer import Timer from glances.compat import range, nativestr from glances.logger import logger # Use the built-in version of scandir/walk if possible, otherwise # use the scandir module version scandir_tag = True try: # For Python 3.5 or higher from os import scandir except ImportError: # For others... try: from scandir import scandir except ImportError: scandir_tag = False class FolderList(object): """This class describes the optional monitored folder list. The folder list is a list of 'important' folder to monitor. The list (Python list) is composed of items (Python dict). An item is defined (dict keys): * path: Path to the folder * careful: optional careful threshold (in MB) * warning: optional warning threshold (in MB) * critical: optional critical threshold (in MB) """ # Maximum number of items in the list __folder_list_max_size = 10 # The folder list __folder_list = [] # Default refresh time is 30 seconds for this plugins __default_refresh = 30 def __init__(self, config): """Init the folder list from the configuration file, if it exists.""" self.config = config # A list of Timer # One timer per folder # default timer is __default_refresh, can be overwrite by folder_1_refresh=600 self.timer_folders = [] self.first_grab = True if self.config is not None and self.config.has_section('folders'): if scandir_tag: # Process monitoring list logger.debug("Folder list configuration detected") self.__set_folder_list('folders') else: logger.error('Scandir not found. Please use Python 3.5+ or install the scandir lib') else: self.__folder_list = [] def __set_folder_list(self, section): """Init the monitored folder list. The list is defined in the Glances configuration file. """ for line in range(1, self.__folder_list_max_size + 1): value = {} key = 'folder_' + str(line) + '_' # Path is mandatory value['indice'] = str(line) value['path'] = self.config.get_value(section, key + 'path') if value['path'] is None: continue else: value['path'] = nativestr(value['path']) # Optional conf keys # Refresh time value['refresh'] = int(self.config.get_value(section, key + 'refresh', default=self.__default_refresh)) self.timer_folders.append(Timer(value['refresh'])) # Thresholds for i in ['careful', 'warning', 'critical']: # Read threshold value[i] = self.config.get_value(section, key + i) if value[i] is not None: logger.debug("{} threshold for folder {} is {}".format(i, value["path"], value[i])) # Read action action = self.config.get_value(section, key + i + '_action') if action is not None: value[i + '_action'] = action logger.debug("{} action for folder {} is {}".format(i, value["path"], value[i + '_action'])) # Add the item to the list self.__folder_list.append(value) def __str__(self): return str(self.__folder_list) def __repr__(self): return self.__folder_list def __getitem__(self, item): return self.__folder_list[item] def __len__(self): return len(self.__folder_list) def __get__(self, item, key): """Meta function to return key value of item. Return None if not defined or item > len(list) """ if item < len(self.__folder_list): try: return self.__folder_list[item][key] except Exception: return None else: return None def __folder_size(self, path): """Return the size of the directory given by path path: """ ret = 0 for f in scandir(path): if f.is_dir() and (f.name != '.' or f.name != '..'): ret += self.__folder_size(os.path.join(path, f.name)) else: try: ret += f.stat().st_size except OSError: pass return ret def update(self, key='path'): """Update the command result attributed.""" # Only continue if monitor list is not empty if len(self.__folder_list) == 0: return self.__folder_list # Iter upon the folder list for i in range(len(self.get())): # Update folder size if not self.first_grab and not self.timer_folders[i].finished(): continue # Set the key (see issue #2327) self.__folder_list[i]['key'] = key # Get folder size try: self.__folder_list[i]['size'] = self.__folder_size(self.path(i)) except OSError as e: logger.debug('Cannot get folder size ({}). Error: {}'.format(self.path(i), e)) if e.errno == 13: # Permission denied self.__folder_list[i]['size'] = '!' else: self.__folder_list[i]['size'] = '?' # Reset the timer self.timer_folders[i].reset() # It is no more the first time... self.first_grab = False return self.__folder_list def get(self): """Return the monitored list (list of dict).""" return self.__folder_list def set(self, new_list): """Set the monitored list (list of dict).""" self.__folder_list = new_list def getAll(self): # Deprecated: use get() return self.get() def setAll(self, new_list): # Deprecated: use set() self.set(new_list) def path(self, item): """Return the path of the item number (item).""" return self.__get__(item, "path") def careful(self, item): """Return the careful threshold of the item number (item).""" return self.__get__(item, "careful") def warning(self, item): """Return the warning threshold of the item number (item).""" return self.__get__(item, "warning") def critical(self, item): """Return the critical threshold of the item number (item).""" return self.__get__(item, "critical") glances-3.4.0.3/glances/history.py0000644000175000017500000000260114432156570016674 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage stats history""" from glances.attribute import GlancesAttribute class GlancesHistory(object): """This class manage a dict of GlancesAttribute - key: stats name - value: GlancesAttribute""" def __init__(self): """ items_history_list: list of stats to historized (define inside plugins) """ self.stats_history = {} def add(self, key, value, description='', history_max_size=None): """Add an new item (key, value) to the current history.""" if key not in self.stats_history: self.stats_history[key] = GlancesAttribute(key, description=description, history_max_size=history_max_size) self.stats_history[key].value = value def reset(self): """Reset all the stats history""" for a in self.stats_history: self.stats_history[a].history_reset() def get(self, nb=0): """Get the history as a dict of list""" return {i: self.stats_history[i].history_raw(nb=nb) for i in self.stats_history} def get_json(self, nb=0): """Get the history as a dict of list (with list JSON compliant)""" return {i: self.stats_history[i].history_json(nb=nb) for i in self.stats_history} glances-3.4.0.3/glances/outputs/0000755000175000017500000000000014432156570016345 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/glances_sparklines.py0000644000175000017500000000477214432156570022600 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage sparklines for Glances output.""" from __future__ import unicode_literals from __future__ import division import sys from glances.logger import logger from glances.compat import nativestr sparklines_module = True try: from sparklines import sparklines except ImportError as e: logger.warning("Sparklines module not found ({})".format(e)) sparklines_module = False try: '┌┬┐╔╦╗╒╤╕╓╥╖│║─═├┼┤╠╬╣╞╪╡╟╫╢└┴┘╚╩╝╘╧╛╙╨╜'.encode(sys.stdout.encoding) except (UnicodeEncodeError, TypeError) as e: logger.warning("UTF-8 is mandatory for sparklines ({})".format(e)) sparklines_module = False class Sparkline(object): """Manage sparklines (see https://pypi.org/project/sparklines/).""" def __init__(self, size, pre_char='[', post_char=']', empty_char=' ', with_text=True): # If the sparklines python module available ? self.__available = sparklines_module # Sparkline size self.__size = size # Sparkline current percents list self.__percent = [] # Char used for the decoration self.__pre_char = pre_char self.__post_char = post_char self.__empty_char = empty_char self.__with_text = with_text @property def available(self): return self.__available @property def size(self, with_decoration=False): # Return the sparkline size, with or without decoration if with_decoration: return self.__size if self.__with_text: return self.__size - 6 @property def percents(self): return self.__percent @percents.setter def percents(self, value): self.__percent = value @property def pre_char(self): return self.__pre_char @property def post_char(self): return self.__post_char def get(self): """Return the sparkline.""" ret = sparklines(self.percents, minimum=0, maximum=100)[0] if self.__with_text: percents_without_none = [x for x in self.percents if x is not None] if len(percents_without_none) > 0: ret = '{}{:5.1f}%'.format(ret, percents_without_none[-1]) return nativestr(ret) def __str__(self): """Return the sparkline.""" return self.get() glances-3.4.0.3/glances/outputs/glances_bars.py0000644000175000017500000000435014432156570021344 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage bars for Glances output.""" from __future__ import division from math import modf class Bar(object): """Manage bar (progression or status). import sys import time b = Bar(10) for p in range(0, 100): b.percent = p print("\r%s" % b), time.sleep(0.1) sys.stdout.flush() """ def __init__(self, size, percentage_char='|', empty_char=' ', pre_char='[', post_char=']', with_text=True): # Build curses_bars self.__curses_bars = [empty_char] * 5 + [percentage_char] * 5 # Bar size self.__size = size # Bar current percent self.__percent = 0 # Min and max value self.min_value = 0 self.max_value = 100 # Char used for the decoration self.__pre_char = pre_char self.__post_char = post_char self.__empty_char = empty_char self.__with_text = with_text @property def size(self, with_decoration=False): # Return the bar size, with or without decoration if with_decoration: return self.__size if self.__with_text: return self.__size - 6 @property def percent(self): return self.__percent @percent.setter def percent(self, value): if value <= self.min_value: value = self.min_value if value >= self.max_value: value = self.max_value self.__percent = value @property def pre_char(self): return self.__pre_char @property def post_char(self): return self.__post_char def get(self): """Return the bars.""" frac, whole = modf(self.size * self.percent / 100.0) ret = self.__curses_bars[8] * int(whole) if frac > 0: ret += self.__curses_bars[int(frac * 8)] whole += 1 ret += self.__empty_char * int(self.size - whole) if self.__with_text: ret = '{}{:5.1f}%'.format(ret, self.percent) return ret def __str__(self): """Return the bars.""" return self.get() glances-3.4.0.3/glances/outputs/glances_stdout_issue.py0000644000175000017500000001054414432156570023151 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Issue interface class.""" import os import sys import platform import time import pprint from glances.timer import Counter from glances import __version__, psutil_version import psutil import glances TERMINAL_WIDTH = 79 class colors: RED = '\033[91m' GREEN = '\033[92m' ORANGE = '\033[93m' BLUE = '\033[94m' NO = '\033[0m' def disable(self): self.RED = '' self.GREEN = '' self.BLUE = '' self.ORANGE = '' self.NO = '' class GlancesStdoutIssue(object): """This class manages the Issue display.""" def __init__(self, config=None, args=None): # Init self.config = config self.args = args def end(self): pass def print_version(self): sys.stdout.write('=' * TERMINAL_WIDTH + '\n') sys.stdout.write( 'Glances {} ({})\n'.format(colors.BLUE + __version__ + colors.NO, os.path.realpath(glances.__file__)) ) sys.stdout.write('Python {} ({})\n'.format(colors.BLUE + platform.python_version() + colors.NO, sys.executable)) sys.stdout.write( 'PsUtil {} ({})\n'.format(colors.BLUE + psutil_version + colors.NO, os.path.realpath(psutil.__file__)) ) sys.stdout.write('=' * TERMINAL_WIDTH + '\n') sys.stdout.flush() def print_issue(self, plugin, result, message): sys.stdout.write('{}{}{}'.format(colors.BLUE + plugin, result, message)) sys.stdout.write(colors.NO + '\n') sys.stdout.flush() def update(self, stats, duration=3): """Display issue""" self.print_version() for plugin in sorted(stats._plugins): if stats._plugins[plugin].is_disabled(): continue try: # Update the stats stats._plugins[plugin].update() except Exception: pass time.sleep(2) counter_total = Counter() for plugin in sorted(stats._plugins): if stats._plugins[plugin].is_disabled(): # If current plugin is disable # then continue to next plugin result = colors.NO + '[NA]'.rjust(18 - len(plugin)) message = colors.NO self.print_issue(plugin, result, message) continue # Start the counter counter = Counter() counter.reset() stat = None stat_error = None try: # Update the stats stats._plugins[plugin].update() # Get the stats stat = stats.get_plugin(plugin).get_export() # Hide private information if plugin == 'ip': for key in stat.keys(): stat[key] = '***' except Exception as e: stat_error = e if stat_error is None: result = (colors.GREEN + '[OK] ' + colors.BLUE + ' {:.5f}s '.format(counter.get())).rjust( 41 - len(plugin) ) if isinstance(stat, list) and len(stat) > 0 and 'key' in stat[0]: key = 'key={} '.format(stat[0]['key']) stat_output = pprint.pformat([stat[0]], compact=True, width=120, depth=3) message = colors.ORANGE + key + colors.NO + '\n' + stat_output[0:-1] + ', ...' + stat_output[-1] else: message = '\n' + colors.NO + pprint.pformat(stat, compact=True, width=120, depth=2) else: result = (colors.RED + '[ERROR]' + colors.BLUE + ' {:.5f}s '.format(counter.get())).rjust( 41 - len(plugin) ) message = colors.NO + str(stat_error)[0 : TERMINAL_WIDTH - 41] # Display the result self.print_issue(plugin, result, message) # Display total time need to update all plugins sys.stdout.write('=' * TERMINAL_WIDTH + '\n') print("Total time to update all stats: {}{:.5f}s{}".format(colors.BLUE, counter_total.get(), colors.NO)) sys.stdout.write('=' * TERMINAL_WIDTH + '\n') # Return True to exit directly (no refresh) return True glances-3.4.0.3/glances/outputs/glances_curses_browser.py0000644000175000017500000003056314432156570023471 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Curses browser interface class .""" import math import curses from glances.outputs.glances_curses import _GlancesCurses from glances.logger import logger from glances.timer import Timer class GlancesCursesBrowser(_GlancesCurses): """Class for the Glances curse client browser.""" def __init__(self, args=None): """Init the father class.""" super(GlancesCursesBrowser, self).__init__(args=args) _colors_list = { 'UNKNOWN': self.no_color, 'SNMP': self.default_color2, 'ONLINE': self.default_color2, 'OFFLINE': self.ifCRITICAL_color2, 'PROTECTED': self.ifWARNING_color2, } self.colors_list.update(_colors_list) # First time scan tag # Used to display a specific message when the browser is started self.first_scan = True # Init refresh time self.__refresh_time = args.time # Init the cursor position for the client browser self.cursor_position = 0 # Active Glances server number self._active_server = None self._current_page = 0 self._page_max = 0 self._page_max_lines = 0 self.is_end = False self._revesed_sorting = False self._stats_list = None @property def active_server(self): """Return the active server or None if it's the browser list.""" return self._active_server @active_server.setter def active_server(self, index): """Set the active server or None if no server selected.""" self._active_server = index @property def cursor(self): """Get the cursor position.""" return self.cursor_position @cursor.setter def cursor(self, position): """Set the cursor position.""" self.cursor_position = position def get_pagelines(self, stats): if self._current_page == self._page_max - 1: page_lines = len(stats) % self._page_max_lines else: page_lines = self._page_max_lines return page_lines def _get_status_count(self, stats): counts = {} for item in stats: color = item['status'] counts[color] = counts.get(color, 0) + 1 result = '' for key in counts.keys(): result += key + ': ' + str(counts[key]) + ' ' return result def _get_stats(self, stats): stats_list = None if self._stats_list is not None: stats_list = self._stats_list stats_list.sort( reverse=self._revesed_sorting, key=lambda x: {'UNKNOWN': 0, 'OFFLINE': 1, 'PROTECTED': 2, 'SNMP': 3, 'ONLINE': 4}.get(x['status'], 99), ) else: stats_list = stats return stats_list def cursor_up(self, stats): """Set the cursor to position N-1 in the list.""" if 0 <= self.cursor_position - 1: self.cursor_position -= 1 else: if self._current_page - 1 < 0: self._current_page = self._page_max - 1 self.cursor_position = (len(stats) - 1) % self._page_max_lines else: self._current_page -= 1 self.cursor_position = self._page_max_lines - 1 def cursor_down(self, stats): """Set the cursor to position N-1 in the list.""" if self.cursor_position + 1 < self.get_pagelines(stats): self.cursor_position += 1 else: if self._current_page + 1 < self._page_max: self._current_page += 1 else: self._current_page = 0 self.cursor_position = 0 def cursor_pageup(self, stats): """Set prev page.""" if self._current_page - 1 < 0: self._current_page = self._page_max - 1 else: self._current_page -= 1 self.cursor_position = 0 def cursor_pagedown(self, stats): """Set next page.""" if self._current_page + 1 < self._page_max: self._current_page += 1 else: self._current_page = 0 self.cursor_position = 0 def __catch_key(self, stats): # Catch the browser pressed key self.pressedkey = self.get_key(self.term_window) refresh = False if self.pressedkey != -1: logger.debug("Key pressed. Code=%s" % self.pressedkey) # Actions... if self.pressedkey == ord('\x1b') or self.pressedkey == ord('q'): # 'ESC'|'q' > Quit self.end() logger.info("Stop Glances client browser") # sys.exit(0) self.is_end = True elif self.pressedkey == 10: # 'ENTER' > Run Glances on the selected server self.active_server = self._current_page * self._page_max_lines + self.cursor_position logger.debug("Server {}/{} selected".format(self.active_server, len(stats))) elif self.pressedkey == curses.KEY_UP or self.pressedkey == 65: # 'UP' > Up in the server list self.cursor_up(stats) logger.debug("Server {}/{} selected".format(self.cursor + 1, len(stats))) elif self.pressedkey == curses.KEY_DOWN or self.pressedkey == 66: # 'DOWN' > Down in the server list self.cursor_down(stats) logger.debug("Server {}/{} selected".format(self.cursor + 1, len(stats))) elif self.pressedkey == curses.KEY_PPAGE: # 'Page UP' > Prev page in the server list self.cursor_pageup(stats) logger.debug("PageUP: Server ({}/{}) pages.".format(self._current_page + 1, self._page_max)) elif self.pressedkey == curses.KEY_NPAGE: # 'Page Down' > Next page in the server list self.cursor_pagedown(stats) logger.debug("PageDown: Server {}/{} pages".format(self._current_page + 1, self._page_max)) elif self.pressedkey == ord('1'): self._stats_list = None refresh = True elif self.pressedkey == ord('2'): self._revesed_sorting = False self._stats_list = stats.copy() refresh = True elif self.pressedkey == ord('3'): self._revesed_sorting = True self._stats_list = stats.copy() refresh = True if refresh: self._current_page = 0 self.cursor_position = 0 self.flush(stats) # Return the key code return self.pressedkey def update(self, stats, duration=3, cs_status=None, return_to_browser=False): """Update the servers' list screen. Wait for __refresh_time sec / catch key every 100 ms. :param stats: Dict of dict with servers stats :param cs_status: :param duration: :param return_to_browser: """ # Flush display logger.debug('Servers list: {}'.format(stats)) self.flush(stats) # Wait exitkey = False countdown = Timer(self.__refresh_time) while not countdown.finished() and not exitkey: # Getkey pressedkey = self.__catch_key(stats) # Is it an exit or select server key ? exitkey = pressedkey == ord('\x1b') or pressedkey == ord('q') or pressedkey == 10 if not exitkey and pressedkey > -1: # Redraw display self.flush(stats) # Wait 100ms... self.wait() return self.active_server def flush(self, stats): """Update the servers' list screen. :param stats: List of dict with servers stats """ self.erase() self.display(stats) def display(self, stats, cs_status=None): """Display the servers list. :return: True if the stats have been displayed else False (no server available) """ # Init the internal line/column for Glances Curses self.init_line_column() # Get the current screen size screen_x = self.screen.getmaxyx()[1] screen_y = self.screen.getmaxyx()[0] stats_max = screen_y - 3 stats_len = len(stats) self._page_max_lines = stats_max self._page_max = int(math.ceil(stats_len / stats_max)) # Init position x = 0 y = 0 # Display top header if stats_len == 0: if self.first_scan and not self.args.disable_autodiscover: msg = 'Glances is scanning your network. Please wait...' self.first_scan = False else: msg = 'No Glances server available' elif len(stats) == 1: msg = 'One Glances server available' else: msg = '{} Glances servers available'.format(stats_len) if self.args.disable_autodiscover: msg += ' (auto discover is disabled)' if screen_y > 1: self.term_window.addnstr(y, x, msg, screen_x - x, self.colors_list['TITLE']) msg = '{}'.format(self._get_status_count(stats)) self.term_window.addnstr(y + 1, x, msg, screen_x - x) if stats_len > stats_max and screen_y > 2: msg = '{} servers displayed.({}/{}) {}'.format( self.get_pagelines(stats), self._current_page + 1, self._page_max, self._get_status_count(stats) ) self.term_window.addnstr(y + 1, x, msg, screen_x - x) if stats_len == 0: return False # Display the Glances server list # ================================ # Table of table # Item description: [stats_id, column name, column size] column_def = [ ['name', 'Name', 16], ['alias', None, None], ['load_min5', 'LOAD', 6], ['cpu_percent', 'CPU%', 5], ['mem_percent', 'MEM%', 5], ['status', 'STATUS', 9], ['ip', 'IP', 15], # ['port', 'PORT', 5], ['hr_name', 'OS', 16], ] y = 2 # Display table header xc = x + 2 for cpt, c in enumerate(column_def): if xc < screen_x and y < screen_y and c[1] is not None: self.term_window.addnstr(y, xc, c[1], screen_x - x, self.colors_list['BOLD']) xc += c[2] + self.space_between_column y += 1 # If a servers has been deleted from the list... # ... and if the cursor is in the latest position if self.cursor > len(stats) - 1: # Set the cursor position to the latest item self.cursor = len(stats) - 1 stats_list = self._get_stats(stats) start_line = self._page_max_lines * self._current_page end_line = start_line + self.get_pagelines(stats_list) current_page = stats_list[start_line:end_line] # Display table line = 0 for v in current_page: # Limit the number of displayed server (see issue #1256) if line >= stats_max: continue # Get server stats server_stat = {} for c in column_def: try: server_stat[c[0]] = v[c[0]] except KeyError as e: logger.debug("Cannot grab stats {} from server (KeyError: {})".format(c[0], e)) server_stat[c[0]] = '?' # Display alias instead of name try: if c[0] == 'alias' and v[c[0]] is not None: server_stat['name'] = v[c[0]] except KeyError: pass # Display line for server stats cpt = 0 xc = x # Is the line selected ? if line == self.cursor: # Display cursor self.term_window.addnstr(y, xc, ">", screen_x - xc, self.colors_list['BOLD']) # Display the line xc += 2 for c in column_def: if xc < screen_x and y < screen_y and c[1] is not None: # Display server stats self.term_window.addnstr(y, xc, format(server_stat[c[0]]), c[2], self.colors_list[v['status']]) xc += c[2] + self.space_between_column cpt += 1 # Next line, next server... y += 1 line += 1 return True glances-3.4.0.3/glances/outputs/glances_curses.py0000644000175000017500000014032714432156570021726 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Curses interface class.""" from __future__ import unicode_literals import sys from glances.compat import nativestr, u, itervalues, enable, disable from glances.globals import MACOS, WINDOWS from glances.logger import logger from glances.events import glances_events from glances.processes import glances_processes, sort_processes_key_list from glances.outputs.glances_unicode import unicode_message from glances.timer import Timer # Import curses library for "normal" operating system try: import curses import curses.panel from curses.textpad import Textbox except ImportError: logger.critical("Curses module not found. Glances cannot start in standalone mode.") if WINDOWS: logger.critical("For Windows you can try installing windows-curses with pip install.") sys.exit(1) class _GlancesCurses(object): """This class manages the curses display (and key pressed). Note: It is a private class, use GlancesCursesClient or GlancesCursesBrowser. """ _hotkeys = { # 'ENTER' > Edit the process filter '0': {'switch': 'disable_irix'}, '1': {'switch': 'percpu'}, '2': {'switch': 'disable_left_sidebar'}, '3': {'switch': 'disable_quicklook'}, # '4' > Enable or disable quicklook # '5' > Enable or disable top menu '6': {'switch': 'meangpu'}, '9': {'switch': 'theme_white'}, '/': {'switch': 'process_short_name'}, 'a': {'sort_key': 'auto'}, 'A': {'switch': 'disable_amps'}, 'b': {'switch': 'byte'}, 'B': {'switch': 'diskio_iops'}, 'c': {'sort_key': 'cpu_percent'}, 'C': {'switch': 'disable_cloud'}, 'd': {'switch': 'disable_diskio'}, 'D': {'switch': 'disable_containers'}, # 'e' > Enable/Disable process extended # 'E' > Erase the process filter # 'f' > Show/hide fs / folder stats 'F': {'switch': 'fs_free_space'}, 'g': {'switch': 'generate_graph'}, 'G': {'switch': 'disable_gpu'}, 'h': {'switch': 'help_tag'}, 'i': {'sort_key': 'io_counters'}, 'I': {'switch': 'disable_ip'}, 'j': {'switch': 'programs'}, # 'k' > Kill selected process 'K': {'switch': 'disable_connections'}, 'l': {'switch': 'disable_alert'}, 'm': {'sort_key': 'memory_percent'}, 'M': {'switch': 'reset_minmax_tag'}, 'n': {'switch': 'disable_network'}, 'N': {'switch': 'disable_now'}, 'p': {'sort_key': 'name'}, 'P': {'switch': 'disable_ports'}, # 'q' or ESCAPE > Quit 'Q': {'switch': 'enable_irq'}, 'r': {'switch': 'disable_smart'}, 'R': {'switch': 'disable_raid'}, 's': {'switch': 'disable_sensors'}, 'S': {'switch': 'sparkline'}, 't': {'sort_key': 'cpu_times'}, 'T': {'switch': 'network_sum'}, 'u': {'sort_key': 'username'}, 'U': {'switch': 'network_cumul'}, # 'w' > Delete finished warning logs 'W': {'switch': 'disable_wifi'}, # 'x' > Delete finished warning and critical logs # 'z' > Enable or disable processes # '+' > Increase the process nice level # '-' > Decrease the process nice level # "<" (left arrow) navigation through process sort # ">" (right arrow) navigation through process sort # 'UP' > Up in the server list # 'DOWN' > Down in the server list } _sort_loop = sort_processes_key_list # Define top menu _top = ['quicklook', 'cpu', 'percpu', 'gpu', 'mem', 'memswap', 'load'] _quicklook_max_width = 68 # Define left sidebar _left_sidebar = [ 'network', 'connections', 'wifi', 'ports', 'diskio', 'fs', 'irq', 'folders', 'raid', 'smart', 'sensors', 'now', ] _left_sidebar_min_width = 23 _left_sidebar_max_width = 34 # Define right sidebar _right_sidebar = ['containers', 'processcount', 'amps', 'processlist', 'alert'] def __init__(self, config=None, args=None): # Init self.config = config self.args = args # Init windows positions self.term_w = 80 self.term_h = 24 # Space between stats self.space_between_column = 3 self.space_between_line = 2 # Init the curses screen self.screen = curses.initscr() if not self.screen: logger.critical("Cannot init the curses library.\n") sys.exit(1) # Load the 'outputs' section of the configuration file # - Init the theme (default is black) self.theme = {'name': 'black'} # Load configuration file self.load_config(config) # Init cursor self._init_cursor() # Init the colors self._init_colors() # Init main window self.term_window = self.screen.subwin(0, 0) # Init edit filter tag self.edit_filter = False # Init nice increase/decrease tag self.increase_nice_process = False self.decrease_nice_process = False # Init kill process tag self.kill_process = False # Init the process min/max reset self.args.reset_minmax_tag = False # Init cursor self.args.cursor_position = 0 # Catch key pressed with non blocking mode self.term_window.keypad(1) self.term_window.nodelay(1) self.pressedkey = -1 # History tag self._init_history() def load_config(self, config): """Load the outputs section of the configuration file.""" # Load the theme if config is not None and config.has_section('outputs'): logger.debug('Read the outputs section in the configuration file') self.theme['name'] = config.get_value('outputs', 'curse_theme', default='black') logger.debug('Theme for the curse interface: {}'.format(self.theme['name'])) def is_theme(self, name): """Return True if the theme *name* should be used.""" return getattr(self.args, 'theme_' + name) or self.theme['name'] == name def _init_history(self): """Init the history option.""" self.reset_history_tag = False def _init_cursor(self): """Init cursors.""" if hasattr(curses, 'noecho'): curses.noecho() if hasattr(curses, 'cbreak'): curses.cbreak() self.set_cursor(0) def _init_colors(self): """Init the Curses color layout.""" # Set curses options try: if hasattr(curses, 'start_color'): curses.start_color() logger.debug('Curses interface compatible with {} colors'.format(curses.COLORS)) if hasattr(curses, 'use_default_colors'): curses.use_default_colors() except Exception as e: logger.warning('Error initializing terminal color ({})'.format(e)) # Init colors if self.args.disable_bold: A_BOLD = 0 self.args.disable_bg = True else: A_BOLD = curses.A_BOLD self.title_color = A_BOLD self.title_underline_color = A_BOLD | curses.A_UNDERLINE self.help_color = A_BOLD if curses.has_colors(): # The screen is compatible with a colored design if self.is_theme('white'): # White theme: black ==> white curses.init_pair(1, curses.COLOR_BLACK, -1) else: curses.init_pair(1, curses.COLOR_WHITE, -1) if self.args.disable_bg: curses.init_pair(2, curses.COLOR_RED, -1) curses.init_pair(3, curses.COLOR_GREEN, -1) curses.init_pair(4, curses.COLOR_BLUE, -1) curses.init_pair(5, curses.COLOR_MAGENTA, -1) else: curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_RED) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_GREEN) curses.init_pair(4, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(5, curses.COLOR_WHITE, curses.COLOR_MAGENTA) curses.init_pair(6, curses.COLOR_RED, -1) curses.init_pair(7, curses.COLOR_GREEN, -1) curses.init_pair(8, curses.COLOR_BLUE, -1) # Colors text styles self.no_color = curses.color_pair(1) self.default_color = curses.color_pair(3) | A_BOLD self.nice_color = curses.color_pair(5) self.cpu_time_color = curses.color_pair(5) self.ifCAREFUL_color = curses.color_pair(4) | A_BOLD self.ifWARNING_color = curses.color_pair(5) | A_BOLD self.ifCRITICAL_color = curses.color_pair(2) | A_BOLD self.default_color2 = curses.color_pair(7) self.ifCAREFUL_color2 = curses.color_pair(8) | A_BOLD self.ifWARNING_color2 = curses.color_pair(5) | A_BOLD self.ifCRITICAL_color2 = curses.color_pair(6) | A_BOLD self.ifINFO_color = curses.color_pair(8) self.filter_color = A_BOLD self.selected_color = A_BOLD if curses.COLOR_PAIRS > 8: colors_list = [curses.COLOR_MAGENTA, curses.COLOR_CYAN, curses.COLOR_YELLOW] for i in range(0, 3): try: curses.init_pair(i + 9, colors_list[i], -1) except Exception: if self.is_theme('white'): curses.init_pair(i + 9, curses.COLOR_BLACK, -1) else: curses.init_pair(i + 9, curses.COLOR_WHITE, -1) self.nice_color = curses.color_pair(9) self.cpu_time_color = curses.color_pair(9) self.ifWARNING_color2 = curses.color_pair(9) | A_BOLD self.filter_color = curses.color_pair(10) | A_BOLD self.selected_color = curses.color_pair(11) | A_BOLD else: # The screen is NOT compatible with a colored design # switch to B&W text styles self.no_color = curses.A_NORMAL self.default_color = curses.A_NORMAL self.nice_color = A_BOLD self.cpu_time_color = A_BOLD self.ifCAREFUL_color = curses.A_UNDERLINE self.ifWARNING_color = A_BOLD self.ifCRITICAL_color = curses.A_REVERSE self.default_color2 = curses.A_NORMAL self.ifCAREFUL_color2 = curses.A_UNDERLINE self.ifWARNING_color2 = A_BOLD self.ifCRITICAL_color2 = curses.A_REVERSE self.ifINFO_color = A_BOLD self.filter_color = A_BOLD self.selected_color = A_BOLD # Define the colors list (hash table) for stats self.colors_list = { 'DEFAULT': self.no_color, 'UNDERLINE': curses.A_UNDERLINE, 'BOLD': A_BOLD, 'SORT': curses.A_UNDERLINE | A_BOLD, 'OK': self.default_color2, 'MAX': self.default_color2 | A_BOLD, 'FILTER': self.filter_color, 'TITLE': self.title_color, 'PROCESS': self.default_color2, 'PROCESS_SELECTED': self.default_color2 | curses.A_UNDERLINE, 'STATUS': self.default_color2, 'NICE': self.nice_color, 'CPU_TIME': self.cpu_time_color, 'CAREFUL': self.ifCAREFUL_color2, 'WARNING': self.ifWARNING_color2, 'CRITICAL': self.ifCRITICAL_color2, 'OK_LOG': self.default_color, 'CAREFUL_LOG': self.ifCAREFUL_color, 'WARNING_LOG': self.ifWARNING_color, 'CRITICAL_LOG': self.ifCRITICAL_color, 'PASSWORD': curses.A_PROTECT, 'SELECTED': self.selected_color, 'INFO': self.ifINFO_color, } def set_cursor(self, value): """Configure the curse cursor appearance. 0: invisible 1: visible 2: very visible """ if hasattr(curses, 'curs_set'): try: curses.curs_set(value) except Exception: pass def get_key(self, window): # @TODO: Check issue #163 ret = window.getch() return ret def __catch_key(self, return_to_browser=False): # Catch the pressed key self.pressedkey = self.get_key(self.term_window) if self.pressedkey == -1: return -1 # Actions (available in the global hotkey dict)... logger.debug("Keypressed (code: {})".format(self.pressedkey)) for hotkey in self._hotkeys: if self.pressedkey == ord(hotkey) and 'switch' in self._hotkeys[hotkey]: # Get the option name # Ex: disable_foo return foo # enable_foo_bar return foo_bar option = '_'.join(self._hotkeys[hotkey]['switch'].split('_')[1:]) if self._hotkeys[hotkey]['switch'].startswith('disable_'): # disable_ switch if getattr(self.args, self._hotkeys[hotkey]['switch']): enable(self.args, option) else: disable(self.args, option) elif self._hotkeys[hotkey]['switch'].startswith('enable_'): # enable_ switch if getattr(self.args, self._hotkeys[hotkey]['switch']): disable(self.args, option) else: enable(self.args, option) else: # Others switchs options (with no enable_ or disable_) setattr( self.args, self._hotkeys[hotkey]['switch'], not getattr(self.args, self._hotkeys[hotkey]['switch']), ) if self.pressedkey == ord(hotkey) and 'sort_key' in self._hotkeys[hotkey]: glances_processes.set_sort_key( self._hotkeys[hotkey]['sort_key'], self._hotkeys[hotkey]['sort_key'] == 'auto' ) # Other actions... if self.pressedkey == ord('\n'): # 'ENTER' > Edit the process filter self.edit_filter = not self.edit_filter elif self.pressedkey == ord('4'): # '4' > Enable or disable quicklook self.args.full_quicklook = not self.args.full_quicklook if self.args.full_quicklook: self.enable_fullquicklook() else: self.disable_fullquicklook() elif self.pressedkey == ord('5'): # '5' > Enable or disable top menu self.args.disable_top = not self.args.disable_top if self.args.disable_top: self.disable_top() else: self.enable_top() elif self.pressedkey == ord('9'): # '9' > Theme from black to white and reverse self._init_colors() elif self.pressedkey == ord('e') and not self.args.programs: # 'e' > Enable/Disable process extended self.args.enable_process_extended = not self.args.enable_process_extended if not self.args.enable_process_extended: glances_processes.disable_extended() else: glances_processes.enable_extended() # When a process is selected (and only in standalone mode), disable the cursor self.args.disable_cursor = self.args.enable_process_extended and self.args.is_standalone elif self.pressedkey == ord('E'): # 'E' > Erase the process filter glances_processes.process_filter = None elif self.pressedkey == ord('f'): # 'f' > Show/hide fs / folder stats self.args.disable_fs = not self.args.disable_fs self.args.disable_folders = not self.args.disable_folders elif self.pressedkey == ord('+'): # '+' > Increase process nice level self.increase_nice_process = not self.increase_nice_process elif self.pressedkey == ord('-'): # '+' > Decrease process nice level self.decrease_nice_process = not self.decrease_nice_process elif self.pressedkey == ord('k') and not self.args.disable_cursor: # 'k' > Kill selected process (after confirmation) self.kill_process = not self.kill_process elif self.pressedkey == ord('w'): # 'w' > Delete finished warning logs glances_events.clean() elif self.pressedkey == ord('x'): # 'x' > Delete finished warning and critical logs glances_events.clean(critical=True) elif self.pressedkey == ord('z'): # 'z' > Enable or disable processes self.args.disable_process = not self.args.disable_process if self.args.disable_process: glances_processes.disable() else: glances_processes.enable() elif self.pressedkey == curses.KEY_LEFT: # "<" (left arrow) navigation through process sort next_sort = (self.loop_position() - 1) % len(self._sort_loop) glances_processes.set_sort_key(self._sort_loop[next_sort], False) elif self.pressedkey == curses.KEY_RIGHT: # ">" (right arrow) navigation through process sort next_sort = (self.loop_position() + 1) % len(self._sort_loop) glances_processes.set_sort_key(self._sort_loop[next_sort], False) elif self.pressedkey == curses.KEY_UP or self.pressedkey == 65 and not self.args.disable_cursor: # 'UP' > Up in the server list if self.args.cursor_position > 0: self.args.cursor_position -= 1 elif self.pressedkey == curses.KEY_DOWN or self.pressedkey == 66 and not self.args.disable_cursor: # 'DOWN' > Down in the server list # if self.args.cursor_position < glances_processes.max_processes - 2: if self.args.cursor_position < glances_processes.processes_count: self.args.cursor_position += 1 elif self.pressedkey == ord('\x1b') or self.pressedkey == ord('q'): # 'ESC'|'q' > Quit if return_to_browser: logger.info("Stop Glances client and return to the browser") else: logger.info("Stop Glances (keypressed: {})".format(self.pressedkey)) elif self.pressedkey == curses.KEY_F5: # "F5" manual refresh requested pass # Return the key code return self.pressedkey def loop_position(self): """Return the current sort in the loop""" for i, v in enumerate(self._sort_loop): if v == glances_processes.sort_key: return i return 0 def disable_top(self): """Disable the top panel""" for p in ['quicklook', 'cpu', 'gpu', 'mem', 'memswap', 'load']: setattr(self.args, 'disable_' + p, True) def enable_top(self): """Enable the top panel""" for p in ['quicklook', 'cpu', 'gpu', 'mem', 'memswap', 'load']: setattr(self.args, 'disable_' + p, False) def disable_fullquicklook(self): """Disable the full quicklook mode""" for p in ['quicklook', 'cpu', 'gpu', 'mem', 'memswap']: setattr(self.args, 'disable_' + p, False) def enable_fullquicklook(self): """Disable the full quicklook mode""" self.args.disable_quicklook = False for p in ['cpu', 'gpu', 'mem', 'memswap']: setattr(self.args, 'disable_' + p, True) def end(self): """Shutdown the curses window.""" if hasattr(curses, 'echo'): curses.echo() if hasattr(curses, 'nocbreak'): curses.nocbreak() if hasattr(curses, 'curs_set'): try: curses.curs_set(1) except Exception: pass curses.endwin() def init_line_column(self): """Init the line and column position for the curses interface.""" self.init_line() self.init_column() def init_line(self): """Init the line position for the curses interface.""" self.line = 0 self.next_line = 0 def init_column(self): """Init the column position for the curses interface.""" self.column = 0 self.next_column = 0 def new_line(self, separator=False): """New line in the curses interface.""" self.line = self.next_line def new_column(self): """New column in the curses interface.""" self.column = self.next_column def separator_line(self, color='TITLE'): """New separator line in the curses interface.""" if not self.args.enable_separator: return self.new_line() self.line -= 1 line_width = self.term_window.getmaxyx()[1] - self.column self.term_window.addnstr( self.line, self.column, unicode_message('MEDIUM_LINE', self.args) * line_width, line_width, self.colors_list[color], ) def __get_stat_display(self, stats, layer): """Return a dict of dict with all the stats display. # TODO: Drop extra parameter :param stats: Global stats dict :param layer: ~ cs_status "None": standalone or server mode "Connected": Client is connected to a Glances server "SNMP": Client is connected to a SNMP server "Disconnected": Client is disconnected from the server :returns: dict of dict * key: plugin name * value: dict returned by the get_stats_display Plugin method """ ret = {} for p in stats.getPluginsList(enable=False): if p == 'quicklook' or p == 'processlist': # processlist is done later # because we need to know how many processes could be displayed continue # Compute the plugin max size plugin_max_width = None if p in self._left_sidebar: plugin_max_width = max(self._left_sidebar_min_width, self.term_window.getmaxyx()[1] - 105) plugin_max_width = min(self._left_sidebar_max_width, plugin_max_width) # Get the view ret[p] = stats.get_plugin(p).get_stats_display(args=self.args, max_width=plugin_max_width) return ret def display(self, stats, cs_status=None): """Display stats on the screen. :param stats: Stats database to display :param cs_status: "None": standalone or server mode "Connected": Client is connected to a Glances server "SNMP": Client is connected to a SNMP server "Disconnected": Client is disconnected from the server :return: True if the stats have been displayed else False if the help have been displayed """ # Init the internal line/column for Glances Curses self.init_line_column() # Update the stats messages ########################### # Get all the plugins but quicklook and process list self.args.cs_status = cs_status __stat_display = self.__get_stat_display(stats, layer=cs_status) # Adapt number of processes to the available space max_processes_displayed = ( self.term_window.getmaxyx()[0] - 11 - (0 if 'containers' not in __stat_display else self.get_stats_display_height(__stat_display["containers"])) - ( 0 if 'processcount' not in __stat_display else self.get_stats_display_height(__stat_display["processcount"]) ) - (0 if 'amps' not in __stat_display else self.get_stats_display_height(__stat_display["amps"])) - (0 if 'alert' not in __stat_display else self.get_stats_display_height(__stat_display["alert"])) ) try: if self.args.enable_process_extended: max_processes_displayed -= 4 except AttributeError: pass if max_processes_displayed < 0: max_processes_displayed = 0 if glances_processes.max_processes is None or glances_processes.max_processes != max_processes_displayed: logger.debug("Set number of displayed processes to {}".format(max_processes_displayed)) glances_processes.max_processes = max_processes_displayed # Get the processlist __stat_display["processlist"] = stats.get_plugin('processlist').get_stats_display(args=self.args) # Display the stats on the curses interface ########################################### # Help screen (on top of the other stats) if self.args.help_tag: # Display the stats... self.display_plugin(stats.get_plugin('help').get_stats_display(args=self.args)) # ... and exit return False # ===================================== # Display first line (system+ip+uptime) # Optionally: Cloud on second line # ===================================== self.__display_header(__stat_display) self.separator_line() # ============================================================== # Display second line (+CPU|PERCPU++LOAD+MEM+SWAP) # ============================================================== self.__display_top(__stat_display, stats) self.init_column() self.separator_line() # ================================================================== # Display left sidebar (NETWORK+PORTS+DISKIO+FS+SENSORS+Current time) # ================================================================== self.__display_left(__stat_display) # ==================================== # Display right stats (process and co) # ==================================== self.__display_right(__stat_display) # ===================== # Others popup messages # ===================== # Display edit filter popup # Only in standalone mode (cs_status is None) if self.edit_filter and cs_status is None: new_filter = self.display_popup( 'Process filter pattern: \n\n' + 'Examples:\n' + '- .*python.*\n' + '- /usr/lib.*\n' + '- name:.*nautilus.*\n' + '- cmdline:.*glances.*\n' + '- username:nicolargo\n' + '- username:^root ', popup_type='input', input_value=glances_processes.process_filter_input, ) glances_processes.process_filter = new_filter elif self.edit_filter and cs_status is not None: self.display_popup('Process filter only available in standalone mode') self.edit_filter = False # Manage increase/decrease nice level of the selected process # Only in standalone mode (cs_status is None) if self.increase_nice_process and cs_status is None: self.nice_increase(stats.get_plugin('processlist').get_raw()[self.args.cursor_position]) self.increase_nice_process = False if self.decrease_nice_process and cs_status is None: self.nice_decrease(stats.get_plugin('processlist').get_raw()[self.args.cursor_position]) self.decrease_nice_process = False # Display kill process confirmation popup # Only in standalone mode (cs_status is None) if self.kill_process and cs_status is None: self.kill(stats.get_plugin('processlist').get_raw()[self.args.cursor_position]) elif self.kill_process and cs_status is not None: self.display_popup('Kill process only available for local processes') self.kill_process = False # Display graph generation popup if self.args.generate_graph: if 'graph' in stats.getExportsList(): self.display_popup('Generate graph in {}'.format(self.args.export_graph_path)) else: logger.warning('Graph export module is disable. Run Glances with --export graph to enable it.') self.args.generate_graph = False return True def nice_increase(self, process): glances_processes.nice_increase(process['pid']) def nice_decrease(self, process): glances_processes.nice_decrease(process['pid']) def kill(self, process): """Kill a process, or a list of process if the process has a childrens field. :param process :return: None """ logger.debug("Selected process to kill: {}".format(process)) if 'childrens' in process: pid_to_kill = process['childrens'] else: pid_to_kill = [process['pid']] confirm = self.display_popup( 'Kill process: {} (pid: {}) ?\n\nConfirm ([y]es/[n]o): '.format( process['name'], ', '.join(map(str, pid_to_kill)), ), popup_type='yesno', ) if confirm.lower().startswith('y'): for pid in pid_to_kill: try: ret_kill = glances_processes.kill(pid) except Exception as e: logger.error('Can not kill process {} ({})'.format(pid, e)) else: logger.info('Kill signal has been sent to process {} (return code: {})'.format(pid, ret_kill)) def __display_header(self, stat_display): """Display the firsts lines (header) in the Curses interface. system + ip + uptime (cloud) """ # First line self.new_line() self.space_between_column = 0 l_uptime = 1 for i in ['system', 'ip', 'uptime']: if i in stat_display: l_uptime += self.get_stats_display_width(stat_display[i]) self.display_plugin(stat_display["system"], display_optional=(self.term_window.getmaxyx()[1] >= l_uptime)) self.space_between_column = 3 if 'ip' in stat_display: self.new_column() self.display_plugin(stat_display["ip"], display_optional=(self.term_window.getmaxyx()[1] >= 100)) self.new_column() self.display_plugin( stat_display["uptime"], add_space=-(self.get_stats_display_width(stat_display["cloud"]) != 0) ) self.init_column() if self.get_stats_display_width(stat_display["cloud"]) != 0: # Second line (optional) self.new_line() self.display_plugin(stat_display["cloud"]) def __display_top(self, stat_display, stats): """Display the second line in the Curses interface. + CPU|PERCPU + + MEM + SWAP + LOAD """ self.init_column() self.new_line() # Init quicklook stat_display['quicklook'] = {'msgdict': []} # Dict for plugins width plugin_widths = {} for p in self._top: plugin_widths[p] = ( self.get_stats_display_width(stat_display.get(p, 0)) if hasattr(self.args, 'disable_' + p) else 0 ) # Width of all plugins stats_width = sum(itervalues(plugin_widths)) # Number of plugin but quicklook stats_number = sum( [int(stat_display[p]['msgdict'] != []) for p in self._top if not getattr(self.args, 'disable_' + p)] ) if not self.args.disable_quicklook: # Quick look is in the place ! if self.args.full_quicklook: quicklook_width = self.term_window.getmaxyx()[1] - ( stats_width + 8 + stats_number * self.space_between_column ) else: quicklook_width = min( self.term_window.getmaxyx()[1] - (stats_width + 8 + stats_number * self.space_between_column), self._quicklook_max_width - 5, ) try: stat_display["quicklook"] = stats.get_plugin('quicklook').get_stats_display( max_width=quicklook_width, args=self.args ) except AttributeError as e: logger.debug("Quicklook plugin not available (%s)" % e) else: plugin_widths['quicklook'] = self.get_stats_display_width(stat_display["quicklook"]) stats_width = sum(itervalues(plugin_widths)) + 1 self.space_between_column = 1 self.display_plugin(stat_display["quicklook"]) self.new_column() # Compute spaces between plugins # Note: Only one space between Quicklook and others plugin_display_optional = {} for p in self._top: plugin_display_optional[p] = True if stats_number > 1: self.space_between_column = max(1, int((self.term_window.getmaxyx()[1] - stats_width) / (stats_number - 1))) for p in ['mem', 'cpu']: # No space ? Remove optional stats if self.space_between_column < 3: plugin_display_optional[p] = False plugin_widths[p] = ( self.get_stats_display_width(stat_display[p], without_option=True) if hasattr(self.args, 'disable_' + p) else 0 ) stats_width = sum(itervalues(plugin_widths)) + 1 self.space_between_column = max( 1, int((self.term_window.getmaxyx()[1] - stats_width) / (stats_number - 1)) ) else: self.space_between_column = 0 # Display CPU, MEM, SWAP and LOAD for p in self._top: if p == 'quicklook': continue if p in stat_display: self.display_plugin(stat_display[p], display_optional=plugin_display_optional[p]) if p != 'load': # Skip last column self.new_column() # Space between column self.space_between_column = 3 # Backup line position self.saved_line = self.next_line def __display_left(self, stat_display): """Display the left sidebar in the Curses interface.""" self.init_column() if self.args.disable_left_sidebar: return for p in self._left_sidebar: if (hasattr(self.args, 'enable_' + p) or hasattr(self.args, 'disable_' + p)) and p in stat_display: self.new_line() self.display_plugin(stat_display[p]) def __display_right(self, stat_display): """Display the right sidebar in the Curses interface. docker + processcount + amps + processlist + alert """ # Do not display anything if space is not available... if self.term_window.getmaxyx()[1] < self._left_sidebar_min_width: return # Restore line position self.next_line = self.saved_line # Display right sidebar self.new_column() for p in self._right_sidebar: if (hasattr(self.args, 'enable_' + p) or hasattr(self.args, 'disable_' + p)) and p in stat_display: if p not in p: # Catch for issue #1470 continue self.new_line() if p == 'processlist': self.display_plugin( stat_display['processlist'], display_optional=(self.term_window.getmaxyx()[1] > 102), display_additional=(not MACOS), max_y=( self.term_window.getmaxyx()[0] - self.get_stats_display_height(stat_display['alert']) - 2 ), ) else: self.display_plugin(stat_display[p]) def display_popup( self, message, size_x=None, size_y=None, duration=3, popup_type='info', input_size=30, input_value=None ): """ Display a centered popup. popup_type: ='info' Just an information popup, no user interaction Display a centered popup with the given message during duration seconds If size_x and size_y: set the popup size else set it automatically Return True if the popup could be displayed popup_type='input' Display a centered popup with the given message and a input field If size_x and size_y: set the popup size else set it automatically Return the input string or None if the field is empty popup_type='yesno' Display a centered popup with the given message If size_x and size_y: set the popup size else set it automatically Return True (yes) or False (no) """ # Center the popup sentence_list = message.split('\n') if size_x is None: size_x = len(max(sentence_list, key=len)) + 4 # Add space for the input field if popup_type == 'input': size_x += input_size if size_y is None: size_y = len(sentence_list) + 4 screen_x = self.term_window.getmaxyx()[1] screen_y = self.term_window.getmaxyx()[0] if size_x > screen_x or size_y > screen_y: # No size to display the popup => abord return False pos_x = int((screen_x - size_x) / 2) pos_y = int((screen_y - size_y) / 2) # Create the popup popup = curses.newwin(size_y, size_x, pos_y, pos_x) # Fill the popup popup.border() # Add the message for y, m in enumerate(sentence_list): popup.addnstr(2 + y, 2, m, len(m)) if popup_type == 'info': # Display the popup popup.refresh() self.wait(duration * 1000) return True elif popup_type == 'input': # Create a sub-window for the text field sub_pop = popup.derwin(1, input_size, 2, 2 + len(m)) sub_pop.attron(self.colors_list['FILTER']) # Init the field with the current value if input_value is not None: sub_pop.addnstr(0, 0, input_value, len(input_value)) # Display the popup popup.refresh() sub_pop.refresh() # Create the textbox inside the sub-windows self.set_cursor(2) self.term_window.keypad(1) textbox = GlancesTextbox(sub_pop, insert_mode=True) textbox.edit() self.set_cursor(0) # self.term_window.keypad(0) if textbox.gather() != '': logger.debug("User enters the following string: %s" % textbox.gather()) return textbox.gather()[:-1] else: logger.debug("User centers an empty string") return None elif popup_type == 'yesno': # # Create a sub-window for the text field sub_pop = popup.derwin(1, 2, len(sentence_list) + 1, len(m) + 2) sub_pop.attron(self.colors_list['FILTER']) # Init the field with the current value sub_pop.addnstr(0, 0, '', 0) # Display the popup popup.refresh() sub_pop.refresh() # Create the textbox inside the sub-windows self.set_cursor(2) self.term_window.keypad(1) textbox = GlancesTextboxYesNo(sub_pop, insert_mode=False) textbox.edit() self.set_cursor(0) # self.term_window.keypad(0) return textbox.gather() def display_plugin(self, plugin_stats, display_optional=True, display_additional=True, max_y=65535, add_space=0): """Display the plugin_stats on the screen. :param plugin_stats: :param display_optional: display the optional stats if True :param display_additional: display additional stats if True :param max_y: do not display line > max_y :param add_space: add x space (line) after the plugin """ # Exit if: # - the plugin_stats message is empty # - the display tag = False if plugin_stats is None or not plugin_stats['msgdict'] or not plugin_stats['display']: # Exit return 0 # Get the screen size screen_x = self.term_window.getmaxyx()[1] screen_y = self.term_window.getmaxyx()[0] # Set the upper/left position of the message if plugin_stats['align'] == 'right': # Right align (last column) display_x = screen_x - self.get_stats_display_width(plugin_stats) else: display_x = self.column if plugin_stats['align'] == 'bottom': # Bottom (last line) display_y = screen_y - self.get_stats_display_height(plugin_stats) else: display_y = self.line # Display x = display_x x_max = x y = display_y for m in plugin_stats['msgdict']: # New line try: if m['msg'].startswith('\n'): # Go to the next line y += 1 # Return to the first column x = display_x continue except Exception: # Avoid exception (see issue #1692) pass # Do not display outside the screen if x < 0: continue if not m['splittable'] and (x + len(m['msg']) > screen_x): continue if y < 0 or (y + 1 > screen_y) or (y > max_y): break # If display_optional = False do not display optional stats if not display_optional and m['optional']: continue # If display_additional = False do not display additional stats if not display_additional and m['additional']: continue # Is it possible to display the stat with the current screen size # !!! Crash if not try/except... Why ??? try: self.term_window.addnstr( y, x, m['msg'], # Do not display outside the screen screen_x - x, self.colors_list[m['decoration']], ) except Exception: pass else: # New column # Python 2: we need to decode to get real screen size because # UTF-8 special tree chars occupy several bytes. # Python 3: strings are strings and bytes are bytes, all is # good. try: x += len(u(m['msg'])) except UnicodeDecodeError: # Quick and dirty hack for issue #745 pass if x > x_max: x_max = x # Compute the next Glances column/line position self.next_column = max(self.next_column, x_max + self.space_between_column) self.next_line = max(self.next_line, y + self.space_between_line) # Have empty lines after the plugins self.next_line += add_space def erase(self): """Erase the content of the screen.""" self.term_window.clear() def flush(self, stats, cs_status=None): """Clear and update the screen. :param stats: Stats database to display :param cs_status: "None": standalone or server mode "Connected": Client is connected to the server "Disconnected": Client is disconnected from the server """ self.erase() self.display(stats, cs_status=cs_status) def update(self, stats, duration=3, cs_status=None, return_to_browser=False): """Update the screen. :param stats: Stats database to display :param duration: duration of the loop :param cs_status: "None": standalone or server mode "Connected": Client is connected to the server "Disconnected": Client is disconnected from the server :param return_to_browser: True: Do not exist, return to the browser list False: Exit and return to the shell :return: True if exit key has been pressed else False """ # Flush display self.flush(stats, cs_status=cs_status) # If the duration is < 0 (update + export time > refresh_time) # Then display the interface and log a message if duration <= 0: logger.warning('Update and export time higher than refresh_time.') duration = 0.1 # Wait duration (in s) time isexitkey = False countdown = Timer(duration) # Set the default timeout (in ms) between two getch self.term_window.timeout(100) while not countdown.finished() and not isexitkey: # Getkey pressedkey = self.__catch_key(return_to_browser=return_to_browser) isexitkey = pressedkey == ord('\x1b') or pressedkey == ord('q') if pressedkey == curses.KEY_F5: # Were asked to refresh return isexitkey if pressedkey in (curses.KEY_UP, 65, curses.KEY_DOWN, 66): # Up of won key pressed, reset the countdown # Better for user experience countdown.reset() if isexitkey and self.args.help_tag: # Quit from help should return to main screen, not exit #1874 self.args.help_tag = not self.args.help_tag isexitkey = False return isexitkey if not isexitkey and pressedkey > -1: # Redraw display self.flush(stats, cs_status=cs_status) # Overwrite the timeout with the countdown self.wait(delay=int(countdown.get() * 1000)) return isexitkey def wait(self, delay=100): """Wait delay in ms""" curses.napms(100) def get_stats_display_width(self, curse_msg, without_option=False): """Return the width of the formatted curses message.""" try: if without_option: # Size without options c = len( max( ''.join( [ (u(u(nativestr(i['msg'])).encode('ascii', 'replace')) if not i['optional'] else "") for i in curse_msg['msgdict'] ] ).split('\n'), key=len, ) ) else: # Size with all options c = len( max( ''.join( [u(u(nativestr(i['msg'])).encode('ascii', 'replace')) for i in curse_msg['msgdict']] ).split('\n'), key=len, ) ) except Exception as e: logger.debug('ERROR: Can not compute plugin width ({})'.format(e)) return 0 else: return c def get_stats_display_height(self, curse_msg): """Return the height of the formatted curses message. The height is defined by the number of '\n' (new line). """ try: c = [i['msg'] for i in curse_msg['msgdict']].count('\n') except Exception as e: logger.debug('ERROR: Can not compute plugin height ({})'.format(e)) return 0 else: return c + 1 class GlancesCursesStandalone(_GlancesCurses): """Class for the Glances curse standalone.""" class GlancesCursesClient(_GlancesCurses): """Class for the Glances curse client.""" class GlancesTextbox(Textbox, object): def __init__(self, *args, **kwargs): super(GlancesTextbox, self).__init__(*args, **kwargs) def do_command(self, ch): if ch == 10: # Enter return 0 if ch == 127: # Back return 8 return super(GlancesTextbox, self).do_command(ch) class GlancesTextboxYesNo(Textbox, object): def __init__(self, *args, **kwargs): super(GlancesTextboxYesNo, self).__init__(*args, **kwargs) def do_command(self, ch): return super(GlancesTextboxYesNo, self).do_command(ch) glances-3.4.0.3/glances/outputs/__init__.py0000644000175000017500000000000014432156570020444 0ustar epsilonepsilonglances-3.4.0.3/glances/outputs/glances_bottle.py0000644000175000017500000005162514432156570021715 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Web interface class.""" import os import sys import tempfile from io import open import webbrowser import zlib import socket from glances.globals import json_dumps from glances.compat import b from glances.timer import Timer from glances.logger import logger try: from bottle import Bottle, static_file, abort, response, request, auth_basic, template, TEMPLATE_PATH except ImportError: logger.critical('Bottle module not found. Glances cannot start in web server mode.') sys.exit(2) def compress(func): """Compress result with deflate algorithm if the client ask for it.""" def wrapper(*args, **kwargs): """Wrapper that take one function and return the compressed result.""" ret = func(*args, **kwargs) logger.debug( 'Receive {} {} request with header: {}'.format( request.method, request.url, ['{}: {}'.format(h, request.headers.get(h)) for h in request.headers.keys()], ) ) if 'deflate' in request.headers.get('Accept-Encoding', ''): response.headers['Content-Encoding'] = 'deflate' ret = deflate_compress(ret) else: response.headers['Content-Encoding'] = 'identity' return ret def deflate_compress(data, compress_level=6): """Compress given data using the DEFLATE algorithm""" # Init compression zobj = zlib.compressobj( compress_level, zlib.DEFLATED, zlib.MAX_WBITS, zlib.DEF_MEM_LEVEL, zlib.Z_DEFAULT_STRATEGY ) # Return compressed object return zobj.compress(b(data)) + zobj.flush() return wrapper class GlancesBottle(object): """This class manages the Bottle Web server.""" API_VERSION = '3' def __init__(self, config=None, args=None): # Init config self.config = config # Init args self.args = args # Init stats # Will be updated within Bottle route self.stats = None # cached_time is the minimum time interval between stats updates # i.e. HTTP/RESTful calls will not retrieve updated info until the time # since last update is passed (will retrieve old cached info instead) self.timer = Timer(0) # Load configuration file self.load_config(config) # Set the bind URL self.bind_url = 'http://{}:{}/'.format(self.args.bind_address, self.args.port) # Init Bottle self._app = Bottle() # Enable CORS (issue #479) self._app.install(EnableCors()) # Password if args.password != '': self._app.install(auth_basic(self.check_auth)) # Define routes self._route() # Path where the statics files are stored self.STATIC_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'static/public') # Paths for templates TEMPLATE_PATH.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 'static/templates')) def load_config(self, config): """Load the outputs section of the configuration file.""" # Limit the number of processes to display in the WebUI if config is not None and config.has_section('outputs'): logger.debug('Read number of processes to display in the WebUI') n = config.get_value('outputs', 'max_processes_display', default=None) logger.debug('Number of processes to display in the WebUI: {}'.format(n)) def __update__(self): # Never update more than 1 time per cached_time if self.timer.finished(): self.stats.update() self.timer = Timer(self.args.cached_time) def app(self): return self._app() def check_auth(self, username, password): """Check if a username/password combination is valid.""" if username == self.args.username: from glances.password import GlancesPassword pwd = GlancesPassword(username=username, config=self.config) return pwd.check_password(self.args.password, pwd.get_hash(password)) else: return False def _route(self): """Define route.""" # REST API self._app.route('/api/%s/status' % self.API_VERSION, method="GET", callback=self._api_status) self._app.route('/api/%s/config' % self.API_VERSION, method="GET", callback=self._api_config) self._app.route('/api/%s/config/' % self.API_VERSION, method="GET", callback=self._api_config_item) self._app.route('/api/%s/args' % self.API_VERSION, method="GET", callback=self._api_args) self._app.route('/api/%s/args/' % self.API_VERSION, method="GET", callback=self._api_args_item) self._app.route('/api/%s/help' % self.API_VERSION, method="GET", callback=self._api_help) self._app.route('/api/%s/pluginslist' % self.API_VERSION, method="GET", callback=self._api_plugins) self._app.route('/api/%s/all' % self.API_VERSION, method="GET", callback=self._api_all) self._app.route('/api/%s/all/limits' % self.API_VERSION, method="GET", callback=self._api_all_limits) self._app.route('/api/%s/all/views' % self.API_VERSION, method="GET", callback=self._api_all_views) self._app.route('/api/%s/' % self.API_VERSION, method="GET", callback=self._api) self._app.route('/api/%s//history' % self.API_VERSION, method="GET", callback=self._api_history) self._app.route( '/api/%s//history/' % self.API_VERSION, method="GET", callback=self._api_history ) self._app.route('/api/%s//limits' % self.API_VERSION, method="GET", callback=self._api_limits) self._app.route('/api/%s//views' % self.API_VERSION, method="GET", callback=self._api_views) self._app.route('/api/%s//' % self.API_VERSION, method="GET", callback=self._api_item) self._app.route( '/api/%s///history' % self.API_VERSION, method="GET", callback=self._api_item_history ) self._app.route( '/api/%s///history/' % self.API_VERSION, method="GET", callback=self._api_item_history ) self._app.route('/api/%s///' % self.API_VERSION, method="GET", callback=self._api_value) self._app.route( '/api/%s///' % self.API_VERSION, method="GET", callback=self._api_value ) bindmsg = 'Glances RESTful API Server started on {}api/{}/'.format(self.bind_url, self.API_VERSION) logger.info(bindmsg) # WEB UI if not self.args.disable_webui: self._app.route('/', method="GET", callback=self._index) self._app.route('/', method=["GET"], callback=self._index) self._app.route('/', method="GET", callback=self._resource) bindmsg = 'Glances Web User Interface started on {}'.format(self.bind_url) else: bindmsg = 'The WebUI is disable (--disable-webui)' logger.info(bindmsg) print(bindmsg) def start(self, stats): """Start the bottle.""" # Init stats self.stats = stats # Init plugin list self.plugins_list = self.stats.getPluginsList() # Bind the Bottle TCP address/port if self.args.open_web_browser: # Implementation of the issue #946 # Try to open the Glances Web UI in the default Web browser if: # 1) --open-web-browser option is used # 2) Glances standalone mode is running on Windows OS webbrowser.open(self.bind_url, new=2, autoraise=1) try: self._app.run(host=self.args.bind_address, port=self.args.port, quiet=not self.args.debug) except socket.error as e: logger.critical('Error: Can not ran Glances Web server ({})'.format(e)) def end(self): """End the bottle.""" def _index(self, refresh_time=None): """Bottle callback for index.html (/) file.""" if refresh_time is None or refresh_time < 1: refresh_time = int(self.args.time) # Update the stat self.__update__() # Display return template("index.html", refresh_time=refresh_time) def _resource(self, filepath): """Bottle callback for resources files.""" # Return the static file return static_file(filepath, root=self.STATIC_PATH) @compress def _api_status(self): """Glances API RESTful implementation. Return a 200 status code. This entry point should be used to check the API health. See related issue: Web server health check endpoint #1988 """ response.status = 200 return "Active" @compress def _api_help(self): """Glances API RESTful implementation. Return the help data or 404 error. """ response.content_type = 'application/json; charset=utf-8' # Update the stat view_data = self.stats.get_plugin("help").get_view_data() try: plist = json_dumps(view_data) except Exception as e: abort(404, "Cannot get help view data (%s)" % str(e)) return plist @compress def _api_plugins(self): """Glances API RESTFul implementation. @api {get} /api/%s/pluginslist Get plugins list @apiVersion 2.0 @apiName pluginslist @apiGroup plugin @apiSuccess {String[]} Plugins list. @apiSuccessExample Success-Response: HTTP/1.1 200 OK [ "load", "help", "ip", "memswap", "processlist", ... ] @apiError Cannot get plugin list. @apiErrorExample Error-Response: HTTP/1.1 404 Not Found """ response.content_type = 'application/json; charset=utf-8' # Update the stat self.__update__() try: plist = json_dumps(self.plugins_list) except Exception as e: abort(404, "Cannot get plugin list (%s)" % str(e)) return plist @compress def _api_all(self): """Glances API RESTful implementation. Return the JSON representation of all the plugins HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if self.args.debug: fname = os.path.join(tempfile.gettempdir(), 'glances-debug.json') try: with open(fname) as f: return f.read() except IOError: logger.debug("Debug file (%s) not found" % fname) # Update the stat self.__update__() try: # Get the JSON value of the stat ID statval = json_dumps(self.stats.getAllAsDict()) except Exception as e: abort(404, "Cannot get stats (%s)" % str(e)) return statval @compress def _api_all_limits(self): """Glances API RESTful implementation. Return the JSON representation of all the plugins limits HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' try: # Get the JSON value of the stat limits limits = json_dumps(self.stats.getAllLimitsAsDict()) except Exception as e: abort(404, "Cannot get limits (%s)" % (str(e))) return limits @compress def _api_all_views(self): """Glances API RESTful implementation. Return the JSON representation of all the plugins views HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' try: # Get the JSON value of the stat view limits = json_dumps(self.stats.getAllViewsAsDict()) except Exception as e: abort(404, "Cannot get views (%s)" % (str(e))) return limits @compress def _api(self, plugin): """Glances API RESTful implementation. Return the JSON representation of a given plugin HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if plugin not in self.plugins_list: abort(400, "Unknown plugin %s (available plugins: %s)" % (plugin, self.plugins_list)) # Update the stat self.__update__() try: # Get the JSON value of the stat ID statval = self.stats.get_plugin(plugin).get_stats() except Exception as e: abort(404, "Cannot get plugin %s (%s)" % (plugin, str(e))) return statval @compress def _api_history(self, plugin, nb=0): """Glances API RESTful implementation. Return the JSON representation of a given plugin history Limit to the last nb items (all if nb=0) HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if plugin not in self.plugins_list: abort(400, "Unknown plugin %s (available plugins: %s)" % (plugin, self.plugins_list)) # Update the stat self.__update__() try: # Get the JSON value of the stat ID statval = self.stats.get_plugin(plugin).get_stats_history(nb=int(nb)) except Exception as e: abort(404, "Cannot get plugin history %s (%s)" % (plugin, str(e))) return statval @compress def _api_limits(self, plugin): """Glances API RESTful implementation. Return the JSON limits of a given plugin HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if plugin not in self.plugins_list: abort(400, "Unknown plugin %s (available plugins: %s)" % (plugin, self.plugins_list)) # Update the stat # self.__update__() try: # Get the JSON value of the stat limits ret = self.stats.get_plugin(plugin).limits except Exception as e: abort(404, "Cannot get limits for plugin %s (%s)" % (plugin, str(e))) return ret @compress def _api_views(self, plugin): """Glances API RESTful implementation. Return the JSON views of a given plugin HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if plugin not in self.plugins_list: abort(400, "Unknown plugin %s (available plugins: %s)" % (plugin, self.plugins_list)) # Update the stat # self.__update__() try: # Get the JSON value of the stat views ret = self.stats.get_plugin(plugin).get_views() except Exception as e: abort(404, "Cannot get views for plugin %s (%s)" % (plugin, str(e))) return ret # No compression see issue #1228 # @compress def _api_itemvalue(self, plugin, item, value=None, history=False, nb=0): """Father method for _api_item and _api_value.""" response.content_type = 'application/json; charset=utf-8' if plugin not in self.plugins_list: abort(400, "Unknown plugin %s (available plugins: %s)" % (plugin, self.plugins_list)) # Update the stat self.__update__() if value is None: if history: ret = self.stats.get_plugin(plugin).get_stats_history(item, nb=int(nb)) else: ret = self.stats.get_plugin(plugin).get_stats_item(item) if ret is None: abort(404, "Cannot get item %s%s in plugin %s" % (item, 'history ' if history else '', plugin)) else: if history: # Not available ret = None else: ret = self.stats.get_plugin(plugin).get_stats_value(item, value) if ret is None: abort( 404, "Cannot get item %s(%s=%s) in plugin %s" % ('history ' if history else '', item, value, plugin) ) return ret @compress def _api_item(self, plugin, item): """Glances API RESTful implementation. Return the JSON representation of the couple plugin/item HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ return self._api_itemvalue(plugin, item) @compress def _api_item_history(self, plugin, item, nb=0): """Glances API RESTful implementation. Return the JSON representation of the couple plugin/history of item HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ return self._api_itemvalue(plugin, item, history=True, nb=int(nb)) @compress def _api_value(self, plugin, item, value): """Glances API RESTful implementation. Return the process stats (dict) for the given item=value HTTP/200 if OK HTTP/400 if plugin is not found HTTP/404 if others error """ return self._api_itemvalue(plugin, item, value) @compress def _api_config(self): """Glances API RESTful implementation. Return the JSON representation of the Glances configuration file HTTP/200 if OK HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' try: # Get the JSON value of the config' dict args_json = json_dumps(self.config.as_dict()) except Exception as e: abort(404, "Cannot get config (%s)" % str(e)) return args_json @compress def _api_config_item(self, item): """Glances API RESTful implementation. Return the JSON representation of the Glances configuration item HTTP/200 if OK HTTP/400 if item is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' config_dict = self.config.as_dict() if item not in config_dict: abort(400, "Unknown configuration item %s" % item) try: # Get the JSON value of the config' dict args_json = json_dumps(config_dict[item]) except Exception as e: abort(404, "Cannot get config item (%s)" % str(e)) return args_json @compress def _api_args(self): """Glances API RESTful implementation. Return the JSON representation of the Glances command line arguments HTTP/200 if OK HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' try: # Get the JSON value of the args' dict # Use vars to convert namespace to dict # Source: https://docs.python.org/%s/library/functions.html#vars args_json = json_dumps(vars(self.args)) except Exception as e: abort(404, "Cannot get args (%s)" % str(e)) return args_json @compress def _api_args_item(self, item): """Glances API RESTful implementation. Return the JSON representation of the Glances command line arguments item HTTP/200 if OK HTTP/400 if item is not found HTTP/404 if others error """ response.content_type = 'application/json; charset=utf-8' if item not in self.args: abort(400, "Unknown argument item %s" % item) try: # Get the JSON value of the args' dict # Use vars to convert namespace to dict # Source: https://docs.python.org/%s/library/functions.html#vars args_json = json_dumps(vars(self.args)[item]) except Exception as e: abort(404, "Cannot get args item (%s)" % str(e)) return args_json class EnableCors(object): name = 'enable_cors' api = 2 def apply(self, fn, context): def _enable_cors(*args, **kwargs): # set CORS headers response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, OPTIONS' response.headers[ 'Access-Control-Allow-Headers' ] = 'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token' if request.method != 'OPTIONS': # actual request; reply with the actual response return fn(*args, **kwargs) return _enable_cors glances-3.4.0.3/glances/outputs/static/0000755000175000017500000000000014432156570017634 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/css/0000755000175000017500000000000014432156570020424 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/css/style.scss0000644000175000017500000001166014432156570022465 0ustar epsilonepsilonbody { background: black; color: #BBB; font-family: "Lucida Sans Typewriter", "Lucida Console", Monaco, "Bitstream Vera Sans Mono", monospace; } .table { display: table; width: 100%; max-width:100%; } .table-row-group { display: table-row-group } .table-row { display: table-row; } .table-cell { display: table-cell; text-align: right; } .plugin { margin-bottom: 20px; .table:last-child { margin-bottom: 0; } } .plugin.table-row-group .table-row:last-child .table-cell { padding-bottom: 20px; } .underline { text-decoration: underline } .bold { font-weight: bold; } .sort { font-weight: bold; color: white; } .sortable { cursor: pointer; text-decoration: underline; } .text-right { text-align: right; } .text-left { text-align: left; } .sidebar .table-cell:not(.text-left) { padding-left: 10px; } /* Theme */ .title { font-weight: bold; color: white; } .highlight { font-weight: bold; color: #5D4062; } .ok, .status, .process { color: #3E7B04; /*font-weight: bold;*/ } .ok_log { background-color: #3E7B04; color: white; /*font-weight: bold;*/ } .max { color: #3E7B04; font-weight: bold; } .careful { color: #295183; font-weight: bold; } .careful_log { background-color: #295183; color: white; font-weight: bold; } .warning, .nice { color: #5D4062; font-weight: bold; } .warning_log { background-color: #5D4062; color: white; font-weight: bold; } .critical { color: #A30000; font-weight: bold; } .critical_log { background-color: #A30000; color: white; font-weight: bold; } /* Plugins */ #processlist-plugin .table-cell { padding: 0px 5px 0px 5px; white-space: nowrap; } #containers-plugin .table-cell { padding: 0px 10px 0px 10px; white-space: nowrap; } #quicklook { .progress { margin-bottom: 0px; min-width: 100px; background-color: #000; height: 12px; border-radius: 0px; text-align: right; } .progress-bar-ok { background-color: #3E7B04; } .progress-bar-careful { background-color: #295183; } .progress-bar-warning { background-color: #5D4062; } .progress-bar-critical { background-color: #A30000; } .cpu-name { white-space: nowrap; overflow: hidden; width: 100%; text-overflow: ellipsis; } } #amps .process-result { max-width: 300px; overflow: hidden; white-space: pre-wrap; padding-left: 10px; text-overflow: ellipsis; } #gpu .gpu-name { white-space: nowrap; overflow: hidden; width: 100%; text-overflow: ellipsis; } #ip { padding-left: 10px; } #ip span { padding-left: 10px; } #processcount > span:nth-child(1) { padding-left: 0px; } #processcount span { padding-left: 10px; } /* Loading page */ #loading-page .glances-logo { background: url('../images/glances.png') no-repeat center center; background-size: contain; } @media (max-width: 750px) { #loading-page .glances-logo { height: 400px; } } @media (min-width: 750px) { #loading-page .glances-logo { height: 500px; } } /* Loading animation source : https://github.com/lukehaas/css-loaders */ #loading-page .loader:before, #loading-page .loader:after, #loading-page .loader { border-radius: 50%; width: 1em; height: 1em; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation: loader 1.8s infinite ease-in-out; animation: loader 1.8s infinite ease-in-out; } #loading-page .loader { margin: auto; font-size: 10px; position: relative; text-indent: -9999em; -webkit-animation-delay: 0.16s; animation-delay: 0.16s; } #loading-page .loader:before { left: -3.5em; } #loading-page .loader:after { left: 3.5em; -webkit-animation-delay: 0.32s; animation-delay: 0.32s; } #loading-page .loader:before, #loading-page .loader:after { content: ''; position: absolute; top: 0; } @-webkit-keyframes loader { 0%, 80%, 100% { box-shadow: 0 2.5em 0 -1.3em #56CA69; } 40% { box-shadow: 0 2.5em 0 0 #56CA69; } } @keyframes loader { 0%, 80%, 100% { box-shadow: 0 2.5em 0 -1.3em #56CA69; } 40% { box-shadow: 0 2.5em 0 0 #56CA69; } } /* Help table */ .divTable{ display: table; width: 100%; } .divTableRow { display: table-row; } .divTableHeading { background-color: #EEE; display: table-header-group; } .divTableHead { border: 0px solid #999999; display: table-cell; padding: 3px 10px; font-weight: bold; } .divTableCell { border: 0px solid #999999; display: table-cell; padding: 3px 10px; } .divTableHeading { background-color: #EEE; display: table-header-group; font-weight: bold; } .divTableFoot { background-color: #EEE; display: table-footer-group; font-weight: bold; } .divTableBody { display: table-row-group; } glances-3.4.0.3/glances/outputs/static/css/variables.less0000644000175000017500000000007714432156570023270 0ustar epsilonepsilon @import "~bootstrap/less/variables.less"; @grid-columns: 24; glances-3.4.0.3/glances/outputs/static/css/bootstrap.less0000644000175000017500000000370714432156570023340 0ustar epsilonepsilon/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ // Core variables and mixins @import "./variables.less"; @import "~bootstrap/less/mixins.less"; // Reset and dependencies @import "~bootstrap/less/normalize.less"; // @import "~bootstrap/less/print.less"; // @import "~bootstrap/less/glyphicons.less"; // Core CSS @import "~bootstrap/less/scaffolding.less"; // @import "~bootstrap/less/type.less"; // @import "~bootstrap/less/code.less"; @import "~bootstrap/less/grid.less"; @import "~bootstrap/less/tables.less"; // @import "~bootstrap/less/forms.less"; // @import "~bootstrap/less/buttons.less"; // Components // @import "~bootstrap/less/component-animations.less"; // @import "~bootstrap/less/dropdowns.less"; // @import "~bootstrap/less/button-groups.less"; // @import "~bootstrap/less/input-groups.less"; // @import "~bootstrap/less/navs.less"; // @import "~bootstrap/less/navbar.less"; // @import "~bootstrap/less/breadcrumbs.less"; // @import "~bootstrap/less/pagination.less"; // @import "~bootstrap/less/pager.less"; // @import "~bootstrap/less/labels.less"; // @import "~bootstrap/less/badges.less"; // @import "~bootstrap/less/jumbotron.less"; // @import "~bootstrap/less/thumbnails.less"; // @import "~bootstrap/less/alerts.less"; @import "~bootstrap/less/progress-bars.less"; // @import "~bootstrap/less/media.less"; // @import "~bootstrap/less/list-group.less"; // @import "~bootstrap/less/panels.less"; // @import "~bootstrap/less/responsive-embed.less"; // @import "~bootstrap/less/wells.less"; // @import "~bootstrap/less/close.less"; // Components w/ JavaScript // @import "~bootstrap/less/modals.less"; // @import "~bootstrap/less/tooltip.less"; // @import "~bootstrap/less/popovers.less"; // @import "~bootstrap/less/carousel.less"; // Utility classes @import "~bootstrap/less/utilities.less"; @import "~bootstrap/less/responsive-utilities.less"; glances-3.4.0.3/glances/outputs/static/images/0000755000175000017500000000000014432156570021101 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/images/favicon.ico0000644000175000017500000001027614432156570023230 0ustar epsilonepsilon  ( @   !*  u/$( W\-!XO *  TKTX5# TK:x+31SK=s:7 ]\]KbG8-7qCVK269) ,N(392869+yX97)92$-77"-:6  $6768*4896*&).59877775, -:98888897%    ?glances-3.4.0.3/glances/outputs/static/images/glances.png0000644000175000017500000012510414432156570023226 0ustar epsilonepsilonPNG  IHDRzzS;xsRGBbKGD pHYs\F\FCAtIME+;Y IDATx{}sqF4xMU4I9ј8B4!{huu|zBGllU^ ' ^Zv/4$cƬnil@k@`J++ŭK^b<p.< A^RZY9h`Y: ng@k&LXG`lUw[o%@`  no޺Z=vrмU[h y8\0fx{'y_ r1حziTV=sM)Z=@P G6$}G?[i Y8\c0f zS GL9 wsT,^p -KVTTYl)-/\JK8fFHAN+6Z=@9w_=q" ᄾAwu.Z={6yrmf pBzVVf„y 쁠+N&W=bxZ@AwBzTZQQfٲ= p9i3g:U3> ]ia=\ie5h uuͯOIzF@#p(CI7ǟ|K$V7ׯk-Aa=K䂧W`^WSjw_ZY9Y3j$ ?T0@0P`%\֭=vItzgl#@AlܶNz-hp?o~k$=J++` I&u%\PKk縢/|a)cG_Y|@@@ 5j?<ǐdR|EA8zbUW~b= p$B8VU# XwAȱ 쁠=mH2ÇBN?8!YYWW~]wNK +.;2){֥j<)dUUlil-AJ++]3a  'B# ,+[Gpz= 4U2<VTT_sKAnڵN+tUU5-7fبQA=>,p,#聠Ǭ8\")Smjh%tfz {P5@O 5$= y55U5ׯ5p#QaO׺l;n-Jot<>N9@vzr%t f8\i zvܹ~ĉ4qXYWﺋ9\ } 聠w~r&<{o0ӗeUWS֮%ʹw;Ea GH6n>6f #i `cA@6sSM،iil?ƙC zk38P p\ћWS \cA=݈=GuXMBA/^3$Թ^JYjDA@aay&{R>zI$噈&p9M|ǘ1c~1clܔ)$pVZQQfٲD#@׮A@ਦ9㪫)=A@ޢjY#聠 1wx+t]wVV^S[  xEMM#,6A/7!AYsv^j3s7o7i<%(8dy8\vZBޘ1cUU5BU@Y?x;46$ e3z@؋GW]=<4bF3xO~=-y55!= 5j#!7f# A@v(^v?#-:jҌh@Jت7l)23z@ȄouA<@L2'3z@`^&46NntÇ[= p|鬬S !d,մBbFX[YWﺋJh'%YAkjk%B3AqKq2 C^Yx r^D+ ۱tH>xw4oz/wq.+B@ 4C~-tEvWw#T{~-}?KJd*+-S\Uj}d%v-ARCa]xR+N&CI>gS^X;4Z BIgTAxߢm,ƒ rGιs z q8LgoϑtAFUo׭rY^?b+5]kjk@)dlUUMKcM|v[/؏^xp?uUOTIŒv+T=YzRAŽ?wvbApJoj{xI [=-#T<^+Qi2d?s.(-xs@"6_tR>c^v2]&rf-LrVԒoq0kqqAӲN7qA_cS ~^aKD?Yr/0l<^y55Zp!Ϝ,Qز8Nҧ$!)Ad~ef F}{M.'聠d|9eRҼc'<>A &Ud\x&䪧WOA٨]s˯9*%*cI{Ze=Tط4 mVG>f[gvcfv73Iiy{Ғ^٣fY2z> VO>`Y]rLer9MF/M|"ت-u7}T൶٧د(\~\&ۉ?zμ4 s,qՃyrcfnLOZ$OXJ>yg>Lxw)VCosNؿ,d>@=闒}?E z=<Ypn-J7$UJ*d&b_.=O#UZY9zMm:_<5nK+$Ep}\-rg ecr<S͹JpIE:wُ%A]/חoRq3 t\\Y9Yt=aq*DidOXO]?KF1 hDEE a`t;'N̩iܔ)654һuK:GR -~₯?zv0@=m[YWﺋC-'Ss%}BR-.OzKؽK.S`L@,xxc9WSHD\A#RO׭ Ͽouuʵ>8Fk-[+?{(={s>Q_tez]MrArmvJ i_PZ>T(y(R\e/iS~LuL%)/>f l4/*/?IͰQ6>#r5IJ⇠dr+VϕYqof.4"o~L7$=cfkez)*~nM7>vM%ͩ2;SKLJڃP>=I{l yO%pc-Q;4,R.]᛹,kip ^Kl{aߢ ^ ]4UҶ<=šq*!]&2x]n~)5>щj$d#io\uEM0iK_- 7K%7R+V,>N}v@u?%r͹پL뗖yK.$P  F!sri?޼-^~nݜJ~\s$ ̹3G> As듊}?%#r/2{"[r=z\Zk,^v/ Zv5wuc]ޔגoAi=w\^Rq95YwFr%r/7Zd7G_,:{T4Eqxأƴ3YgN?NIO.~jEBp$Wfvn.&r MreZfQ4dP|ɮqd*)}|#Iɴç8\X&r3 I&5f#e^RIu\흢k$}" ezk$-[ttKdz}01(!/Wn?H5Mi-+1={lO>9(ݒ\_T&s̾%l)c48#L!' ByWyߔ)g8601x`3>ގDa gO_ Ӟ5!/VU9|8!/M]7g~aA%ϿGEWȢ?DI_KՁ`νar},N~@ɓāK%?|y!Y0W[޾ZO\3sm'ew?rwwң]sT3u{\gI*0O-U ?/\!_C=!^;K51[NܷegSe\{va/ߒY")Sx{2_`Tz:uGӛ@z\q2 Ԑ7Si.M xӫ2͉ G9fO&ɢVIK_$SYr}rǐdFK77ګk\YL}s=O`JXZjj'^z,=Eү[7\t\%P%"Ie̾珞3o K.V Y5˖77$x8t\T"0*7-o{t[3D`n i&k OĩxOA?҇erܚ(xakjhM!.פfxflr.tAIEA]Uݟ(M>[/ƥZs IDATfuȄjϫ{ݛK-lzs=rItѩl]2z<1/ޤ36ы=wVUnil@Lqoix02[I\uW3Sm3$}vג 绤ݟtaT KZsӧ= #E@;,q:.i\'2#3{Rv5[]\eWTgTدh]۾zG2O .LC>zD uu2ϕt\&IKFr}:k>;?5 k\F}gogdA|qusӓ@UC6no66fu^6y[K8O sPA35H'![.xmOokIgUr (=2yn$yu@U8OwSZ_w|ZZi3g=7mZ/Aιƹdr ˄2OӞC,5$z@*)/+tB^򔗻J:m̞K޺.>-2!wl˻~o--jR$G<у@v:V,DZlqՃwS9܇?$ f=dgh~?|GCZZɒ.:>Ͽ~9t\aA7\ rYiEEuN-Ы&xm $- y~鱿Á[ZoijMRLYN?aWzZaY(Iç=wĩz&nkE+ t$rR&z/tA(N&We1 nNq2!ļr\:OжNJҩ>nKOwLws6JӲ~ilg2KZO/@`FYrtV${@RICɓ\$AuU/5 ҩRVlw(wB^*gsŮ}g猤7j5{C[S[c.EgrMTcas';9r?*iheG}"лZ' =Gecq5׳(xOvzjil{xڸhַΖ4#N?.Leܿ} Ig03.CKbzr4pf̺! xy4\ 'j%5Se;n\V8F &w~ 2#IA?['uLL7E䂁eeKCfmUR^~{U"E{Zvי0m^gzrwq2%,vÛd}Y!{ ;6Jҫ:94;HM/"4䪐^}聐ύ5nif6#xJ4QfгwfULR Ii['EV/WCH\=ZF/"4_={|(:,=L9ִ}_HTET`Y`̧M+fgY$]ܑǤ? hoIgx:O!4RT3~j`z,?t=8\Uy8h޴Rg{rD 3gfrwlqTCm0SgJ28ND(J++GtM;55h~k$BR8eL*(3z&Ir7w͏;DzC`Ey5\Ad`YY0獭ZM.כ6VUp^ :+5BPL1Div/t1sE_ҷ>=`~yofo9=eLE}A$[ꌖ ARY|Y<ּ)3J! IElse=jhr$tb_iM= !wΝKCPw6Y 3!*N(ʞL.o\KD (߳WT&SYudrA(zwcުDEñ<7aQtLAd&$Uݠgf22g}d+z?"I{ثm'][X@^ZvV(ڼuX~aFݦ/+<]8.$qPEQD$=R\VϞ)a-'? NO"urvARO-_~! X+Jzn쟣(Zx WGc,LYx\\K.)ب7J"!kt [Wy8>\Ȍ^5F*sdfk3[Xܧן)F[5"6IMĥZLVA}E;CQrBYsSm, fv Yup\jip\J++GƷ[)q ǝsfaҌ!{pD5GdDqBT`e%k[N/`(S31,sĉY{mo0AYCif ,].TqY AїZ[ҙ\c$S3zp@:(z!(QԾG/Ȕ$fJ=<] gg=HFθ =#![޻G/;ۃ^ھf%ʆK={&{; Kdm=IX{2՘C/))/=ۮ&z=t;BrM5ݱG/TMy=.={3A]W<|=t=cV+ Sg6\%Gph #Y@3z7L,B t z8dr!xMeTb3X7g V%1He'A+NyzŊ<-wnr$yoJ5f2K7)Ƃ^mn^AGtK6 yuepW$tK(*NʼnK7={:3G1lڟǹy S͜I5&)L1d*,,+sC۩03"caFs@C:k!8TKZz^({Bo&i/5`u2^QZY9([<)Dzd|RPZrPB$տuw37qPq*};0=5;ZAGTZQQM/QpKji/ʀ=E_ʬ,6$۫Pxظz85˖-%nM픴D(B1{ ព6ޒDO9㧺ҐdRM;pXGd|c[8K/?Nsh:'klsQsOuÇ3A]|V6_,2 :aE7Jtg +O$%Ayee]hfywqkʹKހf,4d* fifiL;<-t z͛q]w1Aw4g]6y]۾V}^X";K7qGSfd,DxׯaҌ pDGsf^֭bwgy^$z8=sY@EdQا #ipX,^_0d{ǡ(ԟpdڣMWEDCVتz8) Lec=za/k^|L7eʵz8.= d6̀tD! j?™3.PJ++G5454 #1co8q؆ԟM{AUh1ٮ%N]כpX#$[UHR{;~C/Ri*SI0{N3w55Vթ~=- g[j I:yt b'* ^R7JUf[͙݁Auf6YN&D\I yC++tKDB=f$qLC:3_.M(ƙmf%5t$pJ* ձyEz>ս<z8#|(Fo9\}香NnrJb-.1],[UU5z8dr!Zݖh b4><6;Oq 3EV"\Ȍ^j,W:=tG]Zo@a=b,Bе65+sA+4t\E6%7#:ܷQƁnZ~xSzxϭ zK* "e*nn6\DpDwΝ{f98>m{Z\R@.!*!If,Ā΃/il͛{m~, ሮ8KWا( zq۞ozb~(]!*g-= ˛X[UAu%IDnb^ G恠#8!$W.@]dfUH/2z1M{fSnj;!*o[^xzk6o…恠;ÇwqW_s숂 hWZiW$MS˵_˯j}3ӄʭ[Zj^* ppc#B9̹_tJg|3>u"e:Qϛ6Au}$lJJuKOho>I қ =Rɹ3}$DJuJvvn߻>&UyF"}KmA:Lh1j/V!O*_24}W++$I'mee} IDAT v=zu4JBuxx|GmSS+R+j:H52'YڣW3&igij낖/Y ,6J*^#F8 zZ}X8sTuܖ-HsC ۤ).(imJʀ O^S~9͞}UAOoiEBy+T[i's$t.sQ1/e^au]IX"n$IfxuT|F=!UD:Iy)o\6esBBQoC;5MW eH&\[PU׈YR eȓu&I2*3Enڙ:j ؊ӟ&$llU4antoyVTz<\4{V^=~VAW&cL/L;\Vl~$$;Q0)]buWO9Zrz-T a;opҒ&&/T*N l\&%e0T5bmVA=IjbIIM$̪)K-@M+.Lߙv *4B'I%Tj16͞ՖAO;lVkn,wKZ_loA{𚃲T]'#omOn;tsr|sAO˶?NJx:t|'6jN}$ܐLPN2IR- ~#RAf=Mޕ[$IrYݝ;Or,9VB=IBm̃)$\9z%IC8qoy;RE|vW.=d) lmIL^]xbK(g)$uEILZRfVgoiܹg{X p+ ̇NLi+(=n-{N/IkfzeiۑQNϷ#9רI'ӫ}=HrZROZ[lKHw7sʪ:{$i :3D}1Uz^/eC;n'[۩9 >GHHIy6iIv?iC(e}ƌ z$ )7չ=-aR"a9/MߑH9P$ [QU-2Iнo[H?V*ezC2~-XFM:a{XT&%,}$I.ٿAO)7ϐf3zTnW{?u*^@:.kmOJKR6}; %ICG?fk(e޲iSGO fM.!aqe>.s\y Y .h?"ep{$q-v晆yf߹#}͑8kZms+ $ޖ!O2IR;tz7_GOo ֹRv^BR.;t[Sΐ'$ifs:$GoIyR7gso }iL8~g[xzGM<Rv!g6"eRҒNZlQߒEKGʉo|W?eI\^<mv'Rڀ^-dIKٱCGk ː'56oݔl0=zK/A:<}s.5=?Wzw6>\/}) yIrGҒ|Gc*چ[o=Ր'-IQgڙ^i+>U^v1mIڙ~CHٶ)R:$-w=#We(7ϐ'$y^yH9Ugow%ɘzyڎBO`HڑlAZ޻{:iIN2vy2I=I*8vo³̓\O&<|Q*?p˩y->ig4dafH/ާǍN!CdГ$O=|%/)lڄgN`BҒ;tԪmʨI'C~(MO!_eyɻ镻#Te83ϐ'$$6g⟾Jʩu$} O7H^7L&ߖn 4}3ЫiN6U"z yAO* Kig36o[ I IKTKٗx²W~ԬS`ݎK$-6ig 7%лz*%ɏIHy1Ώ(CdГ$ӓg?Q] N̼o SIyx9iIig{kiGz.3ޱhIŝ}$%I} linI– "a=IacH!O2IJp}}8ؓ]6ֻYp|ˡ\!O2IR博p|[ &M?FF=|0^ۘ-ʶy<ɠ'IM Ǎ"!m@T3,`\>ݿyȐ'$Iup'nܹ$gY?e!DҒ|{ѿ(2I=IR8*0Ϥ7̀VE%-ɩc~Ȑ'$I OܬI؏VD+xmz;ӒtCdГ.O9O9䴱~rVzzq yAO6tiG5>NʖVDIm̟-jnο{|3F z$Qߞ#RQ {Y=%%Ꮴva\hoTͽ1Egk%$i%wˮiG私cI `ky$9=qdaTwٳAO&k=m&LAG>~7|1)ӀuvJ˂^O)|4 t:+ "IrcKu/bKfyN $I3j ;KJ:ؑ́]4/'I2IIKPڙ>5vE5<3=`ֿ뭚AOOu֖Haig+ ;5ЛɦrXH~`RҚߧm.#Tu>'$IzS>pb%[%I1)i:l@B`;0dF'I2dz”+v>-fӳ;Ǎnȓ z$m=tRK>{/hΎIlv$Y/MӾdHzHIJ ,wvt ɂ^%Mg%- dFK8wtӗBJ֤AW$$IH~ȑڧOh%%$I⁷jJ=I$5M3I=I$5QodГ$IR^#F\hcԸZ,$IRFu!Oj|I$5"Ґg5jGO$^! yRxJ$5ރk*bY{tЩ gU z$InoՔ z$Ijgȓ z$Ij AO$IM^<8$IR—k/dГ$IRыw|3 z$Immsܸ»œ z$I2z>~Oz-dГ$IR؋'$I45%$I$xAO$I5uڙg_)guۧOk%$Ij<[dГ$Iރk*sަ)ɠ'ITydz1ǔ$$IR y{R9}V[AO$$e,KdГ$I*Q϶_9n1Xu3MAO$ n_zZˑ4%$IJTU?>cV]AO$\=SAO$)^#Fܶh}$$IR#hJ2I$U=܁I2I$5E3I2I$5QN]8s$$IRAj9ݲdГ$I*X=z9rXmI=I$$$I=hۯZI%$I V޻Ə看.OAO$niOAO$ydz1m?g=$$IgR{qۢٳ5$$Iަ<3=`{:ɹ$$I{ࡷ_}z|uۧOkH2I$ n_zzs/+.k"I=I?>cն$$IRÝw z$IoS$$I]BAF]OGYpwE$$Ij~6S[.Wg$ɠ'IRS=hŋf[FmdГ$y3o7<ݲ>SΜC[_ z$UZ6:+{ݹ$ɠ'IRlk*so[2%ɠ'IR%~Oz-$$IjXyf[U.'.$$I׳;Ǎn%VvdГ$tvt O;:>)68B$$I*ՖcJAOHᝋwnxιOϘqՐ$$>}ރ#M$OC;/ҽmig琤ٷwri:|vt HZ[Я1{|M9`o65FGOO>jH zTD4hd}*us1)I2IR,V6޻Oϝ7'&$$˽v!ouj {(EdГZ?`E|n*T?R$I=I-v7^Kg{9c{l^p$$6)bY=-ճK^]y砓$$#v;AOoGvC=uҞ=.|ca$$zߟ[XI zAϠ'IXI$I2I$I z$I$$I$ɠ'I$I2I$IRf T1^`% X 蛿 h_pυ^$I2IŇ݀Yy_gB/:$IjFN2]wyl:-}?BK$ 詨ђQ'u+7_mB۲$I"ך݁O6h͛\ \Bx=I$F"F lcX $I zj 5`.Z%B3I$ɠ ׁ &!\gГ$IR#qt,@|x!? '?d9$IdS1ƫF֊41^i)$I^AVAV "H$ɠF yWMrw%$IR#M- y޶?YI$5{ xQXįC޺)I$~je$IAOyY5v{ IF3z]3m ݐWa$IRCG논w c _/}߯/}hgWI$ɠ7aޞ~ !xVe{7}W`シB{$I zGG^&. w!e,<p{$I5wE]!ԮT$I2 b_>Rj6$IAO"5L !͊K$I=O ?p$I z*Y@`W`xa-I$T~U>BxjK$Iy+C |ڐ'I$T#1nҒ$IAO `= 8K$I3z"$ IDATc\8ŧQ!׬i6MF]߽F} [=)0jKolE8נ]xkt+!̵Q eސ䗁9dy !Lk %;50&^dS^ ׫ I `F!]Kb *p?:pU̾Pؗw!izvKݦ@|ǀ?;B/|Gnr^+ߖz @{Z_=<`Jפ}7>쓿Wtzw>/xSC ߲=6v˃<ܕa0%~K_}gS}9/JJX4`|+mЫ'6&hX&\lL[}ʝ@ !lkÀy??6 pOzޏ7w&u{=> >ҫ@\G~ ̳ zJXtJ6V٠01#%Q91!.v/lv\ |<_.:m QƆ&V݁#zNc0 8' !wPV!^?eAO5xةE{˦A/im| X6 >paaQ}]nI%m6-n~B~t_|8 peH[آA?to#h޻h=c_$U65N6k曞_*;n݃$Խ850o'z'T|s@̿KvH]Bs[ߍUPa'T9NPM'k yfq&y4x~_YOb7k5x `<Ƞ|'{6 [af0>8b{.?&z*xD~VW=?cG6 RAcdUGb?1Vx@Ng,&xaSm@9?BU<dW xȟ}drXӚH6Z>MRVGq< m=j;Ҫ"}ޫQ|`UˮU m^Hvi[viQVc#Oc\be@&l%1.J"|EͿ$^86@ղpcM~Nz/s5f@c=ɞ["Ad3uk0>FvkW.JyMBH6w~M+Aoiz|?1n`l}K#Áh5@,= 7 )VLb{nq^I=n=IE_'J[h?:\w\sM;b8\D95{ zadK zm:%]y\cܣ!GhÖ5\FO3f@,=H(i)]p Syb?ڴԱ޽kig Wgcnca+]'uݠTaU zte^Ӏy^ \}0a`ncCS*i'܊C/aՋs,Wɦ藿͏mmY !<[Dzv7 v<0sdwlkWkxAqb4eIQgm-y~S~L.o4F]2 ]U[7_$Lnɟ !,y{.-+@#{D_X{_&/_y8_b`@~^%0x[c2BEBަkʙxQJzHgv_C_go15XՒ|;/BXpr' ,6>Pj^&!{V_ }<휇?b8Ɖv\dCYGҢBH*: c]!x|ռlBxba_S E1 §*pw+yU=5ܾ-6?oi!\_F9S)-{}BxJ6wzʲo:*)uClK<Y/ . V)lʠ58G [CAjA/~m{>%! ߖV@[ɫ'pGc[*g1GGmnL'Hy|C/V*vS@w=VGw>M6uTx6?;X/Za^^ڤppr +^iԏ/ͅW! F6Yx|-Xmw+[!BF2<BK io@BRs?R9!X8xoᣞ z*"B5Jo_-aۆw+u6!pXI8"pi}r(sQ'N)F_ !,vm N|]ԲW/x=PuӘ*+Tf%,.*/58v-'{^ 4覟[R{7pjI~zM6Jd1EDبmˠڐkY ki]dXbקStEv/;وw`wg?u/wJ;^d1ƭk [{Bˠ'('CV\/v+[{lDlб;ނ{ +E+t4EI' x M&zH+W2̠eBy z {wF}/o:pJ&ẙ{87~FJ=tZV.A8ݠWiE_Dw>cH |ddp˻+y@GAhq`2i%,=)pY޾YٳPEl]MBc|-u+}/ݷ*tܻemQ S2ѓk<4'Er֭ ]BG oi>N\ ?/pYe z*3٣'Qa!0ŭkEfza{[wڷJyLHЛ]ಆ{Ƞ'fu,e] (rڀmE4gw^?\Q"_ZvPcL< dSYA[7%"upGy^bm=Ky_=.Ua"AoTVгGO2iy1n5;EM]bzq}7mz ^b==dГ=zAϠט-pY݁w!tLw*CUO2+z z*W-d{ͽ \EoI=z1~CBmq \˲J=.fs罿ŽҚoHӡ4Kл֣Bxl"1~ΣCef ^;8 @ hZe[RG!1>lS"X !RE$uylc\' R-1-o{Lma oYUrzXʺVs]&"{BAQ$d 嚒w0Aki/a%Y*4g \V-o7 \#MT" ؠG(ncz.2.{$'k~nҚ6*p7Qyq | x:xz1F|Fq=zҿ. k}Z칷~ɫ˽fSS|+-pY[в\KeyG˳Go~f"H o_1^ !yVh]WdUSt uރ1/pZkZRR8A^*a詙]+2n_2-Vn %ijC[a7c5puaͯB|Z>1SȞͭ*jգWdpNV^#ɼ!yd?ͬ&dcc]@jQ2S31Ɠ(#A=z=^ zy؛F67?dL1c<;eA a5Ccs˾v6eeг*U% !kqhX`=_Bt2詼/%=B^+py. ;= x(:l@`7`O`0֖A˰G6*58P;1#F@}zIOt2\Jz1 !̳j _/a__޳!< BonsàWpnD򩴮1nRyqBYT^u[2XZ5|.J=BNBޛàWoa9:=B8V/4~3AO(cbYZ5})9kmCy: z5VdAkB!\EoIgdS  G9(a1pXlK,ٻT;L׻K`Su݁:AO幡iiUo1/T +,:v=fA6) 5 &&Jǒ|C%ҹ(BW[Z.5A7/#`3Igpߏ1 z*D[6>lyUgE߶o,6t,o(K`+4j3f8݂AO)UȖVY>An.E'VVZd 0Ezk>GA0ƸU2W{dRdˠ+ic|U=y!UzSENﱋ\%wƚT[^̧fx/dZf z*ލsfwS9KdhJzs/pY6|r-OK\Vڠ%%-1 * !fIc/KRE~rj%׋!/=OW<̎`SI.,]{BT \T)D`QAGS4 7,V!Ec\ TA; caUcEMJ#Q#JkkIWBqsKUY/XGk7詤v1w/1`U# \*H[ҕ*GlliUD6ϬAϠ [%Ƙa/mEiB/ \V1=[9"uqS+U z~raE`1&VY|N?UIw'Kݰuj9b'S^cYWZ"}>fZ,pYZNJ?\{| VuvV!-pY[٣mҪC7boZ󇀿|=wEq3(YӠڜ4~c<Ŋ7u{W>=zKH%,g>;[][l3詚\5.!Ÿ ^_c[Y mқ gS5O/_cuѡu/7XY&P3BtVKz.y3ypAϠ8ckÁc8oRS~5o_)p_[Hr}^v;bB`~ =+18`A{fZUjk]D1b楂:?rאVM>]ω%-~p[q+o5'ce8':j[~ ~"xPS+aߩ!'K'Ϗ1)UvdIF6ДWc=⸭F=b1^cܾb%)?1x1!gs ^!v. z_pzVpYqJbzj  M1Ɠj)e}2pO#-JO=zY109(ccCX5'٭e81ȓwCcmM;1cm X˵cн_e 1^NXYE;I] O(=JsEaAd쟿hR!> \peϪc=_^n_.<`B zɺWkp=b{a j6Cڑl݀G$cߚ'_wC W`7=8>Z j|Πgkࠗ719_B]݁w{nW !lV$x{ ُlww)9mk7`*\.X@w|?x$\%??#dw§6qN=ɺ`ل/ҿ_"sll$. IDATUu z;pcK_!p;v&=S m%e^ nyo] ߗmd3?4 Akߎ+ay ,>/?"ndm-W% !̫Qͷ&zy!#d^_k൴=Z&حɾc:lй5 Y/di y1?.Zz~~kiyװ$ڠ:aw.>i5/m|7sBg_qo2bH==!XÚphal =-?>oX07Vi\r AR7 pvq/"9uC]7j zjvpphJ'G O_vHZ1y$P'y= e7cCXB84لj%^&-א 1_!dJTہ PA/siF`SuNڗS$ժߐ $RE~(O iSmud^?ȐcӠ %`SNړ/+FӴ"io+ds*iJ "mfc|Gk>l[neZ,؇l֮!o!6詢'B&|Ɋ4ENj=*֋!Gjvtޱ5|~]ݕ=U>gSs/"kbyTrrN601!ɞ~ l P%!Ueʷm%$b>?<@38Fz}s g@M+5y2 OGܡj pr!7IOU;C' K^lIda K ]0#` s83 C-Xؽ E!2 ;B!cVe^jжY.q5p{ !|q˘TK!]As=Yּ=pVϦ)tfov !Bxo2։{qWd/k p/} ܎݆c`A \m0Qjgoᆪ%ʄ? 4ɨDAiQxEP$G0300|#8 (ID2HAH#4%݋PUu> :wījsڈ|t<Z?ہo/6C߈7KùFИeh22s[+gW8rLkk7ћHD{Qf3ڡ?t޳'61uiUm YcooGĽ#k:z?ʢ룔~aJ܄2K)C;G-f/+lѓ:xK;ՊejcL{ڹ;7"k]BgFCV<}ޏrx$wWWP*]\6:;9AӷYρ"1K'P.se]1L ֠<]gCuQʛsk{X/b)Nߋ~Nxgn^D,Y˛5x.#} ?.:Gf6Q;*Q.WPF }]6"niefԍ)O;W<Cy#~?|@vꮈѲ*fSf\!Z,\}# ;ySG >I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$-fI I42s9`;``3`#``U``6pOn..LMIv4kh*0K\x`w`)~|x舸TIv$IL8 xQ`>>q>k$GaI I4w(4i)`o`<6"^lfԭdjȎ$I=ej|<1]CY䈘?Fyw,, BΚWgkrZF̐xʼB/31q'8YfM{[WԴ0"~?|c\oDuLc*Ė)cc:xO(ODÛ7g汙>L+#1F%<03kzɃUߣf^]Lօڨ>x\o}}:2ᙹ¢otٓrGK<Ы[۹H!^@Z} 3?0Jw^ +ZFx3ћӻ>6k,OO#ѳ}4aKu D}>3yG}V)eVNf7Μgl0Tf<,<}evA>A2bͼ6^~fS;/16Pf F1s>*RQ]^ao݊KmQ=2=슔 xaXx>~P&\^&4 ka e*gPfڷW'(wk\u'"d|kfLPk(gKea-ΥL@gx(C^XYK_ͦcpezn\Y47.;=nﴌxymNlʲ mA-OeFwMd)2ڦdYobجKkt^؃3\뾫j~2nZn<2N5@Y>u_OޟW;(3΢<}2(KMƕ{@Yno67,up˫2;;zmPaDo?LJ=pGd5=jDf\ Z;E[6*MCpְ{(t_jc(~:"n|Rf~>ЁT?]g#MEֲFA܏2fR{{fYFw{^qu@-wZ&k?FYc*e ?.ڰ'o+;tphbIS.0.Dj_ n?qF}n?ei%jga$nFļJj_umbowrLLuJk8/khG`x⏕F(r]Es`ubM;4+OF,zxon<0ɿ7s2J뫭Cf/Ь8سC'c~3#-wRfm3[D=V~$p`;4wzqo}]~xpEcp~JtC4Γ)A:9}a:OM}mD=|+ʰ;efpNNlMyS9Zԋ|8 7~ܔe f 1`Ӥ5mqb߁ ؎^(S)tNGG7Ϣ<-mhUóNt@]맘. wdi9$nw'/{x)Ӎ)#F%kelL$|Z\ fhl&˻x&/{m:KT>#7>q7{9Tfdؾo7@DD ? Nl^qg*Z.=ʈQ7zxW1~egXlگ+esx[cNRv"_'֣U ^sJ273=oztKv'e^} rIC2^k1f^S?SYjf^ЋF$6[z3AmM)!쿝l`GoZ/2K;z=.Н\guɼ#К$bf`n_á[q>Ʃx3 k#Y(GnIYbcSӵ@t}Е^ԉ7\m+VA!~wb #eJ^Tnkl?iҚlН;lq4e͞dz"÷~尗o5 rfD<#)KBL 2_0i˰fk)o=탶K۟؃c&B{ qn5sJyw% (/_AY3\wG5DrMfS+dzeГ; hYu7>$KkL&L%ON7 qngXFM4x8ط>z5e=gN> l3Sl~vY6yK< >hk?׋74/oGob(?ḫ(75&{ ʂԽN㺻ztz=㵆$eeXśyMố2{eisD6.Wgjg}=-G1 탶{- |^fM6?3=W[wVDμ3IgnD8wox׷x3i;}FĻ(32wO7{b]"o2|m}op\>hk5hlGQXOg; w SfuW}w`&pzk a \}2Fhݘ =oN3s1XezpֲFsG*S׻Fߦ~$nfTn?O༆̀Zl>{2bͼa﫝C3s1Eiq+=oN29^ &{G)탶^0}Q{1kͤSo~yI) ל!LAOl|/g1Vf^0nPf[?YИ "󦐤dF !LZkP(p|cUsz\ 1x1`L̕16#Ĉؚ(ՀQצ4=+txeLӁ(cOEGimbNCVZCUn 'xN 0ZiJ oז2 tgz`wڳ ΩQNiqrDKeShm&=H,ŮvRR}"3r<':OOf.Lr;zFpɼ0bl+^V_X8嵻Уwg#bɿ42 Eot~vۀ'q>W4ϝx4{imO229߃u=-#ӷf'pf}z4M?T*ˁ7v;39$5Tzt~ؾ ,5oc>BfmZk)Ḿc#WEyxeyֺK/ǷM 4֐nl_G/޵7rNc_sw̞\qъqkW5on!|s 6{;2rƮ{Mcll__FZf/}[ i(NB%- ~̯t^i-`>EE1k7덍{ 6{nYj[FךFڗ /4v#3Pc#b*S~,3WqprcáӈXhČOY^Mc#fڍI]k45jM>}>vn*gZd*O\kl_Rfњl`7eީF3%}Ѭ7~fn8Ϻ!w}-xRW4v{]}f,LHvZ/!3}@m:5ze'_=yD+auQQs]Zj."0D/,ؾ-? IDAT"p\pj%ovffFf{cUۗ>ۧl0͎ ]|f}ZDrV#{=|]_\:5UxgVIwSiС98z2 ׺1;16Fy'xpFfneimQT+u폴ȍBlܐ'egjSH2۴GMdnjH\#3ߓ}n< q}MPf2Lf^dzey8'S̔\= {:5Sz7ehƍ> |<32tZ ,+ؔrwv9< 4_{2ʹo \z%`.vLjxePt%pnf6Qf\\2{I?b]o|!3vJD ~=w 67Bg՟~8'"ΜW=e@?3W4[06^2A3"fMd7O2{\L¹ClF3۲1p`Ӏw}ӡqkqcf9l ۲i=;ae晵q[Zh7RKyBm?xz͇^k9 2.<4 33 # lF=ݮWz4_LS;xi0wʆ}_ g/(VK^؏ZkR}8?k'. ,e8_7"1Av^;s es=ƪW3)/iL`~>唱Оl6k2~OpEa۸䵈iC沾i>|`8jbsP=#)џ)Ο-1j'\ (w%4ȴ@l,wRx{pˆ^wU19ʽi; o"sشu ͻdL)әTB``nDԃ8;2Բ ֳ}-a?J~e^240|GMw .S [P>OyCz]OQe`t/g۸䵈82MozQfx ͻgFn .'"vk-6#bg?H`yS"⽽,GS͒fק{f)3T+QfU~JYOtuDdP2qצ)>>DYrdcP&XX,ɲȝw . 8?"nR`ܺV/⽏Z~)"~iv75w|-37beJEZ^Nv#+jyqCƿޖL'ergS kcDD{lFeƢm|e9j{/q+Ί_]j)zWsyW=ɹDBW&)3 N7LZCqv kefmP+y/3kc~Y2n ()kXC{v wcS_mHC1uiF f^ ]U66%&4i/ml>϶)oƛdlJ'H}'്ݎ}OxMcS')NteI2$cS=idۀ74v;6"N1$M26%ѓ_Q͙OÀ/6vH$M26%M gLwtf. Gr4s(k0>x&eͣ]eOTג&ؔdGO3֔EUw}?">oJƛdlJNԌ׊WhJƛdlJ'M{Y;Œ%o)Ɏ4Mӣ6GD,0I%M26% L6ջ9"N0)%M26%ѓ*sߋ&dIƦa3$LϠ250XR,󁛁 )/Wr&$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$i[9Y.IENDB`glances-3.4.0.3/glances/outputs/static/js/0000755000175000017500000000000014432156570020250 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/js/services.js0000644000175000017500000000764014432156570022440 0ustar epsilonepsilonimport { store } from './store.js'; import Favico from 'favico.js'; // prettier-ignore const fetchAll = () => fetch('api/3/all', { method: 'GET' }).then((response) => response.json()); // prettier-ignore const fetchAllViews = () => fetch('api/3/all/views', { method: 'GET' }).then((response) => response.json()); // prettier-ignore const fetchAllLimits = () => fetch('api/3/all/limits', { method: 'GET' }).then((response) => response.json()); // prettier-ignore const fetchArgs = () => fetch('api/3/args', { method: 'GET' }).then((response) => response.json()); // prettier-ignore const fetchConfig = () => fetch('api/3/config', { method: 'GET' }).then((response) => response.json()); class GlancesHelperService { limits = {}; limitSuffix = ['critical', 'careful', 'warning']; setLimits(limits) { this.limits = limits; } getAlert(pluginName, limitNamePrefix, current, maximum, log) { current = current || 0; maximum = maximum || 100; log = log || false; var log_str = log ? '_log' : ''; var value = (current * 100) / maximum; if (this.limits[pluginName] != undefined) { for (var i = 0; i < this.limitSuffix.length; i++) { var limitName = limitNamePrefix + this.limitSuffix[i]; var limit = this.limits[pluginName][limitName]; if (value >= limit) { var pos = limitName.lastIndexOf('_'); var className = limitName.substring(pos + 1); return className + log_str; } } } return 'ok' + log_str; } getAlertLog(pluginName, limitNamePrefix, current, maximum) { return this.getAlert(pluginName, limitNamePrefix, current, maximum, true); } } export const GlancesHelper = new GlancesHelperService(); class GlancesStatsService { data = undefined; init(REFRESH_TIME = 60) { let timeout = undefined; const fetchData = () => { store.status = 'PENDING'; return Promise.all([fetchAll(), fetchAllViews()]) .then((response) => { const data = { stats: response[0], views: response[1], isBsd: response[0]['system']['os_name'] === 'FreeBSD', isLinux: response[0]['system']['os_name'] === 'Linux', isSunOS: response[0]['system']['os_name'] === 'SunOS', isMac: response[0]['system']['os_name'] === 'Darwin', isWindows: response[0]['system']['os_name'] === 'Windows' }; this.data = data; store.data = data; store.status = 'SUCCESS'; }) .catch((error) => { console.log(error); store.status = 'FAILURE'; }) .then(() => { if (timeout) { clearTimeout(timeout); } timeout = setTimeout(fetchData, REFRESH_TIME * 1000); // in milliseconds }); }; fetchData(); fetchAllLimits().then((response) => { GlancesHelper.setLimits(response); }); fetchArgs().then((response = {}) => { store.args = { ...store.args, ...response }; }); fetchConfig().then((response = {}) => { store.config = { ...store.config, ...response }; }); } getData() { return this.data; } } export const GlancesStats = new GlancesStatsService(); class GlancesFavicoService { constructor() { this.favico = new Favico({ animation: 'none' }); } badge(nb) { this.favico.badge(nb); } reset() { this.favico.reset(); } } export const GlancesFavico = new GlancesFavicoService(); glances-3.4.0.3/glances/outputs/static/js/components/0000755000175000017500000000000014432156570022435 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/js/components/plugin-mem-more.vue0000644000175000017500000000275614432156570026202 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-sensors.vue0000644000175000017500000000376614432156570026162 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-memswap.vue0000644000175000017500000000333014432156570026122 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-quicklook.vue0000644000175000017500000001123314432156570026453 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-raid.vue0000644000175000017500000000577014432156570025402 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-cloud.vue0000644000175000017500000000131514432156570025560 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-process.vue0000644000175000017500000000546514432156570026142 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-amps.vue0000644000175000017500000000317014432156570025413 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-now.vue0000644000175000017500000000047014432156570025256 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-processcount.vue0000644000175000017500000000250314432156570027201 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-mem.vue0000644000175000017500000000331614432156570025233 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-load.vue0000644000175000017500000000351014432156570025370 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-irq.vue0000644000175000017500000000203014432156570025240 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-gpu.vue0000644000175000017500000001103214432156570025242 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-ports.vue0000644000175000017500000000422014432156570025617 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-cpu.vue0000644000175000017500000001556314432156570025253 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-network.vue0000644000175000017500000001010214432156570026135 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-processlist.vue0000644000175000017500000002270514432156570027032 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-diskio.vue0000644000175000017500000000473614432156570025746 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-system.vue0000644000175000017500000000250214432156570025775 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-fs.vue0000644000175000017500000000515014432156570025063 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-containers.vue0000644000175000017500000001575414432156570026633 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-alert.vue0000644000175000017500000000635614432156570025573 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-connections.vue0000644000175000017500000000451614432156570027002 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-uptime.vue0000644000175000017500000000050614432156570025756 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-percpu.vue0000644000175000017500000000666614432156570025766 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/help.vue0000644000175000017500000002606614432156570024120 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-folders.vue0000644000175000017500000000344014432156570026111 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-ip.vue0000644000175000017500000000215414432156570025064 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/components/plugin-wifi.vue0000644000175000017500000000372414432156570025416 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/store.js0000644000175000017500000000023114432156570021736 0ustar epsilonepsilonimport { reactive } from 'vue'; export const store = reactive({ args: undefined, config: undefined, data: undefined, status: 'IDLE' }); glances-3.4.0.3/glances/outputs/static/js/app.js0000644000175000017500000000050614432156570021367 0ustar epsilonepsilon/* global module */ if (module.hot) { module.hot.accept(); } import '../css/bootstrap.less'; import '../css/style.scss'; import { createApp } from 'vue'; import App from './App.vue'; import * as filters from "./filters.js"; const app = createApp(App); app.config.globalProperties.$filters = filters; app.mount('#app'); glances-3.4.0.3/glances/outputs/static/js/App.vue0000644000175000017500000004135714432156570021523 0ustar epsilonepsilon glances-3.4.0.3/glances/outputs/static/js/filters.js0000644000175000017500000000625214432156570022263 0ustar epsilonepsilonimport { min } from 'lodash'; import sanitizeHtml from 'sanitize-html'; export function bits(bits, low_precision) { bits = Math.round(bits) * 8; return bytes(bits, low_precision) + 'b'; } export function bytes(bytes, low_precision) { low_precision = low_precision || false; if (isNaN(parseFloat(bytes)) || !isFinite(bytes) || bytes == 0) { return bytes; } const symbols = ['Y', 'Z', 'E', 'P', 'T', 'G', 'M', 'K']; const prefix = { Y: 1208925819614629174706176, Z: 1180591620717411303424, E: 1152921504606846976, P: 1125899906842624, T: 1099511627776, G: 1073741824, M: 1048576, K: 1024 }; for (var i = 0; i < symbols.length; i++) { var symbol = symbols[i]; var value = bytes / prefix[symbol]; if (value > 1) { var decimal_precision = 0; if (value < 10) { decimal_precision = 2; } else if (value < 100) { decimal_precision = 1; } if (low_precision) { if (symbol == 'MK') { decimal_precision = 0; } else { decimal_precision = min([1, decimal_precision]); } } else if (symbol == 'K') { decimal_precision = 0; } return parseFloat(value).toFixed(decimal_precision) + symbol; } } return bytes.toFixed(0); } export function exclamation(input) { if (input === undefined || input === '') { return '?'; } return input; } export function leftPad(value, length, chars) { length = length || 0; chars = chars || ' '; return String(value).padStart(length, chars); } export function limitTo(value, limit) { if (typeof value.slice !== 'function') { value = String(value); } return value.slice(0, limit); } export function minSize(input, max) { max = max || 8; if (input.length > max) { return '_' + input.substring(input.length - max + 1); } return input; } export function nl2br(input) { function escapeHTML(html) { var div = document.createElement('div'); div.innerText = html; return div.innerHTML; } if (typeof input === 'undefined') { return input; } var sanitizedInput = escapeHTML(input); var html = sanitizedInput.replace(/\n/g, '
'); return sanitizeHtml(html); } export function number(value, options) { return new Intl.NumberFormat( undefined, typeof options === 'number' ? { maximumFractionDigits: options } : options ).format(value); } export function timemillis(array) { var sum = 0.0; for (var i = 0; i < array.length; i++) { sum += array[i] * 1000.0; } return sum; } export function timedelta(value) { var sum = timemillis(value); var d = new Date(sum); var doy = Math.floor((d - new Date(d.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24); return { hours: d.getUTCHours() + (doy - 1) * 24, minutes: d.getUTCMinutes(), seconds: d.getUTCSeconds(), milliseconds: parseInt('' + d.getUTCMilliseconds() / 10) }; } glances-3.4.0.3/glances/outputs/static/webpack.config.js0000644000175000017500000000513314432156570023054 0ustar epsilonepsilon/* eslint-disable */ const webpack = require('webpack'); const path = require("path"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); const TerserWebpackPlugin = require('terser-webpack-plugin'); const { VueLoaderPlugin } = require('vue-loader'); const PORT = process.env.PORT || 61209; module.exports = (_, env) => { const isProd = env.mode === 'production'; return { mode: isProd ? 'production' : 'development', entry: "./js/app.js", output: { path: path.join(__dirname, "public"), filename: "glances.js", publicPath: '/', clean: true }, devtool: isProd ? false : 'eval-source-map', module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' }, { test: /\.scss$/, use: [{ loader: "style-loader", }, { loader: "css-loader", }, { loader: "sass-loader", }] }, { test: /\.less$/, use: [{ loader: "style-loader", }, { loader: "css-loader", }, { loader: "less-loader", }] }, { test: /\.css$/, use: [{ loader: "style-loader", }, { loader: "css-loader", }] } ], }, plugins: [ new webpack.DefinePlugin({ __VUE_OPTIONS_API__: true, __VUE_PROD_DEVTOOLS__: false }), new CopyWebpackPlugin({ patterns: [ { from: "./images/favicon.ico" } ] }), !isProd && new HtmlWebpackPlugin({ template: './templates/index.html.tpl', inject: false }), isProd && new TerserWebpackPlugin({ extractComments: false }), new VueLoaderPlugin() ].filter(Boolean), devServer: { host: '0.0.0.0', port: PORT, hot: true, proxy: { '/api': { target: 'http://0.0.0.0:61208' } } } }; }; glances-3.4.0.3/glances/outputs/static/README.md0000644000175000017500000000214314432156570021113 0ustar epsilonepsilon# Focus on the Glances Web User Interface In order to build the assets of the Web UI, you'll need [NPM](https://docs.npmjs.com/getting-started/what-is-npm). NPM is a package manager for JavaScript related to [Node.js](https://nodejs.org/en/). NodeJS should be installed/updated on your system. ## Pre-requisites ### Install NodeJS Example on Ubuntu OS: ```bash sudo apt install nodejs ``` ### Upgrade NodeJS Example on Ubuntu OS: ```bash sudo apt update sudo apt install nodejs sudo npm install -g n sudo n lts hash -r ``` ## Build Glances WebUI You must run the following command from the `glances/outputs/static/` directory. ### Install dependencies ```bash $ npm ci ``` ### Build assets Run the build command to build assets once : ```bash $ npm run build ``` or use the watch command to rebuild only modified files : ```bash $ npm run watch ``` ## Anatomy ```bash static | |--- css | |--- images | |--- js | |--- public # path where builds are put | |--- templates (bottle) ``` ## Data Each plugin receives the data in the following format: * stats * views * isBsd * isLinux * isMac * isWindows glances-3.4.0.3/glances/outputs/static/package.json0000644000175000017500000000205214432156570022121 0ustar epsilonepsilon{ "private": true, "dependencies": { "bootstrap": "^3.4.1", "favico.js": "^0.3.10", "hotkeys-js": "^3.10.2", "lodash": "^4.17.21", "sanitize-html": "^2.10.0", "vue": "^3.3.2" }, "devDependencies": { "@vue/compiler-sfc": "^3.3.2", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.3", "del": "^7.0.0", "eslint": "^8.40.0", "eslint-plugin-vue": "^9.12.0", "html-webpack-plugin": "^5.5.1", "less": "^4.1.3", "less-loader": "^11.1.0", "sass": "^1.62.1", "sass-loader": "^13.2.2", "style-loader": "^3.3.2", "url-loader": "^4.1.1", "vue-loader": "^17.1.1", "webpack": "^5.82.1", "webpack-cli": "^5.1.1", "webpack-dev-server": "^4.15.0" }, "scripts": { "build": "webpack --progress --mode=production", "start": "webpack serve --mode=development", "watch": "webpack --progress --watch", "lint": "eslint ./ --ext .js,.vue" } } glances-3.4.0.3/glances/outputs/static/.prettierrc.js0000644000175000017500000000026614432156570022437 0ustar epsilonepsilonmodule.exports = { printWidth: 100, arrowParens: 'always', bracketSpacing: true, semi: true, singleQuote: true, tabWidth: 4, trailingComma: 'none', useTabs: false }; glances-3.4.0.3/glances/outputs/static/package-lock.json0000644000175000017500000154702414432156570023065 0ustar epsilonepsilon{ "name": "static", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { "bootstrap": "^3.4.1", "favico.js": "^0.3.10", "hotkeys-js": "^3.10.2", "lodash": "^4.17.21", "sanitize-html": "^2.10.0", "vue": "^3.3.2" }, "devDependencies": { "@vue/compiler-sfc": "^3.3.2", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.3", "del": "^7.0.0", "eslint": "^8.40.0", "eslint-plugin-vue": "^9.12.0", "html-webpack-plugin": "^5.5.1", "less": "^4.1.3", "less-loader": "^11.1.0", "sass": "^1.62.1", "sass-loader": "^13.2.2", "style-loader": "^3.3.2", "url-loader": "^4.1.1", "vue-loader": "^17.1.1", "webpack": "^5.82.1", "webpack-cli": "^5.1.1", "webpack-dev-server": "^4.15.0" } }, "node_modules/@babel/parser": { "version": "7.21.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "bin": { "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { "version": "8.40.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "engines": { "node": ">=12.22" }, "funding": { "type": "github", "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/bonjour": { "version": "3.5.10", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "node_modules/@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { "version": "3.7.4", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "node_modules/@types/express": { "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { "version": "4.17.35", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, "node_modules/@types/http-proxy": { "version": "1.17.11", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "node_modules/@types/node": { "version": "20.1.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.4.tgz", "integrity": "sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==", "dev": true }, "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, "node_modules/@types/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "dependencies": { "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@vue/compiler-core": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.2.tgz", "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", "dependencies": { "@babel/parser": "^7.21.3", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", "dependencies": { "@vue/compiler-core": "3.3.2", "@vue/shared": "3.3.2" } }, "node_modules/@vue/compiler-sfc": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", "dependencies": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.2", "@vue/compiler-dom": "3.3.2", "@vue/compiler-ssr": "3.3.2", "@vue/reactivity-transform": "3.3.2", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0", "postcss": "^8.1.10", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", "dependencies": { "@vue/compiler-dom": "3.3.2", "@vue/shared": "3.3.2" } }, "node_modules/@vue/reactivity": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.2.tgz", "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", "dependencies": { "@vue/shared": "3.3.2" } }, "node_modules/@vue/reactivity-transform": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", "dependencies": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.2", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0" } }, "node_modules/@vue/runtime-core": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.2.tgz", "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", "dependencies": { "@vue/reactivity": "3.3.2", "@vue/shared": "3.3.2" } }, "node_modules/@vue/runtime-dom": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", "dependencies": { "@vue/runtime-core": "3.3.2", "@vue/shared": "3.3.2", "csstype": "^3.1.1" } }, "node_modules/@vue/server-renderer": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.2.tgz", "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", "dependencies": { "@vue/compiler-ssr": "3.3.2", "@vue/shared": "3.3.2" }, "peerDependencies": { "vue": "3.3.2" } }, "node_modules/@vue/shared": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.2.tgz", "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-section": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-opt": "1.11.6", "@webassemblyjs/wasm-parser": "1.11.6", "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", "integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", "integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { "optional": true } } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-import-assertions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/aggregate-error": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, "dependencies": { "clean-stack": "^4.0.0", "indent-string": "^5.0.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "dependencies": { "ajv": "^8.0.0" }, "peerDependencies": { "ajv": "^8.0.0" }, "peerDependenciesMeta": { "ajv": { "optional": true } } }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], "bin": { "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/bonjour-service": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "node_modules/bootstrap": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", "engines": { "node": ">=6" } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" } ], "dependencies": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", "node-releases": "^2.0.8", "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "node_modules/caniuse-lite": { "version": "1.0.30001487", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ] }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, "engines": { "node": ">=6.0" } }, "node_modules/clean-css": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "dependencies": { "source-map": "~0.6.0" }, "engines": { "node": ">= 10.0" } }, "node_modules/clean-stack": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clean-stack/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/clone-deep/node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, "engines": { "node": ">= 12" } }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", "debug": "2.6.9", "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "dependencies": { "safe-buffer": "5.2.1" }, "engines": { "node": ">= 0.6" } }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, "dependencies": { "is-what": "^3.14.1" }, "funding": { "url": "https://github.com/sponsors/mesqueeb" } }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" } }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { "node": ">= 6" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "engines": { "node": ">=0.10.0" } }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "dependencies": { "execa": "^5.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/del": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", "dev": true, "dependencies": { "globby": "^13.1.2", "graceful-fs": "^4.2.10", "is-glob": "^4.0.3", "is-path-cwd": "^3.0.0", "is-path-inside": "^4.0.0", "p-map": "^5.5.0", "rimraf": "^3.0.2", "slash": "^4.0.0" }, "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { "path-type": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "node_modules/dns-packet": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, "engines": { "node": ">=6" } }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "dependencies": { "utila": "~0.4" } }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } ] }, "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" }, "engines": { "node": ">= 4" }, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/electron-to-chromium": { "version": "1.4.394", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.394.tgz", "integrity": "sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==", "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" }, "engines": { "node": ">=10.13.0" } }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, "bin": { "envinfo": "dist/cli.js" }, "engines": { "node": ">=4" } }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, "dependencies": { "prr": "~1.0.1" }, "bin": { "errno": "cli.js" } }, "node_modules/es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { "version": "8.40.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", "eslint-visitor-keys": "^3.4.1", "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-plugin-vue": { "version": "9.13.0", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.13.0.tgz", "integrity": "sha512-aBz9A8WB4wmpnVv0pYUt86cmH9EkcwWzgEwecBxMoRNhQjTL5i4sqadnwShv/hOdr8Hbl8XANGV7dtX9UQIAyA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.3.0", "natural-compare": "^1.4.0", "nth-check": "^2.0.1", "postcss-selector-parser": "^6.0.9", "semver": "^7.3.5", "vue-eslint-parser": "^9.3.0", "xml-name-validator": "^4.0.0" }, "engines": { "node": "^14.17.0 || >=16.0.0" }, "peerDependencies": { "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/eslint-scope": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/espree": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", "serve-static": "1.15.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.10.0" } }, "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "engines": { "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/favico.js": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/favico.js/-/favico.js-0.3.10.tgz", "integrity": "sha512-S5KvqAOczRjlyjQPPZPSlUEybBkfBgKosY/pzTIxkvKgigB+DkITvIEI70dxQarbv4PZ+UD77QzquCAcU/6LHQ==" }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true, "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], "engines": { "node": ">=4.0" }, "peerDependenciesMeta": { "debug": { "optional": true } } }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { "version": "13.1.4", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.2.11", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^4.0.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { "function-bind": "^1.1.1" }, "engines": { "node": ">= 0.4.0" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "bin": { "he": "bin/he" } }, "node_modules/hotkeys-js": { "version": "3.10.2", "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.10.2.tgz", "integrity": "sha512-Z6vLmJTYzkbZZXlBkhrYB962Q/rZGc/WHQiyEGu9ZZVF7bAeFDjjDa31grWREuw9Ygb4zmlov2bTkPYqj0aFnQ==" }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", "commander": "^8.3.0", "he": "^1.2.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.10.0" }, "bin": { "html-minifier-terser": "cli.js" }, "engines": { "node": ">=12" } }, "node_modules/html-webpack-plugin": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", "dev": true, "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" }, "engines": { "node": ">=10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { "webpack": "^5.20.0" } }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", "url": "https://github.com/sponsors/fb55" } ], "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/http-proxy-middleware": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" }, "engines": { "node": ">=12.0.0" }, "peerDependencies": { "@types/express": "^4.17.13" }, "peerDependenciesMeta": { "@types/express": { "optional": true } } }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { "node": ">=10.17.0" } }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true, "bin": { "image-size": "bin/image-size.js" }, "engines": { "node": ">=0.10.0" } }, "node_modules/immutable": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/interpret": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-core-module": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "dependencies": { "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/is-path-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-path-inside": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { "is-docker": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/js-sdsl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" } }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", "dev": true, "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.7.3" } }, "node_modules/less": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dev": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", "tslib": "^2.3.0" }, "bin": { "lessc": "bin/lessc" }, "engines": { "node": ">=6" }, "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "needle": "^3.1.0", "source-map": "~0.6.0" } }, "node_modules/less-loader": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", "dev": true, "dependencies": { "klona": "^2.0.4" }, "engines": { "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" } }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" }, "engines": { "node": ">=8.9.0" } }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/magic-string": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { "node": ">=12" } }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" }, "engines": { "node": ">=6" } }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "optional": true, "bin": { "semver": "bin/semver" } }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { "node": ">=4" } }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "dev": true, "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, "bin": { "needle": "bin/needle" }, "engines": { "node": ">= 4.4.x" } }, "node_modules/needle/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" }, "funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { "ee-first": "1.1.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, "dependencies": { "aggregate-error": "^4.0.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { "node": ">=8" } }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true, "engines": { "node": ">=6" } }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { "find-up": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "dependencies": { "icss-utils": "^5.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-selector-parser": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" }, "engines": { "node": ">=4" } }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" } }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, "optional": true }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "dependencies": { "side-channel": "^1.0.4" }, "engines": { "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/raw-body/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { "resolve": "^1.20.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" } }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "node_modules/sanitize-html": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.10.0.tgz", "integrity": "sha512-JqdovUd81dG4k87vZt6uA6YhDfWkUGruUu/aPmXLxXi45gZExnt9Bnw/qeQU8oGf82vPyaE0vO4aH0PbobB9JQ==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", "htmlparser2": "^8.0.0", "is-plain-object": "^5.0.0", "parse-srcset": "^1.0.2", "postcss": "^8.3.11" } }, "node_modules/sanitize-html/node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/sanitize-html/node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" }, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/sanitize-html/node_modules/domutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/sanitize-html/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/sanitize-html/node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", "url": "https://github.com/sponsors/fb55" } ], "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "node_modules/sass": { "version": "1.62.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { "sass": "sass.js" }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-loader": { "version": "13.2.2", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", "dev": true, "dependencies": { "klona": "^2.0.6", "neo-async": "^2.6.2" }, "engines": { "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { "fibers": { "optional": true }, "node-sass": { "optional": true }, "sass": { "optional": true }, "sass-embedded": { "optional": true } } }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "node_modules/schema-utils": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "node_modules/selfsigned": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "dependencies": { "node-forge": "^1" }, "engines": { "node": ">=10" } }, "node_modules/semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/send/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/serialize-javascript": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/serve-index/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { "kind-of": "^6.0.2" }, "engines": { "node": ">=8" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" } }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/style-loader": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.2.tgz", "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", "dev": true, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/terser": { "version": "5.17.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz", "integrity": "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" } }, "node_modules/terser-webpack-plugin": { "version": "5.3.8", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" }, "peerDependenciesMeta": { "@swc/core": { "optional": true }, "esbuild": { "optional": true }, "uglify-js": { "optional": true } } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" }, "engines": { "node": ">= 0.6" } }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" }, "bin": { "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", "schema-utils": "^3.0.0" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "file-loader": "*", "webpack": "^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "file-loader": { "optional": true } } }, "node_modules/url-loader/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/vue": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.2.tgz", "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", "dependencies": { "@vue/compiler-dom": "3.3.2", "@vue/compiler-sfc": "3.3.2", "@vue/runtime-dom": "3.3.2", "@vue/server-renderer": "3.3.2", "@vue/shared": "3.3.2" } }, "node_modules/vue-eslint-parser": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz", "integrity": "sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==", "dev": true, "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", "eslint-visitor-keys": "^3.3.0", "espree": "^9.3.1", "esquery": "^1.4.0", "lodash": "^4.17.21", "semver": "^7.3.6" }, "engines": { "node": "^14.17.0 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { "eslint": ">=6.0.0" } }, "node_modules/vue-loader": { "version": "17.1.1", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.1.1.tgz", "integrity": "sha512-qpqEVkKdrAsgyIBMHaiXurDeCuBWqRyKqg2GI4aG3NbggEls+BLqTZdqahbJJh7fm83sz+iz3gg6eDWdbNlG7Q==", "dev": true, "dependencies": { "chalk": "^4.1.0", "hash-sum": "^2.0.0", "watchpack": "^2.4.0" }, "peerDependencies": { "webpack": "^4.1.0 || ^5.0.0-0" }, "peerDependenciesMeta": { "@vue/compiler-sfc": { "optional": true }, "vue": { "optional": true } } }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { "node": ">=10.13.0" } }, "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/webpack": { "version": "5.82.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.14.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { "node": ">=10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependenciesMeta": { "webpack-cli": { "optional": true } } }, "node_modules/webpack-cli": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.1.tgz", "integrity": "sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.0", "@webpack-cli/info": "^2.0.1", "@webpack-cli/serve": "^2.0.4", "colorette": "^2.0.14", "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, "webpack-bundle-analyzer": { "optional": true }, "webpack-dev-server": { "optional": true } } }, "node_modules/webpack-cli/node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/webpack-dev-server": { "version": "4.15.0", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz", "integrity": "sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", "ws": "^8.13.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { "webpack": { "optional": true }, "webpack-cli": { "optional": true } } }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/webpack/node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } } }, "dependencies": { "@babel/parser": { "version": "7.21.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==" }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "requires": { "eslint-visitor-keys": "^3.3.0" } }, "@eslint-community/regexpp": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", "dev": true }, "@eslint/eslintrc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "@eslint/js": { "version": "8.40.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true }, "@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.5" } }, "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, "@jridgewell/source-map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "requires": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" }, "dependencies": { "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true } } }, "@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" } }, "@types/bonjour": { "version": "3.5.10", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/connect-history-api-fallback": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "requires": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" } }, "@types/eslint-scope": { "version": "3.7.4", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "requires": { "@types/eslint": "*", "@types/estree": "*" } }, "@types/estree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "@types/express": { "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { "version": "4.17.35", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, "@types/http-proxy": { "version": "1.17.11", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { "version": "20.1.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.4.tgz", "integrity": "sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==", "dev": true }, "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, "@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, "@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, "@types/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, "requires": { "@types/mime": "^1", "@types/node": "*" } }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, "requires": { "@types/express": "*" } }, "@types/serve-static": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "requires": { "@types/mime": "*", "@types/node": "*" } }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "requires": { "@types/node": "*" } }, "@vue/compiler-core": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.2.tgz", "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", "requires": { "@babel/parser": "^7.21.3", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "@vue/compiler-dom": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", "requires": { "@vue/compiler-core": "3.3.2", "@vue/shared": "3.3.2" } }, "@vue/compiler-sfc": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", "requires": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.2", "@vue/compiler-dom": "3.3.2", "@vue/compiler-ssr": "3.3.2", "@vue/reactivity-transform": "3.3.2", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0", "postcss": "^8.1.10", "source-map-js": "^1.0.2" } }, "@vue/compiler-ssr": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", "requires": { "@vue/compiler-dom": "3.3.2", "@vue/shared": "3.3.2" } }, "@vue/reactivity": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.2.tgz", "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", "requires": { "@vue/shared": "3.3.2" } }, "@vue/reactivity-transform": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", "requires": { "@babel/parser": "^7.20.15", "@vue/compiler-core": "3.3.2", "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0" } }, "@vue/runtime-core": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.2.tgz", "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", "requires": { "@vue/reactivity": "3.3.2", "@vue/shared": "3.3.2" } }, "@vue/runtime-dom": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", "requires": { "@vue/runtime-core": "3.3.2", "@vue/shared": "3.3.2", "csstype": "^3.1.1" } }, "@vue/server-renderer": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.2.tgz", "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", "requires": { "@vue/compiler-ssr": "3.3.2", "@vue/shared": "3.3.2" } }, "@vue/shared": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.2.tgz", "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" }, "@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-section": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-opt": "1.11.6", "@webassemblyjs/wasm-parser": "1.11.6", "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", "@webassemblyjs/wasm-gen": "1.11.6", "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webpack-cli/configtest": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", "integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", "dev": true, "requires": {} }, "@webpack-cli/info": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", "dev": true, "requires": {} }, "@webpack-cli/serve": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", "integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", "dev": true, "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "acorn": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-import-assertions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, "aggregate-error": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, "requires": { "clean-stack": "^4.0.0", "indent-string": "^5.0.0" } }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { "ajv": "^8.0.0" }, "dependencies": { "ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" }, "dependencies": { "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "bonjour-service": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "requires": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "bootstrap": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==" }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", "node-releases": "^2.0.8", "update-browserslist-db": "^1.0.10" } }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" } }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "caniuse-lite": { "version": "1.0.30001487", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", "dev": true }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", "fsevents": "~2.3.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "dependencies": { "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } } } }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, "clean-css": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "requires": { "source-map": "~0.6.0" } }, "clean-stack": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, "requires": { "escape-string-regexp": "5.0.0" }, "dependencies": { "escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true } } }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" }, "dependencies": { "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } } } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { "mime-db": ">= 1.43.0 < 2" } }, "compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", "debug": "2.6.9", "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "requires": { "safe-buffer": "5.2.1" } }, "content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, "requires": { "is-what": "^3.14.1" } }, "copy-webpack-plugin": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "requires": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" } }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "requires": { "icss-utils": "^5.1.0", "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.3.8" } }, "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "requires": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" } }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" }, "default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "requires": { "execa": "^5.0.0" } }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true }, "del": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", "dev": true, "requires": { "globby": "^13.1.2", "graceful-fs": "^4.2.10", "is-glob": "^4.0.3", "is-path-cwd": "^3.0.0", "is-path-inside": "^4.0.0", "p-map": "^5.5.0", "rimraf": "^3.0.2", "slash": "^4.0.0" } }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" } }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "dns-packet": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" } }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "requires": { "utila": "~0.4" } }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "requires": { "domelementtype": "^2.2.0" } }, "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "electron-to-chromium": { "version": "1.4.394", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.394.tgz", "integrity": "sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==", "dev": true }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, "enhanced-resolve": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, "requires": { "prr": "~1.0.1" } }, "es-module-lexer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "eslint": { "version": "8.40.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", "eslint-visitor-keys": "^3.4.1", "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true } } }, "eslint-plugin-vue": { "version": "9.13.0", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.13.0.tgz", "integrity": "sha512-aBz9A8WB4wmpnVv0pYUt86cmH9EkcwWzgEwecBxMoRNhQjTL5i4sqadnwShv/hOdr8Hbl8XANGV7dtX9UQIAyA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.3.0", "natural-compare": "^1.4.0", "nth-check": "^2.0.1", "postcss-selector-parser": "^6.0.9", "semver": "^7.3.5", "vue-eslint-parser": "^9.3.0", "xml-name-validator": "^4.0.0" } }, "eslint-scope": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "eslint-visitor-keys": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "espree": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" } }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" } }, "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", "serve-static": "1.15.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "dependencies": { "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } } } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "favico.js": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/favico.js/-/favico.js-0.3.10.tgz", "integrity": "sha512-S5KvqAOczRjlyjQPPZPSlUEybBkfBgKosY/pzTIxkvKgigB+DkITvIEI70dxQarbv4PZ+UD77QzquCAcU/6LHQ==" }, "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { "websocket-driver": ">=0.5.1" } }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, "fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { "is-glob": "^4.0.3" } }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "globby": { "version": "13.1.4", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "requires": { "dir-glob": "^3.0.1", "fast-glob": "^3.2.11", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^4.0.0" } }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hotkeys-js": { "version": "3.10.2", "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.10.2.tgz", "integrity": "sha512-Z6vLmJTYzkbZZXlBkhrYB962Q/rZGc/WHQiyEGu9ZZVF7bAeFDjjDa31grWREuw9Ygb4zmlov2bTkPYqj0aFnQ==" }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" }, "dependencies": { "readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "html-entities": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, "requires": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", "commander": "^8.3.0", "he": "^1.2.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.10.0" } }, "html-webpack-plugin": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", "dev": true, "requires": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" } }, "htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "requires": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "http-proxy-middleware": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "requires": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" } }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "requires": {} }, "ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true }, "immutable": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", "dev": true }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "interpret": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-core-module": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-path-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true }, "is-path-inside": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true }, "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { "is-docker": "^2.0.0" } }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "dependencies": { "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "js-sdsl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { "argparse": "^2.0.1" } }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, "launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", "dev": true, "requires": { "picocolors": "^1.0.0", "shell-quote": "^1.7.3" } }, "less": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dev": true, "requires": { "copy-anything": "^2.0.1", "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "needle": "^3.1.0", "parse-node-version": "^1.0.1", "source-map": "~0.6.0", "tslib": "^2.3.0" } }, "less-loader": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", "dev": true, "requires": { "klona": "^2.0.4" } }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { "p-locate": "^5.0.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, "requires": { "tslib": "^2.0.3" } }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "magic-string": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "requires": { "@jridgewell/sourcemap-codec": "^1.4.13" } }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "optional": true } } }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "memfs": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", "dev": true, "requires": { "fs-monkey": "^1.0.3" } }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" } }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { "mime-db": "1.52.0" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "requires": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" } }, "nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "dev": true, "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, "dependencies": { "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, "requires": { "ms": "^2.1.1" } } } }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true }, "node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, "nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { "boolbase": "^1.0.0" } }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "requires": { "ee-first": "1.1.1" } }, "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" } }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" } }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { "p-limit": "^3.0.2" } }, "p-map": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, "requires": { "aggregate-error": "^4.0.0" } }, "p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, "requires": { "@types/retry": "0.12.0", "retry": "^0.13.1" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" } }, "parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true }, "parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" }, "dependencies": { "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } } } }, "postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "requires": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, "requires": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.4" } }, "postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "requires": { "icss-utils": "^5.0.0" } }, "postcss-selector-parser": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, "requires": { "lodash": "^4.17.20", "renderkid": "^3.0.0" } }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "dependencies": { "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true } } }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, "optional": true }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "requires": { "side-channel": "^1.0.4" } }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "dependencies": { "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } } } }, "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "requires": { "resolve": "^1.20.0" } }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true }, "renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "requires": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" } }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "requires": { "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" }, "dependencies": { "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "sanitize-html": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.10.0.tgz", "integrity": "sha512-JqdovUd81dG4k87vZt6uA6YhDfWkUGruUu/aPmXLxXi45gZExnt9Bnw/qeQU8oGf82vPyaE0vO4aH0PbobB9JQ==", "requires": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", "htmlparser2": "^8.0.0", "is-plain-object": "^5.0.0", "parse-srcset": "^1.0.2", "postcss": "^8.3.11" }, "dependencies": { "dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "requires": { "domelementtype": "^2.3.0" } }, "domutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "requires": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } } } }, "sass": { "version": "1.62.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" } }, "sass-loader": { "version": "13.2.2", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", "dev": true, "requires": { "klona": "^2.0.6", "neo-async": "^2.6.2" } }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "schema-utils": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "dependencies": { "ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "selfsigned": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" } }, "semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "requires": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "serialize-javascript": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "requires": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true } } }, "serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.18.0" } }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { "kind-of": "^6.0.2" } }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" } }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" } }, "spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" } }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" } }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { "ansi-regex": "^5.0.1" } }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "style-loader": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.2.tgz", "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", "dev": true, "requires": {} }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "terser": { "version": "5.17.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz", "integrity": "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "dependencies": { "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } } }, "terser-webpack-plugin": { "version": "5.3.8", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz", "integrity": "sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", "terser": "^5.16.8" }, "dependencies": { "schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } } } }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, "update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" } }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, "requires": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", "schema-utils": "^3.0.0" }, "dependencies": { "schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } } } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, "vue": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.2.tgz", "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", "requires": { "@vue/compiler-dom": "3.3.2", "@vue/compiler-sfc": "3.3.2", "@vue/runtime-dom": "3.3.2", "@vue/server-renderer": "3.3.2", "@vue/shared": "3.3.2" } }, "vue-eslint-parser": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz", "integrity": "sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==", "dev": true, "requires": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", "eslint-visitor-keys": "^3.3.0", "espree": "^9.3.1", "esquery": "^1.4.0", "lodash": "^4.17.21", "semver": "^7.3.6" } }, "vue-loader": { "version": "17.1.1", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.1.1.tgz", "integrity": "sha512-qpqEVkKdrAsgyIBMHaiXurDeCuBWqRyKqg2GI4aG3NbggEls+BLqTZdqahbJJh7fm83sz+iz3gg6eDWdbNlG7Q==", "dev": true, "requires": { "chalk": "^4.1.0", "hash-sum": "^2.0.0", "watchpack": "^2.4.0" } }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { "minimalistic-assert": "^1.0.0" } }, "webpack": { "version": "5.82.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.14.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } } } }, "webpack-cli": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.1.tgz", "integrity": "sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.0", "@webpack-cli/info": "^2.0.1", "@webpack-cli/serve": "^2.0.4", "colorette": "^2.0.14", "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "dependencies": { "commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true } } }, "webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "requires": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" } }, "webpack-dev-server": { "version": "4.15.0", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz", "integrity": "sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", "ws": "^8.13.0" } }, "webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" } }, "webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true }, "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "requires": {} }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } } glances-3.4.0.3/glances/outputs/static/templates/0000755000175000017500000000000014432156570021632 5ustar epsilonepsilonglances-3.4.0.3/glances/outputs/static/templates/index.html.tpl0000644000175000017500000000074314432156570024431 0ustar epsilonepsilon Glances
glances-3.4.0.3/glances/outputs/static/.eslintrc.js0000644000175000017500000000036514432156570022077 0ustar epsilonepsilon/* eslint-disable */ module.exports = { env: { browser: true, es2021: true }, extends: ['eslint:recommended', 'plugin:vue/vue3-essential'], parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, rules: {} }; glances-3.4.0.3/glances/outputs/glances_unicode.py0000644000175000017500000000143714432156570022046 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage unicode message for Glances output.""" _unicode_message = { 'ARROW_LEFT': [u'\u2190', u'<'], 'ARROW_RIGHT': [u'\u2192', u'>'], 'ARROW_UP': [u'\u2191', u'^'], 'ARROW_DOWN': [u'\u2193', u'v'], 'CHECK': [u'\u2713', u''], 'PROCESS_SELECTOR': [u'>', u'>'], 'MEDIUM_LINE': [u'\u23AF', u'-'], 'LOW_LINE': [u'\u2581', u'_'], } def unicode_message(key, args=None): """Return the unicode message for the given key.""" if args and hasattr(args, 'disable_unicode') and args.disable_unicode: return _unicode_message[key][1] else: return _unicode_message[key][0] glances-3.4.0.3/glances/outputs/glances_stdout_json.py0000644000175000017500000000263314432156570022772 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Stdout interface class.""" import time from glances.compat import printandflush class GlancesStdoutJson(object): """This class manages the Stdout JSON display.""" def __init__(self, config=None, args=None): # Init self.config = config self.args = args # Build the list of plugin to display self.plugins_list = self.build_list() def build_list(self): """Return a list of tuples taken from self.args.stdout_json :return: A list of tuples. Example -[(plugin, attribute), ... ] """ return self.args.stdout_json.split(',') def end(self): pass def update(self, stats, duration=3): """Display stats in JSON format to stdout. Refresh every duration second. """ for plugin in self.plugins_list: # Check if the plugin exist and is enable if plugin in stats.getPluginsList() and stats.get_plugin(plugin).is_enabled(): stat = stats.get_plugin(plugin).get_json() else: continue # Display stats printandflush('{}: {}'.format(plugin, stat)) # Wait until next refresh if duration > 0: time.sleep(duration) glances-3.4.0.3/glances/outputs/glances_stdout.py0000644000175000017500000000375114432156570021743 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Stdout interface class.""" import time from glances.logger import logger from glances.compat import printandflush class GlancesStdout(object): """This class manages the Stdout display.""" def __init__(self, config=None, args=None): # Init self.config = config self.args = args # Build the list of plugin and/or plugin.attribute to display self.plugins_list = self.build_list() def build_list(self): """Return a list of tuples taken from self.args.stdout :return: A list of tuples. Example -[(plugin, attribute), ... ] """ ret = [] for p in self.args.stdout.split(','): if '.' in p: p, a = p.split('.') else: a = None ret.append((p, a)) return ret def end(self): pass def update(self, stats, duration=3): """Display stats to stdout. Refresh every duration second. """ for plugin, attribute in self.plugins_list: # Check if the plugin exist and is enable if plugin in stats.getPluginsList() and stats.get_plugin(plugin).is_enabled(): stat = stats.get_plugin(plugin).get_export() else: continue # Display stats if attribute is not None: # With attribute try: printandflush("{}.{}: {}".format(plugin, attribute, stat[attribute])) except KeyError as err: logger.error("Can not display stat {}.{} ({})".format(plugin, attribute, err)) else: # Without attribute printandflush("{}: {}".format(plugin, stat)) # Wait until next refresh if duration > 0: time.sleep(duration) glances-3.4.0.3/glances/outputs/glances_stdout_apidoc.py0000644000175000017500000001566114432156570023265 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Fields description interface class.""" from pprint import pformat import json import time from glances.logger import logger from glances.compat import iteritems API_URL = "http://localhost:61208/api/3" APIDOC_HEADER = """\ .. _api: API (Restfull/JSON) documentation ================================= The Glances Restfull/API server could be ran using the following command line: .. code-block:: bash # glances -w --disable-webui Note: Change request URL api/3 by api/2 if you use Glances 2.x. """ def indent_stat(stat, indent=' '): # Indent stats to pretty print it if isinstance(stat, list) and len(stat) > 1 and isinstance(stat[0], dict): # Only display two first items return indent + pformat(stat[0:2]).replace('\n', '\n' + indent).replace("'", '"') else: return indent + pformat(stat).replace('\n', '\n' + indent).replace("'", '"') def print_api_status(): sub_title = 'GET API status' print(sub_title) print('-' * len(sub_title)) print('') print('This entry point should be used to check the API status.') print('It will return nothing but a 200 return code if everythin is OK.') print('') print('Get the Rest API status::') print('') print(' # curl -I {}/status'.format(API_URL)) print(indent_stat('HTTP/1.0 200 OK')) print('') def print_plugins_list(stat): sub_title = 'GET plugins list' print(sub_title) print('-' * len(sub_title)) print('') print('Get the plugins list::') print('') print(' # curl {}/pluginslist'.format(API_URL)) print(indent_stat(stat)) print('') def print_plugin_stats(plugin, stat): sub_title = 'GET {}'.format(plugin) print(sub_title) print('-' * len(sub_title)) print('') print('Get plugin stats::') print('') print(' # curl {}/{}'.format(API_URL, plugin)) print(indent_stat(json.loads(stat.get_stats()))) print('') def print_plugin_description(plugin, stat): if stat.fields_description: # For each plugins with a description print('Fields descriptions:') print('') for field, description in iteritems(stat.fields_description): print( '* **{}**: {} (unit is *{}*)'.format( field, description['description'][:-1] if description['description'].endswith('.') else description['description'], description['unit'], ) ) print('') else: logger.error('No fields_description variable defined for plugin {}'.format(plugin)) def print_plugin_item_value(plugin, stat, stat_export): item = None value = None if isinstance(stat_export, dict): item = list(stat_export.keys())[0] value = None elif isinstance(stat_export, list) and len(stat_export) > 0 and isinstance(stat_export[0], dict): if 'key' in stat_export[0]: item = stat_export[0]['key'] else: item = list(stat_export[0].keys())[0] if item and stat.get_stats_item(item): stat_item = json.loads(stat.get_stats_item(item)) if isinstance(stat_item[item], list): value = stat_item[item][0] else: value = stat_item[item] print('Get a specific field::') print('') print(' # curl {}/{}/{}'.format(API_URL, plugin, item)) print(indent_stat(stat_item)) print('') if item and value and stat.get_stats_value(item, value): print('Get a specific item when field matchs the given value::') print('') print(' # curl {}/{}/{}/{}'.format(API_URL, plugin, item, value)) print(indent_stat(json.loads(stat.get_stats_value(item, value)))) print('') def print_all(): sub_title = 'GET all stats' print(sub_title) print('-' * len(sub_title)) print('') print('Get all Glances stats::') print('') print(' # curl {}/all'.format(API_URL)) print(' Return a very big dictionnary (avoid using this request, performances will be poor)...') print('') def print_history(stats): time.sleep(1) stats.update() time.sleep(1) stats.update() sub_title = 'GET stats history' print(sub_title) print('-' * len(sub_title)) print('') print('History of a plugin::') print('') print(' # curl {}/cpu/history'.format(API_URL)) print(indent_stat(json.loads(stats.get_plugin('cpu').get_stats_history(nb=3)))) print('') print('Limit history to last 2 values::') print('') print(' # curl {}/cpu/history/2'.format(API_URL)) print(indent_stat(json.loads(stats.get_plugin('cpu').get_stats_history(nb=2)))) print('') print('History for a specific field::') print('') print(' # curl {}/cpu/system/history'.format(API_URL)) print(indent_stat(json.loads(stats.get_plugin('cpu').get_stats_history('system')))) print('') print('Limit history for a specific field to last 2 values::') print('') print(' # curl {}/cpu/system/history'.format(API_URL)) print(indent_stat(json.loads(stats.get_plugin('cpu').get_stats_history('system', nb=2)))) print('') def print_limits(stats): sub_title = 'GET limits (used for thresholds)' print(sub_title) print('-' * len(sub_title)) print('') print('All limits/thresholds::') print('') print(' # curl {}/all/limits'.format(API_URL)) print(indent_stat(stats.getAllLimitsAsDict())) print('') print('Limits/thresholds for the cpu plugin::') print('') print(' # curl {}/cpu/limits'.format(API_URL)) print(indent_stat(stats.get_plugin('cpu').limits)) print('') class GlancesStdoutApiDoc(object): """This class manages the fields description display.""" def __init__(self, config=None, args=None): # Init self.config = config self.args = args def end(self): pass def update(self, stats, duration=1): """Display issue""" # Display header print(APIDOC_HEADER) # Display API status print_api_status() # Display plugins list print_plugins_list(sorted(stats._plugins)) # Loop over plugins for plugin in sorted(stats._plugins): stat = stats.get_plugin(plugin) stat_export = stat.get_export() if stat_export is None or stat_export == [] or stat_export == {}: continue print_plugin_stats(plugin, stat) print_plugin_description(plugin, stat) print_plugin_item_value(plugin, stat, stat_export) # Get all stats print_all() # History print_history(stats) # Limits print_limits(stats) # Return True to exit directly (no refresh) return True glances-3.4.0.3/glances/outputs/glances_stdout_csv.py0000644000175000017500000000704314432156570022614 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """StdoutCsv interface class.""" import time from glances.compat import printandflush class GlancesStdoutCsv(object): """This class manages the StdoutCsv display.""" separator = ',' na = 'N/A' def __init__(self, config=None, args=None): # Init self.config = config self.args = args # Display the header only on the first line self.header = True # Build the list of plugin and/or plugin.attribute to display self.plugins_list = self.build_list() def build_list(self): """Return a list of tuples taken from self.args.stdout :return: A list of tuples. Example -[(plugin, attribute), ... ] """ ret = [] for p in self.args.stdout_csv.split(','): if '.' in p: p, a = p.split('.') else: a = None ret.append((p, a)) return ret def end(self): pass def build_header(self, plugin, attribute, stat): """Build and return the header line""" line = '' if attribute is not None: line += '{}.{}{}'.format(plugin, attribute, self.separator) else: if isinstance(stat, dict): for k in stat.keys(): line += '{}.{}{}'.format(plugin, str(k), self.separator) elif isinstance(stat, list): for i in stat: if isinstance(i, dict) and 'key' in i: for k in i.keys(): line += '{}.{}.{}{}'.format(plugin, str(i[i['key']]), str(k), self.separator) else: line += '{}{}'.format(plugin, self.separator) return line def build_data(self, plugin, attribute, stat): """Build and return the data line""" line = '' if attribute is not None: line += '{}{}'.format(str(stat.get(attribute, self.na)), self.separator) else: if isinstance(stat, dict): for v in stat.values(): line += '{}{}'.format(str(v), self.separator) elif isinstance(stat, list): for i in stat: if isinstance(i, dict) and 'key' in i: for v in i.values(): line += '{}{}'.format(str(v), self.separator) else: line += '{}{}'.format(str(stat), self.separator) return line def update(self, stats, duration=3): """Display stats to stdout. Refresh every duration second. """ # Build the stats list line = '' for plugin, attribute in self.plugins_list: # Check if the plugin exist and is enable if plugin in stats.getPluginsList() and stats.get_plugin(plugin).is_enabled(): stat = stats.get_plugin(plugin).get_export() else: continue # Build the line to display (header or data) if self.header: line += self.build_header(plugin, attribute, stat) else: line += self.build_data(plugin, attribute, stat) # Display the line (without the last 'separator') printandflush(line[:-1]) # Display header one time self.header = False # Wait until next refresh if duration > 0: time.sleep(duration) glances-3.4.0.3/glances/logger.py0000644000175000017500000000630614432156570016460 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Custom logger class.""" import os import json import getpass import tempfile import logging import logging.config from glances.globals import safe_makedirs # Choose the good place for the log file (see issue #1575) # Default root path if 'HOME' in os.environ: _XDG_CACHE_HOME = os.path.join(os.environ['HOME'], '.local', 'share') else: _XDG_CACHE_HOME = '' # Define the glances log file if ( 'XDG_CACHE_HOME' in os.environ and os.path.isdir(os.environ['XDG_CACHE_HOME']) and os.access(os.environ['XDG_CACHE_HOME'], os.W_OK) ): safe_makedirs(os.path.join(os.environ['XDG_CACHE_HOME'], 'glances')) LOG_FILENAME = os.path.join(os.environ['XDG_CACHE_HOME'], 'glances', 'glances.log') elif os.path.isdir(_XDG_CACHE_HOME) and os.access(_XDG_CACHE_HOME, os.W_OK): safe_makedirs(os.path.join(_XDG_CACHE_HOME, 'glances')) LOG_FILENAME = os.path.join(_XDG_CACHE_HOME, 'glances', 'glances.log') else: LOG_FILENAME = os.path.join(tempfile.gettempdir(), 'glances-{}.log'.format(getpass.getuser())) # Define the logging configuration LOGGING_CFG = { "version": 1, "disable_existing_loggers": "False", "root": {"level": "INFO", "handlers": ["file", "console"]}, "formatters": { "standard": {"format": "%(asctime)s -- %(levelname)s -- %(message)s"}, "short": {"format": "%(levelname)s -- %(message)s"}, "long": {"format": "%(asctime)s -- %(levelname)s -- %(message)s (%(funcName)s in %(filename)s)"}, "free": {"format": "%(message)s"}, }, "handlers": { "file": { "level": "DEBUG", "class": "logging.handlers.RotatingFileHandler", "maxBytes": 1000000, "backupCount": 3, "formatter": "standard", "filename": LOG_FILENAME, }, "console": {"level": "CRITICAL", "class": "logging.StreamHandler", "formatter": "free"}, }, "loggers": { "debug": {"handlers": ["file", "console"], "level": "DEBUG"}, "verbose": {"handlers": ["file", "console"], "level": "INFO"}, "standard": {"handlers": ["file"], "level": "INFO"}, "requests": {"handlers": ["file", "console"], "level": "ERROR"}, "elasticsearch": {"handlers": ["file", "console"], "level": "ERROR"}, "elasticsearch.trace": {"handlers": ["file", "console"], "level": "ERROR"}, }, } def glances_logger(env_key='LOG_CFG'): """Build and return the logger. env_key define the env var where a path to a specific JSON logger could be defined :return: logger -- Logger instance """ _logger = logging.getLogger() # By default, use the LOGGING_CFG logger configuration config = LOGGING_CFG # Check if a specific configuration is available user_file = os.getenv(env_key, None) if user_file and os.path.exists(user_file): # A user file as been defined. Use it... with open(user_file, 'rt') as f: config = json.load(f) # Load the configuration logging.config.dictConfig(config) return _logger logger = glances_logger() glances-3.4.0.3/glances/stats_client_snmp.py0000644000175000017500000000701014432156570020723 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """The stats manager.""" import re from glances.stats import GlancesStats from glances.compat import iteritems from glances.logger import logger # SNMP OID regexp pattern to short system name dict oid_to_short_system_name = { '.*Linux.*': 'linux', '.*Darwin.*': 'mac', '.*BSD.*': 'bsd', '.*Windows.*': 'windows', '.*Cisco.*': 'cisco', '.*VMware ESXi.*': 'esxi', '.*NetApp.*': 'netapp', } class GlancesStatsClientSNMP(GlancesStats): """This class stores, updates and gives stats for the SNMP client.""" def __init__(self, config=None, args=None): super(GlancesStatsClientSNMP, self).__init__() # Init the configuration self.config = config # Init the arguments self.args = args # OS name is used because OID is different between system self.os_name = None # Load AMPs, plugins and exports modules self.load_modules(self.args) def check_snmp(self): """Check if SNMP is available on the server.""" # Import the SNMP client class from glances.snmp import GlancesSNMPClient # Create an instance of the SNMP client snmp_client = GlancesSNMPClient( host=self.args.client, port=self.args.snmp_port, version=self.args.snmp_version, community=self.args.snmp_community, user=self.args.snmp_user, auth=self.args.snmp_auth, ) # If we cannot grab the hostname, then exit... ret = snmp_client.get_by_oid("1.3.6.1.2.1.1.5.0") != {} if ret: # Get the OS name (need to grab the good OID...) oid_os_name = snmp_client.get_by_oid("1.3.6.1.2.1.1.1.0") try: self.system_name = self.get_system_name(oid_os_name['1.3.6.1.2.1.1.1.0']) logger.info("SNMP system name detected: {}".format(self.system_name)) except KeyError: self.system_name = None logger.warning("Cannot detect SNMP system name") return ret def get_system_name(self, oid_system_name): """Get the short os name from the OS name OID string.""" short_system_name = None if oid_system_name == '': return short_system_name # Find the short name in the oid_to_short_os_name dict for r, v in iteritems(oid_to_short_system_name): if re.search(r, oid_system_name): short_system_name = v break return short_system_name def update(self): """Update the stats using SNMP.""" # For each plugins, call the update method for p in self._plugins: if self._plugins[p].is_disabled(): # If current plugin is disable # then continue to next plugin continue # Set the input method to SNMP self._plugins[p].input_method = 'snmp' self._plugins[p].short_system_name = self.system_name # Update the stats... try: self._plugins[p].update() except Exception as e: logger.error("Update {} failed: {}".format(p, e)) else: # ... the history self._plugins[p].update_stats_history() # ... and the views self._plugins[p].update_views() glances-3.4.0.3/glances/globals.py0000644000175000017500000000434614432156570016626 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Common objects shared by all Glances modules.""" import errno import os import sys import platform import ujson from operator import itemgetter # OS constants (some libraries/features are OS-dependent) BSD = sys.platform.find('bsd') != -1 LINUX = sys.platform.startswith('linux') MACOS = sys.platform.startswith('darwin') SUNOS = sys.platform.startswith('sunos') WINDOWS = sys.platform.startswith('win') WSL = "linux" in platform.system().lower() and "microsoft" in platform.uname()[3].lower() # Set the AMPs, plugins and export modules path work_path = os.path.realpath(os.path.dirname(__file__)) amps_path = os.path.realpath(os.path.join(work_path, 'amps')) plugins_path = os.path.realpath(os.path.join(work_path, 'plugins')) exports_path = os.path.realpath(os.path.join(work_path, 'exports')) sys_path = sys.path[:] sys.path.insert(1, exports_path) sys.path.insert(1, plugins_path) sys.path.insert(1, amps_path) def safe_makedirs(path): """A safe function for creating a directory tree.""" try: os.makedirs(path) except OSError as err: if err.errno == errno.EEXIST: if not os.path.isdir(path): raise else: raise def json_dumps(data): """Return the object data in a JSON format. Manage the issue #815 for Windows OS with UnicodeDecodeError catching. """ try: return ujson.dumps(data) except UnicodeDecodeError: return ujson.dumps(data, ensure_ascii=False) def json_dumps_dictlist(data, item): if isinstance(data, dict): try: return json_dumps({item: data[item]}) except (TypeError, IndexError, KeyError): return None elif isinstance(data, list): try: # Source: # http://stackoverflow.com/questions/4573875/python-get-index-of-dictionary-item-in-list # But https://github.com/nicolargo/glances/issues/1401 return json_dumps({item: list(map(itemgetter(item), data))}) except (TypeError, IndexError, KeyError): return None else: return None glances-3.4.0.3/glances/compat.py0000644000175000017500000002604714432156570016470 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # # flake8: noqa # pylint: skip-file """Python 2/3 compatibility shims.""" from __future__ import print_function, unicode_literals import operator import sys import unicodedata import types import subprocess import os from datetime import datetime import re from glances.logger import logger PY3 = sys.version_info[0] == 3 if PY3: import queue from configparser import ConfigParser, NoOptionError, NoSectionError from statistics import mean from xmlrpc.client import Fault, ProtocolError, ServerProxy, Transport, Server from xmlrpc.server import SimpleXMLRPCRequestHandler, SimpleXMLRPCServer from urllib.request import Request, urlopen, base64 from urllib.error import HTTPError, URLError from urllib.parse import urlparse # Correct issue #1025 by monkey path the xmlrpc lib from defusedxml.xmlrpc import monkey_patch monkey_patch() input = input range = range map = map text_type = str binary_type = bytes bool_type = bool long = int PermissionError = OSError FileNotFoundError = FileNotFoundError viewkeys = operator.methodcaller('keys') viewvalues = operator.methodcaller('values') viewitems = operator.methodcaller('items') def printandflush(string): """Print and flush (used by stdout* outputs modules)""" print(string, flush=True) def to_ascii(s): """Convert the bytes string to a ASCII string Useful to remove accent (diacritics) """ if isinstance(s, binary_type): return s.decode() return s.encode('ascii', 'ignore').decode() def to_hex(s): """Convert the bytes string to a hex string""" return s.hex() def listitems(d): return list(d.items()) def listkeys(d): return list(d.keys()) def listvalues(d): return list(d.values()) def iteritems(d): return iter(d.items()) def iterkeys(d): return iter(d.keys()) def itervalues(d): return iter(d.values()) def u(s, errors='replace'): if isinstance(s, text_type): return s return s.decode('utf-8', errors=errors) def b(s, errors='replace'): if isinstance(s, binary_type): return s return s.encode('utf-8', errors=errors) def n(s): '''Only in Python 2... from future.utils import bytes_to_native_str as n ''' return s def nativestr(s, errors='replace'): if isinstance(s, text_type): return s elif isinstance(s, (int, float)): return s.__str__() else: return s.decode('utf-8', errors=errors) def system_exec(command): """Execute a system command and return the result as a str""" try: res = subprocess.run(command.split(' '), stdout=subprocess.PIPE).stdout.decode('utf-8') except Exception as e: logger.debug('Can not evaluate command {} ({})'.format(command, e)) res = '' return res.rstrip() else: from future.utils import bytes_to_native_str as n import Queue as queue from itertools import imap as map from ConfigParser import SafeConfigParser as ConfigParser, NoOptionError, NoSectionError from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler, SimpleXMLRPCServer from xmlrpclib import Fault, ProtocolError, ServerProxy, Transport, Server from urllib2 import Request, urlopen, HTTPError, URLError, base64 from urlparse import urlparse # Correct issue #1025 by monkey path the xmlrpc lib from defusedxml.xmlrpc import monkey_patch monkey_patch() input = raw_input range = xrange ConfigParser.read_file = ConfigParser.readfp text_type = unicode binary_type = str bool_type = types.BooleanType long = long PermissionError = OSError FileNotFoundError = IOError viewkeys = operator.methodcaller('viewkeys') viewvalues = operator.methodcaller('viewvalues') viewitems = operator.methodcaller('viewitems') def printandflush(string): """Print and flush (used by stdout* outputs modules)""" print(string) sys.stdout.flush() def mean(numbers): return float(sum(numbers)) / max(len(numbers), 1) def to_ascii(s): """Convert the unicode 's' to a ASCII string Useful to remove accent (diacritics) """ if isinstance(s, binary_type): return s return unicodedata.normalize('NFKD', s).encode('ascii', 'ignore') def to_hex(s): """Convert the string to a hex string in Python 2""" return s.encode('hex') def listitems(d): return d.items() def listkeys(d): return d.keys() def listvalues(d): return d.values() def iteritems(d): return d.iteritems() def iterkeys(d): return d.iterkeys() def itervalues(d): return d.itervalues() def u(s, errors='replace'): if isinstance(s, text_type): return s.encode('utf-8', errors=errors) return s.decode('utf-8', errors=errors) def b(s, errors='replace'): if isinstance(s, binary_type): return s return s.encode('utf-8', errors=errors) def nativestr(s, errors='replace'): if isinstance(s, binary_type): return s elif isinstance(s, (int, float)): return s.__str__() else: return s.encode('utf-8', errors=errors) def system_exec(command): """Execute a system command and return the result as a str""" try: res = subprocess.check_output(command.split(' ')) except Exception as e: logger.debug('Can not execute command {} ({})'.format(command, e)) res = '' return res.rstrip() # Globals functions for both Python 2 and 3 def subsample(data, sampling): """Compute a simple mean subsampling. Data should be a list of numerical itervalues :return: a sub-sampled list of sampling length """ if len(data) <= sampling: return data sampling_length = int(round(len(data) / float(sampling))) return [mean(data[s * sampling_length : (s + 1) * sampling_length]) for s in range(0, sampling)] def time_serie_subsample(data, sampling): """Compute a simple mean subsampling. Data should be a list of set (time, value) :return: a sub-sampled list of sampling length """ if len(data) <= sampling: return data t = [t[0] for t in data] v = [t[1] for t in data] sampling_length = int(round(len(data) / float(sampling))) t_sub_sampled = [t[s * sampling_length : (s + 1) * sampling_length][0] for s in range(0, sampling)] v_sub_sampled = [mean(v[s * sampling_length : (s + 1) * sampling_length]) for s in range(0, sampling)] return list(zip(t_sub_sampled, v_sub_sampled)) def to_fahrenheit(celsius): """Convert Celsius to Fahrenheit.""" return celsius * 1.8 + 32 def is_admin(): """Return if current user is an admin or not The inner function fails unless you have Windows XP SP2 or higher. The failure causes a traceback to be printed and this function to return False. https://stackoverflow.com/a/19719292 :return: True if the current user is an 'Admin' whatever that means (root on Unix), otherwise False. """ if os.name == 'nt': import ctypes import traceback # WARNING: requires Windows XP SP2 or higher! try: return ctypes.windll.shell32.IsUserAnAdmin() except Exception as e: traceback.print_exc() return False else: # Check for root on Posix return os.getuid() == 0 def key_exist_value_not_none(k, d): # Return True if: # - key k exists # - d[k] is not None return k in d and d[k] is not None def key_exist_value_not_none_not_v(k, d, value='', lengh=None): # Return True if: # - key k exists # - d[k] is not None # - d[k] != value # - if lengh is not None and len(d[k]) >= lengh return k in d and d[k] is not None and d[k] != value and (lengh is None or len(d[k]) >= lengh) def disable(class_name, var): """Set disable_ to True in the class class_name.""" setattr(class_name, 'enable_' + var, False) setattr(class_name, 'disable_' + var, True) def enable(class_name, var): """Set disable_ to False in the class class_name.""" setattr(class_name, 'enable_' + var, True) setattr(class_name, 'disable_' + var, False) def pretty_date(time=False): """ Get a datetime object or a int() Epoch timestamp and return a pretty string like 'an hour ago', 'Yesterday', '3 months ago', 'just now', etc Source: https://stackoverflow.com/questions/1551382/user-friendly-time-format-in-python """ now = datetime.now() if type(time) is int: diff = now - datetime.fromtimestamp(time) elif isinstance(time, datetime): diff = now - time elif not time: diff = 0 second_diff = diff.seconds day_diff = diff.days if day_diff < 0: return '' if day_diff == 0: if second_diff < 10: return "just now" if second_diff < 60: return str(second_diff) + " secs" if second_diff < 120: return "a min" if second_diff < 3600: return str(second_diff // 60) + " mins" if second_diff < 7200: return "an hour" if second_diff < 86400: return str(second_diff // 3600) + " hours" if day_diff == 1: return "yesterday" if day_diff < 7: return str(day_diff) + " days" if day_diff < 31: return str(day_diff // 7) + " weeks" if day_diff < 365: return str(day_diff // 30) + " months" return str(day_diff // 365) + " years" def urlopen_auth(url, username, password): """Open a url with basic auth""" return urlopen( Request( url, headers={'Authorization': 'Basic ' + base64.b64encode(('%s:%s' % (username, password)).encode()).decode()}, ) ) def string_value_to_float(s): """Convert a string with a value and an unit to a float. Example: '12.5 MB' -> 12500000.0 '32.5 GB' -> 32500000000.0 Args: s (string): Input string with value and unit Output: float: The value in float """ convert_dict = { None: 1, 'B': 1, 'KB': 1000, 'MB': 1000000, 'GB': 1000000000, 'TB': 1000000000000, 'PB': 1000000000000000, } unpack_string = [ i[0] if i[1] == '' else i[1].upper() for i in re.findall(r'([\d.]+)|([^\d.]+)', s.replace(' ', '')) ] if len(unpack_string) == 2: value, unit = unpack_string elif len(unpack_string) == 1: value = unpack_string[0] unit = None else: return None try: value = float(unpack_string[0]) except ValueError: return None return value * convert_dict[unit] glances-3.4.0.3/glances/attribute.py0000644000175000017500000000650714432156570017207 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Attribute class.""" from datetime import datetime class GlancesAttribute(object): def __init__(self, name, description='', history_max_size=None): """Init the attribute :param name: Attribute name (string) :param description: Attribute human reading description (string) :param history_max_size: Maximum size of the history list (default is no limit) History is stored as a list for tuple: [(date, value), ...] """ self._name = name self._description = description self._value = None self._history_max_size = history_max_size self._history = [] def __repr__(self): return self.value def __str__(self): return str(self.value) """ Properties for the attribute name """ @property def name(self): return self._name @name.setter def name(self, new_name): self._name = new_name """ Properties for the attribute description """ @property def description(self): return self._description @description.setter def description(self, new_description): self._description = new_description """ Properties for the attribute value """ @property def value(self): if self.history_len() > 0: return (self._value[1] - self.history_value()[1]) / (self._value[0] - self.history_value()[0]) else: return None @value.setter def value(self, new_value): """Set a value. Value is a tuple: (, ) """ self._value = (datetime.now(), new_value) self.history_add(self._value) """ Properties for the attribute history """ @property def history(self): return self._history @history.setter def history(self, new_history): self._history = new_history @history.deleter def history(self): del self._history def history_reset(self): self._history = [] def history_add(self, value): """Add a value in the history""" if self._history_max_size: if self.history_len() >= self._history_max_size: self._history.pop(0) self._history.append(value) def history_size(self): """Return the history size (maximum number of value in the history)""" return len(self._history) def history_len(self): """Return the current history length""" return len(self._history) def history_value(self, pos=1): """Return the value in position pos in the history. Default is to return the latest value added to the history. """ return self._history[-pos] def history_raw(self, nb=0): """Return the history in ISO JSON format""" return self._history[-nb:] def history_json(self, nb=0): """Return the history in ISO JSON format""" return [(i[0].isoformat(), i[1]) for i in self._history[-nb:]] def history_mean(self, nb=5): """Return the mean on the values in the history.""" _, v = zip(*self._history) return sum(v[-nb:]) / float(v[-1] - v[-nb]) glances-3.4.0.3/glances/password.py0000644000175000017500000001126414432156570017042 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage password.""" import getpass import hashlib import os import sys import uuid from io import open from glances.compat import b, input, to_hex from glances.config import user_config_dir from glances.globals import safe_makedirs from glances.logger import logger class GlancesPassword(object): """This class contains all the methods relating to password.""" def __init__(self, username='glances', config=None): self.username = username self.config = config self.password_dir = self.local_password_path() self.password_filename = self.username + '.pwd' self.password_file = os.path.join(self.password_dir, self.password_filename) def local_password_path(self): """Return the local password path. Related to issue: Password files in same configuration dir in effect #2143 """ if self.config is None: return user_config_dir() else: return self.config.get_value('passwords', 'local_password_path', default=user_config_dir()) def get_hash(self, plain_password, salt=''): """Return the hashed password, salt + pbkdf2_hmac.""" return to_hex(hashlib.pbkdf2_hmac('sha256', plain_password.encode(), salt.encode(), 100000, dklen=128)) def hash_password(self, plain_password): """Hash password with a salt based on UUID (universally unique identifier).""" salt = uuid.uuid4().hex encrypted_password = self.get_hash(plain_password, salt=salt) return salt + '$' + encrypted_password def check_password(self, hashed_password, plain_password): """Encode the plain_password with the salt of the hashed_password. Return the comparison with the encrypted_password. """ salt, encrypted_password = hashed_password.split('$') re_encrypted_password = self.get_hash(plain_password, salt=salt) return encrypted_password == re_encrypted_password def get_password(self, description='', confirm=False, clear=False): """Get the password from a Glances client or server. For Glances server, get the password (confirm=True, clear=False): 1) from the password file (if it exists) 2) from the CLI Optionally: save the password to a file (hashed with salt + SHA-pbkdf2_hmac) For Glances client, get the password (confirm=False, clear=True): 1) from the CLI 2) the password is hashed with SHA-pbkdf2_hmac (only SHA string transit through the network) """ if os.path.exists(self.password_file) and not clear: # If the password file exist then use it logger.info("Read password from file {}".format(self.password_file)) password = self.load_password() else: # password_hash is the plain SHA-pbkdf2_hmac password # password_hashed is the salt + SHA-pbkdf2_hmac password password_hash = self.get_hash(getpass.getpass(description)) password_hashed = self.hash_password(password_hash) if confirm: # password_confirm is the clear password (only used to compare) password_confirm = self.get_hash(getpass.getpass('Password (confirm): ')) if not self.check_password(password_hashed, password_confirm): logger.critical("Sorry, passwords do not match. Exit.") sys.exit(1) # Return the plain SHA-pbkdf2_hmac or the salted password if clear: password = password_hash else: password = password_hashed # Save the hashed password to the password file if not clear: save_input = input('Do you want to save the password? [Yes/No]: ') if len(save_input) > 0 and save_input[0].upper() == 'Y': self.save_password(password_hashed) return password def save_password(self, hashed_password): """Save the hashed password to the Glances folder.""" # Create the glances directory safe_makedirs(self.password_dir) # Create/overwrite the password file with open(self.password_file, 'wb') as file_pwd: file_pwd.write(b(hashed_password)) def load_password(self): """Load the hashed password from the Glances folder.""" # Read the password file, if it exists with open(self.password_file, 'r') as file_pwd: hashed_password = file_pwd.read() return hashed_password glances-3.4.0.3/glances/__main__.py0000644000175000017500000000051514432156570016715 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # Glances - An eye on your system # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Allow user to run Glances as a module.""" # Execute with: # $ python -m glances (2.7+) import glances if __name__ == '__main__': glances.main() glances-3.4.0.3/glances/plugins/0000755000175000017500000000000014432156570016303 5ustar epsilonepsilonglances-3.4.0.3/glances/plugins/glances_amps.py0000644000175000017500000001012414432156570021307 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Monitor plugin.""" from glances.compat import iteritems from glances.amps_list import AmpsList as glancesAmpsList from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Glances AMPs plugin.""" def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) self.args = args self.config = config # We want to display the stat in the curse interface self.display_curse = True # Init the list of AMP (classes define in the glances/amps_list.py script) self.glances_amps = glancesAmpsList(self.args, self.config) def get_key(self): """Return the key of the list.""" return 'name' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the AMP list.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': for k, v in iteritems(self.glances_amps.update()): stats.append( { 'key': self.get_key(), 'name': v.NAME, 'result': v.result(), 'refresh': v.refresh(), 'timer': v.time_until_refresh(), 'count': v.count(), 'countmin': v.count_min(), 'countmax': v.count_max(), 'regex': v.regex() is not None, }, ) else: # Not available in SNMP mode pass # Update the stats self.stats = stats return self.stats def get_alert(self, nbprocess=0, countmin=None, countmax=None, header="", log=False): """Return the alert status relative to the process number.""" if nbprocess is None: return 'OK' if countmin is None: countmin = nbprocess if countmax is None: countmax = nbprocess if nbprocess > 0: if int(countmin) <= int(nbprocess) <= int(countmax): return 'OK' else: return 'WARNING' else: if int(countmin) == 0: return 'OK' else: return 'CRITICAL' def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message # Only process if stats exist and display plugin enable... ret = [] if not self.stats or args.disable_process or self.is_disabled(): return ret # Build the string message for m in self.stats: # Only display AMP if a result exist if m['result'] is None: continue # Display AMP first_column = '{}'.format(m['name']) first_column_style = self.get_alert(m['count'], m['countmin'], m['countmax']) second_column = '{}'.format(m['count'] if m['regex'] else '') for line in m['result'].split('\n'): # Display first column with the process name... msg = '{:<16} '.format(first_column) ret.append(self.curse_add_line(msg, first_column_style)) # ... and second column with the number of matching processes... msg = '{:<4} '.format(second_column) ret.append(self.curse_add_line(msg)) # ... only on the first line first_column = second_column = '' # Display AMP result in the third column ret.append(self.curse_add_line(line, splittable=True)) ret.append(self.curse_new_line()) # Delete the last empty line try: ret.pop() except IndexError: pass return ret glances-3.4.0.3/glances/plugins/glances_smart.py0000644000175000017500000001402014432156570021474 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # Copyright (C) 2018 Tim Nibert # # SPDX-License-Identifier: LGPL-3.0-only # """ Hard disk SMART attributes plugin. Depends on pySMART and smartmontools Must execute as root "usermod -a -G disk USERNAME" is not sufficient unfortunately SmartCTL (/usr/sbin/smartctl) must be in system path for python2. Regular PySMART is a python2 library. We are using the pySMART.smartx updated library to support both python 2 and 3. If we only have disk group access (no root): $ smartctl -i /dev/sda smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-30-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org Probable ATA device behind a SAT layer Try an additional '-d ata' or '-d sat' argument. This is not very hopeful: https://medium.com/opsops/why-smartctl-could-not-be-run-without-root-7ea0583b1323 So, here is what we are going to do: Check for admin access. If no admin access, disable SMART plugin. If smartmontools is not installed, we should catch the error upstream in plugin initialization. """ from glances.plugins.glances_plugin import GlancesPlugin from glances.logger import logger from glances.main import disable from glances.compat import is_admin # Import plugin specific dependency try: from pySMART import DeviceList except ImportError as e: import_error_tag = True logger.warning("Missing Python Lib ({}), HDD Smart plugin is disabled".format(e)) else: import_error_tag = False def convert_attribute_to_dict(attr): return { 'name': attr.name, 'num': attr.num, 'flags': attr.flags, 'raw': attr.raw, 'value': attr.value, 'worst': attr.worst, 'threshold': attr.thresh, 'type': attr.type, 'updated': attr.updated, 'when_failed': attr.when_failed, } def get_smart_data(): """ Get SMART attribute data :return: list of multi leveled dictionaries each dict has a key "DeviceName" with the identification of the device in smartctl also has keys of the SMART attribute id, with value of another dict of the attributes [ { "DeviceName": "/dev/sda blahblah", "1": { "flags": "..", "raw": "..", etc, } ... } ] """ stats = [] # get all devices try: devlist = DeviceList() except TypeError as e: # Catch error (see #1806) logger.debug('Smart plugin error - Can not grab device list ({})'.format(e)) global import_error_tag import_error_tag = True return stats for dev in devlist.devices: stats.append( { 'DeviceName': '{} {}'.format(dev.name, dev.model), } ) for attribute in dev.attributes: if attribute is None: pass else: attrib_dict = convert_attribute_to_dict(attribute) # we will use the attribute number as the key num = attrib_dict.pop('num', None) try: assert num is not None except Exception as e: # we should never get here, but if we do, continue to next iteration and skip this attribute logger.debug('Smart plugin error - Skip the attribute {} ({})'.format(attribute, e)) continue stats[-1][num] = attrib_dict return stats class Plugin(GlancesPlugin): """Glances' HDD SMART plugin. stats is a list of dicts """ def __init__(self, args=None, config=None, stats_init_value=[]): """Init the plugin.""" # check if user is admin if not is_admin(): disable(args, "smart") logger.debug("Current user is not admin, HDD SMART plugin disabled.") super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update SMART stats using the input method.""" # Init new stats stats = self.get_init_value() if import_error_tag: return self.stats if self.input_method == 'local': stats = get_smart_data() elif self.input_method == 'snmp': pass # Update the stats self.stats = stats return self.stats def get_key(self): """Return the key of the list.""" return 'DeviceName' def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist... if import_error_tag or not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 6 # Header msg = '{:{width}}'.format('SMART disks', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) # Data for device_stat in self.stats: # New line ret.append(self.curse_new_line()) msg = '{:{width}}'.format(device_stat['DeviceName'][:max_width], width=max_width) ret.append(self.curse_add_line(msg)) for smart_stat in sorted([i for i in device_stat.keys() if i != 'DeviceName'], key=int): ret.append(self.curse_new_line()) msg = ' {:{width}}'.format( device_stat[smart_stat]['name'][: name_max_width - 1].replace('_', ' '), width=name_max_width - 1 ) ret.append(self.curse_add_line(msg)) msg = '{:>8}'.format(device_stat[smart_stat]['raw']) ret.append(self.curse_add_line(msg)) return ret glances-3.4.0.3/glances/plugins/glances_percpu.py0000644000175000017500000000634514432156570021657 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Per-CPU plugin.""" from glances.cpu_percent import cpu_percent from glances.plugins.glances_plugin import GlancesPlugin # Define the history items list items_history_list = [ {'name': 'user', 'description': 'User CPU usage', 'y_unit': '%'}, {'name': 'system', 'description': 'System CPU usage', 'y_unit': '%'}, ] class Plugin(GlancesPlugin): """Glances per-CPU plugin. 'stats' is a list of dictionaries that contain the utilization percentages for each CPU. """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, stats_init_value=[] ) # We want to display the stat in the curse interface self.display_curse = True def get_key(self): """Return the key of the list.""" return 'cpu_number' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update per-CPU stats using the input method.""" # Init new stats stats = self.get_init_value() # Grab per-CPU stats using psutil's cpu_percent(percpu=True) and # cpu_times_percent(percpu=True) methods if self.input_method == 'local': stats = cpu_percent.get(percpu=True) else: # Update stats using SNMP pass # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist... if not self.stats or not self.args.percpu or self.is_disabled(): return ret # Build the string message if self.is_disabled('quicklook'): msg = '{:7}'.format('PER CPU') ret.append(self.curse_add_line(msg, "TITLE")) # Per CPU stats displayed per line for stat in ['user', 'system', 'idle', 'iowait', 'steal']: if stat not in self.stats[0]: continue msg = '{:>7}'.format(stat) ret.append(self.curse_add_line(msg)) # Per CPU stats displayed per column for cpu in self.stats: ret.append(self.curse_new_line()) if self.is_disabled('quicklook'): try: msg = '{:6.1f}%'.format(cpu['total']) except TypeError: # TypeError: string indices must be integers (issue #1027) msg = '{:>6}%'.format('?') ret.append(self.curse_add_line(msg)) for stat in ['user', 'system', 'idle', 'iowait', 'steal']: if stat not in self.stats[0]: continue try: msg = '{:6.1f}%'.format(cpu[stat]) except TypeError: msg = '{:>6}%'.format('?') ret.append(self.curse_add_line(msg, self.get_alert(cpu[stat], header=stat))) return ret glances-3.4.0.3/glances/plugins/containers/0000755000175000017500000000000014432156570020450 5ustar epsilonepsilonglances-3.4.0.3/glances/plugins/containers/glances_docker.py0000644000175000017500000003265714432156570024002 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Docker Extension unit for Glances' Containers plugin.""" import time from glances.compat import iterkeys, itervalues, nativestr, pretty_date from glances.logger import logger from glances.plugins.containers.stats_streamer import StatsStreamer # Docker-py library (optional and Linux-only) # https://github.com/docker/docker-py try: import requests import docker from dateutil import parser, tz except Exception as e: import_docker_error_tag = True # Display debug message if import KeyError logger.warning("Error loading Docker deps Lib. Docker plugin is disabled ({})".format(e)) else: import_docker_error_tag = False class DockerStatsFetcher: MANDATORY_MEMORY_FIELDS = ["usage", 'limit'] def __init__(self, container): self._container = container # Previous computes stats are stored in the self._old_computed_stats variable # We store time data to enable IoR/s & IoW/s calculations to avoid complexity for consumers of the APIs exposed. self._old_computed_stats = {} # Last time when output stats (results) were computed self._last_stats_computed_time = 0 # Threaded Streamer stats_iterable = container.stats(decode=True) self._streamer = StatsStreamer(stats_iterable, initial_stream_value={}) def _log_debug(self, msg, exception=None): logger.debug("containers (Docker) ID: {} - {} ({}) ".format(self._container.id, msg, exception)) logger.debug(self._streamer.stats) def stop(self): self._streamer.stop() @property def activity_stats(self): """Activity Stats Each successive access of activity_stats will cause computation of activity_stats """ computed_activity_stats = self._compute_activity_stats() self._old_computed_stats = computed_activity_stats self._last_stats_computed_time = time.time() return computed_activity_stats def _compute_activity_stats(self): with self._streamer.result_lock: io_stats = self._get_io_stats() cpu_stats = self._get_cpu_stats() memory_stats = self._get_memory_stats() network_stats = self._get_network_stats() computed_stats = { "io": io_stats or {}, "memory": memory_stats or {}, "network": network_stats or {}, "cpu": cpu_stats or {"total": 0.0}, } return computed_stats @property def time_since_update(self): # In case no update, default to 1 return max(1, self._streamer.last_update_time - self._last_stats_computed_time) def _get_cpu_stats(self): """Return the container CPU usage. Output: a dict {'total': 1.49} """ stats = {'total': 0.0} try: cpu_stats = self._streamer.stats['cpu_stats'] precpu_stats = self._streamer.stats['precpu_stats'] cpu = {'system': cpu_stats['system_cpu_usage'], 'total': cpu_stats['cpu_usage']['total_usage']} precpu = {'system': precpu_stats['system_cpu_usage'], 'total': precpu_stats['cpu_usage']['total_usage']} # Issue #1857 # If either precpu_stats.online_cpus or cpu_stats.online_cpus is nil # then for compatibility with older daemons the length of # the corresponding cpu_usage.percpu_usage array should be used. cpu['nb_core'] = cpu_stats.get('online_cpus') or len(cpu_stats['cpu_usage']['percpu_usage'] or []) except KeyError as e: self._log_debug("Can't grab CPU stats", e) return None try: cpu_delta = cpu['total'] - precpu['total'] system_cpu_delta = cpu['system'] - precpu['system'] # CPU usage % = (cpu_delta / system_cpu_delta) * number_cpus * 100.0 stats['total'] = (cpu_delta / system_cpu_delta) * cpu['nb_core'] * 100.0 except TypeError as e: self._log_debug("Can't compute CPU usage", e) return None # Return the stats return stats def _get_memory_stats(self): """Return the container MEMORY. Output: a dict {'rss': 1015808, 'cache': 356352, 'usage': ..., 'max_usage': ...} """ memory_stats = self._streamer.stats.get('memory_stats') # Checks for memory_stats & mandatory fields if not memory_stats or any(field not in memory_stats for field in self.MANDATORY_MEMORY_FIELDS): self._log_debug("Missing MEM usage fields") return None stats = {field: memory_stats[field] for field in self.MANDATORY_MEMORY_FIELDS} try: # Issue #1857 - Some stats are not always available in ['memory_stats']['stats'] detailed_stats = memory_stats['stats'] stats['rss'] = detailed_stats.get('rss') or detailed_stats.get('total_rss') stats['max_usage'] = detailed_stats.get('max_usage') stats['cache'] = detailed_stats.get('cache') except (KeyError, TypeError) as e: self._log_debug("Can't grab MEM usage", e) # stats do not have MEM information return None # Return the stats return stats def _get_network_stats(self): """Return the container network usage using the Docker API (v1.0 or higher). Output: a dict {'time_since_update': 3000, 'rx': 10, 'tx': 65}. with: time_since_update: number of seconds elapsed between the latest grab rx: Number of bytes received tx: Number of bytes transmitted """ eth0_stats = self._streamer.stats.get('networks', {}).get('eth0') # Checks for net_stats & mandatory fields if not eth0_stats or any(field not in eth0_stats for field in ['rx_bytes', 'tx_bytes']): self._log_debug("Missing Network usage fields") return None # Read the rx/tx stats (in bytes) stats = {'cumulative_rx': eth0_stats["rx_bytes"], 'cumulative_tx': eth0_stats["tx_bytes"]} # Using previous stats to calculate rates old_network_stats = self._old_computed_stats.get("network") if old_network_stats: stats['time_since_update'] = round(self.time_since_update) stats['rx'] = stats['cumulative_rx'] - old_network_stats["cumulative_rx"] stats['tx'] = stats['cumulative_tx'] - old_network_stats['cumulative_tx'] # Return the stats return stats def _get_io_stats(self): """Return the container IO usage using the Docker API (v1.0 or higher). Output: a dict {'time_since_update': 3000, 'ior': 10, 'iow': 65}. with: time_since_update: number of seconds elapsed between the latest grab ior: Number of bytes read iow: Number of bytes written """ io_service_bytes_recursive = self._streamer.stats.get('blkio_stats', {}).get('io_service_bytes_recursive') # Checks for net_stats if not io_service_bytes_recursive: self._log_debug("Missing blockIO usage fields") return None # Read the ior/iow stats (in bytes) try: # Read IOR and IOW value in the structure list of dict cumulative_ior = [i for i in io_service_bytes_recursive if i['op'].lower() == 'read'][0]['value'] cumulative_iow = [i for i in io_service_bytes_recursive if i['op'].lower() == 'write'][0]['value'] except (TypeError, IndexError, KeyError, AttributeError) as e: self._log_debug("Can't grab blockIO usage", e) # stats do not have io information return None stats = {'cumulative_ior': cumulative_ior, 'cumulative_iow': cumulative_iow} # Using previous stats to calculate difference old_io_stats = self._old_computed_stats.get("io") if old_io_stats: stats['time_since_update'] = round(self.time_since_update) stats['ior'] = stats['cumulative_ior'] - old_io_stats["cumulative_ior"] stats['iow'] = stats['cumulative_iow'] - old_io_stats["cumulative_iow"] # Return the stats return stats class DockerContainersExtension: """Glances' Containers Plugin's Docker Extension unit""" CONTAINER_ACTIVE_STATUS = ['running', 'paused'] def __init__(self): if import_docker_error_tag: raise Exception("Missing libs required to run Docker Extension (Containers) ") self.client = None self.ext_name = "containers (Docker)" self.stats_fetchers = {} self.connect() def connect(self): """Connect to the Docker server.""" # Init the Docker API Client try: # Do not use the timeout option (see issue #1878) self.client = docker.from_env() except Exception as e: logger.error("{} plugin - Can't connect to Docker ({})".format(self.ext_name, e)) self.client = None def update_version(self): # Long and not useful anymore because the information is no more displayed in UIs # return self.client.version() return {} def stop(self): # Stop all streaming threads for t in itervalues(self.stats_fetchers): t.stop() def update(self, all_tag): """Update Docker stats using the input method.""" if not self.client: return {}, [] version_stats = self.update_version() # Update current containers list try: # Issue #1152: Docker module doesn't export details about stopped containers # The Containers/all key of the configuration file should be set to True containers = self.client.containers.list(all=all_tag) except Exception as e: logger.error("{} plugin - Can't get containers list ({})".format(self.ext_name, e)) return version_stats, [] # Start new thread for new container for container in containers: if container.id not in self.stats_fetchers: # StatsFetcher did not exist in the internal dict # Create it, add it to the internal dict logger.debug("{} plugin - Create thread for container {}".format(self.ext_name, container.id[:12])) self.stats_fetchers[container.id] = DockerStatsFetcher(container) # Stop threads for non-existing containers absent_containers = set(iterkeys(self.stats_fetchers)) - set(c.id for c in containers) for container_id in absent_containers: # Stop the StatsFetcher logger.debug("{} plugin - Stop thread for old container {}".format(self.ext_name, container_id[:12])) self.stats_fetchers[container_id].stop() # Delete the StatsFetcher from the dict del self.stats_fetchers[container_id] # Get stats for all containers container_stats = [self.generate_stats(container) for container in containers] return version_stats, container_stats @property def key(self): """Return the key of the list.""" return 'name' def generate_stats(self, container): # Init the stats for the current container stats = { 'key': self.key, # Export name 'name': nativestr(container.name), # Container Id 'Id': container.id, # Container Status (from attrs) 'Status': container.attrs['State']['Status'], 'Created': container.attrs['Created'], 'Command': [], } # Container Image try: # API fails on Unraid - See issue 2233 stats['Image'] = container.image.tags except requests.exceptions.HTTPError: stats['Image'] = '-' if container.attrs['Config'].get('Entrypoint', None): stats['Command'].extend(container.attrs['Config'].get('Entrypoint', [])) if container.attrs['Config'].get('Cmd', None): stats['Command'].extend(container.attrs['Config'].get('Cmd', [])) if not stats['Command']: stats['Command'] = None if stats['Status'] in self.CONTAINER_ACTIVE_STATUS: started_at = container.attrs['State']['StartedAt'] stats_fetcher = self.stats_fetchers[container.id] activity_stats = stats_fetcher.activity_stats stats.update(activity_stats) # Additional fields stats['cpu_percent'] = stats["cpu"]['total'] stats['memory_usage'] = stats["memory"].get('usage') if stats['memory'].get('cache') is not None: stats['memory_usage'] -= stats['memory']['cache'] stats['io_r'] = stats['io'].get('ior') stats['io_w'] = stats['io'].get('iow') stats['network_rx'] = stats['network'].get('rx') stats['network_tx'] = stats['network'].get('tx') stats['Uptime'] = pretty_date(parser.parse(started_at).astimezone(tz.tzlocal()).replace(tzinfo=None)) else: stats['io'] = {} stats['cpu'] = {} stats['memory'] = {} stats['network'] = {} stats['io_r'] = None stats['io_w'] = None stats['cpu_percent'] = None stats['memory_percent'] = None stats['network_rx'] = None stats['network_tx'] = None stats['Uptime'] = None return stats glances-3.4.0.3/glances/plugins/containers/glances_podman.py0000644000175000017500000003117314432156570024001 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only """Podman Extension unit for Glances' Containers plugin.""" from datetime import datetime from glances.compat import iterkeys, itervalues, nativestr, pretty_date, string_value_to_float from glances.logger import logger from glances.plugins.containers.stats_streamer import StatsStreamer # Podman library (optional and Linux-only) # https://pypi.org/project/podman/ try: from podman import PodmanClient except Exception as e: import_podman_error_tag = True # Display debug message if import KeyError logger.warning("Error loading Podman deps Lib. Podman feature in the Containers plugin is disabled ({})".format(e)) else: import_podman_error_tag = False class PodmanContainerStatsFetcher: MANDATORY_FIELDS = ["CPU", "MemUsage", "MemLimit", "NetInput", "NetOutput", "BlockInput", "BlockOutput"] def __init__(self, container): self._container = container # Threaded Streamer stats_iterable = container.stats(decode=True) self._streamer = StatsStreamer(stats_iterable, initial_stream_value={}) def _log_debug(self, msg, exception=None): logger.debug("containers (Podman) ID: {} - {} ({})".format(self._container.id, msg, exception)) logger.debug(self._streamer.stats) def stop(self): self._streamer.stop() @property def stats(self): stats = self._streamer.stats if stats["Error"]: self._log_debug("Stats fetching failed", stats["Error"]) return stats["Stats"][0] @property def activity_stats(self): result_stats = {"cpu": {}, "memory": {}, "io": {}, "network": {}} api_stats = self.stats if any(field not in api_stats for field in self.MANDATORY_FIELDS): self._log_debug("Missing mandatory fields") return result_stats try: cpu_usage = float(api_stats.get("CPU", 0)) mem_usage = float(api_stats["MemUsage"]) mem_limit = float(api_stats["MemLimit"]) rx = float(api_stats["NetInput"]) tx = float(api_stats["NetOutput"]) ior = float(api_stats["BlockInput"]) iow = float(api_stats["BlockOutput"]) # Hardcode `time_since_update` to 1 as podman already sends the calculated rate result_stats = { "cpu": {"total": cpu_usage}, "memory": {"usage": mem_usage, "limit": mem_limit}, "io": {"ior": ior, "iow": iow, "time_since_update": 1}, "network": {"rx": rx, "tx": tx, "time_since_update": 1}, } except ValueError as e: self._log_debug("Non float stats values found", e) return result_stats class PodmanPodStatsFetcher: def __init__(self, pod_manager): self._pod_manager = pod_manager # Threaded Streamer # Temporary patch to get podman extension working stats_iterable = (pod_manager.stats(decode=True) for _ in iter(int, 1)) self._streamer = StatsStreamer(stats_iterable, initial_stream_value={}, sleep_duration=2) def _log_debug(self, msg, exception=None): logger.debug("containers (Podman): Pod Manager - {} ({})".format(msg, exception)) logger.debug(self._streamer.stats) def stop(self): self._streamer.stop() @property def activity_stats(self): result_stats = {} container_stats = self._streamer.stats for stat in container_stats: io_stats = self._get_io_stats(stat) cpu_stats = self._get_cpu_stats(stat) memory_stats = self._get_memory_stats(stat) network_stats = self._get_network_stats(stat) computed_stats = { "name": stat["Name"], "cid": stat["CID"], "pod_id": stat["Pod"], "io": io_stats or {}, "memory": memory_stats or {}, "network": network_stats or {}, "cpu": cpu_stats or {"total": 0.0}, } result_stats[stat["CID"]] = computed_stats return result_stats def _get_cpu_stats(self, stats): """Return the container CPU usage. Output: a dict {'total': 1.49} """ if "CPU" not in stats: self._log_debug("Missing CPU usage fields") return None cpu_usage = string_value_to_float(stats["CPU"].rstrip("%")) return {"total": cpu_usage} def _get_memory_stats(self, stats): """Return the container MEMORY. Output: a dict {'rss': 1015808, 'cache': 356352, 'usage': ..., 'max_usage': ...} """ if "MemUsage" not in stats or "/" not in stats["MemUsage"]: self._log_debug("Missing MEM usage fields") return None memory_usage_str = stats["MemUsage"] usage_str, limit_str = memory_usage_str.split("/") try: usage = string_value_to_float(usage_str) limit = string_value_to_float(limit_str) except ValueError as e: self._log_debug("Compute MEM usage failed", e) return None return {"usage": usage, "limit": limit} def _get_network_stats(self, stats): """Return the container network usage using the Docker API (v1.0 or higher). Output: a dict {'time_since_update': 3000, 'rx': 10, 'tx': 65}. with: time_since_update: number of seconds elapsed between the latest grab rx: Number of bytes received tx: Number of bytes transmitted """ if "NetIO" not in stats or "/" not in stats["NetIO"]: self._log_debug("Compute MEM usage failed") return None net_io_str = stats["NetIO"] rx_str, tx_str = net_io_str.split("/") try: rx = string_value_to_float(rx_str) tx = string_value_to_float(tx_str) except ValueError as e: self._log_debug("Compute MEM usage failed", e) return None # Hardcode `time_since_update` to 1 as podman docs don't specify the rate calculated procedure return {"rx": rx, "tx": tx, "time_since_update": 1} def _get_io_stats(self, stats): """Return the container IO usage using the Docker API (v1.0 or higher). Output: a dict {'time_since_update': 3000, 'ior': 10, 'iow': 65}. with: time_since_update: number of seconds elapsed between the latest grab ior: Number of bytes read iow: Number of bytes written """ if "BlockIO" not in stats or "/" not in stats["BlockIO"]: self._log_debug("Missing BlockIO usage fields") return None block_io_str = stats["BlockIO"] ior_str, iow_str = block_io_str.split("/") try: ior = string_value_to_float(ior_str) iow = string_value_to_float(iow_str) except ValueError as e: self._log_debug("Compute BlockIO usage failed", e) return None # Hardcode `time_since_update` to 1 as podman docs don't specify the rate calculated procedure return {"ior": ior, "iow": iow, "time_since_update": 1} class PodmanContainersExtension: """Glances' Containers Plugin's Docker Extension unit""" CONTAINER_ACTIVE_STATUS = ['running', 'paused'] def __init__(self, podman_sock): if import_podman_error_tag: raise Exception("Missing libs required to run Podman Extension (Containers)") self.client = None self.ext_name = "containers (Podman)" self.podman_sock = podman_sock self.pods_stats_fetcher = None self.container_stats_fetchers = {} self.connect() def connect(self): """Connect to Podman.""" try: self.client = PodmanClient(base_url=self.podman_sock) # PodmanClient works lazily, so make a ping to determine if socket is open self.client.ping() except Exception as e: logger.error("{} plugin - Can't connect to Podman ({})".format(self.ext_name, e)) self.client = None def update_version(self): # Long and not useful anymore because the information is no more displayed in UIs # return self.client.version() return {} def stop(self): # Stop all streaming threads for t in itervalues(self.container_stats_fetchers): t.stop() if self.pods_stats_fetcher: self.pods_stats_fetcher.stop() def update(self, all_tag): """Update Podman stats using the input method.""" if not self.client: return {}, [] version_stats = self.update_version() # Update current containers list try: # Issue #1152: Podman module doesn't export details about stopped containers # The Containers/all key of the configuration file should be set to True containers = self.client.containers.list(all=all_tag) if not self.pods_stats_fetcher: self.pods_stats_fetcher = PodmanPodStatsFetcher(self.client.pods) except Exception as e: logger.error("{} plugin - Can't get containers list ({})".format(self.ext_name, e)) return version_stats, [] # Start new thread for new container for container in containers: if container.id not in self.container_stats_fetchers: # StatsFetcher did not exist in the internal dict # Create it, add it to the internal dict logger.debug("{} plugin - Create thread for container {}".format(self.ext_name, container.id[:12])) self.container_stats_fetchers[container.id] = PodmanContainerStatsFetcher(container) # Stop threads for non-existing containers absent_containers = set(iterkeys(self.container_stats_fetchers)) - set(c.id for c in containers) for container_id in absent_containers: # Stop the StatsFetcher logger.debug("{} plugin - Stop thread for old container {}".format(self.ext_name, container_id[:12])) self.container_stats_fetchers[container_id].stop() # Delete the StatsFetcher from the dict del self.container_stats_fetchers[container_id] # Get stats for all containers container_stats = [self.generate_stats(container) for container in containers] pod_stats = self.pods_stats_fetcher.activity_stats for stats in container_stats: if stats["Id"][:12] in pod_stats: stats["pod_name"] = pod_stats[stats["Id"][:12]]["name"] stats["pod_id"] = pod_stats[stats["Id"][:12]]["pod_id"] return version_stats, container_stats @property def key(self): """Return the key of the list.""" return 'name' def generate_stats(self, container): # Init the stats for the current container stats = { 'key': self.key, # Export name 'name': nativestr(container.name), # Container Id 'Id': container.id, # Container Image 'Image': str(container.image.tags), # Container Status (from attrs) 'Status': container.attrs['State'], 'Created': container.attrs['Created'], 'Command': container.attrs.get('Command') or [], } if stats['Status'] in self.CONTAINER_ACTIVE_STATUS: started_at = datetime.fromtimestamp(container.attrs['StartedAt']) stats_fetcher = self.container_stats_fetchers[container.id] activity_stats = stats_fetcher.activity_stats stats.update(activity_stats) # Additional fields stats['cpu_percent'] = stats["cpu"]['total'] stats['memory_usage'] = stats["memory"].get('usage') if stats['memory'].get('cache') is not None: stats['memory_usage'] -= stats['memory']['cache'] stats['io_r'] = stats['io'].get('ior') stats['io_w'] = stats['io'].get('iow') stats['network_rx'] = stats['network'].get('rx') stats['network_tx'] = stats['network'].get('tx') stats['Uptime'] = pretty_date(started_at) else: stats['io'] = {} stats['cpu'] = {} stats['memory'] = {} stats['network'] = {} stats['io_r'] = None stats['io_w'] = None stats['cpu_percent'] = None stats['memory_percent'] = None stats['network_rx'] = None stats['network_tx'] = None stats['Uptime'] = None return stats glances-3.4.0.3/glances/plugins/containers/__init__.py0000644000175000017500000000000014432156570022547 0ustar epsilonepsilonglances-3.4.0.3/glances/plugins/containers/stats_streamer.py0000644000175000017500000000513014432156570024061 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only import threading import time from glances.logger import logger class StatsStreamer: """ Utility class to stream an iterable using a background / daemon Thread Use `StatsStreamer.stats` to access the latest streamed results """ def __init__(self, iterable, initial_stream_value=None, sleep_duration=0.1): """ iterable: an Iterable instance that needs to be streamed """ self._iterable = iterable # Iterable results are stored here self._raw_result = initial_stream_value # Use a Thread to stream iterable (daemon=True to automatically kill thread when main process dies) self._thread = threading.Thread(target=self._stream_results, daemon=True) # Event needed to stop the thread manually self._stopper = threading.Event() # Lock to avoid the daemon thread updating stats when main thread reads the stats self.result_lock = threading.Lock() # Last result streamed time (initial val 0) self._last_update_time = 0 # Time to sleep before next iteration self._sleep_duration = sleep_duration self._thread.start() def stop(self): """Stop the thread.""" self._stopper.set() def stopped(self): """Return True is the thread is stopped.""" return self._stopper.is_set() def _stream_results(self): """Grab the stats. Infinite loop, should be stopped by calling the stop() method """ try: for res in self._iterable: self._pre_update_hook() self._raw_result = res self._post_update_hook() time.sleep(self._sleep_duration) if self.stopped(): break except Exception as e: logger.debug("docker plugin - Exception thrown during run ({})".format(e)) self.stop() def _pre_update_hook(self): """Hook that runs before worker thread updates the raw_stats""" self.result_lock.acquire() def _post_update_hook(self): """Hook that runs after worker thread updates the raw_stats""" self._last_update_time = time.time() self.result_lock.release() @property def stats(self): """Raw Stats getter.""" return self._raw_result @property def last_update_time(self): """Raw Stats getter.""" return self._last_update_time glances-3.4.0.3/glances/plugins/glances_raid.py0000644000175000017500000001410214432156570021266 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """RAID plugin.""" from glances.compat import iterkeys from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin # Import plugin specific dependency try: from pymdstat import MdStat except ImportError as e: import_error_tag = True logger.warning("Missing Python Lib ({}), Raid plugin is disabled".format(e)) else: import_error_tag = False class Plugin(GlancesPlugin): """Glances RAID plugin. stats is a dict (see pymdstat documentation) """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update RAID stats using the input method.""" # Init new stats stats = self.get_init_value() if import_error_tag: return self.stats if self.input_method == 'local': # Update stats using the PyMDstat lib (https://github.com/nicolargo/pymdstat) try: # Just for test # mds = MdStat(path='/home/nicolargo/dev/pymdstat/tests/mdstat.10') mds = MdStat() stats = mds.get_stats()['arrays'] except Exception as e: logger.debug("Can not grab RAID stats (%s)" % e) return self.stats elif self.input_method == 'snmp': # Update stats using SNMP # No standard way for the moment... pass # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 12 # Header msg = '{:{width}}'.format('RAID disks', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) msg = '{:>7}'.format('Used') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('Avail') ret.append(self.curse_add_line(msg)) # Data arrays = sorted(iterkeys(self.stats)) for array in arrays: # New line ret.append(self.curse_new_line()) # Display the current status if not isinstance(self.stats[array], dict): continue status = self.raid_alert( self.stats[array]['status'], self.stats[array]['used'], self.stats[array]['available'], self.stats[array]['type'], ) # Data: RAID type name | disk used | disk available array_type = self.stats[array]['type'].upper() if self.stats[array]['type'] is not None else 'UNKNOWN' # Build the full name = array type + array name full_name = '{} {}'.format(array_type, array) msg = '{:{width}}'.format(full_name, width=name_max_width) ret.append(self.curse_add_line(msg)) if self.stats[array]['type'] == 'raid0' and self.stats[array]['status'] == 'active': msg = '{:>7}'.format(len(self.stats[array]['components'])) ret.append(self.curse_add_line(msg, status)) msg = '{:>7}'.format('-') ret.append(self.curse_add_line(msg, status)) elif self.stats[array]['status'] == 'active': msg = '{:>7}'.format(self.stats[array]['used']) ret.append(self.curse_add_line(msg, status)) msg = '{:>7}'.format(self.stats[array]['available']) ret.append(self.curse_add_line(msg, status)) elif self.stats[array]['status'] == 'inactive': ret.append(self.curse_new_line()) msg = '└─ Status {}'.format(self.stats[array]['status']) ret.append(self.curse_add_line(msg, status)) components = sorted(iterkeys(self.stats[array]['components'])) for i, component in enumerate(components): if i == len(components) - 1: tree_char = '└─' else: tree_char = '├─' ret.append(self.curse_new_line()) msg = ' {} disk {}: '.format(tree_char, self.stats[array]['components'][component]) ret.append(self.curse_add_line(msg)) msg = '{}'.format(component) ret.append(self.curse_add_line(msg)) if self.stats[array]['type'] != 'raid0' and (self.stats[array]['used'] < self.stats[array]['available']): # Display current array configuration ret.append(self.curse_new_line()) msg = '└─ Degraded mode' ret.append(self.curse_add_line(msg, status)) if len(self.stats[array]['config']) < 17: ret.append(self.curse_new_line()) msg = ' └─ {}'.format(self.stats[array]['config'].replace('_', 'A')) ret.append(self.curse_add_line(msg)) return ret def raid_alert(self, status, used, available, type): """RAID alert messages. [available/used] means that ideally the array may have _available_ devices however, _used_ devices are in use. Obviously when used >= available then things are good. """ if type == 'raid0': return 'OK' if status == 'inactive': return 'CRITICAL' if used is None or available is None: return 'DEFAULT' elif used < available: return 'WARNING' return 'OK' glances-3.4.0.3/glances/plugins/glances_fs.py0000644000175000017500000002461714432156570020773 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """File system plugin.""" from __future__ import unicode_literals import operator from glances.compat import u, nativestr, PermissionError from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin import psutil # SNMP OID # The snmpd.conf needs to be edited. # Add the following to enable it on all disk # ... # includeAllDisks 10% # ... # The OIDs are as follows (for the first disk) # Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1 # Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1 # Total size of the disk/partition (kBytes): .1.3.6.1.4.1.2021.9.1.6.1 # Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1 # Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1 # Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1 # Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1 snmp_oid = { 'default': { 'mnt_point': '1.3.6.1.4.1.2021.9.1.2', 'device_name': '1.3.6.1.4.1.2021.9.1.3', 'size': '1.3.6.1.4.1.2021.9.1.6', 'used': '1.3.6.1.4.1.2021.9.1.8', 'percent': '1.3.6.1.4.1.2021.9.1.9', }, 'windows': { 'mnt_point': '1.3.6.1.2.1.25.2.3.1.3', 'alloc_unit': '1.3.6.1.2.1.25.2.3.1.4', 'size': '1.3.6.1.2.1.25.2.3.1.5', 'used': '1.3.6.1.2.1.25.2.3.1.6', }, 'netapp': { 'mnt_point': '1.3.6.1.4.1.789.1.5.4.1.2', 'device_name': '1.3.6.1.4.1.789.1.5.4.1.10', 'size': '1.3.6.1.4.1.789.1.5.4.1.3', 'used': '1.3.6.1.4.1.789.1.5.4.1.4', 'percent': '1.3.6.1.4.1.789.1.5.4.1.6', }, } snmp_oid['esxi'] = snmp_oid['windows'] # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [{'name': 'percent', 'description': 'File system usage in percent', 'y_unit': '%'}] class Plugin(GlancesPlugin): """Glances file system plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, stats_init_value=[] ) # We want to display the stat in the curse interface self.display_curse = True def get_key(self): """Return the key of the list.""" return 'mnt_point' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the FS stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Grab the stats using the psutil disk_partitions # If 'all'=False return physical devices only (e.g. hard disks, cd-rom drives, USB keys) # and ignore all others (e.g. memory partitions such as /dev/shm) try: fs_stat = psutil.disk_partitions(all=False) except (UnicodeDecodeError, PermissionError): logger.debug("Plugin - fs: PsUtil fetch failed") return self.stats # Optional hack to allow logical mounts points (issue #448) allowed_fs_types = self.get_conf_value('allow') if allowed_fs_types: # Avoid Psutil call unless mounts need to be allowed try: all_mounted_fs = psutil.disk_partitions(all=True) except (UnicodeDecodeError, PermissionError): logger.debug("Plugin - fs: PsUtil extended fetch failed") else: # Discard duplicates (#2299) and add entries matching allowed fs types tracked_mnt_points = set(f.mountpoint for f in fs_stat) for f in all_mounted_fs: if ( any(f.fstype.find(fs_type) >= 0 for fs_type in allowed_fs_types) and f.mountpoint not in tracked_mnt_points ): fs_stat.append(f) # Loop over fs for fs in fs_stat: # Hide the stats if the mount point is in the exclude list if not self.is_display(fs.mountpoint): continue # Grab the disk usage try: fs_usage = psutil.disk_usage(fs.mountpoint) except OSError: # Correct issue #346 # Disk is ejected during the command continue fs_current = { 'device_name': fs.device, 'fs_type': fs.fstype, # Manage non breaking space (see issue #1065) 'mnt_point': u(fs.mountpoint).replace(u'\u00A0', ' '), 'size': fs_usage.total, 'used': fs_usage.used, 'free': fs_usage.free, 'percent': fs_usage.percent, 'key': self.get_key(), } # Hide the stats if the device name is in the exclude list # Correct issue: glances.conf FS hide not applying #1666 if not self.is_display(fs_current['device_name']): continue stats.append(fs_current) elif self.input_method == 'snmp': # Update stats using SNMP # SNMP bulk command to get all file system in one shot try: fs_stat = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name], bulk=True) except KeyError: fs_stat = self.get_stats_snmp(snmp_oid=snmp_oid['default'], bulk=True) # Loop over fs if self.short_system_name in ('windows', 'esxi'): # Windows or ESXi tips for fs in fs_stat: # Memory stats are grabbed in the same OID table (ignore it) if fs == 'Virtual Memory' or fs == 'Physical Memory' or fs == 'Real Memory': continue size = int(fs_stat[fs]['size']) * int(fs_stat[fs]['alloc_unit']) used = int(fs_stat[fs]['used']) * int(fs_stat[fs]['alloc_unit']) percent = float(used * 100 / size) fs_current = { 'device_name': '', 'mnt_point': fs.partition(' ')[0], 'size': size, 'used': used, 'percent': percent, 'key': self.get_key(), } # Do not take hidden file system into account if self.is_hide(fs_current['mnt_point']): continue else: stats.append(fs_current) else: # Default behavior for fs in fs_stat: fs_current = { 'device_name': fs_stat[fs]['device_name'], 'mnt_point': fs, 'size': int(fs_stat[fs]['size']) * 1024, 'used': int(fs_stat[fs]['used']) * 1024, 'percent': float(fs_stat[fs]['percent']), 'key': self.get_key(), } # Do not take hidden file system into account if self.is_hide(fs_current['mnt_point']) or self.is_hide(fs_current['device_name']): continue else: stats.append(fs_current) # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert for i in self.stats: self.views[i[self.get_key()]]['used']['decoration'] = self.get_alert( current=i['size'] - i['free'], maximum=i['size'], header=i['mnt_point'] ) def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 12 # Build the string message # Header msg = '{:{width}}'.format('FILE SYS', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) if args.fs_free_space: msg = '{:>7}'.format('Free') else: msg = '{:>7}'.format('Used') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('Total') ret.append(self.curse_add_line(msg)) # Filesystem list (sorted by name) for i in sorted(self.stats, key=operator.itemgetter(self.get_key())): # New line ret.append(self.curse_new_line()) if i['device_name'] == '' or i['device_name'] == 'none': mnt_point = i['mnt_point'][-name_max_width + 1 :] elif len(i['mnt_point']) + len(i['device_name'].split('/')[-1]) <= name_max_width - 3: # If possible concatenate mode info... Glances touch inside :) mnt_point = i['mnt_point'] + ' (' + i['device_name'].split('/')[-1] + ')' elif len(i['mnt_point']) > name_max_width: # Cut mount point name if it is too long mnt_point = '_' + i['mnt_point'][-name_max_width + 1 :] else: mnt_point = i['mnt_point'] msg = '{:{width}}'.format(nativestr(mnt_point), width=name_max_width) ret.append(self.curse_add_line(msg)) if args.fs_free_space: msg = '{:>7}'.format(self.auto_unit(i['free'])) else: msg = '{:>7}'.format(self.auto_unit(i['used'])) ret.append( self.curse_add_line(msg, self.get_views(item=i[self.get_key()], key='used', option='decoration')) ) msg = '{:>7}'.format(self.auto_unit(i['size'])) ret.append(self.curse_add_line(msg)) return ret glances-3.4.0.3/glances/plugins/glances_gpu.py0000644000175000017500000002677214432156570021162 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # Copyright (C) 2020 Kirby Banman # # SPDX-License-Identifier: LGPL-3.0-only # """GPU plugin (limited to NVIDIA chipsets).""" from glances.compat import nativestr, to_fahrenheit from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin # In Glances 3.1.4 or higher, we use the py3nvml lib (see issue #1523) try: import py3nvml.py3nvml as pynvml except Exception as e: import_error_tag = True # Display debug message if import KeyError logger.warning("Missing Python Lib ({}), Nvidia GPU plugin is disabled".format(e)) else: import_error_tag = False # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [ {'name': 'proc', 'description': 'GPU processor', 'y_unit': '%'}, {'name': 'mem', 'description': 'Memory consumption', 'y_unit': '%'}, ] class Plugin(GlancesPlugin): """Glances GPU plugin (limited to NVIDIA chipsets). stats is a list of dictionaries with one entry per GPU """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # Init the Nvidia API self.init_nvidia() # We want to display the stat in the curse interface self.display_curse = True def init_nvidia(self): """Init the NVIDIA API.""" if import_error_tag: self.nvml_ready = False try: pynvml.nvmlInit() self.device_handles = get_device_handles() self.nvml_ready = True except Exception: logger.debug("pynvml could not be initialized.") self.nvml_ready = False return self.nvml_ready def get_key(self): """Return the key of the list.""" return 'gpu_id' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the GPU stats.""" # Init new stats stats = self.get_init_value() if not self.nvml_ready: # !!! # Uncomment to test on computer without GPU # One GPU sample: # self.stats = [ # { # "key": "gpu_id", # "gpu_id": 0, # "name": "Fake GeForce GTX", # "mem": 5.792331695556641, # "proc": 4, # "temperature": 26, # "fan_speed": 30 # } # ] # Two GPU sample: # self.stats = [ # { # "key": "gpu_id", # "gpu_id": 0, # "name": "Fake GeForce GTX1", # "mem": 5.792331695556641, # "proc": 4, # "temperature": 26, # "fan_speed": 30 # }, # { # "key": "gpu_id", # "gpu_id": 1, # "name": "Fake GeForce GTX2", # "mem": 15, # "proc": 8, # "temperature": 65, # "fan_speed": 75 # } # ] return self.stats if self.input_method == 'local': stats = self.get_device_stats() elif self.input_method == 'snmp': # not available pass # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert for i in self.stats: # Init the views for the current GPU self.views[i[self.get_key()]] = {'proc': {}, 'mem': {}, 'temperature': {}} # Processor alert if 'proc' in i: alert = self.get_alert(i['proc'], header='proc') self.views[i[self.get_key()]]['proc']['decoration'] = alert # Memory alert if 'mem' in i: alert = self.get_alert(i['mem'], header='mem') self.views[i[self.get_key()]]['mem']['decoration'] = alert # Temperature alert if 'temperature' in i: alert = self.get_alert(i['temperature'], header='temperature') self.views[i[self.get_key()]]['temperature']['decoration'] = alert return True def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist, not empty (issue #871) and plugin not disabled if not self.stats or (self.stats == []) or self.is_disabled(): return ret # Check if all GPU have the same name same_name = all(s['name'] == self.stats[0]['name'] for s in self.stats) # gpu_stats contain the first GPU in the list gpu_stats = self.stats[0] # Header header = '' if len(self.stats) > 1: header += '{} '.format(len(self.stats)) if same_name: header += '{} {}'.format('GPU', gpu_stats['name']) else: header += '{}'.format('GPU') msg = header[:17] ret.append(self.curse_add_line(msg, "TITLE")) # Build the string message if len(self.stats) == 1 or args.meangpu: # GPU stat summary or mono GPU # New line ret.append(self.curse_new_line()) # GPU PROC try: mean_proc = sum(s['proc'] for s in self.stats if s is not None) / len(self.stats) except TypeError: mean_proc_msg = '{:>4}'.format('N/A') else: mean_proc_msg = '{:>3.0f}%'.format(mean_proc) if len(self.stats) > 1: msg = '{:13}'.format('proc mean:') else: msg = '{:13}'.format('proc:') ret.append(self.curse_add_line(msg)) ret.append( self.curse_add_line( mean_proc_msg, self.get_views(item=gpu_stats[self.get_key()], key='proc', option='decoration') ) ) # New line ret.append(self.curse_new_line()) # GPU MEM try: mean_mem = sum(s['mem'] for s in self.stats if s is not None) / len(self.stats) except TypeError: mean_mem_msg = '{:>4}'.format('N/A') else: mean_mem_msg = '{:>3.0f}%'.format(mean_mem) if len(self.stats) > 1: msg = '{:13}'.format('mem mean:') else: msg = '{:13}'.format('mem:') ret.append(self.curse_add_line(msg)) ret.append( self.curse_add_line( mean_mem_msg, self.get_views(item=gpu_stats[self.get_key()], key='mem', option='decoration') ) ) # New line ret.append(self.curse_new_line()) # GPU TEMPERATURE try: mean_temperature = sum(s['temperature'] for s in self.stats if s is not None) / len(self.stats) except TypeError: mean_temperature_msg = '{:>4}'.format('N/A') else: unit = 'C' if args.fahrenheit: mean_temperature = to_fahrenheit(mean_temperature) unit = 'F' mean_temperature_msg = '{:>3.0f}{}'.format(mean_temperature, unit) if len(self.stats) > 1: msg = '{:13}'.format('temp mean:') else: msg = '{:13}'.format('temperature:') ret.append(self.curse_add_line(msg)) ret.append( self.curse_add_line( mean_temperature_msg, self.get_views(item=gpu_stats[self.get_key()], key='temperature', option='decoration'), ) ) else: # Multi GPU # Temperature is not displayed in this mode... for gpu_stats in self.stats: # New line ret.append(self.curse_new_line()) # GPU ID + PROC + MEM + TEMPERATURE id_msg = '{}'.format(gpu_stats['gpu_id']) try: proc_msg = '{:>3.0f}%'.format(gpu_stats['proc']) except (ValueError, TypeError): proc_msg = '{:>4}'.format('N/A') try: mem_msg = '{:>3.0f}%'.format(gpu_stats['mem']) except (ValueError, TypeError): mem_msg = '{:>4}'.format('N/A') msg = '{}: {} mem: {}'.format(id_msg, proc_msg, mem_msg) ret.append(self.curse_add_line(msg)) return ret def get_device_stats(self): """Get GPU stats.""" stats = [] for index, device_handle in enumerate(self.device_handles): device_stats = dict() # Dictionary key is the GPU_ID device_stats['key'] = self.get_key() # GPU id (for multiple GPU, start at 0) device_stats['gpu_id'] = index # GPU name device_stats['name'] = get_device_name(device_handle) # Memory consumption in % (not available on all GPU) device_stats['mem'] = get_mem(device_handle) # Processor consumption in % device_stats['proc'] = get_proc(device_handle) # Processor temperature in °C device_stats['temperature'] = get_temperature(device_handle) # Fan speed in % device_stats['fan_speed'] = get_fan_speed(device_handle) stats.append(device_stats) return stats def exit(self): """Overwrite the exit method to close the GPU API.""" if self.nvml_ready: try: pynvml.nvmlShutdown() except Exception as e: logger.debug("pynvml failed to shutdown correctly ({})".format(e)) # Call the father exit method super(Plugin, self).exit() def get_device_handles(): """Get a list of NVML device handles, one per device. Can throw NVMLError. """ return [pynvml.nvmlDeviceGetHandleByIndex(i) for i in range(pynvml.nvmlDeviceGetCount())] def get_device_name(device_handle): """Get GPU device name.""" try: return nativestr(pynvml.nvmlDeviceGetName(device_handle)) except pynvml.NVMLError: return "NVIDIA" def get_mem(device_handle): """Get GPU device memory consumption in percent.""" try: memory_info = pynvml.nvmlDeviceGetMemoryInfo(device_handle) return memory_info.used * 100.0 / memory_info.total except pynvml.NVMLError: return None def get_proc(device_handle): """Get GPU device CPU consumption in percent.""" try: return pynvml.nvmlDeviceGetUtilizationRates(device_handle).gpu except pynvml.NVMLError: return None def get_temperature(device_handle): """Get GPU device CPU temperature in Celsius.""" try: return pynvml.nvmlDeviceGetTemperature(device_handle, pynvml.NVML_TEMPERATURE_GPU) except pynvml.NVMLError: return None def get_fan_speed(device_handle): """Get GPU device fan speed in percent.""" try: return pynvml.nvmlDeviceGetFanSpeed(device_handle) except pynvml.NVMLError: return None glances-3.4.0.3/glances/plugins/glances_wifi.py0000644000175000017500000001510214432156570021306 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Wifi plugin.""" import operator from glances.compat import nativestr, PY3 from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin import psutil # Use the Wifi Python lib (https://pypi.python.org/pypi/wifi) # Linux-only try: from wifi.scan import Cell from wifi.exceptions import InterfaceError except ImportError as e: import_error_tag = True logger.warning("Missing Python Lib ({}), Wifi plugin is disabled".format(e)) else: import_error_tag = False # Python 3 is not supported (see issue #1377) if PY3: import_error_tag = True logger.warning("Wifi lib is not compliant with Python 3, Wifi plugin is disabled") class Plugin(GlancesPlugin): """Glances Wifi plugin. Get stats of the current Wifi hotspots. """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # We want to display the stat in the curse interface self.display_curse = True def get_key(self): """Return the key of the list. :returns: string -- SSID is the dict key """ return 'ssid' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update Wifi stats using the input method. Stats is a list of dict (one dict per hotspot) :returns: list -- Stats is a list of dict (hotspot) """ # Init new stats stats = self.get_init_value() # Exist if we can not grab the stats if import_error_tag: return stats if self.input_method == 'local': # Update stats using the standard system lib # Grab network interface stat using the psutil net_io_counter method try: net_io_counters = psutil.net_io_counters(pernic=True) except UnicodeDecodeError: return stats for net in net_io_counters: # Do not take hidden interface into account if not self.is_display(net): continue # Grab the stats using the Wifi Python lib try: wifi_cells = Cell.all(net) except InterfaceError as e: # Not a Wifi interface logger.debug("WIFI plugin: Scan InterfaceError ({})".format(e)) except Exception as e: # Other error logger.debug("WIFI plugin: Can not grab cell stats ({})".format(e)) else: for wifi_cell in wifi_cells: hotspot = { 'key': self.get_key(), 'ssid': wifi_cell.ssid, 'signal': wifi_cell.signal, 'quality': wifi_cell.quality, 'encrypted': wifi_cell.encrypted, 'encryption_type': wifi_cell.encryption_type if wifi_cell.encrypted else None, } # Add the hotspot to the list stats.append(hotspot) elif self.input_method == 'snmp': # Update stats using SNMP # Not implemented yet pass # Update the stats self.stats = stats return self.stats def get_alert(self, value): """Overwrite the default get_alert method. Alert is on signal quality where lower is better... :returns: string -- Signal alert """ ret = 'OK' try: if value <= self.get_limit('critical', stat_name=self.plugin_name): ret = 'CRITICAL' elif value <= self.get_limit('warning', stat_name=self.plugin_name): ret = 'WARNING' elif value <= self.get_limit('careful', stat_name=self.plugin_name): ret = 'CAREFUL' except (TypeError, KeyError): # Catch TypeError for issue1373 ret = 'DEFAULT' return ret def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert on signal thresholds for i in self.stats: self.views[i[self.get_key()]]['signal']['decoration'] = self.get_alert(i['signal']) self.views[i[self.get_key()]]['quality']['decoration'] = self.views[i[self.get_key()]]['signal'][ 'decoration' ] def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or import_error_tag or self.is_disabled(): return ret # Max size for the interface name if_name_max_width = max_width - 5 # Build the string message # Header msg = '{:{width}}'.format('WIFI', width=if_name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) msg = '{:>7}'.format('dBm') ret.append(self.curse_add_line(msg)) # Hotspot list (sorted by name) for i in sorted(self.stats, key=operator.itemgetter(self.get_key())): # Do not display hotspot with no name (/ssid)... # of ssid/signal None... See issue #1151 and #issue1973 if i['ssid'] == '' or i['ssid'] is None or i['signal'] is None: continue ret.append(self.curse_new_line()) # New hotspot hotspot_name = i['ssid'] # Add the encryption type (if it is available) if i['encrypted']: hotspot_name += ' {}'.format(i['encryption_type']) # Cut hotspot_name if it is too long if len(hotspot_name) > if_name_max_width: hotspot_name = '_' + hotspot_name[-if_name_max_width + 1 :] # Add the new hotspot to the message msg = '{:{width}}'.format(nativestr(hotspot_name), width=if_name_max_width) ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format( i['signal'], ) ret.append( self.curse_add_line(msg, self.get_views(item=i[self.get_key()], key='signal', option='decoration')) ) return ret glances-3.4.0.3/glances/plugins/glances_containers.py0000644000175000017500000004071714432156570022527 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Containers plugin.""" import os from copy import deepcopy from glances.logger import logger from glances.plugins.containers.glances_docker import DockerContainersExtension, import_docker_error_tag from glances.plugins.containers.glances_podman import PodmanContainersExtension, import_podman_error_tag from glances.plugins.glances_plugin import GlancesPlugin from glances.processes import glances_processes from glances.processes import sort_stats as sort_stats_processes # Define the items history list (list of items to add to history) # TODO: For the moment limited to the CPU. Had to change the graph exports # method to display one graph per container. # items_history_list = [{'name': 'cpu_percent', # 'description': 'Container CPU consumption in %', # 'y_unit': '%'}, # {'name': 'memory_usage', # 'description': 'Container memory usage in bytes', # 'y_unit': 'B'}, # {'name': 'network_rx', # 'description': 'Container network RX bitrate in bits per second', # 'y_unit': 'bps'}, # {'name': 'network_tx', # 'description': 'Container network TX bitrate in bits per second', # 'y_unit': 'bps'}, # {'name': 'io_r', # 'description': 'Container IO bytes read per second', # 'y_unit': 'Bps'}, # {'name': 'io_w', # 'description': 'Container IO bytes write per second', # 'y_unit': 'Bps'}] items_history_list = [{'name': 'cpu_percent', 'description': 'Container CPU consumption in %', 'y_unit': '%'}] # List of key to remove before export export_exclude_list = ['cpu', 'io', 'memory', 'network'] # Sort dictionary for human sort_for_human = { 'io_counters': 'disk IO', 'cpu_percent': 'CPU consumption', 'memory_usage': 'memory consumption', 'cpu_times': 'uptime', 'name': 'container name', None: 'None', } class Plugin(GlancesPlugin): """Glances Docker plugin. stats is a dict: {'version': {...}, 'containers': [{}, {}]} """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, items_history_list=items_history_list) # The plugin can be disabled using: args.disable_docker self.args = args # Default config keys self.config = config # We want to display the stat in the curse interface self.display_curse = True # Init the Docker API self.docker_extension = DockerContainersExtension() if not import_docker_error_tag else None # Init the Podman API if import_podman_error_tag: self.podman_client = None else: self.podman_client = PodmanContainersExtension(podman_sock=self._podman_sock()) # Sort key self.sort_key = None # Force a first update because we need two update to have the first stat self.update() self.refresh_timer.set(0) def _podman_sock(self): """Return the podman sock. Could be desfined in the [docker] section thanks to the podman_sock option. Default value: unix:///run/user/1000/podman/podman.sock """ conf_podman_sock = self.get_conf_value('podman_sock') if len(conf_podman_sock) == 0: return "unix:///run/user/1000/podman/podman.sock" else: return conf_podman_sock[0] def exit(self): """Overwrite the exit method to close threads.""" if self.docker_extension: self.docker_extension.stop() # Call the father class super(Plugin, self).exit() def get_key(self): """Return the key of the list.""" return 'name' def get_export(self): """Overwrite the default export method. - Only exports containers - The key is the first container name """ try: ret = deepcopy(self.stats['containers']) except KeyError as e: logger.debug("docker plugin - Docker export error {}".format(e)) ret = [] # Remove fields uses to compute rate for container in ret: for i in export_exclude_list: container.pop(i) return ret def _all_tag(self): """Return the all tag of the Glances/Docker configuration file. # By default, Glances only display running containers # Set the following key to True to display all containers all=True """ all_tag = self.get_conf_value('all') if len(all_tag) == 0: return False else: return all_tag[0].lower() == 'true' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update Docker and podman stats using the input method.""" # Connection should be ok if self.docker_extension is None and self.podman_client is None: return self.get_init_value() if self.input_method == 'local': # Update stats stats_docker = self.update_docker() if self.docker_extension else {} stats_podman = self.update_podman() if self.podman_client else {} stats = { 'version': stats_docker.get('version', {}), 'version_podman': stats_podman.get('version', {}), 'containers': stats_docker.get('containers', []) + stats_podman.get('containers', []), } elif self.input_method == 'snmp': # Update stats using SNMP # Not available pass # Sort and update the stats # @TODO: Have a look because sort did not work for the moment (need memory stats ?) self.sort_key, self.stats = sort_docker_stats(stats) return self.stats def update_docker(self): """Update Docker stats using the input method.""" version, containers = self.docker_extension.update(all_tag=self._all_tag()) for container in containers: container["engine"] = 'docker' return {"version": version, "containers": containers} def update_podman(self): """Update Podman stats.""" version, containers = self.podman_client.update(all_tag=self._all_tag()) for container in containers: container["engine"] = 'podman' return {"version": version, "containers": containers} def get_user_ticks(self): """Return the user ticks by reading the environment variable.""" return os.sysconf(os.sysconf_names['SC_CLK_TCK']) def get_stats_action(self): """Return stats for the action. Docker will return self.stats['containers'] """ return self.stats['containers'] def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() if 'containers' not in self.stats: return False # Add specifics information # Alert for i in self.stats['containers']: # Init the views for the current container (key = container name) self.views[i[self.get_key()]] = {'cpu': {}, 'mem': {}} # CPU alert if 'cpu' in i and 'total' in i['cpu']: # Looking for specific CPU container threshold in the conf file alert = self.get_alert(i['cpu']['total'], header=i['name'] + '_cpu', action_key=i['name']) if alert == 'DEFAULT': # Not found ? Get back to default CPU threshold value alert = self.get_alert(i['cpu']['total'], header='cpu') self.views[i[self.get_key()]]['cpu']['decoration'] = alert # MEM alert if 'memory' in i and 'usage' in i['memory']: # Looking for specific MEM container threshold in the conf file alert = self.get_alert( i['memory']['usage'], maximum=i['memory']['limit'], header=i['name'] + '_mem', action_key=i['name'] ) if alert == 'DEFAULT': # Not found ? Get back to default MEM threshold value alert = self.get_alert(i['memory']['usage'], maximum=i['memory']['limit'], header='mem') self.views[i[self.get_key()]]['mem']['decoration'] = alert return True def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist (and non null) and display plugin enable... if not self.stats or 'containers' not in self.stats or len(self.stats['containers']) == 0 or self.is_disabled(): return ret show_pod_name = False if any(ct.get("pod_name") for ct in self.stats["containers"]): show_pod_name = True show_engine_name = False if len(set(ct["engine"] for ct in self.stats["containers"])) > 1: show_engine_name = True # Build the string message # Title msg = '{}'.format('CONTAINERS') ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {}'.format(len(self.stats['containers'])) ret.append(self.curse_add_line(msg)) msg = ' sorted by {}'.format(sort_for_human[self.sort_key]) ret.append(self.curse_add_line(msg)) # msg = ' (served by Docker {})'.format(self.stats['version']["Version"]) # ret.append(self.curse_add_line(msg)) ret.append(self.curse_new_line()) # Header ret.append(self.curse_new_line()) # Get the maximum containers name # Max size is configurable. See feature request #1723. name_max_width = min( self.config.get_int_value('containers', 'max_name_size', default=20) if self.config is not None else 20, len(max(self.stats['containers'], key=lambda x: len(x['name']))['name']), ) if show_engine_name: msg = ' {:{width}}'.format('Engine', width=6) ret.append(self.curse_add_line(msg)) if show_pod_name: msg = ' {:{width}}'.format('Pod', width=12) ret.append(self.curse_add_line(msg)) msg = ' {:{width}}'.format('Name', width=name_max_width) ret.append(self.curse_add_line(msg, 'SORT' if self.sort_key == 'name' else 'DEFAULT')) msg = '{:>10}'.format('Status') ret.append(self.curse_add_line(msg)) msg = '{:>10}'.format('Uptime') ret.append(self.curse_add_line(msg)) msg = '{:>6}'.format('CPU%') ret.append(self.curse_add_line(msg, 'SORT' if self.sort_key == 'cpu_percent' else 'DEFAULT')) msg = '{:>7}'.format('MEM') ret.append(self.curse_add_line(msg, 'SORT' if self.sort_key == 'memory_usage' else 'DEFAULT')) msg = '/{:<7}'.format('MAX') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('IOR/s') ret.append(self.curse_add_line(msg)) msg = ' {:<7}'.format('IOW/s') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('Rx/s') ret.append(self.curse_add_line(msg)) msg = ' {:<7}'.format('Tx/s') ret.append(self.curse_add_line(msg)) msg = ' {:8}'.format('Command') ret.append(self.curse_add_line(msg)) # Data for container in self.stats['containers']: ret.append(self.curse_new_line()) if show_engine_name: ret.append(self.curse_add_line(' {:{width}}'.format(container["engine"], width=6))) if show_pod_name: ret.append(self.curse_add_line(' {:{width}}'.format(container.get("pod_id", "-"), width=12))) # Name ret.append(self.curse_add_line(self._msg_name(container=container, max_width=name_max_width))) # Status status = self.container_alert(container['Status']) msg = '{:>10}'.format(container['Status'][0:10]) ret.append(self.curse_add_line(msg, status)) # Uptime if container['Uptime']: msg = '{:>10}'.format(container['Uptime']) else: msg = '{:>10}'.format('_') ret.append(self.curse_add_line(msg)) # CPU try: msg = '{:>6.1f}'.format(container['cpu']['total']) except KeyError: msg = '{:>6}'.format('_') ret.append(self.curse_add_line(msg, self.get_views(item=container['name'], key='cpu', option='decoration'))) # MEM try: msg = '{:>7}'.format(self.auto_unit(container['memory']['usage'])) except KeyError: msg = '{:>7}'.format('_') ret.append(self.curse_add_line(msg, self.get_views(item=container['name'], key='mem', option='decoration'))) try: msg = '/{:<7}'.format(self.auto_unit(container['memory']['limit'])) except KeyError: msg = '/{:<7}'.format('_') ret.append(self.curse_add_line(msg)) # IO R/W unit = 'B' try: value = self.auto_unit(int(container['io']['ior'] // container['io']['time_since_update'])) + unit msg = '{:>7}'.format(value) except KeyError: msg = '{:>7}'.format('_') ret.append(self.curse_add_line(msg)) try: value = self.auto_unit(int(container['io']['iow'] // container['io']['time_since_update'])) + unit msg = ' {:<7}'.format(value) except KeyError: msg = ' {:<7}'.format('_') ret.append(self.curse_add_line(msg)) # NET RX/TX if args.byte: # Bytes per second (for dummy) to_bit = 1 unit = '' else: # Bits per second (for real network administrator | Default) to_bit = 8 unit = 'b' try: value = ( self.auto_unit( int(container['network']['rx'] // container['network']['time_since_update'] * to_bit) ) + unit ) msg = '{:>7}'.format(value) except KeyError: msg = '{:>7}'.format('_') ret.append(self.curse_add_line(msg)) try: value = ( self.auto_unit( int(container['network']['tx'] // container['network']['time_since_update'] * to_bit) ) + unit ) msg = ' {:<7}'.format(value) except KeyError: msg = ' {:<7}'.format('_') ret.append(self.curse_add_line(msg)) # Command if container['Command'] is not None: msg = ' {}'.format(' '.join(container['Command'])) else: msg = ' {}'.format('_') ret.append(self.curse_add_line(msg, splittable=True)) return ret def _msg_name(self, container, max_width): """Build the container name.""" name = container['name'][:max_width] return ' {:{width}}'.format(name, width=max_width) def container_alert(self, status): """Analyse the container status.""" if status == 'running': return 'OK' elif status == 'exited': return 'WARNING' elif status == 'dead': return 'CRITICAL' else: return 'CAREFUL' def sort_docker_stats(stats): # Sort Docker stats using the same function than processes sort_by = glances_processes.sort_key sort_by_secondary = 'memory_usage' if sort_by == 'memory_percent': sort_by = 'memory_usage' sort_by_secondary = 'cpu_percent' elif sort_by in ['username', 'io_counters', 'cpu_times']: sort_by = 'cpu_percent' # Sort docker stats sort_stats_processes( stats['containers'], sorted_by=sort_by, sorted_by_secondary=sort_by_secondary, # Reverse for all but name reverse=glances_processes.sort_key != 'name', ) # Return the main sort key and the sorted stats return sort_by, stats glances-3.4.0.3/glances/plugins/glances_psutilversion.py0000644000175000017500000000220014432156570023271 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """psutil plugin.""" from glances import psutil_version_info from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Get the psutil version for client/server purposes. stats is a tuple """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) self.reset() def reset(self): """Reset/init the stats.""" self.stats = None @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the stats.""" # Reset stats self.reset() # Return psutil version as a tuple if self.input_method == 'local': # psutil version only available in local try: self.stats = psutil_version_info except NameError: pass else: pass return self.stats glances-3.4.0.3/glances/plugins/__init__.py0000644000175000017500000000000014432156570020402 0ustar epsilonepsilonglances-3.4.0.3/glances/plugins/glances_mem.py0000644000175000017500000002566614432156570021146 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Virtual memory plugin.""" from glances.compat import iterkeys from glances.plugins.glances_plugin import GlancesPlugin import psutil # Fields description fields_description = { 'total': {'description': 'Total physical memory available.', 'unit': 'bytes', 'min_symbol': 'K'}, 'available': { 'description': 'The actual amount of available memory that can be given instantly \ to processes that request more memory in bytes; this is calculated by summing \ different memory values depending on the platform (e.g. free + buffers + cached on Linux) \ and it is supposed to be used to monitor actual memory usage in a cross platform fashion.', 'unit': 'bytes', 'min_symbol': 'K', }, 'percent': { 'description': 'The percentage usage calculated as (total - available) / total * 100.', 'unit': 'percent', }, 'used': { 'description': 'Memory used, calculated differently depending on the platform and \ designed for informational purposes only.', 'unit': 'bytes', 'min_symbol': 'K', }, 'free': { 'description': 'Memory not being used at all (zeroed) that is readily available; \ note that this doesn\'t reflect the actual memory available (use \'available\' instead).', 'unit': 'bytes', 'min_symbol': 'K', }, 'active': { 'description': '*(UNIX)*: memory currently in use or very recently used, and so it is in RAM.', 'unit': 'bytes', 'min_symbol': 'K', }, 'inactive': { 'description': '*(UNIX)*: memory that is marked as not used.', 'unit': 'bytes', 'min_symbol': 'K', 'short_name': 'inacti', }, 'buffers': { 'description': '*(Linux, BSD)*: cache for things like file system metadata.', 'unit': 'bytes', 'min_symbol': 'K', 'short_name': 'buffer', }, 'cached': {'description': '*(Linux, BSD)*: cache for various things.', 'unit': 'bytes', 'min_symbol': 'K'}, 'wired': { 'description': '*(BSD, macOS)*: memory that is marked to always stay in RAM. It is never moved to disk.', 'unit': 'bytes', 'min_symbol': 'K', }, 'shared': { 'description': '*(BSD)*: memory that may be simultaneously accessed by multiple processes.', 'unit': 'bytes', 'min_symbol': 'K', }, } # SNMP OID # Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0 # Total RAM used: .1.3.6.1.4.1.2021.4.6.0 # Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 # Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0 # Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0 # Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0 # Note: For Windows, stats are in the FS table snmp_oid = { 'default': { 'total': '1.3.6.1.4.1.2021.4.5.0', 'free': '1.3.6.1.4.1.2021.4.11.0', 'shared': '1.3.6.1.4.1.2021.4.13.0', 'buffers': '1.3.6.1.4.1.2021.4.14.0', 'cached': '1.3.6.1.4.1.2021.4.15.0', }, 'windows': { 'mnt_point': '1.3.6.1.2.1.25.2.3.1.3', 'alloc_unit': '1.3.6.1.2.1.25.2.3.1.4', 'size': '1.3.6.1.2.1.25.2.3.1.5', 'used': '1.3.6.1.2.1.25.2.3.1.6', }, 'esxi': { 'mnt_point': '1.3.6.1.2.1.25.2.3.1.3', 'alloc_unit': '1.3.6.1.2.1.25.2.3.1.4', 'size': '1.3.6.1.2.1.25.2.3.1.5', 'used': '1.3.6.1.2.1.25.2.3.1.6', }, } # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [{'name': 'percent', 'description': 'RAM memory usage', 'y_unit': '%'}] class Plugin(GlancesPlugin): """Glances' memory plugin. stats is a dict """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, fields_description=fields_description ) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update RAM memory stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Grab MEM using the psutil virtual_memory method vm_stats = psutil.virtual_memory() # Get all the memory stats (copy/paste of the psutil documentation) # total: total physical memory available. # available: the actual amount of available memory that can be given instantly # to processes that request more memory in bytes; this is calculated by summing # different memory values depending on the platform (e.g. free + buffers + cached on Linux) # and it is supposed to be used to monitor actual memory usage in a cross platform fashion. # percent: the percentage usage calculated as (total - available) / total * 100. # used: memory used, calculated differently depending on the platform and designed for informational # purposes only. # free: memory not being used at all (zeroed) that is readily available; note that this doesn't # reflect the actual memory available (use ‘available’ instead). # Platform-specific fields: # active: (UNIX): memory currently in use or very recently used, and so it is in RAM. # inactive: (UNIX): memory that is marked as not used. # buffers: (Linux, BSD): cache for things like file system metadata. # cached: (Linux, BSD): cache for various things. # wired: (BSD, macOS): memory that is marked to always stay in RAM. It is never moved to disk. # shared: (BSD): memory that may be simultaneously accessed by multiple processes. self.reset() for mem in [ 'total', 'available', 'percent', 'used', 'free', 'active', 'inactive', 'buffers', 'cached', 'wired', 'shared', ]: if hasattr(vm_stats, mem): stats[mem] = getattr(vm_stats, mem) # Use the 'free'/htop calculation # free=available+buffer+cached stats['free'] = stats['available'] if hasattr(stats, 'buffers'): stats['free'] += stats['buffers'] if hasattr(stats, 'cached'): stats['free'] += stats['cached'] # used=total-free stats['used'] = stats['total'] - stats['free'] elif self.input_method == 'snmp': # Update stats using SNMP if self.short_system_name in ('windows', 'esxi'): # Mem stats for Windows|Vmware Esxi are stored in the FS table try: fs_stat = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name], bulk=True) except KeyError: self.reset() else: for fs in fs_stat: # The Physical Memory (Windows) or Real Memory (VMware) # gives statistics on RAM usage and availability. if fs in ('Physical Memory', 'Real Memory'): stats['total'] = int(fs_stat[fs]['size']) * int(fs_stat[fs]['alloc_unit']) stats['used'] = int(fs_stat[fs]['used']) * int(fs_stat[fs]['alloc_unit']) stats['percent'] = float(stats['used'] * 100 / stats['total']) stats['free'] = stats['total'] - stats['used'] break else: # Default behavior for others OS stats = self.get_stats_snmp(snmp_oid=snmp_oid['default']) if stats['total'] == '': self.reset() return self.stats for key in iterkeys(stats): if stats[key] != '': stats[key] = float(stats[key]) * 1024 # Use the 'free'/htop calculation stats['free'] = stats['free'] - stats['total'] + (stats['buffers'] + stats['cached']) # used=total-free stats['used'] = stats['total'] - stats['free'] # percent: the percentage usage calculated as (total - available) / total * 100. stats['percent'] = float((stats['total'] - stats['free']) / stats['total'] * 100) # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert and log self.views['percent']['decoration'] = self.get_alert_log(self.stats['used'], maximum=self.stats['total']) # Optional for key in ['active', 'inactive', 'buffers', 'cached']: if key in self.stats: self.views[key]['optional'] = True def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and plugin not disabled if not self.stats or self.is_disabled(): return ret # First line # total% + active msg = '{}'.format('MEM') ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {:2}'.format(self.trend_msg(self.get_trend('percent'))) ret.append(self.curse_add_line(msg)) # Percent memory usage msg = '{:>7.1%}'.format(self.stats['percent'] / 100) ret.append(self.curse_add_line(msg, self.get_views(key='percent', option='decoration'))) # Active memory usage ret.extend(self.curse_add_stat('active', width=16, header=' ')) # Second line # total + inactive ret.append(self.curse_new_line()) # Total memory usage ret.extend(self.curse_add_stat('total', width=15)) # Inactive memory usage ret.extend(self.curse_add_stat('inactive', width=16, header=' ')) # Third line # used + buffers ret.append(self.curse_new_line()) # Used memory usage ret.extend(self.curse_add_stat('used', width=15)) # Buffers memory usage ret.extend(self.curse_add_stat('buffers', width=16, header=' ')) # Fourth line # free + cached ret.append(self.curse_new_line()) # Free memory usage ret.extend(self.curse_add_stat('free', width=15)) # Cached memory usage ret.extend(self.curse_add_stat('cached', width=16, header=' ')) return ret glances-3.4.0.3/glances/plugins/glances_uptime.py0000644000175000017500000000471314432156570021661 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Uptime plugin.""" from datetime import datetime, timedelta from glances.plugins.glances_plugin import GlancesPlugin import psutil # SNMP OID snmp_oid = {'_uptime': '1.3.6.1.2.1.1.3.0'} class Plugin(GlancesPlugin): """Glances uptime plugin. stats is date (string) """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True # Set the message position self.align = 'right' # Init the stats self.uptime = datetime.now() - datetime.fromtimestamp(psutil.boot_time()) def get_export(self): """Overwrite the default export method. Export uptime in seconds. """ # Convert the delta time to seconds (with cast) # Correct issue #1092 (thanks to @IanTAtWork) return {'seconds': int(self.uptime.total_seconds())} @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update uptime stat using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib self.uptime = datetime.now() - datetime.fromtimestamp(psutil.boot_time()) # Convert uptime to string (because datetime is not JSONifi) stats = str(self.uptime).split('.')[0] elif self.input_method == 'snmp': # Update stats using SNMP uptime = self.get_stats_snmp(snmp_oid=snmp_oid)['_uptime'] try: # In hundredths of seconds stats = str(timedelta(seconds=int(uptime) / 100)) except Exception: pass # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the string to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and plugin not disabled if not self.stats or self.is_disabled(): return ret ret = [self.curse_add_line('Uptime: {}'.format(self.stats))] return ret glances-3.4.0.3/glances/plugins/glances_cpu.py0000644000175000017500000003661714432156570021155 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """CPU plugin.""" from glances.timer import getTimeSinceLastUpdate from glances.compat import iterkeys from glances.cpu_percent import cpu_percent from glances.globals import LINUX, WINDOWS, SUNOS from glances.plugins.glances_core import Plugin as CorePlugin from glances.plugins.glances_plugin import GlancesPlugin import psutil # Fields description # description: human readable description # short_name: shortname to use un UI # unit: unit type # rate: is it a rate ? If yes, // by time_since_update when displayed, # min_symbol: Auto unit should be used if value > than 1 'X' (K, M, G)... fields_description = { 'total': {'description': 'Sum of all CPU percentages (except idle).', 'unit': 'percent'}, 'system': { 'description': 'percent time spent in kernel space. System CPU time is the \ time spent running code in the Operating System kernel.', 'unit': 'percent', }, 'user': { 'description': 'CPU percent time spent in user space. \ User CPU time is the time spent on the processor running your program\'s code (or code in libraries).', 'unit': 'percent', }, 'iowait': { 'description': '*(Linux)*: percent time spent by the CPU waiting for I/O \ operations to complete.', 'unit': 'percent', }, 'dpc': { 'description': '*(Windows)*: time spent servicing deferred procedure calls (DPCs)', 'unit': 'percent', }, 'idle': { 'description': 'percent of CPU used by any program. Every program or task \ that runs on a computer system occupies a certain amount of processing \ time on the CPU. If the CPU has completed all tasks it is idle.', 'unit': 'percent', }, 'irq': { 'description': '*(Linux and BSD)*: percent time spent servicing/handling \ hardware/software interrupts. Time servicing interrupts (hardware + \ software).', 'unit': 'percent', }, 'nice': { 'description': '*(Unix)*: percent time occupied by user level processes with \ a positive nice value. The time the CPU has spent running users\' \ processes that have been *niced*.', 'unit': 'percent', }, 'steal': { 'description': '*(Linux)*: percentage of time a virtual CPU waits for a real \ CPU while the hypervisor is servicing another virtual processor.', 'unit': 'percent', }, 'ctx_switches': { 'description': 'number of context switches (voluntary + involuntary) per \ second. A context switch is a procedure that a computer\'s CPU (central \ processing unit) follows to change from one task (or process) to \ another while ensuring that the tasks do not conflict.', 'unit': 'number', 'rate': True, 'min_symbol': 'K', 'short_name': 'ctx_sw', }, 'interrupts': { 'description': 'number of interrupts per second.', 'unit': 'number', 'rate': True, 'min_symbol': 'K', 'short_name': 'inter', }, 'soft_interrupts': { 'description': 'number of software interrupts per second. Always set to \ 0 on Windows and SunOS.', 'unit': 'number', 'rate': True, 'min_symbol': 'K', 'short_name': 'sw_int', }, 'syscalls': { 'description': 'number of system calls per second. Always 0 on Linux OS.', 'unit': 'number', 'rate': True, 'min_symbol': 'K', 'short_name': 'sys_call', }, 'cpucore': {'description': 'Total number of CPU core.', 'unit': 'number'}, 'time_since_update': {'description': 'Number of seconds since last update.', 'unit': 'seconds'}, } # SNMP OID # percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 # percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 # percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 snmp_oid = { 'default': { 'user': '1.3.6.1.4.1.2021.11.9.0', 'system': '1.3.6.1.4.1.2021.11.10.0', 'idle': '1.3.6.1.4.1.2021.11.11.0', }, 'windows': {'percent': '1.3.6.1.2.1.25.3.3.1.2'}, 'esxi': {'percent': '1.3.6.1.2.1.25.3.3.1.2'}, 'netapp': { 'system': '1.3.6.1.4.1.789.1.2.1.3.0', 'idle': '1.3.6.1.4.1.789.1.2.1.5.0', 'cpucore': '1.3.6.1.4.1.789.1.2.1.6.0', }, } # Define the history items list # - 'name' define the stat identifier # - 'y_unit' define the Y label items_history_list = [ {'name': 'user', 'description': 'User CPU usage', 'y_unit': '%'}, {'name': 'system', 'description': 'System CPU usage', 'y_unit': '%'}, ] class Plugin(GlancesPlugin): """Glances CPU plugin. 'stats' is a dictionary that contains the system-wide CPU utilization as a percentage. """ def __init__(self, args=None, config=None): """Init the CPU plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, fields_description=fields_description ) # We want to display the stat in the curse interface self.display_curse = True # Call CorePlugin in order to display the core number try: self.nb_log_core = CorePlugin(args=self.args).update()["log"] except Exception: self.nb_log_core = 1 @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update CPU stats using the input method.""" # Grab stats into self.stats if self.input_method == 'local': stats = self.update_local() elif self.input_method == 'snmp': stats = self.update_snmp() else: stats = self.get_init_value() # Update the stats self.stats = stats return self.stats def update_local(self): """Update CPU stats using psutil.""" # Grab CPU stats using psutil's cpu_percent and cpu_times_percent # Get all possible values for CPU stats: user, system, idle, # nice (UNIX), iowait (Linux), irq (Linux, FreeBSD), steal (Linux 2.6.11+) # The following stats are returned by the API but not displayed in the UI: # softirq (Linux), guest (Linux 2.6.24+), guest_nice (Linux 3.2.0+) # Init new stats stats = self.get_init_value() stats['total'] = cpu_percent.get() # Standards stats # - user: time spent by normal processes executing in user mode; on Linux this also includes guest time # - system: time spent by processes executing in kernel mode # - idle: time spent doing nothing # - nice (UNIX): time spent by niced (prioritized) processes executing in user mode # on Linux this also includes guest_nice time # - iowait (Linux): time spent waiting for I/O to complete. # This is not accounted in idle time counter. # - irq (Linux, BSD): time spent for servicing hardware interrupts # - softirq (Linux): time spent for servicing software interrupts # - steal (Linux 2.6.11+): time spent by other operating systems running in a virtualized environment # - guest (Linux 2.6.24+): time spent running a virtual CPU for guest operating systems under # the control of the Linux kernel # - guest_nice (Linux 3.2.0+): time spent running a niced guest (virtual CPU for guest operating systems # under the control of the Linux kernel) # - interrupt (Windows): time spent for servicing hardware interrupts ( similar to “irq” on UNIX) # - dpc (Windows): time spent servicing deferred procedure calls (DPCs) cpu_times_percent = psutil.cpu_times_percent(interval=0.0) for stat in cpu_times_percent._fields: stats[stat] = getattr(cpu_times_percent, stat) # Additional CPU stats (number of events not as a %; psutil>=4.1.0) # - ctx_switches: number of context switches (voluntary + involuntary) since boot. # - interrupts: number of interrupts since boot. # - soft_interrupts: number of software interrupts since boot. Always set to 0 on Windows and SunOS. # - syscalls: number of system calls since boot. Always set to 0 on Linux. cpu_stats = psutil.cpu_stats() # By storing time data we enable Rx/s and Tx/s calculations in the # XML/RPC API, which would otherwise be overly difficult work # for users of the API stats['time_since_update'] = getTimeSinceLastUpdate('cpu') # Core number is needed to compute the CTX switch limit stats['cpucore'] = self.nb_log_core # Previous CPU stats are stored in the cpu_stats_old variable if not hasattr(self, 'cpu_stats_old'): # Init the stats (needed to have the key name for export) for stat in cpu_stats._fields: # @TODO: better to set it to None but should refactor views and UI... stats[stat] = 0 else: # Others calls... for stat in cpu_stats._fields: if getattr(cpu_stats, stat) is not None: stats[stat] = getattr(cpu_stats, stat) - getattr(self.cpu_stats_old, stat) # Save stats to compute next step self.cpu_stats_old = cpu_stats return stats def update_snmp(self): """Update CPU stats using SNMP.""" # Init new stats stats = self.get_init_value() # Update stats using SNMP if self.short_system_name in ('windows', 'esxi'): # Windows or VMWare ESXi # You can find the CPU utilization of windows system by querying the oid # Give also the number of core (number of element in the table) try: cpu_stats = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name], bulk=True) except KeyError: self.reset() # Iter through CPU and compute the idle CPU stats stats['nb_log_core'] = 0 stats['idle'] = 0 for c in cpu_stats: if c.startswith('percent'): stats['idle'] += float(cpu_stats['percent.3']) stats['nb_log_core'] += 1 if stats['nb_log_core'] > 0: stats['idle'] = stats['idle'] / stats['nb_log_core'] stats['idle'] = 100 - stats['idle'] stats['total'] = 100 - stats['idle'] else: # Default behavior try: stats = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name]) except KeyError: stats = self.get_stats_snmp(snmp_oid=snmp_oid['default']) if stats['idle'] == '': self.reset() return self.stats # Convert SNMP stats to float for key in iterkeys(stats): stats[key] = float(stats[key]) stats['total'] = 100 - stats['idle'] return stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert and log for key in ['user', 'system', 'iowait', 'dpc', 'total']: if key in self.stats: self.views[key]['decoration'] = self.get_alert_log(self.stats[key], header=key) # Alert only for key in ['steal']: if key in self.stats: self.views[key]['decoration'] = self.get_alert(self.stats[key], header=key) # Alert only but depend on Core number for key in ['ctx_switches']: if key in self.stats: self.views[key]['decoration'] = self.get_alert( self.stats[key], maximum=100 * self.stats['cpucore'], header=key ) # Optional for key in ['nice', 'irq', 'idle', 'steal', 'ctx_switches', 'interrupts', 'soft_interrupts', 'syscalls']: if key in self.stats: self.views[key]['optional'] = True def msg_curse(self, args=None, max_width=None): """Return the list to display in the UI.""" # Init the return message ret = [] # Only process if stats exist and plugin not disable if not self.stats or self.args.percpu or self.is_disabled(): return ret # Some tag to enable/disable stats (example: idle_tag triggered on Windows OS) idle_tag = 'user' not in self.stats # First line # Total + (idle) + ctx_sw msg = '{}'.format('CPU') ret.append(self.curse_add_line(msg, "TITLE")) trend_user = self.get_trend('user') trend_system = self.get_trend('system') if trend_user is None or trend_user is None: trend_cpu = None else: trend_cpu = trend_user + trend_system msg = ' {:4}'.format(self.trend_msg(trend_cpu)) ret.append(self.curse_add_line(msg)) # Total CPU usage msg = '{:5.1f}%'.format(self.stats['total']) ret.append(self.curse_add_line(msg, self.get_views(key='total', option='decoration'))) # Idle CPU if 'idle' in self.stats and not idle_tag: msg = ' {:8}'.format('idle') ret.append(self.curse_add_line(msg, optional=self.get_views(key='idle', option='optional'))) msg = '{:4.1f}%'.format(self.stats['idle']) ret.append(self.curse_add_line(msg, optional=self.get_views(key='idle', option='optional'))) # ctx_switches # On WINDOWS/SUNOS the ctx_switches is displayed in the third line if not WINDOWS and not SUNOS: ret.extend(self.curse_add_stat('ctx_switches', width=15, header=' ')) # Second line # user|idle + irq + interrupts ret.append(self.curse_new_line()) # User CPU if not idle_tag: ret.extend(self.curse_add_stat('user', width=15)) elif 'idle' in self.stats: ret.extend(self.curse_add_stat('idle', width=15)) # IRQ CPU ret.extend(self.curse_add_stat('irq', width=14, header=' ')) # interrupts ret.extend(self.curse_add_stat('interrupts', width=15, header=' ')) # Third line # system|core + nice + sw_int ret.append(self.curse_new_line()) # System CPU if not idle_tag: ret.extend(self.curse_add_stat('system', width=15)) else: ret.extend(self.curse_add_stat('core', width=15)) # Nice CPU ret.extend(self.curse_add_stat('nice', width=14, header=' ')) # soft_interrupts if not WINDOWS and not SUNOS: ret.extend(self.curse_add_stat('soft_interrupts', width=15, header=' ')) else: ret.extend(self.curse_add_stat('ctx_switches', width=15, header=' ')) # Fourth line # iowait + steal + syscalls ret.append(self.curse_new_line()) if 'iowait' in self.stats: # IOWait CPU ret.extend(self.curse_add_stat('iowait', width=15)) elif 'dpc' in self.stats: # DPC CPU ret.extend(self.curse_add_stat('dpc', width=15)) # Steal CPU usage ret.extend(self.curse_add_stat('steal', width=14, header=' ')) # syscalls: number of system calls since boot. Always set to 0 on Linux. (do not display) if not LINUX: ret.extend(self.curse_add_stat('syscalls', width=15, header=' ')) # Return the message with decoration return ret glances-3.4.0.3/glances/plugins/glances_now.py0000644000175000017500000000365414432156570021164 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Now (current date) plugin.""" from time import tzname, strftime from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Plugin to get the current date/time. stats is (string) """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True # Set the message position self.align = 'bottom' if args.strftime_format: self.strftime = args.strftime_format elif config is not None: if 'global' in config.as_dict(): self.strftime = config.as_dict()['global']['strftime_format'] def reset(self): """Reset/init the stats.""" self.stats = '' def update(self): """Update current date/time.""" # Had to convert it to string because datetime is not JSON serializable # Add the time zone (issue #1249 / #1337 / #1598) if self.strftime: self.stats = strftime(self.strftime) else: if len(tzname[1]) > 6: self.stats = strftime('%Y-%m-%d %H:%M:%S %z') else: self.stats = strftime('%Y-%m-%d %H:%M:%S %Z') return self.stats def msg_curse(self, args=None, max_width=None): """Return the string to display in the curse interface.""" # Init the return message ret = [] if not self.stats or self.is_disabled(): return ret # Build the string message # 23 is the padding for the process list msg = '{:23}'.format(self.stats) ret.append(self.curse_add_line(msg)) return ret glances-3.4.0.3/glances/plugins/glances_quicklook.py0000644000175000017500000001535114432156570022357 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Quicklook plugin.""" from glances.cpu_percent import cpu_percent from glances.outputs.glances_bars import Bar from glances.outputs.glances_sparklines import Sparkline from glances.plugins.glances_plugin import GlancesPlugin import psutil # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [ {'name': 'cpu', 'description': 'CPU percent usage', 'y_unit': '%'}, {'name': 'percpu', 'description': 'PERCPU percent usage', 'y_unit': '%'}, {'name': 'mem', 'description': 'MEM percent usage', 'y_unit': '%'}, {'name': 'swap', 'description': 'SWAP percent usage', 'y_unit': '%'}, ] class Plugin(GlancesPlugin): """Glances quicklook plugin. 'stats' is a dictionary. """ def __init__(self, args=None, config=None): """Init the quicklook plugin.""" super(Plugin, self).__init__(args=args, config=config, items_history_list=items_history_list) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update quicklook stats using the input method.""" # Init new stats stats = self.get_init_value() # Grab quicklook stats: CPU, MEM and SWAP if self.input_method == 'local': # Get the latest CPU percent value stats['cpu'] = cpu_percent.get() stats['percpu'] = cpu_percent.get(percpu=True) # Use the psutil lib for the memory (virtual and swap) stats['mem'] = psutil.virtual_memory().percent try: stats['swap'] = psutil.swap_memory().percent except RuntimeError: # Correct issue in Illumos OS (see #1767) stats['swap'] = None # Get additional information cpu_info = cpu_percent.get_info() stats['cpu_name'] = cpu_info['cpu_name'] stats['cpu_hz_current'] = ( self._mhz_to_hz(cpu_info['cpu_hz_current']) if cpu_info['cpu_hz_current'] is not None else None ) stats['cpu_hz'] = self._mhz_to_hz(cpu_info['cpu_hz']) if cpu_info['cpu_hz'] is not None else None elif self.input_method == 'snmp': # Not available pass # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert only for key in ['cpu', 'mem', 'swap']: if key in self.stats: self.views[key]['decoration'] = self.get_alert(self.stats[key], header=key) def msg_curse(self, args=None, max_width=10): """Return the list to display in the UI.""" # Init the return message ret = [] # Only process if stats exist... if not self.stats or self.is_disabled(): return ret # Define the data: Bar (default behavior) or Sparkline sparkline_tag = False if self.args.sparkline and self.history_enable() and not self.args.client: data = Sparkline(max_width) sparkline_tag = data.available if not sparkline_tag: # Fallback to bar if Sparkline module is not installed data = Bar(max_width, percentage_char=self.get_conf_value('percentage_char', default=['|'])[0]) # Build the string message if 'cpu_name' in self.stats and 'cpu_hz_current' in self.stats and 'cpu_hz' in self.stats: msg_name = self.stats['cpu_name'] if self.stats['cpu_hz_current'] and self.stats['cpu_hz']: msg_freq = ' - {:.2f}/{:.2f}GHz'.format( self._hz_to_ghz(self.stats['cpu_hz_current']), self._hz_to_ghz(self.stats['cpu_hz']) ) else: msg_freq = '' if len(msg_name + msg_freq) - 6 <= max_width: ret.append(self.curse_add_line(msg_name)) ret.append(self.curse_add_line(msg_freq)) ret.append(self.curse_new_line()) for key in ['cpu', 'mem', 'swap']: if key == 'cpu' and args.percpu: if sparkline_tag: raw_cpu = self.get_raw_history(item='percpu', nb=data.size) for cpu_index, cpu in enumerate(self.stats['percpu']): if sparkline_tag: # Sparkline display an history data.percents = [i[1][cpu_index]['total'] for i in raw_cpu] # A simple padding in order to align metrics to the right data.percents += [None] * (data.size - len(data.percents)) else: # Bar only the last value data.percent = cpu['total'] if cpu[cpu['key']] < 10: msg = '{:3}{} '.format(key.upper(), cpu['cpu_number']) else: msg = '{:4} '.format(cpu['cpu_number']) ret.extend(self._msg_create_line(msg, data, key)) ret.append(self.curse_new_line()) else: if sparkline_tag: # Sparkline display an history data.percents = [i[1] for i in self.get_raw_history(item=key, nb=data.size)] # A simple padding in order to align metrics to the right data.percents += [None] * (data.size - len(data.percents)) else: # Bar only the last value data.percent = self.stats[key] msg = '{:4} '.format(key.upper()) ret.extend(self._msg_create_line(msg, data, key)) ret.append(self.curse_new_line()) # Remove the last new line ret.pop() # Return the message with decoration return ret def _msg_create_line(self, msg, data, key): """Create a new line to the Quick view.""" return [ self.curse_add_line(msg), self.curse_add_line(data.pre_char, decoration='BOLD'), self.curse_add_line(data.get(), self.get_views(key=key, option='decoration')), self.curse_add_line(data.post_char, decoration='BOLD'), self.curse_add_line(' '), ] def _hz_to_ghz(self, hz): """Convert Hz to Ghz.""" return hz / 1000000000.0 def _mhz_to_hz(self, hz): """Convert Mhz to Hz.""" return hz * 1000000.0 glances-3.4.0.3/glances/plugins/glances_help.py0000644000175000017500000002035314432156570021304 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ Help plugin. Just a stupid plugin to display the help screen. """ import sys from glances.compat import iteritems from glances import __version__, psutil_version from glances.plugins.glances_plugin import GlancesPlugin from itertools import chain class Plugin(GlancesPlugin): """Glances help plugin.""" def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # Set the config instance self.config = config # We want to display the stat in the curse interface self.display_curse = True # init data dictionary, to preserve insertion order if sys.version_info < (3, 6): from collections import OrderedDict self.view_data = OrderedDict() else: self.view_data = {} self.generate_view_data() def reset(self): """No stats. It is just a plugin to display the help.""" def update(self): """No stats. It is just a plugin to display the help.""" def generate_view_data(self): """Generate the views.""" self.view_data['version'] = '{} {}'.format('Glances', __version__) self.view_data['psutil_version'] = ' with psutil {}'.format(psutil_version) try: self.view_data['configuration_file'] = 'Configuration file: {}'.format(self.config.loaded_config_file) except AttributeError: pass msg_col = ' {0:1} {1:34}' msg_header = '{0:39}' self.view_data.update( [ # First column # ('header_sort', msg_header.format('SORT PROCESSES:')), ('sort_auto', msg_col.format('a', 'Automatically')), ('sort_cpu', msg_col.format('c', 'CPU%')), ('sort_io_rate', msg_col.format('i', 'I/O rate')), ('sort_mem', msg_col.format('m', 'MEM%')), ('sort_process_name', msg_col.format('p', 'Process name')), ('sort_cpu_times', msg_col.format('t', 'TIME')), ('sort_user', msg_col.format('u', 'USER')), ('header_show_hide', msg_header.format('SHOW/HIDE SECTION:')), ('show_hide_application_monitoring', msg_col.format('A', 'Application monitoring')), ('show_hide_diskio', msg_col.format('d', 'Disk I/O')), ('show_hide_docker', msg_col.format('D', 'Docker')), ('show_hide_top_extended_stats', msg_col.format('e', 'Top extended stats')), ('show_hide_filesystem', msg_col.format('f', 'Filesystem')), ('show_hide_gpu', msg_col.format('G', 'GPU')), ('show_hide_ip', msg_col.format('I', 'IP')), ('show_hide_tcp_connection', msg_col.format('K', 'TCP')), ('show_hide_alert', msg_col.format('l', 'Alert logs')), ('show_hide_network', msg_col.format('n', 'Network')), ('show_hide_current_time', msg_col.format('N', 'Time')), ('show_hide_irq', msg_col.format('Q', 'IRQ')), ('show_hide_raid_plugin', msg_col.format('R', 'RAID')), ('show_hide_sensors', msg_col.format('s', 'Sensors')), ('show_hide_wifi_module', msg_col.format('W', 'Wifi')), ('show_hide_processes', msg_col.format('z', 'Processes')), ('show_hide_left_sidebar', msg_col.format('2', 'Left sidebar')), # Second column # ('show_hide_quick_look', msg_col.format('3', 'Quick Look')), ('show_hide_cpu_mem_swap', msg_col.format('4', 'CPU, MEM, and SWAP')), ('show_hide_all', msg_col.format('5', 'ALL')), ('header_toggle', msg_header.format('TOGGLE DATA TYPE:')), ('toggle_bits_bytes', msg_col.format('b', 'Network I/O, bits/bytes')), ('toggle_count_rate', msg_col.format('B', 'Disk I/O, count/rate')), ('toggle_used_free', msg_col.format('F', 'Filesystem space, used/free')), ('toggle_bar_sparkline', msg_col.format('S', 'Quick Look, bar/sparkline')), ('toggle_separate_combined', msg_col.format('T', 'Network I/O, separate/combined')), ('toggle_live_cumulative', msg_col.format('U', 'Network I/O, live/cumulative')), ('toggle_linux_percentage', msg_col.format('0', 'Load, Linux/percentage')), ('toggle_cpu_individual_combined', msg_col.format('1', 'CPU, individual/combined')), ('toggle_gpu_individual_combined', msg_col.format('6', 'GPU, individual/combined')), ('toggle_short_full', msg_col.format('/', 'Process names, short/full')), ('header_miscellaneous', msg_header.format('MISCELLANEOUS:')), ('misc_erase_process_filter', msg_col.format('E', 'Erase process filter')), ('misc_generate_history_graphs', msg_col.format('g', 'Generate history graphs')), ('misc_help', msg_col.format('h', 'HELP')), ('misc_accumulate_processes_by_program', msg_col.format('j', 'Display threads or programs')), ('misc_increase_nice_process', msg_col.format('+', 'Increase nice process')), ('misc_decrease_nice_process', msg_col.format('-', 'Decrease nice process (need admin rights)')), ('misc_kill_process', msg_col.format('k', 'Kill process')), ('misc_reset_processes_summary_min_max', msg_col.format('M', 'Reset processes summary min/max')), ('misc_quit', msg_col.format('q', 'QUIT (or Esc or Ctrl-C)')), ('misc_reset_history', msg_col.format('r', 'Reset history')), ('misc_delete_warning_alerts', msg_col.format('w', 'Delete warning alerts')), ('misc_delete_warning_and_critical_alerts', msg_col.format('x', 'Delete warning & critical alerts')), ('misc_theme_white', msg_col.format('9', 'Optimize colors for white background')), ('misc_edit_process_filter_pattern', ' ENTER: Edit process filter pattern'), ] ) def get_view_data(self, args=None): """Return the view.""" return self.view_data def msg_curse(self, args=None, max_width=None): """Return the list to display in the curse interface.""" # Init the return message ret = [] # Build the header message ret.append(self.curse_add_line(self.view_data['version'], 'TITLE')) ret.append(self.curse_add_line(self.view_data['psutil_version'])) ret.append(self.curse_new_line()) # Build the configuration file path if 'configuration_file' in self.view_data: ret.append(self.curse_add_line(self.view_data['configuration_file'])) ret.append(self.curse_new_line()) ret.append(self.curse_new_line()) # key-shortcuts # # Collect all values after the 1st key-msg # in a list of curse-lines. # shortcuts = [] collecting = False for k, v in iteritems(self.view_data): if collecting: pass elif k == 'header_sort': collecting = True else: continue shortcuts.append(self.curse_add_line(v)) # Divide shortcuts into 2 columns # and if number of schortcuts is even, # make the 1st column taller (len+1). # nlines = (len(shortcuts) + 1) // 2 ret.extend( msg for triplet in zip( iter(shortcuts[:nlines]), chain(shortcuts[nlines:], iter(lambda: self.curse_add_line(''), None)), iter(self.curse_new_line, None), ) for msg in triplet ) ret.append(self.curse_new_line()) ret.append(self.curse_add_line('For an exhaustive list of key bindings:')) ret.append(self.curse_new_line()) ret.append(self.curse_add_line('https://glances.readthedocs.io/en/latest/cmds.html#interactive-commands')) # Return the message with decoration return ret glances-3.4.0.3/glances/plugins/glances_ports.py0000644000175000017500000002652314432156570021530 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Ports scanner plugin.""" import os import subprocess import threading import socket import time import numbers from glances.globals import WINDOWS, MACOS, BSD from glances.ports_list import GlancesPortsList from glances.web_list import GlancesWebList from glances.timer import Counter from glances.compat import bool_type from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin try: import requests requests_tag = True except ImportError as e: requests_tag = False logger.warning("Missing Python Lib ({}), Ports plugin is limited to port scanning".format(e)) class Plugin(GlancesPlugin): """Glances ports scanner plugin.""" def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) self.args = args self.config = config # We want to display the stat in the curse interface self.display_curse = True # Init stats self.stats = ( GlancesPortsList(config=config, args=args).get_ports_list() + GlancesWebList(config=config, args=args).get_web_list() ) # Global Thread running all the scans self._thread = None def exit(self): """Overwrite the exit method to close threads.""" if self._thread is not None: self._thread.stop() # Call the father class super(Plugin, self).exit() @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the ports list.""" if self.input_method == 'local': # Only refresh: # * if there is not other scanning thread # * every refresh seconds (define in the configuration file) if self._thread is None: thread_is_running = False else: thread_is_running = self._thread.is_alive() if not thread_is_running: # Run ports scanner self._thread = ThreadScanner(self.stats) self._thread.start() # # Restart timer # if len(self.stats) > 0: # self.timer_ports = Timer(self.stats[0]['refresh']) # else: # self.timer_ports = Timer(0) else: # Not available in SNMP mode pass return self.stats def get_key(self): """Return the key of the list.""" return 'indice' def get_ports_alert(self, port, header="", log=False): """Return the alert status relative to the port scan return value.""" ret = 'OK' if port['status'] is None: ret = 'CAREFUL' elif port['status'] == 0: ret = 'CRITICAL' elif ( isinstance(port['status'], (float, int)) and port['rtt_warning'] is not None and port['status'] > port['rtt_warning'] ): ret = 'WARNING' # Get stat name stat_name = self.get_stat_name(header=header) # Manage threshold self.manage_threshold(stat_name, ret) # Manage action self.manage_action(stat_name, ret.lower(), header, port[self.get_key()]) return ret def get_web_alert(self, web, header="", log=False): """Return the alert status relative to the web/url scan return value.""" ret = 'OK' if web['status'] is None: ret = 'CAREFUL' elif web['status'] not in [200, 301, 302]: ret = 'CRITICAL' elif web['rtt_warning'] is not None and web['elapsed'] > web['rtt_warning']: ret = 'WARNING' # Get stat name stat_name = self.get_stat_name(header=header) # Manage threshold self.manage_threshold(stat_name, ret) # Manage action self.manage_action(stat_name, ret.lower(), header, web[self.get_key()]) return ret def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message # Only process if stats exist and display plugin enable... ret = [] if not self.stats or args.disable_ports: return ret # Max size for the interface name name_max_width = max_width - 7 # Build the string message for p in self.stats: if 'host' in p: if p['host'] is None: status = 'None' elif p['status'] is None: status = 'Scanning' elif isinstance(p['status'], bool_type) and p['status'] is True: status = 'Open' elif p['status'] == 0: status = 'Timeout' else: # Convert second to ms status = '{0:.0f}ms'.format(p['status'] * 1000.0) msg = '{:{width}}'.format(p['description'][0:name_max_width], width=name_max_width) ret.append(self.curse_add_line(msg)) msg = '{:>9}'.format(status) ret.append(self.curse_add_line(msg, self.get_ports_alert(p, header=p['indice'] + '_rtt'))) ret.append(self.curse_new_line()) elif 'url' in p: msg = '{:{width}}'.format(p['description'][0:name_max_width], width=name_max_width) ret.append(self.curse_add_line(msg)) if isinstance(p['status'], numbers.Number): status = 'Code {}'.format(p['status']) elif p['status'] is None: status = 'Scanning' else: status = p['status'] msg = '{:>9}'.format(status) ret.append(self.curse_add_line(msg, self.get_web_alert(p, header=p['indice'] + '_rtt'))) ret.append(self.curse_new_line()) # Delete the last empty line try: ret.pop() except IndexError: pass return ret class ThreadScanner(threading.Thread): """ Specific thread for the port/web scanner. stats is a list of dict """ def __init__(self, stats): """Init the class.""" logger.debug("ports plugin - Create thread for scan list {}".format(stats)) super(ThreadScanner, self).__init__() # Event needed to stop properly the thread self._stopper = threading.Event() # The class return the stats as a list of dict self._stats = stats # Is part of Ports plugin self.plugin_name = "ports" def run(self): """Grab the stats. Infinite loop, should be stopped by calling the stop() method. """ for p in self._stats: # End of the thread has been asked if self.stopped(): break # Scan a port (ICMP or TCP) if 'port' in p: self._port_scan(p) # Had to wait between two scans # If not, result are not ok time.sleep(1) # Scan an URL elif 'url' in p and requests_tag: self._web_scan(p) @property def stats(self): """Stats getter.""" return self._stats @stats.setter def stats(self, value): """Stats setter.""" self._stats = value def stop(self, timeout=None): """Stop the thread.""" logger.debug("ports plugin - Close thread for scan list {}".format(self._stats)) self._stopper.set() def stopped(self): """Return True is the thread is stopped.""" return self._stopper.is_set() def _web_scan(self, web): """Scan the Web/URL (dict) and update the status key.""" try: req = requests.head( web['url'], allow_redirects=True, verify=web['ssl_verify'], proxies=web['proxies'], timeout=web['timeout'], ) except Exception as e: logger.debug(e) web['status'] = 'Error' web['elapsed'] = 0 else: web['status'] = req.status_code web['elapsed'] = req.elapsed.total_seconds() return web def _port_scan(self, port): """Scan the port structure (dict) and update the status key.""" if int(port['port']) == 0: return self._port_scan_icmp(port) else: return self._port_scan_tcp(port) def _resolv_name(self, hostname): """Convert hostname to IP address.""" ip = hostname try: ip = socket.gethostbyname(hostname) except Exception as e: logger.debug("{}: Cannot convert {} to IP address ({})".format(self.plugin_name, hostname, e)) return ip def _port_scan_icmp(self, port): """Scan the (ICMP) port structure (dict) and update the status key.""" ret = None # Create the ping command # Use the system ping command because it already have the sticky bit set # Python can not create ICMP packet with non root right if WINDOWS: timeout_opt = '-w' count_opt = '-n' elif MACOS or BSD: timeout_opt = '-t' count_opt = '-c' else: # Linux and co... timeout_opt = '-W' count_opt = '-c' # Build the command line # Note: Only string are allowed cmd = [ 'ping', count_opt, '1', timeout_opt, str(self._resolv_name(port['timeout'])), self._resolv_name(port['host']), ] fnull = open(os.devnull, 'w') try: counter = Counter() ret = subprocess.check_call(cmd, stdout=fnull, stderr=fnull, close_fds=True) if ret == 0: port['status'] = counter.get() else: port['status'] = False except subprocess.CalledProcessError: # Correct issue #1084: No Offline status for timed-out ports port['status'] = False except Exception as e: logger.debug("{}: Error while pinging host {} ({})".format(self.plugin_name, port['host'], e)) fnull.close() return ret def _port_scan_tcp(self, port): """Scan the (TCP) port structure (dict) and update the status key.""" ret = None # Create and configure the scanning socket try: socket.setdefaulttimeout(port['timeout']) _socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except Exception as e: logger.debug("{}: Error while creating scanning socket ({})".format(self.plugin_name, e)) # Scan port ip = self._resolv_name(port['host']) counter = Counter() try: ret = _socket.connect_ex((ip, int(port['port']))) except Exception as e: logger.debug("{}: Error while scanning port {} ({})".format(self.plugin_name, port, e)) else: if ret == 0: port['status'] = counter.get() else: port['status'] = False finally: _socket.close() return ret glances-3.4.0.3/glances/plugins/glances_folders.py0000644000175000017500000000741514432156570022016 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Folder plugin.""" from __future__ import unicode_literals import numbers from glances.compat import nativestr from glances.folder_list import FolderList as glancesFolderList from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Glances folder plugin.""" def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) self.args = args self.config = config # We want to display the stat in the curse interface self.display_curse = True # Init stats self.glances_folders = glancesFolderList(config) def get_key(self): """Return the key of the list.""" return 'path' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the folders list.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Folder list only available in a full Glances environment # Check if the glances_folder instance is init if self.glances_folders is None: return self.stats # Update the folders list (result of command) self.glances_folders.update(key=self.get_key()) # Put it on the stats var stats = self.glances_folders.get() else: pass # Update the stats self.stats = stats return self.stats def get_alert(self, stat, header=""): """Manage limits of the folder list.""" if not isinstance(stat['size'], numbers.Number): ret = 'DEFAULT' else: ret = 'OK' if stat['critical'] is not None and stat['size'] > int(stat['critical']) * 1000000: ret = 'CRITICAL' elif stat['warning'] is not None and stat['size'] > int(stat['warning']) * 1000000: ret = 'WARNING' elif stat['careful'] is not None and stat['size'] > int(stat['careful']) * 1000000: ret = 'CAREFUL' # Get stat name stat_name = self.get_stat_name(header=header) # Manage threshold self.manage_threshold(stat_name, ret) # Manage action self.manage_action(stat_name, ret.lower(), header, stat[self.get_key()]) return ret def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 7 # Header msg = '{:{width}}'.format('FOLDERS', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) # Data for i in self.stats: ret.append(self.curse_new_line()) if len(i['path']) > name_max_width: # Cut path if it is too long path = '_' + i['path'][-name_max_width + 1 :] else: path = i['path'] msg = '{:{width}}'.format(nativestr(path), width=name_max_width) ret.append(self.curse_add_line(msg)) try: msg = '{:>9}'.format(self.auto_unit(i['size'])) except (TypeError, ValueError): msg = '{:>9}'.format(i['size']) ret.append(self.curse_add_line(msg, self.get_alert(i, header='folder_' + i['indice']))) return ret glances-3.4.0.3/glances/plugins/glances_load.py0000644000175000017500000001407414432156570021276 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Load plugin.""" import os import psutil from glances.compat import iteritems from glances.plugins.glances_core import Plugin as CorePlugin from glances.plugins.glances_plugin import GlancesPlugin from glances.logger import logger # Fields description fields_description = { 'min1': { 'description': 'Average sum of the number of processes \ waiting in the run-queue plus the number currently executing \ over 1 minute.', 'unit': 'float', }, 'min5': { 'description': 'Average sum of the number of processes \ waiting in the run-queue plus the number currently executing \ over 5 minutes.', 'unit': 'float', }, 'min15': { 'description': 'Average sum of the number of processes \ waiting in the run-queue plus the number currently executing \ over 15 minutes.', 'unit': 'float', }, 'cpucore': {'description': 'Total number of CPU core.', 'unit': 'number'}, } # SNMP OID # 1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1 # 5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2 # 15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3 snmp_oid = { 'min1': '1.3.6.1.4.1.2021.10.1.3.1', 'min5': '1.3.6.1.4.1.2021.10.1.3.2', 'min15': '1.3.6.1.4.1.2021.10.1.3.3', } # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [ {'name': 'min1', 'description': '1 minute load'}, {'name': 'min5', 'description': '5 minutes load'}, {'name': 'min15', 'description': '15 minutes load'}, ] class Plugin(GlancesPlugin): """Glances load plugin. stats is a dict """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, fields_description=fields_description ) # We want to display the stat in the curse interface self.display_curse = True # Call CorePlugin in order to display the core number try: self.nb_log_core = CorePlugin(args=self.args).update()["log"] except Exception as e: logger.warning('Error: Can not retrieve the CPU core number (set it to 1) ({})'.format(e)) self.nb_log_core = 1 def _getloadavg(self): """Get load average. On both Linux and Windows thanks to PsUtil""" try: return psutil.getloadavg() except (AttributeError, OSError): pass try: return os.getloadavg() except (AttributeError, OSError): return None @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update load stats.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Get the load using the os standard lib load = self._getloadavg() if load is None: stats = self.get_init_value() else: stats = {'min1': load[0], 'min5': load[1], 'min15': load[2], 'cpucore': self.nb_log_core} elif self.input_method == 'snmp': # Update stats using SNMP stats = self.get_stats_snmp(snmp_oid=snmp_oid) if stats['min1'] == '': stats = self.get_init_value() return stats # Python 3 return a dict like: # {'min1': "b'0.08'", 'min5': "b'0.12'", 'min15': "b'0.15'"} for k, v in iteritems(stats): stats[k] = float(v) stats['cpucore'] = self.nb_log_core # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information try: # Alert and log self.views['min15']['decoration'] = self.get_alert_log( self.stats['min15'], maximum=100 * self.stats['cpucore'] ) # Alert only self.views['min5']['decoration'] = self.get_alert(self.stats['min5'], maximum=100 * self.stats['cpucore']) except KeyError: # try/except mandatory for Windows compatibility (no load stats) pass def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist, not empty (issue #871) and plugin not disabled if not self.stats or (self.stats == {}) or self.is_disabled(): return ret # Build the string message # Header msg = '{:4}'.format('LOAD') ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {:1}'.format(self.trend_msg(self.get_trend('min1'))) ret.append(self.curse_add_line(msg)) # Core number if 'cpucore' in self.stats and self.stats['cpucore'] > 0: msg = '{:3}core'.format(int(self.stats['cpucore'])) ret.append(self.curse_add_line(msg)) # Loop over 1min, 5min and 15min load for load_time in ['1', '5', '15']: ret.append(self.curse_new_line()) msg = '{:7}'.format('{} min'.format(load_time)) ret.append(self.curse_add_line(msg)) if args.disable_irix and self.nb_log_core != 0: # Enable Irix mode for load (see issue #1554) load_stat = self.stats['min{}'.format(load_time)] / self.nb_log_core * 100 msg = '{:>5.1f}%'.format(load_stat) else: # Default mode for load load_stat = self.stats['min{}'.format(load_time)] msg = '{:>6.2f}'.format(load_stat) ret.append(self.curse_add_line(msg, self.get_views(key='min{}'.format(load_time), option='decoration'))) return ret glances-3.4.0.3/glances/plugins/glances_irq.py0000644000175000017500000001367414432156570021157 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # Copyright (C) 2018 Angelo Poerio # # SPDX-License-Identifier: LGPL-3.0-only # """IRQ plugin.""" import os import operator from glances.globals import LINUX from glances.timer import getTimeSinceLastUpdate from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Glances IRQ plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # We want to display the stat in the curse interface self.display_curse = True # Init the stats self.irq = GlancesIRQ() def get_key(self): """Return the key of the list.""" return self.irq.get_key() @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the IRQ stats.""" # Init new stats stats = self.get_init_value() # IRQ plugin only available on GNU/Linux if not LINUX: return self.stats if self.input_method == 'local': # Grab the stats stats = self.irq.get() elif self.input_method == 'snmp': # not available pass # Get the TOP 5 (by rate/s) stats = sorted(stats, key=operator.itemgetter('irq_rate'), reverse=True)[:5] # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only available on GNU/Linux # Only process if stats exist and display plugin enable... if not LINUX or not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 7 # Build the string message # Header msg = '{:{width}}'.format('IRQ', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) msg = '{:>9}'.format('Rate/s') ret.append(self.curse_add_line(msg)) for i in self.stats: ret.append(self.curse_new_line()) msg = '{:{width}}'.format(i['irq_line'][:name_max_width], width=name_max_width) ret.append(self.curse_add_line(msg)) msg = '{:>9}'.format(str(i['irq_rate'])) ret.append(self.curse_add_line(msg)) return ret class GlancesIRQ(object): """This class manages the IRQ file.""" IRQ_FILE = '/proc/interrupts' def __init__(self): """Init the class. The stat are stored in a internal list of dict """ self.lasts = {} self.reset() def reset(self): """Reset the stats.""" self.stats = [] self.cpu_number = 0 def get(self): """Return the current IRQ stats.""" return self.__update() def get_key(self): """Return the key of the dict.""" return 'irq_line' def __header(self, line): """Build the header (contain the number of CPU). CPU0 CPU1 CPU2 CPU3 0: 21 0 0 0 IO-APIC 2-edge timer """ self.cpu_number = len(line.split()) return self.cpu_number def __humanname(self, line): """Return the IRQ name, alias or number (choose the best for human). IRQ line samples: 1: 44487 341 44 72 IO-APIC 1-edge i8042 LOC: 33549868 22394684 32474570 21855077 Local timer interrupts """ splitted_line = line.split() irq_line = splitted_line[0].replace(':', '') if irq_line.isdigit(): # If the first column is a digit, use the alias (last column) irq_line += '_{}'.format(splitted_line[-1]) return irq_line def __sum(self, line): """Return the IRQ sum number. IRQ line samples: 1: 44487 341 44 72 IO-APIC 1-edge i8042 LOC: 33549868 22394684 32474570 21855077 Local timer interrupts FIQ: usb_fiq """ splitted_line = line.split() try: ret = sum(map(int, splitted_line[1 : (self.cpu_number + 1)])) except ValueError: # Correct issue #1007 on some conf (Raspberry Pi with Raspbian) ret = 0 return ret def __update(self): """Load the IRQ file and update the internal dict.""" self.reset() if not os.path.exists(self.IRQ_FILE): # Correct issue #947: IRQ file do not exist on OpenVZ container return self.stats try: with open(self.IRQ_FILE) as irq_proc: time_since_update = getTimeSinceLastUpdate('irq') # Read the header self.__header(irq_proc.readline()) # Read the rest of the lines (one line per IRQ) for line in irq_proc.readlines(): irq_line = self.__humanname(line) current_irqs = self.__sum(line) irq_rate = int( current_irqs - self.lasts.get(irq_line) if self.lasts.get(irq_line) else 0 // time_since_update ) irq_current = { 'irq_line': irq_line, 'irq_rate': irq_rate, 'key': self.get_key(), 'time_since_update': time_since_update, } self.stats.append(irq_current) self.lasts[irq_line] = current_irqs except (OSError, IOError): pass return self.stats glances-3.4.0.3/glances/plugins/glances_plugin.py0000644000175000017500000012307314432156570021655 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ I am your father... ...for all Glances plugins. """ import re import copy from glances.globals import json_dumps, json_dumps_dictlist from glances.compat import iterkeys, itervalues, listkeys, map, mean, nativestr, PY3 from glances.actions import GlancesActions from glances.history import GlancesHistory from glances.logger import logger from glances.events import glances_events from glances.thresholds import glances_thresholds from glances.timer import Counter, Timer from glances.outputs.glances_unicode import unicode_message fields_unit_short = {'percent': '%'} fields_unit_type = { 'percent': 'float', 'percents': 'float', 'number': 'int', 'numbers': 'int', 'int': 'int', 'ints': 'int', 'float': 'float', 'floats': 'float', 'second': 'int', 'seconds': 'int', 'byte': 'int', 'bytes': 'int', } class GlancesPlugin(object): """Main class for Glances plugin.""" def __init__(self, args=None, config=None, items_history_list=None, stats_init_value={}, fields_description=None): """Init the plugin of plugins class. All Glances' plugins should inherit from this class. Most of the methods are already implemented in the father classes. Your plugin should return a dict or a list of dicts (stored in the self.stats). As an example, you can have a look on the mem plugin (for dict) or network (for list of dicts). A plugin should implement: - the __init__ constructor: define the self.display_curse - the reset method: to set your self.stats variable to {} or [] - the update method: where your self.stats variable is set and optionally: - the get_key method: set the key of the dict (only for list of dict) - the update_view method: only if you need to trick your output - the msg_curse: define the curse (UI) message (if display_curse is True) :args: args parameters :items_history_list: list of items to store in the history :stats_init_value: Default value for a stats item """ # Plugin name (= module name without glances_) pos = self.__class__.__module__.find('glances_') + len('glances') + 1 self.plugin_name = self.__class__.__module__[pos:] # logger.debug("Init plugin %s" % self.plugin_name) # Init the args self.args = args # Init the default alignment (for curses) self._align = 'left' # Init the input method self._input_method = 'local' self._short_system_name = None # Init the history list self.items_history_list = items_history_list self.stats_history = self.init_stats_history() # Init the limits (configuration keys) dictionary self._limits = dict() if config is not None: logger.debug('Load section {} in {}'.format(self.plugin_name, config.config_file_paths())) self.load_limits(config=config) # Init the actions self.actions = GlancesActions(args=args) # Init the views self.views = dict() # Hide stats if all the hide_zero_fields has never been != 0 # Default is False, always display stats self.hide_zero = False self.hide_zero_fields = [] # Set the initial refresh time to display stats the first time self.refresh_timer = Timer(0) # Init stats description self.fields_description = fields_description # Init the stats self.stats_init_value = stats_init_value self.stats = None self.reset() def __repr__(self): """Return the raw stats.""" return self.stats def __str__(self): """Return the human-readable stats.""" return str(self.stats) def get_init_value(self): """Return a copy of the init value.""" return copy.copy(self.stats_init_value) def reset(self): """Reset the stats. This method should be overwritten by child classes. """ self.stats = self.get_init_value() def exit(self): """Just log an event when Glances exit.""" logger.debug("Stop the {} plugin".format(self.plugin_name)) def get_key(self): """Return the key of the list.""" return None def is_enabled(self, plugin_name=None): """Return true if plugin is enabled.""" if not plugin_name: plugin_name = self.plugin_name try: d = getattr(self.args, 'disable_' + plugin_name) except AttributeError: d = getattr(self.args, 'enable_' + plugin_name, True) return d is False def is_disabled(self, plugin_name=None): """Return true if plugin is disabled.""" return not self.is_enabled(plugin_name=plugin_name) def history_enable(self): return self.args is not None and not self.args.disable_history and self.get_items_history_list() is not None def init_stats_history(self): """Init the stats history (dict of GlancesAttribute).""" if self.history_enable(): init_list = [a['name'] for a in self.get_items_history_list()] logger.debug("Stats history activated for plugin {} (items: {})".format(self.plugin_name, init_list)) return GlancesHistory() def reset_stats_history(self): """Reset the stats history (dict of GlancesAttribute).""" if self.history_enable(): reset_list = [a['name'] for a in self.get_items_history_list()] logger.debug("Reset history for plugin {} (items: {})".format(self.plugin_name, reset_list)) self.stats_history.reset() def update_stats_history(self): """Update stats history.""" # Build the history if self.get_export() and self.history_enable(): # If the plugin data is a dict, the dict's key should be used if self.get_key() is None: item_name = '' else: item_name = self.get_key() for i in self.get_items_history_list(): if isinstance(self.get_export(), list): # Stats is a list of data # Iter through it (for example, iter through network interface) for l_export in self.get_export(): self.stats_history.add( nativestr(l_export[item_name]) + '_' + nativestr(i['name']), l_export[i['name']], description=i['description'], history_max_size=self._limits['history_size'], ) else: # Stats is not a list # Add the item to the history directly self.stats_history.add( nativestr(i['name']), self.get_export()[i['name']], description=i['description'], history_max_size=self._limits['history_size'], ) def get_items_history_list(self): """Return the items history list.""" return self.items_history_list def get_raw_history(self, item=None, nb=0): """Return the history (RAW format). - the stats history (dict of list) if item is None - the stats history for the given item (list) instead - None if item did not exist in the history """ s = self.stats_history.get(nb=nb) if item is None: return s else: if item in s: return s[item] else: return None def get_json_history(self, item=None, nb=0): """Return the history (JSON format). - the stats history (dict of list) if item is None - the stats history for the given item (list) instead - None if item did not exist in the history Limit to lasts nb items (all if nb=0) """ s = self.stats_history.get_json(nb=nb) if item is None: return s else: if item in s: return s[item] else: return None def get_export_history(self, item=None): """Return the stats history object to export.""" return self.get_raw_history(item=item) def get_stats_history(self, item=None, nb=0): """Return the stats history (JSON format).""" s = self.get_json_history(nb=nb) if item is None: return json_dumps(s) return json_dumps_dictlist(s, item) def get_trend(self, item, nb=6): """Get the trend regarding to the last nb values. The trend is the diff between the mean of the last nb values and the current one. """ raw_history = self.get_raw_history(item=item, nb=nb) if raw_history is None or len(raw_history) < nb: return None last_nb = [v[1] for v in raw_history] return last_nb[-1] - mean(last_nb[:-1]) @property def input_method(self): """Get the input method.""" return self._input_method @input_method.setter def input_method(self, input_method): """Set the input method. * local: system local grab (psutil or direct access) * snmp: Client server mode via SNMP * glances: Client server mode via Glances API """ self._input_method = input_method @property def short_system_name(self): """Get the short detected OS name (SNMP).""" return self._short_system_name def sorted_stats(self): """Get the stats sorted by an alias (if present) or key.""" key = self.get_key() try: return sorted( self.stats, key=lambda stat: tuple( map( lambda part: int(part) if part.isdigit() else part.lower(), re.split(r"(\d+|\D+)", self.has_alias(stat[key]) or stat[key]), ) ), ) except TypeError: # Correct "Starting an alias with a number causes a crash #1885" return sorted( self.stats, key=lambda stat: tuple( map(lambda part: part.lower(), re.split(r"(\d+|\D+)", self.has_alias(stat[key]) or stat[key])) ), ) @short_system_name.setter def short_system_name(self, short_name): """Set the short detected OS name (SNMP).""" self._short_system_name = short_name def set_stats(self, input_stats): """Set the stats to input_stats.""" self.stats = input_stats def get_stats_snmp(self, bulk=False, snmp_oid=None): """Update stats using SNMP. If bulk=True, use a bulk request instead of a get request. """ snmp_oid = snmp_oid or {} from glances.snmp import GlancesSNMPClient # Init the SNMP request snmp_client = GlancesSNMPClient( host=self.args.client, port=self.args.snmp_port, version=self.args.snmp_version, community=self.args.snmp_community, ) # Process the SNMP request ret = {} if bulk: # Bulk request snmp_result = snmp_client.getbulk_by_oid(0, 10, itervalues(*snmp_oid)) if len(snmp_oid) == 1: # Bulk command for only one OID # Note: key is the item indexed but the OID result for item in snmp_result: if iterkeys(item)[0].startswith(itervalues(snmp_oid)[0]): ret[iterkeys(snmp_oid)[0] + iterkeys(item)[0].split(itervalues(snmp_oid)[0])[1]] = itervalues( item )[0] else: # Build the internal dict with the SNMP result # Note: key is the first item in the snmp_oid index = 1 for item in snmp_result: item_stats = {} item_key = None for key in iterkeys(snmp_oid): oid = snmp_oid[key] + '.' + str(index) if oid in item: if item_key is None: item_key = item[oid] else: item_stats[key] = item[oid] if item_stats: ret[item_key] = item_stats index += 1 else: # Simple get request snmp_result = snmp_client.get_by_oid(itervalues(*snmp_oid)) # Build the internal dict with the SNMP result for key in iterkeys(snmp_oid): ret[key] = snmp_result[snmp_oid[key]] return ret def get_raw(self): """Return the stats object.""" return self.stats def get_export(self): """Return the stats object to export.""" return self.get_raw() def get_stats(self): """Return the stats object in JSON format.""" return json_dumps(self.stats) def get_json(self): """Return the stats object in JSON format.""" return self.get_stats() def get_stats_item(self, item): """Return the stats object for a specific item in JSON format. Stats should be a list of dict (processlist, network...) """ return json_dumps_dictlist(self.stats, item) def get_stats_value(self, item, value): """Return the stats object for a specific item=value in JSON format. Stats should be a list of dict (processlist, network...) """ if not isinstance(self.stats, list): return None else: if not isinstance(value, int) and value.isdigit(): value = int(value) try: return json_dumps({value: [i for i in self.stats if i[item] == value]}) except (KeyError, ValueError) as e: logger.error("Cannot get item({})=value({}) ({})".format(item, value, e)) return None def update_views_hidden(self): """Update the hidden views If the self.hide_zero is set then update the hidden field of the view It will check if all fields values are already be different from 0 In this case, the hidden field is set to True Note: This function should be called by plugin (in the update_views method) Example (for network plugin): __Init__ self.hide_zero_fields = ['rx', 'tx'] Update views ... self.update_views_hidden() """ if not self.hide_zero: return False if isinstance(self.get_raw(), list) and self.get_raw() is not None and self.get_key() is not None: # Stats are stored in a list of dict (ex: NETWORK, FS...) for i in self.get_raw(): if any([i[f] for f in self.hide_zero_fields]): for f in self.hide_zero_fields: self.views[i[self.get_key()]][f]['_zero'] = self.views[i[self.get_key()]][f]['hidden'] for f in self.hide_zero_fields: self.views[i[self.get_key()]][f]['hidden'] = self.views[i[self.get_key()]][f]['_zero'] and i[f] == 0 elif isinstance(self.get_raw(), dict) and self.get_raw() is not None: # # Warning: This code has never been tested because # no plugin with dict instance use the hidden function... # # Stats are stored in a dict (ex: CPU, LOAD...) for key in listkeys(self.get_raw()): if any([self.get_raw()[f] for f in self.hide_zero_fields]): for f in self.hide_zero_fields: self.views[f]['_zero'] = self.views[f]['hidden'] for f in self.hide_zero_fields: self.views[f]['hidden'] = self.views['_zero'] and self.views[f] == 0 return True def update_views(self): """Update the stats views. The V of MVC A dict of dict with the needed information to display the stats. Example for the stat xxx: 'xxx': {'decoration': 'DEFAULT', >>> The decoration of the stats 'optional': False, >>> Is the stat optional 'additional': False, >>> Is the stat provide additional information 'splittable': False, >>> Is the stat can be cut (like process lon name) 'hidden': False, >>> Is the stats should be hidden in the UI '_zero': True} >>> For internal purpose only """ ret = {} if isinstance(self.get_raw(), list) and self.get_raw() is not None and self.get_key() is not None: # Stats are stored in a list of dict (ex: NETWORK, FS...) for i in self.get_raw(): # i[self.get_key()] is the interface name (example for NETWORK) ret[i[self.get_key()]] = {} for key in listkeys(i): value = { 'decoration': 'DEFAULT', 'optional': False, 'additional': False, 'splittable': False, 'hidden': False, '_zero': self.views[i[self.get_key()]][key]['_zero'] if i[self.get_key()] in self.views and key in self.views[i[self.get_key()]] and 'zero' in self.views[i[self.get_key()]][key] else True, } ret[i[self.get_key()]][key] = value elif isinstance(self.get_raw(), dict) and self.get_raw() is not None: # Stats are stored in a dict (ex: CPU, LOAD...) for key in listkeys(self.get_raw()): value = { 'decoration': 'DEFAULT', 'optional': False, 'additional': False, 'splittable': False, 'hidden': False, '_zero': self.views[key]['_zero'] if key in self.views and '_zero' in self.views[key] else True, } ret[key] = value self.views = ret return self.views def set_views(self, input_views): """Set the views to input_views.""" self.views = input_views def get_views(self, item=None, key=None, option=None): """Return the views object. If key is None, return all the view for the current plugin else if option is None return the view for the specific key (all option) else return the view of the specific key/option Specify item if the stats are stored in a dict of dict (ex: NETWORK, FS...) """ if item is None: item_views = self.views else: item_views = self.views[item] if key is None: return item_views else: if option is None: return item_views[key] else: if option in item_views[key]: return item_views[key][option] else: return 'DEFAULT' def get_json_views(self, item=None, key=None, option=None): """Return the views (in JSON).""" return json_dumps(self.get_views(item, key, option)) def load_limits(self, config): """Load limits from the configuration file, if it exists.""" # By default set the history length to 3 points per second during one day self._limits['history_size'] = 28800 if not hasattr(config, 'has_section'): return False # Read the global section # @TODO: not optimized because this section is loaded for each plugin... if config.has_section('global'): self._limits['history_size'] = config.get_float_value('global', 'history_size', default=28800) logger.debug("Load configuration key: {} = {}".format('history_size', self._limits['history_size'])) # Read the plugin specific section if config.has_section(self.plugin_name): for level, _ in config.items(self.plugin_name): # Read limits limit = '_'.join([self.plugin_name, level]) try: self._limits[limit] = config.get_float_value(self.plugin_name, level) except ValueError: self._limits[limit] = config.get_value(self.plugin_name, level).split(",") logger.debug("Load limit: {} = {}".format(limit, self._limits[limit])) return True @property def limits(self): """Return the limits object.""" return self._limits @limits.setter def limits(self, input_limits): """Set the limits to input_limits.""" self._limits = input_limits def set_refresh(self, value): """Set the plugin refresh rate""" self.set_limits('refresh', value) def get_refresh(self): """Return the plugin refresh time""" ret = self.get_limits(item='refresh') if ret is None: ret = self.args.time return ret def get_refresh_time(self): """Return the plugin refresh time""" return self.get_refresh() def set_limits(self, item, value): """Set the limits object.""" self._limits['{}_{}'.format(self.plugin_name, item)] = value def get_limits(self, item=None): """Return the limits object.""" if item is None: return self._limits else: return self._limits.get('{}_{}'.format(self.plugin_name, item), None) def get_stats_action(self): """Return stats for the action. By default return all the stats. Can be overwrite by plugins implementation. For example, Docker will return self.stats['containers'] """ return self.stats def get_stat_name(self, header=""): """ "Return the stat name with an optional header""" ret = self.plugin_name if header != "": ret += '_' + header return ret def get_alert( self, current=0, minimum=0, maximum=100, highlight_zero=True, is_max=False, header="", action_key=None, log=False, ): """Return the alert status relative to a current value. Use this function for minor stats. If current < CAREFUL of max then alert = OK If current > CAREFUL of max then alert = CAREFUL If current > WARNING of max then alert = WARNING If current > CRITICAL of max then alert = CRITICAL If highlight=True than 0.0 is highlighted If defined 'header' is added between the plugin name and the status. Only useful for stats with several alert status. If defined, 'action_key' define the key for the actions. By default, the action_key is equal to the header. If log=True than add log if necessary elif log=False than do not log elif log=None than apply the config given in the conf file """ # Manage 0 (0.0) value if highlight_zero is not True if not highlight_zero and current == 0: return 'DEFAULT' # Compute the % try: value = (current * 100) / maximum except ZeroDivisionError: return 'DEFAULT' except TypeError: return 'DEFAULT' # Build the stat_name stat_name = self.get_stat_name(header=header) # Manage limits # If is_max is set then display the value in MAX ret = 'MAX' if is_max else 'OK' try: if value >= self.get_limit('critical', stat_name=stat_name): ret = 'CRITICAL' elif value >= self.get_limit('warning', stat_name=stat_name): ret = 'WARNING' elif value >= self.get_limit('careful', stat_name=stat_name): ret = 'CAREFUL' elif current < minimum: ret = 'CAREFUL' except KeyError: return 'DEFAULT' # Manage log log_str = "" if self.get_limit_log(stat_name=stat_name, default_action=log): # Add _LOG to the return string # So stats will be highlighted with a specific color log_str = "_LOG" # Add the log to the list glances_events.add(ret, stat_name.upper(), value) # Manage threshold self.manage_threshold(stat_name, ret) # Manage action self.manage_action(stat_name, ret.lower(), header, action_key) # Default is 'OK' return ret + log_str def manage_threshold(self, stat_name, trigger): """Manage the threshold for the current stat.""" glances_thresholds.add(stat_name, trigger) def manage_action(self, stat_name, trigger, header, action_key): """Manage the action for the current stat.""" # Here is a command line for the current trigger ? try: command, repeat = self.get_limit_action(trigger, stat_name=stat_name) except KeyError: # Reset the trigger self.actions.set(stat_name, trigger) else: # Define the action key for the stats dict # If not define, then it sets to header if action_key is None: action_key = header # A command line is available for the current alert # 1) Build the {{mustache}} dictionary if isinstance(self.get_stats_action(), list): # If the stats are stored in a list of dict (fs plugin for example) # Return the dict for the current header mustache_dict = {} for item in self.get_stats_action(): if item[self.get_key()] == action_key: mustache_dict = item break else: # Use the stats dict mustache_dict = self.get_stats_action() # 2) Run the action self.actions.run(stat_name, trigger, command, repeat, mustache_dict=mustache_dict) def get_alert_log(self, current=0, minimum=0, maximum=100, header="", action_key=None): """Get the alert log.""" return self.get_alert( current=current, minimum=minimum, maximum=maximum, header=header, action_key=action_key, log=True ) def is_limit(self, criticality, stat_name=""): """Return true if the criticality limit exist for the given stat_name""" if stat_name == "": return self.plugin_name + '_' + criticality in self._limits else: return stat_name + '_' + criticality in self._limits def get_limit(self, criticality, stat_name=""): """Return the limit value for the alert.""" # Get the limit for stat + header # Example: network_wlan0_rx_careful try: limit = self._limits[stat_name + '_' + criticality] except KeyError: # Try fallback to plugin default limit # Example: network_careful limit = self._limits[self.plugin_name + '_' + criticality] # logger.debug("{} {} value is {}".format(stat_name, criticality, limit)) # Return the limiter return limit def get_limit_action(self, criticality, stat_name=""): """Return the tuple (action, repeat) for the alert. - action is a command line - repeat is a bool """ # Get the action for stat + header # Example: network_wlan0_rx_careful_action # Action key available ? ret = [ (stat_name + '_' + criticality + '_action', False), (stat_name + '_' + criticality + '_action_repeat', True), (self.plugin_name + '_' + criticality + '_action', False), (self.plugin_name + '_' + criticality + '_action_repeat', True), ] for r in ret: if r[0] in self._limits: return self._limits[r[0]], r[1] # No key found, the raise an error raise KeyError def get_limit_log(self, stat_name, default_action=False): """Return the log tag for the alert.""" # Get the log tag for stat + header # Example: network_wlan0_rx_log try: log_tag = self._limits[stat_name + '_log'] except KeyError: # Try fallback to plugin default log # Example: network_log try: log_tag = self._limits[self.plugin_name + '_log'] except KeyError: # By default, log are disabled return default_action # Return the action list return log_tag[0].lower() == 'true' def get_conf_value(self, value, header="", plugin_name=None, default=[]): """Return the configuration (header_) value for the current plugin. ...or the one given by the plugin_name var. """ if plugin_name is None: # If not default use the current plugin name plugin_name = self.plugin_name if header != "": # Add the header plugin_name = plugin_name + '_' + header try: return self._limits[plugin_name + '_' + value] except KeyError: return default def is_show(self, value, header=""): """Return True if the value is in the show configuration list. If the show value is empty, return True (show by default) The show configuration list is defined in the glances.conf file. It is a comma separated list of regexp. Example for diskio: show=sda.* """ # @TODO: possible optimisation: create a re.compile list return any( j for j in [re.fullmatch(i.lower(), value.lower()) for i in self.get_conf_value('show', header=header)] ) def is_hide(self, value, header=""): """Return True if the value is in the hide configuration list. The hide configuration list is defined in the glances.conf file. It is a comma separated list of regexp. Example for diskio: hide=sda2,sda5,loop.* """ # @TODO: possible optimisation: create a re.compile list return any( j for j in [re.fullmatch(i.lower(), value.lower()) for i in self.get_conf_value('hide', header=header)] ) def is_display(self, value, header=""): """Return True if the value should be displayed in the UI""" if self.get_conf_value('show', header=header) != []: return self.is_show(value, header=header) else: return not self.is_hide(value, header=header) def has_alias(self, header): """Return the alias name for the relative header it it exists otherwise None.""" try: # Force to lower case (issue #1126) return self._limits[self.plugin_name + '_' + header.lower() + '_' + 'alias'][0] except (KeyError, IndexError): # logger.debug("No alias found for {}".format(header)) return None def msg_curse(self, args=None, max_width=None): """Return default string to display in the curse interface.""" return [self.curse_add_line(str(self.stats))] def get_stats_display(self, args=None, max_width=None): """Return a dict with all the information needed to display the stat. key | description ---------------------------- display | Display the stat (True or False) msgdict | Message to display (list of dict [{ 'msg': msg, 'decoration': decoration } ... ]) align | Message position """ display_curse = False if hasattr(self, 'display_curse'): display_curse = self.display_curse if hasattr(self, 'align'): align_curse = self._align if max_width is not None: ret = {'display': display_curse, 'msgdict': self.msg_curse(args, max_width=max_width), 'align': align_curse} else: ret = {'display': display_curse, 'msgdict': self.msg_curse(args), 'align': align_curse} return ret def curse_add_line(self, msg, decoration="DEFAULT", optional=False, additional=False, splittable=False): """Return a dict with. Where: msg: string decoration: DEFAULT: no decoration UNDERLINE: underline BOLD: bold TITLE: for stat title PROCESS: for process name STATUS: for process status NICE: for process niceness CPU_TIME: for process cpu time OK: Value is OK and non logged OK_LOG: Value is OK and logged CAREFUL: Value is CAREFUL and non logged CAREFUL_LOG: Value is CAREFUL and logged WARNING: Value is WARNING and non logged WARNING_LOG: Value is WARNING and logged CRITICAL: Value is CRITICAL and non logged CRITICAL_LOG: Value is CRITICAL and logged optional: True if the stat is optional (display only if space is available) additional: True if the stat is additional (display only if space is available after optional) spittable: Line can be split to fit on the screen (default is not) """ return { 'msg': msg, 'decoration': decoration, 'optional': optional, 'additional': additional, 'splittable': splittable, } def curse_new_line(self): """Go to a new line.""" return self.curse_add_line('\n') def curse_add_stat(self, key, width=None, header='', display_key=True, separator='', trailer=''): """Return a list of dict messages with the 'key: value' result <=== width ===> __key : 80.5%__ | | | | |_ trailer | | | |_ self.stats[key] | | |_ separator | |_ 'short_name' description or key or nothing if display_key is True |_ header Instead of: msg = ' {:8}'.format('idle:') ret.append(self.curse_add_line(msg, optional=self.get_views(key='idle', option='optional'))) msg = '{:5.1f}%'.format(self.stats['idle']) ret.append(self.curse_add_line(msg, optional=self.get_views(key='idle', option='optional'))) Use: ret.extend(self.curse_add_stat('idle', width=15, header=' ')) """ if key not in self.stats: return [] # Check if a shortname is defined if not display_key: key_name = '' elif key in self.fields_description and 'short_name' in self.fields_description[key]: key_name = self.fields_description[key]['short_name'] else: key_name = key # Check if unit is defined and get the short unit char in the unit_sort dict if ( key in self.fields_description and 'unit' in self.fields_description[key] and self.fields_description[key]['unit'] in fields_unit_short ): # Get the shortname unit_short = fields_unit_short[self.fields_description[key]['unit']] else: unit_short = '' # Check if unit is defined and get the unit type unit_type dict if ( key in self.fields_description and 'unit' in self.fields_description[key] and self.fields_description[key]['unit'] in fields_unit_type ): # Get the shortname unit_type = fields_unit_type[self.fields_description[key]['unit']] else: unit_type = 'float' # Is it a rate ? Yes, compute it thanks to the time_since_update key if ( key in self.fields_description and 'rate' in self.fields_description[key] and self.fields_description[key]['rate'] is True ): value = self.stats[key] // self.stats['time_since_update'] else: value = self.stats[key] if width is None: msg_item = header + '{}'.format(key_name) + separator msg_template_float = '{:.1f}{}' msg_template = '{}{}' else: # Define the size of the message # item will be on the left # value will be on the right msg_item = header + '{:{width}}'.format(key_name, width=width - 7) + separator msg_template_float = '{:5.1f}{}' msg_template = '{:>5}{}' if unit_type == 'float': msg_value = msg_template_float.format(value, unit_short) + trailer elif 'min_symbol' in self.fields_description[key]: msg_value = ( msg_template.format( self.auto_unit(int(value), min_symbol=self.fields_description[key]['min_symbol']), unit_short ) + trailer ) else: msg_value = msg_template.format(int(value), unit_short) + trailer decoration = self.get_views(key=key, option='decoration') optional = self.get_views(key=key, option='optional') return [ self.curse_add_line(msg_item, optional=optional), self.curse_add_line(msg_value, decoration=decoration, optional=optional), ] @property def align(self): """Get the curse align.""" return self._align @align.setter def align(self, value): """Set the curse align. value: left, right, bottom. """ self._align = value def auto_unit(self, number, low_precision=False, min_symbol='K'): """Make a nice human-readable string out of number. Number of decimal places increases as quantity approaches 1. CASE: 613421788 RESULT: 585M low_precision: 585M CASE: 5307033647 RESULT: 4.94G low_precision: 4.9G CASE: 44968414685 RESULT: 41.9G low_precision: 41.9G CASE: 838471403472 RESULT: 781G low_precision: 781G CASE: 9683209690677 RESULT: 8.81T low_precision: 8.8T CASE: 1073741824 RESULT: 1024M low_precision: 1024M CASE: 1181116006 RESULT: 1.10G low_precision: 1.1G :low_precision: returns less decimal places potentially (default is False) sacrificing precision for more readability. :min_symbol: Do not approach if number < min_symbol (default is K) """ symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y') if min_symbol in symbols: symbols = symbols[symbols.index(min_symbol) :] prefix = { 'Y': 1208925819614629174706176, 'Z': 1180591620717411303424, 'E': 1152921504606846976, 'P': 1125899906842624, 'T': 1099511627776, 'G': 1073741824, 'M': 1048576, 'K': 1024, } for symbol in reversed(symbols): value = float(number) / prefix[symbol] if value > 1: decimal_precision = 0 if value < 10: decimal_precision = 2 elif value < 100: decimal_precision = 1 if low_precision: if symbol in 'MK': decimal_precision = 0 else: decimal_precision = min(1, decimal_precision) elif symbol in 'K': decimal_precision = 0 return '{:.{decimal}f}{symbol}'.format(value, decimal=decimal_precision, symbol=symbol) return '{!s}'.format(number) def trend_msg(self, trend, significant=1): """Return the trend message. Do not take into account if trend < significant """ ret = '-' if trend is None or not PY3: ret = ' ' elif trend > significant: ret = unicode_message('ARROW_UP', self.args) elif trend < -significant: ret = unicode_message('ARROW_DOWN', self.args) return ret def _check_decorator(fct): """Check decorator for update method. It checks: - if the plugin is enabled. - if the refresh_timer is finished """ def wrapper(self, *args, **kw): if self.is_enabled() and (self.refresh_timer.finished() or self.stats == self.get_init_value): # Run the method ret = fct(self, *args, **kw) # Reset the timer self.refresh_timer.set(self.get_refresh()) self.refresh_timer.reset() else: # No need to call the method # Return the last result available ret = self.stats return ret return wrapper def _log_result_decorator(fct): """Log (DEBUG) the result of the function fct.""" def wrapper(*args, **kw): counter = Counter() ret = fct(*args, **kw) duration = counter.get() logger.debug( "%s %s %s return %s in %s seconds" % ( args[0].__class__.__name__, args[0].__class__.__module__[len('glances_') :], fct.__name__, ret, duration, ) ) return ret return wrapper # Mandatory to call the decorator in child classes _check_decorator = staticmethod(_check_decorator) _log_result_decorator = staticmethod(_log_result_decorator) glances-3.4.0.3/glances/plugins/glances_sensors.py0000644000175000017500000003267514432156570022062 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Sensors plugin.""" import psutil import warnings from glances.logger import logger from glances.compat import iteritems, to_fahrenheit from glances.timer import Counter from glances.plugins.sensors.glances_batpercent import Plugin as BatPercentPlugin from glances.plugins.sensors.glances_hddtemp import Plugin as HddTempPlugin from glances.outputs.glances_unicode import unicode_message from glances.plugins.glances_plugin import GlancesPlugin SENSOR_TEMP_TYPE = 'temperature_core' SENSOR_TEMP_UNIT = 'C' SENSOR_FAN_TYPE = 'fan_speed' SENSOR_FAN_UNIT = 'R' class Plugin(GlancesPlugin): """Glances sensors plugin. The stats list includes both sensors and hard disks stats, if any. The sensors are already grouped by chip type and then sorted by name. The hard disks are already sorted by name. """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) start_duration = Counter() # Init the sensor class start_duration.reset() self.glances_grab_sensors = GlancesGrabSensors() logger.debug("Generic sensor plugin init duration: {} seconds".format(start_duration.get())) # Instance for the HDDTemp Plugin in order to display the hard disks # temperatures start_duration.reset() self.hddtemp_plugin = HddTempPlugin(args=args, config=config) logger.debug("HDDTemp sensor plugin init duration: {} seconds".format(start_duration.get())) # Instance for the BatPercent in order to display the batteries # capacities start_duration.reset() self.bat_percent_plugin = BatPercentPlugin(args=args, config=config) logger.debug("Battery sensor plugin init duration: {} seconds".format(start_duration.get())) # We want to display the stat in the curse interface self.display_curse = True # Not necessary to refresh every refresh time # By default set to refresh * 2 if self.get_refresh() == args.time: self.set_refresh(self.get_refresh() * 2) def get_key(self): """Return the key of the list.""" return 'label' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update sensors stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the dedicated lib stats = [] # Get the temperature try: temperature = self.__set_type(self.glances_grab_sensors.get(SENSOR_TEMP_TYPE), SENSOR_TEMP_TYPE) except Exception as e: logger.error("Cannot grab sensors temperatures (%s)" % e) else: # Append temperature stats.extend(temperature) # Get the FAN speed try: fan_speed = self.__set_type(self.glances_grab_sensors.get(SENSOR_FAN_TYPE), SENSOR_FAN_TYPE) except Exception as e: logger.error("Cannot grab FAN speed (%s)" % e) else: # Append FAN speed stats.extend(fan_speed) # Update HDDtemp stats try: hddtemp = self.__set_type(self.hddtemp_plugin.update(), 'temperature_hdd') except Exception as e: logger.error("Cannot grab HDD temperature (%s)" % e) else: # Append HDD temperature stats.extend(hddtemp) # Update batteries stats try: bat_percent = self.__set_type(self.bat_percent_plugin.update(), 'battery') except Exception as e: logger.error("Cannot grab battery percent (%s)" % e) else: # Append Batteries % stats.extend(bat_percent) elif self.input_method == 'snmp': # Update stats using SNMP # No standard: # http://www.net-snmp.org/wiki/index.php/Net-SNMP_and_lm-sensors_on_Ubuntu_10.04 pass # Global change on stats self.stats = self.get_init_value() for stat in stats: # Do not take hide stat into account if not self.is_display(stat["label"].lower()): continue # Set the alias for each stat # alias = self.has_alias(stat["label"].lower()) # if alias: # stat["label"] = alias stat["label"] = self.__get_alias(stat) # Update the stats self.stats.append(stat) return self.stats def __get_alias(self, stats): """Return the alias of the sensor.""" # Get the alias for each stat if self.has_alias(stats["label"].lower()): return self.has_alias(stats["label"].lower()) elif self.has_alias("{}_{}".format(stats["label"], stats["type"]).lower()): return self.has_alias("{}_{}".format(stats["label"], stats["type"]).lower()) else: return stats["label"] def __set_type(self, stats, sensor_type): """Set the plugin type. 4 types of stats is possible in the sensors plugin: - Core temperature: SENSOR_TEMP_TYPE - Fan speed: SENSOR_FAN_TYPE - HDD temperature: 'temperature_hdd' - Battery capacity: 'battery' """ for i in stats: # Set the sensors type i.update({'type': sensor_type}) # also add the key name i.update({'key': self.get_key()}) return stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert for i in self.stats: if not i['value']: continue # Alert processing if i['type'] == SENSOR_TEMP_TYPE: if self.is_limit('critical', stat_name='sensors_temperature_' + i['label']): # By default use the thresholds configured in the glances.conf file (see #2058) alert = self.get_alert(current=i['value'], header='temperature_' + i['label']) else: # Else use the system thresholds if i['critical'] is None: alert = 'DEFAULT' elif i['value'] >= i['critical']: alert = 'CRITICAL' elif i['warning'] is None: alert = 'DEFAULT' elif i['value'] >= i['warning']: alert = 'WARNING' else: alert = 'OK' elif i['type'] == 'battery': alert = self.get_alert(current=100 - i['value'], header=i['type']) else: alert = self.get_alert(current=i['value'], header=i['type']) # Set the alert in the view self.views[i[self.get_key()]]['value']['decoration'] = alert def battery_trend(self, stats): """Return the trend character for the battery""" if 'status' not in stats: return '' if stats['status'].startswith('Charg'): return unicode_message('ARROW_UP') elif stats['status'].startswith('Discharg'): return unicode_message('ARROW_DOWN') elif stats['status'].startswith('Full'): return unicode_message('CHECK') return '' def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 12 # Header msg = '{:{width}}'.format('SENSORS', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) # Stats for i in self.stats: # Do not display anything if no battery are detected if i['type'] == 'battery' and i['value'] == []: continue # New line ret.append(self.curse_new_line()) msg = '{:{width}}'.format(i["label"][:name_max_width], width=name_max_width) ret.append(self.curse_add_line(msg)) if i['value'] in (b'ERR', b'SLP', b'UNK', b'NOS'): msg = '{:>14}'.format(i['value']) ret.append( self.curse_add_line(msg, self.get_views(item=i[self.get_key()], key='value', option='decoration')) ) else: if args.fahrenheit and i['type'] != 'battery' and i['type'] != SENSOR_FAN_TYPE: trend = '' value = to_fahrenheit(i['value']) unit = 'F' else: trend = self.battery_trend(i) value = i['value'] unit = i['unit'] try: msg = '{:.0f}{}{}'.format(value, unit, trend) msg = '{:>14}'.format(msg) ret.append( self.curse_add_line( msg, self.get_views(item=i[self.get_key()], key='value', option='decoration') ) ) except (TypeError, ValueError): pass return ret class GlancesGrabSensors(object): """Get sensors stats.""" def __init__(self): """Init sensors stats.""" # Temperatures self.init_temp = False self.sensor_temps = {} try: # psutil>=5.1.0, Linux-only self.sensor_temps = psutil.sensors_temperatures() except AttributeError: logger.debug("Cannot grab temperatures. Platform not supported.") else: self.init_temp = True # Solve an issue #1203 concerning a RunTimeError warning message displayed # in the curses interface. warnings.filterwarnings("ignore") # Fans self.init_fan = False self.sensor_fans = {} try: # psutil>=5.2.0, Linux-only self.sensor_fans = psutil.sensors_fans() except AttributeError: logger.debug("Cannot grab fans speed. Platform not supported.") else: self.init_fan = True # Init the stats self.reset() def reset(self): """Reset/init the stats.""" self.sensors_list = [] def __update__(self): """Update the stats.""" # Reset the list self.reset() if not self.init_temp: return self.sensors_list # Temperatures sensors self.sensors_list.extend(self.build_sensors_list(SENSOR_TEMP_UNIT)) # Fans sensors self.sensors_list.extend(self.build_sensors_list(SENSOR_FAN_UNIT)) return self.sensors_list def build_sensors_list(self, type): """Build the sensors list depending of the type. type: SENSOR_TEMP_UNIT or SENSOR_FAN_UNIT output: a list """ ret = [] if type == SENSOR_TEMP_UNIT and self.init_temp: input_list = self.sensor_temps self.sensor_temps = psutil.sensors_temperatures() elif type == SENSOR_FAN_UNIT and self.init_fan: input_list = self.sensor_fans self.sensor_fans = psutil.sensors_fans() else: return ret for chip_name, chip in iteritems(input_list): label_index = 1 for chip_name_index, feature in enumerate(chip): sensors_current = {} # Sensor name if feature.label == '': sensors_current['label'] = chip_name + ' ' + str(chip_name_index) elif feature.label in [i['label'] for i in ret]: sensors_current['label'] = feature.label + ' ' + str(label_index) label_index += 1 else: sensors_current['label'] = feature.label # Sensors value, limit and unit sensors_current['unit'] = type sensors_current['value'] = int(getattr(feature, 'current', 0) if getattr(feature, 'current', 0) else 0) system_warning = getattr(feature, 'high', None) system_critical = getattr(feature, 'critical', None) sensors_current['warning'] = int(system_warning) if system_warning is not None else None sensors_current['critical'] = int(system_critical) if system_critical is not None else None # Add sensor to the list ret.append(sensors_current) return ret def get(self, sensor_type=SENSOR_TEMP_TYPE): """Get sensors list.""" self.__update__() if sensor_type == SENSOR_TEMP_TYPE: ret = [s for s in self.sensors_list if s['unit'] == SENSOR_TEMP_UNIT] elif sensor_type == SENSOR_FAN_TYPE: ret = [s for s in self.sensors_list if s['unit'] == SENSOR_FAN_UNIT] else: # Unknown type logger.debug("Unknown sensor type %s" % sensor_type) ret = [] return ret glances-3.4.0.3/glances/plugins/glances_core.py0000644000175000017500000000457414432156570021313 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """CPU core plugin.""" from glances.plugins.glances_plugin import GlancesPlugin import psutil # Fields description # - phys: physical cores only (hyper thread CPUs are excluded) # - log: logical CPUs in the system fields_description = { 'phys': {'description': 'Number of physical cores (hyper thread CPUs are excluded).', 'unit': 'number'}, 'log': { 'description': 'Number of logical CPUs. A logical CPU is the number of \ physical cores multiplied by the number of threads that can run on each core.', 'unit': 'number', }, } class Plugin(GlancesPlugin): """Glances CPU core plugin. Get stats about CPU core number. stats is integer (number of core) """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, fields_description=fields_description) # We dot not want to display the stat in the curse interface # The core number is displayed by the load plugin self.display_curse = False # Do *NOT* uncomment the following line # @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update core stats. Stats is a dict (with both physical and log cpu number) instead of a integer. """ # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # The psutil 2.0 include psutil.cpu_count() and psutil.cpu_count(logical=False) # Return a dict with: # - phys: physical cores only (hyper thread CPUs are excluded) # - log: logical CPUs in the system # Return None if undefined try: stats["phys"] = psutil.cpu_count(logical=False) stats["log"] = psutil.cpu_count() except NameError: self.reset() elif self.input_method == 'snmp': # Update stats using SNMP # http://stackoverflow.com/questions/5662467/how-to-find-out-the-number-of-cpus-using-snmp pass # Update the stats self.stats = stats return self.stats glances-3.4.0.3/glances/plugins/glances_connections.py0000644000175000017500000001522014432156570022673 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Connections plugin.""" from __future__ import unicode_literals from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin from glances.compat import nativestr, FileNotFoundError import psutil # Define the history items list # items_history_list = [{'name': 'rx', # 'description': 'Download rate per second', # 'y_unit': 'bit/s'}, # {'name': 'tx', # 'description': 'Upload rate per second', # 'y_unit': 'bit/s'}] class Plugin(GlancesPlugin): """Glances connections plugin. stats is a dict """ status_list = [psutil.CONN_LISTEN, psutil.CONN_ESTABLISHED] initiated_states = [psutil.CONN_SYN_SENT, psutil.CONN_SYN_RECV] terminated_states = [ psutil.CONN_FIN_WAIT1, psutil.CONN_FIN_WAIT2, psutil.CONN_TIME_WAIT, psutil.CONN_CLOSE, psutil.CONN_CLOSE_WAIT, psutil.CONN_LAST_ACK, ] conntrack = { 'nf_conntrack_count': '/proc/sys/net/netfilter/nf_conntrack_count', 'nf_conntrack_max': '/proc/sys/net/netfilter/nf_conntrack_max', } def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, # items_history_list=items_history_list, stats_init_value={'net_connections_enabled': True, 'nf_conntrack_enabled': True}, ) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update connections stats using the input method. Stats is a dict """ # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the PSUtils lib # Grab network interface stat using the psutil net_connections method if stats['net_connections_enabled']: try: net_connections = psutil.net_connections(kind="tcp") except Exception as e: logger.warning('Can not get network connections stats ({})'.format(e)) logger.info('Disable connections stats') stats['net_connections_enabled'] = False self.stats = stats return self.stats for s in self.status_list: stats[s] = len([c for c in net_connections if c.status == s]) initiated = 0 for s in self.initiated_states: stats[s] = len([c for c in net_connections if c.status == s]) initiated += stats[s] stats['initiated'] = initiated terminated = 0 for s in self.initiated_states: stats[s] = len([c for c in net_connections if c.status == s]) terminated += stats[s] stats['terminated'] = terminated if stats['nf_conntrack_enabled']: # Grab connections track directly from the /proc file for i in self.conntrack: try: with open(self.conntrack[i], 'r') as f: stats[i] = float(f.readline().rstrip("\n")) except (IOError, FileNotFoundError) as e: logger.warning('Can not get network connections track ({})'.format(e)) logger.info('Disable connections track') stats['nf_conntrack_enabled'] = False self.stats = stats return self.stats if 'nf_conntrack_max' in stats and 'nf_conntrack_count' in stats: stats['nf_conntrack_percent'] = stats['nf_conntrack_count'] * 100 / stats['nf_conntrack_max'] else: stats['nf_conntrack_enabled'] = False self.stats = stats return self.stats elif self.input_method == 'snmp': # Update stats using SNMP pass # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specific information try: # Alert and log if self.stats['nf_conntrack_enabled']: self.views['nf_conntrack_percent']['decoration'] = self.get_alert(header='nf_conntrack_percent') except KeyError: # try/except mandatory for Windows compatibility (no conntrack stats) pass def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Header if self.stats['net_connections_enabled'] or self.stats['nf_conntrack_enabled']: msg = '{}'.format('TCP CONNECTIONS') ret.append(self.curse_add_line(msg, "TITLE")) # Connections status if self.stats['net_connections_enabled']: for s in [psutil.CONN_LISTEN, 'initiated', psutil.CONN_ESTABLISHED, 'terminated']: ret.append(self.curse_new_line()) msg = '{:{width}}'.format(nativestr(s).capitalize(), width=len(s)) ret.append(self.curse_add_line(msg)) msg = '{:>{width}}'.format(self.stats[s], width=max_width - len(s) + 2) ret.append(self.curse_add_line(msg)) # Connections track if ( self.stats['nf_conntrack_enabled'] and 'nf_conntrack_count' in self.stats and 'nf_conntrack_max' in self.stats ): s = 'Tracked' ret.append(self.curse_new_line()) msg = '{:{width}}'.format(nativestr(s).capitalize(), width=len(s)) ret.append(self.curse_add_line(msg)) msg = '{:>{width}}'.format( '{:0.0f}/{:0.0f}'.format(self.stats['nf_conntrack_count'], self.stats['nf_conntrack_max']), width=max_width - len(s) + 2, ) ret.append(self.curse_add_line(msg, self.get_views(key='nf_conntrack_percent', option='decoration'))) return ret glances-3.4.0.3/glances/plugins/glances_ip.py0000644000175000017500000002531514432156570020767 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """IP plugin.""" import threading from ujson import loads from glances.compat import queue, urlopen, urlopen_auth from glances.logger import logger from glances.timer import Timer, getTimeSinceLastUpdate from glances.plugins.glances_plugin import GlancesPlugin # Import plugin specific dependency try: import netifaces except ImportError as e: import_error_tag = True logger.warning("Missing Python Lib ({}), IP plugin is disabled".format(e)) else: import_error_tag = False # List of online services to retrieve public IP address # List of tuple (url, json, key) # - url: URL of the Web site # - json: service return a JSON (True) or string (False) # - key: key of the IP address in the JSON structure urls = [ ('https://httpbin.org/ip', True, 'origin'), ('https://api.ipify.org/?format=json', True, 'ip'), ('https://ipv4.jsonip.com', True, 'ip'), ] class Plugin(GlancesPlugin): """Glances IP Plugin. stats is a dict """ _default_public_refresh_interval = 300 _default_public_ip_disabled = ["False"] def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True # For public IP address self.public_address = "" self.public_address_refresh_interval = self.get_conf_value( "public_refresh_interval", default=self._default_public_refresh_interval ) public_ip_disabled = self.get_conf_value("public_ip_disabled", default=self._default_public_ip_disabled) self.public_ip_disabled = True if public_ip_disabled == ["True"] else False # For the Censys options (see issue #2105) self.public_info = "" self.censys_url = self.get_conf_value("censys_url", default=[None])[0] self.censys_username = self.get_conf_value("censys_username", default=[None])[0] self.censys_password = self.get_conf_value("censys_password", default=[None])[0] self.censys_fields = self.get_conf_value("censys_fields", default=[None]) self.public_info_disabled = ( self.censys_url is None or self.censys_username is None or self.censys_password is None or self.censys_fields is None ) @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update IP stats using the input method. :return: the stats dict """ # Init new stats stats = self.get_init_value() if self.input_method == 'local' and not import_error_tag: # Update stats using the netifaces lib # Start with the default IP gateway try: default_gw = netifaces.gateways()['default'][netifaces.AF_INET] except (KeyError, AttributeError) as e: logger.debug("Cannot grab default gateway IP address ({})".format(e)) return {} else: stats['gateway'] = default_gw[0] # Then the private IP address # If multiple IP addresses are available, only the one with the default gateway is returned try: address = netifaces.ifaddresses(default_gw[1])[netifaces.AF_INET][0]['addr'] mask = netifaces.ifaddresses(default_gw[1])[netifaces.AF_INET][0]['netmask'] except (KeyError, AttributeError) as e: logger.debug("Cannot grab private IP address ({})".format(e)) return {} else: stats['address'] = address stats['mask'] = mask stats['mask_cidr'] = self.ip_to_cidr(stats['mask']) # Finally with the public IP address time_since_update = getTimeSinceLastUpdate('public-ip') try: if not self.public_ip_disabled and ( self.stats.get('address') != address or time_since_update > self.public_address_refresh_interval ): self.public_address = PublicIpAddress().get() if not self.public_info_disabled: self.public_info = PublicIpInfo( self.public_address, self.censys_url, self.censys_username, self.censys_password ).get() except (KeyError, AttributeError) as e: logger.debug("Cannot grab public IP information ({})".format(e)) else: stats['public_address'] = self.public_address # Too much information provided in the public_info # Limit it to public_info_for_human # stats['public_info'] = self.public_info stats['public_info_human'] = self.public_info_for_human(self.public_info) elif self.input_method == 'snmp': # Not implemented yet pass # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled() or import_error_tag: return ret # Build the string message msg = ' - ' ret.append(self.curse_add_line(msg, optional=True)) # Start with the private IP information msg = 'IP ' ret.append(self.curse_add_line(msg, 'TITLE', optional=True)) if 'address' in self.stats: msg = '{}'.format(self.stats['address']) ret.append(self.curse_add_line(msg, optional=True)) if 'mask_cidr' in self.stats: # VPN with no internet access (issue #842) msg = '/{}'.format(self.stats['mask_cidr']) ret.append(self.curse_add_line(msg, optional=True)) # Then with the public IP information try: msg_pub = '{}'.format(self.stats['public_address']) except (UnicodeEncodeError, KeyError): # Add KeyError exception (see https://github.com/nicolargo/glances/issues/1469) pass else: if self.stats['public_address']: msg = ' Pub ' ret.append(self.curse_add_line(msg, 'TITLE', optional=True)) ret.append(self.curse_add_line(msg_pub, optional=True)) if self.stats['public_info_human']: ret.append(self.curse_add_line(' {}'.format(self.stats['public_info_human']), optional=True)) return ret def public_info_for_human(self, public_info): """Return the data to pack to the client.""" if not public_info: return '' field_result = [] for f in self.censys_fields: field = f.split(':') if len(field) == 1 and field[0] in public_info: field_result.append('{}'.format(public_info[field[0]])) elif len(field) == 2 and field[0] in public_info and field[1] in public_info[field[0]]: field_result.append('{}'.format(public_info[field[0]][field[1]])) return '/'.join(field_result) @staticmethod def ip_to_cidr(ip): """Convert IP address to CIDR. Example: '255.255.255.0' will return 24 """ # Thanks to @Atticfire # See https://github.com/nicolargo/glances/issues/1417#issuecomment-469894399 if ip is None: # Correct issue #1528 return 0 return sum(bin(int(x)).count('1') for x in ip.split('.')) class PublicIpAddress(object): """Get public IP address from online services.""" def __init__(self, timeout=2): """Init the class.""" self.timeout = timeout def get(self): """Get the first public IP address returned by one of the online services.""" q = queue.Queue() for u, j, k in urls: t = threading.Thread(target=self._get_ip_public, args=(q, u, j, k)) t.daemon = True t.start() timer = Timer(self.timeout) ip = None while not timer.finished() and ip is None: if q.qsize() > 0: ip = q.get() if ip is None: return None return ', '.join(set([x.strip() for x in ip.split(',')])) def _get_ip_public(self, queue_target, url, json=False, key=None): """Request the url service and put the result in the queue_target.""" try: response = urlopen(url, timeout=self.timeout).read().decode('utf-8') except Exception as e: logger.debug("IP plugin - Cannot open URL {} ({})".format(url, e)) queue_target.put(None) else: # Request depend on service try: if not json: queue_target.put(response) else: queue_target.put(loads(response)[key]) except ValueError: queue_target.put(None) class PublicIpInfo(object): """Get public IP information from Censys online service.""" def __init__(self, ip, url, username, password, timeout=2): """Init the class.""" self.ip = ip self.url = url self.username = username self.password = password self.timeout = timeout def get(self): """Return the public IP information returned by one of the online service.""" q = queue.Queue() t = threading.Thread(target=self._get_ip_public_info, args=(q, self.ip, self.url, self.username, self.password)) t.daemon = True t.start() timer = Timer(self.timeout) info = None while not timer.finished() and info is None: if q.qsize() > 0: info = q.get() if info is None: return None return info def _get_ip_public_info(self, queue_target, ip, url, username, password): """Request the url service and put the result in the queue_target.""" request_url = "{}/v2/hosts/{}".format(url, ip) try: response = urlopen_auth(request_url, username, password).read() except Exception as e: logger.debug("IP plugin - Cannot open URL {} ({})".format(request_url, e)) queue_target.put(None) else: try: queue_target.put(loads(response)['result']) except (ValueError, KeyError) as e: logger.debug("IP plugin - Cannot get result field from {} ({})".format(request_url, e)) queue_target.put(None) glances-3.4.0.3/glances/plugins/glances_diskio.py0000644000175000017500000002133014432156570021632 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Disk I/O plugin.""" from __future__ import unicode_literals from glances.compat import nativestr, n from glances.timer import getTimeSinceLastUpdate from glances.plugins.glances_plugin import GlancesPlugin import psutil # Define the history items list items_history_list = [ {'name': 'read_bytes', 'description': 'Bytes read per second', 'y_unit': 'B/s'}, {'name': 'write_bytes', 'description': 'Bytes write per second', 'y_unit': 'B/s'}, ] class Plugin(GlancesPlugin): """Glances disks I/O plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, stats_init_value=[] ) # We want to display the stat in the curse interface self.display_curse = True # Hide stats if it has never been != 0 if config is not None: self.hide_zero = config.get_bool_value(self.plugin_name, 'hide_zero', default=False) else: self.hide_zero = False self.hide_zero_fields = ['read_bytes', 'write_bytes'] # Force a first update because we need two update to have the first stat self.update() self.refresh_timer.set(0) def get_key(self): """Return the key of the list.""" return 'disk_name' @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update disk I/O stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Grab the stat using the psutil disk_io_counters method # read_count: number of reads # write_count: number of writes # read_bytes: number of bytes read # write_bytes: number of bytes written # read_time: time spent reading from disk (in milliseconds) # write_time: time spent writing to disk (in milliseconds) try: diskio = psutil.disk_io_counters(perdisk=True) except Exception: return stats # Previous disk IO stats are stored in the diskio_old variable # By storing time data we enable Rx/s and Tx/s calculations in the # XML/RPC API, which would otherwise be overly difficult work # for users of the API time_since_update = getTimeSinceLastUpdate('disk') diskio = diskio for disk in diskio: # By default, RamFS is not displayed (issue #714) if self.args is not None and not self.args.diskio_show_ramfs and disk.startswith('ram'): continue # Shall we display the stats ? if not self.is_display(disk): continue # Compute count and bit rate try: diskstat = { 'time_since_update': time_since_update, 'disk_name': n(disk), 'read_count': diskio[disk].read_count - self.diskio_old[disk].read_count, 'write_count': diskio[disk].write_count - self.diskio_old[disk].write_count, 'read_bytes': diskio[disk].read_bytes - self.diskio_old[disk].read_bytes, 'write_bytes': diskio[disk].write_bytes - self.diskio_old[disk].write_bytes, } except (KeyError, AttributeError): diskstat = { 'time_since_update': time_since_update, 'disk_name': n(disk), 'read_count': 0, 'write_count': 0, 'read_bytes': 0, 'write_bytes': 0, } # Add alias if exist (define in the configuration file) if self.has_alias(disk) is not None: diskstat['alias'] = self.has_alias(disk) # Add the dict key diskstat['key'] = self.get_key() # Add the current disk stat to the list stats.append(diskstat) # Save stats to compute next bitrate try: self.diskio_old = diskio except (IOError, UnboundLocalError): pass elif self.input_method == 'snmp': # Update stats using SNMP # No standard way for the moment... pass # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Check if the stats should be hidden self.update_views_hidden() # Add specifics information # Alert for i in self.get_raw(): disk_real_name = i['disk_name'] self.views[i[self.get_key()]]['read_bytes']['decoration'] = self.get_alert( int(i['read_bytes'] // i['time_since_update']), header=disk_real_name + '_rx' ) self.views[i[self.get_key()]]['write_bytes']['decoration'] = self.get_alert( int(i['write_bytes'] // i['time_since_update']), header=disk_real_name + '_tx' ) def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 13 # Header msg = '{:{width}}'.format('DISK I/O', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) if args.diskio_iops: msg = '{:>8}'.format('IOR/s') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('IOW/s') ret.append(self.curse_add_line(msg)) else: msg = '{:>8}'.format('R/s') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('W/s') ret.append(self.curse_add_line(msg)) # Disk list (sorted by name) for i in self.sorted_stats(): # Hide stats if never be different from 0 (issue #1787) if all([self.get_views(item=i[self.get_key()], key=f, option='hidden') for f in self.hide_zero_fields]): continue # Is there an alias for the disk name ? disk_name = self.has_alias(i['disk_name']) if self.has_alias(i['disk_name']) else i['disk_name'] # New line ret.append(self.curse_new_line()) if len(disk_name) > name_max_width: # Cut disk name if it is too long disk_name = '_' + disk_name[-name_max_width + 1 :] msg = '{:{width}}'.format(nativestr(disk_name), width=name_max_width + 1) ret.append(self.curse_add_line(msg)) if args.diskio_iops: # count txps = self.auto_unit(int(i['read_count'] // i['time_since_update'])) rxps = self.auto_unit(int(i['write_count'] // i['time_since_update'])) msg = '{:>7}'.format(txps) ret.append( self.curse_add_line( msg, self.get_views(item=i[self.get_key()], key='read_count', option='decoration') ) ) msg = '{:>7}'.format(rxps) ret.append( self.curse_add_line( msg, self.get_views(item=i[self.get_key()], key='write_count', option='decoration') ) ) else: # Bitrate txps = self.auto_unit(int(i['read_bytes'] // i['time_since_update'])) rxps = self.auto_unit(int(i['write_bytes'] // i['time_since_update'])) msg = '{:>7}'.format(txps) ret.append( self.curse_add_line( msg, self.get_views(item=i[self.get_key()], key='read_bytes', option='decoration') ) ) msg = '{:>7}'.format(rxps) ret.append( self.curse_add_line( msg, self.get_views(item=i[self.get_key()], key='write_bytes', option='decoration') ) ) return ret glances-3.4.0.3/glances/plugins/sensors/0000755000175000017500000000000014432156570017777 5ustar epsilonepsilonglances-3.4.0.3/glances/plugins/sensors/glances_batpercent.py0000644000175000017500000001042714432156570024200 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Battery plugin.""" import psutil from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin # Batinfo library (optional; Linux-only) batinfo_tag = True try: import batinfo except ImportError: logger.debug("batinfo library not found. Fallback to psutil.") batinfo_tag = False # Availability: # Linux, Windows, FreeBSD (psutil>=5.1.0) # macOS (psutil>=5.4.2) psutil_tag = True try: psutil.sensors_battery() except Exception as e: logger.error("Cannot grab battery status {}.".format(e)) psutil_tag = False class Plugin(GlancesPlugin): """Glances battery capacity plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # Init the sensor class try: self.glances_grab_bat = GlancesGrabBat() except Exception as e: logger.error("Can not init battery class ({})".format(e)) global batinfo_tag global psutil_tag batinfo_tag = False psutil_tag = False # We do not want to display the stat in a dedicated area # The HDD temp is displayed within the sensors plugin self.display_curse = False # @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update battery capacity stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats self.glances_grab_bat.update() stats = self.glances_grab_bat.get() elif self.input_method == 'snmp': # Update stats using SNMP # Not available pass # Update the stats self.stats = stats return self.stats class GlancesGrabBat(object): """Get batteries stats using the batinfo library.""" def __init__(self): """Init batteries stats.""" self.bat_list = [] if batinfo_tag: self.bat = batinfo.batteries() elif psutil_tag: self.bat = psutil else: self.bat = None def update(self): """Update the stats.""" self.bat_list = [] if batinfo_tag: # Use the batinfo lib to grab the stats # Compatible with multiple batteries self.bat.update() # Batinfo support multiple batteries # ... so take it into account (see #1920) # self.bat_list = [{ # 'label': 'Battery', # 'value': self.battery_percent, # 'unit': '%'}] for b in self.bat.stat: self.bat_list.append( { 'label': 'BAT {}'.format(b.path.split('/')[-1]), 'value': b.capacity, 'unit': '%', 'status': b.status, } ) elif psutil_tag and hasattr(self.bat.sensors_battery(), 'percent'): # Use psutil to grab the stats # Give directly the battery percent self.bat_list = [ { 'label': 'Battery', 'value': int(self.bat.sensors_battery().percent), 'unit': '%', 'status': 'Charging' if self.bat.sensors_battery().power_plugged else 'Discharging', } ] def get(self): """Get the stats.""" return self.bat_list @property def battery_percent(self): """Get batteries capacity percent.""" if not batinfo_tag or not self.bat.stat: return [] # Init the b_sum (sum of percent) # and Loop over batteries (yes a computer could have more than 1 battery) b_sum = 0 for b in self.bat.stat: try: b_sum += int(b.capacity) except ValueError: return [] # Return the global percent return int(b_sum / len(self.bat.stat)) glances-3.4.0.3/glances/plugins/sensors/__init__.py0000644000175000017500000000000014432156570022076 0ustar epsilonepsilonglances-3.4.0.3/glances/plugins/sensors/glances_hddtemp.py0000644000175000017500000001145614432156570023501 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """HDD temperature plugin.""" import os import socket from glances.compat import nativestr, range from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin class Plugin(GlancesPlugin): """Glances HDD temperature sensors plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # Init the sensor class hddtemp_host = self.get_conf_value("host", default=["127.0.0.1"])[0] hddtemp_port = int(self.get_conf_value("port", default="7634")) self.hddtemp = GlancesGrabHDDTemp(args=args, host=hddtemp_host, port=hddtemp_port) # We do not want to display the stat in a dedicated area # The HDD temp is displayed within the sensors plugin self.display_curse = False # @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update HDD stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib stats = self.hddtemp.get() else: # Update stats using SNMP # Not available for the moment pass # Update the stats self.stats = stats return self.stats class GlancesGrabHDDTemp(object): """Get hddtemp stats using a socket connection.""" def __init__(self, host='127.0.0.1', port=7634, args=None): """Init hddtemp stats.""" self.args = args self.host = host self.port = port self.cache = "" self.reset() def reset(self): """Reset/init the stats.""" self.hddtemp_list = [] def __update__(self): """Update the stats.""" # Reset the list self.reset() # Fetch the data # data = ("|/dev/sda|WDC WD2500JS-75MHB0|44|C|" # "|/dev/sdb|WDC WD2500JS-75MHB0|35|C|" # "|/dev/sdc|WDC WD3200AAKS-75B3A0|45|C|" # "|/dev/sdd|WDC WD3200AAKS-75B3A0|45|C|" # "|/dev/sde|WDC WD3200AAKS-75B3A0|43|C|" # "|/dev/sdf|???|ERR|*|" # "|/dev/sdg|HGST HTS541010A9E680|SLP|*|" # "|/dev/sdh|HGST HTS541010A9E680|UNK|*|") data = self.fetch() # Exit if no data if data == "": return # Safety check to avoid malformed data # Considering the size of "|/dev/sda||0||" as the minimum if len(data) < 14: data = self.cache if len(self.cache) > 0 else self.fetch() self.cache = data try: fields = data.split(b'|') except TypeError: fields = "" devices = (len(fields) - 1) // 5 for item in range(devices): offset = item * 5 hddtemp_current = {} device = os.path.basename(nativestr(fields[offset + 1])) temperature = fields[offset + 3] unit = nativestr(fields[offset + 4]) hddtemp_current['label'] = device try: hddtemp_current['value'] = float(temperature) except ValueError: # Temperature could be 'ERR', 'SLP' or 'UNK' (see issue #824) # Improper bytes/unicode in glances_hddtemp.py (see issue #887) hddtemp_current['value'] = nativestr(temperature) hddtemp_current['unit'] = unit self.hddtemp_list.append(hddtemp_current) def fetch(self): """Fetch the data from hddtemp daemon.""" # Taking care of sudden deaths/stops of hddtemp daemon try: sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck.connect((self.host, self.port)) data = b'' while True: received = sck.recv(4096) if not received: break data += received except Exception as e: logger.debug("Cannot connect to an HDDtemp server ({}:{} => {})".format(self.host, self.port, e)) logger.debug("Disable the HDDtemp module. Use the --disable-hddtemp to hide the previous message.") if self.args is not None: self.args.disable_hddtemp = True data = "" finally: sck.close() if data != "": logger.debug("Received data from the HDDtemp server: {}".format(data)) return data def get(self): """Get HDDs list.""" self.__update__() return self.hddtemp_list glances-3.4.0.3/glances/plugins/glances_processcount.py0000644000175000017500000001120214432156570023074 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Process count plugin.""" from glances.processes import glances_processes, sort_for_human from glances.plugins.glances_plugin import GlancesPlugin # Define the history items list items_history_list = [ {'name': 'total', 'description': 'Total number of processes', 'y_unit': ''}, {'name': 'running', 'description': 'Total number of running processes', 'y_unit': ''}, {'name': 'sleeping', 'description': 'Total number of sleeping processes', 'y_unit': ''}, {'name': 'thread', 'description': 'Total number of threads', 'y_unit': ''}, ] class Plugin(GlancesPlugin): """Glances process count plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, items_history_list=items_history_list) # We want to display the stat in the curse interface self.display_curse = True # Note: 'glances_processes' is already init in the glances_processes.py script def enable_extended(self): """Enable extended stats.""" glances_processes.enable_extended() def disable_extended(self): """Disable extended stats.""" glances_processes.disable_extended() @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update processes stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Here, update is call for processcount AND processlist glances_processes.update() # Return the processes count stats = glances_processes.get_count() elif self.input_method == 'snmp': # Update stats using SNMP # Not available pass # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if args.disable_process: msg = "PROCESSES DISABLED (press 'z' to display)" ret.append(self.curse_add_line(msg)) return ret if not self.stats: return ret # Display the filter (if it exists) if glances_processes.process_filter is not None: msg = 'Processes filter:' ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {} '.format(glances_processes.process_filter) if glances_processes.process_filter_key is not None: msg += 'on column {} '.format(glances_processes.process_filter_key) ret.append(self.curse_add_line(msg, "FILTER")) msg = '(\'ENTER\' to edit, \'E\' to reset)' ret.append(self.curse_add_line(msg)) ret.append(self.curse_new_line()) # Build the string message # Header msg = 'TASKS' ret.append(self.curse_add_line(msg, "TITLE")) # Compute processes other = self.stats['total'] msg = '{:>4}'.format(self.stats['total']) ret.append(self.curse_add_line(msg)) if 'thread' in self.stats: msg = ' ({} thr),'.format(self.stats['thread']) ret.append(self.curse_add_line(msg)) if 'running' in self.stats: other -= self.stats['running'] msg = ' {} run,'.format(self.stats['running']) ret.append(self.curse_add_line(msg)) if 'sleeping' in self.stats: other -= self.stats['sleeping'] msg = ' {} slp,'.format(self.stats['sleeping']) ret.append(self.curse_add_line(msg)) msg = ' {} oth '.format(other) ret.append(self.curse_add_line(msg)) # Display sort information msg = 'Programs' if self.args.programs else 'Threads' try: sort_human = sort_for_human[glances_processes.sort_key] except KeyError: sort_human = glances_processes.sort_key if glances_processes.auto_sort: msg += ' sorted automatically' ret.append(self.curse_add_line(msg)) msg = ' by {}'.format(sort_human) else: msg += ' sorted by {}'.format(sort_human) ret.append(self.curse_add_line(msg)) # Return the message with decoration return ret glances-3.4.0.3/glances/plugins/glances_processlist.py0000644000175000017500000010273514432156570022733 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Process list plugin.""" import os import copy from glances.logger import logger from glances.globals import WINDOWS from glances.compat import key_exist_value_not_none_not_v from glances.processes import glances_processes, sort_stats from glances.outputs.glances_unicode import unicode_message from glances.plugins.glances_core import Plugin as CorePlugin from glances.plugins.glances_plugin import GlancesPlugin def seconds_to_hms(input_seconds): """Convert seconds to human-readable time.""" minutes, seconds = divmod(input_seconds, 60) hours, minutes = divmod(minutes, 60) hours = int(hours) minutes = int(minutes) seconds = str(int(seconds)).zfill(2) return hours, minutes, seconds def split_cmdline(bare_process_name, cmdline): """Return path, cmd and arguments for a process cmdline based on bare_process_name. If first argument of cmdline starts with the bare_process_name then cmdline will just be considered cmd and path will be empty (see https://github.com/nicolargo/glances/issues/1795) :param bare_process_name: Name of the process from psutil :param cmdline: cmdline from psutil :return: Tuple with three strings, which are path, cmd and arguments of the process """ if cmdline[0].startswith(bare_process_name): path, cmd = "", cmdline[0] else: path, cmd = os.path.split(cmdline[0]) arguments = ' '.join(cmdline[1:]) return path, cmd, arguments class Plugin(GlancesPlugin): """Glances' processes plugin. stats is a list """ # Define the header layout of the processes list columns layout_header = { 'cpu': '{:<6} ', 'mem': '{:<5} ', 'virt': '{:<5} ', 'res': '{:<5} ', 'pid': '{:>{width}} ', 'user': '{:<10} ', 'time': '{:>8} ', 'thread': '{:<3} ', 'nice': '{:>3} ', 'status': '{:>1} ', 'ior': '{:>4} ', 'iow': '{:<4} ', 'command': '{} {}', } # Define the stat layout of the processes list columns layout_stat = { 'cpu': '{:<6.1f}', 'cpu_no_digit': '{:<6.0f}', 'mem': '{:<5.1f} ', 'virt': '{:<5} ', 'res': '{:<5} ', 'pid': '{:>{width}} ', 'user': '{:<10} ', 'time': '{:>8} ', 'thread': '{:<3} ', 'nice': '{:>3} ', 'status': '{:>1} ', 'ior': '{:>4} ', 'iow': '{:<4} ', 'command': '{}', 'name': '[{}]', } def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # We want to display the stat in the curse interface self.display_curse = True # Trying to display proc time self.tag_proc_time = True # Call CorePlugin to get the core number (needed when not in IRIX mode / Solaris mode) try: self.nb_log_core = CorePlugin(args=self.args).update()["log"] except Exception: self.nb_log_core = 0 # Get the max values (dict) self.max_values = copy.deepcopy(glances_processes.max_values()) # Get the maximum PID number # Use to optimize space (see https://github.com/nicolargo/glances/issues/959) self.pid_max = glances_processes.pid_max # Set the default sort key if it is defined in the configuration file if config is not None: if 'processlist' in config.as_dict() and 'sort_key' in config.as_dict()['processlist']: logger.debug( 'Configuration overwrites processes sort key by {}'.format( config.as_dict()['processlist']['sort_key'] ) ) glances_processes.set_sort_key(config.as_dict()['processlist']['sort_key'], False) # The default sort key could also be overwrite by command line (see #1903) if args.sort_processes_key is not None: glances_processes.set_sort_key(args.sort_processes_key, False) # Note: 'glances_processes' is already init in the processes.py script def get_key(self): """Return the key of the list.""" return 'pid' def update(self): """Update processes stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Note: Update is done in the processcount plugin # Just return the processes list if self.args.programs: stats = glances_processes.getlist(as_programs=True) else: stats = glances_processes.getlist() elif self.input_method == 'snmp': # No SNMP grab for processes pass # Update the stats self.stats = stats # Get the max values (dict) # Use Deep copy to avoid change between update and display self.max_values = copy.deepcopy(glances_processes.max_values()) return self.stats def get_nice_alert(self, value): """Return the alert relative to the Nice configuration list""" value = str(value) try: if value in self.get_limit('nice_critical'): return 'CRITICAL' except KeyError: pass try: if value in self.get_limit('nice_warning'): return 'WARNING' except KeyError: pass try: if value in self.get_limit('nice_careful'): return 'CAREFUL' except KeyError: pass return 'DEFAULT' def _get_process_curses_cpu(self, p, selected, args): """Return process CPU curses""" if key_exist_value_not_none_not_v('cpu_percent', p, ''): cpu_layout = self.layout_stat['cpu'] if p['cpu_percent'] < 100 else self.layout_stat['cpu_no_digit'] if args.disable_irix and self.nb_log_core != 0: msg = cpu_layout.format(p['cpu_percent'] / float(self.nb_log_core)) else: msg = cpu_layout.format(p['cpu_percent']) alert = self.get_alert( p['cpu_percent'], highlight_zero=False, is_max=(p['cpu_percent'] == self.max_values['cpu_percent']), header="cpu", ) ret = self.curse_add_line(msg, alert) else: msg = self.layout_header['cpu'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_mem(self, p, selected, args): """Return process MEM curses""" if key_exist_value_not_none_not_v('memory_percent', p, ''): msg = self.layout_stat['mem'].format(p['memory_percent']) alert = self.get_alert( p['memory_percent'], highlight_zero=False, is_max=(p['memory_percent'] == self.max_values['memory_percent']), header="mem", ) ret = self.curse_add_line(msg, alert) else: msg = self.layout_header['mem'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_vms(self, p, selected, args): """Return process VMS curses""" if key_exist_value_not_none_not_v('memory_info', p, '', 1): msg = self.layout_stat['virt'].format(self.auto_unit(p['memory_info'][1], low_precision=False)) ret = self.curse_add_line(msg, optional=True) else: msg = self.layout_header['virt'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_rss(self, p, selected, args): """Return process RSS curses""" if key_exist_value_not_none_not_v('memory_info', p, '', 0): msg = self.layout_stat['res'].format(self.auto_unit(p['memory_info'][0], low_precision=False)) ret = self.curse_add_line(msg, optional=True) else: msg = self.layout_header['res'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_username(self, p, selected, args): """Return process username curses""" if 'username' in p: # docker internal users are displayed as ints only, therefore str() # Correct issue #886 on Windows OS msg = self.layout_stat['user'].format(str(p['username'])[:9]) ret = self.curse_add_line(msg) else: msg = self.layout_header['user'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_time(self, p, selected, args): """Return process time curses""" try: # Sum user and system time user_system_time = p['cpu_times'][0] + p['cpu_times'][1] except (OverflowError, TypeError): # Catch OverflowError on some Amazon EC2 server # See https://github.com/nicolargo/glances/issues/87 # Also catch TypeError on macOS # See: https://github.com/nicolargo/glances/issues/622 # logger.debug("Cannot get TIME+ ({})".format(e)) msg = self.layout_header['time'].format('?') ret = self.curse_add_line(msg, optional=True) else: hours, minutes, seconds = seconds_to_hms(user_system_time) if hours > 99: msg = '{:<7}h'.format(hours) elif 0 < hours < 100: msg = '{}h{}:{}'.format(hours, minutes, seconds) else: msg = '{}:{}'.format(minutes, seconds) msg = self.layout_stat['time'].format(msg) if hours > 0: ret = self.curse_add_line(msg, decoration='CPU_TIME', optional=True) else: ret = self.curse_add_line(msg, optional=True) return ret def _get_process_curses_thread(self, p, selected, args): """Return process thread curses""" if 'num_threads' in p: num_threads = p['num_threads'] if num_threads is None: num_threads = '?' msg = self.layout_stat['thread'].format(num_threads) ret = self.curse_add_line(msg) else: msg = self.layout_header['thread'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_nice(self, p, selected, args): """Return process nice curses""" if 'nice' in p: nice = p['nice'] if nice is None: nice = '?' msg = self.layout_stat['nice'].format(nice) ret = self.curse_add_line(msg, decoration=self.get_nice_alert(nice)) else: msg = self.layout_header['nice'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_status(self, p, selected, args): """Return process status curses""" if 'status' in p: status = p['status'] msg = self.layout_stat['status'].format(status) if status == 'R': ret = self.curse_add_line(msg, decoration='STATUS') else: ret = self.curse_add_line(msg) else: msg = self.layout_header['status'].format('?') ret = self.curse_add_line(msg) return ret def _get_process_curses_io(self, p, selected, args, rorw='ior'): """Return process IO Read or Write curses""" if 'io_counters' in p and p['io_counters'][4] == 1 and p['time_since_update'] != 0: # Display rate if stats is available and io_tag ([4]) == 1 # IO io = int( (p['io_counters'][0 if rorw == 'ior' else 1] - p['io_counters'][2 if rorw == 'ior' else 3]) / p['time_since_update'] ) if io == 0: msg = self.layout_stat[rorw].format("0") else: msg = self.layout_stat[rorw].format(self.auto_unit(io, low_precision=True)) ret = self.curse_add_line(msg, optional=True, additional=True) else: msg = self.layout_header[rorw].format("?") ret = self.curse_add_line(msg, optional=True, additional=True) return ret def _get_process_curses_io_read(self, p, selected, args): """Return process IO Read curses""" return self._get_process_curses_io(p, selected, args, rorw='ior') def _get_process_curses_io_write(self, p, selected, args): """Return process IO Write curses""" return self._get_process_curses_io(p, selected, args, rorw='iow') def get_process_curses_data(self, p, selected, args): """Get curses data to display for a process. - p is the process to display - selected is a tag=True if p is the selected process """ ret = [self.curse_new_line()] # When a process is selected: # * display a special character at the beginning of the line # * underline the command name ret.append( self.curse_add_line( unicode_message('PROCESS_SELECTOR') if (selected and not args.disable_cursor) else ' ', 'SELECTED' ) ) # CPU ret.append(self._get_process_curses_cpu(p, selected, args)) # MEM ret.append(self._get_process_curses_mem(p, selected, args)) ret.append(self._get_process_curses_vms(p, selected, args)) ret.append(self._get_process_curses_rss(p, selected, args)) # PID if not self.args.programs: # Display processes, so the PID should be displayed msg = self.layout_stat['pid'].format(p['pid'], width=self.__max_pid_size()) else: # Display programs, so the PID should not be displayed # Instead displays the number of children msg = self.layout_stat['pid'].format( len(p['childrens']) if 'childrens' in p else '_', width=self.__max_pid_size() ) ret.append(self.curse_add_line(msg)) # USER ret.append(self._get_process_curses_username(p, selected, args)) # TIME+ ret.append(self._get_process_curses_time(p, selected, args)) # THREAD ret.append(self._get_process_curses_thread(p, selected, args)) # NICE ret.append(self._get_process_curses_nice(p, selected, args)) # STATUS ret.append(self._get_process_curses_status(p, selected, args)) # IO read/write ret.append(self._get_process_curses_io_read(p, selected, args)) ret.append(self._get_process_curses_io_write(p, selected, args)) # Command line # If no command line for the process is available, fallback to the bare process name instead bare_process_name = p['name'] cmdline = p.get('cmdline', '?') try: process_decoration = 'PROCESS_SELECTED' if (selected and not args.disable_cursor) else 'PROCESS' if cmdline: path, cmd, arguments = split_cmdline(bare_process_name, cmdline) # Manage end of line in arguments (see #1692) arguments = arguments.replace('\r\n', ' ') arguments = arguments.replace('\n', ' ') arguments = arguments.replace('\t', ' ') if os.path.isdir(path) and not args.process_short_name: msg = self.layout_stat['command'].format(path) + os.sep ret.append(self.curse_add_line(msg, splittable=True)) ret.append(self.curse_add_line(cmd, decoration=process_decoration, splittable=True)) else: msg = self.layout_stat['command'].format(cmd) ret.append(self.curse_add_line(msg, decoration=process_decoration, splittable=True)) if arguments: msg = ' ' + self.layout_stat['command'].format(arguments) ret.append(self.curse_add_line(msg, splittable=True)) else: msg = self.layout_stat['name'].format(bare_process_name) ret.append(self.curse_add_line(msg, decoration=process_decoration, splittable=True)) except (TypeError, UnicodeEncodeError) as e: # Avoid crash after running fine for several hours #1335 logger.debug("Can not decode command line '{}' ({})".format(cmdline, e)) ret.append(self.curse_add_line('', splittable=True)) return ret def is_selected_process(self, args): return ( args.is_standalone and self.args.enable_process_extended and args.cursor_position is not None and glances_processes.extended_process is not None ) def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or args.disable_process: return ret # Compute the sort key process_sort_key = glances_processes.sort_key processes_list_sorted = self.__sort_stats(process_sort_key) # Display extended stats for selected process ############################################# if self.is_selected_process(args): self.__msg_curse_extended_process(ret, glances_processes.extended_process) # Display others processes list ############################### # Header self.__msg_curse_header(ret, process_sort_key, args) # Process list # Loop over processes (sorted by the sort key previously compute) # This is a Glances bottleneck (see flame graph), # get_process_curses_data should be optimzed for position, process in enumerate(processes_list_sorted): ret.extend(self.get_process_curses_data(process, position == args.cursor_position, args)) # A filter is set Display the stats summaries if glances_processes.process_filter is not None: if args.reset_minmax_tag: args.reset_minmax_tag = not args.reset_minmax_tag self.__mmm_reset() self.__msg_curse_sum(ret, args=args) self.__msg_curse_sum(ret, mmm='min', args=args) self.__msg_curse_sum(ret, mmm='max', args=args) # Return the message with decoration return ret def __msg_curse_extended_process(self, ret, p): """Get extended curses data for the selected process (see issue #2225) The result depends of the process type (process or thread). Input p is a dict with the following keys: {'status': 'S', 'memory_info': pmem(rss=466890752, vms=3365347328, shared=68153344, text=659456, lib=0, data=774647808, dirty=0), 'pid': 4980, 'io_counters': [165385216, 0, 165385216, 0, 1], 'num_threads': 20, 'nice': 0, 'memory_percent': 5.958135664449709, 'cpu_percent': 0.0, 'gids': pgids(real=1000, effective=1000, saved=1000), 'cpu_times': pcputimes(user=696.38, system=119.98, children_user=0.0, children_system=0.0, iowait=0.0), 'name': 'WebExtensions', 'key': 'pid', 'time_since_update': 2.1997854709625244, 'cmdline': ['/snap/firefox/2154/usr/lib/firefox/firefox', '-contentproc', '-childID', '...'], 'username': 'nicolargo', 'cpu_min': 0.0, 'cpu_max': 7.0, 'cpu_mean': 3.2} """ if self.args.programs: self.__msg_curse_extended_process_program(ret, p) else: self.__msg_curse_extended_process_thread(ret, p) def __msg_curse_extended_process_program(self, ret, p): # Title msg = "Pinned program {} ('e' to unpin)".format(p['name']) ret.append(self.curse_add_line(msg, "TITLE")) ret.append(self.curse_new_line()) ret.append(self.curse_new_line()) def __msg_curse_extended_process_thread(self, ret, p): # Title ret.append(self.curse_add_line("Pinned thread ", "TITLE")) ret.append(self.curse_add_line(p['name'], "UNDERLINE")) ret.append(self.curse_add_line(" ('e' to unpin)")) # First line is CPU affinity ret.append(self.curse_new_line()) ret.append(self.curse_add_line(' CPU Min/Max/Mean: ')) msg = '{: >7.1f}{: >7.1f}{: >7.1f}%'.format(p['cpu_min'], p['cpu_max'], p['cpu_mean']) ret.append(self.curse_add_line(msg, decoration='INFO')) if 'cpu_affinity' in p and p['cpu_affinity'] is not None: ret.append(self.curse_add_line(' Affinity: ')) ret.append(self.curse_add_line(str(len(p['cpu_affinity'])), decoration='INFO')) ret.append(self.curse_add_line(' cores', decoration='INFO')) if 'ionice' in p and p['ionice'] is not None and hasattr(p['ionice'], 'ioclass'): msg = ' IO nice: ' k = 'Class is ' v = p['ionice'].ioclass # Linux: The scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle. # Windows: On Windows only ioclass is used and it can be set to 2 (normal), 1 (low) or 0 (very low). if WINDOWS: if v == 0: msg += k + 'Very Low' elif v == 1: msg += k + 'Low' elif v == 2: msg += 'No specific I/O priority' else: msg += k + str(v) else: if v == 0: msg += 'No specific I/O priority' elif v == 1: msg += k + 'Real Time' elif v == 2: msg += k + 'Best Effort' elif v == 3: msg += k + 'IDLE' else: msg += k + str(v) # value is a number which goes from 0 to 7. # The higher the value, the lower the I/O priority of the process. if hasattr(p['ionice'], 'value') and p['ionice'].value != 0: msg += ' (value %s/7)' % str(p['ionice'].value) ret.append(self.curse_add_line(msg, splittable=True)) # Second line is memory info ret.append(self.curse_new_line()) ret.append(self.curse_add_line(' MEM Min/Max/Mean: ')) msg = '{: >7.1f}{: >7.1f}{: >7.1f}%'.format(p['memory_min'], p['memory_max'], p['memory_mean']) ret.append(self.curse_add_line(msg, decoration='INFO')) if 'memory_info' in p and p['memory_info'] is not None: ret.append(self.curse_add_line(' Memory info: ')) for k in p['memory_info']._asdict(): ret.append( self.curse_add_line( self.auto_unit(p['memory_info']._asdict()[k], low_precision=False), decoration='INFO', splittable=True, ) ) ret.append(self.curse_add_line(' ' + k + ' ', splittable=True)) if 'memory_swap' in p and p['memory_swap'] is not None: ret.append( self.curse_add_line( self.auto_unit(p['memory_swap'], low_precision=False), decoration='INFO', splittable=True ) ) ret.append(self.curse_add_line(' swap ', splittable=True)) # Third line is for open files/network sessions ret.append(self.curse_new_line()) ret.append(self.curse_add_line(' Open: ')) for stat_prefix in ['num_threads', 'num_fds', 'num_handles', 'tcp', 'udp']: if stat_prefix in p and p[stat_prefix] is not None: ret.append(self.curse_add_line(str(p[stat_prefix]), decoration='INFO')) ret.append(self.curse_add_line(' {} '.format(stat_prefix.replace('num_', '')))) ret.append(self.curse_new_line()) ret.append(self.curse_new_line()) def __msg_curse_header(self, ret, process_sort_key, args=None): """Build the header and add it to the ret dict.""" sort_style = 'SORT' if args.disable_irix and 0 < self.nb_log_core < 10: msg = self.layout_header['cpu'].format('CPU%/' + str(self.nb_log_core)) elif args.disable_irix and self.nb_log_core != 0: msg = self.layout_header['cpu'].format('CPU%/C') else: msg = self.layout_header['cpu'].format('CPU%') ret.append(self.curse_add_line(msg, sort_style if process_sort_key == 'cpu_percent' else 'DEFAULT')) msg = self.layout_header['mem'].format('MEM%') ret.append(self.curse_add_line(msg, sort_style if process_sort_key == 'memory_percent' else 'DEFAULT')) msg = self.layout_header['virt'].format('VIRT') ret.append(self.curse_add_line(msg, optional=True)) msg = self.layout_header['res'].format('RES') ret.append(self.curse_add_line(msg, optional=True)) if not self.args.programs: msg = self.layout_header['pid'].format('PID', width=self.__max_pid_size()) else: msg = self.layout_header['pid'].format('NPROCS', width=self.__max_pid_size()) ret.append(self.curse_add_line(msg)) msg = self.layout_header['user'].format('USER') ret.append(self.curse_add_line(msg, sort_style if process_sort_key == 'username' else 'DEFAULT')) msg = self.layout_header['time'].format('TIME+') ret.append( self.curse_add_line(msg, sort_style if process_sort_key == 'cpu_times' else 'DEFAULT', optional=True) ) msg = self.layout_header['thread'].format('THR') ret.append(self.curse_add_line(msg)) msg = self.layout_header['nice'].format('NI') ret.append(self.curse_add_line(msg)) msg = self.layout_header['status'].format('S') ret.append(self.curse_add_line(msg)) msg = self.layout_header['ior'].format('R/s') ret.append( self.curse_add_line( msg, sort_style if process_sort_key == 'io_counters' else 'DEFAULT', optional=True, additional=True ) ) msg = self.layout_header['iow'].format('W/s') ret.append( self.curse_add_line( msg, sort_style if process_sort_key == 'io_counters' else 'DEFAULT', optional=True, additional=True ) ) if args.is_standalone and not args.disable_cursor: if self.args.programs: shortkey = "('k' to kill)" else: shortkey = "('e' to pin | 'k' to kill)" else: shortkey = "" msg = self.layout_header['command'].format("Programs" if self.args.programs else "Command", shortkey) ret.append(self.curse_add_line(msg, sort_style if process_sort_key == 'name' else 'DEFAULT')) def __msg_curse_sum(self, ret, sep_char='_', mmm=None, args=None): """ Build the sum message (only when filter is on) and add it to the ret dict. :param ret: list of string where the message is added :param sep_char: define the line separation char :param mmm: display min, max, mean or current (if mmm=None) :param args: Glances args """ ret.append(self.curse_new_line()) if mmm is None: ret.append(self.curse_add_line(sep_char * 69)) ret.append(self.curse_new_line()) # CPU percent sum msg = self.layout_stat['cpu'].format(self.__sum_stats('cpu_percent', mmm=mmm)) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm))) # MEM percent sum msg = self.layout_stat['mem'].format(self.__sum_stats('memory_percent', mmm=mmm)) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm))) # VIRT and RES memory sum if ( 'memory_info' in self.stats[0] and self.stats[0]['memory_info'] is not None and self.stats[0]['memory_info'] != '' ): # VMS msg = self.layout_stat['virt'].format( self.auto_unit(self.__sum_stats('memory_info', indice=1, mmm=mmm), low_precision=False) ) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm), optional=True)) # RSS msg = self.layout_stat['res'].format( self.auto_unit(self.__sum_stats('memory_info', indice=0, mmm=mmm), low_precision=False) ) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm), optional=True)) else: msg = self.layout_header['virt'].format('') ret.append(self.curse_add_line(msg)) msg = self.layout_header['res'].format('') ret.append(self.curse_add_line(msg)) # PID msg = self.layout_header['pid'].format('', width=self.__max_pid_size()) ret.append(self.curse_add_line(msg)) # USER msg = self.layout_header['user'].format('') ret.append(self.curse_add_line(msg)) # TIME+ msg = self.layout_header['time'].format('') ret.append(self.curse_add_line(msg, optional=True)) # THREAD msg = self.layout_header['thread'].format('') ret.append(self.curse_add_line(msg)) # NICE msg = self.layout_header['nice'].format('') ret.append(self.curse_add_line(msg)) # STATUS msg = self.layout_header['status'].format('') ret.append(self.curse_add_line(msg)) # IO read/write if 'io_counters' in self.stats[0] and mmm is None: # IO read io_rs = int( (self.__sum_stats('io_counters', 0) - self.__sum_stats('io_counters', indice=2, mmm=mmm)) / self.stats[0]['time_since_update'] ) if io_rs == 0: msg = self.layout_stat['ior'].format('0') else: msg = self.layout_stat['ior'].format(self.auto_unit(io_rs, low_precision=True)) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm), optional=True, additional=True)) # IO write io_ws = int( (self.__sum_stats('io_counters', 1) - self.__sum_stats('io_counters', indice=3, mmm=mmm)) / self.stats[0]['time_since_update'] ) if io_ws == 0: msg = self.layout_stat['iow'].format('0') else: msg = self.layout_stat['iow'].format(self.auto_unit(io_ws, low_precision=True)) ret.append(self.curse_add_line(msg, decoration=self.__mmm_deco(mmm), optional=True, additional=True)) else: msg = self.layout_header['ior'].format('') ret.append(self.curse_add_line(msg, optional=True, additional=True)) msg = self.layout_header['iow'].format('') ret.append(self.curse_add_line(msg, optional=True, additional=True)) if mmm is None: msg = ' < {}'.format('current') ret.append(self.curse_add_line(msg, optional=True)) else: msg = ' < {}'.format(mmm) ret.append(self.curse_add_line(msg, optional=True)) msg = ' (\'M\' to reset)' ret.append(self.curse_add_line(msg, optional=True)) def __mmm_deco(self, mmm): """Return the decoration string for the current mmm status.""" if mmm is not None: return 'DEFAULT' else: return 'FILTER' def __mmm_reset(self): """Reset the MMM stats.""" self.mmm_min = {} self.mmm_max = {} def __sum_stats(self, key, indice=None, mmm=None): """Return the sum of the stats value for the given key. :param indice: If indice is set, get the p[key][indice] :param mmm: display min, max, mean or current (if mmm=None) """ # Compute stats summary ret = 0 for p in self.stats: if key not in p: # Correct issue #1188 continue if p[key] is None: # Correct https://github.com/nicolargo/glances/issues/1105#issuecomment-363553788 continue if indice is None: ret += p[key] else: ret += p[key][indice] # Manage Min/Max/Mean mmm_key = self.__mmm_key(key, indice) if mmm == 'min': try: if self.mmm_min[mmm_key] > ret: self.mmm_min[mmm_key] = ret except AttributeError: self.mmm_min = {} return 0 except KeyError: self.mmm_min[mmm_key] = ret ret = self.mmm_min[mmm_key] elif mmm == 'max': try: if self.mmm_max[mmm_key] < ret: self.mmm_max[mmm_key] = ret except AttributeError: self.mmm_max = {} return 0 except KeyError: self.mmm_max[mmm_key] = ret ret = self.mmm_max[mmm_key] return ret def __mmm_key(self, key, indice): ret = key if indice is not None: ret += str(indice) return ret def __sort_stats(self, sorted_by=None): """Return the stats (dict) sorted by (sorted_by).""" return sort_stats(self.stats, sorted_by, reverse=glances_processes.sort_reverse) def __max_pid_size(self): """Return the maximum PID size in number of char.""" if self.pid_max is not None: return len(str(self.pid_max)) else: # By default return 5 (corresponding to 99999 PID number) return 5 glances-3.4.0.3/glances/plugins/glances_memswap.py0000644000175000017500000001633614432156570022033 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Swap memory plugin.""" from glances.compat import iterkeys from glances.timer import getTimeSinceLastUpdate from glances.plugins.glances_plugin import GlancesPlugin import psutil # Fields description fields_description = { 'total': {'description': 'Total swap memory.', 'unit': 'bytes', 'min_symbol': 'K'}, 'used': {'description': 'Used swap memory.', 'unit': 'bytes', 'min_symbol': 'K'}, 'free': {'description': 'Free swap memory.', 'unit': 'bytes', 'min_symbol': 'K'}, 'percent': {'description': 'Used swap memory in percentage.', 'unit': 'percent'}, 'sin': { 'description': 'The number of bytes the system has swapped in from disk (cumulative).', 'unit': 'bytes', 'min_symbol': 'K', }, 'sout': { 'description': 'The number of bytes the system has swapped out from disk (cumulative).', 'unit': 'bytes', 'min_symbol': 'K', }, 'time_since_update': {'description': 'Number of seconds since last update.', 'unit': 'seconds'}, } # SNMP OID # Total Swap Size: .1.3.6.1.4.1.2021.4.3.0 # Available Swap Space: .1.3.6.1.4.1.2021.4.4.0 snmp_oid = { 'default': {'total': '1.3.6.1.4.1.2021.4.3.0', 'free': '1.3.6.1.4.1.2021.4.4.0'}, 'windows': { 'mnt_point': '1.3.6.1.2.1.25.2.3.1.3', 'alloc_unit': '1.3.6.1.2.1.25.2.3.1.4', 'size': '1.3.6.1.2.1.25.2.3.1.5', 'used': '1.3.6.1.2.1.25.2.3.1.6', }, } # Define the history items list # All items in this list will be historised if the --enable-history tag is set items_history_list = [{'name': 'percent', 'description': 'Swap memory usage', 'y_unit': '%'}] class Plugin(GlancesPlugin): """Glances swap memory plugin. stats is a dict """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, fields_description=fields_description ) # We want to display the stat in the curse interface self.display_curse = True @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update swap memory stats using the input method.""" # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Grab SWAP using the psutil swap_memory method try: sm_stats = psutil.swap_memory() except RuntimeError: # Crash on startup on Illumos when no swap is configured #1767 pass else: # Get all the swap stats (copy/paste of the psutil documentation) # total: total swap memory in bytes # used: used swap memory in bytes # free: free swap memory in bytes # percent: the percentage usage # sin: the number of bytes the system has swapped in from disk (cumulative) # sout: the number of bytes the system has swapped out from disk (cumulative) for swap in ['total', 'used', 'free', 'percent', 'sin', 'sout']: if hasattr(sm_stats, swap): stats[swap] = getattr(sm_stats, swap) # By storing time data we enable sin/s and sout/s calculations in the # XML/RPC API, which would otherwise be overly difficult work # for users of the API stats['time_since_update'] = getTimeSinceLastUpdate('memswap') elif self.input_method == 'snmp': # Update stats using SNMP if self.short_system_name == 'windows': # Mem stats for Windows OS are stored in the FS table try: fs_stat = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name], bulk=True) except KeyError: self.reset() else: for fs in fs_stat: # The virtual memory concept is used by the operating # system to extend (virtually) the physical memory and # thus to run more programs by swapping unused memory # zone (page) to a disk file. if fs == 'Virtual Memory': stats['total'] = int(fs_stat[fs]['size']) * int(fs_stat[fs]['alloc_unit']) stats['used'] = int(fs_stat[fs]['used']) * int(fs_stat[fs]['alloc_unit']) stats['percent'] = float(stats['used'] * 100 / stats['total']) stats['free'] = stats['total'] - stats['used'] break else: stats = self.get_stats_snmp(snmp_oid=snmp_oid['default']) if stats['total'] == '': self.reset() return stats for key in iterkeys(stats): if stats[key] != '': stats[key] = float(stats[key]) * 1024 # used=total-free stats['used'] = stats['total'] - stats['free'] # percent: the percentage usage calculated as (total - # available) / total * 100. stats['percent'] = float((stats['total'] - stats['free']) / stats['total'] * 100) # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics information # Alert and log if 'used' in self.stats and 'total' in self.stats and 'percent' in self.stats: self.views['percent']['decoration'] = self.get_alert_log(self.stats['used'], maximum=self.stats['total']) def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and plugin not disabled if not self.stats or self.is_disabled(): return ret # First line # total% msg = '{:4}'.format('SWAP') ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {:2}'.format(self.trend_msg(self.get_trend('percent'))) ret.append(self.curse_add_line(msg)) # Percent memory usage msg = '{:>6.1%}'.format(self.stats['percent'] / 100) ret.append(self.curse_add_line(msg, self.get_views(key='percent', option='decoration'))) # Second line # total ret.append(self.curse_new_line()) # Total memory usage ret.extend(self.curse_add_stat('total', width=15)) # Third line # used ret.append(self.curse_new_line()) # Used memory usage ret.extend(self.curse_add_stat('used', width=15)) # Fourth line # free ret.append(self.curse_new_line()) # Free memory usage ret.extend(self.curse_add_stat('free', width=15)) return ret glances-3.4.0.3/glances/plugins/glances_cloud.py0000644000175000017500000001513114432156570021460 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Cloud plugin. Supported Cloud API: - OpenStack meta data (class ThreadOpenStack) - Vanilla OpenStack - OpenStackEC2 meta data (class ThreadOpenStackEC2) - Amazon EC2 compatible """ import threading from glances.compat import iteritems, to_ascii from glances.plugins.glances_plugin import GlancesPlugin from glances.logger import logger # Import plugin specific dependency try: import requests except ImportError as e: import_error_tag = True # Display debug message if import error logger.warning("Missing Python Lib ({}), Cloud plugin is disabled".format(e)) else: import_error_tag = False class Plugin(GlancesPlugin): """Glances' cloud plugin. The goal of this plugin is to retrieve additional information concerning the datacenter where the host is connected. See https://github.com/nicolargo/glances/issues/1029 stats is a dict """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True # Init the stats self.reset() # Init thread to grab OpenStack stats asynchronously self.OPENSTACK = ThreadOpenStack() self.OPENSTACKEC2 = ThreadOpenStackEC2() # Run the thread self.OPENSTACK.start() self.OPENSTACKEC2.start() def exit(self): """Overwrite the exit method to close threads.""" self.OPENSTACK.stop() self.OPENSTACKEC2.stop() # Call the father class super(Plugin, self).exit() @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the cloud stats. Return the stats (dict) """ # Init new stats stats = self.get_init_value() # Requests lib is needed to get stats from the Cloud API if import_error_tag: return stats # Update the stats if self.input_method == 'local': stats = self.OPENSTACK.stats if not stats: stats = self.OPENSTACKEC2.stats # Example: # Uncomment to test on physical computer (only for test purpose) # stats = {'id': 'ami-id', # 'name': 'My VM', # 'type': 'Gold', # 'region': 'France', # 'platform': 'OpenStack'} # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the string to display in the curse interface.""" # Init the return message ret = [] if not self.stats or self.stats == {} or self.is_disabled(): return ret # Generate the output msg = self.stats.get('platform', 'Unknown') ret.append(self.curse_add_line(msg, "TITLE")) msg = ' {} instance {} ({})'.format( self.stats.get('type', 'Unknown'), self.stats.get('name', 'Unknown'), self.stats.get('region', 'Unknown') ) ret.append(self.curse_add_line(msg)) # Return the message with decoration # logger.info(ret) return ret class ThreadOpenStack(threading.Thread): """ Specific thread to grab OpenStack stats. stats is a dict """ # The metadata service provides a way for instances to retrieve # instance-specific data via a REST API. Instances access this # service at 169.254.169.254 or at fe80::a9fe:a9fe. # All types of metadata, be it user-, nova- or vendor-provided, # can be accessed via this service. # https://docs.openstack.org/nova/latest/user/metadata-service.html OPENSTACK_PLATFORM = "OpenStack" OPENSTACK_API_URL = 'http://169.254.169.254/openstack/latest/meta-data' OPENSTACK_API_METADATA = { 'id': 'project_id', 'name': 'name', 'type': 'meta/role', 'region': 'availability_zone', } def __init__(self): """Init the class.""" logger.debug("cloud plugin - Create thread for OpenStack metadata") super(ThreadOpenStack, self).__init__() # Event needed to stop properly the thread self._stopper = threading.Event() # The class return the stats as a dict self._stats = {} def run(self): """Grab plugin's stats. Infinite loop, should be stopped by calling the stop() method """ if import_error_tag: self.stop() return False for k, v in iteritems(self.OPENSTACK_API_METADATA): r_url = '{}/{}'.format(self.OPENSTACK_API_URL, v) try: # Local request, a timeout of 3 seconds is OK r = requests.get(r_url, timeout=3) except Exception as e: logger.debug('cloud plugin - Cannot connect to the OpenStack metadata API {}: {}'.format(r_url, e)) break else: if r.ok: self._stats[k] = to_ascii(r.content) else: # No break during the loop, so we can set the platform self._stats['platform'] = self.OPENSTACK_PLATFORM return True @property def stats(self): """Stats getter.""" return self._stats @stats.setter def stats(self, value): """Stats setter.""" self._stats = value def stop(self, timeout=None): """Stop the thread.""" logger.debug("cloud plugin - Close thread for OpenStack metadata") self._stopper.set() def stopped(self): """Return True is the thread is stopped.""" return self._stopper.is_set() class ThreadOpenStackEC2(ThreadOpenStack): """ Specific thread to grab OpenStack EC2 (Amazon cloud) stats. stats is a dict """ # The metadata service provides a way for instances to retrieve # instance-specific data via a REST API. Instances access this # service at 169.254.169.254 or at fe80::a9fe:a9fe. # All types of metadata, be it user-, nova- or vendor-provided, # can be accessed via this service. # https://docs.openstack.org/nova/latest/user/metadata-service.html OPENSTACK_PLATFORM = "Amazon EC2" OPENSTACK_API_URL = 'http://169.254.169.254/latest/meta-data' OPENSTACK_API_METADATA = { 'id': 'ami-id', 'name': 'instance-id', 'type': 'instance-type', 'region': 'placement/availability-zone', } glances-3.4.0.3/glances/plugins/glances_alert.py0000644000175000017500000002546014432156570021467 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Alert plugin.""" from datetime import datetime from glances.events import glances_events from glances.thresholds import glances_thresholds # from glances.logger import logger from glances.plugins.glances_plugin import GlancesPlugin # Static decision tree for the global alert message # - msg: Message to be displayed (result of the decision tree) # - thresholds: a list of stats to take into account # - thresholds_min: minimal value of the thresholds sum # - 0: OK # - 1: CAREFUL # - 2: WARNING # - 3: CRITICAL tree = [ {'msg': 'No warning or critical alert detected', 'thresholds': [], 'thresholds_min': 0}, {'msg': 'High CPU user mode', 'thresholds': ['cpu_user'], 'thresholds_min': 2}, {'msg': 'High CPU kernel usage', 'thresholds': ['cpu_system'], 'thresholds_min': 2}, {'msg': 'High CPU I/O waiting', 'thresholds': ['cpu_iowait'], 'thresholds_min': 2}, { 'msg': 'Large CPU stolen time. System running the hypervisor is too busy.', 'thresholds': ['cpu_steal'], 'thresholds_min': 2, }, {'msg': 'High CPU niced value', 'thresholds': ['cpu_niced'], 'thresholds_min': 2}, {'msg': 'System overloaded in the last 5 minutes', 'thresholds': ['load'], 'thresholds_min': 2}, {'msg': 'High swap (paging) usage', 'thresholds': ['memswap'], 'thresholds_min': 2}, {'msg': 'High memory consumption', 'thresholds': ['mem'], 'thresholds_min': 2}, ] # @TODO: change the algo to use the following decision tree # Source: Inspire by https://scoutapm.com/blog/slow_server_flow_chart # _yes means threshold >= 2 # _no means threshold < 2 # With threshold: # - 0: OK # - 1: CAREFUL # - 2: WARNING # - 3: CRITICAL tree_new = { 'cpu_iowait': { '_yes': { 'memswap': { '_yes': { 'mem': { '_yes': { # Once you've identified the offenders, the resolution will again # depend on whether their memory usage seems business-as-usual or not. # For example, a memory leak can be satisfactorily addressed by a one-time # or periodic restart of the process. # - if memory usage seems anomalous: kill the offending processes. # - if memory usage seems business-as-usual: add RAM to the server, # or split high-memory using services to other servers. '_msg': "Memory issue" }, '_no': { # ??? '_msg': "Swap issue" }, } }, '_no': { # Low swap means you have a "real" IO wait problem. The next step is to see what's hogging your IO. # iotop is an awesome tool for identifying io offenders. Two things to note: # unless you've already installed iotop, it's probably not already on your system. # Recommendation: install it before you need it - - it's no fun trying to install a troubleshooting # tool on an overloaded machine (iotop requires a Linux of 2.62 or above) '_msg': "I/O issue" }, } }, '_no': { 'cpu_total': { '_yes': { 'cpu_user': { '_yes': { # We expect the user-time percentage to be high. # There's most likely a program or service you've configured on you server that's # hogging CPU. # Checking the % user time just confirms this. When you see that the % user-time is high, # it's time to see what executable is monopolizing the CPU # Once you've confirmed that the % usertime is high, check the process list(also provided # by top). # Be default, top sorts the process list by % CPU, so you can just look at the top process # or processes. # If there's a single process hogging the CPU in a way that seems abnormal, it's an # anomalous situation # that a service restart can fix. If there are are multiple processes taking up CPU # resources, or it # there's one process that takes lots of resources while otherwise functioning normally, # than your setup # may just be underpowered. You'll need to upgrade your server(add more cores), # or split services out onto # other boxes. In either case, you have a resolution: # - if situation seems anomalous: kill the offending processes. # - if situation seems typical given history: upgrade server or add more servers. '_msg': "CPU issue with user process(es)" }, '_no': { 'cpu_steal': { '_yes': { '_msg': "CPU issue with stolen time. System running the hypervisor may be too busy." }, '_no': {'_msg': "CPU issue with system process(es)"}, } }, } }, '_no': { '_yes': { # ??? '_msg': "Memory issue" }, '_no': { # Your slowness isn't due to CPU or IO problems, so it's likely an application-specific issue. # It's also possible that the slowness is being caused by another server in your cluster, or # by an external service you rely on. # start by checking important applications for uncharacteristic slowness(the DB is a good place # to start), think through which parts of your infrastructure could be slowed down externally. # For example, do you use an externally hosted email service that could slow down critical # parts of your application ? # If you suspect another server in your cluster, strace and lsof can provide information on # what the process is doing or waiting on. Strace will show you which file descriptors are # being read or written to (or being attempted to be read from) and lsof can give you a # mapping of those file descriptors to network connections. '_msg': "External issue" }, }, } }, } } def global_message(): """Parse the decision tree and return the message. Note: message corresponding to the current thresholds values """ # Compute the weight for each item in the tree current_thresholds = glances_thresholds.get() for i in tree: i['weight'] = sum([current_thresholds[t].value() for t in i['thresholds'] if t in current_thresholds]) themax = max(tree, key=lambda d: d['weight']) if themax['weight'] >= themax['thresholds_min']: # Check if the weight is > to the minimal threshold value return themax['msg'] else: return tree[0]['msg'] class Plugin(GlancesPlugin): """Glances alert plugin. Only for display. """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config, stats_init_value=[]) # We want to display the stat in the curse interface self.display_curse = True # Set the message position self.align = 'bottom' def update(self): """Nothing to do here. Just return the global glances_log.""" # Set the stats to the glances_events self.stats = glances_events.get() # Define the global message thanks to the current thresholds # and the decision tree # !!! Call directly in the msg_curse function # global_message() def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if display plugin enable... if not self.stats or self.is_disabled(): return ret # Build the string message # Header ret.append(self.curse_add_line(global_message(), "TITLE")) # Loop over alerts for alert in self.stats: # New line ret.append(self.curse_new_line()) # Start msg = str(datetime.fromtimestamp(alert[0])) ret.append(self.curse_add_line(msg)) # Duration if alert[1] > 0: # If finished display duration msg = ' ({})'.format(datetime.fromtimestamp(alert[1]) - datetime.fromtimestamp(alert[0])) else: msg = ' (ongoing)' ret.append(self.curse_add_line(msg)) ret.append(self.curse_add_line(" - ")) # Infos if alert[1] > 0: # If finished do not display status msg = '{} on {}'.format(alert[2], alert[3]) ret.append(self.curse_add_line(msg)) else: msg = str(alert[3]) ret.append(self.curse_add_line(msg, decoration=alert[2])) # Min / Mean / Max if self.approx_equal(alert[6], alert[4], tolerance=0.1): msg = ' ({:.1f})'.format(alert[5]) else: msg = ' (Min:{:.1f} Mean:{:.1f} Max:{:.1f})'.format(alert[6], alert[5], alert[4]) ret.append(self.curse_add_line(msg)) # Top processes top_process = ', '.join([p['name'] for p in alert[9]]) if top_process != '': msg = ': {}'.format(top_process) ret.append(self.curse_add_line(msg)) return ret def approx_equal(self, a, b, tolerance=0.0): """Compare a with b using the tolerance (if numerical).""" if str(int(a)).isdigit() and str(int(b)).isdigit(): return abs(a - b) <= max(abs(a), abs(b)) * tolerance else: return a == b glances-3.4.0.3/glances/plugins/glances_network.py0000644000175000017500000003701114432156570022044 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Network plugin.""" from __future__ import unicode_literals import base64 from glances.timer import getTimeSinceLastUpdate from glances.plugins.glances_plugin import GlancesPlugin from glances.compat import n from glances.logger import logger import psutil # {'interface_name': 'mpqemubr0-dummy', # 'alias': None, # 'time_since_update': 2.081636428833008, # 'cumulative_rx': 0, # 'rx': 0, 'cumulative_tx': 0, 'tx': 0, 'cumulative_cx': 0, 'cx': 0, # 'is_up': False, # 'speed': 0, # 'key': 'interface_name'} # Fields description fields_description = { 'interface_name': {'description': 'Interface name.', 'unit': 'string'}, 'alias': {'description': 'Interface alias name (optional).', 'unit': 'string'}, 'rx': {'description': 'The received/input rate (in bit per second).', 'unit': 'bps'}, 'tx': {'description': 'The sent/output rate (in bit per second).', 'unit': 'bps'}, 'cx': {'description': 'The cumulative received+sent rate (in bit per second).', 'unit': 'bps'}, 'cumulative_rx': { 'description': 'The number of bytes received through the interface (cumulative).', 'unit': 'bytes', }, 'cumulative_tx': {'description': 'The number of bytes sent through the interface (cumulative).', 'unit': 'bytes'}, 'cumulative_cx': { 'description': 'The cumulative number of bytes reveived and sent through the interface (cumulative).', 'unit': 'bytes', }, 'speed': { 'description': 'Maximum interface speed (in bit per second). Can return 0 on some operating-system.', 'unit': 'bps', }, 'is_up': {'description': 'Is the interface up ?', 'unit': 'bool'}, 'time_since_update': {'description': 'Number of seconds since last update.', 'unit': 'seconds'}, } # SNMP OID # http://www.net-snmp.org/docs/mibs/interfaces.html # Dict key = interface_name snmp_oid = { 'default': { 'interface_name': '1.3.6.1.2.1.2.2.1.2', 'cumulative_rx': '1.3.6.1.2.1.2.2.1.10', 'cumulative_tx': '1.3.6.1.2.1.2.2.1.16', } } # Define the history items list items_history_list = [ {'name': 'rx', 'description': 'Download rate per second', 'y_unit': 'bit/s'}, {'name': 'tx', 'description': 'Upload rate per second', 'y_unit': 'bit/s'}, ] class Plugin(GlancesPlugin): """Glances network plugin. stats is a list """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__( args=args, config=config, items_history_list=items_history_list, fields_description=fields_description, stats_init_value=[], ) # We want to display the stat in the curse interface self.display_curse = True # Hide stats if it has never been != 0 if config is not None: self.hide_zero = config.get_bool_value(self.plugin_name, 'hide_zero', default=False) else: self.hide_zero = False self.hide_zero_fields = ['rx', 'tx'] # Force a first update because we need two update to have the first stat self.update() self.refresh_timer.set(0) def get_key(self): """Return the key of the list.""" return 'interface_name' # @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update network stats using the input method. :return: list of stats dict (one dict per interface) """ # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib # Grab network interface stat using the psutil net_io_counter method try: net_io_counters = psutil.net_io_counters(pernic=True) except UnicodeDecodeError as e: logger.debug('Can not get network interface counters ({})'.format(e)) return self.stats # Grab interface's status (issue #765) # Grab interface's speed (issue #718) net_status = {} try: net_status = psutil.net_if_stats() except OSError as e: # see psutil #797/glances #1106 logger.debug('Can not get network interface status ({})'.format(e)) # Previous network interface stats are stored in the network_old variable if not hasattr(self, 'network_old'): # First call, we init the network_old var try: self.network_old = net_io_counters except (IOError, UnboundLocalError): pass return self.stats # By storing time data we enable Rx/s and Tx/s calculations in the # XML/RPC API, which would otherwise be overly difficult work # for users of the API time_since_update = getTimeSinceLastUpdate('net') # Loop over interfaces network_new = net_io_counters for net in network_new: # Do not take hidden interface into account # or KeyError: 'eth0' when interface is not connected #1348 if not self.is_display(net) or net not in net_status: continue try: cumulative_rx = network_new[net].bytes_recv cumulative_tx = network_new[net].bytes_sent cumulative_cx = cumulative_rx + cumulative_tx rx = cumulative_rx - self.network_old[net].bytes_recv tx = cumulative_tx - self.network_old[net].bytes_sent cx = rx + tx netstat = { 'interface_name': n(net), 'alias': self.has_alias(n(net)), 'time_since_update': time_since_update, 'cumulative_rx': cumulative_rx, 'rx': rx, 'cumulative_tx': cumulative_tx, 'tx': tx, 'cumulative_cx': cumulative_cx, 'cx': cx, # Interface status 'is_up': net_status[net].isup, # Interface speed in Mbps, convert it to bps # Can be always 0 on some OSes 'speed': net_status[net].speed * 1048576, # Set the key for the dict 'key': self.get_key(), } except KeyError: continue else: # Append the interface stats to the list stats.append(netstat) # Save stats to compute next bitrate self.network_old = network_new elif self.input_method == 'snmp': # Update stats using SNMP # SNMP bulk command to get all network interface in one shot try: net_io_counters = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name], bulk=True) except KeyError: net_io_counters = self.get_stats_snmp(snmp_oid=snmp_oid['default'], bulk=True) # Previous network interface stats are stored in the network_old variable if not hasattr(self, 'network_old'): # First call, we init the network_old var try: self.network_old = net_io_counters except (IOError, UnboundLocalError): pass else: # See description in the 'local' block time_since_update = getTimeSinceLastUpdate('net') # Loop over interfaces network_new = net_io_counters for net in network_new: # Do not take hidden interface into account if not self.is_display(net): continue try: # Windows: a tips is needed to convert HEX to TXT # http://blogs.technet.com/b/networking/archive/2009/12/18/how-to-query-the-list-of-network-interfaces-using-snmp-via-the-ifdescr-counter.aspx if self.short_system_name == 'windows': try: interface_name = str(base64.b16decode(net[2:-2].upper())) except TypeError: interface_name = net else: interface_name = net cumulative_rx = float(network_new[net]['cumulative_rx']) cumulative_tx = float(network_new[net]['cumulative_tx']) cumulative_cx = cumulative_rx + cumulative_tx rx = cumulative_rx - float(self.network_old[net]['cumulative_rx']) tx = cumulative_tx - float(self.network_old[net]['cumulative_tx']) cx = rx + tx netstat = { 'interface_name': interface_name, 'alias': self.has_alias(interface_name), 'time_since_update': time_since_update, 'cumulative_rx': cumulative_rx, 'rx': rx, 'cumulative_tx': cumulative_tx, 'tx': tx, 'cumulative_cx': cumulative_cx, 'cx': cx, } except KeyError: continue else: netstat['key'] = self.get_key() stats.append(netstat) # Save stats to compute next bitrate self.network_old = network_new # Update the stats self.stats = stats return self.stats def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Check if the stats should be hidden self.update_views_hidden() # Add specifics information # Alert for i in self.get_raw(): if i['time_since_update'] == 0: # Skip alert if no timespan to measure continue if_real_name = i['interface_name'].split(':')[0] # Convert rate in bps (to be able to compare to interface speed) bps_rx = int(i['rx'] // i['time_since_update'] * 8) bps_tx = int(i['tx'] // i['time_since_update'] * 8) # Decorate the bitrate with the configuration file thresholds alert_rx = self.get_alert(bps_rx, header=if_real_name + '_rx') alert_tx = self.get_alert(bps_tx, header=if_real_name + '_tx') # If nothing is define in the configuration file... # ... then use the interface speed (not available on all systems) if alert_rx == 'DEFAULT' and 'speed' in i and i['speed'] != 0: alert_rx = self.get_alert(current=bps_rx, maximum=i['speed'], header='rx') if alert_tx == 'DEFAULT' and 'speed' in i and i['speed'] != 0: alert_tx = self.get_alert(current=bps_tx, maximum=i['speed'], header='tx') # then decorates self.views[i[self.get_key()]]['rx']['decoration'] = alert_rx self.views[i[self.get_key()]]['tx']['decoration'] = alert_tx def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and display plugin enable... if not self.stats or self.is_disabled(): return ret # Max size for the interface name name_max_width = max_width - 12 # Header msg = '{:{width}}'.format('NETWORK', width=name_max_width) ret.append(self.curse_add_line(msg, "TITLE")) if args.network_cumul: # Cumulative stats if args.network_sum: # Sum stats msg = '{:>14}'.format('Rx+Tx') ret.append(self.curse_add_line(msg)) else: # Rx/Tx stats msg = '{:>7}'.format('Rx') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('Tx') ret.append(self.curse_add_line(msg)) else: # Bitrate stats if args.network_sum: # Sum stats msg = '{:>14}'.format('Rx+Tx/s') ret.append(self.curse_add_line(msg)) else: msg = '{:>7}'.format('Rx/s') ret.append(self.curse_add_line(msg)) msg = '{:>7}'.format('Tx/s') ret.append(self.curse_add_line(msg)) # Interface list (sorted by name) for i in self.sorted_stats(): # Do not display interface in down state (issue #765) if ('is_up' in i) and (i['is_up'] is False): continue # Hide stats if never be different from 0 (issue #1787) if all([self.get_views(item=i[self.get_key()], key=f, option='hidden') for f in self.hide_zero_fields]): continue # Format stats # Is there an alias for the interface name ? if i['alias'] is None: if_name = i['interface_name'].split(':')[0] else: if_name = i['alias'] if len(if_name) > name_max_width: # Cut interface name if it is too long if_name = '_' + if_name[-name_max_width + 1 :] if args.byte: # Bytes per second (for dummy) to_bit = 1 unit = '' else: # Bits per second (for real network administrator | Default) to_bit = 8 unit = 'b' if args.network_cumul: rx = self.auto_unit(int(i['cumulative_rx'] * to_bit)) + unit tx = self.auto_unit(int(i['cumulative_tx'] * to_bit)) + unit sx = self.auto_unit(int(i['cumulative_rx'] * to_bit) + int(i['cumulative_tx'] * to_bit)) + unit else: rx = self.auto_unit(int(i['rx'] // i['time_since_update'] * to_bit)) + unit tx = self.auto_unit(int(i['tx'] // i['time_since_update'] * to_bit)) + unit sx = ( self.auto_unit( int(i['rx'] // i['time_since_update'] * to_bit) + int(i['tx'] // i['time_since_update'] * to_bit) ) + unit ) # New line ret.append(self.curse_new_line()) msg = '{:{width}}'.format(if_name, width=name_max_width) ret.append(self.curse_add_line(msg)) if args.network_sum: msg = '{:>14}'.format(sx) ret.append(self.curse_add_line(msg)) else: msg = '{:>7}'.format(rx) ret.append( self.curse_add_line(msg, self.get_views(item=i[self.get_key()], key='rx', option='decoration')) ) msg = '{:>7}'.format(tx) ret.append( self.curse_add_line(msg, self.get_views(item=i[self.get_key()], key='tx', option='decoration')) ) return ret glances-3.4.0.3/glances/plugins/glances_system.py0000644000175000017500000001603714432156570021704 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """System plugin.""" import os import platform import re from io import open from glances.compat import iteritems from glances.plugins.glances_plugin import GlancesPlugin # SNMP OID snmp_oid = { 'default': {'hostname': '1.3.6.1.2.1.1.5.0', 'system_name': '1.3.6.1.2.1.1.1.0'}, 'netapp': { 'hostname': '1.3.6.1.2.1.1.5.0', 'system_name': '1.3.6.1.2.1.1.1.0', 'platform': '1.3.6.1.4.1.789.1.1.5.0', }, } # SNMP to human read # Dict (key: OS short name) of dict (reg exp OID to human) # Windows: # http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx snmp_to_human = { 'windows': { 'Windows Version 10.0': 'Windows 10 or Server 2016', 'Windows Version 6.3': 'Windows 8.1 or Server 2012R2', 'Windows Version 6.2': 'Windows 8 or Server 2012', 'Windows Version 6.1': 'Windows 7 or Server 2008R2', 'Windows Version 6.0': 'Windows Vista or Server 2008', 'Windows Version 5.2': 'Windows XP 64bits or 2003 server', 'Windows Version 5.1': 'Windows XP', 'Windows Version 5.0': 'Windows 2000', } } def _linux_os_release(): """Try to determine the name of a Linux distribution. This function checks for the /etc/os-release file. It takes the name from the 'NAME' field and the version from 'VERSION_ID'. An empty string is returned if the above values cannot be determined. """ pretty_name = '' ashtray = {} keys = ['NAME', 'VERSION_ID'] try: with open(os.path.join('/etc', 'os-release')) as f: for line in f: for key in keys: if line.startswith(key): ashtray[key] = re.sub(r'^"|"$', '', line.strip().split('=')[1]) except (OSError, IOError): return pretty_name if ashtray: if 'NAME' in ashtray: pretty_name = ashtray['NAME'] if 'VERSION_ID' in ashtray: pretty_name += ' {}'.format(ashtray['VERSION_ID']) return pretty_name class Plugin(GlancesPlugin): """Glances' host/system plugin. stats is a dict """ def __init__(self, args=None, config=None): """Init the plugin.""" super(Plugin, self).__init__(args=args, config=config) # We want to display the stat in the curse interface self.display_curse = True # Set default rate to 60 seconds if self.get_refresh(): self.set_refresh(60) @GlancesPlugin._check_decorator @GlancesPlugin._log_result_decorator def update(self): """Update the host/system info using the input method. :return: the stats dict """ # Init new stats stats = self.get_init_value() if self.input_method == 'local': # Update stats using the standard system lib stats['os_name'] = platform.system() stats['hostname'] = platform.node() stats['platform'] = platform.architecture()[0] if stats['os_name'] == "Linux": try: linux_distro = platform.linux_distribution() except AttributeError: stats['linux_distro'] = _linux_os_release() else: if linux_distro[0] == '': stats['linux_distro'] = _linux_os_release() else: stats['linux_distro'] = ' '.join(linux_distro[:2]) stats['os_version'] = platform.release() elif stats['os_name'].endswith('BSD') or stats['os_name'] == 'SunOS': stats['os_version'] = platform.release() elif stats['os_name'] == "Darwin": stats['os_version'] = platform.mac_ver()[0] elif stats['os_name'] == "Windows": os_version = platform.win32_ver() stats['os_version'] = ' '.join(os_version[::2]) # if the python version is 32 bit perhaps the windows operating # system is 64bit if stats['platform'] == '32bit' and 'PROCESSOR_ARCHITEW6432' in os.environ: stats['platform'] = '64bit' else: stats['os_version'] = "" # Add human readable name if stats['os_name'] == "Linux": stats['hr_name'] = stats['linux_distro'] else: stats['hr_name'] = '{} {}'.format(stats['os_name'], stats['os_version']) stats['hr_name'] += ' {}'.format(stats['platform']) elif self.input_method == 'snmp': # Update stats using SNMP try: stats = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name]) except KeyError: stats = self.get_stats_snmp(snmp_oid=snmp_oid['default']) # Default behavior: display all the information stats['os_name'] = stats['system_name'] # Windows OS tips if self.short_system_name == 'windows': for r, v in iteritems(snmp_to_human['windows']): if re.search(r, stats['system_name']): stats['os_name'] = v break # Add human readable name stats['hr_name'] = stats['os_name'] # Update the stats self.stats = stats return self.stats def msg_curse(self, args=None, max_width=None): """Return the string to display in the curse interface.""" # Init the return message ret = [] # Only process if stats exist and plugin not disabled if not self.stats or self.is_disabled(): return ret # Build the string message if args.client: # Client mode if args.cs_status.lower() == "connected": msg = 'Connected to ' ret.append(self.curse_add_line(msg, 'OK')) elif args.cs_status.lower() == "snmp": msg = 'SNMP from ' ret.append(self.curse_add_line(msg, 'OK')) elif args.cs_status.lower() == "disconnected": msg = 'Disconnected from ' ret.append(self.curse_add_line(msg, 'CRITICAL')) # Hostname is mandatory msg = self.stats['hostname'] ret.append(self.curse_add_line(msg, "TITLE")) # System info if self.stats['os_name'] == "Linux" and self.stats['linux_distro']: msg = ' ({} {} / {} {})'.format( self.stats['linux_distro'], self.stats['platform'], self.stats['os_name'], self.stats['os_version'] ) else: try: msg = ' ({} {} {})'.format(self.stats['os_name'], self.stats['os_version'], self.stats['platform']) except Exception: msg = ' ({})'.format(self.stats['os_name']) ret.append(self.curse_add_line(msg, optional=True)) # Return the message with decoration return ret glances-3.4.0.3/glances/amps/0000755000175000017500000000000014432156570015562 5ustar epsilonepsilonglances-3.4.0.3/glances/amps/glances_nginx.py0000644000175000017500000000505714432156570020762 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # r""" Nginx AMP ========= Monitor the Nginx process using the status page. How to read the stats --------------------- Active connections – Number of all open connections. This doesn't mean number of users. A single user, for a single page-view can open many concurrent connections to your server. Server accepts handled requests – This shows three values. First is total accepted connections. Second is total handled connections. Usually first 2 values are same. Third value is number of and handles requests. This is usually greater than second value. Dividing third-value by second-one will give you number of requests per connection handled by Nginx. In above example, 10993/7368, 1.49 requests per connections. Reading – nginx reads request header Writing – nginx reads request body, processes request, or writes response to a client Waiting – keep-alive connections, actually it is active – (reading + writing). This value depends on keepalive-timeout. Do not confuse non-zero waiting value for poor performance. It can be ignored. Source reference: https://easyengine.io/tutorials/nginx/status-page/ Configuration file example -------------------------- [amp_nginx] # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) enable=true regex=\/usr\/sbin\/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status """ import requests from glances.logger import logger from glances.amps.glances_amp import GlancesAmp class Amp(GlancesAmp): """Glances' Nginx AMP.""" NAME = 'Nginx' VERSION = '1.0' DESCRIPTION = 'Get Nginx stats from status-page' AUTHOR = 'Nicolargo' EMAIL = 'contact@nicolargo.com' # def __init__(self, args=None): # """Init the AMP.""" # super(Amp, self).__init__(args=args) def update(self, process_list): """Update the AMP""" # Get the Nginx status logger.debug('{}: Update stats using status URL {}'.format(self.NAME, self.get('status_url'))) res = requests.get(self.get('status_url')) if res.ok: # u'Active connections: 1 \nserver accepts handled requests\n 1 1 1 \nReading: 0 Writing: 1 Waiting: 0 \n' self.set_result(res.text.rstrip()) else: logger.debug('{}: Can not grab status URL {} ({})'.format(self.NAME, self.get('status_url'), res.reason)) return self.result() glances-3.4.0.3/glances/amps/__init__.py0000644000175000017500000000000014432156570017661 0ustar epsilonepsilonglances-3.4.0.3/glances/amps/glances_default.py0000644000175000017500000000433514432156570021261 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # r""" Default AMP ========= Monitor a process by executing a command line. This is the default AMP's behavior if no AMP script is found. Configuration file example -------------------------- [amp_foo] enable=true regex=\/usr\/bin\/foo refresh=10 one_line=false command=foo status """ from subprocess import check_output, STDOUT, CalledProcessError from glances.compat import u, to_ascii from glances.logger import logger from glances.amps.glances_amp import GlancesAmp class Amp(GlancesAmp): """Glances' Default AMP.""" NAME = '' VERSION = '1.1' DESCRIPTION = '' AUTHOR = 'Nicolargo' EMAIL = 'contact@nicolargo.com' def __init__(self, name=None, args=None): """Init the AMP.""" self.NAME = name.capitalize() super(Amp, self).__init__(name=name, args=args) def update(self, process_list): """Update the AMP""" # Get the systemctl status logger.debug('{}: Update AMP stats using command {}'.format(self.NAME, self.get('service_cmd'))) # Get command to execute try: res = self.get('command') except OSError as e: logger.debug('{}: Error while executing command ({})'.format(self.NAME, e)) return self.result() # No command found, use default message if res is None: # Set the default message if command return None # Default sum of CPU and MEM for the matching regex self.set_result( 'CPU: {:.1f}% | MEM: {:.1f}%'.format( sum([p['cpu_percent'] for p in process_list]), sum([p['memory_percent'] for p in process_list]) ) ) return self.result() # Run command(s) # Comma separated commands can be executed try: msg = '' for cmd in res.split(';'): msg += u(check_output(cmd.split(), stderr=STDOUT)) self.set_result(to_ascii(msg.rstrip())) except CalledProcessError as e: self.set_result(e.output) return self.result() glances-3.4.0.3/glances/amps/glances_amp.py0000644000175000017500000001447714432156570020422 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2023 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """ I am your father... ...for all Glances Application Monitoring Processes (AMP). AMP (Application Monitoring Process) A Glances AMP is a Python script called (every *refresh* seconds) if: - the AMP is *enabled* in the Glances configuration file - a process is running (match the *regex* define in the configuration file) The script should define a Amp (GlancesAmp) class with, at least, an update method. The update method should call the set_result method to set the AMP return string. The return string is a string with one or more line (\n between lines). If the *one_line* var is true then the AMP will be displayed in one line. """ from glances.compat import u from glances.timer import Timer from glances.logger import logger class GlancesAmp(object): """Main class for Glances AMP.""" NAME = '?' VERSION = '?' DESCRIPTION = '?' AUTHOR = '?' EMAIL = '?' def __init__(self, name=None, args=None): """Init AMP class.""" logger.debug("AMP - Init {} version {}".format(self.NAME, self.VERSION)) # AMP name (= module name without glances_) if name is None: self.amp_name = self.__class__.__module__[len('glances_') :] else: self.amp_name = name # Init the args self.args = args # Init the configs self.configs = {} # A timer is needed to only update every refresh seconds # Init to 0 in order to update the AMP on startup self.timer = Timer(0) def load_config(self, config): """Load AMP parameters from the configuration file.""" # Read AMP configuration. # For ex, the AMP foo should have the following section: # # [foo] # enable=true # regex=\/usr\/bin\/nginx # refresh=60 # # and optionally: # # one_line=false # option1=opt1 amp_section = 'amp_' + self.amp_name if hasattr(config, 'has_section') and config.has_section(amp_section): logger.debug("AMP - {}: Load configuration".format(self.NAME)) for param, _ in config.items(amp_section): try: self.configs[param] = config.get_float_value(amp_section, param) except ValueError: self.configs[param] = config.get_value(amp_section, param).split(',') if len(self.configs[param]) == 1: self.configs[param] = self.configs[param][0] logger.debug("AMP - {}: Load parameter: {} = {}".format(self.NAME, param, self.configs[param])) else: logger.debug("AMP - {}: Can not find section {} in the configuration file".format(self.NAME, self.amp_name)) return False if self.enable(): # Refresh option is mandatory for k in ['refresh']: if k not in self.configs: logger.warning( "AMP - {}: Can not find configuration key {} in section {} (the AMP will be disabled)".format( self.NAME, k, self.amp_name ) ) self.configs['enable'] = 'false' else: logger.debug("AMP - {} is disabled".format(self.NAME)) # Init the count to 0 self.configs['count'] = 0 return self.enable() def get(self, key): """Generic method to get the item in the AMP configuration""" if key in self.configs: return self.configs[key] else: return None def enable(self): """Return True|False if the AMP is enabled in the configuration file (enable=true|false).""" ret = self.get('enable') if ret is None: return False else: return ret.lower().startswith('true') def regex(self): """Return regular expression used to identified the current application.""" return self.get('regex') def refresh(self): """Return refresh time in seconds for the current application monitoring process.""" return self.get('refresh') def one_line(self): """Return True|False if the AMP should be displayed in one line (one_line=true|false).""" ret = self.get('one_line') if ret is None: return False else: return ret.lower().startswith('true') def time_until_refresh(self): """Return time in seconds until refresh.""" return self.timer.get() def should_update(self): """Return True is the AMP should be updated Conditions for update: - AMP is enable - only update every 'refresh' seconds """ if self.timer.finished(): self.timer.set(self.refresh()) self.timer.reset() return self.enable() return False def set_count(self, count): """Set the number of processes matching the regex""" self.configs['count'] = count def count(self): """Get the number of processes matching the regex""" return self.get('count') def count_min(self): """Get the minimum number of processes""" return self.get('countmin') def count_max(self): """Get the maximum number of processes""" return self.get('countmax') def set_result(self, result, separator=''): """Store the result (string) into the result key of the AMP If one_line is true then it replaces `\n` by the separator """ if self.one_line(): self.configs['result'] = u(result).replace('\n', separator) else: self.configs['result'] = u(result) def result(self): """Return the result of the AMP (as a string)""" ret = self.get('result') if ret is not None: ret = u(ret) return ret def update_wrapper(self, process_list): """Wrapper for the children update""" # Set the number of running process self.set_count(len(process_list)) # Call the children update method if self.should_update(): return self.update(process_list) else: return self.result() glances-3.4.0.3/glances/amps/glances_systemv.py0000644000175000017500000000455014432156570021346 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # r""" SystemV AMP =========== Monitor the state of the System V init system and service. How to read the stats --------------------- Running: Number of running services. Stopped: Number of stopped services. Upstart: Number of service managed by Upstart. Source reference: http://askubuntu.com/questions/407075/how-to-read-service-status-all-results Configuration file example -------------------------- [amp_systemv] # Systemv enable=true regex=\/sbin\/init refresh=60 one_line=true service_cmd=/usr/bin/service --status-all """ from subprocess import check_output, STDOUT from glances.logger import logger from glances.compat import iteritems from glances.amps.glances_amp import GlancesAmp class Amp(GlancesAmp): """Glances' Systemd AMP.""" NAME = 'SystemV' VERSION = '1.0' DESCRIPTION = 'Get services list from service (initd)' AUTHOR = 'Nicolargo' EMAIL = 'contact@nicolargo.com' # def __init__(self, args=None): # """Init the AMP.""" # super(Amp, self).__init__(args=args) def update(self, process_list): """Update the AMP""" # Get the systemctl status logger.debug('{}: Update stats using service {}'.format(self.NAME, self.get('service_cmd'))) try: res = check_output(self.get('service_cmd').split(), stderr=STDOUT).decode('utf-8') except OSError as e: logger.debug('{}: Error while executing service ({})'.format(self.NAME, e)) else: status = {'running': 0, 'stopped': 0, 'upstart': 0} # For each line for r in res.split('\n'): # Split per space .* line = r.split() if len(line) < 4: continue if line[1] == '+': status['running'] += 1 elif line[1] == '-': status['stopped'] += 1 elif line[1] == '?': status['upstart'] += 1 # Build the output (string) message output = 'Services\n' for k, v in iteritems(status): output += '{}: {}\n'.format(k, v) self.set_result(output, separator=' ') return self.result() glances-3.4.0.3/glances/amps/glances_systemd.py0000644000175000017500000000502614432156570021323 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # r""" Systemd AMP =========== Monitor the state of the systemd system and service (unit) manager. How to read the stats --------------------- active: Number of active units. This is usually a fairly basic way to tell if the unit has started successfully or not. loaded: Number of loaded units (unit's configuration has been parsed by systemd). failed: Number of units with an active failed status. Source reference: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units Configuration file example -------------------------- [amp_systemd] # Systemd enable=true regex=\/usr\/lib\/systemd\/systemd refresh=60 one_line=true systemctl_cmd=/usr/bin/systemctl --plain """ from subprocess import check_output, CalledProcessError from glances.logger import logger from glances.compat import iteritems, to_ascii from glances.amps.glances_amp import GlancesAmp class Amp(GlancesAmp): """Glances' Systemd AMP.""" NAME = 'Systemd' VERSION = '1.0' DESCRIPTION = 'Get services list from systemctl (systemd)' AUTHOR = 'Nicolargo' EMAIL = 'contact@nicolargo.com' # def __init__(self, args=None): # """Init the AMP.""" # super(Amp, self).__init__(args=args) def update(self, process_list): """Update the AMP""" # Get the systemctl status logger.debug('{}: Update stats using systemctl {}'.format(self.NAME, self.get('systemctl_cmd'))) try: res = check_output(self.get('systemctl_cmd').split()) except (OSError, CalledProcessError) as e: logger.debug('{}: Error while executing systemctl ({})'.format(self.NAME, e)) else: status = {} # For each line for r in to_ascii(res).split('\n')[1:-8]: # Split per space .* column = r.split() if len(column) > 3: # load column for c in range(1, 3): try: status[column[c]] += 1 except KeyError: status[column[c]] = 1 # Build the output (string) message output = 'Services\n' for k, v in iteritems(status): output += '{}: {}\n'.format(k, v) self.set_result(output, separator=' ') return self.result() glances-3.4.0.3/glances/web_list.py0000644000175000017500000001047514432156570017013 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances web/url list (Ports plugin).""" from glances.compat import range, urlparse from glances.logger import logger class GlancesWebList(object): """Manage the Web/Url list for the ports plugin.""" _section = "ports" _default_refresh = 60 _default_timeout = 3 def __init__(self, config=None, args=None): # web_list is a list of dict (JSON compliant) # [ {'url': 'http://blog.nicolargo.com', # 'refresh': 30, # 'description': 'My blog', # 'status': 404} ... ] # Load the configuration file self._web_list = self.load(config) def load(self, config): """Load the web list from the configuration file.""" web_list = [] if config is None: logger.debug("No configuration file available. Cannot load ports list.") elif not config.has_section(self._section): logger.debug("No [%s] section in the configuration file. Cannot load ports list." % self._section) else: logger.debug("Start reading the [%s] section in the configuration file" % self._section) refresh = int(config.get_value(self._section, 'refresh', default=self._default_refresh)) timeout = int(config.get_value(self._section, 'timeout', default=self._default_timeout)) # Read the web/url list for i in range(1, 256): new_web = {} postfix = 'web_%s_' % str(i) # Read mandatory configuration key: host new_web['url'] = config.get_value(self._section, '%s%s' % (postfix, 'url')) if new_web['url'] is None: continue url_parse = urlparse(new_web['url']) if not bool(url_parse.scheme) or not bool(url_parse.netloc): logger.error( 'Bad URL (%s) in the [%s] section of configuration file.' % (new_web['url'], self._section) ) continue # Read optionals configuration keys # Default description is the URL without the http:// new_web['description'] = config.get_value( self._section, '%sdescription' % postfix, default="%s" % url_parse.netloc ) # Default status new_web['status'] = None new_web['elapsed'] = 0 # Refresh rate in second new_web['refresh'] = refresh # Timeout in second new_web['timeout'] = int(config.get_value(self._section, '%stimeout' % postfix, default=timeout)) # RTT warning new_web['rtt_warning'] = config.get_value(self._section, '%srtt_warning' % postfix, default=None) if new_web['rtt_warning'] is not None: # Convert to second new_web['rtt_warning'] = int(new_web['rtt_warning']) / 1000.0 # Indice new_web['indice'] = 'web_' + str(i) # ssl_verify new_web['ssl_verify'] = config.get_value(self._section, '%sssl_verify' % postfix, default=True) # Proxy http_proxy = config.get_value(self._section, '%shttp_proxy' % postfix, default=None) https_proxy = config.get_value(self._section, '%shttps_proxy' % postfix, default=None) if https_proxy is None and http_proxy is None: new_web['proxies'] = None else: new_web['proxies'] = {'http': http_proxy, 'https': https_proxy} # Add the server to the list logger.debug("Add Web URL %s to the static list" % new_web['url']) web_list.append(new_web) # Ports list loaded logger.debug("Web list loaded: %s" % web_list) return web_list def get_web_list(self): """Return the current server list (dict of dict).""" return self._web_list def set_server(self, pos, key, value): """Set the key to the value for the pos (position in the list).""" self._web_list[pos][key] = value glances-3.4.0.3/glances/client.py0000644000175000017500000002141614432156570016456 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances client.""" import ujson import socket import sys import time from glances import __version__ from glances.compat import Fault, ProtocolError, ServerProxy, Transport from glances.logger import logger from glances.stats_client import GlancesStatsClient from glances.outputs.glances_curses import GlancesCursesClient from glances.timer import Counter class GlancesClientTransport(Transport): """This class overwrite the default XML-RPC transport and manage timeout.""" def set_timeout(self, timeout): self.timeout = timeout class GlancesClient(object): """This class creates and manages the TCP client.""" def __init__(self, config=None, args=None, timeout=7, return_to_browser=False): # Store the arg/config self.args = args self.config = config self._quiet = args.quiet self.refresh_time = args.time # Default client mode self._client_mode = 'glances' # Return to browser or exit self.return_to_browser = return_to_browser # Build the URI if args.password != "": self.uri = 'http://{}:{}@{}:{}'.format(args.username, args.password, args.client, args.port) else: self.uri = 'http://{}:{}'.format(args.client, args.port) logger.debug("Try to connect to {}".format(self.uri)) # Try to connect to the URI transport = GlancesClientTransport() # Configure the server timeout transport.set_timeout(timeout) try: self.client = ServerProxy(self.uri, transport=transport) except Exception as e: self.log_and_exit("Client couldn't create socket {}: {}".format(self.uri, e)) @property def quiet(self): return self._quiet def log_and_exit(self, msg=''): """Log and exit.""" if not self.return_to_browser: logger.critical(msg) sys.exit(2) else: logger.error(msg) @property def client_mode(self): """Get the client mode.""" return self._client_mode @client_mode.setter def client_mode(self, mode): """Set the client mode. - 'glances' = Glances server (default) - 'snmp' = SNMP (fallback) """ self._client_mode = mode def _login_glances(self): """Login to a Glances server""" client_version = None try: client_version = self.client.init() except socket.error as err: # Fallback to SNMP self.client_mode = 'snmp' logger.error("Connection to Glances server failed ({} {})".format(err.errno, err.strerror)) fall_back_msg = 'No Glances server found. Trying fallback to SNMP...' if not self.return_to_browser: print(fall_back_msg) else: logger.info(fall_back_msg) except ProtocolError as err: # Other errors msg = "Connection to server {} failed".format(self.uri) if err.errcode == 401: msg += " (Bad username/password)" else: msg += " ({} {})".format(err.errcode, err.errmsg) self.log_and_exit(msg) return False if self.client_mode == 'glances': # Check that both client and server are in the same major version if __version__.split('.')[0] == client_version.split('.')[0]: # Init stats self.stats = GlancesStatsClient(config=self.config, args=self.args) self.stats.set_plugins(ujson.loads(self.client.getAllPlugins())) logger.debug("Client version: {} / Server version: {}".format(__version__, client_version)) else: self.log_and_exit( ( 'Client and server not compatible: ' 'Client version: {} / Server version: {}'.format(__version__, client_version) ) ) return False return True def _login_snmp(self): """Login to a SNMP server""" logger.info("Trying to grab stats by SNMP...") from glances.stats_client_snmp import GlancesStatsClientSNMP # Init stats self.stats = GlancesStatsClientSNMP(config=self.config, args=self.args) if not self.stats.check_snmp(): self.log_and_exit("Connection to SNMP server failed") return False return True def login(self): """Logon to the server.""" if self.args.snmp_force: # Force SNMP instead of Glances server self.client_mode = 'snmp' else: # First of all, trying to connect to a Glances server if not self._login_glances(): return False # Try SNMP mode if self.client_mode == 'snmp': if not self._login_snmp(): return False # Load limits from the configuration file # Each client can choose its owns limits logger.debug("Load limits from the client configuration file") self.stats.load_limits(self.config) # Init screen if self.quiet: # In quiet mode, nothing is displayed logger.info("Quiet mode is ON: Nothing will be displayed") else: self.screen = GlancesCursesClient(config=self.config, args=self.args) # Return True: OK return True def update(self): """Update stats from Glances/SNMP server.""" if self.client_mode == 'glances': return self.update_glances() elif self.client_mode == 'snmp': return self.update_snmp() else: self.end() logger.critical("Unknown server mode: {}".format(self.client_mode)) sys.exit(2) def update_glances(self): """Get stats from Glances server. Return the client/server connection status: - Connected: Connection OK - Disconnected: Connection NOK """ # Update the stats try: server_stats = ujson.loads(self.client.getAll()) except socket.error: # Client cannot get server stats return "Disconnected" except Fault: # Client cannot get server stats (issue #375) return "Disconnected" else: # Put it in the internal dict self.stats.update(server_stats) return "Connected" def update_snmp(self): """Get stats from SNMP server. Return the client/server connection status: - SNMP: Connection with SNMP server OK - Disconnected: Connection NOK """ # Update the stats try: self.stats.update() except Exception: # Client cannot get SNMP server stats return "Disconnected" else: # Grab success return "SNMP" def serve_forever(self): """Main client loop.""" # Test if client and server are in the same major version if not self.login(): logger.critical("The server version is not compatible with the client") self.end() return self.client_mode exit_key = False try: while True and not exit_key: # Update the stats counter = Counter() cs_status = self.update() logger.debug('Stats updated duration: {} seconds'.format(counter.get())) # Export stats using export modules counter_export = Counter() self.stats.export(self.stats) logger.debug('Stats exported duration: {} seconds'.format(counter_export.get())) # Patch for issue1326 to avoid < 0 refresh adapted_refresh = self.refresh_time - counter.get() adapted_refresh = adapted_refresh if adapted_refresh > 0 else 0 # Update the screen if not self.quiet: exit_key = self.screen.update( self.stats, duration=adapted_refresh, cs_status=cs_status, return_to_browser=self.return_to_browser, ) else: # In quiet mode, we only wait adapated_refresh seconds time.sleep(adapted_refresh) except Exception as e: logger.critical(e) self.end() return self.client_mode def end(self): """End of the client session.""" if not self.quiet: self.screen.end() glances-3.4.0.3/glances/README.txt0000644000175000017500000000460414432156570016324 0ustar epsilonepsilonYou are in the main Glances source folder. This page is **ONLY** for developers. If you are looking for the user manual, please follow this link: https://glances.readthedocs.io/en/stable/ === __init__.py Global module init __main__.py Entry point for Glances module config.py Manage the configuration file compat.py Python2/3 compatibility shims module globals.py Share variables upon modules main.py Main script to rule them up... client.py Glances client server.py Glances server webserver.py Glances web server (Bottle-based) autodiscover.py Glances autodiscover module (via zeroconf) standalone.py Glances standalone (curses interface) password.py Manage password for Glances client/server stats.py The stats manager timer.py The timer class actions.py Manage trigger actions (via mustache) snmp.py Glances SNMP client (via pysnmp) ... plugins => Glances data providers glances_plugins.py "Father class" for others plugins glances_cpu.py Manage CPU stats glances_load.py Manage load stats glances_mem.py Manage RAM stats glances_memswap.py Manage swap stats glances_network.py Manage network stats glances_fs.py Manage file system stats glances_diskio.py Manage disk I/O stats glances_docker.py Glances Docker plugin (via docker-py) glances_raid.py Glances RAID plugin (via pymdstat) ... outputs => Glances UI glances_curses.py The curses interface glances_bottle.py The web interface ... exports => Glances export interfaces glances_export.py "Father class" for exports glances_csv.py The CSV export module glances_influxdb.py The InfluxDB export module glances_mqtt.py The MQTT export module glances_opentsdb.py The OpenTSDB export module glances_rabbitmq.py The RabbitMQ export module glances_statsd.py The StatsD export module ... amps => Glances Application Monitoring Processes (AMP) glances_amp.py "Father class" for AMPs glances_default.py Default AMP glances_nginx.py Nginx AMP ... glances-3.4.0.3/glances/standalone.py0000644000175000017500000001636614432156570017340 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # This file is part of Glances. # # SPDX-FileCopyrightText: 2022 Nicolas Hennion # # SPDX-License-Identifier: LGPL-3.0-only # """Manage the Glances standalone session.""" import sys import time from glances.globals import WINDOWS from glances.logger import logger from glances.processes import glances_processes from glances.stats import GlancesStats from glances.outputs.glances_curses import GlancesCursesStandalone from glances.outputs.glances_stdout import GlancesStdout from glances.outputs.glances_stdout_json import GlancesStdoutJson from glances.outputs.glances_stdout_csv import GlancesStdoutCsv from glances.outputs.glances_stdout_issue import GlancesStdoutIssue from glances.outputs.glances_stdout_apidoc import GlancesStdoutApiDoc from glances.outdated import Outdated from glances.timer import Counter class GlancesStandalone(object): """This class creates and manages the Glances standalone session.""" def __init__(self, config=None, args=None): self.config = config self.args = args # Quiet mode self._quiet = args.quiet self.refresh_time = args.time # Init stats start_duration = Counter() start_duration.reset() self.stats = GlancesStats(config=config, args=args) logger.debug("Plugins initialisation duration: {} seconds".format(start_duration.get())) # Modules (plugins and exporters) are loaded at this point # Glances can display the list if asked... if args.modules_list: self.display_modules_list() sys.exit(0) # The args is needed to get the selected process in the process list (Curses mode) glances_processes.set_args(args) # If process extended stats is disabled by user if not args.enable_process_extended: logger.debug("Extended stats for top process are disabled") glances_processes.disable_extended() else: logger.debug("Extended stats for top process are enabled") glances_processes.enable_extended() # Manage optional process filter if args.process_filter is not None: glances_processes.process_filter = args.process_filter if (not WINDOWS) and args.no_kernel_threads: # Ignore kernel threads in process list glances_processes.disable_kernel_threads() # Initial system information update start_duration.reset() self.stats.update() logger.debug("First stats update duration: {} seconds".format(start_duration.get())) if self.quiet: logger.info("Quiet mode is ON, nothing will be displayed") # In quiet mode, nothing is displayed glances_processes.max_processes = 0 elif args.stdout_issue: logger.info("Issue mode is ON") # Init screen self.screen = GlancesStdoutIssue(config=config, args=args) elif args.stdout_apidoc: logger.info("Fields descriptions mode is ON") # Init screen self.screen = GlancesStdoutApiDoc(config=config, args=args) elif args.stdout: logger.info("Stdout mode is ON, following stats will be displayed: {}".format(args.stdout)) # Init screen self.screen = GlancesStdout(config=config, args=args) elif args.stdout_json: logger.info("Stdout JSON mode is ON, following stats will be displayed: {}".format(args.stdout_json)) # Init screen self.screen = GlancesStdoutJson(config=config, args=args) elif args.stdout_csv: logger.info("Stdout CSV mode is ON, following stats will be displayed: {}".format(args.stdout_csv)) # Init screen self.screen = GlancesStdoutCsv(config=config, args=args) else: # Default number of processes to displayed is set to 50 glances_processes.max_processes = 50 # Init screen self.screen = GlancesCursesStandalone(config=config, args=args) # Check the latest Glances version self.outdated = Outdated(config=config, args=args) @property def quiet(self): return self._quiet def display_modules_list(self): """Display modules list""" print("Plugins list: {}".format(', '.join(sorted(self.stats.getPluginsList(enable=False))))) print("Exporters list: {}".format(', '.join(sorted(self.stats.getExportsList(enable=False))))) def serve_issue(self): """Special mode for the --issue option Update is done in the screen.update function """ ret = not self.screen.update(self.stats) self.end() return ret def __serve_once(self): """Main loop for the CLI. :return: True if we should continue (no exit key has been pressed) """ # Update stats # Start a counter used to compute the time needed counter = Counter() self.stats.update() logger.debug('Stats updated duration: {} seconds'.format(counter.get())) # Export stats # Start a counter used to compute the time needed counter_export = Counter() self.stats.export(self.stats) logger.debug('Stats exported duration: {} seconds'.format(counter_export.get())) # Patch for issue1326 to avoid < 0 refresh adapted_refresh = self.refresh_time - counter.get() adapted_refresh = adapted_refresh if adapted_refresh > 0 else 0 # Display stats # and wait refresh_time - counter if not self.quiet: # The update function return True if an exit key 'q' or 'ESC' # has been pressed. ret = not self.screen.update(self.stats, duration=adapted_refresh) else: # Nothing is displayed # Break should be done via a signal (CTRL-C) time.sleep(adapted_refresh) ret = True return ret def serve_forever(self): """Wrapper to the serve_forever function.""" if self.args.stop_after: for _ in range(self.args.stop_after): if not self.__serve_once(): break else: while self.__serve_once(): pass # self.end() def serve_n(self, n=1): """Serve n time.""" for _ in range(n): if not self.__serve_once(): break # self.end() def end(self): """End of the standalone CLI.""" if not self.quiet: self.screen.end() # Exit from export modules self.stats.end() # Check Glances version versus PyPI one if self.outdated.is_outdated(): print( "You are using Glances version {}, however version {} is available.".format( self.outdated.installed_version(), self.outdated.latest_version() ) ) print("You should consider upgrading using: pip install --upgrade glances") print("Disable this warning temporarily using: glances --disable-check-update") print( "To disable it permanently, refer config reference at " "https://glances.readthedocs.io/en/latest/config.html#syntax" ) glances-3.4.0.3/docker-compose/0000755000175000017500000000000014432156570016120 5ustar epsilonepsilonglances-3.4.0.3/docker-compose/glances.conf0000644000175000017500000005100514432156570020404 0ustar epsilonepsilon############################################################################## # Globals Glances parameters ############################################################################## [global] # Stats refresh rate (default is a minimum of 2 seconds) # Can be overwrite by the -t option # It is also possible to overwrite it in each plugin sections refresh=2 # Does Glances should check if a newer version is available on PyPI ? check_update=False # History size (maximum number of values) # Default is 1200 values (~1h with the default refresh rate) history_size=1200 # Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z) #strftime_format="%Y-%m-%d %H:%M:%S %Z" ############################################################################## # User interface ############################################################################## [outputs] # Theme name for the Curses interface: black or white curse_theme=black # Limit the number of processes to display in the WebUI max_processes_display=30 ############################################################################## # plugins ############################################################################## [quicklook] # Set to true to disable a plugin # Note: you can also disable it from the command line (see --disable-plugin ) disable=False # Graphical percentage char used in the terminal user interface (default is |) percentage_char=| # Define CPU, MEM and SWAP thresholds in % cpu_careful=50 cpu_warning=70 cpu_critical=90 mem_careful=50 mem_warning=70 mem_critical=90 swap_careful=50 swap_warning=70 swap_critical=90 [system] # This plugin display the first line in the Glances UI with: # Hostname / Operating system name / Architecture information # Set to true to disable a plugin disable=False # Default refresh rate is 60 seconds #refresh=60 [cpu] disable=False # See https://scoutapm.com/blog/slow_server_flow_chart # # I/O wait percentage should be lower than 1/# (# = Logical CPU cores) # Leave commented to just use the default config: # Careful=1/#*100-20% / Warning=1/#*100-10% / Critical=1/#*100 #iowait_careful=30 #iowait_warning=40 #iowait_critical=50 # # Total % is 100 - idle total_careful=65 total_warning=75 total_critical=85 total_log=True # # Default values if not defined: 50/70/90 (except for iowait) user_careful=50 user_warning=70 user_critical=90 user_log=False #user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert # system_careful=50 system_warning=70 system_critical=90 system_log=False # steal_careful=50 steal_warning=70 steal_critical=90 #steal_log=True # # Context switch limit (core / second) # Leave commented to just use the default config (critical is 50000*# (Logical CPU cores) #ctx_switches_careful=10000 #ctx_switches_warning=12000 #ctx_switches_critical=14000 [percpu] disable=False # Define CPU thresholds in % # Default values if not defined: 50/70/90 user_careful=50 user_warning=70 user_critical=90 iowait_careful=50 iowait_warning=70 iowait_critical=90 system_careful=50 system_warning=70 system_critical=90 [gpu] disable=False # Default processor values if not defined: 50/70/90 proc_careful=50 proc_warning=70 proc_critical=90 # Default memory values if not defined: 50/70/90 mem_careful=50 mem_warning=70 mem_critical=90 [mem] disable=False # Define RAM thresholds in % # Default values if not defined: 50/70/90 careful=50 #careful_action_repeat=echo {{percent}} >> /tmp/memory.alert warning=70 critical=90 [memswap] disable=False # Define SWAP thresholds in % # Default values if not defined: 50/70/90 careful=50 warning=70 critical=90 [load] disable=False # Define LOAD thresholds # Value * number of cores # Default values if not defined: 0.7/1.0/5.0 per number of cores # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages # http://www.linuxjournal.com/article/9001 careful=0.7 warning=1.0 critical=5.0 #log=False [network] disable=False # Default bitrate thresholds in % of the network interface speed # Default values if not defined: 70/80/90 rx_careful=70 rx_warning=80 rx_critical=90 tx_careful=70 tx_warning=80 tx_critical=90 # Define the list of hidden network interfaces (comma-separated regexp) #hide=docker.*,lo # Define the list of wireless network interfaces to be show (comma-separated) #show=docker.* # WLAN 0 alias #wlan0_alias=Wireless # It is possible to overwrite the bitrate thresholds per interface # WLAN 0 Default limits (in bits per second aka bps) for interface bitrate #wlan0_rx_careful=4000000 #wlan0_rx_warning=5000000 #wlan0_rx_critical=6000000 #wlan0_rx_log=True #wlan0_tx_careful=700000 #wlan0_tx_warning=900000 #wlan0_tx_critical=1000000 #wlan0_tx_log=True [ip] disable=False public_refresh_interval=300 public_ip_disabled=False # Configuration for the Censys online service # Need to create an aacount: https://censys.io/login censys_url=https://search.censys.io/api # Get your own credential here: https://search.censys.io/account/api # Enter your credential and uncomment the following lines #censys_username= #censys_password= # List of fields to be displayed in user interface (comma separated) censys_fields=location:continent,location:country,autonomous_system:name [connections] # Display additional information about TCP connections # This plugin is disabled by default disable=True # nf_conntrack thresholds in % nf_conntrack_percent_careful=70 nf_conntrack_percent_warning=80 nf_conntrack_percent_critical=90 [wifi] disable=True # Define the list of hidden wireless network interfaces (comma-separated regexp) hide=lo,docker.* # Define the list of wireless network interfaces to be show (comma-separated) #show=docker.* # Define SIGNAL thresholds in db (lower is better...) # Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength careful=-65 warning=-75 critical=-85 [diskio] disable=False # Define the list of hidden disks (comma-separated regexp) #hide=sda2,sda5,loop.* hide=loop.*,/dev/loop.* # Define the list of disks to be show (comma-separated) #show=sda.* # Alias for sda1 #sda1_alias=InternalDisk [fs] disable=False # Define the list of file system to hide (comma-separated regexp) hide=/boot.*,/snap.* # Define the list of file system to show (comma-separated regexp) #show=/,/srv # Define filesystem space thresholds in % # Default values if not defined: 50/70/90 # It is also possible to define per mount point value # Example: /_careful=40 careful=50 warning=70 critical=90 # Allow additional file system types (comma-separated FS type) #allow=shm [irq] # Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html # This plugin is disabled by default disable=True [folders] # Documentation: https://glances.readthedocs.io/en/latest/aoa/folders.html disable=False # Define a folder list to monitor # The list is composed of items (list_#nb <= 10) # An item is defined by: # * path: absolute path # * careful: optional careful threshold (in MB) # * warning: optional warning threshold (in MB) # * critical: optional critical threshold (in MB) # * refresh: interval in second between two refreshes #folder_1_path=/tmp #folder_1_careful=2500 #folder_1_warning=3000 #folder_1_critical=3500 #folder_1_refresh=60 #folder_2_path=/home/nicolargo/Videos #folder_2_warning=17000 #folder_2_critical=20000 #folder_3_path=/nonexisting #folder_4_path=/root [cloud] # Documentation: https://glances.readthedocs.io/en/latest/aoa/cloud.html # This plugin is disabled by default disable=True [raid] # Documentation: https://glances.readthedocs.io/en/latest/aoa/raid.html # This plugin is disabled by default disable=True [smart] # Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html # This plugin is disabled by default disable=True [hddtemp] disable=False # Define hddtemp server IP and port (default is 127.0.0.1 and 7634 (TCP)) host=127.0.0.1 port=7634 [sensors] # Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html disable=False # By default refresh every refresh time * 2 #refresh=6 # Hide some sensors #hide=ambient # Sensors core thresholds (in Celsius...) # Default values are grabbed from the system #temperature_core_careful=60 #temperature_core_warning=70 #temperature_core_critical=80 # Temperatures threshold in °C for hddtemp # Default values if not defined: 45/52/60 temperature_hdd_careful=45 temperature_hdd_warning=52 temperature_hdd_critical=60 # Battery threshold in % battery_careful=80 battery_warning=90 battery_critical=95 # Sensors alias #temp1_alias=Motherboard 0 #temp2_alias=Motherboard 1 #core 0_temperature_core_alias=CPU Core 0 temp #core 0_fans_speed_alias=CPU Core 0 fan #or #core 0_alias=CPU Core 0 #core 1_alias=CPU Core 1 [processcount] disable=False # If you want to change the refresh rate of the processing list, please uncomment: #refresh=10 [processlist] disable=False # Sort key: if not defined, the sort is automatically done by Glances (recommended) # Should be one of the following: # cpu_percent, memory_percent, io_counters, name, cpu_times, username #sort_key=memory_percent # Define CPU/MEM (per process) thresholds in % # Default values if not defined: 50/70/90 cpu_careful=50 cpu_warning=70 cpu_critical=90 mem_careful=50 mem_warning=70 mem_critical=90 # # Nice priorities range from -20 to 19. # Configure nice levels using a comma separated list. # # Nice: Example 1, non-zero is warning (default behavior) nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 # # Nice: Example 2, low priority processes escalate from careful to critical #nice_careful=1,2,3,4,5,6,7,8,9 #nice_warning=10,11,12,13,14 #nice_critical=15,16,17,18,19 [ports] disable=False # Interval in second between two scans # Ports scanner plugin configuration refresh=30 # Set the default timeout (in second) for a scan (can be overwritten in the scan list) timeout=3 # If port_default_gateway is True, add the default gateway on top of the scan list port_default_gateway=True # # Define the scan list (1 < x < 255) # port_x_host (name or IP) is mandatory # port_x_port (TCP port number) is optional (if not set, use ICMP) # port_x_description is optional (if not set, define to host:port) # port_x_timeout is optional and overwrite the default timeout value # port_x_rtt_warning is optional and defines the warning threshold in ms # #port_1_host=192.168.0.1 #port_1_port=80 #port_1_description=Home Box #port_1_timeout=1 #port_2_host=www.free.fr #port_2_description=My ISP #port_3_host=www.google.com #port_3_description=Internet ICMP #port_3_rtt_warning=1000 #port_4_description=Internet Web #port_4_host=www.google.com #port_4_port=80 #port_4_rtt_warning=1000 # # Define Web (URL) monitoring list (1 < x < 255) # web_x_url is the URL to monitor (example: http://my.site.com/folder) # web_x_description is optional (if not set, define to URL) # web_x_timeout is optional and overwrite the default timeout value # web_x_rtt_warning is optional and defines the warning respond time in ms (approximately) # #web_1_url=https://blog.nicolargo.com #web_1_description=My Blog #web_1_rtt_warning=3000 #web_2_url=https://github.com #web_3_url=http://www.google.fr #web_3_description=Google Fr #web_4_url=https://blog.nicolargo.com/nonexist #web_4_description=Intranet [containers] disable=False # Only show specific containers (comma separated list of container name or regular expression) # Comment this line to display all containers (default configuration) #show=telegraf # Hide some containers (comma separated list of container name or regular expression) # Comment this line to display all containers (default configuration) #hide=telegraf # Define the maximum docker size name (default is 20 chars) max_name_size=20 #cpu_careful=50 # Thresholds for CPU and MEM (in %) #cpu_warning=70 #cpu_critical=90 #mem_careful=20 #mem_warning=50 #mem_critical=70 # # Per container thresholds #containername_cpu_careful=10 #containername_cpu_warning=20 #containername_cpu_critical=30 # # By default, Glances only display running containers # Set the following key to True to display all containers all=False # Define Podman sock #podman_sock=unix:///run/user/1000/podman/podman.sock [amps] # AMPs configuration are defined in the bottom of this file disable=False ############################################################################## # Client/server ############################################################################## [serverlist] # Define the static servers list #server_1_name=localhost #server_1_alias=My local PC #server_1_port=61209 #server_2_name=localhost #server_2_port=61235 #server_3_name=192.168.0.17 #server_3_alias=Another PC on my network #server_3_port=61209 #server_4_name=pasbon #server_4_port=61237 [passwords] # Define the passwords list related to the [serverlist] section # Syntax: host=password # Where: host is the hostname # password is the clear password # Additionally (and optionally) a default password could be defined #localhost=abc #default=defaultpassword # # Define the path of the local '.pwd' file (default is system one) #local_password_path=~/.config/glances ############################################################################## # Exports ############################################################################## [graph] # Configuration for the --export graph option # Set the path where the graph (.svg files) will be created # Can be overwrite by the --graph-path command line option path=/tmp # It is possible to generate the graphs automatically by setting the # generate_every to a non zero value corresponding to the seconds between # two generation. Set it to 0 to disable graph auto generation. generate_every=60 # See following configuration keys definitions in the Pygal lib documentation # http://pygal.org/en/stable/documentation/index.html width=800 height=600 style=DarkStyle [influxdb] # !!! # Will be DEPRECATED in future release. # Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x) # !!! # Configuration for the --export influxdb option # https://influxdb.com/ host=localhost port=8086 protocol=http user=root password=root db=glances # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` [influxdb2] # Configuration for the --export influxdb2 option # https://influxdb.com/ host=localhost port=8086 protocol=http org=nicolargo bucket=glances token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA== # Set the interval between two exports (in seconds) # If the interval is set to 0, the Glances refresh time is used (default behavor) #interval=0 # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` [cassandra] # Configuration for the --export cassandra option # Also works for the ScyllaDB # https://influxdb.com/ or http://www.scylladb.com/ host=localhost port=9042 protocol_version=3 keyspace=glances replication_factor=2 # If not define, table name is set to host key table=localhost # If not define, username and password will not be used #username=cassandra #password=password [opentsdb] # Configuration for the --export opentsdb option # http://opentsdb.net/ host=localhost port=4242 #prefix=glances #tags=foo:bar,spam:eggs [statsd] # Configuration for the --export statsd option # https://github.com/etsy/statsd host=localhost port=8125 #prefix=glances [elasticsearch] # Configuration for the --export elasticsearch option # Data are available via the ES RESTful API. ex: URL//cpu # https://www.elastic.co scheme=http host=localhost port=9200 index=glances [riemann] # Configuration for the --export riemann option # http://riemann.io host=localhost port=5555 [rabbitmq] # Configuration for the --export rabbitmq option host=localhost port=5672 user=guest password=guest queue=glances_queue #protocol=amqps [mqtt] # Configuration for the --export mqtt option host=localhost port=8883 tls=false user=guest password=guest topic=glances topic_structure=per-metric [couchdb] # Configuration for the --export couchdb option # https://www.couchdb.org host=localhost port=5984 db=glances # user and password are optional (comment if not configured on the server side) # If they are used, then the https protocol will be used #user=root #password=root [mongodb] # Configuration for the --export mongodb option # https://www.mongodb.com host=localhost port=27017 db=glances user=root password=example [kafka] # Configuration for the --export kafka option # http://kafka.apache.org/ host=localhost port=9092 topic=glances #compression=gzip # Tags will be added for all events #tags=foo:bar,spam:eggs # You can also use dynamic values #tags=hostname:`hostname -f` [zeromq] # Configuration for the --export zeromq option # http://www.zeromq.org # Use * to bind on all interfaces host=* port=5678 # Glances envelopes the stats in a publish message with two frames: # - First frame containing the following prefix (STRING) # - Second frame with the Glances plugin name (STRING) # - Third frame with the Glances plugin stats (JSON) prefix=G [prometheus] # Configuration for the --export prometheus option # https://prometheus.io # Create a Prometheus exporter listening on localhost:9091 (default configuration) # Metric are exporter using the following name: # __{labelkey:labelvalue} # Note: You should add this exporter to your Prometheus server configuration: # scrape_configs: # - job_name: 'glances_exporter' # scrape_interval: 5s # static_configs: # - targets: ['localhost:9091'] # # Labels will be added for all measurements (default is src:glances) # labels=foo:bar,spam:eggs # You can also use dynamic values # labels=system:`uname -s` # host=localhost port=9091 #prefix=glances labels=src:glances [restful] # Configuration for the --export restful option # Example, export to http://localhost:6789/ host=localhost port=6789 protocol=http path=/ [graphite] # Configuration for the --export graphite option # https://graphiteapp.org/ host=localhost port=2003 # Prefix will be added for all measurement name prefix=glances # System name added between the prefix and the stats # By default, system_name = FQDN #system_name=mycomputer ############################################################################## # AMPS # * enable: Enable (true) or disable (false) the AMP # * regex: Regular expression to filter the process(es) # * refresh: The AMP is executed every refresh seconds # * one_line: (optional) Force (if true) the AMP to be displayed in one line # * command: (optional) command to execute when the process is detected (thk to the regex) # * countmin: (optional) minimal number of processes # A warning will be displayed if number of process < count # * countmax: (optional) maximum number of processes # A warning will be displayed if number of process > count # * : Others variables can be defined and used in the AMP script ############################################################################## [amp_dropbox] # Use the default AMP (no dedicated AMP Python script) # Check if the Dropbox daemon is running # Every 3 seconds, display the 'dropbox status' command line enable=false regex=.*dropbox.* refresh=3 one_line=false command=dropbox status countmin=1 [amp_python] # Use the default AMP (no dedicated AMP Python script) # Monitor all the Python scripts # Alert if more than 20 Python scripts are running enable=false regex=.*python.* refresh=3 countmax=20 [amp_conntrack] # Use comma separated for multiple commands (no space around the comma) # If the regex key is not defined, the AMP will be executed every refresh second # and the process count will not be displayed (countmin and countmax will be ignore) enable=false refresh=30 one_line=false command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max [amp_nginx] # Use the NGinx AMP # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) enable=false regex=\/usr\/sbin\/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status [amp_systemd] # Use the Systemd AMP enable=false regex=\/lib\/systemd\/systemd refresh=30 one_line=true systemctl_cmd=/bin/systemctl --plain [amp_systemv] # Use the Systemv AMP enable=false regex=\/sbin\/init refresh=30 one_line=true service_cmd=/usr/bin/service --status-all glances-3.4.0.3/docker-compose/Dockerfile0000644000175000017500000000023614432156570020113 0ustar epsilonepsilonFROM nicolargo/glances:latest as glancesminimal COPY glances.conf /glances/conf/glances.conf CMD python -m glances -C /glances/conf/glances.conf $GLANCES_OPT glances-3.4.0.3/setup.py0000755000175000017500000001160014432156570014721 0ustar epsilonepsilon#!/usr/bin/env python import glob import os import re import sys from io import open from setuptools import setup, Command if sys.version_info < (2, 7) or (3, 0) <= sys.version_info < (3, 4): print('Glances requires at least Python 2.7 or 3.4 to run.') sys.exit(1) PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 # Global functions ################## with open(os.path.join('glances', '__init__.py'), encoding='utf-8') as f: version = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", f.read(), re.M).group(1) if not version: raise RuntimeError('Cannot find Glances version information.') with open('README.rst', encoding='utf-8') as f: long_description = f.read() def get_data_files(): data_files = [ ('share/doc/glances', ['AUTHORS', 'COPYING', 'NEWS.rst', 'README.rst', 'CONTRIBUTING.md', 'conf/glances.conf']), ('share/man/man1', ['docs/man/glances.1']) ] return data_files def get_install_requires(): requires = [ 'psutil>=5.6.7', 'defusedxml', 'packaging', 'future; python_version < "3.0"', 'ujson<3; python_version < "3.0"', 'ujson<4; python_version >= "3.5" and python_version < "3.6"', 'ujson<5; python_version >= "3.6" and python_version < "3.7"', 'ujson>=5.4.0; python_version >= "3.7"', ] if sys.platform.startswith('win'): requires.append('bottle') requires.append('requests') return requires def get_install_extras_require(): extras_require = { 'action': ['chevron'], 'browser': ['zeroconf==0.62.0' if PY2 else 'zeroconf>=0.19.1'], 'cloud': ['requests'], # 'containers' ==> See below 'export': ['bernhard', 'cassandra-driver', 'couchdb', 'elasticsearch', 'graphitesender', 'influxdb>=1.0.0', 'kafka-python', 'pika', 'paho-mqtt', 'potsdb', 'prometheus_client', 'pyzmq', 'statsd'], 'folders': ['scandir'], # python_version<"3.5" 'graph': ['pygal'], 'ip': ['netifaces'], 'raid': ['pymdstat'], 'smart': ['pySMART.smartx'], 'snmp': ['pysnmp'], 'sparklines': ['sparklines'], 'web': ['bottle', 'requests'], 'wifi': ['wifi'] # 'gpu' and 'sensors' ==> See below } if PY3: extras_require['containers'] = ['docker>=6.1.1', 'podman', 'python-dateutil', 'six', 'packaging'] extras_require['cloud'].append('packaging') extras_require['export'].append('influxdb-client') extras_require['export'].append('pymongo') extras_require['gpu'] = ['py3nvml'] extras_require['podman'] = ['podman'] if sys.platform.startswith('linux'): extras_require['sensors'] = ['batinfo'] # Add automatically the 'all' target extras_require.update({'all': [i[0] for i in extras_require.values()]}) return extras_require class tests(Command): user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): import subprocess import sys for t in glob.glob('unitest.py'): ret = subprocess.call([sys.executable, t]) != 0 if ret != 0: raise SystemExit(ret) raise SystemExit(0) # Setup ! setup( name='Glances', version=version, description="A cross-platform curses-based monitoring tool", long_description=long_description, author='Nicolas Hennion', author_email='nicolas@nicolargo.com', url='https://github.com/nicolargo/glances', license='LGPLv3', keywords="cli curses monitoring system", python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", install_requires=get_install_requires(), extras_require=get_install_extras_require(), packages=['glances'], include_package_data=True, data_files=get_data_files(), cmdclass={'test': tests}, test_suite="unitest.py", entry_points={"console_scripts": ["glances=glances:main"]}, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Console :: Curses', 'Environment :: Web Environment', 'Framework :: Bottle', 'Intended Audience :: Developers', 'Intended Audience :: End Users/Desktop', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)', 'Operating System :: OS Independent', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Topic :: System :: Monitoring' ] ) glances-3.4.0.3/dev-requirements.txt0000644000175000017500000000042714432156570017251 0ustar epsilonepsilonpy-spy black pyright requirements-parser flake8 autopep8 autoflake ruff codespell memory-profiler matplotlib semgrep setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability numpy>=1.22.2 # not directly required, pinned by Snyk to avoid a vulnerabilityglances-3.4.0.3/optional-requirements.txt0000644000175000017500000000123114432156570020312 0ustar epsilonepsilon# install with base requirements file -r requirements.txt batinfo bernhard bottle cassandra-driver chevron couchdb docker>=6.1.1 elasticsearch graphitesender hddtemp influxdb>=1.0.0 # For InfluxDB < 1.8 influxdb-client; python_version >= "3.7" # For InfluxDB >= 1.8 kafka-python netifaces packaging; python_version >= "3.7" paho-mqtt pika podman; python_version >= "3.6" potsdb prometheus_client pygal pymdstat pymongo; python_version >= "3.7" py3nvml; python_version >= "3.5" pysnmp pySMART.smartx python-dateutil pyzmq requests scandir; python_version < "3.5" six sparklines statsd wifi zeroconf==0.62.0; python_version < "3.7" zeroconf; python_version >= "3.7" glances-3.4.0.3/renovate.json0000644000175000017500000000015314432156570015723 0ustar epsilonepsilon{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base" ] } glances-3.4.0.3/.dockerignore0000644000175000017500000000057514432156570015671 0ustar epsilonepsilon# Ignore everything * # Include only code files !/glances/**/*.py # Include WebUI files (remove when webui moved to seperate package) !/glances/outputs/static # Include Requirements files !/requirements.txt !/docker-requirements.txt !/webui-requirements.txt !/optional-requirements.txt # Include Config file !/docker-compose/glances.conf # Include Binary file !/docker-bin.sh glances-3.4.0.3/MANIFEST.in0000644000175000017500000000033114432156570014741 0ustar epsilonepsiloninclude AUTHORS include CONTRIBUTING.md include COPYING include NEWS.rst include README.rst include conf/glances.conf recursive-include docs * recursive-include glances *.py recursive-include glances/outputs/static * glances-3.4.0.3/docker-files/0000755000175000017500000000000014432156570015555 5ustar epsilonepsilonglances-3.4.0.3/docker-files/ubuntu.Dockerfile0000644000175000017500000000675314432156570021103 0ustar epsilonepsilon# # Glances Dockerfile (based on Ubuntu) # # https://github.com/nicolargo/glances # # WARNING: the versions should be set. # Ex: Python 3.10 for Ubuntu 22.04 # Note: ENV is for future running containers. ARG for building your Docker image. ARG IMAGE_VERSION=23.04 ARG PYTHON_VERSION=3.11 ############################################################################## # Base layer to be used for building dependencies and the release images FROM ubuntu:${IMAGE_VERSION} as base ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y --no-install-recommends \ python3 \ curl \ lm-sensors \ wireless-tools \ smartmontools \ net-tools \ tzdata \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* ############################################################################## # BUILD Stages ############################################################################## # BUILD: Base image shared by all build images FROM base as build ARG PYTHON_VERSION ARG DEBIAN_FRONTEND=noninteractive # Install build-time dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends \ python3-dev \ python3-venv \ python3-pip \ python3-wheel \ libzmq5 \ musl-dev \ build-essential \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN python${PYTHON_VERSION} -m venv --without-pip venv COPY requirements.txt docker-requirements.txt webui-requirements.txt optional-requirements.txt ./ ############################################################################## # BUILD: Install the minimal image deps FROM build as buildMinimal RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \ # Note: requirements.txt is include by dep -r docker-requirements.txt \ -r webui-requirements.txt ############################################################################## # BUILD: Install all the deps FROM build as buildFull RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \ # Note: requirements.txt is include by dep -r optional-requirements.txt ############################################################################## # RELEASE Stages ############################################################################## # Base image shared by all releases FROM base as release # Copy Glances source code and config file COPY ./docker-compose/glances.conf /etc/glances.conf COPY /glances /app/glances # Copy binary and update PATH COPY docker-bin.sh /usr/local/bin/glances RUN chmod a+x /usr/local/bin/glances ENV PATH="/venv/bin:$PATH" # EXPOSE PORT (XMLRPC / WebUI) EXPOSE 61209 61208 # Define default command. WORKDIR /app CMD /venv/bin/python3 -m glances -C /etc/glances.conf $GLANCES_OPT ################################################################################ # RELEASE: minimal FROM release as minimal COPY --from=buildMinimal /venv /venv ################################################################################ # RELEASE: full FROM release as full RUN apt-get update \ && apt-get install -y --no-install-recommends libzmq5 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY --from=buildFull /venv /venv ################################################################################ # RELEASE: dev - to be compatible with CI FROM full as dev # Forward access and error logs to Docker's log collector RUN ln -sf /dev/stdout /tmp/glances-root.log \ && ln -sf /dev/stderr /var/log/error.logglances-3.4.0.3/docker-files/README.md0000644000175000017500000000015214432156570017032 0ustar epsilonepsilon# Dockerfiles ```bash make docker ``` Then test the image with: ```bash make run-docker-alpine-dev ``` glances-3.4.0.3/docker-files/alpine.Dockerfile0000644000175000017500000000672214432156570021025 0ustar epsilonepsilon# # Glances Dockerfile (based on Alpine) # # https://github.com/nicolargo/glances # # WARNING: the versions should be set. # Ex: Python 3.11 for Alpine 3.18 # Note: ENV is for future running containers. ARG for building your Docker image. ARG IMAGE_VERSION=3.18.0 ARG PYTHON_VERSION=3.11 ############################################################################## # Base layer to be used for building dependencies and the release images FROM alpine:${IMAGE_VERSION} as base RUN apk add --no-cache \ python3 \ curl \ lm-sensors \ wireless-tools \ smartmontools \ iputils \ tzdata ############################################################################## # BUILD Stages ############################################################################## # BUILD: Base image shared by all build images FROM base as build ARG PYTHON_VERSION RUN apk add --no-cache \ python3-dev \ py3-pip \ py3-wheel \ musl-dev \ linux-headers \ build-base \ libzmq \ zeromq-dev \ # Required for 'cryptography' dependency of optional requirement 'cassandra-driver' \ # Refer: https://cryptography.io/en/latest/installation/#alpine \ # `git` required to clone cargo crates (dependencies) git \ gcc \ cargo \ pkgconfig \ libffi-dev \ openssl-dev RUN python${PYTHON_VERSION} -m venv --without-pip venv COPY requirements.txt docker-requirements.txt webui-requirements.txt optional-requirements.txt ./ ############################################################################## # BUILD: Install the minimal image deps FROM build as buildMinimal RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \ # Note: requirements.txt is include by dep -r docker-requirements.txt \ -r webui-requirements.txt ############################################################################## # BUILD: Install all the deps FROM build as buildFull # Required for optional dependency cassandra-driver ARG CASS_DRIVER_NO_CYTHON=1 # See issue 2368 ARG CARGO_NET_GIT_FETCH_WITH_CLI=true RUN python${PYTHON_VERSION} -m pip install --target="/venv/lib/python${PYTHON_VERSION}/site-packages" \ # Note: requirements.txt is include by dep -r optional-requirements.txt ############################################################################## # RELEASE Stages ############################################################################## # Base image shared by all releases FROM base as release # Copy source code and config file COPY ./docker-compose/glances.conf /etc/glances.conf COPY /glances /app/glances # Copy binary and update PATH COPY docker-bin.sh /usr/local/bin/glances RUN chmod a+x /usr/local/bin/glances ENV PATH="/venv/bin:$PATH" # EXPOSE PORT (XMLRPC / WebUI) EXPOSE 61209 61208 # Define default command. WORKDIR /app CMD /venv/bin/python3 -m glances -C /etc/glances.conf $GLANCES_OPT ################################################################################ # RELEASE: minimal FROM release as minimal COPY --from=buildMinimal /venv /venv ################################################################################ # RELEASE: full FROM release as full RUN apk add --no-cache libzmq COPY --from=buildFull /venv /venv ################################################################################ # RELEASE: dev - to be compatible with CI FROM full as dev # Forward access and error logs to Docker's log collector RUN ln -sf /dev/stdout /tmp/glances-root.log \ && ln -sf /dev/stderr /var/log/error.log \ glances-3.4.0.3/requirements.txt0000644000175000017500000000043114432156570016470 0ustar epsilonepsilonpsutil>=5.6.7 defusedxml packaging; python_version >= "3.7" future; python_version < "3.0" ujson<3; python_version < "3.0" ujson<4; python_version >= "3.5" and python_version < "3.6" ujson<5; python_version >= "3.6" and python_version < "3.7" ujson>=5.4.0; python_version >= "3.7" glances-3.4.0.3/.bandit0000644000175000017500000000007714432156570014454 0ustar epsilonepsilon[bandit] exclude: ./docs,./glances/outputs/static/node_modules glances-3.4.0.3/LICENSES/0000755000175000017500000000000014432156570014413 5ustar epsilonepsilonglances-3.4.0.3/LICENSES/LGPL-3.0-only.txt0000644000175000017500000012216214432156570017173 0ustar epsilonepsilonGNU 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. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . glances-3.4.0.3/docs/0000755000175000017500000000000014432156570014136 5ustar epsilonepsilonglances-3.4.0.3/docs/docker.rst0000644000175000017500000001576714432156570016157 0ustar epsilonepsilon.. _docker: Docker ====== Glances can be installed through Docker, allowing you to run it without installing all the python dependencies directly on your system. Once you have [docker installed](https://docs.docker.com/install/), you can Get the Glances container: .. code-block:: console docker pull nicolargo/glances: Available tags (all images are based on both Alpine and Ubuntu Operating System): - *latest-full* for a full Alpine Glances image (latest release) with all dependencies - *latest* for a basic Alpine Glances (latest release) version with minimal dependencies (Bottle and Docker) - *dev* for a basic Alpine Glances image (based on development branch) with all dependencies (Warning: may be instable) - *ubuntu-latest-full* for a full Ubuntu Glances image (latest release) with all dependencies - *ubuntu-latest* for a basic Ubuntu Glances (latest release) version with minimal dependencies (Bottle and Docker) - *ubuntu-dev* for a basic Ubuntu Glances image (based on development branch) with all dependencies (Warning: may be instable) You can also specify a version (example: 3.4.0). All available versions can be found on `DockerHub`_. An Example to pull the `latest` tag: .. code-block:: console docker pull nicolargo/glances:latest Run the container in *console mode*: .. code-block:: console docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it docker.io/nicolargo/glances Additionally, if you want to use your own glances.conf file, you can create your own Dockerfile: .. code-block:: console FROM nicolargo/glances COPY glances.conf /glances/conf/glances.conf CMD python -m glances -C /glances/conf/glances.conf $GLANCES_OPT Alternatively, you can specify something along the same lines with docker run options: .. code-block:: console docker run -v `pwd`/glances.conf:/glances/conf/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -it docker.io/nicolargo/glances Where \`pwd\`/glances.conf is a local directory containing your glances.conf file. Run the container in *Web server mode* (notice the `GLANCES_OPT` environment variable setting parameters for the glances startup command): .. code-block:: console docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host docker.io/nicolargo/glances Note: if you want to see the network interface stats within the container, add --net=host --privileged You can also include Glances container in you own `docker-compose.yml`. Here's a realistic example including a "traefik" reverse proxy serving an "whoami" app container plus a Glances container, providing a simple and efficient monitoring webui. .. code-block:: console version: '3' services: reverse-proxy: image: traefik:alpine command: --api --docker ports: - "80:80" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock whoami: image: emilevauge/whoami labels: - "traefik.frontend.rule=Host:whoami.docker.localhost" monitoring: image: nicolargo/glances:latest-alpine restart: always pid: host volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - "GLANCES_OPT=-w" labels: - "traefik.port=61208" - "traefik.frontend.rule=Host:glances.docker.localhost" How to protect your Dockerized server (or Web server) with a login/password ? ----------------------------------------------------------------------------- Below are two methods for setting up a login/password to protect Glances running inside a Docker container. Option 1 ^^^^^^^^ You can enter the running container by entering this command (replacing ``glances_docker`` with the name of your container): .. code-block:: console docker exec -it glances_docker sh and generate the password file (the default login is ``glances``, add the ``--username`` flag if you would like to change it): .. code-block:: console glances -s --password which will prompt you to answer the following questions: .. code-block:: console Define the Glances server password (glances username): Password (confirm): Do you want to save the password? [Yes/No]: Yes after which you will need to kill the process by entering ``CTRL+C`` (potentially twice), before leaving the container: .. code-block:: console exit You will then need to copy the password file to your host machine: .. code-block:: console docker cp glances_docker:/root/.config/glances/glances.pwd ./secrets/glances_password and make it visible to your container by adding it to ``docker-compose.yml`` as a ``secret``: .. code-block:: yaml version: '3' services: glances: image: nicolargo/glances:latest restart: always environment: - GLANCES_OPT="-w --password" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro pid: host secrets: - source: glances_password target: /root/.config/glances/glances.pwd secrets: glances_password: file: ./secrets/glances_password Option 2 ^^^^^^^^ You can add a ``[passwords]`` block to the Glances configuration file as mentioned elsewhere in the documentation: .. code-block:: ini [passwords] # Define the passwords list # Syntax: host=password # Where: host is the hostname # password is the clear password # Additionally (and optionally) a default password could be defined localhost=mylocalhostpassword default=mydefaultpassword Using GPU Plugin with Docker (Only Nvidia GPUs) ----------------------------------------------- Complete the steps mentioned in the `docker docs `_ to make the GPU accessible by the docker engine. With `docker run` ^^^^^^^^^^^^^^^^^ Include the `--gpus` flag with the `docker run` command. **Note:** Make sure the `--gpus` is present before the image name in the command, otherwise it won't work. .. code-block:: ini docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --gpus --pid host --network host -it docker.io/nicolargo/glances:latest-full .. With `docker-compose` ^^^^^^^^^^^^^^^^^^^^^ Include the `deploy` section in compose file as specified below in the example service definition. .. code-block:: ini version: '3' services: monitoring: image: nicolargo/glances:latest-full pid: host network_mode: host volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - "GLANCES_OPT=-w" # For nvidia GPUs deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] .. Reference: https://docs.docker.com/compose/gpu-support/ .. _DockerHub: https://hub.docker.com/r/nicolargo/glances/tags glances-3.4.0.3/docs/gw/0000755000175000017500000000000014432156570014553 5ustar epsilonepsilonglances-3.4.0.3/docs/gw/couchdb.rst0000644000175000017500000000152314432156570016715 0ustar epsilonepsilon.. _couchdb: CouchDB ======= You can export statistics to a ``CouchDB`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [mongodb] host=localhost port=27017 db=glances user=root password=example and run Glances with: .. code-block:: console $ glances --export mongodb Documents are stored in native the configured database (glances by default) with one collection per plugin. Example of MongoDB Document for the load stats: .. code-block:: json { _id: ObjectId('63d78ffee5528e543ce5af3a'), min1: 1.46337890625, min5: 1.09619140625, min15: 1.07275390625, cpucore: 4, history_size: 1200, load_disable: 'False', load_careful: 0.7, load_warning: 1, load_critical: 5 } glances-3.4.0.3/docs/gw/cassandra.rst0000644000175000017500000000136414432156570017250 0ustar epsilonepsilon.. _cassandra: Cassandra ========= You can export statistics to a ``Cassandra`` or ``Scylla`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [cassandra] host=localhost port=9042 protocol_version=3 keyspace=glances replication_factor=2 table=localhost and run Glances with: .. code-block:: console $ glances --export cassandra The data model is the following: .. code-block:: ini CREATE TABLE (plugin text, time timeuuid, stat map, PRIMARY KEY (plugin, time)) Only numerical stats are stored in the Cassandra table. All the stats are converted to float. If a stat cannot be converted to float, it is not stored in the database. glances-3.4.0.3/docs/gw/restful.rst0000644000175000017500000000151514432156570016773 0ustar epsilonepsilon.. _restful: RESTful ======= You can export statistics to a ``RESTful`` JSON server. All the available stats will be exported in one big (~15 KB) POST request to the RESTful endpoint. The RESTful endpoint should be defined in the Glances configuration file as following: .. code-block:: ini [restful] # Configuration for the --export-restful option # Example, export to http://localhost:6789/ host=localhost port=6789 protocol=http path=/ URL Syntax: .. code-block:: ini http://localhost:6789/ | | | | | | | path | | port | host protocol and run Glances with: .. code-block:: console $ glances --export restful Glances will generate stats as a big JSON dictionary (see example `here`_). .. _here: https://pastebin.com/7U3vXqvF glances-3.4.0.3/docs/gw/influxdb.rst0000644000175000017500000001076514432156570017131 0ustar epsilonepsilon.. _influxdb: InfluxDB ======== You can export statistics to an ``InfluxDB`` server (time series server). In Glances version 3.2.0 and higher, the way Glances exports stats to InfluxDB changes. The following fields will be added as tags: - key stats (for example *interface_name* for network, container *name* for docker...) - hostname (shortname) - tags Glances InfluxDB data model: +---------------+-----------------------+-----------------------+ | Measurement | Fields | Tags | +===============+=======================+=======================+ | cpu | user | hostname | | | system | | | | iowait... | | +---------------+-----------------------+-----------------------+ | network | read_bytes | hostname | | | write_bytes | disk_name | | | time_since_update... | | |  | | | +---------------+-----------------------+-----------------------+ | diskio | rx | hostname | | | tx | interface_name | | | time_since_update... | | |  | | | +---------------+-----------------------+-----------------------+ | docker | cpu_percent | hostname | | | memory_usage... | name | +---------------+-----------------------+-----------------------+ | gpu | proc | hostname | | | mem | gpu_id | | | temperature... | | +---------------+-----------------------+-----------------------+ InfluxDB (up to version 1.7.x) ------------------------------ The connection should be defined in the Glances configuration file as following: .. code-block:: ini [influxdb] host=localhost port=8086 protocol=http user=root password=root db=glances # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` and run Glances with: .. code-block:: console $ glances --export influxdb Glances generates a lot of columns, e.g., if you have many running Docker containers, so you should use the ``tsm1`` engine in the InfluxDB configuration file (no limit on columns number). Note: if you want to use SSL, please set 'protocol=https'. InfluxDB v2 (from InfluxDB v1.8.x/Flux and InfluxDB v2.x) --------------------------------------------------------- Note: The InfluxDB v2 client (https://pypi.org/project/influxdb-client/) is only available for Python 3.6 or higher. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [influxdb2] host=localhost port=8086 protocol=http org=nicolargo bucket=glances token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA== # Set the interval between two exports (in seconds) # If the interval is set to 0, the Glances refresh time is used (default behavor) #interval=0 # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=foo # Following tags will be added for all measurements # You can also use dynamic values. # Note: hostname is always added as a tag #tags=foo:bar,spam:eggs,domain:`domainname` and run Glances with: .. code-block:: console $ glances --export influxdb2 Note: if you want to use SSL, please set 'protocol=https'. Grafana ------- For Grafana users, Glances provides a dedicated for `InfluxQL`_ or `Flux`_ InfluxDB datasource. .. image:: ../_static/glances-influxdb.png To use it, just import the file in your ``Grafana`` web interface. .. image:: ../_static/grafana.png .. _InfluxQL: https://github.com/nicolargo/glances/blob/master/conf/glances-grafana-influxql.json .. _Flux: https://github.com/nicolargo/glances/blob/master/conf/glances-grafana-flux.json glances-3.4.0.3/docs/gw/opentsdb.rst0000644000175000017500000000060214432156570017121 0ustar epsilonepsilon.. _opentsdb: OpenTSDB ======== You can export statistics to an ``OpenTSDB`` server (time series server). The connection should be defined in the Glances configuration file as following: .. code-block:: ini [opentsdb] host=localhost port=4242 prefix=glances tags=foo:bar,spam:eggs and run Glances with: .. code-block:: console $ glances --export opentsdb glances-3.4.0.3/docs/gw/graphite.rst0000644000175000017500000000150414432156570017110 0ustar epsilonepsilon.. _graphite: Graphite ======== You can export statistics to a ``Graphite`` server (time series server). The connection should be defined in the Glances configuration file as following: .. code-block:: ini [graphite] host=localhost port=2003 # Prefix will be added for all measurement name # Ex: prefix=foo # => foo.cpu # => foo.mem # You can also use dynamic values #prefix=`hostname` prefix=glances and run Glances with: .. code-block:: console $ glances --export graphite Note 1: the port defines the TCP port where the Graphite listen plain-text requests. Note 2: As many time-series database, only integer and float are supported in the Graphite datamodel. Note 3: Under the wood, Glances uses GraphiteSender Python lib (https://github.com/NicoAdrian/graphitesender). glances-3.4.0.3/docs/gw/rabbitmq.rst0000644000175000017500000000063714432156570017114 0ustar epsilonepsilon.. _rabbitmq: RabbitMQ ======== You can export statistics to an ``RabbitMQ`` server (AMQP Broker). The connection should be defined in the Glances configuration file as following: .. code-block:: ini [rabbitmq] host=localhost port=5672 user=glances password=glances queue=glances_queue #protocol=amqps and run Glances with: .. code-block:: console $ glances --export rabbitmq glances-3.4.0.3/docs/gw/graph.rst0000644000175000017500000000216514432156570016412 0ustar epsilonepsilon.. _graph: Graph ====== You can generate dynamic graphs (SVG format) in a target folder. The generation starts every time the 'g' key is pressed in the CLI interface (if Glances has been started with the --export graph option). The graph export module can be configured through the Glances configuration file: .. code-block:: ini [graph] # Configuration for the --export graph option # Set the path where the graph (.svg files) will be created # Can be overwrite by the --graph-path command line option path=/tmp # It is possible to generate the graphs automatically by setting the # generate_every to a non zero value corresponding to the seconds between # two generation. Set it to 0 to disable graph auto generation. generate_every=60 # See following configuration keys definitions in the Pygal lib documentation # http://pygal.org/en/stable/documentation/index.html width=800 height=600 style=DarkStyle and run Glances with: .. code-block:: console $ glances --export graph --export-graph-path /tmp Example of output (load graph) .. image:: ../_static/graph-load.svg glances-3.4.0.3/docs/gw/mqtt.rst0000644000175000017500000000110614432156570016270 0ustar epsilonepsilon.. _mqtt: MQTT ======== You can export statistics to an ``MQTT`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [mqtt] host=localhost port=883 tls=true user=glances password=glances topic=glances topic_structure=per-metric and run Glances with: .. code-block:: console $ glances --export mqtt The topic_structure field aims at configuring the way stats are exported to MQTT (see #1798): - per-metric: one event per metric (default behavior) - per-plugin: one event per plugin glances-3.4.0.3/docs/gw/statsd.rst0000644000175000017500000000110414432156570016603 0ustar epsilonepsilon.. _statsd: StatsD ====== You can export statistics to a ``StatsD`` server (welcome to Graphite!). The connection should be defined in the Glances configuration file as following: .. code-block:: ini [statsd] host=localhost port=8125 prefix=glances .. note:: The ``prefix`` is optional (``glances`` by default) and run Glances with: .. code-block:: console $ glances --export statsd Glances will generate stats as: :: 'glances.cpu.user': 12.5, 'glances.cpu.total': 14.9, 'glances.load.cpucore': 4, 'glances.load.min1': 0.19, ... glances-3.4.0.3/docs/gw/prometheus.rst0000644000175000017500000000225314432156570017502 0ustar epsilonepsilon.. _prometheus: Prometheus ========== You can export statistics to a ``Prometheus`` server through an exporter. When the *--export-prometheus* is used, Glances creates a Prometheus exporter listening on (define in the Glances configuration file). .. code-block:: ini [prometheus] host=localhost port=9091 prefix=glances labels=src:glances .. note:: When running Glances in a container, set ``host=0.0.0.0`` in the Glances configuration file. .. note:: You can use dynamic fields for the label (ex: labels=system:`uname -s`) and run Glances with: .. code-block:: console $ glances --export prometheus You can check that Glances exports the stats using this URL: http://localhost:9091 .. image:: ../_static/prometheus_exporter.png In order to store the metrics in a Prometheus server, you should add this exporter to your Prometheus server configuration with the following lines (in the prometheus.yml configuration file): .. code-block:: ini scrape_configs: - job_name: 'glances_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9091'] .. image:: ../_static/prometheus_server.png glances-3.4.0.3/docs/gw/csv.rst0000644000175000017500000000151314432156570016100 0ustar epsilonepsilon.. _csv: CSV === It's possible to export stats to a CSV file. .. code-block:: console $ glances --export csv --export-csv-file /tmp/glances.csv --quiet CSV file description: - first line: Stats description (header) - others lines: Stats (data) By default, data will be append any existing CSV file (if header are compliant). If the header did not match with a previous one, an error is logged. The --export-csv-overwrite tag should be used if you want to delete the existing CSV file when Glances starts. It is possible to remove some exported data using the --disable-plugin tag: $ glances --export csv --export-csv-file /tmp/glances.csv --disable-plugin load,swap --quiet or by only enable some plugins: $ glances --export csv --export-csv-file /tmp/glances.csv --disable-plugin all --enable-plugin cpu,mem,load --quiet glances-3.4.0.3/docs/gw/index.rst0000644000175000017500000000062114432156570016413 0ustar epsilonepsilon.. _gw: Gateway To Other Services ========================= Glances can exports stats to a CSV file. Also, it can act as a gateway to providing stats to multiple services (see list below). .. toctree:: :maxdepth: 2 csv cassandra couchdb elastic graph influxdb json kafka mqtt mongodb opentsdb prometheus rabbitmq restful riemann statsd zeromq glances-3.4.0.3/docs/gw/json.rst0000644000175000017500000000023714432156570016260 0ustar epsilonepsilon.. _json: JSON ==== It's possible to export stats to a JSON file. .. code-block:: console $ glances --export json --export-json-file /tmp/glances.json glances-3.4.0.3/docs/gw/zeromq.rst0000644000175000017500000000225414432156570016625 0ustar epsilonepsilon.. _zeromq: ZeroMQ ====== You can export statistics to a ``ZeroMQ`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [zeromq] host=127.0.0.1 port=5678 prefix=G Glances `envelopes`_ the stats before publishing it. The message is composed of three frames: 1. the prefix configured in the [zeromq] section (as STRING) 2. the Glances plugin name (as STRING) 3. the Glances plugin stats (as JSON) Run Glances with: .. code-block:: console $ glances --export zeromq Following is a simple Python client to subscribe to the Glances stats: .. code-block:: python # -*- coding: utf-8 -*- # # ZeroMQ subscriber for Glances # import json import zmq context = zmq.Context() subscriber = context.socket(zmq.SUB) subscriber.setsockopt(zmq.SUBSCRIBE, 'G') subscriber.connect("tcp://127.0.0.1:5678") while True: _, plugin, data_raw = subscriber.recv_multipart() data = json.loads(data_raw) print('{} => {}'.format(plugin, data)) subscriber.close() context.term() .. _envelopes: http://zguide.zeromq.org/page:all#Pub-Sub-Message-Envelopes glances-3.4.0.3/docs/gw/riemann.rst0000644000175000017500000000051514432156570016737 0ustar epsilonepsilon.. _riemann: Riemann ======= You can export statistics to a ``Riemann`` server (using TCP protocol). The connection should be defined in the Glances configuration file as following: .. code-block:: ini [riemann] host=localhost port=5555 and run Glances with: .. code-block:: console $ glances --export riemann glances-3.4.0.3/docs/gw/kafka.rst0000644000175000017500000000266414432156570016372 0ustar epsilonepsilon.. _kafka: Kafka ===== You can export statistics to a ``Kafka`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [kafka] host=localhost port=9092 topic=glances #compression=gzip # Tags will be added for all events #tags=foo:bar,spam:eggs # You can also use dynamic values #tags=hostname:`hostname -f` Note: you can enable the compression but it consume CPU on your host. and run Glances with: .. code-block:: console $ glances --export kafka Stats are sent in native ``JSON`` format to the topic: - ``key``: plugin name - ``value``: JSON dict Example of record for the memory plugin: .. code-block:: ini ConsumerRecord(topic=u'glances', partition=0, offset=1305, timestamp=1490460592248, timestamp_type=0, key='mem', value=u'{"available": 2094710784, "used": 5777428480, "cached": 2513543168, "mem_careful": 50.0, "percent": 73.4, "free": 2094710784, "mem_critical": 90.0, "inactive": 2361626624, "shared": 475504640, "history_size": 28800.0, "mem_warning": 70.0, "total": 7872139264, "active": 4834361344, "buffers": 160112640}', checksum=214895201, serialized_key_size=3, serialized_value_size=303) Python code example to consume Kafka Glances plugin: .. code-block:: python from kafka import KafkaConsumer import json consumer = KafkaConsumer('glances', value_deserializer=json.loads) for s in consumer: print(s) glances-3.4.0.3/docs/gw/elastic.rst0000644000175000017500000000076414432156570016740 0ustar epsilonepsilon.. _elastic: Elasticsearch ============= .. note:: You need to install the `elasticsearch`_ library on your system. You can export statistics to an ``Elasticsearch`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [elasticsearch] host=localhost port=9200 index=glances and run Glances with: .. code-block:: console $ glances --export elasticsearch .. _elasticsearch: https://pypi.org/project/elasticsearch/ glances-3.4.0.3/docs/gw/mongodb.rst0000644000175000017500000000211014432156570016724 0ustar epsilonepsilon.. _couchdb: MongoDB ======= You can export statistics to a ``MongoDB`` server. The connection should be defined in the Glances configuration file as following: .. code-block:: ini [couchdb] host=localhost port= user=root password=example db=glances and run Glances with: .. code-block:: console $ glances --export couchdb Documents are stored in native ``JSON`` format. Glances adds ``"type"`` and ``"time"`` entries: - ``type``: plugin name - ``time``: timestamp (format: "2016-09-24T16:39:08.524828Z") Example of Couch Document for the load stats: .. code-block:: json { "_id": "36cbbad81453c53ef08804cb2612d5b6", "_rev": "1-382400899bec5615cabb99aa34df49fb", "min15": 0.33, "time": "2016-09-24T16:39:08.524828Z", "min5": 0.4, "cpucore": 4, "load_warning": 1, "min1": 0.5, "history_size": 28800, "load_critical": 5, "type": "load", "load_careful": 0.7 } You can view the result using the CouchDB utils URL: http://127.0.0.1:5984/_utils/database.html?glances. glances-3.4.0.3/docs/objects.inv0000644000175000017500000000356514432156570016316 0ustar epsilonepsilon# Sphinx inventory version 2 # Project: Glances # Version: 3.1.1b0 # The remainder of this file is compressed using zlib. xڝ˖6}w{qb{f< @@ <}TBHޡ(,;؛%o ݏJw].ͣzlFvg,; h-rޏ2Z,rײFFkĺhh5VRUB)a$QFip=NU+PtS$@ w/$Φ)pR˝A:{(YQDJ? %t̋a jR<d,?(k§V]X ;=瞒GqRZ"i)~DٓH!OSg)E 2~I:sM:}Ozi~,RLOoR`)19^Q,8fNh kD۟ɾoT. =ڟӗuց&{ĨY%wcY'Os1>L{ePF;:vep{may b?Y k )ig& ߢ3g{3֒v y >%΋Djw% / p7$2BQbl+J{M0eȆ&iFD?CmtrFz*Lmޒ5{Dnن a4Ecdg6$4Qj ?UAD"nv/ޑKp, ÙEtŰ*73Ά`v8v:d`d) ˅]|:dqt~̏ip/ .}ݛ\ՂB<5`[vz/}@-|'G?e#̨M|>ihzi/+XG]|`8xHj\BUJvK\% eu*%W"[p*<ޟgB1*fǷdzZ:tlxIiL:~Q]Lw㈦`4WEy^mk#wD&BH}6!f`tuI!n%t2+re8ެD$˅H3SW0Pk笎>4Xdt_B~?1k=ɚ(IO( w­ɲ|QLiB4'wIԱ͉5;6:6&lAʚ`{zjbe]A+e?(t׹@*B!}BlsoJ!XV~H1UQ S%5STvKL.0#ѥc%Rc + Connect to a Glances server and export stats to a StatsD server: $ glances -c --export statsd Start the client browser (browser mode): $ glances --browser AUTHOR ------ Nicolas Hennion aka Nicolargo glances-3.4.0.3/docs/cmds.rst0000644000175000017500000001720414432156570015622 0ustar epsilonepsilon.. _cmds: Command Reference ================= Command-Line Options -------------------- .. option:: -h, --help show this help message and exit .. option:: -V, --version show program's version number and exit .. option:: -d, --debug enable debug mode .. option:: -C CONF_FILE, --config CONF_FILE path to the configuration file .. option:: --modules-list display modules (plugins & exports) list and exit .. option:: --disable-plugin PLUGIN disable PLUGIN (comma separated list) .. option:: --enable-plugin PLUGIN enable PLUGIN (comma separated list) .. option:: --stdout PLUGINS_STATS display stats to stdout (comma separated list of plugins/plugins.attribute) .. option:: --export EXPORT enable EXPORT module (comma separated list) .. option:: --export-csv-file EXPORT_CSV_FILE file path for CSV exporter .. option:: --export-json-file EXPORT_JSON_FILE file path for JSON exporter .. option:: --disable-process disable process module (reduce Glances CPU consumption) .. option:: --disable-webui disable the Web UI (only the RESTful API will respond) .. option:: --light, --enable-light light mode for Curses UI (disable all but top menu) .. option:: -0, --disable-irix task's CPU usage will be divided by the total number of CPUs .. option:: -1, --percpu start Glances in per CPU mode .. option:: -2, --disable-left-sidebar disable network, disk I/O, FS and sensors modules .. option:: -3, --disable-quicklook disable quick look module .. option:: -4, --full-quicklook disable all but quick look and load .. option:: -5, --disable-top disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) .. option:: -6, --meangpu start Glances in mean GPU mode .. option:: --enable-history enable the history mode .. option:: --disable-bold disable bold mode in the terminal .. option:: --disable-bg disable background colors in the terminal .. option:: --enable-process-extended enable extended stats on top process .. option:: -c CLIENT, --client CLIENT connect to a Glances server by IPv4/IPv6 address, hostname or hostname:port .. option:: -s, --server run Glances in server mode .. option:: --browser start the client browser (list of servers) .. option:: --disable-autodiscover disable autodiscover feature .. option:: -p PORT, --port PORT define the client/server TCP port [default: 61209] .. option:: -B BIND_ADDRESS, --bind BIND_ADDRESS bind server to the given IPv4/IPv6 address or hostname .. option:: --username define a client/server username .. option:: --password define a client/server password .. option:: --snmp-community SNMP_COMMUNITY SNMP community .. option:: --snmp-port SNMP_PORT SNMP port .. option:: --snmp-version SNMP_VERSION SNMP version (1, 2c or 3) .. option:: --snmp-user SNMP_USER SNMP username (only for SNMPv3) .. option:: --snmp-auth SNMP_AUTH SNMP authentication key (only for SNMPv3) .. option:: --snmp-force force SNMP mode .. option:: -t TIME, --time TIME set refresh time in seconds [default: 3 sec] .. option:: -w, --webserver run Glances in web server mode (bottle lib needed) .. option:: --cached-time CACHED_TIME set the server cache time [default: 1 sec] .. option:: --open-web-browser try to open the Web UI in the default Web browser .. option:: -q, --quiet do not display the curses interface .. option:: -f PROCESS_FILTER, --process-filter PROCESS_FILTER set the process filter pattern (regular expression) .. option:: --process-short-name force short name for processes name .. option:: --hide-kernel-threads hide kernel threads in process list (not available on Windows) .. option:: -b, --byte display network rate in byte per second .. option:: --diskio-show-ramfs show RAM FS in the DiskIO plugin .. option:: --diskio-iops show I/O per second in the DiskIO plugin .. option:: --fahrenheit display temperature in Fahrenheit (default is Celsius) .. option:: --fs-free-space display FS free space instead of used .. option:: --theme-white optimize display colors for white background .. option:: --disable-check-update disable online Glances version ckeck Interactive Commands -------------------- The following commands (key pressed) are supported while in Glances: ``ENTER`` Set the process filter .. note:: On macOS please use ``CTRL-H`` to delete filter. Filter is a regular expression pattern: - ``gnome``: matches all processes starting with the ``gnome`` string - ``.*gnome.*``: matches all processes containing the ``gnome`` string ``a`` Sort process list automatically - If CPU ``>70%``, sort processes by CPU usage - If MEM ``>70%``, sort processes by MEM usage - If CPU iowait ``>60%``, sort processes by I/O read and write ``A`` Enable/disable Application Monitoring Process ``b`` Switch between bit/s or Byte/s for network I/O ``B`` View disk I/O counters per second ``c`` Sort processes by CPU usage ``C`` Enable/disable cloud stats ``d`` Show/hide disk I/O stats ``D`` Enable/disable Docker stats ``e`` Enable/disable top extended stats ``E`` Erase current process filter ``f`` Show/hide file system and folder monitoring stats ``F`` Switch between file system used and free space ``g`` Generate graphs for current history ``G`` Enable/disable GPU stats ``h`` Show/hide the help screen ``i`` Sort processes by I/O rate ``I`` Show/hide IP module ``+`` Increase selected process nice level / Lower the priority (need right) - Only in standalone mode. ``-`` Decrease selected process nice level / Higher the priority (need right) - Only in standalone mode. ``k`` Kill selected process (need right) - Only in standalone mode. ``K`` Show/hide TCP connections ``l`` Show/hide log messages ``m`` Sort processes by MEM usage ``M`` Reset processes summary min/max ``n`` Show/hide network stats ``N`` Show/hide current time ``p`` Sort processes by name ``P`` Enable/Disable ports stats ``q|ESC|CTRL-C`` Quit the current Glances session ``Q`` Show/hide IRQ module ``r`` Reset history ``R`` Show/hide RAID plugin ``s`` Show/hide sensors stats ``S`` Enable/disable spark lines ``t`` Sort process by CPU times (TIME+) ``T`` View network I/O as combination ``u`` Sort processes by USER ``U`` View cumulative network I/O ``w`` Delete finished warning log messages ``W`` Show/hide Wifi module ``x`` Delete finished warning and critical log messages ``z`` Show/hide processes stats ``0`` Enable/disable Irix/Solaris mode Task's CPU usage will be divided by the total number of CPUs ``1`` Switch between global CPU and per-CPU stats ``2`` Enable/disable left sidebar ``3`` Enable/disable the quick look module ``4`` Enable/disable all but quick look and load module ``5`` Enable/disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) ``6`` Enable/disable mean GPU mode ``9`` Switch UI theme between black and white ``/`` Switch between process command line or command name ``F5`` Refresh stats in curses user interface ``LEFT`` Navigation leff through process sort ``RIGHT`` Navigation right through process sort ``UP`` Up in the processes list ``DOWN`` Down in the processes list In the Glances client browser (accessible through the ``--browser`` command line argument): ``ENTER`` Run the selected server ``UP`` Up in the servers list ``DOWN`` Down in the servers list ``q|ESC`` Quit Glances glances-3.4.0.3/docs/_templates/0000755000175000017500000000000014432156570016273 5ustar epsilonepsilonglances-3.4.0.3/docs/_templates/links.html0000644000175000017500000000054514432156570020305 0ustar epsilonepsilon

Useful Links

glances-3.4.0.3/docs/aoa/0000755000175000017500000000000014432156570014676 5ustar epsilonepsilonglances-3.4.0.3/docs/aoa/raid.rst0000644000175000017500000000053014432156570016345 0ustar epsilonepsilon.. _raid: RAID ==== *Availability: Linux* *Dependency: this plugin uses the optional pymdstat Python lib* This plugin is disable by default, please use the --enable-plugin raid option to enable it. In the terminal interface, click on ``R`` to enable/disable it. .. image:: ../_static/raid.png This plugin is only available on GNU/Linux. glances-3.4.0.3/docs/aoa/gpu.rst0000644000175000017500000000233114432156570016222 0ustar epsilonepsilon.. _gpu: GPU === .. note:: You need to install the `py3nvml`_ library on your system. Or `nvidia-ml-py3`_ for Glances 3.1.3 or lower. The GPU stats are shown as a percentage of value and for the configured refresh time. It displays: - total GPU usage - memory consumption - temperature (Glances 3.1.4 or higher) .. image:: ../_static/gpu.png If you click on the ``6`` short key, the per-GPU view is displayed: .. image:: ../_static/pergpu.png .. note:: You can also start Glances with the ``--meangpu`` option to display the first view by default. You can change the threshold limits in the configuration file: .. code-block:: ini [gpu] # Default processor values if not defined: 50/70/90 proc_careful=50 proc_warning=70 proc_critical=90 # Default memory values if not defined: 50/70/90 mem_careful=50 mem_warning=70 mem_critical=90 Legend: ============== ============ GPU (PROC/MEM) Status ============== ============ ``<50%`` ``OK`` ``>50%`` ``CAREFUL`` ``>70%`` ``WARNING`` ``>90%`` ``CRITICAL`` ============== ============ .. _py3nvml: https://pypi.org/project/py3nvml/ .. _nvidia-ml-py3: https://pypi.org/project/nvidia-ml-py3/ glances-3.4.0.3/docs/aoa/diskio.rst0000644000175000017500000000171714432156570016720 0ustar epsilonepsilon.. _disk: Disk I/O ======== .. image:: ../_static/diskio.png Glances displays the disk I/O throughput. The unit is adapted dynamically. You can display: - bytes per second (default behavior / Bytes/s, KBytes/s, MBytes/s, etc) - requests per second (using --diskio-iops option or *B* hotkey) There is no alert on this information. It's possible to define: - a list of disk to show (white list) - a list of disks to hide - aliases for disk name under the ``[diskio]`` section in the configuration file. For example, if you want to hide the loopback disks (loop0, loop1, ...) and the specific ``sda5`` partition: .. code-block:: ini [diskio] hide=sda5,loop.* or another example: .. code-block:: ini [diskio] show=sda.* Filtering is based on regular expression. Please be sure that your regular expression works as expected. You can use an online tool like `regex101`_ in order to test your regular expression. .. _regex101: https://regex101.com/glances-3.4.0.3/docs/aoa/folders.rst0000644000175000017500000000210514432156570017064 0ustar epsilonepsilon.. _folders: Folders ======= The folders plugin allows user, through the configuration file, to monitor size of a predefined folders list. .. image:: ../_static/folders.png If the size cannot be computed, a ``'?'`` (non-existing folder) or a ``'!'`` (permission denied) is displayed. Each item is defined by: - ``path``: absolute path to monitor (mandatory) - ``careful``: optional careful threshold (in MB) - ``warning``: optional warning threshold (in MB) - ``critical``: optional critical threshold (in MB) - ``refresh``: interval in second between two refresh (default is 30 seconds) Up to ``10`` items can be defined. For example, if you want to monitor the ``/tmp`` folder every minute, the following definition should do the job: .. code-block:: ini [folders] folder_1_path=/tmp folder_1_careful=2500 folder_1_warning=3000 folder_1_critical=3500 folder_1_refresh=60 In client/server mode, the list is defined on the ``server`` side. .. warning:: Do **NOT** define folders containing lot of files and subfolders or use an huge refresh time... glances-3.4.0.3/docs/aoa/cloud.rst0000644000175000017500000000062714432156570016543 0ustar epsilonepsilon.. _cloud: CLOUD ===== This plugin diplays information about the cloud provider if your host is running on OpenStack. The plugin use the standard OpenStack `metadata`_ service to retrieve the information. This plugin is disable by default, please use the --enable-plugin cloud option to enable it. .. image:: ../_static/cloud.png .. _metadata: https://docs.openstack.org/nova/latest/user/metadata.htmlglances-3.4.0.3/docs/aoa/ports.rst0000644000175000017500000000370714432156570016606 0ustar epsilonepsilon.. _ports: Ports ===== *Availability: All* .. image:: ../_static/ports.png This plugin aims at providing a list of hosts/port and URL to scan. You can define ``ICMP`` or ``TCP`` ports scans and URL (head only) check. The list should be defined in the ``[ports]`` section of the Glances configuration file. .. code-block:: ini [ports] # Ports scanner plugin configuration # Interval in second between two scans refresh=30 # Set the default timeout (in second) for a scan (can be overwrite in the scan list) timeout=3 # If port_default_gateway is True, add the default gateway on top of the scan list port_default_gateway=True # # Define the scan list (1 < x < 255) # port_x_host (name or IP) is mandatory # port_x_port (TCP port number) is optional (if not set, use ICMP) # port_x_description is optional (if not set, define to host:port) # port_x_timeout is optional and overwrite the default timeout value # port_x_rtt_warning is optional and defines the warning threshold in ms # port_1_host=192.168.0.1 port_1_port=80 port_1_description=Home Box port_1_timeout=1 port_2_host=www.free.fr port_2_description=My ISP port_3_host=www.google.com port_3_description=Internet ICMP port_3_rtt_warning=1000 port_4_host=www.google.com port_4_description=Internet Web port_4_port=80 port_4_rtt_warning=1000 # # Define Web (URL) monitoring list (1 < x < 255) # web_x_url is the URL to monitor (example: http://my.site.com/folder) # web_x_description is optional (if not set, define to URL) # web_x_timeout is optional and overwrite the default timeout value # web_x_rtt_warning is optional and defines the warning respond time in ms (approximately) # web_1_url=https://blog.nicolargo.com web_1_description=My Blog web_1_rtt_warning=3000 web_2_url=https://github.com web_3_url=http://www.google.fr web_3_description=Google Fr glances-3.4.0.3/docs/aoa/smart.rst0000644000175000017500000000107414432156570016560 0ustar epsilonepsilon.. _smart: SMART ===== *Availability: all but Mac OS* *Dependency: this plugin uses the optional pySMART Python lib* This plugin is disable by default, please use the --enable-plugin smart option to enable it. .. image:: ../_static/smart.png Glances displays all the SMART attributes. How to read the information: - The first line display the name and model of the device - The first column is the SMART attribute name - The second column is the SMART attribute raw value .. warning:: This plugin needs administrator rights. Please run Glances as root/admin. glances-3.4.0.3/docs/aoa/connections.rst0000644000175000017500000000204314432156570017751 0ustar epsilonepsilon.. _connections: Connections =========== .. image:: ../_static/connections.png This plugin display extended information about network connections. The states are the following: - Listen: all ports created by server and waiting for a client to connect - Initialized: All states when a connection is initialized (sum of SYN_SENT and SYN_RECEIVED) - Established: All established connections between a client and a server - Terminated: All states when a connection is terminated (FIN_WAIT1, CLOSE_WAIT, LAST_ACK, FIN_WAIT2, TIME_WAIT and CLOSE) - Tracked: Current number and maximum Netfilter tracker connection (nf_conntrack_count/nf_conntrack_max) The configuration should be done in the ``[connections]`` section of the Glances configuration file. By default the plugin is **disabled**. Please change your configuration file as following to enable it .. code-block:: ini [connections] disable=False # nf_conntrack thresholds in % nf_conntrack_percent_careful=70 nf_conntrack_percent_warning=80 nf_conntrack_percent_critical=90 glances-3.4.0.3/docs/aoa/ps.rst0000644000175000017500000001550014432156570016053 0ustar epsilonepsilon.. _ps: Processes List ============== Compact view: .. image:: ../_static/processlist.png Full view: .. image:: ../_static/processlist-wide.png Filtered view: .. image:: ../_static/processlist-filter.png Extended view: .. image:: ../_static/processlist-extended.png The process view consists of 3 parts: - Processes summary - Monitored processes list (optional, only in standalone mode) - Extended stats for the selected process (optional) - Processes list The processes summary line displays: - Total number of tasks/processes (aliases as total in the Glances API) - Number of threads - Number of running tasks/processes - Number of sleeping tasks/processes - Other number of tasks/processes (not in running or sleeping states) - Sort key for the process list By default, or if you hit the ``a`` key, the processes list is automatically sorted by: - ``CPU``: if there is no alert (default behavior) - ``CPU``: if a CPU or LOAD alert is detected - ``MEM``: if a memory alert is detected - ``DISK I/O``: if a CPU iowait alert is detected You can also set the sort key in the UI: - by clicking on left and right arrows - by clicking on the following shortcuts or command line option: .. list-table:: Title :widths: 10 30 30 :header-rows: 1 * - Shortcut - Command line option - Description * - a - Automatic sort - Default sort * - c - --sort-processes cpu_percent - Sort by CPU * - e - N/A - Pin the process and display extended stats * - i - --sort-processes io_counters - Sort by DISK I/O * - j - --programs - Accumulate processes by program (extended stats disable in this mode) * - m - --sort-processes memory_percent - Sort by MEM * - p - --sort-processes name - Sort by process name * - t - --sort-processes cpu_times - Sort by CPU times * - u - --sort-processes username - Sort by process username The number of processes in the list is adapted to the screen size. Columns display --------------- .. list-table:: Title :widths: 10 60 :header-rows: 0 * - ``CPU%`` - Command line option - % of CPU used by the process If Irix/Solaris mode is off ('0' key), the value is divided by logical core number ========================= ============================================== ``CPU%`` % of CPU used by the process If Irix/Solaris mode is off ('0' key), the value is divided by logical core number ``MEM%`` % of MEM used by the process (RES divided by the total RAM you have) ``VIRT`` Virtual Memory Size The total amount of virtual memory used by the process. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used. Virtual memory is usually much larger than physical memory, making it possible to run programs for which the total code plus data size is greater than the amount of RAM available. Most of the time, this is not a useful number. ``RES`` Resident Memory Size The non-swapped physical memory a process is using (what's currently in the physical memory). ``PID`` Process ID (column is replaced by NPROCS in accumulated mode) ``USER`` User ID ``THR`` Threads number of the process ``TIME+`` Cumulative CPU time used by the process ``NI`` Nice level of the process ``S`` Process status The status of the process: - ``R``: running or runnable (on run queue) - ``S``: interruptible sleep (waiting for an event) - ``D``: uninterruptible sleep (usually I/O) - ``Z``: defunct ("zombie") process - ``T``: traced by job control signal - ``t``: stopped by debugger during the tracing - ``X``: dead (should never be seen) ``R/s`` Per process I/O read rate in B/s ``W/s`` Per process I/O write rate in B/s ``COMMAND`` Process command line or command name User can switch to the process name by pressing on the ``'/'`` key ========================= ============================================== Process filtering ----------------- It's possible to filter the processes list using the ``ENTER`` key. Filter syntax is the following (examples): - ``python``: Filter processes name or command line starting with *python* (regexp) - ``.*python.*``: Filter processes name or command line containing *python* (regexp) - ``username:nicolargo``: Processes of nicolargo user (key:regexp) - ``cmdline:\/usr\/bin.*``: Processes starting by */usr/bin* Extended info ------------- .. image:: ../_static/processlist-top.png In standalone mode, additional information are provided for the top process: ========================= ============================================== ``CPU affinity`` Number of cores used by the process ``Memory info`` Extended memory information about the process For example, on Linux: swap, shared, text, lib, data and dirty ``Open`` The number of threads, files and network sessions (TCP and UDP) used by the process ``IO nice`` The process I/O niceness (priority) ========================= ============================================== The extended stats feature can be enabled using the ``--enable-process-extended`` option (command line) or the ``e`` key (curses interface). In curses/standalone mode, you can select a process using ``UP`` and ``DOWN`` and press: - ``k`` to kill the selected process .. note:: Limit for CPU and MEM percent values can be overwritten in the configuration file under the ``[processlist]`` section. It is also possible to define limit for Nice values (comma separated list). For example: nice_warning=-20,-19,-18 Accumulated per program — key 'j' --------------------------------- When activated ('j' hotkey or --programs option in the command line), processes are merged to display which programs are active. The columns show the accumulated cpu consumption, the accumulated virtual and resident memory consumption, the accumulated transferred data I/O. The PID columns is replaced by a NPROCS column which is the number of processes.glances-3.4.0.3/docs/aoa/load.rst0000644000175000017500000000323014432156570016345 0ustar epsilonepsilon.. _load: Load ==== *Availability: Unix and Windows with a PsUtil version >= 5.6.2* .. image:: ../_static/load.png On the *No Sheep* blog, Zachary Tirrell defines the `load average`_ on GNU/Linux operating system: "In short it is the average sum of the number of processes waiting in the run-queue plus the number currently executing over 1, 5, and 15 minutes time periods." Be aware that Load on Linux, BSD and Windows are different things, high `load on BSD`_ does not means high CPU load. The Windows load is emulated by the PsUtil lib (see `load on Windows`_) Glances gets the number of CPU core (displayed on the first line) to adapt the alerts. Alerts on load average are only set on 15 minutes time period. Thresholds are computed by dividing the 5 and 15 minutes average load per CPU(s) number. For example, if you have 4 CPUs and the 5 minutes load is 1.0, then the warning threshold will be set to 2.8 (0.7 * 4 * 1.0). From Glances 3.1.4, if Irix/Solaris mode is off ('0' key), the value is divided by logical core number and multiple by 100 to have load as a percentage. .. image:: ../_static/loadpercent.png Legend: ============= ============ Load avg Status ============= ============ ``<0.7*core`` ``OK`` ``>0.7*core`` ``CAREFUL`` ``>1*core`` ``WARNING`` ``>5*core`` ``CRITICAL`` ============= ============ .. note:: Limit values can be overwritten in the configuration file under the ``[load]`` section. .. _load average: http://nosheep.net/story/defining-unix-load-average/ .. _load on BSD: http://undeadly.org/cgi?action=article&sid=20090715034920 .. _load on Windows: https://psutil.readthedocs.io/en/latest/#psutil.getloadavg glances-3.4.0.3/docs/aoa/memory.rst0000644000175000017500000000476214432156570016751 0ustar epsilonepsilon.. _memory: Memory ====== Glances uses two columns: one for the ``RAM`` and one for the ``SWAP``. .. image:: ../_static/mem.png If enough space is available, Glances displays extended information for the ``RAM``: .. image:: ../_static/mem-wide.png Stats description: - **percent**: the percentage usage calculated as (total-available)/total*100. - **total**: total physical memory available. - **used**: memory used, calculated differently depending on the platform and designed for informational purposes only. It's compute as following: used memory = total - free (with free = available + buffers + cached) - **free**: memory not being used at all (zeroed) that is readily available; note that this doesn’t reflect the actual memory available (use ‘available’ instead). - **active**: (UNIX): memory currently in use or very recently used, and so it is in RAM. - **inactive**: (UNIX): memory that is marked as not used. - **buffers**: (Linux, BSD): cache for things like file system metadata. - **cached**: (Linux, BSD): cache for various things. Additional stats available in through the API: - **available**: the actual amount of available memory that can be given instantly to processes that request more memory in bytes; this is calculated by summing different memory values depending on the platform (e.g. free + buffers + cached on Linux) and it is supposed to be used to monitor actual memory usage in a cross platform fashion. - **wired**: (BSD, macOS): memory that is marked to always stay in RAM. It is never moved to disk. - **shared**: (BSD): memory that may be simultaneously accessed by multiple processes. A character is also displayed just after the MEM header and shows the trend value: ======== ============================================================== Trend Status ======== ============================================================== ``-`` MEM value is equal to the mean of the six latests refreshes ``\`` MEM value is lower than the mean of the six latests refreshes ``/`` MEM value is higher than the mean of the six latests refreshes ======== ============================================================== Alerts are only set for used memory and used swap. Legend: ======== ============ RAM/Swap Status ======== ============ ``<50%`` ``OK`` ``>50%`` ``CAREFUL`` ``>70%`` ``WARNING`` ``>90%`` ``CRITICAL`` ======== ============ .. note:: Limit values can be overwritten in the configuration file under the ``[memory]`` and/or ``[memswap]`` sections. glances-3.4.0.3/docs/aoa/quicklook.rst0000644000175000017500000000215614432156570017435 0ustar epsilonepsilon.. _quicklook: Quick Look ========== The ``quicklook`` plugin is only displayed on wide screen and proposes a bar view for CPU and memory (virtual and swap). In the terminal interface, click on ``3`` to enable/disable it. .. image:: ../_static/quicklook.png If the per CPU mode is on (by clicking the ``1`` key): .. image:: ../_static/quicklook-percpu.png In the Curses/terminal interface, it is also possible to switch from bar to sparkline using 'S' hot key or --sparkline command line option (need the sparklines Python lib on your system). Please be aware that sparklines use the Glances history and will not be available if the history is disabled from the command line. For the moment sparkline is not available in client/server mode (see issue ). .. image:: ../_static/sparkline.png .. note:: Limit values can be overwritten in the configuration file under the ``[quicklook]`` section. You can also configure the percentage char used in the terminal user interface. .. code-block:: ini [quicklook] # Graphical percentage char used in the terminal user interface (default is |) percentage_char=@ glances-3.4.0.3/docs/aoa/events.rst0000644000175000017500000000101114432156570016725 0ustar epsilonepsilon.. _events: events ====== .. image:: ../_static/events.png Events list is displayed in the bottom of the screen if and only if: - at least one ``WARNING`` or ``CRITICAL`` alert was occurred - space is available in the bottom of the console/terminal Each event message displays the following information: 1. start datetime 2. duration if alert is terminated or `ongoing` if the alert is still in progress 3. alert name 4. {min,avg,max} values or number of running processes for monitored processes list alerts glances-3.4.0.3/docs/aoa/wifi.rst0000644000175000017500000000177214432156570016375 0ustar epsilonepsilon.. _wifi: Wi-Fi ===== *Availability: Linux* .. image:: ../_static/wifi.png Glances displays the Wi-Fi hotspot names and signal quality. If Glances is ran as root, then all the available hotspots are displayed. .. note:: You need to install the ``wireless-tools`` package on your system. In the configuration file, you can define signal quality thresholds: - ``"Poor"`` quality is between -100 and -85dBm - ``"Good"`` quality between -85 and -60dBm - ``"Excellent"`` between -60 and -40dBm It's also possible to disable the scan on a specific interface from the configuration file (``[wifi]`` section). For example, if you want to hide the loopback interface (lo) and all the virtual docker interfaces: .. code-block:: ini [wifi] hide=lo,docker.* #show=wlp2s0 # Define SIGNAL thresholds in dBm (lower is better...) careful=-65 warning=-75 critical=-85 You can disable this plugin using the ``--disable-plugin wifi`` option or by hitting the ``W`` key from the user interface. glances-3.4.0.3/docs/aoa/hddtemp.rst0000644000175000017500000000163514432156570017062 0ustar epsilonepsilon.. _sensors: HDD temperature sensor ====================== *Availability: Linux* This plugin will add HDD temperature to the sensors plugin. On your Linux system, you will need to have: - hddtemp package installed - hddtemp service up and running (check it with systemctl status hddtemp) - the TCP port 7634 opened on your local firewall (if it is enabled on your system) For example on a CentOS/Redhat Linux operating system, you have to: $ sudo yum install hddtemp $ sudo systemctl enable hddtemp $ sudo systemctl enable hddtemp Test it in the console: $ hddtemp /dev/sda: TOSHIBA MQ01ACF050: 41°C /dev/sdb: ST1000LM044 HN-M101SAD: 38°C It should appears in the sensors plugin. .. image:: ../_static/hddtemp.png There is no alert on this information. .. note:: Limit values and sensors alias names can be defined in the configuration file under the ``[sensors]`` section. glances-3.4.0.3/docs/aoa/index.rst0000644000175000017500000000116514432156570016542 0ustar epsilonepsilon.. _aoa: Anatomy Of The Application ========================== This document is meant to give an overview of the Glances interface. Legend: =========== ============ ``GREEN`` ``OK`` ``BLUE`` ``CAREFUL`` ``MAGENTA`` ``WARNING`` ``RED`` ``CRITICAL`` =========== ============ .. note:: Only stats with colored background will be shown in the alert view. .. toctree:: :maxdepth: 2 header quicklook cpu gpu memory load network connections wifi ports diskio fs irq folders cloud raid smart sensors hddtemp ps containers amps events actions glances-3.4.0.3/docs/aoa/amps.rst0000644000175000017500000000715214432156570016375 0ustar epsilonepsilon.. _amps: Applications Monitoring Process =============================== Thanks to Glances and its AMP module, you can add specific monitoring to running processes. AMPs are defined in the Glances :ref:`configuration file`. You can disable AMP using the ``--disable-plugin amps`` option or pressing the ``A`` key. Simple AMP ---------- For example, a simple AMP that monitor the CPU/MEM of all Python processes can be defined as follows: .. code-block:: ini [amp_python] enable=true regex=.*python.* refresh=3 Every 3 seconds (``refresh``) and if the ``enable`` key is true, Glances will filter the running processes list thanks to the ``.*python.*`` regular expression (``regex``). The default behavior for an AMP is to display the number of matching processes, CPU and MEM: .. image:: ../_static/amp-python.png You can also define the minimum (``countmin``) and/or maximum (``countmax``) process number. For example: .. code-block:: ini [amp_python] enable=true regex=.*python.* refresh=3 countmin=1 countmax=2 With this configuration, if the number of running Python scripts is higher than 2, then the AMP is displayed with a purple color (red if less than countmin): .. image:: ../_static/amp-python-warning.png If the regex option is not defined, the AMP will be executed every refresh time and the process count will not be displayed (countmin and countmax will be ignored). For example: .. code-block:: ini [amp_conntrack] enable=false refresh=30 one_line=false command=sysctl net.netfilter.nf_conntrack_count;sysctl net.netfilter.nf_conntrack_max For security reason, pipe is not directly allowed in a AMP command but you create a sheel script with your command: .. code-block:: ini $ cat /usr/local/bin/mycommand.sh #!/bin/sh ps -aux | wc -l and use it in the amps: .. code-block:: ini [amp_amptest] enable=true regex=.* refresh=15 one_line=false command=/usr/local/bin/mycommand.sh User defined AMP ---------------- If you need to execute a specific command line, you can use the ``command`` option. For example, if you want to display the Dropbox process status, you can define the following section in the Glances configuration file: .. code-block:: ini [amp_dropbox] # Use the default AMP (no dedicated AMP Python script) enable=true regex=.*dropbox.* refresh=3 one_line=false command=dropbox status countmin=1 The ``dropbox status`` command line will be executed and displayed in the Glances UI: .. image:: ../_static/amp-dropbox.png You can force Glances to display the result in one line setting ``one_line`` to true. Embedded AMP ------------ Glances provides some specific AMP scripts (replacing the ``command`` line). You can write your own AMP script to fill your needs. AMP scripts are located in the ``amps`` folder and should be named ``glances_*.py``. An AMP script define an Amp class (``GlancesAmp``) with a mandatory update method. The update method call the ``set_result`` method to set the AMP return string. The return string is a string with one or more line (\n between lines). To enable it, the configuration file section should be named ``[amp_*]``. For example, if you want to enable the Nginx AMP, the following definition should do the job (Nginx AMP is provided by the Glances team as an example): .. code-block:: ini [amp_nginx] enable=true regex=\/usr\/sbin\/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status Here's the result: .. image:: ../_static/amps.png In client/server mode, the AMP list is defined on the server side. glances-3.4.0.3/docs/aoa/sensors.rst0000644000175000017500000000250514432156570017126 0ustar epsilonepsilon.. _sensors: Sensors ======= *Availability: Linux* .. image:: ../_static/sensors.png Glances can display the sensors information using ``psutil``, ``hddtemp`` and ``batinfo``: - motherboard and CPU temperatures - hard disk temperature - battery capacity There is no alert on this information. .. note 1:: Limit values and sensors alias names can be defined in the configuration file under the ``[sensors]`` section. .. note 2:: The support for multiple batteries is only available if you have the batinfo Python lib installed on your system because for the moment PSUtil only support one battery. .. note 3:: If a sensors has temperature and fan speed with the same name unit, it is possible to alias it using: unitname_temperature_core_alias=Alias for temp unitname_fan_speed_alias=Alias for fan speed .. note 4:: If a sensors has multiple identical features names (see #2280), then Glances will add a suffix to the feature name. For example, if you have one sensor with two Composite features, the second one will be named Composite_1. .. note 5:: The plugin could crash on some operating system (FreeBSD) with the TCP or UDP blackhole option > 0 (see issue #2106). In this case, you should disable the sensors (--disable-plugin sensors or from the configuration file).glances-3.4.0.3/docs/aoa/network.rst0000644000175000017500000000365314432156570017130 0ustar epsilonepsilon.. _network: Network ======= .. image:: ../_static/network.png Glances displays the network interface bit rate. The unit is adapted dynamically (bit/s, kbit/s, Mbit/s, etc). If the interface speed is detected (not on all systems), the defaults thresholds are applied (70% for careful, 80% warning and 90% critical). It is possible to define this percents thresholds from the configuration file. It is also possible to define per interface bit rate thresholds. In this case thresholds values are define in bps. Additionally, you can define: - a list of network interfaces to hide - per-interface limit values - aliases for interface name The configuration should be done in the ``[network]`` section of the Glances configuration file. For example, if you want to hide the loopback interface (lo) and all the virtual docker interface (docker0, docker1, ...): .. code-block:: ini [network] # Default bitrate thresholds in % of the network interface speed # Default values if not defined: 70/80/90 rx_careful=70 rx_warning=80 rx_critical=90 tx_careful=70 tx_warning=80 tx_critical=90 # Define the list of hidden network interfaces (comma-separated regexp) hide=docker.*,lo # Define the list of network interfaces to show (comma-separated regexp) #show=eth0,eth1 # WLAN 0 alias wlan0_alias=Wireless IF # It is possible to overwrite the bitrate thresholds per interface # WLAN 0 Default limits (in bits per second aka bps) for interface bitrate wlan0_rx_careful=4000000 wlan0_rx_warning=5000000 wlan0_rx_critical=6000000 wlan0_rx_log=True wlan0_tx_careful=700000 wlan0_tx_warning=900000 wlan0_tx_critical=1000000 wlan0_tx_log=True Filtering is based on regular expression. Please be sure that your regular expression works as expected. You can use an online tool like `regex101`_ in order to test your regular expression. .. _regex101: https://regex101.com/glances-3.4.0.3/docs/aoa/actions.rst0000644000175000017500000000463114432156570017074 0ustar epsilonepsilon.. _actions: Actions ======= Glances can trigger actions on events. By ``action``, we mean all shell command line. For example, if you want to execute the ``foo.py`` script if the last 5 minutes load are critical then add the ``_action`` line to the Glances configuration file: .. code-block:: ini [load] critical=5.0 critical_action=python /path/to/foo.py All the stats are available in the command line through the use of the `Mustache`_ syntax. `Chevron`_ is required to render the mustache's template syntax. Another example would be to create a log file containing used vs total disk space if a space trigger warning is reached: .. code-block:: ini [fs] warning=70 warning_action=echo {{mnt_point}} {{used}}/{{size}} > /tmp/fs.alert A last example would be to create a log file containing the total user disk space usage for a device and notify by email each time a space trigger critical is reached: .. code-block:: ini [fs] critical=90 critical_action_repeat=echo {{device_name}} {{percent}} > /tmp/fs.alert && python /etc/glances/actions.d/fs-critical.py .. note:: Use && as separator for multiple commands Within ``/etc/glances/actions.d/fs-critical.py``: .. code-block:: python import subprocess from requests import get fs_alert = open('/tmp/fs.alert', 'r').readline().strip().split(' ') device = fs_alert[0] percent = fs_alert[1] system = subprocess.check_output(['uname', '-rn']).decode('utf-8').strip() ip = get('https://api.ipify.org').text body = 'Used user disk space for ' + device + ' is at ' + percent + '%.\nPlease cleanup the filesystem to clear the alert.\nServer: ' + str(system)+ '.\nIP address: ' + ip ps = subprocess.Popen(('echo', '-e', body), stdout=subprocess.PIPE) subprocess.call(['mail', '-s', 'CRITICAL: disk usage above 90%', '-r', 'postmaster@example.com', 'glances@example.com'], stdin=ps.stdout) .. note:: You can use all the stats for the current plugin. See https://github.com/nicolargo/glances/wiki/The-Glances-RESTFULL-JSON-API for the stats list. It is also possible to repeat action until the end of the alert. Keep in mind that the command line is executed every refresh time so use with caution: .. code-block:: ini [load] critical=5.0 critical_action_repeat=/home/myhome/bin/bipper.sh .. _Mustache: https://mustache.github.io/ .. _Chevron: https://github.com/noahmorrison/chevron glances-3.4.0.3/docs/aoa/cpu.rst0000644000175000017500000000637314432156570016230 0ustar epsilonepsilon.. _cpu: CPU === The CPU stats are shown as a percentage or values and for the configured refresh time. The total CPU usage is displayed on the first line. .. image:: ../_static/cpu.png If enough horizontal space is available, extended CPU information are displayed. .. image:: ../_static/cpu-wide.png A character is also displayed just after the CPU header and shows the trend value: ======== ============================================================== Trend Status ======== ============================================================== ``-`` CPU value is equal to the mean of the six latests refreshes ``\`` CPU value is lower than the mean of the six latests refreshes ``/`` CPU value is higher than the mean of the six latests refreshes ======== ============================================================== CPU stats description: - **user**: percent time spent in user space. User CPU time is the time spent on the processor running your program's code (or code in libraries). - **system**: percent time spent in kernel space. System CPU time is the time spent running code in the Operating System kernel. - **idle**: percent of CPU used by any program. Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle. - **nice** *(\*nix)*: percent time occupied by user level processes with a positive nice value. The time the CPU has spent running users' processes that have been *niced*. - **irq** *(Linux, \*BSD)*: percent time spent servicing/handling hardware/software interrupts. Time servicing interrupts (hardware + software). - **iowait** *(Linux)*: percent time spent by the CPU waiting for I/O operations to complete. - **steal** *(Linux)*: percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor. - **ctx_sw**: number of context switches (voluntary + involuntary) per second. A context switch is a procedure that a computer's CPU (central processing unit) follows to change from one task (or process) to another while ensuring that the tasks do not conflict. - **inter**: number of interrupts per second. - **sw_inter**: number of software interrupts per second. Always set to 0 on Windows and SunOS. - **syscal**: number of system calls per second. Do not displayed on Linux (always 0). - **dpc**: *(Windows)*: time spent servicing deferred procedure calls. To switch to per-CPU stats, just hit the ``1`` key: .. image:: ../_static/per-cpu.png In this case, Glances will show on line per logical CPU on the system. Logical cores means the number of physical cores multiplied by the number of threads that can run on each core (this is known as Hyper Threading). By default, ``steal`` CPU time alerts aren't logged. If you want that, just add to the configuration file: .. code-block:: ini [cpu] steal_log=True Legend: ================= ============ CPU (user/system) Status ================= ============ ``<50%`` ``OK`` ``>50%`` ``CAREFUL`` ``>70%`` ``WARNING`` ``>90%`` ``CRITICAL`` ================= ============ .. note:: Limit values can be overwritten in the configuration file under the ``[cpu]`` and/or ``[percpu]`` sections. glances-3.4.0.3/docs/aoa/fs.rst0000644000175000017500000000306014432156570016037 0ustar epsilonepsilon.. _fs: File System =========== .. image:: ../_static/fs.png Glances displays the used and total file system disk space. The unit is adapted dynamically. Alerts are set for `user disk space usage `_. Legend: ===================== ============ User disk space usage Status ===================== ============ ``<50%`` ``OK`` ``>50%`` ``CAREFUL`` ``>70%`` ``WARNING`` ``>90%`` ``CRITICAL`` ===================== ============ .. note:: Limit values can be overwritten in the configuration file under the ``[fs]`` section. By default, the plugin only displays physical devices (hard disks, USB keys). To allow other file system types, you have to enable them in the configuration file. For example, if you want to allow the ``shm`` file system: .. code-block:: ini [fs] allow=shm Also, you can hide mount points using regular expressions. To hide all mount points starting with /boot and /snap: .. code-block:: ini [fs] hide=/boot.*,/snap.* Filtering are also applied on device name (Glances 3.1.4 or higher). It is also possible to configure a white list of devices to display. Example to only show /dev/sdb mount points: .. code-block:: ini [fs] show=/dev/sdb.* Filtering is based on regular expression. Please be sure that your regular expression works as expected. You can use an online tool like `regex101`_ in order to test your regular expression. .. _regex101: https://regex101.com/glances-3.4.0.3/docs/aoa/containers.rst0000644000175000017500000000404114432156570017574 0ustar epsilonepsilon.. _containers: Containers ========== If you use ``containers``, Glances can help you to monitor your Docker or Podman containers. Glances uses the containers API through the `docker-py`_ and `podman-py`_ libraries. You can install this dependency using: .. code-block:: console pip install glances[containers] .. image:: ../_static/containers.png It is possible to define limits and actions from the configuration file under the ``[containers]`` section: .. code-block:: ini [containers] disable=False # Only show specific containers (comma separated list of container name or regular expression) show=thiscontainer,andthisone,andthoseones.* # Hide some containers (comma separated list of container name or regular expression) hide=donotshowthisone,andthose.* # Show only specific containers (comma separated list of container name or regular expression) #show=showthisone,andthose.* # Define the maximum containers size name (default is 20 chars) max_name_size=20 # Global containers' thresholds for CPU and MEM (in %) cpu_careful=50 cpu_warning=70 cpu_critical=90 mem_careful=20 mem_warning=50 mem_critical=70 # Per container thresholds containername_cpu_careful=10 containername_cpu_warning=20 containername_cpu_critical=30 containername_cpu_critical_action=echo {{Image}} {{Id}} {{cpu}} > /tmp/container_{{name}}.alert # By default, Glances only display running containers # Set the following key to True to display all containers all=False # Define Podman sock #podman_sock=unix:///run/user/1000/podman/podman.sock You can use all the variables ({{foo}}) available in the containers plugin. Filtering (for hide or show) is based on regular expression. Please be sure that your regular expression works as expected. You can use an online tool like `regex101`_ in order to test your regular expression. .. _regex101: https://regex101.com/ .. _docker-py: https://github.com/containers/containers-py .. _podman-py: https://github.com/containers/podman-pyglances-3.4.0.3/docs/aoa/header.rst0000644000175000017500000000345414432156570016666 0ustar epsilonepsilon.. _header: Header ====== .. image:: ../_static/header.png The header shows the hostname, OS name, release version, platform architecture IP addresses (private and public) and system uptime. Additionally, on GNU/Linux, it also shows the kernel version. In client mode, the server connection status is also displayed. It is possible to disable or define time interval to be used for refreshing the public IP address (default is 300 seconds) from the configuration file under the ``[ip]`` section: .. code-block:: ini [ip] public_refresh_interval=300 public_ip_disabled=True **NOTE:** Setting low values for `public_refresh_interval` will result in frequent HTTP requests to the IP detection servers. Recommended range: 120-600 seconds. Glances uses online services in order to get the IP addresses. Your IP address could be blocked if too many requests are done. If the Censys options are configured, the public IP address is also analysed (with the same interval) and additional information is displayed. .. code-block:: ini [ip] public_refresh_interval=300 public_ip_disabled=True censys_url=https://search.censys.io/api # Get your own credential here: https://search.censys.io/account/api censys_username=CENSYS_API_ID censys_password=CENSYS_API_SECRET # List of fields to be displayed in user interface (comma separated) censys_fields=location:continent,location:country,autonomous_system:name **Note:** Access to the Censys Search API need an account (https://censys.io/login). Example: .. image:: ../_static/ip.png **Connected**: .. image:: ../_static/connected.png **Disconnected**: .. image:: ../_static/disconnected.png If you are hosted on an ``OpenStack`` instance, some additional information can be displayed (AMI-ID, region). .. image:: ../_static/aws.png glances-3.4.0.3/docs/aoa/irq.rst0000644000175000017500000000105414432156570016223 0ustar epsilonepsilon.. _irq: IRQ === *Availability: Linux* This plugin is disable by default, please use the --enable irq option to enable it. .. image:: ../_static/irq.png Glances displays the top ``5`` interrupts rate. This plugin is only available on GNU/Linux (stats are grabbed from the ``/proc/interrupts`` file). .. note:: ``/proc/interrupts`` file doesn't exist inside OpenVZ containers. How to read the information: - The first column is the IRQ number / name - The second column says how many times the CPU has been interrupted during the last second glances-3.4.0.3/docs/faq.rst0000644000175000017500000000021114432156570015431 0ustar epsilonepsilon.. _faq: F.A.Q ===== *Any encoding issue ?* Try to run Glances with the following command line: LANG=en_US.UTF-8 LC_ALL= glances glances-3.4.0.3/docs/api.rst0000644000175000017500000013117514432156570015451 0ustar epsilonepsilon.. _api: API (Restfull/JSON) documentation ================================= The Glances Restfull/API server could be ran using the following command line: .. code-block:: bash # glances -w --disable-webui Note: Change request URL api/3 by api/2 if you use Glances 2.x. GET API status -------------- This entry point should be used to check the API status. It will return nothing but a 200 return code if everythin is OK. Get the Rest API status:: # curl -I http://localhost:61208/api/3/status "HTTP/1.0 200 OK" GET plugins list ---------------- Get the plugins list:: # curl http://localhost:61208/api/3/pluginslist ["alert", "amps", "cloud", "connections", "containers", "core", "cpu", "diskio", "folders", "fs", "gpu", "help", "ip", "irq", "load", "mem", "memswap", "network", "now", "percpu", "ports", "processcount", "processlist", "psutilversion", "quicklook", "raid", "sensors", "smart", "system", "uptime", "wifi"] GET alert --------- Get plugin stats:: # curl http://localhost:61208/api/3/alert [[1684593857.0, -1, "WARNING", "MEM", 74.95383222581204, 74.95383222581204, 74.95383222581204, 74.95383222581204, 1, [], "", "memory_percent"]] GET amps -------- Get plugin stats:: # curl http://localhost:61208/api/3/amps [{"count": 0, "countmax": None, "countmin": 1.0, "key": "name", "name": "Dropbox", "refresh": 3.0, "regex": True, "result": None, "timer": 1.7997314929962158}, {"count": 0, "countmax": 20.0, "countmin": None, "key": "name", "name": "Python", "refresh": 3.0, "regex": True, "result": None, "timer": 1.7995269298553467}] Get a specific field:: # curl http://localhost:61208/api/3/amps/name {"name": ["Dropbox", "Python", "Conntrack", "Nginx", "Systemd", "SystemV"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/amps/name/Dropbox {"Dropbox": [{"count": 0, "countmax": None, "countmin": 1.0, "key": "name", "name": "Dropbox", "refresh": 3.0, "regex": True, "result": None, "timer": 1.7997314929962158}]} GET connections --------------- Get plugin stats:: # curl http://localhost:61208/api/3/connections {"net_connections_enabled": True, "nf_conntrack_enabled": True} Get a specific field:: # curl http://localhost:61208/api/3/connections/net_connections_enabled {"net_connections_enabled": True} GET containers -------------- Get plugin stats:: # curl http://localhost:61208/api/3/containers {"containers": [{"Command": ["top"], "Created": "2023-05-08T15:29:34.918692365+02:00", "Id": "4b7f732d43e4bc5d92fe5298cba025b550e6a608754c1c38f9a90aaecd46b8f9", "Image": "["docker.io/library/ubuntu:latest"]", "Status": "running", "Uptime": "1 weeks", "cpu": {"total": 2.2993346332214973e-06}, "cpu_percent": 2.2993346332214973e-06, "engine": "podman", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_r": 0.0, "io_w": 0.0, "key": "name", "memory": {"limit": 7836184576.0, "usage": 1142784.0}, "memory_usage": 1142784.0, "name": "frosty_bouman", "network": {"rx": 0.0, "time_since_update": 1, "tx": 0.0}, "network_rx": 0.0, "network_tx": 0.0, "pod_id": "8d0f1c783def", "pod_name": "frosty_bouman"}, {"Command": [], "Created": "2022-10-22T14:23:03.120912374+02:00", "Id": "9491515251edcd5bb5dc17205d7ee573c0be96fe0b08b0a12a7e2cea874565ea", "Image": "["k8s.gcr.io/pause:3.5"]", "Status": "running", "Uptime": "1 weeks", "cpu": {"total": 2.754373096346692e-10}, "cpu_percent": 2.754373096346692e-10, "engine": "podman", "io": {"ior": 0.0, "iow": 0.0, "time_since_update": 1}, "io_r": 0.0, "io_w": 0.0, "key": "name", "memory": {"limit": 7836184576.0, "usage": 208896.0}, "memory_usage": 208896.0, "name": "8d0f1c783def-infra", "network": {"rx": 0.0, "time_since_update": 1, "tx": 0.0}, "network_rx": 0.0, "network_tx": 0.0, "pod_id": "8d0f1c783def", "pod_name": "8d0f1c783def-infra"}, {"Command": ["/portainer"], "Created": "2022-10-29T14:59:10.266701439Z", "Id": "3abd51c615968482d9ccff5afc629f267f6dda113ed68b75b432615fae3b49fb", "Image": ["portainer/portainer-ce:2.9.3"], "Status": "running", "Uptime": "7 hours", "cpu": {"total": 0.0}, "cpu_percent": 0.0, "engine": "docker", "io": {}, "io_r": None, "io_w": None, "key": "name", "memory": {}, "memory_usage": None, "name": "portainer", "network": {}, "network_rx": None, "network_tx": None}], "version": {}, "version_podman": {}} GET core -------- Get plugin stats:: # curl http://localhost:61208/api/3/core {"log": 4, "phys": 2} Fields descriptions: * **phys**: Number of physical cores (hyper thread CPUs are excluded) (unit is *number*) * **log**: Number of logical CPUs. A logical CPU is the number of physical cores multiplied by the number of threads that can run on each core (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/3/core/phys {"phys": 2} GET cpu ------- Get plugin stats:: # curl http://localhost:61208/api/3/cpu {"cpucore": 4, "ctx_switches": 0, "guest": 1.1, "guest_nice": 0.0, "idle": 38.7, "interrupts": 0, "iowait": 3.2, "irq": 0.0, "nice": 0.0, "soft_interrupts": 0, "softirq": 0.4, "steal": 0.0, "syscalls": 0, "system": 7.7, "time_since_update": 1, "total": 62.2, "user": 50.0} Fields descriptions: * **total**: Sum of all CPU percentages (except idle) (unit is *percent*) * **system**: percent time spent in kernel space. System CPU time is the time spent running code in the Operating System kernel (unit is *percent*) * **user**: CPU percent time spent in user space. User CPU time is the time spent on the processor running your program's code (or code in libraries) (unit is *percent*) * **iowait**: *(Linux)*: percent time spent by the CPU waiting for I/O operations to complete (unit is *percent*) * **dpc**: *(Windows)*: time spent servicing deferred procedure calls (DPCs) (unit is *percent*) * **idle**: percent of CPU used by any program. Every program or task that runs on a computer system occupies a certain amount of processing time on the CPU. If the CPU has completed all tasks it is idle (unit is *percent*) * **irq**: *(Linux and BSD)*: percent time spent servicing/handling hardware/software interrupts. Time servicing interrupts (hardware + software) (unit is *percent*) * **nice**: *(Unix)*: percent time occupied by user level processes with a positive nice value. The time the CPU has spent running users' processes that have been *niced* (unit is *percent*) * **steal**: *(Linux)*: percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor (unit is *percent*) * **ctx_switches**: number of context switches (voluntary + involuntary) per second. A context switch is a procedure that a computer's CPU (central processing unit) follows to change from one task (or process) to another while ensuring that the tasks do not conflict (unit is *number*) * **interrupts**: number of interrupts per second (unit is *number*) * **soft_interrupts**: number of software interrupts per second. Always set to 0 on Windows and SunOS (unit is *number*) * **syscalls**: number of system calls per second. Always 0 on Linux OS (unit is *number*) * **cpucore**: Total number of CPU core (unit is *number*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/3/cpu/total {"total": 62.2} GET diskio ---------- Get plugin stats:: # curl http://localhost:61208/api/3/diskio [{"disk_name": "sda", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}, {"disk_name": "sda1", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}] Get a specific field:: # curl http://localhost:61208/api/3/diskio/disk_name {"disk_name": ["sda", "sda1", "sda2", "sda5", "dm-0", "dm-1"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/diskio/disk_name/sda {"sda": [{"disk_name": "sda", "key": "disk_name", "read_bytes": 0, "read_count": 0, "time_since_update": 1, "write_bytes": 0, "write_count": 0}]} GET fs ------ Get plugin stats:: # curl http://localhost:61208/api/3/fs [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 4763168768, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 97.9, "size": 243334156288, "used": 226183532544}, {"device_name": "zsfpool", "free": 41811968, "fs_type": "zfs", "key": "mnt_point", "mnt_point": "/zsfpool", "percent": 0.3, "size": 41943040, "used": 131072}] Get a specific field:: # curl http://localhost:61208/api/3/fs/mnt_point {"mnt_point": ["/", "/zsfpool", "/var/snap/firefox/common/host-hunspell"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/fs/mnt_point// {"/": [{"device_name": "/dev/mapper/ubuntu--gnome--vg-root", "free": 4763168768, "fs_type": "ext4", "key": "mnt_point", "mnt_point": "/", "percent": 97.9, "size": 243334156288, "used": 226183532544}]} GET ip ------ Get plugin stats:: # curl http://localhost:61208/api/3/ip {"address": "192.168.0.32", "gateway": "192.168.0.254", "mask": "255.255.255.0", "mask_cidr": 24, "public_address": "91.166.228.228", "public_info_human": ""} Get a specific field:: # curl http://localhost:61208/api/3/ip/gateway {"gateway": "192.168.0.254"} GET load -------- Get plugin stats:: # curl http://localhost:61208/api/3/load {"cpucore": 4, "min1": 3.00634765625, "min15": 1.19775390625, "min5": 1.4345703125} Fields descriptions: * **min1**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 1 minute (unit is *float*) * **min5**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 5 minutes (unit is *float*) * **min15**: Average sum of the number of processes waiting in the run-queue plus the number currently executing over 15 minutes (unit is *float*) * **cpucore**: Total number of CPU core (unit is *number*) Get a specific field:: # curl http://localhost:61208/api/3/load/min1 {"min1": 3.00634765625} GET mem ------- Get plugin stats:: # curl http://localhost:61208/api/3/mem {"active": 3130548224, "available": 1962663936, "buffers": 142680064, "cached": 2079936512, "free": 1962663936, "inactive": 3094474752, "percent": 75.0, "shared": 498302976, "total": 7836184576, "used": 5873520640} Fields descriptions: * **total**: Total physical memory available (unit is *bytes*) * **available**: The actual amount of available memory that can be given instantly to processes that request more memory in bytes; this is calculated by summing different memory values depending on the platform (e.g. free + buffers + cached on Linux) and it is supposed to be used to monitor actual memory usage in a cross platform fashion (unit is *bytes*) * **percent**: The percentage usage calculated as (total - available) / total * 100 (unit is *percent*) * **used**: Memory used, calculated differently depending on the platform and designed for informational purposes only (unit is *bytes*) * **free**: Memory not being used at all (zeroed) that is readily available; note that this doesn't reflect the actual memory available (use 'available' instead) (unit is *bytes*) * **active**: *(UNIX)*: memory currently in use or very recently used, and so it is in RAM (unit is *bytes*) * **inactive**: *(UNIX)*: memory that is marked as not used (unit is *bytes*) * **buffers**: *(Linux, BSD)*: cache for things like file system metadata (unit is *bytes*) * **cached**: *(Linux, BSD)*: cache for various things (unit is *bytes*) * **wired**: *(BSD, macOS)*: memory that is marked to always stay in RAM. It is never moved to disk (unit is *bytes*) * **shared**: *(BSD)*: memory that may be simultaneously accessed by multiple processes (unit is *bytes*) Get a specific field:: # curl http://localhost:61208/api/3/mem/total {"total": 7836184576} GET memswap ----------- Get plugin stats:: # curl http://localhost:61208/api/3/memswap {"free": 3018182656, "percent": 62.7, "sin": 10520571904, "sout": 16592646144, "time_since_update": 1, "total": 8082419712, "used": 5064237056} Fields descriptions: * **total**: Total swap memory (unit is *bytes*) * **used**: Used swap memory (unit is *bytes*) * **free**: Free swap memory (unit is *bytes*) * **percent**: Used swap memory in percentage (unit is *percent*) * **sin**: The number of bytes the system has swapped in from disk (cumulative) (unit is *bytes*) * **sout**: The number of bytes the system has swapped out from disk (cumulative) (unit is *bytes*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/3/memswap/total {"total": 8082419712} GET network ----------- Get plugin stats:: # curl http://localhost:61208/api/3/network [{"alias": None, "cumulative_cx": 344481682, "cumulative_rx": 172240841, "cumulative_tx": 172240841, "cx": 7770, "interface_name": "lo", "is_up": True, "key": "interface_name", "rx": 3885, "speed": 0, "time_since_update": 1, "tx": 3885}, {"alias": None, "cumulative_cx": 22624441944, "cumulative_rx": 21888194655, "cumulative_tx": 736247289, "cx": 146685, "interface_name": "wlp2s0", "is_up": True, "key": "interface_name", "rx": 135811, "speed": 0, "time_since_update": 1, "tx": 10874}] Fields descriptions: * **interface_name**: Interface name (unit is *string*) * **alias**: Interface alias name (optional) (unit is *string*) * **rx**: The received/input rate (in bit per second) (unit is *bps*) * **tx**: The sent/output rate (in bit per second) (unit is *bps*) * **cx**: The cumulative received+sent rate (in bit per second) (unit is *bps*) * **cumulative_rx**: The number of bytes received through the interface (cumulative) (unit is *bytes*) * **cumulative_tx**: The number of bytes sent through the interface (cumulative) (unit is *bytes*) * **cumulative_cx**: The cumulative number of bytes reveived and sent through the interface (cumulative) (unit is *bytes*) * **speed**: Maximum interface speed (in bit per second). Can return 0 on some operating-system (unit is *bps*) * **is_up**: Is the interface up ? (unit is *bool*) * **time_since_update**: Number of seconds since last update (unit is *seconds*) Get a specific field:: # curl http://localhost:61208/api/3/network/interface_name {"interface_name": ["lo", "wlp2s0", "docker0", "br_grafana", "mpqemubr0", "vboxnet0", "tap-1e376645a40", "veth54fd604"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/network/interface_name/lo {"lo": [{"alias": None, "cumulative_cx": 344481682, "cumulative_rx": 172240841, "cumulative_tx": 172240841, "cx": 7770, "interface_name": "lo", "is_up": True, "key": "interface_name", "rx": 3885, "speed": 0, "time_since_update": 1, "tx": 3885}]} GET now ------- Get plugin stats:: # curl http://localhost:61208/api/3/now "2023-05-20 16:44:16 CEST" GET percpu ---------- Get plugin stats:: # curl http://localhost:61208/api/3/percpu [{"cpu_number": 0, "guest": 1.5, "guest_nice": 0.0, "idle": 26.2, "iowait": 1.5, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 4.4, "total": 73.8, "user": 68.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, "idle": 39.4, "iowait": 1.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 4.8, "total": 60.6, "user": 54.8}] Get a specific field:: # curl http://localhost:61208/api/3/percpu/cpu_number {"cpu_number": [0, 1, 2, 3]} GET ports --------- Get plugin stats:: # curl http://localhost:61208/api/3/ports [{"description": "DefaultGateway", "host": "192.168.0.254", "indice": "port_0", "port": 0, "refresh": 30, "rtt_warning": None, "status": 0.00792, "timeout": 3}] Get a specific field:: # curl http://localhost:61208/api/3/ports/host {"host": ["192.168.0.254"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/ports/host/192.168.0.254 {"192.168.0.254": [{"description": "DefaultGateway", "host": "192.168.0.254", "indice": "port_0", "port": 0, "refresh": 30, "rtt_warning": None, "status": 0.00792, "timeout": 3}]} GET processcount ---------------- Get plugin stats:: # curl http://localhost:61208/api/3/processcount {"pid_max": 0, "running": 1, "sleeping": 347, "thread": 1761, "total": 415} Get a specific field:: # curl http://localhost:61208/api/3/processcount/total {"total": 415} GET processlist --------------- Get plugin stats:: # curl http://localhost:61208/api/3/processlist [{"cmdline": ["/snap/firefox/2605/usr/lib/firefox/firefox"], "cpu_percent": 0.0, "cpu_times": [16463.82, 5059.85, 11961.09, 1725.84, 0.0], "gids": [1000, 1000, 1000], "io_counters": [9699624960, 15455608832, 0, 0, 0], "key": "pid", "memory_info": [524517376, 22345007104, 90595328, 618496, 0, 1481629696, 0], "memory_percent": 6.693530134632704, "name": "firefox", "nice": 0, "num_threads": 171, "pid": 10541, "status": "S", "time_since_update": 1, "username": "nicolargo"}, {"cmdline": ["/snap/multipass/8465/usr/bin/qemu-system-x86_64", "-bios", "OVMF.fd", "--enable-kvm", "-cpu", "host", "-nic", "tap,ifname=tap-1e376645a40,script=no,downscript=no,model=virtio-net-pci,mac=52:54:00:05:05:17", "-device", "virtio-scsi-pci,id=scsi0", "-drive", "file=/var/snap/multipass/common/data/multipassd/vault/instances/primary/ubuntu-22.04-server-cloudimg-amd64.img,if=none,format=qcow2,discard=unmap,id=hda", "-device", "scsi-hd,drive=hda,bus=scsi0.0", "-smp", "1", "-m", "1024M", "-qmp", "stdio", "-chardev", "null,id=char0", "-serial", "chardev:char0", "-nographic", "-cdrom", "/var/snap/multipass/common/data/multipassd/vault/instances/primary/cloud-init-config.iso"], "cpu_percent": 0.0, "cpu_times": [846.85, 90.96, 0.0, 0.0, 0.0], "gids": [0, 0, 0], "io_counters": [0, 0, 0, 0, 0], "key": "pid", "memory_info": [510238720, 3458437120, 2822144, 5304320, 0, 1366933504, 0], "memory_percent": 6.511315743668364, "name": "qemu-system-x86_64", "nice": 0, "num_threads": 4, "pid": 354319, "status": "S", "time_since_update": 1, "username": "root"}] Get a specific field:: # curl http://localhost:61208/api/3/processlist/pid {"pid": [10541, 354319, 10770, 11043, 374779, 374071, 3927, 469948, 374587, 317865, 10778, 10774, 429788, 59195, 469241, 399766, 430971, 372037, 11646, 59069, 374904, 10733, 480322, 480143, 480228, 374842, 435889, 10790, 59161, 480580, 59523, 4243, 421, 480591, 466459, 374575, 374705, 3810, 457618, 466460, 374905, 372303, 4385, 165661, 417207, 463383, 1618, 1771, 372048, 372151, 2398, 372186, 372172, 59182, 4339, 374703, 313257, 2636, 431242, 374702, 4023, 4666, 1, 3730, 4179, 59663, 1584, 427863, 4075, 10710, 17997, 430855, 4308, 4091, 1630, 1605, 4403, 4000, 4009, 4090, 3991, 3719, 11381, 11380, 1794, 372168, 431219, 479905, 372170, 354726, 4169, 372169, 4086, 1727, 4033, 3745, 4105, 3901, 3710, 4442, 3908, 4046, 4127, 36919, 1631, 3743, 14243, 1583, 4302, 3956, 1379, 418247, 74953, 4126, 3748, 3115, 20173, 14266, 1591, 4196, 59126, 2116, 4005, 1764, 4316, 4145, 4097, 4080, 1627, 2168, 2607, 1818, 3989, 1579, 1628, 3925, 4079, 4244, 4157, 3970, 59127, 2554, 4099, 1612, 3819, 1380, 4078, 10848, 2341, 1566, 227509, 1598, 1624, 4119, 4074, 3825, 3947, 4098, 4062, 3939, 4107, 3975, 3753, 3952, 1575, 1606, 313277, 461, 354741, 1593, 480538, 3934, 3728, 12480, 3888, 1616, 59145, 12489, 1377, 1582, 18045, 4332, 1964, 1825, 3727, 59130, 1634, 16182, 1391, 2361, 2605, 1577, 3118, 2604, 1390, 12483, 1567, 431184, 20396, 354739, 431178, 431203, 20180, 480579, 431197, 4072, 2358, 469137, 3503, 12492, 1726, 1725, 3794, 3498, 3499, 3720, 20400, 313283, 2345, 2382, 4593, 2360, 1392, 1637, 3573, 20185, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 92, 93, 94, 96, 97, 98, 99, 100, 101, 103, 106, 107, 109, 110, 112, 117, 118, 119, 129, 132, 138, 181, 183, 206, 219, 223, 226, 228, 231, 232, 233, 234, 249, 250, 255, 256, 313, 361, 362, 439, 440, 530, 544, 655, 700, 702, 703, 898, 899, 900, 901, 908, 909, 910, 911, 912, 913, 914, 915, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 1001, 1002, 1009, 1010, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 2394, 2410, 2422, 2491, 2492, 2493, 2506, 2508, 2510, 2515, 2525, 3988, 12486, 313404, 354325, 354329, 417249, 417250, 417251, 417252, 417254, 417255, 417257, 417258, 417259, 417260, 417261, 417262, 417263, 417264, 417265, 417266, 417267, 427608, 427609, 427611, 454059, 459092, 463267, 463268, 463271, 463272, 463274, 463320, 467345, 467496, 468536, 468902, 469637, 469929, 470092, 471704, 476042, 477638, 478302, 479060, 479698, 479767, 480036, 480278, 480424, 480454]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/processlist/pid/10541 {"10541": [{"cmdline": ["/snap/firefox/2605/usr/lib/firefox/firefox"], "cpu_percent": 0.0, "cpu_times": [16463.82, 5059.85, 11961.09, 1725.84, 0.0], "gids": [1000, 1000, 1000], "io_counters": [9699624960, 15455608832, 0, 0, 0], "key": "pid", "memory_info": [524517376, 22345007104, 90595328, 618496, 0, 1481629696, 0], "memory_percent": 6.693530134632704, "name": "firefox", "nice": 0, "num_threads": 171, "pid": 10541, "status": "S", "time_since_update": 1, "username": "nicolargo"}]} GET psutilversion ----------------- Get plugin stats:: # curl http://localhost:61208/api/3/psutilversion [5, 9, 5] GET quicklook ------------- Get plugin stats:: # curl http://localhost:61208/api/3/quicklook {"cpu": 62.2, "cpu_hz": 2025000000.0, "cpu_hz_current": 1273980750.0, "cpu_name": "Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz", "mem": 75.0, "percpu": [{"cpu_number": 0, "guest": 1.5, "guest_nice": 0.0, "idle": 26.2, "iowait": 1.5, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 4.4, "total": 73.8, "user": 68.0}, {"cpu_number": 1, "guest": 0.0, "guest_nice": 0.0, "idle": 39.4, "iowait": 1.0, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 4.8, "total": 60.6, "user": 54.8}, {"cpu_number": 2, "guest": 0.5, "guest_nice": 0.0, "idle": 36.0, "iowait": 4.3, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.9, "steal": 0.0, "system": 9.5, "total": 64.0, "user": 49.3}, {"cpu_number": 3, "guest": 2.8, "guest_nice": 0.0, "idle": 36.6, "iowait": 6.5, "irq": 0.0, "key": "cpu_number", "nice": 0.0, "softirq": 0.0, "steal": 0.0, "system": 12.5, "total": 63.4, "user": 44.4}], "swap": 62.7} Get a specific field:: # curl http://localhost:61208/api/3/quicklook/cpu {"cpu": 62.2} GET sensors ----------- Get plugin stats:: # curl http://localhost:61208/api/3/sensors [{"critical": 105, "key": "label", "label": "acpitz 0", "type": "temperature_core", "unit": "C", "value": 27, "warning": 105}, {"critical": 105, "key": "label", "label": "acpitz 1", "type": "temperature_core", "unit": "C", "value": 29, "warning": 105}] Get a specific field:: # curl http://localhost:61208/api/3/sensors/label {"label": ["acpitz 0", "acpitz 1", "Package id 0", "Core 0", "Core 1", "CPU", "Ambient", "SODIMM", "BAT BAT0"]} Get a specific item when field matchs the given value:: # curl http://localhost:61208/api/3/sensors/label/acpitz 0 {"acpitz 0": [{"critical": 105, "key": "label", "label": "acpitz 0", "type": "temperature_core", "unit": "C", "value": 27, "warning": 105}]} GET system ---------- Get plugin stats:: # curl http://localhost:61208/api/3/system {"hostname": "XPS13-9333", "hr_name": "Ubuntu 22.04 64bit", "linux_distro": "Ubuntu 22.04", "os_name": "Linux", "os_version": "5.15.0-71-generic", "platform": "64bit"} Get a specific field:: # curl http://localhost:61208/api/3/system/os_name {"os_name": "Linux"} GET uptime ---------- Get plugin stats:: # curl http://localhost:61208/api/3/uptime "12 days, 3:42:29" GET all stats ------------- Get all Glances stats:: # curl http://localhost:61208/api/3/all Return a very big dictionnary (avoid using this request, performances will be poor)... GET stats history ----------------- History of a plugin:: # curl http://localhost:61208/api/3/cpu/history {"system": [["2023-05-20T16:44:17.685943", 7.7], ["2023-05-20T16:44:18.817737", 7.7], ["2023-05-20T16:44:19.996995", 1.1]], "user": [["2023-05-20T16:44:17.685935", 50.0], ["2023-05-20T16:44:18.817731", 50.0], ["2023-05-20T16:44:19.996988", 4.3]]} Limit history to last 2 values:: # curl http://localhost:61208/api/3/cpu/history/2 {"system": [["2023-05-20T16:44:18.817737", 7.7], ["2023-05-20T16:44:19.996995", 1.1]], "user": [["2023-05-20T16:44:18.817731", 50.0], ["2023-05-20T16:44:19.996988", 4.3]]} History for a specific field:: # curl http://localhost:61208/api/3/cpu/system/history {"system": [["2023-05-20T16:44:17.685943", 7.7], ["2023-05-20T16:44:18.817737", 7.7], ["2023-05-20T16:44:19.996995", 1.1]]} Limit history for a specific field to last 2 values:: # curl http://localhost:61208/api/3/cpu/system/history {"system": [["2023-05-20T16:44:18.817737", 7.7], ["2023-05-20T16:44:19.996995", 1.1]]} GET limits (used for thresholds) -------------------------------- All limits/thresholds:: # curl http://localhost:61208/api/3/all/limits {"alert": {"history_size": 1200.0}, "amps": {"amps_disable": ["False"], "history_size": 1200.0}, "containers": {"containers_all": ["False"], "containers_disable": ["False"], "containers_max_name_size": 20.0, "history_size": 1200.0}, "core": {"history_size": 1200.0}, "cpu": {"cpu_ctx_switches_careful": 160000.0, "cpu_ctx_switches_critical": 200000.0, "cpu_ctx_switches_warning": 180000.0, "cpu_disable": ["False"], "cpu_iowait_careful": 20.0, "cpu_iowait_critical": 25.0, "cpu_iowait_warning": 22.5, "cpu_steal_careful": 50.0, "cpu_steal_critical": 90.0, "cpu_steal_warning": 70.0, "cpu_system_careful": 50.0, "cpu_system_critical": 90.0, "cpu_system_log": ["False"], "cpu_system_warning": 70.0, "cpu_total_careful": 65.0, "cpu_total_critical": 85.0, "cpu_total_log": ["True"], "cpu_total_warning": 75.0, "cpu_user_careful": 50.0, "cpu_user_critical": 90.0, "cpu_user_log": ["False"], "cpu_user_warning": 70.0, "history_size": 1200.0}, "diskio": {"diskio_disable": ["False"], "diskio_hide": ["loop.*", "/dev/loop.*"], "history_size": 1200.0}, "folders": {"folders_disable": ["False"], "history_size": 1200.0}, "fs": {"fs_careful": 50.0, "fs_critical": 90.0, "fs_disable": ["False"], "fs_hide": ["/boot.*", "/snap.*"], "fs_warning": 70.0, "history_size": 1200.0}, "gpu": {"gpu_disable": ["False"], "gpu_mem_careful": 50.0, "gpu_mem_critical": 90.0, "gpu_mem_warning": 70.0, "gpu_proc_careful": 50.0, "gpu_proc_critical": 90.0, "gpu_proc_warning": 70.0, "history_size": 1200.0}, "help": {"history_size": 1200.0}, "ip": {"history_size": 1200.0, "ip_censys_fields": ["location:continent", "location:country", "autonomous_system:name"], "ip_censys_url": ["https://search.censys.io/api"], "ip_disable": ["False"], "ip_public_ip_disabled": ["False"], "ip_public_refresh_interval": 300.0}, "load": {"history_size": 1200.0, "load_careful": 0.7, "load_critical": 5.0, "load_disable": ["False"], "load_warning": 1.0}, "mem": {"history_size": 1200.0, "mem_careful": 50.0, "mem_critical": 90.0, "mem_disable": ["False"], "mem_warning": 70.0}, "memswap": {"history_size": 1200.0, "memswap_careful": 50.0, "memswap_critical": 90.0, "memswap_disable": ["False"], "memswap_warning": 70.0}, "network": {"history_size": 1200.0, "network_disable": ["False"], "network_rx_careful": 70.0, "network_rx_critical": 90.0, "network_rx_warning": 80.0, "network_tx_careful": 70.0, "network_tx_critical": 90.0, "network_tx_warning": 80.0}, "now": {"history_size": 1200.0}, "percpu": {"history_size": 1200.0, "percpu_disable": ["False"], "percpu_iowait_careful": 50.0, "percpu_iowait_critical": 90.0, "percpu_iowait_warning": 70.0, "percpu_system_careful": 50.0, "percpu_system_critical": 90.0, "percpu_system_warning": 70.0, "percpu_user_careful": 50.0, "percpu_user_critical": 90.0, "percpu_user_warning": 70.0}, "ports": {"history_size": 1200.0, "ports_disable": ["False"], "ports_port_default_gateway": ["True"], "ports_refresh": 30.0, "ports_timeout": 3.0}, "processcount": {"history_size": 1200.0, "processcount_disable": ["False"]}, "processlist": {"history_size": 1200.0, "processlist_cpu_careful": 50.0, "processlist_cpu_critical": 90.0, "processlist_cpu_warning": 70.0, "processlist_disable": ["False"], "processlist_mem_careful": 50.0, "processlist_mem_critical": 90.0, "processlist_mem_warning": 70.0, "processlist_nice_warning": ["-20", "-19", "-18", "-17", "-16", "-15", "-14", "-13", "-12", "-11", "-10", "-9", "-8", "-7", "-6", "-5", "-4", "-3", "-2", "-1", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"]}, "psutilversion": {"history_size": 1200.0}, "quicklook": {"history_size": 1200.0, "quicklook_cpu_careful": 50.0, "quicklook_cpu_critical": 90.0, "quicklook_cpu_warning": 70.0, "quicklook_disable": ["False"], "quicklook_mem_careful": 50.0, "quicklook_mem_critical": 90.0, "quicklook_mem_warning": 70.0, "quicklook_percentage_char": ["|"], "quicklook_swap_careful": 50.0, "quicklook_swap_critical": 90.0, "quicklook_swap_warning": 70.0}, "sensors": {"history_size": 1200.0, "sensors_battery_careful": 80.0, "sensors_battery_critical": 95.0, "sensors_battery_warning": 90.0, "sensors_disable": ["False"], "sensors_refresh": 4.0, "sensors_temperature_core_careful": 60.0, "sensors_temperature_core_critical": 80.0, "sensors_temperature_core_warning": 70.0, "sensors_temperature_hdd_careful": 45.0, "sensors_temperature_hdd_critical": 60.0, "sensors_temperature_hdd_warning": 52.0}, "system": {"history_size": 1200.0, "system_disable": ["False"], "system_refresh": 60}, "uptime": {"history_size": 1200.0}} Limits/thresholds for the cpu plugin:: # curl http://localhost:61208/api/3/cpu/limits {"cpu_ctx_switches_careful": 160000.0, "cpu_ctx_switches_critical": 200000.0, "cpu_ctx_switches_warning": 180000.0, "cpu_disable": ["False"], "cpu_iowait_careful": 20.0, "cpu_iowait_critical": 25.0, "cpu_iowait_warning": 22.5, "cpu_steal_careful": 50.0, "cpu_steal_critical": 90.0, "cpu_steal_warning": 70.0, "cpu_system_careful": 50.0, "cpu_system_critical": 90.0, "cpu_system_log": ["False"], "cpu_system_warning": 70.0, "cpu_total_careful": 65.0, "cpu_total_critical": 85.0, "cpu_total_log": ["True"], "cpu_total_warning": 75.0, "cpu_user_careful": 50.0, "cpu_user_critical": 90.0, "cpu_user_log": ["False"], "cpu_user_warning": 70.0, "history_size": 1200.0} glances-3.4.0.3/docs/dev/0000755000175000017500000000000014432156570014714 5ustar epsilonepsilonglances-3.4.0.3/docs/dev/glances-cprofile.png0000644000175000017500000120110214432156570020634 0ustar epsilonepsilonPNG  IHDRwbKGD IDATx{7"64BlGS Zʹ24QFc䩨)mRh1}VØ+6 MjH"XYYk%kwZq#uu޿>9κJR TO:G8 @ ^.򗵮쨣j]t uDZW@O&np "'TpNPuiZ4(T'h1hP'?a2wnY ׼֙3[rWKKon:뮛|elޥ=ρ&?FYkԨ#Ke˒aGws;Zj^'K&O>|d]Z%X]n  \zi 7ML*2o']_j2~|imI*m_/{YCVgK o:5_>|^c-=ǎM;C>&MrM:+vH~2ܷoY;[:+V$^[ Omw&X]uu%|+Yo/kRvnIcƴiI~ͯ%K$usrb,Xоg;O|j3jTU>yr]w>c&Ok_#G&\rIUYo]Cv*!=ЩkWʿ[]:+E/\vY =8t y:eР~O{I?j֯l_￟umJohӻwrisϕ@Ti5Azh p-J.1;;Ҏ;6f򳟭+V]ӻRv_ Žj<-_l}{;쐼r齽X]]򱏕_ڋoyKz[o̘dN* +G*!5Щm}ASc.um-69bM^9g?kڷΪ$+?}%Zzsϝyd`A~ҥĉeK/\/L$[ZyUUW忭BZ nsN=׾6nmўc m=%qTp+6,5K7ydƌd6]gd䡇mi)yݒp><:5Ywo%y≤˜ 6U:%&$<@rYe~''W\9e q;HwO#9眲{yҤdѢdĈV B2o^rɠA 'Ktot)j]0~2dH١^ My&Yތe֑\ziɧ>UK~Kɀk@!^}+dZgr`&gYZL|;7[Nt3f$'po=:c6J9&暲SzddO8 ̜~z2eJlY2gN2p`ҿrAsUzD.yʡG,_c3f$ޚkNR|O^0d֬O*%$TVbպz2qETpNPuiN8 Е L\>o]rɛo&3f$smmld䡇mi)y5>}GI6` _莄]U^ɕW&\Po%y≤S[[X~Ʉ ɮ&Uz?'I߾eʖ,I6۬鳭mmlKx}!%^7ߜ,]r=|~E{NtEn[_,묓T*%~:^li Ɨ.M;.񏓳.&4~vZW'4@Wɻ&+VW_-6٤^Uks۳ 7L<32$6˖zV"-Jz*pRB~Ü=,WܶF1$\SvJϞ̝LpPZ M8 ͝VvzgKۍ} 7O鳭m:LRvEϙ tPsn}9<`%iw.a}K{'%_Zrelƌs63&<\/\\|q2kV%\иaÒKTVpպ3#FԺme;$^jCmQo4@WU__Bmu%-;'?94fvNOO9$L2jTrI>}K9)miI4kq=ڰa C*NTÇ'S&[JH8 qGr=衄=ɐ!77яO.M;9t{j]50ujw]͜\sM>A%ޛL^nO8 @c]lurɒ%gԺ"ƍKdʔddҤZWtCi}dO J=U݌4vi -J;vݖT]]RԺUWW mvNPuiN8 @ :4U'TpNPuj]@/j]A3iR#}Ʉ @sQ֦~Kh@ :4U'TpNPuiN8 @ :4o>}H|&تZ;eJRWo2~EI߾yKU4/g&G,Y̟|tlU=ᄤRiM6IܤIO'\rIYɓ3Ψt 4<8x_%wߤ>dĦcjJ%92oݒ9sO|"f1y2kѣM7w:]Z@SO%SZt47k[nI^y%9rv_Rv[?`2hP[%~{%yg'˖%wݕsOiqɬY7[U[^qEriG>R:ַ]vI/9k+_);nRTj]5vQMmlqbE2rd iJ_l:䓥e9˖%ɣ&\SKi[:Wi&o/'[mUqD9U}ܩSn9NJe%3gu/:4[">='7֖WדnJN=5yd!pP"% h…o$Ǘ#F$s$m<@ӱUeO&\ÕW&'PV89wnYs;NмN wt^% c%ɞ{&?aasz+Y(yJ+O.[l}vnwr9@r "8zt_֦s "'TpN9~8mZWt{IFL{֕k)4k/|!>֕k14_d+_i:o&'ϋ'L^BZ@73rd駛 zj$|pu i ~7t+j]P#zP=^ '$[lLP늀NP=crUu%><|rオ m=nfo[ZN${.X]wM> Q*JEP%S.k̙nuL=@OU4@O2xp2t??t`if̘< m=z^JL %KvRУh p@;@4a=8莯豴.L>dŊ+;7jέ )葶"9찶?p4С=U{Z{|˝W#iSzү_曭G 7N]@O@F?FLN8 ГG{=;$l,Z&'{W.G[/~Q0 t 4@OZێ^@@s"yZWQJ_,_G>?%uuچ K8U@OQ߫~8ZWQ[˗'V*nJ[N8 @ :4U'4hPR^>&t^]Æ%f駗V;ΫN'uu?$;95p@2uj$i{+5~vN}I7`%芶޺s7.{޿㎦?N /tNM@$S ̝̟\xay>XZzWf?sf2qbɐ!77Sa1hPɷ,^\=:wydó _Hl}-Nyg'ʽ_AMU*mo(zѣ[ouTӨQI}}iN8 ݷ:cvXj]@cI]]n5`4U'<0e˒JmX[9ہpC81Y<6 rJry@"K3 _vY2mZ馭g)SJː;yKs&$<@rYe޽ONOM.(Y4zڳ/fJL^x!7/dР2oܸ>YKs "@W {/c[k:+;d-+,/Cm}'lPaՀi{vK?>'1">hm=3N// $_?N>ɀ;]p6Hɘ1V[%/cY'IFLOO^}ZƏ/&g Rw:}nE8 ^r#o-s9hF%\sM)={v9dqV!L^=9MָڳMk9cٲdΜfew4@W4gNriM7 ?#wm},IfH=I 6H6,yd drparɬY>\pA@UWT*.`3ztr뭵j5*uS9 @ :4U'ʆo8p{M|z~-?&NL/Nz(fw^'yr"*]U^ɕW&\Po%y≤S[[X~Ʉ ɮ&Uz?'I߾eʖ,I6۬鳭mmlKx}!%^7ߜ,]r=|~E{NtEn[_,묓T*%~:^li Ɨ.M;.񏓳.&4~vZW'4@Wɻ&+VW_-6٤^Uks۳ 7L<32$6˖zV"-Jz*pRB~Ü=,WܶF1$\SvJϞ̝LpPZ M8 ͝VvzgKۍ} 7O鳭m:LRvEϙ tPsn}9<`%iw.a}K{'%_Zrelƌs63&<\/\\|q2kV%\иaÒKTVp@FNnUn̘QJZO';쐼ziݨQI}}in[JZvO~@ wMnܮcmҧOف~ᅵX uflY~XK9 @ zaÒYj] zÓSu׭u%@$ƍK#ZWPihdȐ曛G'}&wߝ|pu^.:MfL&g䠃{MOn}@'K:9dɒ3j] i@c%~2eJpa2iR+!4{2~|r'%Z몀nF[;ϋ%VZniN8 Гyg2xpz 4U'Tp U IDATNPuiN8 @ :4UWWT*.;ꨤѣ_6]TpNPuiN8 @ :4U'TpNPui&}$DKNм 7HƏ/->FHI6(ycj'Ln+LN88p`Ysܲ;v;U#y]9J^J@|14K=L~VhQkV '\"9dݒs:N@D?q䗿M=@w@DO8 @ :4U'sk^.nfO72$9ǓH=49Tω'& $nWԺ"Fz6NH"05"z䪫K}4y{k]PzP=W_y͒v5%IZcU?q7.{ Q*JEP%'%Szϯ^2o^[9 Г|G!iƌͳ+yd뭓7hs}$ ֌=Ά&GFLF8 N{/z,m=z+mI^}m7,7/Yέ )[/5GLJ8 S@zdok}>R}@Zg?|W":ГG{p'{d][<8kiZk$i-=VCZeպyZWy*ZW=TpNPuiN8 @ :4dРRi>}M6zv=y7'L>醱-Hn-yd޼sW;֤zo &?յcS_w_ү_2iRrI߾e?O60ǓOdĈǚY t^.';L\vNpCrn%ZvQChQr53 ;&+4(ߓ0;7??¦|~u;dy(3ƌI?y䓟Lz*_?|˒_N^y%:5Zc'H-K.,;d}?yk;꽁NͶ&j[_Od=9_f7dHrE קLPvN|sre>RrUIƍk~}cz?hw.kxbf%t?>2o}i)Q Tp`m%K$uset5ygrF%GYK[/TzN[vGteJ|%җJܜg-{,ydڴd?i zS^4n3SH _(a{9}ɭ zɒjK_O/̪O/;>:1n/Aԩɟ\|dNy]4ow?Yd8)[rСrC-;-Jh薄oqkNVqqFϔϿe9/;?ÒQتN>0 Y~kw߲)CV [o4$B8 tSr-rn3壎*aW&OÅ .SO-c󓟔?^#1cKٳ$/ T]]RԺ.at}b1z;:4@Gw߲+wuƎ z݋X jI[.>Y,ydжuNh~ 7ŋ3lӰ)$ t/i_;n+e%Ӧ%nX{֙2os^K.<7aB$gU;9+{]p+:d䢋KoO{,=˼Y^HK?47.O,zպVú6+{d=oy=裓-L\be&?lA [Wz;{Mv-9OdĈdҎ3H:Y\/X\~y3!$\RzM|sف !*ǒI]]+h#JoKNM^}5GAgc6_K>~r?95*yN֐X jijڴr &c$[m򇏵g$92>`:IƏOnqɐ!e|Vz%䪫Jj}=|`OjOOL)+ΙS߿s@ IN;-r8'>QzGncI2cFrNlAfɳ6_&V ' /NfJ> :w,"v "kF,@DO8 @ :4U'ʆO&O..73k66qbxqC64?G>#$l/ tGiW+ .(׷ܒKJoN.mևJ>v"н m-/uI*solks?lK/M6ݴK&gPG? N;ݓp+xw+xelREYgr`&g LeJ+NtE%z`8)}N_aΞ{jmn[hck);gNMOo8(-@&Mz+nr=sf쳥F߾Ʉ 'wuOOL)ILO:(ys߾4@W;ea dsy}-9d26cFrmXRvBL\.L.85+ .h\ao~ХU*vYuu1cJxsjvnݪ\Lq-3}rw׺ʄk%KRꗒwi:6ɩ5uӐ֊;XR*N-*Tq|cMݔy2?"7k] P%i5?Jg뭗fկJzZ'WhT;w75t;iO圳daU.jL<|۷׺ Ld}f=?kPK:pzp閜t9k^f~NR3ݚK.+&ݛyֺjEmre+O-^:pPn7ǎd~p׺M6;⳻d -x֥L8 Pm-K^y9'σ_*I4[?IeSA*{ruMN[/(8` 'nM~6,G#Gr߆mܥ;Kʝ#w9W*=M㔈 q]\q?h]כ'cb+%ڱD`zkKkƍ7~:eZ\gȰUH?=^ݘ9p3Z Ҍ6>R#rSҲ%wٲCxQBi}]`:gORpi"ٗ^YF*ܱ[6֯+t3Cdo1\8T̒{hi7YoٳuGRU*)4ڲdt9oK=ZʔΛ:]TCje\р(&ju[frs 3-\){vgf͔,H:2J>,e]]Qi㬕}#]tXL/S1n72ϽĴ$z{Yr]mۏi[1{ΝjK t9Z.]ggGTt^:Er*_^-Paa%IcǭUFIL#"9 \ՙΑS ,t!իwָKSh4)KwE}acp-;1w_ _5CCd<ʒ9C> 9rެ7ԩc[S8'i͚} ̥苗ص| -"9 31̨]Ҹ1҅ _ߗHRGﻕE ];lEoy]=[MA_(c_DHIL7xJzOl.s6JfTI)w[g٧;^j}H5k;Ѩ/eZd*{BI;{ ɘ1zVzRZ+Gy!6ը^L9rĎI:_J/6PQQňZ^w)U邅dFu[I|YZ\*I들=e'3xEV,H1?/;yjgM"E25kK{$p7"9 nUgr؆BemRp^)lR $K>vWҡ^2_}{;RR);cԾs\2ߔTNvo2o'Vݻ?jӦ÷[h˖#*QCMQӧ5AxYQ*Q¹u$ܹMjϙ3zt Ң;ջ}ndAS""dVGd~9ܖ brʙ3839 N[g-kӆc^p$iwJliUլi% lCH$%)uvO= QPO HNCDlҥK} :1[#[\s'5e ;b{p@WbiiLDի).Ct>9GQQ -߭f/kԶ4@ryod?-}4eKɓM}|L={uVMUZ%ܺ.VH;t|24{ɩ&};!"\ǥS>&{ªTn̛7֭&M*9wFF~?Vmo^Drv u%RxL d;UE*V\Y;ukk1^Odr*R$g}eӛ}3_*h.ըCOpWL'+eN]W!(U}YCr}A>[US' N{7nL'od?@jNʕK(Uyeɨ!StRʽ,k5Ejղr̪57$N3HvV!_|u=Ҳ+U*6胏~K=o?7җß*,쌖ؓbzy7SL':"__{.z~A=l?h׿ܾp4"۩l44gnv'GNSd͒uLHUYfg6ի$IW\pTXk{dJ$m dF~+H1~ܢ;p~鐀{LnN1c}|eF|#/$Qkׯmӏ?mѯmt8=4Hs7S2Km;l@kZ{N)&ΜݻOy:,Drm'K׺-=g)0hO[S'x:,Di\9rXZQ %-^(;nL+ȴ{Uʑ3bU&H(:u^|Zg\Аy:$@_=PaOIrWf͐mQg&M7I򼖭'jph԰&{a x!"HøCr]@ErHNRi@#9 @jʚUqfNS rU˒Ef^fm_*s6Jff遇R'NwkD)çta;guZ_嘲eOݾ+ ֆu}tZxUjn:q-n;00΅LÿHEfFX O>*)}xMRmI[6NѺy-?-V@vX]ŊtX\jD{_3~ؤS_Q7O6͜ QR/Y㾿'aaݯOǥ4)O^OGڽ*3g%ZƶKAe{[*=+o:1"x:{F<<Bٻ +…}} Sݺ%uX ]_Bia=ۨNS?#$idts9Gwf̪ R/YI#eu+.˄9p\q{W(xs2H׏=_RᄆcO} Hv/d?@m !]If+:yTie&L9)ş7/ȚUt[9!f~Gy_ hL|:=)k|{܁1䣧}Mi-|%I wVY|i75mRIԼcE8_~(5w;Oh׎wgW?drڸ 8_?kּY*EdQ?֭F 'j 4N:zc}ukzgN{y{gRϞhڿҧ7p)ΘW)urt~F@BHNNO@e2~ IԐ"#e?$M$,%3KَemBUzc|R<ɶk%#L.EeϞw̹՚)TXfBkw㤪]'B_ ?G Ii_Xg9qcIq""${x޷U n -]TmKq|ssǭI-UD:x@e{t3!m+= {,]2~OyRWV?ŋWI=1R]TGk*Q"}H]TԮڡ|$)_ʝ>=\e^4]ݺQP9)Soxu:Pj,?ԩxnyR˽}}4`JHƍyҐa٫hќ zT}JW\{TL>|ay{gRKNzķNr%t3\!9 ;] ((l# mTSK6OGه|s*^@ڳ[ ,HFA1U:wN#D)qcw&Q_Ie^n}JNIC>7wvy-`;IKι͘k6zމuRY闹RƌR媎횾(;ebID<e:.}_:tP$a|,KKkly8KRt2IGǶ_&:5%>voիO"B3ٿwIJ8u[=qgrbq;Wk~Ç#Խ,-\3>XH6,brTɼ %cb8y.]QtFydӑۯ]:|("kJR\q8c_x T<`7لn;_ۦ'( wh]Z\9vc_Vؾӷ\'9;p9 #p٢SeN\Gd~^ {d5HT=")`LlDi$S4P:uǏIkVz_-28<-I&:pB5Z ,,-e;[H%@7vTu[N ~_ժ}eVfb>} ӱZբʚ5~H_E;S̍?#Әo5e%s"RqoN 3'Gby!daLpy{="328zG_b<~LQ[;4\{gGjWN} /?.ϲ&K}-I2J&a%̶h*U$K/6~FxyWƻ RvG D9ђgAcǯӺbYw>lPNU=-S>?ZW\sZ'3\1pݬD)ƙIӥM9ƴPH*LKӦWNOX~}լ=L]/\'olܩ*KHi6zʎ!]h8yBv`GZud.u$;m6|}-"]ڹnduN=9?{rsu*;i-ӣl i|7J9={A>^q|gQxxT3'1IY5eΨ׻V媃hNH2O ed(լ-~m$x y e{uOq6.[ٲɼRf}#+KŊ恀mzT%KVL鯷h֣ ΩQV{[w_f5on|uY=UX4N,= 9u^^S>!_:j=uru{oK?ώ];Kwٱ Bvylq\w>%__/uTK9rxk ߻]sǚ?a.Сp,>VN3Fr=Ȍ sXL'+W\I26K}qj'`!Sdm׀A~///{Wq4i.}7iAl&Sd?$ҪVLR ڽ5^᪕=FǮʒQ~~ڽ۹u$){,z3f$̙ :w_[?VZ-Ia:n M=qftq$kzf IF k¸=n&74 Ց:TGrWGepKeFɬ,=P\u׻pWIc_$ø{d*bs.C$*ys_ӉcjeUT0yƺٽPtVٯo[MoU?ޙtQWyenErO 2~$L&m$ ;isL `_|2jL7e,Ӿ!q7pAv47JG#Ct34h$iܘ 9Re>Ҕiڔ &]M/olܩWv.^Y]uw`T4P/SGi4bXAFFH[CM}^m[WѼ_B%IAA{I]r#*_>i W9/ovUZTaa%^iSE#G7hn;瞭cnCrGRjҚU~~Rxx1_繮ƺ;yBv`;Zud.u$;mt\±Y%Sn+s pa]_8c""/iN9]:ڸc]sj:P6ljs2^BE+I⾘ΆJ"+PW3g_K.?iZgTz;Q/xHC=}Q_W8;r'@ 9 #[ve3g$߸I2Hgu:v4^[Rp /\p ܦlٲʕk|$ OY4ؤZ2Oy{g]jrZd .)[,uN %~VʐAAfdi) /b+s]M:ٲɼRf}#+KŊPrH(eȐN^^%I[Uɒ)ScuQ&vˬԷ߭V@8"jU36{mHN8zD q|*%'u!)-y]Kwٱ HkJ{vjIǀرHE_…5Է8ݻO:w9p&vkjuCUZբv:…s(6N@rǥKRכlRJ2ɼlgu$j>ILwϜm2OOZ)&\tUV _ok$U;YJj|.\$ZCo~,Qc]I?_QcƬ$9sACk{JkР%qb}Z{2\b\7k#1i\ŗe5t$ ˕[fv2a&M7I򼖭'jo\Q͛URx:ʕUQb<Nh԰&{a frsϏ3RB$a-Hc%1d=gΩ|o=CZƎ_{&qw#9 ^P㎒5Ld?Hpr\ǝ;mXA/t(@2x:pYέ|l<!Kwh=稨KpO$RmH?TXtGw0GJӑ)N6ҧ#E?UY?K/t$@{MMFVt(ǐwe6٩ .u'"fTp'Ϋr1cS+U%I^Sը!)";s,S֩n6RTlry*/:ꪗ.ǩo̙ 3 H$ϔ US{ٚbť:x:, E->oVn?c_*00j*]b?mRX>?]><N.]-= $_?ƆSP o8Ç#R gĈҥø(ે*0t3IN=JF8+5=pc~rӡ0J9?i +t1O i^|%SAں܆4pٯG: niCHN4^:qܩt-O{w&]panCr#9^jL+&抧܂4pys;;ufMx{Pys Oiv@,Yd:tL`{Tpp~Rw \/]޲'oܣk֣p ΍t|uh܂4H=o̳RpzH6 YҵkB~^ldsf[=n|+[eY3cGzs|%ad(#ܞ>x0\O={Kk ƍ\̙ jJP\u ] GsۿZ_" 9 nߩ 핫@'q瞒y̾c2=zl:w|?QxLZI!6dmڍL>=*yT~7J[ϔ}@* tW&|^|5{q/^wWNVT%Q_ w\ĉ mX[ժհ$I11W4fu\+Ό{ipRtSJfJKI}2J>,e,5xJpM[W+-'< Ԩ%qs/H>)Rmۏi[1{ΝjzFvԊ{Ű筲eiU^i:Es*_^-PaNKƎ]F+UΏ{ip{oG9,H(KR!իwָKS9͜&>%u\/L:~LvR`q):Zv7c{@Rys8m[d<ʒ% 94ßT_ 8: i:~֬ݧ}V;t VgҙN*~_"EDHuvlƍ.\w+HvHO="ӱ%!O^5W,W2^r3gХ+q""'ã;vNl|We>cr% ^1̹Wv:قeLZr(XHf,ო\ٵSmKIyƶl^:}ueuig%֬,N%q"kLp!k;Z)]%]rUT_Lo3O˖:^?]={MA_/J:|$tDr܎ٳNͦg;dFL*<)̦g٧ *5|.n߼9RΥ>n4K(١d6Jm+mێ_/""UOfpX&S瑄<^vΎEJdj֖;_pBnx)bpSt!Gin:w._u'FSȑ.C}Tzœ!9 friZʖ*"Z)lϮZO4͝-9-1>n ![Rq06 BG/q[$ MN-O%J;)""Z#ZQxUzyp!F/ۭsBܳȯVUΤtPTX?? $@ءӧym#d۶-W +3w!Tp}l;+AV/zدRYD1Uj9g.oV*'77vR_\Yu8mǶЖGTԇ6mOm,YǪ.$ON?l;HL *W.ru$ܹa&m[U3gV^WWEwwGS ^`\ٵSR9ڵMˌ♘4e7E/=39 91-th-00'qW#9  iT:HHx4.((tm#9 ~1TxѩhRDnCroIOxx\ڻ{6;)2©#difesx|w`8*/Aӧӕ+5bz 7E$ iڕ+#pn ,YKۖͥ(e~Y$;b4WGͤ eŽȴh%|C)::Y9u̅ۚln5{q^M^]$k?Lpj6]K2;wHC*$sD)t"'Ե#dW趤kմXթ]"4pܘ-Ԧ}^V */,ܷuT%Kl[e7orԻ(G{D쓏K+'/.[/E̛7֭&/Tr{F’+p3 aKI[69}UIǎJ *Gdؗ.K~~qJg%Illn֪"+.լxPP9& ʩH-Oo.]gǾT``.ըP'<s١3f5k_,-M=>Lҵk/ZVJ=W˜rXL`l?{zU ce@ZVI#y *d=(U.q?ٹ/Kh/:>F͛=6.4i?H#-]Tҟeꜘdzq=T@.NeTs5iilef%1 ģ|pn=0$4iY͟wnO^zS dnr~Q!֪UI0eO$7HN&PĴ$MWy: HN70}zٝ;|y"ࣣ"=$$HNHܸWO?rԥ~c)$ ʯЭ݅4iىD&! HRwl'EGL\$8(Bt@ -KlYȔ*-yy7l|ڹ+4iYbzļԽp2gΠї=$$Hnt7?QQQ<h$HΝKzN]e>2Hre}m<4iURoMZfఔ@kkQO$ZO<$)g5ZJ=7NUdMA׮YUҥz:$%U}Ӎd&LҧOxܶ.Ԙ1kt5-XC鐀[םUqsz2IڷL+<>^*Y2Cn4g㪬?.-޳PZnrg}ղ+-gގvhD !q~J9#=%"y!*maHDh)bH"ⴈHaݙӍb,X #"d؇)S w'[G4M!DDDDDD$3$ ۽}E+pt~ʘv<7S7:F:{6s4lPQlQ 1$k t`ⅶN ,u fͪԩ]Nq_)7Xo`!K>C1kۃ_s W׌cƼ6_0ƽ'Bz֖MPr\{ʕg3v1{m^(Y ~߃R}z#3///Caa{vR8-""""""WX0 ֯^|MKб1;nd['ɑ%؛?~2fc\\9ڶʹsqL˗X9CwutMi}DQc,R_-7m//GOzcq"Ƅ)U0a!FY|:w̛UƻZ󟚵ظ9u1܄sxco=Y69]9 I737֚G،/?q7yc0fq>eOn5wwPFd-ȓ1yx,i̘{wYou )t #{y'WӅGsѽ>[6|ǜ~-f.@Ў1:maV*y)*W̹ݚS1̴8ͳWc.rw[kOo\gR:@LLƶX)jnP2-L׸ټO#eaƬ^ s@oxY0 K]!8rdVN|=an߻9gg^KWC4m>:|BRR*oD_22qBWX@0p\^Ԝ gݺLdTTo0vCVRSٸ5jѻW#ܜС:mZW~ǭֹW~~zШD^<#\/?+?*NHzʖ?f0xGC0KzYoXN!X^ KQq.WO>Ȉ Xݷ~._a ^}os.pLƼߗd#vv` rg0G <&d>d3C%Zsg|{u=5HLR $\Fٲ^|!*o cCC/PsT3'/Q[ɺhr Q:v3kÇ&<=?W9sw|-57>^E\\"k׆pEu䌊""""""6o 31b= :g=ac b?w7G5gnS9_0Jobl6Cz}';c\6Z{.ާ1- |\gCbк-6/gm߫dw{z5Pڲ5^z[FqtP= cޯ}ٳ5cFqw`th9?Chx%ޠ9zp•p?RR˼G[QqZDDDDDD/0=Y4+ϳo=M;e0/]G̮sT4ϝn4ƍsyT5?\}+w x/TNN7ܷ:?/ Q$[rw?5n'hΙ ݞ' nZ{ukuV)fI擩Z,O?<q[UaɢIA<4.r읬{+n\ўٵ-f؞"""""" ̸8x-Je5sOm+F~P$8;gE fm"xznE5,Zuŗ:tzcΟ-!yAu:xBC0>>0|U-P@ʞݘ{`xgNvӝq0\ڛ7ɸur'Y8)6lobcOpWrrr*89SnY""13;N(QggLcoڶ {4kZ gwOVߔ+CiִL+/'za>ٹy"ⴈi?mwcxKƻOĘRXe9q$#h|:_Y̧:yvZrfdfZ֘%+C-gTgB0{D$Ƣe`>c^Ke|8B/̧λkd)6{^O/sҝW9ff_ :ɦpԇ<ڹ̹̝ݗ}3sNΞ@l< ,GXconЎ1:-7ǫͳ?.C^n3L(Na%{JHMMϴݼ_1L3 """"""3DEK~h>!ulC@wN9:܃z 0~0͓Sml"\ݺeٸ~]su_^[EDDDDDDgur)9BwmtX"""""""Ԭ]W1orOa`$b= O=ki7#/1cDX+uc`~oWDrG>eG~-W\csgޜАw7ꨶ>>kV zfcR8-""""""b-%0?JaNJξ6S01 |~ ոѤaN`ƈQք1F`/'[ezOR̝ysx˱ӧk|H?0tP=uJ,ST IDAT!hx"۶68;;0`@SZ[BDiky=; ?x}1 z&Y(a~-tqa`{OA(_ŽCdM_2nK@\l޿"rj,Eڥx&2M&^/8߬ZjY,$&&C#T=V>:Mdd<[_85aɒ`m)T{{H-- v`}9 3=7_X>y*_)f- b xwj)ѐ(R>K``Lc69M٭sT +ϓM*~WGmo7ƤSqZDDDDDDZ6pwNC}jgh6F7di:$խ`N 7rKޮ&dhK-R<9{6w8tMkru.7kXZ_n`f`/'PSqZDDDDDDZN/`< fϰ͑]_vUǘ6žuF{Ϡ`9mx>ۯ`k%nY?hMDΰ43:89Ky|cipuje˿!>>^=[A׎lL$T+1,ٻ(nw+`,[9v,].yc>n6x81j fڰz%Ƹ7}"k.\5C 11 %_nʕd6m>Gj:/Ԝ##qIGIⴈ8:B֘;wY@?Vc f6Zܰ.k)BoT˝'YrܐZ''mu˰Lcahgzto?nLoNĹ8n ߿xnoO 1EDDDDDD| yK˳b1lɭ:˰W0 ^S'|(]rc_Gz ooWiEQ7V9i'ݙm%Es!-13k>Cr>.Ef8~-"""""""r$afb<1F^x-:/ r1fH4o||: >E!490?~g:"0>>BDT~y2Cx$%Y~غe> @ZZ:O?358_ ^LPЉۮOeڴDG_e4WgĵݸhitLWD䖌D_Eѷl[ǐ<ҵK 3gu 9-""""""""""VⴈX""""""""""bu*NX[ۇ0VrƥC7z^vc:Fd WFKC0y?516ĉkezOR̝ysfYnlV}%KaV4lETKn{jupabbۛynvcsN"/O)}"Νܼ*W86ⶈ乘puu`9V:eؿ\ٍ:ހ~F2ޜG6nyD$[׮uKV֧lx !н{=3IIl2qcr'OeڴDG_e4Wgĵ6jTk!a<]DDDDDD$3հuIVc!pF/ѢocOץsxi4:|•+ɶI.̜1$k t紈5-Z\y['Z~0Elhɒ}TXeo?FzАّ/ rPqZDDDDDDĚRS1G鸎|g0?ID tƾ$qݺ>IlEc """"""R:|*fN!"uGYOsNHF_:t紈X"""""""Yq)D|H+YB},"74jT;:HTnjf岘6:u͚`=cRpuqbڴ`~۫'tWk@붘^KpfY_Xjׁځ 1t :vuj0~?6l ul8-""""""_5j}uÐt-x/ƃu0&~ [ڽ}0ZBh/Ӹ$~[w?MveAho""""""""Wp41a= _@LLS_b|Ʀplh -wANeߡÑ|i9lf" """""""f8:BG0{ z 0yفicϧY$ƻ@\,kZ"2#%֛K7:bsZDDDDDD$2ccY9\ Âyh8r650|~ .^|7 "N~Mx̘DtU> [GBLijK0n9:ZV'}b Q1ٲ1TmY1G5kb% }1ZbXRHXj8wӉky@b1@h0?|zb`rQns ö؁3c.yLLOtiSqZDDDDDD$JK(0\WŽm=pSO@RC䌊"""""""٩wu_q̇ZZ77V<ʕmC$K:sZDDDDDDDDDDNi:EDDDDDDDDDTSqZDDDDDDDDDDNi:EDDDDD$[IɩxmEDDD ['1) AY0QWxY&u,)@TbY) ;s-%-Gpx | .>FDDDai""""""bg"X%{Nx⡚9:@ʒI$͹8vmD"rٵ$;N0|Xk[Gg)dNa#l ]hoh""beU`]!""""""Q,Y})SҋNb8:ؐ+!""""""PzIVl<RZWbc*NiwūEd:DD$t!..//W[GBFiXRr*wcPG_Eۂ2%=mMDD;v:2*Ngqg+6@y嶔,ah""r %44Ji:EDDDDDbX(6fҹmu>݉"ζ&""*%7cH!ⴈH>u&"enN<n=g?^~k-YAv u}L1Iɩv•Mr?}pzwԵak+݋8%'eO Nˆ:ٮvx cr?0Wu'aX-R.qEqg1ǷČ1gw\\؝䕀_BC2:cOI7hb }:Wk&% |>3yzUxǟǫrq8-"""""GSX^Ds{#6緯{2~p;*ϓ߆~-2wT4CY7Ħ<9g&ZjqSoę_xkի?o Z*dXyBUU8vM:c^ޗAzg˚$}M̴N +3s e_bF}}-xedRV~z"rJz!C[ ,CȑytRn99$$^Xd}իd&vYJ|S6m;Æ=8-"""""bY#_зy Ȃoz2.\4b^ВKd\gEF9ن\t7/1sn*+ztD,ϷW$t4?/E*⒋ؚCn84}n[@ʪH ?>&mkֱYh84xvYEzI*c¾f+̈cOc{ET%؍C<;o?+Czf!!Ql|x7j#{tP=uNRbyҼ?at/3EDDDDDQtl7e棤h|4wVbUlv۱ ט2}35*b豟co;/͉31D^='/W/QFٓ~"I?}k{b{dH1JT$|fLi`IYn͵-H+׿>?Jr|X' gDƣvuڵJQlBeN&9ql$&0]3,v)""""""wXXAax{ҥ}MI۬gncP&8gFK<.%0pR첵@n2K`x4+2{r~g ǝ%K ݅CUn"-x OvC$0?Ld֞դ9C1KU®\M\^[@ʊph<[ֿ1 "i<66o ^.$dO2ތ_ݍ cF?D~M]D" ֊&PzIfO?mgRDS(8-"""""CGrcC"pcؽ#,mV*Wsh$D9?/Z5獉+=;ad3o FcxYKf2}3mJ̚ܝ~^ڧ$moHIoy\_[H$8"u!>8û$N]u fUR۹sR}]骸 x٬*77'^Mݙt3sb`gߘ4yD{3nm9 ט5{gu42z.f\WoǾnGܾ>:H#8Cn\#e7vr)K'e0u;rm'w7[Uq˹E}܉KO\)UʓWFÙV-+Sb;Zo HHH᫯7c4ΤIrq8-"""""rt9ɸϖ,Y}njpj/>3MVj_jb)Ɗ GqN<3m:Gq1%_̯2{cFQKxҼAEN]ʭH~BMUmGN8V=n9LLY8>2i0vk#[3% <N`ikiN? ,C||M炤:W$뼿b3ΞB.E]}JⴈzIɩqVwosz4f}?+wjH$U+f;fmd-<-N|?Y?7uͰd}\(Wڛb9϶'\X^nQ$|8fCGhy$W{xvhsu$>gPOʲ/ql?÷慓gI;RE#׋5k[All"Sĥ:i^&)ɛoիɬʒ<-0Lv3}z7͉r|8}:sqlNŭ>9-"""""RbR laP*?"ϒBL\"2ti_qжIeCY̹T˂Z)_Ib`6 @1o7FoI_SRqfO]rI23wOUfƠp5_%=.*:)+üp/w*}'`&đynv`xq$]긌[7{Vٿ8a7RsO^DZh%]>9cH@wNHv&25[Bپ$ii<KiDIi)pNa#l ]^c IDAThoh"""ZR^DDSH!ⴈGdLI/:Ƌ`X"""""r_JO7 >G8prֱ%K<9>s$ɓǮz3\-$u ?j"JywWs7l 9r*)T|'!wbCѱ hP^nKfu!aش3+^/W7`y=pqv`hf\՛Z6N.Yä߀0[O 6>.~a_'[򷴐 *bԗ~"5z]H@O{+1$ׁ\Dف;SdvgeR~Dt-[r%t紈̙8;DS9p}nNoD\L?/|.ۋW lMgKE\Kf:Ƕ'iݸ-T.$1caW,? u,p8vy%;x%*&H?C[Zm #~"KxΣ-sHT5=f1{apZBW_*NU8ÊG <ܜڡkKi"dX>xFƿ|1M027M;;K[ߧ}YW>- Qj WtcI vs&_vl?3<澃sI/"y*/QwTN>̇˕?~O֧?_a-H>d{cW NbNZ>GeEa^04jFkDZ $O[<P wgkӻ1Ŋ3~ﹶt紈t}X1Z8ZWcvv ^+ɘ7%@~ 4-G"x⡚ =τ1ن%g<6 u#*uag fB g#z ,G줟wa'W8v| %&/ꉋՓ۰e$}W{Χ΃z3\JWڿ vjpt͢"R aH'~q68+ɴlcj[D ~`63wWDDDDD򫘸DVn aÎ\KIC˪<ڶ:.&"LվZb]puHx{H"9-""""r;{>՛}Iyy|w7'[G<`AgR'q UaZDI@_mNN"< Gؼ+OCpҙ"B$}]^[CnVJ$"͞=gX(qt)~r%_>Œ8z2%Ժ/vo9y5'tܽ?OאN)?OʔobHSqZDDDD$JO7 >G|*ӭC-^-a:ؒ3M[v;4}\ID #2k_ ??O[GHi|$-=NxAB¢h`yX:3-{d]núaDqrgİVr$o8-""""bcIɩq5C9} *2o ʔJ"5:m1KbƞnxľN[_&|ju)@DO v d/lCDmAPl$$^c0Vl!:6 *d:,ah"&u&vu \2f͟u Eު{H%3T(""""b-bX(6fҹmu>݉"ζ&""""bu*N3q,[wpws|~7\lMDDDDĦTe'İbu7'v`oh""""""""""(>Q\Qu70 [GɗT &ANrcG/RRq:lMDDDD侠ⴈHsi9Dh,MϮXDDDDD;v K~\1 >3!>a\عcU29Nkv.VH$"r{nNxz;On߿$jdOviLʱs;v/IVn;^^[JLNa# ~{Gesۜ߾T-1 4-pǼ˸~d8|~2}9O}sv敧YDNwk,C<۶J+Y91}GEqqEPTP@kFvFXboiƚ؍1KlQ1V"* ( 3yYwoämFu[NsIo~A j"o$ z'35ox,Mٴa ʢp*V !Dpj0*/mՠ=ߍnǐ)l&_-ϯ3R.MlZ'{vnӋ}gǁk_ q ƾ֟2eK[D!W +[LMʙĺ#y|LUvF&,ut17Hv+)dtye+ 9u"װyi5q+OclX?++SV,ժϠSe ڌvq(Ho BOKz`n }`f޿Z+̬tb.A!2.iQ mujge|m[{̞ԁGoZ.EGa ;8yTo]can҄i&4?rv'cش;@i[Uw>P`2w*]'U} @y}bL\˗!66^͖XZ4HmلGS_8Bu{xmk[&?~ŮCa,zϩc y8 ?~VGmsk=o~725uãx<&ҡ}}.p>Sx睴+ fN_ܻ;M`g]O9v<]siL&8|3gyf;Prin\?:9 :˜u?r2c[HH4e,'Y[ن[7bx`7&&DY3}^ ҄GFgs! {sM`W*!XZp|PzQé- _ٶ5.so.ks">CKزJy߳ǨQ 6Spv,2m&޽aF[Wфx~tvnk5;_qziZ)#ezZϗaei¯3nAozBAtᘌZ쓥a~-Ŧh<}JJt̗?|C|:~=ŖX~a2)b:"0[x v(`W`N%n>Z2%-U,W 06hf0:9c3NE$mհYOKlsv0S1QӱulM,6EcN%$h~ٶ5. vmkqwoݻEpv  qG<٧yy@IeنW0zT+ܟ;Х 'iܺuڴ?;-R} a N{<'#wV]1sZ͙ܾBU\tf8VlOޢAGlXRƂFM͌يZ5(YҜٲ+aՊ.] ++Svn¾7R}:SUlC6Ui׮:noͧv$$0勜OtAט1/P4fܓ&o9+_ lT*95vǂEGi,݃Ĕm{_h@8ٱrrŰᛙ54uSIVˬR4b3ΓBKJۋټb\!^Vfi׬ n{ HHJawhwbhѯl{N6F~ d/GEX OҔ `߉Ti;?d՜c>X$2 Y7J06 /RNJҖ ):&YIUISbِ?àJqP/Mܨ$8P:$H;NdFVePXXc>R%n)*aP=;7qC+ArF<˱j?/>*FH10Qqd&6}G{94ѡ(E 4qMlL:ϕyѶmUڵMwMv-q z17_Lޝۙz7q7ǂO'Lg#Zp&w%̛әӹqL7=?ٹs7]R<◞4isNN%Y2z4cs}nooE*Vc&<>ʔfo̚AceeCطUg +/o"u¹sٲ5Yy{?_:|(SaaiM9k?>|'8;PvYFfg5ʔ@$4Ep-Npo8xr5$p^bٹ ^^LƘ7G XSZv}mj*Ke\E8fKtV{Bxs10t3؜o$mӷS=À{B32>d}˸ϪRfvgyyhge^tk½a\ȶa1H:/xˢi?Þ#7ӱ:B$24Ȳ#vƅk8;K "zЭϒrbI,ԁcuC*&:톋 ߢ A(m+BW4$ٛ⹋^iQzLҎic^]ݟˇP8zg)!a^\Ǡ~SXʱhbDj=aR??t}>C~$nR a4` s>&J'W<\m&&T#܈a}H/)'7eF]պ^ u&ao~-~j~L9gwi˸e튳u;_~M/Ҽ3wahh@6՘>cUϠ^]{6oo(ǎ{ks'<-oH#FڦuM;]oKޟsd{) ~7?p3>9N=wsG/|^M_ѺeCov9hgEu@p$.숋O"0$*cZ! {nχUKuez]}zqHU9w;\ν4vuCj|1_Q%ʢ~ilTia(*tv3o8্S@DY 'OaҾ:;R3mO9_|,Gbw&$6 螏H&"0׏k=~~֝zi?q#g|m2q3꠻}ͺ u$?Mt(B(HELCuIN:WB)_&C?xtn^С>>OX~c۾}7ٹ*}>j2'}e:t3.UJKѪy)S6y$mI5(kCڝU&*⹬<)o7N|KٗҮeJ_۟Ej'ws9a$ev_pHg=h~i׬=ǚ-cɰcG8V&cjx9}Dۘḹ9ejTO-sj֬"ǎiaZB&%2[Ybj">>GGk#x[M>7 + IDAT[P`kFS^^ 9}"?q5;.`kSa}cVLOFά_؛E+O{́UC^z\%k&˞#7s]{ne~n &*ZGQU)B6}켜'ќO/ID̿^37aۉIٯ)e"(O`\76}v[c$KQtV1,ÿ5A O>C+PXۡ`&cOF i!jXIci;~A -%R)ag&Jǚ: m2~ɮmH\>oP^9|%9+, nvQvB@5?G@vv^^ 9+!"Zkq-[Tbgw<>GnMHH8j5))xybii<*'˞[LۜJqy<|z?74Z>t_ѝa'88gs'}y'kN|c6p[WW,,lD *Uu bZOzѷOJ.7CoS֮8annLNmuW+ÐAM177ե`w7qhYGTT1g]tE5jְ˘_wQlz)OhSw8omFf@Ƙ3jdK(=#&n]n]]ٴ"vyQ-7X1ƎnG^ )ϹBqb0mOTLÞ> *1)R%1RPf9Ezy^oz.i0Kۜ}VI+3Z6S0~!$'Э>fF kKӌJ%'v„nnm6®שQ451c66y9{ޤz s3#\qqh({±>D$GzY7J0-ī&c+ʍ0l! b:EY6k *5@Iu÷-ԋQ(OQX`P->FXs\0 J纘-PTb6 41&2ߩuOɨFabxŲ_w_nEoĠFs&M\)!n 1] 2}.0`@YusQ >$zRұVZ?3KLBaⵐx)04yȋ8qLxbb J]֭kOPPxr9Coc_ΊFToW{:lř~G1sӺUe:wra/5jִc{zѦ*ϖmt#Vޤ2tզj0T^!Ob <}_DI8-]pH7W}+mq3Z\2csjִ9~xxz,G wrf0ХQ;߰y@lgYs9ql 3x^|tu38$*|߉qvp<yf<} kk3N?;Ntt&`ܘܽ5%8~nOBcwQ[t)A콒aC-jqBGsz-lt 0/|΅"Vn;NlFWߺ:d%6,fC"x<9ԬR&Kۜ>qiwr {QWg9s1c0{[pdZqow,gSwrz EszqԪR t>ejzϑl^җ-{X<}035VU[jVš^4ЄF}f`?JJ-C+< 7\ ]tF0|?櫂0F& ðEoV>t.Ro yo$[g0/1hԑ}rEl$1[^?\_n^u6$.U Bi[iAjJ5ebd¢Yt\Y_13K{Mh :`TZmN.zK;79Ryȋ<ω\zz-q ۿqn`׼qRn9yvƦ]DӭrvqT~݉mӏT5{,Fu[|OO,<+88ny:t[<EҳJ Kޯz?M32{' nУ{]|aa/(4w^,'TWdg[tm$^}6\0_/s'֬2UrΎ%W=nHؚjc ? "H>U%"]%~ML( L&l.C#KW:V:wraj!UeJ|Gje016M)V̘s,B!xcnG(kU`f;oB!īA(wY v~7oӳJbb]ZֵZbEB!BR%yoNݟL5fuFҲZ'.q'BH!u9~TG2\!z\zUi"/dY!ȲB]E,e=Dae=e=O=YxKzZ֬aǁ}#ShѼbƾÚ>7ӿ֭*0nLkMؖ3dPSnMN!Dߵ~]u316k8ScR}ƾq-xpKMCz6ĄBdaPfs=(\ُW_xU!-ŖX~)H5:u>Ua|stf_C )Eɒ[1! &8ƶb) G+էa6m*۶kV)*VҟOaLT3gzbƿǼ)S#ay>}1[`llȠAnDaMU!D>[_gkgbX~c[douEǒ< flŖ%}162#5a9}>c6ȐA65:G!ݤN{9wۿQ[e1py);@်1~I\ԟ>%HZ5 ѫPVU1čESuI[TePw/,S (VH/MgŊ}035Zt꼌aCѮ]5)L~qF B䓚5Yˎi!""? <<> YŊPr)/?CllbKիP Bsp_(!Qxs8C!EPw]X$7}imWwϽa|C)tĊ-R9vV8YqAO至cIvo׉N( !ěΠN4$mM\)gwzMzLMב''lH>ɉK 뾋ty>hƒHq]mhb# !+""jҴh^QcǍT8n{B N/*%I8-D>Uˎ;@\\eikqwoݻEpvv'YTe,qsLMTl_NBnkccmOl7w|#56p[_PLUhu%"(y: `Fr|K PԏPqFamAfh)w?!yQvz~L~}~ѰAy]" tS lm-qkR{ŀ&,Y B++S#2mL,&-{3]aj\Lؖ@\§G,Yz&ҼYE->MٲrB6FkʲMg3y{%Xb+8?8%o$%UͣQ4oPE+O1g#":6#)Wt; s we=RF<ˠn;I/4!$ZO1ՒsQuFʉ h}B'/%̛әӹqK6qGYS6V/Df.@ׅRDɼMZmYlΗ_aӖ4o?G$&a۟?`-;~GkUx?̈~}%ӚqcZs_C@|O!^ER]DŬ ;~ VS-V AP$OfSXѯK=Zނo&# d~B<'xȏM52)qa2z5?DIͤH99w? Pu|ɃHQ*r_жM5G3Wמ͛8:ǒ_i!IXX,VM3m+niBxx\ W9oMvJpF%JMf֋'$s77]53ذSSo]}[W4Z41נGp>#5gOx k[||>LQ!īv[{MKt:qϦucanLмQ6ri}XqIܘ֭*ӹ wxzõM+#śN֜"w_ǯ?7ܺB+3fqr,v]eμC<[|?#_Mys~L `Æo3ciiBuir,\|sg'p#~}R!E xe%cvΜetq3fw]([ƒ>1bm„\hB#X$vν'vB!^}x*Kz ރT‹3uj? E)GLƭq3'Z@⪉(̊cؼqs0*[$Q0'@Q$_gTz~1jXΒJHH4/q =\~(<~_mO]s'֬2k} Pԕ.AEVwB; 0|K׉ušՒCX~!D~3py?,XllEj}F]'c.'QXelWuQ2Cab4+( %$xr_hik߸yp?=}&%8$śHi!^gwd޼Z/@VΆشa7V]m+S#ay>}1[`llȠAnDc%meƏNBfhI1c[f.Ħh sj۪3@׽26ה c#C}؈xd:F\|]e-cY021m01CI޽014 ڌQ/ ! &X;TΆ 9:jW3ř\J~&pZй 05Yˎi!""? <˱o8ϠnB7ރ0CY 5aڒCDDųti#i׼J~9uސKr7S?;+=#I4pv, y: Y~E}3S9"Э`_4(Ʌu_ 'y"4a:.:Mx7N'xlCX)GVzS&~>s<:}ܻJppz~Q!=C~.śFi!^€Mسjq#S2_K֏Yjk8NK`[7 >D&,d5FFsz]״BMjUpf_NmCBchu [^aNíny|C15VޣKםζ 뻵^zB!Ҩ}BNN.nB?t,#ST~B֨@}*oȯi !h&ٓ_N]KK~}89&𽗞_ hҟ%OI8- 266qʔLm""6WW[]=f?7*h1nʖ-nE/8S!ȐƮ)Q#.c9{&~Y= aEX{6b^/cz?-VBdCeA57RoQPaa&&˚%tV>MDɻ`u j$i\Trb(V[~S6򋳒_i$[allſRDFZ9cؗ6~"*:~}oģFa_*S{BTMX!D-!ӂR Bϑܷ}Uk&m>^FTl" gޜO-ϽaT*o) !ȆTƨmP(r4꬝uaSϛA|wg F]'=(q6AQNUQDd/y/ti?1=J/~M/Oa-E%/$N 3!%EMrr*aaX=ww[qK6/ -6lJRd]W>WW܎caaL Xiʕ0EAA!GchxTP #3z+(K߼ܘòM-p>?Jnia[!1a``iW߻¾>}Yjq0lݏ~Fa=4^;ҶRfd ,W6 IDATBG܎caaL^Z g/tN 񂂂"OHcx{?fƴ2e(aƁ76֜k&$h޷v)F s=T'UPʌu zrOf'i# 8!FaimXl|e`@0v1-RC=V*x]5j$y(N QHV33#՘A6Vߪee6mRB?|jmU FU2j̦}gBfLm@alF G}0P߻D t02sBIF^a c'kN QV)M]g6qQԌ0{VG}UB"s)Z4@Oxd<Z>}P{̞ԁGoZN !OJnEJhbĄۿLھ1pr!!9݋PaٮʅM=#{^E OB sz |leߜ;1 ++Svfo9hB!.\B@PdCBchu [^ɲoa#,M5p*rBQyyeuMHNئҹ.ƃj?5S`Pe.x-DӸ|lՒW z&)y;sZB`gkI``twDF&0oaV< ޿Pj,}o f.ԩcOS ?ySZB+UH};!2*ygŶ{&՜Yr|@eiZ On52{VBX!DQ@Уh@tB.wG T!Eԙ=fw8йmM: ]c dwxd<?YY !G7O {$mjc ܺ]{x6}QX$BMFf #۶5%$y; (j%3hM؁9?}&V}Z| _$qy_ߥ !(HTga }F$D3;CrB!rGi! ɃtN}ooBH!īAPsSz߉;q*BQ4]l}Ҳ+Biɾ}W'kN !B!B!(trB!^[7n96B!BQ$B!k@>Ica.I!B!s$B!k㌧לd sLlmb.I!B!N !╦Vk+zR׵ fwDe !B!ȁB!x%%%ly6揾˯6B!B+8!BRbbY_kGRe !B!# BJx$?Vҕ@ku]BQ`4j(4.C!D!pZJN..!_ݺB k3JeyťvY+kz{?%]Kk԰KB}0~Ã(>ڜ/&, F@Էw)&5EͿG|qqsB=M黌WRC&D1ʠ,fҲ(.@ QG>QHa~Snǫ"00CC|5j$9F,)(Gys-fK Q4 w7M}_EG b(/Bv#_@0VTTJ%$ (O>vw)*88FmeVh^Q!D'z\L۔Ve) S6s*C%_}.*KB$>QoB@xD˯'{.%ҟO̡C]JӚ:Ӎ$$!k挧C7vyؖxiM/ҫK]}Qlm-Y?7_`]B)dfX:016dִhPߑVs~KB033#7Je""I8-)E adT4h믫jBb yrw׈Vr8F?nҫjfa(gW\ߥ:?0JX` , YӇ2vvRR.I!., ]_OY_E2inrlÛIi ڌE(8z̛h fN/}'-[Tbpw_}#x%'qz]PV_LhKӛry_swIyVZ-vrB"Rظ?YU3lH3LMUzLR ŵfY}UcҤ6|<`w%WE?`R]隇:IÂi:  3#wO|B`7$~E̱g(42uXb/)9IhX_PRFXf0y ?Fq!TRs 2bi'!(8!"@k&ґOi:1жml`?u&R] ~m{NC[KЪg_`6\!5b*w:B9gfl{${l-vܴ-[~0ؕ\-\"RSC= 8}ӧt4\|ЦFh4\v]7•C(k-y?0>|0s¹KormyV|DF6!⫭x}F׎eh{+6^w?< Aṫ;ܴ=AC?χ9?ns}eڥGv󭊻P!9ν 6󌊪O~Al+o"޲\˷2Rt g=( Aco$MQD6?+< 呲 i,9i;G"i"E敵i:!i:RtKYdً {a]1cZ7XO>Ͼ>]6Ϟ}\g~?ORll*&fhl6=nvO7\K}k^[L=-YQPLD!7a~콃9,خ^*UCgFdqqo3Xn+2-224Z""ٲ؂cedd3XBBZ1gNşP(dddB8z\bdii  6msEF&1z-wXRR:rkxKHH)sŲقc/KT.G1)lF6ڕ]}Vre(fnEͻo7gv\у)igg/f1 LW$lu`c̬*uE$OAߙrv'v| ZaNb+ݞ,)9]5j%$3s~ ZaQIlzw`U؏g5lXu("ks01\ڴs&6!D ,Ϻ,Z?I& dY/Y:Lc,ye'~&Lc7Ŀt03g 2%ʲ?e}gj1c,ɜlτ)K__g„8S Y, 3Xq 6}iɃ }(W o1P~s/0Ǎ L2fug]dy/dED&e+i+uLRmd~XQ ˇf"sFNj1G[X87G`PUÌ?<<>;?|Ǝm#&c-^ E}}}uhi)Kg\\ai*%x=+ZD{3ǃB ԯ>h"/boPS-wvyѣѣ{<==szAII7Cqۼ墋rg)-KT.'_pU;\FMp [[p]_C{FP`>Cbq3װxCKS ]:.~rWWdt2dePW]u tlZ`)8 5ExSw4︯a oXZJbSXleي`k ”?N͛o!68xchwQ9!K,%~ m-!OA¯o!;r x j; /O P)*V?!a~ 7ix !YwEAec@BM\47 o{XY]L B^Vm<\< :ӳq {Kp|6;e8oXy:Lԯ/J|]K8p9mOK–`Dz w2$?mj Cdt2< ޏw3&Wupwÿs`5*o#6!D|eotIHB-o!c H%˫"gkgHo  BRXV:2=V߿qoXrλFlJyF.vߜR|۟=E3¾FHH,"~?#>1j*ӢjD:I_Y1!!jy;DTUd$~%_ fk]lf :lă18t1FRFefQKfUhQ_M>_+  h Fvv~~8z)Ҳ{>!11Gv7(=sʅU B7eşSa֑06,u>w<}Mgd[D"܁n0m_qiV"fM mƒA=<ՈVU M:1%ͺn]bRRkݻ/ GO? ǽG&i]蚮ig'w} ШYS]-x$u!7oXY> IDATL\wEPTcy(;ުE wD /ӌ w}%SPK+4oag$c+PϟX|8$jC_H<&dEBS?zAf pGU;{^E@Xj eeY{Ӻb붜{ށo=w5kha.+^*~QBQ YX.R*]^7XS^`vy-¾[~?E٫rApK,gG9(cط uBR-:=pwHOƢװ2!J2p;rJu/ZoK_Xna=U7;<~58uƏh Z qoħ{H97_CYQnc.غ Dϡ{X/jX|ttHȮsQ9!Iwyk#y$Dc7HwOZ QNKhByW$W@࿹&F]JB!7{ 3⠸! .e> 6,q~)) 87G? c _HC*VPЏ|x+|[Gaպ||!nϩK-ƾ]xٿw?g gvGX*ve%YSb{o=-vR}AU۬|m&9M| ODNyVS@HLʀZA[[EE#G_io#iiر >OSl|c(]h W ر ~ڵ呐g[a8}4ų{ oßb=xü6oS@T.V]qA T*sA}cfcjrѭƎj~prвnw1ƍn,s>6o,sW5e͌07>=ٝ9_c=63ȴ>e{cGFEZFvx[s`޽ 6Wk3vĤI\)U4 '9n; JC` 䧟KOI`iy@di)?W~ H' 5] {@l4;..b d!}3׽Tȼ|΁оpt{?:"h!.V#~k _(%~%] 1rx+}jG7G[i|΅yo#lJ:J;zZTmCmiRwz޼Ytoh\'߾-Z"))#]vش_d:3}K@ÆcAB K?jQPCy/<*rh\yŻp4o\Fv}FǛ'_`.?˅ t5,\RѲ8yFMpAȗX=4P.xb0t!lX3*ձِ>(k-`7f=gL<S'u·D4l wDq98tTPT lѾuC[$uDF|Y7lP:ŃɆv ?q2 aWHч.CcĪ\4L?]<22.w/0uUiGOmV|mV>9M&M4kqX_$$cOq};uԃ2/KbEj6|-ԯ_Ǐahc >^HJJ`%!:\PX1󅚘(K攋Z`(ׯYǏy.AIIyٽ>l;-x8uEyiHJJ&|θbq< ;ŠEF+pgfg/5INZy822O<z CMGRYyy>6kiRR3q+DpIPν퇳`}lƴϹ?_d? a/U5zz8f;̙z.Q9JmB΀?OHJ#De /!ݢ?$5OKGmBe|Y?AL$#1Vj:85,#w<;ʓG}2x2 PoaA+T(IfwOL~ ){hh9?V鋳^avd.Y~ Y ĥ+0?Od6Vx C/HRӢj4j# 9"# M a}w: Yn[ًilaNn?44 vXLeO<+Qc%&v6m;wy1KX;طBc f(uWw.a?Ҳ߹ r.Vֵ떼u8T O|B`7N>766@C:lą_**c4p22Rس bѣt0ۘg7ڴuBk!($ʐ-3/0j+Be88؛CMUtmKi|0s¹K?3_1hh-AuXJӑ/׏q1h-Cva|<}}'jO^$,tSMńGVa)mBtNKXXr vDE$+ksӄ1!Hu썤)HYge&i߮ÞwJ GYo1ƆwrBC1r?4-F[ qU-&UPpKۮy Ęq.۞?qpX|kV ´]xi 2ȿx<Z@WG}+cP._c5t ֬iN,R28ylt)]f{>a͑<_m鉐/qyq-bj16H.ȩg?mu iO^9jޣQcqx< 33=N: ;HKG%|i*{M!KO?qm<9eH5RLҶP(̿LqI3 [CiWHwFa`Y徆@YY{wZAUUO; =HKwq=s )Ѣ./10f‘|m%Bj QsT)ϿƠe5ѣ]У{yڵkАUh۶>ddЯ1wo۷L@zuXZq$%# FvFlo׮BF۶ ~&?^ERQ3CLs;<cBZZ|/v>]ѣ[ӃCbq3nX*rG7~+츪1нaOc0HFA.{Ra-`ov@hhcHX W¢)&& ۱(eU꼄~݃ܤ})ԆdfP!{׷<5 uեcGޘ< sDرy9,4H|eAUU3w`+8 gڌVI?+@֨\ٳ_ѬYW >fʲU+/ia<.s,M:ر}$sDY43FznEM 7mjU)=} Y$K1 h/f#>KG ?z)Ic tŭX D$hfRp}C84)/ňx Rj4ŸGӤ(i8z%uw?1Ii&ZX2f:^}vv1(yP %gj];0{yy\y XrUDfb .c3{GNZf bޢgMB c*~&kX#.> .5Uǎn>ֈ$~%_ fk❛^Tۤm BxbBgR-ʖ]|8$jC_H<|N*XJ4Y!l;OAʪΐlGM +#5ѷOSL䆠X]]/]e0iG~"&,ϡWT_O-=w!{5}m+ S¾TlfMaݺ:O5* mmeq3`v۷:1طoL?ib͍bHFq !Fuӳh5;_[?b~[0z ԋ}|m Bx=KγMR-$Tuʔd# ȎX m@ڶlƄȷzμZ=~KBeɫBv2P͚`KV# ~b4|!nE}n1^.0ЯSH[>e; )XG} R3:zܼX堑ӤJp 0-ר p\7C7/Q7n ppRsJKKϧRPCqG< ((qЂEi.O R3= 8~`϶Qբc܆E/#l/.̔55"rv|6;@<]SLס(A[KE#mmw`3=k+aUI/د1&~[4LEEʘw(*n9K𺕳AOٯ&r@ɫBBM2')6 PTKK̳?KKO!I,ȸ OO2N-s5F]ET̜}YOEY6j[/jזVJi+o8n?Ců=DHEXiR%<cǔ}9C5u|}#q%v ; J|^i) s<$i0XpB*ϟc068Y\. IaQbJU.H!2{a+=GK8 mC)w?t}ePZon ̜{͛i#S4}8yE`ڡعyFuzΫ34%c6NyO'qԷ1kc ^|ZER^nlcBMi27 ['挈-J4h aGT r'܄;O gcix<v6fgsϞ9tgwѼYh{_Hltέ#1 A1z@D5tA-VI!blvOڴsLL 36]Ξ}oߢD!$$-[qB.\|~reXwM[Ĥ0cՅB),>;q91Ι9̊3w_֦Bӻogg/y/4k}֨j]qؙ"ɋ}2LvA ly?ɳm?֦f|ޏyx>_:md v3ij/byoۄR= Y$KKŘPPL|М ӓY,q]61Ws{LbSw뵝sخ=Y#URS3وQPXQ[3gh4{1ɶc K':/oLI) CY;vbbRʕWk?8Us/Zd!EIMރ1(LrGƭ#ͻoh| N{GmH_UI^8j _(ZY .`0kP$+x;?*8wv28 IDAT|"g:-LOBcȺy6gw3^9KHB~U#iҝBz$w8 WHKُAa%@Z#RTޝVkXl""2TKJJI ̚s[6 Yzx6 MVԙ8}z=M* y* .eMEE'c8Pϻ'ǡhܸ.ظTp~7a37-p?R}| Xa5}NC!-]`B)`Y鐨kV!z0n@\gtEI*Bhh}.⺄{g?4IDBzELFF\Rӳ1u(c Nn1\C7odg 1ov/sR@ C!$.. 3fG !,kW%_BUR-C`H\_DzG~2mq&Z07ou(dhZ"V;#itExX*3<-@I*>NyE,w(꘮nA\ծ-<"x?()aB8C""\C8t#"UuN [ێ\Q)$ Мӕ 51$'gpBw?XMtŽزNCKt_FIi:m))jfUwRRprUU9>'BVԇHArYC0gvOL~ OCj枮z[;|[WC<B!WYz6¼}08'r8yFMpAȗX=4PV:4"\O>Dv\A*$ێ<&X)\C¹T!)){!O: 8fSBVF؈Mǃf^̗׳g83N/p!bzZaECĉ4֭c-XA3ZsS_jTèT_ttT27[1)X즟^Cu=6 cBRQ ЁqX&]u89] >#PĊ i̱p! :[5+o|6j֣la EE><7n 1%4 ]żEagl˜밈 A3=C!RUщx ;:BxrG|Q4߿ /@=]UC!5 ǃZŔ'ǣGAx"H%{i'v9c϶Q0juXD= B.p#6f5äI >Ξ{uXJRe.T u1D{{?c 1xkuz:wLDĆ۱g6: R:*>"&(j(6.n'a`ƭ8r)Z6fGKs"BbcӐt ]cѧG"bSG}hi*cxڵ}}uC#TDlCWR4PVž]q >6P<7գ\ev)ҠSQjIţD,0.)>Z4ׅw#88ǎ?:$"bcR~{>Ĩ }`oNӤԢcS 2;5uL|aT _".> O=uHJPT4ONӎ4^l: 6.l@(QƬNݜ)ӳqD 9MݻѽqGKǃ $Llx%F>|BLL {ᤫ5ܥ-JD'6>Rb +sCqqi~229PQx-QB*\zDʋT9|W\Crr w8mqTT-JqO5Drr>p)Q PS#qwZV-ICoy0ʌ1wo/cǵ:,RN X 鐑$!6 Z%Χ :kX/KPLjJ{ HJY+[=Ut("O~Aط d͏ ,l 3d1'JIh6A/qU:jSG=x Q_y {:x mw I1޸s l`_f~M Ց\yԣs;thyQq6_I#E\u\yuNG4 2HIӤdcij($\X{PQar-NySGl!'+]q{xm s eCtΰiC:سi$^^8s 8[CT%F_⮋Tsfz `n+ϻ=8sΜahHeOB1~?tYH''02 %IC3ZG~d\\S!? r~~<y$n }!cZr(z -FM %=aWߡj g `ώQ_p zWW8sbRn[aur^9y'6_ U%VG[NLϮ͒3 :& <ȣfs|#`j]c? KYI9M*V-;!99Wǫ7a69L`jUo !1?@|B,4-8BhhU,4ͨ~d.">! Qo]zYp>惺ꊨ_O/\QE?}}uX[w@pplϟc[)Bjj&n]Eԯa?ih(q"QH'XF <: !샤?@gw!բ/$t!e.R {q<MC zhDl}{zaCZsP t7Y42_ꩢ(Çdf+rԣs&uӓp??$(8-$8zƎiubvmyťr,z7wX12Z#*x Bq`9DY b|z=>ݘ/k=[|esܸ< Vݳ a p }u||#*Z;k|4NjGgn\=uZk.@ZZv  LTz>-y}oFZI#:LsҒ 潌[J0.u-^w {]4ĢߝoV`Q|^BUy l[>X׹]x~w.`g@ <7zw彰d^.A%8uښ%x/㣏p^9Qú};ۇΥ[ [a9Y]5u,hOQq~duuFksk6оM}"﷼|-̝~Q ˗OqZ@ QWaل,,t]V¢)?o_Wc1|q Fnoc9Xp\?@b~a";wǽ!:r=?LrZ ?EF~5i?%;_sk&"C[4рp><߾F~&>;gnt-$&|-̝ ~/]uo 9X xr*P\[dυ;ϰ.KET@4ł+`Xb]c-n% bott"RvPrI93sfΞ3sϬFkc4*=J@+; SFuvTlYNț7)qߔ%ޭ,=9qd={H=qm"! ϟYxfxl6e< [½[S]QψG:p7'<Ž焣8CJ}”ܿ=צfx?-} XבYy} '텼IIdfffaS ':NXYV? LMu9qtONVǍnŋ[9- iG$ܢ~Fdd"v+p9@ Y$2/j#GQY~Hg~YRi/NZZ&!!ԬYU0ߍ hlÞmX2K(qjXVa7(: #4qCS 5RYW2b!&nMC*sx3.biϱT* sj~ϳsS,h5iEJj3+V aU&2j Kwyvص^ʵn_Emk}i±Zh .!]5 q ZYٴp5Nph,A1W;&:^KiiWǫbKYc\M=+ԲR\?1n1Lm2t!F8;и8A՜g*FL>̄m ;q9ˆ3\כsMM0ӣcM;YXFJj:3'-V 5aQK50Kf@f9E6͗{sC/aΒslZDoYi31ґgQH6BN9Cڭf>ϓ?5[mW_6։-oUO+3J\ߛ%/ax11IXi,lHg.L:y2'›5jTa.S ÛӸqM2ТJ -gĨCLM]C92 αsG?VDGGyojZgٹ/iΚj|AJJ3g/=31a8x 346LF:xyccJ ~9+W]ͭSG*URc;27ٓLچ-[n||f # C-jԨF:Ēŝh`;wcɟz߯'!!Nk8t(院60)'8:Y`SY} *?"o)."ҪʻHrț؊c#O:I$3$LTG@H]ix| &[`=;8ZAz ]YL yBKWZn-!W~(4K Jz푫VV#+&)͕(9 YGIՏw";9wHX!g\w3lHZ7+$*jN. !3CؤޏbnBoN#3gUiblÞY2l' ' a,kXUa7:#5qk|#dǁA}e_t[s4:?2Swqږ5M5M˕k'))̜^L!"h'RZ`pڵ ЯxҶj1`6lv,TU1m X\buAHH,maEuҤ ~黃q[M}c)?v$6(?pW$IAdK() i>Nq)? }O=?M?K/h߾KKhiRj]:ν`\7eVuc`ߦ|`Tc^/]yIPp,U5<_ԕd._/-zԳFXx<6_9/gзgcFgzw\/y/lUw_ЯWc\/yk%v.lyT;* ɉ7M$l rs6 @pOƩ&\9pظ$b㒊WI}kRICG䫿"G<#Vnpc`ƅ|`Tw~/~MbbmZ" )\v/-W'g.l ך @x՛<p۽WblC_z%c]g ?\N<[&{#6.~=5[έߑшwK]4i희7nXKzn~Ⱦ4.ϞG̣ O;,Zu?hhkġm| ?h;6 p=:8.\yQ>4V }ÙӘo߳z/8}Ƌ}sW8[oWKj}ƶ0n[߾ۧ1k׉i޻&mթȒŝ7`w!򁀀h,cS c …ee1y1bcpsCuh<  k%9OCbPlҍWIzH!$:% O;"=4?ǐ.Zj *UHk-=Ȋ&t9Z EAdG"WD{R!q)PxWdx_)V?~̎,)@u2_"WŌE6$"M=//klRiI(4D IY2߼-wݳrUy#t龎6?r|+>YӼgæ^蛈/;gMs` No\uH~}zCo֒Z_EoP'cwhh}wǢN,3gy|땀h,ΙфKff6G=b5ξ]HĩꧢHJJ+3"11[}ۤȼ!U5$]AG,ݟ鿝d̛ہ8&N>qU_*o[PPLI,r, 2v^|a2uxٳ^|]/cb̆ak[4 ?#-Y'99f؏pTQ_QZi}K.]γ^OzW8g{w4 ~MsxŁC:9-uZZ RwYpFܒ[\>@Q6kGd!).%gAZVc" asZBvv6j孊@"u<}f\e^[XoVwg;"Oj""}'?m{]vᅨ&`^Z/NmUTUINj65%@جl>Z37'<-,8t!A1Դ=zJr/ZtU%U~uD͛~|P$a$bQcUQ ֶʊ}{z;wyŰIT3ʌ+‹ L`׾;ܾH^ZEe%ٿ]C5Cm G]] fGZ9Mmk}9;DzxpcClxLBB oﴭ,脖 NkЭs} '=# ~MQWWbVlOJ.~hfgw&11/~~#:ڪђJj9'Ĺϙ2މw×)㝸xYY(j\e4YZ|cBNh+3vXB l}v.ѯG#V.\pCىB=Ck}θ>vM} ϓugh{YzMszx9]iTSGIAG&x+Š.?pSZX`6͚L h`:/E'mN}Jk}{7ASCIZcX-Y.YcUc46[ל1VƄ'k'oүocVDYYiK^m`Օ7#(`ujpk7uՕokă{2tC86c#6oȪgԭkֶ5}z7}%=/t+rt=z!;0N55fhh(ӫW#ZK xӳph2ǵwA^^?$N5ֵ>=ĉ'ԩc@;45U41wAVԸfPJJ%jsyv0MQ&OBΠpLIydǾ&}7Qj,,'5BT4 o7!If8z4zҷ#Qv$ WɄd'œUd{d՗ (HESiTXKKomZuKD*(6|mGrb5Ow%|>Ɋ{JeT4P&HSOEV?,"Ҫ J2|%H9?NW-cl26+\H!ܤ)~α[ae)~|cLxD}}_ !rJsΚΌ bqK<1tC9qy|\5^s1cZK=&Dif^3grNkrs/ i’CXW huu%:|W"'/SR?׎~SE$ET\V5&A؜;w.o5*$rr"23[r!"20ww|8 x =-+}%,,gw =u dD>۳aU8޼}Ͻӣ7=ádǞ;x xB_-0xbm;xNg_?3vǙ<ΑWO`jR J'E> eʌl^gs17Ͻ^1p>3lzuoH;II(2_:@hr4w_ԔśKqUV_JJ5D?iyyg~IzzpayvWnSO[saNvolX֝)sO27yvzt{8} .m';~5a؃nۘ<6Ջ;3vQ>)C/"*1nKub\r)eɪOR:G;,LMtqW8p!ǹ86ʼnLH:>ڿ2y <q+{0уy'>~o S$zͨ{0Z$~ͻg1odUE"""C3wN^>EeKI{ƵI=u eDۧ1a/Lvy󎟻mGСA~ȶٱO <';?PCޜU_DDݺL[gg&OK 쑥Ⱦ>/W|Y߫yق=UNɓx3SJw ux<={`Ԩæ!JCeS*k4*g#gXKfuZn YXGA?n_ܸ:>nb؏^ۻ1/Lc?޾_ѣ[~g\({ 0`xYy?1.~V9Ee=δVHteŒMZ w~V}+H: T${hߛ]>-nu){8~{?.ywwa־tR~ DY8я?K}> 'G=[o[ K-konaIyԶGEYPOOnfI9Ԯ3Pޣy[#[Y迀ڵQQQ`fhj*s~pљ0 uZQ]PTAhDZd-oJyEDZ(9 c{yk#-/ c?kg ~ѢըTNtV\pǶ]92 ]]U]{ZުIA}c/lTDtpǶ7]U]{_1ǽ1_l׭*2ض'GWW#kGm}}K;S!*iWA 4*]NI,o$"oC$oLڵ]_PKQ}%DzcyƨOHݣ?89*^m-N~Yq7Ƹ_/5}8^(|e/v_?+"F~5i_8r!JJ ԩ^yٔFXʗ! P/C@sa=z|)!@ɧt,•:zz}<9- C؜"ܺYyQS':X: }Ù4o2byy͢Yx\xچҝ瀞80W11Kg˶,^r3Z)PAxpcQAw}*]#-H+ߟSdTx9y~5<Αxj4sv`֯KQ@6ܽ<7p?5FߘHuhb1DXc#W07m$ϩG;tĠj4YSڕ]>SS]NIdn\DÆ煞:{ 2b /봶d6ΝS}6y!A xa ZڌY3+|& 5[1-h̾G_I]Fk;4=@޼rwEghoKBc'MsDQw-; f)wh4f_C(JZiܹ1E-Ix4ߟSkEOO;_9:Mn[ųc0cW;07a"yo$7*9@:CC-Mzz$)>ѫNS%pCeV鷓d^zìߑ,ɱQ]ϩ4kf5nfm-ƎiUjmӸ) fw`؃Ԙgش'6$[YTaRW ]qNUoђ&Vp3cPVR`=VfRXWfLsor1.Tj *1缰jƱ=Rʼ2W\Dܿ__E1CӤJn d@\gϺ-\xޏ'O°sp3*eo닚jN.5Mwl]53MsV'8![Q(."m&$1znS"R@m~28фQ/"%B@u6#aLUo@} PP3j?"e5'~w(B Pn"3l9+(HRϯb}! 8^"VY+Z.^l5UEj[Ln[5]FIܼqyA([GiF|OC-(sN|Ol[ ^%u޾}'S;g̝Uƌn*/ &&!CPWWo<+XZ4of[vM.hkv>{1!epsܯSMVZ6! .DD&rV@`SOO.F ~o1;~TXSK+^G$rR9uOGq+*gbC@P Q ,g.m3OOH)F u kcE爋Kfbm8ں*ZZ2~bc~\b {{DMLt &""70 A?D1dDŽz/H̀(6펼q=LlI92^XMl;*'+җdx_%;iWAUՑVڎ$I2C0V琫\(?x遼%=BvRܗOb@{[2@ᵋuͪja)G?^zѮDl]&'ye8J IDAT ϳXL+aPU&f̥v&%M=C|^Fѷx$ [[BMWW87"#_>̬Z8؛VV!Vfe]XY v茮)鄽e12C]%Uj2nL+7]Ƶ~L֭7hjy˴qu](MUE#CmOnCƈ!s;`C%]5vᅴ/_ԛwkSî:HLNz a^]geX'MFFV!~ԮπQSS5ͭRəgZL-a^9zqdZ:Xz;CrRtSDGGظA\| jd  c.,,M?s֋@ oDE%vLe KVqcf~( EUz0"euw@ηt:>F%)\UK4WL.m DȊ EhmEseJNGz~%zP5gfi ƙs^Jxì *UfԶ, F ] g] X (9Qoޱv;nMes Vug`\vE)-HV9oi( Pf52ef<;qk`?8qjjJ45G; G#u|y4_@ r"9  yڵŢc]w60AG Q5o7 g^kSLINzv&#+:g*&IүED"9LE0y[g{H^EI9:ĉț7Bm "_}ԳI=\\:J-n?rdEb_v. `aS{{kZ}Xh-77yb:w֬˳vk4ޑxvEĔoTT9oTreի>ιWhUIR%u (OK߹XZVf q→Mطu/~UE[נwF=UMoЧwc{;ЮM-V  巹8yDT2ч$v?>-W^i.9GMU[a縊W^2eSi7K@x<}.Ф*2xAi;^DPr. ?}j*cs3ㇷĮ*.0e0*1)pO䷭ O`7޽KG>CϾ,FhPSSdٯLgE@4xz6$ icDZUN"]4"5|"5m}:43 OMGȊ #2SxF!t*OXn%5;LL[2\@ӌRk@yA%p9vxŁC:'msݏ#:99]ƴƮJ.^~ɔI](97*@ **bTM0'ի2s?{4zUQV$-53grrr(H j[j߽K{ ֌8WD5Cm7?LXZTġ:$=*Q^ES2о6ÜHֈne|w¨6A-c |hJߞEyZ؛saaLC]ym\ uD7n(Q@y55kVAIݯgkӧ >y ^h% PaWDV+2_&+1r@A)7Yδ>Djd&3"Um(XX^EIJ&d +6\( )Ŷ9وrJp])]>[asZ8s֋%PpujPFf={+lLL>Զ5aq[Arr:Wp#lի>ߧr7?oXء.!!̛L?J:<\ഄSyqj]iuu%:M߰=ZD`zߣ'a +cw4BB01֡6~Ѣ@EǩfӬڀe=&F:{/YS3ՕX^}S?K+  BEY<\Euj[jr~yߗ\Xk{` 9g¤#bjZzҤqzR8r!Sg'/fͪ=l:?İA}cooڍZp'rSUw_q5˺bbKpp,ƻpӞRЪDǼg:7OU-6 | ^Y yE8kǔ'ؼip~?AFFWh+kc]Cb5HSZ*t\V?rFw\ϫ7)%A{ٴ'/e$={ȽYI8.EX;Ld ,V=ZZ*tրVWUrs*>>Q뿻( P,gw"ҪJ-/2!i}oTmG02üy Ci,z@ݣ\LeRCuDd&ieG$ZEV\8)ǒ{3W6Jx7 ىoI=?Ik{|(=nO',]qn,Zr5+T1{b{]ٍ@DF$2[ ݻ~Co9vo7ܘoK~J7UQIeu'usry3vgq+o5ʄ.{kbkUG 6]~aƾŒ0pO@iӥ-w/lҺ_H{5ؤjc]%;`|Z ;kWKgZ)k# ;ga!@p7WKt8t;@p9ߵUj|uhjZj9@NVV6*孊@E؜(uyѢeyբ /Gzzfy! Po'Tux:FG߀ΤB.TH /\5>ǖVgLMt9}t8sD~c,5,YYi9r>O@_3a}:Ԕrv *\2ñ%wXr!7Ώa}sIɣ y:FbP5\`Ϭ)/USS\8]05DF,I4lh"5,YYi'9``͘5|u)q8a^ uEu*eCc͛H'KVVrhmFc5D:+J)1&"%j@ʊUؕ# ] I4lP]";h<{o'Bp ؕMXD*>@nyRz%b>)HJJlNMq"7ݗ^}vUZ 9\ԉ嫯>˰12dk2ft+-&Np@YY!CX#_IIi9)S-N*}Wzj jĉ&_ߍn ˒&6@$ΰ!:?Lҷ#I=*_٩I>QԨQ1^O؜~5?^]]56 Swܦg8Q* .CXx  .qwkt}}MYҲ"W! 5[ *NIFIqdwi\Tb]#Sn @G[s ]¯g˒k7_ޕɴt`&w#ߥJ Z9sIQVViun{Jl\R>tu%ҢY΃{wѲ%׸1th3\?mcnҪ0/ (p &"uB'!ҨT(,YYi񑤞_^(jMe(Eڭd''HU5 j史$ROOaW'ۚX׬^zwݚJ^)®xҪ'R7z6J4TTQT/oUj,qL.^z/giC/f9oy1׶s7oޱdIOQ]uPVR 8Dボ|2"d(٢Yhq ݘ[3iīb\-h,+vcb%DşK9Em$KlqIZtWOƸvAX sI16AYYy! +K¼![T9kvtmۯ#gXG-"DP7Kb5h,X$K4vc,`7ĨĎXA+ T  ( ,~pwv{gvhzeUb@nFR>N K8{V5 ]T*5NslFe3'9)JԦ~XJt uԋq%#5a8|#y Rڒy"iɬ3_c6mcC}FnF69~kKotB33c3c^Qϐϛ鷳1r i>F69 >@TƩLT!1"/}z|AuoAфҾ4 &D$++"ޯd;~7bWrڅ ԄM'_ way8t#ү(imAi?:ɖTPpf^}YY nG["sAQhjVK5iͨlV155uYp~pOB1E*D^-]}Hr/6鷥 fSwuImAC9|?-Dv z]\zHŊɖ˗ij=tV+Nbkk{ϒ1"%F<~ң / OkBc3*zTf7M%ڑ A~n.WMn ҌRBAR\J%s }OMM ޵.W%+]I"ҐQ!")k7&22ؕM7rOE8 "7<MjK-z#o'L~RiRp،f3Im/-YӸAYnyl;iK"w1ekx{?aڔ0bI>QQ٬3|X3֮LjLc;pKLQ|^j+B䤄 ?cP/ @ 706 %~Ԋ96YG/u_EbL P[Amib3RSs >v}BdUJbBr1& mFѢ?εKeLk`~7e Ҍvy_qvK%>wd%RQ!"[x]yDժJQ`TP[O^FͶ-z͟&3˭̛1 ͙ kIԳOwFjְtR}֤j}W*Ke3Iv$-,״ysNkze8tf}BظxNxܡAߨYg[t$< IDATy[;q#RٌAҝ]:dzO --uQiQ9A]{<o+66}hPLʶ7P-7&ҭ[v_7ufεY_i1i]9sA2:,}EXoE[QʦQ~5EXsPAQ7b/ 1)1{fa:2zNTj;ڟcYω/+7Rө4W':tµ(ƍniA)]=}:+5}ʇ)ǚҥS-VЯ|'FӦU%{ڥ~I"RQJ|9Ko`|76qA2z8Y2gJFD#Oq-R=\啊Yphj4s:~Xu+{eyo3/$^[5ީ6Q:W*fe™t6ҖSni,w=;v^.]jӽk:JP^X1xFuk{gl/wpk &ҡʬ8f3S0)w-Y*gzv캜m]:բu-_C3 M5+{ҩc7:bl6Gw(oX>~VsZdgS]E(aFcD;D2EӬΛV= l( {.S־(KI]Vo:-"qe(]:YClC]}߼GVĴ3v캔YN]Ddl?xk)bF#N)!Aj(tƎߕ*]G^bl흘-B(HK`줿7 +X?GE":]c##y>wɜ3/,DvT: z C"NowJבq'̗~EOFVDw[J,2Y>ry4sdd,..R: !Qo|Α|X0D!tMќ\ty@u@0ҕAJ!Dnr8sťJ!8}rxkh"٭ZU^yt"4WGNm঄ղynȹcy|o:gS{㬊aUoNy.m!rUQ6ڋS>]Ӡ=R :!cee†}ӽA2@tB(KeV 0_~V+70_sh+y !w:W'ޒ;>'w:'GQr9-Ç!)tNj֜&{kEѼI9j4H#q:%OCS*@Tfccـm* G.īX(HZV܏x\MccBZka8.4ʗ+ϝ,SʄgAԯkU|-7kZ{>"FMױ?oOhf[v\Ho e@6rx-#|}_6hh.[Ko|6 #vL&җC[!.x?> A\tʶє Q3%&; ~RZ)n|Lt.ee8%ߘ3|>A4m,}Pr9-c:(ţQ:C @%Sm72֦M9Kihղ"*}W۳~cRh,<:O^gr*MS>9B(Ħ9~C3=;!$49ucRس? V(ث7;jҸ~YOGڧȏll fάt^h=ꤧ}ʕi;cj*Mcg܏ KD,E3_z^$F bݖ2$12\bD0*Ӣza4e뢭U7tݕ8 !ruB3#ݻISuFNy1W0wVGjմMSISd,{drZ(L\ٚBDHAiX ]{X8ueȗ[x$VCw*1u>*:5Ky]?|r-l8Mf|Dݤ 9OЦeEO3dU}#'ngxPߏiCHh4MݓKQ Z mZWf괽T2:Kr;c׬D 3nR__CC=@WhbNnR!1T@쑕Kby D6Z3"wijڴQt*ZEKmFRmzOJ0oOyo88X)FVviΟU: +)Z[q8o[~*)eر3x#P,v'<<'nm%7OCݚO,S>R-)mbQ#b8zʇm]]*;gCk?CfL'DţG,Xx$8vm\],mXΓfh  {#I#fl];Bf?"!<q5wTEHx~vH*Þbc D NS%)omڽ[g"(b|sÔm7c۰v}t>yLN7~.o:Gթm 29-c1vnqbr/]~!**eۋiaVa-.MI.]yKmBTIU+d]vZvXcb4" K2/2R c`mlGG+%TFEFH/ Z]jOiJ jH\3Vm 2S.{=b?cjT/eTjov0b6Z]C1\I"6 e/oIeadeeB``atiޤ&&k[O:bX5ᯭa>vs%qN('}>-W5ؾcID#i ܏g@ԙ{< eDt|:wg: X!)7uPp${Q0H/}-[Tc'y)cnjU }! kt7nQ ;x_/o`m*K q jb @b3"~j#D;ܧ| Rk}E^cM #mFѢ?p15'AcҧMBKrN7HlSSC) DEadt("{3u>%1t{oFK㺴{1e{s5tI7;js3ĴB,y H0֦;)FNh40KACi e z}RT:4hPd%֮]ܠ)F DƴiQ99A24/Gv۵ۋNOK=AA\'[6e!!QXZ)Ff[z_;x6Ti!-g֩a!(ti64 "B zz@ewH-[Vohݦ3ZW0F1+S,ȏB!rP|i29-FFKP:E&EyxŹaj.sm59PPVow&"g%Ť(BQhh5jt29drZd*227SBq)LM !!A1-,?g)^Tt>YҡQ B BQ0iju#;/Qin?Ǚ$j*{~i8xU:!?v]EAZ~?C! 5JndrZdΒq?KIޫ?{*xK:g}C}WjJ!D%x.*BBE*^29-2U j c}ƎyEP^͆+W)x 1:^~]{C";{5B_Ot(BXzZ :y|U$;B7'"Sebbl@yb|>TR: 6mO:R: ! M9L+wN "1>.F9-JR:E&E-_I#ڽW})x t(B{"K֦ҡQ/IZ!";im[U:Bù)^RiI! i=Bl&#BCZE+xMk7OIA JHH4mt(BxZ]9-@LN !J&ȧ{ 콪t5\@i[ E|oNeI7%D.Si!I!Bd3"jnt5,[yC?ѭSmPJZ!;Bl%BS&&(=򉧁DDPJP|b]3SCPj5 KBdrZ|=X}})uߣaQh*9-I끞X*B)"{]5t"1:]xsòJ"DV*t(BzzrB%ɪVI (:ϱ< ۗԭkޒ !GNE:97rKȁ}éQTflg355 >>tyYr 6@5CBEUB朖B!ěir励d'e'ey>-k\{q*OeӦ}S? (YҌ[s%Wϋg)b?:Tg/e:|XC0(>pTQ: ! i!DB!i۷bk7ŋbggI6TnÔ%G mʴlYC7ߍh|)[+Q,[n_$G^vԛ({ԭeVړIHi!IZ!"{m+sXLe v\nu9~l~̜Gbܼ> ߿Ǎus"&K9G ΞKdw'O|MVPTL!>&sd~6晞Kfǽ2:tn_p:c!i"b\2U={0U˰O1|=es26 z nxLt.K~89٢QL=8OHz5t#U177tN#C= xt("yҧG}@X4}S: ! 9-sC!Vjrti ֯ì9\u:7nвe4*T(Μ1r+e'M|> `mmN4h8χnˑ-^++n)W&kVD 3,, JS߬q퉣c1ڴD6Upn25gfz>etiggɎ)_q &fҮ4jT6ʕGTw:sjh滥:+.}1X:]FG*1GoQ5}z7Xm+¥|JZ#>Ϫ{ ƥB6o>w.j}/u)%KSXPRMBd/==5:9-vrZVXBPMNwزaa̛Ɲ;iy{?nܻ/w>BB8to?MlS?,=FXX4xQ;?i !<<{zGdD,KW8_ -踌/sȨΎtяNԹqTupH#^ ıd6ϔ>wVILL]ND|}{-#pduMKSwF}V>ťNQX o'J"GMrŕE|OK=U:! %F.^H{紤B!Jz7''TX}KlЗ f'7o>aaQl?}oq׭?ͺ6g萦\3}Wu 99ʖJw2m ˜{|!+G__CllEQ '[v== M8~#>&ճ6I+VJ!DUڿWM0($/xyrZCB!Js_ϞΝjbjjÛS|ڻk.ͣG]片]zGfh2)ΘШQYUT)ɠcbb@M'[Νgl3G|Ii[ # * IDAT ~2:.{:wEj6)׺u%zt˖m_lQ[i쀩ݺեYrlr~´)baaa)jiװ4;;`bbY fki#>*&FGg+ZU]'.NlRZ\\J&Q iP q{q?q'֭?_0^ıQ"ժdXPP$?YE5%|;z͟'OJ>Rټ?[gxy_{_7fz>itfףU#Lq۷&1lHS>d7o>o ԬetVW F_skV|yeӋwgiC?w{*{ұaQ ܸſJ/B$KsBFHϧ-ƾW3l{gSD"ȍ>4xv՝իzԺ]˺w 9SQ },bB䔐¢jʘͼ`DB/>Ț=C2dfҡ[ ՝.sT.cff+a711̐:v҇zudbZl'a21-$/BQiIJlSDt?zUعc0\On `Ԯ]w/_lt6#ʿw6zφMgmPZ΃?vP: ! MǵCBOD"Y|౤BBG~^jr`괽LW0y߷N["Oۨ_ ">>P=8;XXaUDP(U}CBO+y |rB:}ޒ !GNE:v,kee†}7u}=%MX[lYcnΜx#-\*vD綥+O&Y.z'u̦Dk:.1_qt?mŔmd|+֜bqvBc>8/l;~0,{]\>ZLii=Jٷd |v /uL{-TOO&>>e&Msܫ[``zwT4Y)s=4jۼnؕHw}ʓLq_o⥔F>!֌a O1L P;g^Yu}[ƄOnH}1Wꥻr(ijEf$?b-%zl8i!r3hdne,;yq^n\՝ɶ?/l rhb^O\O1}\ը'd(z H& 5tɏJiӿ+ꉱ>LC Ҕm+gdI3kNs8y_}-:⣹u" u)Fœ'aTP"KϞϤin`Ȉ\zn[>O?-?Z6Enܽ,X1M,X|Xxdk;C/vSƜ{avɧKS6I_Kvոuv<#?oFޫ ݆֝{3R^-'IW̡iܠ, h_ v$ >VC\\lɖ'УG]XCTt\ ȨX_;tq￞7z&>]Ga,^r3chGѱj):D=Vkelt),c#.װDG?S%?lӔ_ ^W΅{Fl٢X[;O12c@F,^r,{OHd=*F%p-zFP8}n?pP6v.:D]Q ? Swqt"*:u b"'n˼GR$eN2'`l:/F+9ǭ;Oq,Yr3q]& (HG~TTCKp%4ϜGj6.XɒfxzOnooݻ%5 &w< *K /.U5w>÷H fL4Pw uɴbeIxCb#t7)Y(bܖorB䊒%<1O?|b?|3MI:{ܽ@rܟd26LNFGe:\663gVGLxoǏXQΞKX}֘-[')^[f8v6/(.ݎ.T7Mnx?wߣ~w Vo&:xISW)#6^9;W[r)>\ 33SMqx_~m,s^ ՛b/n 6ƥI9 `DFƲGN"$4:χ6j5'(Q̔Qy;WC\XރO; [LQE걥EC"Ӕ([[ ƌہVj_< T#hN9v6_}ق+O'yBb:i= %ݕĘtAw0$FsYebAbu$Kx|#FKbl ADFKF;{཯ ?CKw#>hW<8Ӝ:LZ=AҹB=9;W#\XzOH"Z&$$*[FdrPԼwhTtX[g.L/w0N9ߛ?pp0 XY~֔$-ز/>LJڷZ8{$geᴏҕ.eeX\} >wXwM?в|d i%r7juھG딶ƵYkrd |O/077d3 Ҕ jg| IgrZ[%1{EIbOGiTz$&&F%a?S%z7.M[֠ߨf??hJ@?e0p̉=6#3+iIx||hjq/)?c_Aw3_}Ⴏ3s3Co-S5|giѢYyR_yiN%jHeVG׺DFxEw*1w.DNغ]>FVbmPi-*r(nLuQ7S)*[t>X+5)Gu4u,[s]ˏy`m\*2w#Qpij ~i+Rs4oV.k?iTFzϋM֕;[oL6紪f30_M$>FeVL Aeݢ;'?"n4kP5=V}&ѝەߤF\L]b,UL>|Լ<ݻWiAڶDtҙlي|_ӦU%ΗDVaZd:6TX}}MʶN\0MK077Lˢ&}/255{z,_q[[ {G!8უsAgaaOZ6zco!66>eK~ԨQ*My''[BCSOS.#1Yj_0eM귚<_JܖnZ ǡ~MFkz_Dc1_bd*W7oNJ#z[#P[ڢBBd}3Ia}=qX/гk=<ݿ&W-'[\y]Rձxql>v-xG!C9W/(DnZg}!Dp3s]?N`lNDD2v_жe%܎yc4|kly/-ֶx vԎlۑ('Oߥ\ i5jQBq(/9ʳHڶIsX3DDvě;/c,%ۧaR{~ʕ&K)m9H'jHTF9CS:jJD>Ĉ b- !<V{_X'F܉ _;~:kGH'nN~ݷ} LP[!! A~H||]>YŢ]30'w2`nnHεi/pn|LrE&ʗ/(!!QV0ooɊ|]~ }LMZ-Ç57-]*0wrv<ޒ?JY[0.44m^聑X5a-h2KaU7:!SxD AQM36 PB Grht:Fst`-< Q2?Z*0aL[Oaogҹ]RUͶ9  uAT,_ ˤKOONս2t3*MrlMΧCFͶ6:NdI3 fBCy jIsXɩS"cToK~$>FS1&]iƶ*&v^VW3ǣ N?jAKUݨm*aDBB=b4h5rϟK !wL8ʬ#KUx\pM\ӡFe L=1ZQ)u =%ܟlA&sXSFFKȶQF@_^J/1tBRhlC\Û+JQXҡQ ,[}2EyJ"xIHH'EEȟS1xB l#kV5VlY+Z'SVI!D!ꝊvI||ҡk6wzJ!D>vt(Bthjt-DNi!PV!^'+E&(T*_=_Q:!>>޼B&҄GNܦErh42,"/h4Lt'&@KN!\ QH^[)Fo/>z:jJP(o9KOI!*VNtrN29-V&N*629-D!adG9WPMkJ!D0#}Z+Z<*紤BBGʲLNc-\*0^'-Qԩc2*ѾG)7kk>kM>8#C:] >5JKeh|^ct85m;.l ;/dij.!ȋ\7zҿG?Y>@JPGf-:siz~ DAw=4j5ԩ7Rly1K2GbS"u!t)#m5=e_ӻDlE S'!ΙY|)00^Qx*TʬRݿćd4qϹTVI?g|]p6K~K˅U &Vf̙^\GSٴ_~}վ%>9;|e /zXqѣɹAR6E8LP+OY?lȱ[tU_{RmwaQ\][QA,{Okb=؍Kb-M>MF(X"+pI;3νwbQ|/N'{1q'&6.CZ!7bQ1q\k۲7tM D^vMv_:uifݸw&fa \L^zD͋(l>^{evGU cPS/l&6:B"7:~y;?Nu \{1|L{t2U_H ۏ:l t>\O.ŋxi AsvmB`P8\fό{ _GTZVWY?!$$T}k}%S7֮:JuX_}+cd<[l']zqiyªg)UPkWp'_҄a`meXKo=!Gw_]+۾קּ?Ǐߴײ{OƣIY@;kK4gP۲e9xzuGݙAj12RӢEy5rA_eBҚ9Ġk_;IE( rp+$!2/ai 3kBiVK{yxxX[ZiXk IDATx4-U^ fXY0lHMz"U:lC4jX33#ãGϸ?TBi\Ou}HLL|rKKeuݻJɒNR?؀~}j˯cxx4Wӡ}m jT/DD;\'7fM1>I'I;rlS,-_r52.E06R'Vѭ(\`,IJMOp_oj_h=Ƕ}P*rx'**?/~c)'NXBFxO:WpǏQ`ڹ_-,=@XX4mrMB3ՙ9UqwS%޻hy0xvS:V"7kF{x6<փbx=oWQL}'dW!s_R+bÔ/gKt& NBFFjj,i;XYbxeu=|O?8wfG0.6{ wh-T䔁l~ϞݧͶmnJ,+< 5RI׬,?ZΎ Sv2|>h3N QS6oO0^%?XQKNI q3ek=[{R1ϠkY;&L[ݯ8,Dڥr,V!r֭*zաC>UK \1  ɵJ'>&4eAW$b5cJ{mP)fVhiS܈^3ey6.JҨ5~  X1K~bZyV&MN4!4Tr-o˄;>j 4Oԕk~0!ZzVBs=Bc02Rs^(Jk2 HLL?SײmÏG{Ab&݄[U%?(˲菓 TOZIk6xѳkwRWttfҞ(eTi4T(tЧgM>dּXZ069Bti mu'p WH+q*iCz8ӭG2k,-3u*D^uC>EuH Ç̚O{>"m oCGܥw{$#ja[h+h@0l<MbNEajqﲺ'B9pȗ){y/ХrJ٤ҠTj_ӫ>c7IאYr 9C@ČK*߭\G_(`E˥-%3s!ssco!x+˔ZZ'z*]˾vǺ^0rD#jzbTT,Ʃף{u֮wBb}0u0x|PJS)hmFk9#w8Z9~w=jR)_M+G"#1D>{A9Z vܐfF4D* ]֓ ѻk 4s4V!"?Ǵ반s>*fl̝wޟ֢P!3j[ti9ٙ S+0j=91ՅxP(&*0i^ߝW>/Bdۏi~1kKU2]oӏ8rh~~O8vֻ ]ŧNٙӪDVդJJ$_O{Q9jp?b L;E[y=^oI}nEq!R/0n;~_'c# To<WZB)IZ\(888J(͛5 sG6e3t- ڀc)g4Cѩ.΅n&k ^< £i9>nsߴK.2e9'Bh8zC(fͤ8}_aǚ~`omeur2T!'OQߙ1m^6*X0}[[sg9NGiU 0j?۞ĝ݊ٸPڕ%zxO#J=RKLzYA&Ȗ}TVI,4m7&xp.w^fǖåt&OXދOhuW;֦S!"gd@#GoZ֬{Ţufά-9 &p5kH~w5T\Sڵ*]-'&&'F3~\L- 3;uҤ'>y-<ϱ4kZ f:|#ǎȚ.Tei'Z/RLLM3xVуq8 [γqU}б|܉R)ٲ>(Yy&#&3RZWBK% ~aa5.o]:˄x陵(s*U+D +B0gT.u0ĻD,F5Q?*-s-.1z ۞Z5K{pR.3ٰ<J_H{jM0ibs ߄su 6oO2E-F#r qA/:uB.UyCIg=Q7<{-p@D|}ExqkZPKGnb8xa!D [fTߡ!@kXB~@ܹ)^3_p eRzHܧπXCa%7o>bL\ߡet.}EJ,;`ֳG 8osޟbJO}^ @T~`V&20-"WJZ!yZwe#Υ7a{tSSCڷĂ;j,쿍ߗC/^ijw5IӦeuaF1}w֝GjC<㏕ݭB! 7-Z">^]dp:z Zc.kcSO2,vn[ ;g5TGK`nnPF"6ŬB5ϜB/Jdt8?ǜ8 1!qRaͯ`@C̰lJO}{O{դpL>9̈9tWߡs?#>!yBbhXG"SU$SE~B%B) w# ȗw˙*׷6_NhUnG+糁*{mM5"bS&i=B, .Eq^(;!D6QҋK"k I!Bd!el][w6lWkU4wwBlV+I"ӤCfN !Y&BT*%eJX$03ΜGw *}"FڜӒCciB!D"C[UۄF;lsGRd!}"Dl'J!Z%D[i=dBU@D!D۔~&b*,~\ c T$&&sgTﰄxc/G6P">o~r2I%e\`d;@ߡIѠV)yn2a_I\/"2=9z▾CB*3BChEE0A]~[п_ՄFacc."ת^E s*JЬi!DM҃}#""Dj%U*gҞI\/"28,̍ү:JM!ckg w8BsR{4"sw+)M9!}J( RdpZe֦4_;T<"Y,nEٹy Fj}$D4, 4q LL!rX1ڔjՊ;!9uv "CDBN͛@#>POߡ%˜Ke@rNds:xE;Jb+qn BM8VNPz n0ϋOp]}{ϩ[?P̌ȍΜϿwFQ NgU͚%>abHu*"(gORsAU\NtZΑmqxI]xs.~fUީv+t.F?ΰpqgfO,%$1䦾Grfp]ݻ$i{s[! C!BsB!xWdpZ!B!B!;'B!B!B!9B!B!BB!B!BwN3rv<7[adRV֩UcFJ Ygyȋv#_LCL9:Xk@ޑT㱞;2p9SSC,̍s<!^dCD7^ {֬Y3ǦxmDOפKe\ٿw!A6pαw9}KFfP\ri{r\fx a9sbPsrҦ$f_b3 gy6n†u}S\J.9w V?'n2_~9κ}ʟ˜O/2ۮ28-34r!($:Jdd }">}8ϭ7ZO>38w>/b{:Nޢi:*By;fGXx4,9AhXM{(RC)b#׷67hRUK$+377ť0K]@rvx.SM-n1ؚx#hb{wEPڔ 'CmH;/xèݛr;1[&yʋ} I|{lOai"v.5*3c^¢ ƣY9ta.?籬]K9MYީjO7{fܣ}Ozаh<ΝKfuWzdߞ0fDcTJ%QQq)KH4Hj5M[S,zqh:Oϡo/5fW,[ԝ_ңޱ8w^˔.~64%g:NIc\ƹ0>dO] :MSFImBȵ<0vܒUfIeW>w |+ɭ;?lX)6<bf< }̭=7n="E|re`+MUkY[ݜb;uZ{r<>_JҭcUNɃ3sa s`Xsati_E"z 7Oa^­S6e1ǎ|N.UT鱌$DRwl|>ղKqI,22Wׯ6tTD }Y:8zx$C8Zpd&~AP,L_@ڷfS '$h6Ү{:yuϽŢPL>[ٸ}j9z(0#!ݿi,~LŏAw~Sm@_&LU fb{fy-P(0:C*IҔA]5JrCa(*m.0FmR02è͗$^%_0A JGwA\LrY⽋JTI]7(08 K LL)f_tfPua2`&\YIQ.y4-ש_c@tN]ЭK5NŃsc:sgҷ:){e2Me?<ԭ]F0p^ҲJwcWڀ3; ilX'S};]e\sq"w'Zm<c>ym)lk[ܸ0eJj_W'աraunYxp6i<մv*U'1qAwfr$O=O/TJn_"U) fj߭ߞΆ/AZn]q<i.k[E{n>$&ĥ@݋Qz \ & ,}{JkZy<yP֥=V:33}QWvlH.U3ݮ28-;P̊K{Q7|U.΅Y0cF|Dz0lץzUGl)lSgȍ|>n*h5}7n3>{+~A4a2g3}^V,SB4,MQXs1/8Y҅q1!#71gz*D~j=tc'nQ-v!qXZhoڽׇ;w~FZiԠ4k$!QC:N媗^@(w=šW}q1pUױLLyRxʙ"%{[s\ V[|9[QfIZrzncޔ>)sԮ^B\އM;.\ue(b\ӏQ7eN% Ѭq1/8FLWnV|4ŇP֥҄aX'YK7,62OW)GEDD_ظ["YPpjZ!|dc^{G_Qظ1 U{Hw};wR.316XQK&kF\ }ٴf0}V,IY}FYڲ=}v b1qG E1+^ ƭ\ T֟k^[Qc?_1h`:B^kGcmm >!fnL:J(Ȋ=3]gj۠R3;W Ȝm[;uN{dVo}\19E  ˻ҬYYyM;.F/BâhA9.] b<{G|Y<=:WãIYgpI"`>lMgp,\t3bŸ:vq.1y2RFIߦ+/eE"`ޏ y MG0KI7{?©ouxf٧~Ǚl$''4l]f0lfNnAۏ+,+joM4y&ӥroBhVp~mdl'0s 0?y4ni7;V~}U_\ȒY΋ݫgas jt$iNC]H|x;rD &Kf>|e7ihˆ7Q:c^Mtqv1M ~&/vGI=ĝہa" E6胲Qt%zg2#h?EIgw܉o1܎gSae.JR+aJEB _W HLL}ԉiQŴۧ k]?&M݅}t鱂sۦ9 Mk7Ο`˟aނw\V\ Pڹ*Zmi^ՄXP(QXڒ4|B(reBNo$~b֍ư;&=W% %&$b_?n97@K{A6_ЦL1ucڦ )ԒćӁ:(U(m]P9VQ zn°^/Z[M)=,R}ܽN߮#ۺke,OljK@TPp}2ESKg˶ ̜ v2x`=MnI@@vȫ}[v}'v_&[xV-\9|&V=;Ohټ<tiѭzȶE ~y<5i] \*K# "]?ʮWiӪ >!''N1˝ \iSm^ݑqvl[lRuv4y:Gplz-˧ȨښZ'ɬ>KOSm" Ou!r(jjFYSrkpCB)Z2Ͳ>sK|պZw;[s ϒ_XvzuZY`bb@tvVcqkR~%&jP(/.t[UfIV_lj[f]%$$r >ncqkpm>P{;Kߣkft^ut2 wy/vдN)^+XGOAQt>#8u,_ыU+bΐ~XCg,6_\ʆ1~_瓩>Aq.8mG=;\I4L;A!ԫ4B]RFuYGO.:ΊgqNs2:VB-W>ahJQH||Bu)Z,EjhM`` jkMNf k)GKI3~bh ԃ.`n٬i[Fe(1D =Kg}DPITQ TN՟qGajM;(m]0;>޻Ҿ !>Vc%R foIKuñOWMωcl&:&W(RCCISussc S%&jKUkmtrw;u:#zP|RLQoVa3Y0dp}ǒSS-רai֮b'7n}qJ2k"W)yB}ŧמzN@@8q̐Bv^Ftl[>S7^Tr A+מ;Z" `dwoPޒkcffH%{}ؽׇemاffTX'1Om#q(jEXX41sF7bdNbbW]22]UJ7SZcanL.tlΆmR-s*ZҴqwʦ8xE,jW/݋Sp-k(_Ɩj?*/Ы6z8$,<=~u6_WU~5V& P֦iNVC=Y]ߗq-kKn50/`!pH8Uq/L?i\"6/?S/b)\ Cc%ŋx .a:EդIݙAΘѲ+;Wa:/eP̊bbbSR:նM̈ڵKrk\I9koMбC%6lBF(U!ڲU0w c` |}eh G0Ui$ah "9Ot՟]q+|!6@alA7&ߵ(m0-S L$\!1ߢ0ƨ( l]W~hx¢v<3c9)Fe3$>q>헨Q͑1CR9*`>@>QF}>I}Z%{s:ؽ*2}bǀuзġaaQDDDgov\ܰ#u՟]q7i½[_Ӱ3fflJNUX k!ܼY[cee°! (XД'],>4դ :T۱2ӫƌ8V|3+؅+e9w>˜3 x _G?蕻w_NV@pp+WyrzN"%m7|p#fh}O mƩw`6Ѥ ں٦,] ]c%\];=7*\ZkOJW[gԨHIgRZdpZw A$gWSI|Uƕ_rlq v:Eѥ~W:W;£hm;T)l\}pҕ,_}ϳw8~`$fк+~=~KX8=lb@~1#s؉[otL2yl cF4~@(_|?~ߕ*Yݖ:7߫2Z:@ۀ4>a|ӯyu,*u^ś{9m>a+ޗR-0WУS5Mi1f RN|1u'>x?]F綕5zid3x]#:\7|β&QjPԊe?v%7'Y{z*DvBj^0v m̭p,nͱS9MDХ*q+gǹ .Wm"0(+'srHu 崟[Y}yx_pukЧw,m'O?r3g凅5gaȐ={Wgكt켔+{:i˰(:v^J5_/m˔?҅X}،w0ncF7֍)8:X&쫫:vzYܶbu}}]Є[;|=I<#?ǖ4nS`9<7*{ϟ6OXB$\A ZaX?a:z{wb.&) 8P ~Lo=2]EGzFm&`C JڼiUV.0Fmq"i_Oy$6$_!ڇYʄ?U1z=yv]W~Ğ\?1l< ,.C1n;} i)qg6gTȃ}Z{yN s-fZ{FGFuE*~Xhh.G]K IDATƯ?v GtXצq]6mf,_登?93iݲfܷU_dd c'lgM3GGkw/rMfwͯ=5Co⬗6MkM)t*]z E<Fұ2:uwf̰7yn:cCUi2s?~%/YGmB>Ff#xcbb@-_ቧ]EYnU~_ur}4`@WhmJqw*]VKēHKq-ocg|-6Mfjopt]ΐ! }s=w.jOJW['$$~1uJK|MF}2Yм1^[۶k!jNwS;/糬s+t.3Rpj<v2^ ct˜:iצ"|ufOeߩSKǩd!.Er0*vWҍm"}w" OjCыvmYW'ĝCb?Ks8K?{_ps ȶW"VѢfڵuEZkٚĦ B ;?Uxy+99tAۥq 0Ы<^2n]!#q"_nW/Nr[չCm:wMk+ѽVһSn|ϐxDE~vY9-Dhָ<nHʥb+F\ D!hhUsd34Um=tZAoBjEu& @FoW$\h D&xpw2Udk.Y]+ěX>lT ڲx/5kZS2gzZ y=H(D>ϪuسmܾJ^눉ITwh٪SCsLW`kB:ux66.NmkȞ9MuG^={α~Y,{<s=뺦ȯg"z_Al!Dq_CCxwTEqR\]Rܷm=Dq#z!B!B!(drZ gR;5ϕ\ G2k|͛h !!QYW< bB-+ߏo]hߦixmrZ}C 3#Q?OүQg*W`<#Gv ª+m ߏiUxB8[[sDh |NnݜlЋАZ7tT;Qnc4ݏt]Kz0YS(wuZ FBEA};.5ϐAMz1K,{й+}n<‘C*J_ו￑{;Qp jl[926*݈S9L/?kOH6o~OȲ_Os\BCY$Ϗ  11U2lhӢ(d2eb ۂM8.SXcb5!uR aoW"ߥK3&o:399:ZNZP,әb_{\c^>JtIc͞?nRt~6x`j@K=ݷY/)]ҘQ<\xÀ̶Å+m .YT2͛/esͻzUw uR'ڻ/gƴn]E)Ϩbooҥ:)pl #nxBSZa0z/ɗv=pAf LÿiC܍BG_ᅧ ÉZ䳿c8jhf[U"a׏쭙Jy $='2 EA$9> ! ZزO'U(ocb9>ڽ nBs9s._zx?E)QN(drZ(y87ä63tHS&_eAg VՊ@ɴn]%״G"ppʄF  |5pwwTu`(Ma[y2zDbR tm - xcy^WX h|q}y2`+%D1r'}Ɵ$Vo 'Y4>q̜yPBPFNx,=IDdʄ3@ʥhڤ<#F ""[Cp(?Yi,`A^  |?1'00(|` "U%$Q$_$52 :i] 'vL$=6C H G˩J9idN-/bH I)4,퀌g*iXڑ̟ȧDt/t|qqQHvafN(;ʗ$ 0{ KB3̾ {/F#ciQP$*BOw5⥇Ԩ^l&CrK5pBB8{.GKYC4) bl*u3{z;~sTiR,Q8vX6ٞ0˙%OxB7:ڜwCy:ɬA\\ұ4jdnQ.Q%*ek}{d,Y%mKwIec}qr*~=;n|9O;?|D*(({XY@@kF,nh)44IOU:N= 'ӂiW'2u m 7I{UEBU'^<@# 2hUjLj}: $,Fsٶ\93Ǝ$՘5L+UʘÚRlNgY _|^cc¯Pn\RIӦ\S&nA)ܼ _k'5(an{F!qM3ݞ?n,-c/4zv[%܌Cs?9=o꨾"4}*ڧjiiҪe'D:lA@@/<`k}/'X ѣ>n-1jGq zZ`EJ "9re/ɧ׃ 94{O0+4m0x AZ*I綐 \1'$_E9$Q!:M/Ļ1s*nĹ"$$G0cj[zxlȾ/Yůu[Eќ_q==6H_"JA*GF#+#C="_eTS #n.Ms\^o>|٭qqțЪe=^hEϭ}=p#<7oP[dNۯILݒv]u{ א[/cÈ!Mqn>#[AWKb-TH8z.[̧t;| %-x"wB(Q{y^hw> RƠ> ټ2z:V9}1Cm Q܅Gb3=LMe˗<}ł'I)vJ6U0ڵ|_5b00ff8;aKܤ\?D5`Dܲ/Q"=i1a( L* LI{5h#_Rڇv>˾$LzR<)Ti5$cn1|D!t?+DqrV%aێ{}>ƶ1?eu h-vCxG1f%ߔ#cPbkgݻIJJ:v75˪ur*GTTҷɩy*&&߷\bGbgWeLiȑڟ}u6 )i]}\ Q!S9V%uVodK/>`+kà<}ـ% 23q?WikiŁeҭS?ѶE$$ s<(QQ|]}BJ%:Vөׯ?QW~Jq^6п!QM֬^՝ŋ>W*Hn]|ʕ3矇[ Q4ѪҔH F*a[ԠSm}HR^3FQO.E i/I&% _E|B2m>ƀDEԋYԮe_xA6v]>`̾$(/9#v((w29-X3bŒLa֓F#h*:W{X&u{|)״W-Yz޽10ƜG2&Ϝ |yi:>)3ukV 4mTCCڴki%jBo0}mfJe ؘu.ģǑXQ) ]ABkW D6PՑUNcSΌа=:̞щíIE|cFkYb+Je ׈u[.f̶eeB!Dpv=秩m13g萦07_=!QL-5{{'ve&f^W>oM ]Cnkƣll35C> K;L~{V&( Q$Au Cst?P)Gz LdcvhVmNҙMhhhUmB:mvFҩuJe|5IޫHO%-!vhCRBG"Drk^Sh8j|޹~s㹘Xz]63lkvnv%B6 jlrdl;sZXobT\{Ҩ|ڷq-`~ z)]ژys;lk@TT;vIXX2j PR)6nUUl+Xu:hIrc#ٳ:fbؘ۸x9՝31ѣs4m a_| ޣ{=m,: ^3}D2{}r9>`ρZtGaAI #]~H^kHII=9™6'QPZUmbGhb m-Qܽm ._u K5YO9=={3kQRS*-̃ɄF3znΟ11ѣs:4mX/ܽ=VȒ! ?p- R;KO 5o>nI7`Ro;3Ne4 ww:)7G@anMړ[kK;=CI{i/ƒTsYq(MqJ̏H~AYͼNړ;Ľ!e>ޣسחYsufy2ǘ Ž]4p!ٗr >c{=l(̪V(?@/v{)b^_ ܤ0(mk~euFz ބ5m]ҍm|}>E(;~]Ϸ*#n$_Y@ QimRv{PB֮NGZ+%Q"g~hl!B!B!B!B!B"'B!B!B!LN|p! \([u͢շk0]+Mߚ7uƜ;'|nm-o5xj σ}h8ԱJ=9&sdJgǕǷVzvAUW"ӼQyOwڜ[7?GPV.m+yt=5ٓn<#Gv ª+m ߏit=Hiެ"u֜2ӣ[&A;.tl(7=ʑCC2:>C#:?:\PiUKаch4x^nysKm;eaM<¬Lq8E=p~AUWBѼiy/E:y%9-mn<‘C*J_ו0KD(4LN|9}_!55-إKA8 +~ƣij[ ނ'?O9 /ʵye6-Y:3cľʶ }Ѣt)c~ՄMr| #6@WG~}\X)Kb5|VNKK9X7PL6–rn[;jHsmKdtIcoD8s#52VȦmƘa B7?cΜc]_`*W͗ٲ98͛Udf45(]ژCRyg2jѯ+Tz$vʘ1pͅȤ^$ͤ>6$^9N 74$='2 EA$9_=cI>Ͼ-@1g^f_{FP'6oĖsKrɛSZR ܄ r\ #2pelƟ1f%"o56)MF'"OלK54oVQxz=ؠWY=kxIpzU+W+ԙ2%""2-[^#ާMbs4 ks@,|^^_o t RamիZ1utF{qr^~:YЫK=e6#a8!Ϣ9}fy^__wgi[B #KW+Ce:"#Y$nMG޾.l {JؘFHH>gptOO͗UPhDڳi] 'vL$=6C H G˩y-MҎgG>%$+6;HTySq aB Ϝ|w_bEe:όa)""i*$缹e%}cf_Ͻ9%__y+Qni26?y*]ژuE %J6=\uxڻ/O@-ԦOOgqp3SүxS*7Gq/ zVqu' 0 }=mrfe{ IDAT<7nбSATY"?| Upsr)Nճi[;{g҄sУmK`Uv B>{ܽZrΛ[ZPP8XK2,5{tt{;&ciO?}抹;懟3>iS-ϴjU ·-hIF(Z:Z8׷m`dTf_`'7.~øbRRxM! .Z]I{HF%TN-oni/CIs?DJ3F`n&=>*PSUUŏNv}kcʗ%--ٱ4iȂEʶy%дq7/(Qni26?g _u+)Oog&o x<3>SGآY[EУ44+Q( c Sir!S'~Gۃ,\uiv)QщVe+O3jXƃuY3Qe[f].m EVf^}}mfLQ=U,$5в2b٥0jp3]=C.ktN0*8HB"((&P@ZZ6׌u 9$Z^LTT={gٯ52a@^F`]80 J  [% rV97yxpQJ31Gă#t|ƃG2fhvmKVQQMEC 6#7e.GQyȏǢ0(M 5RH Caepssoi5$cn1|D! 'f+D1җ/%)gЀFlޒyo7΍q䘟/y)ѿ)GF9iV_о f=^'in=e,wc  ]x4xjOT:ښYyj(a&/d& .ݾkR)"x%>g77B]""֭'T*Z{V&K6-2 Qgp&kc,I #C]u2֣Ds%8Ir!DщxJJuׯgsysbdKX ʙaxFí&( ᠩB'iA(Sym-R[3FQO.E i/I&[4-?o50gvu܀{Ҭ{% dwNӏbfЯP܀G靖[^  02ҥuiҨ<[w(?iƬt$=ڌeLiv%fL!!Qm[~ xO^7h/^~*׹Lz]L[6~RC5bݖm+8mYа=/HBݲcv=秩m13g萦ׁ#U7ys2tH֭?qxyF׮v%x:"J&=)EI{R -PH4,Hʹo9:}M*cI {ЬԄ{Jy5,H /B7՗ؾҗO?7D .-g&+}%S䬰F-GFiV<ǑqY'5MS9@zYzDw}"];ץKYOf96Z=:̒1!y5ܽ<\=:wͪ e\M+3gqXԳ؉qQ`S9HSFY]Х֟#?|͋bՆ@fZͅhռ2s{)o-Nˮ(!DIJJt eZqvKnk,szǵW޼ѹSV: d,X Ҫe9A;X$RNU%Pܒnh` v;$gFܹݺԥJ,- x~5kOX[ /;KWt$v%G ϼA 'D;bM~' m+{݀Rst.{3c$֮NGZdlTk˽ț/B4}Wi@휘+B#))iqG|wf500Сç5䄺CBy͘@3xޙx)oZiDkv$PQJJݣ]Gqb`CN̙/}ț/-u x?qt?縸$}HaFbs\\>[08~.Nj鞅qqI4s[0{.RnQwJO%f"OǽrD; Q$+B!B!B9Bprұ!?[ӊTjὃ ƙ#iڨ<7P9'*E^'!+l~Sw;W A][.EA;.to }:#RF٬4>.\4g!3ta; jr8k>&_'Dq0`LV`Kv ~s 1MC}5F*DdaaƵ}<{&)mbkk~ϯ}<QԭwQ6m$ތLN ! ]&ز7ʗ %>0&V^^[_كSg(_sK~;503gݦ JZHTT xjBKu@O*?Ӿ*mHkYg^hj*(4oV-=ҥپ/{RT~Yͮ15է^=[L_$&_uũfYʗd/;n7ٶ/m鋮V'Ļ`fD%vGV6iC6/Gڐ|z=#wWsB/6UjN} ؘ-vEw|}\'6oĖVsBd/Nn$d((T}{9uCNV%TQ|IV;Gll^jJ }μE^ -xTPv7q šOowg 6)xpaVNx+UV'O^2o zLw'.] ._~Dbb yo{lY&zYJ4<([͉_3pR jXiRuM4lH1- -6-6[brR4m\cvǭ!8Tw^͊0uDFƳd)""iݪ"[wr'7'BB,fض/ - TNͧ匁;&-=;~ϔur!K:6v>{cJ~]n lCGj<͚{~6C+(<8e+J55%)KMKF2ٖciiDxx1FwByEsN0 >{<ҸϢx*L#_‚T4lH{r]CӮ= ?VfEDzܸǏUǟ5g$$d~IJY3a7Aٍw^8I;oF+,By *W=iS)F/e)~[<{?ƏjAzz:NDAMX@֝t5 >}g BeJ%s[gt3dR* aO] }Ɵ4~!D9p&U(w7#z6`Ϋ4nHfؿJ-ZTrRV1 N\@4tu}NH,yY$=.}3IZМ8 HF%H}|^ѴʍIEnN2%8%s~v[|YffDD+|n2w;kNsBrqwތLN !tvx^M8׷cꞄFqr7xlq& ˳jiWrcjV/CeuRk7^TIc&Nh˗|~uTOҤ[%>L3Tz'|s=w)eiıxwQBq${cv̞΁7ٴ2zzʷ*b]4x+ϞEg ñdjT/CCy8CnkםT)c&~QFݾ¨oD$DH[4>`BPh@zk'( -c"J&4H~^ZZjQi3Qtֶf&_ 6P(HK8vyJ2bⷙDDx'qwތl!PC(a-vE|B2'NWuUڴ=(Њu̙ .BH"I<0hRn V|FZL S Scq$y"=z_SGPQ <}łE'IivJDMMȼۅoƵb݆r&;9dfdrZQliBBB ::ʫIINwㆎ< Z2~ĭb,hָ|.Dq{ &z(cZ:ZҌq/'­R-iPڏ;mmM7rŌv˗dU*33SZƍdX͚V(x[7X7Mm ci2U@K'+IöAnдIįHW4JW@[/cbS;cy*U,?њ5rUb7 ֋ptYDx'qwތLN !­YE&ӴQy uhӺ*wͦ8uYS j66Dgu~e{JcdպsDDxg3-Ň< b`h[ R]_jcqr%g񾱱1iO4tuPٳ܉NXXoWL'P:ϭyEOFFtMg6 nݬZ}8ڵ_R?!I|^(ЪH7H C,~4 # @$ pb׊[^ꬎE< bO3Ɵ*ޮ&\O?LP`OVͼ]xAOnI 7%{N !fbؘ۸x9cVkyj[&oͣH)psuVAb)55}ֲ<:gь;4!D1Qczn,iĹi%))i kk3V+:gbo3d-gߝP>|w~Y,;%-y&KHw%_I E|wHNPsBitE:dBC=~7/d?{įp$ҥZ Qxx r'7H}gz3cUjw'5GRK½mM֯0H< antl+}hkب0|2AŝşvN V(eϽyLwڕ^+_ye$BTmm=B!B!B9B!B!BQdrZ!B!B!Di!B!B!EN&B!B!B9B!B!BQdrZ!B!B!Di!B!B!EN&B!B!DIOWwBbB.Wa/ܝBF[YCBxldC"~Iǖ)3x͊3g~ _ v$`B!s#1SwB!Ļ')^^!{Hu!(&drZ!x<Ba!d 4"alKlLB29-BerZ!x3LN#+xF:D$; !D1!B!{.a8erZ!e[! 29- B!{ӗ2QwB!ĻGi0ńꗜ?;mmM5G& )G !Vv{Ni!ގB ==]a! Shkkbcm@aٖi!xOP; !BB[W=QTI&5H#C]}D!( O([Ta!$Zh!ޖBMlY #ÊG!D x< Q!x#=Q![z!P'/\x| Q,- ط#e]Ό  |] u!BTVNBQ urzx-̷Fu ɽTwBb,a8]Bnz}崎B!OYB{(ksu!BdCK[Tu!(drZ!x%0BwOZ*&+B #C]bci!=P;!❤jdHDu!(drZ!xO={B!M7 UC B ui!LN !a8ؕPwB!;)ӲHW&;49]Cg;,>.\4g!3ta;J0d^2+֜2ӣ[Fy30D~'(ho0BwS6 Cah(z!23B}ճeOY IDATMbuYWj`POw_Aiݺ kW7Uyel:NIC!0\&B7@D! BdRwt)[矷G˖ILJiԬ58""p(?PF>i,=I^ hݺ {^WSm^RA!%aBFdHlBӭ[W҅q?ovetRW%_p(BA~GGKޙĤwg?:'ڞղj9?OMP(L-'?-Iu뼜/:Uǎ #tΟ{{'*U*ŭ߳zUwM6s-c,-~=;n|Ǒ*yj,]g$$dS|G~ds8:ZrD5O[ᒕOsxB`TduϡueNBn)UBuI恈HhY9-MN[[a}/f9Fj ͭJK2g;GlWQ-VV&,iD9|5x+_hNe0dl+Na?XJcf-*U)Y;jU֭h.5k$!!kg}r;/˭icc~r 2 ..o93n|J hkkZ'g9̛mZLʥ8-ʔ1!889 ~4[7Ϛ63'"2Nȗ  + ʌ{{ ֮PT#b>Z-d+y? !:;!ݕ:qm=(oj[N\mۮ0o{9w9l&eQ?> t)c3&C8˗;懿 -Y,/Yܠte=^e>|nzxyڔsxlW}brB˖t?ˆ!>?!$$% axx'&&*:k# yB}\JCB!Zi=$9Ԁm!ⴿxj>J8Xרai6nEGYw^aYlb됐 @%vu= ޒJFWWE[ZadGll"VQ꺤S(٧~WV!Ж8BdGz!^S9yо2 ֐ҥWJ #Xgң{ull00)noA~u011vm'|Žsm8.&&Tp _pHJ8XCDD\ N޶]B5kFy:kk9ؗfaY_"5&&4i\m<'7{)3҈aCRʘ|+ D}zĀ/F4Ji ZcnnH&eо2[^b.Oӻff8!Y(V}}~"";Bi9-D011B -NEЯ&|Ӓ^qq)M }aqs"NWP^c1t贒ݪ}o*??^A<}E+Ա Na־2+Wes;c0O?@v}EС͙݆1_ߨsg2ftKZэ_f"9YEN+q/o4,Ę/9_z@{{ ]Ts%ۊc?3 |cγgQx^ 3|6._Q`8fȐܿ;ᅦ@֯[cӆ>]뭟G!m>~8*0B|KvN {J*m!jG^׳s;q$PTpq)ʕK0PrM6[Sa!o`ï=wkVQxm\3]K~YJ~ۖvN7jX_o)_CC] {ЄB!B"B!DNS";~ΰk sy6I~*%8vddCne㦋1)Q1 !DL BesZzS CByjq`}̘Oad:e[3=?Bh}`%ߴB.$+ !JɊҼ2D|Yf?C#BhÃlvWG.]gHpp4=zn"eܦ3gԲkRl쾦z͹jjقPWfwx:1}Z?$jf|=)M*>23"Hxc"|jYﭓ+ơ=?1Ě PI8 q;pxJ*U/Q]OK !Ȃ_.윾c3ofk|~V}a^C6Ѡ İ6p=aZߧ~;s3CFn㧑,]~ P 9@|B+ןe6v!Doܾ ݺUK5%fX_&pk2ve'ٿ/>`XkW`V kx8?¹ԭEGOb3 =Vj6|_=1a RU0[^uU?F=` zucHJ9cItb69KBSAﯣ[>M0)0xt=B"cc}bb\;z.]z&9Yi=`X+}f0V 2껞\k Æ4[5I$K9΅3G3 * @w{*TgŲㄆŦ.8͆ \bvBCc4¥dI+|| io\зomv$<;U4j5a(_֖a8;ƌz `h!7q=)ߴ҈aCbeiս} OgŽXY^hѢի;w:ժ@?.OFe8x6l9 իҶF{آhYaVjmqF$_CÎ3QXa(&EHܛҶ Buo&x8qMN+ K{t G~CFGƖ9% !I$g.dMl\"6c؀<>!\HY7 _^Oπtu/\b{JٳgQ)b!Ep.ES~9˰ esZ?eJ!'(OsPұ2~5v&~lt*,*.JʢNz $ItlKN%o4]F(Vrq֌sq_/33C*U,ΪgS޿q9q`_ݬ҈а4㰲2NWޜ0iK׮cCZ}Vcٓ',8Ϗ֭赎DFfpBOHB_?/m!$4y3Z߫hM0 e :bev~Y$ 6EM1՛,\Y6ڃv`fjBhMXXlƤ%cd0dM׷v'|3F oHs)WΖ zbiש ff %ƧVHѭuth KQ!vzrPGck NEOܮ$> 17UF¡_Я y"355 :eZO[V'oϡ÷}'eC[uZS޿.휺>2bXCמK97[6Ŋ2m8](Jԯ!P:4oV3V~&U`떾x{k,;z.eLQ&M0zTƌn½{kw^ !x?T2_p.e\ EetӦzA>k5‰6T\k7v 98%o_LL^a1,=Jib_֝-rhBAVtZr뒒9pL^tٟ]VbMF/?} ²_:ccc/3!.p~\x?t颬_׋@䞌zDuEjk8jU,|SdگH~Ĭ(QX;l+ Uo'c1dlJ$X3==?+Q)Ԁzw>aА-,[bf< SU̚ފ.ʉ|nemZ$#G4fe`Je_x$Gk,3K`` %**'+lY^c^M/bl#Q|ŗ_~kB5`Ke8Bv|Ҽ<Eߣ&&|ܴm?m{MrHyaٚtXzsGӼqYt'к"V&vHxDƟس0ޜQ#cjj@t{z~F˙]kZV){.ݺV'&&Kq4oVxi=:/x&OP٠4F:&IsNIt|F=蔨ŪxtCoIҥ% z !1]wAom;.gִn2wWsӶu%6nNѭKubbYN}I/BO8]\|DٲIVÁkO}g(^뾞Ne255k4(0Sqq)CB}qq~6a..蒐R@Wp7 ϏBTT<_fP< TI+ۙS˃G%ܹ󔄄k<TxDDġ~#~/ݿ636tT%EEųyE K@@J,G&Dz_&9[)]ceT ejՃ8~{Ą0dNq$Z~B,]F(D~ab@7qm:,gmbhfP*i޿eE x>8"tp+w2szSӋXWg011I2m?=5j]r8Ç,iEq{ u}!.qq{TDEųeeNs CQ?-?Ill"eew㵛AuI+Oѻk )`C0Ep/M!v)SSҟC?iWvLx]oApp4|LO+fz?wZ)?CJZa(9}WW"rki= qQĮ9z-)Q[ƣ%߅ѫ2]wI71܎'PExj^Gѯ۝Z$H3o;mH.BQ&(K C@(mˤyv2uǴ$ҬaG}ڷHSo|~)rF!79]@et)ܺ]Wu9sc,Y_i<~ɘ/9_etP) pXyBЅB"qvsfIL9pذmMʺNjiIE!cm_P%KvVR%CLGDƱ}U3"&ڈMlblG^>]݃CRm:lٺ/)Vԫ#mTbf(پ?#Fnef,ߎZ7`lJ{F̚ 8qF`mmQMYkeڰa}?xQsh"GأS&c׽.G8c2z'MUjt$t+4ŰĮ:eqwAi_}9 ; v`T~(:a4p5:/Udžpv ^@aVOu%a]\|}շ" GuMt=N\\fW;ՑψYґD|@YegDnJ@SJυYHVg^pp4=za"eOg˃j [k#.?̭p@)]]%gf޼CYO`ӦزO ÚfVfkkư Qk0jdc t߿?-=11 l _~a=B!DsN=u.֑zK.J IDATt곖6T﹚8 BLl"ŮMeiΏ?AHP뿑nyMfA$JSDž RBdSF;`q:nc0[1IW RU0[^uFB7r}2v _O@g<<}uFkKrB|m|| xNw{*TgŲㄆҢEt4TV>>Ep7.E۷6;wzM߯x!d UѹZ+(ngΘ135೏+PÁ?\'?aei->W&C:>~rQ` QHܾ'xaGq/oiiޓny29UH:Qe(LS"?=FrKzaǙ(L0hJ"$y!Q`ܾ'x+˝ih^7q#)[biiİ! 2J]B}8OS={P=wn?!..)giP`ggNx :?j $4^]kfDŽ{>>l3.Nԯ6B!88X2vNJ~{YZ}6= WϚںcW>b6[KQsy :sNC,R_1؊1$-,:q6%ꨔX:%*a5.Jk"Rh\B`P-;a'N^yּ`ev0umý&bm|B!"ݬD K ty Bg(R?X@SݬY(R<٣M.a&݄{ѳ:Rò6`!Y ?&_3nn>mNՈל/))G͸>5<-.NEUՑ3fï=2OTT;wZvZ*ly3۲daGx>EDpb)|M }RNڐ"V?g]w> dI+[P3?KST"x&"= ű{}>Ktt 33Z4qخNRۚ3i?DG'p=vsUQD<>J ?ߣV(iI'mG~u2fA4jXZ\98[>Jm:.Hz5;S"J;7bGJ QEW%F=)3)Ʉ7ɹ ǘ9V2r.;w{Ҿ(S!,,'$$0oN;}e~s"D^"PBB2NzSFknܽ=.]ҹjR>shƏk e'tUX4h~\xҼY9;&֚5Kq\{,BHHL@͏(`m4w\/?EWW[%8U;X0 NQp(پ?7prƈ/`~;jrvhB zd74JEu"j~BL]mFw/H<;+[Duttl|~)3`n;jt`\ t~bh G _(>z^]}ֱcvJN+J5¹qT=QQ?#N6[Sa!򀞃7~Ywm!(=EmՓ!r/%-&;;dM%S=`0-Yp4Eh; !H`~6wN !ԐhY30|*)IŸ ;ӤKi׶2v(BQy! !":)bBRoLL mBj';|h>瘘5Y0P !B!휖i!rDj; !fR?;6͵}jsx}h߮rʄBM~8i!"]S9Ā,DBlskܨ Vv'44&Z|;uX4iRukzqS t3-H#B_ΎsZ!1,Ni!rQ| ! 9]@[[r4/^|!IűcwiMcB+66cc}m!B z(@D!rQsZL Ǐ#U{>oeݢEM ɲl6 _KK#vDz.9BP(BQdsZzLL@D! ;IQ@ ʕXiS7lg,nz1^;>u8s=NBd[dTCBo`\eqZ!Y(i r~(dMkL{2Lwhh !/'"C!(Pԯ5"7i! 7Y.dKZэU+^_1"#3-4y6B8,-$B^;Q/sBdq۷ϋ}R?@5 !{dB휖|B!D% !Tl\"FFC!(x^[B!Di!" B!rsZܣCbbBh,N !o0ΥBQ!91%,N kLM NvB-i!" YvN !9*]iI!D155 *:^a!DB|*%B!r)=p05'*J(tB!Γg+j0B|+nwDah :( MQ'' '9gr8 }c]9Xwajj Bb8-B!PqF%P5S%Ӷ-^͎0B!D>Y!xJ+tU[Fs8! '39-D&B!D> R%BUk ѫ-255 :*Aa!$W\ ֐m=r"5ȮA%޾8aB!;ӫچ߬M(LRDB.&< vB-5KQRy   B^Na!]YTAwFRzs$B!!o\dBv]e1gt7ν`(dLL(dqZ!ȇcok0BAjlo9Ԁh9-Da%3BjJB! Z(,A~HBDzQBϨTjtutBQp(U,j,R=$Dabb i=(dqZ!GFAUpe"B䝖Y{y$o9_m$xtB!A@GN8=A !(-QDŽeX0+稄(<e'OH15vHBLvN !Hzyk9"!CL]_հO9۪1eJrDBMB|^-g,,(no BQU<~1! ]vZ.Da$B!D>Rݞ$B! ]3SJw-D$D7˦ҽ[um"ZVk;7vm="?ٱǓ>C7k; !JO*nYwm!DЧ֬0 ۈYEa+jtx٪۫zvNBQ\fEwڷ0D޲MvN !B!Bui! -YB!B!Z$BV8-B!B!⽓i!B!B!,N !B!B!xdqZ!B!B!{'B!'k"|173̵jVsi"3jL-SÉc{t9JeC#i/k%yB&_|y3.\/7og[:NXI-S0Ȳ_Nc6&|#}|U^x\s{y;>Na䘜5q=klNe?uڄ kzwo~/f]N16[I?9uwv(ի ȟdqZ!Do\?#pu.+15ʖQ<]չ(?ɻq8YsDׂޥILQzw ̐c{ѹ}w3q?VL3fXcr9nN#iڨ,ìɟ}y2>W&ee/mͳ,$-X2B1VP:zzqW)U%]TJtl' kFbOa$9oH^,(,0vӕNi[Ev٢/~aY_i[|2_1_1h3_1[*)UG15 әѭBc|-`cut);OjtH-ӫ0_QE|Gn喘;PdܿXu`:,+1}*'q$>IsQofxf,>uigvmHNUڹ'Yޙ)Ͽ5wnL曉qdyMa[ۙF$;.KˏS*Wr`ߞ!e=5Mb<򝁗$^F^*"q;%cF6Iw*SڔFuG ?L^o=4==!~*MKFdy>sxpsoNRޫϕ4_:QrV)a?B YB/٘QڔMyC*KSEeDDѨRNl! ~>A滜KYsxƍhgIJRq}ʗWC7+!Fz8؛3aܜƍ3oLookFbT7!c7P%[p+up;7c)];n/tvRX1aۚ> Uf2m>,MQS,-عyQL!ɚMC7XDsOdf˲MS,h!I"YxN d_ߢ00 j{~@ab:&‘:: ituEAf@~bV zg$^J^ǡ"_fZ뭆5!p",+,Qu%bXtJzdXWiҾKwƟGabEgay)}Xa2nIW&rdIMxf3OYQ_W$6S5EKaQ=&lܗkL5+cSKK#vn([qfJ8[Ӽ-NT6D&Nh1ۙSt1*V!÷݌Vԭ㏉qԪ?k3bhC~[qZμm +3\}Ǻŧ?GfٺRJz?^3}۩T֬w? BBcpq~S_3iۺFz4jXX.]~Ȋ,N !ȷf?@xDʼ/*3r1ӿ>,@?A 2.q'$dMrR,Δq-h.׍;ҡ_oHhX 5-GXxީ-+OϞob6'Ϣ;B.f}/ IDATYv{ANՈI%=W g"vh,{[by}qt/!((kw!:"8tF}~G?PꠎNW_PZEPuoр$_M܏H.}jG%a^.95,혊:&kQ=5 q&"?Oc#Ho'ʢȧ=u\$IW._tcPHIYŬM{/M1S2xeIKJۤxa̘ÄobpzLaosleoKS,W!Dī{QG> ~b/X_"5'&~{dJELU,a[Y /l 3 v3x`=NnH9#!!1>? JY{Mxܙ g1o{;*k oAQ(jDMX k$cɳ{[l{GE`t0?HPfǽsg9sp\+_GKo=Y_`e)I>ŅOhjYo+dΠjyWKeoVqÁJBA?V@ɻW'N>P;ᇹZ,zz:Y{o#۾fnWo( 2YZSyd5^оtyD6r9DBQOH zo(+ԩᄩ]:T~g츎CQKHN36DEs٭4㌉>- Jɺx::JfNn!뗢cW6HgȞq)cG511ѧit [wȉ3O;WZ1zL|B;xr 1g-LLRk'пG-ũ}C/bAxD,q߻ܢ|9;z!7¾[ǝLVzpfLmB BQcu6An5ޫGF2zp,?stvG]~u:?z_8c&fł/6Ŭic-II*~Opf{zLfĖ מeh<Όev '=|E^p*&2kJFO͑ Q;lN'LڃWC^Ҿp̣ز[w`ƋtWrj0|=Ъyy xyBwg:Ye*/CnwAb\eդH_"%6 y1rO=IMJl$az5WNĝ4l+q%'͗dJe{b߁;G|ddYFB YCg'zh,!>fyB;dYYCY,ԭ7k~"M)d=Le#:7oqMgK L;r98;B<֮e.?qrVvȴKY;H9wp 8Ыku"LX> Fn8s vfi Y cBnzN(L'Fć ob%?]CxLѫX锋8LXu4\(,_m ; #Vz1.x\N+stbﮯ ٓʫz<`W)حV,³g89YcWȜڵ"5U%"i&&:+KccŤ+IѢ|3nE&Qt֬9[[3 m@9}#G4bժs|E sBq֘] )Iao&ahzՋ:3~^6+֝OKփ_d\9>YI֝7w[B!rBqE]o Z[ cK&V\NGaZ @i[0h= GAr }#V0zlhj{A=[!g o"%62~;p'O߈6*Pʘ/4",\X ~KOr7ԯ̂'߷6[_'*J~1(D~—?K BXJ (te9|&~݉\K.kqvxQRވ9~tg,iÆ=/k!O? 4*П 1ؙm]/&Lש_˙Ջ0k7}X0}ju.?姀;{tFK5!4sz _BT!ψY ns1쾈k{H< Q(f^P*/Tj+&O yFJI)YOC9_/Ơ8 ZGx_ |y!K15l FJEc *%'Y$O^3jx#FhG/g~9-Ԙ:MqXY+kaaDSS/A9psoZYuFLL"14kZs8"ݾwitZ4-ǣ/X" }ieZ5/ϙ ,ػ_P_קf>q1CʘBAҭD}W -)Q^0P+0 %:;;}44470e3|HCj֛^$bB<jYqsӎb"ʺ%22N[,Ͻx|/b Pu:"'&Zgiar\|?fRRHJzfZΜ:~еSVvE,x`$g/(Q![/zveᲠvZXg7Ք؊!3zfA‘e( 8zUI^'QQZ|V}kb/fQ=kVvcɂNܺOR뤕Xnajj@UYEZY(%WD&*Ua14oV.]ڵ(lg΄{AϽnꙺ>>aDpcJɫa !Dk\$'RtPuٲ#1GNǾ%CH& Jѩm%vu+Lvo\&&&p-)bgNNUSPZEt}TAYo.67nw&܎@< fڔVXZ1dP} 0ae o/澾a88XQuj&D"kNt~[۝PTʖ)Ė?`hR[o>Udئ(پFly 1on{jtx 22^ɑX[0jdcjԜCҶl3.9L{;R^:?zٿ{mf-:F(:Zϓ[3qL3|2O.^} VMۯyuLcMeK:0}aK{?B2.՛ܥ'}]ŒI`(.Btt1tO_3PXav|6*t -Ǧ6k~=_h/nw~mJ~ޖ9n;~0Mycs,6jPa( IDAT{jڪCէz^}f/;o2fT"ШZ5G=JժhذGxy8/Qu !ƭeE? / vcꬃGIJtchޤLzY-\李9[I(Qgk`׾[DDƥ^ccB7wD* MI #~H$._EF't+tp%nDRÈ?Ut(-ҵ z@@+<㿢0EiSLcJb@)t IW$^NJLxN~Q"7q#p)oKaNXrX7+^VeŖM}8qZ=+?!0(qvOZADDl~ zגWLNK 0N{]|m3,,߁ٹqfmgznBzwރT(_v֝\]Uْm(|p*V;[3jWwIFz^dcDdҡuB-".JRΧqpE.$V&:Ūhl_a`AoI깷>T/,²0" O 'z5x ݫ&{KVgoZ17AQԬ;ۮ{,''k SVq_澽jty&oD,=BoQ/i٢<Mhh ={HWVӹnFqv^]\_!r.59rS,-{X,E 3~DR"{f?AlCFA$DJld$?8n9sM}]j(ƅO4",|6"++tu*d/Y$WC,X|}kuub_.>?!><@,3f&ظ' Bs kppӦˆ30"W@_g>a( RRR( Ttu5uv&99{nk&jVu= d,\~O\m2jPCFiC;im?~§ J%B!rt Px*1:am.tmgփ! xE*Uj+&O yF6o`~>ZV0h=U}b*G 2AW[}%'Y$O^3jx#FhG/g~z$O~1 !9-nV󌶴mS:LfeThY{w^=kbmmw""1), XK$wRy[w 6.gklV.];{a3l:'3fY11 B<02$HNL;t QU r)1tCanKJT0!(-[7%xt/*Ǜ %z7Ơ^~Jt GE|05M' <- IWmj2p@]6m>Ç4fy>n0V&"K]_;lxr9-bn97|wۦggxQ'w'O=⽅Ǡ(u[w)]}=2] s?]ݷ) `hGl\1SSvŠ.PO}W%m`Eԩ]Go侎Vx?WLN V:o8}oJ r,&vhBAIHLԨv?T~OUw}ڮgθM,{~}3c2'd\,!UbF3I.EFeZ5:rd!"_HJ %kz 0jfPږ zNԥ?]Q"?v'z$nf5 NHmQvQ-pbFp/>FB±D ~,LgBsPN$>KܒٳԨ^,X~S՞'tv_*=9qc>V٬ҩCeV9T7 .CO0g15;d!D.Q ڹnZDAh;Bvڡ {v(6QT7/ֹC|w[]ag%^F.ムW u{=Cy' ͼM7%Iv815[e{=r9":T뗟бm)k.Un;*i; a&wN !9d׾[89CT/v%I΅B[,Xcօ?@ zpbLL|osnYB|drZ!!II*5ɺӾUE,9PBwDiKr' w"EbwՖӾ+s˺BktB19v>cbhzB![$>0ZJ|4/vBcs]9&&Mi; !Di!B!B!yN&B\P#R;V'!k*wb٪g]v'T\q/bhǙtj+!Q`=krXfp7j9:ZwNQ|R!!29-BFuKyUOtc m]/vCɪYivl胅zktH5~] [Mʨ5Nrw`B!D>gg؆%"2NпG-,-ؽj !n$x y]H|^zvbU0&PXa2eMBAQԬ;ۮ4vI)1Tp)'u׊wUϚі}j`ii?PsNIdrZ!AyYh'=\BR cc}7)C%ӖȬ^BG0gj[058ֲ0~^ eѯپ&Lړv.,<]WB|"TvM)蔨^Ddۨ02?_JSko vðvRC_3m C|Kgбjnc֩y{X[׎dbϯ/ F@$?8@Ү X"?<qZZ'1wbY 4¥'bII*%kVtc͊niu/;ń{w/I :⓴8!DNSdOڹnZDAh; !މ[ _0zȺݵVm,0z;b Tܾ폟_87nRBtuZL!r޶m9~+Wt"BB 17nbffH6K!B|drZkOH`Ѣxݛ娄"Y{ϻ,YJB!DAv+P*lz n՘=Ma !B2&P(jUаbhB&m OY(sfĴBP֔۷CB!  >61j;!Q @)?v(B/< X0\BG!B|$drZP-V*`,8H!DկomME!B|Dҭ9}S,=Xo^ЊCPF1m!DINV1zNj({jG;%wHOԨQCh; !BMNk6b77Wj 㐐̐a[iӺmTv8BLHޙ(O !c'kNUs)-8{YK\+1`q,\x516ҧlis[h޼ls˱9mיS#)QB&{ALVth m#h#G*j԰7AGG=m_;~)6]ei5W!"kGʕg8:MNr6-- %K`cܽD24_fCXX KLĻ5vB}5Vt_ !}j1sf[C%עi]ƥBaZ$.;EϞ5h޼,HK!B+Gn޼,W.'~]ޅ;й'uR3G0'?̶@OߛĤuoO-թ]dž-Oi*ƹ2@i~8Ǐ3r,Yˬ?McȪڵsPs7sR35-\4s78ӱؘvcؘTVw ϰ9k^'.ѡ'Zp8f0n(2Ͽs_/Mq{憜<>"X9:1LL !8;pD9Ӹ9}j _Ք'hszt)PH͓_Q]ͯRY]AAQԬ5ۮP0KJ;v&2˥5]3Mc̊=*1mMװ ww">O2凖3K|VFGGɣ?'_[o漚KfB!>v=9mooɆ=5(eO+ƍK+WTAvcm8:MWT9 RQ0&lڗۮSԏLv KK#v{ROLq?ָlCfehެΥb%ͳz4Mm:8Xk|2i^ҙZRoQK LT?> eزaCbٴ7 ΜYn jI{F}/gG9jsO{Nߖ5vgχ)Yz*aZC6??goKS\?_Jdd /d˖kY$Dt]V:5111v8BLa;sJ  ŒmS;煙 lx 9l IDAT˗2凖89Y3nlSBll"Kew'OBaiiDX qXYCS.隽+MeCisOVuqz9|y-Æ6re{n[i˦4lXX]kKusB!'ڹrSnFTTI)0}O/> k?Û> =ţG/pvyEDEűwm (Ztŋh,<˗:tޭ1 [ݽ:ŝg#Æor7]Qks˄Nc*]ږ˻0pҎWPA/]]5-_8eMcL֚F KeضJ˜_teLiʅk}ؾ:QQqo#1>g2V!>v]Z CCYJcvÉغ:;V~ό m*@V>ŋO2,y׿ %))ԼMretޕCi.EF4  y9N pCbbi2N/:Uaԉ쾶4]|NB!Xt~YheUsdl7ׯղ AA$Jf2el pVŭ9s֛cʜ=3 z4Mm,hӧPZJ.crva׎|aV.9HmX"&sO~?oТE? !**.opmcBH[JXm|YKtue/_!DBCSmo8 gFyBV#]w!row+4,K #cjc\2fJSYPYyMY8!> ]]%*vAU10Хu+ld?7ysB!?F`oPf`6lP];˺.jwld? "E3 …'[U{;7\Ny.۶_gՊnSf] Xjey[%lؽsf۶׫WSP-ɴ C᝜ *%]]Z;H^ [cygB|V<= fr{!QVNgVyNjtX3wvLyۼ_<)] Vt-ʭ6\2fe՟]{[^#lv&MJOw/Hm켶4]w$B1x靻nR#;TԀCPdtT' _…'tw#G(R؂~}kcbb@ZN<}#ٱoʕ+Āu011kQ]G~߯6N%1DFe:y:M4m6..״iu'fL&k~oa s~ڱi111qRseN a6XYӬYYڵȦMW 1QE^5111`i ffnʗw2jdlI<{ѱCUcGovz n>FZem344>o6G2$2{~u03e]dpH8q20?tll:ژ{3myGF٧WO_{ʫW1ѣqTJ*)J:uveРORE\yt׾2+mNi S3uڟ(3Z;!Dk:l׮=cey-y ŋ7SޓˍcK{;h߮2ZVTw8BLzߝ hFUHժfq'{_>75,RZu\@?SBgoЬJKNb<(/=AIi4m'Ipuy"}29Klp鎗W0+f+lꄖfT뺬V*Xϡ Gf/ː԰_ĹAѷomVȮ !rH ThlS:w@tT黅w~ VΓ'XʃKcSۂN֯?!Y2 Em=V^yCC%cBdW/-6JʔiY{glKH("KswWbcҬs0h6sffx| @ޛ_׊2ȁ=6y@bz&oBdLNmLXɄY&<<< VL8'U|1[1|n¢ jVZVAA/ @,-ݻ^DDDg9؃a Kceenp;iS[Ők)&{/퀁66̠Y Jy0 C[ǒ^ю…d,VFߞIVO{=GwI^iXLA_ cQt[˒ cck; eX#r˗P|W<:˩S4iR^rE!Ye:uqgTfM,YӠAYի>o[ףn$y 8ɺ]129 T5Sbb>^5w+;;ukT/20͋`lGZ=GK3?}jr"W{myGLO!+_ M͏Z3+8EKS ff)cSNRܻH_ˆlU2w,$c^Hu(~lW%qS0qt T,+ef/ }aia0͞ 'WM dU#B|%B,S.gcj^)&JzwsޓӻVeO\8X$akzA !r74\u$HU-<<䟉5 JQ7$$SS}ƎwǴTl*9z!veP\3ѐucǪjKAZpq;&_Կ[}gy'/âx%ɿ-İ+0rpmm[0"P?ոqyʗ/_H("˴jQss+~q? Y^uyB9h!ۈjh@\\{˗M*(8s8h;sZӰAYe˖ĬT4[Add =g527' ϶ 9ϹA̛)R$儈*ǡ|Y|<ɣ9z3S}|Lrmg0bn*ȦԷ.KVLZɣY2!jeUTrX3iCS%WB.w2`vVD<cg&vl \ (h6G EOWM[.1h@=,KxPbY !\e?'Raԯ&$$N[6)/`4]%?t˒*T ]:WgssKDpl "g۶]a_-1ڕΝg{Xv+[)ٙC| ߿T;_e _pJ.B ԭkI`Q1:eNDt"׽3xCIVl}N ~AR0N|x̽Y9 !dU`ee}?a?v]K?BdiбCUrMrv qHaee3'Nn6<=)-&We@—'9M*hѱl</go|X_vڝ׃)[~۷_eǶhjn%,Xxy{W_||C1Xk[m 22{ѷom u55qmƎmEhT 5cȘ=XUêgٵɉre&2,˚ Fa LxaF i@͆9r܏#BY+W33}\u%2|<BRKXkB޾gV )^x1]^XIY#5m)>IY'1oey"c4?e8ެxj;VVw"X̜RݡxNauWu!JH)8mcu!w3wWwBK !U.;I޼ydbZ!B!JB,Ϥa B!B!r29-1b*U2B!B!D 9XeYJp< 3Vd)lF p04gp_wbi4)O.N.^OZ-B+1.1:uq:nK8h2emfXKAlmLpqKFB%w_apz)IYzm.$%"6q|"P=UO¾֯u5z+ !.ߧRESy{P\14 S,5+?gK|]q!jK,1r7ZG%vuUV+~[} {ѯ_vƫW1iz=[y˥++ށX;ZOS-ZHvX(SVz0`@]45S~]VMkcƌ8w>eW2c&a,)^^܆\XxBK;bX֜f@:ɒueeڴ)_1s+sA4kEBT+-*TH0BdHLK3v;v\paMƎjLZGDȁ4k6ƌ7>/BLN@ff,ȣECSnz,[~eO ѽƨ=w>GO7+ zAoΟ !200Tw8qHtyNk:wӁ)u17o>fߞ)O,6z+8CZ̝}֌%4=7<UN2ŨV,!^nz̾-}R%tV_3ga i1wF,"k*WLB!TXIKKCH^?ȓЩ=Ob||NB/#ȁtu5!cxZ$,,*QP IDATf?ehkg#GoxMT;tu5?kB3~탕}$yskزeeE?EV)k9Bf,G|4o{tt м5lٲx^-Krdjeٓҫk hY2!DPU+ !P…01c*TzVthWR@'#"?e/8BY !LN@aaQ˗-zLrE)P )7o>NmPt\5kaj/yٳXZ%'3B'L.R¤by66ٲ.229Dҥ Ϙ3ui;P@G|SnF2>P%5梅mۧ6?e|, q+֜N?ߠIB2ESK*e鵹ȹ }{'E_; o!DSUQ+ !Pڵ11c򴃼yq?E;G;l)[(S$<<{e͚ZhA[N@_ !LN@rL 5kV,{37Νѩ)gόb& nо*'<ŋ7,YzciڤKk͚9vʶBΜ dc]9Wxq]}7rEGyOXXe˦N,6U6bܛ̈́W/1(ZN,6_7U\Q!*͛y  b_s+6ؾ*;NBF||GwޛȠҥS5w\Pdd%qVoHk[Ya?mVMMIiV60P ;UGrE=BdSlX]a!.r:rw!ff%Mݻu9"ڽ:XLL !D$B! dr:!qܓk]Yqu"$ p!+~$_>BHrE!Bp9w8ޣ/* -SwBLZ,C"XCB$WB!_;B'-B!B!ڹToZ\<|q\̇th_%SeB%>>)SR`>~T!f:lԓ's@$7B! WNBիb挖mo5*ۆܽ FssTPV&=bc3vի{G!F8*XX?G>|[QGrC!B 29 ]R?tȗSiҤbr=k"ʄLJqƍN!PP  ",, Hn(B!TEnadT/_#!"":EݴoCbյTmBx21-a5VYGrC!B*29иqyʗ/_}J)ۦ)*+ mX[GF`sΜ TyB}У{ 4)pB,ZHxOOZr B!*m=rr励fugӧ\ӍdulIbLLGv CE""7`5zRG!˗M*0{![ϡZU3vlM` ~CB!B%CrIMi!JzXlp醁jRFi4hpahmyu$B!J4mRf4WwHBl"WN !Wbx5AA/'O u$Ԩ`|/[ ":|׸#B!B57Q!ll,(R _!B ~Ȩt rKu%lHh1Uw8B!BDy6F[Sw8Bl$" ~=u! x mj.]/u*6v졲=/iV-Xr\!|u[ⶦ0;l*J7wceu!rr[!B!B!N&B!B!Bd;B!B!BdrZ!B!B!Di!B!B!N&鲴4"2|aik@OO3<> 5,WO#NkSXbKNTW1,CeeTF/~@dB۰~oE޼O+K#V-Idts`|sXf3lu~a-6nū~e NeBeg3'Gf(5[ -۰;^^8ۯ}ZpsXU=غ }}LEy29-PbtUn2Ftٿ444X#U(rbE m҆RFey'y-}k^hmu544Xk8_:UMץO{v9qdcZn:;\.PԨ%դUQo7ز2'kCCCK:xʼnB!D+9!=$(yaE*V4a֜ fEӬiLQֻ͛lٖsT0V8"]IoaiiĝS:9~r4OkCCԉtT0ѣ)_LQZWYٿڷQ!V~:>CCC9 ;l愉^1+W [qYߍ3[=I+Ӽu4#[Y=f*p8;_//9UNXrdNhIܽ>KQ t59P:E{ -[8/>JDDbY<DEKV/66Jɓm02a3iѥC5Γ=3ZVzM%TĤx7@lzz,OfW~z[:s(OpZ4vXZr$&kcY^D@ފ@iݚ RJz[K C\ԉwm2w2@[ʙ4ojM.53"ҀkgǡpьPޓgo{96m_'{Wby+>.@UkX9=&{ INcr\zwOf,~[+?{W̤E3kt3GG$p|3ee+@ܱ4nXre_!4kZ|o6[ՙ{ǔqNp(<=wH L[S{{ӧ~̽Զ<}<Ѣ)9MoZ7;3ؾ%cF¤x|7ǩk2.k|o6-PJCg<ώ;ŝ1%uxylby葍p#!"2ZR%yJe7ocggsx?OZ 9Gs;I0I֐{{m1alZ6g8TZ)\OS -WT[Z[Ui!DQh!j/A;1!*$ӬJ"#chh;v\k-bhiǴDa&kJܺ9~nYRÆ8fYbb>GRMYSkjI2>nPn#iQM333g[O,:FgШQ .E Q~Pw"_Р vI{r-#]'EEhxƿN |qzvv}[PX/ s}*ʢ9m6n/lfov~SUKҴQ9}[Mb[{1o?0ilt`^VweG(Su/âgEtصщױ<+Z(KIq=ZR 3ZSނߖY v dxץQ!j6XOw0bp*٤IjӶK\[`^G6fȝDGbvRQC>ܻ2, 8q#e9>|`$wOhl֯̄la?g'$:rP9qԫmPzi< ojBpp`ؘ=0~C7J) kᾣR33bbiIIW !:fflГ3~wШaܸl,őa#wQjnuMwqq:iF MȽ uص;w_êLf S.Zϡ>8búnXZѴIyG_x11c&z-SJU2h:$U=ٶ eg1uAVD-{s9cRN瘍cg9}E,^>>Y٣pļY8LJ-YW KжK}<ôta/KDd f%ީ:i \7e1zHyL5crx1]^Lv{# 9FV*AVNN87&ЭK'8|6E9qf޵Ʃo;FKXX'=ٹVkiK9I5 fyE[][;qGE>giig"Γ',BIavmiپ*Y]GCC͛sYeQ^ᏃLtǒS͚THs?餻‹oҌUi·C̒+ɓW{!1ΝWySlv-+*-WV9s6@P@&L<@U8{f>ޓi֬B֍WWLlft{VDG“ջ + };ʼn4O%8$BxWhT/2,*G/?}ʜ=:?+&aӓ=.6CO^?>3IOySkZ4& 99}/oҭSuEVUyWI8Եb݆hit"4iT$LNWjpފzq8,- a4է|bDxuT҆/B5LSɍWγZ}.M$ybτܻX1#Bū[X&wL:@vU8{j>7&Ӭiƾ_R\ =_,jT$ӗl crmnx̭_Ap_ $,,m|zׄ{N7֥zvEWxx-Dyd8LJ~JOcAYl WN !rĒOX2z~J~K sδbKo i!ʼ}E Y8ԷBG -бcUl_Ȩ~}kqrfGóϸ-88peNAkD!+sAh߮2 dDH}:ȟudzK3x] m fܙE{ tt ^~ژp3}TlFHh$^¥{tTbE Q@^0+Qh"_$2;-Ħ|qDW 4,$;0ѣo{tt PFiߚMjA޼y7{4iԠ,TfkU cVBϴDCNjSeϚ:tF;3t=:*TQ;v_ ?L 3hiXx)ַh?>˘፸pgF9~'U+$[.rbMmu'QN)@J%zvzvBߠ7h617@qժ9&O.xޣ{+K(aRkSZܿ;kcbTG Lzq<Ԧ_x#yaޜ{}lߙ?zSD[v?gL]ug8N~}oa]sfF__!(RDG|9z3S}vH9C*uJGf(KFO)OsC>T-*BemN8{^Q OG>qb K+-mSHGR<ǩ"mեgM%y|6LGa5~$T,JҶ⧃Z1? t>ܶ]"q&pp𢢵 [.y>o&m84NNԷ.7Rڄ+Sޏ/,<]֩:7jqGLޏ'g6/z5^&t~[͵p|K8q $tRn[/89{t{ߠNj@YٳiŅ5عݲ(B!2&I$}oeyO"mE>'Gg *`¢hi=ݺT'o:~1 M.踎p{;fkwFOFh]s4~a,6e[UЈoD/mȨnd}BxOf𐝜<[8mcŴ ?OV02LdBcias㳬=yOd/ҏSlp-} !DF _vύ ˆ'g8Nݡ/ôlXߝv+"kP{3PM| _]݂\@ݡ !B/=ܸ`>M̍Jn,B|$D?jU3NY#}sRߪޘOyey@_P:uvUlƩ~ֺFb+9}GUqa)MPAAT[bb%I M]QPg(݀(RETJ }dwv˻ΰw( އFee' 0!}67c7jrf$=gzuM>} 0_Cs}~EdZGIIqCȴB,?B|2C!B!B!Diݻr  д.] ϶lt3BE)XUϿӾK<1<6$22>}O2i(q`P"{jf[V_ ۶~MT|n`yg8'jo2؞S>0 _xH>_Ѹ<+lkҸ Gu{.G=Q濫ďHaC7a6!`@_[.Na NNK쿍_ #*tAOcV:~Q>xtChP/=z#fqtp +fy&L4L!yָQeΝctn2/$kk4Dpg<,Dxo33 Qy6llus:{7gM?;&,]ɬ_# ڴ/V}.ꌆz,nXM UטGNk6mVϱ1܁F 9}&cPS+ŠAMXҧ*8KsV-ĩT=Wp5{plVSJصWZoahkP#4QŜ>-PS-ŠX۩N!ѰcZdڜXkljUʲս(Mzw iJVձ0`ՒnLNqs-ΨJoaφ2v#XdX!ostbǶ,pSf̞9Ctx.'cl:]ذ/}*h1j S￟REq$ ==Lew/?w^\_vaWp$7d2/me>\G˼>Wc薬t,u:aw2\{SZEMMUڶchkS 4d*ome^| VT#33vvȽ\*1s3iLKm֟ >!~}z)ƍI](Մ(jdpZ(([Fiz::i3v#e˪ܒn]qK^ IL|ů˽976hщNQ4>C9u~ɓ;;x52Otӫa~(-mo2a< QP`VYG|:}[=꤭1I Wsݗӧ/cbϽ{qT\JF:4mjAHlں<%ӷձ1& ~VG%WJ.N-F Y4ƺܹO ']]Mbb:J*I3;s_ W^g3WXG-h;3y>v5zFWg{Ί1olY5zuoڍsBQXZ&ݗӷ'%R8Pz4di}WiX+Lq\CLl"mx[] :Ϟ+wtq_F+W׶hjbjGxx,{M~1xe9Oa˄] w{oPXXQ[Kn>DLƦY agޣp;|QRڵwciuqh++8=;h[6^!9Ǿ~^t!11elX;Lq=K)q˥՜2ՖyrDҷՄ(JT޼y{Y0Q\MKdN6Ş<@:`thÖ>X{.Ö}Fi}G,OrشoK![q{A!D۴/]:}0DKB!B!BQdpZ!B!B!Di!B!B!NB!B!B8yv-TضqLh;Ox-X ffz?GSَp$E-s o8'jo2؞S>U8*'BCt~5Wqͪq`{t d{܀tr"Cq{]wqCGU?ґ391 Z ߄(CSSFH|ؼ*K~ʐ!*thܰ2+lELA Qߚ}1!睛0ur[z45U9B8:XdaP{W˦v\:7po‚z:2a }AL! Q/ z).\YY[/eޜ 9]*U…ش/V}.Fve-- X+&NKYێbE-F wBN eGJ1hPVQ8GbKvy Z~A J_p 6T?W?|mXϔS1dNLb܃Y6*P_m}Tň!hb1φ1vx TK1k;VvJAV;v+}BNm 'ԪiDF̙?➳rqi۶zr*cxٳlpbjDF{: s ݟ'Og:v MMy­uͽOUݐZ5 a>mljٔp.f3x)/9tAnU߾ZTr>,-ٲr]9=.$Bߎjs@@6}w( ``Pj諭ɡv BEEUL㷸u!뾚5 {FE˱0YS|]mjjm\ajP&Izz \¤XΗ>L` .Df,]LBBR?VujmXw 7xrZ  {FM*w> ]]Mb'_v'&ͫsLӒuOޣ=e.LKWz1ع n{|>CSG !EM-9Nl}ߥlըf]G ,_I4oj_<(}W0+!0! =aA9FGGTFآ31EMwPBo(QQ7Kh,΢v-#AxD`ٯ^, H}k_F8ZθNۏ")ժu[M&ƺnxZPsfd]_q uzkz2!B?㴾Zs@/ PڪkWd舝<|^,[=iS1NY՜WJޜYHc:uYǏ;:yڷa?t_ۢ_~Wa"@KK^z @L3tu4hw){gȴoMq=v8zf_m--|M'_V -LoddQEwA|?~EHU۞t_C~>24u45J3zD l.L'}5!Ipc:v^?u{zyw~QD *U cm]UՒep?ӱRRTz6drN <7 \Aϯӣ1yB\h.&>9ӏMmW[ɹi}oU渧<QXy{Qlus'%G"j޿qMa|PݺգWt^١d N' x`:ua~=q/:}BoCɖ~{Ntv[QvymC uKngCɖ~LOE:s9mlط@%yWvRU}(}ӓSVKO(vɛBBoTDW١doFl';T\B=q9W/ِ[J !ݣz7b QPKNNaw u&t Ƚ%'0i: MMU:E|$S4u>]2hjK*9/B&}0]GaJ玟pՄ(J);!͉(9'&2e! A(9'&+ȜD!91%->[0B @N_ҢՄ(i!DѸqeMTVG }_K5{/:xqs¶&}p$Qrcuj83S=BT\|~]}y< 4ka$Drw\pr"]:^!͈V朷bqy >mش7WS|\.cc4KcinEݙ8Ճ* n*_Nf̞֎!#w`j=isbͯ=U qFߥxmUٱgia%ݘ8ŝ*5g n[B! Je-þmF6{_Q\\w\dvg4K+9b!DAi!D7p;w뭩Ա*gx]/PB9V%'q3*}yS k:u[aijx /k\ur9E_Pݪvo`׽oٙج*]8] b}չiY*TbOy9S/-^}le2]QW%TxFq 1N46s]È#C 7ٴ 2mr[?gʬiZ{0t=V C^~nvlUf~DFW@Xq Ƣj4ǰkX5P^iߥ]3B! Z%iӪ:sZyԯkNDSDϺ@JM[Φ[>%5M_B|ldZ!Dծ]M~CЇ#>Z NyFY˭΁6lrg,X7T|4yq1-3p7(ˣOs<&&6]mum:Z0z\65yߚͮ牎IdQYc0ϾWv#r?2ϓ^u6ȱ=mWu ټщ,5V!ɓٽ >AL3tuVO@g;܆[.c#B"+)j%:5'8ڗ[5k1i;FƩr,,iP5?#ҥJΜiog'}V@yYV%=Ȳ&1YÐI<5OXE}Z4̿Fbg?ZXq,ZR*֠{ly!:8+BPZsw~v |Sr !_"qӞ2epjaE6qHn?bj0bir &N_}R_B|Ldi!D@q~M8Fٳa@[zzen_nu #b0Ճ˾AY.ܡs PW,NЕ |HIz۸rRH[o@Dq5Ĺ &ƺlXՋ zo_ƇbYsLM˰1nx7:=8 \~>ݨT)Q!y:n=׳|I7‚fI{9{. fE(zHҋwhRyEq=Νlȫ={y6e!Nmز~~ǥuز3m?@<`6-s !D^}=`+s/((pKO(vɴB!B!B! N !B!B!(p28-B!B!B!B!B'B!B!B! N !B!B!(p28-B!B!B!B!B'B!(;!DU!B¢B?[*lWa(u--ueR,~mVfӚBrr ˖z2z#KTZW0l_L*}|o~nϟӦmuԔ?@ 'DEEE!FwSGe!ɪ5'>Ķqe 3CΟ(; IV١|blC/^|? _8u6ǚBKmKHar7WE*6 kܨ2UVv"@Nų+Dq%z!$?ӳge!Ǐw6Lpr"KwbfVNa/9z'+;!B!5BI>'iPUabea&Oh0hK•Y:v[Y+; ʗ/ NɳoB!ŗ N !?07L2WP7(QBuM uT" ྲ"KNBa`jUVcii쐄B!(dpZQl~>`RQ,8(;tjjHJz0$99)hj*;&o]-N+;!B!5z v 7KLW^+;,!DWj+;Q;~zuMҧ(,La;4jh0ihصB!x+.]SCq=5 )]"kn.UzCco޼ulW١dR׮=AcڵDOOׯS{B!X74T,U2](ĎI6Օ(vyv,4SdTv%]{0PpF$5WTvYZ:|]a!BQlOT,EŊZP+W"S%KʭK(ǫWv~xk(Ta`P¹msxB!ؒi=Vcc@r4YڲFPv۸ɏ}کtt4{0Hw3'G+e2ex*dX!B¿wEں':ڰes?e/'"&ES/9zn Pv(9*Y_7 D#G-9y2eB!NzB"?бO`B;=?􈈈SvB➣W / e!B!D$B"a>oWKab*1%|iݪCɕU*; !q35 FTΝe!B!D$BB/0!PS@rY˰o+Hag NNwtt4ITvB!B;28-(6l(_rZ,oM?PаȓfM-8}&Da!BQP{5qTVQ١bjofȳr4~0D1kJT)2xqh^C!BbGھ}Գg/8.-E070D(; !B!"18maa@|/\NSSmm|g.La.DΟd*ӸqeMTVG }}UA(ʱth0D1j)xgZZ+ ! YÇ6Wv%uQD~e3pe!B!DR$3Naaa@LnNv fhܑC#Vs =zO?7㜲o`PD[ۮK ezT[z#VR IDAT歨\x~\',Bgg ӏƘCyOV9}nΜGGy߅~6łu_ʆ}>ʱdʩ0f#wp;p;քߙ]7oLcm1ק1p]jYMzlz0C׬aȣ x~2}V#z!Iq­[Q|bcPD1 ._5 `e%ByhPUazuM|9Ba!BQjS|Y.a;3ڑڵʴl%IpZΝ)olxgZFj8uaaY8ѝ#u{bcs3۴F65htu>Y@RR2S@WWC8t:2kA6m胅E}n9ijqs>kVή &ƺ\6 (]DUn01ںkWo֭퍮5k|>n#Cm*Pf>Æd˗71u^ Ĩѻ02߸7Mi,cWDdCN|iMe!7aP?f5>Vv¡Nh0B!(V4ȳg/8|%c$$$ULM?a11xy2]gOcl:˗#x"cnqN s:m:rw_k0(^Hd0[ݩJ*ArrTt70x捲CB!(WTԿ/_%SJ=C~>ȵ|v5 ~ g8tݐK\)~C6cvDD1v9rSS=U>?vy%r|ܹPߝ;189~Ayyi_F!bbNƦR.H]s',- f] TT=2֛S sgYTݻ ԕ(n?O/LJPL !)녁bhMdTBJK!Be)di:<;u5O$%BU¶_s[csj3lh3~_*3/tLnꌈIREGS="/[MhhWq^\簶-}[.b>ȡY/J*Jzis;!>ˢjsXabN?\wbnPD1r3EsvH=0 N !BQ@>ש^H|̽paǷ̞{(ǎX#(M˖tZ={ߩ5c]OJ(5jԨȐ)'6\0w_V-# lB2jn]޽;ՓmGVJ,Vɚ]>aKtzLx [F> PA ?6d޽'zs[ʔQce=8S ,RRpr8 );Q }Nl 8Bꢈ(fΜ xoV|B!BzpqsTY2}uDE%еztY##Fٰ\xr|qw_|^S:w4;27[NuFFӵznHcGO˱cީd]o;S]9j/G9l=ǽ{q\qoj-™1$&NqNY9}ngWN1ϲ;q-(޼yî?н[=e/+Hab$99ׯߠ^Z١JƺҢ2*Og+ z?}ߪ'.7I;-zbj>6$2*C?˂̬.!ޅm7Sٻwcia д*M~^x,}PZ\FJShx'Uf,\!p:wXff?7 ~/q;}5~Ee\ x'3hݞ N$6m苿=UEv:g Ji-Æ6m9XQhdgB;5R Ԅ+} #z=1acc̭3ݻ!={oyҫ,޾S>%>naUXgXW?M Q!.ŮQ{Ek'Lb{׈ؕ`GMay?캰체;3g{vܽ{ѷtX̺n'MCGJlm/5Zk U> Y)̛G> ҥcz=$I ;;me%:Fii|e_LqQ =7)ش=BtO&N|O٫V":r?3%V3y !$bђ8vd24ˍTk3-؁9m dmvC蹏B@jZ*́FQ(k.QXX]7:>?R^]Kb~IG۶*n~L/"Mo0er:RIS ,;U]JE8zt7>?2,ZЗ] 8K*iXڃԏc Eff>J<ܷϽѣo>egҥ7XoUTZhBi2“a?8~m(==* .+*ooB:x$aQPRb^EYgbQ)M_[tΜFnn!Ҡ 6aaaM?s`SSul/p'Rr0tH7`nP}\ӧu#G=1{VOɵ2/ab^s `Jq??թmwOObPzmx299p 2:n00 gaez3̞իFsrXҤOUUyYmLN@G2ȼWX L-s\pg;XbWƾh%$%ewOCܼⰳ5ÖMñj-ϣѣ{z*;f8vUkv"9_B{>Wh3.3x3~=;g$$q|X}&NTcѫ!`,Zɧ^yOdfݫг^gw%9C! `wyt[t]Y¦ òWssM\2fr[C_N{ buz˷ꂄF8[왙L!]{m#0f_G'7o%989Q+p4Cs̩ydڜq Ҍ͙OҽMAa3ޘ9'a? F-c k*afWKE !B!-uNB\^~3i. a:%%%"af[ڙ2Heguki B!ŠiBH1-09/*ӡ,DF6|JJʆZk B!ŠiBH'EӤapyysz3#ZFvvaf$!1 Z L!rqntB!9݄ژb$;t_v [v"уeR._/6ms 9VxxdeDu MB۶*~||"ѳe~q:0t6o}| 8sJ-^rY:a$MKaa ޾BF"ۧH쳗gWt1d|[~M(cو~ֿ([~B{6{oGHe܂ak[)=|^Ggoy3 4u6b0!y[@ތ9M7w+nB^{6MTTj|^B=בٗ#@KZ0sPTuxz1do{ԙW7hl@{dž;IBuN7U1ػ \/ΩcXXij*`Rk/^F`*[$GE M3ޘ5n/BtiPR;g1;lòe֘640{V/d{2XV:a$M1q|g#S,LV ܊m0n dd `RA[0mj7LvyE KWI`T(^z)"5P oRmݬ y3c+W`xySa;7V $oŗM4+!"z!2C3sa[l5<̔=VVزS9N;}"Wl~ǏMETy/ O_BuN7QVHALl:vFNؾp'0th{턕N__)τ׋p_d7wnoBB0~KcxrX*֮Gu'in D/ӯ0y)Zus v]m ]-_/[,-,> b"wƺ1on$%e#*f Th4RdfCYY۸zSj7Bry79y\MT9&BUY9++!I?|6;JV]Ua^nߗӻw3װUҒ>66x$Η:9szΝNJD~~وO1NXY2Z IDATa~M ѧ#!+#yszgcg8+!w3SW0ibW 2C\\ 5yݸXĚoUsʼn/yw Ͻt~D^[W}j%!ij(ŏ|u8 q|q03׀tT7)[?E{Men[8Ͻbnۖ _/55GL$ oM%(os -"~Ş/ĢEy-h}vO+b?`l76xcά^"_euƺqrs Q =B,l<(+S62HK+ӧܼo{AٽMY8;s# iIc)ذ6׻1}j7_bP?/[jd`'|GaC-0g:?`]CRR,ob"ٗ. +MCX,dyɛfv/$&ea.N8l_ 1&Bظ L]Gaʤx<s3 tRs,n^+{S…3am8ioLoo$bђ8vd24N*)M=9)(Ƞ@jZ*"o~/VAq ss S$˙ޘ9n/B=s>pknC~&ܟh'h]Ut9g<6l]oGjK̝ӻ7x9^rDB3\NLGRRv**H0j#|;uqA||grF~}CZZt2koG$9t$%gC]yQüɛS˯>9y "B!s?L0.lX¥72C|KG$88{#<"]c0f%w9O{[E6Q{Q&(--␕|򍅙:|V$Vw?[Kc *!22q OYJ:IRRGtWoǐDao )YV?uV}cocq菉p{ (**Gt㌜g_Gw,-uOb`IG`\nc?{~uh#R*.WȤPTT^ѣycYͼ7W <7hVEt'C!g>S-Vlo'~q't)=8N{;<虏Q&(..yE(x$aQ7֫(m~-3g[4+CG 5BXX2OٶmU<bz#:&x /Oትg϶x4ޮi\} ij*ƵGlOnI_\m[ٺI_N7}}e\ψHk /a1q;\42Ғ1Ŧ ðlU=ǵ+NͩS,:uo-cSN\f޸p}5ŦðlUǞժ&k* i4!hij(ƕ#̜[8Dis];{>y]^ ::]#ߦw8CBZ&ҊY(!4aBL'd:J㵷#,M?%gΞh c"q% 0F2JYhQ?C!MTnn!VMe:zrulwJJUn=ӧf0!fl8}5 htSb:J͘NyLփ0H q/k!6mҴn{o#è7ii1M!BH&ǟ\yhLZawػ)ӡ zj[uaBD$33yb ttt s&B!I i06ss acw0=BacbbbLBZ^cLHJt K*a 4fB!FpBHt Lt)--S` 3c:F'"MMè7 YhG!BHcE\ϞmjϲszݛHߍ7>7;:1x툤p[n:dLB\L jj n!18 "%%b MG1F˄"aB!Pt3fkcL{w4 [ys ,u`bG&aM;zyiRs/d5Mع>NSzTJWW qqLA OP ot&!1 4rB!GԼq\{,+ (xx``s%CW <󬳳5Ex1BҘ2XUK9I\ ~!VV44(S0wvo YrwmoB!f,\zzJp91 .'q:M`9< :mO"88ISrV,a: ҂ 33zzJLdH!/RLBo"LQJKK!..tB!H9ݿGG?;:/BjjT WqIm 1 i K !!V$^B^^0!Biqc: ܻaC-IUBtt:a&Htft.3+ٿB!Ɗ: !"￟0bx -g8Xv҆T)jzzJiR51tVVh4!B!LiBH'L4Si8NŒi=ɡӤ>šc-èw94!B! iBHzө4"$'gؘM)]]9M]֭!&_XPX&B!iBH ::LBZ7>ފ0$91i=CFL K EӄB!0: !ur/F}߉0H Ld2i=Baki!BauNBGJTPp"L۩ԣTmt RR$&B! 'ڗ/)Sӡ+㼎$%Q\b: H%&fAKK0Laa h4!B!SKg϶4I GBDso̘޳^AHyňIG{N446LB!wXht IIA!B9|5LTtu)HՊY Jӡ0j$5]WZZϤi"08mt  z!"!B!La"ZÆu`: ܼ 1Z]ik+"..0H# 55yh0%%c: B!BZ$&1~wLAZ궡9E@SSqqLAd2FbJ!!AMbB!B@-qBHf@II 2LBZӯ08 mmE$$d1i!5L@_X?s||;"#SJiiB!ix{cx4C"4jBMRB ))9N/ &F#H*((FA~1bb2 e:$B%-mE@VV nmUᔔҜӄB VHK˅KJXe+! [Kcт~LBi@BDl>HhV0 9d:zu̬j5\=GB#!/ -z˗Z|ZZˀݘzSSIIYT_{᯿ޜ==oU qA!> ׇ=:e}z*$:уe]*gg!!!Aec,x ݺ~QյxÇYxbB\: !>uBRnh_kc#5dTQ燞=o㌐XcYcm< Qs-l?36owCӄQxx2ոs501Qi,&&j8zd9ބ6\W/σ$O5Pgiyx ._ Y)֘SS E{&&j"tɵB;a?o,?i3缡723q;:v~S#DҘ'CQ|5[S\8妮P+p/ڙo<ύhF@\cbva} WK0u-))aABĄBd(V~}5L??Z|M!' ;g8{j&yv́lΧ. a ] ENN\\^B]5eT1kV/DDpu젍}=QObІ&L}\@C]LMru? FNx(1Gc;`rގaa5">԰JK!.N# !lU=?̛W.)k˵SI)Ko4vҼ߻iB4j܊-#(p+Ba֑|_EExt|Wv@rrv@˗N=:_"##_]7VV:BQL_tj؂-# Bbۖ|[ƾnOVau:uXУG[|CttmƏ 583v\1:Xh!)'~/&&];F!< !N|a徳"NxL5i\NLGL,[b]uS$8Kekq#VETvmX{+8Q#Gt2DCC YL$!36nبیys{@Y qBD._䭛m* `neS|-f/a?CEEz-޿ _x,'HHB>p;IH!7gYI :jW;3 L ;z|?#޽^XgՁ;tum]iBC+G|فN GNk/![Fj 4ַDbny;p}gw"6r'^xİk(9!" Yc#5~ތȝfeF >rG킷:8{Nû^u6Es, 9V0 XR%#*;ws_#--yN=? njbb3gJip]muX%L[KojȨTew3X{+p[F-AG JⶽR^;X\r]%ZkDFkT٘KkqN٦:o9-`bd<pA\o}~aשXR|>K`yTQ^MʒƉ: i攔d5FuE{-,\З ښQOiU+ ,tp ĸ$%xgy%wsy,V)$%y™^Ξ>TĒqi00ފL#ThcƁ?q7CR2y xMM<tM,deSh(#&݈>{gϕOZG`A0 ^=c1n‰: %%q;df纔D*)!kZظLk*URJsNBDdJg_9[-Ab2FNkO8ql L> yUERrv]sugN!?Z!X,K#TujMRճUucU]ψ~ƅZ0nuagkP'c֭1eJ7 n+WߡWPTZC4?+? !!Iع}4dl5TQFR}\jn/_}A\|&vyyi٘ rXvFpH\;[3| &ƈ0qB\1(*faά^6ܹϧ\df#)=_`^ 4Ż`^częsx3ukxEO}9kFBBw 0~w|nUI<Ƀey +#i3Πwz3WQrr/>R>3 0+s< ;nEZ3df-aTV~C!"p#zt3ߡuki,_jv&|tޚioI oo=~6?ѻ!"CF -wW@ˇֆ8vm0~,_;ѱ671mJ7\^9UMAaힻư? /ڙa¸<?®SMcoNS@x^{HV=׭۾`9U}F{4.9MC.]~`lՄuXf = u0qIWsκ چ)SaT:4ss0gV;~Q&L>ZC'bM|2RPVCHi7`uO@dصc,o"u7vB@Bx'nߏy .1v LaA[q\\'Olʃ}6c ͏XK*U6!`dNI\:vs3&!,d.Nr*|aQ^l\&O=% ,d:u۷ RbiBL[x[7@06R@< yGܫJK'1}jwmCOGRr6N< ,p+\,k{q%OW# ^l݀{akx!Z๗XxKܵ9t-.93^kS0a Cʞ0~IsNV^>??#: *o ϋ|[kW!4٪"aǯi چNWgDwm?OH"VZ'&˱V G"f-od JfjSTqHaYY)*&OO"aFfeW^/cк45-sS3@f=u{ KW\gӾ56Fj'(ҽ)?7%9}r9|t-5&B!`ҕiB%gXׄ$ iyH@^H.]ᶪV.Yz.nǮ)Nӥ<2WMHSҥMw1U̘yZajy\uw~ۭ23ˏx]Ě w1wZt_i٥K 3}/?;[Sf#!~7Ba`vk DT/ -3wvoYxʑgԪhK~鈤x ʵ֮CTv#"׀_sye= ǭTo8}^ز ߝT4/4b{܇L< Vf2"`kt߾µt^]Wpp0] 99E ٳsd:wAy'| 5D5ֵk 8rs;bmmJ% 9V*e^XX4NN,iA΄>`ŊkVqj5LCLL OVX^V&+0tV|Ng+8:ZɃq;-ؾ_bcrETUDG'Ъe%ܻOsx$.r]ڷUg_!9:Zz+so=J咬/]ϥK8Qy_kkS¬'e9͚UT^hڴ"ffFxyѣE:}B{_z͏NU+ͼss-y]8fq,ImB!DyǦ δsw([a"·y{]?q31O ={'3DZjDNl N 5awbpu+qն ({mUuL7zlYkn݊8N Ɏė,_y 0ժ$&&ݽ+ګyҪ],/܉|yJ~='BB#116īo}.:s'#j9zÚܩŊIcVV&DǨ1 X[j516t)Kx >a/==ƍ*0w_|р[Ibȓ^AJ%ݳEiղ͚V$M\$T.;lGOXKgOy+boa׀[.H墬cb41VV&Z _UʗxT6߀"ER֏9r=5 }MΡގ;S4/z2'+w/͜| p2V\7K !niNʇps-=Uۜlxa,#?eHJJQp7JABRHbj*ŹW)SڊkWƳdqWƍaL6wL!XXfhsJp>w5gvzzo#%%Uɩl*LfLߚm)RD-*q7<S0p#ӧ}J3C?LijqqYK2bawh(eJkΊ>LOwn =z!M 1]>`݆s<nSz$5)KY[p2NhZnQK)v N 5fĤ[)6N,-KK,>F4i\gϞ+ޒ_ѽ[-_2?N~C3\;**:+KYg_|l|ėfÆs|Ibc?x9Gn*U#o8!CnFz9p|a{aeoFp5jDx}{{s=zcؼ%M\n<'W8ƀ/!M`^囑s fNؘ>%6ٻoZ5>*{^xoɒt﮼/?̩Shҍ9soaeS\;~Sq]oKsM.(0W-jVݽAA~MĐ4! 4ʛѭ,K[qvrMCDtWW{ث^YǞ8sRm"jػ4l9hQWW/ ATLL66fj۞>}Ά ˆ ,iذB/dwZXXgy]QCgΜQIss#uߎ~B!DNl/[^ȴ)Q8onnD.Z Ǥ D~#BMV3~.bbX(xZ+ezq(ix9~3}/Чw]LMhMXX4rx(* %WiS>ʄ`cm3=<\sk*MẄ[WS['C >f.kΟU;AMX4/ њR4h͛i<@{?U&ؘf9:Zs?l ;affx$̕;!ShҸ쨈˴l̪է^^ew5@kUTTVZfd/gI?ӧٸGܠK'.\@>u b9~< sO__3Ȼ'oqAӧ*rLK#]!ÀB!r;}{ٵ{M]6077khܸ6?dqƬZlMnJ]W@=VdMM[ 6mX* L۶}nöRy) IDAT%J9[<@% 7=Sw6Y>|,Jz-.ݖX7ёA3u툣5wD1pFΜ @NX0B&oԩ[ϱ0cit.yOysCzZ]V~kY W&*co5kwG?>HXX4ߌݰ7[;II){2.â8hgV}"jФY؛W Uz1`F\\&SR 6mz}_hmۺ3ztL¸q1x&݋ͭ[յL\\"[C@@Qɽ̣xeɢ._ՒwGFȻ:v^ƂusO9jN,]ShQXXӱc k}ְjU~XXK}4Z=uPZVJ¢['{O(ȲB!D!glX^!B!xdpZ!(lm͈|j!B!(ddpZ!(llLepZ!B!;'"NMzkXy~xULJ?zwG`_;zܹw]YS~eڰk"ёԬ~)[N9NT_uݞʁ}C(YB 7#EPL )KӦ8wwDK(Q;6_Niy(-[BPнwsy⚟&v 5?㲃6&.GPݭ)ا%]%BԬ ?N_1 m?Ι<7C@KبBp`O6 "D^'"[ӵ STΞvۯ=iS>e >2Νjйr?OYOE3kV[f>= ǭ֯?l*۬ {b`RPD1jB>?a_0@3_ |͇9}BNJg֌6̞sP<$"0(*SY8Qv/ow< Vf2"-?|3yumY71nGV<<\ӧڶ#GF`aa̰aA==nMst߷ZKsDwE׮+HHxID:uZF۶չq{mFll.*RDY30{v ǭr6.+3}>,U/Ԅugsx(Ç5^]k|#y'BvOvʶHթx봷[*8۱hAgFFyIlz02*V.B}-O/_'e͚mU,wnM12*B֕iԅQaSiڤ"ffFxyѣE,vm $^,U8PS!&&UeU˳>6yq~քFAǎh xzc[~^15- ߀Еvm^48Z_v:9һWBC#U Ƀe9ٷ}3=O*WAFRSS2d3#G6r咊k46ռ_tK3qXY0xpMٿ ~~)Uʒ#S1}V5ٶ-07O;OȻZ 2)[!iDzv;!Bd]wBo/L˺p31O ={'3DZ-{j/*-'BpvR[d_p~}"D^&"K%Joܩfe?~ڶTTBW$жR }c׮T^zzP=KiUو8֛-s'm(Y҂ Y:&p}>o>_wS]WAOipKk엝>1j HUP^cecbܤX#^mbp6=?~ʠAM4S]+|y[.^kq_ψ^HNN0qbiѣ==z5۷XўݹMrʼ&<%B}ҵ[gݒiQFhΕܺz gf;fxظL i K2i\"D^%"KJCqC>j[hh$g37HEU\12-4ogg;5tεsȯPNyN ʄM5ͪ_/q,ΞMF;Ϗ/h-y$1ú<JEޤr11*++iԅ+Wzi_AlwRŁ1c|2d3͛W3 o[ygblHRnI\ W_6=̻yȻ7B!Dn4K-mD4-89rXG~oˎXFe_Xٓ4nigɺY~!_Ȓ](^j-!7&q}Z}2V|QeÇO6}&̘kw)cQQ,Gjz===RRR5}͛ydY3b#G4ƍG꽚1}BC#ۛȳ4bO_ˤ!3~FϾIM0*jb#y0r7n>Wtw+-llLfN<@gժ^:u=VQmۺtpmq<''[BB&q}ZGGkRRRS/eXn]n'ңG-_з1m& ҚwL.v$'w ugݚ`˪2uF*h,Vjkؘ>%6,-*q73Y'=O0k~) ygyAKcc?[ΓlxO>q?j<1>,$BJvKz/gKnU1l6ĐR2BKE BY28-7ӶoC[:ui٘x  wׄDp# xDp\]SLuRMf܈n]?`o(]ڊ۷w?cnj<(˜hPI#jOKtQKeRU߯qQ>EeX{~Iثߏ+b2<xs/UpM4z)ll̨^4ׯ?ŋd{AA^]s/9z&kgN %$1vƆ$$TfnnDnXtzEN!(ܢc[\IʔH"}x2,_袥pL B728-Zd3>k+Ohͧ`+NP>}ƍ8p.UӞ~^6e4 Gas~, /)WWiS>ʄ`cmW4}< kEhM)K4pGje˕-?bl؛"6Ɣ3=-e6?wbCnQ;Y+Nܼg"SOP߳2[\GZ2 yǏA.5R$..SDE=UʄE0Cy9)V̘V*0{v{KsM{Fy7NKYWNI q*tTuϪC#]B!^nԅkhP ss#vƍ+iy6Ͽw꿎!4fenvUȳdi~8wzXL)~![lOc CdŋdIz5>kX+׾t[Nbǎ7}fY6+t>MyOysCzZVN^s*N]؋;k뷖% |e2V},`;q,fE{5h,MQ\~Hޫש]Na)ͥ]Õ >fذES wUdNHxItt<..jpaܸ[_Hn9/^Em{ ۹&9wl u5kЭt!;;sΜ{3xV9 \nuPn]jҡ2]W%Cvvf9M3 DiӮ;W}/oK2VJz͊'f_l׽6+VI[[3"#v)_.];!Bjiy\RR c1ڻiQڷsgCaQ-t]LMҾ{o]W@1< ))oA͑B! ;U뺮V/h1Oo헇cC"3<o.y'B/!+9-Bll̈u5B!B"28-D>RN9NTWzN #LBj_ٲ6939vt$5k:41q1^\rDWv9N~=' #"|wZ+[֚]7c#Yuܵ:gNzL 41)r111 HNr>%FĽؗIԒ{;qǎPmS3y`&$B}ujqG*=a90&*ЧW]"}4^Kv3gz?=fr2Brt bŌx!"^s:UoroV B!_{=FΐMx6evcX_o= K?-&08ps-=eeF[~׉KAD"{7V1sg篿.nYkGgD_OTmzzzlGrr*[>}Pny֭ÃqdS/^Zر;r E^tn =zb6؎v_b݆sg~K']ء))F:jUؿg0awcط +W+nG3άp{u y?#]e>ksQ41~2J !"s,ٲqwqy7rfٯݹv!/PZ)W+EN{7}V1sZ|~Pu6ju\]tqW GO4f"Bs^v]J~k7ѣrv+DGs}lFyy_r? 'U:ߎiŪէ|̙mrDu5jDx}.{q t^]z/gKHWz|;%(nĝ(;ū:y8gZ{vL{B!Dq* y̲5AVKUWe9^9xPXkuؾ?ߎ]Ajg̜^,Bd28-Dbhh@8svqu-NѢmKtOkycC^PJIGo[p>v4mR1NB;4j̙w2-tWW{^TXR1zVʄ`cmWpέ4i\33#>n]Njn ˣl iWnњa^ow?U&ؘ<r} ;annD.иq6)6j6HwJ܉BњwCM5U5s!$XKmRwkWr/%%:-B䤃QC5Đt}*S׃h;i:mW5c綯<}/v_L#"DA&kN Eͨm,8y;Us IDATzUfxa_"m9I]g=̛GGk܉bYGXX4ߌݰ7[{Z,Bʸ[A$>s wTiK]Se V^-s uyQXX4xogeE=,Yԅrp0gc4׹^rJ 2WC!IС2fMo>"n n[bmmJ H߫eX|iw/gBM.OORS?"GV۔l]5fo`H'.fvYxrMvmY;7m133z'.XXK}Q:Qs-+Wu5Ho5l!)!DrYO>oQXm"B!҄D]WCw&9YfN !BKB!&B3))26B!B N !++bbdpZɩB!:#B!RfNEfN !B[28-B@ N$9%}YsZ!BָB!̜B!BdpZ!bpZ֜Irr 2sZ!BָB!u] !ޙT9-B!NB!y ΤWrr 28-B!u-Wu>}װje/]W#_u $1<1*O>u5rT\tuu]BI֜B^!}!OfN Q5ŋd]WCmٹ뢮Q(*xߙ;wٽjZɩB!:$q! 9[3"B4ĩӷu]BKO&))֗f:*3B!%3㧺*zٙq7ݗt] !rŕ\k*^J,!B!.Ik\BΜH9-ƍ+p䦮Qhӹ$ƍ߉mu]b,!B!u|LIMQ FLS'Fahh㚉wΌ u5Pchh1Px1]WP177ٳ*){41֦RSR1ЗB!B芴8fH$7C")WF ;[sGi|&K{脥 11 FtD(-Z&dy B!$Ss3#|X9-$f.u5  cqq̞s Z*" dpZ!B]i(fqښckkF.xMu5`dTǓwʄXi2~G*" 9-B!nn7'!;;;w]qMDN{GJ}jınY֯-SГB!BLBg)CI n݊uU bŌxQ ̜ͣRRR1ЗF!B]ָ}Rt] !ԩ[G(4͍xT K~=J˖pvuUDRRdi!B!tIؘ-EyS8}Qh(eYڵ9s=j*")2]!Bָ;;sG>u5JOO  iYHJJa]̚FUYHNNHi !B+B`kkt] !2ԥKM6o9j 28͘~)^",!B!*K(b&vuQ~ϳo=Ο39{ڛۿzlYkv@ă;:5syiQ,,u]ʙӏeȻ\]sjɲ6znԩ[%Һue]WEdbY]WC!BB+N +w͚qֵ WVY&O_mOŒ]q^ {[_bblG׎ BШ\w;;9-&+rxQjK/A&}"IfN !B[bpZur#GxxBzsd^zvvDESׯ=$11I^P`85>?=3{wqH>-&c֯ġCxpo:N][w\]s8/AxT>j~1~ҥfq)h,Æ6#n\Hv݂Sze<|\UU63ҟǭЭ=232Yu,δ7:d7sQ2sZm%-x$]WKMu v_dbԮ]NUo@1sZa!B! <w(iKq`M̘ ;ѲZV~9To&I*,i9u櫁6ժ:dϚg8s6m݂6f~ĭ[Z{i}nnٽ2VV&DīgXY}[kL{lw1پ?6&LŒ]W<eJ[q}P~VHSylt>(S WT2ymiwLRmz?U;3ҜWxx }--?/\W_6VuJ 6lm͈Ϻ:֩c !ǏbIF}󡮫"Prr̜B!BLk|7a`6o@eXҳGms-_ݚM͛UzV|Vݻ:u?U\]tIW ÇOט))2^IU?~yy9_e_ѽjmMfl֝} 1׭?v5kOd䳷<4y7Ϟ=g+-j?ɓDvWvWtҎp.ϟ'q5nߎ[.͛fXo@$yМZTB`h(oS03a!B! <':ͻwc(QG0t>ǎq^9"_LB_?S6n˅scpvCO!K! "Equ-N`=]W@{K[bI4p^Uo!))}y B!:SDR&&%4ʖ&<<kNziJ`F;eO|IIUzzz*)Zc;P3Tb`z_vuQ=(-jTw/͎'8NE 5jxFǼ{7%<^)_ޖG?@/'~Gj6E(2 Wjnڤ"aì\u UeQ11%f8 ᱼ|B>u133bMUk:tIW~7{зOݜ:E@N߯?A|,9)9-B!iǏws| b)NMpޙ>WuoO$2{#Gxpʖ?'}³g/}g|3OfLLv񩓣9?c/P﮶i\{&DvIn+T/i??ѣ;:fD6md ,[2%8:t\F=?joq7:NV6l<}ۧ[GFכ|5 bXKU6=8K/:tgʄ\;9O ]W277ɓ纮F6秿JuU"DB!BRrwTَΏɱ ėB\OeNKP*ė|5`#Wr aʔ=Y;[.7eO0^G]WEGq Ԭ }=ײrEO]WC!B[d;;3C&L 3'44RU)dt,òjp0k%J~d~9履ƱZ~ ĩqg) mٱ3Hus'O,X69|X6bIj%VjߟX~"-?Zȃ4,wX1#=F˔ˑYwD+ci(㘁WՔ(9)j̎~8Sƌ\C35(ޫ)fN iy(5-$={:sİB!)28]@\ޓp*Mesl\cCe/끩IQ*UFvK8ZU%1xPjם  #"W_S֜Ȩlw\:kѵ _j-{#ƍ٪G3%>%WLwW,^r񄅋8sʛ;ϓX8C7əjPաo?e>\@nеJЧw]}T#ñ0ff={'%=iS?e#|EN̝wx'r%dY6l<{RT#{} @ Wu'nKL:Jy = nWI))b=y :_prU">Sm΍kuS>; :$1,B!r NU8PS!&&IP 8V&+0tV|N&Lst&448v<g';<=}{ E+ZԀϓ,w}}GEqa#E@)Bb "F1&KT${wM~b4v.D& U4eteei ę;3ݽd{G173tu0vL[ܹ/F=Tv{YΓ=#| "$-3r,MAAb6LDDDDUcHNɄzڈJƪ=gcS_a㦫wmlne ǫWe_I03+ݶtuԐJ̷N+/b/o]ĤLӦ4h;n0~ XkC1i+&i--ղ$U:?l%i?Iv>̇6nh-ŋA 7ضhb|h}Y>hjrZظ zt^$m&&&} fsѠRx)ZsgҶb{| RR26LDDDDUnH2sr œ  }'!yS_,ZrEv/LAsmk̞s.8qB;pZ 0~۷IWS6-s#u,бC=^}*LUJ~MqzM}} $4~A?Mk/˺[W{oƇ|toMEǯcKW<WdeecܓXkR?^L}R&{wyw (yl>SѱC鶙J$CAAq$y]gt&w_Y"5jj;Oyuia&"""*7uր`_(hkB.P%%"奩?nLϞDtL nu04@BB;!88o|󍆽}b]#3-ԔPReu~hdԮ:hFt+/J}MBPmko{hhV,><,=CÂa%g02@\2ڌ6`L'Z@=T%>}+ah޼6LDDDDUXE]$|eoǠ &:=$Ҳ}9^}]/αyU ʰCdd햠M IDATcRpflljjrSTG[:)k~ȇe:{~1kk$-11 ]{sFox0tc|~9X*n Gv;/l3I2-,aj->PlR@H .I^K>?$[HK˂ /hi*Y^ Qibt1}/ !Aп'cG L4l6n)S{O[[{5 %&a:oܹ= ;ǪUf2+iص{<|z q8pΡٺXyZstIGPjf9[yPPǑ#8 1~aY-%IMđ0bD+&OrE Ǖ8!Ӧ}UoUj#;a{9/s0>mE8p?]akXꂤlF[$%?>r?<$sOJʤfȑ1%w0-V1JIjj&V;uvk3{Z=}2 '{J}}LrE GD((@qZAAGl`X'[XBWB'ؑR#+k^ Qi?kzv,DTFRW󁈋qDDeg鲳h߾.Z:Y J6la1ca䈖hBP ?IMiF;w : """":s4Iw4QE6f3~aP%s? 1]DDDDDb4IgiNOO:xСP%{b$WC!"""""V9MD9M euè>mү'''3gDz]""""""ĿˆHBMM oiAKSqBRiA$ Fz1:"""""jӕX;[]V-=<1 qpB,N-j4mS&""?;&&ڒ?lٳ:IUWWƥ 㡦9U Νgh$-piu\DKt &?u5Hɾ-[A[wrHTɓ\e2;iԶ[>pi5gcͲAqImMgZ|8;D ~=7S 55%dfV/qS E]3~(ݸi!FqIкMg_ zn4 ~7Mf"Xy!_l8|G> B""""H9]I)*cnX"``F^ؿ_?ʶsŁR?o661mqn Ǥ**1%6m*u78rNm_5'\wH{>}{7{< ^ %%`pp0CP<  @ƻ'O^`NHM^%y-Ran XR?]C+$h&wwaĻ||wVۻ1DVVvcHOb̞{Vn,>n M}OCn#!= ׏غ:Ν *v%<}(PDDDDTsቈNAhFrr6o w\Qe;Aw\"=JBቈMōa|@{o{1%ՕD;:R۽QLn--Ut=zG173tu0vL[ܹ86lR~w][/LQTS&< 8saccpi[*>%^xpX4?o:BYy wwV\sہv.2MML\Hqhv)L̪Knx\ zCOO L@4<<w߁QEJj0'<hdoxdf~m|U6.VH>LL a PSUaNؼESR2(KGU5ڸ3 }4.} /Gх(fP=yֲh> n HN@O)UumظR;nߚ}?Q5>y?)8|Pɓf*k\]}cXZ-~#Tꩮ\e砿s^LC5pghGFq~12%h7n*eghᅙ3;BGGMj;%QJHEE-jSӥ$dBOO=߱E#?81rd+:|^eSu)iI@HLL7 %0ؽܹ\))=]tddETt ~]yfs~)~\;S̘yB`mm6ƨ`S&bZR;_PG:ˇBHJpOD/aPTw;|p;n!ڴ.z*HO_~=E -ݜ+v +WnFGKTf%RLL*t1m,A#?^L9;%QXthu(GU^N99e8'߱%).crG}?9\ڈɓ\1e+Z*j]E8!s|9splaYO`!.)T-۷"ˤ4~Hm9laFuu%LG8!0oZs 5;t= <ƋQf#9Ez}Jj L2am5U%sŀMqcX/q~W:`u).HC2xn Qð|@Gχ5jho:7ę3{_ȇYjjUn P&ZX1;txnbߵbGKni3g h7*vYQ6&MlMMuA^_<:_v`$"""9] %%CQQjjJ?hԭ[ 2fwlIDSS7܄.={ܸkkE?㛄;r:2}+h޼v7oDm~Ѱ)|f[I{8+W }}qpOC((!(8ܮah޼Vk"8t>Ez8+W}a<K-鄄4l: 8UDHH,$[HK˂t/hi­]53m ̙wؼ*^&Qr.^{,>ǠVĈ-zzOpi[*M´_aev$3J'?trmp~ŵk/wU+{b{|򡪍9o,ZԗA}tgG󴛤XnkWCѯov#u-vSU.K-,ajsN"-- ޗCutmiHM^)y}9<¦}]UWszFТymŶ4Aq7`d'q?XyȲEVE^e 11 kyiwKoѢ6vSZUrPzX'~/x N8vɂNٵ{}~=ck8TUZstIGZuk"GcLFFZw/͚>SXXaq_xun>Y|Qc¶wUEY0v!DG^}c>4umJ=+ŋOS}-B;C'>}]9Zvc0F>zyڍjv3.O9<u}Zn%y9<'kapt:4""""rr>^xu=J;*޽c@&gСPwo{_uTk+]իL8_hY]]u| cO8ׯ6.mGT 4ȑT}436.] :*!8^X;XC'@|CDDDDTEj@'?R\"jiMMmmpP):Pi{t-W%t(T\E.`a't(TɈDb """""A񉼚ad+ρHM^)y-]ޗCtYlOc̨6g;ʙӅ\(bXСT99BGP8>O 7BBH Q5i"IAAb %qbСJNNbqŚ'-- ^ Ur"(pi"""""A񉜈d@REkάy5d`H0̘7fN55%CJN$΁'r"@ H0X03M:*"+aHjiS C*@$sH`|"'" 5&tD MXsСBYYBx5vɓ\QփHP|"'" 5D~j7-t(NUUo9^XHi"#>X'-_g JRUU#~ ..uPN C*$[$" """";H&&@GG ??:r,a;qZ( u4zD+p4?;fTA]=]u88  3CM$&r4{-,7\1m\ bvgǦ } 'ND*]".HDDDD$OUP ] KvNV28w>n NzZ+/`f06,Ģ(sHP|"BY[ ,U}b&""""ȩPf5u"tDD6g@rr)UUEAFNgdgxѷ~m>Db1(LDDDD$$>S s,Q^5jhbْ~:2;twNϞsSJ_#'r*D"a/' `W?舱!;j#X 驣Mkr.U?b+pM"""""!sT.fbcSHO#a3BDT!5kV 5ńIG dٙ*e^NNƌ95kuu;22ʮ:= ,+E-,ʉ2,=/n!pDDW'7;ǿBoQ4l 13,rrrJƝ;O5Tf׻r nCcͪPf"zO'r*ʑ*:rrPWF^_ Q%of7rr*t8'*Э}^k{xϓ1xU#8 " OT$kkC' 9;X zhd%t8DVFkA__ rMũӏ볹ԁ&0hP2DZm,[_8 ;[đDDDDD9BIBABul^?'44TvM/ܺ>G9CKKs:&''7PWWn]ٳNEx~ q,k%@#9Hή |!Cw븯a miB {àR4dx+ me@SuɁH,6SRW!;[ yvN OTlUaU"rQU(WאP A$si"""""񉜊X TEb("""""Asa BADDDT*\H`|"b6DXXa (&""""ȩX, i"""Eg4DNbee^ Qs "DNŢ̌BQ-Y["5yU˩+C[[wo{Er\񞈦Mk+?w/Kt\Q*{ATUubקern6(־TU{w&z2>B9'r*C;_ !li`i=& IDATǡá(Un4(qEHQUecm-`^wCEY}yM ՀxD"1GN OTlHJJ: *&##R?ghh,'HK˂-Ԩ =I++ (5Gyq+Ke^UUa 0+מ - Yt ^}.ewc:wj OC%}m*ztX[?cXD,ēGгfLȐ|8|ݠef|ɣy?צb|SWWƔgڷrYw,_u>= 5|NLĨ_>U}}--qb}s/Zeml0iQtjڵ.;Bג5`cmzu`mewUx..d8؛\!5~T|G=y}ZĢNADDDD$0vNSih,à FWW "^KFoF>Ÿ "uH$ƅKA,8Wo05"PǦ1.uot;FpH<Ν!5)!,˃ƽϝp%_};EH'r*9J4Q&J휮ldZ o upptZmi׃1|^CYD.F u2ZXY4oGC;ɾa`ߦ8t~SZtmkh._4sZnLÔޗCtYlO`(g񅞣^,{AWRR:z ؎A!|lYSXƥJ[8 ,ϹkS1e+j.? < DpH|Jr s_WG n.]2N}, *:&z=D2 i;V~q{=mG^hCGc."CH9&SSۆoTSP7dnx: *C=;`!BAhȈ=:'tTʬ hM/Ѿ lrIpsYN4z&ARR:f>Ν 7`mepwwCdiHCpp;._ )-cRf7^ĉS9zvs*'''Mzco\O`mep}TDփHh|"2g/eAzFPU0|}{54skTDj{Zzx%bcSq'V| ϝ>;3jV55x/|PSf:uj ,,1jQ ?Oη/"" 01FK'+'BMU Ç-9I$Wpt^CGZNAAob4j`*W/`h-uDKX66Z:Z!,VTTU/ҡGm٣=t:22׿HI@LL ֭Yz }Ν;Ϩ`_ i_ԩ_Y=\mVl i?jjEBd0qxo_)cX8]0uRU2윦31F|+j"8޼IF>fHMDNaoߊ+Y=C+DE%vm}4A =Huu fP~~:^UM o mm59TM7`fg^":&7n+DDeNIImZY$ڴkO ;铘"**Y0b4}yy9Ņ /m|ƦбfGK&Vg4k;P/"" ]n,nYbڹb^Zq(קI+HM^%rmg 2="-`b-9懑0{V'k+҅ PSU**vuvwZz87'Isjε+m2! q01Γ-1{ԹՕq8>`4}9;׮O?L }z{7< ]]?{"0)D>[%`6|/86E;XY)*cX``F^Eؿw/sueg;Mcc-WpL PQQĈiUk1uWe.U?XV E?xv-cs3 vm钗W둚.H cG9yոI\*ʊ]:z9S'/Qid:M/<<w߁dw0jɮRE.и9yYZxMZ@EE_m[\Gc?vƎi =]5;X^Utztw@xx"Sа)62Ţŧ[")9nnv+l:5!L ='"667n/HIw̾0bxK+r퉪]]ۙaS,Zv&7]CRr:ԗyN8x~999lZk6x# (zظTܸk+CP'x+;ÈaN}""""""b4}:k+^9#tt$D| # ԭgUUE>{3Fsfnפveܽ6Ma=ٿVM88M?TAAhS0}qZ 2s֮ Sػl b2^a{qCok@&AC!--}QFp`)[bmDF~ŝ򾱅TUu4@QAiRg/ Æ-W1~tsӣ3?/P\ """""LLt_,[~[UAZeӲeeܹ5 oPT wKwFN0/6.I:&.;-iӎe3  b RRRUR$Sיʩ'aћ#1).aϞ{h߾Z ܅ ƌn.8{y>ACCWLD-M52%5~GvqF PؠؽՊafZgZ1!4J9 .88M?MEE >l'ز:4&ASk>|G]5@))z-C[|YE2x"R\>!7ɓ08/ڿ{ eohreeEHJQE2 TGHM)2JPE>bk([V ^GhX,] LIMM3u!J3<e(97MJ%Jo?"_hjfN!DDDDDDDN/[7'".YSlnmOGðL\1i44Dhݪ*>SM3-:v!sjUKbR9bbкUUsW896hk!hf2 EbR LLtO_$--5a8si9/i/vmg?k]ca;GXe KQ#3Dʔ51A`P֋jя {/~X8C<)tqܳ߀8 IDAT:EuCvȡM}W~SdX62/JDDDDDDN/10@d*kl.62t*CPPeeElzoqnkMI1`{cطg D"\{)׮~==QvY=>}DHJJ_ -ΝWҺ"^nnQQjEܾ5 ZVyX/gw6>}Jŵ끨_g.ԪiGЧgMᵋ1y_NHr=ֆ @Xn_ZU..Ȕ_/fT LDDDD$4S_~uQ ,- J^G}#K=zD[%[zz%p$XZ'K6]jbv{àBR8 ܉mvBADDDDEN_bj ~5[xyuad%t(ٲm7QA:&r쓠RS%PVk0VNLA/98-ob &M9ɓZ JՋMM8{a"nbߗC5BXi"""""yKLMup.\Ϝ zaI.9眐 Z-tDJ&""""门T"tDDDDM,NgN orR nߜ$aS\8aKpQQ+LJ!\:uKq1.2?+OHj%ߘŸ{m"u%ݧS;=z >G\L?9HU>wGڙ8Uee% """"12MMbb&t(AffD6 .cMhެ#661z7ovV%HLJA hXlwVN9̛]lţGan^;? >BᾹRT85}B}mly[zZeqPYwIXN}D@œDDDDDoLMu"ǁ o#.]nm] Xp#n7- {Y.zX N oAy.v%EE$$|ٖ*ICerWâ ^<@RX'5k׫P/ F--5&D%=xzã'ax&&ݻւn tEf.XrV_ݷ|Qg rhhGG'փH>pp~9cVޜ<8헽Pjiubhݺ*7%E9RCtL̶DhkCMeJbʤ ^Ǿ30thi'Oðli[ ΍A`;\-&+r%}:K"$$.Kl0OOfnאO׀:v캓{,uƺU=pQ 끿b#KE3ƜtęӅś71KusW<v߅Hc=EnSPPD33= Kصsކ1l~ 9-bc1}|l!RE}lva!"X_Tuja@å+i{,¢FtUz55,vH>y J`6C/}9ih$tΝ{z0(= N;QT DF~ȱh}]EIMIt&cHLJ~سڷ =)}-DE}Ē%mD#3S]xGظ$uC2hצ^vqF GVĔęOH>pS'>KtfTJLADDDD$4Μ<$9*$TTФ9c9_TbŔS*f;ey SժƤG~ؾ?YUeo,37ӃA<(NX7"(((Hg25idK~2ڵ 0x`C6Mܪ5}D1iܶLjfM+~Pr44 5u$$|z1C\k͉c+ Ţ3gXӷx鿰W:qSX[Wvê9z;mLtDzt)_H)`S2pKaX iNsEuClv&Sϲ >;#3GM%7xzNS03E(Tf(t(holJi歗} bIu }|=GHJXYx=ߋ;w^@~_H }c?1c 뎵+DŽ)Gps&R:# H0bJ&""""BZV}Cx1tXCP :#tlĎBAy^٤!Kq˅rp^@BR8 ܉mvBADDDDEN5.zFK@]H~֫QJ_*B"aʛ@SSMPJi356N0 ̨̀BGAD?bp+A&}{&_yymS51b~ qjƍ̄ T """" |+<$M0Ǐ6|/RຮW5 BIؼ/︍G:*DT5Hh|+`g9̝JJEXUU$'4mb=r'IM4P:*::vڄ/!K*󧳄@ܸ+/y LMu'ϩ 6}/ظttԅX "$""""ŠogFBrQQQ@jj*BDD<ΝwݾHLYuy0hn :3T "88MyM(g 028"c2ۋU ')#9I~DNp] w/"X,ႈDDDDDro唧/554iRAP$A0|XSw"J9aiMlf[/D$""""9-u޸}a9UUe\  :_(<v }PT )"U|J.|3R6w; hӺ!R&"""";uG0+B@Db .: ah`K$*|93RSSۖ~8 oa!sN>0[9Q."#?`ԭ[sI0tFJJX+BdY!BE " 횈]#aNءB$RFr!N-L :2$4C"ŒLDDDDDoDDDvw߁v{/+t8TXzd4dpc4il!Yc "|[9Q?&cȰ=HJJ"tHRQQX*tyS_v!>>Ipr4DDDĔiG1}jkԭ[NpFZZLax.ˀyX3ݫΏ] "*40^lYEpH/8xi\1,QbԴ(Y8JPEUѰ |Lui1zW@J~ԭ[:СH_stdcꋘ<%vߊeClWeTS<L#aĖHKKðoϡ[9bђ3ٌfVdI\۠cMx-61ǁ}8x!ZuśW f.a޽6>lIփiy]88u`EEll"Οw03=1ѹNn7p\T`؈}GÒ83fL6S8}nU!X p#xElYx 8w9^z *>|H{V 4eIAAv"N?[ N!'Hg710k2wkW n}__O6<y ##-xlky33=xӏq_@nyO^G}aۯn271ٞnrX#vS`fW"EC7K)T~Úv= RRRHt& i#$$}`vm4j,us>DeeE/9=AX5c<(| ݞbJ+8%5}ƢLYUxDl~ {!x"*Z|NmK?g9áBO?ѽ[m O~%%E,Y"X[WBnw} rlcaTV 11 KBd䇟>OHh,R8 D3D*ؼV~vQQuuP[p'N>ws¨VPSSAУ{m>㾌Ν2%4!WEx8ժ!m{[/ag[P<,F)(VL)q%;|NyE?FA99PY7Q#QQHt.|L0j> 'q> ಷ?`WGTGoa,^ [7&b8k`F02҂~v,Z lj!.-邑9xt~u7&yӷy!ob=p^g={~ 64ilys;|Wj"ʚ ?CPucŽ; 4;5ŒmaDT̝w Bf'b}_GNaPz7Y-~hjMxIZ]eQ/rB6mtױh׸o )9ӯ_Gc00MWtE3ШJx_ TWEfa\~6Zqo 'YbR<($^;nAS{Ra#zyDDDDD788MfTPdYvǶr5u7vt 5p`#A8|hJL7rY @ץbw аXmC&7q'j,f_#ۅ#1czŸHW؁M* oFB?mIDxx<\{έIh\$'vFZH;UUu>YO->wD&x1#GX]z;t}y U"n Ѩ)VK(>ȍm=4AC#zD\qa9\o"""""uUf5 1?IzoDG'u*jhPb)Ǐص.jҰаX\}I8~ [jS7NSj0ċ2_ A͚e3OP8:6z1$4<{%%$|$S>5U u4ʛ蠴&64E`;T8\7\6Qᑖ `aAyJ!}]_آffY?ffkh`Q o !|EETlr{}7`fĤo#[2T9QXz~evLo硯 ܺ?UG^rx=ކƍ M^p}46Y!B~zxŒ IDATF|^9]o"""""yii!:&Af[Llճ,?qFېEpSEtt.{jҰ_кU4oV%K!""k]q$4mbk.aРFؿެ3"9>$cȰPW/uM/Tbb%yUR && $4˜ϡLTXMJt:Wo.3Nwc.VFjk[W:{yp:>eluQ 8 ރeKHMо:ʗh(>U`ͪ5"'b7 n,8}b LDDDD$fN9RTTDZubOe K>G̘yF3ѻ\۠Ncy1zT3E>bמ{үLfeuOBzذ*^(10*UM&"9E<1|h :)IZ2NKK2u`;())Gu0i=аXE ;!,d čo^/Ĺ3)> VcYo ׶D*HJʜC"dȲBbѳ;-숰7 9+;9޼ZsgFASCϝw0|>(?-~6ܷ'p+?r} _Pg7%PV+0<9ʐ۱f3ڵwpH9}ߧ:+)zsԳtt8:B)|!q i{B]]cF5e8{H"k<%}-1::ꈉGl\.^-G^u&RAfѷ8u K1=s۶`ӥ&v87]Eu^­ѪeeXq> ϜNb;ɰ6@v}'07׃lS6],k|}uq*X5hkq\y _<MCGk9N^_o8**J?U)GTKEYfΧbI$SR3UQQBfs%Tѷo]lrejի ŵkY."FDEX,yq(젥%Y,/"9_PXXI)PSSHOTTTgس n蠌aI4nl.]4.T9maQ/^DoH} RUd>$cϞ2Q>0C`PRW/-8y1=w6an^*_*RSAR9}>[g-+nwv8\7\{}p#fGLeeEZ oBbz%i?r}J8qSRR3ᇈiǝU,Fuл>ve<&Ol GnfS AslI}nDpp47 7Ek%hjУpsUk.͉hղ \\+D$^ -ZT:\mbyػqH[&+ںflt6f< ^=hЁA8|?iGẮ,-Kɩ@W8ƏF}Kg= '*#9UcطgtMWaKzk'榷smOX/]1%prjsF.JAAӦHӏe~CaH_4::3 Nv w z QAwQà|,tDNZZ6n H,YE& /4,; Jp/Ξ{U+qGcX0С:wbaQq3HpI; 4;5ŒmdʪÅ&R&Ř>8m-Ԅݾ 旿q3ͬpZYGUi# JOC&+q~tc>gRSz {? ʅ$,Sqoz\Y5wk̏u[W.;>m7Qr藞q}_Gc00MWCN,ʗ1iQ"t89}7pvfX2Ѫk}r9_J,074eK:<`||BPs{w;d;0[*bPRzk`+ԳtA79YzNN [ pC-DTBBc2Mm EECa.O?Jѳt939u߂NԬYϟF~uѧR#FsW ^=@>HNf5aĨqEW߯q;xis#nbbqk̙w [6EX# Lt}mCbRJ,* 5c\Vŋ/'KW}ѥsM?1[Y }6;WS$PV+0<9ebӹ& Q!/11p]Dn]%S:l}{ⒷL=rzqv=ffz # v߅PW/=@Dw.mТE%)7л;7 (S$&o :u?0/=~Ǐ0{V;hia+hk̙07CHB4U]`͊B^/2$Eɩ!Wmޢnrx4i UUemS͚UĹϳm59,c%ŋm-/3\{D>hnUQfŋ/Pư$&7Ϻ^N;+/SSW`"""""y7sN|Q/G J!Ylz eؿLׯQD 4Ѱ)AMǁ J1&0tZKD/-- V_đ#aN+#tH?@nNDudJ$`GCs7*C$FE2M +W^@*Q.`T/luIDMz-]((d5./ ,jozEETl1E}:= Ko,||Br=Gu3^ ̇Ŋ)ax |@nzeSӠ^<}GrV 띒"D$"""" &ʰo^ S&&6 Vx2*Sxuۓд9VAaO6֛^ª6 X||=X+܃BW}UE<}; Ŝ0^Ԩn(t8H <`ڌ4:t~u9grv$ii8!9--M&.0nFhӦ*X""" FɒjXs~4-[W[Wi¢ zvǢѧW\Q"/"0d^l\H$YCBa9a%""pѿSC~>)콇1aՊnYy"ä^о:l)-tjӺ/_oXeΜ&"""" [ JCCXTURMLIMٙM_Hٜ ܅ ƌjˆ+pL &$|臎MDg߾{Xl1lJrp3~z&""""|3' PVV 7*EYf#eS*[lY-zav-fz2e5b_rgG`Pܶڢd?Z.RRRqZ3ɱEͲx">J¢LcbS[8/c? &&::Sr>EEE(]m]г2eEl?¢L|$ mvM\<7QC~h׶FODE}:W\rYr~SRRr:o$#,,I)0Xٓo;BKK #GXAGGg!88(cX" LYfFD E;ЪeeLZ+E]pp4 A1&{ACC֭XZҨXf>Dhݪ*.^Y~#>$c{ޟsq 'džmmu;:ͬ*[,x*~׾{r%{A˖&$\ ^ࡇֵ&>&̙;ȦN| hݺjǔokH- :b=2) C_)?zg9__i """"9M2>}Jŵk_Ϟ8l6=G\׮ѣXr.ײG?`l5 *#V7'ŋ)_ vxΫ/⏵.cK7k N36 2t"#<]34{ǰ{Q0p'&o;zBC@$NUUe_ g>öPIB "S.\x1 F>Y5HH$t(D}aժ pT0Dj*HJJ: LII+\"&&K:B#U,aj"""""9i""nbLqAQpj%Մ Hh-SB"R"III(͜HU>Gm ]E2ULp|ƛZU tHTTEH\261{z%9MDDDD$?88Mm(_^W8GB{e>4(Lʌhެ"%EކD?O8]aݼ@DHԱXq.' bi"""""7s._AAQm֕/">> O<ƒoզfq`; DҰjExy`$RSAR2Y&9  ܉аXÑKb&""""KEllt>.J*A9xX6\g:]0ȱ!@KK G Afy"Ip%rE7+sNժ1rG IKW`"""""y7sU5e_Gժa߿>Ջu*hެ4Gvx2*vx--uąW}È([>0p'7l:"2 rᾥf=\III _䁲|SSS⅝`7`dy۱dqg8/Sk=TsmoAfhDL~s9 ubpj'B#b 9sH.͜rԮm5 vjhgE;vm#b=3UQQBf?{ՆIQDP@ bǨQ{l`56{"i@ԈL;6 (Rҕpu)Kg( yg}weݻ/ft` fe04n]Qа8{79:$@HVV7ϓlvUp)rsB$Wfck8vp| fX$&39o؞wll[:CDy{-C"t8T)*"%zTFRRRXv﹎_uk~JKπ, """"/s*X̷u= u0h_HK:4"*Llrnna,'@YwNsr26 ZӧtDy4QE;HZn=8W~; ?+؈bc0gqos,* E9rJooP2&ƞ]#P! """"DDc0XyWfM*Y9]EXv7FmXM<;G@C!49MDDDDTa"j{غ pbL^^\s=~tFHHᔛ HKW*NNUi7"#aOPQQ:$;:ؾm;op)ADDDDD'8w@4'f吒;887][BCDDDDDל&"ݟa'mmáJF |.tTj֔=0k1y Us -WpS:8DT yyY97o~m!""""jDDULLLO8}}5l4rr2BDUHff!Pݟe+Uq&"B{a'ko Jp;&u˜cHK:R?U\s8r.\|G1PQQ:@m)?Νá 'tHDDDDDTprZ@ [_B IDATB`7Q:!~}CSO8=FB]]IJDDDDD "BC0v sXr҅J] r4 aBCDDDDDU'*)wg=[[FBCDUXZعc8;oNNSÆNff&6oqV:$"tUw(,Y UR bb0~!4h͛@NFDGUUc{ _:"""""89MtsŒ=~ISo1xPKáj,#ߎ`o4Ξ}UbRyyY |#)#{غ*Ơim#޽hO<7.BDƦu\vR* RK5ZD%aC 4T:I谨kժ>>~LGԨ!N{ LJJ -{cT'9ǏC* 9M#&*xܹ̌L̝c)tHTJK#2~QEѤ\}dDI:$"""""$89Mӧt0o8?!%xWbsg[BSQP> `c&tHDDDDDTIV*u22Ȭ^:q!P ݐ zj:"tx*ڷoPAVFF4~T0}Hji;uk=\7n9_%,U57oz """"̬fTs֮QPʍ!U:qnf[Un ՏuU9:)/r`7)r*uHK: """""""""89MNVF霜&""""""""" 89MNVVi霜&""""""""qrJ]ֲBADDDDDDDDD''9MDDDDDDDDD4:99>5kQH$m)(o:hۀfeQqli/z͢]up~&L[+݅ӧYPRRo[\DP @F<:fM6r: H5O<_S_1tp\Ϣ]p~FVV58xPK\˳j);WΡꤰ]Y|g ~!.g_A :,@*1NNSFF'*yO\݌q 22y̝ nd];$.C,2A#ض*Nڵp 02,5ظ24[/ GE`;$3|lxIUW875^mۯIU$qm4Jy=qe4i:ȕ]Qya85[On[ۮU/WB}vUT2)tT,l^AghѶw[k/C*nCS`iixl|)<|AEݺeҶj(7ie/*:kp>jyn`Pƶ3I,-MM[|UgU$)_R 瞔vlM/_,~DDDDDT<&@ 5l C%?kVGXAG[%1>/`h~Kdq<[/a~^RcǴGpJ+̶BQQiys{EE%\\y\JJ50o^Q }xpo!"a!##U%gfBEE׮ƈm$?g[I]a$'_ߡSn?n H:.Ƣz#wp+,_=6=1uQ$'wæ͗E;<PWA<^[ط2pMjcPR޽{F][!KR_Wha;&MVb3ptCC kn@ `'<ڶGÆu,֮wG#Ma_5 )f%?gSkۓSUUV&:*0nT-ZŴX:z6FM_uYMZh?OwY{/Ug6=1u:æ-WD 35<,~<^Y&u%|kρ5KȮ'hr=p;1?IUYygSy'ggV] gcVfkjiނkT^r _.Ϛ{DWwK3IR/5lXcv4j11Dq?*NNU@@LL^C I>~}U Ck[qs-Ǭٮ)Μo+ǡ(kc. Fѹ&\=)BC5W`68tӋ5 =ݻز ޿O3 ~o 55 /իhU߷!8v!SǟP~IQ$O ~-=V֬=~9UgN_u'ǡ(\EZRIc68|~|<|חC3:C~.lwp?(gab-M=8RL[ԃi=8U.ͳ-dz-."2*R"""""DVH\LLbcDL7n`ᯧ0uj,[q38ݟ8fTT?~JtKRDF&Y_;zX. ~x8O|#p/| ?ŋ~xODZ |7[^3M驢qc\U;ж> l ## 46тxQLg(J'Q9,rY@,L3-]0Z7_ǴYWuvuvpuKqE`л"zYyu}J:zؤn1wE}?%Zڊ{LUEq4}߯9n @LLRK_^*#,<ǵ%$R"""""ʄwNU05g@__aaYzt&MVCwt YYikY4Cm l0X۷&Oꈄ8;$١Upۇ^UU11rmANF{U,22PQ7umS^2/ѤYxx<6P#%%m­YLs*+0ybG$n@B: ; +8Yufw_9gv|2bcz}y # 5[뉇 gQc-\F(~g h4?**NNSCr'èddnm(CQ4#&7/>;؉M`>z c,Xv7FhaZ1rdt.5ha5ρHLL_4mɓ:fMy4Ń{ 1ibGnx8O U,NFfژ0 ;uU _AYjj45kF V{WyRsXHcݚu-qeW/duOi_WlHl|@Ŭ3 ;ͬ:;,碧_Y~uLC^ ƘfL1$i-LU]I*LMMmKCq:)s5:xLI庶.gQEi*5X*w>"l43gwW0G1MwaUvEQb-֭e uR9FSUYPlf8ӽJϊ㖤D}QT&KwC)\Zփ*.ADDDDQO6B*(NNSЪoKױh,B.AHm}Fw;o\mRR`z=x$ڶi5\^DdTh>[X|O__uycF/߶ӧuAB؏ewc@f:p?7kq|tHoy τhILETZܼ>Wb]e DеQ65Oơcp~+*qHݐgϮ%""""*_2!--3a03gK0zTOy7t6B1+FqD\\X͛/#88Z{ԛD偻^6[^6fZcsto04nNNp rymHk֞UpKΝp:<Rƌ]|nœٖyyYL;vz۱Gj NGӄ|X\#عNggݻ㨓dsB纲í[A3;ueb+l85[On[ۮJKDDDDT89M>%}ӻBMM~&&-&N@͚it[3HQh>9xDYu޽jv*״6ڪZ᪇X?=}5G#2* 5V:͛uERvlM/_qDDDDD叓Tf䐜]΅ILׅh.rUVVizppDRG;RhXKv~]KlY__ b۷`hOpӺ;v*x̬^5D``t퉉)ykk ()С Qx: C[[  E9XO]؈ҢNV]~UW>a03KtȪ!_jan..~ ԡ ˪+عuESڐQ sO8]""""'[p14h4k]qqPSUۦZ[Iy0?.BJJ {vZVO?ALlƍm>u*c֌h~4߇᯿naPVV(VT:TU'^'ӯ)*A^m,N m;9'&cmOdffb4gQmq ,_ƌ;I:S Yug]N6ٵ3KwФq]>o$bNܻc Q3`V] jρmWQ );v/WEMQr3`jZzz.Q4FFxmD\K칧02D5|=-[J/{GER'lq ^׷MqbOLlTk߽^[%;}F@]c\\ 9^Ǒ#ѯ_3 oansOv?nk?wӑ{PR/ü.\|-$*O11c-ofxٵsN/S:}`n.a%:^}߯9n @L̗6EKDDDDT89MeQ#MiSzx->~Lm i515]l4ddpS쳿5[ѣPXO<>GÔ QO6:u2A{T|`bR5jȈՃOx+(fy+edd"-M<_jՒǨmwMիGC*;phוnu 5eĶedd SzUKF}rU XWTxE:w6G@aNNSQQQ(ѓ5Ն&/=d偘$4W۞=#4,;vz 9._~ca 3xݶABOV`vl&61~9j@OO !!ǭA0d{,ozPUUČ]VjkiiеK#Ԭ)}aذ8t/*fEE9aCZbc̘ARGBOO tjcGCDɗK]+=w]]v!8`9m̑As(`/& 33]<GюHNrk9z?32J0Jcpto04nNNp*I´;6#]KK3wE; u;sf[e1qbG!?)#-&*SX?.k*8N$NufNVOmbY?Lzz `س{$LA纲í[A3;uew]x{SV-m^y%""""*2׮mܽ4zum5ammo#$$V]ff&frż=д|FI. UUE̘jjpw8Ĉѽqx4o-trY%c.%w惡Agh6==5E#227o kʪ#>>9׾;Dk ()(3@T/bѻw ɓ4 yYQSS]x{Ⱥ[| M,r KƀA{qf`b›0N~haZ/AJJupկ0m71׻M.~ ա 'X`y'bKUd&t명NV~U+>a03ͳoTT"-6AѨS 1IYu@Z*0@`໬ꀝYWTx݂]""""i*sRRR!+FQEE˵ذ&OYYݾS&wMF%CMUIjm&<g͚jcᯧ0WɰXqS¼}CxzTU$&.>jjJZ@]&#͛Dlq ,@Fز &MHLL7VO tҨXIT<W+)ywyomƍ٧Yufլry(ѵQnAmk.Q4vPAr𘋥yg|'Ǚedd@JJ|L@Z:!;QNML |Mjm6U5Im. ~x8NGAIIvpy &%}|Q媫P(&* CC _ɳ)n0؈ r=D.)#Uni9sW\TT"4* U1ral %'..Il"ƍt*UZSzx->~Lm isz4[Y ƵNS&AVVr0E26f}6Ig8;jUccp1jՒǨmwMիGC>SQQ@llcU4'&&bg]HNLƂ_O<Ԫ%Qb[9*yU&ɩ)IF3ws =8prʍ"?04^[}*:1˃ }DĸXfMalKO#..;wy && {7-pvaEvJm u!"")Р:H?BUU3wZM_x젢j#y(Y.bc̘ARGBOO tjcGCaAu!DATW9/wu%I:5Xuy1 ]W Ⱥ,%snnAAѹ&扈JTn,-Mpʋ·n}\`d܀Ddtr'&84pǏ`d%:?+b17o}me+]?_#`(nޘ= ն ** :o?`+e^=X%=d2c:n D_ՕhR~K1r71j?RR\,p"'vDpk4b7~֬AFEECmu x]W_#j+iJj[nނa;Ie&TN޿O'ԩB0thkC%t(Ш^0mߧ N6pW*jeM5tHk :|ih]O[ZǺ* W늹[:`%gҔ#رm~""""*5sMZHMMCr'C 16U%_c~jv('SѰA%+ܭX>qbJ'\Yv7իBATZZl^B'%4 v/ܘHKˀnZCJJ50h@Km,t(T0w+ HI UEc՚ۧСPu \kw&%}D7˭BATdz(o݊ɓ4o#tDDDDTi*Wu*#:>~L:ڷo;Zt0+τizꧯNET:ܼ1|'zm@3ۨve6ڴ/"؀Y.F6_y3Ȱ5ucv1f5]7pغj8TDEsjKҘDѾ]E\<Qkq yj: FBADDDDU' UPݻ㨓dd|k+Jd=; =u4kp؞DCepq}֐Jj12ٹn.ȗ\?8od%vmbY?Lzz `س{$L&k*8N 'qL}Ku] WgkĶp 9 nARݽm/tDDDDTqr!p[05^{)ش2S'x0I׼Ug<޽" tK| Ԭ==r;^Kueek6>|Ha{Mqk,!HMMùp?z~8ڊMFM$ITTV| W=ğWaiixlrBWׅI]IR%'}D͚BADDDDU')++@VV}:``.ĶHK#)ضLh^ObxLJJ50o^ͧRD%i̧"jk0\0 Apf`=UV_^_z5ɾ.(JWPJuzDDDDTF ²1&~IP Oc`ݚa /;݃BBf6)))dd| FѢDHh,Ο^[Wd,ZOQ qv8/>.Х!oAq]=S;͛DHKKQ[@FF&Ԗ8/T߿ˮLPU . g|q}(>,Z9 ~غyaQ;I2207oP-8qڙoo745k&A5j(yW9>5 {A/DGuK`7gOۧ~?)4NLƯ?bb>@?VAcZ[u {}-*g]tzahjw\$nN_ P=s79232Ppc""""b4 f: dй}%wLLF 6Sz ϳ"bbBoL Nb/v 5Эk;"*!&& )PC^F쵌 }JiԉX){(jM2ՅOxc6kn5,{naXuwヨNRs3w/]z= Ua&)fy I5==5DAG Ԭ) Dbb /̈́09MyJg쳿5~:BBb1$o45ACR%xCس{$/(倔4\5kc[0l=^xSGDT~D}\nY>d=֯ŋCHhfrם`W_hxw\KNcسkf~!MbcX̷u=Y+0]݂j) )Ш)t(DDDDTIef|, Q7n55%C)6UC t0 ^EͶ !b7stZŋSj""""*;\փ7czu]0(6aQiy{w> QJ5*ڈr4UׄstĄBADDDD'Bhݺ>_BBDDDTme0i't(DDDDT pr*ys{`:}s """jTa>YP /zT |J+:PUU:""""Fd('i,]KCP:Ǯ>aPØ2x޽}nPCNF萪5ww?$&`VBRTgnްPm;m0DDDDD9Herq_V9֭~|b<Cغ*by?4lXG(U^^x9~_СQe=Z`9F\ "eff{7vmc91]XYu@ acs;Qadffb󖫘>СQ5ijԐ}xiC!j޽1j?| : cٳ1fpAZZUxǎ=B&PSS:""""4UhZGÆp=Æ:"fB~;j֔PVV:$*~CVV&7 Q^?8:""""kT͛&Bv РQ5u+޽BI~v EE9C"ppsfw,LIDDDDD“Ÿ <)]p UKFΘ0޿O: %(( HP4U tjcD ^{^PU~7Ə?$!0V:ŋ: """"89MF> #-nBBDUHhXfr뱇7Ӧv /UIVf͏2?\]M}U:""""T,N=(C!J.)#֭w *I-]և t8DL6Сqr*ii)l8~Qp]X;v ̙. :"A,^֭oQRSNM,]f"==CpҤ;cΜ |'t8D=o## C!""""iZA[bʳBB1= :oƒ!IIIYu8vhm t -y.zmkہ/K宠uv_ϕÜ8Ukp̛wOF a~CN\sڷ )ok[M.COo zʑna`UgbBBDDDD$ihڵ`СP%3oR#GGr'}6ohQQ6eeVw ɈJ]eز 55 0sF2=>J%'^|}8;яewc0'*u8+VOx؄ ٹ<;wFGrrKWcb x]`g7+0|xk Դ遻wmѱlɑ3UYzzllNb %%%t8DDDDD"Jf޷x0Tt"QA|FI. UUE̘jJpwoh</_Ƽ=h֭p!!00mmthI=1p`KԮXYe]˗oah+aNTLطo4VbӦhT A04Opp3UٕHIM(NNS'''=Fb[á ...jJbTk+"66)~7n]Y$]uuq بsvsgw9qv̘:M-v7bv (J(:~>>=ϹߏpxQ_mEʓ'ؤ{Y< IDATr.:}=ճsaBі#>9w0~2%h~}('6Sd,XМE{x7K˷rw}7 atPc$a9ؽ O`>z m_~U7t("""""2Hgj6S66 $P!]n344$I x!YUvv,[ҊAC6ѿ_|]^5-L`x=ӳGy %K{gL)Ȟݚ%[bKi>#\q.:HԈ ha FH<~ [̚՘.]V joc= OOΟKժ3ZY=9(w`ʔLKZbgL ^|E<.&&I H$֩<.];DZ$0ұ'O<0~vVEr\;ҟ2^s>|u(fM _~T_~q&z1yț'ޏ&аa!LS$|9'4͛ޫDdb9smEL6oΓs}˗o֭nQ͞Ms=9ҏ*U࡛ԡEDDDD䝴9-J֬VLWV`p$rΟ˗ūc9c[܃[ܢOߢmt:Jۗ/_Edtٳ VϩZ%wG龜_ 1^sfLo͛>d4x<֓:u(͕V-bff%7op$[6vuc>9{e2g뾫<ĖnYsfM ǹDgddĸqpsQSSʓ''FFFSoof[g)]aFXYItZY- |PV:лWTCCM__FС~t겒caajpDDDDDbD-w.[FI˹s1J{W͆E$ZϟѵjRO""""Y$zNNLZ.]WscC#"uEJ5EHt& Njjy/}"[2gvcz DSוZ.FYw6%Ax*Ub*dopDDDDDޛ6aks2b3g1t8".44+Ӳʖ΢-ȚUOITWT~X˗ |BCC/jGŊ9 |Q,,L&/G]7t8ώN#;t؋raaU?7Qs6QdNqnƳ)6kہ0'n| %+t.UA)Y\]8`a M.:u8S^<~-a~N9G0a|t~z оr? RDR[9x.U }, o*4.3(R$3k9:i☛`̞?Ҧ$n{^qzq}?4GZ\<S?x$ Z]JMq?t]ͤu9 a}Vbdұ}N-[-Lx\N׮eil!?~.My}~A.+"hn)/q8 ;1k>mosjtPNVx?fҤ\6 a7rbʔɎGx6}#4QUΝWplxK9xAD|S>?#Gm%K4oVС'F*(_PM{rq8"Z +1hF./gıX6ϷҺU1/8uR\6)(V|Wv|mA<#ٳ[Ӭ.Lum)dkLCq8`y(kVDq(6h4V-;"WN[sgcggsOkLy*U' %8y2<3 }3P֬iG`y(F^#`Ŋ9ޫOIF)ܹCib1*eSUO7JckkΑhؠPBB033t,i#_u!GN#\|'"wgP?q&%oNS9_F? ֮=E$Fi='mڔ1ű7ȗ7;7ԼH hj >>GD~#\;V:`l}sڿr09j+RicZDDDD ؛$n-!{ticm!GݷypwxN黎KRWQ#_`iaEHS^^Te:ϙ4.a? ̓;}[!)˖bАM}fM S!]&44$I ϫ.pf`ogIjiݪ1jVҤ1e̘Zbj ­۾)3N!E?# c4nT}9:c&y v]6t8O*Wű#o,5g>= '=ySfo_7/8ĸhղVV)4hǛL1d&qlq#[6kڵ-Aʔ<ԩeˏE|Dzs76j:1E4dȐ^=+*UrʖN e˗_''kfh@nu͗/<:Y3qjSVx5|9!ƍFV$88=BژDI"o4cтlrIw~Y^|)%v3q^xq;8;goiӆ}'e ؽzM€r]x9Ha̋H$18)]wסA"ĔgӀHk˗oKcoo̙ O<=׵rE,9X{&๰O7{LX{wxUR@Kڵ_F"}"""""6EbbIޒ&3C$͛>d4x<֓:u Vuyrɚ?m7Ur{pϞr ^Qð*NXvm [ZqC'ʕ?~FMm(U!(ϩr\ܺˌ{ xɮ]Yi-ϩY{6ÇUw"S^(@i2o?b+pzu 7/Tӛ3kV#Y۽h}GG|#]QBT[|1\{zslQ:/tn+-Ӧ֏;o!f˝Oș˖Q#kPLy!|79=z7v{{K J7~;c1zTM\Áښ3xPU63_:uZСD͊y1c^yBΜUeoࠪԫWq3fL49ؽG`畜%a{)={e5ȑለ|Jk9- ,ҫgy~۔$honNi>#\wħOinTd w!}^)""""["0M'}zsuX'I`>"<dʔݪ,1ڲՍ㷳`^3mLC"qԤV6qC#>" i2,hGص벡Ñh}ly07|#WƆ@sR 5c89г{9&x$q{?~VuEɍ51? Q^f(_ H6tLwUyOiҘ2kf#ht! '1d&q1-$uV0t8b`lйsiC#""""bڜ@ujgYwJb"NҤI>'ObcG ۴발?UbGDDDD`9-ؤffHpSC$򟨮ȧgddĸqps ijիO2enoFΜ6GDDDDĠBGq7nqZ F6KXHެ+=tH5'cn#Ut^С'¨[ ?U'I#C$""""bhkG%KZ-hE{ta:$Xa TС't6_H6EDDDDiO?lTI:u, 5 =9PV:лW1?8۾|kP#۹~IȜለ$$zrZSptLǒE-0YE\!}qΜ=Wx\')P]iCdjE~@@KG%Eppcmg,_Z"""""Г"~+ Xɍz!3$KE$i%M֭]ɗ7Êw=#]TJ|֮=Ů]Z5СIիLlܺK>hִ0uj7th""""" mNē]Yݫ"?ހC+V.om˗PY<|Gv'kN!ŻYڋ3]qwoɚСH 9ĉ;SC8qV>l'%KKDDDD$!H|z,} thW/.:+Wҽ[9Fap]q9~σ(?Ç"RLȝ;=H.HUcG]gLWCApT9)M5']?e)ZD띈|QTC$6-/eOZh(+۟FH($mH(`I[821֭?CK 88'N+#|> 7^#I1|I|y$fpOTsZDDDDDDDDDD6EDDDDDDDDD$isZDDDDDDDDDD6EDDDDDDDDD$isZ$lo:r(Ev 33S`?J'*خ$N (c6Uv~.şH֋vٳwyrѱ!p~gӹfNHɝw蘎 G"Y8z_cyd`ܻۖ5PLsVV)Y%O W9C~o9ly yEDDDD$zڜIiswY`4W`֘HfИI6t6^P`0 z=+˴*0wf01^{Ww щI<=a[+!ixa [Ο9˕KZcaa 033!WQԮ;.JSJxc1Խw洈͝y20}SrFFFԩ̊E>z\6֩>z1t&Ҙ=^D8~Ϙ}>Dmj>qD"m[gՊ6qx)pnͼx7p0r(.JŁY.x]qa&ui Gt\8aC0^7Kv͊pҦ5W:#a߸9r}zU?kNF/sжMqLW~>Edܺx{عn~ԩ?{P &wn>T3{zpN͊׽hkcvuFʆ͸}}$׮`%MK)}cisZ#3I[qg,mC2133aȏU133XLuf< ԇ@,-̢56NB&9/懞ki|gގ.9[1L?~k)y2fDqMY=[_$GѸߛ`E՚x4rզjNO2ib!ݻ`LY~u{V>AvQ y3mHYɚ%- hƘ< o8=Mkт nwWx<~gN٭4I.a%ڕp4vLs8nv}ĵ]LC{-O|]j㗱u(\(sǵJ5K[Sd;[X86֩DJ9Z9%Ox< /_b#|]rNdÚ,b" qr!_1t麊1jRU*jܔ( _%0(_z[sSd IDATQ$:uYE˟%ˎqu\~YЯ2" %JNb|kGWCYͼ9Mq||ɐޜ۷}4HoaoouXs̰3F/5{faa?;_7rϛY8>޼'wz.6^}˄:s6)5ס{5dvөc>2Yp]WSsD)rei'O݌S"""""_:mN|ddz,^aʄLҤF>1@N6KVvù?y#J###\Fo"&ɒ2~Nٴ.Y~ _*8\}H9uA/ٱo`kƎi.ۇ gU\ yܪsq~?@r۬CyYX_`тM %-;.{?# zsPTgK!oo굧^?мYZѺR\F'Oع"6gcҽZjpf̝#G<2fHÚm2o2QL_B_cl*sq/9sוY圢SV~Ξ֕,[qfMEwϾ6|=uOusfM݇ܛPXŸNѶ+W)0NEPP0;v^uolmSG\d1||wE^mo%5+V>X"""""Ilpc?c{oXF:<^׽ݻ*]{O-QGAz|}Þ %I#3Y&Jɉ_8iӥȱ^MNp!!ܺ_{*$bC48 LZdsLGN'022&{\>㏟_`Ĺ}ɕ#rI}4_8t#;bouۗ^bێףMnbLEӽej7w\yviW͞kW[[[g]Mk;%9sDxm{Zx˗\lm uݒGt ;/֝q{j|2Gzc8ΝK'L%W8Gi+,?U'N~Vk׽=~g݉hѹw)^jYnDW_˚ŊqSJp8nddDhj~hJgcقLKrmƎi.ۇKc j̖|k9q+HƌiXmSӥCilL.$K ӷgNp|?$d&(9%o9[(%9]:fMqvMZKL_qLKs{$Oָ!|ٳ17OidI[|(Q3JqyB]Ҥyk-̒7ckfgVLu l;ۯ^{m[ҨA!/g Je=D W>dﰰ0k24^ a(^n +Vd`*=?[ȝӖmJ2 3r`ڇ zuT$~3ⵍ'okU)M\1'MblyruNaUA;ʢeG9|͛:M?hv?$dɒ2zD ,-̨R)'k8|Չ8ce2OY~i8yr"Dq/0bTqLsie6%QI4 cG<X$ۖuWO2Yӧ[US%=DDDDDޓ6E k(:.@L\97 ѨBmPx&w =n4WX$Ex`,_ؒ-Ͻ~|t>煟0}gǮKܹF-ҥci<. #_ xϗDeǸ}ۗr`gOpy1cH|>ٳ NbZt 7{q?RMm@߁"x3',9ʑcpу[?7yhy9{]K5xx>M$!xgOb/c Nb#9zݽu}}}~~}zU02gN}W1[?{_vs_ǘQ5~U!1?W^W\?6]kzBFȓ;=׮0}Z+cܻΣYx^΄q/v={uϥAVaS[aeJ^{/l-<;ckѡ .ދp ` !o /c\XCi&(4.l: Ɇ#}0СsQv~C!uкҏҗc:N?J_/կWqͩW@ EDDDD5zrZD$3IN6nȗ.YN6d1C#"""" ED.K3wEFOnPDcoxLeg [W[g,}EDDDDD"洈|*UAN'6ھygL(Sʑ3оM V=_৘XXvO4vUrJOE133j\/=GH֌KFC?p)}^sJ몈DiIr8Y3gF#:X̓>mt܋p*OhѴ0w% ln""%I$uBB> nҬ"w+U7e+N"SdYi`u_ -a3Ew.U洈$pV_՞66.tn_N`fjBRD^>|DD 9_h<>>ї@ڱEO6`ڶ_u*>|Əm;g܎uK|q̒ѣ[9;ۧG|޴9-" V6tlXݞC6fn~RJN_3g!2eJ>ܹ$^/J;w911Iq9߉dɒR#ǎߠ7yЮ$O'{" 1n3f 5R%I̙{L,~jEDDDD˦iIҦd/omO׎Y(/y{; 2fHCxx>(s1$r!F”]ʒ6۶]ޒ7GQ)S&g:mEyNEcM>v)âGU,xxp?_(6s6ک E^V&ƴk]Ek:C^vgI7~ y9{69d\j-[:~ѐ~"kvV=mI8l]R"'qz yrcڵ-\#NӷOOyDDDDD$洈$uj8u͛wp 2tĩfuJ9\SۘYu1qViUI@:AV133CD俪S+?^^} yd o AOЦuqo88ڔк*""""洈$[-y>]x{ǩھ>w7YX65%f1)Ѷe1fOp^%FDD֭˗˗qܹϟ)uqmkffB~ksY%9%;(l]m]= ^K>ƔEDDDD3iISHJrɆWLm<3r~){hߦמ/>zyn""<1ŊfkXXvO4rm\:8Xq`sƒ~L#)S:SCv%YTk-uUDDDDKiI,Hnb̍>QpfΌFtOLm;7m^윆SxD5w?(qneԏ׵dϖ?XDӲ yrcn[W$IB[m $qk..7]ZLè\mOiѼ~Oa/JܽvYW[9E" N^|鸣WgMl|}6.tn_N`fjBR/H:RD$N"Һ sHmҘ'j i{]6o7rG9׹c)8Y2zt+G}{ ?׺*""""%洈$>>'4Yılذ=ldͺ1^S۸*Ur49)S'a/ Qk橣ߠIH||#!GkLLFqvĹw\>m,,̢O*9Mf܃dd_W#"""""isZDw,iJMk;0b̿1$1qk,Zzܼ鋽3dq<<Gj%KZ<'!b]]Ǖ+5tRiضbkcj[](YTӸה)UOFk2,Z|$|]2l]-ဇǣHmdIgc"""""isZD/_q'E gCe`&h8zWml@{d<~Δ{8ڇ*r2iH-{.m`/^OqU(+qB4j`f@ʱݽ _qy8?t*MF|Aĵ)W̛Ǐ3enGʹH-|iBCCGD"l:/BiҠ7oP)UJs<{dpsQv~C!uкRCa0& }yҥKɱCqj.ߜzu : FONH~YfI]& CN͛f#_|>o8C֬V%ui,:uUDDDD iI0C?d#T2t(233nLСIpp\\GBbffB4yWEDDDD$16t""oڵ2h=g6a]/+sAJ xiI0N϶M]5{QT6Z5+kCҦdܿ>+2˂iQhrI,Jw`Ξܿ=[/cεiUXe}1]әcXׅg"""""QYI0mQ<-WdeѲ 8gu6s/o«rCWGN?#Vnyp X<9W=ڧHb`k5+2y.j9DrY=M$Erwsn͈Ragy'/lUs6!M[,nY+ڒ'h };DDDDD$ѓ" N[x_lqr納ȈS0yn.^ON'ʖF~fwA.8ul~W\1G}$*'L?@6}SnQv?q̎?qMEBJ9c7;w.Ü zx[sneҘܾ:h۲XWN6l->1~T-fLϮzy""^׫Ε͋bffB*(_.;iҘxm*$g6oq9+ΟLcCpxck3OG?UDDDDK" d̐5K0V=I٘71.[8̀sm8] :5CVɓ""[4kk1qB|e+N"qޔɆ9ӹ*<9/8p!_ lҕ|wE.>Mj/ADDDDD&=9-" B|ļEa5nMhָpDCxi'O{)Sgٳ \xviW3p&6s>Ҹ жe1̢eGyؑ5?ED>;/QDl3W֬ IDATmeX[ab:蘎v`lt.R1{lro䶭3p@-9;'|9-" B`P0&#?Jp/]}ڜ=)02288i9c 5NG7>@O*|3G+ʕI%KJ钎;~#sٲcßޝGxDBc$1XC3.1zhQtP m"jK:J1^ "B L DiHj9I_kY߽Y>ݏ&Akͫv'sք5ji[k>(l[k2jkZ}m˞Ӱ0~AbH)_Wɒ%λ|P6SIv>I9r;_}[*菜!6dnn"/*YZ3GWk0L̝(xr`r#4&G8 09iNLp`r#4ʙ3Iz7ZB:7dwڴU.~|9{V3>rܪN]B~4uڦG&C8 ;l<<\1Y?~(-fyw_umԣ"e~VVѺy_koxyyUחwH222Q#}=i<#Gtpޟl55o9:jc9n~\hܘvѿ^hƍ]>0Lx[޵ŞIRjeUbirWteI%2el9i<ÇTNX[f5l袰s9޺e]Fcŋ#qib4JG: W#wrJK)Ż5rD|S KNNјC%%ƻ"".h{zCӎz<\}UV6Ǻ 5z681oբEԧOc;i<,YX Rb9溺:h5gnPVOoO]Ou(jĿ{Qb_G-&@8 TR{$\I]wPG{C'(>nk*_}];5SWs:uY~{}0=i< +KqVXx95lX޼yKVfUz׮eh}zeΝKVժN\FZ+:yN{j*ߨ4:Xsccv Mx+P6)̛Bvv%$KѮp/( N|?HSkZrlwt_賙[%Inn5GR>RLL֯}Yʕt]{PÆyJʖ-oS3e1!6 _X @>0L̝(xr`r#4pBvǨM٪X]u2OSmj3U6uSmjbWzGm(|ciP\I74nl{mA'ԣ"3AKࣟ~p5h;४YnddZ+iWBZSnZ]I,PXY @>0LvE+(=ާ{ll,Z"/O7=o:wj,w8VAv%K/^L֭kws9᚜zC[Qժ$M|{Hԭ3tp_?QI=JM[iG w\kwڶ-RܳiƬm>,-oD%z=@;͑{rz{z $[wЙ3IzrrSzF~[[EZzbVuWCkUGyZ7P]:?!IlVMIeɲǻXܿhoM@]|M˕ǚ$EG_OtZs^?5瞭_$/ޭOoBe˖;O(NܼyKVfUveuP}M{56WNɩrr}ѣq[G+::AA'iܗrv}OBbtz&({{ubcr%$\׿| 7ն{+$F׮eh۷$i6Sh_QgNytZ Mt.]-{z+ݵg[4m9zT [u\ԭ) 5wS4ٟtw3wㅈ#4&G8 09iNLp`r0 s7[U=,Irsuзʪ;PHX|VVuII]<=Rseq ~PND*RŊӻPqe!tisㅈf.|.3w_f->p8=1 iNLp`r#(ªTq *4 &H"(Җ RX9թVܯU+|ekcep_Y;O~QrrVRR:wk-,,C+wƻGr}p 5^ƴ$5h]?'sTx1XM-5ϖյm(]8;U˧$ݽyOYLQ4ԷeF.t}:xdM"N։g%IBbo-Ԯw 9Yܛ%kݺvּkF;}1{RSoJJN5t9:I\Kb)9&Qko캛 פ~Ԫ5Y]K Wt59W*Z*EXdF\PkO^յotJTbi/_J=gSUj:|$NKvk}Bֿ={Okm ?|>?o3iBWZjyLo;:v=/n9+VL;,,;Gmj9}=cQ0-I>]=vNCtZ6o9+isƍ_TҚճǓzp]_~#{Ɵh`MI))i[NF_6:###S.)֟fZn' ["tuIo~o~s~bu95+SF1s >hܘn]SSm2 ˗/ӧם>vmkZJJ)gѰ\Uv]Iavf=߸bٟ-57;fls iB`^WUDqݸqK԰~x8ܛ7o{b~񤾞GN%jM:vNg&ɳe55ժեK$>BJii7%IU8ܹd]pECOr\3ZYנ sJ>=Xd}@ƱEш ) [-'';m[&Z퉝$I?xX9kO,ih@fAI_8}jW.mvmkgFZp@?rDOԭüTyމzygrWfUխ {e4PN!kܘvٟ[F\m+=#s.+ˠI҅+O4U٧4nzmk ;C^gu5uH{5z 8(Żǎ(Z'O^~;0 9߈|.|.3wݽ-v`Vrz42w#4Jt}p1ӼYU *Uqë??M;ǪIc{N1k˯#Ubü4.~3 -iH6j/%~~Nu}+k _XYX^#GxY˙1$Y[[jPO:8!xL m+hGpTsV_y󃕔ΝYsssT̩]^N4ķ7)%%PHXFūj5KuTP#\5h=~N.ʵUsRٲ/JC}[C74c⧟H֩<[%%%.KW5gnNбx zi^5uj Bc=`Xb21fa!eeI9;Zm:v+Wf%n\]L4$&^Ci[2mgNJ+V^F-ficzs\|@@8 #Uvy(Q<{aC>gJV~M`.8DK1zQ"4K rprrynniRSo(66In\F^ue3 @AB8 ;f4&G8 09iNamz5oVU{B繮JGmOjjƴSlHUX:{|0/Mz5J-ekc0[PHNQ鴮9k[X6j/%~~Nu}+k 9Z 9[ZԮy$RÆzjFHM7ǵP(NQ>]=sS$IC}[j!U>%'i`%%sys*Ahh$ m aJIIq+iOٕx7@F8 PDn?ZxҚykY#/*=#3{,<<<\9j՜Tbiy˲Pߖ7^+%%MĩGF[ 4@dmmͫjw챟~>SqSƒShg⥫37XB'5W;0/ 8WsS~m@G8 P:Rg$bŊpǘeȳ&Ike\M׋ih_}ruq0Zs*A5k>nE23t^x]mʔQRRj;J+XOvvVz}T-[xb>nEPRR,-׆WUD챆 ]~|+UZ5ՂEgu>.E*K h#(R~SU8ڣuIS>zA9[NNvڼ9"ߍZ- Uj &Q˳Nl4jU'EG(7nih5oV ;f"I[B::+_JO /k2 zuj%%u,Hemh99iʳfkc%eքNjU]ij^]St4f'tgu;P@NT 5}Z8p1RF9mpM|gOϸōfee)死~Sfckz5@~cu#eƻl @!D8 ([~\o}4WmQmH8hk޲RvիǓZvmj)RկSjݺV9wmmXޭkdIk=L=XW$^~C$III}O0ΜxL %WW/  Ҥճ>UEg5rtB$MI.ey,^xEg퓩j3jwLw@Aba0 nq.|.3w%ç4&G8 09iNLp`r4w+Wt0wWs`&44IDAT&zQZIENDB`glances-3.4.0.3/docs/dev/README.txt0000644000175000017500000000071114432156570016411 0ustar epsilonepsilonGlances profiling ================= First install Sphinx and the RTD theme: apt install graphviz pip install gprof2dot Then generate the profiling diagram: cd python -m cProfile -o /tmp/glances.pstats ./glances/__main__.py gprof2dot -f pstats /tmp/glances.pstats | dot -Tpng -o /tmp/glances-cprofile.png Example: .. image:: https://raw.githubusercontent.com/nicolargo/glances/develop/docs/dev/glances-cprofile.png glances-3.4.0.3/docs/conf.py0000644000175000017500000002311414432156570015436 0ustar epsilonepsilon# -*- coding: utf-8 -*- # # Glances documentation build configuration file, created by # sphinx-quickstart on Tue Mar 1 10:53:59 2016. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os from datetime import datetime # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) # Insert Glances' path into the system. sys.path.insert(0, os.path.abspath('..')) # WARNING: Do not move this import before the sys.path.insert() call. from glances import __version__ # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. # extensions = ['sphinxcontrib.autohttp.bottle'] extensions = ['sphinx.ext.intersphinx'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] source_suffix = '.rst' # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'Glances' author = 'Nicolas Hennion' try: year = datetime.utcfromtimestamp(int(os.environ['SOURCE_DATE_EPOCH'])).year except (KeyError, ValueError): year = datetime.now().year copyright = '%d, %s' % (year, author) # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = __version__ # The full version, including alpha/beta/rc tags. release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all # documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { } # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (relative to this directory) to use as a favicon of # the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. # html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = { '**': [ 'about.html', 'navigation.html', 'links.html', 'searchbox.html' ] } # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' # html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value # html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. # html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. htmlhelp_basename = 'Glancesdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': '', # Latex figure (float) alignment # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'Glances.tex', 'Glances Documentation', 'Nicolas Hennion', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # If true, show page references after internal links. # latex_show_pagerefs = False # If true, show URL addresses after external links. # latex_show_urls = False # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('glances', 'glances', 'An eye on your system', '', 1) ] # If true, show URL addresses after external links. # man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'Glances', 'Glances Documentation', author, 'Glances', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. # texinfo_appendices = [] # If false, no module index is generated. # texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False glances-3.4.0.3/docs/index.rst0000644000175000017500000000144414432156570016002 0ustar epsilonepsilonGlances ======= .. image:: _static/screenshot-wide.png Glances is a cross-platform monitoring tool which aims to present a maximum of information in a minimum of space through a curses or Web based interface. It can adapt dynamically the displayed information depending on the terminal size. It can also work in client/server mode. Remote monitoring could be done via terminal, Web interface or API (XMLRPC and RESTful). Glances is written in Python and uses the `psutil`_ library to get information from your system. Stats can also be exported to external time/value databases. .. _psutil: https://github.com/giampaolo/psutil Table of Contents ================= .. toctree:: :maxdepth: 2 install quickstart cmds config aoa/index gw/index api docker faq support glances-3.4.0.3/docs/_static/0000755000175000017500000000000014432156570015564 5ustar epsilonepsilonglances-3.4.0.3/docs/_static/cloud.png0000644000175000017500000005116714432156570017412 0ustar epsilonepsilonPNG  IHDRM sBIT|dtEXtSoftwaregnome-screenshot> IDATxw|sGN3Ĭk֦Z{+5(5kϪUbTQ7gbI!2ȸH5Zz=}y{y$I$I$I<΀$I$I$In $I$I$IGBN%I$I$I>r!8Qs0{-Ex1MQto'g҇Hֻ$Ip۾/"IņE>f:p-Pp Jqʏ UOr:VQ=%vŧо:+ūW{oLwO.v$[SggVŘ6fT$K%-W]YN_ZO@ ),҇CT?V>t.cfoϿ#L8ÆO=ܬX\})Pusj·Ę0\>իw+dd.ۚ7t 1##k4R+C ڴ?`)yٶ=+ u"og2<ڴ̵Ix/l+cxzfWֈGnYO0Z5_\WmQ]s1RQp(%=mI2dx½ˇY;m2<-#5M΁SM )]qS\dεߒ) 94k&GeZ/Ufi)XgM'=3ǟ2jS3hIv[Ȑ߳=>EkVɋx|}7Ř9K ~K_sebHXVy]4<}~e_W?Lld=LYϓGrwc/(пYExFmU S.EtkX6q?)SX~5IN3;\,mYGЧK}*͎MЅCu N>LNF0dTo,X}.ScU:i1,mCOiQoRx…p$R-NN<һ#OQ*Bq v%_ v,0< 8F,*QUO'*:=?^4(k fɊ<>{ \'i]N4J5(gObD 7X=ϧ4?ʴ̵z [߻ތu0Iڜ4؝r3V/N^&ԭMF1kpa..@1pH`C˵I zPXg{&p_jn׷i B9HvFhRn>{گ7Xcgko^F\FbBL˽ֹuw{pJ˴vtcE0x1즆z3d t1) w8' ̦oF@'< q: Bԭs\}**nP9|6b^qlǁ;Xyh>Ee;M/0W0W[6heA%{Oj} ;aJyҌqhjb1>Īuˌ~fj;Z~ހy4D]U>bń"s1tjzP"@֟|-~]Z*j9)BHcY1\uQI:[[a$o>bXdY-VNl.rix>  Kh3uXL jzi-bboQAپ)%ޕ>-snш|'5>%UVZ*]qm"}^O'N3$v1m"KԙE*fijXd#&9*.\Ɔk 1fᇲ~[T-Jb!_1u4iъ+F5jAm?zOL˄v-"|Ll\ߛbж>MKKYT>NرO;.N&6&(hDvĂ[#blǒi}58- m;}珋Ƕyr xzB{1bjQqaqh1cJ3KD'ě^aX1:@xl¾vXMMU11geh>Ee;M/0W0g[~e9F= <3S0Bv޴_VRz,FVzXGV,~tEE>bR1{4p |tS"ބrU*w*QUOExk3KWeDJcD#mHE 2Bv=v D>"*AXft|xAbLSƱg#G8hl敖MD|<%Zҷ^~=ɛS˔4V6X+@' {/r s!W 2:hsPF^7JW(1ŷY+}.5?VyybMr)A&Jǔ1D|Ս巍xHGfOÃrR3%x"1Sld6LZ'=kqJz.:Cc?rfb8+ @FcseǏ)Ł;.u@V߻Mg~ZY*J`ėѺ`<:RZ ԭE}L<&R_jY`_'yL?RRzy}a匋cbunهm_S@h oKKuP#s;0jPg\%(ɅsoͶ6 fe_8Vkb+eHV l>9cp)u!Uŏ[YX;ovPj Ic]Q ל JAHjYX,_ruI Ugo-v:AGc?~W Ŗ<<}v/0S0k[~FMRhQՍzaa혣_~M qhNY;!8{X=/jzDu/HbUF֧|xɈ/⸼~ jBh(Tt #$܈=KːSJ!\<[{3:9`c}3\e,lP1=鐯ȑ}'s90[5^ϋ I\KIAOWozy™uc{ҏ+o:ܻ{&l|=6oVpf0q߾IS$ "Ȼ7aoUފo3{ZԬk&\(<î\v\-bQᢁP 0/#ZQGFvDWO.X~5Ջa#gbٜwF"PVnhj u+D:9 =J^5xVCud:Cf0,_52o=1-gkq]4<~&1{mUYikZb$?tH|l q/ˏx(;{( 7`@?m a_ALhߔ*E<)Z4{t #^v;̷ !&*<)cgNZCư@(pr@:5/-0FcĩY'}\Չz>ZB'S5 (Ɖ_Zs(2%d&[ֳHҽPLj5md4-3Mi,ϥE?1JiY`!k`^Z݆X=l͸#̛V"2[;'Yѩ1x~8(d =Y}1m)K*nc۳#i+PO,,Fak{nĘWz4dV $x5~jӤZIځ1GQ`cgG_fxL YrO{h%.X q[B_;Ca>%ujhBڲ:"zZ RMWz6:wՔ"혫_~&8LaF D?ϟzbeJd%i5C11V6UUl7|x1Eв MWEؑxJ}Zplor1\M! ^zeB|7\w*5İVԼ4GX:u)On\4~79!(+&eؖ!|ng ϏlCMZZ'MqCG{4ļvV Т{9:4*Ixz@ӈј= Fh^}xZG2VJwb.8oJ{Z\Y'mư {2Yq/Pqd#Un7RkbrZ=:kf\}/>HWY$&(4890 } ,\j K^9Jh#)VsͶ3oi&|5Ǫƽ$ 艊J$Y6s~R!~l?BUҠ^Q&9'ݴԴ$.-.-8]N˲|;#M e Z9}r`>bդբ%DC(( W^ΧHx4JqJَ)Ҋg!0F bã3p)uj*{чA12SOj iy Z]M}[VMBsl7ϣ],u,ՖazE1WLqh$LxV&фrVXU7Ouȍt%gɦ!,ZvRLK;o/ha8vxTŒL9 D A7GaS6[2eVtb'E<"mq"z/Us'>ˬA<<Ÿn&o[EZZG- C$'ȓ o%<,xRYKmƻl^(m7*5ZbM.YQ?ޔHv`85ț gHS$ ACϺҦ#ZgO,MtDZY;w 7*sjg<#srgE1oIbU 9/>!-:E`xǚ)9˦8luT3r`5:ԧ~ "|G;t!{r~֍oJr'_"QEZ!(kޕNoێrxivbxHV(Y4Bn=8=F6lA+-=;{QK˨u8͇rǍ(I+Fq?u.hdy~!uKrCPCjuW}[/p{ݛ!D9e6>Ck8DKoZǓjJҮgA4ѫvGؑSs;>4TXgYپTlqϗ|/n/G~IUPk=cH\ Qc*3ie>5XPEWJ_ 8mvJ7Lˬ!JY.邅.' :'AܺaԴ s{N\䛾Chx'A沭US U1jo'Po캫#{&Ap:6,o͂әﰄh[nw"`̵L#ΰt>s?Z="BQ 9~:M|~ed$xY{30d6Ub},}80 TS.-ϼBCi7t2_q3i֩LYP^ 2ne7WȢUzy6ӷ0>R(RHjY ٳedv%w*tT7ZσTNybm|iԔ^ٝHxH1WK3VA-3|镫9GzSwQ̖څ`tw D߻± foWO`ghl{ 4Wփ.ժ?5wͽ'Yrr-M\y*vj$hoKoed+ܬradK'->ok7 7L(S{$Z`.Вu$V7jU} LijimG>{Qjۆ> ( O۲2L0.މ8.1EN44Ysۓ૷gc]vly[@3g>{MyXEM%{j&kg>|hVx+#&4"ŪwjE.{dk#wRKzqwh=P.rIm\Ζ䧀JVc\c7ny?Hқ*W.wX[$̂ZQ0*Cc8JΔx[?,|6bH`]UKIzd!I~Dw!'ҿ5UƟxO h\U6kCnsn{?\en,=`%_HһkN%I$I$I"+I$I$I$+ $I$I$IG_0TpUʵR}WisS˛Ε=y{d~4N܇,wNk K2$I$b`[}0+VfeE*yXR uolU(Mw4~IˤX IDATiuTEm>umE6&l?#X퓷^.r6d8~ER'9 Gޜ֕\+:I$I$}@" vi .叕Y4s,*M/0^C19cb6!m`rD"bT4ϽዬUQΖN۞gkd܌_Ŝ^߃/0킏Qt}w?"4Z0Mx3uQ:`dv6 ǫee .d{ϴUDFa w Ĕ,6aTN>m0NK+9R(z)@,.[&~8͘=<=Ǥ:.B.g c"ypc N`4+6kґo|N F"|IZ ͛ڹݰ%qۏ0u}B}~@O ٥1UJxfe$6,S䗾j(Ƌ+S43[>Πu]L\gԨW)53Z.btl]#ɽ#M'׳%mazur6+_~^js ZCݑG&rlnSҠ"ÈC4x6kC儝 \|{!UƧRh޻ u!OVW,aٓnbGD`̽ߖƹv[򍦒$IlJV!d7'OcBCMؒ~gY0(^e5;BMK|I!>wɑ Jԫj˥yLmfKAs?3B/{5w.:0XĜ9|ck MZҴ<;il.4;)eMr)A&Jǔ1D|Ս巍^~ןcg#GI9;ղtY$I$I23[6w,Un-JBh^bΰhvVfbrkڐ{q^vנ)9ؚ~O9&wrc8)0.]Z$`n+F,8|:yVѽk_6{=7pn^e͔ۖLw34s͝!{#8`KmT̊a8:BAN=_xR }i q߾IS$ "Ȼ7q=On/YRĴM3?tP#мZ%sv׺ ߑM)w}-k\WbqvEHmM8ɩ(N8i HVjY,Ј&{)fR9:8TN'\+ 혲ŤS' Ԩ;リPWl`T. '. נJ۶Y )F43=ck_`olǯZԯG}sx黩N3s Gh+tt(!0Fc{(( W^BHKck@BbK w/%- `{0Qm+ .rKbE W6pwW4x'Ppx|bw4j:EỦ9^> Gb] eG"\s6? N]"(δi1"k)Q&_0 Yt&7^Xn OcG" #DQXii%jW8IP_Ϥ?jAX.W.\Si2. C?Gp#}$I$I)҉}DkDCV.dOV(KAziT 8[cw8i3TG2i:uͦS|[,`\xHOqVgn _}ѝYm(_E37P#glgO{wTB&ή(m";h:5W쎰#2w\UY f إ ",R0Y܊xr4C`W]խ'f2mW0nH톝isiC/3,:cOm8xtn/6,o͂әﰄh[nw"`s 6hאAoǢd)컆WTuo~8t>Q\*vYvH$I 34_h &6pn_Q6wfrt)D-xF߲_U.Ll wϱwrV{q,wȚ۞G_Ņwd%\c_xҶӅ؇_@F翘_ҳo[n6{8|:z/қ~f bѷkO^L|䯴5guD '&wh?zhq)܌=.-ϼBCi7t2_'ΫDb‘~}6G,yBdU”Ma/'f?3e@SF̅ش Q۬<A]i?z&-0<^90ڇ72n a2[w_'RrzZWkc4ndɵjDZFI{m( F ws6}>-MiOqh$h _aeI$bͧ)i{WqcOd8u<'I$I -΄$K]Yp8_+@Y  9ޚ>$;_G(a:;fΑJ$IAP@͒$I$I$Ij$I$I$I$IN%I$I$I>r(I$I$I@I$I$IJ$I$I$}$P$I$I$#!'$I$I$I 9$I$I$IH $I$I$IGBN%I$I$I>r(I$I$I@I$I$IJ$I$I$}$P$I$I$#!'$I$I$I 9$I$I$IH $I$I$IGB3 I$I$I5X,ǿ,HoH$I$I$IH $I$IR;cƴ}E> Ɖҝм@FN[Sm_ڗpD1{>oT>j|e(I$Iҿm4_ w9o榶7+;qghիP%cU6a'-'2/P'9L!+yեxWtқf,CO.vDޠ*IK4YyvcjؼH$IfbOz][Q# ;Hh@CK8O緔NL.hd܌͑xQM[?^jx/l]1>Ȯ:s'9w8깃hZ !Md &iΌO,Wt'Na۟3Ҭ0mVzXԙyrx>9G9iv( Z>/Gupp"g&~+O;)ewkAm>zy2 @#Ys?'`۪Q+ʙtş1XO;8;M[䱘'_jt~*6w?eÜ<-$q/{n ^#-Zc~Va^~`c_}K 4 i% *ZGܳqea/:S~j|E9McpClmkba IK8%su$mKZ+/DQxޣc 6 ܍sWf\\5k(Ξ amH$^W?6\bɷ•SELJVߣ4Ƌa75mԛ!fߌQbQ[_\Mb(eBa9%KrL_z%b|m^jý8HQ0r^O=M/+{f}cCRT;?lzXl\0hmqrFO4w/ޕyRU{dȴCD))Y`:_:Xk2դfaO,:OdlxƚYG޳N0&> <1F7lGi,nHG7 ڪ4ܟ-ᑯH:c?5L;(>QUoht/v8P@Ν@B^q ]>Tp(]HR*E:ȕ{¯'DH:;}m&I97Xۇ%@D6^n^1>gL^vLg6TNSH p?3VޟzUkMK,N0o^oK\;-3u|G'|ZvYԵ?^-+SUv kgLw{&RC1nCrEȓgKDl'fI8Uev]H5pwʡ#T̃7QӉR2kf\9כڄS9yrm0rE A~PҔR6}iNeSKvBr%$m~u;2d 8t@-< bQ1*˗. Kx~fː%ezr:xkLYP?|I9~z|m~_|#nR+#J4y[ϒ\:"PtN./L]~T}Nc#HNJI-aetR=0@BF2컪혩_^-}Ⱦ'yFoŸg?ƉԛY5Rd IJb[v]?#>Kk'0i%br5:]`IG oH5(˾emʻ8C<t嘉W^=UNl\.o5O]bF5zM&b InUF* gyLЅubjf#v fwc;ۦкY!Vz1C)P&w8>{2e O}׬Nթᴟb;;|9&e(`ėMhܨ ΪX€ZvL_иQ{\]$FVθ<&A熛18ήivKYQÔ$oּZ^mW7nr=ڌ[v}\5lsYmj.F݌Q7v`+Ԡ]Rs[$b@e:V^U[.1_߯kU&I͇N"qW7w bL2-"w>Hm&[ڴ(|M:e_ IJMwR0fxLhht*go^'{;y^<=.6KQ G&\(XMm*(N1ppD<(j4A?8 .Cƣ01a;swe|aDsđs~ī/8@8yGk[t]([2wT~s8x-eyS3+n!#M""I D޽/9׺ ߑM)"ig/qky*T_e'\+O"(X8祆W;ǟI1.\*%8uRAN} /M;JtiXYEuX||=nWl`{ GyUI~9I$6uDTLnG'4a !h݌M,ajcii+2ݯ_FI!Y^5dn8}rZuG1sp}ޔ xKN6GCYY%gIDATo?:uZ΁i+!3>~5>.7#řj#{z#6W}f{f*nCCE kq=s΄fkhlHۡ-;p*TZQ~ @hu:"i YSXs")L2d,|ɖ,TTG8t|?Ra(jdD9K5bP#ImݻAz=cNaӈ, +v+h5Qz11݃v-<=f-Zm 柸yD#&+S}+{2w =uO8~O'|?Ӿ>, O&iv<39t|ן?+ O4VpiֽO:G {X8^1acԍFϰíRkvM͖TqZ[ru-^W&WH*8Ao1:Ä5_H?4u w 6_ri.N[r|"\(W:8ɮit@S3| (Q!ǝ8agarRWgl'3$ ><Ϣ}uZ凈P :gsHeXdbZ2f{:|U@ Y%re(K>գw@'1DнW/1yuhUpʰr5_OA>?WIy3}6׷4IT^Qg{+E{鼨 G'mA7?U8?-XL޵%OĔAk=;sik=-ҵ, (#f̨yi (W'b HICmG#u)IkL\&&3Alͫ`rG;D>MM"lOST䡶Ѣ@ȊFušϐ-ʮaz]E-ɹ+Zu} b H$5:3'`J EΆr9mU ĵLLR#4^<>NLuÎTHDI_Xf̀ ucIXfX7êޤ|:7$ZJ+a_|^*cA# vҘtO %b2ChJ(d`l:ٞ%8іN>%mJCkSHnF-CEv8eVT΍ij ).L7\cN%B 9eyӳ+ xm2p,=ZN:/ 2^ݗsVٍ9'Ǜ$DT[砪\k} w 󧹨P{ĠؕNNڊoev.'Ś9Y䈠riD#Gy{195(ȋ+*s4I`'zrҭ<۪ 8U10CMM nд¼+4Ktk&zD≓$DMIOzɩdZxxT@pz9|| M{<:)#}TGqwz#:/ck`%,U&T z]KUpIu%>}m&z5at߇ap֔1-3Zy֓7meK^:KS7v_P…-i_4Rg??cN؉ŝf 󻅬{t>DbmLߖiNwgM};>x˕@ai<_^ 5D+@Tȩ~L})# dEee $+W˧"Z{;cmd2cFV;a)f._f0e(/mT7j*qwoKy:cm!92S!Hd3Gqy%~Ie4v͞I ^<%;HXT2RKvu];6'kB]G !0ԾC2p4>7Ͻ>fkO'rCߜȩq8Xq3GԙhfcN -u3Y&z)#0< apJ%r^v0ϼښWoղ ۝qV395m@;_6 AgKz#l"Oz7;qˈW]k]a 0kf_i݀FNf 39Qrejxkw#xNlm1r1%ˬ@ZɼY?a5n8\;B|v0)H6>#E8ӍN*BHBbhnuD_rKE™ϢMGJƜ5kݛ(g 3 -&dNe€Y2!3/. j[B'28Qws&ffsw'i4k6߈a5vsaid>4o#V 5GErEƩuldgZR| 9"p#hm[{{] : q?^{af6^*>V{{{+ T$@J3 X HS(HW({!2g337g wf9z"75De} # 5cD>gq‹z_r=/d+bUe4>X9˯IεF֟mR.^[v%~{r拄 ŞĚN|ϸ r0QsœW.m CU\{aUi1UfmX!*>笴B =0!M%K>uT) G[Iu/\8$Nܜl *Yim5_7Ů"a0 3@{"[sLfB&-׭zƅCEפl4 ]g_\n+!*b]`&4D"YYIȪ^otx-5)i_G1$oef`b9-%y>@#ik :vܗ]@W>אds2M#P&v0dr"P(ygLo2. ֘M+T% ϛ"p!D6A+ vH/XRWp;t (f8 6/ҿ[oZ닣t>uވ"DKn޵fQ&i?WXzߩ LE%2(U`W'x$4NEE! 䙱NEPlRgy;*]d2<OL&`ǘ0dAb\DMvY2{Dw틠ҍ X4,#c ohʡXVRt$Qע׺wA杣9/f.b+l4'q-o= ^$ePKS#7†Sp$35y%bcC8mNY['x 3Wl͂ !ƴO oOXL!f&ӷ0uşz|`tvOl`9|bpO*; rw*9/{V^NdM@rs[X4u׃ӸB2sc ,SӯG(FwSgy>FxyQ>h} gaAX`\P%8FT95EN![(B ʁ C|BZ2XeFۙNЎ2^"8a`zr,ÆVZGH@``e4;#.R| )P;7/e?eMx.H{4rks6gA&:ec8B:0鐅*$Ӭ+)%oxO,Z8nuyE{};;y٭o[b÷,cffv>e6G_̻&;8 k<ܰN>-1K|j:odf^y7Obg C7|7?p5_xW9l(JD\=s3y~\{ӿS;7 x?"OoMpSݍ۴j] !(φ~J宯n/|a:euܾ"@_׏kz8_:y ?:CSbJ9WW (**Wʰ("OG@tOfT!X.^OKЄ8;@pn=H3(G b@@w2[pcuxSI6R t}S:eF* \gs)':@  @+U]e"@/}=U0O)h)Nԩ39`{q}ͿHὫYDFTدLلO"/]0n߰+ŬO_owvN XV6Mf+T@a!iqהȦ5cX!7v@ 7F2ƤTnnǞ;aTMb5;~5уeDOTr&v_?=0^'<5' L!EoD %s1_4!4 KYh#^; ƽy~p1q¾8}qF >f2G1;7 `[G6`1Cy:d\6nAսF,xq,=1v8b)|b^)Ke?zslw]JN:}6HeP[/5-2&5{]A;6gɤAg$ýlI–zQcYLS[ YMgQ:YPz#h'5y=I,}:*v3=B3u҄C@|֟7;NŁ%ϸ2b%RL2O?.(<{V#b=  _V-4-cl:U a| !iy6&Ux,ɪ7;h5 &@Z xC"{CVzî/PzkX7y+xzkp{`Rfu jZ.~# zξam5Cv yN?v~\4"C#`61;5/f6dym=0`jd:t؊K_)q5|K,eĻ%xH\;ؖHmODm#xf8=wcʌxfO5$gc&]0ִ.ΟCX+\ʠ~öB46p;OzᠯC~ ęucFCV 6Ft5SI/pU1$l#^LY߶jKx<&0W &\eSP=+ ;4QO8ϨDD,,ʱYVxf-Lh'qZeaï4VuVfS"&s^{ oLK*R@x>  | ZQ'W 62ngu Ux8ftx<~Nջ `Ǹg{>׾MWC}Nxf,](>>L >8^s=zKv{6&_{]8)''V=u: =ụAػK8Lg͸1b h?`4݄?6w?^pv?l&V4fwi~}if⟱L~q=q8 ٯ݂?g%_m36)w sYpga.ڦ5n8e X _u}ݏ;7- 5W6/1l~w92Utc~?ڈw-2))P?r^$Z^IgQzU\%9oν\ZP^P|YhNOkͨ\ȟ|3y)y\ԅg'ĵ:z[o[̯tͱФė^-u?zT1]k&ffn̕=t>{G:&qμNG" I]utW>?}>W18Oԋ]_k ש7bO{E̼M^d|Q>qA|ɿ_a=P!ADas![S)~.'Y0GK8U5aI(d H~cKXfFEf(ƴFO")JZ'MHhd$#IXjIbr܏|BĒR3T`x1X̄S;!TL4M0Ol'w.IJHr։VۙN;KUudmCXa4b{Bpѳ82pUXs $s3DB29t)pε5B4T_4'e 3H2[tU E2w?vTK'(a dT/ro;>/lU+|1`\F`]3+2bluP)QnizP\vq Ҏ4U|}ӄ, gE A^M*&Hzs Pި`]t:&a1phĩ$T !^xRO1_E ٥cX!bӠ5cI=',JXdgp AdfY(ڮbˎѰوs4BsgT$!izpN'*y"ȭULg $JxLKq B@$=A|J 3@fpӯ2)N !e|CBclkrHsPó|d*ԁNJ1׆] 0V**ԝ<IF æiY X?0-եfM &϶r(ȳH̔S.P v LuYI7N.Cĝh?]TJ9c+bZIa;Xyc</0MhaãQ<ƮE(W+ 4VݾIfޥ!˰W"kgrOt:b)8ײyj '&Qg0b .`fL9Js>N3+Am<>u &Qo|ᛦ )0ٞX4Bc8HbqgI,JB~GAt IDATOw4E%8ŮxR IyW%-hq9`;D$ג k0!ޫHL3vLPnpkZxوE{ f*ϡvfYq f:>ԊA΀P$@+醪  & l!KIj,n@-+~9PI1q:E[@lV$B!z _/YZ`>M2!w8vZ~+N: J(S>#5I T6+%} \^# ̇;(N"'kQ x终@()2+# ? -E98Ћq:?"bl˜J:`ONRi#I9hgPP˂1 fYqP'TAJ!1*(PO3wV,dBX5 ;-YK#ξ"ǕST#/(6U99H8V"u\F"C[Q+A4>"v ~[v(qj *_SuJI:QĶqI.CJ5iɏR1}lB1S!T;MEi.*L Ε?*9ǾJ(IA籨dAfC^ 7xu'o>h2bFPNw}&2mb/B̎\$_`cXIa|+̎Nn#N\F (@#z[eFI>P|# ;|9D/FīQZ%URo[Z'_FďU>T?y1qd a\Wc{̫2b1yRY-pxC{V %+ºq 5fItH @$Q IB*ǫf!QЁu}{q2|E6/0ڎ%S/U -z62N Xm"`lļ@*Rp&Q̺GީN$5%o--`?**aI!Lrd!1`ҠZ^<%uR\T[4wfDv\%D_ͨ;v TIi%BPJ}FHv [ /b :dB}@|]RZҳ^)F%2–cY%_k!:c&'cu͸JL)My9Ƣ+ c*VQfWιq8=g=]D cuacНU eё0 "%\2m`^YN)6lbDB\9Hu8D1ry 0e4wQB " زJ; 9`ېCre>?I`EJ9UP: ';ǗGգ:\XlN)*QtRhb!%]0aaXt7?wsI  \QYBJKNBd{ԫOh J7;IC)8zUԁJ$ =DN8\Ӛ=b#ÞDy既?kJlzm݆O`ްr(>W,EĻnB ;}tqE4)EBV)kPjzBV'9u)жKB% Pr:?Efx;l.*S%PrIOχ ýH*(dY0h8[L;Fhk4744!0mzn(v2ėlI4 z@YBh"1|®Ia}¢>rI@ /Ž!c)hpTWcTmabǗ9f%xV5EZ B5RC@Um^tw-[<)~*,g PD[{i]-^*OIbY2v)6k"5?AZj=/ƕ,O,[%B=dM s <}JlWGX$j,)єӚt퐯O(/>6C(gIfkJ-,0gx"v*8. P~'f~L/=AO'"^QOrz(714mͅe$݃LrW!Shef g2̜H 3+3N>z Γ#@>QXFO(' APO<66v?&Y\~u`GX)r;$rJ.DUp͖UpJR P9EvxP!Kgu5 iٵ. =.TX힪rq,,\̽x֦x򵜿g:Wv¡R飣'J\&[ M^af\uau`L8$'I k.$֩8R"M2ը1A,$i~7G<J:,HkKQ6q8!c|ajsJ"v#Hz5l?1ẝeD-%kc+ Ѓe (TTcB-1 ґp^P%|NᑌTvubV,bZ*!K6xW9*4!ҩ/U,U2zaHlМb;!vr=b6] b7mdrO`p?'&K5%PXFJ#7l;Yjp:vO1ky5A䷨1yU*q n4(֥DC>2hyJ~y@XgEOn0G]p pͤ@1tV7%']aVPiK2øXIa$-lr9c@1 WV泯RI^fU9ktKM;0`:v)w`&W=.0bU<ģRRd(V DWɐ` ѯ/s#XIZ̴חԅ$KR $erP9MZeKj'cl*L1Vy ዁Iy\FU1Y),E$ci٭K$Ozҟ EC%BTk,%L 6@ZAtO+J!N/maZcEST[%T,I-8菷+FsB^(xrƪ(lT;M(Bnu&'E5tfQ% 3]R;'>ΈmʢD7zKp*l_7şcj RqzfKWQ}RJb\Y*ZXmZ*MӼә!Hj\A||%F|ޅ,{BT;Is4RPqʙD ӑ?-Dق+ X*ƑS.3l-%&FL6X$`$?G}zeGzYE=?WQ2CK5"lnu>nX8'me,JJ X V) g7Bra,c 8kM|y݂t`߅KaQ .Q8n,vTެQDf(ea(l* {y#g.ZFn@ADW`pVO%(]aW`3#px i U$z>`^!{1˥`뭯rĤ; } ̥7V(+( K؍ۑ=F*fb  äX1Le![ z]g uY/EOR$b`=^$-zb% ** /%K.bZN*ip:QX@U2]Y;s[^s&CT$ zЭTG&;gxNرxc@Ê&y+Rh)R~@IUʃs+}N*KDھ2+,X,S)hI--9$/J[?Fr'5I΢l"0!dq؄`C '{H d*bO(~2H⑞@q:hR fk?,tKڱUX$;bb(D(eZ͢;.K- a STGapp[,$r![l()T@x¼Jǥ܇YC[QK(7{Tc>Gpc,$pZH-m[r_ve䲮 ʳ[X&i$kM_K\}UM5Kp@&>QԱ rj$E8jº?~6[%K. BBW ǝ;^[z}ث-vȖE28ڊ|MQv8_Q/#CiނO8Z&|cQVcEqݙNG\g|ZVEL{gD]_ CGq rRxrYn,]vؒ jZo?NVB}(g2L(ɽ#|t@T~lDL=:SnUeθ3|t@t9i4e2ؤQ/!۾a-,Lkߵ @+CZpXQ"?.Y8ܼ$?~Xdāu7gˎ,?yjDpUicF| $FCxpbR3$YM@HY`uG{{̽cLu!V5f5G/S6ǖfDk'pYzZJ8\qf9TZZ&(c޺Atp ^ TEYU{LT%;*x 90%*[^'[6⋧ p]㏧.B0=`tĈcE5;*oՌ#tNSx J6IC_D"م6#/3<&LĐf0w1}Azz$.)|8OE[g܆nŵ-a&mP7X###Y43>Êm^ol!|_ɠ fY_?}'&'k~pG@6kf]f@sga֬itEد?߆]{7eѨffRxE[ŧ0\_Ocy72e`ǐI쑣Evӄi% c-pCK'ǞիDJ"2@$O|h]?#jr>1X\uN%1z%0<v5PR+=bF;`Y \06z$.=xOĀjKsbĹǫ"EF6)°D=Lym-n{3h{NEXn_eaus`ѫu~6K%TcBˉOhYIVD\~t[Eٿ#:9ljPm`!=uS*AGbHFs{Ԣc&%NSe{S_"ˈ{ \36>} m۴o_Ƕ#oPS5ڶMcy}+M{@Xiٸ Vo~}W:u߼Ơ!1h` u,2)ד_Xtvi &P(mP9h UFs(&00vX t8`SLjx@3^1l%@pHإMv\n3a#!}c=KǑxǨwc萐LaOcv t}`x=8塺"eM8Bv_.1MI`KsFGs.?hx ~'&^Wa;lO3]:}m8pR<$ $G&Y~Z*3KO*a) ŕxrY/Uwi׳p@z)!vP=D\5wc?59ߚoC!z\퉣cx9t$[0S|B*MM iW墟9mBmfc80|mX]ΉU5h|ԭ@qpj]M#Fi^QtgERh3 QϿ0h3f9=:3=>%ZOӯ;z ;p(Z BEwQҨpŘQlp˳mx,{0tHѦܳ 5+8h*%} df}g9@fL<|4 s<$&4}I a\_EX&3֎jǿ"EH[ ,Ɠy> u6m瞝mmSiUsil!r.䰱'֌KGK޵Cɮ!CY@)*"T IDAT,p8;#c^v_t}4>8O>3|S >}P}.; }ʱ81e@o⢃)=*Zѡ7QpTɯztG[-VXtVڳ-:uv0빷ֳ3qv~f.5zlDRqԽэyUw.]Cp o9sQזtP t~Gev7 _[|i8OиCXXKX97r=^b O~U/ ׳q7f/$+ L‰+,ŜeaoakO~`P9BB罎wd!$eowq/Mg>V_jHS[ΞG_/+/4Kք.;w!.4U`tM[?*5Ton=Kǃ`ݲT#tjæC, &2}_aHh KIl2<{KW 6o˖HD i= b\}y7a⹘=uvWhMЈ&Mhl؊&Zн3oXMxcRO;/X}ٹvD/W,O(LeʶbB5Vb[c黯 ƜYu6 ڌV匙6}`kiGW@4 G\>Mb}NõO PP.9->SQc?M^r}}ll YJԪzZb.*plqgހ7>FEk;߸|1.`x yx޺+yMpRt:=!{'J1 c3ye{{70^́No3[o77wV[c!\{RMJHh`Tg*–+ @]ϝPK{ЈU60u`{q7}Hd( +mFs5L%QEg$a1WkZ}ƧpD(UA=4!R1h33@78|{w{;5g|׎5n/Lkt](}%6M/usz8]9K#Em`6k΀Wk'd9]E><ӝc21o P{OpV\$Pp`ga ɛl\x B}^ӆԥ @JXy((ONiP=v:.<[c<,Yj8s<΃g>UHIf϶U0x ӭ|:w.~7|'?LtdY_vjg7菳fb1`-iZ=Ԏ={tL:#n`5nW{,46OX|>/`6; AL{pϿc}o?O|޹ցMgǏN }Px}8th"5X\@ 꾇Njq g̑أ#Oiʵoot>7aa}m|dqǹW c_ArsN"aqZ&yہOQ6"|!#^icsܩ;CDO$X Xm~s]tXSU8 &]̊Z:N<Jq&i)/IU|;MQڜq{^$xQGF͋Ѩ6zKس1鄉8[qрpm͸v?)6m1/xVy,֌0 ].LM#WAT̙;żsOuoZ/\ [Fv1۾' [7.0G~gd|+־v9FX~xf:9(E =y+h^7x/:ufoZ 1adM]xufl]:~Oۊ !BjڶE]M#?^Ҿ%tU!@~~żY6NPWS H4jڡV!+#u$WKt7b"|4u*>`+xf^B9-4qW{xeCl9~lֵ3ڷ|B}Ok"SjZ. )KMeol+.~MGhu8pf|ԄsoK.[Btha\c:_|OV?={L^ԄT> |8mm<ڬ:Zbz|P ,;_ X요ec$k) 2e?MRF{y=Ġ3hƲ' 8'07u~qxp^ZfpgCp}aUpO&|0[O;^A4b;w㜯_7 9_~Opl$l˛ե1=$+8[!-Tb R \(2'K{ln荿 P1A=l09Ǭ%{^%N,Lՠؿ[NQ]FE]-;=&bq!|a2e {iʃQ2'.4yOB*B7/CgE?.꧇/o߇%iSĹ/K̢F$] .r~i,e`:)݈jfcX3`ƕbQRc$܇@TӗB㼆+qQ|{vk0h_?2a{3%KKW" \SV `SeޟHCTYJqim-BZ{iU*.lϥܾT1bgDD&dJa &u!CδìX7 ) pK \~HG Tit'3 K pEhG>褶W +c| AsFw.Y9\ n5%۫]ICdQiPa'}+\F}#jy2"M ]B0 $o fSC?=,~Ny.0(u`^ZtINy>Gu%[e)55l"RQYk#hPhYٵԍ: H ! BOq# (,Wb3C$1n, *vfwR7< "\CP\f'HM2b|'t紤@5U6OerV=JZD8y$l{AuA()/H8|!"*8RmUQ#p^4CS[d-kSqG_t1@XcQū2auC$a^tJƅnx œԵ̲S[Z2JtcB2ub(HŽ9ҡ߸"e_u>y4,@,!@PqԹdX(! (& ӓ@"a0̕:<S x& )TYwX\(N0$A׈I!.Ń*<Ê_ PLlzcR VK**.dC`hOƲbKcD'^lDSiِDJ?XQ%[6s{WUث lva~H+(%vVfeJ TޠcXZ\AIzt˦ 1DD VB/I~n,6~GcI"+T~=Dή ʓ\žqP2D1U3cjQ+v3TrEpk!EH!#ƛ8 :i򗋆]2vOL]K˟^k]3,'5o\b`-`(RFe0Hs(1p=Xf'mwН˞Y[)SDR!CR6ޢ4L~c_e{؃ 3ٶKӰdب8BM?R4 _-᫅ʡB\s ^#^?C~GD8tDGcǣ`1^RDwǷW'(<9$L EF L9R(MBZID; jpA\bCKkL9lJd9ģ5p}-y~8W1>B7u vn.`.D ɦy( \twtbG 6rh.1i^[ `Fkzal}jV&"r8m sWǭ=S;e4ܹ\|)X7!C&5F%8lޥ38j?\g.ύTme5txOXgVǭEipw:`.UH1|8;Tc#NC[jƒ_\-r='??6{#KXܫf87;aUF,^r5^9G k 3 < ϛkvaT2MMsr" i(áG֠2X2<| ,@?}+6o+ K.O?}Ψ~'7+n?Ta~|JWϨ7Qކ6/̑K&Ss3D&ĽL,/#BS뤏E#nR]K^<Ε?]%R~8< oĂ`;k{aQ]g/_E`ͫP<b;j`̕ t">۩|zO0,XH ?~'[ߌ>o~oGw 㴷a׹sh̔ƨk̼,>tʤk4P,S0ď_I{_7ᏺC{:w V+b 3>Sa,g!VlSWS:[/Ǩv >mgb@zE:Hx&\ SkԪ0?F4`sSnǥcのP#"#sJtT/4 x]q-еӅ9 /ClH: wI!2 li?Y X ;g^VV߻G6{4vh0N:x C5Ko{$,{a-f̩BԢuV:ECp}mIUabT;9^6kbi,7`&lq1]pQ5MEh4v:7~hVnXoTX?{~Q4F|рUФU~_keǪۺksaKy8{ @Xրu /u[.E+TW=NlU[0MXi^d:|M?2UV]0ꆓo銮)|`cw/#E$_ MX5[Yrh[33IK앫It:oDT;:BmkG'|)cu9 <  iePv~4wyd̯[%"îjn[S3)oۉq ]1eon‚y@]QTC)Mo n jG'~墝*&R񯄼T-$?^Ƃ-,J upp@5UhmܔBv9T3>cLy?޻ǽ> vw6cCʤyxzj pbĤK n!qzWJ\]^^^ W2о#`uoV4,~`i0qDX|姸 >!WkbZ؊O78gj_=;^s:yK\[Nj彾%_UC:ahG6`[8A~|7a1о.Lq),4F-O/y1T s5hNꄃ7bAsA3J =x'yRN|p/#PO r:;޷-zH{a֡xk56n”æapѳ;еF,&$h1ah=/숚xksR jt` %kqKpP6fjvX.]7F=~Kv"eۯ:أ/Vk Mh{`vh~q5oIJw}ӈbnSV!`p.8~">jNup7| ȫñ⣻2hq3^=w>y3PO#]u)U9S[>86 V<b%mkoL?kN݀gC3Y;-N0񺝱Ͼը~f|pBլ95ŋ#I^.Tc=~&g*i.i ^ɩ7.sfn34{֬J꜖vە|6ŲϯKߒe_13 X0b fmeP +@, @{ mm@+?JNyKhe]g?BwE}O]NS\g8(ܨ;t״1PGs/(_j^sE My[}M4U_A45Ŏ'沸>`{!%$`pmd%TzO.5ǵ+6N %ѽږhe-Z/#%r/w~qOl rO/td Nw&qa7Ɏ/iS.nxw3x4][20tϱ\y,Z̙%2HsFyN]}nNF֞ q0XԈ9YTA 9Zn9ؐ&ZY7b|4 +}I6+H6p ;'(8xO6|*7|ͳ&>yzkO&1=iQ aCaURcѪGđ=7mX۵P("$B9Sp2ǜM߳ly&eg̸/n,ĦA;OtK_MM{sǘxo'~,._ng} 8]q$M]R5bRLYUT 3+Wb^-Ӏ?gzGD`BET2sA KWYTgJZ8j_˕].mί5l& 'c}{->XWj JE|ˈDs>bX68/沏|Tf)HbkaX}llԳH!`B(`6OZoѲ/?‡ی5o/$#F7+.D]&d ` vs300(ؙTzM;]Y&$,x\  ̇4}ٿ}mIZP\s4_}u |)`ǔ3*ͩ7 @ %cevצ=t_>5'd"H̲W\'ښu9ĆpF^iytDt1ANr{ G 27l)Ëms.t؃i#нiNQWͮct7ieISl<(F8%V+aUe)2AD_*|}dd.Da>M8ĩg&I!찋>}>SwLgi+3KRǼSh:8.kjfϋi2|Nyk=HrG,[fb&]XS˩%a}7ϛ*}9KCAv}lήd"16߯^W[|jڋ|^Wo&/WxW- ,"f=>GĿ{o'.D{F8̭ZV,Gv__8CaHv$r\9EMy9踿p )7I YXA>!E3x"`g?{)`p {mC]9߿vmam?7]He#Bj]Y>[fs1clNv{Ol{Z" +!芓gv_ujq =_bH翊 PuRKQ@8Ky}7n妯1b*r3WdaS%[peO7bt3V&4{ϐ*۪~s1j9c<_7EMg野nQu9]ncIՉ-7'Bgy:Ϩ `TEyr⣁Fzr܁ΦqVzys~3gqc;A T*)Iq%IŦłg\Uf/q_⫧!8*|4/U'dW7# oe hXpy}Xq}4]Gׇ;ƮM4ʾMc.QQ1ɒ6Nl@'bqJqS3~>MxP&Oìx s$9+ZNfZ*,/K.'Ѓ!Kkx ێ模1;r'[UNi9$||v>: w1naLh;u4%ljWpp*y`q+Y4b-ߞ do\ݑD%92JїcG 9qbP;? {3nUk({,ZO }LO\kpL<?8 ad%me42/_67UqHܶtíz.~8âxt?͎)^0ozV q)27mnqr8MU 끣׉+'}8$ྣ97;xrEvT@0'RQ9Oqz]2+8'ݗVB[sro{rĹ~ξ{&*9|(OߙbGkx/W3N*`Afc<"^5O?D5-y->G pq}?ʱxvDwQ,iz+<16PXٰO#ŧmwEӂ, M042!j>k?;JKc8[c=ܵ =4X1'oҳ~i&Mݿ`ۛl>y==Ο>ʫkO?3H=p4No0D5a;Cà _Plj'ǰ6qz80@g\"ؔiەJ`g?t`\4<\& SAQQI:T:9:8+i3YR~T礬0srƅ,{4kS`g-ͭh&|~>{{ᒯC!MfVɶr_J z|n37楼C9^s3S*Ƅ9ícPdd-er.1iu˹(*צ<[qks jE%,b.iEtb*dR_ THc:0qzbR{ިdn$MYEF%VKbz9H;$ rv\_P1`*k׈xN0^Q*|rCUEÐvcrU0yw. Ė>7zKV^M1<>Hՠ=xG[ [ژ/| yRw95L&Ów4!S{O q@46izu+ŵFuz^"hFQ淈,jJ>f4xXh)r6J3`\z`X" ~?[irV &D<"J]}6&\j!StnWdS'ſ U~J̛ Y Më5y w|3B@a4aR%39e gLkc=k+T|6\{,ֶƥp,+}Ts=Cg=4t.k'/ `IͯI(-4W DZ+=%1aUU.@SLZphvi|}شs;?2*`d$B\e+Hchb6@4E>BK"`)l[ /`5@D\ao*#Jѷqk{9d׵qŵ$U;;_{?llfj4Ο_Ζ]y?vq䗠?,QnWTFxkVy׮a"zl(-eq,<}n6W*1 106ByUqT*Ů;z90 SO]&p/nFګq5Ԩ ǝ_bw?$NXN2=ȭk.EV/y ̻h>qI=:8WPS;5-w8tfQOۚm+c7r8;c8bg\aWffE%+Һ*^o~st{ );&33wEKcX/rӶVji⽿YuSL|ξ(;pۡS'.p.P{Z᥏fs;y㍅맻k#9 ,g><7ܝQZoV?|05<'TW)/E<ԳD۠z IDATɥ%\Zz.|-_6[3Xf; ͫ+r1&4|q7ۆ*sf`8ѵ߻]C5nĒe{]w*P%I~A6zJ7l j v&?a@4sʊ bYͥm5X6)c9sзQ:־9S9FLmwo0N{9e=^7%rEy4ґqz1<^cUvc εhݖSWǬ|*0Ía6>4LmχF,š0M1Ȏ|L1@╜z֞ q/4»?(Egp) 5:}_.;XT4jq2z9,9!ՙ^G m7d*ȧZ8i.Gׅ<嗿,wysT8b W(ojI<*92yMeFk}M[ .tVe<|, 3^ x6%7 q[xnC_(e3w7r3 YW潵F_kV@=ğɽL`O{?Ł,GYȢ<.5Wot.|>/ɶ0>Duz_w{j{Iv#E3)28('{Bz~nz>L®;ևا͞u/rG3̽>&e%qVRVbt+EM,o|F.b:9ͮIOȩH4 E?֜&^n{6L 8fnO:h倦%$"}<^ʪX?es.!hu8;y p<͎`/Z^ӧ[ivlͼWܧ`YC\QOg7=0g{ ĖM) L}4LlcgcV>ߴ'vT"AL`_?:Rُ3RSڋ*~}KB:ȍSj9X2op%⷗'2Tv_ ͟\՟2|v6I=b4 J {ȕg{j.;K?5r;7ZiEQ[sas=a.ϟμo }(s|Ym쥈zNZ)hp?Huz_y[A洹\v\GeТa+ddy,:&Ous7F!cGg8nrӚxÚ ^wts]7ӀXk!Mpn~ws/*i[nzadjUhUGg-30u'?gK[jhm[ؼa K4;>k_ʛı ׯ~|)g宻]tE)o;{K)i ٭'mk1&W41hi3k6ʈթФ*aaVmU2Lav ]af0#JJAŒzfl8Kb<>_ac_QvShQRZװ'&bF#3ҏuN0ֳ* 2bLchbT!\xbޜ0g;_,6~pΑ)пXG]VO4dQ$H~ YHN[?XpfQЫfͩ)^|hiLuhC'o9gϟo;ȟTџ})VΔ~uu&νf4r`>0]9kQƜXS(ey\T s-/NȱZ'luIgq^-Sh: Q77[=K%ŭp%;ǷqcNZx e ܻn?>nT c(KVjnJduÇT^~^YuT K?+~XQ_ަU_A45Ŏ'粤b!M20W1tb1:_c$Q.#VG2\z-X!%d*_ƂMAlB>ە|6ŲS1O5GwM>8āT)%6C@+(zXUITs;QHaEnME9O']'dw:Mqx.浐(T0($KYNdQDT1PGլrMY^zӺGxrg-[9֜|iݽ\Uǒ f3LD^NcYgҿA`;w-6Nmv,oHL(zLl}h#zKܷ H6p߭qnb[Z |iޕ 9@w~;ax. P1}j>k dS&V2?XcXwS5g9/%|r.%QHnYuڕvɿc}/簤^s'*SER<7&elG>1&x3M{i?,YXq6>jxo_tEK ,hjFg|5ZQd'3J_2,$f[bIwĭO 44pR+z%9Ѥ*|o>'=9Es\=NCX](4:6TIWEE8M;o@q'%Tί;Lu|cS$lXN~DNoOwh|t(wJx}O'>weȈzOmPqe$7I'u~:'cRa'. ~Rv26MUW"w?RϚ$o,Kγ7!SY׷(ISj{f-FS]f~~P$h'/h 0e#SBhoiz H*ŖNc%dǜ +bv $b&]g{y3hAWC۵k1w {$  Qř5iB|e߇1*5KL*f&H(81@8 _},֜qrβϥM|&kN /A?w /4^(5'zʣR R;9<^n|poDo|0'_em1:o;8FWDGd(_&Ԭͮct7^{'Y:O}?S;v5g`PSk.yW)2(y} ǐUƯ#W'[) ntִk۞ p<..J6$mIZP\*^[cT\ l*=?v5o|/6ի󿳚O5w&#oOЦf"`ڡIZ,<*r)G%dpr jm#646NmZ}Y 9ԞVUu;qǥ0'6RJcŻ+צ9(mCSү҃o_֏Cw)L{F8̭g 5#Ɋ{lDC]9 ɢ&GWF $=]A,ƌ@b/\r[s]*B䎒l(>U z$wpn#*Õ=а6-!Ih5 +H~P} ^Ϟ>Nj'y JRYZmtQs֌N<`[_'6X=-x'!> .EV3~Sihf]'Ηw$ܻs(^?vz抡\\C\Ă8rJ!5{= & q}i% Խu<'ܺzw̹Ŏ{ G9?w9 =/UMtPCb`[gOa=ʼn@V:?`]cq\@56~<=~r2Q4)jym}3s-UrG3N!JMޮ8negeGjSE%myASm-X'^3WYTqׯ`M5۸=xnP| \ϐwPUtK'~w/{hR-|_mgr̹U)̕GCO4swXνk9:ʮlS{ W(f~v%xksG64LϞyo`oܕ~ kqy{z?ǩk!=Cԫ ítLN{{5/Ou=AIOX\)M5MBFل_9C%7Rȡ۸a+hJs7?vT[{jڎ3nt?mU#U.I4:2ƖߍbTӺ16߰fI^x=\B-K6L_ Qc' ;~]Bs#ϩeɩXy_g[۸GkĠɔˤx3/q=cbQArӧ{G~n [_ѢPE*͍vn%-+4\{\hjZ+/"YMSV처\2Kj\\eY:!_ C6P,vrn-+*t|{a|zY c;c)dqd7?mvHQΏ_֌F^{>x 15*,&Ar"M.AFx=<>s}v=5A OaSBccOur/GITFUq|eWڏEjͫg;ӗBQMǷsmwW;?ڈCD{JV"EGD{'}yyZ22y)h_BWl7 OƋt,]\Is=3|}#߽1bRUbێN}J0w{%QdЃW2L緹'/{܃b*2Ks KW:Q% B\p"&G kBfJS;\scEzo@sg1.*VTvWG)>p%_-C!bq3*2Q-.,7yD\MﰷVArv]hohjܙ\5m* 8'Uw#v[MJ,]qI/V+3Ip"4TxUqv2ʘK&6wq_XKc uf .IXHex_(*Mu,C7YkL?jD2hBo JUee)/UN=^*hG"8a'姏GX}yǧ=6QI'+%=3%p17Һ[eEC 9Y %qǁTȮݨKVmoe&~YE/ HF6=9f_Sl("bbȔqsՠ-*U' MT #14S>"'0~+~ ;N_ȑtZJ| ;*E6rDS%ޣTvPƏ*Q;+3:Qz).J遜U^APIstKYtk7 %Hpɸ cCP:ךv|1 o;+W=^_ۨtn@FB`XH^a.?'%6}n[{"+ bt"eGZO7@ 0-H(H_0t-WL\nEE:HH}Mpb57R"(@+]F$"q91 =;qq).b)`)$;G:SݝH) ~etzai:"OQIt6+: $S EUEMa%M v5Xɷ#}R98;h[n~K΢JvE₊G-(B[S|Q2 $梔:ZUbؾ?ޣ!We57R}1InJ$R OK;ʒO܀O[U4h4lބ+&);xʖ1ItJ_LνT 27K*–UGQJMc3)GkatD eoq1^L31"*:NX\I&~QYҕ*mp(_Yo_ d)dM؝ERҐN!B0/eQi[xJcRFW̴ aP!1 IDATq<חEDFAqވU/cR SCT |E3ZVSBݭ@I|ssUy]8ֹ*ETqɔ)WG7.ͤr^oL\[#eg MDŽ*!JR||r>*WJ pڲ 7UZĉkE7xOJz%8H(/ǘse$imQ(|a-sF3TqI.^=AѕX/Ki:}sP"-{\IʍdPm1KM*w4D0u-SN{@v+wJU_#9I*K e% *M(Ι[ Msi+#S2!(@EH.ay>)1:89s> (?RĬX~۶] _*/{d4bŸ[UL4fb?7ŗ-K(G#Ttdfy:8PKv/O^Q4\ +zFԱdžeFLJ0)}|UBd |0͢F\2 5fG Ndم=.tQ"N Y#Yʓ5&M~L>Y7&5QUsoQA 3a % ӫS؇D2и[#: anld2涮HWNɽD )cQCXt`ݔ<^g$jb[5P4&u),KPK],ux.[JS)֙rT=͔Җ/3`@N'<?򲼭_q` &(u|\ $ؖZ\pwݜ[ԍ"zO{4PdOʩ`7 ɨ tȥɟ>[Ė&/ZgZ 8zP'J ,gx8jG"/7(3nV/8d[fxQFnx]n(^^2YqmfT!eTyRJ{ݢӾ,<?UՀ' JK̫fUc0zO8 U%8+xH@p"lO<ݢ7b*CqP t TqбKm  1 aTJNȶP0.~ ,ޕ"gl>p jK"o(OEE$zweAs\:N SXM{N5KV|úÆ`S22y~deY(eA\Әee]Yroh; w 2"s*Fs&'Ɉ[(Z2uKVjW KH^QS[r/;KܻYs0Ra>+/034 0tȫ[ <%RfJɩo^D ˮuRK U9qrM(?"@QHvYu/V2ד0߉뾔C*w* ~͡}i Ep?Ul2MT3Of*ʡڔ[q%S 5ǔw9jB)"+jYX,eݕi!mK$=S.Zo\eH@/Eh'eC[Jy%pH| YRUNaQf+`O w'n7O-"tQViH01WRS;^ y$%K瞤T07dTȔ J!B'>ΝzYmVq9hZ :uף2h:  ]&0q$d{F,/RerTuX%\5u)e%yK}w} mpG<Dz;ϊYbl0(Sj+. d-AI0X"CR[__E+,4 2K{ )tgGW3ȢTS=\ X0+^`ՎW$m>2{vw{N 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0`Lu_ H 0` ȍ{O6<ĕcrH4MWWsL:و]ߞPh/J%֋|rYo=.t˕(5w,vCGvfztC\Nݭg׎嬷{m-JMfr;0RPts6n@rIBc>\]s:|*N!4M{*hYMtPC@%*vNJD-BѰ מ zqg]J5l;B}O.ZzQj,iZ,׳i}Wʶ?@S^Q4M 5~Fv\p3/0XYxv!I}m"ri}y{a^ů#|Uh+r=A=O4Wtv>+b?q7izs q{JW 'zŵ{מVN*Ku{ m5eem!}nL5dCM%k>M̀%nӀwnS0s1-h4eؔS"ZvM\bP鹒S2SndA(&j=# fys.)sHo#)Wݚmƭ i80/ߗ[*L-׸sYUKʛ ?ya%BV6M:sEDV2ftؚo7N-tQ@h|(3Ch:rS ^`?HV ii`>)J?7^|4zyzaYE\N/?4M:E=v~a@ ћfA6E{(,~7ЪųGHO8vQGB HР) DQe+r{N|5O.!~ߕY ѠN>q<6UaL*ʋ@Pڪ2M\uq]Cj9?(=, {^V+Wȓk:sׇ+k8Bs@*_F\J-_mȩ8y'`A^nw6!r")>Wl5jKH" @ID4_;MA"%%MH癰Z6%Lz`KESiuaIY,-8;wΟ^+k_aOm9u7aتFwG)qZ×JƊשzE/B*/;jV^Tx*>z43L(@Azy4F9| KPۉH oPR~7*+ջ/rFGi>5W:{(K{ǰuh Y{sUK,. O;^:\jz;5#7W>7XU◫9k2% 8|#ZT|%)٩XIΕ/>\;|y}Ip6ۻ-gC rͱ:W/P6:xwœWr[\E;l(F{Ү0@g.e)]Ls;ѢUw$m[^ZtxpsOonm+_ {Z#SOW,z*T˗0,xz{nݻp0\P>{^snjf ڃmv٭XQn޺r-۶l{z Oafu Fu܃2Ghh";}8qlE|s<$2$SPR:꺛k{k>KS8͝z,ad)Vą .\pnts^+0ZۊovOjC.aL6M!mZE斦'غMXkWo'_ݳ:+?99BA|h2ԌM;Xf_B{(J=}3*?WMJWxj<ͭ ϣ2|8ֆVZ}q',=zQ4 nwڭ2%nsxQa4D_ޤk4ש0h9ub)Z~Pn/;k/MRwks:>S\J͈aM8|ZFGV}ɿ|yV~عƞ_gT^jk>aVӗCdhAs;o޽s;bs_ ϞSMQRh4h*T^TӺv!.+;$%jn]'-05RA~Lt2i > KQ!DdߤGi+* ?#@gScbܔ\jrP//*ms9OΟ [u?zmr"ĕjD9zp-5mp+MeUe.'?Ƙyn𸽻=32g$žwP0*!|C'%ں瑨/R爠ۡ$4fU+Yښ쌨dAlUNn];&(f(A#=ȓ!9ORYq0L7Ƶ _[^O;&*nTU/ez[}|Uݡ Q6ƔAIv#/t37:<u':%yDTIZ<:EJ:E;g~qOV鮓{Qqs+m/Mlj]=<$IRKPꖯocٶSyh|A6=Hh|zRs95QԷUm76XJ#>CfcU@R!&l E΁owgm=JTjkrskziߤ?nAF>Y9)" ?=_R E)h*Kϯ kE~~"/5j&R*1B*5 z bh.G?IRQ_ q9fxZ=DX (j5SN9*:rfZz'Wl}CޜC&-"B1M?)^M?m{5j\D3a'GOHC12_$kϏ> ڞ..K7ؚc?ԙ}3"qFcť>y +X٭c̦*Ԏw ͩV 9cՄzG'ӊ.BX6tMH @oy18íw הgKfƴRpv*T/7GY훴(5RECnFg!J4D^iu5j}F47$r9$A.ew<~p_UB|X` GW a߳xl2A:9յgT/Й̵1#9Sf6Ms}\AA\ z?(ULӴ$#Ⱦ>si~_e5nPE4$saZ/ִ%j@O@Z,-Qi_A_א]rifs݄|S÷?bgҟta6 \^d_zv{鴪M.2&O?xĂլ-'/0k[}[7SBӉ{oyxdV}V/]ֵ꽷76偐m6E;pWɜÎ}Cs嵯@!'\y0Ǭg?=w~tyPS_`ߛ''4n^ zQ-9ՎN? K)i2>T T2M]Gi*BW7wt^K RkK?nhΓj;yZT ~ zc$%!z8XGȎ'Q4MKR]F^GoI2#=.WSU lnK>xa&V:5nJE~7L%<ΎgQ@0@`0` zscIFu@0p q0`P@;{T Re7K2RdÀc ruc[0ctn录 i]*eDV/a<̤7sό0\yI>@ #YDX_s  [ h\j4SNB &ov e"ʀ6 c]GR`N[t:#&Gwc@@vgg75E%=&B12!U15X$c /g/=L`%Ԁ@+njmE[^alGF14S RDIt ?%ݖ7yBvֶ _|_(G|dL Mo80Ҷ^VMayƃof!xg׺~YT_z]y n[kq>$<p!hMmZip%YOnX?Go3l5֐A'w}"d-?MJ~s!COG*,HOF_糪_ݍkΫ,Oi<_YcıgnRkzCd NJJIѷ`iJ>}ͧi_&++~GzNKvx606@S"P  Bێ[ropURXK@Grr4'MKNv# /0WU)G)I Ǩ\]R?+Թdp@$8, T.2 vY)z!C(ڦS"6r>h7ףk#iM_l`U]<~H"}JTty@eܽzYK<ݏ. G鱫lo̯UOI&ʬ2M;7ZHNys Xڶ{-0\;3dkzQ01nK̛5m&hАuOP?R`=08(Y BiUˇQmCІg]zC|4 (IDFDe@ ]8=6t^ Ngy4hd/9xlWe.U !('YjWI2>`Pɹ64#Z;â^t2J<Q7=1;n^]K³{C7Qa4M:\|*։^TD_\0Nìr^DhAsͪ;op1>Hcǧ܌/)ORԳy^u=b^Ѓ2pO@X1+j(p܇& aT#9"LPW_Ugy,K"wȗ]=ͫ8Z:hk4-]Y@D-/G|oYJDv|fӾU u>]Nl~naZxo)1K" "9,m}S[%}`N" )~> 6<+.^?Y'\OdT '{״~-1fYeZ&u㳵b +i'qe͆Tx7O_=nUJlZIW ﵒY12_$kϏ> ڞ.vPLq}ʠWjOmfډh%mMEH &|>;;x&)ڇ\i];FN2tu]:рNلp V'tbk ȕ@vV;{-:mu:}ʣߺ4-AkcQ%ukx/9KQPH._"hk4r9i tDp41}B;V _#%Q Io<2o~~O~K t [ ^Ԃk{`dž\%b~$ a&aہ6-T* ?vߣ'sT-k?BԦ˰yJwo>s=gTS_hGeٞ^ԳwmO|bjߎtؖx-s|0`f_#RfFE^Y*ecN#gj;ou$Ҟ4y9J\+sk%YIJ4,A3[i++u|~o|~-pR޴( $!RV9<ηfp͠Z[ 4XXZ2[J6ϙϱN_:~€6fr$Gz̦ipX.OqI1$!fPK$QV 5×Ty~iW sQE13#|+")/+R_VL}W%(Z9> ,!W"ɂˇr9J8[ Nyh6?i($x~ ^wKԮr{)\\F=l[n=$\Ȓ4WX-|t8*'%‚+s' 3%P4cϼj2?Y;|ri ƹT 9\ZY*c^Pez?5A lA@]RِV9OMI^nmwkd$v,XCp-mSRs}$ JX}܎ntI'\2t{~5U<~i<\`@na</%*Yz{zf/R*}Ud"D)A{[[zNj3 '3-?eoUOIᷲ~RS'@T u[e(1kwN` `[8̻#38A)nR) jlF V˪>*9h4+>LĔHݽ2BC t*o08NTKm~# 0=&c %W& X:M CeY ~gX/hhV- +?ɨWB tX2 {0ezZ%b&*ʟAO[.^ aXhZamHk@+Jwf(D&h:D.E F/h$d) RUi4K%.Z&.|NKEcN-w!AkY_^r51s aߎz)}zZlX))|Qѫ,?9eH"l' hf[Q% ,lѫT5l/ۇtAMjMeܟ0MX@ȦGOScit^|;}۝M6lۏ+wFnܚѐ#]13W7G y7bŽ+/C=OkBP~GGsEz& 8^;>gjGUSpE_ U!g ޻\<{yPrTf}B]/m!#.ʴLu{Z^@X |@&$"%G;5,?KG'<})3ͪjjyYZ;Ka0犭&YEYy;mX5'W7Wt +֗Zv)[JT'8:)=++%sr>GB D@ 0Z@ґ\LEG5Fr,Ij5_^42÷q{՝u6%<3Vnxt-pX, #>$M")ԋut"%[8s;8Cw8}Н4Y99}:3oW?ȥR?32؇304AC[];oYR0yj^_uZr7g$@$ʗTQ;{~?d Fc٢I䫴m̠qnvz}phHXd DTJ3~yDdB/ U aTf-? !gDXPPFk*W*Hs!k*3'c1oDsc,Et7W)>Mc31bp0p9F$})=ϗS6bi=P^S|s'*NhYIIA4d ;sN{EضJM2&sؿϪp4^5;YG"NԧH ° N3zB[ZT ߂TMs4%9jFL4>$x d` K"`b;AgI t{Yg]umv>`a-]3؜l\=eVWlfC}ȶP%qߖQ=nݷNVm"ϒTPi3MSD>|-go_x s%vN ghVw,)Oq'l+_5+,˦ +֜YJ\ٟBVE@DW=]}/?JOE}O_ޤ/iŇJ5eZ?tX;!,TV41ښhOs;,$??#~Ρ^3`zeqy ȗD 3$ Q۱X==|hW"ES뜯OO~|o.'GWyF둝E(p۳ +4?]Bq:NPBYRf#șh-/-6.pH{{g#O|TWaIyΤ+n_<(5D%;9zRP/ 7V5iqhA p'ovћ2WSEU߱Tה|SZ? |zblZI_ R:'7 WAW[.MUCn@Oy[:҅Et#խū\ Wv4<&{SWpuLASJekjR)i֞gV\Vd-,B\w_/~27j qvt\qvTDL-4$OG:@avPÍ d7B-k#PeQ S;k xc^$ -ɗuBj٩R5}Ge@Y ן4p^ހ.ju+]9|Uw[!9T'! rd.f˶g*| $jp5 i?B͞bĥY^udu<+u["$9tP&tw9Z!ÂXP?SB@H=,f\/=-+dA*s Z\Ǘy"5]~NخY;v/vd|FM|+=HY9BM%ömZTT] VfgZmc˽3i/)6ZSv1qæԝrSwF;r䧮mN.zj,8OItsmHM\GOcf<}J*; M@f} Iȣ@Y1TOjك;o(́A[Gq܁, p9JPY?BO̴7zs'I)޾/?Ks5;2RpڢiW>'3n}/0Vok$>zLW,O%a|ߍj`8Y$UIe@ V78r.Wl5-xV6(!82: fkqSZ{`ԱmI}t\̓.xxZ}{wA ^zgMXۀdqIDATa m/}%h`eڑ-Di3h@0|x+;jҰ$;*@׺ RО N't:!`kwg]z2z i|hd -Z;ESUceڏPEjy6g;0iG$-lunѸܕojZ*6TW[4Hd tluB6@\Y(X&tT&- t;2l2nH *,Jfo4x ƪZ`[ A.Y`38G >:ziaA̕ $wϗ]г5<ݞ~>%W cF=@4wN'9Fkp2 fX@I"iD2Zz P fSeNgO4Rv{Xl1*~^b_\ B.q*n3-":G@h 8$i9ݷ/#wT]j,^eqd~1gzDM04" >}Ai6e@xmmnQf[Pj` 5i0fƑf9mb<42eJb$tO/D:CDD1̜ST(\jʼ[ݫ%fOѮ 0`_lnފ3"fP_ϖ*LeҦ1Y,mSt6eaZ;nʏexCgiX&(JjS{3Hhyiu`PƕX:n >~ 0Ir0_jYV2( 8 Pg=zd4gd/7*3g2_e F}sS8^0- ƀ}Vė$11`"*ߕonjJa{L)zoe/_-& jҒR.LTn?ɖwMz /0܏y#{eb*>*gUlCo e&*dApOrK/v[L $d ]iM+ $+ /gQ<7M|kiè| '~*~SeĘ@i@ h0ڇ,Z6-Щ*8eYH9T,ʖJj\|8cߋ3 X*ȋ~`חqLrӤ#C}5smW;3^Ɍnˋ GwoJ:۸vLKgy)F+fشk!O6yE\y$U;_{gWcܭ}_fȒL4daB2`0c4DE$"*Q)E]GE{b_t9s~s-Kk#5ٝ=Fp ݇phV|u!Sr톾txH_&o?Wj,0jʥ]4 Y gMNz?>иbn۞:jBqԱ `%bQePں16SUmۿgikN~`[<%}9D7kiƄ/qlpm$XaY;s>T,mro, ڮg0 xV[ Num vR*=n>jHRg|z[wqƒ/2r}=fO5c[xfS|_cT?.+Zo~nzqvǞ6ܦ;t3hj;M#ӣK~ͷunSOG4-NG>u?ұ=zsvm<'FqYpSR)ΰ5߻y<*J&~Gܿ!D%u^k/ wZJm7 zr?05'n=~3:2Ii]J\;6 yGO"]?ej=*@@RLV>$iav_ZWRD^؅2[{}Xu.@.Ne-"Ꞝ^h f5 (bS`&S'2; POzyr#RnC 8Pcz:[RW;w'-(JY34T2Jc{fUNv&Y2 2N:JinEO]E?մ;C^${23Qj:)xtY}%ݽ}jWH#|?c=eK腎}?+L.)Yvrd\ VVVZe qԯj gftPnѽnwP=ZQwcgYC+uZzdͰߑg@͞9$"U7i/TW|x;wTӐ<94~#mik'jziӫ#7qKt!Kj]]ivRmTEY3EYҾ+[r}3[mw4yVVRh'00^)~k ˯X>lzWb3eb_U'cI/9{V i1_=I=tȌ hyt|Z3zA7SrEpa[ /x4 ċ뜮9Q >(e,OǬgz/`?}ėʌ8{)}Lw3HuxP01`SCwי/sڂn=Rʾ)x.ݲ@p4 {0V۬z IIȗ(J}pLj/!ZM8_8fHۢepZwJWn';?(aUԴْRPq9$lѐD.Z[یSϤ>!מyTj~f‹Bb5#M|/ $,:^|T:s ;GU`sQ @)+q(HĴ6-m_Id??ۏqen(vߢܟym7'yz F~?sZd0[35Q<pfgY d,x`c\Vƾwy0J$tpI2ʣ>ݲ=0T۱|)u (Z37us,j\xW~ iNbi+Yi^Vi^?Ŗg=g _8b?aʖc1aL5w_V' 5i cvM}kPR`Wdw8Z=`um8᧥ ,#I%22)C8ƊEXin ƍvݧXPx򴍶1^#wdi](\K3md]uUi ],+cAsi^Z؉'3a%LKO,ל>廱ϔ@C.x^€ֱnD+5j2]DL}Vg(nKC*vQygoQ^y噶a!=,~[@ {r1Y76P$~Zh1zX DS0:Z)\<7@[@@ǓP*g4|1=ǡ-4յzM^2ٸ If3Q?J=Mǜk3l%b^=[<`ѝx-۵R^ E ]G^~hgxP 9Hs>GS|.iC`"h{j3 #ܫvq&:;궕xqQ~!d?XPU{G G< O ?Xt{lS>OC]EҬ+n,Kx^QŅ/ŕTGz9r;ukPqnK¬O{[u1҈kC儭*CvҙwYjwqrYY0yOիg߭'[wMAy1 r;=x YznZkXqNm+ϾM8=;WCR;OD$eu琕]T+BJ٧vrR6;Pq}5ףT*>,+fxFcmCCHq{ APșXts%@M3-Vnab|k.d\ݹ^1ѫ!,]jGݡ4͜F m~1d.d1NGU7/?rrwH8J^!u'l0Nguc|(BJ5@~qa,8*C[՜zmg!wrv t=VkJoY%B} wQ9X|Y׵[ $WH5NHw^S8sBRVHU|5|;J'Y#r@ BQ u2o` I @hnl@pWKG@ c Z @ @ @ @ @ @ @  ?, F?~IENDB`glances-3.4.0.3/docs/_static/graph-load.svg0000644000175000017500000055540414432156570020340 0ustar epsilonepsilon Load0.20.20.40.40.60.60.80.8111.21.21.41.41.61.62018/04/02 11:03:202018/04/02 11:03:202018/04/02 11:20:002018/04/02 11:20:002018/04/02 11:36:402018/04/02 11:36:402018/04/02 11:53:202018/04/02 11:53:202018/04/02 12:10:002018/04/02 12:10:002018/04/02 12:26:402018/04/02 12:26:402018/04/02 12:43:202018/04/02 12:43:202018/04/02 13:00:002018/04/02 13:00:00Loadmin1min5min15glances-3.4.0.3/docs/_static/smart.png0000644000175000017500000005177414432156570017436 0ustar epsilonepsilonPNG  IHDRGsBIT|dtEXtSoftwaregnome-screenshot> IDATxgXW@{S7,`/QcoQc-v%QQ&5jF^DA+J.ew"%sg~}ܙwܙ{F$AmPxXIJ%0qݝ+*hI<<'ghtU[B|8„i]$*Jkn51^h8{K{5ˏOqBhBnxq|KOquϱhI _"%eꩴ5[B|VM0mEcibg 'qDܽ=%UNEښ(ϖ@`ccSHa 'z%ltW2@ʭ4YVX Xx{jR 3A@miY аZj[HF>yegG=3#7l^UңJu xBdE+;Qq3*x%xTJmZl%_Ĩ EjQ!_eyL>z3s+I%>Aa|Ә&N*R1Bh5!U"#S.lUp9^--]8# :P'L.,9 6~5êK?%'k=FhTJ#GHE=(`|*~U/+!qOCJ4\aڵ c|QU21q^4W(GAA!OB*Aձ33HJzLL0ҸwӤIs ifeT~mK48q֏H!U9aa8 Y Xu;j\SG꣢?aP? %.+Rw4FvIqU4bQԼd@[ݘ'A{Y W)GAAm'%\?RrH#jɪ tcMDT& .sA҃\}Rf&昩 Я܀:V= ciQ>Ս/Woil^mQIx{yzZNDzt7b'S61~N|rm/ˮb^ 6)c q}~>F z! TUP=8E"B9 oypj91jތ_΍m046B@DH`&&jnz]! ̌@Ǻ"7~{`RU UPF$^"%a$Ho_z jkLuKg0Gs*iH~]Ozv*#'Nzr:Odcp;;HQqvS!"*!=[s)A%hԩe(Rv95j9>@eF d1R9B@U%ϑ:w{^%֢*z}Ŝes]u z8F3Ҧ)qq,%z7T@43L029D쵓8p( %jQ^^t^7"IDk8Q FЁp0Ճ5MHL$KW LI"YD;d+g%UJْr;-_Tqyڵ٤/r{2ֻŠ_[Si(GAA᭣'X6dȼLRD JV(!2F KD}[%ҮebWHG~X1QNg\Jf?4ROzmkDuxC1-xԬHKi+bcʉ*ylڙTA2  jqߴhS{_b;,GAA"BW ͂RUS=`<b&/$044DbW3NQ !%k )5*Cy %"# ?S5xeo{Ou:+ʔ/1a u58~3gn<"ԁETD =UaS2U*QM,C!y&5) vhǮ#QPPx{( ͭVPPP@I y$G׆/t9g(*eMq+ cEi<վ`ڿ8eٱalUsL_(ϤLSN_CǸె^EOK?l_=VŞ;D[;[|fi^#lӬQ;>8sWxOj7^Ƙo_ Ox9$m9?߈ : &*47]$2B,i:cKD̿±h^uu ?dc~]TwР)ۜ6r3JlA9DX {DuI}nbiڌrf ":~ál1f׏bᘬm!)<&w~^aOڴW~ P30]HS+#'ohK;dL+u$Fik2∺s×ᚘQ9:~=ѝP$k׃\ mi2maN}Nn^ʲ}73:$C XTKBD"n"8"LJ V0d^'g$ƒ N{_bΌbǏX? w^]@4]kGY:u`wk*;hi`j+ԺG}Y "bKԪǡ謣V0LMMR,ʰhOb>l z rr BUu+~DR=G 5dj {NcK4юZu"~ϏΚ~{./E:S{+S{tgF"ɿYf ִ oXiN9]S}O0SB.H\N TGo hJbBxų`k?0oٜ%ʅ=з 0/iF: 1I!];s/] ZNt+/?ys:ݫ(KW@U2h A92S"^*G.hn_k$Lb21HsdybҞo87,iRU mKr-Izs8jE-mS2O"Bʅu9l8~-?'e1 7,D: ='Nr4MC;K{g׬2\5+Ex..qp{S?eDw(XZc!IO i3z53 Uizf<]ptnf\KJsI ;Һac"z.ZFIQkwnGݯrN?,iٹ2륫rFD@AT(%)ie&{<:m[{!+AśӲRA:誜t⣯7tD AfiFX|3~^35D1D!גL*ɺz;cZݛ]wH ^ %b"6(٧k{ ԏ~|;75 !WD45LH'=#MTt2g a"%TT!q/ 9 aźaXgxiR9p1Unc,v =# I}u$a6֘*^A^HUi.gcEiֺR7>/G[C#vWwZ47nj 22@JxH`%dd b՘D=<ťKnE2klǨ;rIxO&s28I y@FftUΣEIXaxkp([ C@,є>;k˷GQYcJȼLU9Pxm*{rRU{ߧrz_~C<n}q/6 y6X2q#{.jV;x3^|S+`Lqpt1"xnG$U 1AP'<>o=8C}eBN{**tÄq:>Eiutk+ bF^X:UZ<.snRVW>vS3`*&YNIqd'D4f|$%b|9&RvMuzړ}72Yir6ߊeNbe[^f&k!K4<ܿ#kg:5/R5&]bj89o_y?}_i.sh3z?`Zԑv1 dlqpo4Lfb:N{5yRYU9:>! ʀvxʉ.MC;&_Bj MYՂnʁBlLR0v#F๟ag"qWzC \AAA! o %9*(((䁒@I y$Go\ĥٵn ݪbnt2 W_m؋+}w#,#ީ%3l&^iݫbk}bV( aI|sl\;Yd,%%8'0.R_:3ks)xBoŃXG/3Y?|􇈪,61ٲx+W(Z ISv0"źeU }|~&q cC ُDBhc{ӈǿCSkΚf(ZQ3c{4zYk4Q۶%mM/D[8*{^Md+}ݕ=+W[D.>z3z4Y;# e&ZNzu}Ӌ/gw˜G*c1\x >r.-ۗvQ-Hx?ʳִ4Og9 g'{1+|X*}Hc81iNX WԔ=2A=93W6II$kL 伖 }9b>kiЏɓ~a~R!oX4ɂ5uqfʜE$2_]ԟ=]*vuX"$@hcqk4n;2w w=!Ocθʆ!]mk~no'F:>"K!cdİt~ ѧLn eճmө9C=/dlYu գ[H{h}%eofp?TFKlLfX5ZV HmEgĖq"Ѳv <ʵ˼Br0@ 4Ha58ns`lfO?GXy ۑChRϙp_ݙ~֫7fwP=ncPn#c˥}DdȤD{}zxcN%]H҉{x;7>Ye#=s[ׯN,\&9H3g^%;Mj/#rB)/X,}|cVm`+$YXR"QQ@O5[:"bgMFr c=(^?|KP#>pyi(֡߄|qEY$E'cd$c[^jTgHNWY}O0*]:Nj6$,cC1>Ym>X>u 6q9NOSr"JW R^hdzvOQ"9ffsP!88& M(L䏠g$)=>*d[xw% s(is>#Ǹ/7Kˏ|Ra=,%\mJyGDN2J/"Z2Ǯ1:p@Į RL41,Z< A\[aM~E-*޾˝\ݐLi6p)t |F`uѨJӠA1үp+4Dٮ%/sksj*)f/nV9Gqy,-'YGNe<9w9j=RϼO R?j~7Z4I >Wr݄DPPQe: mpn>(krw,/bjڜúN"M0Ʀ#5>:0K/QYw:8Y 2NS=u>kSÈ(5w䭣IOunMX,i5v&gN!DXfTO"YXzP%v5J20h9~>]Jr}$'YGF Xצ{3* ҷuI*-԰=;CHZ5zB $zՒ#Lz oϑH 8Gvwt Ջu=# 8<=c|ޮ*n}.AvJ 7cX]sŐ\vI'Y U@toƏgZ"YNR^kIi+q!UE!3z.׍Nͫ` !cNдk g!ݹqcFњ2ܟ~=Rx"gײr⑱}dֽQrQpyIf|ֳ'Gf_+7f/CCأ9e.~vDbWPPPeEAAA!䨠JrTPPP%9*(((䁒@I y$B❵&y[=B^r,i3og/yp?:YjaW9m ^ڠ °b/Vg0瞲rdߗv.2V~f\ &e2p:5*k׵ *V_Е'YCe! *|*4kt!^/X(*iR_"cf(fΞީ!)<%J+&W|w"y]v&pȜ!"J=6yH^?L~n*_~^7RLe/5ש󒗯tli& IDATDc{IKM<#ym*ϕo^Zv4~ߢTL}G$7wiZu 5HNJW/I^GJ:`-us|Rst`GY@CقӒϡ뎾dh4{.鄧stniՠʹXTSdWL2ꮋz^H*JyJg7?3h#-*KҶCG$KWԾҸ$Օ;-5~i5K{]J*彎䲬du< V%=Ε=NAze8dQum^ "-"YS^$~4i6 Q܌R#P]xh)ރs|qCJ PUnmsb/qK r#\;w?fLS-iMv!"̨?(mh;G̠M:Fؘgy8 idHy[᥈4oܘeZMX*f"=طz1k!Va}|O6n?)f 3,OƽI8WDH|2l^cQbfXJfMl8TG I:A5ZCԩ#O6Xo@T/{& ʘ-ӦzɲsGI,.`*1aR ~Å^&t;T͈iL_}X`RQ1A?S.FtncND"I|VMP[ܧ*7l~ۨWfT-p|%CkbIܹ-eRS'^KpjL˭W75h4_y$0+mg1 P-:JE *}1ÂO{ѐt#;TgdH"6VdݰQG)a`cIoRRnsQYMpN-ߎ#\މ!$-$Fq!-%p~ǿW ӢOZr%έ%:F¬tilubVx3?ѽswuMѵ??!{b^r:gOczep,+X o`B4,[N_9g)F̂sOT\ھ2oVG>DPvMYo6?Dpv˜\fuQTYvTңw *c,)Q>:@6 f8u)KtU)Z Wҕ)-<~cѰ7\fD p9M0D|>a"j${R zѷ s?يCU$_ͅ5ښ_n$qi&MfXi7/lʾ)% }>$8$="/61}[5Df][;0mJ;ƘJ$c &9lW?w /;3lNoRbpM\'~4s35 8|6 ^pdBwok&yGԭ}BKraLƜC¸k!7+L0-HS DŽzyZOcd&Iw]i/gl4cü5 y J4f|G3I#?ggoL[xKN H@̫OϷ^Kɿ-C OfꐖT~?,+q/ܙϛuJ.J )!1U'x,+jǠZ}NMrrӦԝU}Nm4`ʺ(.M`G]2gɷ{7U.m#v6K{$y8t9 ?^G` Oj WL4S-oQ1x1e֧b_L}x͸ >e2V( ޚ <۹اٶeX؟2 +{cB3B8π3k#>Pm7FbKpLT2' ڰ7Naql{FHD~p-\=;{{bf\x$n ΘQ5x]'s.onߊDճ;#?ąDKJȞS=V t+o5珿qa2FūR*k6 x>¬1qlDmY{WzK&61 /'1"7c2S/m3 Jh?NrB}[/o鎊m~4kƜ/_п &3adNn<5-6}4, gUL4@. wG Y_eg,KZ-\fg҇j /^ZO[d!Qcw)aDrL_|Xm 28ӋX[EY":H~i'XE;8]Ԁ{S95-tPjƻ0CynLAApxhCmv {9#rRQp+(( \AAA!G@I y$GP(Q(o syZCԎ9+{MYaΈ }w-A$kAN}W1 ]~>` gk̪|ϔZ /_Oe/5ש󒗯tliDc{I<ӳJٟzJ[l/Rj2~咇sU:o4e1I/;zuN{?{-kS.5#t*ڿ\rn^BL\# MP[6[ ~o>LvڝL•X9fK PMARx´(o-P 'ohcΈ,2V\K&v+dܼJ`=NU };!1}bbVxy&pGGs_rh IӴ,!)x^%.ZUO^lƠ\.mcEeE{ ~4kQl+b]| op]/u ^ɴU,W : K3}֕W8{h-ӻV4#X4`N{c;2@G}e6AuuŃVOGDJr  zzIOHNV[leP &fQp~љwE*t˴+ы ȳsk02 Vyy|9+|:ScL51YhH 9TUh7`#Hˣ_|i>*M )SE+jufl&T/k&*sVOߧ64e0K'?'7/eپd =]j+f!Rr4^F3ϻ:Y8uero[OD`ەug$zgp471*Qstbn]bE;#Uaqل&ہ_=dNi?i"<ϸq͖^8?Sx8jB%[Y"2竪*2zvzyߐAz.n #zүXf˝^| =h{.U6-FY?Gp#xuJp"݇43%pEM#ÑCoFC,xZ'^i谲"N9fjoWBcLhtSc7e>m _֐&)d,ShQ%Bn2;כP I20^cJ]=}b+-%cA^2MgU0t fiaB=C5ڌEk0z܇2`r!8ǒu<$`a[jGMyvnmڅLx?x]>+K9x=Ѯټ;J 2ԯN>TB!aXBo[l=oo3Ɲshc$HxP C0w={Ϲύ5kH TiChYBHK7^f$>k8ޒNH|C2ZY 52XuE~rFq57wk ONMSVfr9&p9F|<8ʎCX0n3ԛ8PuRC´vu\PPY.)5zL`zʀk$GG: M &Qr|312 Ɣ* `StkP&+*uUUchKO'o$2[5gx\ʵK\x]Э;0r!XfΑ옽8ʾ-sڨӆo2୛x=B!Pu<),q(aF1?qҙYK!uȾ0ݚ!u͸j e`Z-gRaFq Gv| x:MieNĠ(mm@FRQwp2\a6*Gǯ0sJz!zH z`,R5|oQthjݙ bmaI 7(FQ jB03uƏDY[&4x5 Ƴu6%߹ľ?\x`Uq}ZVixxՅݫVg ,x:Lzt^mCشk\'!Lt==-0f Vmbؿb:?SQ7z$5&Yx,YĨH%ZkMӬzKhY+['2~ĈLx!3DS-P@P P@2Ȼچb;qcHf Q <0xk=O=u13`+,ٹ7I &<Wwr.<vIDATm َLx::[ʅu9l8~-?'eɭ6f/?<;¶3٪ 7L.4(^W.q.~jqy?cF2kE*@~ ۘeݻ W ma^"Z7ǓcsW~T-# oK+ zxmxMm.\ j8~mtn5jԨ{ 4 !Aљ^SqEÈ9hYe[,ѵӥbP)D*df=P 1< lxiwa,Nc䪗 /ʊ6tךZfGuIz=4>1W0#i@x_Sȍx"qd&y[ǑXP]D{ʗ3CѳfrNOJn+%DixMWۀ}N$Y*ZKkx:) 9BTcj-UjIj D($d8g}?$r$ȡŪnE4x<kZ4&Hd]k֐i|:`2C.`u^Og80qՁMJ՟mB2u)[hǘ㻾0װH5 mY=k o.ccsCuŜMa&pX.]Ou6MݗwJ=Fq6i0j3ᲇ'_c⸊lqmTuJMRW<2ZFR5ZeǬ;옜:Wa ;X]Aө23}bFbxHb4?G1ZE* ) S 6볲rQХYݞgkrڲaraօ(.F҃?~K؄ Pօ寓fW*Ion4W1ϯy`#(.Fq1*u1ο&Ι d,!B2ubҘ6$ʦsڃ|oFh1Q<1 `ȈNxּ+}b_tW\ASegSoa6c6|(.Fl(. fLJel6ՠ}ǧrI5*4ˢydxB?plh;w<`S 0Pݩ,ۄ_02=˦e?}ʳJd˟'$ 8q84N/S)N@sznCzҡES銋*- 1䛳 +c$ШFyH3'ؾh2Kegx=\1ko?Zv\ gs7Gؤu8ʮ4"ǩ3oou0J|TQwy),]D5Lfv."S܅ՅP16{k}</ 5iր_Ey+. :.*{/6e.fQ+Z:8عs_s-wdX@][\2i Oɘ)H;ӝ5y|߇'-aÈ8?`P\XC3hDB7OkQ 7[,݄ؕ6sx>ap}Fst6Fٲe- @׀fˑy}:nfVs)JNh]6~t>0YD,rz#r)cfBܧ%%=DRQ #YdxjcF=RC{Z^E1ͨ춠>Gk⹇e-y{YT^BDHLWI4gT-oԍUUjO!:3jѬY ´k3Mڴ_`NDĦ[e2-IFBsrn@ Jۚ(y*9п4w[Ԓ6Ok 9acWۏ3},ƛfy;j?.OA5;3Es"2o b#jCW5T"Oޕ]uu IQVEϳP|0Et4_D6 cT|k+:~c;r&]8<;-Vtb؏q!-d=׸pl53Xx<;v_wD][gڹg`&n$ӶAY+bDE,QcKbO4&1FcOEb!hPPQAi lbd"h}|̞;s9w}=8p8p%7do1D y;p#5Xk7̰+8׎ߐƇvZӴ:GK: v?IWz{[ t}{IfA>&LͿ66kٯ[&a2%ǞKI *"5ybOکymx Ŕ#sѩI鱧ZTMγ1/'ވoE-pؔԔ};Nf'Lxm?;W{xtrdLlāmM[1^zN%*&jCOqkGX,9|`}u&Jv"ۓ÷cNyky#6'QCvE&e a;y#w"=z6eÅ.\:][_淙4cD{ SVG܈Xoe]KS _UuIxzy3})l ftzD|$zvhx{B&x) ɔrBA芛 g`Tejp |,;B-:㌲Gy/SIzFWpLyglBMRd]⓮&n6_몸cѣs .|S/7UR|;>'@øax<R/oRcʐR*@tB"#. F Pe2,n? W2@:v^5"ߘNq(gآ̀YK rO6r5fm,ġ\de,I%szfkwwߑf\I\`?&7_,bެy8PO T7(Oo+="NLƉGjs4wvrInӸ~V26 U;G`8_¯d]txmSeݥINK*~z]Dm6~Zrd>Sr%8nݮcK@JA ,N>LYİg. ')s+;_4y$9||L{3(SW&yKxy f^G9TO iEfʮܸӨ'<3KoL+VϏeFn9V1h-]Uzbu2bM_qظuO) GQ؈/Vy0) I u-mǀVkna?X,܎ ?mwL)Ѕs/r K>R޻|+Dzk{O(,*Wd%^:W2iv(;NRJƴ*6ٶ&jMu-gz8V}p5Hv 0-M+.gu1<~{QE&mbi ϐ}eڑip-/! w<0uc{N#b=*OCoIPmq l?3ߝ .JD$-[rhܾN\OM :]q8t`@gmuK،n$znݺZu :Tmt։g{p&@،a|ž=:u Mf n^-k[??hmUK=qf %ʞBS?Dk;ӥrwd8*`.ӆ^y oږ?=0A8=AP@`P@*Q|T {G>c+#K))2ʂbZBT=z38E`gt4qaL%%u9st_}޹EFX^M teILH=.2*R*OetT_Pa;Osq+_l;oߏ 5φk0c F@ P:vCШDibXxn"9CYqL5etT[ /u9dc׵UmX9o9:&2%@m{a򋌊ao78FrRuBn|!KϬdS @z|UuӅd?& Pg;Ҙb[+G~?7acbߚFzOzTO v98p8u g9%Q~ynjl 2s%Wnr:>o(:l- `am'uὄoV_ܣu_~?wkw^,(q M{RczE<ŨWy'#CgR5ԋ{` x|7bt3?x~&h olnIMp l'ވ\ш n~_Jk'q]zW"5ae'^<}2$DRLܑ?kQ6ω<4E`wCBhZ%&iD0:F1hFN-NQє=y(z>DiFq~Lʭ=eKhCC#UY phFD倀?vGU}0Q5iiFn12fG'v\zS0䗅qG,UF140D5#?-c`| N#C8M8px D==w/Yq#5p]t2U~o3Tnܲ$HztD"5*H`Ug34ؘR{Q\n]lډm̈́B3WSZL$Aꁛ`|#:]7|px pF0>x؄÷[{kh1E ]{]%fF-92Ow5s+>&3'+#r*.f0|͍x͙dV}`c_6}]< ~C]d^ 9S%hд~S۪$Şwx;:Zvp@LC#),TJ߹R 5tF#I)1S9`QҀIq #hr[9cݹzIi:X>-N R!7wzb u%WJ9hXB)8G׸]'ͭοpre@{i+I$aTE_} C) !Jzb" *F=KR-n kS&qq]a+_C g(&]/`k`Ź(Ҷ 4S8XfU=BS*Uֹ-[S*ٵ0&IE.j.%&?24X4afh&Dih34 $-~\&*$Hj RЌ3k Whh締A^h)s%?RjɣW͌ |*&I d x&14Q7 Q=0l~yzl(fou>VoΆ?f00_CYaFTiSG=,E?="bދ߉@4uߠE:xСkG8pgoN3OLJ侤o 7ۀIE~ў_/[k}jKtJ `ޟS~x#wRA!巋7r{,.koa¦:tY};&? fʤeڤ2#-ֹeT9y{^͒,=>Hq=1tI:cN@/;uyQQD> ZF-)ּ1<]j*cv}kQBa{}xQAOުlYT9y[ڂ/g(Awf4c˾P>zōvX}U98pC?unh]бE3ݩtRdsV919voTË6y@V @:M#l (˶g|@s"^m 񎋳mAj!>NȔ޽s4h#SH:|{K M &S{ \pR2m!0j(v1‚<䟏Ͼ=ujU]xIX6*+.Шm+8=,6sB Kx8, |=VCӴN=CO[L!;ǁ;wݲ}[~^u}%ȕ?,!V>{Ofod[g}P@.41hʴSX"։geqb.ҔFX-09yw]zq~#X儘7EfKG{ȆCEC7,ުsÏxug,٫`>{)O6#87[V%v]B\߼wהz;Be U@1B%Opͳ:V¸.)vܞg" F\ |G6r1v,^*]efyV" .8@i<[`fEfrwt>!)>9)tcUjc&]To?dtWc9xH{a.9!c4ty/kޒ"PBh uP_?*^kRRdߞص1$4x4~KϢgea1sw9:1n\GK ݀TiG^0~ @Nrlx﩮rbgWv*'xMӮ'ğ8OW="aӺ5I_vr?!7n$FJYɦT2-X{Ú7'׽%Tˊ' v.^^r@{?yX٪;G.n9MO̊߶zm=~ڻGutÞ1b+40n׾߀Ntn;O?p7OF}/ortޤrbks_<š؃KL̓Y>ZKN顿׿;fkr|]18p:ܣG&44pcEk oQɛ ϑ׏0F*'uVE1x ,sZzRjjoƸ0|#$_ڶdm1(ѧ]E hGQ4fRx#SҚ$l._F",jQ4DLjv]<9Y?H?JGJH3@Pq),]} 28{{ʈ@%~}wZT{4}2 ҧCdin1Rwq@{Ô^z Y0vNgm8n}aq~mkaF%D_1Yd+8O{z]F 1٤emd2o_#ÜIX=5O ͩr蚪(eOl!뎩X`"niVF> :yڟQ57n3 #7lV2H/O?Vΰ2=@Wx/W!z\ZpQ"7Bloh_4[LR&OK(-p{+}@߽S90f@e4(,M{&†4AsyOiQ( ѷYB IDATZưF5B0$7@h)m" #ུ 1^# @"PV #$ñV ('(/U9idFDzji/NѬ+ V<о\7ӣU"pĈ[/$/FtZ8HS S1zt JUX нotK1q~ɫknMdD4B˂VdfzLp;h^7`lE-]0I!uo/Y-z}!1<+qfKnC1M2S+cn~ACLxDe{c`ܺ$@,2iv(;NRJbfҁ]F )|;_,>xuSo5\iݲ_3LqU>#qMީ \g!0ܸ=KWpj?8p NC9Ђu-[8I<}V44x'̰r{cOߜB&Z{Rz"%Zf&1CrmL-ch[?_Q*N3Esi_W1>zZFDUT-w|Qͷ11pm4*C;~H::1=ИsHwT$),ZТk+"x`x$bYEԵ#tAfF*\l̇Ҿ lF}}bW*B9hϠ~VN!6Jv OG|h.틦U3,>r=)zR?Qg=o%C1kc!('>Ʈqp LU3avx^UUMI]gʌK//,(ӕɫSY5.}FUQꄮI~2BLA icV/B@ٺۉ0vi_\UQ _;ca銅{I@W/3X٘UHش.fۚ (/d57U[hf֣y 8 ͼm1=8pUS2ƫ%1\p"pRj_]IK: 3~]60G62\抝q"o%ejpBСcLa#ms|]Mu7Lvm 05p)+"UH`-UA^Eⴖ61 FcZF[M8?6!Z9燭xcLk=}מ@Wl0@s̟Y%P7SB՚[;镈>07 f 4`\PK[F蛊%i\mZt$QťƵ xU6VQF<_xUb J0f?#Dq>ɻBEYw0Fuo{GoDy> Cɤs:0'Y $^7˄%n$ͤ#KHE#Z "  _Uh*(S<.X&[VSkY-,<*f]SX?E"SnӸ~V26 e en4Xy/5 fIR@LQөz52#;@gӠ4)E N=_WmY% Tf}0 k'5mW.5,/:Qg"pDxi!$tG /{O בy< <^BL540TݿWn5~fn4BydQi`l]c9Ns6sǠR]rHa;KxB`aldE3 Uq$bYb@Wĺ}\xhnn~w~xJ= ;v:XuW@dz OH \]=G}r:ZB[G=u*@alOBE#u? "pNH2DDnʆ"kʵb1&A7Xíp8p8م-rkIENDB`glances-3.4.0.3/docs/_static/connections.png0000644000175000017500000007107514432156570020626 0ustar epsilonepsilonPNG  IHDRSe_gAMA a cHRMz&u0`:pQ<bKGDqTIDATx}w$USU7Naf$9GTD#戊gD"Y909繡ꜽ?;>^ߝ}^kBd@ `4wxQbP$ X@P* P80-`tb  %@ɂ8X@PnjTk h2P!fh\ŵ(4+L ?yc1&`+N0R1 HwhZQ>gOx) |Lo) PthA `@0Nq`۠7>-⍯C*z ݤa)? v%IaC!o~y2T"P(ZBg'4sȐE틡FFқlP  Fw0x?;4,!iCNڼP*b (\д *#\Qph h\^^IWӗJb hQzp@"Cz  Fw7㷜/r|߰5]%(F+-(b$) ŞԴ(Grxʭ< 6 !C&2x t65{!e -a1d<9l>oco>os4=PJRMӪP.+-yBt.|Z_6OzrOqs24^$p"Oslo~ob0Zho:~i(~a[Ƶt| $h/Mb <6-T6zh$/GmQ>D4Cq\.7l")Kꉴ?:qiT4<0Ale ȝĹR-'F`\,{ g& "g-00660L\גc8dPc0EB35:qM@PIlGQ!8[ % JQè5e` (o lhh7a-.CZh ri&4a,;DQd8[IND R!b)"րH, ",%U\[Xpg"0[[ G1IaEI0si.*8a@Qcn Lqj'I-E66^u1`ڳs1` `D )L-`%29M|6/)fpqH "XAS)Fj{*$š ),qnɂ (>W(*@dDJ1ހsYA֊JA!X T&Z @%H x1q A!*F CUBeeԁ . d h3AJ E %Hb\5^49`ST*>w%#  C pyJi QeNr X J[{8k Pa@L@4ı!UU>/&/E.3`kEeP2"f'E1EJ*РTXS!8UfBɲYU}*8D5$UqH 6EC.WB N?'[4*VeYD~Y7߾ݶ[ѽz͊z7b; nvŚO<ﻻR Bal#<4s\iNɯИ0i9nչz岧o>8]YfTc?͛we;W'ϸ7rS=J_G1bWF?U-ܧ>QRvG󶷶Uڲ<Wnᆕ+W3:F+ vůNfB6a#͙3gE+Vodܹ޺˭w Nb,z啩L9~iŦc~}B0( E֙<ߺDž>wMK6ݴkwz9xì_`M69yϽ0V}1GB.9lyn{a]}=.i.~ެkD9[;g wӟxwַ~݂Fip]-~:d V$}k%4^xMf=#6K,XtK,8wp$ݬr}8[u ;s3Fs>ulԗ:;;wy?O ,}wS|3|ܘ{[N;$IoẼU֮A;Fz;I/gw{2Y1b3ya涛bJ[\چ^;&Q|v;z.8{fiή:-[^W63%0GԳS'6z "w^XcX^ss?]_YhQ])OO|c;'=S^ T!Gx>C 5CՖ~W<}~zԑG>l&A┙OV1 VQmoۻj{?O,]2t'} Է&- !X}5v;N0bF#SސD!2!˙%KFtuu)b 9& v'm9vKN{;ćkp@4~cFy}҅K%`9l&+V 6lD*qDK,;e#Tzy#.+qn:ahk|=$X `0$ryMQrU*q!M'mKgOI+{6t؈nzL6l&f)cY֭_QO}?@_XzP`Sho˾!0hkPpTmeזY8b <#1Qv0<`ݝyߚkE!@T-6I\&kT tiC>R8rfIc PuRI.$i_}?tҖ/ zb 9 19$rY6+RrI{aH`y$ Qc+ڌծzP=wΣKjw&y}+os~Q'z'=wϼ 0@ge_!_ZJ7K1mbc[@UBD=B11 6h/] ,g+}<@ \L UET>V,I!FI}n͊}'^2H|5@3=CԂ]u,tHy^co_\6|D\.h\~jin=%KϳzVCXjw٪,, Y__ \VuI6lD@2@,#-Qy7Yf>3 z AEP5k{֭RE3.==Vo~{.|w6<͚{<#>}/m-uM.雀06"Hޛ{e&khUmfGwdseE&0sgַ~ӟ>+BGH͘~^L._`ݺƨq[t]dي$D/Y*Ǥ`bcLww.T+q⸳C5k 9/OYr]RrU1@(`$.d0Wlg߽*Գbբ4f< RDQEEǰ1`y…FnDn Sdž O}ְqm2zw۟.|Yǽ:bZioYkxWuy 1*x( yzj=w6Nׇ9KY񋿶jg엿gmw>h h󽨯A`ݲ%wsŋLׯ_ OLqXKȲF(:wvO%}^[[t;s9kWns~{Z#XJ 4E6ˤ+D'l&>{|EKoKz|mѪl̘Qm/.WGiڛOO88uQ\r_&[7i8˗od-2W7w?jɂۀ-f]yCdڌ>{zׯ:]M7]jմק7JG7;]'1KZ=XZ[^46*UeUz覓&nV̙1ج[Weq ͽ}L1|H'\|Nֶh1Y,K{~7j6h9fRK7'}t]~n9a̤I֯Zꫯ5<4j(y0hm=vt=Kcg7l'v>77__}ecGvИMƭ^k~Cσ4kx>#_;;TQ#Y#x` h6"z_8b0 ht;96D2HbpU \-36Aak]L@"*DllX11B#G KŹaw S[;Y038؈b*HTz ڸTTFa],$ ùRnWIBh' ,n3I{q' A&Pql T zoio &06Jn`,;sp GB @a+uA!8*Ip!S @!⭍1KPP@C)bJYAP lQ6!³*B,>bو#Rcb"!:d l`@]TSmk?h]ھn.R8ޜiF Mx,C̀@OѴ#a頼}A jjӠe(?5e6u/ ,_)RqbfQXƺoeABcG&ϼsed:9BdZd /QdCg}#Z=7 2>CUY=rjlɕ,X[بlaq=ʦ'?6[4A!P)KSa.*N Jء&0uaCJVP1If^a +ŁwJPf.r-!+nPqA>4[_Be]{zo?M9?x箿7{<1# χT }^Cd&ι }{8+4RhYގ=@bD}c|M6pdTb E  ES$P&f¡Ќbhi⍁ Mm?С/4i+Kq0˛4dmYVy6:s{RygW`y3f,O]xG};ߛ3{)v}y\sC\Fwg~$r"={w>Ԕ^ XkǠacEН<^9u¶UFpګO̜L>}UW[(Fqgpϼ=?p&:_w=?wwxqm@7+uQe0ؕ0C^@ge@npqn~?q2lvRѱa{ԌJw7x -o q0 ~}_xO'0.j|w|g#Mw~K b*be2uHM-XZQurhJ/lOo?\q+;rԄaH޸caI??叽0'kImMRA/lkl>wW^sg|h\|"8c>}{+]1epA,m< FboV}ߤ Lkk3u-OS@* nk=j~Ŋtw)hɲeIFK_`Ɋ6b}6 MG8m.u7e ֘jFח,%pf=/<%= 1r`s]:oYZ[| m't/|g~wy8=h}D٣//^{n3^]ܗ#ll<-.[ 3g]r$}G?,o]O>=4m^3rXXc\l ND$ߴz,H@# Ģ^&amo- 0\_ֻ|[pS^7`H$F-R]cl:nܸO~ß{A/9ˉe SϚI ȄQ -W*a>0y~{qO -/#Lx6?O}c̨o?H&1/_%]m]cP s͙n_tU3^d 5U9vQDe>FdqV<9>7&aF~%X^c (#u=˗/ n@"}g* Rz,X3lhIM2z.__"̙;wWu :={e FMZ6|E`ؚj?U[=װ{Ӭfx٥K,j $BO,O--'VpoJ!އ_y^gx?yq~Y4C{VǿoHvK3?y3f͘=olg"MCZcޓEXe>l0{i P(nl&?/ B d LsD54WqlħWBkGHRKyB@?$3 D 9ZfpVS̪q>jʣAc6-0Zh_ r@1 ) 4 v r @Dh48PP!)[,d0HJS8 ՠ@aQ(D@`*0 !#A am.@PH&R11/.ޏ(E"/g-Q.q+ABb$|B1>78PcgTrZ)H ^A ؅  /90[ccl ip8y&%Q{j93 $&֡E 8Z[f¿2Y 㹠BA=+?0AnLsQ^-,bJ gI <;TeUR:C>Q(A8f(x2/RͦPȠLPΦɇ c4}ZĠNDzE^r[cpd:_7%€ss.`y *lsAE 4S5<@5xOlXUċ/wVV!R`X?sPBh} ʠfm=,@=r Xk436`#}@2D׽laJEY [ r,,y}Բ QJZ  iȂojqarx/xe}$b,+8K!ZWhES q-^vCym#®104Dgi'S`SD,{Q8cxr*6BPÑ(H(ϔ jos25GBTT wl[d)9|d徿23c$93ϟr[h$!sS6JQ̾ * 4/)Cu%r6jż_ 0Ph)wSxB1{.{\{ƎЧ"ɦiooaz__Z*Kȼu~^y4dMO-CJJ (oױv۷}}E:@PJwX5y"%Vֹ֮[3Zxsp3QE@!n)Tn6=&Y)VJ4Ag9>^9ן}drQc# `k- *#u-4 >|m6L `@2lĈ1c?.;@i SycF( n2i~{mT"k{0 fqqXj_J -! (J>,ȁFV z;o75:8|ΙV4l`6[#$4W3gϋ.16`I BFTl44l@L>Wj %M d#c\ZN뫍$,[T7.X(β=>ُvϧGxٷ1m pf_X݀З5Ϙ>g=b,nx8@?0nΙ5;C6l_x؉Rcx V@TꦛvzLw>VJ]L{V,x ]?2yRWwیy~wxg_7ܸ[d^]xϟ?dހÎ;3Nmg̚oW2w}>,c=&mQ-r WB$W m&6gx)Wz6e=ߺ 1M ȓe DPcup-:IwAI>C9s_9sQ>+$z->æ?g_]P(md"v;/ؑ~ǻg U4&W]˞aߣg?[;'_Gя}hmvWo_؃j5uu W}y«~{/L|G?sɇ^s^|iqGn9-+1$Ü WQ;r޹op}˟|ꅽw!Hsyt!7mCU:8DBvͪ{64 V{̗_FmdMcAZ B [_x~ճ5kϞi_h>ź@ ({XUNq-5派dcRLYXmG 1|\(fu>{+#Ǟpԡ7|W> >5 y-3<*]77Ə߲sdMzYǠX 0iSD pG00 "R yĎCZ&1eP`Zgm_cNXF A-BζT`K* \1{Ԭ!9EgXW`]Iw/|{5bČ=&>j 4l5XmdnGn'lƟwE|H::lmkb#{uS8DZ?l2chv8@5vw7p}Yߞێpc"2ɌBVȪȃ )-e:a P,9VHBDĂ-|<+܃Q:kY=m;e@A}j7~0}|_H DQHm^T$J*Y+9فZUQ5quCOQ%ZͶC9У E^ɘo}/ԗ/D5yV]]ɩȂ,(Y "(U֭ZGBlг&mxn@~`e]R7Q[6XYpZH4OƮ8`wn;o{uS<ۻ>J:"zP#WO[vΙhY˦^tE 0z-s{syX [1X'A+JdRֻvE+i/v'V[Lyuf(u{e %F)xoX` GGw~#I,#;`xW筷 Xmrq/x'A..;i:4}ÇEL4{zω;,_ѳ-j9 )**S711c뭶`2{[50:rsW=Ku@#u,X[٤ s/Ȃs{flƏtvիi0IrYg ]Ovwy嗟|fz¿*J34E(E9H`=w FpX6Ւȧ"e!jrQ'\qо9Gq;N9_7rOwy1q=lP o̟w]gnYxg^7ᑇri)L^nuW^~đ{uFU,JCh7 MxOunִY֬:紓8 WrS^cr"XU ԊeH٠\a#LB0@XBl ,X*\ 6H` PlRid@*Hpt1 pbEYVh9X10 , @`k P)E '39gHoVu,C SA7J:afG@lT֪8 il=A0[W% DT孳 S)ylTLQ6_,@1ؤq9hḎHTvK8]ڪQ&gہJ[޸"Rv[ \BTI:ћ \u.2芝[OiAE 0 Lsjpg"C:4kಅs gabkma12ߘ,`W8Lp`bG6&8)zfE= I}ITiַAA r,G%U: ,1\Ka0h.vc EmFW } Pu$Ҵ)X~f08_A(zl̢*ADa10\D2 , i?36x("TdB$(FFT *)HCudMF-7-},s8yc&o_Zr8Jꤵ*9^`]]|n-(^IP" T(YlHD3Ec䅔XV5Qd ! r"*r$"sQ2 0RAf !hWc" .Ba WaQ*R 8CA⟀ K/*e@C,kA`mf.a . E-vBخ9$qB45EA $@[AULPHKYqB"&R[U jWF8΂(HYEp@,BHԫ,p,! k)Ue $= O?{i#ʇ˖*jUD,g EYqaͧU=ޮ ꘭40 A.\^$@b,\QTTP@EAPG[^5/B8W5`U+2PX0*Tc4f*VyrmF݇}aoj֫7` (rLUPAD.IŔ ;H$+U,XܹX5I~UZh MY[DfL 8QRCBI2&Fh: TLɻŢ("8.wk ͧ]a05 "g:{7iM!yX`m1Wq pTuO=/M}꫾yK$8nCz>`sUtZ kW^xo8$l  A;vHQNt0lHՀj,G.5`Fz#d 5k83qB0AsF<6c-,kw As0B)J[mkK* *Q=}q<'fFZ+"${&J TEbA CbMh닿* KOWvZfM\.Yl3} -O*A֬୵^YrK乀#0oL%B(M*0l!(lUgf"2P~<^e )UJQS9 =\45qBI5c@|< Υ͡usYuK2}B $jk㶎3O;]:cvkSQS^?N9o\q%+I}#[p֬|KV_f;T ~~U?a?=bX{ue?ُxRkGtO6soݏoѕYd@jr cͷ{8_;O7TS^xҡki9sًg.]՘mev7TO^pW|G_I!ǟɨFqcWЇ/:F:qWBU549/z_z⤓O8~%qZHJz cؓ Yʟ`񋗬sgXg5ʺdUQLػDq=5~N߿|*o>~\[ͶW]$m֊Ev嗏0zQ;|&SB,[] w=Bo=m^vg{]_3AG&`D9쨣oyŤǍrj,cUWW;O:-Bg΋>|ߧv;n ߋoG?ӏ?+>d|^D5ظg+( r~{v;tEF;'gNp9g]0թ/DliGCgTCR 6>n3a>hbU O})+6 vŪ_|X^&!y $Q>b!4S^22gG5iڼڢ ny?,DB#g;W6[зrLcV1]#V7 8;wӏ=b鼜!Uc$_[{_X 3}=x|ƌi_n.0V[nq w l?䖫iy.9Pd!̽5$! mYOg9AH&NnkdS[r'>U 8uħ8t6X{F?y+zH@#].uLJ;~GsAr"Z/lDYZɻ}ccĘú`/iދ|Ƃ;KqH!xOwwYcP=*bTmffW];rm=Ǟi``z{V]3|XhĘM&O|߾~i]I+65uj2f̨ç,*xŀx盌-@sg/sO ` BAVb^: e᥍TUsfO?k3g𭯦ij)5_kXkcJfvΩj@f!xyeXEsYpN:C;胿o͟3Kx5Y]HD 0,0,$0dK:!﫤k{{kje\xNyjUhHL&i -=˽!TH 4A% 87kμӯO?瞟v )'+iP&IT Dy<'ϟ7?OVfhcFQ6ǻ>m׬. Ǖ@I`p>o7s sMSuQH$ Br|GHȜzU~ᇾ/}٣G:wpVJ^EUX۷̙3o9g\<ŵzVmC3y](_04?ikoo^\A [PYE2x|M9)>&׼?ytղĐ7<;}΄lk3#6*j𐬱V_{ڻZ:{gzf&j0IG +ȵ^;r2Oe}>/* %K?w{471H-Zro?']^iϏ:we+W_yVoٺ5p5e2]!eQyqo703ꅳo=%ygXڪY*ރ5A=ϤCiu- @ʜXxo:=z|Ѳ5ƶrQs[Ly<"<$qd;| >?~k[PB_괯~ډgkFuuy_Esv]~0Pҕ+}g^數K?hO\D 2̓;|O.3_+h;x[6}@,~wՃ>Sx \5y}mn|ϏZ.O:~ˏ),Y[nuw9(fVo/WL gkz֟r!G_%Lެi~k:wvzd _]bW1YEEVWP'W՝Fom;W/mYTy/|yg.J}5k !ЁrL` k"ĄĥzA!m l'\{Z>DK uE# ] SkwzuY`IZ)-¶NQLD0ǃ;dac8ÕB"n+qIdKn3̄R&m gmdq ,mIf mZ@_>pD˰@{֤8a0@Qi4 6lRգАba5^ kBNHt/ g)9XC.JD ),TL-"y@X"0E"qJ @g5J( 1h`$F(E ֨5F:+(ԋU=ʦ(̭_௒iJis5YPԖ$\sr0* yRt@nKNQW(\(@ aXDA6 bc5DЂ@kl9 lA Eb>@ ' 2).v,*&)iI Ak&€!d U1L D֩1Q!:ダ.vA<VaEni[[ʐ{P0Ȓ Y acrYhP dfR(u6e,ˤJPݰĖAQv|QCIr+.ID*l$*< LTĬ+RU`T dr : GΆCA6(-0laI|3!0\ez HEgm^-@Ld4}rZu<`FMQF)-oM\ 3E*J`iA%ƶd(5Rc ac] C5C*S0/)D`03 HT ?<( b쁬>gD"q= aCH@NUsD,E]>+xIc˦LV&UBQPPL K*~Zp<|ŋh-o0 BEC*xJbxJ.N'5iP`,Ø"բB[kZÎ;%H.Zt,.FD #HP&zuA9X5BeؙoYp*B0l -7G15*P%*-8Ci*"SVHy[ 2 Ratj q8J;Z6LsSz=8IEPINBd8kƐN.B}Am~nG )`  IP~H2;;=vٮR:F oe-#t*u $ 1s"P Dc" Q@hPo><͜7sƜznk/0sܨa (ۀ lť3g A\(< dyC,~0ш۷rRd 5ϊ2!dp-@li4@`.;MuIú+dEJ)T@TMT:sds!jB(ie J鉶fx餲\r֞3oGx~]w('I 4iFme_}N>-oc>s|G?rќU+DtDSg2E ʳdA  [ljk`2օC)11BDHzsXp\aتzĚ9X3 IRaP $kOu/l@$mD>s!,H( ?E~Y!" ww=>ǟg5c 906Dѹ|5oj }f8kz !d訓O?أv~[GE:gϷ2ra!?տ '^~G֟?G7.'Oym'|}0q.؜uΙ1۫/Ϟ_;q[no\8땻n 7S64ʙEW92Ǐ~j*䈓OylkοBѨ g~IEcB aFJE 9pBN@T'9}ꓗ}rhwGz7,<@%xd94ز m xq;.}?y|ww5y;㟯VKVsg7+_ng}>پn {'-]u֙g#_8A51C_֬[{ʅ\=/Ȯ5k{뱇{ч߿x;Cu߽_K4g!z{8}+ʔÏwZX)>@?Ƨ^znڒy+fY2c>VMuXp!_ӟz:Ƀ7UyLypˁCy3=mwy?=/_93[d%^AEjQ{Ϯcf-w?ѣFp^]+ryyGs uH3( 1W@BW$&L\1 g$"Z3 E~uߺ]gWuх>ཻFvX>{1/dB>sYEoK/|z}W;Rg/\TG9K?0:FSIT)e-/򞸵? e@R78V3k}Mm8d9 AsvT-bLuہ8m9 j#5f/Ҽ:l[;J}e B2f]:Zc+% Mup_i憴ȗ[# bDnDm|ٺG߽iGo2+_#@0 ر*Zn o 4z>ukW/5oBQ3;dbU# EZ1xLo8Ǥ Yzt T4kֱ^9B!eƮ 9@mFd p#&B-Suno͈{wU+H‰I"Bʀ;d|I%AY ZG5 y;<5+Wb㊊aBFkΛ>ghk9Ķi k/\ǽ#9?|}cM{9z֯?x{c=- `Z|-307Giyc駞|1뷿?8DCFl.KFSNgƺuWZsӾyz͟?ke=YU?v ~gMyuf?j+h `(PjHA2;;is9g1{/_ř[I5) f'*ldJ#@ SP(hڻ# KH @a =$#amY *K`"X"#b ,E`\!FH*Yg"5I;P₟k4?h&a;JTtTK66I kZ[-#ASg+ W33c(QSk=e~35>OMTQ,3lTrXqq$*98h`ŴE}0!5ak3P&!@HB!!x1zecr!/[1%h c{ZXR Ș EM.!!!ZW(Wj D[#o)T>FS S<Z6htMkRN6Js9 VTЬ=~ *J cXDcK{Y;5ɰ-ĩABEB _rPFa<\P-UZxeBD$-XùS%H,*UT( 50Y#`ڜG\+ JD;Cu@f"M~ש- KBca|euL(Ģ rb`L HwLL`KR$W aV+娬0Eznq褌`LH'@4( [W `"k1aH}"X`ai13(wГ@WҜ7(A˒a!x.Z(` XEhּtYfHTR d 0sqۆtR@7h 24Ή!{^5 *p ]KP1)$ 2#UQ(吀sr,'@$ P97PM aS#Y$1;vE$bcHBoV T@;;Kp@ & Rs 0>E9( RjZVBe:-I5ڲ 0au5AB@̀@b"-#BCapR,AB\gsX4( D dҌ %1BKS8DI6bVBA -X (bJ(jPxΠ;I1G" cp0>HXٓ52yRD&@! TP21m.(%-@ ]]P4dp,5 ( vҨtc8 p@HєS@9b* ; H #F%Sh)"I22@A =&&k=&B@$^@0E blR6mU@J^g@5"vQ@ DRN=U L&.1X5D$Ts thoa-[:D,B70HHʬ,ZG@R0 xPrD S,Uq~I 4'-5WRTF ?XXU51ƖeFF9 hg@ .ʨ 9[v\0Ǣ 8xc l@"q'(|P T, ;M 5W`TVa `lkoZ I%K"gly7 $=' M c_ؙ3AmyQQ4g@S8Luf-G6yeZh U&F/2N\xPQ!'b9W(h Gwi, 0sὲbH@`R`+T̓@,șBB&W.ۊQ<\*0Ux*@e(- J;>?Oj}=Մj>[w!LH|yXUn܅ BBbAG"/\ڼR!*g/Bf0O׾zZ35yZhB Alo [۽v[7{C9ջ:-;7iG/{f?"xNf ɖ,[;y+eyP!xUBdtM])` `}{{٪&`3 Nv^ָ)Yrߴ%@&\St֙}9 ^z >sGEH:f R` >{BmF #'X%crΎzzGB<̾ ̒lsmvأϭ_-'a}xyMV_c&u> 3_Knл#ˋ1ƦG/^8pgGw\`mωKV#0an朩Ͻ6}rZ]<{#}۵J+:oÇk208}[*]h*v8~4}5bpY ch4s Iu{mP]Rז/?c^ Kn9CvM'_{5?ϯpG_y$UK~O~ U '6Q2{WנX4SbǝK~"Du8y6/Xx9OkY'n6&՘@Z J F,1k͋`blY:j\uk`<PVgXkKr{ H#0nVfM=7t)|.nFa\5 5ǝgLV:&n: qOtARkZ@$X2C öw8L__QW׈KsooUz%ݝ|}% g }+]lm_GRm,_,y36]W|#\N;wo闿['{2IG}?w_ZfwnjgW[D$&BA-֯[ĉU_F`9e/xpB wk!UdGMQ[.41B" B']I_y1{T_y'jP gXf81W91eY!yBaC*5kf\ydiWFмlWV2axo*%1|y0UG"!?~ g;~mvrC']kui&yX8bkO}znap q{鏿u൙3?{Q:~k}cUL}VL~ZBezc,=3Yo>:oRHQaO'Yn3Ӧ=.3KkvW]XU  ,hчnlE{[]_]T̚gaX]8M]nXAEDPj A+:zlŶ74rQ"S1 ;ϢboyqΥioM:Cɨ UXlgRTFy>#l|u0rM6zkUH?(1( nloo;h(C'vwG_ǔ'8Y%! W_Qz{׫$BH[T6:o̚1ߋn;gP W>]gЂAցl2ᇧs8_su㜳X>ѽ-u<UKcނUK3Ot7+6J|n4~[,\ HĐ`@(B@@Y\x?d "`9*>`Ǟy6 *Aa 6OBf1@ |YҢ1$1lG/q{m+.c'{Fb@P9 @2i[lS9̙3gtQ6 !ξϿڂ»/k m4#U+ 3i(r[1kT܁{o=oa0㹹ǜ!n}3ʸp H5x&,bs-E7 EKRX|Qf,NQszAkb]9 _!mUO=uXE)/ (WA0÷ʨ~iQ{G =n>xہ߶Dj/:ݙRg Ãk@"em3/ q3M9 8hH,r20w?P n%/QXz٢ET쬍Nk_EK^}6K,Z{۾%Q=%̞zߺ5zԓOzmm%(4٪am="?-aԄh bd@Pp II֓_ e^SwgX ,Hr2hۨ# bt^jYS/@!H*=$/\,,__y_O0y{nnR_ejY!N[w ۨ& P Bk!vZn̳c{01 HEAY;6:V~#t?~uM[bezUe~ʅ=o\z'.豧_LW,ӽOvʩ_ƨ;p31jtGXv7缫ޱq+7-(o=}vty1is0aw &o5bبO=6{eFVOyu @[w]ڜ!_)K>t?m[b<3qv8pT ddkt#8c$Љh8͒p ){~ETm2p /@ҳ % 6dm RZJ@j4sTu(>j YTӞ˿}=+1N]|M(z=‹.8s_Lѵjy'^kWC# |կz¸~w%k]vIok[fgΝ\pƙy>Y1w+AٷH(RLg|& 詯{<<`Qv:Eߪ%ӛI2l%5l PPēOі~|{ 3Y91X S}=+ݷ>=ڇ>SVlhܞ[}&ːlBu#N]"翷ck).d"Rl+3@i r&=੤Go~+qeo Q!U@su-8\ {fMֿS#Qo0-g[[,h& `T5~˯C/I$<#h$hqT_2ZjlIpe_}6jq]{Z,=dHqFon* _S$ .sO]Sm0 ffe<^ .YkFdFkmXanL\kB\=,_= |S|ILײyK7!z檹U "fp5 c]lٌI-w=> sss2R%tEXtdate:create2020-03-23T16:19:51+01:00dlz%tEXtdate:modify2019-11-24T17:16:04+01:00w2IENDB`glances-3.4.0.3/docs/_static/glances-responsive-webdesign.png0000644000175000017500000107542114432156570024060 0ustar epsilonepsilonPNG  IHDREbKGD pHYs  tIME 9Ϥ IDATxyxeWy=HGTRU6` f:@$\2tgx'M'tf:M v$`mˮr *tqqґJݾvnV>^ڍ^ݿ~=V;[󪴭h:]et:kz zblCiE5#z ] cyu;}~AA+mȨeV_Zot[oT,V?y~FixhCM,2Ziv fGb=o l_`Ôv:&:y.AA(T{稝VSZ6GWo7}BE;ٽs*{ǧ@e_wYV~~5AA :Tފf vvtJ5F]!Uؽ< 1A B~hqC+A2^KJOTCo)|=YaY!O 0lkdw7/ّ;,cs6)ΑmZYX)|@ޤfRq{;"W8t_%MYsJ۩gs>/A{Rmo:45Jx}KjJy~ eNVoP5ՏMgl;#6b;{@G~UN7ADM鎿w4bgJf ;Yg 5jN 7R>;[+yq"]qTκwo&TUnPL&AQpo{s% ,/cZ;iVͿ&0 1$b1&$Y XY$\NqxB1ҳ4MQڦ:AikqA /(I!ߠ?AAADUUr9Y %0M+ȓ(&tӀkHRHYrj͏$Z,$a Mסi24r,rE0j* Ài88 !?}@ J$Y(eV 6.nVZ MAo|RIiVAg88i@U (t: p 6. nV!ALSHHRHH$H&ȤSP saf~f~j4j|>QʋFQEX-N'\'fn/2AAQ>C*B:F*bi=h3]Opfd(e" B9r67EHW* S@ 9;U|+n+fj&4h``H9,&@%m6n yƨwn,.7=P  |zDD^c׹a^3"lL,ntnCL $0M#J"Lbs}cPQ+x{Ȅ_0aBu9DO` 30ёF]]hM"AAݡ8* 0iaᷮiHj$IjnǠw{qI}H&m DSr}_MӐH&5<`add>Zm};7  ?t pXs3䑻?T Dn{ʿ BI&FX[[ExnI=EQHS A=N"N^) }ǰ8xi Lbey+ SqzƱy.Pr EA8EXm6x<F0=3!|#=9n~LDڮr{8mbmڸJ1SV)^'JqY-|7vhZy~͖C2c(WֲʛA$Sg'P]fA쉢r4MwY׮e;CdDIbp:\8d8t]7B|X(9$\s,VW122z.BguDKz -SjMנ4RI~,\^0==)ݮBKAlSR)d33iS鼀әИM^r" "l6+6d4a+ݒ$`E\.Wh.XCQΡ tMCNfx^ M9?8714ׁ0}4MDa,--bRNc 24r2}84;)OL@ee' E! LBM0R,Œ1kL 2$Ic!Ӎrmٌfɇ+xu4 ΑH%h CKaza! c$S$q,/ЍkBI4NCX Kz1>>qXl{i!5AA* ! ($}n\nm + PsArȤd2u>H Bb_ȤX^Y˗!"+ơChiƾ4x#L0 x^$ 6ut +0M6_^1V<00Va$͒k,G5n/D"]Ӡ ]Ǧ[Lf#AH\_ Wٳ/accL K &B ._q92) zxb8tF z] vIy~[u!AA\Ϥi~ɦMHۃ! lA0>> v>/H#cllffC5(N{`!c8`s[_ 'N#XOiH#aqq\  *kMp\vAĒFtBNn#C81|drEQNH$ !޺Fޛ \NBXZ\ĉ'q|G!r9$R[nV+%$ "a}c=,oF 2&30V+$n100as}6+l`sT ~&.ascc߃rPYe kyf(`,?sM|=[ST.-\Οp/ QI$HO)IAB!~^ &z1>>~{ [Q8VL/"AHt خEŅ `Š׋1rr= L,9L24 I`-p9p:$ `$IW)Vi%EU qpg,Yui$<;M*Ĺ nc[*Őǯ} K108H/ Aqݒ就T"7Ad0<4LOLbyiw7 +{A?_8P{7^~+_^gíݎd"(B$X-VXm68Nx\. ;p rCD [A Вz0|REAQTd2i$II1SiqYhZuqG ɈF#xU:u+fgrS =bmll`iy $ S8Mr`k(7@!kd3(ԡ: Cb" 2,a6v8vd2VL.X,}[c?s?|ꁾ`^<~s_i$Ή6Ev.xx<x`;t8`Z!KRq~Uגݖ H|<^viu D"xBX)F' n v*lZt:ST5m`q1atdޡ!\n8vX,T0^]vdYbLӄu d 677Fu8^:"n6>|$[\; "+-0 ߏyz xهj~;G^i%a1 ,//!Y"ڨY`|baDQigJW(^+ RL &7˒;۝]XͮŢ ):p>SdH^'_ty;18Áuq蝏alS4 pffaxx6(#, , NFFGq1RIA`ӿx,U`.m^USx,P~;LTUHWFL&i AAAx4MÕ+Wf6Frall3jtSǦl׾W0 |뱇LމpKxK:=nW. ?/ѧ|X^ZiƝ~ b>=Yi៾zr鸯?brj /O+~whiS^.w~7?c=zl_*b"V(TI ecT~ν3u5}ja|jSӘVo {,.mß@՛n:Οxw;v 6[~iX\\D8V++AqcXYYiHc0lV[G| J LĮyI׹ə^k |uq}oV__?Xbþy3A#av v3.c}ew߃af"03³<+WB9#>V1>>ix!HRi}cǠ9U,-/ [[-9XG*B(]whWB)YXZZ7``` @Z_9b4N',:X <~6|2ÎC8dƐ<hE!0BZ2+XMAÉi\ˉswcos޻|H՟-VOޏﹷd7s>IQp9,,\x pdik/~3Ogq:#?1}c|l?sǵ?~<7+zg|qhv._ <ûB9|?F/G<Ӹp}hziy<|#4n7Giԉ"I;)L;%\xH6V"Nj/t:׿ X\\D0Cǵ577IA9VVVv^/2cF5U|3-3 0뼯 Q[v'\^ċї2u awHT0 IDAT bD\mb9#9uvw$c o/ixo+Ͳ@x_-}oU wm;y5=\}ʜq;m7_xۖ;e=i_'<`c}vb{^5Mի-&13s#'l,LLLbllsXt .G";ip:pE$ 9dIf2pf`A}oF :8jEVM On=CƝA ccmxmvx%y:ρ76M Ӷ{, k9=}eK>P}݈_ȻhV Z/h-vRm{3F}?O៿Q9l{,9onb2aߨZmc1==Aw߇DQ1sΝ; 41QM{!EWVVÇ  L&2|؊*OVXl6l6[f3=}hÎCx0cjcoݘ>o@<~K SŠ_$Q`vlƮ[cX_[Kg^lKgN'&KVWpR1wǭÉl6?ۑYf`zfKO|q/_wN L'0v4jۊ,ٗD}EN#cáCp=-? U X~D?I‘#󘘘Q>8;NX6<WRqu81ᦛoo|3ছonK  nfw;p]wtr2E Dx0@&fja~(a;cdX hǿxƬ#5˚9<<38K8KuDwyh(Ks8?W_7 3醏l=##+n}o}^KO]Z]oy^ąW~3ԭx/JnQnf<3߿ⳟ}ӛG~_ w܁}omw{ _**j L022Cf1{|}I!ݯ8μ"VVW`Zg/9.]I AAAuaC:x {fE,gV:FވC5S_ |jI#U^qw3vt9w#{ 0 ;aM),W?xb`z?LCoaH:$#G=c8ҋ0L~οrty~Q,\D"A1:6Sކ7M}X} Ë/<4܍~, .̋/ Th"ͳØ? (36 ǎ ^~e;r\ËVW 111ANAkHq'J|>|=iRzcg 0ëWa-*6Z咜xYx[8< o,r0xzCgNa4R|b UWk>oZ7s׽{g>5AQqq=v b,`>ox{d2pc:;*Պ7͸۪b|/uA\l*W4SmmUGIkP[3Zی%s;spz7 bsc3atbt|Nw!Xe<%hJeESũ4jn!u `UnvQgpE,T~!Kvp1L.Tn.Uoy>ծNx DI7k/l;˞i}tNS߶:oX@.r`0Ϝ)$I?I qv;gfp = KMA,xfM30)X,sÀcqwTRfI# w֓D1x f.͜\=_TU9]1tz BbO`$Kg^rd$Ű _A E   zV~^ոx0;;RKrjeð-63oqÖ!H {ș9\,aykG;k >$.gM7u8ΜyW./yu:7`t| IӸr2\Ud,d 0t69" z 4qR<0::}Jv 1~<Lnv, hG=6 {^Rɼ5ŀGǾD׉Ţx%0055'N`vvN PL-Bon"L4}͐fqyL(!Ar9lnfɔs{bmXT!20X"LMbPe>yvkvб5uC:30sy'(H?,^nn;W[2VW|"װeŸ9=2krWbmmss4JHAa`ss O􌣐;}3%0qnr[t#Nb"H ΔM=iT4r90V}m2n B eod .,'܂CEQz*T/^l6=< b휭b!'&zjKLK4tcnpcbLM6tl gJrYU4M$ ps7qw Z^tb0}(nSdY$SI EH$dze`{X]YA0ġCA{J&A0 Zibb|=ߴiȡ.iHLU6U  f{, Bk`0WΞoz ffAbkN0 2dYodaebccEHRTiŕ&HKK=AF4ll9X% ST38 S`$"a:f3$I깺/a U8].~ǫ04U"GvTS)3ݳ蛸BVo9 +׼o ;וX_;YgX`XP]ADf#psDX~ c- `KMӐI+0 FFjy!šf,pë_LNNB%hK.!ӌ -AXd &'{.A+:f:.U{?OkUG`;: Ө rA\+$ V+ffuo}q]8^~e+AD#Y$S)LLNͺzs3{0<ױYmI$\boSUxtvƊa&|}獟!A}b4߁-,//AD3~ v{`:Z7 ,gW/Ű=1`>Q)xF{a__ū,Bk [a_?K.! PA a-<`a 7yN`]٬+ uz62u0<Ʊt];Lre]B wқoXd* )DI؁ ujqM߳|%N_jY |X?ɤ˕``% ۡ@ VA.t0'͍XqhC>}5'z&\!1`-a]ic,&ﵧ]* &D0Ȃ `& 8~K?V?n*NHŒve?7q&~WggU_RsCMS^7bgݨVWn^:wrP)`#mc+gmd۫c6ҶW{bYɺQպNoĺo,x6^/cZ]dt=q|Oe<C,۵}ttמBZuLDRܗFmmf/淖0J Gv0-8ը(m Zn3Ml= viuL#egv]5̛mo8/o+&H(0 cWGc ma>oS[{/b>qNɇ XwxuB]Qrz=@kTU eS==2ARm$ևmS|vFo Z#ҭtoFʢ ) YilMYy zyn{:]#J`UV3´f5*ͨYKI|A RgB`{=V3Xήt0x D+8V!f 1w̃jo] %pq\,6Ō}'p+*`)2441#$bf3⯙)ޱ7+xnE5sL-A^ڨi]k'4M#n4!#Fq=׍n _Q֦2:t-ɩ8( »'~| 5V،?ARK wWw(AQ,y滇zRdٶQ F. B@R@?f ̝)W9 Rņz#4*ZzGw}ccMɪg0|mukiڮQ*~}SV[{'ZY)FW >8XL&ޅ_2RF(|8-\ͬm#oČ}k*/SHj^|fIe yѹr977`F0<2zlDDEXeu1HkxQU#팪U)<5E/ek[a^#a9蘦Y6]عS%vk?n vG-nOݽq09۷_,VrK#wN$q@m#x;͇.%/jj 7yNMƬ_?XZ5y~ :bgʟ!: @xk K1xC?`Da1Y>kDp*ސ7WGިdSΪs ^'mnqL bM>S&` %UJ)QYD-vaoMӨ:9 h7c5Qx8?3 cPKrR!ԓQla(p,ނrJcǯz066oX AH5駟ƣ>3g  "ɔF [5mQf IDAT}:hJכz}]e+^VjƱ)nU=DQ(p:p)(IzsҮ3v4~緛z34}ծ_KU"o5:W-5~n>7tN:sn`syC^|/,?7∪1o9M{pu DD"l(.j`dde?=|Wz[鱬e3ۿ+v˷guϏrZ 1! ^'| \UUK. /dY<>AQG{a5ov\QLu"n&U,jo}+wB$( UUK F+ fŚ=vѭݑo|5SJv >K;ۀ vohkw.pfےE+0 UU08̡21h6zU?TX'zfgXIhmLӄ,V ͆T<Ń>qZ @u"F(z}Jo3~I1ڮw*CvL5N4M?Μ9Ø0 Nl_bo 9NBrFOc)Tavxb$C>[I>PGvI&0y~@i|bc~ >vwP(Y8z=$EH c{}Hӻ:`"wj[¤7㸥^_ktD,v;r8z$tA,˥v+amk \N]Rf[J# Ts}۱G, `[va6Y;%9{J7tSi `xxcϧBCLӄn5o&/0 Xכ!A>sX43g;hxlD|kuJa1r9X,Һ]I WWO1==D"Q8O#i$P q-DT!ő3Hi 7`ZYpHvD'A %WSm^k?x^ &&vgNiA@"jC=/~^v#$ ?(z2eKKKXZZяF - 9N >0|a7a:B]šA@!0 @D[24.&&&aZgMii0 |v}ԶO=i?"!ΝN +⺑~'UھWSE~G ^z'$?rӸtnF]BQuf3 1᥷DUU$b1'28nLOϔ:AHD`&LWU,-^)>MUw˲\QHD bΕ+WDrvBl/VЌQמ\;!^olMӄ\ beO<9VZCX4JH###Zc#$N7i;{"egTn'}}om/I0^yh( A}{*,ַp7BhAJ#b4͆GS [}>/)a2Y/N~ﯔf6Gs^e3妊\6:h8LDU'3ߋzO<40X)4 0x>ד$IqtQ;s = h<+qPtO)C wCdfeVeUꎯYYw'wp]SRdBM`1K @E{{{ܺuk((KۻE*.&]Yn}|:y eY8Nm=Maxx4$ iQyfgVt7M0 hI`lР/6!=ݛ'͒[ ~_?DV؛zU}7ߝ7tc y3,IS7gc RJvnb{k6QԶƀѸ4h1ah9?y`ubC  :׽ul$:_vYl,Qa;"G7{q끪(899>(sl)Yc}}Zvka)mLeײ |B8KFJ1*,&Xi&( _XExeY^׈]%{wwMѻŸ,RsLycIY|phIӔxDN(0 r뱻{kg !d^RA7,3+!?HߧSϒЬJ,s_C}S.fZϕ1>ޠUuŭ3,0ׯG,Azr3jYXmͮ-lYXB5V}ڨZ^L}8`>GNo~oY0mRӷL_۶tY7w@=& 5\K[~ ʪyY8ſOܹibYF8gfkjye;ɕgi+eHsgmIV.*Pk*o\2[΢(5"gc7s7m{^ORk=!2,˚YgIfVڼmvf%6^7LkbnM=EQ̏gO0ml|3oܗgYUllz&D$It:EmyT'TWJQjYh}>ֳZ-,qy޳z/c8,L?s-WYy7&g AW߳|xN!syn ReIQh)z-)+ߋc4;]ۥ 5Y\Tl.yIpEmί*N? }0SU0 >ݗf}>qhht6e b9ώb6h(yctT[ mATM!"I8X@t:m*Z(J8{TUAYiy9NN&BLuEf* B\'=8A.-b4/h$IUDqJV "3e|o{.my:S|%{oBĢ C+d,H$QUEk gbyBSfssV=-q=Bؠu 6岬ιF}_ фpm&i[dqHZ*ڭ"j"5c0Y$@|K28Q*W_sr- OOa/x=&+J,_1ΉJ//k NخG+ |de;,+Z.q\͵u<6LT4taۢ24#N3ztCyhyNREE ȧJ1v{!avo;LG'X K6:d,+_R#Nwy1QHYUop]*鴻ɀ~=iq=ϿT<~rpãdlUUJ9swu]we WnʏJ5/$/Y1wvYmJUTeu^"[S{pڵh]*̽6h87ýϿ?X:>m_K ep]sʊ#O_TZ67(AfghQҊp2谱[m:5V _na!Ԃ\i{ iu:?pI2K\C IHVuȋz, /al =;mT)a8<Q diJnPAAIҊ8|wݍuVZ"{ܿ{3 /  p[vwv>nߥR9i9>yY]&ab;{O C Xu8'Jv!i |Dl[-66Ɠ4xA;wIBǏ1 )jN4e4a%n٠s^g2%XɢAɢf& #8*2\"m. ;lp}]gs(,(dB&n±$> :K3gV=mkK60$m$bcTEEN9E^EA^]PAC4xDpT`!nی1""GOYyg}w?<,o{t6F(;n" QB" RXlP2 6z~qtFom@!m<ˡ]XVI.5h^@ݮt #|8&b<[ɦt:]"'˳٪MFlSv!I2MUj^c,m ۩r.qpl ײm]()v8lt{=RLC<;dEow:^@hM ږ$Y![.Au,FYR r1[-z.2/=G͆ 6hA)Mas}T$-(#$bm}  ~P1diƲv= ,r^7m[`.hRx9llnM^TaHY)s6wv6x _~-k-vl;}VgncRi[HejX[gp4cPJ`VDA,Z g r!Y**_u0P9YgNg\L&3,yrj ÐxD$EqNzY㺴vC۝OhР! | , ,@& A |Z$F)8.Ԯp$,i C&E! J)T)Ng٠AC4j^8qhРAeL IDATe.r3VO^0d˗/)94.}hР! z@P&94 4hi@10:U^Pfɡ1hȋ/1Km>Am;u9 RENfEcL !lC#CRl 4h34bJ 1ϟ??Wʶm66X__EAĄ Ynz BؠFL3J f@4hР'CgeY!4RԵ*2 !lРAfIdʲg]Ysz)@kR!_SJyͤlp} Bg__Q':Wwť7:a_u/?ޢft[WTT:6X *WmZR,p $bo"]J]c),IU|.@"PFcY641uk۱BPZkp*e]`(UiLgvs I]tnʅnc'A,,QZ8iAg  PĘ:ш7Nq{QPN]"ضEU+j^uŶmV(u]EY1~/=[k}N[zV{pL٩}ߩf[}0(s{׽ޘ K7%$BeYF#cImǙNsg+Rfoj|9s^1)bf;o|y9i۲q\wmƣ*<(Kvl\EZRϟul8qKpWImɘ"9y3 ]z1m*+,!#4@qm4Ye]JRW-Jb{gq|tH!fsK(GEMKo8 T`nﰽOz`v Jk@z.r*LJ)j $-J(u.6| ݖ±%i \cxOsfm:-1FXfԅmM|% È(.-˪ ˶\s(J)&2@Je!ѪLW@Zzܺb(q\[-$*Hn=Hv?o0S\fs{+Jؽso7ͨ=+pm4bJiltZ&QJEhm^[Y֌ǣskNZY)1<'nwؠn)4I<)PVp:V^G:jUax4"Msuݢ=ϧ뱱g s&1Qeٜ.›\[x#n]rd<&IδyAam;?{}ʆ61[0Vg8 ?e'O99ptp ܹ{vx"MBk6ۛ]?8 ܹKBctؖ(58L0L^)L \狯fw߈²{3>KUOOQ@ރzƟןf0N"Soon0xyprEPv_|Kh`xBU@awwB! |4kJɐ/(;w_}KL>}>iVdY6;۷{k/SbaIA4P~g_ mY?)CHzoRf)Y^ d-dmmtG BwiwzpgAMBD1~Qrp<83>nǃ_ N8:>!%K3{>sf[~*0X]]4a˜R(':QT u4F雵iBdݭ.?GdƖbe闔m'Ƶ0CN#~QcFR)}^FxWAZ;G, q.Yng}iI_AFTU*Uqރ&ш8Dt]v:6`pq(/0ZqR`d뺗޿6h>hԽ"x}A-_ſ/PEt1lG SV{=^<_ 1ш>vU-!%}D389B[.kbٰX]TUAgqm*1n=Ѱ΃ǃ]٭u`ǣRT`Ʋ}o0^ݭmhy2'ܿ'xaa*M%j_xq81J1E&hOADoU˲~J$11t^QVyZԍ?2F!Y-C+\"ϓ8qu-{@QNl%r^I>$aornwh;XPUE4￧xO1Lo2x1)-\Ai2(lxid2$Oc NcKvq>q!zr]Ϟ2m4^A 'c r]|K {/& #JN7s) hR$"NS<'K2hB,`48њۏ~]4do8$Ҧj#MI?D.m#qʪ|D&q[?TY289*RBSFcƲ$YacK(I-kV3߫Qc>q8JNƤi9h<&lC*}z˲ɓ0B8.Q8(*:=߻QT'E&AMgNNPy* ?zD'pV_E?ey!Ms m̱{ HRpw^sa@J{ܪʒ ɒ^oJ){ !dk{ܱojW΢(%V"Rq\vvwY___Rt]68>:!GGp-p=Oqx . h>|xٲ=[^{j&5:Q=av0ҐmDQD4};3ZZzQҺpo%C>fU7V0~i[d JUOC&|lIPZ.h2~{7GS+ iAOW?>|u&i4goǦ*9>5^Շ(rc =5qr||c A/W$#?z4o!ݪ‹/s/={xOkE[zBu8ۖeq]<'INo[g2ڎSLc8>>^Ua8akkbeh6ze.#Gkw.woFڲ41c,s{ٹDW:"iaOZs٩fU+J[jj θ ̬&3c8/1b×NEޛ^5ZyB0f>_ޝHKmZLÄ͹[tf)0Uh7 a$ZJ={gnWݱ8YF339_;B"S9ACgKntXRrZ}DZmnm3(Kz\DR%]agg(y77.$~sk((|>G(>Gk˼>77 29kqwww_x߾Z|7KN\J0f+yeY π/q<|LTfmG HQ:1diE+hQI2x{8MTS4 |$ѳh7:{yF^6E1sȋ Ę8N̅(nG*2 c,'`1t:^ɳW{3[ߤ99>"/+llt"/R^52t7/IL~h|/h.I)I" sPZvon!@Zm*ʢı.vwȳ#\ק(2,ò$aKIes_˯Y|ۿxb;.w?HϑqNwߑٶ˯-T /;Iŋ{iQNoGJeDUd/,[w곇<'X7l3Z뛸&^'[%\x2Կ)Y )y7֚p2-c ve\u-sZZ p%RUuU091;gw5ƐqAmڗ.R9/ض,\]r Aa-la3 ĝReAEӧt6v{k}NbtBQdlvwf^1N5Gxa ^6:nɻ9 mc}}˽{E.6"p$L>Ƚp!}X! <ܫgԵ^Lunߺ''(Ĺ̪7BJ5diq-h~yh@eHa{- ~HTegt[m8uLK˷ N}k^[1bCQW ۶m{L,ec̰6hU}eɓ?-}g/xWTeYPTzV\drVnYjI;Mz{VgmZ#Ϭ?Q-.1kkֵ(/$`{.kPeܤ풧 YSO0leUvѦ`RL(f_G˲1h掳͝m^ZǤgJa6lFa 4i}P򡵡Ԋ*)"-{.$Sles ih t#SUA4%S8NpD]T8/KʲFW%tZ( JUtڨ"}TY0QMX40C&|? &sz~cۄ[ya` }!/r<_*?SǪlE Aץ鰱kYiB:P1Fl!("ڬM3:$qL ]<.b$%h1Ft!B*ceUI+r뚖eEX z08,V K 5ݿINgq&j_\ɲ6.Ēr +cnj'c,,˩lj^ZXS%97}!e{qJ100 &>R ӝNzkk$IxݖC8#gqhya! _UkkTyd8LFCZkLcɈ/ȓr>fAc:hYʄBg_$~̰, ˶Q8z^ٴ\{{LpN~Vμ>\E~/KZs;p\UU UkK)uRZ 'e)Y2mZ+BBؠEfe^PJ$c4U54ax+O4$8JP:'y?L?f:8ܕ22x9\[x{D5y׳DUx|UqrjF+b՗4K?2LwWTpmZa$0gZ)8"Nbٽ !lI* rVBsS6Ya.N^7Ox6_ ɯ'ߐ#tCxxqiYal]$$KQDQBO./VԄNNa>2 E6A%thqe8d٬5߲#?qkfao)}6wh Ϟf9mSdYaZCGP^Ef(]jO'@xń32[W.4KX3 ͢AA&)ǷS8ԌlXxw Y$/rTd 4HiCil:N-Îdwk3NN !nG!tAt8d8DRYeh$YFmF#LhƀtF EyNyoH{a!rLIi,+ " LCf9h7.JYhxB  2Y?%an19=~oGbL E WiƲ2dg}IzMyM:{YY|ZkZ1Qj6r">!a.# i4s]m؆7BnWh+mҲeXI_I/CZo`5:.A@4_q_7񃷵C+a?!h4APML&3=|7+ssޅa5nm~<:99Z 5Ygq(F/MTm]J'䅢7aJ`!-85 >'7j`G&#S Au~:eLx*ri4u, rkq3OѪ4[].8>;%H,#  ]._e9r/Z8Ш 8 r-s8BGR'("|/򗪌JZ& dF_;<lB\d%BfiE< \Ϧ|(ĴL ˲e^C {W~zS{*($s+ϟqjBEN+e1L5q+|!P Qf4,Co$yZ1TIn/Ź[k bd&_jYsx,z $R@񶐦I`<. V$I,$H9 |Z[ɽRRk1H(,s޽$oZjg$rHC2m,+7kȟ[Ee9'^hQHA-&̖SĔ\(\vjn)S"QzW"C^tBK8,j!$R fxLоОuڶbO)s.BSw"+T A2&4@4a/, l-YhRY;ꢗQI_xt QC_6^2_& a! ^),-OG(.뺕-R+M (|y\ E'^ik )Vb,_r-HuVOS&bQsMi8Fz㰳˓o.{avٔ^OӡV]9oyNܔRbj+p$u:5K8QJ8WޗRjY}{v^t:Y~$ {{t:E?ȗXQK:kkO$N{4(/UOE<ٹVXCݭcRA @)%~}_ +DAj9ul%7oi(&R^lAP,űA{_QotZdjccs!_(g۶Ѫ(DbI|s-^HE7$L.ڏȋgySײU-mr lLLXiT)YaBJ̳cK$Ah4# ܦ:!H $vT+s ²-3[1dZ#/r|X\^<έoLLo:涹sujjL&c& q|ki9ka.lIi!K¢փmjNh"/5̳RcRv*-›j2͘LDQx+^A z.ٜt{xۖ"rwB`YV}zKAݦ<׋:;X&^V SR)RA&o[w$~ TQٶI]k&J9.;;;GCӲoЬ~D^흇dGѢs4FJiHZ<Ք1OP̞[8/>c‹ ĔU+YR/BK9;;ܤhb&eٔ,6"-AKd[FR;0}+AͨS7HӰքH^). iq: R? (he΀A,+tl|>'/yjXQBdԭ0Jҝ9A!v~InzN+VaS3(-Qt:b}M"\aY蕻EAe9,OI2겻 -FÐL9nϛșy1Ҳq]4lm?Qlp#/>FiBD&NeElM4is2^ !zmA|># B4yQ-B`&e88mXĶmvvvg30$RLӺX4Y[_$ yE¹aXmb6ZNgy]ka7CWzخ#^VMGOE|w Ag8`mNKOY*qp3 ZG? B Xl"_g(nJR.F }O!A2m%Jb.0aL(I iwz/F!4eN ga2:;& mc"]%i9i&!YQ]0$BXE0/tNLe8( ^!y!i OuanmY~XƂR4I˲i6$IHhoAZZ4Qd2mܠPZ5t,ѩ$/Ad]* Iȉr;&IS ME[8uC]v͡٨QU&!Ze1 6iXT" R9 p2gOelQQ6APhA6c IDATVV2n^oIM)Ni |oıB "#H2&lZ@M3l2B%1Qh$ VOQ(EnWIBznu3_uEDbJIӡ,E<_ )2MRh4r jQB!mc6^oy_=zy$o0fEZ眄z{NvS(E_c?VM^zԢ{}ߊT %ͧQyhDB.=w]1qB5 RggI|:&s& YT:Glo6c:bJE+&qF4]dCCQVy!Q01ㅼ}Oyd4)=L#&YSgGi85 HUX䤽ƟKZIV_.+Ďc~q7y0bRDϓ<'CшYv+ϛNRXH0$I?iQUD1Ay)$hl2! <(\3a8:B֛N)4s/wWޭ)I2DegєipkJAͶ8N&yh<"}* D:9V)ILi]SX6-(=$Zpm$V!I |eh{p㐃(ɱM=%D<+Ɠ-p;ކ 0W,+$~)U$d8Eogo*BXwtX ja]|(CdY9.  r7I),AxY0k"$QAt!>c/PY&+uu;~Tttl<|I@.uOTB+.]U9w|^;> _孔??8Z)=5g *^%Y;gs4Q-~M}OxAMɣHo[a"*|8a1Bb Ҋ[nw%k~w6j_m5 JZ E.*oڄC^WW]yo :߁އJk˷0ˊ} 4}\lϋv+Sqˇ:zh !PB 0| {+R7o ^]qCP"*TPE *Tp{2UUPw4\tuݿ/ܩmϾߩΡ{0h-jƷXB *3\NKg5[)UVaאI=rFq5BMNjDw@$zwUO+a *TPׅ}F܅*|P *TPB ޖVPÀB *TP"E &*a *TP]%.s VP *TxwB/+4^8ʓIӢjʘ( B[-?ɲ BJ:A@^R2 qZz/^`PꕽgRBTvb $^W &֚*{BV=%?w] a'39;bk~G28<9a磏˜_|}^ɧ`|5s?,'Ӣj)A(ߙoG?fxvpz]@o :Bv7>W4$jAQV5Ja;.[ O 0L V(Fhp~bs:O4mPDQDF!{ ./~~Q&K%8:8?nkׄQFo}~ҳrx1y)Ikj29ATH 1gBfHVϱ9^*]q46~IcZMFO>6?YqCo}Thalt-fe::1yu<% C#-'!ɔڀf>y vmcd>?drv_?/l~ğ|F~.g_<`ѧO~L4}Zyy1Ly΃MC ˒Ysi5Xkg .h#}J2z4 ~D_OO?# O86O~+f~Jn|Ne֏~â@M'?~g}VM!*rmH`y2*  (ԗ(MݡnW=xccYZxߦn燴.};egg˰y7OnO1 BOv<;`H!7|ğ?߲۟G& ?w_Xz'_04%Y1oǿLOO6=~= Klk ?i0͂σ+TpOBcn"ox3zK:۶1MBd1-a#5Ad<$)ϟ=hM;ŨmDd鸬moi0MaHDAlsFU=vvM3LMx ʆnONBm䌧ΆHi a`Z&ipna Ã}8fiY8 [({Q$ĉfЫ$ EQy *T>ߖa}VU+wN4Mvvw, Y!-\yE+|P?1 l4fg N럅Ys.VKY5:u8Iӌ𝑦G6Q4L)f3\SPqrʰ)qd _~!-,M9gd]EgG욃) +gſ?gM(hTNCBo)5Z=Fqۏ?3MD!tG$qyK7_o|@g1l!#8M4 "N YnB|W`:c5 rWV9|4 |sǧ_;H-y3Mhl˲1f6q>i^74JKÓ#, |]r8I,=}c&u.2"ǐnZ~BJeBa4KaDƶkϳ,# <0LbcfRA@H)qul~,#Iv+U 8lR|RN)w0h+EQHhqj=4. iͦh]^Z)΃VMCR n]}@ c<CJ)E5 NAwaIL,kH)5B7K11QJc&/4e7+'ٲH* aR@k*y3$ 򦜞MD|.af7REaA9TQ dc(PJ@"DJ˰dd@vR ](gx1Zc5KqxR u&#<hLcBI/V/CO>!,d0`gwiyW_}Eee3  CP(8;=%QZ3N9:>"_ܓ֚㰻K|}DQQ-ft4$k-۝eOc&vŵÐÃڝ6fk1LV֑vjxޜFBNOQ^hѣ^"TrQʾ9 kkH[!N͡. b]E$IO^O$2F!'GH)D ,b}}4Hpn~IJI`>3MWal0Zs|tt:^otєl;;/+8_J5~FjEZ" 9͐er;Gf6>`]EAuByeQ7V+SJr FA[s7L8=9u]5L f)'>||NJ"G:eg9Ʉti 8CFC&1zfU ^v|2՛MZMJ)v\濩{w! NCD8Ow(j5S@KDB 1 ^& [+Ee ippOKBxu_xߝPR!ש#,ˢh0N}IːnjFY5ó3!EQPo4LW%4B&m}:nx|{.anwN&A@'28hb%]j4l.<'GHCh4Y[[vBDYDQD^9.oJՐR PJMU]L0oSx[4 2Y9;mЗsw~:Z]WO5l,hiYH24ieeH!PZb4"&qu J'$I R c @ie)Yc6aHVUQ+TP›hU)߇B(+id2^}WVshZGGKH1G}Z ! ijs=NON0MZFQ#|ߧn_&LYjWHwe42h440}R:ƌGClƶl6?{ocIfǖk-#{ԋ(@$j0I$$Hh!G3\cfȌ-+3{]w;}9֚7ꪢ(փ#B!9Z $> ZM*JZˬP H},Ȳ 1MT0'l6kL'gHn! ai0]^y鞣ʏ'5nz=zx/ImRF/Nj![ь dwwoϟsxpTJ?gm IDATWI[^.mtfk8a\$x[u|~f>1!?]糭-`XxEg~^?#w o KtS{Sa{<{'~ۉʹfZݻ! :YFo~ܥڳٽE)b1g~rҊ!J*F)iۻpa1Zk D*-', .1aF/~ﲀ?a[3yĝ`08S̼ qc: }rO QDYLSk~q& ժj g<_Kܻ$IO )[[ᅚhx&j>I283`:yyFxŜ,Ͱ $BdpA5pBEs24MYVg}Fw:} dag`0(kvi`# b)y)VJkW?xt'~E|B_W;{wi(MSSl c%Nju7wW^/9/}|[pʹd8" '{/wt;$8x4`>#$8xc-$!۳ YefeA<W<{H?!Qp8!yiTc RyGXX]<yxaAA`4p|r1UY'vI)+!Rdq0*bE<y{@ICqE?|d0  %? }ŹIM`t:rj4_Jn"⧂' $R)ţGf|Wȍs,:LϢ`x68}e;lo\ۧ{{wn'aw{w ֜!:؝10/?@k'ɵ2m1m]#d<0O!TJqKmG ϾMO{Qr8b<JKaK+=K1Ñdw{ddI -_}j9|?dk2cqpsgA(CV's<9],|bf# < ~A2mm?Y$<)#0O:)rSR60F[xGoB~Iצx8C'&y0_^ghAHlg0 cS8O)tc񣘇|0 Ʉ ɓox„eT^kD MpƠ"PESkN䪊rNNkOlyoJ<":pH M'e<9?'_eXA&w=9|{ky{}޽yMpr|D]H}Pȑ:ӑㄝH`OO't\ 9q)|Ww mOw9w>PB'B!a_չs}e+ˊ24PUe%ĥitM =a-y#aBX֛ $jT4UM]5~*Mɲ(nLU- Oi8>>iXTu.5`tP9ϟ>CXZ84xJ2OVCtC :|)H7kl|mjclǬ7Gn8²^ZMy{?{v7B > g{$ח,}RWFhMŷD|X~p){`]g~vf{.\vuz_swY W1j_ ^n0!?/ ՛$W}/~ ~^9[1!Bl[2Bњ>UY"GxԵF)E5fFt]QŻAq[H/$|Fyεw\[nM"$k&ϣiLi@IIG4ujn빔d245ZVPX(D8Ku #ohhOItc%ESխHDju݃JtJġGEsgz;ٟggHߥ~4й?oCީ}ߤ{vn7r|{nnC4^N>sY_gTi=Bς:ѣNjA{ 0F%gj#Y֢DVX|>Z )6¾ܫ{T}=%]45Ȼ(fohL_Ѧw7Ml+o{/yÏSkG=!MfRHZ3dݽ)/>e˜6=YC&p9G' ݻ/i ]<~jx0޽{غM7ɋǏG%sr7K e=zBأǏw`0*etqrM&<|5qP <|xKjCcotA4`wʽGPe)u$!q7OKΤ}/~ɗǨxGK>{|6YG#zSo_=!'l`Π9 lkG?Eu U0F8MH!fXs!!UU3LNm=$IL]ר `wo|`IYWah<$+J@ѣG@ /SJڣGO{8un,h@g{C<)ɳR[ C#U=8yBDq X- t?@ c\ww=ŋ)hH2cMRݣGQzG!!,e@ъ^*tKnF}>{|YN"z<#oKO^VFg誢,+ں<]!5OtAY̗+T$0ɳ5ujPƴGϟ?2ջ]ѣGO\:B,eZ +:k>SmͶ%>~?k/n7o^77}!j}-|WpUG{|Ϋe~txPy;|gGRʂ*p3uj`5|uUrpxepfx ѣ{Xޖ@f=z'=~ʋWdro,~Oշ~"ѣG&r6τ =z`2"xJeHRVZUj q:jZV]Sk}R $Ah!BJ(BW-|3O,+G j4bI1oQ!,McgXWXcG s(=k~FR865ycBH09dI֫YQZ80$ M10u@`lCQX<( 0fZQsQl6ꚬ(F$b Bޢ[)eaCy4MѺF(pR]J]6o~.Gw hO{ a=z`0/uM'98xl8|o٤-ٿo<)Kl/_g$I.XmrIB(^W_rx&)b9:<.+,kI[BwpogJ^gj#b}kR($ɀ;wpF)MEOH1uLGptوlug )IFc=|@`~ j\PP~x2",Xo6גhM}&-ۣњt=gɘ'ֆ F}!'/ h'ۻ{a1?I芲ԄA|#sgQ<ڽOZ:23 }kƣ* Sk^$bJ3#*kȫtPRī.]=zBأG?O 7YΝFa׏dOrtrBXZY-,Kt),Hꢠ*<5 f81YSsҭ+ ‹'IKïO=f{+a:vkX͏d IDAT׳UeƷ~E2cy4`(+jm ′*o5Vq$0U |[χ20|8 ph ܞ9͊oWg8ZZ)erݦ9YL"%++r` X5O9>PTYఆ!_SH!Jzi4E1kkɳL$8:9L>C*\ё,lrGGGTUCD>z&KY7)p<Ϩ@Z˧O8٥JdXP6֬V vfS|^"j(aS9:Y%Q0*LSTM7]bv;C] do^ߣǏ;9x_wM%OSۿއRmΟP8wLrܯbt^ͯItݐg)u(aY,W6]Xo~5}Ť72:X$QQm:rWF7N=%}5U]cEJDuFKU JqYJ+JUzEnƸ_hҴ9䘦iLsO-pyIYUcpm}Mtq8|Yʋ5uUQV;YC(rZ yQ`eXE!MSgy7gLQd<+i(kr~LUc#B"G×,OYv},3?]X' / >{P #KSOଡ'TEF5O FLL6m R)C5eɏ5MzqL9M^BsPUד4CkMgᴝToyUa6M``UUwdc,ȯ%uRݴ_nԥj9g)"߾i~/u]+ץb>(4@+Nڣ8wKHf;wD)ǃ C#b0_n{>:_s*#/K|?V,)1N v$gOG=l2*sR*wsps\<8e~D&jx۾dIFmm @ A5R)4AyGU鳔!"CTUu!%AvVuGMc)\RxAaB4lKZeI ]P<]PZD mlhRG4oTa`mC]뷚*'"(ڈhw]`Ay ksiSH)q"˜(!nu\yRuuk'gtc8)d4;=qxQec}=~p_n>䗼|Z;rxx{`/ '`ĽGRg􇆔t~9zNU?2 l6}T{  \SZoc.3~`HUG)9G.})ڨ*zB8n5%[/9ϱB2؝M9FW( 5GXsUlo2&p|2G ɤO5 gXc289>dm1n {{{(騵!bV#18!g*1}=GsLypeA0bf4HQT5 om٣NXg5g9gط#-~i/: ܻ(i{ߣk[( 6QGˎ ]{ mqݽҡ米{d a0sAHht]la*JZ1u3ڬkM$A ʺdZR6jo1o# 4 |DpeB!˖JJ2MT>q5Ёb8GYd8<630 $ ֬)b0ɧ1 봸ł"C*>z5B(FÐ Ð'_A/`0b:b4Ym>3m5f~2Gkݵs,i,loo̦SoצXp:c4 lS0N C0\ڈ^C4^5hϑCۮ~Ea2LDaԦڝ6Y,|F!Q1MH&5BN]#~A0iPkA ^( Z1tx2By~H!фpx0 I1dʝ]fRj tCcǦbPWc()ZV 4XGTA68Ib|$J8Z6d:F~ A$f8xAӚاk֛ ښ$ AaѧM(%ye{{;{MX[f4eلϴ㫯>BHWK #5 dLW5to91X/!mMQWktIiS=O [.:6$m2{IC)kH͚GYk0ď<& 8V%H=1BÈdB$Ւ,(]@ܚ %RI<'/*t)/LDY" B;S8IJ5U0*Kr_f)E>늺,I7+6% ]}?#5ru;Қt!pBbaY2=h{hD@I .s }&M2[Sk}yiVpkHtq|tLTuMhZҬ$6ܩR#pB uZ0?cZKXӐW Ӱ KQT80MfBWy) QatEQ,$]|Igci!3EpGWefs$eY"Y'R(B^.0e)*٪Z:Ӻ*x)cjyMyzuUpt*vưYYii Պ(k-֬ $UU>,(%߬WbKK\\TEɳ' B>e]51F?TyIZY/Nɲpו淿5'جSZ6a@USDm6VOa?c.Q9s՗Vl{ׯۿg?hܾ_XcmW,u?e3g(V9сR"1'g !PBhY{j,ް8MqU< 8URl[}(x3I޾FNp:ŹnzROӖik5靊'©jB`&SRb9=x z,USN!smx5cvQ5js2+Kt]lM_qM>+hOB{u/99=WѝmƧ)RJiZI>Xk.!^ pkݚ̟Odw-9RvۺjC>{o{|;w9|߯wXP{\|]оa_sk~!?O'YagX< AXc^ y8q|0L}yCy~n#vrM -M]vi ~ v,tB%N/-B"{gxF-Ԉ_vSXc.ʜ%F U4+9g|@W c:%\9~c^2=ovyEX!Wl!sFQ;~9#J)Li{UN{FO{|􄰝d7^; k.w&O^ !y&?QݻwɷOޓF<mxyY}h@ ^6miu﷼R%aTtH1LHgXWTCQP<6%YyyZA8T4MEbV%Q0lEL!2 " I%P8ʺ|LӠRb~VG+D* a{yq{:G ޞQlV̗k,T> Zs]!b<>Պ|KZEZCL&(%XTFy~+(xm0d\a# GYA@U;<89>f[fXYHFmt:0uζ8>95#+gKczbNkx/^P5ٌ8ZSUA\J߇hz a?8+e)f {ADI`0̈Ր/{BH1|Ha8`I3~㪜4P7ѐ7M+$sZ78v^t0uE9L;2F<3vb<' !;1iHC!H#޻%G/I7)xA{$Qu wc27$I~fݹ3YY]@ "hV#@O$]]Krr2HɌJ?@ HvٱΙN[kIxdEcRlE~8K=<#g"3גK?WC!l».B%1y'+bkQ )d+t 3u/89>D m͟"m_Y0¦BռhzUVm΄XGS$qV5 ]5|K=Ydxńk*l, jY|.*s"ڦٷ R|?ې1ڗ0JbhuLm=f$Rm5 k:td?~U﹭gc}ߊez-=miAavӘKߣYͭ~i a9Lm~uV{}[9 c4< w_K'*:x+gﯛ y%6̵?)ynZ=}`"9'n IDAT~B hMݠpH,Hz9==Lh=axA.TƴheY>PrQ7h//6si\_bSߛ<@pn (5ﶍ]ʳ6ئA@5nk,RZvn~ ;6!ooگ'WhWscƔuUQUWےЏݠU@KPJaZlo=/kvkkHRjMۀQF/}EYw #tUP\U˸c"BjZLc>Д"+p NIC_6:B}zd{5/_Ha,uU1o93fQ/~.e|:BŲ(T8h#~|,C  CeYJln`S"建~\egΔBoFx;xV[[r帱y34uNN99>H d{%IP朼oln5Qg#^/x.REHO0PVs|tBe%-uIYllnFZNOR1oW_S(ZmB*[;|o9)U bs='Kbt]JrFrS8=1l ]k r9zUωyr'a{eV3aw #( G){Cxdk1ke7+[ьlY<-ln)BƓFkS%B 2cX'yn7x-q׶w v~hC0D ь66J"OfTFw|6h VcE9>Jb1GztXNm}'KgMڊɭ_N =K=#gv|fZ'D*Aiq"kDIr<6X,iki(,ݚ C&28(q+~Rխv4&I"f)Mc zG}PU9Q=MY4qLDo4fk< vl)UX*ƣ '/SE2J)J uɛQ)pdAllp*V1=?Dm(4 XhcA/(2VyF-jxchtU\x3619Aos鍆llLhL q_kX柔 ލ><x':ӡCG;tY`9=Ӕpm=c a@-:K#|7aI2R NɳAi4UiΕ  .mʧG+OCϛ\_pmz{=aūs\coo6=[-WԦa8%z1Z\UIf̭ݕ뱱xcf6=z<4Ґ5y锪* M3gu&I B\/њ,4M5gi UQ8P6 tUKDz\Եyk4!mI>yj@, BJhp( uYZ.BZ(I^i8f>_2%Yq.G`?&FWZUԒ&q[,6'qP0?3?'Yjg]6l0?9LVYJUp|ejD)8^a&N'1-4\tYy],EbjAniLCEZcTjk88:')QdYFEQyFc k$+ TuI%%V@D&T%/_ɡCGKcbɒ/^P)ٕ"##-smŵc5Wʡ34s(_ͤ io(g՜?៱M}?F׼y"ϰ 8ɉ15y^b TeA<_P *C v~0>=ku:s>xڇ^O!|L?!]HAHd<kBb~AC'.IC$agqg)$f7w}9.2gG)R\F6X0yq !쭞ѪarerMFw5}q)g(Tmr{ߟDJUU7mv}1.+hsWeӿ6A{>g>>v=^wn')7l[c{v?Z{ޱgDr '$NSv|7)t {1Uw! F|WRgz{_ouw}2~Dr2zθ`]ahCұf}MJ^G)UT.񘦮(/)5#q$s=tU2_,6=6[Q5Պ4/n &bjMЧ*SP9'''Bjlm륨)$ucrؤ,3$T-OZәFA(%#OOɊ E0Utn BIK^Gf Mx>;;;)W ~VNAJ`4yN(a) [% OWIeYyai: *Ca 1| ű`|w{krgw2[,2$~orzDUC(>BHn?dսpujI%iS>k@ء,oA5|Ĵ69뱽6Cr|1l=y^C_o{8 {}dIY,5w<~JY'FB2 1u6Uq4[0!&Ð ao0d5 u( sijM' \~{d O/9Wmx!/ב@xrA󺸕ukUf 쳳x2\EL66yJJ7BSY-THHp_kʜτVi219寞rzt6(P#${+g ӧH))5RJǡ(M^}vCvhMk(<}歉 ƛ۸4$Ag+!R)XpQS۶kxT6篟%mtpkM朕r] ޚu[ EZh~+&#QLY,6 (MJ! {k >)m뺦i,硔67'AQfNgl~1 As]! <2 /3 8Q ]8'!~~sBh8|F1,pT6<˨Md>gC 񲜺.fG{$&=H+\\4jB/eA{|)Ҩ>AullcjCV!emɓ=Re‡JX,puϣgst嫉x v>-yY){wI|AZRKY֤y(qZtmXI*]K8zs NGAE+/ChY) B1c^fZ꺢( B ۪KYy JIZݮMC$I(]4ut\F~cg{%)j 4UњX\j5ynZKD2#8c{'D mV4>aM1(Ҝ,/R/5!2~ |#)G KgUֵF  $4 EZ(C\G{sfk rӬw<'KrUH* r֫PWDQ*8x h});K'YZ!TUf mjm!6oSءCv+2Jx6).)LV #OFu1ZYY\/4AKVTt&|?!I|\Gs(m0)p~mnY-io<K?^8.#IݐHR\ϧ+۴!W4I̧ eqUq k)hl#Vp2=jZ#hBM4#tE'ETyFAg%&פ) n.QaV Q1-ƼkyR(U SUyr]dūW-J&KV=m'4Zb!^ﱺ8O?-g|'H)T, ʲ"j$ސRW׊tP\@\DO#ё:BءÃˋiޛl,%Om5硗F7E]^iekX?Mjn&qנ iֺⲇ-׷uU1bd)Jh#Z.0ZcH!ϟGB,c1k} ص"m$p\iyy%Rs,R^l]_h9vJRgQI1L9;G$M8yلo2طhG;ta]=1</b/}~7A}A|W;aj^u}iHkχm1lcmI.#2d[gد-roa#^g{?{A1i~zRc$BHAc̵vIR*Z_\kzYcp֤;t«~SQ?_wy{|-PiWJA waɷ/g0%mDlH\DnZjFn,4\x!^jk[[y&,28I~0uIYVA@cP7aGԵռ:.FDŽ^:mZVYO/)4nYw&p8@ }#?h?OںƂc YV {QV} h8%y89EnAUA ]EJKUUT=ȏX#݀ɘ<֖&_̗seѳM19H~Wޕ'[7ӱ >Du{|nZKev\>Sϻ.BءC_& ڴzMv?O(@ا4 c%Rlm[~qJ9<}'o)ۑ!ф|%Ue%[`5` ?='yK|xۦ)V5XC?OVz>IϿyzy0d1_:o!+qs֞ A8o'lq_:`~7"iV" g3a~P1$g3B^0l;/~X_K89"VDiNca2=Mc#+{LFV>?◚FW jAzۅ.Vb5\;tkGG;tCi hfnZ#5;3_ nW۽lzQDť?2٘/_'ds Mޭ akh_cm z()k$~ ]HcA"KGO)*y>Mvdє Ss?G)Q6!񘲮lln1H?\֚ۤG9TG P#vvwf01/e;!d0Kxx8svX%OIN_р$Nlnl2 *X)YArRAo8fc{uA9EAG9`89m~ُr=ٺ/ {(ב:BءCgS,YVCpKH}u10Z?L}i-[,K8><ȪX&[}.*HZ0UJ ]ipfEM][׮*^p4ğov]UP1%F48[ẊTī%^CMkqomCkv۴{c%Aชx>A"CeH/y "67=a0Q.dgO{ʲB)؞ ?c<,ʈ%}|uqQd#:tC~~L,m۬ .@gB wﱻV_C,khﱋUURUhhS]n}Frdb {=b]/q6_B@c̻FmZ[V߂ݮonS8RBHX@Ik |kA)f]:K/ j'jyo)P6=[8J!ek#D AUWJ)X(5mm`E yF!Pl,hFߺ~UٱCQVx6ۭ2v3?)l :t#7y|gμ{S[s'=[vDf[r[ Vb*ʺ'~?~˿W'Nc7󿡘K1?ۜolQO>ś{?AD,+HGA8dgk^h_WXk) <}O2[%i$OH4/hSpl0\+iUFouY\ZWG?a23?=d:ƃq!0@Uђ㓷-{!{O]RG4M繭莮QJa^cgk OO1x֘)&upxx|?[rcRveo[wǦ>} Q}C?mlO>xׂTW?dɝ)"~oΌ@zyBkӆ `9xI9? !RcڦN">[5 ڠ2 zĦ!$4=hxvTxd16;k2h! 0MU&"5%VKm̙-48.7ޤ %uv?{N(.vZ,6z!E^?lQ/ O5ɐlo)H&шF|*].~3dgg"Ka)hՆ!ǧ6z_B<`{0Q qbk#[͹=wӴQp0uU}iQ1oppݭ1i(0G'T x^uopɆ`:=%>NH`ײ\͉~Q5mnW_F('<ۧ ~H%UE4ưey /_RVpēag~2@)((!޸j3Egx>:Bg;Y߿GxEZf)-ȳbI^UeƟ-տ/? _ŷ?DWi ?!R<5咞xKDʡY^CZa(kU(7`0Lrd р0u.7n,#{0gf h@o꭪r_rcxYUY2k~sF7~ c-OI$ cX&y f &52k*iG!P2{R} ur4,JE4EuKir]DiQ }iqx#9>.^$CZ2mw]&47h׷OG Ŏ}"~ !Y9hiϔnrW0ϸ{uh#m9[b F‘5?3g-s?'? wu]$엟!_@-ZqBn`ng"T4M!N8M+ &MbfZ9HPQyJ(I*[i*Y!DUOaϏ=op enswk^ޭN7:4gv~7cuv F*%^eɭ W_խdrrjkyueX=٘???Gz?ӟ=$0ؘ"O#z>2 =c3I*!ψYzkMΜ>Mgs WPR=15&˘8I:yDdtֽ1s$5ǢTu)aoL'!K+GG|AT)<.{E.bFX/߄Ttq,(Jthei974ekn^5]Ѩd20t\%I2jU\@,}aBQ2J!K"(Ʊ$EEUf 7N ME`pYLD[I~GCREUR/QΜj7Ʊ-vM1^QU':^K?LO`h*V 4 l ct$|6M1&&BVmWPv=4ULLMbkk&SSYfs+SQJ]M)J(۲L-\D^RGo$;C[#^%}3O0e 5˗vswv:?s:{׮? /??CJSiF炜 f&Zhaf0;3Kgc<ԘC&ǎ.=?סe mRX^\&uZYz}$ . CWLƴ&SUl"M|e(u@Phq69f(H{ 4CG &(d'*WG(a} p}K%rLqK 3hym# KAjLubA<{¼OORUJ&J2&E,_f;Oj}FFLMM!d&4 cPPEŗ^da9D4 j q*$iiq9'p{m~8NFW% KN, Y[8aٜ:w.ȕ29uXc8U !UiSy.ax.Nw+vdOx2rVty !}V܊NQ =Mxx͇3c7AÒ{t2 7GY]Ϝ<W.eUo噧`e5_}ʥ?v(izHOaWA5CG ) :2 8a̞8MdYn6PkHH4E~LFbG:CwaD#Gհt ,F3LlCchT{VǙBc:S8`!wPQU ôPu J'OqbvҘ\Q@fr㜽4,-1MuD(:a`82 i,ǣK("F6cj*Y!9yXP=AieneEũql4uNZ'u{HDRqa^C?8dGV*ZTnzAy -jAUKNY:! Evƍ9qD!RJT!"TݠZhZAy^)!Nҽ覉kDa@DJBC:~}d.L?+lPj:J, H$DA^" e2Q@mE1jj̱Zz}TU:*ZUqL. OS<%NRTE0ND.ɵv-sIÐ$I(8p{.&Ѕ0,r@$ }z=z!G硃:v{ldI@X՘dmu'XY^"Mffgi4ƙ=~Օe66֙fmu0 ZmoWn>)^"?4wlȇ />|YY^q*\|yg?O06kyAoo?<;w->Op;DZ ?os_5~Wݎ兹9~WSl |>k^ڱ˗r/wsOǹ_ߡnFF(X]^dCH n BQе9$ƶm}"{Bf=z, (=BYg.=O7<,c}mM͉,NC NhaW04AAs.\3REEiUa , Vz$A4, &ZkiE#}8/p{<2t%J%Q['':&Q",_!MR (s5tUlwK쑱̗ӈ,$)a>aL(U%꺆E1c#W^y$ 0`ei~ˤYo}47 }0q߾ܫ+0OdeiOwݷ>~l5?4'ӏ=Ɠ_"O?-@3-|f_yO~/A>OrKη{xDZeyiO|>O=yubKˋ|~`cm^&4l;3yEI ˝$ȚYsH _,KY[].FMNd׽=mq?)t `GCjiʦJ6\愥Wc%r$';0/Y-Nk~Z=<(BAr ^euzrd ']Hhʇn@ ' 4acmA^5uuZm\$QXH Jzl qC$H!(r)Cyw^OB{8mG> ss )eF %ͲZ:󋋅G:/crrڇX8ܫ<bQz|6: @x9>{x#T*Ωgyw//uxgy ŗ^N~=eY :ǿwȣoR:gΞ{o.|wpF8y4399wzqvs[7jn;w[5=W $)%vT!UİGl h~먪Pݟ)ؖo^ r+97PB) VD!PP#n|k˹^PqyI677v\^e[/GaYk+ҿ7ܧ|ռjF} ƴ-Lk:Yh$J.a395MH4IMp k+RDA߽dBJ&)ޠ ,j\eT)!!:`f8ȘNelAxq$jDq=F BӗmbqUp~S,Gf7t,J&"<>NLӢRqfW5ze]mLBQJ &Lt Ux6G5?(8i#[$1}̺*JMn$PTj:!SHU8$CtDU(jT5 M!YQ5p>ٶg ڒiZހP(ʖXUULFSWUjJTaa5oĠ8#0q86;*<28fIb&Ǐs>M?$]kmp0~ 9zG?y߹~WQӍbQc&qȄL*Ls啋h<}֚F^F&^(IȲT pTK#(4rYȗI^ܞT5?W晚!t\i9NdW}#"lPNt(rMmo3^mrpzƧq ŗ/ ɰǎ:re(EPks sWnٌ7#sPA$A.S*Bo+TL&1BUBa1ɹsM'iˮPYj󯻟!x饗huTyȢ>/t7(jmX$  |/($dByeUjU66V¸4cLƱqV.= "6^ՀP07;{<k|Z>{+K|Xv k~'Oz~2>W.ᨍz3΀]CG,+K>sZuSy ׿{y`6AO˳92=,oo(y#w,KKON>sgVtc b߼Ϩ=ͩQX$YJ}lgϡj:Ih GbFنc<#Eu|#"cq"zܵi d`/ferP W`C*jYBTS)ej:bc9menP;bUpln Ͳl Uk5TmšLLM159 ImC,MI6Uי%"ͤZ1K`a +kwu Ǧ&ٶ6B`j!Il#Sarz)[DIКi9-aSx1& ]erb$TLOR*P}P*c #kضFPk415=Is}]' \G)NƙӧhRoy.9S8 eY^f& FiTnΚQқi-o:GVnwl!uxH'd{pTЙ2_-E|;{vg(_w~7xt$IB&477xK_;ǘr8rcCy;` } ;G$Ib$a}}3_PN}:~j>}E7mM\]!>ol iQب]I8=IRAQ^xΩ$E4Ƕ1MrPd%^|uv}adY?c[X%0/>`PoYe;$Yw^X@UܞۿJ i!SԨթիXA%\fYz]a&z]4RbCEiǩ( a125(D 6MlB9Q1LBtTM [Q<̃,JAj^ UU!Ib(R"DaZ9F^E%]alA@SU8!C4ݤh`&aXFCN>B~6у`a:4#uSg~o~W?~#>';|7_ =on"oeue/~|~HC姟?m{#onooK/y#汏|m_,-/|~VE"5*DZ JE&ግcE1 NOԏQ4p}4Jn` O/AMB}\g4di=Ev1DFf:ߧO49PցWnY/u(+(D÷YmLB@9Kc671I>nBg4 @QɈӴ>`"μ3Inn.|Ƽ` J6sY_^ohy. ]e 7ae[nյ5S&I3lJ%^2d dyq AYݺ$Y]@ 0<MQ2za* M"VWPvSa X#t<*Y*Vfd#›a̞8"31L̘;{7;}#2w?|{ ܯ;G]~ )]^O<($>0o~[:w^z)3yͼ篾q~C?w̧>SO$^G(iFDk Q4\fInh4(I9n|at0ssWPA$;z~}ܰEB.l_d<# G+x>ld#h۱QAGq:jC4EQxGiZ[c|ȏŘPrܒ>%yE)ev!70 6 )* !@7 ⃅* `qi]7PUeU-3M2.r!e3{8 $TrD $M1Lud녮i8!9T4d.q enp}?6uqYG0%؊VucOШ:l< i;:yKWYZZs1mcǎSڄaaYD~EDR9~ aa&nlSNcssΞA&>ss qLO`갼B2 ,ű-gpTIӤPOrs$n )fP5ͲI>~@QC-Ν-O .}I3#4ld }݊CkNl{WTv+k{={}w~XϮEFU@Cao~ʶe I(* ԆW BA׊[((7G($e$k*"Jiݫ'v0 M D-.$I춑ʨ4GA HIаQ $j4q`h(i*j: (,ILM+gnޫi@AbiRUPU|sT",VsdRb6,Bc?B3Qtm݊f۵)O#w`p9w>G|O\)ny|}sQ!C8;St6X@!, ,WGo(BH쁬ǐ'M|sA >L)^z> rPkslz^k,DQzBűtq3͋7𶁥4i57>S*EcB=$$LqӜ>>1U6oHY>Iꪨ$.R 4w; awRuӘ^CDQ\m@0DH.%Wסߧ.aJP U$)P)G6"+ŷ{utd#{5tnF3#m)U/^"L4'5(!۶ vs8u4ame8 X(4]H3X$$e$q& Izu`DB%Av òȒ?lTJnaFB PC&!):*MI$ELk{,]BU\߃\}ˆ֦EhL#RpOىԏmo[=#SQGqHr4Mm' mL┸l,4I "O>S!Mb0#S4 CUU1u( Hc9(0Q&e. N/jqk:wɫsU(pֺRDpݎz?ehۍ=|}oLtNđld#@xfI45!~~;A[}Ν;K{crH L;Fg}oxC-&T%/_\/^x4^k&>6TJe|HY\X$ã;qr5gPR(E]f0(ISpӬQH}Eܳj1&Lji YB`b| ߥnߒP㌏!CUhnnb- ߚ0zs0- J;'L8AvOcbznw&Z6^i:ؖIEAln6IĶ&&&PAIi6Ccg]2WWÐubff{ŗ/h aT*Y.P804 :pI 'J*ӧ -Q2K &gx3קiOl-0!#\g+UMOLtU! $Mc:Ude6Z;63,Sg33Y /ir&s":vu 5[K @ IDATvcY^k bq, W] Y^yt`Yֹ*qq(S˿Ayc̍4 ] ?4jNFQc-\JܾKۅ4&3*_3gphR)Q* "i:aELӶVtM%ҭzO`((TľÙa lǡ>`tIJMUEUTKǴ Dac:e cYPEtllBcLD %v/]b&qadPqffghm=y2f15>]1cqG6m»6ͰZ)`uu G#B\02`yueExa4Maƭ|Y.ßSWϟRZ-Ixx$Q{H%'cd>;!Q!.$bmmNejf^װiBhL $J +Up->Qeǘi:  S88 mpö;L;-{Ş׿auY'Svk8N^^;k|/pi&G \{_| ,˦ZrgY]or)\fj<"ݞ?j!wҶ[uJ7 T)B>E #'; jN$veB; ى8f}eAxe".=T"D#^eD>Ij" l8q}۲Bm:+KxM67Z;3)Sڭ&Ir|<2IYY\n2Iaix.KS 2q]`0\fxW*!NHIɕKI%}"M sY[_% < tM`&c&f ΰL@}S8=VGQVyף]ie~^=a9/,/sGa2VZlٶSEċ(4/HjBd.%vAUUEU,^48{6(8XA~p QEQ8y.I!SAT$E4dy^(PnMI"s9ER ~LUVLV$sU Ft]#bTDSnOr@(,d$ɨO>7Dn7XWkw ʿWF7)Vb0e_g7>UNpfyJ -:V)]:B^bn.;1 %u(]jmTju,CBUיd1F,sW@9yciSQq E+4r8Feoi%'8{4Yh N |LDW&;H*z156#Ʋ,s/|2U]mؖ=Cz@MaDh#.,AW!-$ZHpn1j͐fwUU]>}xNkE QYN!Q9sRJE9>=U^jZ&Qb4MuTUg$T+&NbU4-U8IRI`%*s2^ː-B9Hb&痖z:,߾KC_ }o&o:yKwoSDADADHUS1M 2R0qpQ2[PE Ir_WQX: x{{H$&Nb8>1E1Q%ɑu !0Fi C)d*#LJt:}FFPl09Cּe(\; dIӔ$~4 zzVEgGpjވXfEQEE]QT,D0 b5L?iqLE2&Iz'1aG1i> 4UDG j:WTq]Tc2 T%DabYuVB"*u]DJaX%iv]bfE׉X?J)Y @852FpXO_iY3_nI'ȿ7'[[ܸq}QTsx<Ϡ< |d[dOdS{ԧU | 4MPF}; Z?gre3;R>Y eA1̅x`Q2vB>^-.$, vQӈAA-aH{,p4F78(13D%*"4q!cE RQi=.{[Dݽށ4M }p@kfscK c "lon8CC7 w&gXohxa =sҎI=NE`t!^'OH(nH $N(5ƶMaR5 >) Q$7dO"$R!0L%NGܿ&R*7I2^!qTTU%ȏT,簂BU9SI=L[\qs&_Aꟷ{.ABE jnפ!c&Ig&#.E=NOp^@XC2Ϙeb kagp H$1.x@<3c:ۛz($8ipO0ďB$!MS!qT3&.#\[E1mg dE%M#(FQ58zav|=MSǮCپyAf:MSƣ!;~b4! 3!}̈`8P8 s7< 2kt'4-`@S0 y.~ﳭ hJAB1RJ BEq"TE ) Y˲}4MQU@B:'cEɀResDe=pmz0x{Z,g$?ˣ$|? @8z|xQmf$x ii"R*(U"i)]\uZ;ş;?̈}o_Zw.Uga)( =Eيq좁D[N?t2y8M!N^蘏( Nz;Δ8)1I~O_ϟZ MS|ߟZ{F`& 7=IL۳5kSY{2ALSa&kS}C(̒ pR)%]uÐZF,DP^( q)R08N9,&ҊkgAsTG!VU^? O}Q@k:0ivTL;>D# Uf:IsB*\½^@gFA+WOuOX_ˈ[6'B=~(iʃҜ L&BԪ|嚕w!Y<_Ap?%7 Feގ}kXU#.ҩ*Dat1EE5(zvh2%"ĥQhҟBl@44U!c΢/I4Pɨ; <`&qת,̲-8"bTU~a+d*Xzp'YN:Z7ǃ39w³]8R9v5l {PdN1IM%MgZ/ уh8dwgo|Dyo|/͍rrݹ~N|.wɸpnqa@#]W !$QJ7o xx ?&_$Ns.U26Ke:dq}NNlc 9 Vˏ;QYf{+K>O6iQˋ 67!JAbyq8 QuC<~noXO2biv)IRU.\TUcUuuRXST+U:vgX? •kװ4CòX^^^i8#13?@^ |T]g{fkׯS5=O|fVܺu$tx1I*F.1 $ e?AG4Z Z`0D ̴I#4|˪RV |6680#ᘥE]IaYk˲}YQ(r&ӂ@y?MIR Mivc'1|ES)xD\1D2;^ @~'|܃瓏?ceZ}4͗R[Yl絁7ZmVD`*qbJ{& coDg7%3tY2k؏'$!TȒ9H\"tNyEa}>/T]=7FU{]|䆪zVhNqe$ U6gQհ4Wje("*+NTU Uw\?xn*ʹXZ•&.STz\k;SaUs wD T-VV| `ۡK7t5n|vMi! )4[ܸy3u Ts-qm|?Dt߸ՕEֱJ ]#2,L%?poTV!ӪQaB " \vvw-LMUkX$SƎ4JYrc6Pm(Ze^vϲZh4B׳$ N{gi4YӪbIg S7&)O r&OYɤLq{Ŕv/~+O=䯾$QoL]É x"!Tɵ7q{HE1elPUJ(BEyUŶG(FV S%d'D!D閙\OA%剢(F.˝;wðl_O}SeC4MckkhBAUU ØgB:'òIIg4g*FN,Ӯ;_D/g?EQk5 UՉrvB2Sb4MY_{?5n`04[_A,-mgwG2nկ}f5;M/ P#hEj0`VM3ijg`OP/sp\2>Ɉu2(?w-^Mt_컺^3 Cl{L7aDףnh 3g͜ZaGQHi8ɗ 2Y:U]%b4]umO=RO N8ˬI:LӤZr5oOWz:3@ᅊc?w8K-2:j{G$;B[PlAM7_}_ļ*^'>eO".4{뤓#yN#q쭷>8P*ay}Fl̳4d} QTp1v4+\5MK%iOܟu0>Y*Z0 GOe;s9|^l3%R՞^pn:TJAE09űf#R^o`*l_jNb{L1ѨQ뺥5T LC#TU#BlGQ,N*X}ItN#RJx<& ZJ&c;044I< Ddyi {У.," }0sK,Su-M<4!2ˈ$U$4oߦh44/b欼XK 0 z*[w]rp0R IȈ!TSxv%YRE~,.}`xM2^* _YhDOiqӴnn1=>tY}gd%N;q&1oܐRDQT8 x Hy\/qaܾ}0ܵ2+Uyt:?C>CqkvBAӴ:Pt%Wg)+@)> z|8N y12v'矗0-T%GaD%8%%J8K/3bM (* jҌYMG)]בC3 #8{̰G!pAc|dPU+us/Gӗ7oSt0ulwwr2(FGDqJ`8r:hݒ+ZoR$ڤhuHr5SeccpR.@zӋE Ea7ۗ` u:942g=hy Y,b'.̵Cg{n?)%FV3Mwݴk#&P4%Mhk9I㸄Y2De0 ]Ŷm |nPQT6S2 d5b43b:sss誤ǸiN3hNt:{DIaZM8C,ĵG G7¬|fE40dmme4M+XYK򵮠GV|K_? U8)rc?Ǐ.Ϋ׮ƛ_9r>ayUADDQi8KFHEjzt!E(`0z-6"K@بhW,_\J;CJn1W3<<܋^a0N[",+8.>99h r0x%rq }uȁIiNZ5E^}oDZm\,Uc5n^]ao{ ۶sYz\T5 jmSQ354AS%Q Jy8"E Af(UT-GI[8M+onGxK7h:U GcJW^K>Mcn[,5p\]7{P52 t 8 P,22VfJp]f!JY*IiZ#H= !_TgO NJBT-ڍ6z2s4aT VWxR[TZHjih*ZeU(ҠT%#tEhdL2 ?`1ΏFe&-g,5ا8gHia*1<)U5 4M*ahG§AP6nqwHAI1̵V-k5,,;.^UHMUrRUZެSUP0wAJHU*aPרPUqVRQo4L UQ!tLA,fvl (]NUU=eݬ9g!PUܤR$3K|%c 0UZru>h'̷O 7 9P$i?7E7c@6[O>%%2!rd4!i, ]G5 CFǤixP7,tMEôpØ Iu헗0NF: 1%ɀ0 .7La&@\~>G:q}Df r\F;0I^Huq]P,%fQQ<.aƌ]S@G}Fcy!30 C]\l b|aHߧըSuLQ629uEFmj8iP$V#a:aNIEa>2+2o4M4-ee#%Hl4Ϸ;?w~_#S8A̺8 #|n|,.< adjm Ca0b1N FCۥfأ|!ΰo59͖th4adgnkC:J; _NMkB zD 1:G/|/:0V?-,|JS9؛Z{Ngm(s~>;ۛ$daƱIw]=:;[vN0E <3n/p똺p:xA;~ .~"ެʥ9X#Vi!Y,dDMqXCEQX;aPT$E N#8=JX}!QU?dמ\hq˪pWi4Ƕ4wGg=|UʼnISrI/h\qI ~()e䢞"n0}YY:a Ahqt9ni^vw\X=$.ڞo@slD.{G8bx.Hp磎%%%u$P4I>ϛ?kp-@$X,$^7)46IYųE!"\-";%d.E];$S=&ӂ#R,] J@H+,ڙ>4ҥrz}-VZut;e#}JY8FUUe2]$59MvlnP3Q (/tOPz_ ܧo״À*W^] AF?%3WfPzqH )a3s)q># *,RU\ƵZα*ż4O2\)hV?,AdjÜ~Kuòp0wǟ\f6쳕 zlon^/wիg_E^s/mUz~1Qie얐 X6xS%s]89+~Pj;>4%Dc)CybM܂,Uu8 uMS(w\O yCHE>dM׳B?85SHsuL7 )(I9#r Op> XC oIK (Fzn9(,bJ.yaڐJY8N2SUsi0FQLhMrX1QĄuA9T$!PrP&Khc֦8cGI$q'E[ "siǙ0Y CӬĄoR%%"!A*dJRhG@*U3&,'MifΓk #y&06kOH*|0HvLOl Nis8AfIFDU DDɀ4H1KthYhz@"-~6S|?̟]Xwy!4RqR|0$.VvsZ(i Yܬ=iqO 9X|>8̞Iy]2'ojg,Ácg[ߩR>.CHqwn`6m|"p9깱+10A7UUKKs180 kd)Bq=8,jҥwMQ,QQ̣+$s [mV UỸFQ-o%G1~ $Ij|ViI!EAh(e @A ų$0r CL܏q- m}VWW JR''%͟S;Թ3@x\vw/n4-n*Zmu Uy=@#lPp}-N &`5xAHƎWƘʳ~p2Ǿf-cбZʾ8T9)R <R IBP2g-Q!Hkx=-D$!Pii5FWZ] &ףc4vX+xCF88"UC﹁{hi@;,dBG33i/fxCoo_W~b3tP sE $j( Sp?&pҽ}zGZ޽{Qivkk]>S߿ϓ'O2hmE$_2ZH">C|v]޽ݻwiY3 q&Ibf P24ƍ8q[qmܽZiy!Als1_׸q(udBw>[:S~ݸl) 3OsA>r84,Ӏ$8jg1 IDAT7'B%"*1h+fc-C]&}G#t]Ǐp]+W ,f.s R?.wɁǏяw7+Wxx ۶eBTXoܸVZ7w%/k|dcc5"L#=Y+4My뭷JœHa]%0̂jf 'i m<pp80m* K/ϊpk1kY<|H&P(74"y#\ &_:/o9sȬyIC O*~, q!tmB.0 X={vY.[DM4]/8''= thKw^oҪVKdv<qdȓ`a?LCtS~12 _"4~E?[|K]yK;Xv&H)K7 |M* ޺"ce@2։IP,gy4x)T,')eI,Y +YB,ROdkTŒ3-3.w)}AL/EK˫B8 S +nlP55f5V!ųMPZf!)U~^bnvjFCLVl4Hʶz!c-FQF\+Y&29i&"I'(`h{wL>^/d"QC74Ȃ>Py{3/b*n Fӧ^+/\{ۏ30u,n8; ᝂPTa 34ñφ^U5.]^&C>b/MS$Y5 3D %2Ly8/ irQ.KU4" dyJ (J m îlwm{@(%먪`H0LIPUQNEz}zݠwU-j:Vj5fTYe~!qD$cJtYQuM0-zY@ P$dI!TMASUAQBS^|\2ԡsޝ(b]ZF蚆#~`*6$a9Fn~! nܸIJ̝IP][k+Dn~$k("䂌UT2- =704$G!M LDHc$ {H Q$ͥh :M$`ei&vªeY[t607]Z> 9~ "k+H],JcUefjZҘ++K%a7Dsq]Y(UmM$a|>]!NSrv,.ñ{lu{mtH}DѢL<4IDI8P2( wpV=LLLrʵ 4 IxBEK+KKku\']\G C LyT!\*a$$t<z*dhm=B)W0*%&Oq"4e;|C)a:.$ŵ]\! Q #+#NftlejJ!15r@s$" YvE$TdDDrylSC< ^j(r|@g$a~')B:6=<CveFNO#H:oww zp׸Y_Y%iJU$i6?8 |wZM:m^ ]QqmsvW34fq}v. NmF B246 aȉÐfAxsl,~$M8 K@"Hc# %hQXgPFvq:^ȅM-{]Ij/S ̪] ZI^WH#o>E8ӉF4=qF#8}<l[h[=<,eg12:C}y\WV=}˺"HȳlPyEw9v^G M"v`]<ld#99I 6HIKlKmC$'~gEqFQn>hq\NH^R#~ų y:Al>,Fi6ӉeyOyc@f۟=ĹO y9EcEi7 /+K:.qYUJR׉NA4&eTY*$!'IJ%N@4]ó] $'j ( GT 9E.QI5ygu,(q!WÀ8MөX&Q`aATX䂄,^h'|% Q̢EN# *L ҢI/ê`:aމx%IƲ,$I(rAQ1MU0X EȊHJ5w!r!$I  fYvUc~UĢc-;mO&%BN^<DHh6 \.(̕@w!D&xe<[wp)+]ՅY[ܹHŧh3z]$R%޹FU-U^!)iI j X_[w{cPE'ʪ¥+L-W#'R0*Ͻ&qm]LʕkWyEp] Xu}8/r!s+F,+#/S<{nQC!DQܷν}zp@Y=yXܤ$IU=EҌ{cS#G VN>,o _& Y3s\{RM[_&ڠUTDEv٫ fEdpD|8%OmꇐG6Z)? )`۞ÃD+lJQ+]--1=IO@*V]byy0>9$yag$YML c5Vck+1.͓Fai!K2:(jl@OJJH ƨE{YU Ԑ%i^~4[[qY311~"+*}48C7 ̊I]XQvhD,B$HJ?Wxt}>c)$f[g!K /h$yQx qHi# q?*4EY&gT:mIzHl8A IgM~hG2yf B9t ԣV%DQDK/)gaTTٹ=Oi:g?8|ZAEjA}®m{&`?ߵ ҀkF$<'Ip{A(Zl֥H&c @=(t~T!!2Z&n9X~Dʼ+?\4!I28{ RDGdZC(B5"/9G@rE/q06k%&:'Nb' Ç-q>aZaɳo, "TSU?רk%턈$AHf$*M!>MPDCF$-`t;]jiX2b8Vwga !K"a!~$QTj $qL;֮݊5~_u/^ߣi|WZNx}41Bc^dzvO|h'Yx*~+Fq8N'𕯑}~ !]}s}\˰5^z5?ڞK\'| a}:"[^775v@EDOVɁ_*|/:?ޟ ϽLa½ivw]hF:#3hm095RAB* V #)'>Qg^/^RX,޻˃寬]?wmܼEQEq45itsin/}qgi8__ɃYܡfY6?cc;w660T^ODQH{oS鋄GZa|#FQH LMmh̶jU>}/W7h76[dIA2@ 0SM8Y"n+:TbvZF$[ U5jSsTu;x|W^y%X| Vx~a~J9&+Ɋ$Z(Vs9CVVW {MMM$gyI8zgyW;PynըX/ $&,z=<:@hضDIm;ln٫ iHu|ae\W7de+w~W<5NƽJQVt1Xڤl4h{|泟gz8<%PdYy8+MJR}j$Id#C0C6,S~bp'q]8 OxRp?@*a&^4͑$QRH0CҨ-{ ^3؎{% ;vۭaNA*"Y?qaL.EΞ3G7LV8C4E 3҄N$ɩIG%M6V鶶HFB"GӳBA5E6E$.)*R$EV5Ȓs͑Hb+xv(:5zǑsxp #B<&JY(Jg%%D$HL;g{ _۴{7I=8ɳFkWѬ1^~v#^yETED:fueSӴ;6FAv%鑅N~GQ!/sc/| ~O믲|+x`BA.A7q$;#Flv!~reed<(Uaw;Nѽ@l1/p EvB]7 >}7`anݧ66$,.-ܕUESM/Z؛FQd6V-8]V5H8u\6[<5|6{wZ4 GG.` |Qݏv lҩ+xsDzfi80 C0$sTUEӴgp;=QpgT9=nŧ8.;hgdi_~T+hH ` wo^gg>:ŸPX I(Zd;|zb ,FYsbr$Y"]"ɲDCGWtDgθ"فwE;v(qԇuWx;JS\BQa)Ϫג%kgIOb+I:6~< 7޶ b8̐ Ba1Bie:}/Gq>,`/]ݏ"W&^X/skSR uJ';Z),7>KܼyϽEytE=82odӄYv!ݰxXSv%*kkB@4[HiYYLg'?w_f}[Zerf~Uܽ"˨JD\qkRB)@  ABD&&Yb~vvE0"tcRW_iϽ2,LwzḺg]cueAHs1,˯|6}lUO) 1ob/hw㣏y~GGEy( F]jV<9*.i*o.xa×{eض:z!IHcEQtu < |Zv*PyjG;).rO4~ QYyQ WPE{4[,hI}b$IZ`aZuqdIwt;! u./,`ha*QcZLM&}IFΥ+W}4Mڤi XJ7Ccs<yMd]Yl.?n;Χf?B{|گ'xz&~hdK^&S &k.z6l<hϡ$U,.J& j(Vsˍ$9_AMyo.|s6Yz8qar%K[4M7\GVAnK/̥g0Uac.Ô22R@`nn#c}c,i7q^fQXnZisX,D"]'#f/c+UZ9xyH眸|GGln6lv?k7TRu_'?yٹ؝M'oz2kwɲ$$>}{mJ& zM0>1Av,W )( +PGv"iY=}AUQT07J#vQ] 1Ӕ IRQVH4 e UU ױ$}qp\j # 4!#:6I`U*eX2 }?0ƘG2 afj{޸#j=*}wG۴ :8q\|q'B| y"Ӡmǡ)%;T wv0j" P3>>ȊLE,hA&E'2YA&CDgӱLsdId}evIs Ա PUzش-IR%%&(! 9H[[MlERtH'\TE% =lEeDI]9sw5YJEdIZ'@3ϧߵIu * TQUr<7D |'$*d)A'nk8a^ֶ[Ꮾ gYEog4&Kܝkޡ9?yh4#Q9z/0U$ =?'+h+IW]!w U3T1#ǜ&b:|/ q5IW̓FpAXJף^r* US#INN7n&M"Įk۴]Q'?b0[|MAMbDG-اk;x^G (-"?BOtk|v0q 4$KsArVWfz&xFsho9?yG؎KIm$q}㲂eYH|rEQ05$yr ~[LR!M"(0=`njAX]]u]]6̎5>ȫvqoa!YFUTi?g ƌFaMq؆I.+dV  =PTv% H#@q}i.ay1Y^x\ 됥)Y^,`Da9^9ݾ a1x/P9y 0/s@?@^i^;q]|`Ԓυ=G]cp}K gPQ x ou]Rih(*I4$K=u\~~\J9gYHu:G7sxx0`ksoE'_ns^{~ b[iJbxsmQEۍ}ȳ RqRl{?0` "t?[e!Kvۇ_L^y]:QDŘUcݤ;IѨ}_ZߧV;'2_( U^KRoAxie֝2o8W'hKZe _$^PGwFO(ӓ4[C,G:S/)"?GTEnwhd᝟DkkZ85SF6lj&#ȲDӵ}0D"!67Xᩩy^amUyt $Lu㐚1ųiSŝ[w „VV{;X. LLL'1qcGê'rzIUUTxjjizQB2ƕi2YjضD?d/[Qz:#h4sRFoT,2LFL=ua'?OdϱBR4SS˥?wkϿ[/27aho3schi7x0>1"tZtBWE&qj:UF%Ya|ln?ӟ$V6&3i60:Uuq$q'oڱ-$N]5X5y#|}@{$N:IZ3;ɒ(Bŵ-߻_P3UN"OkL^4Kp6a>= 'Z_a%gX^M,)bXZ$L֧p.+=^@(kTCBNPF ^z%Wpgm! ):aiJomDH}kN YHsːU{AAF΁gSD&E޽ih5(Ks4Mu̫`iQ9WdV+-/&vg|h;7%_y}ژU||hXaOQMTqs0Q$ ƍAnn}K GQ8  IDAT4<'S'ثhp̲Tl|,y3>>7 lFU,^r!+ DݦZCJUUA5`$OJ^z\oi>e!xyAppCpR c @יPfF+,CU5.]HH$IdynZ\{yꦎǻo@@S3dضC& q9."jl 4/ aѦZcb2V#eE/EK\kIYU<Cp.e q`Qc&n`h Vn yD8Nf?Ц,\DUXQ4/]f<'Lu0c< TT!ϠAD7Lj5 Q!;-bAZ^h5x݆ýz}:J44~'$ * ^ց|׶-LIEr >h|'F;fE!eu F!V" }D$O|,9a!!* qy@Y􃱌kr{.[xaHӥfSαx;=]0$fB͌HC%ݹw!!U]ck}!Oypv Iܼ}0Ό΍lmlA붹̋,-/in ճ >ۛ,({\o+]ij˲0 usRԄ)£P-WDfcd ˺Z?8W<yQUJŢb(D$OE(dqae,'r($r Ii < C%ϋwahꨒHԪu4MA$* J,-<(ݾ(It2y.RHH>Y<&#dUǬd{6WqfGgeIFtttdI8}j'hwmU2ESt ]0-3 uSӌO"@)%iOK{q*:~I hl0**nCNO)( + vpXR仍oe}d~rui?/8$͍=WE3}qjlŻ7w>rnݺc ?Ηҟ1Õ|>]PRTgTSׯ_7(aJQ)vtV 錄4W:iUv*E蚎j\t*NlBE6W$OVB:=UQ ݪ"!2}$"tEniɩ2=5[aHyLNQU+<$&|\Gu 3K>^f訚r|@gaDȩD%I̘E>i$KȦU!yi8j~BQi۱{Ȋ nE">nZ1tq@ 6Qb^IXG||D A }RI@>|NTv )+tVb~BT5Q(^7vlǰ~ASZض,BHd$"H,+g%e+NIY%Z%8Y=*$cO`ll<ȡZ"T*֎yd~r[?}PDV{ }<8OѸ 0dvUUY__ݻ$$@m[,iਨ:>j)AE%]f-ʈR t\/6BIEt*YY$Y2vU)QX&b^HI`)GbB#cz.= J$ YFfIYD0&$qH(HgY%3d]G C[IDQ0?7ij"+E-XfufVQ೾h4;ױq\?ѵ]wd~GV**ޛI}?=3+h>XHBCh QDP&MFӁ&Ln Af8d((nC83 g`3=ݵUg{:xDRVtU73˪ϟoÐNAAߏ-( Q4A40D{ frBˋy(}P-F^YX߫ff?t[x?};X8{~]6Un\fu & +D:>˶A$C\£8I3Fu]nMZeA(v9P>Ggآj*o X_)J7n1gw R\zDI_9f- }VWVF'YݬC6(J&H!t:t;QVUâߣݲ|L-&(*"DFQ\WvH<%ILIljU:xkk("GF"~ot I"Fꠠ@el\rޤj:_%xlDjg.Qm0;S%ct;mo}?.+Q7^_#k/ ~ V*(cen(~u`rf +Ly9?gBvϣə*fΛo{>T*=룚Z,c*[أI4r77V4 \2FH5zf @H] ÈffKD9덓,K&fnWfYש՚T 4FH&gE4kUgOQou81]E$a\Wt,Q` vVdxO=Jѽ l5bEǹ|~z g˔+ZG/eϗ⨁mR>.X~beZGQHLGNa3bx}NƐZR;U|<ċLBWXYbl| *;w^rIvF!#bd#dRo %8~5` iT$c蘦A$sMPe L->u(Urرu:u7닜.CJA]NvmX@VWpzf~Τ(A/Lc6_ёhMSXa2Rٌ\`56nGx"q'_Wm W=6n4YZ3;;IrL{u?fn=ǜ )%O>8ob#3ܹso'ݴö}iQ1׿~$̽F<߇iQޭsE^M{.Q#G٨5p=);?0 )f tj eb,BS!Bt ~( n#e,]n}TM#_(LhзU KUQd͏=& e? Z4E#1ꀊB"j?sr+V^o-!VDh6kn0v3\Gc5y&kȐo`4|H~EHZ(:DٝHO~q٭1SxMͥav)/}K{\Y8}CjFZhTs8/e'gr@ng[z0L9 $^oFI|v ~}:xR}A<0x ub߰|W͛7򗿌m#t`?)aq@Qr=ɱ@?t8K/@̬EIHu gIK6bwTv"l'e-8e!P)q=6a̞˥4 q#V}|̩I6Vx'hlVA3Y_`T$IB:&woq( c 9;;I$$HWͩqyFMױ-((U&x%X1I,036I"1u$|;dy$hJ*&yge}sDoY(dLV8es^:r]j|g0^evܹw+g,ځ!ib{"af l[ ? Ѽ}/o˿z<c"I''d#vIs`?sI/$IK qims^uvϭ?~c简1r{iIAۃOVzC0HCTUˣ)O! H3if|DpC >xs 4@q(?)dLOMck!Tq=3VPq{tM;ЙΐfPUD0-.BJUBƩ6Q( IP.311M.kSo4-R%mY35sR1O.grȖPTA4(xPUtEIP,2{4nNs-[a+&&U6ju09(r4[** V&CeLRiVJ$VHTa|B>L<( -]Ӊr.O v.؉}F}vcy* ~ȟq8":C`:S(0SxXI^{Y p{s?wc;Oz6墇IN`[1"-UKؒ8~,+Cƶu ȧi%X__LK$fg֎& CGQTlt:b(X[]nGLKyr s{8&gA G8I2Y.| f0drY$UQҒ2`V:t2&bL$E˶QuUSgR2* B's5 CyۢP,ǢٗB$NB"D~_!)8l(մ\ysb'vb'v|_de/ fNͳrtN@aGI>Lzoʞ٭a^%*Cx̣7۝=>SG,AhE*!L($HA=Ĵ53QH V6JBYŬU;Ԛ,^f8}3nqѬUI]ƥKFw>iQAf*'׼ڝ0n(m [VɐLf;|R:ap4Ge>KMmcha!nDԩR$":N"Vo>>AA5)%V.ހƲmtU!cTMG]zmn^)@<@w1Ia)2t; }]BJɱ]jQJ]SS"{nv.KB( Bw7sUӑ2!t]O[!$Q4"_9; ^Ng;/ ?sG+WPp]ff>q qrC}6laGXYYn6ݤ-OTZG)Q~=mLR(1!؛p s(080v)1N7WqsQ$3p]F#ռKу-[O J~B }5Հ8A;; e?ȁPy<{aylg^:2 Rv>1ieU{a9vDיY3XG ;{3|"E&3Y`EZC9؇H هvM(@UQA!PU-;*q ^Sh_`~BAH;0 ]'I[ҏw qtlBʄ8Nд-R&MSq]pMgoHvdgW05u2M4,$XY;EQ1MUU ahH^Ѹii$0}bgs2T g$t:AQ*ôp{%yJm'5ӲetQddGOvT T֣loXޫ:J0v;G9_Vo $Kdl Fŋg{W|b//@l6™\Ѿ!NKe6'7Q:(<Ҭia8BRb6w+_ eaH>a?MqJ3~ޫ0`l(tRӝBh#k!L.i/a%`|l1No~i%r*iw{E4hwL,)XYz@Sdme:N]7cR SװMMS=յ5:sTݲ;Eζ0p}d|"xd3@',ci IDATt@ A6'k[4u 095@1a}ez=ru`znJ!Gcszx;eaaX^^v0 (=Ӳ ]VVðd3^0-Oֻ^BV:^1;#Ѳ* 90dvfG(j㹌,}*^/_v966O &g0_XmqZUD%/r=p4KKmlrq{qϓKgR6#.#Q,0lXzxs^O?cK_eƊ:]-7/x>.\hӼ_߼Oݗ6x _<?䫿ܹuX7ܩq.S 36Kح[$?O#~wz~k/wH7^{}{OͰYe i߹K>k(6_ko+>ڟ۝!~1ܮs* P*7w(JEJ5B)7QIC2mU4nraHmE={F8$I*!D bu$(꧛0 y6ai6LOOy1A2B8 e&Apvk}UmdT̴, "FI([D4e"FARUDR Hc8EAu(:ݮE= ŘS;nk=R6;>|> %'@='UfsrqD}C렪:BqtUX*ھP* F&CUqsjzaz|R1GNYsTz,q|W~G|_^gfn_Y]/huwަo}.ᇷ?זH^&/=ڭ&NCiX5RvR>)<,p\'uEQxjӳ̝qs$ vk_@&~>g&0>(" CE6vM;y qn~P!t<~k_q^y~qizO[;Cellv=_0qo5 -!%0p> PO@U8-i 0NhH=Բ8A&E L#qZ$" o8N#40fcʩS N?!ju뺾nl/"0BfؐIT8-VGNn_MPDT F34L |BBFD7 ^bDS5%-@IL蚁N!IuDAtdIC<r BQT^I'GQgd*"b%Ef1E.4ʀ@' (KEL&X~R*P$I$сϑ2#Ltt6x,pΟv#fg287kU{rgyR͜'<.}_כhk`3NJGpж3,9ˍkW  v ۶iO稈ǜee177Dž zcH)7I|{#ϳLıǩ ;%NRu1 (wnW~W(Jz=d2<#">|a1f+|ROiĩA cTUGSM*L Ʋ$ 1qT  2V2͆ <ߧR7{a-.'qY "a=8b;^RLOnP IV.aFC1L~7M|=J`YB|"t?$]FTΝ;KۥT*^LE,..( Q*<{q%^es$=I_QOT|FRbG cXF|[+ZS7ðly=dWDHXsۭqJ$vfwVKdp;7]>CuF 'ʼnc}bpvb@05=™k#fٹSI3]}dY|M=z4Z+\. c*7@&N3xJ%JhLsܾ'^=qk4A-CP%b1M3=HkH!:QJjd q* e 4SBjci/hg/ `Xyݳ>8 #BxP$ըz/gnw{ln#:0 >vm[y_#v<)DzRYtڭ=It^: 4 UOV5:as \C:΋/vט+zm,Q7zf ܸ 8)<q{du?Ix6a6W~#`'( C\~BzYg 3;޷eYs}*㓔 Y +t,{I 6Ӳ=k^y"( s9Μ>B2y'!fJD 1,,`YqPNŴ,!YZ\"ӧ1^)!l,QkuEUQQ&yNs;˓+SUe{^M#{cC:5~0aj ;N, s(3||*g/a6ϝe}cb :Yۧ2fS{OW1;?zm>,po'sffXZ|tQ6&' wK Q^y2H?C.d_`S423=9E,-$_(y}6WYؠVd3i#"p=Mӈ#;8پۧ!2YbGbV>GPDu*1jrYj+eݩ2knڤ,>i$e͑f\om4`;tTC ^k)FT6 84-T@=M)Ks9DEWh7kQ5ݠR`V磪R\w}t¶l$qL͎`Z*2ID7t(4m,SEQj*-|?TMWIegd=Tl>xPkRV2@qgDx|6`P\)L}w+{jR|63b=brCUhx~K%,$|4C'=.`栿. }o(dbBazLJҨVOpzz(ZdtxQm4ˆI.=:yМ؉}FQ2'SS|UqSv'0݆2))>іm"40 LUX\Y~'vAX"! CN TE%AHĉ0m4U%QX9+cvd26R( 1tiYEz&E#t"$Go9 oB> L `w̓@.dy4isEB_)ʜEW5 iٜyb %.ŌkWYɗ*\xR*aivP5 1Jj8{47Z8lg38Q@$x~:g: P;+Wp EYEfF'vb'Ճ?cݎv-}Lru~iԪOxGq$!ꬉJ%·xn/KI`>G||E7;Zop_lKVIβvd2A k$"T;S$q]8 65CGU4ME2ej((hFXaFfe{\~\&n4$Ɉu?0;7=I#=LM!%fl"C#-.ttNmeL6tV&K&C4P$шXbN605tM٘F$t6n]I8IEUDduժAѶPu8i6{$IDX$+P,SnŶJ EUiu0H=%%&y Ie| /] w%itX`动1~ Q\,֣ N/uYviy/, <{'`N3w#;UU'DQȖvG J?Qis"OӜ;f~;N5.^YM'%<޻*K<{0SDb$^LEf ^DHk4U@%a='%TT UIN 0VRinmu\?s4#(@ i ;l[Tt(?fryNP26^A#8l\ͣEH-#^ߣuъYl;KP}2vr(R 㐖bV }+cUe|z =:FPtLqcAmRAWT C^k{\V0I RD{R#_ii*zDQ 4$>EGUJu <0 CQL"<FQ4<6($8<-6/)oJ8wf? J܏OPhbChFwPfCT__oרܽWh7u+(>~F4Mfvzwi/,BsߩSgc!}/@tlfllv}(Pm}s9߽zN} ؑ/UƙcqXBpj4:\svGW)tU:T,Q.YY}4ʜKS2+*VUUPTI6vhIi\4E'3;v&LNLj5aیKpjfypQ%U.OʈVg BB;7έt:KxG.{JDQk$7];6Bq-!0ulKo KAӸ#y^Ra50%;68P`e#R&8h[NקV"=8s}=OfޞmR$8K*uۤnRu\]%=X*JG^wX'tx~Ȇs$$TO]T5h5uN)r4hw;h:NnӤnb!JU\' BL;GNU4CQF҃ Q,v8QQ\tSvw&wq><#DHJtτn8}2SE7@=[f6LE9x Tff*/?:~˕1Ƴ|TŋvRy6^>>fe*$ 8ڛ}[|+_+}̌_~H,noSgM\iz+vJD&W!;V`gaH;1)K*b^DB g9.Sm(K;!gfYY|D̜Z\cn (өrޣ9ŌML3=NE3?ǃdM&x{}榢Ԗn\<>+/_dscOk6S|D~_lP(p;1.Se Fu4ymI0as 3 E"?|l%F ܼq_;K4g&EHb +åWШUY]ߤPOQ% +Kn>z~Q[_ G97GR :f}W}ݽ/ cT9:V;x}j \7cZdK t(G@ajh!$͑5 Lo/$ #jbɡQ"i6N#~v͙ 4]#͑ &Jbg2~~uu x)=^-q<2,KIfgY]z@.LqwU^tKwQݴsOqPuDL;H@IξDF BmL "TMY7b0hTJcM8&Q366{\lNU2Va̒XX %cF)%q ubNTdm⇂3sV87#_(!BQ7,rfii~+)1sW[z)Lοn215M/Jizt1f椐\xG0>VQO1 NMvZ|6䄅X_l6Oƶ l"b" iS)f[F1hLNNs: |Cqrym5τX*_''Nᖿ}2l-@X(ܽsAWU{Ͼt~%gQ{^_a'cl&Pִ'J@{9gb_wwڟ' 5]w[y20 X\\#VR*tT77 i։DL0Q.fp5|m}EYH`gc}m'ndG}37F*iap>qUbt5JD^zM8dquw2dH3 +Çawm}ܼs CzF>kS(wwK+7eL4;;싖 KoSX| KavYZzEMK%,i6{'䌴 =ǴkkLLMI{zvIgs Dbgl8Σ%76( 4Z6VX5s}t;4q7+\ta_W\g|lϗh7@UTJ9Z=I\zq}4r@>ZzpXH}@2ЬW ?6nt:[iVk'#ekO9!|wC9@ lFMH~vWQ(d(m?{w~{.BbTfwUu0 n޼y`TU+_ .]BӴ GIFMn߾M;z?13I{rO9 ;뎦i_!o-欭p7sݜ=ː:lǢ|wr KCz&S> XfXɈV) oG ˗19V| "<ܿF RabrW]24D!} +[S(0.^D0j"g+Vck}յ11EQa}yR)8$LL>|V 0HR!ey.q!z:E՘_$NM{%2fgf1X^]Fq}0٨=7)2 KWR/,?ygvR)*ܣR*׸x2&V!R޻ƨJR!${q*`uk}0R%a19V\ +bWku'C J_$O=pa7?4 R{՘GG;_ҾP* |->Q][r5 t.ˢCx$y^/$rs~/ srQzT+@]KvHQjEN0cKQ\)n*T] /ɩi1tUbJ8vUr20 c S%]<ݤZah*iQ']z#2;fL1&'fW+m\bixA;-6Z9c12Mr"cqZ耐|Q_TdiVU4B)IvSdQky 99=f23.nJBJl}7@ W F_xAoLl/W>vHPviI6(ϣSxQoT"#Kwx?#?YYF(ʑl7~+OYL^ʅ}%S>w4wmodw4ɰ9tO=ۿE;gVoX~ZK|mv`!@8 YZ)¾VAC.zZ7m`+%-:\#=mt # @7u<֧J lxBJ4U!#c nnG&( ildYB(4]8.Oe?w$;[(_a6KG~u_s=M~Y1gPT$ ]Ƕz UM\*1b%L \ۥ> i%$ cv"_TH˵SB2958q Y[8!$j2 4 E2<0 U091A9pu4]Guᐭm(:gӨv:$YȌA 2RFOr|.@\>S%9" @?Z';q5 `ue !HdW9)$i:DŽv<~ԃ;= An!`uu4M։㐵e6 Q-6qg \G5)I@w;)%Q"H@4}ϑvy΀?Oo7 [E8 ث]]9##;Z|iGl/#g;<:6~ \x,.>8,PQtc˟Ek&{W^\딕GK<{?q$H{FhU*3gss3:ۭA*Z sS4'2M0bέWx^17@Y,U0t MI)%Atp݃nλ?~{8vu}'sXEa||FJ7,a81-y8f{}9>|FD'J%痿/tzѹ<۱I^^z '<\\$JRd拔,;>%bM˼˞zNg28:^pAl>'/KS4%8&hfq8,>g#6Ad3=%Qlm2w“{ "p\7 w,u.a"]Ew7I>eU=`+RLLNcqJ2ኪD! zvSt{}*f8*&1=Di255,s&C,e{s ПCU0cF^G,ca@4M._̠ۦQVmsxi$c:aoJVCW%/jƛoARF%[kK:J*jlw|("tZlwzdB% 9qܢ¢ 9L";;6^08Ft~!ÑKEhARѫh0L,M!$I "qN}i 3?7IQU5gE:Q&iN>C8;Y"b!( A?u?t4L(3 )1t)E!"D8Pi;)y o37UG/7[[e.kiHzE{  vБΣf4 o~M<~XsM^v'3b.\{SAHB:|vީojfFUpz['c[]RI%ZmNO0p\,~sqwP_LT z_vk\ϰYB淾 v2hoi ^0nVwZ$w7@,8Zk_~3&.kofx;ߡ?Sm>R-mH(Ο7x{hNFJf(0AL(vU>G_41qDe_le@xk(Goh}ѡEn WW's'c?zD*+ }EGKMd`L6< xM<9w`MF]8"I^YN;_R2M0d R\>s ^J$! n}=L"MH7KS<߼O4q>{6K#G'4]4ͣQ^3a0#j@7yXFaܺ}$=\%d{a;ӪP*]ȗa_8йz247miuoͿi)_{,MO_5p"ndTbh|RYas}$$iz@`g癛cE3-bP4ՒA Y4'&yW? tZi)f6&+kH$Tk$??;Vu7$OձdIvpkYB\ajbi"ǟ9Q2*e wioZ׮;7>~=2j,MPuLMAGw'u_*@x#V6X_;$x'~kːet:m֖="];mz=>,-#Z[H[v{DqDĄG> VVVt:$qL$)Ve("rк(i4(Y*{6so0ho(%^YBEi4I@ZR6Mlom*LMO0#/,@!DF34tfATex 妆5Gr;K0Qt] a2_#3Tk#?2VUw_J""8' gkj^22 ԅqvdMk}S$w=}3oiJk{8!")wIe$AJ1IimyR 0$Nb4;986YYF$AP 8S1>ϱY,MEλw$S 322 !N6 =Ysj(Fƞ_C}jΈmF zB7t4MͣB }w=xm_uk Uey"I,)c=M^%e} m{ǍO>s T*ebι7X_m%S;=/=soAE1IQV<'I Os#<4 lFHIclnk,Eħ>T8nFnk!|WDT }U  RH2Oh>9 )%i'$9>:àg7s[T!WKvpeq2ВTȤ8OJ gBI\jB+^]N#6y0&R/#q0A`E&Z,hmoߥ#H'rV4 9#h!dyDqaħFnR)W!H2A$IL\$JH"ubCe(DQO'g>vGNgHOv"28,HzHM!<#M3Bg:.Z2 wY}/@4/fp/){`MYwXX}v̠'9ym{x4״>' D!,`pg>QL9 %MimosO0v~G3Sν4~>ƉQL;0/UU%I=ɫ}k[*R1Tk 45' |oxOD$9@8:BuT͡~uqN l ǴAq@IG@y-3J#IDaH!IS͠!} *C0Q? 5H!^`4벩JQg0wD.e^U*)>>E+tZ*^)#"cڭma6߶Y~UcLH }:-z8U%\?MÅ'G?.=$P$o?\k?aoqaz7rE:Un޾,V`DYò0 TƷs2㞹)iy}v1ʅ{:1ƞiJ^v6uJlwVi6X- N~yx [@E$fpq(<~hI\bixTa~nM{1C0 NKX:͚p9rijwyY |]YSdϣۼ˟ݱՕe~w?/忢T.mԞO>s.x=dks7֙f.`J 0(-|Dz,0@S5> 4}W7 ؾL"oOvQ**c&^@20Qжq\(LMѬZ<\|@ paMS$S5]Lu CLC'IBz>gM&nLѨ6XJ$aa;!R8 e"MSC7s$RѩLrG!Pkb2=7G.Hv4B&ףQ _XJ|}M~k$ik6&Ҙnk /18 |+{12}8.a^ kgQRO1V+D259 Ko}k&oggXXzrzM=7ѓU._gmE?4v`tsIѸt-&+cau,,155AV߾v+\fI2Vo hTM0ddm%C<^!N~7FlD_W5}u䗹\0 qҕϹɇ|oAh!#:cVWN|YL2$.\dvvx37?GRB4t]?=@AÐb`JRי*pv^>bɣ[B4Mezz 4ju:ӳaYV!nذ,jS.Wo65 󏭣R4qfs\@^!0tCןu$)i.!Rep?!%Z2355$4!=0@JuRi*NoI$͔c)zRV{kȳRJ4MuU5ME RHE9B2Mԧ꟥35T?9j"E^{_=aRc,gbYV@H \iE)bw=Mrf#IBHFd|?35ӀTZzⱱFV^D?ve'wZdjnp2{ub<+\z§FghŹGj:sX:J1ޡ?clrjzDUz.aJfYsm ²,.\\8EO2kT5,=_UU##*f!fgK,,h6*(׮\EW3:CdR7g{N8(7Qs3#Lm^E(J}T ZE}JJR99蔥$h%0ʥhtečM{jT*%\O&g& !jWڃ*.x(vų/Q F<\X?ul_k7"c 6J[J/50<~O$i* LCPhc65B#Lc (vY4 CA@dYޖNQ8.ab)i* QCQ>~`IahZ؁*=SmE7,8DTtC*Qj5OL`&A\ M V2t4@^8T^?=O^8L C) <'E0QhEsR4f0z4 ڢoS4j:-ۤVfsUB:("z.)Z^RQh4ǩ,G3L!}Mυ5M'}6vvNGi CT,%M3J >ۭ.RiۙIS4II MS܌ EOPt}X*ղŰߥsL-0$[[خ_8&L /Q4 ߱"X3wEQ =BfÿC$QOH|p,>Y>wo|ɉ1[=Q0Z\:O3)wޥ>[fV=f]>[k$xD:cC f{kwzLNMQ#UP >tt{lԊ,=yDG,/369`ey} i.Q)*$pc1lZmN@A}(yL` ޾l8YYY9=(%~Rϳ_TQoCO_ 6V dYOoSnm   " b&S(@7M0' 2~;Cl+Oԉ;d$ }'CmN~@DqkgXےy (zascU@T50\;-}V,uDOEID$Qt`5r\" {'uIӄ8$}p3xOTi6PH!w|e2F=M(sV޹qy O6WsqIݫyC`LNRBVR9!B|I"i( Ic|o:2jJ*) nܼy* $U3uJ " Y*ԫ ]eki @(k3;3͠A*9iFF1 M#"JeDk:j00- R`scNw.Fn\|:coW$Z /^ni<guz tM:ƥWiVM6AUqzn407C5OϗA"u{co?{'Y9vA`i.qn$ic:;cgۄyuq0܇m>(E*Rwm^r} C9w=c_^Nl Awڭ5pgmAwHGVTp'w7x֙y%C>裃%\uLK4gV]r_.\;F9O=(Pi:?G,Ń{wOQ׏0\%ocHx!>{õdYC.sKB?Xd{`8n;UAP"=4;𬞷;R;$&>>V, lIخxD *| 7Leɑfi86nQ4Ͳ(<*RZRRll23c@Nlc$L)Zd R3G py^;)rs(^ 4 ѻ>AMjDsl$iJI'F4<68M% S(̣pIJ:o8XJ 'cJA^?tRgam]c,A7- =,י2q YJW ]/NԜ$jn6RIp8$H_OU4T@L̒k~0M\ǡb6볦EZmFRa2hVM7; b!!eN;ŜDdRBQDV'<ڄT5^-FgA; vֈ5&+ĝ7Ha0D|5猓$O6 4%"BR.ݰ\gx4 ,c:`&q*{)~xStR%OB `h*AavTwj0s E!0ERw]GU{0J, M3 ݐ)`~RϻieIYO'SMɒ3Zq@V!p9킱l?RY}~@x<7$.V(ZG3 yQEQdWHu lO%X2ejzx~Yg?=Suo}{yx+WˋJ9ܹ\@9 |uKU$KjB%ds v`~7:?˂wOᤚ~_:-&K՞GEI-*&G>cjG!6c~s&dハoW_y86Z)ÈÕ t`R+,>Yi.~g6 ~YuQ;t謵v2{ _c(k{NCd^Q#˲(/,B+A=a"(_Ƥ 0`/* uYLV!I|,>R=zCEOJ~M/dD>wniQ'U!Bn)B13vqMq OSPf)~ 2f LC~,v:ęV]s(#DS%Ndc{c ojuwZG8V0tz(Jx0L di)^^Ȳb~gޕ8avMZK*7)$Ib;t" < y1Q8c^㧜POB(di7lQr^g/|L9GJILzoL4x,ԈEdGZ3vɒׯ͛a@RarvGKT1 9ag%$*rwq̷>5*tUbO!ќd0I|{k U$ąQ*.W]&FV+ JEaa1?;Ň$ݠQuNif?AK-JAgÚW$Qľˣ@m IDATg.*5!.ܳ12E9n+B-;Y"ewsNI<5u4RJpy/]902^NwLNP6 0D( %@Q *u0h[=AlxA6?$Ep~kܸ ѡegs}kT`8dh(0Dy$YA\^h R :n6VGJ$B (g$N10JHMH#GbðV*T%hJEQ%1++t5ľ*{ۮ64%Nb&PQl%q7ߠk+3RHjhɪ._YHx\\wZ{iF {qwyH"fGKMRR'w&7k,Ϫ ]?9/tH^A130Wn67ao :h2^}üF$E!YۤZo;QhTiTF8ս£.2|ϥZb9.ms=4K>CV5t~VUHS?D`hg:k=H0=,#L}to@*ڜxFm[,/>deCKriٙmRVv{;i&K|@+",aD~Q^]!LHi4j8auvq$5ڭj=\#+"nHU_[^ 696 Zs5Yuuj.a3dkMr1$i7$ڇ%X1lpkY]pzNUUZ8R",-HEcQ"iL_ JPבň T rbD! v?L&ϩqDE@TTEEEV­`,' ! J<3ĵ䴄Pcc9T IZ,OBˉla}by- Q"b2 yR= ۽RwX\cM{!Y6]zK9L w!4z٣|17<Sh0%m@d~vYRYdEy|"Q.@ }i$ԪU `ueq|[ya 5z}luqܹ갎278( ADQ04N{{Ȳa]DcpxcյE|Aaa(57QB"aIqϝ{I] ϹL>ϫž6(1 >рs6ťݻs{k7 G /;ϣ/3|&yz`EJt7uxiǰȊiгtUj~G< בE0X0_nshhRZM X H(Mk'qU*ؖa,-SQUm9xx6>ӤQ:Au=MQvA(\@D1k!# `5=U@!pBx&찮" Fbԑ0s$9bwv QPq| YY穚P7 !ӝAn JXdll 4_ί~j:' vߎmc/8I>e\.̜Ln%T×$YwCoqg$sI+նM6BCʫK F^aDR4pOmԙt5j\9OfXlio?r~x2MZF7-2IBY^;,U(F"GGKsgx<"8&8趇yh8"hx\vX?"f{. Y`o6-5oC^Ͳq ہAÚG}lD [": Оu+4.޿c2`Z_%aI6@|LJHeެ;n ʲE|`s9sg=djmۘ$I}a!.^k)Ξ;?G ʊB:ò,Dҥˈ={ HBTfGڏx* tϱAK1Q\W[CQe|kW3Lq̭T)dS覅aZdyƯ!?]mیK|kZѨ׈'hܧmX"?yvu F'Ӵ]N[X@Lpz,Mvqt$mN ֪p5"Z }1u8+KpN#ݞN߃SgW*_޸ WX+טa(+\rSyp]ɱ8r{|Je\Ad ,HfL&H$q. ɔ2,~G!W(rn@3K6WŶL$n.R2Cۧ732Ai]޺~lj>KKxOX4(; 8?q-FsPgz%_NX]BEQ<-7ۯ|p~A"_*ϱtnܼaXb!K2 28|GAB>q\~?#H2=VAQ@ `L%E !+j*wȯDf}f%ʢ* !m27U=gm4YQz(b$l9JyLz84el[,)ML`&݁ޭvhTkGhG@*V^YP[/D=Q3;?LQ!h1j!A84ŵ f!!z_&QBB]**T i\2b:e/hTW6$0{.X6fYI&b4m,4>1$E虄*W MiPkq݀@Uo<`GAKA=K z{|85v5myfi6~Owy|@{p['4 0uVq5T:M&GKdȥh&&I4M 4ÃÍICX8>0d\rY \< d:E!4tAŋHBHGV4ߥod&p:t8MNWOx.W`brT2(GFy~n!; P~!2RvA"DU4tVWw?xXM(Jk$ b&v0ݹBpBAH[q`uw>us–'w(Q^l$Y[ z{yK;Lښ^.?K8,.wzB6pϴtaxi#ffhrNg֢]J4aзLwǫʮ3:6=~݇w4Oe,l֏ȷFGc8\G9<.`=;QM]UVWV0 }i[e"R_[JQLc $cZ8 $ NF@Fc3Y$BQ(t:Z-4YFQTb ckۨXwShJ^q:} )mYS)D 4YZ]8zȲO<)"vbl}~PT2E>CBj }@ǒq0LY$׵(ERm5gp ?^qNY22i08500 &N7TY 9{S=b]^z cB(TLS@1VK$(8hHO$pö- DVTY$ED|,uhGŐYQ |wa@] 0qdUQLsDI&0 c#x"k;hn!I|BA\CD +2nz1ִX06Xs"}^"✍(TeaEoOa *w;_e'&+VY\x,JAT+2-fsu4-ğI$9$FaH*`=F90:F E BH&M T m UqaG}J215yRJ(mZ;(;>.|/lN`$O$eT&,IBӲ4EUۏyIERl6 s#[Q|d3BG7D E y'd/V;Y2i \LLm7eܛ_9/kR^{_׿:wKW.#:-0)*0G*^!d&"ؓ(d3)ڍ j"xaIGغKesuJ{sē){w; ryOO̔][9smjݽ9@`EB' cx~@>W7>WX)0rL|ᰲ;#1M/w|?ћZ%0ǟ*L+˔"(o39B |ӟk|>h#ǒM.guiΏPqE! C%bݼd!8Y_oӨ #oD&%re?Ufcn>Fz#vԩG\~%Ϗ0Q0 ǡzQa7,Eel DzbÿLJPfg=Byx ML%r2cv Q&4UEI5D$J(@ہP%){47a]$YmMy ,q,o]+ zSmaxQGKL"M:& \!!J|(D//Wp\^M2#L0"M`IQ=x((IH, SER M&f6(]eBnl< 7r$u]' Cm8cjnФ>HN}b' y,FR!cQ՗?9k>+|X+/=D,׍}v%gxDԶGڛgJ Lf0b MԻ&-N"O#.<^OMK-$2%. IDATsN 4-NB$؆Aզ8cR!OҞ5DZJeMneSz{)cceud2Nݡϒȕ6+AiAuI MrҪWI 8A@ ]EӨm峴m6qYr,q reY85(<8Ta+i ă*8"_}zsˋKgV^m)P]QM> Tj;c!s uo]ɵy8{TrI^h 6F}ߏj9'C—LE2l?cw2NǶ|Yʫ\z>ǁSl@q=dܺ(ldv JNl}3EщCaC?q;b[}KnܸaW|=+z(~7)"rĂJDqȊF&0]|)7`<I%$TYez4]жm|߈؏DE_?2Y wEwϮ {P~asD"8=}|f~nVq`0 }'=w~{ogSOw@3a@ppWHSmgx]pxޓ==5G{{^:V8t}wAϳǴ OF4Z yGWn9qx@8uzB>AL NOQH/ W׹r""WEL3#@(J;,-r53tXdqEؑIةSeYmHEdyVK+IfJs$^^@2//\>x('(I*ƓE4 4X\duޟX-|5._' ϐͯ8Y^Y!k\ps(Hi1.D0 Íy-܊]pf o5ܼ͆P^VO~O{^F艝؉ m9Q^nI7sÿ=*z@hm:*GcmuNgH@٤V#+c 'izCS}X*M2qC2 C$Kcib4B購g ӽ=c`0؇$q˰ #fsy"VzA<ԙ"0Zt},rư>'E1^ +P+kXwsͱQ*yJ=̅K=7{Yܺ<^wW{-Ozr?xb58'vb'#5nF " 8(tX`v$[_]Y;hym~IvȚ; {q]?ױ'A"⡢ll5j|dvz(X8yw;,ˡQaC;N_{tϥ ؎g}F>/|qqy0;X_~NY,,-a[6uB YaZaxR9>L>jP@! s c/pX]Y,<Ci$AQw7(KȲBˉS{:( (<;l3L ʓqGq~ytm5]'JPf08D9Hi{j q#QzOZjZ5hxMpjQx~tmcS3xtr G!'`) >Fp^_W¹k,=߱0emoW>s.GhneawwHqAq߅ "CXFu{I~(u(")MB%r&&&h+8K[W跟 Qp Z _ VOnO(q~"b@U^{U<[)6rOk׮¹>lݰ!lsJ,׺hZn*(/l-pPmos3ȁo+T˫y7qa'1_LgrroLMϠJ!dVcJOKW)Ǹ}֡95uL*ه>wf"w]eXȲV-zq:)5dqXwl6)ɀN|Ӿ qΜ=3gyyp._}+KKA,sۯ)Ois'A85}D,F.u, NZX hixze^j<Ǣi*AD9Ci1 KCTUA vR*aT4tZ6&wQaR"t]dr\7@\׍ؑdyCTGC|#@@%>ic 4UZ$/4TH$$q0lhbI $IЧ(?5!P5B!TƈIq/ҏBJ@~b'vbOf)S˅ LN!K"SgΧب8=UOɩ$i?r$hLLNum@vKK ospLN>?+Y_'\v2NDU ?0 |l+ ϡ89eX\ ,>|" |$ Ez.iM!O? &+`ut\&YDKr5$2~?">&aC=&&hZ"| 38xAX!yz7œpP x{Ns3|$LLM4d-N>w|)~_ + r,x6Vs\@2&^%Ng#+NĎfcǿerbkW.qĿLLP*"e"*)$>cu޼'LOX(SUܾ@7rXup\DQ\eB@hdqzyBß! !uvYTc3i-Nu:.ᯒQ,4+k4Z=#mr"B`YXZlV2deqkID%h@JȤ$g(4͞΅i(B#B?pݭށNt űJcDɉzߡ3ea'Ov]j WDa!zBa(DtD3M<` xxk޿OXSLjȩ(295o&b[1jpW_l*Adyv0׃}Bb'dlqk p]U?|؄aHW:6Ww ~Eyn=~璈'0 D2$ ^=k4E?'B|?IL{s&Q?+Ϗڀi߻CUg}z zXwW׹St=X{-r{3 Ib~1G, b4Z~uU9f,V vh.`8.++G[_}F9ٲmݡZmzm,/3 y~?d\FU5f5<$BDK;qX>wypKbwȩͳMnߺIDʖW9]Hqh$@.ьV/Ӫ,nwI'Tdv{=V~8a1gOZm?+PFڃ6jp6Lg뜿xW_{o3y(FjOe1^^a2$xGZ':~@Հ6 $Y"{fd,(I4ni4ҍ "O,s Bux*z_aKgrdRI\űMPTAHgeDqS.1V^0#,Qp,rًPf@.'L>{$O4EU"`@,!n9N)A$04M\;?YY]e|D<\ǦRm/d)**mc`͠ny4OZ'nsS/NQ>mBZM0 T*aȲL[~ueYu]$X G!G}UQ6я[a'QQp Q]CG(iiţ3$i9ϟai ~p‹039\)5<؀G<ح ׶|7?7;+k}aKKѱѵi c֦30ԳXCG>Vq{{]cK2]SgeevxmlsKʶ_=R9k-keʋ6eGOP+@ի8!a{HFLU˲Ŵllۢ&~w$)6M6!`Y `q~ߍB"ob =:~  X@=Füσ %~b/A$ICB-IHRA(md2ZL0 Qq6@ $;@8E& hcE٘G`pԎF@nT ׶\X2M*hdiJO33=I"ﱻGvנLc8-gTߧ>{QRp.I*dUHdF+1\=8'9D #wxT*8( ~o.LXp͍8jsQXXdw[fRiBrNyi M8s!!8GR$ocC |U׹p"kkH8֟s ,IE{v#T ۪]VT~͠U%J*/I~GM ?j}@(p /]bYn߾_a@M~/w%3\FI)/FLti1yx"ALSRd~vt&C٢0q7/PEɉ ܻC:_V)j\>K?F̥LoΝo>jyb\`c~7/ W'!|M$s"}1qSIJWxg_WIS%+^Sk\:z$Ib?~;_ 2"V GsY? 乒+Kf #I2dfUeW[T+-jQId2k3YKJYY$IF0syz_-#3>^~=?y—"(ǜ;щ}Tpݳ/vaP=8^HeA]_S'#ceJt O Ð]"Lnrt],ˢh4ZymcY+++~! Ͳ㰰͛7YXX0 R|JvT*QRB_!BC*a Air MW]y (g1D &}LC'2k]'>N|\iFuRFF6cfzz=;ۥ+!qa?xf<@mQ,PQ,Imcwl#%hΖ IDAT\AHIqbʳ#Ie\ ϟ=ዟt'RQq:n&oHR(D*} OP\qDbRe"bu}v翺MRSOt/QڝTȱ]9lrjL&A͒AȐfP52ϖ6쳟bhCױGT JTM%e)!%̢NY&tu'2%dN2*:=oVgmI|cT,q\3idX2&NQװ+39r Qځds2Y|סVeZ[蔕e d&\:w,.\˲vջ/^ ?.QA W0f$099"|gϞ冫APLN*ZrM2lT]c{2׮Vk:kldP4^M>GU[++o{aytuܨŦs[zHŎFdy\m iTT-n|D|x]bJY-4ī KlSzv$[#QQl$2t]ggYYy K2B(Qe,-JKZqm[2EOdolhu^,@+T+XjLӢǝcŷ]duie@d*tN'l(8T l4ZX]YY1\.˫ ~yqɋɓmTru SWquG1ZrûF:vBԪpgL,]٪ud""C\?"BUJ2<{)訅Q9T+B(ƹv kk+,*{i[fȿkPO /g] 쓟OTbzz399ǏvڐpP(Ni6C™bH\hfz*N۷os]LNƚt;wW_a6|i*d7n AlfΞ5:ʏ);q{H{@=K>h VksQ8ݓA݁񐖈B y)'Qyd aý{3ߎE˕:-1?ZK+[T^e)=-YݦYKmָwdתS{jZ|n`vNwͫ/N}O?}i9(Nfyw0#}ɗ: ^w +5L+a(˥iZLO"=~=~((膉ah$L`ګPą٦e@H% p0"R}}#=Hnݴh%JQ,)CRu\yXCL˲4^GR!F5MC'Oj5pU1 tH$H)q]@Fh;^> Q5EF:2b@31@i$q J&l,!Eհd0}Ups`UyIl[{P;f3(BFQVsOyL9$:ME=$=a^?E>85*H0:ՑQ/:( B9YvT%<'@R,u]o qlZA4u\;fpFQDy^ CacB\E4$W^4!/~=2xu}gY֞,>eQ,|EQ}0tf:Azm337m,ˢ儨 $r%vt wt[T^8}dIlߍ$,wHP\@ˎ!ŹE& I6Vwbo+C@JZN=w7sF>d!7>}c;?3"O(OF\ajr EQ, .n\.? |f'7ӟDfj 3bC6vj$~OggQ"y3Iohqgq;ỲУn?irbħ?ރDR!tL_Mm"v?=H/:Pу4OsuΪ5/~ vn].)%1 Z |U=!b0}0ݬ]m͍uZ6BANQCU\=pK{,R"$:2҉"/fR=  ka8 벍>F A5:+"#y$ 0]z}0^f1Tfȩ]TU%_'T>)+_2Hi+bҦ+K0-TM#i4w%ds`ffD2 l^+1YqQ.'4UӘ373⌠NS<$'.l%ntWk<_C.LWfX4,>4c`xId'XSW'FFocsvߵ71C ש9qwu "cwG2u{(_5;wyP5.<|Ft'pV zF^({v8vA|bk{I&T_`%0C*Q=&l94MTl6Cdf ׻$pN|nHG J\o}ۛ9(]I$/ R;[,n09wNMvW+8T:v(p7Y/|q:Q i0`~H fЩ(M=ȡU{eENQ50Qth}A'/A 6XӤۖJEHJ 0$"k!F AtUF.qcmE(,&8 lmWǸ$4}.p(q􌝵E<t@B9T([_]z9VD!Ϟ<' <COKWݟW'Vn{<($":lT}EG8b"<ZA(Cyo^Y" C޻2R=D+MkHU :Ail TjD;iLNM\F|G( BJ 099A" "B_4>@@z DV"D2x zI CGv]Si6؎C:!_( ̌4 VJbYaG"4bRyB"X,h4`AUո[ d8(x&^|D`cm3Neﯪb C|(4ȤtzۓV9d2Pqm "Lc:NXAy8g&u$!nFJ%+q=z˵ᵟQtƗ ^n`mJLXů\ ُMW'F':RS_S2 Tx+ LeߪK)z$?;" dUP ' QE}0$ ѼϜRN5Eű0!抟S:4{)nwa|X ]K0x 4iu _ro-L'-n޺MX^];0BdLvA!"JХ $0)JeȤt6A"aPB຤IVVpxAfdƸ2+m339NcX]Y&+HJI&Զq\t6M&%e\jY-dJc rN0|#) _495X ci:AZ$~ ]&~ҬѬ$3SxNd:ō)|V #P5iIF'!a$Q:|B!PHN@:M#Jn4xdf/iHƬkJ%VihNVE")k Bh ISL Bץ\F8lFR'vioiP, qO\oĩhJLxbi`41E.iDpbfF:m~z,cF\EzbEd3I/c cd>ƘŋcIe2Wf&Y\\|fH b}kLrUL #LN͒2WGWC`kf޸+PTHR/ze'?+GoXvק}H}J}9q)3JeaD:d\AS)35> :.aR0M( Ct]#!Z ]@ ^UXf%=M{k۴[MgncP>RQ(,!fBK+U`:rY(XAF0U\zRHjwn끌gգ(B* 4UQI&Y#LC EAݨJxEdpTL0,Làx(BA54t]C4Dt&:6fa|MUBѠl ,TEB3 B&czz% q= rLE*d26aPuKЧXG.v0 PX ᩢǣN.ŗVZ'^IbZLm0'YbѵN}OiTg>kA96l &)eSr_,lqٗvQT~t&&VιB:eJ| fƞc2kbc]y+Цq痿F a.Yn\c"kYnzq f& *ʽZI>I|O"Z[&/ҍT>1kbe7Z!id4U0M4Cu<CP^auf6aDJL"B,bl| Ch^̎!VJ&b XVl&MV=nFQl ɢi*j ]55E"T۱iud9vaXLMMR.WH$ E }a8 KL,~061IZN "O<IX`sz^MqZCY'g |tz.Jzկ͹4NRҳ}ܞ=bWNH&+(כ %(a̢(^m45.HJ(BWU|vqe%s]lCg> %jb 3"%Ba Ri^\3$IHj|D.eޟ8_> b6|D%B:xl4ya8XxFs¶GO|![8T&tm*; +V?|{CWi4۸n2NgOi6[iڝab#@,={ƘCH.l^DEWL6q:-,]G(23dj&)oocyd2Q,-m4/A|ߏ w+v_SJ|ϣ,}ٶC"~]{o7x{(3{ć[ VBCAﶛt!Row3{gzPzztX]ᾂ =C?I9v<#⑷{!]:6^$iYx{|1k8a2„6%Q[-NUJ ȕWQ,B\/]0 ˶9Y~xwiv>H~uF/dv,CUǓ8]3: =yy?~uE\Gqlze qw{~Qxq頩G\H4D <&t{h*" CE% \~_Q@|$Agb?EhHOJ a:؎Rc|\6 =NL& R ( aiu2N}}= Aǥ]͟!d\HsOױ%&oqaxoDQ&Q5P:AqUbч} nqkĤ4#؍O>Th:%Sic8ɏ9v6ҩ"(o:=4NBDS_EׯG0WL7?ȮyxT[]~&D(BAzm響01_}q)t_SFLO:Ȁ@ AQI%,аmb! [۱3P(I:)Ya]͠ϓL$b`$IVV\N0GD_:KK[,$?/_T }L IDATag)FDJ)yo)X#rP$*{DdM>Y ((g}ޓ]a 6t13@ٔJy>,̚*;dRօ4QgLPȲ]>:R)JMS1TA$RT2iFLZ0 i t]!GЂu4A\`~wIeL2ٌE 3s36d1 {5wyXZuAA3W,eةILbD08 d\e6iBic&膱md\D2Dd2ed2itMjlPubHqk9T"t|&P5꺎8v'Ԉd&xT;aH2i111JW(Dlո 'rPxK1U`iOookVv: }iڭ&jNE*;d)omIqͳ{TP*ftxDtjM  ++kۯȊ|qrF` ^^0 |?ftИhEАQDբnh4ZdRB7iFvPuuJzvhIҩ$J4z=\CQ|?]LCCQۦy#~wBxivV+o_?O9 <u=;ݩw֗Y?ݾk/${>_uw(d}e ?|!ɽ͕6WEkl G P-sɋg8վ?x3߈]gqO(~01hڻ1.A|ueN =[@*cE|f&YZ\$/АA 꼓Q.{&a3:et(+c /ZX^Q37Z 鷣$DfpgI|w^f[N$C'}M9ͣs)@PP$2}YQ)K׷Ǽ @ Gxw" %hFCF]Ou;SM\U8owUUB0 8D Eh1%?ŗ5t3v~AVE|XN*샶 yx@ (A]H?COD&k4٬i#‰I V*+hh6V=Udb4*; vfNc}_\ڛq̣P$=A7 U[!tFs~h0DUAAʉ|qqa&a}Qnd20P>a:\xll|Chī:/E_A$2ADk:_£{>7YF|-8plkї@\+qbs<?o cYą6= 'V c86]Ӑ =8(;%Cr,Co|/#C𼀯|ZgmmǏZ[q} vqz*ZL2@FryULLdy<i"b~oz~h_ڛs*D3P`LQqt QIAq>g=qD2*M<^a/{sFpVy^_}zW4 EhJ%LJiJ187[ƥ:o`Afl~{ 081kwQcpj">˛rl{ʠ,_ZN2ضϖI|K#a;mJyJpi])aYv}@awD} aW`/7xEe' A(@pWp}1a}|qA4x~;"De4ZB]m (O~j\)@0WcO{A02;*D u Ϗ >^O?'5{[̎6RCSjIta66+Nm \.D Lqi07nb(J78vLz㳳Nd>,`2-`8u08&ffO>壹1wvh4#靟2QY:p.WnΓ%:Tur$nG6;brW2onѳc96Vb ^Y>}밾U۷)%b᷷y[|ůX~zXF3{#&s& ϞbmˋeBEf/x_߰Ydu(d<Ə"45r\6PTMCUk_W\N!Q)翛4i}7P ʙҶ e+C3;k׃ *o}w=+q1_xk/>>0%<\ɓ^ gl,.>F?!Sb:3b1iyRgD*q* }j)+2I ?Y CB౺ n<{VLMN> 4=<~#[;cF UWJTAA$[?JTw<}#KjD0⾡g#^-/m2j2No[5wHRF'ڍ*TհaMuO$:( َ\':'ѱ:: >~`h7` &I" pE!{@W/=ϣ{ߣ~uQU8tF(Ld"AaLn=|?ؙ* qi>ZfjXyx}RH"!BtZj\@.ATd$QBQ^ob&dD"P:2vAVqAPjhI,z qI3RF ^uHC (܄aHEyq.%VF>?"K뺎<~`yy!8lKI)z*կCu,B5!P5l;f<%jW?.+2 u(z'^zI EQPa ?ڡsAr?1y2 l~|P林Axy\6~W?ʩ FksD)v\snk{b(VotY[?f ᵺ!yzs8uScR逢=mǝh?wKWߣ(=.$DQe/1Iw8 ]^C"n'h:tu\5#0dlrv}x3 Mx( ,3=QBtl [4mc\zvID5* LtgfgrbKר6 >"S_Fygs>f*"G 33ԫ5[#_f&X,!CzF4>F\[V=`0m;{A¢k;(BcfzmJ<;B"jw?(lp\le>A-"l xGӍuވt3&B*A˲E[UU'/ȈFd9:BPUgӳm4²,PR#Na nݺE=gd!ǶMD"8FsXdtZ-|?" 2d!PU 0b f B(؎faԱMQMdRcmms"0tTB~@:d MձqP$TUBߥ^yGk((D2ƩF)+M23;D!hZpl@?w0!aj0Msx5!1 KvwEQ iڑPn`AܟTVY|_>37]qD"1} >Įi*0MLuެ;+=|v9)5Zr.o,N? N8EMomgo&G̗u\5 ໿͕O~K4zkIV8}J2/6Vڨw..1h4xՙy*yEVzZYJ')z};}n3 5~353Å&q;mqvY_p#8i7`,K(hLNNÇKTޔgQi5CӲ(G鴛,/?"]A%>lTB"TUݬs׿f2Q AC90b}}YS pj5)*LLN*!q%rUՐ۶l`q@xƐ') pbb a@.7"{}쁅$+a "!/ҽ*!+^ }IFݢ?4-IcM\A#xn3P$U׹{SmnGclf0t0t:-uﱸ&\.u^= w=0  F3³(%ybPŐ\;&9]EsT+|0?OG7FjV3U"E@]T7 bYnC3X$I,vPٰ$iElTB2rDԊ1AH.Ib1V@ IDATs\\z"j-ν9,a$m雃\5QFn՘٨+i <ɉ"*^dCPThe IddY&I$a eM͋ Do3_pyUCcT=nPr榫(< }Ibli-ީeVqxMDV$"&E1iFp(-bgƮiPd v{a@++Qm!x"u,1>^Q.- !m8.׮]Kkbldyuva8 @x*S$ /IJMH0X^^Fâ(qm8<f ,;S.ؖEGta Q20++ D "3_HQ*Qz}02!YJ?0L8'o?~fi.\0\Ӵ! ^E"3PWnw螎ᢙuzΕ+WX[[4MJt]>#LDe qa2 wR+oRlF2EôރKԟohN=ޢ`Q#vUff kahvI[3YY= sQA u.I$O`;/k'f { c(*?n5嗨I~[nPĊ$f!{Zu76X`q~!Xw_ÜvminE7$_\ U|/.Rw7]( <=;fRgHkk10o?rp6 aكG< g1==ܻwҗLJkz4q[ǂmL0(k:BvK( R!5Ȋ$%RUUp5~{ JDwχmUUoAyc.B۶eyXn3NF%,z~ܞѻ2B"Wx7~dF?//;ޓL'&uJ5MvB@0?_N0 LtCH(8iqۿY10kj *i sTW"k5(rn3=.GM߆Zڕ*2,{3wVEqs/I3YJ&jY$ 0BQ$TUc%ᱞA,lGG3V({.<7L4F⨠(ΓCQa;qE446 Ðy?OO|k[={~OX!0xds%/I&/C)aZoy I09Y2$$S,^#X$I!}+iOʹ~sx/}&~ 5}M4=" \ZDD*JGwlfg] t]3CZIMuKR?912K;$)8wIXM7EU4M%0HIzIC,K?⤖x7XaIs͛ns '9}r[_ֻ:,ݺQ;o2)|qqs/P(ٕߌy" vF !+ȄAlbi;еX˛7_ t] (Ya<\wwkzAXPfZI)5: $qPT}&AmTݠZBfpP*lSsN?SPh@32sGn+bI(HXbLuJckNC<4"@UsH@LsZ/ C]7(bZ[CZ9/9u4U6\jJ$"tRYT|>\סѨ R$TU"H7b, IT Ȳ>]"X-MsyEr9nܸjM NĄqH>,I64 $f5=ia( 2w n5LT¶mX$,;e(rl>2R̹*".vp Ac3Ka>lz(@Yo0x MM͛|;U_bu/`*rxh!I_9u< ̑RPW#!)w-9djs LU tC-`Jo> eWd[[Jt|?Sg-Biȡx^2s ̔G^5]GLOSMq"΀S1 ً&nݡ:5Tم9Y_diFVUfX*r˫8C[G|n޺A6|U& z``Y) fkvk.ocvTڽG vPant$&LZ# ZL C#bB$!!˶ d|xw.5*OgM$kzhbQ Gޥ|Mql MSVB IH"!&RQ,)}A $)F ]%#L0-&''k,h1 ;Rv̰G _.@< 8{vN6:f_7cwtk,_/ ς'H풛L7G>KRH}mY%Pnws, W/%9/R'Xp DqI6˵- ؜7678{r*k}w 0D6""dbߢ… ܾ} ._̏~!;W5Md o8RE:7o&"֖!+۷Ȯcqω5yh) GQI9٪G) t>iJK$㶯}=EޓeIm6dBuwn&<~/}0?W,iꎽc1̓YFݽC}u ˶B|"K $#bG|Үy.`uܼ~"E˕/EwW,D/ R-dkУM^y0Sjbo;zzzc@xܾ pbufpG'Jq8zS{.kIݙZE;!^hĨ6w?)}VWeS'BLkꆋ Sf EVcҚ!pE7zX6rwǶXY^uczʘ$FA:fRx\HcH\ץ\u!KKy Nʕ+QJv#Jª"B:3 $CIO@BV(K\xk׮q9??qbI~>2Ȟɱw&}~Ŏ8FVB) yDaGlAN6i֘ |c\o[{,MYL3v9O0r;^|0HySsG۶v=`HϾo;kzFӮǠduRݵ'ƫm}r;La-;l;HG۶^#0}FG Ð0N^k> ,a9*Bid-#Zv1|>ـߧ>us%}s?6Zsf:a211AVc`\~˲0&9\.G_$ӳk<\̛Oq# U}D(ϯ T,Y`aU!oEl>TR!;H"c\iZ)X>d.84QY8D^G5tu#ZYV1&s, yDzUjE66q`/'LX]`fn! sb~uЌAbHvCT!IiZM j m T&'tXx( \]\>O>O$!P,$:~ ySE KR"1J4 qh4LMM"m@*b(RP~,n*6w?0@gmD:Q/kLfaW%(#'R.*m hF;u."-ɄasU̩h\V6 2!W;yyZȲZLK>=@pGG sSn4=jX$IXjxQ@{h" TMu-t]#.k!![;Vg/uk>x=<6;J,ǜ>1tm7Uw}KW e-?ǀngRe6 NQS(NilmnUvBBTkxc*e&J:cdG~Vٮ%m$1ˎSX\$ |@.F.Ocs/UIMG&y.,j9 Fu$vAg>'ϜX/bԦ(Ll $zoy)@eۨ:I+O^P3>:Z?*ePQNIL}s܋YYzi%)}׆+NCMddr'zB #D8-<KOx$9Zt XA^qe\_\#:>Pc[&[H:fYv㎋H SInVXbX }( 1M"LFm0tG$<ǥgZF EUØ@bbBŶ-\~&Av 0ysCb)Ʊ] "C(s0FV%dEF P1ُm LzG}&F21ΘG?cEI" l̇" uCNHfSFt2oR2h:v8Se?q䃚/prae(BsD#b8 GQ8F27?ڷPd8$%/-R9/܏M 5ǹ27>$2h.g{V IDAT8NRIGp3ɡ"0QIQՄwLVTEfi1LT>C!8MUUY~蜮I|gDfdXA?gfeCH`2uwZ?F2wo!fQ!Ğyc{lTv"&|vBnXID즟&J^~jPlKO-]:4CmYAeY[ =Jj %A!\I,kPTʥI5,[>uR:nesc4]6V1M ! \ǡAYQ8qtg9O CF篢(Cm+0fPi6L pq'Y< Fɟ((C'N`'1c=h;Ruu-S'~Μ=G؝uniB5w2dɼuVFVz?lHj{G<_բ'j,/*|=Ϯ;h XTFgzzW_5w?N#\}kv`p>,Ԗ} Gy8!>-P9k<^YǶX|v;/?" |'yF}/NZtڭ}w]=dH/EpeA!|beY躎mۏ*;$177Dž q~Ӌ^t" y.1??Of5as _jBryfټ~l&'^hLM<5Y[YN碄gܹ3'N6reIˎ<\e@prf"CS$0Q[|p<1@(I/խO3t Ezn`:S0,^ SI6HNVBA6^XD-8VNƩR!mΜ=Cy0 dr**pEי,,A']D1Ru;E7i<Ѯ~ @KxS6_CulAtrF"}ԉ*ID\wɄEIƹ8q:F$}GiZG~F92/\6$kdX9G1M >A2"oa0??O.öap+P[05Ijs R Dzb&!/r/qwqqq8(lkC9U*o\űM G1LLs\gn"G#IܿdA%:-SӸr+e: `"0{cAqجw_>}@\VWQ($N/(<|PR7:\0^B,I %%6u2?3ͽ_cGc2ry,,,"3L1x4Rj8Gxb-/g$h3L-UTJe] T H'lˤɆMe?H@)j"Z\SL&\DLv=axO ) $iR bdhϢj}O^VqILgYa Jk/2oh zHIiAh^:4RMQ'〽Qq }\P5_|:Asl|W֑eU>DJgůwRc?<9ӟ=!8<K9pB UuQÈ._&|4U=V5ڰ=t|v򎬥'͵eZ |/jHe%Q sl7}UUN/ç,n|hn߸EhڃDGTHQ:L^cFQo <{JudE1a'&v:EtM= #_65kى+٪oI$)?{% K j!vV'=?~Iј"gQ +*"m7YYwj^%Ο:B=v<&&+X٬!AqSڤ7xqÄ37>3@3Kt:ܺu) I/ecTU5%_fY rTI'lx뺩1 |[./vC'F< |!{O\}[}?{? )`(G$gÀ Pq4u}$v؆  qç.t;6%yھ*`pI5I=4 |@n_%!r݉IX 4q5kG/ p'`;/ ccok&ܛ%;1*oDA@GSdRu MEV 0 2BE6>'Y *6h C45b, dI´mdEPaLFs{ME3gVoew|ׯsE`PQ|q2Ym7~f X~t]0n)j$%5/&^7,Gq;dӀ$5> IIdݍ^Igυ/ęoQ_{f\CevYYYZvIpMy,2=ayei$siڨqenAA.#)iZI}K $+|j$F-Coo@ r3gYu]|?`n4i:'0Hm"ys$__o-B\oɹ|}޹6hB!އhgz.JžV ٷas=)NyDB>G?+3gL8{+M.>JhCUO37SPP_dUc" 35ܹ;F@W9ub.qn"0w03=[or{;@DH1 bD=A:6911!<0= 큀:|씝;HbE#d8YGsue)9|a}}5'M/:'5h f YGG.% GG`"fA?DC\Dz~@~t86,=Ie'(j` @LsmTM# |*{bg z0$re3ey2,U3c̀asN 3,E|ߧRpu螺fB%ma ߱u^Y*Vg4ڙC!ppʊDq0m)B߆XZZҥK}4qt]'Az;򯒂@'F(W֓י<'&s4Vf}ڸ!jlσ?sAP Yyv"l 膞^@²ll5dcʬ.?EGT-h56O/b{tP89xHBЮo2]fJ)Jյ5& Twmw10=:fA ]br;t]CSұOx>MT^z]8&w?,Lt5սvLq^@c%SCtxw2N殴8=$uxoĩI3p죌QE'ٹe.Ȉew56z=^v1;l8j~NG( [֧"*j 0;yilq{y[2'l>|o:ĈxFMqMB 3 $0>ꓤ맟=>|]b!fK\f`ܺ5Fn׶8(f7NB}5m{/dcsׯ1Q*t6>ڭ(έxÕ\l2Un(OL>WW?cۑ>A~p; Z6*s7W$D9Htm~s0P,lWnɲ"17aĵ6"!˿:N&1A:`yG=˨E8|e/fB=,I;Ht qA$f6X8kE& 3a $&QpE]$- @=L{^v|n 0 ׯ S8GifQ#=f;"{ՌeǍF0SEQ~s@#,$+LO"&G|^OHjl5{+;^%M.y]U/&&i$5~j(7*;Q;l7"er:-dt[-$Enb (zZEql8U !|wMa bP1i5M{P*sEZ+SLQt#d"$(K(b6f9=8SI9KRE3` fMam۔e|4X"+'t]Buw/^D$\Q80:y6z1f鮻Ie<# yjR!x@PPD|8Ap]\_|j툖—7p{ٵSHRjvA3~bE|\ …a6ϟ]-B@mnI.Kd߸gN! t~wBlws{s_"/c]$Ecc}VWVz'nyϜVFkÙZ_]|3e[X\:MXja;9bhP~Ϙ9y|cݽtmՕe$\|jEq(>Dx895݇w YX/3$7 I>33oR*1{=2W|F3?%T^W)R,=<[9FI>ٴn58wC$(2^ MAb,!)#I1[ujuy6~Q(( MBy   *hXPMqQ UGC$jC=\.y F $ma_&Pg`[ǔJ%,eܻwK. 'aGM4f}0R(f P!͢~Ypݻq$4,}Fq|zu}MUU,BUesTn& lj$i|5H $]ӱi4An4 |EV鄞cl51 =Ygv$9sϟH]Y !bx5 š9{h{$3@5ZWwԙ=|/"2+*Kuw=ʐH$s/؄a@ݦ,.ZJ& q5DdA:[u_D!ihqm )!bUԞZE,,,}J%>jW_}w}>|Ot*?Ϲqg|G\|_iOSZ(smmM0<@4mXlje4ejj^{h͛Z<4RJ>#fggz渔E܆CGo~/fCe&&h;-MlV4릹#Ifڙ4(JE S46X(np/L$vq$-U;{Q|:լmf e}RGo޸AgGʲt{Ǔ>zHB=Z-E_z[,eÀl iJ8mIrBVPiBRmᖧi5KZ~H1.!lG MXBԧ*w6v^?Oh?)Ifet=yb>=$;zs{ɓcvKRح߫?w- HtY섐"+6^e`Lj"Zc r )#8I@= IDAT  MmG I7o  5?`gkN$n`;N*YP Y7&%I~X(rO /LWKx`/YlÛ>,][oI{ 2ai\|$Ixt]yeqJ)66I'’I#ݘ$qlE'P&J4V'1ƀ^!.:)[ePT&EBOfwKR4f52I/[$|w.R8Y:nURouO=.}=v T*!kgr5 @,>kG$Ir@ǣX?CSpYJh/G;$w{kl?Olm=8 Y]/@!z>WV7u?oq:M:m?6E0N56ݬ7x.n{=rb#~:c5*g%ң O&:+x߯0a?"س=/^!q Mkk'ӓ8 *v1/C(??,#vv FiZ$lmm#RL  [Vl.:71)JT߄!6T˙vuufAg}Dɶ }~ |QPi_jÐ?E|??O:HiPV6 q9k\"5)Xhlۥ{(U H93$TdRq@AiLzN+K7Hm~hj5$aee^$yTpxMƙ*'&|=MkMZR*RrUmwȜycu]xYhfF!'wL>sRHߧ65 qKS2T DZ tDv ) e;XJ"MB*?]Xj2vB@l,1JV.G8 p $+ ^[,UG(*_B2;SCYK|Gۛ\p qFk!uTԦ6moNs Gxr-66IdW,ooM~3"ߧX*v70qV~OH!qSr(i[IJu m Z;= aNr9> ez['T0;%%J XC`;8ژ\Be ,Ʊm8?ssVRtNc{ NV+()vȤmY 0( X*S,8NZNXl=Y!l^{8Y8 ='Zkl98.Pp|lp3 ͑P<~+<qFtC5qsLP@&A1v:8h#@(\.hMa)*"p@jN T$XXA0(DP߸w^xA@b~~R SBC_a`X|uoRP*F$Kzwy-JҨ~tq`3V_j}^[K|*侴â~v |R,~eU6VCgk?Ncze}$rF{:]nnk(#L^?NZsnQ/fc[(BJg?Ҳ3ěj\wI?SRveV`Fr )*.1*Hi7c;mrRk 8kI,r "? )~ HI,_H4)UX}Y|?I>³5_7 !+\hx!KwK5lBZ.]DF\t pr@(m,SLv!N2@eYI)pr20'Z&w9^yspW&1и.Kl8jkIX}HEIʥRuޏ%ΓB!(Uj\{Es@Xfqq&H4ӳsLJ0BV;!J '"lDum8T*4b FP SfIId![5ReF 2FE`Eck;=XeeQԤqRRV&jL6NӔl2c]J?hMPP`x,G ZdJ0I65E$Y]jI Zq\z׮[oyTU#(hqL {Ԏƣ@9 zZۥX,󐱷P(߼Ï~eYaH(Jqn=-̝|aBsɈI>J/6q5M`mv %h4wXXԧڛ(4ܦ';4ԫܹGE%ހO;X63 I`eJvMR*|ÇOhG{q 1:͝%&JJWW,/±-ܧ[MD D6L" X ;[ Jz8Gqn^ZR ??ߓ+;> !ƍN$jP }ݡ<-I)BG!actz>jRH8˲FBeF)VCيj1Y-[(Q)Je)Q'&Ff,51LD-sN `vԦ*$I!3hr=<8[(P(WV+"^R1b*a'RH\xYBog02_" C(тTQI5J*,;=Z#Ee̗f6dGbnooSL4Z.jvM~ާ_KJ13;Dž\&:KELuiZxހ8Jx #,̵+/ L9<RI22"eM٠t2$[r8;gx|o|;C*;uաXZLAͳw/lӉol͓ql<~wޟƐ/d.Z>=||.KcΟЉvQ pg*{!|Igt[" It 6{X:j%1cG]boP*H~Riq)jBo@xĉFJkS2Q4|}'ȽB?%J,\,{FvKhLhdu&$~ku4vvv3NQA1)N-leE!^oЧ㺅 H)l8JF$!' !ru<2!I W^-:,$|6_ s{ۥZN K%Ujضoyc|84VLڽ(C?ݬIę@P(!<!$m}80x#Mw Shk$#G!@8)Gsq]Sk ¨.p\Z3 ($I­[h\~}$QR,Ipl&Irq~3>}"xl'N;u?ڶv!-Lz05X qҶfI7~X@UewOHp(; $R #{!,϶=dqx@i"dF埦$јFiFio֤ev+:E1 }tsa4 Hi75F'OiWˢ(dkc ]T6a.i D'DC()hzNt k#.af.7\*k5NP+WInՄ:ۛs w{<붹 *2^/Kl~ JAHMh"{i7= 1@kL㸒8IFbC‘-/#u?,BÚq 8>i³mJ)H%Qڳ 1e=zD^cjjn;E׻, mm QPTJ8?ͭ;/_{Kse>蓑^B7>;¥\r>~ Gٜy|t&թioiti;)R+17U~wZ=LfD(VA@TBW/r n  L%o\_~NS~pkvkH0-y+|oP<e1'xʧ`}2=rA!}K`w1aDϪaF4jfª֘̈́zamqM)F3XZZb0"bޣ+9/3U킔,,]f*Fx٪:7>Mi5^}?( <xܹsr=-^Xb,k-ee2G}vz}K){,]DQ$#G7n봸r]ڝQ6 \Pt2NL ~PD! 7o= ׮,!c;4MT*,W_.T볈8DX K%fU>7osA·b||5 & )1O!|Zb<q\83B8 G/q v(Q]đe$*Ӫ ) R%0iNSLf̝&ZIG8vq'jzKl;cL5ܘ(s>3vϤSf2پ4D,&#=cX_W3f8̨FQ9jgs`{9aj jvz$;\~\nj$@x:~硄gλ3}~8sZG='-ɝ~B_t-&vJaף̠#JzunJ=vD:I}(H$s6NS5tocZh\k7soWkCx$B*yA@e6ׯ.3;3I# #Z!xLMO#Ï wA/#w9 S{ :%LGxxCy>J\~G_~_}c[ PBi~@Z$gnMɖ^v{G/FGgˎ[~Ӥv:\|݌CWN1Vsslooh ʺS4Z;$:en~0i;RTE,JHaHkĩ$J"R \@$DQH$n/(Ô4{Oq޾6n@Osb~@xݺwCYO+AHE,!c;4۟'Έڭ;IF &'ү׍l3i2R0:_ _u uI٥CIAo}DY4|ƣ0!x_fx!Iv]mLJTٍ"S=ݶIo0Opnae( i~!&XMh! C o%ZǸMG(eE+AȬQwGt>|ZIm= +bb)JYKEla^EZUHVnRB`4YO$ ډ2,m4!IbvM^DZU͌ڝD'%%wy  0S8J.J)ffAR⅋XD*EX"L"e9a4kh08]R¥˗in v8C^n133s\z$"8gta0lml=}eo 9F`?EJ'd.p9V{z? 'OY&~Ce? I9ʹ c4 0dnn^xhs0=#Q*{6.hǛWy!ˇN0I~K 럩Mk}!M5w4Mue#[t In8'IBjk'/ |&#:L}<>Io\8i'9:mu9kO :BJ0ЩAI!π¢^\* <q N`"4Ow,PR5lY@;Zr4J<BRTMi4r6ŮoJ3`mZv k)eQV!TXCĬ IDATR\)!e 5]C* 4IMh')), +R.y*E$caR*RpٌԦT' zmx i0j= uLF=Gtm{qSN*,Ȁ0Fr8^<~K.Q(,D@}&^·Y]cx3恝VT˘*4hW͐=BS1p+|yVҥxq*3\G?>vGp RW^VqeHio@m\\JVW%̥KW-OѻAӣP֏DE M^}:vnrʵ%+&I-ݼƩ/_l~8p즋װDBQ0AD}+[߾k 5i\{ lŸc%^~[غ'\XN"-$Qb Wf:&,R='=Yo*:E1t:8F3wIӌ<\I*%{DS%kx:s{jM#LPJEjҌE!FAىANl+;( Y[[RJ8($oX +e 4Z) :0>W):qFa6#r4%A(eS)sF397^U~o |3IS}3tmt)K,ͱĽwѩ&2!۶'eQp?xpxT4,'d8~Όa&l;# Ðb8絽[c~4$gG9<-Q>gY;;AVBPI!`|(diInRuW#,,K ǭD[R0>; +(7&ٙ*3;;ÃMtJnanv5ۥR-,./]۟lq"nj"$q$?\qaicy /B1e$Iq .m:6;E>wKa*~n@gYJC.p" Ӭ{->O` [4 Ze Wۇwort~Ԍ1X!foŤ&ۄ'qDV*tsoW|GJq*8ߥxQ1I~wTƁ0eto?0lf曛ƖcNB-R2 i0@RaJ)b"y? b|$:`TBq'1%(Mx2Ry9k}2&Yp착0Ea(5tAilo8iwڣk V=$p ii5i5v Aդ?{Rw"P.ǽ{ RV{` H3f#Z=/&4CA]{_~FV1|pefG]6ַQBS%."u[($#ڽ$;SE/nAT߿C82T/hM)@ FOvoGQ,'11?iuO4ˍGc>=A11%l!y=ReJdgR)2t-!rٛ3f RTfC@M4|"wQ$r qtr+wN{oA5֙8n$aQq\) 32MTcM{=Ru;؅2rI.umDQ+$4i-0vIt"F[i:J-JB$E7&E R2KDdCC{}! r6pnyR]~7~.e913b9d4)sI()pH>sޞ٭{?/C_;La-:գ:ჽi7?dNvn bs\E'1n;7.Dooglnnӏ?iM'mN^god{dZޠݻYݻwn~|- k|3wJ'pl=z26I9ljN\JL֓:g8x,:=)'_~u]]YU@BJJJ2GQ@\Zv鶻4[ )z:m%(2˗/"0aT0=57q=SN4s[w:htEe'=:ETREBԤXvFF>VAP% s3l=&I4R,:JƐD'(e13;$n'f5e 8SaӪu`l.IX>aKf0XN,ȣDeRR#oPIp?)͸0=8Q zұn̎μ,=Ds\nbǵ ˇv:9\Hf$3ZF^}d-dNՃsP( EP6QX$]4Js !)DqXQSć:@ܳ_ FŢKZT-uˌzfV!bqllK! S[bv6,D4 :-B1q`[<>M~P<5>Qqى$Y1!siq X TKlғDax"@(X| ejFQ"*K }?aFfl$M pl$I>(]qS RDZc+NSthQXW7rPx|@Ja{쀑v`VcvV c/Y1Ib;`$~Q'z<:F[o1t?FǠqqqjef:sq礕cr)w^dǢL nc=hQϱ߹o'(Dсw~lLR淾cj˸*:DO>1toj.s:[zM,0f}PD K[;ԧgY}B@aa*pdia;OΌ+op "̗ȕ n|}=Z{TUv0-<~M믽x2[Qǯ9qw.RhIjtv;2Wi@Wyg2H%u $!PVf+nbDT 3g HtBFUJ68j4O"r0}t0a7TmڶeѭTfIۦV:3G'q 80@Z"-)T*STE"&1RmtJL(e2k6(nW^N݁G$zHc~zSJeNz,\Be^%@AI0̵BqeBLs0bp{xDa&8|OO>?i>wXq=8f8cDp;RR$)j(Ѿ5~J9 cM@h|*Rl\˱JQ[ZY9YȘ=Ї$<5E\ +( C();vyxdiq6%~0==Mb7^}U\KYZXd-_z>,R#@lx 3ll-UU^;qyja4r(\[JU /N؂ >ZŦ̣$$)\\iHCl#jl1UgRTYsytvWc$y, u=i%43vPMR(L*hހ`@He4 YT."ƀ%~/Ȥ=;۴Ӊ)Xܳ3臲C'9TQD٤jg|* bN2ux|lj|aʨmT]A瀍5/]2aفQ>Ors]{u |\J&Ѡ=*Am X\/o88XI-i=ZÖ0}~d?0|vܦP,YN&jSHd`#:YXjuj8~wN8x*fKu y>^Ǐ]e{|Iau*0MD'1*&+HG:EplIG'ɏJ9gc4o}3Y8m p8(IP-O\iau) - wRqqqm[|~ CؖM$X+Dc6BhweS#ܘlTAISRIӓsM d֘o[X.c,6QgD&cTJ!k- x2)%@DDqe۔E|## q3zeDQ۱=(dm)%vIgqqMR摧4%R, -٥"*LcLBjB(uBa Z˱i4<~ʀ@NjP siI{uǀ:)Bxܱ^3Bi=ô}5R ˲m;^T*4ܼyckkk2AJM ,7c#W*lRYil89T{&J4I!HR%1leL;p8/e65~R2520,)ro&IqL43r'ٹf(SRQ= -HO)ƖtdCɼ?thveH92b k;>,Ec瞯bɏ/eYGNf:ϳL=?}=!#sr=9ID<7z?soƇ`<nXtQ4M]WqtǮqSҼ~#:Σ]7>ijFC2aff7qt rQ_:Kل me9L5$ך,ʩ>8'SY[l)ka:铦)a>V?eqjpRqp:WI ۿJbˍ`"m9udp 9 jY̘eOCs޾–{'\fƘl~(/əq'9227~t<$';c<ᘔ'}j /o4},7#U~U:=y: '9O_S[pPR`\vL`m;n`̓ur Y&M5IRa;wH;/7X-A-=>.~ސ%!5$Qи1bΈC]!((G7Ia{iǧe!=vcN_8p, qI,#tV9Y#D=GCrp%wdsֵWx\ ﳱCej]F* xdre|ߣŅ lom2U bҠʣLJTjuf#^Yhcz odz4lR*`9Jf<6xfƧ$o_KSb}t>ȷ^z>/kL$ZܺP;[kُ$Y^p=r* KK !_4\i e@h:kϬ\c_|w}9`v,##2"2#Ef9};j{?#}ƽO>?;.J8DDĩU4fuoɓ'D kpx0zQ(Br ʭzCR>Oꨓ;RG3cEZ^Ħ/ri$Wfφ( +{ρDHZqh=lSXh w;RCIFS*p4y[(W`{lv,.̳v(Ti)BPi6QU(J zvX %Cv\jՊŰ"LIJ*TkUF!Ԥ8)a Z80=SUv{uk #Eg,Zs }8╓Ir"9nT*UFU*#gXḷtUHGItQ&7*q,0Mrpj$FN"ӥ.Y d*LJ2kR):E_V!qH}z4f()e5`g7VVnm?nᄹ[4UnZ^ѽɳco-cr͝.[tG6rI*~]֟q7EY77amsҺ/|Jƒ&'uj ߠlq =wB!r{O֙[l[v6;:k./>?CEYrsuƒ/ w=(=?Gwo$fuq 󘟟O1|iERE/O/8^ԡ=ZN9>Nrkgiie#~5'8WVIdTG IDAT t8`=,;1yfcҢ~?L|S3;7G6ad nŰX^^QZ PUy)@(*jUzjn*S2YZVxC'4H(*c{BZlҊ"̒!PT 4QQmۄZLeʏȄΕ4}a+D>zN!IIa{.alJ28$@vCQ>Z(rHЈGb@ ^jRPF@aQGPe_gzZr;.j;&~ls tzf{Z=ۧb- TFk7޼k^'/Xgt>7XإŰ5X,.-鍈z۵&d2bg[o"T6מPZp@RmAAgq{yըߥ2 twX2Nfk%Q ֶhU˸g$kIGO8ky}E K,uZCvww6ZDО y~?cxR j*g9_qK W?W7:Hub#IJRxDW}9ju8 H$3ȋ@ VXk;F7 AVzA$ 3cXEĄQUPkl岲BjQTTRZiđ~rp2c:b~pi Ir&bHB:{>GcSRo%SMuNq,*<12mT 1Ig Ԧ d50x1,J9@V,nYs֛.׳!~g#$ULFCӳq]0pS–Ip0블+e&/w1>A,ٽ{a﹌"2D<>ӟ~p0j2 h4GȚ O?~ן>e1t{?CMI2p=ǦR9,G?f]S̭}SDf}(X[ߤaQo~~Y|I*t_i_%GzK2="'NA9{]\F74~a^(LP_p%H`wh8NoK$8Gkz:6Q*t( Aјc>k.38f4i>$8IP0QUef jdUW*֟ZM<ףٜ=+'̸,Ue |ty_i+h ^Ҟ[\2pnYӄ;iRyN d?I TUk@:ڥiօgkbq)}^"c4;:~WH t̜|'( sS;̮]`8tCabOVCߡ럎M$!00:rAoJq'o_iֳl$shcO׳vD9V?22x`cx&&>zΝ;X%CӰ'cNJ+$I?EpPgT²B'Sv2X2@u\S9*eM#cr[_YƭیGcڤ5|TM[Dΐ."ի@:2Vl$df O0k=Yh0r!K"d{Ho_^:ns vvr;GKܾډ2zE<} @Ѧnih%MŒ>3'T5:gXzV6gi˫`^7ךab "hjLʁiUIB8ZB3-|Ϧ>lldB$4g y(N(W|WRI*$1n榜Apw;{2 ģZQvp?E{In"@8唗J0r8NW%1N#BӨժ$3te:H$;*BxnL`y"_C@(Y?hYsr _hkj[e { uj7Tdvi&s9 ͢UVx>\_f#޸{Ͽx;Ĩ"M[Y96.q<)ʖD)e?-KaM@/ ^9suM%&iID$4E MS(&㢪 ~Ԑ:ni QTZ.aC" ~ Bh*bAGq[3"BM2J1=% &r_%@X.s@ꅝK _!9"Ҳg31i4,EFnŠA$gL奛(zp\-[,Mܼ7&eMjW^y&"TTK*Yaiufn%tzX2͙yBgssZf0vXm17?O4szCPTM߷Q߹3ss3lcڭ6/a);8~Y`D«Uge ^P_5n,αJt?NFTDՠZ2z?3ۻ;23b~nP$g͐w s>N 2iM7XIJ/qe}}(N(, CALs/r7o2vޥޘaiquFc0,+5(I($cJf)KWUi5!qh4Nw/8T͒ؓ{YaLÛQiYjhy㺽ʳL.8J.6IS>gaZijv2Pf@pċ u5~*ndx|S\o{x wvhT-j33t:DQbUS=^ %M>—OyݧRPk$xgeڵ[;[ coŸglOXx죏赫S2ad8s %,PeejD-B6~ɨj1#=~9˨*<7awg&3s fgwz:NgΘL?uq|Kfj'kܾ`#tl&Q Xƭ7yt;7Ww &}TT곌{?Rqۨz(xl|泖 aHjX /\<IuΠr~@Y̻.R_q抒$ VrBLxa{o l guey$qx& 4F Ax0r@$3~RV"p2")FaH$$IL`eyz ]K%lo Le'j,./aQ*aUyDs͍|G "{z1 K4gjQBRV-1Uaw2"*jmS\B0!1R)OM lm?^k]]K$O,zFuMkGQ A0@ |=W"RAHoT&>L;``<3ۧ\m{{(`0 m?~L#<!ϜOyg8%FGh2ĝ }9G./ t_v6;2Gypz}zݴLUH!?9x+yH\QT%unWu /TD(&W83P;cxyWc(E34lô*hGtJex.n`UʴZ3lnXb0 ŅʖŐnDZJ\h1cQT'\X`繦IYb8p8dҲ$"AdyAd8vDZ RD1C;CtàV3AQ'VqF R0 ,Ue1Ln((L~Mu_ ă 8^]zH4ͼ"\*LlO!"y ۫l#JgHBoF:V*/(j*U"qQ/#Xc&akLN:ӊBu^9˦u@^]r"<> yt 2QDqv)[e ]ew{.0Xlaz.biP$JP42pb }Fap0 MMU]w/9~B$x]&clμuTd: '#8!bvw  \"ZYʢJ쪥R^0BA$LQ c[.Ӛ#yZC2'ywOTU} H?$C]]eiŹLF5iha88 _qBGg1DyUNjS«`=D  ?$;9K"󳃌0O[9sf-H YSD 8!7Lcv6QT%:aL&<|e c<ŒԝLp^@(L2A^eJ)(.lqM0P]Oi}߿/jE"HzhqQR4D}.J(]sP֕V4z4M˙ABzݮun?Mpv"Aq jJΥ*"Nf }V!_f."wsӯTPy q ]}Q[*>m[$ AfB@rqaA^NE3U u©D)y]lV\ ?Tq",8NPHzPA6DdF3(SFGNE@R^«E0Qk(9tL΢7*% vݮuymE}q͓N2"+Txt?!|??z:_ph%4UIK@ UUR@35"Ri)TA M {Hx9 3kJ_RU5JV 0plX}㚪j-( Ea d0 Kj{i`zY5w c:ֿk|ȍY^*eC!eaţ/)I,PV !DN8"YH`]P'#yԤts$|s un_&}bfN%Jj0})Z{|q-" t, .U ^"3b*U}8B+Y$&f,3{0N8`%;&ϸ:KK$qik5(Du{lnm% 2>FqT4 ]'إRĕ l]JƝ۷ Yئ֘ayq8`~~RrERRU]Ex CTMu@I B$yMEz)j =;;G`x$05sť8&B`h*Z&QU2B0&#iA0hW 7ٕcWL<#LE4zҁc>f]vݾX+-4nI2"#k ?2z,#j pN^cnM2Y9dA@G̶ڴ J^gX(JPpseDTda&V0JH#ɐMvύwR57-T ib:QVY^Hs8UP6KϷLUU(ivDG!l`s.rPhfA?L t]%c4-$[[{%b8t u(B,!-BBH*B\Gb}NE:^D a:ǹh0 ^vݾ.TEe#Pf>%"{:+>?g E:R̿=MZ6 ]y_vmOpk&F%±C (U, MUU+5C330w84P@Tzx 3{nǪT)[PVUH +Z0B TԶV-#H_V4Mz=FcUZ>~DHHbC*5!eQը+ȟ0(WU H@t*2QG1pP25qSU q* <5Q1p3ڢv\i!(Q}FY:Mt/cjp*TnנjZT*\^IR^^sPJB!.v۷oEE"A%;V;&yN~ݾs0fNz=D Y׹uMO倄t-gJk?cx$8{:gɉڅf)zr yk.TS]_BǙ NAB{nӷ \f~ri -dS-p.MU.N*')0qRq!P48$s zD 4-\g>(΄͍ TqIx.(`j0q=ϥ\q UI* @ n QBj e&L`yu㱰ih&(k 6g}cgO',ܤըa:O?:&w]:]}1EZrFM̽ű/tTus℔tJAG$IBEh1i]k@x ǿ8G!fȴ8]Pdkie2m#VNAPi2LP!|~ 1*.Fu ^W (ti0I/P bR8/<2O?` ΄( 3RBDIB9騊 ɼ"C#I8,Yۈ8dgo F~ IDATL\akk+ng᠗{!2:x8^~+#9fgɞ)JTcq$h`Yf@1rJ\tWͼ@_v sk%su9if*Y϶IqkmkB7v5z3(<x2,%m(%p4l8=?uF$)aȋ E$EQn=wMq<٫\A)hMwd4"bDvpJ-"<8%NC=[|4MX08L HbH d+ ZY"E]nfd]_ğ0mzsE"!R9[nf.Z3|ȝ8N|ϝ˾AaW.34T> /[ÚI`Ymsm:iAp { L;7XF/x:9WE\ m̩T3t..D!eYNatPzD Ri 4zhe%HZNfMKlR/NKazޔ8aS*c $L)ST B0̔u90ZMN_W׀z~>=eY祤(t^0(&?& + 0'2t󹾾2y˂(ѯZ՞cb %C*YxODB\2Ghi;mkf`AJ*5!cZ6AV\.*8.I:^Q̚QcCқR%z0OƸx)Wܹsak X{T5ZY*Vߛ0j5*2qNUKkwug`A9pRgM4E%JD"0u( S_h1I%>%(]QJStslg3(Sp`* ǿfa4(ka* ۿFӴ$/jU eXεǏooFc~# uz~cΝ;wдE\TI:ARz"n?}pǏsϺipggt8!Ҁ}]~W=㤾9)e?Q:W}N??GdnN!`˴C(Wj꺞2 {~Ruc*L2Ӓʼ:Yg\*yA=n+,NH۞I& qh!=Mnڙ12]wNfgW*9{s\*V {2ƶ'B*uvvV*(*jgi!q>Ph4L&&N818h{El'ͫw]|E ,D؞GGIDax<:gqHnSÐ5#cןah:ADQ')3tatM'PE8!N|E':A},ERI>SFIqU#efnnFm3 [[[躎O//|Or(@-$)?8Nh4__s q聼(_/J EZ>$7`O^kT"00 j~?gQm4 ӟHEi4"}0E}?UU1M9,4sʹ4ֈCE|SjFQ\4sAl6iیc\O>Ad$}A>oy [[[8ç~ٜSt8ȺNZt}{MeH'_8 cq]>`*JT954F>&I>g̩JvM\f0PVs08Oot]77N.4e!Ip=ֈ>u)Jy_y>e1V ÐO?*}Q&HJQҦեE466oQ.Flllp-&R)wH3yFl~ m|;gq4] 8:r~]x!yq*LvRII3̜tܝ^??ӧg690daaC/D5EA$GKK-铆}~a()ۦiĄѮ( F8 T*e(N([1333h4>Q#C?dZ^#Mi2"!Zy1@WD"S 0sS_Ҡ+sC\@Z->:Nѐ>LKјJ,ޓyܺu ]8 ÇA\TSZl)n7҈'IfN#tfgg@jxwM؅aHET*ְmj_+mv! <%j6ܺu UUve, 0g2*333ythqݻwsN9Js.Q] d1 Cm;7ƋNdR.y v<}4%WMӘl2B>;;_|1/0 t:yƍCNZE}ޞJ vs'2 8i4Z-fff 93 #amy[0{eYw.,,|>SF lVrH$Aj|{> t:ql6sGp8Gd`>.vQuf8$?~xbD%u QEa"vGl6I$qGָ}vg)}eB}GAԽ5jQ1 7o~d:a,..SFA21u7o?1S4 x1I|:rmwJ%V:\7e \] J!D(hcO04e4T24#jRܹuaCVT[TSà*VB.qI!jd%R Q'>Q"րaK02n3ӨDcq\0ҘaqizihJFDO-e`P cUpsuZx2FlV-̽+478fs}![Q Id: l\Qu_b!짒/zweN]I`ną,c^u;^W\rc-h4뱿G/tmvmwK~^Dʨimf8Lzܼy˲//X__Zb60{"TD&~U;ݾqv !rgV*HQVcww7…aHܹsY>Sr RTt$%QxAYmWH}lll8N~*siH:rGhA1oV/sT*嵔xkeio}n˿_*򈡌Jut]Dz,ɣ[[[?E4{S|:s>ww9=b8n)H`RtxHr]$?f0>$"[Fy}}=ooh4ѣGy`0ȣȒX'c,IqGoݻwÇyd2!"ZVp_OYotxq-2:. t]g0΁0 tEn޼g}Fɣd r92j(*D1/?gYSa?~__GGZ.:"6V 4vy ^ֹ}q'ӺLӱ}gqaN)UeR7qO":x뗥(_?MzE ֑B!{8ԫXLx4Bi`:**I,E!t@UԔCR?L=Q(8 њ@Q,Q1j.&O~HŲP4eTAynJ"!Rf8]Q{N)Qxe $Qf'Uq,ȂqCҋRdz&Ov51U n@ϊQ)%&DOZ9F0^V~n`E2K2fa&f5x׾.EzWV{FM#*#6LnzwaiiԻw8&c@=i?/yܽ{ViERE}tGݭb&/S|4MY]]HS. Al4 TE}ƍ=)h*?I;wU󵱱1P6QJVkFǼ`7"֊hz*Tu]a&/BQ^hZx7@GB~)ŽtZv͝;wzSշ8< `?-eYEcU wwwi4X/\ݼy0xׯ_RN`*Y=__!}{A`ar5}]:ɊF?m4|ߦT*Jamm-0,"j[K)A.nYVK BnlooGG|/~"m)NՆj}{[Y__lfbyFw֝:O*Ji d&3E^OZg HG!NH!n7;$EJu:t"d1avDɸ\4A޻yO]AQ9(1Q M+GAFHqz4&,m& Z$IÀ( 3,DF?<zt*5'"h:A`m)I/]$Y om=~O{D7="vww-RhWEdj8 K& zsQ(xAH׹>Hdyy]ǡT*嚈/JGTAz K(_K_{{{Ž*R:mG>^y YSunu*DQĝ;w׼t݁'>KYexm#/˼5 G}OE>*n~Q(-:jUǏY]]-pK1u~r]VE*y;]LJ?bjS?;7&:Q.)yI5O\eyy‘`Y \<44μK1֞7σ,4ʳ.g96azpRplߧ ^y[oLU;j/EʿN766IR*~O)oV’$)MEǭݿwe~Tjt` /|o}[lnnd3 8=$@?֭[ɟ ovQj FZ=M\e(zAEO?Y8T*h4jF=SK_ zGq"j5k/;í[<7o_0,NJRDZgQ,iΠ_ h@WOB`&ЌB]p\Dof ϛԾڹqbZYWo GU"M1L 6n|J˨_*"K=|lg9A~10MlB)mYq|T_G keZ"AJ4сS)PiXA,0mŞE&9b -:NUC}ZVaH)Y:THuC /eY|ϧ2TJdZ(^=y1bӯ v]"Mqee`-2Pniv>zZF&FXVklTU>я(=Q{ @ [VG94TGNo|"ʱ:A ra`${ntx饗{.jnU^3g*R#opxxXDxW+Ez<Gz^8|gggZF,HzdLU$Iԧ>śoQ,//, TǵmǡDN Ncqoͧ>r]*ER]_iq=n5.("4 J)qRfz_e|:5ڿߧ&(0x)Eىuؼ~L)H>vH%!y]l xͷICH$cEvbLWp7}de':  MV3`KSkǹqeZO:kVk<>>|7n\c4[+y44k_TWj.~qud##!Ajg?)qI#o~z`s2{NERag{NuV>[[[ٛCs6"{63Na0lz!FVuMƬj]W:HPikBӭ[o HuXrI'QTwZI{'g?css`;p[vRuC?N=JTT.t:?l6~۷_5/_ܽ{w>r1=ʦ}su饲;,7?ȝ;wԧ>UG?W~Wx<3Nڣsl9jU(PkE $K5ƴ?:I!N?6927Zܾ>s(J8apPɸ5c(ts9\ʯ:JIDrBTj ܼq:퀔RbJ㭇gaUjo@yűmdq,r-0DYTkUJ%FcV5h1HףŠZ_ŗ^:<&1KIշY@㲰9A\wY,;B"E@JatEɀ \N"9.vXjmL GrZ9 Ð@L't:E*Q#:Ft?ER2 0TJQ'h_ MS~ꫯ"ݽ9vt:(QU|ӟƲ,zEݒH|ЬmGy;;;E@1Oޫ*/+++n]T*U{"m!SRwu~ӟr=* N0TZ$.IjQv*U$Q>pk*etar0"lWnUٶ]D}ߧh qmܻw-~`Zo]8eYVT9Cqj7 ױYY٠R)(ʊ=צPTlE¼@c`o|kll\3-ZQ̳ٶCۡRB(bg{}" 8?&{D,1 ,TS]mpZV'jvE4P'7э[EHEREIRUqssJrDܺu~ET\ACR"j|/"sz 8> )4M?>@:8)u0>?>ȝ^9( 777vY΂@4Q^Tp0#::upP^6Q)(8Q/Pϩީ@kdY0MO|EZ_'AJ~̯JA8F!c븮ˋ/X)!tixJA2"7D2u@7\ӢGll[2i]QME}8RJ;RHPN"7iPUzI$H^\\к+J~@Duc[ܼys Qha8MP*NE7*7nܠDh$5^?i֣#=FJӁ$3q `0 Uƻj/gP`h5tV~_ȋ(0wgTHU9JU@TNM2>tT^7uAnݺU)"™&=VCQS TVD<< ީN3i B5O@4[XET)չ'1&gG6apQO:4Rzq_sP\:f bER8$677 ¤mX^{&%M~Wpms԰08{osZ^Q;]OyG鑽W#x7[1 v9<<O5T5;Ìz퐞:~݈eS,b}@öSS/ew{83rvs}/ue9E 1xoY߉u>Q"4BmX8؟wLH[" TFihw2` ѕa$ QӅT:JԅgYfetft9݃{]lkk=PO8t.*B8x=X9JұayCz(!m}yM(Noѱl$$f3t 6eZEqEo5k_00yB2! ;{92$_,[H@8썜V ?ꨨNp,' GG1J^z;mGz^e!O|*W)ZEh3\ky// Ap&Ψۓu@h4IE> hcIKb lL {ӆ/SbEfAH4j! ?RK^u0LsX&9O9+ي$}&G&c8&;aRVID'>&vH4`eH)v3Vȕ\ۢtPA8 HVqv}Z+KKeVVC1kU*U,4 LLBi@%qAF,"<騴XR'[t|,$M)y.iX;MK̯ 1'@@6qG,޵(M¾NGlwmr$Q)4hA ZVE&WA0 x^npQdPtx\_ _E`B@CafГjG9 xȱBr iJ߈cD6DK`=O>k~LZF4 TBY!"D~LW0r08w;dD#YV~,;P&v 2 eƞ0uxHHb1!gwyL.{A.$=z>Jmiiw}jU (l!RI#p2GȔvWP2+>$IV:pg]FQ)iWp(詡|W\Ev@52 HLSv]< <6:H:Yu@i +@k8՛̝f,@(<#83x/>~>ܣb1$:9 r-=wȚSEKBh.rMQc傣ӥ@LGBG?m&c)z*rAvQƲP3w䨾زzp3"]=\CxV2b!ى1'=4D%P"#y?ۧ|7 yd)t9(8iPW 2 #\Zĥ=EŶ$Q8(e44g b$'0$3E&3av&r,~?axZFRJL2 jND1i !%լ^y/39^4L>}ߧRecR\+ӜWkcZ(ݠׅɓ$ljBbHK(LX'\?t꼹 B aM鑆(J-c2SuV$'y#M%D/zyEauP}~E M Cb"zj9㻕YA\K0LƌY8׆QmΎ9r "ca!ADQDR# 0sӂj"x:38Y VVֹeXIl($"){{{t>ZŅ*%!QH1z9r:ىoh]vbVO&ANp9huv?޽,,)yi5vq^Yjwfcw?^_ {Vbed,i RmZ9ݽ20-WI␝1~pqn&$G}ֲl߸E8HiP$nrj2 Įgxh0%) 2I0"XNо|s6g49VUPyƱ6Rڤha:-a2z~~r=m8bR罩k~ҘRе4T<5,lOiiV)J8O"5q< 0bNx6ߜrTIsw9nkG1gi*J4<|R 8fMuSO*s^?-;ܥ2lk7n!>N +뤑O7 5ڭ&~iIW^dI ZF}|z T9 ;E O4M1LZN]0+WX]_gZ\,$MR($3zTfqy$v\mnܸs7x!x i}ldiq^EJ%0%t]FQ9k-,,p;Z$|R)){+eDb$H O0m\5kT]ʥ ¨EH:jȢF邴D/xKSIq8KR;Sהdx3&V=?O˖Fm˼DC`&jykQz3TjNQF0)|u9 98S`<&1ȸPnb5O[4'#:;^Cx<}4nFAhcq^FrퟂT `0mvZ{=~2f$AR8R1qE" CRYF{va@1ɢcEZH >I"evqlrX$QLY=$"4( WqD <E<i%D^pm(rlfX8Y͓.@QHS& v ;됊 (AH^}<LbVR[IaSk]mgXY__R&w6kņՓ9)eLshfH$:VW_㊭ru}=ai BdN,3f V{액U [ D)J6jͱԋ]'ɀ*a6`Pa|3i4dҞKQsppe9J%!Og&Ch4FCH DJ( L)wd ZN)Snu)I:eOE M6D?̯Hbt |Od(FB>i!QgKÔRuz~'* !"M! H)UJ tZL&N%~GI%XEǰldI g8ib($am,D^{;ݓȖ$1;{[״{rjUy,!?]C,9hHc dR !d!TE^˳ GH|}?UiZDqʣG[olmRDTG=I4R*OcB҅aH$Is^Ȍ(*Gd@qnHf{?fs%̜nYڑXʉ+gyͩEDm^ ^u>Op֭#!hΦCxi'K=vteΛ bs^cO;O{eL<:2$zɅL3_Qc$5|^ePBriQT9X~Wx=aNzWQʫymQ쓊tXWUO`?-p (+wR4%cYM $,+)ꄐv d!RcwJɤ'육WYe We|$PLh{kj 2*T 9y8c&!%iX3 C9w0H#%Q|n:bReYfth:ffIe. cxjY M2a{%;%|S RɏX&TKqHHWq,RL`YWayezI>A{fJDhq(=:z}ݹWF(5IQ"eJբ%JK`&,,,Hv%D (0Y"SiXiYqDZVhÐT !,D1Mu=.Y *KiK!"e[_E4kl$)&` Sf`gBV٬yO2Uv $)꽤C紆t$8ZR.{oʩtIEx&EzM @"{smzJ6`)ɨXz¬qN R\m'&7 (7_SLP8)iCp(R0kj $rrJtrҹu]TL gM=8 O2z/4ϗJv"Hp2Xz'KU`Q0 (I\LcwvJeNId88 }n42z8"3ى> #nH!%Ck0lviF %a R !v8`Z$QdO8<qL-[ڵlpmsa 6o[*WX][`5i뛛~'1qc+gBj̣GHZmۅ>[VGhmyym[ضظ}) m=qF9/'O84+ֳ^cgS҇Q/3TFfpҖK21@J9!D g%fat]wHH8q8t-+"FQv`Y1kܺu##,>7wP8̜ktYcOO3@|"!^O.;YDP)|.=|89P8"! [s㭭bvzbrֵk0j> Y*H 0D:* IkÐP({%:?/i:;\סni:DaH]Bf՞#&zM/,ԯ ?S(˘M'I-Nܩt,"& IDATR:,TYa0FKL@V78 ;1H<'Kfl4ab[BsڭAzTUa<7۲p]H('(ǨekUeXAEx^ZKftfZ{:]q-ETU,6E#$!gt_E@f58p۶Y]]sm~ꫯGE+P5( Z}\Td&qi֚u)iM~l w4i=/bJ)$TQsE +B%ϕgɀym'L`)= N}}']j&?ӯiH,*/er ^|En߾GWY[HdDz* l[i@zz6OPhO02OENg7-OeVr(~7j#Ձ `,t3pĶڔUzQ.e*Q [\riyx, @ȯ[yc{oITkUӄ(p\˶Hӄ8Ii:ecw1st]d~T҇_a[&rGin8t:)+mv-6Jt$C3NJŲC*Km> )ykT`cc/| O>o&.>dgg:~!4QіIߦaݯNwS: sn=sV2YInhQx%=ˀpCe!#R:#`aT6<ϯ(@@Zڵkܺu7nsϱIR!ct:J(Kr|={?50i㘈FZd矸rkOu6\1wÜ)] 2vRp"nnG(Kcl(",WT]`umZWd'0!\ U~9RLӢZꬭiej X ҄NAAR\O粴 AT*qh},a0 i61-:xK}a8X_htuqI:RE@` HiW拷ci7'ͣi@GRFQlmmtp7YXq-6vFAߧnt}0 laOd 1ʠg3س=5|bF<(dgy~R> ,\Bj5j,..SשVJ% ӦqBH%lj=>J.Rdb8YiO8TfZGPm>9˭38ik[Oj(&CXGU+laeejărAFJUL $$"=#H8d ǵ(hZ JRyqQ)KqSxΠ9nI:8B*(FGHc^O\^ӔTJD J. nafaHA/M$9`QHm0M(g`Rx޽B^)!v(IJ$diq[>8& gFje8u&n;8u[ x t1>Ib!Ӏ@'8Ӕ3hœXUG6#:f: E$+ T@qN0$^\" bq<_4L4!4M\(Ls84c V'T2E󖦰;$ +0xHe41+ $05 fFQ+~A; #\jG sKs$`@P˲V8Nc!tM~L"ҋgwvϼnG7xmҊz\}eok o#$L3ҟJP^jn64 (q0, 'cYVV^c%3E{yEGpE)fo&}7)3kv)ÙÀĬ#杚" V˕nV A\6W`DQt{p pի2%PioB]fN J[ZA4YfX( ilV6^Xț[а{s$YD:NY dD  Ⱥlt`kDs7@WUU7"jY ~c<¬̿d!LZT&i rmѕ=\_/7f %ur@x|oP@UUJ!`|mC47͠\.v;ڔ  NQm. 8e/Y]^22f*? OPy pC!&`~P0t<{ 1 G2\plCF0FLz6 S]2 ` T&Yg8߲,}PJ^FU!/(n$bL8p(@xd'x :.2`f )@F-4Gp*d;`I-| 0fW/r& u@b؄N,x|>eI%TFItskz&tÂm9  yx̣QҵUNNh,bZ A)HU* PS`* 97m]ס;OUաQ?^60} Y&Ua۟-`5eIuQY;n[@,"T'܀x&yXc?7(a?*Q'1OS_ׇ[A$ &5Phxoh:[o(<( (Y{`f2kh#Z;D!Q?}ڋa^nr/!(t~_!= AyT pՑ&NI^`S 8HERP!MUP9F2Cp9-¤O~}<ބR7LGE%,;|ڠ'c̵xCfU -‡c6& TQ!+ `D $A l_]7QVx DYR!"TEBwW]7 px *i1㞑5t^ i'|BH%PY>E(@쨢yO{O(GCF4Icpa6#{^! ve/8aRf j&zu*|KV-)  .qsfauQ\^0J[G-(g/IxMCcEJŹ{ٳMY[QPQJN/NF)[M.#_6@K.YH!ލ 8,zyY il~$2zh`mmm244p|ъ0$ ܓB 1zTb8*;w!9]X18Iz G}I!iA{Rʒo0J冇2APaݻ]"xRTg+Jk4(Jh4$ zPR}~dx˅\^`灯<ǐJ+J8N5J$b{{ CZ};,4"{+ FA)JCƁ$}>.C5qoɚ'ҟoWy0LǾgu +o?ο^z=q=AAc5x5u W#fTe4*H5aRA۷4MȲ 4 ZRN4 ;`%4Ms_Fw`w|2vܬDDATnwZvrr#(%|rpA!B7YᒻǕ_YYix!VVVk\ĺn hC*-S1!(t_j.eY5 496H-<>@W* 'cqg܇Pt`` `XՒ WA tplx kYů#A~"o88k>찪- @J( ]2m۶KW_^`KSJ穪"TZ,$(* kY eY ȃPJ'm֞0.Pߝ;`mܳ(I;n^OygoTBVљ&puG?~3,-a&,˂.h`0EWQETBe $I(J899At+ 8RkẐ?HKӫe fϿ߃,)VlC|or닋u&lBtȊ IqAȳ|ymˆa,..nð(J4U@j0iw ) 5H>Zm4qrx X+>TH28D 9W+,CUԦx1DQDw^ "rP .Hsx @;0(aBs=Gn A࠯R#q ٘VJ)gzBm8Vt8à0Sy(O4g:4փ4&g* SM'Sao%NxR_ pq0CIU!+c0M~-DY(xm0pGAyPPz~  7턡r LWpFIqk<}yB/F@_dK2S?N窉#碿jgDqAas!Lͺ*)pǿ?1 RAQ3kI 1xH$nwh?/w[u.p ]oq3`>0%˵1MQ ["N~ 2"(rjXAB$'S|{7es}VUA'0t_}nܼDx apсF)2 {+ Oē̌A[*Oӯm IDATȀ `2 ޼7;g5h!fϻtZΨa [b1DPЇ ⼿[ĂBI`^)sʍCs08wGG]DiW#[ .W0ȀY{ er/#֣vjW_}f?Oxӟ9={UUQ.0JZv+QBF $In(.A'w op pTj x{2ڝL˂iX@ TBy APiyN$X۸77a=P 0M+eY7\44PX(4i+ ӭ2]cz,# Mg K{?=ܼy%oUV2 p,B@A{Y0OAB=l ߠw)o$Jdh@\*c 6/ <<҉MEw ;1ҷʑl0 ,(m(Vi,(ItNe\~??__ɓ'/?;;;W'J2%X{7; VvKcwLjaiC ^m(@7 v(V fjsZ6H0#+u) ah2'= R ? |L|נ{ AAF$$>6 ?d'C0|aHWSXm&P8AAQ^NP?i!d<~IA}лL}pO^?=ނ"`|_x\r<5H.ދ EѲ,nNSޠC`QŻヒ'?ch~ T,j8I֠{Z.'w&)/OK11Lxta&DItQd iBܻz@vnSpi`l?rl 6akT2WfC膁̀o@/|/8$1x$T9`}@)`{'&\q ,KzƬN"DЃ8}Ӧhg`XTO& `pz(h4$ rR +++hpvvVM\nBUUr' !Um'Rq8 $}G>BEޱYdoCVTeB7'+%\RInPjU۴k}$$I ^|:&r "֖ DSU (IIǕ3۸qƠME[G>K䜊l)A턜@z,A?t;8뜈aC%!*A8KZ1<ɷgw` qcV°\ܴۗ8+yG*Ih &4()X5H)u]aX(wmvw[ SNhNA!x%іa`dCV/Js:jQIi;( *nFf ~ 4M[o^xqd^a4J5_ :)h7چXeNiÔ$ y. i`Z^ZUEkE#,&/`0vic iT朕p/\F3mRH!@K2$YConw:|v:ǃBAaT3Λr"(`_5kxCr*Or|\B @8ד4MXz P!iګ9M of^Q'r~B )dBi2FQ)S2h '''k7J, c /I`c alp<ϫ:Wg )a.,60oE;e9M;;v_/ChKQ罨MomMy?~NP|軟#|ߠn7wPVqA^YO\Ġc;$ 3P_CNXO  s/1 9 GL *2,(Ms5\'WOО^y;}x߿j.XCVE E4p3J5Uưy,Tvյe<}(|<.F PXEg hܣf%J?GeRRZu?FCw٧={T~r^.#Jgqקw;ҡ6]/!}.5>DwRԨyI3@<KA- "ŏ5O5 ZBÓiL1ljCul={~=syzN (Bt:Ԏ(z> CBWH!SJO Rc8;kW%mmͷkAA4~8N o^4 QBLBn rIynZ5ȋS;y, cln>+ڶC0T6Li_*JWEulӂmZA@YQAm "Ѵ$Ȋ ۶EBT*ؔ`6ãCWDo{ IV>S|嗸/RŪD:~aɴ  ո2OztWX¹샼xtex/x'[4x À,u=f:vAæ,`j aLsN'M,,^!b8N|F?hE$Y*!B( Ȋ ۦ$ R ˲<9W_g0_yj5c#-pHj`p~uI+QELWqg\qB:0 (>c{(EBضݝ csrm[{_V{Z\*w~ض=_M)RؖKAZbJK;w8yG]O:,38 "`R 4._s @F>o5(h޽4uSFC,L1GEމP4 [CāYeؖv}洡蛯a[&t#zzS1- nk eQhUkʒzNNN`ZkNNN׮͛@,` 0x`,@Xx ܣ p9dDaT(JԿgVњ7IHis Wmې$i(_th6O!cVdc77 e{4M빿.4އ Ln Tc5O b!(Ϸm%Hn߾w@_cﻵ?5Ph\꿬ܴB:ٜ۳IpNcJLReŪ`' IDAT1KTܨ珒(!Q q{ΰfAR!nQy˰):&(dE l>4YVܹsz{0 uܽsw\mY{8RxkcwGœ'qtt4v놎>y睡2\޹2+?-p]x mWV7IqTx 8З#J{ ⵣ8ƵebRTfԹi¤ޟٶ TU;UdUŋw^6VWjBVDr沤(X߸^d ƿZb 'N5VB̢:d!S#| $ᥗ^{DQD{c OOO'cuuw+:,UW^F<;h2&a@[NGw\"f|~iH⤞@\@1E-4l6}Jq||  z_iYP n%#}<}ޅaݣ:o Zch4UFg,:9Y)%V˖$ _^{w۷q}@׵M?KXYYHYet^tׂ0~-yU^&ݫ:C8 ^8ay__Ș DD&X(&G"F'~ۓS_gms3wݻIڵxͷpttv39^/QoBU*,k:E.Rx1I4p\NL95d4INa4Yߴ@~4X(L%q~+W REV($$IoW^ye&Iݿ`[ZgQ bg{@Z^ 9೶z@$2:b&eyOM:Y%\|ۼζmX˲19{YH! (@ kR^|X mݝ,Qy!,`EeHQQ^°G)uSJڜ666&eZggF |ibºppL2:#o (f>)脨%cy xؒ(ڇD^$x `Nh]rt D~ ~67oʥ[<qq<ǣq43rAJM2>|~fEeeHC5bRv" ZB&p'BΒLÀ(\\΅ߏ {fa̷B{ًdmC-p},..~z=ѣoP.7X&;?קU&d3$ꟼƗpae[Ӹ?wp9QBC7}J׮]CZT@aڛmz/2.K`ooawq˲`-Bo+++ (JZ]]Ûou11>~'/>L,>ΜuE$/C !+@a ( 8̨/lc񼀯4yT%I!-( :@Ӵ\ly 1Ce<{ f^{{{x!dYv70|<RȼZmBj.IpWohD]'gm@,``trPp&ALC^/Ni6O7pQ'(ހ)uX^*˲rEQJiP%v *2Jܼ<4Ms=yyGBTUu%A1m_E|/y Jef_OKH;aq#=~I0I>]IcE}aa Q u|P״:wI+tdE?UU(Pe^4BDQtȔJ%,ZFA 2DQ,˨T*T*. $ eEh]]]ҒĸKY__ǻヌ^_=e@0 |7u~  Y/hC(M0`2ʳ 'i[BYomFr19r#(=.<0F|F{e&1~A_olQPԈggMl=}qtt#B7tj,d`%G3{~{R)eLq$m0M<kض :9𚆒C+~Rׂ}OOOVFoa/fi[{ o޼Y?#B|UP @XH!"R^@R0bVif`,f899iPTU-A¬_D 0}$>\O"@/ W^Vu=ܰ#l=y9@¶-t]Zg(.Y$U b;>>Ɠ'qxx߃eYXYYA\ܾ4GրjP8m"",rA}7?~yC1eYJh/ëqVqRa4Mlmman z [EQ:~B9(sB =OJ%֠Y`88R,Dy#;mHZ6duQz}Ґ̴xAϺ)P3XF-H5bSgg,t:,, Jgh_6ǽWR8A47a{O@s IX[[i,AXaڋd>UDyޝ 0 `aa ?i=[&S.Zt]wCJqiT}̽~7oO~ƛ_~~kn )dRj~A}2z=`ggGnx?/dvFI*Qy>d璺" QNߟ>GF+lۂXZ^kw %j+?裍% ߏ]>yr Ēx2EEQt@۶q]Efggg.4M뙛\y(OE7G4aaaaZ[D@]o4rV//k{ѕ>>@o{>(/RkY/`.nl /ƵkװPGZ(^GzQO&#AzOYu:!VVWynkX\\DTx ۶$y;wċ>& c'J%׮_GyJY ''{A\r,knllضţ\0WQvU4t=jk&IAa`/UUq jGR 0: "t]/aRg1 ^XkNcyqEQ\p9a,6AV,.-aeunvPZ!Y0$P T*jX^Y2j: 994\u]᡼7n??@Z'|ۤiO<*onbueKXXp֡4֗˜$ai YV\ B& qڃ8 fjERm,.-W^Shd??o1@$g ۊZ Ni~%YFR2&q>:[NOOZ4΂i&tMi0-ӵX*Ó( WV IΚM˶^(W*# ܾq(jH)mСwpU j[]]uvÐ_Ypd]4# ]e4Ʃ:G•U|!2>ol6S`?<8W_=D5,XYYE@YV ) Āh\4R t~ɫB$^o@T!ظ}!E1}P3kF[\"ҨVw!mVڵ j ӴP7m(/`|ultMi:y|ijP/3 )8Ji~p'K+yڶ^c3 íi}B'q̲g}Qh߄mOqzzi[mYggM([O%,--auq kջw(\zO9yr~Gy~ӲiZ\.R`qqy߅9**qZ IDATLR6[p7kIwګ\(*(t/8aUڹ'M%ȲQ"3 F1N b7nނH=*A%ݗ; }dJD9~%Ϡi ʶm{=lzx9j$~~o,(c8?1onڵcslk`tp&0e 'P⻐ (T .;oK ^]@W})dYvJs# / wB.A'x*6 aiNgOPb7zU-p5 EuYEuvCCj jظeJeJ*D\DZ.B/ro0Ĥʯ߫൒sv Q\_U=wҮJUؠUB$c F&|0  XBB !ZvW09wLOt]U=}9v֍u1SLJ%xKXu===`94-HD0{,$)i!WYm|>~ ]y GS)TSE$&'&07n7‘MU)ffcaj>54%*}Uٳ3B˞TݧI 5Ӑ:-ފ@S䭌CIqQx&$P,k L@qihT˓~~$qpr^)@pEBzQ + 6l$@Dk~6&H;`G^> Xͯبzߗ s(29A!133 #`y/(BXJx @'[oK(W}1{vFA.n.-apէub(Qe0_ ʪ<~?Ba T=,&'%0$j%m_jSNjS[C``"Zj&JϲQª]V/jBnsQiOlv2SKYF`^g^{٬~y81At 4n7(+ JA</jA HA3̖wjCm~՛Q˛ ,FڱbjJsKtMM (R+]\wKbS'Y'B ¬)^'̉#녋ttXB^.42"J%$)XpHA`Y?{/~?T]DGG'(_&o`Fj'?ya=py9 tuv!/z>Euuwan~^"bbz!tk~_rёrzwQgggОJ-|z+*>FH$82'\MP\3ia# Wij@ުgy~bvwRb~%.Aik}5JCnzYOD܊&"Ht[aM(w# oñG159)PS9 thQ'ҮY,E ϵEO n݊$S57;:>~0Ch%P FF@Q~n- Z/X,X,~|^oZ}677T^(ߤ T|>tttb֭8}4esy$I`Pw@..g%::0T꿑]n7z{T1e]cŒh1QD0:A!oʟ)!E~3M)4r3Q&vi f11ܗZKHiR 5_`ۯ Pǎ ~6ܯ loVlv (e 6<:7;V7Ɠ)U%$<.RA#BEi>H%8dG]XeJzcqaCzVjZ Izi2"  VLCi@`4fEaph@Or( A򣻧G*Q)Xf)t >~ߟ>XwOg>߰O~n (Lc!#t/A#a#.!h]\Ĵw }u ӳ3^aT*ax".44"(:::N#NcK$eYd kOijYߨ7`;3} EEg$%<5j g_W(FzmVjVr-p0m q΀VS.v0xщ˷o bјtJ[EWwn7`lN<}_c@y#~> ~5kzi-P(yx B;0=3˅bT'E,C$5 Lh2GzZYYkg^Ŗ>%׏Rf@$P(E蔄y4EjynUA4{̃B#<٨PF̙#7A()44v΃XKio 0VWj@he2JZo/]ѕJ/sg+6/32?E$mpŕWrzR 5,nyZ3MM3dY+j z a'ydKQn'x<5*Ty}Jfa=,,eYP%Dy"%k6ZD$T{͔DhJ[x "Ν?bʪ kҏ~ȣͭHX%7K9D_^oZ9\$x@Ā$@aJM'aJH'?׵z Zf "7`݈b79z ڙn7O&q :zVAwO.b;.r.,VY/EmuT.gp=Huʂ9> L&16:O##] !ԻffcU; 4S^":.,,`qq>FT8VWV,vm-oF#0e9#[꘰*([5)Ṅ=&*/fȕ>܉՜zxN-fǍ[87sQ"µ8N:Quk~CjNjXϽh 8sV,g0>>TB \{|ۤ?}KűGz7 rxc H7:wU _ _<ٙi@ڍFIT#_WxyMӈع:wT[m>3zǏoxn}뱲ã?'$Hfy?G^0TzzJ /YK}fgv^s-n~> ?2VWWs?oP/ ?||8Į{7QP&='8.; ۅ+o~seQFԮ@`0$QjlXKX (p\`jP  EAV'Oqr{"b ~DFx 9+ mi(# Rz*iLuY@PufH[3&5#7w&T JJFS0ۯD"َ3gN3g03#!I=_;dRù_)7ux腊yg?+Ǐ㾏\ ;z`CC"O~# KO"с={hƗ?wɉqLNԉD:@WK7tPL:~3A[<4 yX*,Rd`Zm8=VƷq۷R?IHRCHpE6tWVa"*q"*PG`WUx ]%\ χ1<16:@["<0o ٞ?8xi<( wn\cxljW㑇ٳg_{/}E ~b\ ^:|X ^lx>LNcO\f2iO!ޖx ܏~ߑH$я} x~cճg`yy .Gλۅ=u<8,y)7T_xp_CƛnQ)5pp>o}]ӧNG?xΟÁg~[oQ= mTK >"O>Ç^/JOa%C4=#߿Ij^iLZ0 9>5#flwYH_J@ffض5 Ԙ`i>? ᑝyVFX![e ?*T__zZuկS#_W#W![mG$IJ?PgE *8kp166^?AغwްCC[ Ax-f$rՈFV"N|އ}}O| ^xCwWwp~oqu#bhV{85u= =x[&iP7!\;|y= w#B0nw^~Zc{[k!QV{YsN~Mo)w=ꮸ>?7+?rEw݃{n@(B(=7eSٗi{ޅ.( ox[yg/Gvصg/B0߽wxo{]+=q7:::AQn7V 8}wލxo{"3u5VPKK(A| ].iSбRTBZ , ٓ&CR4LcZ7CUQ҃ѫ_<)|X]]^=;5"H[yz v. `|| M=>B֭ꊚ4jkZ˷B~Ffl4- aKCxqkv#J!hΝ9 ØKϣT*ZpkRh󡯯o|poG"ק&'ϪOj7"woZٹ9lꪚ_y̴n0)BRwOoyȮr94tŕ;LM^gWwJz7 n((;n(wvkϟ(d AQ|evAczx<صg/~}>ՍQO`<&q+سw_'ʁJRV*.14 X%혞S'p=yN(CWV0˷%ƫO]+I@{őIct.|?:rtz}".IS,DC۶t/A U>}X"wCZ>ĎmǍH[]v)x#| v\(ʘyL&17; Ai\Vxo#:::1:2, Ƴ`~nB "iܿ_m%#G YrsG7^K4X>U{c97U<Ȥ3MӘƳ9ݘF@5]cC#!C/<<`5Ք_SZT9kgNY:x _|Aח^|O>8`k ,~S54-Lkó7YѪ 7kv f'Fotr|zd;$091ёac!| (f108dq~ ۞½~/GW_h4}7ތ1)u(z8y?oov ^'yɥ#W,]7܈q<4|໶{-p^CCp-I&ωo|]g>ogN<5O!{ͷǏ"J/ ,-. 6n Q,r dT;(QB)tt3gXl+Fb1D"P~?Ks@.kx`ԄzBc<S C(QK=A"aqa]CCaIJ!PZV6,,FsJJ$P2щ Lazz ( }/={ߏg#/!$yuw-bj; wG?yn\}nfyS%2/U|i 33S۲E ^/*(z۳L8'' E1?7΁.F10Џx,) O-RwpzDCE+3$ KAj]H4^;mԨI1!VXWj:Ϫ9 tE0,qܮΝX(ԩ(z /ڽǶ$׈FCE_*0mAeF$֐١ar\{zUm+5p̉Ch4ybbbc#E.$w@h08W=G^>g~v"v'F+C0>kc8ܳG~_whUzrjL˗+4'4_x;F0,FQ,!Dъ2:H f:wp-Mp)?Fa~EByoI9^󢷷YBAlٲEW8;(TyUj"0Fz~XB} C02 Ra @P@0Ys+ǑL#N#˩ >}:aPL9=ړfLiy{$՚6tw !X/ F米CC&rtk[nseL$I" &'N#]BX6JELLay9Y  !с`0TDJ^b8ԋ484˛fٵg8ϼz g^=Us_gW~uZ@!Ixˁt K@)lGz>ٹY~c$*bχ4<*Սl6[c2J/jQJ˅N;WkkDxS ?lލJwߌ9|~ R+R#`0C{dҘC&"KK( QXB \8n>$ |TV=v5;u4͔o'd= ?)WDqW[oԳj @h_)GzH&@@MADT,bxdƖB(hr9q]AӋx-B'hT8x%񚂸NN::;$z#7(4sh|& FmtLF&N-r!BlLt9d2res @4, < -@Ό&iAG &NyeWˮp|Ln=N:T( "]T7O-@60[# d2EV0 L&P8 T%I󫘝Urk |U+C_sV>@{Gr+9)2" ~7-fr[4A`&P=z5} bU` w8$D z#j].i}yG]oLK_Beee `xnEI 8Z&韏NQhK$?@P(`ue . pe 4 +1](NjT )B!mS'lw.'jYTf_`s|S!4Ryvi T@%h$*D]G('%d2 Wd+_*Lf>Rz1qHt =p8'h@ ?wJ~of?fibɩpZ_Mݿ s\p\( HݠiU`yyKKfX@%  $!EVX  en[B8A4E @H:#kTwvm|w=0(%E~ a|x$mf^&W?77^%(ʔ/f5AiF184(1%oÖ>## )vӃd0OBT2iR tMGDzʁ_d?EHhEB+ژ 58 !PASp~K}Fǰу´ i@JA"=!wbBҕ\N RU E&0`h< uż^>L! rRu9eoiހөrNwYb^ 3A,C<?ை B0($qAi.xbSR(CLݍD"ih~- " V#r`<@Ӵ!(5@ڃ>V>ͤ!4Z|j$ҨhNfHЛM n[ m^9)(Dsye\ ϕK|^/q Z>$z=~=AKC>ʯלn|ZB#NG> ,//cY$P0p$p(Tv%$awKiߐrvUT#316>zz{5Yx[&f*r ݃p8l%5 menVVV <(Z<B[[J"rVr9KE`0$IшЯ,E1 mFj>2Y ADȯi0e%^23Z}36P>jYe7`j-`ZRWQ[+J+]̀n=YcgE$MF$'deӁOx9a2}Ê~xe2ԫ0Ctq.XELO'EdS+jaZfDP $.C,ptBfOqjx9{&ޒZ=JɌ(ס͝A;J}cI@J*N.r4HZjLr2TBFzvo՟ϯUA^NXOzu%tڤ!^llJ7li[>2t &6k|5fm'Je+5tZZ`t|3iivL7'bϷ;C$~h䥲C7{M'#zdhрsk0y@_3=o{q3Q$͔j:ο]7ws% S?'t SQAu8$IFU"|=L an|6o]僨7? $hgUmj]{`^eFcPxslLbwWgivNԬ|v\NDR'&jg>izk c~Gzˬlfkt. V7GqkT3IHHB@Hw"ZAUஸU\*"][mEV@ گ." UDEEE-=$$#@/<ܹsϽ3@tAtxm Z}5'X2aOȊ[Bl${w )GM?xO}~|j9nA=_o+X&l-`N|Lw*H+0ȿ> {G|Nho|,^T…%BG TEˮkpPC2LVy7!qU2Y]Ftds1:,[_]dwueNh膘VxG8~̜n6B}ƣ1?0@]ٛw2r;{=:kQP-ǚ1|e3v㏓m[9&,ƭ0յ`{ x6Ѷ5KRMS/>cקAq( ]xԓgN掜j<#dH*^F8ڡ)5Ai~2>^ @Ӏh9BFm e y=")@J ^zo e$_ԨyimF QUϲ,1|7VGAl{MpygFݪDyT=M:p@3m"Ht+.8߈ PSVj i iԃ i=|Cm? }<5Iݙ(=iN.;o+稾T4jTPœC?ԑm /+D^;t^'w.I_>MjDk}P }|Cj/e=i6ܽEqy+?3r]:r[%dKnʈ{J y]:adL{S>q(*231jqma=B;RpAp%VZՊ]Rh+.Vs@6h|2GhRPQJAdyZ#>| A]x:Z Z$ӷH9otT2΍ @72mbas,V1"J-#( AWOz"sWZSM:#`\s&N*',9T/%3 qZYUx/1:UnV2}@HF4{tuv֪$O!.tUQѶui0 jcΔ{&pzZt:H[_\vׇ~7G:u?o= 겊~So9Rz3lR' >C!H]35|s?v{iu_fo(jpqIxNf'eNj[\גa*J-I [[E 'SPg堗ңV]n7|{R0|B`:)-z,3eޜG5v %\Zbߐ KI`y&Z;T3EL Te;-Woj%(0i^Ӱv`Y}6BVu9az[ᓬw5NCmvI,Z!ɹDB>/-<M k)xU,NMVv $bL^Dr{̉9u򔷓WMk..TA:X›#2[Dqjݩ;ORozqm޼ @UJȞ>Qt'7@FftR0IP$I)(5`hO>߼t3-g4sG-z:8z\sso"6/{g3隉cfyȬ6_ڤ`;ZFJ2d 3`T. "Qc0v~v$n>}E%wJ^p5f߂f}s}Ncv{B!#)iOy)_pD;3SVBH?2xwɯ"HԕM_ S 1WV@)ɶs9<ô^e^5EȾy)Ro?$cE[ģn[M%~\k=)"Cgc{(.;}M[vQ!?lX۳%ܿ\EmSpd_'V7oYԡP蠃2:k ._s>F:bZ{ w~f{=T-In#t(eZ:mI`D+}_vSE 2Վa;>FL 1޴  6uyH,g=Ӗ-zZ5n0d;RH錤&M`=!x9{OݫTѕ^0Nn C*lHziᖣty{t絲H&N2m jy H#՚h(p慯@"{bGX83EOVz5OJQ3xVH@`¨9~7$}Y8Ft̤WSM ~Zo9eЪS~,g\DO70BNt IDATxwtU즒^  ;((MA4A:Q";(&R*!@$@HB*!d; d,!3s;3޹*B!B!B0!B!B!DWB!B!"GB!B!ȑ$p%B!B!r$ \ !B!BIWB!B!"GB!B!ȑ$p%B!B!r$ \ !B!BIWB!B!"GտΕ*=Ӯɋ8PP>\,'fOCZYBdh?Az^44u]ey@փ^߅BHJgKY<5Jt}5ޛ ףa'*BzE7eE&Lţ5Oovl_vr꧙c=/}1H̳yy q9 vO2f똩8QMw̗sxqrHBX`lS|<'HLŠm2p4pd f/+.yS;U)F^gk~я~f%3{B rlam)k7xe-cUchcE?`pS.?NJn VŽlkU:n_;e)*T]ޥQȜw.B}Йy&15 ͤјmp}H)'H{(b[J?x 7{}<^n4u#Ҷ2,ULېca -_L@Palg+IKQp.ۊ~vQU_rŃl=8g*t=RS!.VN0_a 8kο뉖0玙a}K+3Z &~fpsC"Qgس~)K C|>>G*6{K+y2iv6 CK0rB[c`G<_ bl-ĹXEelmsF!df~ఛ\e.یR彘ޭMoɥ'$`~3&#`"1<ټ}2Xzo)Ţpƌ ޘ]#2-^I ->KM,t:Đ96|#:[Od2;a'Ra|x mFkۄ^ g~| ys}WYcIVQ6E{¹\vߣI5)y* yykJgZW-=Jc[hia NeӈG&9]z ŤPwD4);Nb.ei,fo'55~Ӓiiw>1[hӶGk [*?m/ޮ/9fCZbA[{&&BݡVI|bgٽ7UG<1+4i^=ARC%>6̝7؂43jB8!}V^"=v,McΕJ b`+)<{VafRhߍqaO ^;f0sSQoQ =wk+l9YjԏgZCʤe2gjwt IvNlZH9Ɖ0koi5'ͣ5v~N݌e-SOƫVGjI3c2Dl1«fΖ&oaNtnf:*וM%әeXXMG ~;w#Cx"IV嗸Xdަw-_hZ_X~BM)Wvtc;lBVIPTTy8KTJZb őѲ-O~_.߿Hf:rLƁASB Հr9bSrq;q1ta6ܠ_ǎԛ~s~^vߠ({p I4rqPE՗aGOI \$YyNtRZyhrkO(]igYң-vg598z(?\Lo)!*uJj5oY6nɴ9׈JLZ *`_4Ua꽠WҮsF*THԲ8vN4\7%(MNJ3u<9PW͉(Z?2j?ܶKd{0XRih>qCK?͔G-dn{#[|@1h"tcڑDSK`GA Ys&?9b6;1hc8&@%#,$ōҭ1j4gI(4|!ŰygLnMZm]Z<Ԕ6R?]Cjm2m -4+:)IB7XggFD LPL>ɩ4 y֐_ou\zwޞO,<;`7ob:3+&. (6q~za:@}=Ҩ_&O/AN:e3_S9׬F2y> 3bR\5..^́8sF4RS[xQ-mk_4\O-/,U?B!^l \YAW[s=Ȇ -iP:s( *zԢ{c2#{ٹezSҺ%(M7$椣ܜ9&^A=ʜ~+8}7JFT[0o!}wތePz."OՇrKGF;aqo3R7}T5tnR6v=;qa6[ fPw4|p2+Y=\-3\` ;ͮG0jFRkE[5gGXrs͇#7J<'#Spw7[9RwDizq8vgb?2б:E-򳯧!/K6ŪVWI3x5 rrCc d,F59D2y*x(1'\y &STTnE|Rr!{6Y.^8ߋf [:㓲t5]з͚uF/vy5(7[I0Ep#Q1%p;r9:huB zv߹Ͼdf|?G&2d _R< =h֨+?O.a -YWV|= hF7\aplJ :nh˙*^R;r 85 úTf\/XV%Sމw0NةLi+/y2yTEloM#c`k~>닖>S'yy:/MՏ6]L&LPtJY] yzM;p(,ȇ5(Ǟ#Yj 0J૷T&_:ټl &0|rϢM?~yASՏB%RbK!+Xv }[(NT졩_KuS?̸$P]<ROe#O m]a֒&/: ҾpJwVgԢ 8w<=[}/J G.@M3p~g ,BͼSBg"9 O_ҸYriǡ~+zyd݇,ul8v3f. 5s,?*[0ܓ[hn"Y} =|vg[;gHU'+ht0}.#j'mhzw/qŀTJ}R硖t,۫ZPcdJK[5>|6+ Ʉh-?xl~_#FUkq)5[^!>kŝk5'-! kSP5jPQr"BU17Z#.!/Ukޣއ51\ X~ l L[WQ-,`cĹMQI'/5f0rj1MxFkCY4Yef}I#EYC~؉;)*q^SIC>-`N~^%k֡A #[1~Usm K;žʶ{jNLě\tk$<2X$L "4M-ߟ5Fy~$Of_X~BdlZJly TRmd7HoŜ*KO+wjˁT4q-$d3ঘ9u k>+2nuo冣<΃zڐ?]0~r&TNwٖ|B yud@C+ pם|;QH:fݘס?{.3[w[Ouǧ;6VqQrOⷹՈdTlо7S!?UZw8e0 $C7"Vx6Fp8f>CLpQ~ύmk]zAA%ͨxU?OJ}Y:y1wZVma!- 5G"0Ks]ʮ`Mhf0\nqoዏg)m88f͖j|DJJeNj#ݪ\}[b 9φWϺr[wQ8r-MzѿB [l':RZrԈm,[וEfbR\Q읾-†>X eK՝X{K`KDY8/qֳ/ ѸyO޻JFy ,[ە%}f0S-X:Xތ2Oǜ6Տd指,:b=#Y>)_g,2gVs7WjngYQc@_oP>|P1y-mkBCe -, ՏB%{W#e*WL\ ډjeD(8Hs*%(X*6n*aHu[p(F~SfW62_e}:3wm/ޭ_ȟt @I ܺDٕ3_QY6nؘNbZ^E qus4C;e;Lw∼|mϳZˮrSB^ x 4꿙XD/3~$?ܾ}~3L03@=zjt\qY 3~t4N/%>݄YOʽP58RۧtoG8f|Gzh7,O9ƍdH/Y,;H:O_$NG ؍q<7%p3??QΖsì4cFjvW5ԡBS[1>\CMy֒{ r),.5.c*5}߁ī&B1A zM舧BrL~֝W3'?U31^ow`f.Ǹ&/킍12+Xyk_S {~Ÿ} _.H !Jw`N7|8eOeB!DR@B!B!DjB!B!xHJ!B!BHB!B!9B!B!D$+!B!B#IJ!B!BHB!B!9B!B!D$+!B!B#IJ!B!BHB!B!9B!B!D$+!B!B#h IDATIJ!B!BHB!B!9B!B!D$+!B!B#IJ!B!BHB!B!9B!B!D${}*QQstBh-So5Rnl!/*ŞbovW_v^Ε*=ӮΉ{tB׊.wB!l\ySW)G=eR(›%rqE{> y9>+[3Tpω,?Ɂ5獲Y \).o2f:֭K֌ͣa$-`}Ń^tA' :u_SK营`ұ(㞣,s9 vOi7E7eE&+!B!+幟8bi5`4$q+ glaO**ɻFKeSLi[i/;K_A?\o -s)$a;GŐb@% CNfˤ/ށsAc^APWήƚ7nCf|'i?ޢB!Bodz\]&mA"xcY*'j<V/Fa Uy )ȐDP>>fyC*SPIF|RVit^E*Q?]@._$9+IۘqY!k6bB!JfNfGؗϛZ`Q,*wm[=fquhзJ;4#9JV "YոUnL7*Q͚ٳ՛1AkjsGmd PÏofa8̜f4 ŝׇ/+=+_&y^p=ZU%}ᄽӝDopݤ\ UkH.k# 7/slۏvReϠwBˮt|2=Py#Ta*ۅog.гi9G/c9:|۾G]|ŸgMlT*O 0\ Kn"ϳg:֚NftN~| ys z/Πu)}aah>874p8=]F82ϙse(&Ņ'2I |q5s(NcѮS uNf[%늝)g~\VI*Ysfm4um=j)i_YWB!BJrBMprcT ǎ'Q\)R,yI ʍDl>#Xڌ}\ Fu.KKv#C }E}ܗ7J nܶYSjF8!2 Gr/X@XmrXjEҲaUs#15lᖪ\$1Dr.=?guya);=;atDl_ʴ⛥I.Z2%_s峧2KahWw/]qc_-h3z,]s/L1e"KxР+LaYw|c01}-SŢb)y4z1'NO#Sġq|9[6nFzQbtA݌QcZZ@`ԡF`%L\ݼpsyNOӘܶɧ35ޭFQٓU CB e𴿉1%E2/י40[ØQ z[~{,[\"菜BeW\kncoB~]M/oȾN!8{-evr9'ǁ[mGB76[ M Io:pӽn>UھS c?g`]Uх _ ][Έl챳֥T;ɤ 2qvqPΟ=Op:0aSB(7U9}mpўl/n 5]l+M=&f:s r[ܲy6L)tI!Z0qqTq7pLӔ^ #WaMۻ +n"l ;ͮGH8PmHrc͵hϾC9x ֮G&3n'.Lr{R8w,C)B!9eWZ[M⯿q,9S~= S89;_yl%փΣg{xGON(ġ)Fa( 1"Pߗ\x(@T/T_;,bu+z+x]MO3#}V)-ݣrrՋ1pþS_E}Z|\PNs~!1>w)cۤ}u5Q "՘e)eG?p\ȑ0>lYV|ʤ&K0Ep#Q3 O&`8})K1D?g~2=)Qf\ !B!^ \^#:9WfH|FS J!QT{ޏק?Cv?td\wz{,B2kIK\[z؜r۰&P(Huz1|Q1@q&cO튂b`iȯi D˧-3x&cU*яdN{ԫS6#[/̚bgz\RHL/'t$>ߌEA1i0V^z6a/\Z6WMeT(4X: )&Af[ !B!^ ^=_MfG3Œ#ySa&t(YvNVp02xz`:(6.8[&Ψx=$ǒv==qT :[;)wd-7^6 jIؼsW&2iBUQ;J`s1^ $8uJ͋R)W67iWȉvj }#N6DWT.YnsoW._s>څ aʪ=?iTN'@>e*+P\Il _K 8y;T(eKg/n1))(89>>29ޡjOe?>Ԩ?]iLDǨ8;YG*xM(8+dFb) A;-4 !B!Bָz5! T,ZgP7V{3g,^څ?X{6kgBO/Wm1hS }CY50|x({&DgqB)i))2A*o2+/߈Ge~%vAo/ГC9`-p6Bhs' VQ>3lҌ>fol?qF[\=H86y}*lp$ iָ(x&r#$ݛhZ,'C;>}2c =-e-;;8Nóp^vg_CLpQ~ύmk]e뺲LL]ʖ+:ӗ%Cg`z;O:c͑.=ߨ`]-(F&_!C`G[dg#uYWsSn39^d?2J!BJ\ mU4/ >Ɲ#+YFwXnՖUTnd42LNQŗB&"5C̟rj=K~kR*]mŐj`)WeJ8Ċ?b| VaHH̍\ MTX-]47q%=d<6'snWLK{-3];i+|Μş&21C7\Ubڑ{vnGI%!6f?qf,3'?F~_>=hcFsoBj>1qeO,UfI\810c7Ƶޔ͠cpl`25hÄ=P8n2oDo04n$Cz|\wϲgsJg"tx>c?ӝ8"/g[kGwNH~>Ǭ?F.0ťetZdw fҼa#{&kB!U6,)R'A^EmzPE3_7ϧ_z~^MW7jmP_bw`G@6dM6dM6dB[ϸu=ó//u:t0co#W'9i _0fZ򎁍C?g5iI!B!īCWu8:}F^M<0%FAZ%;>łb%hof#Yc !B!^) sB!B!yt/;B!B!B<B!B!D$+!B!B#IJph+j:ߞtj_5e&Go#w>L_;{l^=%fcWS:Txeܕ,IWhk^}]v֡\ +ۯ6m[4޹R>î5Y?hm7k0$|=2ǓĘ@_j׽˱>-tؐ5Jn)Zr; fr:[BtE{}6EgZ`0]I͍5Ir-mҘpyrZ~kp(ۅ嫑+q""HCA6+TRcyt5q/,O֧%*%wn$uȣk::4S4h${<1pkd YrY9[# wTPQؠ+QQH*u ӾGmù2_T\ɬ~T<!ܘ ogLfcW[:j~4W<^7FeF9g#w!]KNGS\mIU W|8/ǔ}ܱqv~=% fƋ|yM N"> PĤ Ѥ_T6F]HE]FMqk|MPs~^(^I'r8D}12DO5Z㔼=IUV=YcX?~ 11l V-)[ĭ;dŮ0ne[]*vV8+vM$F廁:cb<ɬ\jSti[mWBq(ٜT-[(PÇ= ZMi]$ [ӻ[G]cےl=ǐl633:OXSyQa ,bF~f$)ּ?g-}P&/sL[^{?Eʾ1*3G=.wT!]Rh:blfqyܿ IΟ>2.KG?o۠44t?T΃LYsڤ$ehCŠ uOd@xdk Q6ϝƢ]aO6Mbcܛ !?F@hߍqaO ^;f0sSI*輚0/)cC G\7T?T+vu)W SyU'}cYͪCō-aRs>W;c7:rWr0i@\*Uc״O 'bH"Mƌ'/k':9WI Zǵ{oŽqAr9cؗADZu>raec"5&ؗOC,wٔ" 幟'bPcI ;p[·;M;-=6YS(g2"WVUtR:{Q`Դ6t_I>^EK:烵~| ys\f ^ݝ6gmymTHV 87xg1mj+l7ƻB}\xcmbJ "./;#ۃ!$Q~?~|#w&yb芵5jZ ǦplX~eړdE\P;3í Y3^bggjHwk[~$ΌuڭRp.y2qkY}Zq^ 8u "[MSbs,xH^-Wv&C8b,V^|=Mϗ1S ǏߦɈn;sOuzgPP sMRJz7. iqDmaJK Nf[%늝)g~\V?SS<5YjҐ9'Y_hh/Ź<Ge)큛-jR4~3pU:pZX!l \).uh3.K#5:es!NӾޖF׽@쭿=i1=bO)OG%T<~3">~l MQ8zdjO jE.a$)nn5Qt=3O0/?ȪLOhrk%f=Z~0h!K:u$'^3#GfRb'm Dy6>Ԩ[g[ΘJF଒p}j?p;RͫV\C\{A+zSw_]cIr.i$WAW5p+gR0\Ɛ2 d+[J.]X.-[^)$W77֤MﻃX'|Ф4ϜMigYң-vg598z(?\Lo;Qて},4ZyF~oXkפ\5TD̡\~"-1F=M5'oJ5z/oNR*Ȍ)VH߷܈U/цM?jxIPKY*\Xup :H*)Q@ BnJ#(båрǪC(T83bㆭsw,:LJ5(u?a`>U*Nkrbs y}otgVL\@Pl< p=4#ڮi\Z='3&wmod/PU?-Z[nL;8VT4q콖)7 zo&=Vx쏌mRC/YG<~2笎 fQEx}Eg5tna&\#*1 kGkfԡ"Dz@!Ee[J]։pCZgo0#Ȃ;4NlctꖆyO,⊫b N]љ)6f#Gm$k#kAYiDĉH}-՛MJ^N`B%>YXOelX aq8Y٩r IDAT-צ랏Z3ru-Lnـ<~&ܤ%fa6 לwk%T޹&Iw+VqO1FTKf[wtf6^B&(Ŋ (XX@QQRT@$BIHɦmPd,!9g0;ss]QhV,\;'l]:Q sɎ*60sʯָ.OuR[Z sZ}9vEŻ_؁d4 ?;]y )U@-8a#9爑ǵDަI/[F"j4kטՔi\5$WŜUBkqh>#/ 37iMҺm=g;߮Y5)z 4"΃ˏ7b1[i}WR|#;pQ"HnwQI4Rg؅kN#igj$tWޙ)2yi];HXL^&RV>MX n[$ w{~dKhdlđOY_5Wd]ζWwUNGQzTLv w|Qfv&dR?9_&Pp<]LI^Au ieNFvd'`sܺRկυ15=Cm읽TP8H[6w7Ӳm,H<ӇHቁmi+R6?U=ٵv_ƟQXUٲıyk*chGvHt\pqŬg痳xCgq/BL6qeOK&fyx(*WAXȩ),-$#% faÀY3X.FWsR,X7a+N`oE1y^R[Pb=H0曨{*O$ ր!~Ć|16w牙 :;~HAnojEA'뤧r,5UΉVE23FOw(r!C|'.q_5K xr)3UCmHXah8F81&nA $ni: Mջ/rS7^MuۜNh9XD޻M/Uώv~ȶ|.yZ M8 @t2}DZYVx&罤5 {3~#nͯ852#4@2%z2Ȫɽ.ivnzӋ,QeP}]۫?r3?܄=_hA|='O5zHx|㺋_/*C:/: !9uۨhyle]u78z$ʓVZVYv:x5ͼgfI +V+h'N"_Պi³RK))P||Ij@!Y+<.\΍_f1gE$1G8gކG>x·3b4` { c9@%mH;F|Xbv7}zìJ`<1a]k^<%;3`س^Q0D.}8GAF~w1[?E|&8]qhɜﶄD-_^>yL|U.C_tmGSu! Ü냫I:VAOz7g<_2h:\褶WuJK)ULx{'"Zr5qC7W4i;OcȬbjYˎw3E ',-+bm}"{ ^Fr)xWдSt|5I/?Q4.h;ҫGqB=z-*1{jQ߇T7]i9 y&z߶8'9"׋1OCZ B8S*hOsࣹ>|_xƆ3?w\h+j|Lfe#dY jJElJMOҁCv~ 9f Wg'VO 'C@1b* ^O$gLdSRXT_||RcV 6ey4LX >! [0fUt1/[Ņ` ƫ4,J% K`+4/+Xxwo| 7QգKVL%GZgֶ8+3c,,Hsl^=ױ%[@яA!n1,Xy9{`{u+ongi+Ou&5r7؊+d;V[hI~%;W#nX]m#@Z],- #1o k+W;z vW\5hPZ.~ hW EQiт2'k{2O|g,Y}@T]% O?~Q)w߃LHF.dV}bK`8Spior ó92e'dErg=dZ@~JjA⏩^ )w]W_wņZsՂ2X (:HŤ&yHUo&΁xb{,m[jXcߦ Uw1x6" ^BJz1h|v%q26hv˵ z^Tg{ZNYOCEq07gޝVsS6oW0qo|>ŜSYșslJu δQeGfqdazֳ.F{q:EGsVJ(Fl0vC%{)~ 5]+)p6C+nIkTK!RSA pC1b$!^^(a+L$,bJSY|G'Edź84[99d>kt鿙8{ #_Ȋ̜'>QP<0^7JK%bd/GfÃ/rww)|T~I=|n:]jzUpz:QU:S!p:MZ8ܻkL[pR#rqjӇy m].yX_qڰ#.uX.磶u_H_ rQG/s?u%ZxRrE3W[4S}Y,q'}B\:2qU+j>k'v,(xoJC?ʚc$JhϷ9KK[GSKR; 5H"J3c>i3Nsq +,Gllt34&\Q!.* cǹs.ͧ^6y}׏=ƕ{f3RmiwjٶT[= 0eD (~➻n~CyAAලoG"I? Z^GNz[^Un(ޝ:Mquc͋#/'lsNO;Ґ 72ʲq! Sa4OOdEu>'^k!C kk^ 9~DLBy9U[hK};[[A ^MC!LkJTŭ ιWuzZZOC75=b!vHp2%NҠˢdWyt=uRѭˏ3*czOC窽W`Bbټ͇76A54>~l;zjfRcc=r8ʱLu:5 QX'~v嵊/=&dٸc;mbd Z\6t3^J`_^u9v`-l^ ϓ)Ր~;ͩJ vsIxP4u9[vocӪoygD'+ܧ0;?_]Ȧ틙rc@^64i08~B (_H=E~*vO:FpXsN'(+]Ew&oEyh9X]1wPL璜j4' l*̆gڔY&g{ !\4~X7;ldOS}]H6^Ͽf&"`g |)*̝;+*|΍^Sױ'Bgᴾ /dϢGhڐ?8FnPYPOm*'l¯I(_/p p(;bj͠WgM:ADzzUsP dGN( 3S:4kH4(!kUOTn~|m+R0 'j!uLceL\V #Otv$}p".ݤmlk+n~ #.r3y9~>9t$M8vơ$C#ާ#iڄGu^ݝv慼Fr<6mrͼZ KӬ jb;EwgSw/3X/_#~/DN 65 ;-6>2m(Nw3TTfИn=Z=5ư.-e-=޽TQZ|E;$w\\J~]]VFYA>nAMpi5ܐhToǗD;BIm^kjry563'5|!l^'}'X1u>Uhyc G?$ ʠ7-34[1z$$,ΆH+wFsZ*oМX0{=,j7Y]bZzr5NnUS]th,.w-ކ2{ W)gؘ`FIC O =Luw{:7M'f'gO8|́:fhߥڌל/մ hA;"󶿈(Z2cɶИ}ZPnFg]vV:y`P5l%|4 Fah,m,34Cq!ʳmrԗNCb7ȼs?(/ՎSwt?9f̗hɵxWP%V\wKa G!ʓ^]Gм53Ipp5um-?d^鈻1{頧: 祫;Iq)&Fe*)X5gfUNIAZ\]{zW[u =uZ*?:⮷THI:27 Nv23M *d D%+!@ b2NOټմIMk(]_HfDUҋ&TT+EWgA+~>e)~**lnwϱ8<+jX}A)#DוrO8k6 ߈uﱻB;^DH1dO!)du1{jE;[yӟcu ^j+ņ8ay˛J+˶1vi(8+<g%q¬W.ѷQ&_CG ЧFsWpwWHuwp2͙~a~Ɯ*$<.;wV 5QB@0MC;Y,Ivs35㞴騒,\=1(T?o[)NfZ/(;r\]&Epk4mso ;LH_UYiyl\7HֳV'\iic;%gOf wWԀ4p?)g걎YԠ;::jV~ƽ8\w2v4 H,3'03ēT,qlޚʘ;KhY{+Lx),V Q 'YַUV@:G?uz F:|ֱrO ր!~Ć|16w牙-ډXi9}?}axŞ̯#]bTa֗.7I>'pjCBJ+,'x Ocw2ڴ$msTq@n>Jl2I4:iCJ:]XcmmH^9wfT */&2n_([\-U/4p kVPXS7@ j-D;yE\j=]n}BqrPTt \|M;M]e[Х+nXk=rhttPGy^ ?Hf w_sn MN X/F{qYuP1zbfleV7Ũ[u pf-Ӄ`7g&1S[2 RPUeѺ|֭tMҤu?QP(ɢ_qA 8mAjѹ|u󹜷a+f%0Fp4.?/Jb1+7jˑ'X$*+<4}4ӆ+'֣9=1ϒ{}< |iTVxPʘ{xrBDG1c6+&"+O%=Ն OL :&|] `BW9:]9ph|e!wh*@wr7UήzÓ/Lgң S&b+. 7= u+üY>C֞5-s f޾_3U2q=Ȕx IdnbHlՇ!vln?- {ιOJ&䧤cjAPxxPf$ebRO.Ҭ^Lj]Q5wC=4n|%Ii3f\ ٿ5A 8{ #_Ȋ̜'>_:D~z%ͺ~^† tF_P^PO*렂bdv.zX/{}qX"fOf{9G;%?#0mѦ (2DYߢUYA;qj!Xڶ԰DǾM_yg-:a+J !]+Oo#|9lthzaO>¢sbYUyQvx6G\Ѹ#HV#|6iY㴱6xS<>d"PO],?v'3k&41j̉rp|ggvJX~4oW0qo|>ŜSYZq?Ʈ^z[]9t}LZ=7>uqSEs|W$qԯj+|6SH.+BhzYσ_w]wtyG`UeiuYǑ^Uq:NMuʘ4:Qk  K],4Xh 1E_%fKSȑ_49jp﮽W3m5åK] r!E<Ԧi"jۺ\!r!rqᇌ.⡆jþv~_sapWuWw@"<ׯԾ!p6ū!W43xI^>їB!I2oZA/V Du-/!B!hdrF=ipdśwcP0 2} }?}4.Xؾ%Vɡ%}*%K~ !B!ev6ϸw׵4X^DYP}qQx'ρ+zҐ 72ʲ1ch9a[ʖ_<տ/-nOb.YJ 1aj7F HҶ'=̇__?&W'"HyCf)tTʡ%B!W/=_C,~/w㾏^JŽ)]&p]c<^x-r6O#٤[`Eo{of9_pm-\KvY{ CT)tn~ [߲b^ڥ+ٛ]?'kB!Bڊ+팾ӟobƒt޽q~1w0g<4_z<5 qNȢO?,NOQx܃MgDaL>~97׿Cv}tK>y/֧`0şSfm*+_ql:Gۑ4hL1^3OqH`3̻D\EC^&dwO.+O<`'`'g4e i&ȍR9.FhZQ;?+OP_ ],$g͜5SroƭLbiYL] BSk~v"#+Vsylrtьk4CG7'^Sܱ#X n%M#".R~5a#A6C<ɀ7/#4..Y_~9+^B!B!jkJsW*Qؔy͞ƵQLԕI*ii^|P˓ ё̈,8sfoᷙynCyvǼc?bW{0y]Hs!Ḑ$+:Xپ"qmqU=Iz3o `ߌѼ5|іm6ӟ2 yed4j\[q{R΋Ws%B!67gWkF;ԏ%[SsG;]uzx v]#jR(H=YI0+Av"YDJ'qR7{i5"{\Id[)= hޒ0_sV Z!%{RxE_|O'3{UOv]ߗc:2ޙ)2yFQVO_>Uw'Q1kHq$ΪY-җ_Px !B!W-M\idebsGhJRz28 4;('wW{2NzT~",?[fU453Wx\2.rнӎ]7UL TՁus| Fߝ'f?DӰTexM՟[oџsxnlvꋭa/M(}fҥ?.(Cڐ2sh=@3Sf%XOfs >θ;CM.-:en˯s|x !B!g(;ҫGЙuS;HvWUðgk-!tlFr1+)u8l*]Ą!t aVAiW߆4/SZJbWW:se;7bŜDC$WXT~Phι~oMs8nMz$#<=BjKKԢG]E9dkP9_Q3n V(I=UQ'Wj3}UC{jQ߇*e!+[ëqc8_]HB!Bޫe>.Xfny9a)IvNO')D$Xic;fb*eyգ33eu'i(y)e#.xx<ni{7リ`4((nxfPRT>z6'郟 R#nlI1wc4Dm[ VqklOt~=~fwj1wkB] YŜÙ=z:3ԯY#RTHg7>o'P2y7B:%X"ʲ))R+ (¦q2'pu6^}?x^̯j]*ˡe}Lϛo;.DY6tYj\M#yu\#ұ'D=rRB!BWZ䜉yv!NP" IDAT~~>_WRx;EY>Zw"vR128{!i̍\ ˖q%"&~ s VixmK K{t ퟢu[/, 7QXta[c''` |$9 lՑS;t% (؊ Mbs©_N3ñ<Ǽ1~tˏTK^bx}_(!/9ٓ, ia4-;%+,30#gW_Zm2{;}m1SNt@ њ& |\'< /=<,]hԓ~90#(\R): OjK2,Ɖ}^D2/}yslRơq]A@+ ώTWT*!Vڼ{u!GuPѧƢ7*T.5L-Y l6xZ2MUlN;[˜Q pho9TNa+l;MQ_Zq4W%|fĪBM|ͧ4q J${Itt#m EӘxы-mIIU(Jه1wuƽV2J3jypmH&^0bNn/N b٘T1o1MϗimUwiF(ʮ.Qj͇p"۔Ҩdgej0?أբUs*KyGٛ>En~s*nNsG tP'ߑ߇n0~Үt&3-2o^Yɦi!!l Jc"T]o;|Ρb獩ν mUI4N|MǗr!md\Pe? 55;;OsMm^4A]d>3f;_q'{rdgfiпdnF&!m^zDi1o-}Fw&0[j$fE|47E_YUbϦ~VT SXx0 Ɉ4 tU劝V ^W[ǙmLgDZx9cg# -}qwՖy~dٔ*^L &l>@  dͼut0nkA @&11_Hbd;yGΩár&5(-Vd-\SԦX:b`ױ^U:x?21sr%Ec >&jkT.5ri: 3{I2L<Vs XKvͰEC=mE#jV&YYxuD()D^JDӸ=-KS#@͇܁ꚢM)괼ټ(][n1Xg\d1υZ:t]'hi4z>t1Ϭ 9`0C}-ǹRUPJf&Yhj@B:@բf< 936\ܲ Rb2A3r:dLjObmTaL;V}\9fkIqiԋ\1$nw0%+Z~^fMûg%C|+^k2feS=K֟4ի@ 0Ꮉb#߇XR9_hAN >YEK!v,Ɲ2ܦ.?aG |%䌳'.+oq<ә^H8p֣x.,8{Οs~;ۘ|]¡S5ڽɐ\tˆhrte*p_u7iq7%T| ^7V~HⲱU5;ǯIB g#P[n]73%~/^,ɞv1reO>L6P׏1mhαvlGKwLV+c?Ɗ11qMፔ}!l<-֧ʈy*NkO松/d 5:[1 xJg:-6ʟ 5 ۺ7HH2|s 1yWr3,%S'.x1-NTֶc~*LgP[ &@]$ˑ{Vn齻u$bBH%]bfӀY-FIFLD-G{$xע&mq⁅@ 'WEͱW@GDEJ|$3ŐOڂ5?|̩{$E:$k!1ݬGGЯS]׃?Y.zelj:ٝorFSϯ_}SOnC{~I7c~R/adfp#:&hߒ^nx#HU РB`r7FH(o6/77gl߿0he\3yGRTӠM_`y @XsꟍmC3t?v>h yw0a<ӕŃƮdq5&)f]萱I-5 7L=B<Ơ$o;^uULUEQP QiUXG!;fԢER1( * ҝ@ J P8\dz > {i_aѪ-Z()I( ;WHzy*r3ьe~̙Wq\瀕!{Kl_{vvآG5=k6X)Hv-Ӝ@k7/Beg*xC4{wRӳ4ߑNU.sgT &4*Y7r92= >gMʳ?m,W:Ppi}Q3hS@}ۙwѯI7HRzӓݨQ%1GuuZl^o0U?ONW""Rl:C#kƏVκ4 MFYvv#~oro# 'E>6T1zfygG؅:ң%v-y95u*nx iֲ*?h l1#Ew| *iE@cL>:ZB3 x` Yo삳֕.)$0zvr~ Ƽǹ ce*Xaf$Iy{㓖Ck3F&d5v,}rTBlぷ˛ p;4U?qYjN 6\L1% VQ,\cڟs!& Kz4w:I՛9L#e|^ư2t77TxK|p0=]zūr&>ٮ6ŋ7vz@V ]WJ#)eĊl@ l>ыϵ)JTs0͙k=Ky3*UM%f7ӯKv4}c8]s2y~&3hB?26DfmtILhTXKpiy&t2ݧM|! _~0ge7԰oȄ B3c‘OwLf&Y1 ̏#%~8<f㐍<)#1 k|jHYSIV1~tD߰npNZC ~xG3 SI ,^T bR|yyew-wчncΗ*a&;\4*l[Ϟaz(ν\ < iݗ vC|d܁2 rH `H2~\ #cod~Mw=-޽Y|c$?0y>0F%#> m!XKfrbƥNbY IaGX=j!2M+! L~; Ȋh7d299]F&cd,n&/NwTYU@ xy @ wlg;t`, 6zF@ B0ɊM6"'?n@ c,[tUX.DM@ 0IJo@ -os<ʛ<@ #^@ @ KLy@ @ @`2DJ @ @P.+@ ?8Р$@ .p84PJVJ}uZC%9:BӸY )[%- .q.L1H4zVE^vm#uRVd ZL̩sMǵMD%p5WV[~l Ӿ%ǮEמt#hpWP:бJ"/n$ayƩ]aTI8\44 s{8JƻHL_z_*z2BY3j0ؚ1sޡQn ,Yakp>+`2lCcT{hq}+?\uٓG3v9 ϿI!$nJ*/]Wr҈rE SL^%yidxnEC[7N-% (a"]hw9up몡x fN.Z S١YD"xfi\тl27Nh*c׊yG{%YaR,  \)*WE4u?5xsf|l|tDƘNb]wdWX w}ì۟8P_b\9DNXyYoGGEиRE40թkuOuL:$ƛv*Sy=p1b |GULeȬfDHNtMaܼuHv "M؝KNtd3{p_%,2o14ɮ)c tWJt *1_h\_"P9&n2Ai.a,!ȋj=f#r?;洨n4DfTwCs| ֳ{r{T[|-V+t'_d 5i/`9Wn " _RV yq ѿ;kڕzY U!/&?lwmE~>_`E&#|n>FSّƯfd tۇA?\{)"(:'eJՁf%,*8AV2N?\[K7 7re*y8h6U>ƒ=Dݾ%D.l*̨(Tc ْ=KC^ђ`~\ĢBx@k&r 4s× ?43.6ٜ/.=e-;a#a§X..疩z{iD_Q/Oٞ#0C̳Orܵ|Q2cdfC&oZ:lMWxu 4igRo$l*bʕbL$+Z~&>tTk nʺh5>uk3Lv޳(GKKUl8xZL^ \9K"$jqs2PS/sLK"KrnL6ȗ*0?h'6k[bh3ٺ Eߑ٤e,yUb73Y .=w-mX~$Մ2?iH. i\Mؿ_X[S9|Nc8Ia$2n'-z`m[zKk[\7,t aЪ`M-#E1QsT *h A[ff5e3 ZJ뿗늆j{9X(N/hp+_(FTՆeM*TCUbwwK 3 2 d$*I!wVRPɳUQ%d?@':upi/r#TEv7Vw0d\ZHD^/ɖ6X+ee{$"s| 9=Q 1hM\cK7贗fS3E_*nxE)K?[:P.JըjИkЭkUpn_a1IABE.Q:Su\ra*>BfaEPu*eXZCfBLJ5? DFK<(YW•[y<Cϱg~ vcVܕV8W2xtVUf%] K#98a/eϖ~9Y:eXo㑰X6 gSTTņ:G5z-5{JKn'>?DoamhisyyR&y c([Xς?Vt~}HIFLѧKɕ;95S,SW3DYzxf]2pr#~:6E(Z8s''s?ev4nTr9|"+vo9c pЅ硜B窉x9&)QrSqx#J~aא*a)CvTpT+ k{Ps /ϸ &ʧL1Jv vfeסWe(p*N/P2!><ǯb緼rc~r!iVҡ^5wJĄ{llۧ\aќQ] WEa` ~ +h~M9^xi 1{uڭO1?ś&Um,Z>]1d~Ln* JM$2/fb/ÑiNhtJj4hУ7O J T;\+X!H$\+X&'\Ս3 }/s4fhloʬF \"gj]$q4jicj+0]=* 7e(\=Z/aTH&U$}ȯKG89UAQԒHJSIBRb:yl_2J(,B>]42 S #\|]CqSw}Bt4kYJR'-[VB̥1:t*Q} "~[ꝧ PbyJ$WT6t{d_,P"Ѩ}[ҶDԙsw$@ƥY?FO3Oc%}{K: )h i**q깔)T-gndž$#*dvX@v:2 CсhJVp%qkkm B}J NDIN":oY ǍwD*}d? ;O΍u,]W{OFN~}QmR̉NPS8pZG~>Ŭ];gA=0T"C(LVA9V\4\cJF H TWЩ@BQ 2y*K)*Q{H2^MWjU(c@ʭ`J11 f6#4*!3H ]ZtfՃ 5kh .^PiU%jR ٱ)wP*U{M*QlD~'->TBTb6zиs㷿WFYoȠ`f9`UrxVu\['s ce|j˕OH$roB_8`DG-ߝ!Q-zA2I+WhL/ kr9 _~&y@Lӗޢx<gň1\dYf4|k4L5o ~Q3n'j&a!WeDݴ|MD`vΜjD&硵q2!l.Vow0=;yaj_cy:2Dd8p0=]zūr&>ٮ6Ŝy+v3 rӗh[bG7 a?//kXw1eگ5Cae཯:eFd$p垉4j^ 1Q0.#SآPeC DՆe-S#$^fjUW]}WD*DEi5H¹QUr$@0-ZGV* V;"IU391oR'1v,v#UΧ_c7m!/_$h6|00p&:cN'z0Gnr>xkgs!x(^PSF[M⃷?a0H ǂw_/mđH^r8@H7OS ]}p3АTzTu/6,u Nj ~4|ƊJNQ26&G!'/ih4 \;Nܢ' SC.ZZAnBRr?NJQe0Ɵfq oI? .bͩ- HVhh9`*= VLa$#H`ؘ3 #lT2DWE0Iw_*\[Fc1)(BfaE+@^ָᮠxucEgG_+*qݐII9Q/c^T"S|A=W~@hxv}&=omSVQF4+%b58t Ԫ -%Rl'\g|N;jwmJgOzׯDjL AHN#%d˶yu{* +|BwdLxUоK@O2V_=s2_1o\4QhҖջ~)|nYrq*H/@PN)uTV觥 TȊV<]d ۢWD9稥E]-K0KXl,˼l K >Ne\l|*g)%z&0m_5G'MGS q)< w}ì۟8P_bd@@|X qpwq':tz|;:(ƕ*!\/c^Tjjwp#,3 oŒkCɁc3k-<ݜБ|e8俾Sښ%wfC^]jZ*d%]3~|y4nygJRa,^Gsɥ3D/W:nFgƭxd߀~#_kT䂓jV'ȟWh*zxFܖ֐LLdeG VaHfӠ=?GqUD`% 4\O ;#]O+XQ$Z;TH"6lCJ:zVYũ¢bx7zHZ?&1}X^>{Y !>tGbn i*Ѥ;g\ eeۆ^]t(v0 Skæ1.ҸOb_A<[I|ڰ%*tP*Y* HPE-J8Ihwܗ%*t/r*\@Dp@SC˷d\*JU IDATCN!gA %pROυjƢ}5x75G%'^!kRT[|-V֐ {&G '2$O{8h5>7;$<^kNtj* -U ),=KH9p;Q:k#sb=]t ІmݼX{4՗[8+2 gltZW\ܟlN~_ǃ6jCL2ZEҐT8ˋ{h9& p2 %+Z~^fMûg%C|+ݠz{۳ ^T9kWra:#Llh1y r9Wj2tr&1R|ԋ\1$n#;UsmN|9sLd5y?#OIX26~!#n2jCKo67̦Gړ^^HDݷ*I;l9Y<Y2 ?ݡ$tp`yKVvUqka~WRq7zx[ hg#d6^&&k2ƥ{Hdu j2n$a[K!G!;=Ǘ빒"Q-^OIdT;99!!HHE(DPWTP^ `,`UEJ%@! 齷sv#BH̳ٙ;3JO3ӱ]߅\dPōϭ9&h=V|'aNSJ+a%ÝǾ|4ӥ$ +>R!)9lI76|h#&C4D+sw+ʞx4b%F%2\z( {CXYyY{X&/~?sFZfM -Ls36ٱWU2]vͤj&ZUNѸ- XCBx aֹwȬ,|sؗFqEK*g[ !`nP||Ulf0~s oڨ^hC(dTF&<==o2$-&t"`0ƴ rX^*;$K >߻474!Ng1gzyn]UJ8u-uaMdؖDzGo,ތT94; |'Af,a]ڼ I؀yx+mr0V^XJZ[<΁Sd c@ױ8~/I.-@LtBH|0Da[RrY% $Chb/fdFɵ_2cO7Նk4vW@$oLw {uW/!=v֣9KOnj3/yXZi\ъLI*~i^*[! +avL4v"6ZY0YJc$/䟔$"K Yf[i+J9rkZ~N33^|= K@F1DYUAFBXyhbv^=V )e{[+\=\*Vr8%4B_*G63'1X9rZ@m =t<-ZݴC{i#*&|3jgSih<@xnv-1oxhڎyǖ-S,Tw-n5OޱPpmܑgqǼ=>x kQxDo?Ja++S/'쥏6?m+Md$[=⒊-+;#A}+M:ѥʡ7TßmG;%>ٗjI<>mkHӹGם{׷IB\\.昃;q%_wvyGjv(H6mn>7+ͩeI66ACgW:7;7{$J XZ5Fݢ5 3$ّQE>ԡ,Tu{c؄s H Њ*[BAR/8??BSAQhQ(-z{̏gDzeO~`jg<28lnEh>\ YaK:M%|M~\ҮI[La\3X0BAlo\>IDcsb#qޯ+di$hćKl5\2WRX^^DءJ \5Q:uRh#,4T0}m8F*K͒įѠ{(=+ib ^7VSIJX|}P½] ni/M0μۧCr<;m6E{-Lnxx8Ig-"84|}P)KHQֿ7~ubpCXڬ/{6Y5!=pS~n6R3z9U-# CWKJ2  A%]UEТJeCn("nwf#:z_8L)]LaS@%&D|Z[?Sͭ!%aGm4U ,. l/-,8 t!ڹzx3? &n!-ش;Ci>o>F/E?dw+yviobr\5Sv"Yw~x?2̝>ⰯѬ'\Ƿa cGMj`^Uv$nUΜ6v(\IIQ|l5-D'{*j]ʾ*5jzc`````o~AQV!o=ʶb{?a[Vu|,!4e1K܊@Cd()];q}X ­o2r ŘG7 2%RR;j,׮\^GNMTÖoz(<)x`fY@DD [Ԏ{]4Pf!,V0o/m"GE΂&벼e.D"DNK'@|&m[*\ Mep7SigSҥgoF.!2ܳ@#}.ٛxԺ_~yےB9qS` q\Jf]k̽4= *˖ֶS/1-Q#f7X Q2^%266N/#PO (_TIFj-U=~HXcgGcjh*&UГ~Q+'{ò3(fH% |A&$`MChle˪sSe$?. S$VzvUf&|mLt]o"Wng[g0Ϝ+g_9kǰj󗴘;3q<Era?8Ҳ/s |,w3RHljZ~ 筁0kEf\l{qr ~G:/q#hALzx4]1q?vl4X2a%2)ͽ݇OdLdl+/w7[.NjCur\g/j 5͘WS&9]ŜN\ kȈ(F2ud[iH Kgg~s1pD9PcҖ[ĸ[5Њ=trϽ>ށkՕ6.A}A\EP&؋A?=IQ'M.Fy1<]%p®Jjkg=uc̭6CdFantT=H:w+#[_Ct$$go% EȭDF*U-AfJ5OKJmFb|;GDk"7ذ A2=i uMz=oLPƦ3"@!$ )5dIҏJZ˷PffoA^ *)H%*KYL{_NeՌY|p Ʊwg4ýB.pMAh$ڜYUc {JI<`:>q/ν7I~J,[póY'4TE|DN_gTҙ= ACG07k6,b )]֌ WҦ↻o4sIjZ@#Ǘ:Ȣ)wڤu׫ >j?f])?7 Oj$}CC4g,x} [ɑ]0'sfĄWX ;Y{, 65=Fh89 gfy(pv8Ϝħbe!+M;ӆh pvkJzꂢÞ?ٛf_G~};sƃ-$CPdEGe Z&J b ۷hNMssI˺qG(Ƶv ͬ>B|Umm@zl$|qt gl=?xJ>EOV{;Ѭ/1F>lG LK'(-"W-0~^PJq\ceWv%'iܳfU~eA3k$7GC쫘=z~W9DfT|=i B=|ď D`z^5Q}i54s+aб+9A\z!JDs!v-1000,x2eH VBvΔ2000000wb (9)˂ZƩM̙Mqf_{BpwP,;qxJR~g?X*h````````````````P/\Kcs7 A!㉁AܯlW_W|t G"ʎ}2e`````P|7*X #2`/QY\Хߍtu h GWs- SS3[:ۄE*[%!3}߰0C fyߴ0 ;5]c?;V<1nUm\=*5ȏ{+¢;xry6Xy$O9Hz^%cc߾{I컆taݹwKxax[Wkv 7֩AЍi ͽ !N ٛ;b4z.S)^t?o6mg__ln.ui`gG>έn_vnz^8;|eg:V|$4F{Ѭ^V7r o!c쬽 *tj?~ߗ c7[=WFTEq-&oUp* >a"yhOY f-`#$jt3lԙ&9J|E+\ pIv9׀z//s? 4Bz~rsY#k%~RqGxk$[Ԉ5~S"O@˛Z$5kBjCY՗ɧ=Obi"ez^8&~]<T4@ ;Ǿv{Ѭ^ gt U$p:۞>Qmh``PKԑoaAUiʳKbpeIu ]1fz^u˺TA q`FS6}允P');ȪGxvzxJy O2uP0-l%^~Z4[Q6~閗S+8>ON9ѨX4iFaF<>/O}uL7<C$V/ZgR첧Kf00O#lZﮉ䌏*:3{Գ#,`Gy4SOziЮf̒9e}4_q2r lf-l ;* "_ŏy}ږs|LO>^pk@EM(t"}ThY/keSެ0o_|yQ hWIa$qကafuf(M҈[yHU|F:ehiD| UpjO%H&v}ލ2[>Er6=@K5ZĮMVh-p'MzCM4 x (c-vh-vY/D͸AiFG*ŵ N-KSKw+:OkE<9'noG޸hy$/Ќ:IG6|- l}h>@#ktn}q6zjItuz>iؑ>l97~o3FSZZ۾Y_kw:YpB+X5!b}Q $4pM?$icce,x |AN}'UI=,BRr)DL%"WGz$3sez]|u+쏿g2yy.oaF?Џ6{o绍A냻l@(wib.寲 Z*qVza%N-GW0Su9ܚvc螘NcWlwK[W{^OǂU!ҋtb#Nghʆ]0mR|&Ђ*s s /I kΙOah + ?r_Gz '?D9=X{?xd_?K6,ݙt+ ׅ$kB~_`a:#"I?sqZҫOxA^-1m<G}D:3 ܮ{.[ԄMtL36VAv{ќ^xqZZ p4%-_,di\a7u ic1Z/IDAT$M#XAO$%~LVSe溾cIDifZ82B+9 'XaXp,|9ѻIxDNt+C IN3]IVHM*si\5s 2\$xSڹrB rkH"\B=kO @fK֩Z&؈g/TI;VbZ!Ag6NƗ](>hk<1v WI۬kiL12=G (<`6-@A 7 d9qmz*N^z)+WӆuZw7|O[n@.{۫LTkwm(p\ d^>9&wTRm&fPJ8}XTI&8]ÄMF=ij 9WLӂȥcySh,cÃ| ӄl8}ǜ9-um_(ֵׅ3Є@&mI1{yTYHu,g q+ ů!~" Wk]] ׇ .HJ?{ۡ$o|D3L@i{zYZ*?&|3ΜGO-n5OޱPpmܑgqǼ=>x kQxDo?Ja++⃗"'*t.,m:-SkrL#͝w뎰 46ۘ7n<_4mǍI:j{ ;.ų9w~y=9 fnי}+OP @WoFQֿ7~ubpCXڬ/{6Y5!=pSlQXxt¥8IIEk sߌe13{5k۹=j|>5!ArTotWǑD@Q*}kJj.c^CYLvD\ aׇL&Lذu DH#Cz撒 7tCffaQ\D j ߆q!~kW eʗ;yw}ĮO.U4f&|*ࡠE?w^< rڤ:/Q }MɄJPTAgf(R6r=N5.FeRTYvꥣGsmii^U^. c_?ǤߝUBD-i=vzTw%6vKZf^eR_WKO煻wMۘ;g}@hy):\iͭ1W#}1t䣓f3簯tK5UvHeI>C\\c'DV!oȭCɕd@`G˞MB 7U"hY`;QZS5#o{t[dЅO3WƓYAXf5"OOɯEZߵ#GaϊϨ"a mXuW[s)d^80q#<νAsՙ_؆ %{跅(D"DNK'{3Ș&ɬ7V^n(\ZՆ䎻pX6=Nt8OD6A4(?[p*1̝8yl C"Ͱ P\uwҙŘؗ=2f3'>9Hz=k6T4K &<8;RFc-, 24ʄLƖ,Z(Y Tk_-Ơgْz^3K1ӌVoFMUY[-ߢ”v{E)""m 2{"v47ݟ7}>elN0Ӭp:! {4P#݌yٻAms)I$6HC~ [Ԅ'M.Fy1<]%p>-^h֕8W1~T^y8ʡ]3&9NfLS9[ܐĆ \҃{AKrMo3)$%&pw̞z3bm$h>hvdqb1j%ΦDƎzeGg %Ԑ#Y1J=>^8g(cXiԵJ*,O'/c/Y= =;DU"_žBX_j/j60iJ4U 3CC3zC6VI[M~TҲ#˪]6BtdPL4$8P%`juJN]s pbLmŚMbD(˟X{ 7wW5&IK( ܥ1NZwz9 xso8f`Wh\շۺ|LMa¯*O",XuXpóY'4TE|DN_c-ʱ/oUBy Fy/>4Is*(ʌڷٰ%YSy2gOLxE叿Dz ggoEsKuK4yjΜ׳3pdi@/0i)&'g*0)i*SϋpI9/DԒѨ|^]T_Ա 888J{vwnsǵqqT>IYb=qt\x4}*?H:_J00GGX0t,JN^Ҡ57>0kr\] q . ޽Lx$9.UPc3 ./xj```Oa (9)˂ZƩM̙Mqf_{BpwP,;qxJR~gxj```!(ze`````````````````P\KϤk-IENDB`glances-3.4.0.3/docs/_static/cpu-wide.png0000644000175000017500000002056314432156570020015 0ustar epsilonepsilonPNG  IHDRrENsBITOtEXtSoftwareShutterc IDATx]gXTG>s]v; Ďbb$h4DQ-j5^bƆ Q:ҫem0.`@?x{fΔ;8p8p8p8ph~ZB : ƾ(zS8Q_p*ρjinTدpBjix_FXjꎎ)tZˑksYҎ_V؁jָj7rKz i~OGt׶:ϧ?ߊD&=mD >~ݧpwPqׂ/rЁ-Ȇڿ-8Dv|9H ;{H/S>yk>Q=Ck]6H%c$F_3Z8`۵V]@}R˜<#kG["G&~#F^5]U~vJK!W&f]'P8Vb0%, dUXk?;|Jia㈐R5aS7zԕZ^᫅e_T{C KgFn\y6SH(iK{;~jwU]b}]Hx2$\^+i3ʿ1OotoKJhz7 j%r}/OƤU3<~/Γ~&J*e΀BVȕ 0s-OL|rFLL7!r莌-' sf-~ L| #! lFU<}c+M`J/ {i˔'xZSra'ߢ_woۻWܖΕ=ԅ8|{oS>0CE 7o8<(#KS+FED#?ݢjRvN[r1n36"(O[4К0*N}I ,}mL¸s.zIlJaEYˇb0kU O1!Bui\Ȗ-/MJS}#g A㷼&muJnő 2<(ڟ\~~A}2E":N!l/WFS ٦ O{tTLPJLz&RTP:La=xH˗JK'Zf>INNXFK_3ݮTY'z]F`E,ҹq+&лQZt%*?\}Mn+xV{k%ʞ73-GeJ>]VRէ|ֿNsI#we lGK`i@o ͷ$ ] I=gʬ[Cc3yKU׿ɢ8/ (wM="Ҙ|i7%dn$ʯ<ʿ!džfû[v6vg(u?qb"c74<ԍ j]utdg[:3+/ t"2ƮV?`D[  aҤ W3-{wg\\F~-Љ*\r#[ ݸ|uyX: FUx3-o̪ҲV8[:w{1[ Fqi,8}WÂJ\S=o|BS}BZ\Y}5IiwjïkuV%X qȴ>Ϗ,|* GFV&^94&tם`]ִ2 Hx<J%SDX[qAEVuFO 3R9@ :I`a*òm"Sk8 L x4i`OKQE8* Ԣ=_8=tV=6Aten2hݫqmќ]G>$ *7s $W3jчc|'Lm=vLZ4mNk:A]~nBHTKU ט$3Q]loDgG~R,Jg"O:v4zMG'%U5ҜЭ=_< {ZEӧiѬcTIU]LIaIW_>WUzh-ʅ':' ?8wҦ_s]*s3IY1a6&`&Խq!sEjy{WT_.s(O7:fu88pa noqV+8p N~Q4]Hk|"Kwfܖi_3fFHLAz)7 k?Yx{]'ie$l}}O䗑[41yGCBUxf)g}\G~&?xx fXy'`laDg2nX!AsISnTs\rʮJvVm?8sa/"*NZ= ԟ_uHRs_2V#=E:9 ] ,*Ll.\:D] do HV $.Av6YoA4}W߳i7~׫YՔny1=VCw \~W/v*qڝS;gTa&QE|L*Kֶ}3hב] K8xk.<`vo46q֟y\@"~^]H;;&*쳡3 <߾YaY0@L%<|Ӭi7 `vFxI',iژ8Y9Gy[`gYA3-7!{fŏS%Ya?J)V{fQ)seX>_5TV-i a>@zmM# +` 3s}v)n<5gG ,41qVeclȏۿϧٷ+gVЅw/[~kKPv~}LS.<(ٚ0.,UHJ3* d"KLJrI_sGO!"^ # vq3[ΨKcΝ0Վ_Yl&)k/{ERlYago$Ii.UdF Ч99NmcE3HOTKcC"s"2TN&q4& M? (><~ʆFʻ c}O /cϲZ,> KYolj^~ c=KXaM CӴ1" ݻVä\}yUw{="צN %FF FWEf"NiodjRF}2W 31q T #UA+}0=_܆RW,MBcfĬ< M R*Thb rL:;WC KgFn\y6SQ{-g+I_oCtGl;z%t8ua:Y( zѥL #02)6@@h 83(v70$]Ov^L=p߿D[ n>7,EU#=-u55XsXT^?jPbyBoߏqjpE;/kM@yAx!ӈgyuAPq$!jghul9a=i#ANRE66A,uH|[{x%U^w"az{5%P"9[ŲkFJntkGwGm2a뛷XFq) ŔcbC'UPt=f'ˤy *&_"rr̤6:+98e#֟xn*'71c꒽!?|_zNvvL9m2-y? ^>lݔrR8~Ýr®88pz-߯c_uhcxǁP?e툤,&bl9ā8pnA{BKz|󮽇?]̂΃Jb~SWn)2Ά~=23mlwV"&f}(v4'm&Li̺vpIMd:/L8# t5dlO@H0w¡Y6_K=gVcOl,>7{NX^>}&a|լ)3<01o +t2A vuDq0t ?ep}jb0m {KT[%#})s9 enyPTF5ЁvZzy^ yZb $"BAݏs1 20P3*)rk ~Fax~>qPL a2b; A43 >-~q5R7 KB7e?ld-35|ֈG2%"4Q0kj6ȰL fzvČ\`{I0F:3Ov`+ٮz|s]uwD=oի-4)x?<:`kH߬U߀[bjb"))zIVz$cZU QX.S1jLE .𺿚/JF=} sIDAT'/Š':DT :@ :ZaM=E}d2iQvUGE-h . [5o3v:`=t8{Jgk( ·~w4FG5{N#kDl 5icflEH?czOGhfF`WW4I6pL~;gL)n8p8p8p8p.0@LPIENDB`glances-3.4.0.3/docs/_static/monitored.png0000644000175000017500000002763614432156570020310 0ustar epsilonepsilonPNG  IHDRjr}sBITOtEXtSoftwareShutterc IDATxg@ڀߙ]`,*6jXr-1$I1zi檉Ĩ1`]4T/m-,wP]`q =/y; @ @ @ @ @ @ @ @ O>~1ݒy2ք @|3#qY" @bX=&ur)1ٛ 0>*.{;a 5uJem] lEj3t7;`!;:?6ݶOl"l9Lq1 \]Lo,}mS@wKɟԪ[XׁcFM2oæ)릯ҁy3m(-{)ɀUKu&j7?^OM()V{'u?9ݞ?9L% Om%sw\\2~Qk7M 3= /]s4zl~myN 5> i1/[?~GcvfkGӨ`nφ$4e~F\`ΐ$? ʌ C/˓R>t AZqaicDϱ貔b`;Eio4J-2j| pB_Xl -fqpSb@[n|;%Ifs+mHӟ~#։R_Usa,gSA~H?C+6܈tP{k)#'ɓEnL`Y%_-r̭._7efo0gٲpQ!g;*U|^H 1htjR)둱XNχN&ҳ~wޚZM@PR%y;9RxV QDVkjaz >_6(zp!Ϸ: hipx8D鉹]$MJL㳿/Un/ mߎ1g}"BkTS/橫`D˺aGf0SUuBSiZwnu7-󘙖^"u&` Ƃ/ d;'f.|7e[+#or:;, uv@iԘaP%D+wNOfts(rFOUn)L3fJRssW ӵxsk_kUf`ukE%UqoOqs0wx|p&Fu3 b܂e啄0: &OIbu4(AڕRlۧuޓ3|/!hvWd*ivn9J|O73Gm 1xzW;Γ X`_T|?gp=nQn nQ&,]g˅ -'7b'[Qx */_wpeC%^`x~HnȒ;͵oܿ:ϵ4tʆxeϋ$8qH/ m_' &.`xz^eA).-(WOad繫HNyAnxT[Cn~aݶ0&h5!ϸauArR I0ü^C4'|ZzΏcs}>tǽC\aA ܚ3{'N̄QSS 1^`߱/"9mٚVuI[Uh^=*x_w2HkݺO]8?z{ns|:IݙRz7)a)D,F7_%s^Ш#; x"Rhsbu'»xa@k.6$P9R}yVj leZpM5 (AQ,MN麉n;$jPդUiH8ceQ[2/!f(mʝy&A]24`A_\A4Kpc6N ozs߽ii2*PՈQ[t%(o5p`5Ͷםo~i\ D;ݲ6}Kmug oɬƣ.@(6{==PKu(OpsE%Kw@ꬪ:\Rhlk+.WݢιE4$ 5O4 [w(hC?Ŕz4T3r0Mkh43KRm1ŀI`[χ\r)LIpM/R_YR\(14^-6`8 gYQog]&s1ڠUqcXL0va?S.\Z%DNvצ7~Fk1j,VU5#zSM>j`ܐ1 ںbUMΓf|w[L?њ/Y-)_G}#6SAq8 Lv]*rS R6v0+]2X-lU2枎]ěW^ Ko6&S9|`0=&Tk[W< =l dV{cuft*۔qtSCc,-u~>th]+#/:8.48"sNjNd)1/NFG߈7|Ż^`SkĴ ryic|ROX=MXO EHf5$O.ʪFs0D~!H- ~Ň3tI ?W!zpħU6֝cFlfy3\`,wv:I`BI鲀 `O;0pA8VoХgg J |nlֽV@UjO|OyVߝIS^ȫɹԲ~#]Yܩl~I.:`h8m5o5I]kUuVY|mv跒2ىӊYkwg1PXRZlh:cGq\uo6 #ٸyW2M9=B{s_* ϟw1cr{ 秺nU\| < Z9aҷɵ8x]^8 a gI/Z@ @ @ @ wB6_lVGζ/10ce(KSε?ei6R_:S$s~Ib`"FZz(<[xMK\w ~E>n4$m֞yLA۷Ӳ9gRر]mW7g|U]nUјTM<>F*mIevg G KOR(w#֖':df.(sHrBSĀձQRfՓjgxN~2+A_{:B[]yQ]㊧ۘp֗-6]iQAɩ=5`WO->985'-݇>y+Ugn?: d#IcKxof~T^,\Sۨ#y2w6|NcV g@^; '-Zk 5[po=Y'־3ql  H~ӉwDz-%gdMH2hqе3K]!qK׬8 ]MZ&<8J+J PӏJ]ְ/ "o9+j(4ãEaXЮM zsHn͡ϟ 19`Pr?s,fpՇCoh4/i;}=!Ml-d3k6寖k'ԾOr^?i]G (pqGܽȮ+s Gy%Z9[}2Go-غ3/8ECpuӻͶdo^ 740s-nݙ((lERL4Sa`0S&PqYx}%JQ6EX)Xr;鲶 `<e> J? ȾXW=ݾo "7ySgSloIsw_mW ?䷴_PS#ʡcVG;nMh$6|H'۷x>XwfqY th4@HVI3EoPҁ9t6mG`Ŭ/o`n4#~Qҳ^YWBQ16'Ӿ@w-W,bz5rWkk]<#W\-Kj:[13 MW\I*SUJVٙ( Lٹ7W@_*uyoBCD65UV? ;J j{J(nSLkI! Ό j?9_~ޣ&,TLiU&~y^޿ը-87T,V_?&oh}}'@2l2kc'ᅰZC> +KM'}w>kwm߳C+0 gqYx]b+ʔ8s錤w޾i>0,:0aA}Ew}!+8Sjs*nlpO.CG:۩g:wvH}˗+ ږo[,iNؘm3ex 0v ɻJs8ȫ9{g\7 (<r)W .-<{$TRYD`rpt?:eߗ6PYMfSodhߏ ]'|:a}R.xq}b2enSeᎴƛ(vxA˭;aOO;r%q}@}@ @ ם1ݒy2ք @ho[cX'! Ea lEj3t7;`wY tǁ$9<ӪȾɳ^%jn6?}-5){sR/UòL,oee\ũ&n>v=>:O0|gHeF!xI}ꀥӗORA^Otdeu .c`@Ӟ ^7{d^ͩtP>ewG󏮛 zfwVRd;X][xrH'h>;#jqdgT}dmPC~ouO}'-L?Jj(Pp̔O컾Lk D>b ڡ.AXk4][]{`oK}vuT4/%=m@.5e7>m!Y˾7Kl;"`qDž6 Ĥ杏_~%$j<#A}La)̬Qr\{I7譲[.yI bǿg>rNwjɿF Yț * PvwCa34Lbgm} 20T:IBzaJ!kZ)瞯k߿֪kW9BnfAP[F)iVt\=xށl *-%D˝#;dyR ,Kxg pv<&u}oXbt4()#=^$g,1@) ?SxjՒu2,ou&UE.QP٦3Mꈤ4Y w]~Jվea>`} 1x @{Z_UopI?Pԯ4 Qhw>M55` ߽newq><]^[V դ-푝Q[ "~|+r`o?)qZ=M,tͫh¸7Q'3uwKWd#̹Ӌ5gI&#}>IU?V3'` $`-;B#[3ҞUynP(:ʾO4Kpc6N O}:>.9)?c(i[lcx\:-풝r} ;D6ƧogZխ;8UP.IDATS \Z I 2[qx#K >mP8cX6`zD57J qОzc,>oȣ( cYXLOXr`q`w: yʸg$0fʟ *8 vŤuw26OQ Ϭwޛ)b̶~|_om]neصg:ɔ~;V`=087ۏ+`zNHgUWRP Mme(ﻢA}ţO5>eo١JqޑE쓪UGNy%t)Tܬ!hp6>iB^lvM4s'>yT~go>S}tAUٙԞؿ;J:LWNZȲuֱ6E G )qi]z>e?>{ڒu1ݝMPgwҲo+ڳz>*ʷ!>! ~] gdG @ @ @ 6=yh),{ɢ%ӮwBg7:4g:cbAʚ|}'Av]e_KvA^|ܬ?]l.>+_J1Z}ow-Н¾V8(<ȹ-tdg?=/*yRm]7Ǒ}e}U}`&q緢7e~@),p80fzHQcbVeNao !D|0Wc-w|s6fn;>=w΄D IT-rr*K9Y ?gZ'&~.(sIBSĀձQRFU E4Խ0@VpXܮ96v|vnriJYpkB?*N[𘤮u$c`7um-Ym.M 뻬a# kDIBDi-> _uv|' `Ul4Pz% 88wd]qҾqG}'C'v7nO1dϬ<#4ZCT,ҕe1' kXO۲wQQJwo >,O}Me9dokd߿;Ⱦup<~x_LCϯ+r?uƜ1EZۂ^lfa&n*y(|Sz>)'7p76Tm:w=}Ⱦ}Ut}D;ݲ6}K1&Ռ7DvI*SU׎ix$E*'2ю8YtJpox0s:9;Rhlk+.Wݢιܫmn =<}߹~:8hgV5˛b`ǹ U8Yx H~hqz>%&tR~`J;^YR\(14^-¾/ ZԕcX`ӿ}}~w"'M k??#I5[5\jQ۷6>qC,^2j-W5s`,nS|:Uu P[[ȎO5S^"pXӕ7K,E7GTȾvѾ:o$Ʌ/v)P!m-/UYh0\{K ]VޞL@ poo ։;HZjTJ#UAűGhЛ\N HR.ںDAy@ @ @ +XMKar%[pݟ]0as m5_[}!cxB}L-7:->^;7طӲ9gRر]mW7g|U]nUh <#T9Oٞ5-{"7C6dkϼ_|&`׾;=|LD?F К R^'̛,B d<Z;?loRZM\^u ?̨WT1CǺIF̽՗.4/A"|z`د}ü1pëQG[;2 #}nkg;|҃Jͱ#5޷>&Hde@2`0XʛX<>K=zm)qI7v\5\ʪFc$7SSh;E|Zjo2eD==7ů&eޤ2"vѡǽǛ |C-'K}^P;?֌:zɧmM%HˇY2\F+#ŦV~'\W6Ii2+:3@}ǚ7=SCc,-ub: |I̪luJ~SDžG$IQԉ,%W (r}϶i^#NFN~8hOS|3Ud⯮7 e4!>vv.oiwK"bL'anOC)H?szx '!ۈ!ge=G9{O d1JcٚC2UK3O@@rDDJ ㌈?bn4w Qo!-TUU@cc#)~|cܷ!cA1$IBR ig "gqdG"s7X?X$R$21ws"\_ ' z !4D0? IC8gTJ" " b QDd>MzP*"fG53 "G7o\[р 6/1-#ʤR*)J)#MO^?M4CsB3rL3QY&I 08z!`,+fDp z12.I.G0=K{Rb)0yh:&1F%2p؀Ȓ$QJI) Pv08\ ϵ4 k nK>دn|J܀#@C8EDܺ5$2b]G=kUdR[PAT cz1!c)JЁIhArXƭRq )Hڕ",$2c@hR)T_(R,'"2h% o&- B! ?7*h918I! Kr;" @ 2C%sA;4,NE`}E8g*"3#mX-e odhRw=&p(h33ѯ3"Ã.SˠŴ`0 lKM"Tjb}+$yĀM>;Bd:y"?p9`FxxF-8giZ( 9{t% )%&^l,_" %LÜ?6^4QTrjb.wI p wK#*S$R _,3! <эƅsn$eZ$F^db6DL~L.ﲟ@|žd/AzM9wGan9e9 pj?ܐ֍), ݉V) 6 Vt2`8STeR)!&iSZP2 HKYedZp<+3w^fȈ!2(E)G(2-G#[ p!8ҡ"+;:pUNd68d(F0D/MQI2:7e($ -! CGٙ&AOl O3I^R9aB Ȍ`+pc P9 = ; 'D,yfrK݄sp{*{qMj~"),W*=sr/%XtA':BE.z,ZV-q+lT1ye%`)dWuzQ YH4MڌFeXH,˄.*6Qa"%]R$aI!dv1ͧ\)r&[`ŀ-K8 Dy=i67~8HR Ur!K4;1X1Ƙ&*0a4+ԈV!Z.TJAfn&DL)#$p&8 gN'"$QP`l"xsƹ &#%1<@ok\CqΕ]*s@;ESGXݒ[)9pipыgYLU]!:D 7!MAQ_r(~l! Tj/sOE*'TFG;iJVH $ + (LC<#+] m\e@GFTδ{K $MgDavs|F(= IЕybQ* $T/rGnDRJs1faѰeÇQc#!"WρLE5m~,T hpb#2]tR4;AVm% UH &F@0)䬤'Ѡx2aZfB9I((]fV= slTcjF#h&7cdz3O븍 ,8fony Ia1H0@ңCniBNzyZD6`6U:F0d ~d ȏl a(eZC$;('n0#ry󐚷D}P_ W+!2DHl"bP$fv2&H+MT0|m}hU/$ r#4H#dUSJrz*!`# .4K!2!:)m3AСR!sr-746ⰺE/56⻿ikRȶ/Sv5557~QW²RnMA% 3 (8un58T8-[OXl=g,=wnY@l^mP]HA6\#Յu>>od6THIDeO@ꫡhExf݉3!{]6z =l'/2ˊRA%v3 %qQ^VXi+;e kdF/."sUcV;A|ӓ?-Jȃip38M::WX+: VW Q*sAKMU-|OY<3W -YWb.#ځli++Tw$R l9` R8KҴ9Er`^ J~ V0(FYƆ_D' =p_\QJ)2ADizS/WiM)(b&Ld- !BJe1_hY'gNV0 @5z` yD1-&}/4k^JuJ7`TT,tpb&?sq;WYB+. r2KZhwv Ib#ܱ»6PF`34B$hI5˷v_w͏VywC~vv2=!!PFg чw:ẘ Y 07C͍? <%hX[^Ma$87kvodㅇV4_QX!D\ df+VFM)j⠶~Euu/W/0%g!j _N{kr|0pbD #lϫ_ݫ'Ϙ9ygL>cikL:OL{)S]yiꈳ::Ӧ8mƇ3fN1kY͜Ѭ~}'̘YϜ>vﱭ=iL?mʘg8y* Wd\ vh܇6(GU0H9~ʭ(  [NX]W޿m@mSp2DT^ko9{?}cZm/]ҥ2ّ}{/MեJ'X* Jq3vP @ X G~=O*|%3UB<"ϲFjh Kn> oM*PRCCXT` BEeEXJ1y:hL oI{]bȓi3 $ t  i DJJP$ҸKH YeŬؘ5 bQfBiSh {Iلa- gklCpnG=sJx([Xx*ayB(g-1FB'W~wT6%հxڧ[Zأ?ڭq^?Q.gAbȘOavQF<t&jި"tgHJRRHv/ҤGINR%qu4CDrs?`R-~PCy$$U!RdLtpԈ9q)- L}mom7q}.j_猛㪯jN f~Qฆelm)bs{+/9\6J3 /"@/?T=@Vi[uu,SV~! T"?a D~~ܮwZnt)n4;Ͼ:DT3pJ[ؠp{tρ8岁wݴǬVѢ9OG,aq2fLM JtE6 康h"X_[;qqk = @r[ZWm Jk&e}u#)@ -O4~`8Eвl|mug"3׷=0yAo5<ǺCIIl[|x"֦5"4M9RPDB[+S(uӫbac^<$Cɕl9 5G?4\H I8gTuhA$l 9ĀyWTKns$iƷCFR6$)Bo":D 7/{:al#ށ+:izC};|*[y.xb-uYOmۣ 78}e]3)o yMmvZ*=x] Jԯ7Ꭳw󪮿iU7nZvkԖ5.|kj뷬[0ӺWIpعkjjj7b@9WW?dYcÂ.OԐ5}Yl}knG>9_2tlf]euc~܂k?=>-uvoz5CDEĻ\86{EOX!k\3.hq7:ގ s@6t_跺Ma_KժyBTa޹u:ۧ zyjրЬ){.\炅{y@Epe˟y{̟No3`Vϧjݭ j_=l݆ڶo/;ɻ92y}>}M{NmO0sNOk[+h>z9S#~|Lq!^:~Te}ZC"(pdϟ3o /Z͊ SUUT??gμs.Qys͙3o޲3s̛3oyQf+/]G= ޽o ,-Yt`3  |џm_ַ=zT1ּW?GL:v vdx[t(mxw>W?ܜBιgӗ)qTUC2Sߙfr@|y IDAT>fo=壷=r %FP0BA][8onQaC˙#n~ڇ6EhW?{ǯI&5v|[ƿz`3o8qO(mw9<9~}aolo Yc&=Ǯ:7fvqߘ8!g#̇&{}QmҾWq T3/=t*{Gt#rʥh6 ; Mp[O%EaMIVTV&iJ*4Ag.m ]'9sՀ3#,˲b;2[`x"%ffŢ6 YV,ƢȲh~%Nz*%Udh.MvqBd 3AN 1' WTTTTT4I f*i ;V$3'rB[9HWձHg+)%f6*Utn&C79wjNv>D.x}^7}~?yh~ky ?,nsm_X=yM8j6[_pPqa}nvpP/z٣MXݲAܻc#>u}a1o|Ql;:⼗E968n ޽5<:y}~~>͊ԯ̛_@ٗo= v_`["z +x6tmV)d% xߎ|Z={o6[sa1 G}ۧGdNq9NiwcҲGE ][X=ƦWe.[Wܨvmyzl8|1NlvğwnSԧP}K;Ok8ciE nκlsM%?Z0M-#;dջ?>rﯪy3F-V;~嵧ob}\c;oO:!ȥyu( FuY2YQZMDڵ$L&~?{v| }zoxwo9jSm\r sjT\` ݱݱnOVگ]X 4dz/E.pi |JMu>u3h}KL^ײ)]|%_3}pĐÎ?O{u?Yf-Xӈk॔[K rv1`)D$$@LҴP(03r5R%s @HJM% 1:Đ34J=ouq qcT)v6O) .85Q'%pYn=b\RRj=ؒ˖ 9>2KFSi$ Q̊ž|9?Kt% U!hּHɬؘI1\A\wPmٹ`+ʈlg%|"c W^>z?u?ыgmہ>h /x='V>}&~'W>OsFrS6*H5CJ^ѮgG3o 撱>qzrl'rw <5LTVRF@g]}p܌)EF]6V'R4l3*<{+^k5@y~'>""q|dl oܩtحu:vqkt^|⥓?{ 7Z\5,z//^MZ?hɇ=M=7[`l٩[ˋ_Og׷V\ / b93>ɔ뗘[U—DVfwaMpZ`ңq}V4-Ѕ1"ˇ_y7؊\&wmCǮi"l}uo]~cUP f}]ȊkVd@@a.{hw/-* ط@MylvnF7Aunԅl44.)5jvIUQkAasIIeL6.tTtZРqgШlsqIo,Nq}1dTsAݎ.y!%l'4&RVK5o߱r [s |F1BNj\պcck$z36:TYDM{-ȆsVK`CUsdp?׷` _>h|)k zuj1Ђȭg.)V%F4n"mh)m?t9[ ZP(hb ab&S(׆>aWGly㇒툺tB=N(V!%O'܇8pn왔"˔7Si E3HeL)$I&n&I\dA`OJi JB4Hl֬Y$HJ|#*A8p RQUeLTkH j H)E X謁U'[u0f+Z Xo*9x&]t&;.:>=N}`?q:/ݧ/gz-x׿fimT%6wxpT>|ybtcE7DY}?$\H%v@CcuO `ª-rF@qK1HbmCp倸iICvZd++_M|s\H쐨S`pɫk]c?Sj\ywDPig@ޭ: wƫ8W%li۠F̛aLrWuУE≨f~HlZpZ3;T{r:{ t;Ul\`:Li҅zuөuۂ&UɎ <9yk0xlԷ9G@0pJ[p "vEYh@R5IiT&g ]C3D;q#/5ߙCz5jș4Q&P_`hD}~[~^_?jU5g-*~yR}@5πkEbop߀˵5D] Bq<ƨǓ@z{WO0|>uqd+,haekaق͋f=eS9 DUee-ӟncWm;G]7&-Znkwݫ^x*ػ]6uew,l{c`@Akvi0PwmU,#BD&lM'Ib L T%JU$<-Byrr( Gn7N>~9|[FM>8敉,|ܞjuЙo4G>䅫>qj'dkw6lvͫ+5;nmjZɲOk@|sޟO@ыf}htEGUq6㠰XMX6uC>l o:~KXu OGlذxi-@s=nm jyo<ѣF6iOҁk|8*b_sY眴Gu VccWB1X?!l綃n{EmvU^ếxN?ҜGA>kOw6|ח۵kkHj/S:|h [\}Y poJIӊ^e-O=i4f!Mh4\1$\(y@;u?^wq虛#rvImK\vڱc=ŅלGR>zvj>Ŵc3h:$`#K,ύ1` bSjԭ{ݻuޭn;(^Ҷ#>[]?`ꊴ `ݜog}~czSO΋ . - i`Ip0t732TX,,c}(//CDE*B8H0# H)fV=p)]X6M\S}Z`).Nm XRS'  Gx8wy5VJJzM=?M^sY,Rα -vYQ?U"5  l7 pH~qʗWqy5A/*}JuE)$ [ӠZ/:<2rixLoDsw-Ta3Plͼww=k.{|U\ww֪ͳ?ыv[C|q_n̻KtΥNlÒ?Vm=U1q[C.{xEҖ?RMن%3'<6suo {{Wz!{ 羫  iw-;ծN)RRIYZ(RE˱D~C^κ扷Д 'b2,zM "y״]7 t-kO 4D~>I@qqrt*vWDQQJ)90@ΐ*"F IDAT}}@(h#ZN|1 d{P@8Y!+TVrRiH[ɵ_M˖ht 9;kOq7]=5c"0wocWJ !t_$a9+UTT bXJrB3aANk;ԫZ9рu}Q2DYpBdH<7iG+gs9&ry4B[9#C;d}v m:; 30ۢx?6i+RtCD S % ceRM#:Ml$()=""n[!] d,8j&+u&nRQR޶+E<'(α,`Pȵ^o^VRR;u7%+ s} h9? wlAIQPȄjn_sf!%1D&iE1& PAoB95 *!'< rNtf 8_i n@9 ͤ8ќk2dP߄@w$a PEE% s?Щ' gm Bg7=EI)EB()[Tǎ# lI;5_[u:G4ytu ~0bxx$6љq$ H!$I)(r?"?R L8hh RR)3#ղڍ!HH"zHJZ[IY25j2tux} J5Bt `Ӻ>;њL :E}J$MոG ".򀶛-" dZD-= n HǠ!~u_ Vh,KAa?:nM!DeY{!X;䛐 M5Z{إ3S۸ 8!tw17\s ο}vSǶK 8TlqC04a>dJmNU%% x6MP7u#h(E:9gIꩪq*0pJ]mm]m͛lŢ V0kU6nZOZR}dU=O⯶liwŶ6VUE@ $DAGsN#E H(IAr3wwQ<{8лjwĞsGrMl/lɂ]sd7wŏ ]&{;UY`h rB󐬃.XxfIs2\|F"R^VVV̮ٗR @>r򢹋 _C'-xф/;W]aK弩{ RFqiϮU=׬ȵbZ7/*މD;^te :*,=Ab6Q}h߱I0.z@΄,#n~ZxmgD ;&H[UZ`a .hR.B! '"Zi'|a #G(}"jK'g| ]6qm+{RM*HOL4ӂw/+AQ0fsؓ9rv.4 _w[\fCo{,ĭL1z]EX3Z u-V >.-.I|4A t xG%d pӬ)v'25JC+Ttw /pYwV^,\rm~gEvH2YDfqiKJ#B0SjO miE0^ɻy\weegqN\A\jd'>( C>θy/&"e~3]iOZySofa/'Yr_]NxD~f_ǽdz>ڬ{I;(s m2'U])) \zuzT VhiSK41Xܜ'~&;o>ϴeUUY]d"0Nj/G1yؐ%'+mŐ!pN;*٬,-^4R e3"IRHso}n޷\И/ xĺ4yR&fdR1ME{g3^?BJTbFAQ_s'?1St9<)oV踎h]4exaR+r!>㈌?9hͫ\<%+NUl6GӎU}$%$D&?gKaYq&퇪DDVv=p:f%@*L&$pcƲ1'|E(c'|=$Ѳh-;`y>gQX~ {ъ=ZR_1Y=RJnDXD#RvO9QazwNCଏ^pk'DƑ1rĞ@V J=ek 1:nQe1Gy'N@TBO ;"sG  p.l֬I,Ht {-cJ8ݥeK U]*k^ŅթTi8p,F?sm_M36>V^԰-\[HtI\bE|FO|o?0-NR1 IJli8`+?hg[dz}}1%bϙ:JHl̔W^6yػ-Ӭayz!Wo[ߞ`9- YTpټ9_\c\yϝ]oKV:~㫦l-۾Y +4р61o@Y0pG!lY ?k:ee& +vr΄{%YCOO*t5wsw>s͟3+O~SG^#qldW!)MJ!#UȪӖ]엩c^[m_i툓Wy܂IݴNrPY[Ue3;˩6,jtrv6X)[1vM]4{ٲɣ_QWonߞ5oyGt(Hafwų}ĕ)1xWKM]<{)|ھqXz׼8|Y|7NurK^A3~~m~`֒ w]2k.fo̘de]^^5hYM8j \pG,9ǻUH@~qN=kvn^ˇNs{c&L1C92{!+0̭!fM=g/ti M7S4rִ_>\+3psΝgu>?o#Nf/M6wCZgYeYMx1'?f)s~-*yk_2맙3L%UgσfXY%Z>w^WD9X:뫾m*z8]uf X4v1c*RMo}몥?{m%Wu’)o<3\}Zb~|=fw8mߏ&/[%3F>֩z"J4sm;yv{,ܛüE/(+"bg\G?,\׹? Ӷ$5>vYG=ޱB36n_\S>/e6exO#b^ǾhO,%|K$J+v|1?])]:ׄO>^PUh[- ʼnz;;)!lyւд=a[7=1 <0ukNy֤bd 7/ N025'dZ/V~ë6AZjZ`])"`߯kkXH ʩvUJ\fAJrO5-m}AλcPݺnzzש9u`{v96V]pEQ &#ɍ+ThqNi+3t<)x+.dž]^Oz8}/_iׯW|tt-DwPDQ8 {p jwƵk{tzWS JlycW]E6ॶ3@o ,1UN '7,ۛ@.xFg33if0Glw\~o#-C5۾۟ZV͚jzZԥKO|yz6*P9gjX_g5;O}qUcƏxᄍǝCV7zd=]~(eX.ksI4s~ yzꥻmݯ}d6ϾѣO˷y;J-55QB})tW/pY=<\/qUۆvq@َ.E'Y~knwt匿>Vz%˅/=uͬ+=o{>fϷWAlV/wʁ`3_|q s{]rqH3Um~[n'SJryu_mxg>4Qŝo? 2f|!,D O3 >U}a=xR['U)ѸEhtj?Ə>]{ջwu7g%+UW}wp=ֽ?vyz@"p,:>+ڵ Eѫv݃f/%}dkm~W^y:ٞ'*k.k};Gٰ:/SKmF5񇝅 S B) S RAJT:SNh-ݍ5oq-׮jf_X|RܤB@ ԔPL]ws`߆y$Mh~a[O-}첋oqq;$,BF#?8Rk2>sN̞9%lye=;PA>X^zQ}7EoMToT>aK Xr\0LRBh<2*Ȱإc$?3eDʵ~ rs{'|N9W& 8c$I?\e3m3"z%yW7X?uѢ)kt;(%^GFܿ};Az6 8|45{?_,ݾwdPśRW< I:`q]|)!f/:1}ĒC2 ckUx2=0yɊprQ4mP۲{C~(z|hɬs _&nKiPw":R/zutVzqH2eٳc҉#ǬKQ:-&lJ`Oh޽E)PN45fl=KVʇ up' 2z Sڶ9WO4pYnkͷ r g(Z)붬כut-qI7E4?jس|={wlZ>1"״탏_s[v+py<(eũwveS^4v鶝U:±Tk+37\' i$ɿmG}oԴOʹLG9 ]X=xwn}V'.8@Yte+lZz{Ilݻk/GnJ4jV5AS Ą&dUGC`?Z? 7 ߷ݳa#7 V9=ZW DN&XDG} ?yC_ع״5m3pf_Ӓ]vN=9ͪ}ӭ w 7sͬ~H݉iLX$]?tESOTOU!2s'Oq~kuwĤgdm+vZi}dTf.?$!FɁSs3jCu77.ۺw?Nkx O>{ *$"iVJ3B}G*@ 0@AjABB0%J 0LT ԉ?>{~]mʩÇjܼaP]>)DB1W(B$ 6MuvFAJרs¹?qRUkvUl o]e?Z6 7.9Pqdzy `ph""*:D^e*#56ӖfmO9)T>b ;{f>=M['@g4ab9e+2KûK2/Qt3w;Vq_ӣOk/WZVk|GˈcFl+P?Y Ȱ( T (D/gn㑇{wz^<: EV^zNZ;d˩M>\V׾U}QfK]a~k.½(Ӯ{ҳ7u}nw71ϊAü;벽E١+ط~ & o.= 8}l.[)޸FnV#ts՞)r(Xz cKTW_a(W_#\{;@u\E+ RBcȹ.&.-64BONF̸<_kX^܈"BdhJT,N9"7`}ܹaia. h*ek$A!d[#\3wG`5W7dGNXxn`헻 vH$P7d~@XQ.O@BcNm$RIBHx$~/Np) @,ߠzFK#0ܺή|{G=]4 >퇾}煫?[1ƶ'+;zxx큁_=P|!>ᲇokE~wA5 HNS$)H`gM}םXIyYڎp(boW%"C^s^}6ɬ&vn:֯H'd& $!Ϲav*$'mYdll#wY R"l([z}w04q RҔQS-ݛ2lGaJ!!lΑY6 (Y|8Mա亮RqT$Gk8 #PoqrˋZhuywn֭ߙxAaFkA؆ȯ "Zn4-s>8&3ߒ-GD'bq$2DQCL0QɩEm{{-z$L~r?Ŀ*b'4u}n^|l֣{?>j*\ѥejs$X?rbU L9fM{Ԭ+OK!T=طL%=E6@DOPX7ED36J,=Ǝa.2d@{c1t c- HD<3&141;(||'oyhé>2Dm'<.э.Z;iv\tijzAebkWXj/+?֪eѲy36>mu' $f3)bbquv}"́Bsg| 2aLGNG/s s .o_?Ϙ1cΚru**e1@ l|rN5{l3yJ Xvw_T9ѭ@Nl4u-A4PZJH]>DR4kA'wq4a#ŮO?'o÷_/t4Uoo; Id`i'ؿt6:w/gOA<2̫ؠJTnP Zyڕ7^{Ki^'ɭjҬ4*5UΩD{6>%WRX\zUR5V=k\9zQR un:4iJٲ@s@obê5(j@K2 Gr+V(!(0vqʪzv6Ug' 8Ȑ<5,q9TNnSBs !?M5 6\[Ȭu/{l^ԠjBD:n/%uyKZt&jjuҲ%Qs(B= RMP?,. B!D*a`m9gȫDJTi]ÿg )8g(@_"0oeR!""c~V]lЮÕ~F֕J5?wuwT:M)+v]v`Eݽəvp/߮>~njJ~v"g6¨`5v%FUw_٤v k_ءiu{hs{>p9gѠcލS|_f+C[avQ"+P^3w]Rj /wptإ%zae<7+`:UgrFe|DN(kpڂvŵrkqU#oۋ5ڶ8D^\rN:>9 OS@gY5:4ϫz[V)?_ݦQjdV*=88={y y'/ Z=襴tUţdj888g'd^gUYzW .Ɩٛ]_%6-ݙBfsgQ7,!}bp74YHI ~WޒR Rc,/7H<p!IY9</#;1bȀj޽17ngD(aۊ㷄Ư_6 IDATN+W^o~.qju2W*ЎqFQ?}(c|@I\4Twщog5pbA^_vD!N}K_}a/~MouBElY=2ydA>ْb+}~UNlo8 (q̇ᗾܨ/[Rǻ+}тvO JڴlC_ң~_o_uM"WGdGzrrcGw.;r]ճ&UOt8~~O}1W~}A'|;k$mt!̎給/9cGv.;r}k?/Z瓟Wz`~ݣ>`Ӱ|'cx{~/K}k~h`xl{/&>vtג_mhyS{㛦Ͽ2q̽2]~ܫfG_*/=sfƦVÌ1$n;C'sp~#L!{dE? zēM,%.S>f಑}O' ~k_xu5f{f l|:wpr9E+޹SLSF=HJrdB/ww.` .V'пCЦ_}~@ɧTJJ }S_7uU/\~ˏ(-T6DžIQ'#4s oրJ{p5{1?}OWD "2pe0Fn_msǮL\l%N{uMJ:'|~{%A?5ySz텫޽Ѣ^|Hڴt9Om[ Zힱ)ʹkEj|ϋyhsBD ҾR8͔\՜ 8g{@AA*mZI!Mi*NF } ~BC?K!T{mZ!CIĜ M)knNYD<_yt)FpjPBPa^]bIS% F18{4pMMRYu/TLFʹC{69 DNǰsy$RXq ORUz;{>7}XiOg2Z ##Ni :Y̘V@csJbVzB>I+b JT["e>6zTT@RCy|W@:[c]e4?أ#HaH,1(^poKB=DJϪ\~g N#j̀)9%nly&qL5#avxm<~YojcfN:Axd:1xaD>f5HRGňǬZ(i wź`ȚAÿ3㧷Vs?v$ IBm"璨!z9ŷ]ǴgtzaUn?\َ"`́ؑ-c Cθ ld5cIB =aXL*9f1<ru<)_xXVvv"Pjr0Ƒ&X)O ͐PUv Lj =b{o2FOm1gP1p Ph6SnhQRB!.)S}i]J"tPq$D T 4E*YI@HxVn2YP6!UPg8 ?r彨E{"Xڠ~I8rVUT]tSq4`F )M>9瞧 "CA㝖 K a!"_:7fcaF-yͶkJu GHh3PdžsG$9&oVf喽ᜃaj]s`%*8m`U"$Hi>11vYi1+} jogT^2>l'V64qԍ/)hfs|wEOQ$64Y"uZ;0tB'c?j3g1BKVYGJ,ialuDq@A 7hFHc8vMriq Ŏv2!2IJ|G#8UNcɒ]WAXb/%Յ9CP4PD0v,-ʉڂD-_ۙ"0):VTA&_S׏oR\ mT]8lI}4_s0d"\ qЕg+bXi`rrs1LZL!dP*<ӧa"I$=ƕX4 Ё-lUs!D썄0Q+zQ]'ommo@SD`:%iݩ(ICVqA$q+H(A!=F#'tk޸-F)dSSciXd'ۃT e\MD:f?L"85pᖢLEyCL${Aq+{]1O>K&0*@R PZc<.m3q<9)snm#Ab R0 49HbTO\;"c\yĔlKhp:1!bQssc2<*Fv3&p {Cᒧ/da`Rrcv|iISkd\$zAEu#H7wU * 4a(.EORyZ:{ FEB9݄"$U7VL-[0 zI ';nHڝE9l7Edl){gQ|)D:d4##p",¾291qWbQ5.>,v<*1)!yUomW[q0D bEbj`eee ב= )8Lo}hGefh\tRZ-ɤb'%Ru&v8sUt0 =uEW" S"Ƹ**\Ո 8/#R 2F@TĎmud<`33c u wC3:*QLF-nz3Rr<mbU.yLsR$eRK RBCq832DFڙwm#{MuZd;2䢘9r:i1bٮ1xX豸#(!AJ V"$E#e:ۡ㉁CVCȉ\5ӣVF n"S}"t=WyR+qT! [RJDPPU!R*4)$\pRJΘ:*93NJG[G8aS䛊~!%2D&V,UC!hn6APm-ԣJ¹3\wpnDq\&Zws]ZK$8tMRF5K6!Ca(!7F(NG%/#E\ZuXTbp lWHT4{3?R&%cW:،L|}w;FJ8;M/Ѐcn+1xj=KȯG(@8<8(xYw_p4e+ G=s?z}'7ysI;+ "4X" )Ô45FЪR0;;;;;ĉ$%LbD Q# {KK2 L?/" !Lo %M) jaBaHmkP_P2-AU5l;;J̸!T g% #ӈ>[toa)y1_3"v$^RVYed۴ Xꅬ1?"c@ 3S6E?\)C1UZqyPsSxQYSz2EY*Piw0XX P(**BeT#fa 8|T%9c(j6O PJ= P#"%_ )ՠV"a%Y"ȉI~@v6$ILpwXHlo+'h@[tI!C]8r;Ҷ#rxI>;i"ЌML{&,&%j%a;$Utq^搒yA"Y0L98/RsBB g2Y$9!flu<55*u$I[ԃkc&tբEȜ[vȕF1>VUuԨE3â *:,@kJ&Z#~mzZ6HR "sn۸YLQIR@S;SL~.1~2jZtӵ/:c+L+E:MҎ{tn=C>1JD2Ii/4tLܰc%9r t.G9Ji@ #HKn@#DZA, #А3sDf:f!ǞbǐK.4hPZ\W 9?-0SQ)gJ/)L }!B }2%s&QaH"}`* B))Uil3C wk1ӝhR4H((mS%!ÑQĔ6bqIɠ?U9zB $ȕNNl\H &9Z&GXmK)B$θ1R)2m}"}GBZ@+ ɐ)')+C)eBvψϐTJOfA zGʯ<0Nj&I9, d(8~·ۚ z)^ 0djȆ.ʆ G p#\0{B3rrI6 %pRb!dBIiTpj(g/8H}L#49[}hq sMCkޡ+U$зA@i!-$Z{@%pl{TKYD&te`mןRR/EC#Z #qdCO9s>2$IęMxIZd@58[әWHѢ e-d!x)Q'j,F IG. FMER$:z~y8TQB[)'?DW:/ՀFlHY;E'' cLBPI+] ?QPӂ9a- )sPN!NΧQVAK5 B)Gqixf`ҩdI2aHSӇJ[_v!;"bS&/bq/B+?k^g L~"# JMFԞF#B!)Y(Bp8y,,VRY٫nCW7p`@ bO%=tC:T*0(M 8ܤUZ旛CHKLS;mTՆ!sk#-&l#dޘ$$9S\(fVx+럨b>ͯ,rc*,}JnXHJ&PX(B 3,yĴ-Z@TN<8L r{U{Hi\[>C-#J#7=*U̦jw@뎤0 cc8W]Raa4"t]A<B]̵.%SRy}) O3IUkD[ !!zԘ0E.jQ aZ D΢jdG%6`]Mu884aѳ@|%cZ( iTGPK"8bmqUIg>ڈIS%D;= 7XP|U  TzѺmE\i7Ҫ41"imcinQQ dOfaRJ#69 <.d 4 0B[sKŐfÅ1 Z'S2D ڵE"Y, p0krysA tz3p jH7%fD,6ct+foԝmoڹЗYWɡFwk;c pJvIÎ&4 cgҡ{WE{ Lם(?ks}aY)R*S|Al'R\JM yCȸq B=56j !!=sk/pf>)7 = E & Ҥz&K "MRBH#=$%)^Yk>''ޛs޳g_U~̐~n0!(@  ԧ: 9) j,.L E&=J+U(.0q0Xg9ˢMK gw$" ʹ@8?sMsIc߉7\I'$| @Lcj*1Vtj{pxQ1|%Ѣq*MVJF0BHd,h)aR$"*0U۔\L 6Z`߉M(O <d|%1Wb F(@td CBCHVke6$t1d.B,u~ܕPk`mi4Fxw2-I2e" W$3[cn !Hvx4*! Ӱ `uSp@7'3OL; ?_FHTz&nje!ݖJ`cd[XlT7Pa҆ ^OZ|EVj ThzƓ,<ϡVhL9 -[P6+YF[<B2߆c98odsB>&"b{E yYKg>YYe1#036$)`nK`ş@ QXo,#hV\(U) 5Jk<]bLs'6@WҠV #lOItxv]/JgnY&4`M y1K2zغuQP$p)0!8N[t -BER0%(i%[ IHioMsd lw<px7޷ YY"d2B Sا)4 .PcPc, Y~bvEF?Pc SB?6R8걉Rk #9*)vy;2dQHi}YPf!^H ] ! d,[檗YhH[; ح%d@͓)}[)"Q*s ks򑔹O}WdU EGDmDf!b]J %`JԠ0[4OP°"(`D28۪uw#vjڮRԩSZ]z 91p*\RJac33&3G#0)8`7mсJNhl{$8z&v]a7y~ .8AZ?9 ǂYEpxh>[]snIB}ʝ`Ljv>$%Ip^O GLa:!Sh dڐKtT"!9Օz2ۣ Lǝ.7R &c&t] 1}<؈M{GPO nS~u`Ɠo!Zǯ{1c2Ϭu-Riء20ZHK"8tY$RB圸Ed(fjͣIl} L->*6r$|? 3يA!8:xQV6yUcTj[t'#Kai2F(lMeE@2~@I)3 * (e3$9!9EUU*d,'j# *ٍ a7#GdP0:OTLE`\;k_<2}pv^hW1&ħ,F<`d|P2K#(xHQ҅Rhrt|Dz~|~['?x06HUb=9zk#:]"48d2!vQ 7Gݣ<*μ\Fѐ#R|ż ::$WяLf AsO}1u[cnNK/Ě1ďn+BHDL,8ZMCΘ :#h8^!4iϙq&"O8#QUWna)e]DMx[Wih]ZN4IHj]DÑ+&U؉Sajh`멟H4Q,)hDMG5}Z74Kz뒆CW= uWؾCjY<+UZkxJIIZK5^|X&l cଇ@RHDDe@ I"B։УWxnHkmu4҈ Nhؘq}RZkeK:4DPY7yO-T ovAd NA.XRJk°ndZFʱjs!06I:Es nTHMF&ys # e{--u:FX^Pw:?ÇkPMy n1ź;D){+4>O.!B g+4M@6ٹȐ2u'U(G/="H]m8Z) Kys T)SOx̧7XRJ# YyfqcDʤ̲\fEЋozB9,( e)Rfs*Th#T*S<=u~HǪ;"eY9 X˖;o V9߂sqV/v.X& b%_SOVO#ֿV!QT 6C.d|=Mh4`EG{\%@DO%H,*p|u o`c Q;vǛDۜl(ڠ«}]SxB$2Fs(PBX!B% ؋YrR Zˋa{v^W{C)T;ɾB&lXBm"^*+P󡎪uqlK( "D1 ˚ E=ctiC"a)1MlMofX7f}m<R6SnTx,]INN]\ 8kq%BboT'q jjh5b̴&QѰ>qG’fC Ƙv!z[˨aށl;,e&Ɩg\:2dL(*Je@ qZ Y° TXUR*jBfafAa=ǐ@qb*i1TQ+BK8nI7==-l6RV3 V "Zk mT1:d-ȢB+͡U1D`¦%!dY.Pw J+U0 ~@ϔ,"N" {8K:{2`Fuz??K fX삍!@ٸޞL<ʲLfR(1)H)C^j!i$,sw-pmy f~hEu7D%R<_4 ֝V.)r/VKu\TkeE"Y8J7FpR֖�Ot;yTGIDH%èU3so|ȆmRZ+HssaXpo vO#6Ȳv(J CD 'HenfeRH;@NwhX$@cVhPVt;I4FD$$@K@>oLUJ*Ju i V-98}#$'b$&Qv2Nd3Kz91dMO; `I+e_2u)~{M务D"qYߓѦk( !g|?'N$#!6P" `e9~*˼-{Q- U(b,f("cXNfwK(S$õiZB+eB\wJ)Uء}{{JOA66Li'LdBPvǃ!"Dc(pd=mx`Ue ρ ɖe :t}JZgVߧHY&i\ (#7( x,[X60ԫ\E\á`o s `R ш`ʃyDy;o^V q;BXuea9Fշƶ"FgdfBE}B-JbY|0J#}<@&2*DeƄS؃($5,쁂kb|y%C$4pp@ 0&Ƈ1vMA`ⱓZL 鞫Ѽd ѶbU\CX[%F!@јSwb>j8VfBr~H2ˠPPdcVH~~`WWXo|$k~C FH]Cx_+w``3PD1DeSŒz$EР[cHʽvئ((!cZZZؤB"Y᧥FR,֮56" -q~DrJ !h \ Y [[XzJ3?F)*-a?vM :J$J)]iX؈3B\L}!kŲY,6O&.TF 'd&Դ?ÕH&`4v5%t)5[PH!$ZF!Zմ`]7?DOGfpHH&v*[9ʪ Xen'DuZkC$ &C TՂd ZZkF뽵PEO| IDAT;4i(r*@S*[kH!HRShsFy5Ǥ8̽w}%;蠎rѱ18fgPbHpr4ikL-TxjhaɆe-A߃iFR$2Uw>@6lM0Ds(>IFXH=]-4[)'H&>boF Olȫ^_ >𿷀zX/+x0dI3!!>uC猩i = cdkNfZA-i[ 0"j) GqVZ2Ev~ZxS`c; [Z!D U(kD(UE9e>5L E2BHVGY T1St k^q=;igņ2J:#&KAͮ3 \QZc=K5VŐL=Vϕpb%pA4AM\;<̂*`o.ME>OmxPJ{ GXŀ`ZzV衉}"^,dϜ0 JșFE0`Qd]95b;yc53dq1.SJ!exd4H*pv*lg7;ӈr0F2˴Y,'@G͓9u=$gLfh "v⍕"6ט;#[gB6CrhKc0g,?d`  2Jk;g}f2yN=歫PU3"NXi!Fv]byQ9/g$%X:(0 D;}M0AiFf(?uiHmiQ D67pi%]m1b9֭3W*۷Vyn" "Np@ō}0Q+|j\_v˯֙g:S-h e8@DAZY3PE5y|kLrHT\31 h봳l 8X( r;wcl hj0B!y~_ ƾQ`%"Bi#0(H!13:,}=HA*pV3?gk]9\q+6v!]^/]kKu^M 68mkWZbE%FȷVZowW,[rѳ._:o'l'mY{i(]D ɮ|ޖh|K0tĦG<=d؈gAG>a#n9 beۋ7b>s# vc3t{nYnQM}awouaW< O?=+,lqF0r'#Ǎ1j#9f#MϘ_yvRJb'2z}& j"2svޭ6Kh ic'Ht;Ac^`%F<׫'9pȁ#G9r8 il^>׏4쭷uݑ]+hȕ9umG/Meubpϐ! С{?!7<Ȼ;x/w?t"ٰ.J\cA1 |gw |}gy1o.hvS,c\D7Ӈuz(2)N==d/h"|XDepBMMM:tZWU< Q6~گ~џ09q <5+7GZf(̓܉a?glA5+zfxEQ0!dVYk-p(j9ؒVKPs<˲8P~V\ >Ǭ(ct_]xۤ[~ݺH[gSijHac:=0ImwϿw,>ԴM]׬!W媧m՞_y3;r/7v* , ήly\nmn`=<[ j):\gR+^R!P.9us~vw,>H00<6[~:JƖV_€5Mh#m„+Kf~]:v#V(+[ 8%tX,?4wѩ/ktv`WTJ^V"`tOynyyUOM=60..,hYG?k'zG!+ҭ>;Ey,3FC7:37 I2дɷ쒣wWM{ɟP}zg5y3O/:s~({,><0Bر_>Ձ+`<YP9Ui-v8d&"; >y5.YW6CRkx^F3T10{}u97Fbb `v?-B)MjM؏N%Y8sSC)Dui.Z$r B]mS;9Kx{%.UzPm ɮ{n$iƣ4D (]7/QK*rB1gݷlEM*?omX?^Mqw7SϭEou{.z[v Lc?<=Nufw+)Ԓ)+:tԴ]l+vr DTJhc}OV>;l5T HJId8Cw:||-Pe혉iqiN>r76M8觗繧[nqI;dLބzCsU~󠯜pW#ON8FnonݧK&eh=9Gt͞!{܍޽:7;Glg+Qa. ^U~g+@JvtJkW*ժ1ƚt`)m]IZSL0)0 uy`'D$D0[`QU6ΰ#rWj8D0AotNv`1_ro ƻM`-S\o_Kh |zIy oOi'Å#.c2DHu0[šwbыR"iOw ~Oqjo=/VQݎc)4)TA&뾻maw&?TA᏿osw[5f )0Q2lYdQށ@uoZ9 |#m[<Ū=47jtÎ QO< |o h{BTRĘi`[W%EۋPlٝA8l9X{Dc_ۿs syRo)'|p1}7Gksh5F06icB|!u6鷑x*\[0xXg?:C @o0?7q.>ϫ 0^Xץ PSjw9/=p_??LG6z7fsX0{u|w tHgHmuȤh%t6]w7.Mi gQ~SNfdE֛LY,;m,':mV8(N[lѾX4g9XBqMg+4QGo;v,B1ȉk}4at'rRa`VpXʤ7"c;fo-,t*$=( fj?G G%yI,Qy$\hcad ^%_ҽiMlI)3j+7Ыo{The٧Ɛ Omd/_ 0_ժQ\شVUYϞ?mq?k.:zq?ޱKIvicx_#A,J?0t?-w/_Ҕ'ŏ"ޓr7'I}J!5pG;]d߭"r'WmGN;+O&:| id(W@`rIi`魢㑏嚉 M-0;OA2VNC_.-MU{g}~GN?ߏϺkrc6Llc|F$~qY)M_ 7-~su[1iɄfNm9&$%{9B0ud8}^rH ꄟQҊsj=m+}>{pڵ?~A' @Db񋠏 0JQ1A?nx9g`K瘯xp3xV̨e~Wmco 3xqri5l['wݣ:oc/|突7g8j c>|[BNxg^@d|We6-6[ni}ԾuN[z֪u J6|֗_:jؘ>#9nFNِPubkxo1iIem7RѪjm@);IiZ&2m *s7NgM ,#zS]SJM_PO]Zk|hR<8vl%!TM{~j p#wאG:4FR\M)u2`6%"fV(Za eY&sQH UՅѼE۷7zG"=cg2h ئDcgbJX2u {me 5\W:Iκ>{ܮUtc<ʯ_ܧ/uGs.*;{,)K@ { j)[BHow*2My?sMޯ>yzllƻ}kS IDATߗ o'cB7*{mjJJ8@Z9{z-nמ'k!J? ;s'>ġHDJ+FGmNZ9]b ՊYӛ?omvso?9z`2 Y6xfOO7\p-4 CMT ^]Pࡉkj]JG|diEǣ٥kX9ohƴVD]VԔ)t\ B[AOm߽s;ɱ+gNbr rPfR W[[{Na c;FkI^ !.]]ڦ| ItO?G'>a/4ԑul7zg߻s~}Ot1 P@P (uҷq4LN>-0tF ѫfOoC5YEB'U/%P4úIlئ3OVg?| .^—NtMx&hݷ?x:'O}?<9!q;apF2˥jQ헎:XwXܖVPmp^ _9n+l᳎>_紣;?-jm!K&7&f¶|]Z(N#0ZiU(㤕ʀi?6PO~}nxeC(:|RɋYR@@ @+ p]h`QvwX!Q(-'2s Ha~ΨRT -k =GCP/w!Ee̬ R* H( 7`Cw\ԤY.͢Zyn@VSKCTuH1'~c/Q( AS߼oW*+<¸JGNk]+ ΀Bj@mͯ̽;Dg>JxLe.ۘrU`"GiZO8CFS8 5~TK#dںx*إm(O:kǸ!rY|1msjW٨'9ߑZ>Z@ jiS}PgMm:yοmc7HpWu}eW]<۸gT,N܋_]Q4p񒉙GgY֮}{@Pb"Vg֚ճlv~8iʪUS'ں=uYv=n̂Y᭖5}n7j_;lJ8>Js̪?Q;WrB kndRJunMksg,A3Nn*1( )}7yiUl]6p-@T %SMwج"̳ԵXaUmY@ZIaΝ+J&dsS?@[УKd[՝W;s~>_{وזR:kLTZG9ȬNZj3g)^V#>HhGza? ^wO@Abomї_.V<+u)2jrjw*/YgE"S| Do۽iN;uL ݷEl]y }~S $B0bƇ[/5펽r?Ž[㖾;`乫;t'w_Ŝc[u׶VՖϚ'5k~v!zuQc%C #fcx";T!,0BbkS,S?ӷ\vjzt NkZOVU(Vq9byAca}K@V Jh}ɇ|ghIc‘x5vݚ:n mӪTi;V'Y:s֒ \ }= ^Zme_~ٵ?/M{+.\zв&Zc`mG=DJvBv]c Pƹq'/k:vg3ڝc b/8޿r-rw8킃W UMa3ch^]pAUx7@8+[~g-4wO%dhc2KF<꺛9[IJb6J80lI^)3 9,vgw600(J l-mIiY(D܃@@00@wpd;RjU+$%F#J.dHM~FX(Q_yY`l%%>l1>whλ:en]/?2'y#Z3']Sڼ=}k~9,iiO]q ‡?+s# }.20׿8@ی|uî~/ m[IE9.ܬ?u11gZu.{i O֣/:LZ2uvo?=xx)mVF3jK^OZ8l_捜ᜋo;oKlfw~7>_ϝ|#m)ɵa#JS^;c)%-qz^4C{]^a=^O.X 0Ac:K8jX挣{oqgSǷN MKufŤ>pwcfy@d22)B˜2z5!6i=el<`ᔥ +=WNx6H5P/]>yM¬~<> Ec\k/} EuɤOjV{nLw] >;R;`~5p &wISFI7pJ~43/`{ P֣$nu: F;|.懂+_]bNŎaa&-Q @`6JǙ|poe$K ;uqcS2 2İW9 yhexCքoPhr\|0 4d6%dEgiiسD;sFe&덼)_"8vN}L#o)iPQR]r*?`hMnxů/Q42,2}h-w9Rk7`N荥IhX&c c( Ǵ?(.ͧ8( >ڧc"I0m $[$# 9@R&K];Oq XD>Ѕ1:P JZ 6)rŰ"LddyU۪jQK=a& i&%|ޘȻ!.c`6\zp A}T9H8 6A:KP8*aDdLX' D˂P|D"k̉zh78u|̋bFIU߮XGt:GrcALl#X(?*ЄtH)",vΨ3^z3QD_m+cyd2(2$p[cZ`$lvϬu^N6/3m#r[b"n4a7xpS:O6D0.KBi@Jٮ}{ SGH\v\W/zQ;џ a&T/X70R&jq-nwDC A]jFʢExťٺg@>97FIfQKIkw\j+d.y"opRqzŅ!v4^`y`3I(yg1Vj2ȁQYn$ )ZQF1CEY/۷Ra!ȒoVXLX*'F(q5Фhzfr n獋dqB@wS) BY>wu4'0قQpySq PpB"!>NR%bGj5bx&+"NmdCEM/]Id \5c>h "mK,ϫMm}@D2<lwa˨ʋمA-HN,q#?IRJ;+lĔå1M1AuD'j'1%2s# ]McusK @0I iVѦÁ1CٟF;ە8 <ϵR@Ē%PcAd*#n+3M=9Q^+#0aƘ&dΡ)&8)!&ʰ 18Zq> Qvmc^5$!XahD#|꺟߽7mA.Q 2BM#xXnzf+85xbKaUȰE#5op#G,4eQ^SiT@rs<l (bDaOZNCt3($ORd|<60z=)e^ɅZMY1;O$KCmE$Id}$4t"QTPqp`!%T2kJ.$0Č1Ao=ʈ0Cv} ȸoDnä0 {b־sA$wTUb tG;dl"Rl޳Ð[FZkjmsN}РY}ݤ>+ŪAm(E((7pNlgx(1'o!C.&BoSZ!-:LV)(ȸښe8"-?BƭED ֋4 q( "Aq 'k4y)rmRJpH %o XSܙ)P* kF$'.`WLwj[ɊAr#$nJ!!ҮLPCO8տU"vs}=ě?gE6VULrHRD92"(QQD,&3bDQQD "9 03Lݵzw. ޻j{݁|\-!V:3pJ- 0PRYLYRKqU: D蛕`1Ş*rZP Bw~fHT8*%6Fm=q Pml9`":\0.LQ §۴/ȷiDBHp7`HZe A6Q`waz{8 eab鑱ڼSE`++ "'B 7s]Ge0)!#?(++g,3Ȗq2Y8cOn"ÆDT-k{3e E a7VJE9d(HB. 5Ʉ_MmI)!4 "OJPn +CGnlGrt90m-U*ѱD"%h @u!8|O{yĐ>ux1!2 A-+D u \M_<& /)˕Ƿ?IBpUUTp.HhcDBn(LZӱ:@1|?^2d=@@sMIUW.f! ,VBKYgF6tdS>QlM#zP@Lٯ9 Ce:K!TxȃA2-WYI`rTe^j60 DrOBSF0bրM*׽N".L֚M&!  A(6'k-9j$57 >4 DdșVC{Omb%>E)2jq}rS.kR)2JLl0;tfM@XZԤC@ѕ"- +-MI -'+1L)yG̀[g.j9 |@oSA {EqS,A [BUPgy0mrcX9K+oFtt IDATN(/ g2҄C.9.G@!gA*Nm!hBܢ3:a$У kУAL,¡ BDںlIA "|I9eT h?#yAu];ҎT?ָfzt{hz=(It/-0X̡@j$%8^y 7K*-*.X4qBFsg"e^}9be5 {ԆX;qv'kN ^IpBHzLJ_I6$38"p(-SE &>V`^( |>WㅁUHef:0yԕ朩@f3 f%If3D j%dYIhid`r *[sWc >F5pDt^uf,b`91z->kZ)˖^l٣Z9:Z߃"g]6MaʠZia.rb+Bsdk>HZbe7h?Q?hKIZg41*-tH] , r;-;<+YDAxKB1i PGQp$bw'k"ƕ m:w$׍y$Smь$%@'QÙ4ew y 4^=zG/w N@DqbbInpW[R`^p]Ǎre98٥VZrx—y+>]?ߑԨߜ_oȬz;K_*Dd)톼\lBd r)h<|OzՒ"x%߲$||{N-\|ƞ$j%H" ɤ>!ܘ-ގIk)O̞֧2Iì&qq} 1cv#蘼Xf]9Đ,cB.+*z>^S;y9_L.-ǐ`gkUmoG5Zgџt0K |?1ᕃRd 56SXRK&z(\kwc`h $WߐѼgm֊PI'{V"c{=WtjZ݁ëzs{DM7Zb yͣ9cTV?=mqOFoYT[/R/,O}qBa* R tѻ8f5䇑j6/ ξ]>,kp٘ cuʄc͙s?$ڪ 촺 g0ead?NrC>Β `,|YVQrn{5>2\tgW:=+=<~o8n@cPs`\p{@*!g7^n_UϾ3MGˊJCmDɎEqkߨ4 %QCȪqӷNnWRl!> !+@yi?9[oϮzՋN;zHis9"1 oS51Uj:/rO)SL.yBje <_T<_4Y] "#)SiYI-sc{2"!#jug/:Wjn*ʳgJHG`NjOd L#[?fh HaA,ejDڼK^/g+ʉ#A(Dȫ_e+!d.)H0JؚY?y4?6=ysoP?kԣ[YϿ-k|O~{mOy ^F0x_xѺNydȊXսmMDTmC<9x8cZ(qq -km>x\_WQ~yʼn9`88 N1җ1^OVAMI.8]GδtR7gEQwִ:f39RDo}Tݘ~kӸS_11lZ_OO>mķ4V.y,֕7&[th0vWFF.D9x.#GD@ɉ e-ԖfWLKi4@i2虧z_s~8>S 9;iÂOet8z0`h0&Em o%TAVizr r_@t\u̕gvk}I}gwuv|ʬFv/])3(x];v7NvBxYC;y, Jӱ zk]>lR\FނV!󝏇o5WvOل :!nyq6d}.9S|pW>ʒCqA)t헷{x|܍7  Kg>=y"y-Һ:IS}-F}zЯҭf8g R[}hW~>6w =ȲNPψ09,Bξ5ƽ@|s5=[}0mT"tPkƩ: خ-k J(!Ь7vCgu&6dڂRTӨgf*LJtz4O(\+FD*OQ#N)HtkwUju :9{w^۳c۾rDD)r2h[pwaϳ_3ޭ>y}}g \nAQ8lzRSBMm!A1Ju+ae4%;'{U-?}ssyJ6%lDu{~B̼/-| Fϙ ZukwG\Ҭz'=;|BHW&L-;oZ,oK#찧V zM=ُc{K>_l^|9a+[%oܸ7ʫ{sOCK !:WcmZ0@w S{:#tϡssFwOOz(?LqY[; S5s_=uk~?JR7n䕭ao0gk15{<4k)t ɍ;z|bq=ُ/-pbnǮEwٌ7wzşuݶk\;)惡+"޴](N,=&5:T&Nylḃ JI{^xNk"Y'yR*9 |$g1pZAàW#4i׫;D<S\KA! mO膠s:& T"`%@SWG[i/u{<Kf㑶n}(JWWZ^ͳ[ }pPq:ų ʖ&MIi&C7=[PH*򀢼'% Z@ٿ,|])rnUsVyheEBzC@/ h.wihѰ#Jj6kAb--8zsQNtr27:)H>03xr7CV=fQU>,lU!`|OԿGMz\\p=Tj9(`ZiT;'^~/_ݧ@;u7{s&4қm^{˿V1d]xi; tM6v1fXƲMRyf>>zw:4^xGw_x~T|KӴ 6pKrߋcx}kNWaS,Z3)qM&:R"*hWpdZ[Va3q%A/jv8q@\?]ࢯHԸHjܹJK^Q{5LYͮ\Hwz]HIͮ{g,?L24@DXk^t޴>Ma",(OIuD"Cd~~X<):g:X)ߠ6|A.H'XF.uK838td͖ZD@#&+c[3d #0 $dn,)LʘNQ\Ǎ\uebԦ)ٶ0 julU%j5ev 0n WG 1j׏˖7nyS =Oz᝽uť]g;ʄ&W1 %Uh"QguQ߷= ck&[;]?q¥ar)"rnoSW3/:QgyQ߷r5a#ѫhm_p~wS|œop˃['sG{3]O;K'V9:U>n_z}!l9m̛Q#9JVMm75^׉.'UD49sYk ҲsrW}WWi(ʹ'vH}AIo䳧`m_2QgoتN-C=HJ>X|`syfryde_::z-\}mSqy,9?^^^^IJNp*@'ӴnI֯iM/{"DVw-hvsidO#\uF^`҂@@(dyP*6(ut،2LaZ8^ģʞ:&X[J݉_\ LuRd$kt(9c-㜢/1/Z F1S-1<2o+z%-Zu\T]E_^zRּ8_^|u(j>0!$PZ2NL,gJ);V;ֺotafBȨd5c""_ʫkj9ǯyin/[R"լ ҺHpvH2>7>5w&Qy&' 9 E^l}lߕZN>w?ˇk 6Ǐ5voz݄i:MBgBrꯙA_ *8vߜq:ClWJ<}o:r<%SV}o:Cj8~_<xdfrޢf3qW/^`]ٖw,Z|S |F0H | 2ᕗ{RP {@$R #'O56 y_ݟ~c՚6JNzb}rM!:Ry>7 9YQHHr D'@WS.~=U7Qޟ?wj|Gm"s۬F[ll!,]J6xCwrB1aL&""T?'}t3 V/|i{f?~zMyrx&"$"4 i+qs6i6p%o)ۇJS(7xP Ϻ^Ͻ~9]-a٫" VW[<8yaom/ 7xPl)U?燧{wB˫|Dz>䨪vx!A@ ^4TfX. iO^~aOVk(xϖnMEe|VS|q;)VX,I*;)oU5J9fO ` o;ڴ .)4;30g! q4*X$4z IDAT8f> qAjPی{fsntv9C[/8:'8vecP-sD3}jdݪ *?!8157n@. wBl] ֚tߴT⓽Clzٜwx{P.j|MMWp&fstbEK4*CYÉQ .GSF}3Qr40yle ,5~ΙA5Ș1ED==mܬOXz% ]v !8ȨlǦl^juӅXIKG`) "[V5 X7][x}L$[1= huJݺԬ«·]3 L]b-֤Qʱ K,k{{jӪ|I*S_~ =+ nA9.q~gaϗIQCoډ'g'|JnZNoTm @ k)A˂7c_9:cPVq"i FD^ѥX ȡ ]pTR{.my Qth/9DDcWQrm֫xPҤտ0M85(M3VWiu3N(eP] 4TWdfr4{&@& uiGD\?'[;U Mx+G=me D<¼G@c, _zw9s.s&1 s7CDsЕ-op.ݴDqJNëw9<%& MJ )؊Եz&wX^Y O 혶34ODH\N)VzKM~z~ oqA|N:-<"WxWyZO=IIkL$&\tLVmQ}(ݴ~RS|pX!Lύ\**B 8Sb (Zg6#[TMHݫVkVM?el-Z~rJve c3sL:}&5$2HjR-X^K RJ"=غW?Ry5k? r4{ANa `j/>wn}zB@Jnumz~g⸔mUa ΫF{X_>%,C^^EKoË aۆ%/ܵ6;:a{(W߭V;S uÕH11MNg'ҒZR^ߧ/k:q,=A2@I)C:Ԍ :e a @%7|>(ؗU^fHmvJ'B(uJǴ>mW@,]jN8,vj)Ֆ(ff.,qZCuCcCUe#l08]EѮuGڜ^'f._; C94|y{Z%CysA>uzU\[QL(- ~R0V<1x!C< Y>~I;CDp2Lȷg&\SV5mN:W\XyouSt8h9]dŒb|#iIYR.ӏnY.lVEJEH@X,&~0Tn|Z$U1@XSfk{-NinpF|_9Ù()75*2֋Qp|o>|q̭w|Yb17 Ջ!{@nm^h̯ht(Mu@9퐚0 kl[?Bc x]3΢ uݤ$!Fր?Ei^Φ=~2xHoW>4ͱEkm&ar6ޡ}Zڪ7TIחeҿsčTm!uץ@qO謭h ZySR^򧳾yOd-x֍@Y/>rfi@m{5΋J Mla $d0XRq'2_sT-%%+W)C И3ȌTLC( 7|Uz%YGxvX)v)TkyGVLmǚ[yޏsD+4lCa.`4=KjNZ7.'kJBjf>6wb ARCpN}mR:8y_g٘el5;$5qCU+qɠFz'@$ѵϽ:OJQ<(Nz18'DPͷ6͹w8~ 9E}A¹ه uZ6ִZ Sl׾J}|$!hлΦ5m[9f٥>Yrʏ{P rήGE9 k{WVM_§+gt?!jp'p @-TKkV#)u[mVk8-VKoV#)uZ=%({׾5.}`dK.Ii~RR8S:Ykm귃wxߟvk.3wiV< ù8< po"`\s>I=+J|8ƨ;`Eiؽ{DPɾ5Gj/o-+ /|Na-z3.Vl]ha??#̘a?z$l7]T]wϠлN-u"a oJBՁ !3qLEF_{޸E9wXgG(7s8 *vg/_xC)/wYrV{ e9HY6vk쮙Ld-ZpY&}=ܩz̀/_r<"4>Ev =~0nF)0%Y6i%{=iEҨ+doӝ"9 /8eTypzVw9#7ZqoU;Q$/+B$p$RԿu =? M08qc.⻿| 77dg{S3.W}!#cb:<ϓA̜1AB 6F@ ewv5/*=N3FŬf[. ~Ce!"}q^5O:䖃G%KxU-kRу "kԾo;Q^_ OŰSx;np;k]z?\q̋㈘9׵3FJpYY( •}S:džw 8K.rf/g*hC30XH:g~'S{_+3l N;^ d/*n;?{,X ZTm QJv+.33C  yu9Ej& FNԨU}|,/d\Lã[s85++&IIX 'gQʒUJ;qKg a%an(+ڼ1vx|Qy%K{C(*,ĀF[$h隱5W? N89Z!a!8Z$hTjIW BPz,/}а'n ~dÂ)>τٱaRZ_=ϓQ)[{ U2maa~֧ y)<Ƿv θ00ā2dG7 򌁰knxw-QE#ygP椇tk}sKpߘa26&o[3y:j=r|ʝ33`kKi.WC˯\ύ?N_s@ UNУ~>,˜x"u>1 G~oUJJ--ii1>»{CWAo՝u_8.ֽsƧch—zv {A>~.S:b[':`gG6 /kŬ6uL|͜D2O{nf~@(X}=w>|v/|52 [iQG66𣙏?XަyOҧ3P=?s[ڍ<2v ëx[hZC$"G(KH,77mf/{)}Dmn{s:3>_ .Kis.A^ /7mW5+#@%:W H-w1TI+)"1&@јGj=1ngy>~̽q%IPG2K/ #ulD2A&%%Tf)y&<8,oGU3f^#IֱW5guC vO\ʛƙ#V? _zd8M\96<qf?II?C|^㴽o#~ ~~po~K9cfac 97.}B]zImn~KzgQQ|m|y%cF=6}X:ŏZG"SY*zp;W}r  cn0цwiO-Sy z|zgpH4 2#`i)oPPt|Wq?4No.78gzۆ0y. !(O7>!˱Tq deeq}t 7o~DyIqy RU*CP+{BH cHnd:. z 5;FEKiZjoB£b(2Qj)$.}{L7' A%$9ߒ^j)X(;luù".yBj)Gf!>! [QɻNqrGǙ K0JB 2Jv"0U;+ %eUrWFBM̲vDrQExDDg|L-L0 UEzab6yQ Nbk:&bg{K=Ϟj;?!+l'0G(j=JZҺ7kRӗu.ʷOȏ@&k4NXCO?0!p J+)Jy6o:Ijq =_>TR&LC(bθy~.&zjcvӄ !YB 4U=V !dRY]7"rΘL <0Zd( 5”[&ZGʍ*N_Vt~az*hBd 0f 3 8<@p!Ad?pKJRYB0DDž 1N|2/Y Rb,))qVVV&r # 39K/3&0U{/LbL8R+1)3@ ۤ'piUH(rUT?g= ZM4$j9R se@e4, GDvNpC2zQ\H E` IDS A`,ҩ_/ GQ;m B 0Ҵ;h%+6|)(!-$$3r]ػ -YD' "8:x:XH3&c"}ҙ1@Z.ct3 RSeNnd5`Z `qΕt2Wkqj sNB,%c=CRMBhC$K.Wlڊvs0f,ѡ)6!D5?ʕ"3ҋZ/ÈiI(cRvoh@5'e`* r*$$)\p @~tP4@QLX@FD aD@ 8+;;Z5wJr!ҽYVCQs/w,w7裴<2ܹ rQx1MדGbdfJ&c\U(8w\5 KdL)LSM) :¸bi(ZٝU5aLF.1% AGGJpE킏*C+GeV+WM ǩ&QYݦ5' _/A}AweŮ}n7 S(3:TwHe`.|@mYhv6sV]@ۨn2&G~s8Bt00B>Ry-۩,b )`zI %P<><s*; ( &ܜD8EGNFm&qU9 h0Sdky"QA6D0))^c1:s'CӧP8p3.Fc֚$# }I.fdFʷ@mh \mJ2EbC- K`x0|v.TqF%\iziMpADiSX审dʩ0F5IQwU{IU yՈl#d[X wM.y8a@1AEkm %!K*Ug>B݀פ97"esu?֮c9Z y,wEJ" | Aښ_4 B- O2%X&DXSw'qV,1P՚ʌVByAT$P)`;&뉢J`TQO+ˈE?FފTJҖ CaQB E?=#!8A"}}*Pda 7_Tp8P3θ%4a; 9 Wc CQi IHt!:f'T4TLz/PCUJ0ܲ ±,|M P7| y&z$34 5 ˽$ZdmZ~Ť3R53c(ؠH,Xj!/}t?.}kynY:?UekZvل3RN^_k 1m7D $B+gdt{%mvš#&Vin[qu߶uF>:! {>5k:p$w汝NgM !,F':NjzvwdvjBS؛\M!;+ |U9k-_5Xaє3SmŚѲUf5W^zͲkZl/勾ѐb69gO!R}Ɯ=n4sϫ._\82Adž+ڸje+WIrE'3+7ldHC lU! pb_~9IAyg-\bOnjč47aVTks:s"0"9"*9a$Q0b@s7964Ё>jرss/3?ϩSol~\bE߽yM23?7|O{jzl|w~Y%?~ |UŐqo:c%>VO}/P"PنY?(9M$r,Jcyg*rɼǗԙ)MG*lPP*3EA(*X0@3.vz@(cPv]# ^^6wY@`2EW|lUV~deޯvhzV{4 у# >goszÄ{('Y%=o~y}& ЫmK~??s{vL T~J48c/f4ko{Ä μ{3m'?ĝS\ô/rK` H48XG Dc8*M~=UI/q\!MC_D^Cjuy}GO2`؋zh>gtmK/~bܐ "ge6%*F(8GG_[R(cr |m˂(PUȥQm"c*5ʈu"s"BH -ݳo/Md`tpbߣ7:zI44)\=wM|*D}9[gwU_S'Vmig"#6A$y\+nA4xū&]A|`J4Ñ8aߎ{znNǨgLO=vQٴn]0湁 DW>EeEa2U$.[RDRi-nĄW)矾4rw~Qzm/FX5muBemԢ3!Nh{ =!"@4jؠo/iA!a0T5 HNK\-VmH#ۧ pTYF1HN D"!Q璄!}i"!PT3pq|32ʾ;$.xdv/x㊭/ޗj&})O]9:Xvͺ5׮]ig04PŀGOTS:u7_qu>_r;E{^י;C*|<%0~cҹ_Mxvzi3NnT5k֮YnM;Jdfddddd0οCXl1˶Rgv>{^DqBN4HK|`QgQzv=߾][M.e_߸woO>@:K$[^ry >}ݝnA7Կv%#X6ETZR6iGkޔ1='&W.dټ]Z[H4O/^pߺz5˟x/sW"~㞉??͇O\vBK&3sg>q%5m-fҀ [_p?'}uUl{̤isg.Zk0Pcy*ӱf;;AΓX3Zlߧ/? ɥ=dÄ,g_ J=Kjf7-1ߞ!Ԑmh8eI=4.b ,'/*<^N:kdfLէ0K{$3.ZzMډkqq}PE>[MF\*lݲhZchdPI3m1{)e+Zl4jkѣFqGf@j:Z鮭m>ɎdηXl>}y '}W~[$WᜋU_쾕mXO;~(A@}tUCYFlsC ni5jeGkgwZߵ#6}Ȩ#Vyxe^ҬcPX^k!ADպ9g mYv<4RÒpdf[aNBjf6H~KoAnT\) Q۷m?x`VKܙEd|\tk^1iʿ|n=pl^}c!2Z`'Uv0%5~^VKX6 ch3hoq(__I W-Z>oZ:u c&惞lWQDc1_Т z\G4H'xZ%Ax4,|yv?e2uA\lD}K֔*t{ Jt:*OT$8qcuC?xw\"*uI'iV?#t mj\røSquW}rvEb9Ճ?zWwc&Wzm}ssM)j37eA׿Yr vO֭CpoGUPc(A d"y;5bS*Q떮_'E[ m(JD0 "^YA@ѪHl c8vɦee:O[Moma^NuJ6.٧#5;ʋ$g7>SsV+ "z;wwip5;XnNXe%fZyP#&M/{^ Yǝ/v^իh_^:`,?gJw#U9 /i\ /vmչMjJwuJujGU[b}ڑg^dݙܞ9vv/^3]>fpJh1RSx??(Yi~}>5A?~Zw>6y2Ѥߣw՛1?P;Mڭq? 1"Xf] S]-M@lᘔD"j!\1P-4Qkk"Aԫҡ~Ղ=k|U1{\D`f$s,^2hjG2rsb):B@^: ,|o IDATp;'qh;εhL;s3#n}-^I(|ÃܯBy&"'Xvf}0י)='uƎ Nvqzo= !5㍧kxࣝ:kfzyrLAE=? w>cr]/9cgplAt(ܳdɡ V/] i [3#qxwÿs܏~bṋ/ޫv| :r~}ck ? qwn<*ʷ]AF$M5VZA't߳?,-صcݟO|C !e-7e[Kwb++͟NxE+6عO?8kJt+<ւҝK~[R5]-=㹷gQ~%~螵t+_ؾ}/~Y\˧LNq:Ne=%V^_^i&t*,Ri DZi:P7*DeřW+N1S;J kw?xVbȫ[YIdג ɕ/?>fM7{suR}~OT0 €Adȅ隋FWy9^Qܼx4WgA2;y*fnrG i;?Q9F$ф bw[L!KoFVW.ӷr4٨)` (@+ !SHX휷?qӬ2,),ts !1n<&봭ܑ"D;V [9 MvtzR6Cᝇ,( #'`NvJV,  ӾyVoUэ_僇V,8J vo ]hC~:Xa|K&䱄tn`(Q.(΋MgٽNrțQyVqd-k}7WH|\  U/13*۲0٭y5ov1*Y:oysHxpvf|-fG\/1rzs6a, TJnDF1=c u( RwԞ +Ft|L _)b$]9s/%~Xm6y1m@Ȝ9+k;!Yݽ%qkTG/C5cv3OiFw4|s(͡y\0-/:pv}($Hm]\ 9?}Ã_]UL9jP}nѫAByd9A('P~?F~s>_1SO? ҙ@]c*Y),$qhzZxh_ӓ? *uX`ӯЛy?.M s5}rYa1:cf,<(W"L _$4tG}){ō4m;F}YЄb;]b̅]~3\s˳y:s Cr#T*È"Y "zg"T/)FR[hM=I#I}ŐS;O\71^yPXP&VG=zjfs;ѽӟ/6*H0=Jhd(C i@EyP\XJ1./y<(<(_"Gv轢7Ag/PYNd)G9l2ޠFt]X"3+G+wyQwLTcx +k2_wl2}UbȀL/%:QOf/K4+ *G *jUN5Wr2m@xr7{L63rfLO*DEOcFWQX@* s\s]zgszGVo^]?E25Պ*Q^N xHU+x uCJO#+m vojXz9u6Xm_N_0؞A4qI˗|fA"1`dء"A"(QF~O%sF_z}{_ٷW=8s~-қ@oΔ/"K ?R$cO0rJQ~hޢʉ}O)X27aJ8'I(޼lov.u}!>pbBg4OOI"2O$dұGDz[u4Ѿl]uJ'T??u{yvs=DXvv; /!%F9:n7diW_D`vz& Aڲ[f~/2/YZ]sR#`2}`wR7 Qsۼ•\,qUsְ{Xs$Nd{8*aCM #7zQ؟۲s$@։mXlފS~:])mչ6?؁9˭]~xT+qb*Vm,Q?eZtl4?aДL4Ӯ Qy]Ys•E, BU Y1V?.D$JYT!_K+aST*%mҗ*s1>ef>Gv!g5ѭVD?%ܪQu\z[A̓l} o%^i!"H^2)=o{-[nSV)b·4 /ܸ[(2귫탍hpJd't5W d!dͶuXo QmmQn'pɩ0LaA19]w=:؍Dt[vUL֑!JM!sLJ &6hP/ϧ)|Sהh!gU~U|"XM҅m;ko'Yj?{S$gmA6hP7ϯ7|?umٿF) ε/ctgUtNa$vs{6VwΏj4Hru]~tT}gͮ.-lL$PRYԝOe {Ok?bz&yԓK0Z47SWfwMmq $\uhh I) y=t9;S n~셫-!e{o/~8;Y;^ѳo~":݂x-prnrٴߋU맗>ޒתmm۵jq#7_ѽIc_Uu (wo]<_oߔ9??R[*Kr{ ZւekZHbVV״\g]3SO|%Þ{;CZ{ޮQvg]oϚ{ݙ图ޠ{V ۿ~d2lۦ]?id]G<<4Gm~@w">deÛ7:w_*kYzШ 뜚5ey^Xʷ-WNmYfjI!V ~Z7jؼSxW,h3dͽֶIϺ*.危rnV]dC fH&WHV.v3~j2E?C=KN=I6Ϲ'o/C%JILu.ظ o_(̶?qsկG3G&'A+w>鮐1RIWCgHXUgV[=/N}˦>|+G؈ ƊVOyqwϟ{;[y,)J< ( ’mѵ9}H.v|Mz~j)/xػǎ=ϫ@I/|vI1kؑ9Hю[} G%asj|l??6pNT{а>%3ܲ#V⤖49 @҆DHV8V.j }:?nfE<6miEW3}n|ś%Zݑ[s}-KNo%dU v6Zt-+Z}3Ym7O+w~:rtQ< h7O4"9k¼<>9]G>Rk԰g߼m䈏w#5niGJ\AtX35N#`#"A\p\$K~Sz#?ꑻے6 sD@+s$^(> mSc\1tb~:a* >\ (<×gݚ Ft$Hˊ6]h&A"׮6ve7L({>K(|d7^8c* DCZ0 `6\2r%" "L蒡?1ݧG=t|M7ʦ5d?xcߒ(y/0Ct߫]:u[՝ |PJa(<2|(Yxgfw 'me6Jp𲇆=y>yr H1?3;[ ~=7rO%?|S! ԑ=nD IDAT |vXfn808 :^GХchȞgL*tC(@s&x\%[]TX .ݤ"Vءn5̂L |O|HU:^gSfIM1Jy.3NאR)pYUL^Q옏N iɎ Z|m tz2\ B6*TI.0¹+_ ыB4c rzj!B|yD $h}"#"S{" z. J3Yȓ!#9QBB^oBTPlmd]bˣ*I 1d>N[k=P@ UEKAʬT!Tĉ `EALM`juqUϤ]uum3:>9"9y=0Y̹@k UWc>D@2HWO;XFUCPhg(-[boz-6r 6F&rJF U~$c%)_tO11" N1ͤQ7M©j밈iSz $U)SGDgḴ2s<ug%FV<7" :Zu>w2B==4槃"vj?$w-5+te'EC0+ࢿ4.Ɍ?5uD6rx O4HmT.ήFgwp<Hz2tpL-$dLs[ 6jKA":(![N'yI=cNDn4iI2NB As61&PPg<Dȥ㚜# {U4dprQh  :BG 8׽ı!.I%tf8RL"#SVKlȘ3ܾE2x&A4LfՇJ%ߤmfzˆup:X t1ؘ)oTʑ!}(NϪ ʏPۿm7Mb s =Tl~ZAO5Ϊ>)3 L~ tõ.c UN*y_ $YViҢqϴ0Ơ)\=Ft= 0 ћc>vfbµ+ΒS#21+0*WHfÊGhihb^KESE"\ P8߾o"N¬}2}dSY WyR%?q%YR)hb~dWK'`X^IHޘ}ABhL}$3'Ir%,rh%9rRQ%nA遒JCmKW~BDvXQ8wEGt@8)آ7#kd; 0?> hZ9ߑn˰T]LΧI" `(==vwaxTs2SrOYNE#4Ƴt͇#Jz"}YN%F䨃Q 9Lb_p:'iZ.v' c_r rE" - F% <ƵpG&[kCĄF CJ̵;fNE&TH E}YM&׃@8|Ņ˒jD! ͆67(EpVOȕs.4rїBLq M5KzC&T\yZf҉M3Ce PcUŋ̈́!ƪCN%acB0:[(XYI[sc\|2^J*@&(E4:{9U- GU{HVFa<_ꄡk5O怭ÖZ 2SƄOG(Tz ߒ)+A3t{<t^EB ##r)67D$jVmTmNj!TB+%ɌSw x$Bȟ E-jguxGPhf ^4ckV:D&Op`F$T޳ͲwVME9 0GDfc> c ݣ3C1cwgGC.SZ[ zDUޏ+$wృ46|W*r+Z cZt-d>YsdjneC*4t`$.&vЊź 9b3Uz02Q,c"&h3{ÃWz`6&ݠU?OBޞFߘiž1]vԨJ 0K fI !N0.xC9!VRWc+F@[ @āl[I9ε2@tv˔+GSi2SAH3c\ŁތG-ԊMFX5 7]%|Isn$ 9#8J8~(RѦsӁdE! >8!Jg@**6"j:|ckW'uZ(6GRLeCej323Yc!:>G!Ypt{mp YLWU&ݞ~0$ÓqՓS쌩td7 k 3O:WXtyM'sIZ, cOYlV9&Q+J=FK9'T؁X(~άIUb#vwtxUjM[xLpk~DLrмjpR$TEgSǔ:[PQ 0PO*/2-ҤX|2u013\WMsr$\:{Y$KLJWZQ yVP[xo$Gka՝R@&415 H(Jr^z}s6]$Yoe5qLamV&Uv,ksB< Hy͢DD瞖0.2$i iffNtWX01-h01cؚO3\v5\ VhssĈb۴M$(wتHaz%iIb)]:Y.LFH#puD%rPgD36PE a>6އTE*Z!&kaq옦BhgZgyhFh;rr r/(?uVV(PPN R8ah 8]\ܮ&Uwpj'1FÅKKp䑍2$-Uv9|(@qrsJRe1-ॸ`(@I0T`B 06[?dt(ccp.BV fbJbbV -Q`IVzCŤ'm>6Plp":u <Ɣ_!R:?z 1pTZH.AK"j\sϊv-%)¶Ԇ=IGhqTqDP!QI^KARNB0[# ,*]~`24~,,J=ڶK8l.0@a2kUqUىJV%țE$#*iQajACVAe%XR +i+fBN~.lHTy<IhMZ$qd' N>1e>Y],X 0 q!@1|hB!Qpjb,T;܏1 ̱Q235@|sx*xXY6N/sd/uud<1z"8VVeA`o'?rt P!x*M$R̙ש2HkGyD"\! ͦC@fp_ 2Wh(4]&HҘQ(QIמ~` uΖֆ{Q։Gk WGFhC22tx "ssoSY2po$,v]2`݆e DQY4]{Д%H'H{mkW6F=cX"nE輻PJXb"JqyFnVafԣ6i)0`Wrjgn]H)`Jf9LҳK S鴌s.t,TUXD]ӃdBų 6:Qjj汖ga7s9I{u]͵ሕ Jҩ @B!1ƈ8ZpҷdOZ({&9!P+Aӈh)EHz 1P\U*$) _uަ*maѩ!+2 PTbBd0/"K&="r%IQvM` `KJ'{R+zeۍDdZm*B0!<k)l@ ~ ܠ4;ڊ1F AFyF "CޭEN::GuvkPJ ,OWh+=mc4p]sREМs"z3?`x\m@B8ɯ]p'e:- <t8>>D$rR BA:J%w?\&1dBR9fdnf!P;<}Ve+v{)@GH$ ?!QU9qbsuC:_ŌrxQAFPQ)q&q<`}$DFM4ň8()qDTZeAQ8T IDATD@쵪ZB%3ZU AE˅ q;F)[_)sXE!AQfT 3)n1~&0XY&YYSoUTl F`s2W3a 6bٯHh84M4#LKVET& NFu5IKTC0ai6~kJT)!:YdmFd;!jU8\ )bHskrZ*.Q9h4ȆcîS01(T_" (_ LKw-{lٟ^"Dy`$Xʝ@k ]Aāajs2b=jIB7lHLPRa9G4:&2$ОloT3/.ME8SA2SĵjM4UH(fz}B 6ن))H!C` ?S>بd̰L*F%U hXeF ;C 兟>E9UE9$<+$> ;DNn13C++s+,tZ#- JARכ%-!YH,3^b,@r$m1]TuÎdPX\_3Sv:xk _@E"K/  f\lyXp@ #4t@s JHjBlyC|՗:S 3#`*z\Ϥw `,̩ )"_^,#C3lv( -at!*U*)GhZ&uY$|\-})l+Ɉ@}?MDdS1(|32:%EnMRT," $9I1€K0$<%B :'!I`ϲ#gRa1b{p"0YNhjC}?=9F(zBPȎØ (# 5cGIX *{ۊI1(R\ A4bԎ1Hb1P7n} CuʚlJ#'L?6KS b'Mj'rm&SIKSb3`vujc۠EC5ue*ȫ+}AsS)n,h~V* TeWgQn| cOc-ufKC= bi^.ĨQ-'Kl57hMt-_֣b{;,T-9CEl+,[ `;]^i8 +PیykKAO:j򢗼Fz$Z;lHIcd&=y $EcN&RPD!2w:mXSRRhLFtf$##i*WH[Рɠx4O&D !bujIǘ/anl6" K1,";w$Da}":9"%\N CQ.,fQ@@fCYj$9VBnEcReMP+7؁!;Tܯ0KE׍FStڗTn<!~:W.z.ᒉ *t̮?;BTVH,f0aZ] F]H2TҫUU n4ˁsTaJ0Ab"j#mW5 mSb_A2dUm)U>kH"!5Vk-4UPh2g fnm9m|'9jA,GKI02)3%*6|UCC.uaѪ^Ô]%A Ѝ:o^@`NxV,%!2 mRdfts:u )+_flᒕBD %g祙k:j8Xl"ET'lja@"πM@].5/$4#j33 `-%SUgT"DEt.3¶;AHŔ j#\uB 2d‘1׊<{.1BeE>eD +bLmh WHJf=ca^>ɞOR#!]%X M'i #F) $Ό099[DǣQu'x&0b!dǠ蜓7O1[ we)s僰X͂v3^P8B/Ra!]0H==œǩ Dh4Yѿ[9I׍F,nhKYS©Fm*oRaogD `RFA )Y.1QZ"đ#BO:Dn0nnn[sme(<TtdqG$*0pOɑ Q$QYPR2vLi&ÜݕeO5rØkC΂l(mjb`[3'-*s*"DCo -w%,IU&Ndvy>`!*6%̝lUoigxuY!e]^UKHrN f&JƒS!R$&JJɶ S1eM Sov:ia M_aXP33}vk-=g9vgq ] %#j<-PAp/m[>ge`dXhؔvH <|``|( ܫ6yM#'6sιfD]b#S8vn<"9x$@Dh07:Jwnqq18Lc z@ϢHF 2rXp}}s鼖1@Nc>Zb9l}V=]L">@ ܾ1C RBdyJQ4:P;Qb_J8r'i@c @sJSvi"R͍,sh01r 1J{!**0ܬD8)S4 !Ju'$AS 䴄2c GjT3j ϭ6w2 9@N8h!ʗL4b7-K4D9Xc #h^c ,s'd0fxsb ЅE$!ivIx9KMhN5\J 3y:rN)t5hD*Y'[9 =iڭkVe9/C1sMuVs klOua-؏BIW\Y2Qن7b (00zn1SIɠ#jnj#V㏟l "40͖##b\ B}o u.\~ӑ' "# \OFFCA:  *(L\ߧo#_y/u"JKo:(QuCp:Je(Lh쑋|+\kkDd)ь_,Q^삫Skmhyn]Y?d]'s# =8h' CZ'M/ ԙ\&Q7b:.!˟P>OR~δsc$AcQEHՔT\ᷤjtHhDݨKu$(l5"pZԘM0;|9G1)Sg[A:[qٹYfy?G/J-=$ FI?Ӿ$Nvl Wg AmfLVOD.l+hm1K,Bt]^d&Gj>f3FfdIl _[ S9uF 1SpY8(5:cmc<"*]1c$1"T1Sܜq1Z)6*8e &6JL`VҜ9ZZKCԙۼ+V+X4Z&ɻN! KhԶ*h8(F9C"s#4 ϴ}JX@eԜ!F t̔S]*rT'Sx/U[!l VVD>B"1dug=%-K6Za cꆄ؄I6[ pRՔz`ͨXߐi8 üsA݃A$6J BʰMaII~eY'G}U :ﺮh,Zۙ~p65ڨL5dplHOxM̊!0j' -`%9;q@+N";GwCSFc04&Dƞvslj"8RcAH=Oju͞fێ[X5~yy;=hqRV_\5~yi-jHTi-4R!|R2'줵$A ~Vsq׳WI$hAd3(mNsdP7eöqi%]նl{^*|%APB@G`cI[i⿱ѻY_1e7+¶j 1%*hfY~QuiHe|eޘp=<4 tkz0k ->8sr&)盅{BuIm0#Jshőc@t:Mly%"`2S9`t.gl6bkG!:H.͹Poi'FEg̵0ЛCv*S̑͡4S53`7df>>+3ijz<>ixe8@1ªKvޑF]WJn }`4V nD!^ΠЪA(WFq Ķڍj2d?PHT4O@*oB@0o,߯tj1=l {XyTMX`4v{fs9bH֝i@ |aoV:Æ.8&97Gj4 %8lRŐZƆKd%:#@=A /h(L6 q4T LNˍB9yY ghl]<֯AWSs1MJlSP2BL9m=j1yc)-ka k%^, SGtQ#q>42c+ N#lTIn64Gskܾ5? g (36R1 N61vi #bi8Ely8`̆R+>Ֆ )PZ QvHVOPפ B},4YPB%˹Ye]!MJF{aʁ!0[Yʼ^Lj99EO]"0M@ u_m 4x :rGSCAgTхB$e*yrmƇwϟyW~^uОo>.%|z!E9`q|.<;f~ v9DQ҇d4>|CWu.SO+.:#}˂IM;1hc7m_|[O 7=ϼW\qgxvQ 1Zi3"yغ6ѻ_pA~㞱j5nKs5O>E.s޼gu˿s.fCWרkez3 IDAT{=v빗ze<~7u܇E^~~퀿yդί[?{}.>g] ]UJ6B"̶\^YVMY] y9)T bJ=2 (r6Uo*=J ̑So`USɺC E F %@ϑsDsAp#jcJep(2Gn,\]:Mz)ee3yk 6 PInqfMUYTԜpax>(ӎvgԪv Amx{]E[  j|߇!Ftyɡ\‡k*&5]4]y#^݃.5k]yL_?9xX:PM;O1 hr1'c'BA*`.wN9Ȟ4[_|'%"CXcv_; Ɔ~U_Mv[{ב ] 'n8[.:cwwt=|;pqrg/_=ٱa{9@vZX%.lY{ijVkhLQOXKϜ3YU3=ֿꍻ57<3ӗ5oyի,c{L`v6jfօIsJyiy#rbB vDThK-13e[Lab$D %}"`Pb^6٪Ԩ] 21F`;O 䭣`QgȺ_7 4ƚ z8ЎˬnHvh70ń/ł|!!FfNnX\SC~7CP*vR* N鴏A]9$88i L,Sq^uT==z_zswΕ#,!r)ҩc Zif&y%"~uN D;/}H|7g I ))a~4u]vfZn<γKd*D֙Uh.B&$Tu^-,&ͫ]800e3aF@Nn?")fC7d4#$$LVh4dn?iؒ9GUDf:-рju<~_C#\wM~1)P@Ŀ^}ȞOpOzeOyNzsVi t~h->Y4 nv̫݆]crJsHK,U2 KuRz#!'vVjVR{&S%FǙAZqRM˙ڸ9$2YƕjU#w rJTRrd:fi.)Y 7 S-uwCXD@,N8(bA;y~=ޞKd)qBVf 9G!<.z_OkZ4I݉J#'+TD4)!B1O]k[ؚYC6! O#7<= ;I/V"'9"z˃MNEj0Tts^{Ov_;_;zwǿMx)>=W{XwcWm_?Ϟ}F[_~;?Ӿ͏{w"~o}S'#8 OhFcIlyA 9 20kEY`;{l{,nZSҧMzSM;{^~?zUY6F?wMwto<];,Aɶ|M'//6-++Hw:dnלt#y땸.w$sQdʗ>2To;Z5 %%E"l:i z/Q\ty~λ1MWSXI`|ӾPLRY פ/*WZdR55=Q E/kmRgeVW$ H}?R!QH֯ iZm3eRxbgGĚr'#d NO9d벚Pd,ԛ40P {CWCM(b4dm*ej(v6cT4HIAlPSU bj 6'<=<;N5<۰.6xOOvDɪnN'0+)Ƌ8!f23;"RX+-5`aMq땸.isx[{=9}o~dTJ ~o>>u}ڱCκ)Džwn_7MH\@'?|979{/GX}p?m7og@F}K)~8?g=|{^o|c^XUL' Fk+ƍ8װi~+ՉAG8Ԭe ~Zd*Ϸghyz;udWY}n .}CyU7$ ;5?6[}h /$H=xաnO@mYW͋9l ԉ- aV/@~E5Wv:TjCۆ3@!#XQZ H۲ X{zf"\=Sd5W행G/m!$W5s1hhR}m4&Rі| H3# c<[IhЉ:A k04jY"P\ѹa>+mLLwd٬Hl{ַRYꯎK>75f*CTbF ЫGQ!Fh;;MWsåH9]jћ/+w_. fwr, Ze4!Ӂ8&fS ;/>> iBK.Hnw./<^ܛXn|oK=W/8hR>0'` !rd)K_y"`Shaӭ\lʦ3Mn}x֯w/@e<t[~si[1-ߵ FWZ\*_--;fYZ`cEKc/ْJDd ~IyN"SrfJJ~=B0-A"覟l}) XtkןY.H!h؇0ecC?}yBR8"Q8΃C=;`lAm9arбE $mj4<8:d'1Cy vd_SO 5FT;:̙N'!Ds2L'tsoU$O~p+}5nlnq=.f1>{͑?#C}1Ȝ@84C$Dq٠X1~2NVVT rUFOx}uC>쐃;> !D5+Hȑ'iתWGR |ecP,!i)VkwS}}*486T-2W%D2ٮ-FJ (ϛlaCaZå> W( LyGY+b`NL{'9Oeu7nO7t qE`;o .XxBUq-I^H @[꼈߸pzIpr_{>f߿:j#G额]|or+^ l[zڴvw“|R;l׼av7L8!t{-`Voɍ8[Bf8`Z].aC7@m@0SHE0Xm (œ Gܳ>*PMa AEd:i cfQoO|D1; ËTЕ] k0iËh61XT%?ض+XF9^zB4~ C`¥!KT5Qir/>ig ~0O&t2 ן| {mzкfY3 dMqsWOz;|>=1[ƅ] uc~rUܸڋbm'KVqNSNZi - d^w"PΑ.'A+BAi#OSaGi߯LVTB~ڧܑdJWdQU;"6XhRv%hB7 Y6- $\6F0NFF|4_[G@  S4Z,u6p\tF{kv8[_@p}G ~߹"ky\?,"=^x>`1HwlA) luw>#;+|O|?e8pV>u51 Vm# .Z9o^{\/{^[ jrBwz]>&/-[;p޿n>uWc=k\4yI@?_'*x٧n&=~;~?vcl."-_\x'[x` \@@o턓x"[cMG\WM?OvTQח"|]z O7nyV:?W=;W.-_/'yrmbFN1ƒ`(ɥub"Z{,Eq_/sn f@8 %Ϡp 9!jYKt @AMD#rj0/[&'PøOff%B@P%'Sy;E k ]?3&m1f5vݠ9@H{{ؘ(SS(Q4(A:p_Phώۇ nȚ.Xb 5 r83C<g{ٯ%Gq;2jyxxīzAfd|Z@\ qOv*o8֍z?lHbO}ibןwn8vs l9̱g&Oc_rñu];}?_2Y+.^ßXnHZu]gԂ% G^LNo{>{Q?si<{|u>:\y=>˟at:U.5pRͲ(Q8JTLVi~%L n8,_(ŸEfe "]C29QN+]*m-({-1$NjO00NIF;s1@ܽj9v IDAT7n{FtF.#^4W>+ܜ$ %-?{@C Gzaa%l;GyJ@m%[[;>9R2o-_}naƥOc>g6ro|uo=հo;Gzr+oջu_P N?'W⧮w=jǿݵikbg-(_chNiTqf0eCD ]Ё@^'~[ F֒ܠBM*bM`Ts6&i4a0g?Za(Of`i3<tWf0 941QQ_"B)cs>/q'Y?䴏|{I곏-;#W9K#BddU/9&7}Ϟr#0oM7~{豯ifPXl0-cp@LcHUB:M(q4!(N! 5eQ2qQ9~XHj%nb D#M7ic,s.r sW4Żdd +@dX&a@΁&d!2'f6ʞXbjgH3b0,`QړT!ͿY'{+Nj9,MkJ\# vwEfa,^:JѮ)#<"sc"B@Zrλ{9Ɯ%8iKsΰX%# Tٗc4^.rbĘpC J&$#$%$8(g3_U*LΥib戼3T<0!փ/p -\rIvz#c 1Df-Ls:SXkD#e&^"A ^f pbʪ<`M;f3G l>+F&qbV]Py>+ >'"< Ɣbd:uΔ2#FZkK 3gpҢYw+͉ 5)K5^ 9Z&a1 6ؾٵUk~V8\IIו`S7f{qPLau4Ex9e&(e&nIJW X鎟kl'ZYAֱA;I;ecV6ˬ:+ |0ёR7hfW#jtx-KV\+֍zS WJ %ե4FSGl@*i֤F:X -bo0'3 ϰS 0sW{9pLa] cYKl0FaiգEU\-v"q ,*W) ;W&6Ґ4ĩRJKCH8rj\N 9)D\Zg1h-hٻh\BEJb$"9 E,?vT1=̉EJsNg1o(8MR؉ }d+uP͵˛#Y>8,}% $ƻn̂"6hu?XfA)rg[ 4D "R]t9pő%$sQ*{L>jhTзKiHpS@MQ2b^ur l̑Z5ghys"h Ձ\YޜaPƁTar'pQȪ ҂;A2ؔRi؞bf{BfF 1L#j&( 5!Caedže楙#TÈ5l4q&WLmՠIO`%(1 "*fd$ Wwm+UD%RyJ}"[nT;G̬9.CDE Jkl*SK@0"v_ќh !Ȕpr, A{55.bPAXYjvYӟ*jZ2lB:UJd.OȖ`YKv:2|):>PyEaCX5KO [irSD)UbLSyJL$r"Jb4gyd$}5v~,_# 3b$rLZQYԇܢwuJΑs_lUDKMv+" 2L Lt=TiRv:ww+/ %%fZ  Nr0\gɞIő"b+UDT2PPbX=(l-vMl  k@B=ZQEkֵdC^5l'un^r.Ѕ3RL&b%Av&B1ba)yFҗ3)rT,SFF C%z`U fjV<ʋ_Z^[@"hs0ss :ɭA]H,eń TDGEbq5S00Aͮe5;@R/ Վ?p u3f?2HFd>|YȨ*dRT!ЧLk$N厮{~3iCAȹHLҘ8Кb"1 \^yY"mإ!2G⏲g E>[c{V9B2ˢ-8Pz1bӮSM ޛC/+b,3r$Y6̰*=&톿xSHb˽!ٻ`rO'aDВp0ƄVFGE#3$ CӒ =SMØnnë3t:*/W@W6A)= N+%X@$*TD +*4!$睰>!K3۷@l)-pKTHFqGV~[A1rʍCr4iQ-Iq 2#TιN9fLƄ4sgg 9*"p:zAP% 4=*N%k [U b9^0t1,PCLI ਰJ.{HYRyOʀ5(q6$ȍ@sB 9R\%i73xd"yW <X9MRL igD2NBYDIZ9C7 틪fW#-"_Ҩ9cӒY#۷sFV IcY5IJ ^mijeB8y̝&pm3"IvVU 9,gE+JΦUJ-kMeQ[~ rIloYiZ X:!I1. =fXuCHD߹AfF2/Eft54ӶXUcoQ%_0(X f沪ĭ`=Lkڰ`t[xol@)SGT͢0\㖪CtET @w]ˌyYr4t)b2 5[ yH9x:N'te1Vx&%M:PѨ[XF#rpL;_OGɕ.o'Z夞[o|SLsG|+ѯ|s8g8L*~%t{?%'~}^ͣ46=/|s;g{5w{9w۶ϟH]2:/ܪ{xg}X 㹪o9C>L>[s#x҇xֶs=yz[*㪻=OW<]{=;횘>Ҋx $1G>˵U*kHL!J+ʐ[B",Ocs/UXH,  "Ӛd 1 DzH,"BD'ŏn4)dz:t0՛$rHz}6d1TQ㒦,s-Gu10~~O'~%rA2$ 2:*꘴\b(4Ԧ'My:.//fTTlzDuUWG,*D3bu~9P\SkVeitI `mh]8>SY@c^@R,UinG˾ӯ6B$\4X4N{hל?w.Uu>g@#]jW4h/V`O,Q${"FE,Ql74 EΥܙ^$ϛ<ɓhޙ9sk~X޺n*;j󹏧Lxߎ A?2aLVUmmjkU%&L :ڷ =q #pz,cXT~x]8.Z_pla}3CXyi+->'vDu!6 #"?r}IBZU]SSS]`T_}8g4&zȼ=#RO\?8[k63O9ԛi|w؆˪ 8$;u9QP).ӚͳMvky=C4]~;Ӑvd@3ֹ։J;3L\\[ 9^4`cxq /m,uѫm41i4pi'w}pH;O=KW{^;};Ԥ)Oڜ~7z?M-BxR]yۏ >aj+9AgR Lkya7'x;䍿\7 {_{ǭi{Y2àȤ( Wiea& 0| >/u[fDD0ɼo_\oJ ȄNVZR*2u=f fX;pJG嘾 Q2iṜBtgB&Ijҁ BGSg ۿYVD93$I$HEf"iӅX u?Dq[XrSc5Rs^Ҋ3tT UUUUUs3TPq6R"~^U-7OqK)=bcȜHFj"z4SN蒝- YTrd3H1R*[#w>1{TLoGJR#Mv'ܗ-*&16Xڧi#5^+P )Ds` 3ebNh A^h<'G’|F>t=(`uu'S8%MGZ9Ѿ^]q%%[<럣7<7tWC UDT*ʂbUf g-6(dqT.e ƌ'-uػU,n(v>S<0bf |-owjݔaMa+)>p[b21@aMn/t:gp`޻hrG#g~[ںf" >oz1'~b??*%,v>嬝?;IMyvq.ER]qg&ƿx]//(4 uSq3Nq֣hn^r^,4_7Jڟ5ǢÿL[O~g_t+.|#IėͅYTrXC?[7([)D=YcP-*"X]R̹6'6wO'{p'IN.4g*3&HZ;K><ƎpR MOYȑv | <' PA&JG0a&IXmb{>}t͹77@eOGߜل\~/M: HE}})9hMhSǵdGow7&}6eK7ךiQr!KubP(pKlɇcUm8osD79va{ 'oJ IDAThFs;^'?~/蔇~(r\HC]9a}n8W}p J!mOHv{ڿߜjrAeVܐIRBR$쇉ڵ;`0l2a[Niŗ387翶*nC?vF7žg1g}F4b}X/ˎ9멷Wv󰥣}ڙW [!wN(is~C<Dž=UR*}vw^S;l{v'<mU>Wx\, J);NZ7ub7c9{DOs.f#DZ"~ {qڵP5I-毷4;qؓױz=vo^QQ\zy\UCtiY9ӳM#J;uVtb_y>`CvLʤc^ {9CM&"MSAsç<}-t&ްG !z$6a/0`Mڐ'<0n{!Ko"dT :X @7$]J)D01z:٧L:qN~Qя?Y+JMAC.:o՛wռ/9EUK:LQ 2"iSͫ'GpM=[6 dRƒ :u6CfwC}}RBdZ-7Qqn__Z>ܨu<α'7-&&nE28^Q^uro̩S/s{B_iCrӕ 9{ie@$UC_ Kٵ >e+a %T!H߽/*=^G{᱅B̠ĺ`R3z1H~ʣ*~i0i0)K0rfʊ+,A̕My5p خ'^nkǮR*t:ޛG?q$X5#`{ldv9sĚq _7ÝOnCw~5﯎E2%ϺG{}RAouM{3c7) Y/̄PJqL:8:)htr(R1dnPD"?H^kndktA!/"11 o^feC `8OA 7sVG޲_~޳w噆x  ",^*PCLeO,eDbk3!97X[k b%!uBy0IR0ale4[`IBIXp$񺁡tMvکjW6kNޡ ~\G(h |;{pxJ[թ#>8غeMopčc^8Og:&_X>joUKHU@Z``kln2 V <+Tֆ=t4BZ(B&$ML(+K6vu&ClU8*JPBTR~ gfqCw>G?jizCa_pk\zxIBRAnw&c={dqhRDUt.LW>SNzуU^[~[]Rw{zכo6VVG;7?G htmLbUՓYLՂmDXFeW<};MHM!36aA:# (G2liu` bBI7@>C }hMH2QaIˆP,'taƩ儀@NCdB,a.CbQ@Γ4AƢ,۰PDBXl)9)OU_k>7 7!Eyh?`ܔK+%hsdnUVb3Hz-z>7cFќg )H*"ÖcUi,L\TBH Al$Ec cWa T7)1Y9@#UջJ~8kzm|*tX Ad0XaX".z'Hlȧ";^XՀ`ˬ{9y=K^Z{F_-DQ!ʻz*غ^ 䖈&*?ՠz(Ҵڪ/%bbエP V5G gVvHm~(9BjCX[@ Hj6^YSnqjU/~GWwK7 ӓJh"(;[y-`MSjzݫ (7qb*qq捱nM1Vog?Ib"g9ꗭ S m^VMNluqhX/5+b_d!q 1ʨjêtIZ7i)Ԥb녏KW4D$_8Ӻ3zE@Lj5;bq}";@>L3IϤ, 2:3 ۃ fA!RKl M ʔ~R 1RPޑ#)وST-'JnLX΅C"Ăqr%"(2]I \|=AB/AԽl"B"*fOEc6!sf3Tؤt&~HD/_:u98[jR1?b̜s\t̬\.=|@>Qk~eyYp HƓ$yQ4#!K~(5۽C-v#!j[l颍 {j(> l~{1DQZėco{cwk +,N͞M^ZY*E >s-vm%Y)dm+o@qfTo#YڲifK ^Q _|(R oH΄rŧlhn.p+LY]C_}k-p .\.ҚQorO\l(}آѱi[^{thZ@ӏ~k/8r϶v?߀vX1eRc:bOӽ:[-` .ZƌJ_N"`@oP*-xŧu?/k^b۴ݹOӽ:Ϳ-1i_{1{W )S (ۘZprP]k֓0}9/rYn‘i^(*r^j=vۭ XrܣCDX9O흧zu.V+-Xx:I.{{k;>6lv{9y>-'#_j:q6T#8*t0|wDL8~ D' >t&E6I (K]P0cVc"Ò7(1tO &P3YFJ%%3d_R0`B=u'5x`>\@$I$[Nm~@tA2TY~f!_ggJ.d)2ʥR0MRXEAлşW")9՜r62}ch@6lWo xz=):[R0 Mug,ҳ6(,/՗J\hK"{E7F[LZJ)Tmps/-ь',A%?WbniTL )nҾmy=p9/;⛫ocr\2|v=h#G@ `(LPv]}oݪʯEC&wzUiKW|sŏ̮lS jyy217]2Py_]=gjqw^vɈ]u8ςEobcr`%")U(qȑǘ=aу'Q/*uN|'1jVㅈ92eD+w1Drػ3T-c- ʕ3a21 x3_\~A XY85N"EA5eKE e/BE fC,)s3gR*DL4I9 !g ) p^yA;0LP!Ie4 i`۴Z~$iTj&cc(e`J1D%"\HbJ% YZH2DYuUu&2Cf("ҵfrq2|`ٶ+^ A[aIpfFgƬ(M@~wuB3& <˕R=o_٧^5czRwmGm*SJ*!uٲ/}{ٿnˋ%b3@β T3nN ?P($ZݡT~W}SqӨn6/J}q߀{ lZ4r#ȜN@MtydFT^;^֭?;dZkG/#C"t;@Pk8 yopHhjgG$Mε]?i.6ٍmpk>AA'w[gZC2"%uvT )˂k]qgAunג&{T]B6h|\T23g,0'*batӃ a! zZ("R{')RJm.1 ,E QV.+RjqXs|G{S4G^s sͰLZbc.!%d M!qwkFW/*cp$I"Bh`SVȢ0By 09Z.Z-9yyerp볡2)))Z@jEeZ hO)œJ1|]K\xqǶ[_n@ D&2%r\Cbd{Q0A&b[19I\¶m)`Ac܋*DI%5/ C4%B+M/f`   {]VG5LK1-:{qKQ7)]`e\cbwĊy-F<]Ǥ uʅHV/AÆA d]8DJic3Z.݁kFy&:1M)>a 7 E ]^iEK IDATVڡQ;gZ{v90yլO3`_g K}tjHA_k0"y8BJ!x I2 @(er"Cr\t,KJ)9Äs\%IʹfIq ! td1QOmh`-""q@0)du4 X92SA~ݖ5HE0JAgӛ BԐ)sT:ViVWW'I$!ABKUPù.TCn[։ẌcBLOZ4ah1| XѫF~Dg&3FڃU~g,& N~p6G4q=6tNHmѸYk2teBfg sx,x` \H@qX)Z)^@~CJj 3(@qeev#h_9 7}yÆᯈʖ%yH@nc"gKxJ9e*rޕ~.ԌL=g>drd660l݄DFk!N\gct{P0rZ 2 8E;HnF$ m"2&ߔ:e\d]0j P@Pjӧ[=[T"Lf0i<^6" zz\D If?P$Řu淟C@ӯd]=ء)"TacV9ytp3!|zɋaCt`Ab)EPPg ܖyoZtH$)* n|Ѝ1 aE6Ĉ<y~j-%Sq RJ( #7 ~-JMݿv1c!;lY|qv:_i.30b뷭PZscsE,#u4ѧ !,!6Pd pФh,u\B@0Ƭ6 GԪ\IrW]xhS.ѧD6-@U8l{= 7G*ʾ 'GYjhE2Հ$m`r=)1h$AFaA4CW{"‰rb55B7'4H׽ H!3)EzKf+ )k OؐO+!bJw(C*}5Gy MǞ qMϞ)}8%, P2:*h;2$bLIȎYKCTF.d:lC%hI< 22^EMarQ-DQZ' 2 J$Iݺf\0f0WXap?>ѧ_^x. j8iŘRkP& .$:LWnSoA$R$݄11x dz3gSUc !O u xbTѶ1cnpE U`r)=?4I.Jw-1A;eH\0)r{ 'g@N+LKĚ+*9@@dt@>@NvK@_Si)K/PEpc3<|j$kvI]O4`T Ns!2$'q/8MUT*IpݠRp0}I\.K).b-VP0x R\d΂W,1P0X]TFd&;HJ 3y++wEoiH%:J)h3De% )$Y2) zO54l]U19i"ռ1Ibʙ+w7:\YU~,t#O_"3jNªE95s׀*j1zIBRfnP00Vqnjh(+5}Fd m6oD ~ ⮙JL)O,oY +(7(nwڶ)4uc2ݾ9'OH p; pc{0KFb3KP.A#u b&XDy1,T`p @ Eae@c*9ǐKw*| RJE 8-+bZHjjkB"E&b8+AiABB4T+7ԣ@WFN`EƐspnl?܊h'@!ߏɀBl v pdVgPjscϏ|_SbdDW=s>jm ֋ɘX|9ciϜٌ{af^&>siNH@ ݖ>L9u欉>~m ZQo;'S>ym(|?>{}?|AwvX>}n>:ڲpd'EGjةߘOvJ"UjcQg}lBjv?}ГOO?sh̬;6?+p{Fa󩁋*g!vD4g@ˍq 텀a~@c04U"06rQYPQAS2侀>fn 5 3ƤY[gi2ƅY9S!ؐ "'RGe UB,˄IXHS VnVM>_݁;1N \Ȑ3XK"BfY&2 c܊475@a\xV" | u,ˤnJ۝|e`YVRBo{ms.o)'2e/~7/Ԩ*MS}ӛ޴GMO!Y{ xs}7 $ =U%RH^ I'a Aq;MA^ޘ2k\ݗ-~E_vҎ,$VFۍ(*˙O') B&md/Bkjjkkkkk)wUr̟Toja;ܙ¼nݷVWoΣLU +{~-'`NEv>3qq)Qӳ ۝;䮓]+_ti_pRc9ojr8mQH6~kS7Y[TJ'O 8׿{|J[nt:/bR@,k}zw^ΩN?S6rmqZ^|E>N8xU{ԀK!"K[t4'w3;L)UU[>sA>;kޔcK,oI$i. C&"tyǯЩ g<^I3{fV=;}~wִߣ)#7iVCĵ K !#O& A0H*Kt@!MP3Kl3!WSR6fѤ8ľ2<@D Gym BSߒG8x>yWB*3x9DtP~΂}uVzO>R1ZroyB(5!Ȋ޽aкֆJNن{+V0ua_nv F_v/V M|ܯ?w}>919}>KcFl_0K=5cmnP2,J<:2z=kUn@G -ڵmMc&RRCQԱDuwiNzféS'x[s5e;S>:QwثV(,ۺpjw?6k{jWև\˓&O1G8f Qkw?ޝ{~Sh}i'1wGx'}Wz 7ۙ᱋8Sn3,f壮}W_{@ԛԋzF{YmK_{꜂Zٿ:~>ʛզyV7?p D0_rm&}j[ijR]DX/᧦f4kT^Db7"[v@ leb/?kqȹg;kSP>0:T/ }(g sB#n#y܋^5 IDAT Jy}p2vVZn7JHIJ!XoP s%ik)dfh`8tV.W.;U=3(ԁ(Q2DT0)xR_WXSOl6q8K:E:-^g< jc;lҐ? 7,6@ |~0a\`f޹y*0r[QCO;8Q+3p0r̕LrޢVkba_g^mSý3.A'ڨ}kqb^1y2 PZhs \x@JBc'А>#82 )~!giqPi]_m_8NY낟R}W2d䌥i Kz+ ~^=k1-`=,|7V*XmWw_y˳JDǿޫN.3Ѽlk["s!ߞRjg$nA2# DŰ׊7 $2E5ذRA.sA:B2*ޫ(ۼzrl>*%ι-#N\0 ,ܴtB7ElZ|ԕUh2J=!h+s,'vzVryo-`tnCw|5VU`FIi#{vYlugaGvw>;cm 10M _[.p[9Uʍ~82&OsΘq{9sNEHn 5A:(RٷhUkEfv:<{ E'" ?/yXPet *>؏Hc@7TFH,s09JptDdm S7YL$Pp6x[Ze mE2}f@"DXy<%9u$?*!t֍˨P#]"hȓT&5M I6 nBCYH)RsθRFQm=ȤrQnq!RJWru1lNQ4MziJ4IQkzGBδxMb5QPqF!$X~nQQPC`^Ss|Vknۇ^q3Wu˅ b%DyPJ HSh#nfxkڣ.xF+P䋂53K(sGrG_OAV+0tX %aVjf o~:HJ~*]N|ޝnYcFTw>zQNlIo5mVŞW4D2WLCiBzfn08U/aU: QZ%I4GlI{Yf lȽ@݊:m٨nҭM(׭1ԭSe.]^h}~|̍'stR ̬nE6^}?űnfk)ǁdLQe0"it*%mAŵ:PfN Rn2Y#';PtZvj#tnG!T&g%L33<@30 5jP`RXq46($۷L&E7 L(9[uP0@.KUD+(̄vaR9KMDgiJ:3$I @ +?p %%*&%3!t"m`! ©۽a-܊ $Meg"À`Ρa$+\Ν789{ԧ3I_(tFa\quO?࡫7&-XW:|]-{mJE<Ԗ[IUdw -!(/zλTA "7>2N"eeygj(thȈSMHN.do>ǿ{tОyKܡ=^^h05l`vUuQ:iތ4V86@LFc•Z*& %I<-KQP,0՗տ/(ɪHٍˤmcVM f.>ŞVFO?GTJ_4N/]fo[zҸ5jêKln֊oN_a~{4^=qF3"1b3)AФ"Шe@%aQi4bҤu+6Cƪw;߿2j#st:δe 8i-+tcDOبH4%Lo>;[ [%,aXrNn+2fs6n٢ ۼj妌6OS2Vwvzk|nԣG-G➗ kҜMLtSn%"2}K†A ]Vg0:%r\xGF2xHJaMF5yUDPA]s"ME{8]ª]zj,@xTH!2R_9gL N1lo‡`{$-3?Y7:>, \ha1 XH4YV. m>c# O@n\lZj&f@߾[V.Yܛ~I"%4M$e14`B M%"RRDƐk!w RXmX԰"7!>EX+Cg`O|!)C%ͻwV>_ q`+IDػK^xz r\lj>w__V0?:g[,l1[][r1r91z+F:cYxJ[Cj܍Ͳ6(A@ )Hq8OY^bh:SfbݷS^k/GڹW}=N^?}{fUuZkݾ-QVG$E4u‰ET&G3D0qҤ4&ʣ55-ʈZ&NéAaT'@ ={5^{sЊ[uow>{[$čxF`YJrpKgnŴFXl&]gNOlxq<ܘ2@HjN)W6}A8`o߯[d1sr4p}ɻw~W]~1l;+^S'`灛?{u}w}}LhuÏUy\Oܵ_y O=y -W}7>N՛ dp{r/u=KsZ:>7wҚ._~=}:ᴗv>?9gܶݻ8]>i#c~}չ?y)Dѳ Bw]>i+\qҮݻlsk'w͟BSe>s]w۷Mнh)NDadJ•K=Nؘ<9gq CXVdNZ>\777<Sx?uKK9ŘS#4mIK2iӦ\?(y8”qZ0wr6Ƣ^2;.Д(8mL[9gdHhռ>|8O. Ja\fqEn3W#o/z9gpZBs|=7Ͼ?>] z - cw3~⸱<X5,p.PNp0d{z6>~ͷ:7w~ϟnmcC@J)NS,S 1"#3W]w<vΞw^uXxez?q__ ^|ys_ry>=A<ZƑ<_w˥8σ_НWxǯ߽wo00kJ"Q}ӯ=|ٿ@\T`st.{Y9y/j.}_|~@D`8~̌bl4Cq=W7nvc20>tۯ䚏f 6g_̰n#n<0Q1?[_Ŕ_L9kP:i^y{{%/ S73QV0 ״Քbޏ3_f#/Ƨxрs]w]ȣ?ES s܌ft+'Rq6%uձc?_P a.!V 2()fqc 8j)%.rƺ)n"ǖsP`c" %$,ݙӧ]1O(GիEI0vc3`4| W)! pʨb/rœO0Vo^梋Q^:qJ)9F59e ijJqDZ2'EnRCt_+R4%8CǏ |%poAgyX&h"Uv@ 3Q#yobJ̣xO?|?Ϗxۙ ` ~ocͿ[_~ZnWmBfH1%Lfcݶr-{aڱ/yUA?{-G7ƕWᆏ<^_~$WOY,|DZ׷'gWɞW\/<7?&ΛxSΝ>o+粫o(|hߗGJ{_z7}@_O/@0Oo|O=(0 ar}XVms셗>I[RZ>,h\[1-S/D 2d`^ㅚ6\""DibLS @9i6 D9}BT#:̜RL_A`n0@c(`"g2 'q 4^A/SxRf9&h(/Ͳѧ2g9]NL6lrZ"ZP:ש09ZVF*or؀Yrk@u ~#= 6NFAiɌLg+ׁ4ӉT atVa,D\mT4!Ȝ  :؆/]kR$}goBӰ5 Z˝R)j9=E s'rQ/4,r|93:T $OX&A0 ǹ-4$Ԣ ʽ#E!ƶ&^ ,D 'yHDQv?DddQ@#jOPV0!ӿ"I1 /nEd#n,ToPWCr#]C(. ,bGzӷ.;7x؟c%ʨV/n!& n]U33ODCԔ7dfhr{M ju[MN?k_xnA.H@87ICzGq}}E9NS@8JC0o OөrrW?B}2i+VL A031b):/Vl7FBh#4 #i(,tn|檷6Rr3J=qYu/ƞ o`N f_-PņT]EX6vdtuC7AUGr ,.=fȥ#70 KJpaVun]Tclj &Q>,o[E #kZ\2}ۭ6ײ l C1朇qdf T2{5kmanri;&IM)( 5p}#nGT"lzuz[,j [nLuk-#?߼:*1ݱECaVq#nK*ިPz+! HMElmf^AM iPp |Kn>)gyˎβ\} c"}krN(4#qcsSa vB@ ppam}0*[K؋qڣ<ըJ1#NS*4@x1"V b`R95숪Xc!Dv{b0d,u ySj,L-Sj8s/bzyq`h$d(dqA"J^K~EnYו6۲yѝY9֡G:$}])+߼?^s9 ڡrNj;@rɖhgw|vDW+"q1Aw,5YMf%aT.lSLl1wjW!Edy\fBvd49{z|c ~ƭR sAx1|0 UH4Лp zӫgʍV ,_1+JƯqG83=\P-6x[ذ-s,5vArы{<bP{(LAw{U;Yy$hym-OnRBVYL|i6.돋H*[$ځiALS7e gfR#,LU\)B}\=Ip^eRrDU2rꈂb;eXpĈL2: C@7~M <ڵ2 ѴAuA(XncSl@kDrr077#7(֠ΎyU@wRo:.dX<(j;\DilX10t|ck?ecV(Q㰸I^m%˱͚]|}amRlTV$/1%u$\MzeW4F^&ܢ*:3˛hÔٺJ @"32>#? :#VI\ЉmJ$17c'Lu.DqCD`̐T.0r)* аʔ,$R+b@86֣ڵՑf=u APIDATyJ,!t]-'¼=ҩYFbVGJE(:S)ZޡfbⲯͥM.YYthV[ EL x^;rp`)mvHVD˗æBW5K g1IJbIe.ÀW g.Ϊ5s35^Mxތm \ v sy)΂ϥ4!llr AJCy\m%Q`̉CU0@n^KP e ,)%pnҼZ 3[h~eVYnz'ej)հх;HҠ >3Ot熸EVɕsk~@S xo9ʚbs!yzxwC媾M&1pyscss*e}˄hJ`)2\Y gΌȪ(W2R.x*j2'KJBJIg2BPao(% +IfWC<2{<j}!rrH 0#ƜyA!#9 1Pdbt_vVgVVR<2g;2)+0ZF}PeCcZYxdtudWV6kEfW qаNu#̇fFni6F!SʀJqlz(6KD8qtB>` BBXcci"Α+ j)ڊ3 PJ7rјk`œ %Bܐx Loū@ rZvxekwhc'm`g#!BҸ%M)Fy_f4g ' Dnͨh* tS%Ҕԛ^j Zy~ [y;,,ׅfתoq5 wgnP̙%=̭:?!ڷ+!B[m QX____b]vGJՄ9ڶm1iKy`hc#̸퓟%Lg)6~r H@ebjukM@HB Nӥ,M`|v"ƽi܀8MqbKDNؐ+1v.vi\E2HoK/yzݩwS9ފ2x~/k&05{ɇ7CPjIxXt{m̖c=ΉCQ(!2cGX.4\3^FNJYti,a1hu9B.ȥNp3hԬGO Q*F3iii`.}F;#Љ?]LF)b͟Up k'Ibjiˮ37]*[Lu[U OZ[[)I5>( j.ص,@N deXĩGCfzkb8s*bKsk!gΐ8La1KǤ. Q(Q,U#rʜsd‡@C-WJ.*(L&a!H1<$Bc1֣Tc|J у/":=&a!#D C`⽝Mݐ@gwW7] nY'&1S<E1#w3 VŪTxTxo sǹ +bǜcL)%6|f ptXiJE ÀoKL{(ڶ@a%=Y5=YdL47[)c ]raU/$:,[%3\8I H#GFWU`duHWHVS<ǐ%nZ@6C3zBPdnV'B)qɷ_qړBCcjI_,4r" f$++bk˶'bi3IZ!8LYwh a!r-¸\ qki7*0!J-w(.Dl> Ow H&5L] W]*5B2X&`ua@)vDTz >QeOCcL\ DB8ÀH)Z:e+ ar ^!Lى-!8;AЩT"b+|1/_k9GZTc}_V1aiI)PN!$ڇg;NJbE@2BssŠykfΘ8!P:!aU8~q&ʪ5R-=D1((*}0)r1&ERn9\^95=t=VЍE!PQrq1&.d8\Q4z?i XZN 3 ik (ďH>gTj!bI; n0a MD3R;uJ;Ese\ONS;M$jA$;Y{TZYdGv#q 2 `wlg$d\t){BCG8?*, Xof!a<4M1 `F+a NQg՗No9hСF׃YjWĹr"1,*rf 90gO~u; 89g*pz[lV-#hK[(dU]T,V؜TtD!(áQ@$o Ze9zĸᥧ)*]m[W( 0!/-A CŪ7Y8m,V7Z7v"CjTqO:2Jg0*;b]t`jTSF`Vo iUa୨kX26- }n:\\85"{793`@ ̨ @$ua+Dt^m4Z)i8!Kl@\{Wd &.M%4pOA[ÄȲI)ldھ)L\Ļs;F# cyo#j2 ۻxP<ؐT\X$Iڽ'EŅyAuY ^lmAQ#VxQT\PŃ5.Z곂¤k?NozQQ>v05|則EEY<(\mbyOʹ@8Z͸ɑ50MS}N62ew0 ^,B Ra<-}˄ěw_z73clOMϟ?OOך}sUYa?mvT!oo9|`@-}*)co< m5rٯZxy41mCěws63ZPؒVdPJ &dQW;99OlXni]2Q[[wF뮿<x|;6mi|Rd|tl-`S-ݻ~pߌWm ԮM*kiѻNbtPT ]PE\VŠhKpw``x{r%Wئ{Ecn"K44j*H"""ޫ#6VH5E+s D,ʽcfդ]CmiĬ{]j~;~H YνcDjWFImC0/! ^oR'??Xrcw4}WC*0#:DII'"WilDždhpe^VH،/CCklT{lp4shYwz׫_#$ .SGݩ}O G͝ҭE}FN4ȶJi ˅ny@Z)"iBzY:]($n/JLagEwj3ƒOtʾYJ~Tiɣb ť~K}qvR0,&r8!7D{ݣ6^.(F]ܲqNLO i6y ]SV7fl>lY6*$ G^^E4/D.Qi)@TBU~ul8,0?>h ysҼz3ǓumVYy~3;ܣm'l:h>۵yG᭽?|>K!c&C-J6%*s2tF @"B R qD>,>_lq-i #*IA+?vZ`k+8E IYw23ކSY ֓!a&ی8QzmvV͛~} ^ݒ?Nڷ I`'$5=8gͨ΄eDc:W6O7W_cʎL2]V~(a)GW&-y}6cKk/cu4b\J5(#V+P\H^EZ]J:$a0K[V;և]ŤO>_SV쿮5{1s)׮ܻ72^{/Hc$ql-N9K|٥6+9ѱK=|s@Ju/95lU4%Hʺ|:4Gx;k/|:"F+-68}Xw#J8gg0mjUTA'TBCeLUx F@r$5]ua'B(g5 GnFIk4oлA!{SK<’Ãoٛ*g|8LgQŚ U "T%畐ېP6$ $ԴuXUJ8|e(ǜnRiՌ~Iے4raA\@ѥIЅ81lpPOpZ2g\;T  ьD(zt2ٳUe/$VnrA`GG!0l会թⷮ(*KS]ʸl= zg=Mg"vWEM [/X4CF|5ydߘ>[v?{KгRdT:55Y'*ZF)ݘYА,rͱfe!.7{5jnj֦ǸxHHbk8 62d{U|:jYTsL,~bͶN?7k6 VMU4w]}4;zu݋}C6\j &$TT`ۀkN>+ dϐ}-%|5әrcl;h{tٔBV+y,F%ZI@)DS0C(^/ 0).l77̘HJDۆ8#lY!Q} [ht\4NVl9r'WxX,;Ȇ]3^QY/)b.l!9`JDv']!RKJ#f["9`> KVFֺ YD^TUոE[?yWAP7V \s 9:ɎeXG JOv; f#9rƥ.~54 T,E;,Ӯg#g^ymI|%LXP՛ƽQ/o^Ԅ/|+ EQ6ho~wǿ?mU_ kټ 6 28J%>3BƎ}O0GaqԶƻxV;AX%$B]6(L6qM=!B]Gw2 (H5h[ SB!A꩜{C]c bi*w4_Jy]utc{ڛ{V}mb̶8mA{|t~Ta~ѦY.qmo6 O&+'*  Ru\'r1h (P; 2hP`s ~uH ž~#W/ʚE6>a˻MZAX͚j:H:G oa!O^l#?;o;Oѫr-])b i΃M焰MgE֧Lmv3\vsn-7oyYk#6ϋFD8d IQ,M[ URCT3 R#2n*75@Gά_W컡{9SOF{zFa q+z~r|f?GE)|wRc3/esZ):+قDFY K;b‰`Apޕ*2E]kfGQbA?n$(PuK T'ײJEˀZQYIOB+L=ga߬쟴ls*jH"}Pª*̀Ja؈"Ga6'l[ɃVgu@poԲӼėR:.I:ӵkJ zn_h,xݻ[]U>[++/ a}Wxl7O}j։]γbN!Mj2ՠZAP}{Ѓ"-;V]zDX~T(۸`6!/ӓJ/W)JLSUid<”vbK>`n#\U1N|Wud{>4"/4 [{ ]/˃z.Q"brN !MGy 1wM[,BW= 伛 cXUUevS*.y32J\^twfG772^U蠽? mАR=eg9N>a1 Vv^ׇ1g:}OJ V{@q!;|V`>,7zs辸Rk?N`iʜJ>~Rjmϟvw&M)_5ufgr…#|<[Jy ͧQ?)jim=nCi_/,D3b$^8hF+hB'4"֭^A"yD4 NNV)S&$AB"v'}}wF \,>Wܼ@Ч:p5vKiԯ¬|CGt߯_^H*UA`):7d5wxF#f? ^ T".]^JY0rzs$ǾPـHq!("H W@Xm.GJ|a$sdzl*euMX.#:dEzĪHV^NGTbUwVlZ*Dй'O? XkdVsq^\9}>/倫8rRG=7,ݣqJUvA4df1_3W2Qe-Hd3a^\>RFL_柭3ϺO`!Z|py7" ~Ŀ݀0> IJvDKQY+l\/ytl K-joFU6v1y߽=jWA|8kδڴ[ל#_Nyq[[ݯ/_ӻ[l-j~6 ~;w%f^I>Jo;Ml82ov"S# I2dxhܜW!?X":`1F)dsHG@@FvCSdLHaVfnWv"I)Ǒ=$d}[uU WP0AAM1Wom!8(,گx'%E^$qhD$wH8W쫠eu?-Ӎە$8t2y`Xd# Y6;oLL^I#ڪkR moXZl٩vr¥cZZY7[ҡ$)6q`r! ,!"D8dzu##L(D lK.$`xE:b&a~8s=V|R!JY g|"dݿ'_xPx'PE$"lk3y֒I%<)| =kHgmނOtftlaSi "8"2$N Z%%d5-[r1勊ul_4k6MOc;nuc6lug#~!4UE? s':lĊ/6|}?_5 vA$S(p|MyO{hѻ`6~ƽ&l>*Ir8['DdK g !$rZ7tǗի[I_OS.+4Эfr Ra8"J%PWUID3&3*cFRЧ5ՆV w5Y6z7ِ'79è{&7V ȺĈΥ25-j2y2߿*O+5Teי^f .t+!o爖6Y-~ JRqYcWd,q&fb8>d2 1`$0pgҒȁGN`}YNwstL8X>]7T~y8_ߟC;>1@h=WaO`Ivz s20L޻|{a n|"CV&Iy#$:afu(: cG>?%D TcߌF6D#Wq@̱R>f8 Iǥ pEӺgqu~>{GA鑌wuZʺp:5C=!r[=[Z'%Q5tT42)$iZ׫&ϫ\~4Z+kAMd=V-h"!B#J,%15a943qQ~e#qJ#|P>V`u[˗31(ŻyFsmfr1Q`LM"5U&4§O2 ~ͺ}ѹizh!7սM wV9󣎴gK9݇ ޤ$R?2O*"iEIO:?y&n.{-UoRF.QV;HXVZGh "\}Ao}__S+6h:ת_E uFoHVO=}P{&۵AijGO?1_}Y9Gw|y2Qk4O4{Ϥ-KrWSnnŇ^0~.Lp~>IV; `5l@XfVs'u֘Zw6Ί9n'\z9c"܎5Tn!fƪw y㠝̨m/lSiCG`yCUt(C8 5e,BNU\"-| \ğ|'0*L`#㖿0:gZϨ~AX[ l%_A˛ONvʼiWgO$'˿qE`_ EAFef , !2 ˢi1<"n;K)G(DʶCɤd1IZ^4u[RMjb%_gu:TrTVӹ1ϋ k64ra4Z 5}.=xVALژq\P7DEMNvP&Vs؎9֜#r RmgR);dhgQ@Uf+Vl\l2_S8pWmytTj?&$NPN`azd @X}s@C[ᣮTn2%l3*|r5#7r]&ZoLaDt7FݺqldǪTsqA\OMksH3%wU=/SyS6E:x=GBeЕHntz,':]XƵ&MAy'((\In*2V2f eX'2Jd|iU_]p7@9V%u- K7<х_N'fn]a,@!uy9_L9(Λ'`¦4@D/ + ,>,ZS)"20ҨX'&M" ܜ~3 }!.h Oca'yB#x$CWy{%M//=+G ٺGWne{J qqAX]2VwFvb E997%3ˤ1#0B ~kuaUUB>GdžϸxFa҄Y&h3rF@7~W _ky$gQݕ1Nb(͊~d{ޮRכa{7v[x۟AnM O>qLȟ3R^bšۂh(,~o(ڢbk/9 2tJ! ˋPΗ6pSJvlj8}JNYI\Wjм!;A>E"֐g0-BKBH_T2@h]TsQ K1_G+=_ARl +(ϒy VOC9tXQ *iH 9=fNd-$IjښաoVtÝBNlu=}xMv~buf3"Vڜ_wT[qW 9hfaVh">8gRH͡ IJK6V-X_u`g>0sX_u`g>(3)l4/6OwQ h]?=uXYH[axsGyfFL U]~Q` wA:WIiꝒ"b ~jVt Ֆ66=1!!ĝ|0 z͘7/ ؎eT:4X"iK[{0]__#&ݔyyp֯k?YǃЫsh̨uc.޹Gl{iҠE}uET@d>&V*qʘN^Sh0TD)GfCelQŋ h7V x\ 7`IoT {JD' QЖ=빧_@WΎsܢYh$lpw'Hp ;Wu|&̅ܰݵS/4kw' 'WfV߲J_x[ݛ<i_#%DuF Xc6>Re?zمGW~ o2o)S&l4`:mEA~pTʓ}w@)n>Ud&qSMח[ F~O ꆱk@,[Dja. h_xo1z ~O),t1QLCT۱Χ~ K$e*R@J`Yfj~:4yo+- F/^ IzB%e(G6N!43W ?7pVQWzyҜ#9 U_6{o^u5n8hG;7f=Vu8I738K!+ @O@qz3@viCW߽.Qߖ|CEN9rqp4:;+Ө{~eɆbIXԖ3he4HE^-L0{[ oT=wgSRZ+¤MO|ƿ{wTsoj:of [uq, aX23J'U?ΰ-"4滟㏫bb+`W&XqO^M-;qשʘa/vu͸0UεJ1K\r;YH,=1R|}~=sh:t6RW (+֙P[eƝ4*.h / ekbN"e=9W UĪT!}v;ՏNj_*()Q xL'rBiU y̗H=`]jr۹W&SP9q],ZƨcF-J$*KcӐĜ|m'%u᫖M.]5-L])c w:?,Eqt޵-W!-eR\Pq@Bs!"IþR`/6W1Œb2-Nv6")du'TPU(&$Xy]7>IENDB`glances-3.4.0.3/docs/_static/reddit.png0000644000175000017500000001433214432156570017550 0ustar epsilonepsilonPNG  IHDR?1IDATxxTEy4QA!v?, +@)?QDTR(+;X*:HϜMD$w{ĸ.w̙3(6, <&؏,on``_x;A-mh(Z5VKKԤ~Ի.+O>x]K-U>JIܦ2)Җꔕ!@/5~O$r.ZkFjxG@.SY2YLLr/Sh-I?ͥN%3Tf []>GvI ȠnA& #yXJM&3& @F~+‰ )6\ֿ.]ӱݴnOи^4;}֓&ChWvڹN߫%{'N}8[ĕm,3OQ]Au3EI͞P݃ih;vNW m^G!41UlCP뫨싡U K &lZ~;H[1֙w[ ƿ$jڮ_!$ 5twEf\iprsH'-{3Zs| <m\ÍSM57>c0J(Q"Q¹nt`9  Su+jF=jiEpdBqlW?{$nXAI55sÇn\OdB{6iJ6LxH$j/9~j.I' ?ds 8Aĝn~EG^k%MzFM3s4y&ޟH-+<pNzm(N:qW |֓z|-ͧm2mcjL5Иz,=}YND|M]%&쑶tt? L?\YxV5{hSYrZJ8Geu{wuI`vF͟YKstQX)]VU{6;bgT.﨏 xƜip_)8s(S(-E[@G c8;{X>Uj喤^b([ѥ Z2Z<}ًٟ9Cx:%TU0zZ?Ousl@K M6>%($)G֓Y/,[`]Xٔ[|0mÊ[MnG?lѮtpΟ>BJnlYEj4#IJ!#odӆ<_v=z#ƿ8޵FnmHt˳h:| {JM~h@ +,}u!:w7.ɦ2)\kl5 u|jl kƄͣ:wSDY>C-r%٫8FuSI~!WY]<-kvRmd̏:#oy(4=N{6ә#~|mᆭUW5;y;_;s#5:RQ.S9랇P._ 1=5}tf49֡4<$ՠTq%*?}fPV^ӽCeg/ʊb*cT'8;RԎ4 &9cp3EܖI/ q0Qu.|Q,=]Cc)nGCXvko)+f=¦簾*{GSsZWeXVQԢR~{ ۳WM/l~C<"*f谇ʵ߮q:펦 ~r8[+=&+ۿ(=w0W~jáb[QlI6h8۲9*> eׯHh^v]u6Zecyt:?JB^zNe (,{%rikƏnizѵ#nr,.7 8(fпCtO;~ds3T6n`.e9J=BkN.{|JEU4ZڒdQio>u`pդP佮GXd,7*Lw)߷o to־Kq @ DD*DRwO߼(j]u t+~3tx'E㮧.A~9N~#C-Inf;hXbW$]7.%n!.&5oqi5{1nh+&nXd-֕nth+y2s  -&4~WzO*!hLOWMRTK^{?i 3봊wXfq8P\P^5sԄg@xs۹v^׫`ONT@qzx,C7xqG\ؼ AKI>mm.ClMv3^.TcSvTq(: S6aJIp 6y /@Cy.c{$%m edzuM`怾Ep􀭘^YglWxS#.wˆ ke- eҀue;oځ\kk.`~Yw]b?z$;xQ&kL @*Dީ}>P:bxۍvR &)ЮS'؛[Wvb͎su-8şP JNdb CLEM&ǹū*ךe;{HEaxaƿ$$W$}[nCb޲ -aFi*>tE!7|o.)a|9Mg}ki.1Sv/"ӵ`#:8=.dD'zjYLvOp~F ?^u秩㆞a1lкiZ8FkNrE'LMfN zC5yB}rܩƯ#w_3Kfz؉hAoE:14+{Ֆ)n=j~mK'No4y\!l;qKŞM.CCnJ8Ԝwv+O8rE7#'ky`2͙ʒWx>ZX׽Tkj<.ZB_#~LOމm~.YgKKVeg. I4%>L]{M *.'Bh?#BaMZD')E˅^$,\8AV,ջ/,*Ҁ4cD#HXR!dYn_M'oPR0?wWf=WB Z5#ac1T^8pgߎkAmY6١,R$JF9b?ts?kbݶ~y$6tjɿe"ӪNf<0rV!~^k',(y7 P1̉orGY(gx~3ü,vX=Cq$Ƀpo4~TB>$'fͧ( Zw]J8Mdզg GֽWk5 {.a+trfu ⛅5[ESj]@m[M⾿h +J+f K;e'.Y1pDZ>4mZ&ԒoФZ҉ CBqJIOi(z.5(o%?E]/zrԱ:}ч6ˤ#Idq@)駏 }DSW#YV6JQXI<J;(V aGueqWIԫERDV}W%-[M3ׯtXQsl<@u`&q ~H~Q@v/+8f]O<`(c7\x D0,ȷȺA _"CF{WRe5W%@>2MM?yӅS4o; 4(+[qĞהjMX  5FtS.fv{56-WD;@3p^#|,>JJGKR}ӫ孧7,RUeN-Uu9}R"&3b(i9`x#U9D2{6t'LM?NMFc˛$|rgeeQ 5y:Pib_KڸD>"+KgK* ==`pUYG }%ɬnyHMhYE~IjXQ^/)-x(y~kIENDB`glances-3.4.0.3/docs/_static/processlist-wide.png0000644000175000017500000067411114432156570021604 0ustar epsilonepsilonPNG  IHDREm sBITOtEXtSoftwareShutterc IDATx}w`նZsNzM&EP t\ ^+E*`"!Jr3s{΋ɜ={vY~a8?h]'r>G"{ii *VÍ~}C"""M44_zW}6_dnD܈s7O36>2T#f _"|Ȍq,%@Dyx] 䳒ۭٟ36ˑi]gGڂ!+( ̡.{H  ȵ/M%\x yxhs$x_QԹDߙqFًZ0b\249( 9\)7rviGOB 2׵")gs[x!ImQ,_-2to _@ (Ņ ū7&"σ }(9uhiDѺ'.ws:xTAD+zgH GN&21#D {Poaf]`u vPj|P!xJ*4B$4k4jD_څBZ' jg%_ulZC@E 1Ju`!@"B`QtLjL~fXL@r"qT~S hP8XP2J6I3sb1OBĕ7G~iZuw2v%̰3l.wD.0عB zV(< z3Hd#6kYy.ֆ&c1"@0;qxu$  cX9"1KEA %rIa1jG pQb4׊s`? A|\XJ-}`e'/U\r}y& ! yA(gĸ-(BeIJ@KܢX^Ù消W5E Κ@jTDUwMl&HE êEj$FGe~S͏ijj<]ii&ktR_U"/o vݛRFw`݋l?wA4)7"3z} m}6L-dXYZBFց,b/>D#QތU.RCOR.}$3^>yO)1H &MዯP4Ip1LΒI9 L%ZM) "Ex zҕENDb`Cr΅x/kNo6rϪc[u.鐡L4B}77iP0$ .Y.Z_ǘw8{˿ѹLQ\v8cۂbߜ:{oN$wq칣KtcVMUOTUPcN_/3jT"FQ*XW'+~;cN$Ż}՛Vn^yڴu7KRӭOΜw Xyf_aժKުFjn_jW\r底+WiDZ&'Ynu˾_j[8oj*TnMT.ws4դis.uA(:Ž@G,qac-3/Ե۟e9], V<$PP5q[!|tS7f 0TS#>5ik֭swNп'k֘??S?†.zewj?gDtlh%c/?}S?ȒnP^>ywGJŦb:tCzn~G}97]z]ɶD?ڕ+>~>B UW4iz9D뾄t1S 0 o.W6 t,0be(m;:c"4Oe qxf9z}VOgؓu`#nL z)2LkCAଯa4}Gc#H!6GrVMRC{0hܯ Xx3^T9C7_? |! 꿴>!r| *i?w>rUU.GՄy?.}@?2 V~`c,2*ėj|Gyg=)ϠߚmkI{{ң)jχ&iΒ&V9%[ӏ2%빞8Q֊K !f/ j|-񡍱}* v n1`6+h]`&wەRW41v}Ҍnޗuk+[&bܳyVmz±vR=RKMo P|m ܜ{5r>T|NSVy<y{fGݬRk cd'~>w4mMy;%cq̅Q Ru|!sND2w,;?:'^v^e( ᓱ!V^ {蚚Dbm9zv^DŦGLLjw~jV_w﹥P Ϗ_N ^"@P"l1|3[i=mVVS5(с#k](d+ @RTJ0r#F~u@nPNu]Z^:ϵLx}E.o|&Pn.ӣO@{;}ݦb]YzO^[kqFu|׳Gxtak^5C>Ѫ|\:o}y@Hz߿=ٺB/Ǎ,}#&:1&]~σՊ(; 'f^_qFuWaa:-'Ƿד*@=G Qvyia?YWCkVBx3'O,P_Gdtd/,g~ؓ_4<7m)[8߰_>7xWE2g:ū6c¸vdRsk|}j_ߊ=c:ZrZ^I]@ܕ[{)kң>ғ-V?W~\Ed͚zM;4QE<䷋$rK44U2ݗ?Z~Z W7{nzDFyӿ^ %o'|IөL׹s߷hO6wse/}zNPv3^ѣES|iOuxO3܇}m/[e\>ő[+qנWv{蹭 ''"%3GMmPךE-{"JJC=bsoN\ėl6g턊?0s~SV|_"ʡ%cԼEOuٶ粳]D[q|r a xr@y(bF28|"vFX>AEy^.Ä>@Wzʂst]Z2b"! bزFŚ_ _L] em^:LDPm ziof ZΓu}Z U^~ā5Ca5%7y]߇@IiPSHf%(nnX"cJ;"-uQ4A`s@Ρ.h٤by7tU(Tm\|.gw5{t/پ}_y Ctd{8u@-ڽ6o5ڥ+VVd-mtMe Mgaa8Ly?gi}_MՈvL۰_USzɉmX3ZjeDa㴌YoJL t;r߸x=ڹc׾y @zmzOˍ|] v&#l\%y?=nX_ x챾_lܻLA#SlҪu%"iڶifV1VI|~}, Lzɢ_yiztxY{.M>dк{g xoyv35Sl$տũC۵ۨU?o۲UV8`rSF6=^>Z0S0AhWG̿ttLiұDhdT oΨh֔οjeu&ޖ@GnڪM?{|*yk<=nh}3<Ό'@( F>7dϨ%:tJ.;H)k* 77eyw j׿AA5OO候bE_I;kn?=D(ɅfԵkמS+bv-9X t;l \Ul ƌh_PSUa[4~dNcF([xt9a'Z p8+J_۽k@?Wmǔ;w3eUN|aL噏8 D[vWG&fL/mol~6eg5lF{ f%DBKk`~GĬ.in!;.=A)ghRdDBncx.'0F2 0<</+8nˮ%5Ja1( *ah@wۃu_lߠP&>V&;w>R7bKfn!3׬^:sXYϿ6Cj,ɹed k?pɮCV̞{8Zbq<~s|*EץkzAĔ;m~ci˶mQ&np)3W8qxFA@Ѝ}[v=o׳oL\pl'փ|;Oڽ 7xk^B-=-mᆳ_;~N-S$1O_y}/*z&C/ ) )XõO|=ubo>X/ϙvI?g{k^& dI9c۵,Oxnbd/>yCfLXqkFE"'/:V]rqRC&Rkm;r5sߟ7۸i>EO;/sx}("VM@WC?o'nqk۪l"w̢oP['>eOێ:{)e#DO[`вVL5>#|{SmhS2ސfrg D]]F jqίb[?@ޯJO>Ts;}#CG0&33 V6rPխ83oͧ+ 75.x<в/Z, )(!dN+(~%fW41EQ38̆M'O9nP;e-[ݴJVomP&{*iшK@/4Ϳ}qk k@3ڵ W)!9:PN\B\bXv&m$4 W8BTDTU/YEE49 q*9f"~"B{$i_u{uYB_{mB uҜ/;sinm/YԵ(h$ ھփ տ: +p^[νI&r)e9ݳ{605p3u%IWZ^> [vm_짍@>׾q5s;OGQfx͊K}}-##Rl-))z-JD#TkQSPIːb;I|*~1 \ң py̔Z]H˛ }(qD qNQ IDAT^A]-?[;Y?l%yQu !DON; ܵm g SZ]J.[Х?GIg#ggU9 s:;xVJpժTuu*baOƄ\VKl9 5v`9_'Ջ/F (r9 .;H(kɒ\x(W .tpXUt8"21 'ny. H+_fO O4i&##=򍻱!2r+$\L1wEz$RI56N(oή_ 7'!ziwSWǼ)~S 2!;n4b5kwS_#CBgFaJ>h6uB[F4]':U;dl$Ю^3d8kǷkK-qeuvzɷz",Ҵgeϖn=OV%P6q˰oIM7QJ =Ռ+FYd t"Wsu-,b#IQSM#MUU#|~$5 ݗ4VͶ Yk'oMBZQDE,T:x5gUgU~HT`-=7=h*$ I(Yr34c|rbNTJJ7^/t+a(ᐎcYWjg$*VhJ,IONG -T \ɆpRJ eĂ&EI Z6aIe' |; DLФqO;` sJԴ9]-z~fLyklhќ&# i.Td҈ d~.BŊ1&Jddux!A\ Ԝ(%ơtUsOzn)mvxvd /$\F$?PϮ;MՉ,~UÐ.|J%pZeJ,AVK b1$8HD/][y(RΛ)؇9vɨpth2G([7*% {kʑ;{wJ/{%*WZBxL,Vzj #l2ɉPS͚WNPw,U<-&/끵`K9\)C c)U^XqJj5 5z-nS^'x[ʾ ! uo*[x&mo{aoU( \;LfT(Z@ްH*_\7˿ *Eͼ@l&IfJRժT@<&TMe ƱQUTͶݢxeEV3J-ʛ 4[+ZLU54{R%o֟2OJ8Di֏u^zW*eTyW!#{Iܴ(-i;K!\Z$zc-ȱRo-W]E̗||gfM+'R~%Xxm~yފڅ+ߥWnN ;[k7Jl[+Y.Ow@ZcJYha|?T19\=L:6TH|5~aE  xoì?擷 xp)usu† <ά>xGdfzO KU3ݪ1aoRrj7m B|"w5" &vgF6pRJ^Ϸʛ\8+ ݢZٲom}=8C_t[B=ljy.nʝoٻyղ*ac#.&Ň%@Pwbb9\/x!rH_/arJ%y߁KMVA+|#5=΂$HNM4\Y$(M_&>q}Kڣ&g=N[.nU#5=Ǝ3]u(-4噔6~a嘷W.>ûkvW;ʆ!"SCT;: %۾ۖP;txۮ`:7+k. {}q/"Qj}|"/eçߙ}ܴӽY]~;b(gߴA#_;| sv~#Q̯5_Gc~:+u?1RɽE.ZsJz&O<<3jcND)W58O;L ӎDEZ!S]Rsxʇ޿z"Df| diW?К5A/п?"W㻳G8! ddEpI/~@ߚUwftО;Zr rjpOfW gn;͕#`D4abRć~S}pdV_vOzq°O~2:&0)Ws}<Z,''HF(h,c@vOzq°aO~2|}8vy_~|#/E2me(zn#/}vFzwnxE6規Vyyi2.^v8Җ_?Wf.]= CE8W.k W5NJ/3+aȳ&~S .̟'V2S'ۨoծ0r#5;cgu1{.IWYƎ݉B,paۜ_9ݲe-iZc"NZcᢂ.#',[ogT9.a7Ve*e/+ov|DLd? ܚgחхBm&BxDfh̸kt)ٱ\c(=o͗8kC? O0Ds!$B!{cf,`3$}cA(7$/ 6Q3W̥oc2PI^KX9iύ"gZm'˾!n)=ץ+/3*5 0g&3l_DFWY 0Υ&9$9Ǿ5JgozêMNJomqr6ޮ뵉 aJ/s2rܕC^_RbeATՍ'mKEuᥱ/ް"Qxjp_Mo 'sFzim砠Wx;c=q$3ò[+\Ws;a"BPovDlCtQN 14_YW&\0e%|xk ¿J8`١R؉~Jýۄ_iG> IF!?DW98qq= J~p>'/98qF`$4HkwjrbSa`j2DGxC1\{2L9Dr \\`#!B#cy䵥迈C/wJ< 1 r}WzL(h1@V֢) 7CRzID`O )@\7F5`I0AzC6؁<č_f :P9#?|pϕÉay`ʂ`+{^>xx\Ȣ t;zԎCzc  (l0$SC>Xf z I&hd "&'&`:-]25ؼbV]=͒T NX:ڄͻ"`I8xɢ^I%U(K.rm?нJV-cZACב;Jb1~5lWENdĪƯ>E7:ɁJCеLBOu=b97>\Ga .cSZ9~H`8hDz)PfWa( :!VpD* ׃h M3SH?tFeXD>:L_QH[)#.I5Br0M5YJlm6W2R͋p[uBXb7o60Q'D>h[f\B >sxWz]Đ=\r03EK<' oL=z,RrMuYQ:!$†)!|D'+|_j:cfuPBDdgUWJ}/g5Y"$W6(p9FpfN3Z-&r=ڋ*q=넩Q:kF&l]ܣ猍%{2RQ 86h we5[2 [" RrWt#Rt (9)3ZzfFCƲHch}恛%rVq=ёaP^(+1( Nu䄠m dV2(o^&wJAM$"Aɇ"ara"yybn'Ws}Rn%e˔U rdCtpz5)l_lQlΤe$򼁝ÁE<|² UADO?G(튲>Rdl ՋETh29nbXd"?'<Wæ|宾LE>F.]˲ &RB&)MF$2|9'L  5H&V6uI>k  _[-1@xx M'J'OiLr ԅ G@!v3EeYDEi=o\E366,H4a*׬bbԐ#i$/4$7Ʀ[ f= 0fy-]ےe Hw`2ɺdBdL~Ū;W5/$QDQq$ 2=p86}i͜8F$XX||F9hrbPлePsW*A> bfx6 &w& "UTU#G>QERoUJь9L ;†'De@z8ٚ'a/LN1]1nG#<&ec ;/] T䃸8Nj{IRT=APo rȟ9?Q΢!,EHQ$ AL?((BJ(wVp{xv8+3?zQ@yt̵͒:ntv_=Z Ш0 BVidX< ^'#G H H31N؆r|2a?IGyɅf9;* WJ8 g8wIauG.+?iF!4Mrqj 5r &~3jԳ( CT[@=uAl{EGz%t֓5/9%Ӝe(jɢ=~O̅qjz`l?sxDd1,'w@B r\nGvLObSa.mk1e[qGO7Qr|Nzc DED1Rg ,D}^[åk=+젘R JEJ^BLE%#K{=FNk+Zu60L;E%w  zиޓnjVcC~Mq+_?r뤝Zrz[ bc滈Г]M-Y yd }rSK%E {`kJ(2|6*9sP983s\‘HqE0Q$g5|٨ժR +k9""tDt#\˜ π<֒Pes)D& i299h|TIEtך&j)Aϙyj0846 "+%X}r%F ;!E$( y(g_\! m_aZcMbu#COW5%b `2&ķ|.E#, :i r [֗gBp(`KWVE{$Aa\8@4uHri$$|vfva$20 q*|- ;X?Q Rc=,eh((+γ's#HXEPx'x^g%TD/le2M*V qf WR~%<"P1 /[bfmHE. H^QDɿ(08 eî_;dQ^#}Ű<Ƹю_C::=: WX/+_XLyx/pĨX([B;Y/3:C,$p*ZW$=h@jz c`!ȦșX-pڏ|hCF1"DIhr <9g tG(Y,^%|Q{祉g{BΠLUT.[]Q"7_$;&! kي}\] WzlD9L"4mD7wxu3Նrt +x[6U,ળ$CYR7 faPgH JE=L&##.p6.+cJAfR~*ne,2 aϝ2ޑQg#../h0%?0\&/ڃ1Q)V.X1nR$c{uHϦidۃñ!S'WSƳK'i%UGYj+eos.0պZG\XA^K^Xh6 78@0DDE==Շ\_ws- ; v̕҈I~7%&~h8 {@zIKf[:/8_VlZ /X2<^/EBBQwE1blS;뭋0f/9dٸɋ$#O PD7ыLFޑRNiK cMǍLi8F4@>\v3QpZDHVB ޫ4Q?XN&O^^Ty9Ȭ28nZ6}LKPN@8aBǖG^mtLJ]ܝ9oྙe)1שc"k 4ok1_ɋ9A#be#]q騅̻ڔv=2/#P2">̔Ҝ.ZH׹bX:)^̹\~yKX.كy`;\s$VQz~y)7ecFK 2IFx/;5 jv< $XuS#Qf:|V,ShZc6ܕ3~C$e_9~t$z%MӢѨCg?sz3Įy,հ@ײGaEb20cuvQaOMQ: 0yY!B6,Ux G @r$&> p~ȧJC"َQd%B`CP풘$8:S<u8xH ,)qEu߃^DQ&%>m/_9a'zƹ YY.xvگGu,Ht3/((]ޤjy g6ԩB+%#! oPGnܺvqrq@mܶnCJᶳoܺnu۸uƭ/q/ܸu^*}kO}ac-Pėh!5}~Xs0]oغv [nغvW +0}ڍϦ׫qQ7l]iE-/YU4 ~3W" Rޙ֣OFm{_ݰuŲW"(H3D'nR6lIݰ%uտ.ۿI0`fS׭ߒjne!̣3֬K[.mGhU2sx d5̣ۈ6֩Rѓf/ۼf]oK7m8Pjڴ5F,k?=FEN5qh W]vVbi7OHT-hT-+gt,POYV!_]Q5T4}+>~Kl"iZ4jTwUmI4MUh4AUrh %賵7^qMϺ/ o5Vٸzk6^7EA 1{ͦ ĕ uo/­LMݴ:uG틠QÙ7bZcYf4IUͩ6/5Sd$(ዴuiRoz6*8h,^9GŰp%G[R7~ٲ~sMGN_9u}ڒ٣;VOHU>o͝54˾tT9k>V1: `%m5ǵ[n\v~_s.[̭Y9ٱE{Iꇳ@L;<(`3-@J+9'v!a p L',\bZo9rN>ռw33Pe&@a,tvmHDeъq#&Ą\*ӲP\+8%4#bJml"FLP8m/~;BZ%-_mywSk*X֚m|yStcͥ&RcǴ=6ɷ >є>r-MP|6-Mk:MwMzJ[b(۲up7㉻W&?0i3m|eU.Ǒ#Jb69zQGU Ģu8q_Z$m=So}aIGlͺ|28ծsझ\G_06y ?Sc|t{Д}W.@.e'9cw-_MDЧ– Iw¾rzeФ}}Җ7{ʛ|˫ O0b=npikN;UZߝV/,;1]#O:O:~o߫tJ#@ΐstuAwQr;y߸1g:_:<ع#L'`bThX9hQΙݕ%D+eXMr*|;e iZ柣7  M2z{V։ U TDC& \wFT۾kKҸiEKלa#7 !D3[:.]6gT_4h m#zΛ\󕏆&zKOfhFMq6;%#j[ `%7NehtHn]2yoyáIGnӟ \󙉯޵gsCw5 ksc*Z)sGTe! bǡKio7W?Ķ'/&;Ժ 2HgUn)? (-:)=i3GzsG" 5~Ywe{ύs`&/VT(z?@ ΋ GK=ӣr\t{, H52P~ȡW0PlKVf %s`k l(~zPX(0b)Q) w? @hKN.LE؎EQbI& 6};B?dwʼn HCqwE[{Xww(Rܝ$`q(qf뻡}~m޽3̙3<9P`vljdX(Pe~pm`?:lO%h^C ^KXKI8x|*Af hck|L\Ƒh2^<#zt;z$2k B&.e,*?7x<@FӮ *"$)PYZ|,k L+m.tY02->@V#DTg]jh7 @E ;>MN= $~@"է.@*H]\R䷾+q UAWUebߧվvt0J8jmMN;'}$ݥ._An2$WARFOl,yUx87Eas '59FSJ(w=G{ H.-#@_0HWH>q'5$| (u~SkB%d%X'ėQebK zЎ7_0.mƘJ&Q51cK ӿvs4cƴn=~MIR@RFOl"y]ihBPOOV.xBÆP znаw74C7@nРwwB@~rڹg{:Mx_ĈB#cHxVݰg9Q&2s8!wjag]*)RiںL`""2F !c\UU @/0P),I¹OWGB KV4mU_&0KaO; 2UNI]Nzt4 LA\XDRBZPz(ޛHn$Q 㱂0bt1AXcժL9?1%A=mHcs ު&Y?{av4wU ns8N<wnӔQfu5MƒjV}ߖsiC,+3U+nss=jqRg'O~[F c 9*{un`;}.Ƽ Y>2nQƴf`=eq3:6t{-?0)1<ͫGw H NJM'n>OZ8iZaߟK 7"D^3h]|ȋ8̳a߾VAi?IӇAȺ1|m xUD Zh0`*Ͷ_]:׹vhqْƜUĒUzp_gO|J)d)#of(_7M/VgECO}ƈȤ; u_h*@n#@!u""cb]^s臄4lp[ \f'APt~ws'Ǎ_U,JK]<8fQsNWB‘;u$:~oFK…g0iIS55 L5vfsQ{sw/搯tuwN1=),Иe#@ 5cØG $ \؜~Rnlز5@UާǗ,^%FZtaK \-Z582%Ŋ*?-8◦i{@ڰ3zwqό$[?ت胭%Qq1]TmNWc޾xzt@]|z c9⫴KEC4nݩ}v&?)`:52&az2__keZ8;d׊j=f_D o >3 S_Y2IVڶiy^ 7N^5zUZ2b} &#֣.0E)aDDcdZIDF8WeˤJ:l[1$Ċ+KF>kܲcm:hږ~7z `<!$*@4yM*]uZ3ѹ9pdW7w\"?Jh;7 o̸jzU"pey{e#Qt ޒ F_raʉ5 Ń!< Hn+j4pn\Gp1Ŕ&J3* }:%yES2V%~rjk?}~~({s@P*?:LWI4%|*RT BPJʑxR@(lĞl, $^8X+˕`!خ~@+>hT2`R(v[wQ{xdE9 ~/MWe5i+g9̈́;OF6 ۀyx`bXhDz]I0'DOC(2"e!l^"1.ܤ|e_ōB%ɋFzTbPiaCbPWi@MVwB?\l_g5O4Yt>;m-J˖`qrwbxj d[ |zp_?h"ꝷS@ @nb:!ȏX0UEg׬o.NKNO^g_Nen_&栶ݪ䵆vZ㇆kZv;!37=05E1b`uƕ+K2rJFg%C (,VS"0&TDF=R]N| gmkzc7Ed9<6tֹ;1w¹{ 1 Z1b9" +ccR匆Mko$C/.up\MV&WLMS$ų6^9[9hdC u 6x0vLz˃m7ea|M#),7eR}K%WV|_ye #YBVP$~VhIg_I۠魲O\Nϊw{&~ЮK֝z?dMSSW:2]h s-Fh&1Ak׹eo:ǮmV.7peIܾMN?dOZo q=g9JLQ`WO\~R2\1hcj@; )gB,V+Fujd Y@r-PO#*`5BL 0␩)"T͏@Pv"lGD`n?Nd qc6 jMFb` 0̫bCQ3l}L|@1022~p@k4@&Ge1]KhٿEMjxk#KWXع?&V|`E'}mE>р.,Ey34_͇ !:/ "|$Oxe}O=_kB?*-s> ̯ۣU^JCUglOnWk_Dz1(o>] 3lpeNV HkJ .6fYaXa;a*.4=)!)KNoRhj=z`]i cT%ZB]ZRE= \YY"x`+`luL)JlPu9PgT#+8mFZ+Qf<]=uzH4n M<h*ܵР}u&.MIO.YiN9MPqtj5˳%BYˈpoҲU]rBs5\ZW#6j*G wiU.MXҠwl o&(*> }~߷w鿶q-;zvF^aY4p 1F>.n˒?z4i7f<'W"0(sevV_#ʌT ya7%Bȶ~r5[O7}@.ve) t ^lAm7OfZ]8oHs/j x`ܘ_Mqת? dh|?GИHi8t_ I b~z˹Q &̮96n/Xuu,f%.˄M>ېYnD-zb c1يG>yѴ,Fܬ;"b :f.$:is,lnxcsnQsVN %)w,Uƈグ UG vwr69WFWO `Ҧ/[ו '{MYȺikPˢw-b烧BI+*02JHtIW#)m]]IGʶÜ3DQ“ˏ$)h'S|"Ġ7,R`$b+}c8g"k?{"#ܔ,+Zm:lmlIt&@@BlxiZ5?oD,,yYH?Aq-hdX3a ub'wQd0R\:1եd"`Osb92Jj*3⎝ӎŢ˩7j6Qbm=')Fdҧ˫iV|:xZ#X9Malc7:SQM\2=W0Ů46#Xf;\[5b"!M+?S(8*0B4Fd0L9SoPF$=@yIcft]P5lYwy`,^0s<9 `6'Nc J&2n;׿1iĬfZ{1LŠ*2:0Sѝ&c0ƈ)~;LZ r kV27Gc}y$gf0u!Iq ?b~c^M;mİ%s.jbc8gvc~ \x2Yhh6a_3RfIڒ0aeLЦ=x3C>S!qvR(o` aR K|lc2g;zγA晖TdD5}q/Sf@T- lA 焍X=[Û9hS sOw̲.L<`Q 1 *o%V,*l3~C5i*pu12a1\Desܹ3d ۾tB,-8_,尌voqj@t?#nM̶Jٽձ30Ъղ_[ՍY;'1:`ޔ6wo[%Yh0bAa8/6eRDə\&3^9k(T eʣq5iZ{9UM;UܡBHĵpM9-ÌV9DYM;U3Ʈ">TWniP: y0O9ۏuW:^lc =˿6{iw bgFd νc\LK5ێYAɥHj$i6jL,qEC.5Mެ"s90}֓vOq`۬kjjp0ְ𨫿6Ӱɋ!QcH\oKC!jY8E d6.d抢,b %nM۶~n'"K=aciK;l{}mnc1MlE/N񓋈}qO`=+y%͖ޖ]onHh:{!e||نf"^;"9gse6y) j?lo}k֕a 960ߛY4ݗoCn[YlYӸ1`Inˏ~Ήa¥D0;|uj]^G39H=e "B^{Pѐ7 ODpӰw!oZ&^z.9oMuqR:ʡ%ݜ-r{vivw!96w]N9tе9:HNl0x幻8V"!tNIQa 䊩填ء(%ŕ)*4aPXi8j`cc1J=]Uح+rwٟ=WϻЮacsɹۥ*Pu-?r~b,(8eȫGVn`EZBUīЗXIϱḿC"NwJaNӘ5NfMeq+ ~~.bIi/r)1{#q7wEB0]VF$rz1Ƥb4w;CWЦ(%eXǀK mLrsRC1_^|" O4_(@7kJUzdQ^.oסV>9-LZF(zsrC7KEv[wc'i88Wô!ZezLt92@|QW" 5 0$tW l[f4gšOcR<$X $c1Wc@ภ1B(',L.U٨`U0ZzJ"Q2.ʝ **G״DJug+y }@Xd}ٻhZ?ڶawQcJiQsaJᙇ^DL.:nf"&֦l>*ΰ;b`,Ln:]&l4)Nߑ4Wql-ַvÚ>_++ $ 36r8Ww}]3^y¶MC ,8IQ~![Uk#*(K:|7U~|P3e$9ؕї*#3 s\8"]bI7->NP'ǃ CЮfinD]wd#<]Hx[G5FXqWGxq`5WC/Lo8v]fhHxԋqyt*$@0˻kv˨W7v;&*4<*4`jDU`;ᏋBBÃYQzwQ/o\#mbKxy⟣y$kw>V64" bM۟}ڙ˯Fs? ~|y4Q»o ۵GEDE^2V:|NCB]P:~9v/<:u_}}k|=b b|ſF7 ^zuOϐ[~j[bƋ_GE\?vJ-uXdGqyk3J:?zޛW7 '6$NFykѽ7GkB܌V| I0,2ɕmcjW2z?Uċ'tP, Z[RS,sS%YI[,FXYm5r򮐆vgF_gC\W.kft3v,ֽ{ɮM3'ŻX*c_!f`@J UocJ7*LqbbsF )79UۮCa]侍-kXXRoO5/oPQ 2@ip>)H2*[B+HST0h0jƒGBFI!_ LڽCE\}sjسkJ/vDfH¡"ڟF5/GqAX:`oK#q:U&!bwٞM3bOKh"zzS홼.ih/ Ⱦ0Nn8w1Ib3|/_.7B4xlӵ=}/ꇊ_vy(6En_>c*"@y{VI<4ë>.ٯ'fS:g>b؄! ]Ղj3䬮] \Ot[eUcFt~Z,ӵ;|ϾKhIX:po?ߗP< (ܶ@JA^<Ҿo#fX&?3v2`? e>;LX֩}k&>%x" ym#}Z}>#M'gW=N pz#pՆq8N8s[E}t@6n=>y؈a3>W: Ϣ.o"^ — ~ܮ[6'#G#{VeW2P{OqYDfABy.k?D4 7Du  \葶 :j*@X4 jNmP[R&L2Ƅv?NhuwƵs Mqmd@'$\mOkW[ vre x;iJ?MP@H,3Ěݶl鬟1kɮbbs:=9@W UsKFuBp=&_oZ|B4|𫰐RHů7->)wA}!NrY*"I$>E^9<E1~>W|WF޻~gs sR.9~ͧb-|[~RUE滠V1ANe$JҦ#{Z߷Oygc܄yVm`Z!YCy¶އO+k;9w9[@ۍpcr(ݺ!DM@r{k(S>u!vOO{쭡 G40^)UɏI5īXjYa1#}%b5Y5Avc;{pbo`)RUG}:("h?ߥd}~qa*@5N&zf y]+7ZmFWo;:Lvp5;IIO%=_8s]nF;p|-}g贯C=*BxIij ҭǯdB㸴3 h8rcnl>~[9&aO5YP7, ;ǵ,AE&Tʞ1$M4؊ޗr˟ G k^tgePuh۶/>l4,L7,(SQ[S} x&:?}մdagJ|6Y+OuտqJAt\gyBK UZ KgO wCu{5/|3\whқ=LFܵ>mŠқ=LFܹ!m򀜊.߶A i8s5Z*`!p1$skZ4] .VS\%&OҺ~M+ˑ-ljŹx2-k(~UROjwrum/VkRY*1scD+)*VegA0Siw7ViM^%mRz;eYl(UI5k66eMgOT3N&Z^=$?vSi@L1Ɉ2jD9 K24IcD}KL.*%caz%HO*Dp¦' (AU~bNQYT-d@5\].56OҦ~M[BUXPR*RAl)84m(t:p5j'O<05i* \U{YuJe)"j1yk i@{̲{53D1I?~VUdIf9F:k+4}p%GT=ػ"d~b%HJJӔ~B\,05u^ K{_ 7رiCm3ACI^S:}PKxUAj> P H ̚7P`iVAyq}c'Av`NrrZ+^jF?1̭MIԻ,e5v:Ht~ꙵo?=N=ϴgm;젌*"}TyTmD+ɚVK~ ^U*7!  P% ~ld+' t?ys>Wh ۊ KEAnS/"˩> EPyfEdv`纍+λΫ{-5͚C,_Rf^RraѩWC0W ō7;M>sJ9A$cQ2xǷwagw?^˶8W_av)k BRZo `Ѫ5jtorwbxlI93۰HbL.r(FkYvedrw˶bxi#Yu.?GW: vG4wUrrOǠKj#?9c $JM J{v3s`x<>G K2痬=s}6?$PeՈ*T2އ1%c@fYn\L;?B7N g e5Iߣc^%cR43tn(,d IDATRf(~m?J m8#8b601 [8uǔa i΋% n،{M.F<=-6Qʂ幥 RF:-Qϋ'1Z<dv S,Z] %XB6hFk~`]ab+ي9?F<]#bX4}kpJҲa5D)`MS(dtU ^Vk{/]jy=Ҿm> My+YZM:& Aj>WMUrJ^l'U|.s&ndbZniyԞ=ҁҰcGKVD(4jB'~B1$ݩb`A4cލiP'SABFQ3Zg_(B# u?SK(SS/A*2s_]q56 ja\xlHʎ byPZQ Y5u5+N+=|jW6F}nQԖMF uʸ0IIFQ-ʺٰ ^X(wr o&$b^yK rP޺"ꁓ0 ܭSd}ĩ(Pmp7NNrYkK9"cMry#$1m0l7};FdlU@, qa>^ [ In# |# 29G/r1"gl1ZjѱT`‰bK)lh1+Ȳ2#{j,Ah۬,/ UHl=%Ҫ܄l[KVN^v`^tg}m XSf}Dr qQXߤZ9H0m[xY}H(&RԟW^0vAn|)Der]˒IrcXlkʑ,i!;9R?#398WCV7jQǏ8¯?TB0Q!&S\)@Dڥo1QĪ70^=rkġ\)7fSDir7ib1ٵq^ƸDEm2ƇK)lYrl[v-Ƹ˧|kNboKƓOÄV?H2g_$I*7!pvN? dEiWäz9cR=m!-4cYP d069(a#,kBYQbfBzkLϹIEJ HpczixaUdkGqT{ڶ퐖{+Oٝgιh֯LVҦǺ;}3Um,E-úեRcTl\&B {X"@bV#Θ.1o '&[oyipHPĿuv碙sn*m"MZ"KrrJrJJjv0r56.mيig|(ʭ&rTuDg1iKH#ʌ":94w" 禎8;1_ƺ;}󫚚+Y}!;>W;!vVzUoOI:4$А %#]nlrVkY+cE U!Qcd}G7_ϑ[5\䚆}FO`@Ϛ, h;gK!d$*6ƣ vm-@Sŀ, ^ȍ __\>{#]b?]`l#3ώ+Vv\+~'Ajl:u~JwGWB$О Rvod'r՚qԯUu;tϑD׷9Gvpwi!%O,qÆ=\}z6׊KNlM&-9gm bij/sIIDћˡ+fLm2m}?IhK Ȳѐ~N&tUgm]>Ǐ~zX9u 3zx[]'-9UW{'Zf)(Yi]ꊑ^}亡2<;Y^F7(ZtͿC]\\uUuw^0ocF-%_檩NqymҠÔkD ӛH"[5 2G*s8S6ս)kiY[v;Tr$hIdR-PO*J%l1Kϻ35p" z/=&R~{wAEG0[%(|mݢ)JSofl$^sJhH=2lҩJMM#ʼnAm9OIKWѯaO ӽqwpL ^VMϙ[T2-CmVŝY/NenԝusRbf Ʃǜ[8j_u'|@ҡSϦ*^ * ҊXc1vc1XcX#`8  ( {ǹq3^gZkYhɲ֖T>Q5\wyCI}E U_Ooﳣնar`۪ ˊ~xEIw*`eMOn[DۻW?4PbeqϟkV=Ewb"vP sp )@/IC*<̲5^KN&*|uy㟧2+1E x~>F kY=,,I_.9EKVU֙k9=f((4T>k#>uǨ.#!;HnX#Xל gxϲ5^jqɷU?Xd zMK-*|qiⓙU|["u9-gR'x/Yf PqEgf-)[1өfPUt2#^H,ש 0h6)| }߰)//_pzmIenU8{ h%[TexϿcAo~ xo}͊T@ Pn\u{IUwN]y(@8Xo3խm/Tق<-ٶÿ=43(OY>!/ɥ[{k.=^QTHw2.msa,F/ t#WQs֟+lmUA'u8+_\-peey>LDʯww-=Vin&'STaI>>_~ߤB:hܯ>y H) \w@V?|27_h5X/U#Ky֯nb!9͉2ըҤ3,_<탢8~Bkd%v/yօ`9ǮH Ϯ\seI}%d ήZs;Gؠ›&(a @ޡ6 RS5 ?qP W15jSU\;C]-\O[zzfjLE0k @j1"$ {X##Tǀ@`Y&3-J$@CVX:hbFlb .&)f;RLDK|YzMaz¤;3V'N_uS^o~it'|Y 1k&Vk% /!!NH0BԊ бX@*.] VkJu&/79x֣B,@c@(pA:d]EJXׅu5J#v뿎?l`vk4_x&WU_={-\Ln]i r[8z?F+0p Ck&`my0Ee˜mfF0u\5'']!Z WeD'ÀÌ| /zBs">Bml[V)ym֥sdr*2-Wf/¡ vP@)y^: 4g\\^q/ҥ 7ܐq!k O(w0cio63w\.PJ!cOe"gw50Tibsh]MZ WUxf}'cc]Wn86cu*8~$ffUެOK@3}/$C P}]t9BŦoW b_chH~rLI(1.gJ[8֛k@E-惲w"C$EY "ġQ:"rL;.2J*>Dݱpi~̀Xٲ#B$SuxQFL 0/TFLҋ5&B{z!5_ED yJ r0hِ]H,(%?xAm *>D`+"{CVd(D^iQWEBIS঄ta>l<ì!e½Vaۖ>oe,L;1AzqXCPf4CFi ,"^Ԅ$Y@<̢`pkSe @t#jhUU!N!S'h<&WzHke peb] =ZBO!-Dc6ED7̎14\MnȸV0FKsx ̯Lܰ5Wsrq谼O-sA2lĵi['FeC?6 t."n2tJX%$l|sIJgC' }V"̖ĭQiBTLLAjUxMo\gE So|M~0D7\rM-8^A"ˑ[l|+e.΋|"#V0&!"2Ě޵E" g#b"b#b_eF2?b;b##CO][ ;18K\yqyGrx]gz *12&%Uf$zqȧ7g',e򹨧'#-1ߝs.$D\j'a*\lFu,v\dL?SE&>Igԋݾ#b#bboZAτOw6򡬁M?"S,0zo/3Qk2a\]o> zzĪ>2LixOw܍ s`m;:LS#v>wo{'64e=m$3pͰ+GviCīmdnc\AQ%ҥP Vu(i$$'aԾ#AqOO eX;%~ţT7Cs0GoST05 ⪇V[*0Κ\0@6KoNs]@qDYuv|Tl-տK _ p!%H ] 'GLXR֥1_J;0,l2X1BGtw!Ck1Zv'v/36.(Ii<]5  h;`$Wٻr`$2٢aceDT8ݍ+*s_bUϺ,,p x,_S#,UVif`J[MVjptC}*@f\a(QiO8i^\dSJ> L K[!y4ٻGg×vΩv` OwJ`m&gW_zh2f6/\VG-sQ`yA~z}Af%NHjdXs"$aIe<|,<#DmюM3&ɬ Z=.ޘJ+ q,֬ q'{Ww[+?}wU4G'qg"` )m7`BZ|m%UӤqϖ'y+H4h2uϪ.(Ov͘D̟se!Ϩ,Bx IDATVG7N<<\˩W-› ǵKRgt8YYUk0R'Om#[RmMO:YɂN\w4YBfaN ˟gw]ߛr8-GYv|%>tRu<2C OTYȞFa`:{6kӞVRL+_.GQyN?&7uP0nJ7anqǺ-|ΖǞt.@7g]`paY3sY<6yL9}".54VQ2DPKH[6+F ǹ/,X]W~ڔWsh&mEIϷ|Dڞ3VR83Szd3D/WIZthњc!OcCo&)@]JW)_d*c+k?MH~xx@(X٧Dا2aQ0P2ʵ!8+v$61A%?wb,m2.^|&sFsعL5eQo|V "e߾c_b> [ ͯJyA-\XN1UEч]I!ʆ.COO:yU{O% 0у-<D{)2i:f{1 w{ma&R}ݸ譧GD'9=$ f\LgqDLBD?E 4iAX͏L|ԩ qS#gW42aQv4jhcCN nۿɗ@bߤ :l,"$`U۔W)_NyRIJn]Kc \T 'ls9i?rqAX6UW_"T0hvעËמy,"%P;=kbHHnvjO2 8y衍 U.9LSu`H ڙ9XpKaiQ>>3Z0IE{L,wac$LG)bȻ`LĨؤT#MUGoE&d/nҌHb?h텐ؤ بa^&E&EşfQF{~jaW SE4>%J"+,Z-@3}rӿ;Z֭ke,uLoT7!0Zw!$.)^ R!K_ݽ9 (:)*.I%q.\ֳ "N |veìNt2qȶVt$)2n?QqI.Lh]$@Eݛ V OF?:X`LrT :jOmF 0m雪qgL')*._f@d3ܓV]~/Y^vR-1x &d+k(6kY>4pMkN;Eej5zqV~"|>jm]Ȥٯg㒟_LErz~ LR̲ZϬ퐥݉LKP`R֜o3̸yvmGxt\rTAjTdaQsG5)Bˏɚ/|zdV T޻XcU#j$wn!{u:+r򝇒u gGhUav.U }ܨICN~-6qȹogH?E 0oK|m7G߾De̻b15U? <Υ3~RsCHw.zcM`L2i1@ld"U+*3B"b,BF=G=̨ \~4`ȯg4 SzĦj隶{9{"d+ZQlmR;yȥb |ރċ>&+Z(o䬬{w_i15tU YUҰ5w&>j=4dHL͠4ܪ߾PK15Ek?[h\CGs˗͙hm@NY<x\5HM'}wNw߭I/s#k3(Ra={ԭTwhDWO}/@O뚊 FbQ_͒ȧv^~J vۏYs!R#WL;*@TӸG|H >'z+G/e'>W3s-9@FmcE/V73 ֕vDZ]IJ{pףJ^㤑`ҽqߵ4]yNGIn6]]; Q"د_ۻF-€ێhQr~% Z{)&#;3I=TE~fWSsR#O}k3[]-,og/c[bIm'K)6ܬ؛g.T֥z;{}5OhŒJW^ jA9PA/3^>nZJ)-cHG> sM*HNPaGXY1Y>&}Z|xk,wv돉̻כ|N}r2˸61^ݱaVw2oSj 'G%J\ꋬc} Q‘sqXjh|o$1=2Wj}s[X^%. aV;{ݺwع='^]4ek ɽʌį/>չtb̠gʉЇS#bVҼOP\ 9O~l+QBc3e&>T򉱃=>>] r`x:A? *dzֶ̳R`4ȇ+//0g$$HL|>h:_,'aNHKW?}V`9DJQY1Ȳ~һ}Q2pǗ9Эr&ߪ OFiHԌOvH DƖ" #pUѡ,ArL ~}NukOPb/>AO/s{c+ (Zl_\Tq(i2LZZ%&;hF7BmtjCu[QNJ@P"eJ_'(?>Xe"\(xT|SRXb<̮˲?W;[q!29TGVF<0]fتa ?X܇L>5` Pv+!)@fJ?2H~`"R/BNF/N ,neZgqngce D4tk @u~Z^%erl`b bxI"3K.z èPs5KS$&ր`s Uoji|!F$o&o(,/BZDFz@uEzA5dBCS\!s:inЖJՊK CްkW']1T۽AXܰ=Uҙc H(K>0)aAg/cðMsX .ш Vm * k*L) : 0% Dxu[ñ>U,G9خ@N6uf*:1`a.Qߢ}[^E-7'~*V|D|YŇ`_Wfʀ \lLБNKYJ/RXy`be5|0l7w1|-lgzJ֊F{k8 !\ɥ"mOiI}:کG&6~nz|&RD2#nbؤz3Cƫ:|z[B|F'Aq^S0(֌s7<+;oa=慽-9QY"nM|l:7嘏Uj{)olRĈaB&ER53e6-<[<%K E? g5܍D @e'e3Pu]|'-\uH'kϮz_t`fI4Q^VVћI{]=XSb FM(AI.hIsqRcLlQ"岆s4i1Šws^缪/Ber 0iu jcNQ<^Z:WZwʊ &ُXgՠzТyL Yzeۗyb$*}-(+U*6=õJuN_qVG^ԫ/1 ;{KXB\,35B Es=qFOXޟ;uojiQyJj]<>ʡ#d$7q'Zkn"!0l2zm镈OMF(qѻ T1[Ueg~Ul+5F"XH`pztF:Wx%pIzbqT_,Pc g2u}%;Y][ۺfU`ƍlTtҞBknnAH7R*1kk[הCi`J^e (xSy1IQAb lXYNfEJ]U0`"L⩣x;8QVUD&Xؙ SîyW+\46!MZx+"žڵ9oT BPb+WW7V)AV5&ZjaO=_#OXB07q O?b[}B0bAG6weQYLJXڙw "Ĩg7ZvDQ,xqhq}@⺿Fcm J"q[k0%ճvO ;Mueyj͸Ƚ#Fi[R"RĤYƍYK'wiԬ?{'|Q:qAVoΖkb*n$wqT?Ma`i>%݅܆q-4oܬY@9IvKmKZFD~Rwo3}(n}F\>ykجieȨnæ͛:!I4jڌ2楷x԰aKھ|JFmYr'[Ϋ ({y%[98Y}URe/>WE hf 5 K'GS MdK5{(H͕ZO'LͺrMW(&W8gtO w8kȧr8`Q;mӡojz[:^YBXkrYZJ u L悠2ƥT]6b|/5/-A"U7.fԝă4wn gObz|p4,cҷIV?jd$]&uT_=ھc]=w2+xׯz|pIv{&.].d5cݘ $вրe>(ضbQF<ĵ3l&-SÆ',fyƛJ(>\NY:"jxV~|_i׭}]) NU2߀dY_ϾOԐ}{k})ۦ4Bʯ1FJѻmӈXNK-ՐEK*C.'̤{72uIcDY §bLMN 27e 9QKJg[ Y'1n-n^^3jc IDAT4utjئsa]2R-ge̍%:#uihuAqWÿ`T05\0SG=t2'^džmN\;oАv?u+aa 'ڪA^D}JY԰OR- ^78"1s'Դ,a@sJ:Є#44NնJ Yؤ1嗒g[X6snT Q(shfSK\oy*ZU9xW\ Zs?|ś#כ_vױyhljw޴t?D/.mXt2JEYSXE ދ}֭s(y{o_qE?'޺B6=4h<p˥\ TA% |ЃY,[kd?3E//ozY7*;浑u6"(skוK)jFL3E=޿9lj"IϓD闥Y܄[yU]WWH{̇j_||jld|128Kjkr/4>7ek7-{fť OfV 4TN/]]wӲ}gm_WVÈn<i}ιy %śoURYim,;kUiX''3MJ$Z}'GXlM) }PO\?,;̷mi >_nbЂW+0{mwKW[oZ97,:Jc7yPYG72,HXv÷0W_z0+;OVPhيבT&] U@Q׃k[|8q_j膕'\TqM(\J  ׯ]x9d۽`!oi>n^R_*Av{cz"ͼW_ _U998$9nG/^vv>E߳8uv-;R2u K1p w!*:O&^v'#|V{ٶ# g^ rl)2,du2QW0`8:#:@MqG_usg]c~,PS9M{l~͝λՎωwؤ;w=~_1vy%n=XH*5Y|ɿb [ cmLjSbLĆLkXP' ;N< l#,782ta2ygJ4">fr}[B}AS90>M jݵx Nxq f,{;cWAʹ-.!'fЈK0 Xh kΈS zc" D88;L1Y8\̷izđm ku&5 jMDW ۀT?F,FT(9BRTI۝_iBx-s/ke[jneWh>*P?A4+#XrԀ&aC&M~I8zE q-LL쁺!5\bBa^@Q%*E?GeM@\4YCP-[*8c[HZ/Ƙ=S- ψR2-l~gu1(baѐ0m+h7X3E` E) 8-VDD?EҰ2>#UG w40=m,WRȞRn e5]-0BP%itCX~_%p"C1=KKl2tӡp8Ew.Z?tnz0p!t<p"e:^ 2ӥ̩d)ȋ 1Neb-N!3A/PBHAH&;<}zkd?~ Fpi?Dlі*G,v-+8͂Cm%?ㆡQ#BLVwa3ahsvWz'Ccҭ?8B+SEI]6 O]٥U|`Ѻ@dA7]zJ?1 &LUij!,5c TSi=eݯu-y9=`KbTӕr5HgQD]wLwLs$j*yx fc2fl{AL h,[D&.&*'DLO"gY%wMuW#jV. i1QuzMDG&E&]1y֥smWm\xreD?) N$6)*6lORY 'f_'W'?#æv=K H))Qlg-ixJDaqvmଫ'N$渦pI vQ8 Nb%V-&BPi䪮?u)fESɌ]@&cBi.XfgQOoX^}b럦remjd S69{ixTiOGf3΍ZO:r&ixT)$A8||MZ"f?ZL2>e."Ie}V|ɕ}eդrbS)XS:0Pz Cd}Wxju_{)H_h ( $SE\tb(Z޹[o/RMzU"z.g͒yER6kwBMʲР+d0dy!1~^6D P I"\HF_:֮E5r !^J Oi%ER `A rv`W@0\).Rᛋ C~v.ڔR@:u*`s*KS=Ϊy/"yEsR6F-ԥC/{-`9C"2¥\ F"!3@faJ3+W@dp jt_L-d6J*F9xWRҬB37tܦEunȷz&8M)*ګ1b"E2(so`RߵL  aǣaOz\}Êcc/8[B`]efMժ~F4wˈ1]hٯI,>뗯_|:U{.6_ oztv9&Ԕ/Sσ"e_%>}fۺ.ATMy*%E3@2ԽA^sGml9QYV(҅GisF{>;y@٧Xا2axK\'n]b׳>x6nTރJdܠj]aQGml-6\7e".l2{NI j#&Sdv[ 1a-YO4;Ƕ4ڹ ^' ѱlj1 M:~WD{ y֡ .mمKȤ譧GD'9}lKS %(Q2FQbX2dl/;OG=y~0Um7rhP웴!gw{eocReQaoף?"eݺP|>w憖ZtxcOcClh\&ްAá KP[#Cq;|;a_gD,P`'f:J0 ,;&g$F&=~p緦ݸG![]uN|dlbI$iW:G{|nړZ{!$6)>6c$~.&6 W|Dxl5G%Eŝ^WLFLuUG%>2AdvR@bbר'"I3m'E%ݻTE]V{?J&Y߫tjNi8xuZ.zEE-/b0jk}c M%uNa5rUK4N{_j% Wi5e`bGeM i%&ט"NI}MVڒbA+K`d24 i{ 魖@?mLo%չYy8rsz-VrHUuKz-魷7^51ldBq.YdV[]Xpm槷jc}e)9E*B+Hv4,qَR@b౨{43 &~>$_IOB݄T~Glܢ:އb㒣]Hb?xиP"ވ1l(mn<8vȲD&G%Lmi^̃7DR ՘u V~Us }J 1S8u#>E"Lsah3r҄%GVFveg+MD`floH*B@l \ȶ6Rc\K'Ole|[6Դ'+zkү y%gVNF=>̻c1dְMYӜ* 񯋭[72L*߆D~ӽ:wg_0iK/Q,9Í7Յ9 1ƲnQ`W2E. غu#s~g̦̭:i~!z=۹c|Rn|QcB]-qcD7K;*56GBbNY0={S#LHןT##""Pd=1S"kRO/#3b>q#O\Ӑm$"KaeSN=dǓ)xȼaEgܳ5S+$ 4>"ޱM1=ڍ[uQ^ݶ]c/:mRX{cB~ː:c.{=-(}[SeȢaEfcJdf䞙?a{mPȽ>1ati92ml*&{v龕DHYw]?6/80kWaЙ{6T{:zu|T!4g۬6ge+>v9`@EFolMNVƉr Vaf>#u:]>q^*/dqn~F 哧O{wܙ3g|cy-1ksc|e{nOV|ږ^Bx?SڣvGyf}4 ԫҵꞇڣFRad鶵7ˬaABn~Vbԅ_Y ygdTsq]WJ3D6۴ʫ\*{.qk5lxpSHtDS+w>Ȩ4U\*:Lq'f?=n=ro5#M_d3KHȷ]8F9{&msgigې{ 眝-?;2W6@t/2~0|#GjggwW$|^/-6yh]R'r󳒢.>D7*^/Xо{.ĵ."M[LܿR:n?ƤCw}<%7u U'FF{͛/'P'x"Q{ꐔ;Y ղQnb4)I vׁ KV&+DPXzv}ꅺy(syšD=k]WzR"HN!cX?׾ҳhsG/2,oE:p`Y_ :3&wu~D]NFϺEsf[eZڻ(!]fnP*FA%~]gw\WQ{#[&$_><{9#oY+*,IoV-%U҆ErwK^ZIEetd{:?#z$Q8yY^=c=Bؤ,vr - iL84Խ)﹵dwuP^ $bP&m rLq~j];uu#N͌XvpBXtlN;N2fo^>[@9rԇQ"[AI\4aĒƔ)0! cs%k]'\35Yk(=>:3&pYv̯ďWg*rJ7$z{,ŋs(czi_G,qưNIIs1m}ѳ'.^] LA7A] nȩ#k)xNlMȃ8Y/ r\|%ːG};V 8Y|b~?ޣgOn^8?ʼnFJ;UjJCnZ eZ Q ](G,Lx3to1ʽ[ `xq0jJ},e!IPYuHM/(66cO+C ϺӔ~nep'Ʊ4ʹr4Bsڡ:h.}ۛ=AWHNBݜr i۪0 {~r[#@&mY$T{r˒O~nحoV̵5?|:|} kQeLD]37N{±_K-3wDŽڣ!NsFJu5(cqUYm{%vk!?#4~p.#.tzwwF)D KFL~GXϘ JS-$A5lPGîaۇ? Y{7{ys!`X HP-8rS:[q[`=ݟMEwܘ񱲏*b';1,A/`]fc1Fԩ{>ed_L:cmjTR+q+(wVRaZ_s1;Iuj[bZG<"߄ )+›,o8$F;l ']ݡS4Z0o,zugd.az)en[l\Jnm]CO&t;y^,ڌ1}p;u9s>Xbʌ(.d"Ӿ"[':R`Ȃͦm,5nj׾g>f/nN{Fo.Eɬ`|(*DnA~d7KJ0YWHo:{,ʵjà*2^OaI71ߩ>FiR-KXWNK)FG,Ŝ)٭uO^J1"w!G9 `d##D۫=5i쓗SL̳(]rlW Ud {~Mc ]aA%!TrV,ՊZRyCˇkfBʑ iشneZЁLe.wv tX׭&{=H3~DlYU}.(XXG]]zy}2 [x3SvZ9cBQV+ݕ6-[iTF!P4RT |R:&D[N5[ f/Rb5;V=`#K%+v,6ay [Z8ֵ=":󟣼Xb[&PoYtut>]: b4UAUu$ s񫻧_=};{5-'z'Mkk?3)0NUNcc4AiuZA3} BEg[x-g$B"DZ\ikS^); xiκwN00H-">?{<[4AϕUX3\@"f Vݭ_7~@&a,IED$, Kv6,L CeJe4fKݿw:R7,0faJ= l Vka_tz,58~9WU:P{?u}`+1hZD|t: (UFPjl%^,z9;{5)}Bg[/H_9z" -"Y&¥9|be`F8(ZH14rB5kO(5!_632YX%ePceIm6C'eFƔ'SF=Tcd3ێtcJt2 |8PQRnR3ip2@ިߴ/x.J+{tj?ZwnnKsvӞUW,I8*f(#gL>{qߌg#%0voQ/ݛ>$+haCz lԴVQJs TCv,3[ڛT?۽ 6jL[YQbH<>sF$n^ɬw5OW?*ŀ*vF ڄKOa:--GG!H3:p_{-!@MLy9y^FdLg kc3' ͛_?&cO>=ujѱ,_^TaMC9NOzh` gU>롖ǘz}*uMI Զgk^Yo = j '`2RCo苑:4٩w 8G6 8+J#1htVTw+NMP{7*x@L@{[OV Jڌz2E>q![>/fAUZ\I{7ڑJi01n{%wne<ѳF1Z! Gs8^/D۴ɽ'{ŀOC]~Bb̢e2^Ovy\#y"k{O]T/{#;`Dmc3k)+VVlV:{FN%~ػ]˶U);|DY{m0joW;Fcv+`; Ȼ_ϡXs tKYigK5a `zgb_.:Sa%w>7 ʚ͍ݛ`JOO*VTx}bձFIig84wa9O&|d3F/|-ȴZ2~f3o֡> cӿܲ`]̪oV}ǽ2 3W<كL)zsϿ²?u!ޚXp܊wwq$*hޕ߭81ܜre̦;kw ڞ;ket5W4Ƥ]n3|h4o]G/5&}?FGM  oFOٱCz ^{0,boEөܿ?ݘ~)?\̶ Q, |b0g0>?IF]v#`K.QX u #, X2g}]fض8 b9Z+5g `\<۶4!|Tl8LWaÊ^9q>ܟքUjeT+nK2._ )zձ%,;\zbMDsΩI;4r+92\+(C?!X=ƈ̤b N?Ə#dZ]s*cLK| K{ -m.W?'2iˣ*0VlI;bt OwW7#Ś' u*\OR'*6nM>S$b6u5\eϦM7 c Ƙqk376>=|0K)JAՀ0gde?ۧao)W] b|29mY5`-Zpnai\MQ*{so>K ~[<ūϊ24]d2 [4܋%ITŀ]"g4!P!ȸj'4%X}}ks:~]^=ɶ^lK2%Bl*n?Sr|0F ťULk4B)dIfk rM hB S̡r#mpz+4 JW!.tL9$" 9$$htLD<  Hs\Rv2F` ;} f5` LLaTc>r Ҵ#߄1^iė =3R&2aK3D~[%`.׾#(E"Dd۬īQJyY$[䟋;ܜ oCLVfdkf0Io9+[ul͉k%\א85^YK!rg JF,qeSnkM$PtB.TiD|Pdwm_HMR~&V!/YF1fXd]^g`q͎ؔX 5PN+Rcxu0o\xeD6чrOxHJHHxLGo Q٧HtЂ]܊{p%#Zx٢KmgF=zxj^  ?q܃q"?Y' id?#SQwo"NWR՛|q\$yTE'.}鯇:53noO\_(zc#8kGuUzpj|Z>b#F>(ϕԜƟyy[Nܸ(Z`oiڌ^O";{Q m>1upow^|rѓ| %eŒ:- Gإ_y6]_9`Gvץ'?9* ˢV9rJǙSEN|w >ۙˬ!Μ(]\2$r`!&`rJ#+}7hȽX㨱 ;_Mb8v$OBb 99W,Cu$] ya]cINݰ߉_rqSlwNSmF{[acwKwk=ݱ97 hT@uM,9@h 'lg%4Y b ;Bwr?z=ÖɉBNXD$BHs2ap!{z* +V/qT˦Zli9CWv3-R#Ӱe'%ЭK݁!?BDSL+eM6iřU"PuDjcoݜ*W<U:fY6(82|dhv;x(zLё+`-gs=uevhxa)xUƈ;ZQQ?DSL?W>e+n?,ٷ>z8 >A]-,GTbU{TwKbZU ьNXնǞoٜjRXHAo3etvuYƫ2fxti離'C]xn e>~n7ybf/K|ڊK9Vpw m]M^=@v؜?jgGٴh| Bڦ,OZ"?Q IY{k୲(@ҲN_VfҴߎW|7)鏃[|M6?7?J=L!~wn WOܜ` 2v=3$?e"^޽?i|OSq꫄ִO_ *3}ݻ+65tCNiJR_xe`_R^ 2oph`r"ppr!pOؔ`@D؜۷{FNp$u~CNɪ>_NSjuWvuR :9!;3̀zcV[_4͇|pR,.ʌh;mlٺ!_i/+}zⴣfF[1{ül&ZA?6 z:62c Xޏ+Cm+wh&(nc/pW $lf'G>qn%:TQfmfVqs8\擕i»]oOEoxȺd,Bнg.^_wci»]_h-f{;GO~+@Nf06?IM 1q3!{}^0v Os9 m$c|,OrBzev4N-Cʐ֫#~ɸo<<=3wxo d'-*{gu0٠'e+֑Pus[mڒm*gt4lCYy3z9P8=X鶭NȚikw 42DykPOPwڠO{NUVz~N#/HG[l&)QO}ۻb]ա a塵iOOSMcW$֞ |$G'苪{oƶ>"xz>a~PVbE?dT\dTܩ-l gKy8{y@OTbis)-kQ{[o^1E VUSV^Bº*tŴ=<27Kai2'=nt^BxsdP2cؐ~Bi@`9#F aodZԜw~xՠ6l<4+Mz zx[V )/;?Oyuоo) C~0SgΉULtt}ծ^e'_߳񦁙'l<43مMz j;-cL "C@WmhS )K;b ֚iĚM[Lͥ7>6s7 T}g)C f-rk5lxpS  o.=}6ϭ7Y%Zhj)YC1)7yjб Cx4~"Bŗ~,І!:c鿎Kw¾>:3_JPjB(2P(j@,< cѸ탳S(!Znh ۇ:>i}lcʭ"o񺶣39Fb@QKsy$YrlLǝC2v !18!AES$eE#H,+!=6%,x`oX,]B15#˃f+8bH'hCr;SSެqﲟwG?o_JM͑@/U^\`E0/tfB9O Frح%q|lI65pXҿֽjzr|YEsG/2,o =6yQ0>6DO[.2߮37D@5>ř#ѾG@t?[Up0rI&RV@`2Z٭/iZb,!y?M઴EjVR"S!h=t=Z1a{%jG̡ճ| x}@:;YF`ȉ/4@yn*\Hա^% [ 7#P+tĖOfY*AwdHO6~k8lĩR$0*cXo;oĉ;r@ nL|{d+zUS7??U{c[>&qj&&MO;{r> Hb`(7tf \y5'vf Slv%-ìnCI1T pXY QFmu[Eg!̥}ߟϢo^p?<ߑưlR]1rKMKYV6֪͠z*̼UD`d7oãjf^f5aPj7"T `xTHpUh}Cl1Qf3@AZoh6 2(uI}d|qm2Iol-5-)3sh}W4ML"DY>pVZ=Mh;ǰ 9ᦫ|pNH~ I1r*AER框lXtO p1$N#ԑRɱy  «Ld ҐWj-|iN2M-ۮ)iO\ 4ZN]q9Ud8g/-Ø-kxPMEw:]a%e)(N>r(K2R HV#oJB^@KG9!cBjik K2g_ N| IDAT7 \biCGsi@/TJikVσ~[f2CY v1/W"03εULX6Θpؓ BTŢ "ҪeuZՖ/د+n;q?۳mJFqG%hLeLԪd^rXJ^;ޙ٫rIq EАyƷ"E],UAw"TcB|my>]&jZ`Ёw{?uu^g0<X2JݿW֐A7,0fa\7Ҫt2*-0UY1(*ո7R{Rgϝ͇ZConV"O{.-4([ݢ"Es]&b`|BUB,V @Xav2[B&3ΖZ+XI5cs;9NsN) !N+f!nAF$msy9Dn bnsxJaΓ0WcHP̊J[=Z U(ZoiVMe-K:'@zo0T+J)3Γ4}N5ioQZIl2v.#D0s'&?ٌY+SqL"?E{YVL`;P+:ʢi^y`SizJ~5 i?stlϰ;_lNtM{My 3JLN0;"z kcSvu;q%_!3?zrɆ+Ç>7umB+ۊ֧Ŗ^)/5 1}skoPvGE~1+K"%EHЯۄ>Z^>4Gg0rݚRroMiB0>| #aP ZOZ+V6>4r!W=а" ٨+s)GY_0On_ڌzirUct0}Μ(o)J*&,.#4 KUFB8'~!*2E< v9%'E ,TleFO@~I'k$p:"Vq G3˅}ȵ |BM| \#K О[ʘrMIeFdtb~ցztTQv?֞i,7z5FJZLٵ';x=C!mۀQ{.\8۲*E.7th)B挃s,Mjv2Uȧc?1*nӾ2sʡտhߝaEwNO4g^h{gjeTYF>bmʐc:$F`9}C3iǙFnG,# Xlڹv=pFM}ODUȠU-j=n4o+-۽&E^Ȃ839./N/m`V.&lfy7y}K&\PvmAiQ/n=&BI6=6AQEIXx +4H!ܢ6= *n9̣`P\N*Ϛxj^u\ ZrK?ҥxgJNrH/&aj+T-`v[[KFD+Hz8]Nmb߭TI pT glMwJ1A \s8n"EKLg#Ihr)C?#>/&1#X;`FfF5 ɒaRNTm<-БûQe6BGX}sZ9B$ʕpca7a7ݘˢ`&8aĶ"dv3=/;v ,)A`R|Czy6C(9EV>>bz19WMrmr-HO!/Mi.U#ł"ʱgp!+q@Ru)-ᡍ+ȣ)x"l\I_j6-eGPC0]8\_bFbX{h` z#oߢ[SPJ$Z;o~*$PZ(:Sb{XTL Y(3xLi(hr WO(dޑ P鲄vJuC",y Y4{h!(8ˬ[SUX Rĺ^F@!uS"̀K߰XClp-IQv-b/KJRopk 9{/9<&f+ƥ\c]K+ b=xjI}9#6`5SԢ}MJo'ʉ"QUjUJ"ӕVJ<1QNn lK9f"i`A2QK HW,VlyĊ -gA%#.L$3Q*J-2Djʧ'ɆJQm^?@} _JVNHs)Ռӗջ!,TCw %wK-Q d<1z*JȁT|×/66곲!Kq`Bx#txl%thWP Qc voI V"UDFeӁ( ҎVfXmKoAWBQ(]*+H!@PБx BAYGMQ0E++8,B{)}Q@h-p|uku݆$F ʕ.QH -ZzdIOEW\(joD%wi.vQrbG/D)#U)L!>׽oQ2)?aj# GGh+bk"lO8tS -W!obIQ%/7J> ŷ#|WscB~Q8_z,_A<~RWcӕQD{plb5-;&K7#D`I\8oCO8KU|۶\sQ˟T|Dm#gM"[D⪳ z^0 @ʧћ'Gc#M'"VZ Z },#6,!n5Ɲ:KŏsΜ`qQduГǬ(hSw","!b(y!7pN=LdE'x'DE^KM>$`ԥZ.~Y_CچZ[E/~Ygɋ?x ,*{H}@tuל[YY|D|/^GN~Xw.DEj:~)&*:žɄ*fc\v7.*:֟'SqeǢ!\R[킆o@㢢㢢"Ϳ_EgaſEFG2 ;@8u MNދ<1OmQD|h+9_Ř{1wiﯵ*6z~}c" _KHeI` pF8=a*xq͔bb}f[<.NaԌ]@'Bq D]%!/B`H Tɼ#6,..j%pO,,v֨؊4j _h5Y+gǤa׌-]!3aȶ$]`읡bg/joP[kW9fj[6~Qg]i+_qML/hjNZ?MuQB h{*t4{'gujcKh5KbyC)@ =N S.!aȶdʫ#Lw쉱Z+Jy2d7t~qRwRh IDATe_hcvmBDܩbQMزi¦6IeO uDT@~9uhzEo  -=!" #,띻׌-[13a6󯥝IDv<^7nц̗C~OEdUCOO =uzY퓆]7n̄<c,Æz?p.IfzUvcaޏ֟O4EƦE7@L~t :Izfh~j\N?Y½߻?ٲqe^f Q†${zwR[RӬϻK|:mI}Utp@e&=Ϟ%=T~`[ WNԷGU{%AMpadzVBBZ#(nhkBD`Z_;@lo1Wf>=~@ u <t1`DEDžuj7յ0ny}i/gm3&2mCi )n̕YC__^}uv^r/.*:.2W{@T^=7z֞s"NW%LʕΒ{WN_0 @/NxLejמ&V2xfݧm>}9aKW {}=rd,uգPz˱w]6_#R?(.#zb4P"PQWz qEqS|yYDH1o9SqV4/96TNEIH@Ɉ*Zcv_(fyFj1 S)W䌇oyI}dG?O^ƻ:TL0uܬؾ Dv`sPw݆?[E*'1;=J_4vI RRz.h^n̑'p6 "FxO~iױRPǶx-&D,'K^/<[ՕA]۹[UvDơbN~y%* :E EƻN%gvj;MZ:M!r;My}/;A߿~߻oT6lr먁}o~\3pK3e ^0OaHEH}hӦ/LL/9cVO0-qNo";8 tˮ{i:~]}1 nTщrY (/=.۔3* zK7ZDTeգlm⢢o#SZżQb28K@f]PaO,C8@"@-/'ȍ~V^O+`Z}̐yqmWCƶiݺϋx^}l[ȣ~}ۗ߫ǘ~KWt7kws[zwd@4}r:~^wʖiӴ}9|5\Lpl_@c_}I{G=0ȍ=}^;[)x ͩ/nj[t:-Ly=L94i\r* AՒFB̓6pt=#a>q?GhE۷n}~>[V:qޝ&-ߺ 9fNnlfQG>,D4&n[ia'3t?lڨ^ӆ.}0S)[K?iHϞ]ape-gOǏv֧6zp|{5QV}89w%'3~j83>5l>= Ϝ4&٢izM?v)0 o(amzRf~S M/2!(( ؈B>%EHrDJwPVAA \6y^%P죈B Q< u9Ot݇F)^`0 HMspBP:.q:!:GK>U\9V+ dxqt".գ8#\\J - eM򐕔iV<:.*:Ԕjk!lYs# oz@xl) ؃ZxvDeo^ 5v>1ZRhuq;nFj-]̀)7rO!E޾upӁ oe.&6ׯ&P7<*J1,Ĕcי"Ss=2L,(o(x& @/˷I}yrh[,''D{z"rƂg%Ĕo9N5Rh֭oU<4$M&R)VsSr DW;';e|˱$.J`2ꡙL 78\h̾v7ݼ2O~҃\)^!{Fp,PrcZ(~ijWAP1E}F&a-Cdʷ B i+>{N/Uc;jL@2EU5X,9-OLgx'7Srwh~S]Ul,x(} I_'*1苌&ySEш  `B4 6ch`N" m o@$}6XFu+d> ?zgH K U̧UlA<=K|9Pb4e(BM%2Vx|&/dS՚Loe܊sW9^%,%N9 MbpVe:brhaNo,ƌgh890H,[ yy`MBur ۺUQWY4>Yo^&/8+ ._'b .07l*m@/.~Q*`ܖEw>^Y"“u ?smʭɌs[hEB[rrXr+Vi&ջ,ba/q&2Ȅ9fG#P~Bde$ZjS$VLd5v]%F6/b_yʰuhqFc%?0+ڸJmG"osT@p^@^aj7{*cQ{g{*GM5!+K34.^^.v|{kAz|V%ы&D6듺j ֜%ߊkG#CU*ۯ5hg ߪ7C@z~V˲^cKϱֈv~M%qҪ5n~n*'T֩=|;TqpjN2*>k `שW"-ZZ.Al-Qq?ʈPpuU QF `}c2B;@|5Nyox~1"P6}n%cL)ѾZ3@&YjSiI S-ɡI_c4n~* eȊ8go'.\ՉhBMI4@YωAwi")ov5b]gQM&F'X'vUɱyDU `Bh1@GpS}9v|U0 !h|߼)._+E "X.G.H8Qt2B|a?O`3} (2MEZQnlUbjmզܨ2l>FՁ-:Qш2l*}_T|Ϸ|^  ,Vraaq=cէ\ ?:C,tqQi=cדUǞsYs\4ѻJ5*ӢwjV(e?0hiY%95-Tn2xhW'ξ,AYe\VQz*^ `~?~AMjUָc A /ғR>II|w7GK)zJhJ^'VQVUOwcwɉIIIq~x6%TdѾ'!^xj?ݾ@6Z>vdG#lgMO^+)z"-*reV1ݒ#}|Zz|54y`5;B ^`uO3YcU{϶}Ur/e9IK|c`oɹ{4Rn7m+{Wh5rB+lA׋OeIVR8Qrm IDAT"*XЩ#WdQN/c%m iӨvj ~7{{V,%$ϡSGRi|_8=k8yv 'WIIIIIɩgPy1{ tq.ۮZ m`'΄ %\ծQzfϏ]J!ϝH2ux&Ĺ$3a0AHi+i:aF`cI¹ICwzG%OŸtm&qB;W j6n1ng)gYp|DH]_pg3˼jVR@7&,4ϡL5k] ˈ|{)m/tiʔu_ϯ=ԮeDJt}Ge?\<k%24,tk=ƽ՘.k;">-'T5rSŜȤ9YP t1^q Y3;6wiļ{6?LjU\]mBl¦H)mC .2wN6`@G:sPf^!M'4[B@՚cg'sB@֞B ˠwlE6~|l]I:PKs^vb9aA&͚}4$_z27*2+>ҦA\H @zfdz= t8K&b/fӿ;me~>6$ <>~igb04}7 cvGI@#ܮg6r }9bա~?SV]wj c̊ɫ~þcteÏ+> W:ܗ0Ou~.=7b++f 1'Α]7&r3e.sLJ/>z#!$/vOΞ+']0yEGټIWbK3 $?S$oE?v%X$ZL1tw:7o#wOY0nNĐ(lƕ6sϿ~r|ORCQʰ`oBi&.=¼6$w啝PF;#ܗa&ܟп;m?)uDZ/RJIR*SBcvǚ.GAeFe ;7Xh'LʀR4Ƿ8؈bIj<WϿe9Kt'Ęr⯬-A\?,B0=4v۩*vΝ{%݄h_c]86@zAqQ}}qZ,3ݳlѦɊ/tXsH(Etֿӗ58M9 RtI$ž;;1j_r3 jJ-h{l~lD\ϺĽ5Z+:f߯J$-q W$`gN:v]s~nD.7"ƿ-7Kr"ƐKEF]0isRPtՍ!m,Ʈz {B~ՍW|To3%-$܂M`6 Z J@1Hkc ٰvZ; %5sęMˉKD mjOO6\^c+bE",)+N%fI vL3Knk"]s"p*?]cM³=zJ[_%<3,ݎR[ץ,6R ,;9b)7Z(*U/mXۣcV(6G.QVG2cK5|LWm?BQaQY:K8:hC/dԘT"^<6n8˲8~.昸PH2BgB].wʺK=""Q 2[┒y}gYUiC M >E,?KϞ6 >7YDBMmt gRiٱRAU* VeQnke=.s.":j ŭHDהs䕟ڊ;_0v[>Qj Zb.#M܁"7HY ɠ<DyѥF?ki!1!'g2 .BqYE?\AЯTW@}ǺJE-pjp(3RhT+HaT 1Jjw*$"6M雯yK^tsFBIty.̗(vl'Ju) 3?QHע@rx*[pP8,O-8{ n!R3LEz!bNt7zY ESr%VutcQ119`K )Gc2N'4VMNDJ"e.61g ˉqh{nT}P? WŚe :7/ݵPrgE`*2֭9* [P_$Z$V J(YGB'DjGDA +?[J%lr6+!g=::6wPҮ+*!DL1U""G&rheKr֝#6ЖGqYzߒX ROV@Q ˛R̎ȉ" Ƞ%4\Eqk B'wCi5v qSRN/,M0 *VIS @e/pC徠Jl ez#n/8hu'1Lsٸ]\m^.J/nDj(YcT-(<3PB|?REv~R4n-NdQ%߀r?;Ta{eEl|~#HX,= -qnmܪ2||UjAƘrZȧ@<(,: T-'OYa#Zk@]Ei|NzFLDT̵3LAYܕȘ;l򅿽>+Y&e|_`~g0?N湩bsS_ "pz 6Ӷ :2D,$=DM g@[9:S~?u3"Ԏm4ԩEga.* =:=%ܔ]nIjÎ JȬaol,xqRxJyL6¶?ؐJj)MFpڢSe& XR*|HJ$eAq#i sX>\"6NDǚ¼‡˕2$Uס-"` C/|S df "?I[N-M@#!K)DbQ ~n%]#3#@}7Tg" Q@ 4ൗ)hė xOwK2Mv}Gm\Ty8!ڀ%鏉:޽-w3 *)0{'j=,["gS[5{zdݾ 'X4r %b.$j 1+l˲ŵȠńdAy\KDy2mai3[jI=?nl9qµYG6{[9xpמmMНeU$$jNKp>8w'j_-Zp雧c/e#@2cN=oi5jּțk^f\Z8.DE&ʫ⅂.yۋF6_X 8rR͝7_8ЕKzd:+>bǛ)X*Po)]ejIϬSF]3j#v։,QpA=vm N M[|`ӆjb*InnYzt7:)VcO~h "1d( 6P`85~Z c1ND!*(DMd R u*`֣73Lqp}S]5!"5h|{/S_aZnN(Ym igKB>\Rsn61f,r.3/]VrłH/ކej>P2kovm&tDK(8I$::o$)gi'ҬSIӿnyvt{=e|+@2MyH¨jڝ}[~|1/ Ѻd|mET{uuxܳt[^tq՗L}g{3M TovYFSMxgtcƌv._~q{#c&1|"ڳˤhPMkz5+OoN 7[t}}j3׍H\ыgj\^unzbc N5zΘi՝˖~gAkj/ܭo#sD.!w?ҫ{s!Yrt;|lDgu/SZځjlj,d?0Z> ọT9/YEuQ{XF2/=/^q.2T~nmz6n)y]hiʟaقooE OCJHft3|9¹BD E?Yc@,dgGƔ}KtPoK<@{ IDATYe|N~w@Y |Zu8g%fwWQP{׼IoEy ҪjsfѸ!ֺxuq7zŕ=+xGz~  bOlecu9>˯m&v{ؐGN5Ι=k21KN<#ا!+V/.[#8>0Ou~Op=~]!'R@4>m#;^}kPLJ}"D_۵χ7CoD;d 6"y|ݹv]^LQ/B>4Jjr%k‰"("HO(?"1"=|%g(x2T]Vx[ARY6=yZYƏi.=ͺ8LS=Ze<`,I۾e#[u͋ M,t?#63WnE]<7USn\cvXC[z=Ųr!"5AuƵVq<3S"nw4y7y%?{cA_oS2r;β**DzM8p+N\;3d1.㇎:Zpe)rү_]0lmi,crc!Foޔu?uSɐ/vIo00*TDq\߳ ~a tSՕA52yVpVѼ[3ڨ[ۤ$y}} L,av !Vtle 'zkҩqVq~/!ה.1NWA W47A@z-QDTJ }ЍEh8y\gA|gTu)E5GC'@-jTY2:]ψ}ѽNWm<]sH\!*5>Mmt˨z};gyvWwLо}_M,3Q:sְ{B31-B(lBw@1ղAZ ߐi:N<u@of;W`^kS?ʜJ|ΣTEo;5]U,=!Dҷy&rV֑Қ]]l( & ]MIxu8Me*/\:s f[a~Щ=lJ?lU ,kv`Ґ^='nMm;ݠF̙!A9Gݿй3:j`ןی.ŐT7i6Mn8}r=D( I6ql8@D}o[7k۪YV'cH4 2u'oY6a}zO=ݼuԥ] Hboe2XA3{Ѕg ߜآQ Xuvy669 oW]KıB"U#VI,B]SIR*pdT2%=Pψ;AwO&RV%{( ~5{Y=N,gq`hEfY&@%?X}SI1ĮeZiEt_瀽wco8ӥ߭}\@LwL QO:q+i,mٻO168zQ߬Ybhn:v=M/T*J[n6Mg!'S]Ey 75S~9ʘi-R{w#iNx2H+.S@ۍ~|EMVpvwV#xŴBvOs?}l JSv3?(2|M{%׷.T婑_F KW$>ut%@jio->yc]>uTDĒW 4]ڋ{^h7 rCwGQuSPCAA`/* cA *JWPEKW:H{NHm-s̝ OޗLs=ysڱ`Ŵ{yƵWʳXh\zˎ[kH:Z>|xgK_{U" ՝4%FCIvy _j5ѡ>*<+>YsUf|Z!-Dp .Ś1k9~lѓ"Ӣz?u衭;ޝ=jR`Ȁji%yX:"o?|^Dd /\Ӣ{d] -/;%g6͙bjk@٭UYzǻ7JNL51v;M#2VwNX֯ OB)ع],=4DT "_|R«)m0߀Vik_q6ހyf?c06 f뚼[}Vg&>;%+RJfνd@yԶs#{hŢ6ٰܿ涹u#ADa6Ť{Ykuȑ~fĞ{|zHL C|=⥻w+A{ uz=ed|}SсQDfڬOmew%CXb7.^yNuI'FҲi=oGEg%p7#y݁3;w/]);{3慌И(RzŠ`.A /Q뛁$>Hl^(s| HQ} ڬ5[(CR@#毼;m!}kܞ1#D, BQC毼;m!}k~P}Fy-3W}Uա_|ݐ+"O?"dnjaq/&-ˣ9D sV};ts׶U{ѿ6~+8ZK3xP6v:C͎}ZY["(\ѩ"vGX108#![G`eWN9[@ƙM6hDWs>1q NM8gj꠯5_Q@"It+vAJ?+x;;zlcddNZ!>/WWs}"Jr2ҡr7>J>?9{=C@eI{&Ng.{}p޻ig ͐zaxGr9n=v<8*3,rz"HEiE^j's\"_p߿$w&^<ݞxR4\WJE1g!/okbji_WQNU>d)3\' Pv8 ĢU+泡f:~hBC =U[5#;ldHv+8!NpUŢ@(;O3Lt==+,)2UnJ/:0 \y<7֩|p,m"^Z|p,ϵ˾ٵmY]F_.p#/[$9ʬN'meV栀@ vLj:v%EoEyZI/~Wg~ O} 7CvK{9䯽E НbNmTt2TtwUee}쒅T쾟)[`pb6>wr*O5ɉf\ ܻɍ/Dt؇+\įlՃ^~bpX`K͇nmΙ['Hݛ'`j؏_:w2~fY،vM ?%uU9\)/'}Sm'حϑ,~J'ջ "AdOfHXm:V?C k=tԗ{Š;B/QT?DI-RNYK i[= 후l?{]·;4qom3"eAHDY .8?{ySS"Դ3/޸ {p-s,qUlDF q¶޻ (-!^<-uuvc,8 BdAɑ]~رݍڷx{럎3`_%UR+zb{J!) HrۡgLOwKvDRqΝwR zRIBB };,Aw;.Cݮ#>N'og"(x[m\o[?5qxe6C e.qY:%e7¾"\8ut}2= _O'` $dB9NXy-MCiıtdY$$ H5P)/>VS:L*x j#".<,iUrqj߾!"X.N'Ryf, v:$rZu8A9*8RXojW=L$\?rTa: 2ԯm7rXo.I0TU0YJp YنMy 4` 3$4 t;;2ƪ1(;ܳwA`~ "7hnsG|w&KԤ{wLTְ b晫7f(8U Ξwn.3}o%CgyaV9`=2 qs9ĄD<z<gc J6$%i ^h]x'.KY1ܳH͢zP cIDC-v*Lͪ0L3;>lc# \@iIMF5jW$5u]כjbնbdI.պYx"?PyVzԌ08|l~"oY&wȖdg8- OMr3?ֽkbP~nz^2d;9`Hb/ܝ 2[)¯ڨ$ pDdwPƌ9̙;knʕz]SQARur?[ -{ڑ9p1}e%Ơz2 W\Wm"Y*IU+ST)RP()zѝ(HIp,~?_9Ύ #!ݎhler=Wtq[7H(O0a:2o%yEw+G6kf[ < @b|TlE c̻&>7l`{D{4ǻ8Ҍdn,3%I͠=Ήcm|7)oq=AN'F@Kq*ڪA42_.jg @FTީ^=xzxH=G*%RJֆuI޻3Hx#?.4 <+Jp#)0%Â[ RryPoLdcԲ"艋F6H:}-!,Aw^r%ۥF lRNފz.ָ?g)ӗBn̻G| *be.c,=c~׬R7m@Ԥ2 eQqzȇLב5{#@G6I=}39OҦǘ^aKJcUېC R~݈zUL豦!%YIy:N;  :oY2&R? R\ϫ"jYU]?[ozfϙǍlsvoվj[l魝G?/Qc[ُQ+YztvGνB%&$XuԎب]xWᅭ?aSw'|od{3d`]Ǭ?vڦKԺVcco v;d+4x Ȼ*?pȧxn7j쐶Y˱ t:\̖cPӸqO=K^HSwiX3ϯ6$C7}Xo*]xדܲg稸?e8 ޻+֏48;uÏ}:R7>u7f&{pyӋI +Rh,&Iv$:aեǜF i_U[!t`7wۤm{'6aեGFq_;4<6l妒/hucpSPčEOu~&D2ea[ґ]eXnGlzk9C>erOdao9?d$e;:F1e IDAT0@oGfLRb ; w6m`joYoV\+c4Zv̍L b_q~ߗeJ%^5sEDzk۱imc2xFF %#U(1=EhS\="S*G殌mڜ{<3&v{8W뒆 U b*`gwƎvއRNCfY5??ߠikuЂsfKص ̓`˾g֨U#5a镦q['Oi ЛGӽ[t;?Z9Vjջ}; )`z3ې0*?y?CN#L lO+^ wx>\ YE@[q߅~=|`˹1k-x'dI<)#tfn[5 }W +{|1Mr'KT6ڲݽo.8/?ZPϒyC)~{}~𿲊N/}?8Rvaۆ;ϒrOϚnW37u$ڰ+i[S"n,`җh7Dun&Nvf]Vݴ=m/Z?ܐw̉R:&7~, 6}1%zEٯmX^mm3[(wM#ϡM ~o3u>q.wfF=CkË\.t`m3Y[(Geq{cȜ)e8M?ٹvp 1_5@wPkw6k[DV\UMy`n_;C^XPzaR|DޜrYzGDmKoYb3Xi;᭞AP靂 " -'DP3ۙ[8% n=U5Ϗ_U{jȚ >S[]Mog9嘱\\VطIu< !9̘/{bRy֍GPxf7Ֆ#߲s]+㉥_p%\>.ۡ%չNjD@qşpH".SQy ?w!-~-_^>XkG-/ʁ|hZL`nLO vyWHkzuՌ]tȝ\ΰ? h}:ԧC ڤzuvF1yrdA”Zn y<7F(K&8 9I ErFgl}!?ew3\iQ4`3i6"P}}ϻЯ *-V9vwWX#:|LTNeq \;_fz9ObJ&B5D@|"j FJ$PtL*)J_)g *[«*V"qK_6?~qϧ&B-Ԅ7^{́BPֽ#z!OOC%_ i)Dl y]s.5j[HU9H_BX #~ Z|CJ%xP|RO-SY1C(fY4:ޠ6D? /Dw4́FM%c'oT(z!?B9r YIYpQWcCy5 !'z} 4/ !"u%]mTR!Q1;˼f)oK<+L|;g_}Hq-?IlG0~!ꭾˤ0A ~?WuzCZrP@.C)QIhn+2!%;/R3O=v2Z}Lk|,UZZq\Sr }d4&U+Fϖ3el]Hz9!0fln0Del]hɮ_#}6<8z/CЇ>: y oS,&Mfc:CSC:zç4vnw E@C*Vl L^5B(؉ >7;H3P3~L"NHE [ `s. |b2_@xx @;!!~$X <:,t[rqD4*IUHӿq[ 鏑V0L)I|A;Ik y׃i;aZDo fUܘvD! {BnC|*#OjXaꋔ!f\YFTt_3j"vW6ߟK-iz~C301~ZѧlUM 9 x6zV`-ߗÇE GhPP[ " :jw>b|4Is ~H+RYKW+ t%@d? uPG?r)GhaQ^:ugҭض:jZX-0ٚ4=]<*Th|#҃oDW?ĭ2bFm>^ӑs+U<F?13;MǮnYQ*GCBsǑm>z+%7L?]v(S]+7xܕ ϫ,/!}|sO{W*ؿ15oi9s}+ial\i+69{uZ}];]DCu⧽p_|r|1n=}ĖA5> T|3گ|b׹\+1&>IԠS/W 4wNJ/_o}%?NoMnh$c}j0 HFُ>z3'A X=?]HsIo)г-IV^b'Ϝ۹WbL=3GG%U73İ+L_=N{ݤbL1vZ .l)u$Y7D̀h_ Gw7Zmwcoon(~+<@^_Ò-8ܝPK9UII `_(>8nW7@vłx+KI߰{@5W2x7f|,]_@1}PH56 |?92϶:Olwh^c|/$4eBh^1Cl ǕC7y{ 1?-+զsJo_sOFG PTPթLmrm/@5% S>z}U`VM>h[k۴jB'@D^zx࠲םo'U)W .dبYW.Ɗo^ɥ15%ɵ᯿RwxdSD.7Mbp^oάny& 9l7vV씩NoNgMwXn^Q_I{iU!@QwN%aF>8kab $m:(B,Qcϝ=o!8ۏ;s~ASy )X? ub"jߡVxeٕ&cuڷ5c{F}9ksH雷VBʹsoIf_OQJ1^ƮiSD$IA:=ˌDr/91jvet20?=?Λ 7aj1)7fE?A)QD`0ovul?ny W@$&=!UskV(0fM3% \]VЃr_ʘMQ4\ wHly KcҘj#OQOЪ6I#j`pv%!؂@]RRH @z4+*$ b>؄1Q+gi~t8oL9o9(.LMTrM%'ܬ}$fsC$J$ wATK6FBszʀ>V{W=Tǁ-Y}tđBBPWijR[΢ (/0]uL!ve(G,{;g'XQ"FD^}$9z_dTۈHsii_T~/?cCGEr*yV e nذw-*=5bTUfloػW*Nk9fU~s-jYUd{b3/8c╃Mp=8[zՎ?GY/CqVR>{_yy'as~t Ro.7| `gJeK?[^eU/zuMgkmw=έ" I猛{/ςpnge aLOT6Ԩ2%^3{ŤdXI^}A%3/~y ]wvE?D!ڂj'miK8BawK ;ѣhW3[{^ԨKOpRo.M6-mE~J[${߈n9 jɔ% ?쾁%^]ٚ?'$;ή_kq]ַi^-}7  Rslqg `lwjeK>[XFYgykimZD70Sox{{o7ٴvgKnzL/rS@F]z}36H˶nي:U(E`xkœdnԥGߧl8ll}&v;A(:5lIڝ+ է77f/W*ue\DHE֔Y{88g 9nYo+GR7 gl"'RUSTqSxkqnkGϔE2EnQj,(AQ&)pfW%F׋/ OFssHiHY$R L-6Q>Ū 0H y8*V%,%#ԎFylɚ me׾M+ef̱ܼBdGHՖH P9vPYm/+\<›ɾR݇NۿeܷnjsFe+6赤 doPFˁWo k۫rX":ιb펃'N/F=rv=y b5$XCsw[/5l]$RunQtDdjczVq;w]ϴ8A5)Yo}..x1-C '/yt0`n8GxZ#"ÞlmV州lJ@B8nofT{^tZW?fY3:vG\d|i"O{r=kua`å/C\[ [W+i@\[ղIˑ;D]Tlަ^ȑm'ʛp_9 ((gK `v]G_ć z޹g]&԰?rVܰ?8[@&8*_ Ȟ}NQT&cLVį騺"hxJ.g9WE|,9P@<{ؽO a [W/sس-n$o~( Lh hjRRa7XkJb񭲴lcCC乤13FB+?Upr'1o*Li_DTD!{42zoo_"쓐Bl@T/;}kwfv T"03y@ 2;{zͅg{?s;fvwȅK=?sʢ^_rЏGy'/&Pzn_41 aPSqɁCKߨf˱@xƑVGj` BU{|jPc~}?Y͚kaV B)]T;^@հH, Ɔdω[+׮ yu3(r (x;z=>P\5T5E\vE+i `/}j q%#C|jrA D3c4 X&iXĚB-l}+VMxT!@>,M;})ӼԎT8?7X,F~8]VB}Dz$u0ΖwR+v&I 寺;yWzcyܜ8iB$\R" 46Ӱ3RҤK bnL4򌔱4i$rKb a۱Wm={4)!JQSoŬAd$'=#bSrĹCbȪK,̐%9ɐWыjЀ r( $Dpdfd;C\@@- hj^ w+ic^SJ`M:4pS1ChA.,_!l~lb86$SXI(.AA1I, bb+!5=Pg%Ag UZH:D>wQĖj_gPby8X%|W \I=+U:sQ1\i^{ƼF&GY7 c'*@b/_NNK17KX/ᔊNfգUXꐜ f$|gѨۘKer9̃z> |lFoc/떕 CEn) Rqn18r] ;ڢžS_xcOq(=Z[>aH*ɲ@htpo0=9,9ƪ]I8 __~mV]ޝū2=5l鴗.ON$,zPb&@}_{r7KJesC<=G^2g$i"AB纓,<͐Am:% k(^W'Jz2fP׊J% )<󈦧:%42<@Isխ(PyIBC v@D*:^?&kef#ns:֟7Hl >qt}'Vѐ%Z4-!2eX9:hK듊S.|Y(s(ZiܶGKU5 ___N)R%/ZDh% ER^xt&)X{uv\oBRNChG?&u-wKI ȽS#ذWN D FRhҴ,}q\(1'1P9VedIJc@*/ΈF:6p`k旕/ki(XTR|6h` kJ ,AJzWsV-:,YŮt ɒt;;Of8UkW̔@`ȯ,,S,ҡƊ{vI$uOѿ,"nM.ɻkh9gwC ++n4Y5l?ouo%ZfH6Սm`zYxΉ"̴=esmZCx^sw&GBgsÑQ R7~%%Tw!=53)MH C& |6 ){~[HMJxP~;F>ↄ`B'Uԋğ#݄RJ8*W/*3 ,ڿPQ,Rn_6C:{y2U(ޝR4-U er 0&Ϯ*EL260GȏIer?|@OGvJysHrf&'z";YRӋ%K+yKq1/c躪;2ToPR>)LLɳ <٫sTƃd\yܞ?3|8q@:Hj_wQW5C`[ۓ0꒣vcLݸ7ފ)I-v(&061}SjDfd/HM*Br0Y/lI[{GMk;\e[ۏ7kKzOُn񼗲+Y{w -v 9?64|{LP"VC3}?q_LAw-_>vT.Q끟>e?6f * $xx?+8AkMpu1gQkmoEm m΅^0{bӫq1DSjD#ȞU?s#!\] ͜-5cliX38;e$o')-@D_c^64X;Vc \O(3o Sn8ܖ4pWu;Fʆ?cHb -؊Dq6z$i3娳A56+!|/#ZH8t|?u5Mʁ (i>u$paF q[V!\f)[gKj_5յ,1 )'ٮ*+<@D$jd^v `2ɱl *告%ȩ 7qQasnEOqa(_gA+͢U &RH6sTM|j"~uELq= J]έQS0A =. }:uΏRu: bpd>&ƬRN!O>cl`=43?m2ЈZlѠ>d*?YMWcyw&YC ָN4}OG2.唽B?p8lކIFʏ=u[g{+W^V_6 JO}GJZWM1m̲M2.մ}XS1 CsՁ^N朎ԍ_Lْ oo16,@H>uUww~urm&W1Hdl:j׺5\gzůwkq g^J5%Rѵ9MzԯD@q%ιb2)-lj3g(w],<ó'gEi緬lb%)䷓}?ٓڰ+g &#ߋ'̽VDf@ W\)[qݐklrjnȿcS g@?t/dSV 6@I]Ʈ `'"H!| }J=5??O)"ڳoZ8f]\x'TƏ]b"U*Ϗ7pae:`cYBl|r̉K7~hȿmƄm LY#S_`OŔe ZZ,gܘ~N6!e=mSOXn!mH3g־r{>[8gT[snfrܸ\J[Eh"$nO4V1΄;l.'i˰B-ҤK&^nϖ dh tjc՘%Eԕn<5 (EOvZD" ˝G"^Zx(E n "Ԋ>FwaLbJ>*$.fS؉^kuA5G]6/ђ=0+Қ>+])-}6&ۋl%L';N+YqOl!E y!jnCJ׃|"1Bp/VsQ"+ F(Am26tft>iUdGD0{XぢF:+Tѹʹ3C4sDٝ^~i1}jڏ4`9J p&Ʈ <ˌ]X'5 `ZZ] >F;S_C.yN"ӦE|i:udED/^}REr R!V$܀}dgX}B>cKB^zĘp?DA(Bt-N@S'P)nzW)$n|:ޡL6rA\(texĞcmPO*Ѻ|#E!*v>dAj92xZ8m\䝔NAлO,nG!p02 xj O1?*^K~s!7. mޓ>fB e?}\?#? F,U/**" 7홼۳.G^u, plV,W("$ɧu"# W>n6^(,*"~/ReWߪ[%&UݪʹG{+ 겎&?ѭeD—;9#uKX(bjtFHl]<&$7i+!R  1_< b8daJ0#ir}!#'.6jHLL = J5 }h[,:Q;&G+ Yx$PJ*n T,z:*wTUWwk[!2~un7gT#R0mhf3'5!&|e'O?/,z$dx {L+M ?9 L;*Z*S߽*b^!e ȫ%GyseHH${ BnAe$TlS#FXFWnA*[՚hC1!Tɕ2k;ǾG=E$QLԈDr= Q2K{O[n~{Pp~ƫj"S_[`I;E u:R=)wm9 x 3Oź^񋢀i65c1M؝9ޟVF[qPMSi G yY$>]AUXM>MIyA_Z)゙Xt=I|j왭 ٥@͡ >J&UB # 0W$CzUb v)*FQQݢj 7c~PwM&*A$"?DuFi3ס0 m)'"Z}H>~0G|%l9R4Lfxb,-Q95@7jy$5qyA]_dN~U)1UR4w ` j:/@2n(uo<:Z7gކQ vt hqWj8~;Swa<3TWzzڒO*?(]9@& fY1tziJ-"|fR( 4Jf"zE[˓Ta4oj[% ~ZTM IoCB-XBV3xނp&F@OyIjg)C1A/:K4/xT4(h"-,6{;dEP.gIbJDjHiWbD1+=RY 1# jn:#жG//u3$iRܯUu`g@߆ D~-sh%}vQT]R W UTH T@J#HUB( H #=Bz6cܙ3˻?_s˹=9Q8zqPCݑɚt@@6ʻD`# {-[ l*{/Ž"?+G^VJۗpV)gi<6ٯ'Y8$^Tm?KTjOdYR,V0*HW& .'}6J⤬đxPPro{ Q#"_QC:W%GeH<}jDV4jw IDATJrFm[q=*} Jާ+(e'ӿCt@ 9ʏNB^X+*wS ^U%O#Қ:D"''+ G"<EztϨJcZXgdBh3Ubmr wѱ'fY.2Nqk<0/%ޡomkzF#9:RI̚؎O0ゴ,g ]ɿ8nWi"2#LՓ(囲ݢKt&{E!vUY|ŏɨ>ơ?`Ԗ}>6^2uHUWɒ"+>#U_6J@6&TiqC|i/,i8mEgPkugne/~j!Y8Ac~{Ƌ5k77 ֥&b_sI5g8ƅh]H'݉9wOn%'m@i#?N67hޖE^;‘ +h =Ȩׅm,>~t[q1mf quay[7]o޽~:-{ *wicWEDiTzDZ#܈{d0F<]@؝{Vئ't­ގwLu Ba׶ש$'i@ iۖ Wc==46ȥG@ͤG0rk-zCYl9yZ͓;v9.iz["ouȊ9 nrc xP_ 6:w5jD_ft vE:ZAά_]t-*ÛVr 4{Ӊou`m6]q [ƕ īͦ7F [E5AD'`EӼ=먰%;tFxčt rR h$Uzc\}Ms6y-2t mGG,%:R Gd7A~V걑,Kb]SFmR',=q|T-R)T`{[n47Hޓr4:A=y<}H%Kur8Jص$=(XeYMuF:pXE5s6{"j97[Xc/Q<3J{XvTI,0"OZKVP-e҂ GP+@N-;ǒ#\ Yk0-yj[d)T:ku;{Ӟ.ͷ9B̴Qw!J`ģgȔU^hL*{6jey7&CtOj=up^Z/LeƐkiFmM0jz.[2aǟtْIƟN6k ^5'q jܮM?BQ.J.4sk= hiݭɹQ?V>e*lz@Sah̩{^B.+"_5Hk =4,;x>:diko Z'a~?ݭi؎6SU'b zDzsεM?]w̱{# Eʐٟ(hE&(e4 UhkbN[ yq=_ln?煫sBlO2x8mk7y꥘ Mw @Q"&Ex*JҾḵ^dB>l ^HkN/:7HxeL)F_/O_1cw$(@iʲ$7& !=0$+DK)AKq`tA#/M>_IF.5_ OAO~ ~9 Wgٞhp&xL,ޏ•*Nx'5xd}̔}%W"G#?oUE#tMNfBJɃx䨪֝74QnCxPAnz49 Y<,GQ8 F"E 0_ P3`DRR-EJgQ [PcB @gҜxzYH5lRyx/1}LR2xb.ZaYf9:s}_}'] &e("cO32z`_WOdh ?vEv8KowS^7_Ūo# {{g[h%I(5?͇Aon3s߉3X{ٽ噦Z$n˱k/x:z8vܬF.5-'Oou zxe*@"B$J1漎ySF7`+oq8"vm94\ҵxҕһe1/)],{e&YG>@Wkqj欭gQ[lPFo] ƁV!"DjӁ}d󝑵jybs<uU ϧvN lú5+Iy%n<;wRڕHA;-?Hrv:׹y .W[BK<[=Sޒ>}n#i*m-7uc܅ѿǛxԧeE9h^2H ^9?kރk~DYс}T/@D*^/3lOLU1w HJﭟzzآlo6`s\!').s4gDmm؂Fwj䧍IT#w{o$͚} ]'e&+<!u̳e!usJ4NFz/&=fH0@m\6?-#Au&7D &VDٔ! k{`U{ԧOQHn\o\3TȤmO6 5;myl8o&X1濎>1g_,_㩃rCjUl?7wAhz~shD\yަfpf{S1gwQ̗{a)f n&@pڏ]@o fgNyI"@xcvu_p'7/ p5?S-1UwFWԚ,ykɌn 6M4Zr sѾc-Bmfܝ3! u*c~\orh|gC%k ?6/{o釒헫a|op">]]>< wn>g-85U?wt7 ̗ ea)r񽹋G!̋>;^X򑊭&a|\ϗK1#Wcx[Iϸ;ؠɇOL+ѢcԜ|ϖ/9|":Ovư{d|{g㹟)xF\ݕS>?ƨ% ml뛠C >LJ{eƉ H,exHM P V\aX?P`wBP s,O•+!I.,~O#(4,kfRqHXPz7DvA|f*UI9dۋ^6Znr@my5>iIɋŪD 㣌-C pZ &+4jMjy}fA@u qѾ[PQWz٩w+z֪am[܍ ߿־!@B8x;o^ٷVkho\>VVNܥIF#HW,ۥ}mh-(+=_-7rh- D,*L( Qtݛ$-ѽصΚ ʮMж۰ TrӤO76|g^3TEy7zN˘GQYg5&*cyV2=۷#M%U{>_/{|c#eGMgJ]&1| ip9 ܿ8n! |U94LfFjxrVH8VDĄZ[Y56RcOnZS(6Cm{iWűw |(EMEG\ڳjJK?i N"+9H%T]q4ysc w8cLY=CzωMs~Xl H%p٭:vhP{ |Q]tHLOݿf9GSlg].]S7dO=5@]^nN]votXF>^Ը6f9GSB*Wض9ḳ֥֯o!{O\[Wn^ऄ~8d}n=XCD, k DmHIszX~Ü/6y;)ݎeG?ܹSt!}&5>ra0.pPî 7dɲ^`ig4dS?}a6/yф]mޖ[a?i{;v ߿oGZpB{<JbئmC;_wxMZL?{r  l:cO]1i?qZ%LW}JN|w$,!I~ ɏAB(k *Fa JSA=S>ϋ^:k}oF-EM'bM>~$l/] jEhQoq蚵v8z睤"cikJmzؔ]7h4ۓx$lz{Yt7;"R,;a lLc>Xvn]W?}V!xyqr:Q6ܫ4m/#Kuξ]};KIUu]4} ře]֞=YV!x 헥S֕f'N3q՚с:BYWv)Oٯ \68su]va}7s uBlL]̴bb']ןK7B$(\ um<|D]EfIL4B*C[R߼wF8b[tb$~5a?5M76n*jyM#Z'|q?^>íAwwzcY'cf*lD4 }5Er?q7G&}J\?'Ĕ]M&G i6"ZڳdF$b4h+TԻQOSӓ^9 #ECHƉ[ %2ѭAwwL2 iD`녘7v:t~4V]u:\~&ޥ~#?$xȠ;O&YG觩I/T-g=`KF~ZP,MҋUh;aUzϟk<ݵֆlSd(NN%CAI'3Hr<[NPLJLIɯL*qN2f4O~Ou´2 2Ϫ^jψ%ȞBj;}o6&tI/{0Ujy(eH %E5`h WE'>mhj;[F?# 5KlP͟Wi\HUAU@^k&{%Fs9. d\/<Q!P)*Bb.H7.(vGR nYy X"S׬FE.^ l-γ/g ʖ,B.+g沘'f իFRO%  eϲLu e=K(F,EYMߠDV_}^e,JK"kz4!kٮM6톯> ? ^֝&Vn7}H_.wc܁! 6ݸG+4zš/?Zo=JӡeMt郧)Uأ1&}-=|R}#Q&UAV3M*H()F8+- vtΫ5 )"L. 3REj罉\y5q#^>zzݸ7SJ7xn|ޟWIf|\ԧi^]_-E2eHRov;|ߟL[ 2=Mĭ{El2jk;㛂7.h6I"Ougg򒁱P`Saw?vgGR )Ui7pD0f>ySƔ'i~] i:hO7b?}Χn33\9[;߻zRvWz, ]=]5&R@3uUm;7,fsGiFVdZJ<G݉(b y}bB2C-␲r.-&"QX(StشV%f0GgbʛM@*j/4&wgQ޽C0웜`׃0"+f^BkYxOdNsXPEf=ffhyyMlJ6'< 񖮒7@.{oGj.Q>鲭oE./?G !ɶ hkծḾ6+k hIzQ"btU((yE|sR4W`%-FTxBX-[ 2ܚSJ:T4IK8SOq)[3yi}ުth\Q3>ř+] t&Wq6іث.k2 *>@)4 #D-MHz|:+:>ߨ\K̘J 4L<EKL‘NT8Rѳ݂~ |jUWt q^3x^@h$ 5s_vU:mekc5+]1:jKSxyi%"w^G(A]#C4zrƄ;A:TձDd 0uryy&E$]o)橓7" S Єy-m[zcǃG |᫇u[Uu<R s>$*p Lhf{ Qf%{?u*,Y^_"h+xs891E=g:u=($h=`vL0DG_@w@] b3M /XݰΥnG-ė.) -N#c yp8cĂ:Xͣa0=X:O@@[1ASWϚחÅ$U~sGi9)#-kʐ8X UXGrSt.#,Jȴދ}iSE|6<#RJ Y"Kv`h)Q=b ][K0E,ZJQywХ2@$;]˽ɘ*AP+u.3TeCn:jV"'76G9m,ۛeOޛx)<[14kW<R␫|Sr * ]d;4B8jkTtUمש8=.!`ɰ1tϸnv+q t?ʬ߾‹u ģj5+wx%yRtw̺ BWI>3\O6ז:fI?v3ė'YŻB{Z~ZAϢ*(#.)LjoO{:78ǎ<2eɬZ]ϠSd~Ӵ)l{="O_g0N},RﴏȐK_ޭc3q>k iT~Ӵ>JꗏHr^Aa,-{v"!tQ7\M r ,L*dvΊ}^ԁ3%-LYneUyI3K- 61~RSBo^R[_L7cԃ W̢t y>FJ{O|Vn5xϗ.G9|VzbAEEd{>K*irbJˎ'C`sic%?ROĺGB [Q[MAt«uBﯿbn7}Lgb_C0ʬ Pr};v-;qOI܈klޫW2q>ZէĞK3"3ROO>:뫞-Oh@8ߎz򗾌4';ߪB(.7exRGiU}ƻUoG='IEQi1Qdcl%'=?A^x;jHuzvʍϛz焧Utԋ[x^J~u ַW*[W.aRO/#2LصޘO;\MWmsSgfDIX9:-;#W稯4f}~z`3߯~rlyȿT΅?N7{iRmϞ/,A)1Lt-mV88LC2EyQVX| L?LaYݕLa~ }D@9l1Qk^ozľm&- uWs[eΔ~*2=YGW=v`4˾(7(P~():mM1/N.c,Se;nl(+E"".oOݺ7 ]}(o#ެԅt3ezEbHv-L}̎i<Á1`|۞㛃jsuseÒ=1&YBLG E_^+. Ym6plm,pXi}AdpbD!mC=Aya\,57y;. 7˨4V?.?=cLU o^m4iޜtȌ?VIgx|,|joNq`6%\ZʇtC[.]{j/0Bz~%}¼7ѿyv,C7ώ\:y 0_{*~GG笚Kgz;ƁҺ( л$aL>8w߂kvr_\8{o?FYc&~7ߝ;~^Šp[q͖rON^*z 語353`L>0wwrX՞DBBe^~42#\u8SLD,B;H(x=hx?Zkď_I#d:QΪv\KD`yǐww Zg"3w'{@@oLcc"q{WlY׏yi:zw?[>1Гb/zEE) ?M%79u]s if=Fߞ-ۓ4c[󰔡Sv̭ç.]|s^\XvcB~W\O;220e2_f!:hRqk8zឈ13Ϻ y1R6]ܿDL4$ƔWpmB- }S.BE]yڊɶvR,<0ܻP녻E3ZO]YѢc,d̸v?->._pՔY%sXog3ĢqlQ.Zb0y|_d,bꂲyq7PLDXzRiĦj'D ʉ)%&+-5Ȍք :Qb +|E8*@@@ǐy4!4EV* s$cXPrgvRH2¥ QyW2=@T,`uKjjHԡJ;7Eu/S@~raa`gw}Eu;ʱcO5X5P˿X}!g"MT4 g˯Onȴyfe̓El!L@e |ϖsOvԳ<pÍóż?V\;x-*'FAzRty=TV&Ee$<[|k,A'rxORN9b<[|k&M(-8""kqw"-,W];8 ).g1R ˾r.HCD+1DfT @ad崡U漺XR\Wb,!pȦ4K %]jr_" =dGP/]%^ J81TjuZB ɱD4gBzb|@^͇qi!֑6 .#8'MY$4%bp.=o16S̔YFR;FL*R+JZUERD k:v)WJ-IWU5.vҏEr Ke QUn,]iH@GcTջQ2đPSW54,MEEo4سB&fcxD<[*c;2,SA -q)e 陁+{DI@\(V "9Bs8?ٴvПx$7݁O1ԧEF,MX,U&J]VRSCܯΊ 8NFZ`qÉG|GCgDdTQywܭ9O̙D (McMT=(eJD @CvW8DKҎ* ̮*D\o[ cZG @mu 9ϫPu;,w8Ӳ 2A[#Px%ꖁW*I (t?6@ý^pIiEW2vDnjB5<|=A@1~JDӈ sKexY܅ut$FW2Dݙ1ԔP7qraYuF5QE++&ŒClGVS ҅ghbӐHN[ZC׀V5)4A DmV0%g.K5(Uy~:!b*=JHWߥ]Drq?@Gdgu!^?Bt֤cK@)W kC#bE(09V=m>(*N ]M"/<~hBq( 6Dm6DMVB2/-2}/]F#Ca|"U(xD!jkx!J ޼&KbN[Yֵ3o7^☆_ڤ:8>n֛͗☆VT!nswm4R5%2v=j+iWM\z[wm`epQ-;"K1xKPy;"]t vB`t[uw`X8q=\u9pܹ~n^7UƵ7hso:voD_qgpBU"Lm<xAQuPTNV'w'T,GD9"Gfu-cT Ft yjۿC^/ݟk;|7Nl)Hg]nM|iףw &F w޺iyݾyZ͟;{#W_ o>d 1qxATv{۳xεH-ފuz._6] ƼJ(/MFB{ss^Y>fYrHDvQrd JoVxLK{Gi-煃*!^25aH-uupȸC+Է^ekF4!R"= يqgHͬCM1o=WD>ѿ\۩h3 IDAT xS@Zw^m zub*Hy<7ֶj~@ƭO+~9ǭRIPPv5?G:yxxhWحk7=lP#o+! ,uֵg4AD愃]WjkEǩ3f/?#U}9dD;[dP@#=F5nuds`feeq^쫧w^x2ÐFF:>zߍ׷ޗ2O]W-^`0еv!5-3Ъi늈|Ao+9GtJ)AGC"tc^x1o.wziɇ}m;a TSoE9@%̍<8kƇk=ꥥFrT07wq{x.OV|*Њ=)5T m)U_}qǵ3}嫛WN9zGe/T}u.eYŘ @ lJę@#)w24fI:h)"1s(Q]!y#"r*C?f9ěQ(T @8?JH 33_'*,AL*F6[TKJ<+"I.|B{gٛۯmKlRTeC봨Zvcƽg~MU@;JI$h9JX wUKbo5[U`phl4[3R3ָ$yqؓjfΫb[* |WF 4B30=e,Kƻv%1hw!>('b6m^Djs)YGn:mÊMYw=%>:NW4y=!ޫyiǃFo| s[xsvpNWcJN{w8z+;?\4yte]|1r@i?q::>m#1eK\BLn}ֶgcy-NTjOn/hǗ;ĊȀ&'&%*RĝHuj5@r |b*o󈩜e%G$DQ)T`Xv'@PrǸJB0D7 o %e3b ?X΁9ݐh[tT$T[/憷nmAjińQH?Z+R7\YV!x[\Q]`gQL-Q#F/?o(,6~_iiq}yQ[=a'ݪ=z6' .@qG<8Էڰ D*on.Xhv_'2>{ Ye~]ׅ]Xo^9.|;wa}7}f!x{sD#B<"2.o]3oI?Vw5X  $U:#D4\aT6cKG:Td,4Aљ]gPNIDaWYQ-LO׮j/zy+˧E p1#kGV~ٷbq$%=>~]ny |*qb֨"CI+ͶxMÉ~r@*0@{~oNNϵ=5D+>\c512ގIFJ}{z6{3{usBid^-N="T*BX2Q _ UAQQ;(d܁"ﲽ(QKA@c2/g <XqAՉIT<-,hUQ2Jfvj åXxs>оZN7ƗH8/L|Z+;?(|^ZJdBXы83- BXXA5Ic8ҠȈN.F)}eZWi.ԪCs\^Sl O3E'vy/撘GiFJM;8="3"$yKH98="KgZ֨EQ9 +.غWp?TQs DcT9'iB"Hi\Pttl׶uv#qj感X}3zJ1~|6? ]8*K!=-=xZz:-HёW&eggW)24FDZT\(1=슀Cx-I' =p~ƢT>PIy;eY]B^G2"Ӻtp^ ͆%3EMć4cݳ 1˥M͊\D!o]6[XSeu y*dF]Ƶ=|'"7[#[Χ33g4-j{w ;VzͩPtx[sYr 6A>'Q+:Ro9!0$mJ(Oܱ [?/g$"!n;ua(i҄k[.FLiy eݑpwE6 "2# iU$Y!qc%ڳ3ޱ? 6F" QoO$ 1gR&JK0|QF!xzG. ڲ7fNFBK $ህP߭qϋ\4k{ ͨ.ۉQ?뺽oE.??\5~5Xk4l|:|N_gxTb-BX'Zq;CySٮ*1mb3+t(+!ثO#B :t!+`BDJq EwsѸz .73֟_ ?!ݱD8řtB4K^PYc=/j(z^5Շ9E,CGɏ^FI"]OSJ& AUb]HEpL[PQhvAA/Sb<#'B_맟b WF[ O5~O۴ݬr҅2ZB@c,L kl?AcANjvlbhC[Gwnyxۮ 3]ZSP,$-}b MQ)2W"J JTT%2&"T>)*z}-[OdY>#լ8']v_A[ Z6z[2S !{k]@ۢw֣?w<#bmt7࣪){eE/`ǡ:v~D!$>a"~HI&)mXwϐCa24@pn5y yFQ0m o.@iK8AFԏ$%Y=L2: 4GyKKWZ\Y"!1 /|0óNK"fk%W3<򷶳ETG6׷li]WRL)5%UHt9[f֣ί>(`_!|a=1 k.5qѤFn/v]{v{I.$$4  | ɯAhs+Evc8cޮ,{z:, f{Y6t`ϙD6լmG12/YNHI@ƍq 1W[NfGVu7S:PE"b*K#Cgd¨ 1D(Ƚ0u (bg^ũ3SUvˆ@dgRR3BNg'dLc*zYNSwߍ~Wƹ i %P4c53=E1tNJK,yg̀ai}Ld{{lg^J@sZ[kVv!u4Rمh|:n|㣨dPP@HEA@xE"*B`HG*B U:)4B3)O>&;{)yΞ;3Fzq֛ѕ^v*u2 @jy$!H#QYGLFRÈ: Ծ;T!J׻4xšÚvv%Tz;# _ R rq}I8? zEMfM 4r7&=G~K4OT xƿٵc40Q9ɇ8%%f m\)1#Ⱦ-ck=sd|k7]*q5_5 _e%rtSP56zxlz5R}-5b}8m7Kݗ-UZdPhܸso|kVnG$)03=בx/YQ}ZauzxQO׮ݢկah-]t8/Obc[tR r˭9Sگ?z=c2&]ޣUp%gt{/5jim;O^]vg%k 8qPGj7nCkNaփ_pl_710JRVO׮ӢkdYDKn\;ǭ\_޹^grpn Ҳts'+\$T'TXS=t %5&bbn< bI|JOLhyR"G ;Dބ~C EBm}K^DضI\ E(3e=d)\8ئm;r N hܷJ][&喚7 #5xO#@YfBf\3Aw6hĠE.@++|6iߴY=qĒRR:B@$,|6iTŠk&\~`<|k!,l f.u$ȻfQR Y7O=w=Z?tfyd>qed,>`2JPFP#g|FN?~ ̑3ǹ_ޞ0ur]ܔ?m ^Mƶ?c$NqQ{WBET"o $j%!%(H{~ #,d;8qԊ+vPRABev\@oΒm/ey繲 6|'(Hۖ0#w :A=9n?xwyNzsdMYf0nټ$T(u@_ǩY_^1z\1|ےׯ/IiJ/=.u_' _ni Tf*U QcLIfV0j{+~C*|GM+.0O  ̗L+KPTA$麪#wIcU+^+pm+ 47GpƄZ" 0P4 RtO&]5;RnL%QyN*Q#: N@nIq]a&L]96yRjc@q fUOBS(% 3G+%ϟ忙U,<0+zNn0`" #6,~r[<Se+D!E^{oE-fK 4v5:GQb~7p\xы-4giPჷDQt zf@f #J ڌfH3]4"y1E63JXL/DE6UƬSƅHCgEו \u$=Α|Ӌ*b22W6 J:]Ha 2|y0L]D5j8jlK6nfGr'Г`yKu8R]C-SPhk"~UF[z ,M8_ЬB&PuS rA {BQ\a`"ڲyT2<+rb꒩b$2v V,JLz}N BUWz纁z\+@#r>hBd+Fm#@!ŅL෶0BLH=[&^RɔGk{m=mhpܔ+ҦjU3= UlVQ""?WXeϋL&cVsd>#9 h:?;ʿ&gkR N(3b >1HJ{X5f싡43>xˍ6XU=2"^Z!{y G}d 0NCDcIDѹP{h{u Ż=MGzQa~}IҵDf!ѣ`ׄk`bzV/rOuR\f v2$:)@VKU1 $Gm?y}ҭQ(lbAq LYZ " %H T A]< WE" ^SV@,9[!(}\EɌX(LjN(U4:Q&Aүom>0k} =E-,mD4:Qμq3? Dǃ x~ *7+t4frPh &A P2"gAkJH(pxƢ LTÍ4ȮV`Du* GC,Ⅴ8̡s z:*b= ;% @w?#2p[ &MJ^"}>m|6yKו$sCҁ}",h"e Iވē߿}, ?ά1^*b@%3G@BNq_.>(7Hآ bn6q`UUFh.rWbpֈӦtk;ʞy3o_|ƝḊzGwӆP\)3mj{A6{`|y{O,mI3o_|զ]n3mK왡&ͺ }O}Qv>3tٷ])Q*D|kn# r{wM q*ʑEŻfϺhXF̚p+ςt8,"PT(bWsK5ߌϺ轾;J9{r­ 2l9H*lc;FS=EP|4ӷک9/leFwxogߖſpDl_ ~E,J~wCY%|E#ns ++ R\t$TL5q=E"9QR'rrGǬLjڅ=e rx l#U;A瀊 `HXM[[B-_m|7Rf+ԧ/|ńH+mՐ "`kq*eM' J\p ^85eGNUƻʯ_: /XpY q]'/tϤW~ʣ4H`W,thoM+? ^:e/<鮽IL^0dx#lծ*\TDR9^]BlG6B?~ZUό|:'!9g/Xj٣% c}j=~}fdNu|{<;}{̭UVOK?jQ];%}RZU3W܌zS?&?jvZ=?~9uނSh˻|ٳϝ9 ʎ:SFU=8HrVnGTeK`NZlΏ3KMM^5}ndwP#fcrSKg.ۗr1ݻFz6nÝicτ'^>i5O1ߝ.=caC->\o6U,>ێ6{_:C}_`cmq='*WohٶhONꅂeyYz#rwuoҦ |_8# \[Bwڷk/;0?~q^=WQsF7 FzY^[.זs<ݼuvIJ™$%Q"&0] ~Isק_6 /eC?w7K܈(&j{ʣ͢-*ԩ4ޏED m^xH4 X`n%]z-SlqZ\׏drڰNG8Jd.y_}{on׸- ~GkHHu8|{el]Ź-x<ImZ%DDaX8lr e;գR:/nmߴ#"U*A]Οw4kl>dX499O\z}uɨy4 C^譶>.sH%;MAF|Yw܄9=c9|Λm}G?](U5&~^yPeyelc}$^OALo+T\򧰽 p3NlX3"^ ]-}9'KKIAFbwcI1b̙W(ˆ"dO)((x\+@=O2y!!EFYܛYm! Jv0`Tkc- " 6xV er9LR)R.d5Z㉙G RHҍ{^*I=8r -OKPx0 0ێ:CpxEM_q=Qd'5}CpxEЎE7ZtҪ%oXWaP2@?P>oZ}YUaУ_{c\^TXBդlW5F:N|۽w.oнɹ֝zy ukH~տ6K8ۮ{ RG݈N[*rm[e\`38Ot{nqss6|Ւ[dIz~Jwqќox:"vP[#6 D`(-}nΦ-_/qɿ8.q me; B œ_mKr31`nkT]MV}w>zm:p!ۯ!)FQUr!޷Wv}1ܥ)G*CjMr1/諭; @$͙rA*ʿt(J@~}'}?[.{%]wS>׾{cY?[0;qwWmE7:r匙ؖYF@]~?skOn_5_l6,wU궔;"eqUjuLE=!R*=C5a3rrJӐEa=TIʪԅ,NwK^QJ._2'ߜeCF C$bc:-$PícQz&T.H- &c]A ʉIAQ9"Z2- qUuL՛αKv[{3³y?Sߒ*~͌BcR $?xv[;s<9Ǐg(~ڜ6 t\5u sofB]]~*hIb78T^ [V)X3.í{38,@/} -Ѧ.OT}]6I'`Żo3Zw則_zEK{6#|)ߴ©RDEJ/t8]>,%Wz)v]Jw! +u"6tJՍH9r^ vM⫿ym{fO?zkAӎ Ek/+d/v^=J q2pj{QnM(;1Ly}|߂;JJluW1\f†TP=6C\+EMymTƄj\(T07A+刼yK`>z^f֩Mc~̴4u<@gs}DPVtT]sKSAl@3v$"z%/2(+:w*Tm mY ߓ*F&~?t4q]Z.3v8 Q7!cj#"Q n{7RVhP8ȕb>RD熑c׊(o>`:bVڇ( D7D2сDmm\RC N5E,#^F̑@b[rg ,@,!\qw_N҉jU4`$$cK+8[&OeꂴCY!2y! ;$Mx`qM.^ 1=\wO=uf n:xG' lE)]ۥS<dlA&9:aзg = o@=v)"o_̓ZU,;-.k&"; H 4+ӄ3WנCI$y# "rT: Orȳe-jJo_<⡍Vlˌm] WVRӁ-*b8>\9I:O[ U<ڭ{cv?y?yyІ< OT6O=oSXa@fN(@뒝wN ׼s?B~ N0R(qg}w|pėr$)Sg{%TI/'պ[ӊܤ³w|{6Ra8w֙>e}Еns/?k3|+ nWZ|n~Wlq6krjͤ4 T#zr!X&Ųlun4SvU:h)tE 32IJ=ꫫk#xoG(;"Zջ}II.R+ s&D-Cјl"Ox,$ܮ@#0֋!/*_Ubr_T+Y9 &f0;fNʽO8{<E |/}RVeJϑA r5gD5dzi^ ` kZ?8ԅ|R{X$ԷX*H;PyUDi<:d*e{~94i LWxL%/ \2)(0,)}姝 EV9ӝv}[JD"(TPpZqhZA^0ۍ;ʿr843@KB !H@r\E~ԫZ_w䧞,ܹU瞺oԓ]cVs.p[D@(H;XYwsO]@VZXuq~q]r䧝x;I\pwxW~{ާg>=џp!>}׵~uu~mTH$`r xy5kk?z&W$F7.}U @xfdpeW>kĝ&n ;ܮѦcÛ7oױMTޱy{jq-~x?w=gΠA5[4{SRɪ%*ӿ~Ǘ\lX@\߹]}e 2kPxwV PdKI}aU | -9J`&PQc ,~")ϗ~q >,`b$5̒HysIX DI*dx#'͖J2~Jz"ōwxYX¦GoV`ݭ+.?4 bE$u^#=ۢרծ&nT"t~[^9hsW^[/~z-7l̪9xT&CQ]fs_^\#8/qcvUamOn:|5fzon (@>ނX%h|s(ˢ6kbЈ6vJ}[֪#Une:kfiqݢr:t.D<nN̨sDbx}D|k7],v[L֚]eWkyMMk2ѧELt#]m"KפѧeLv5q{n[;տ-cuDe7SSSSSҮޱSIwK;mk6 %s IDATÛOLJRVϨVk5f`˫_,̑lc4t*I[:jQ]E1k\^# ;{gO#4~G.7=u= NMnC,:f罦#{QTdNF6L5__aiZVfpUՋWW?.aˍYvŇS%GNOK Os~" Ym^lKʋ2jٳB%f6ƒJzNxE?$ջ;یhk̳d>:2Gu|!Kiڛ3mT,4j[.ݞֶyw[2`Od t'km%$zk9 kB:v bX,~1O=7-ygVO,{Q;$n- ԓ +߿qQ_%̚#e({3_:C:~QWVYNjKR91w}-q\w 'owu$u !;yʏ&lV 4yqlLhݓ3F7K #Kr|ӏu~1oi~:NO9~U]GBu-}`,fP/,13 B˵#f-`;ۤ+k~|@A @#k?}oٹF`#"]O&l%\+]M`Ø& K5F.\B`bGG%G6w)6w*ԬwJQ 4]ek%j~V.$eW>y̼޶u6w|'d¶.=.ly?e;z(_l_;e=}^>p R繲.1EǦɸ+~ m þ8j6-?wNzsTC'/{3lSl^S i8Z#hkbn?BIKe}5Nj5uC[/gcso[Q@SZF&O3F"^ANGYҠ2r [h,k Wy2R;** 4? R'Ey6(^AZpMPTèD*|;(;tWԡ+Ҋ!;JLHq6ʶ%HW&A46Af\5 b8An.\ҨG4 Sd\Inb"*(ǂRjґV_VPПd{(QRpdk5M{>'MP?dN lW`3I#jTJof#t0c(؃9Ʀ>jrȈzkaeҦ' ZPPh< S萹sK("D)۰jiiTz&<0>$r{QR74嗵n>XWFcH`VPSߏ/X E }A%w,5eq@1}UU=w--1Eoоp "{*B2'DYR1"iǃcz) Il:4dUF 2EzUC\n4ȸ- YB QWjF-)[sl5cj ҡD*dT<K T 0όL1C ʥ2A Lc3(4\3Ǭمogz(DZǯ# hm}?^0*0YTVd> ^ph@G2N̦AǤzY4d!=bHԜhÃ3%HL]~ֈF≾G$\X8FPMR~5b%W7'dଦ,ҍj'4cV/{jI5 S:KzJJ=DF?ő  @Bq&ܞ2k:RU$2=>I&^y Pqlj*(D8[tJz"C|$eEQg>!zMШZs!$IHwiPi?brGd[^(@B~ Ui}OK%k$4,L@PyT`°\B _'u{hF]U͆ 0` 9SPX #R:b|ɀ"VYa!7 ;/Pp'18 ZhfVnjkPq{yAmGy*Ycum %BS!5(}#@9 f\SA=_O p6OsG @ߪN3=EZޙz2LWT]Vv0%h6tf|ԧ替l=]R_V<%\1$J3@A'8Ft䏃r#W.wp$ocI݅dnFi9I-]޸@%:$#_['و,Dn=@U- %g{C@.]#%2bgSkA}3-.13SV*ay߷u?qCWZ޾=P|. kӨM4gǎ?ɜ $hK~9`6BzOD 7Ȇڐ\SpM҃g' 7NJ>nɇ"/b?F> hhR2}pF "F'.qQ^{?LJ#z2ٗ|4)̶AyrUEҔ4-\` [9{9H%ێ,Ǹy@psTBd܇˕BbmvIk6ªtCDЧaˡ?:{9pOp8?r]p@]؅SNٸl\+Ɍlf}nnhG,|`-4?yS>C(//1Q)Wn=z dG}5mI9p$eq#}~A#N~wSNٰl\H|Bq3)mWQ MG̒0N^5oMZVNO^G>">6  :t,,{j "S_6]ɚF,?\ ll. dWu8T2I 5n0enԳo`ϒ0~*wdpnrRE]@l: O=>FZ_-0eӱD{QC9 sjOD9L:zB_!lZF$,Ն/^ɭjD[(e.U&וCɔBmyءRux ;~>㦩?T@r*~#k;3>}پvX^4i΀2{ȚHziPF>e񽇮q:K>5[?wY9G+eo8@IM ~Eg6/Pw} 6-| gKn}O}ɶad]!V5͞6ʾī~5$SiߺM^nLi7㳮w~-49a`Rq|ׂΓrw͋>XT+0@?H3UG`A@-Eiog]k|wuAs/:",LŒ*S;"C~*&+ԛ}T=xeE*n'% Y7{hW#bרvA%Pn W40/*j>Jcy,#Lc Si4 ߞLMh\$AԜl6pwZm3IdT˖5؋-^.W_R3P{l~\/;H+ uo*4BZ:7 m}=WD9|pƵsG\Z9+g.OJMM^9cn7+̟7Y l'ӫrWZj抛5_\ǗX2ͱs~ܺkMRPս _pΜ?ʎtw.7s"9V;W.?w¹] x1ǑRn5_1{~)azݧ.zt-h{zݦ.ߚt},r4iߊa>Ϳس?h,"feA!ɨWUjQ v=&wլRSWXYk> MHm:|_w8g ߈|;we̷v?\/5ntRO+(4jht#6Ǚ]JMv_u}^/c(qa8T'%LAWkrVZj1:N"&3^˟Fh2vǶYOsY6'l3IW?]DZW[l9ow-G>iAovu?@> 2qcn^޿"rSGu|虁/Z-ڝ]VYH+t.iqป F;ꅷ툏<|ݛ6+Jxxh1շvg~>u!:OULz)%%rF7,4d@DhFb? )S5U_nF(t|E5*^&.<78GtywWՈ;Y{%{&ƕKk<9q'2L1K&GvpT )$&m6~cJ k7ZtM=+L~X:!`e "n唍b1=FuB,R҇tzy_vV~{[BZ~=/^TTr>'%_*uFvC^>.; _vu7 Fl<*旾zj<*&@ei߽V~˱-z"wg;bzħ"YGG{!2;uv,bHj`lE,&r-虻ajz[z'(w @p r(Ah-%og qc1=߼wk06{~ "spIaVE]T.!u}3]r6?Q`QwR N0sJ^?x:V ( &t *&rh`E?=fcŵBueA2UO Ykwg*˓9j-PVRNzXAgvPcNg EV?(y -" b̩WHʲlWo(xм15y >ZOf%Gpm+Vn1ix*0, sumKr!8y1PN-AaPs/m;T  7Ee%ص;߶%9arNe~ln]7@zuuWʠޘKO۞@*L=[it D^5}! [/{U~vM8H*rW lnuVyr`Wf>~ɍsU `vⴅWmE׏:|̽kv1M+C~_OK =79ri/< %amUp% W()n: nIB @C-jjN  oC^"ϓ]XRuZ%J+jc8SAB܏P]րX@05izke;s2AαKv[{wx4;KHjW7n^.p:"e+ T1QIgwViP#]PRYIZF#]u޻q)"8& 0,^ A~CZxy|hTrc" Q\|?k[ TGxl#@J .WA㫑kY4` kV?8ԅ| ?i*8M98Sgm^5sO]K#sgv>Oߺ^~m s0~y]}e'? ĠP )uf+WfsO]wP~zOTE@t_K$5jUHE jT&C\!_uqf:K/VlJ5NNP-KcLƤA=v6 :esr@F;79iZAs;$dYԜ{3I~=t=ZX #.iO}+Fy姝Sɛ w M^zxĩsKn|."S@0It<!"}hBIa@*1?%|Tš :m1&b ;m'`"vx8B/fƐ,ha(0 ,x3ɣOU>- )xv6PAE:? ވku9.A~ n_F;eY1Bp2b(V_@ WYwJ4x_-4'HV#qe ^$u>⟮]e1j\YR!+DP`WOm36N=ӱ[=5.3F.DuU&\^\zj[>44~Ћ~Ά֮_^C>_N\}Q]g}|NHݸ C@;]AA5l Oy/7|{#v%,D(:RH:ȶQAV_o h؍čJdLA)${QFhsaVk5f`˫_,Qͥu |r܂IlG8տU:-{XJmi>jk̀l$Z>5__qiھr;:qj^Vtg\Zxzͩ'0‘-n4ƥҙ~ٹAIV&k#+Zވf nX{dj>kt~ vv;gn\k3޴K{ IKVPx&qgqC_jѰ{Ûv%,ЌN}?OpҵEOM0#QQ=s̴4UZXcQRNP*8ڦmkٻ{ٖju9jq5(~CV>Uf\7F<pr\k}{,Za뱾Upۑbk9f@+k6\*Q5ٚ@Қ ӎ+'ǘ C(ZJCڹy> FJ-jsD,ߘopTdeunG oq0X؆HĒ>=e!LdDPU)"NK_}3!muH^{Rlj(GN=V `ܒmR߂"d& Ofbnf Lr'+T~eŘqa-K/(1 JЃ2|6i\xF,ͰcPS]'.Uo_~|;no! +^5ky/8|(P[G2`|i#ѻ+~ ?}rAwM1:UG>ht0i2@݅˔iLXawaޞxl<:dz Wg\n/[U|Á l[0߿Qs];\4lbzwgUeTo@Dvpq T3³L^T~ 镆\!E<1쀴PvTf"kV =8YHsFJ ~Ȇopfc5z UMQCQ!H]@;p3Q /ԀV8F@4*qѬd6kx&]ѮLh'#UD $%1W!n9 z! kCM}`]k9T!?\PC~qL+%)8c_SfʼXF jxdFbDȐgbDuK#"1oJԁMǮQkΫC6XS%w~mRCyM$c=wՈz;B 8",0Z619QEMKowJ#*Fg,AѲIK=iD=P}̕󺗗NNw*8gQеQlG(a< kZ5Qe!kݠ Jw$1NIҴDa&Id K> n96u`*kF IEёDf+Ĺ]wD">na%'ƺyBsuĎ AtC[ŵ/+ҋ6Cm^Q -UGeiyIDD'jc a/8'\G5^Qm ''2 kaO6T*+ޗ:+~VE y)"܈Mh[<Tm1ARfS4co1Ǻ0ar%+_ :QSLf;-.hz%6M$\e$hd [7 +.\$ٕ7:EH(K#H ].hRRA/SCLwv,0s,\+g$98":]β2W?\w>U8ќfÌ@:&AQsVcH5\. L7A jݤzg@`TvbܭBP͋I?(e й2d8 DPșBMȳB*R ]DO $ paŨ)I.p׵.2HjMilWE#ad(eM$IY,sPtENt|&^s7"'2,ˬ)V",i GE2ū HI`kaT;dba9R@ǩєa"*pr@!p#?V=Y*d8{ܾŵ__qʸ Lw6!lt !X NEEЁ@'}^`0(N+RL>Ȝ*KD }u꣍]F<،"j6d#cr }e>ې{q}I-:]ؤ~> _LC6-.elݔj|,eOz3Ob$U),$cɹYzJ"J-SqPUh(2ɩVFG=Lo)zUd$PTbíMuE "͠I_mkV̛8S-:)y,{DcS{h2{}?~"v Ft:ƣtJ7Wi4cn^:w:pOI7=OGW>x./6e[JZN쒼Uo>=@!PɹE@ŧ޾^+:+L_d1o͆*j.I4F5Rw<\hUc<9{O7:s7Vw)dw5Cm0Ș;M!9Q,H0oBϚ)S/mM g&wbrtXe_W6H0ӞIY]v軣'E zL?tΛ;R+ݔT)2!))K}wt}> t^8.mcPQWzmzd_:dK8/^5>e/bC@;_4hӑ{ڕ_K}V6YN̕o}S*N*)њ"@o}cWy֒˯%+ }3u$|D}7\;e0#b[<ا柩K*.-X ]_1 qf[3+􉠨oCK:hr1I@L;b'i+HHShH˞FF9uh5K ʀPB N/da $3eq̀!w*Q! lIU:,3"dd~Yxc[e@G~][z<"66t}YW~j'ݗ+2iﯻO=euԜ M {g_ӢF_^o loE퇞||m']?eٛgM}W:ѧ:ZwiW^ܩI+Ԕ;"z8=s$q(8}Ơn<֓&_*9{x[pCJ@k'~ڴmyv ?G.G+MPk;swh=g Y]ߥzyDv`'֞_4Y/?zG*X|_9}wqIwMΗD۷RW"gכS~7,/_|wteuρeoy{Rn`' $_iU뫟48| ۦ1^ů> PzkU/Ő=LDK=ĊbǪjTWIQ`᪮lh8XV%T ^` #,1"H ;h>,^AR+ r `ؐWb1&[*(/x횙Q٫x`xX[ IDATHSPPVC ukax ^@a"o {*\0 O\]orrΜK%Ҷ6# Ql"toiI}ꦯU5jt[{\b;W|KVmڲbT`cSQv|E%s?tFp?dz)cשO\('# 4Rq4T'JK#P$gSw7o0Ջ#Q oV?+=B..x ᪾˳KϰQhj#j ;^DE6z+ƭjߓ~8k.Mڄ\PLE[7@+֢g]V50?񊦕XL_tfFy4㴤S麞`÷~LTW;mkm|jΜyB a+_4+x۟xE*h~UT9zdz;8 ";CaNz<9g/AJ.w?;Dunqa-u }'ggL~[^i;wGusqr\En7#o'e|{?hϹ6'tQBe bQ%2w/M8hqibBC qg0h35e!4O Q"t/Rh>$ dkauY@DB8J˝ťg'm3=f,&;Qhw~뜡)) fsxo4Q/Y,JI0ogqDM730~ǣD7x\]c}<OBѵ;=b!MMx&W8O~AK߿ Vtl)*]x}|nK I|zT>9ѻkΔr_OKOܿ74ޢ֖ޙҵg'#LInbp)f-xMGEyǶI?Y{ybM$ѷePLn}t@GJ[c|yo 8ưZ~ٱ\uϵPAYۙ}{G%=:%;GVΈիO*4yEnJĬF=G˛R`39cǎj'1S8  C$K#eT^]r@Cr|uV`n;ʀxBE <kЪ]BN y r2OdIpY&zgi7^o}嚋< ehr2Odk]PF{bXA(-&QG$ڻ}Dҁ q<ғ?Ի'F~aohQj.xQ*s,dff2i*'*ss2Os*sQAzWX0ݼoHXdI_@2FꑶoPzْAT\)j7շrƯ9BV}4D:!9 QW.2PӄqEp[t,BqMqMb&Y(PZ+$MŢpX(HfK-Ⱥ@}kǤ|7Z4Qʈ,."/ [\+iޚ@]\}F vb6wxrɦƤ֣DBsG= -|_K; %,AS&5# Dnk~ tS%B3QtxћuZ륀(x.܌bk~Q7v/l1HG;T}#Σryu`s)@m/jDŽL /Υ㒐ܦ4E h$& x. LʚHLAQ C\F[g疊Gz-=7m޴_\>Ii,rY~{f >7 2$OCHQB".|l@RdṞPWD'cȉ7 6Q@(3Ԅ{gOK6r\W}zrUe@OY"UhǸ?VojҽYq|{}qQ++f*@୚Te*32F:5"E[8Ӽ̱3/޴`yʎհJ$kXyj֩S#k<,o}wߗÑُe7QuZ2ÒM/ؔS%%Y엥(Ǔ?՚5 bc6^t@L< =YE,X/W]Ⱥ^Va㊃&—tS}tTB`ǿ_S3 [U?#{X򳎟JQz eOP2{u-7U?v LED\ڵjGTFc^]KD~?iTn]k[| E׬]f|0%E(y3A_\tdn)x.ʂ @-/McϹ{ցb"z܃;u-@h+>>Pw̅KgڳaI/ ~ja7 =-eub=ڗՂ̽%B /%mַG3?\BzS^"U:8+%QhfX2;o+H.W+$h!Uu<.ǐb Ѹd+ͥ8U&#T$& q$@b^Dh*/#B |E0U Ey!큌ܻ "l4lrS_ڻ@MeS_yi{\ON35>E ?gܩyiz8~#y6Vkp~⣍fxGZNn2S.8o J#jnرD~t)./ʮ{-9k){?\u=ϵmZ55}i~ W\!͎qTZe ;TE3{ ~1eߔէ\&l9id|6qϴ^~7^k'+“ZۡC^Zxg'-?PsLnP%E>fq.rvZ!oU>=GgPˇps`U)(>u(sm7۴:8s{J&ݖ,n.ܿdOٖjdo>6|fiz=fMB}.e[ qy<0=o"4ou^A= /Lm&p׼ܰcfAt}^hVyX^i7rP/8?{!qodvTDQ9_]rTKv~̾5 yQN{>ZןSE[xu鱀Yq Q+(m{G~0/ȁpFQɩoKR=>wڡRiotnCym_|W rL}͌sm }Uп?M7[xsGd;4QRLTy^ŇgJbyq &wd,<~ڿfmYv%!bG=w5tơB1럝y(Or^7Uk]b5V1/Sz{-%w|kKf qHk*ZcvV1YEDw4+$T^1g?9?սw5Y-9 ۃygL)>G>Y$9" 'N_+8d g7+y7q1S5^JWEZZq`_eX]b.>D_YD+?DUyj]F+V1 ,/&52M幣C]Êc4k #9 uq3NtLC`lE<ޤLJiՠ/1|"6YFMycJ(eB]j?{y59-U"czdC~P( IDUA1g'!:.*HLLc%sRK'!ķ>c<^%@a`9u+dܕgP8A+v9. WUX-C -mh"%~C\nMe@BN¸FΡZ"{FO;FBJoLl# PFxzk/)*"6~9tzU=$dqp5BUAtw9ќ0EJO7ґ('zڐ^,AT-B.Jww6idC?:LK2!Biwpt45zl71>g~>Subtuf!%IN"CQǞ "eP^Ghhkb:F3gG(?ppy,U~\y݌170bK0sk A U`dH7SH5^q5NBGjfFxƕTbX0++D$ 51+݇hks& 2)CJm1dIR"QCP휭pˌ5}3M\PIf]oJvGaBs@N'vd*PDQh,)emNT.ZY2ӏ*aͰGGea+RȅAHʁb66Q/$"GL$y%/-Dtdbm1/AUT/ Q=Gl)dU,0lu zģX*V5a.J48Hj2L7 EOW!N5w'$LAnP/"t0QSd;X9EH ֥5B'-OqX[&D)IP/_I&C|c3+N01ƈJ YXd4$a6Pǚ [Qkՠ{L2WLCpMx ܦ.!G5+ ľ Ya<l$2< ױ U%`-(R! aYߑPDrS/nMD@/\0 26sk@ʛTX6\S•~Vp:~+<1lm2%cK^i d,l+τ&L>ʎʰRlf2V9l_i%XaT#0VX !rlceC;E> 0J(|GnM*AiUI6@w6.C1vEx:("DVIZ{D6 +(h~8)2R) >$ jZG+5'li 7m"{~~ "FKDa ~ʍZ=K*i?ϞrQ;D LX[ ]fi'J9s71EA6orw \´)"bJNٶ3E>lx klG.W)kZ4Ek,сP@x㲡4CXV[k:bw{=9j OĘo6=͞PV.Ddc4{r|Zjl +x"A/G94Dyn}Ҷna˷&kNЬ-p `Q Rݾx6el]:ueDfDtØg:jB9x#36~FʀADv͌f7Q{[ ΐmĊ֘Ly IDATw2S} e(j: [2|C]yEh3(uO6lپzżucԲytz:;H Z>뷤/9}]/ٿ{d[x/7lپjgOVg0i8Gyp0ӥ7/R$/9B]C[ZVr:/9: %R'~*hDURV?)qFGmZ9SҵQEږ;I3er%R`,n;kԓ]M^ RѶUBvf%r72mB~7K_`=cH\ D} zbNr7Y-!p\/30$ߏ2ɘSF/<Y[/D@շ1Fݙד L)\[O ?磽FC ADg!xU!Pȃ+0gY@L]-NC/m7-YtߞO|eLF>BcC e›tJ'<&u`CoE?!I@ t]__ '~okQ #VHi#J@lƃ6W`C^ztn){ؕEK8{~/گΣ' l-@ˮlp;4x`a?['!3QEH0x0C~j^nѩd94΅C~jI6;~Q뮷z}z{S :ZLh2]mW?e¸E=dIYmb(=MDwjπ-!FO ʲ`B-C9+\aRB f廅vD\WkN%uc)r]Cl»pS柎QⳞӷn~ѵhP(nC>CgHcm ӔPud䈻NS͝`wRhf8Dg M@O!&.0/ 2uY.Ȧ=#D3&uٓnuX>6U"%I?ϬYedzRHHb9N8>_{HݙKiUa"`F5;8o3~HVI`ן[12vlsk|}m{ Un<ӷI^?mߘǹt<ɏ۱q%Z_1}ƭ_Y##([4˅JңQΜf`Ӝ N4KPeGx.jy9K,c:u}lyd3w({{ߟY'tD\5ZUǹX;Gtvwƹ1٠K<" Mw Wvo3YHzun%9ъk5Da<t,#>t *RsJhBOv9RkP .O{>:W$mD]-n|f!h~@"e1bE@5y/g$ Edʠ?|1S`B47!\DO|.HkOk?+0 5Lpˀ8lW#9e嚏Q퇄zm_6dS7 8#Ƿ8Yۼ1S_?tm2 y[cv Bf!]hn(+8wT>#5= {?՞j>٫]XL!s?\j~HqfTc;>\z5 s2']8ys#|a]/ܘMgPlv?cP -bICj{'>=^ƺIqy~Ώ1Ă<{XFr]2ԻL|dOYA#fMl|A%%zI`ւo'OTv@WQ:~&G:֋(<ocb߾+5X螟>kQ譫^sukޝzѽ?}:bH8RlFEft(&JA $\~l$V!OIˉm`!6ҝVX) 7NjӨ˹6デِVѓ(dՈ5bQ hXPT&OP׹>@U6<lY\ؑOa9i]Ϻur0Ъ5Qy^<eg5+"OKJQ,0說ﱎeƃq?}=oqZW!\M~" !ElGpQ'BD$U4~9d -'g PT\et׾Z͓cי"(jQGCޤ6f?V@] 2}!#A_ɑw^R&z͓xq,ɋVl(k q&2,YM$YcC' 5VY<nx0P89|!~طho^PJ "%$0-*-+s-1 P-6?27\WTL_ b#UKE灼,?%ƞ]7*e`t;Ș?4vxF_GOVn8E޲FINF EtQfBGiu Ix=@jP/Ҥ*$?B9,(Q\clDNSU2bŧn^w93`C7}uaiY%4JѢq6RnPl=`@sճ0ƹà @Hn7fm=$ |"n7y]}1eYu@rW]RϽ5]+ǀKzYT܈P탧'=jCLٟ"_'@|ƹU8ٶP{=f;3g&?rȁC6:S JK=xS%2+ZeBnzXfYWWNLM"ND48LI~%`=8yS9. &DŽm\ݲe/VԬQHycqp2QY*^ɐ9"%%4JDOK͢н*'y-kU ;I3Wdr$PZN3x A帶ZFUBnd.O.RE;u-"Ff 9='.&DWUR:2ш=*&!W mf0YvlKʚ?OAf=E G btfCzIe51$XjI䂉\ olSC'ل  @~։s[9 8wq{u`sX(32F5#-+:4(~">Q}L>2f5Jx|q1F -J @S2ݢ_*׉3˓?y$O.eߺt'䆼<ӢEUoEѷvu -d,$b=W%~6Fz,5Pdq׎k}YrӫzҳK$RQFLP^%%>\_,X`x|{|>oѴ}2ycrBWXt`C>rck{#6w >ҬuǪ܀ֽ^ߍ@%&~.8-z~M_Oʍ"[ Z NQS!&\<~ߍ38>uω}{Ytŧeyon|DEg.:k=tKӺu[[CG n* !=kw&}^F\xW·n a32;}?0#n&WIІw[c,XîVƶ{,?BVJɅ}Ufxxj[0B11LYiWZ <Œ(#upZHi_3?NPU=% 3O((Uv &kcvd8Am5|p~%nֶsDoo;gx=!iƍvs]WdmR >FUYsj*\ņ1@ah/LُxN5Գ3@c[My~5cvpވ_>9 (_Ims3S%pQ~Qo١<*Ώ :nddսL9eͿ*jj8?5_R>ڟY?O~o~?b9[p* Zs1;6w䫹*L סK sqmƩ|vlCKh]F Hz>f\U%U`;;Q&ލҼOgMx}jeL)TL0E =ƩgB]~2?H׬KU]RF)mt2|lѝ*#i$p)]MoA1٤v$>D[V_y0 Rjqb0vjc!*u&j OT!3`_r@;v! r隘/H /bz(O $lZpdeXftB`jYdNp@QGh&(ODM%_>D̨T~)M=fv /ם(>4#Pi!V?]+u4HʘSP&j'Sy!(odC oti&Q@AE3Wܗ*k `;3Pۓ, 5ZD6[A#ЁD\Uui l&wM *y[s+twK,j43@.6M*i]` k.ˉEn,h{ €,N<٨ H$@dV] dFœNU\jSʢ^b^LV@ӏxN *%$H‹A%4@sB90\Pyn/rUܾ%OGAd)LQDZ+ *E\RI3Zd܉Ն2-D.'7U˞ꠧLrvh[8A@-n1 "kk@Ǿ3y@r# 3Ցol. HA1琨\T\#G2X6;E\'En4;hR*JG+=+뱭\*m~YkšfQ? BZj[]';f);$~ 9ڋp% (p5h&ҵfd4KD߄13 U+@GVu!'WoD. 9+$z0뫚bd(ʺ?? We]aSfO{DNY!WdM$t C*SI'AsHrlc=Dؾ F/>e-j` j3 -qRl4(?mBj YV؀L,`Y&u[7nٺdFCa1D1PVH;FP@Dvæ[.}S_#9F "a+_^QGo|_Xy- ꎅ\G0[Yu0+"S28=>-}u:tifԾ#*IaDOꧭ7o[wuu2x#ԘK0%[֧mY4}D𹶓a'KK۲pu}q^og_e]֙y>'bo|o~^)c]چ>{DHv.^a뺴uLyQ|ptc'i i YIh$wZE$}Ě!7 `hκARaQi?%[mڲpڈI>9&c"|bp>qƚ蝬ANuyw[~"dSj ]h]1=X PA%u${5҃i$+ 2=!#:q P6 .'GwP$f.(d$MZnbe 0I+3 ,bQK~㡗 yf~IA٠{;4x`IWZK,au~D;~lעpQ4͌^c׏ؿ#ccw.Iz4C~/ӃxrܚίOy@ڨ]s>gRW5$қf' 3`T&d RݡϽIg,0Oj:xxUd>x&.+9%I/ RnMwçRq~65^! MvWA1{?X ^O/w=i@(DkaH>Ӓb+4 ]IŒ]JUu呅B.L|%DRIh\F 0 |I'2i v-1Pva\" (Ԛ a77E"&.{R8ЭZx_{L׋w6FtޓY>(6:yq`r;2aaq,sƗ|wF_;si_uaDѵ1 3V8 q7kCh< uiYlwo"@i)}˦M^|梫[$FʯHdu!?ϖelH߶wIqVnېǹ_ K7k嶍[8{!#vl}mL߾!;÷A#˃&#Jߙ˔ًdQ|-oqr7k}L;Wz{X,vf:PcđBT|=qֆ6ywvf42WFj^sQ]7:{78wghp_Qotsl9 J^x+4kӌ߭L'/9[#o{o+s~Z >|ǼZ7][ǫƐd5CA~CUƞ%w(fm8p`iU2&8D54P[zkE7gn+!W]zؙ3֥m뷻]ˍi< ^ ~)+!G6mR.k[i"P!7Bv,8P L"x^WB>BTtLEnu퓜͇<7nU3oOzf @Iֶ-T2nk fDB5dd"do}.EʞЫ#34Ol6tj_\EzKO/U8bc\CtQy M+yʯu  dd go734ETjo1ן&opS?е/\H&|~~Ѓ=S_4kYo%޺ne\F>NuM/)-nuWfy;'w=ޡC{^0?sq)ROeMFPǑz |I^Վib,c~,giд[g=Sb?_ %vRb[ 4" ʞ "#3(Osm%r>޳s8VF",z]"8h ^N+.#  5=A"[oo\A^ ;4턈 $2wl?5z޲}ݚc:7]@dZ0GEo{IfRD^@P 6U(V]u \+bE(ETT@AzzHB$$3=?斧2 ~?y.y><,x*]^)[X2-=s:镲u;t%_ߜ3c:mz7%Rf =y\ LƁ 5:` DLBiqy7gTawz͌i=O $')t4)[oo\QQ`FЇ2tcC-~FX`nhJK`?c>]Y'5v Któ[H: HPbеӿ]ƵJ`[VJ`䩷~ߤUbbw-Iq (uۑOCV~j: ȇW3?v[Ž _žK/hZaJQaɈ摷 8 G|ӁS[{D+4D}?q@rz3.)RZtha8ʹA0 )}w)ZR\p$B^f4b!! gJ`ZOp?znOgXd?){Ay|&MR/Łk@P҆i 6;UiL݁%3rTKY(ZZTPC;/9{>b}L:>uVmPn-,gb$ۯY#B@8ZZ\PÈEnk.ު=3y᳽yyHv k}}Aɟ< j!P攊vEʦoUGee[8/sJǿE7{6Ɲ+~9_L{^ V);Vhe; E8:{)k5mr|ׁR@Xl ۋ*GսޞI8Ld\fG [F!*qs'>FJ:8JuB,E%˪q,e&=(YAzetr桊օmg1v $8/S_@{jϺ򣅣pso#3al?Rw/@@ޢdϵԿU}K%_}T)}56u0 iRO2v/]B(R8_!'0RN;d@r.,1l׳>$s70=sv̅Nk`Ǯ/sPeYDuNQơBggnjjm Rf޲Ôӫ ]Ec,@kY_0垿B5X5(_ lT"bCL c=TQ\<}8aص3:-yj`Oƭ?Ktό{YB&ȗvzS݃t^*-űu_./k9ŗ$3'ɇ|S7Ǝrgc֩CU^Gfu+Ҋd*=Q3l- u1*MwIR֝Hlz˽S+`XϤi*_2YRV/"Vy3SBLQ(Vvt}cnHܶ{ ֘Ib^=@RSQ3FI~NhW@h ܒ Z#ӊ{eR*S_?&ɕ֋?|@ç[J9APqZW8OE#gbU_q{vl?C4?uY|_( Jc~R8o  3: o}F`R>>kbASIcf9X4m}s8\>ҒQm"=їܬmӚ~=˸޼mSnkϟ Yde. o% Nd^ckasX ѽ X£g vڝ\qPI޶cif&! un,޾ A ٰAf0p0Q8o[aZ.Iz TNLl #=QmI %)mOsx҃ dD)D >NE"n;֪KFl?gzAIR UPp?~"7a\eŴ+R€ݫh:ru٩>p^:& yz#Nk.n;ЗP9|`yM|30cU@௛]o(~*3m;ֲKfLJP!ğ4b=ɛU69.U !:Eggf(d>{C5yY!%e9Ո8.m\qhfQ& x#"7::tg!:yFā[eekFRoQK4u`-S: =5L7}WxRh꼯tf' 6ùJs1G4˼\}ـ1pOY{ f]8w_Cξta [3Y01܁T2Y9|=1vܾe?mպ;ʼQ?wH鱑#l/E#l/7Xx~/+'>Ve 8a1NbFЫm\F5&U TV4V\h^~Q/ʺlxooXQ%z٭.g6.\Av@$oЀQ/!.X$/ۯ4"b?je[\r!.X,df]кu:L ensA:~rޙ#ysmN;\qOZtYƽ'Mw?;lզM dg&Ty !խğYv^%0ǧEV;@F$\D6 5nGmpp=Li,Ϸ^=uA]BI-=z͝[7ɨYP,X^{oԸ͏]1{K<^W4&ժ]_1hĭuƴC7zY{Uw__b+r'688r+E0sbi 60Ɗ CTwLtwU,f5\*kϖ w\,K2tˁBW\ @H: Wqިe6d4eh]#5knaĚR%hSjzc:ʂΝt6b_`A;:uZMW}@e3ODBOIE m6Wtc7fN1Ϗd^>5ְF|8KO~?~~DVp;:Z0~"|WU1̨3[&3[6W6A>W6! *a? 4"=DxC(=5|aW+8Ȕ %gC/:^Ǝ`Dh̳2DKd͙n俗3UX;Q~dg#FX6~.Bu%{O.x)*'OlDC;ц !lp2C`ĭx\Tu(Kݲу=?c?@z#r*vrk;yerwTvj)Odѓ}Ԃ|uk2%C5PN>X2Y$$;[qqVb`Q8|o@7ŷWoNi*ALpΡD"1/0JVo*mg |e &cHmAi0.iRK)$rPTI"ETl6TJ| È솈TtƓfk'gI=~=ALSFM9th}%7'YF[nK{y[,O^U^"s!)cH`X1SFm,TKD6YErNjR^"qJ=E =$&@ '^Σ"VO@J?"+X}AXFC\~jX=Y "}a82d(:\!\Zکj'/K&5d|%p]TG,C !w7GJAj%#X'V3d,u"ϨBʓP5rpIh_I` ̅( 'WmU.AܦJh 7P!8~'WśD }:ߴP~#$'h=c%i1HR-D@ ׫#C֦Fn%$qHq -"u:G^Jp:!_*ق P:JCAAw'WoXn+T0_P-v[8 Ykqb㱮,,'њuT9o۲0 A_wt{\qk^1 'RaBK>2ESle''< S7ˆ ,P/kLUIK񈣸BP+} @>=:9H!lm-lNsP*䶭\NwCuEjk'|eb+EFicyb窤 9D>Cz2ubL $;=qHo$,-M:fмxxSϐ'ΛޮZ(sy(7<߷G%7:E/z"Fhdxcf&|{LJdn/M<<4lqfMreOxЁ Gd?EeKRPi qUis$ӄ@)fIMh:Xg(ԲgoHj}֎Tjz',VeKl3uWO}ACpj`̱YJ/,5lЈ^z}h$^poi v}ė{GԯO4< r">͒Mj\!e/)%* {Ez}X fLM:wtȡ 7Aǥ2(2'r?UcdR +YW"ɠ/ߦoIl=8MNp[tȡw=6?|8cЛ$a ^enֈ+@9 5 yz-VDV7{X'"a =WMކQ'_\u6Mҗ V Fsg%|̏BD_g -^CvD:FVX>إԴʖ޲{-}6MZA ٪oFg1ʵǒ\i5iALX_R[e}Uk?8h;ni'E,9|aR-Z}:yܼM}GbZuqaطkǮ;vܙ{7`˘~ɌweEo h6wLUk7+9}c6Z9\@B{ؼjՇ]_YjU>.S_dY)\V`#1Eܞ+Bߚ9BH\g>צ~ڋ|SԤc}??W?>d@v=[;]׺hK7cϦ4soxrfj&oۼx[٤ ~3fdMM4Ⱥ%y[7gGnU2A ş_oĎ/'ek:oVIYЯ쵏 U8kۊ,DZ,O~(4Z7Ur%@-}[̜8%չW{Ncfɬ :$ >?X񗵛|;.LGcҺN_7>ݸP晑Xӟ\0ou o#[jKf>z]#һM_l|ϛc$}MgJ&cfdM#d>}*Yr(1Dh˽ZJ9#**ld(J0B!V2ILr׬"/ZY&* FV9F|O8)mMlt5kX4ʂ.h4v4UꂋP1S'1h̪_Ԇ+dW>B0qHYA4Mx8_TTk(w<&N..{Bk͵/d/08A e1I H<ٹ}Ιe6D 7:嫦Q"B  ҳ;g6slpCOS]˜>z' >jy{UV~2偮ݤ/[|5=UןyD`^`^Po?.}WEOw6b9]#aPUiOV ٪jN~c/6+ TD,ڲLjq6E7I1䫕{hL>S^|=yl8x,9 "|jWu9~_E %I^*e}!pV !ORj1M2HT_kuz3.z +ѯ ?q!wtdSɄ'0א2By ޼>TQ`fzb+G!ɝBKBi3ׅʋH1Z!3!'E?zw'=w|ӂ>uHcQΟ8spOT陲mڌ})[z1o_njrq+4Z"4Vd!L0f$~# ]ӳgׯZwLL:/tm3͹> 53o?~߽Ij Ir0(fA iA(-.kgʨ`\!fTmqyK 8=ҍqPϩ|?~`^uazT.drc|bP!Wl1_z(&tٌ^!c%qLk=|[7* wn׳&Aj.Nns:]ߞ)Mc~_#[Vl] tz׉̺*򾘝{?rV Y)_uv1ަV&)W ;]*\<#FMjSTZP5㇯\|c%h0}}^3~IpQX#M8>EaNJ ÐV/T}J4MS_~s`Ԍ|8K{ b7J:PE^el(( iS#dmpo1ba7|Do8~k//vOvspY^|hmgF7ʲ"j״9@>a{̜Ra?Ԛq$u!! "wD8pHOyDdswN!io5+5kVK~: ٽ (b$۹+nF p0XHaIIEBlVw8D4M*N$b ߨyI^SL9>;BhUa->{4R` e_М \vPj_B^Uhji Bfa:^??JF=_/UPDU0>xni>Ln֦^pimۜ~$qk!&&"k|aaтrbYKZbőU$ĀTs'3d=C&;dҿM`ӡRS)WT6i>_Zu4؟ki3N T^x bQ}VJ ORVֲKF&X}wX334'ZZW޶cidEoOZInz`n<џѠAFZujwu 3h2m)XJ+E(e \U?5Vt4(8 AeL@6X}OL¯:r֕&L> @gvm<ѰuW7-]. J*6+=0C#h. z}Ѧ_L`m(O6Wz30T& d>>D՞RRڒ}39VdeX#dA<dkQLZҿ2ƒEd4Jg)okAMA@ŃlZG-UUi0G-fǙ 3Ba@ eN{b9ibZXPg{ekV޸K2|}@I~HCj7H76iY~K9P eVްK7(RSbinl27,ne菂IJ g"8 @E¹2reve kޢ=v3%h)D@9S *F4]\ui1hO:'ka^B*V4x~皮:^_GpE$2P`$>;xwƍ㝣VX_}FŮXϕ' }ٽ.oL'Ţ2|и1?wcGr`c{}Hb#,s.z1φ^zGuv= m;Wob3L ђLnle}x:޻#^p#6ZL{&uIsjAIFN/:r3)\6m^e>iFx-'׺‚EHBm/Pv=uS*n=5 a[_n#ް3u LA ^zd֎rJlq@O>;zN?vPjbBcG?B/Q Y6zs)zctXAHtgQD$c#J>3WJدlp(pMD3{}'w;zOI5N`%I\)2-ܾRfpUTorw'QhGD %CHwrtI\OT+@8])!+NUfeO;86\V˞&SBf'qΣ'{|sJ#t}^Io_qX=qm8(?ONe9>7sW{V.}VԐi<_7gr8/ śxJoHoKNA<jelE Q懚o<%2A^~4UZ6.E}T&puv)m t6f1Lz/|/|)? 'ꕄA1{ QmH%sJNH8Α,;GH$ Txh{d|'BSN&+H< U0r͕`M2_y?:$3$T/UOVcMl>/|GCqVe'F/fs7 H=Vw;0\)AI#WZ 4$G":iR ̎x?mq !At{3#WgŏHNg|.ԭyxVM ܣf0O ^|j^X :/Gr\x]h룤OB\Ɨܣ4t\oxuvQ$=~E!#IPM'ujaDr/1^Y j@CHӯpn_5>2:/HK=A/4b=Vg24(R7]Vޖ!^P^ Ub2HPPx)N1Wd׫?I<tM<2aZ;$FWǡ+}8Ewo_ҹoTde$?Pa"d`ު11r8Uc_xuKOTCr! #H4,xrA^3X 2 A*TT(0Z]f$wO<<1{rĉwWI\E`m;'3LC˽IXIMϦT\KQǴ?)BĨR:>Hygϫ4q>$j'lo7m#䮌H0k.{̒ZtYJ1fcMb+!o:*D6g(%. Rew+B nORhVpx̳kCޮ ct8eI5pcC# ʋ[y_*N0{5V bXUQͧh)dqh7dSp]%HsJAEjpm4@]^r-lWzW#ذHd@`$k3<-7l}j\Ý"TyS/rs]K< 6"* u]:lB+kѭhG@O}zsP~O_;M _kԕr,d[BZȮ"wB!~XI%'x^$";-.S$&0l ,ˉKB׶ +G>Y}|>h+O3WʶGQmArĕO߉/ß#],w=YN %蝉l"\ }O̰$wx9IXYcO9Ir} DbcGǶ[;%sM;O\sc=u̫Ym,f.hkڅ<;QP,D.[S-⨾>7mQ$)%|^pkI嚧{Yv~њ+1 f6|a'mLGD j0"4,H2 zXǠQϏ̹(w̟cvr#!tЧoMkaɼ-ߟ|xPuea_xE"@upiAN-:A U(R!dgnMG-5WZRVSvd,_ˁlXMRU4K$x1z H0$h? nk\&f$r1S+h(8%hp!|\ƃWD*rUO|G`?$\>5 85dt:l~j?U^9rs0N( }"A_LJX^rCCA.6\^GC`W}`Orf{Q]7˽O5+GL|y3 Fyb) uv(3:fT|)~mEZ/f]GqkdJIЮرwnR-Z}:Uk?4h;ni5Q*wܱk]viWqΦ8*{if,a|zwɆ6-z{@C?ə0Mmf+9}uW2P++WݴjÇׅ}:~H =&[+J.8@-9-?ܼus^7J&$^N׶*Z ("4R36|Ԟ}~7ygڟ]|zÅ?oy9o^? !󦏖Ͽ׽& R'`Z;&|d_7nm:z|Nw+7ugue}ey+7\S7641/?wa?oXgno8~Ve U>s4 %d"~@Gg-@e͔0yB#Xx{L^Dq|-X;rٝ4i~Jlo P>OPxESXjH&&I(jT;%$YicX/am"]F!\,}վZ#JO͝|X}Ei0f-YkCAYUiG8ԡe-폔 l"q}ΙeluhDK fz2պW/7`33[_|Ox{>~8jژNAP\D7.ݯuQd~ݻ ]VYqE; -3$1TU/)tƂ Bp3->N@8s]"g("\-xY 7KOmq&/sZ?z.,Ks2長vurˎ㕈N{6 Tmy^V|SօgC^]A_0SfMǢѢ-;τڷ,ZG1lHz4r~_C fּU[3իmcSA M?1~w+#k' /rpxD~ϏwsQb( M|{ƈԯk|찡'ģ타i>6cG>5F}dzfBW0~yK_8giW]dJq.d!(gr-B ?J y'W }>qbaٸ>N=ٟ/d֗Ңz׿Oo^( C03=66IbB$AXֻ~03>0Sv k3M]qWʟm {|X8‘#[o+hɯjwX uÊcMQfPiK+( P:rF#".1iqIDATd:y9eӯͨX: !բ"gtz1Py1 O@IOTBEe \vWpwR~49 6oYPt8wOC$5wg>?eٶ#;W}yu}bݛo/ݕcs/ ku7?37G<;=_l-6Edyʟ!'EFDNTdpF!Tav nӷ4Vg4AWl'w4R؄)fT9? m]FY*IZڸ9gkh1&c[h ʼfqw5ȱhhB^yC?AS+O@fr͹$#֒=km9M.6UH;?D (Ja$$PDxQ7m}A[bl6UWz*4Ugw^Vj$oJ5*YҼvꪦc}K4V,4g^A2D|H^p,H@ID}?2IV>Zuޭk+NpׂCa/VN87OQK*-GeEǾu Y:3>CF0d}3scxz"G!Qǐ U" % Vg^P(!'PHro kZ^qeFX%#0EuJ~ZPj=GC Xۼwt΍n}K-8K:m+ =[\Ud$f^"nw`=Z@X6KeG~/lj>79yoiTTQ0+3f?$R\ldwDv<(h--|3>ҙ ڐ"LyU5"@ K:lb\1"b ,GICF-)fZZIfDL##n&$9(WW&eG|1CZ;5ZU *vorϫRk_"hq| *.nF[ԟXmX?^_遬v|JJ9jU]BJ<I!ƹ 0 iӫ ]E K4wЋL? 4 }=oUN-5^"5$ϣ! )HY ?E%NŪ`|~jkpq)!i_=Yߎ7gn\y3mPIQ꥜Z3~7!\T凷nlx^"`iDN=sv̅N'7c㇯1(؅~$&Np@XC7@Kj3j.zW9(8gH 1`Q*>("ٗ2kvi[2$1PN@.E=L2tKsCǜI)rL(9pB)j ;"p3L6f/ ={k B^\eKGN#5 6f]М \vV7|uHh"fCEJDkCa۠۟u]m?eVBFkHkmsKm}If0mx3dkb|*JXjs?ѭr`+v*ܜмRܪmmnVor3m"ŔmE;ig,ּެMӚ4B?@<`N ُBDq˰OPwTXZ.@s`%d8H5JEG@j$WQ^{DPbzfF-Ϯ>Nj.wJ d'2ҒJ ԋ0پ ;=Pax@cn+Lk%37ْ'.:NNIf(em WJy2C EU@bk7pT*OYO?hkJy2Cį1u*^֖r!bUcZ(n,C.P7&<#gSY>l )J)[CwbH'b }>/%0 {Dy( 3D+$V tJz|qfSO0|~HCj7LC%h.@LYo?KAӟ=Jˬ/1.AbF!-/Cnyi1h/oSA0 &GS]4o_]\}i'580oў ͇Өt岔^gܩڡߍ,Hڎ?Ti#7jG]`{)bٟwH)v' }ٽ.oL >Qu;f&6~m&>wLFنP! d[KzfGFs] W 9u|Ǿت(Ssz>^$|ǚ o{dDgnygE%8ѹ-xTۼ`A0h2RM䀑@㟩 q'c7m\ўW+C, ^;CӒږ7blO.r*3c;L@]u"ӷeY={8Ƙϭ\t yC׫iCC,^wۚuS2tuoQ0mxuQځms߮gxS|r.7 6BU{?{NtdJO5:g]gaPrCO8Kg?\]O#}r{KhLqqY´i?Q "|߹rUw2F|˽cƌ~Ƕ=pj7N TCKRXu!ý#8Ӧ;7!;By $QuzgZNmH(/KIYToq"u\5mi<шdìU6+MFV(DA;"2*Q\WOZz&n?NE3;սl;wz-46̔%Khz@gfSzZ?#+>͐ړO'oceI1HY1k=HOC.Jh<G2vn&; 5\Cd:=B&8rYGl'qj2EtrBiYk uߣTV 7@3|kbb;CRk<'`2?#+2('F2%5 m):?W+i#[vJ; qy-!Ɔ&˝J^DZ!R%C> o>5ȵ`5p{kV0[(T݁."dX$A5RAߡ$73n"A>tjzlXׄJ݁ V ͚YL59"C2KA;w:xJyR2!zA9ǒC"isIPi6А&.d ٲtfF}=Li*4W,|{H;{.ܒuDX5)L 7JX0Aulj&r@d PBIȊL{J-U.׻0Y$&Ѧr{i~AȆFB!0$*(!(שdSФ11$3 kb!d)I ] %2 0Ep^o k6OP$B1}|952aHtjıT1`LFBo0+g: TOS<@\N_PH C=Q3ӹξH%bH\$;/dMG ).֛_ïAUDxH;d%SV!QU8 xa xTʵ.Jȁ/WۥIENDB`glances-3.4.0.3/docs/_static/processlist-top.png0000644000175000017500000015066414432156570021460 0ustar epsilonepsilonPNG  IHDRj|]sBITOtEXtSoftwareShutterc IDATx}u`MD$HE )V i -iiiB!"wq#cVffgv7~}y;{8B@CP?0 &C d2d 2r9!Ad!(LD8)3Db+f]|و% [Z@̼'H."}O!WG L$E?A@@С~BKBS4<; !S5׉({T6 ͭ+ȅX}_%b/aMVBuEGt(zB=e"! B>4]jaBEj h)DȂ˅g9KItSѥ/H9BD@2(Sjݗg  2L. k1~ӓ/IP _Y5"!87+ B4=%DO)! nC_Gs>ÝH+؅(AJL@OA,yMLD GOD|\F"sLT8- ۄ7!L9 G̛L+w(r&[p4poa^;dtM٣ec,`*q;RK%";[[3i1/,M%qaLN( PD&dgBJE _0wb="fwpj'P8GK2eq>f| mI-@'x(4 YW "#>nDDkd-zlczaEfU%,,Y( Q(E&d2UWXc@qQrsR OD!L7M42 "D-kZ^,[`2ՆcȵL`yβW3ugA# 9'"[_Rȿ5_Wʥ{b哉8W'f5w Ij V, } bZp]{ˤrLȄ'"ZEk@b(Ր^Bs"* D9 ȲxS <^ıߢ P2d2LZ3(JFQX${Yc2`Y{'@z QIXWSDXV<܈);ן /u)OQIW_"ӌiDL!?rEuPr1bV d9z tURÈ ctфʁd f xB}%ӤVP//POrEskhš>BoD!ahEn}Ih5%̡On& #8F*YȿyֈVP VS)7ʉVe2,'bZo(QYh3vm> ND=JE7UY~ '2!  XOV{S'Ű!ںBs>z3]dC̀ B!foSC qWVt;w{Ҍ7׏.Xy):kO}]sЭpl?J;?;dUj#3 MŌ(:oMԀ愣U{~U׽,l%KS3j=A#VI8n GuRŝ߰`4( 1Ћp옍؃G:a*T<66wHcso;n[M6`/iڶlu_ [gL8|D1&YY>ON6@\;ns~} wVyPۿ3Qƿ}`Ys3 )Nqg6}?OK*xJnz qtC+fѤrgƗ?MPyw'3Af,{Ž =f, yszo:5Ÿ_Nm_u$@xݪ'Z)UnstGIЂ{=_2nOs덧M?%'G_'gC]S =-Ky)a>o% uaҐ'RDi~˙jb"0ȈVXMDE%l:{2qU7*}g {N;৉hg]1<ɽe=XTiƖ K]tP4#ZQ8KɮеS{W篜GNYʾ2]8&۹kG]{SWl 0PUЀJ[S>b ۶(sx7]G)T^_ =!܁'Z:nҡ쵳dkަޢ9{R|h‘?^U'~5[i"J+x6jӾὐy|R:Vf+h;j5DZ! Hc8KYI :zg}m>SrرJe9kgL yWXb\e"-I^>VDi/v=QNPw" by_$ }ݙkجVEit%::ԟvlԐ¢<qܡc-A<^5eLqjN{7,|2nҡެk+,JCln~\n6x~i!aQ^- m@TuTr9A+  t?{,ٚ!aEũHuYn6dAi3"dMMP:#Q-j0qͻW&ijtb;6qq⾋h}<8ZagR!!nY֧⤨Hpt,B"Kb(@Mar|ׯ+2W4 1yd\B^B>:qKZNM訛ϑ4ĭ?߰:6v鬐}wo06:`kaѹб]tZv$n׈cS/HjuH]^@]qhދV~iStb/v.^Y0lM3 ;1 /$+#Cu7WYDڨt )s- vJGHրԢ1<ڥ^S/cn0HSA.Iyr]u-ZƕIYϣ]5T 2_n:wp_ +(ɏJ @QGoꩤ& jn):tѩ!@Sb!N R!;<"ODepmԩ"YmD,6AtDQ3m7 /U;&χ0̇ΊʳjgMumT>?6TϛQmX'^wnpӷ;  p܈$^y.@ıޔeFdNjfKa/Qw?_9 PQ~re3)uiڹ^a=& @no+^X4rݚ}(x Zϖ4RJIQPWrIA{W#,j oQ/BJoOt0~Ӧˆ ]+LE,J;tsl=1 Ł@qᜎ&l d4=WHҞ=H`3c_X6,|\tvs 7 52/6pId_6h:6V|=+#22䘗:;D}:*ޭBRl>ׇ=`ҟ=P)0,691E@?{y]Rۘ,t@I±ͻtv@<oµȔ>p6Fpbrn7m^|g֡jٹWkpD2?lYo(Y|.\9i,aʓ$B KAlau\Ry7k|{ҙR=7*qu͞7^?|q>)&U١Iu`W}tPL GczVx~xaXDd`/M$#SzOkm⮼,NyHhG3ؤܛ{0mc T4ď|i޼y+5fF`#Z)Č;Fi7.K[)6ܒ&uf޼Meӷpց*X4o޼Mʀ@v=DGNekB@tl$:"iyYn >$u*{[.~eCOrK/!:6*(]ZZp.M8%f/x,ŝGw6iNשs>*ǧm$þ𝒄Wb6@^޹$6q` p O(bP>2SQfiFSB#jK C!THRat P ~6N*e7 & R Afs Jb͠31{5N樄SHkؤL%G֫؟^2&?y{{5z%R , ,˅jf6/1])uevƾfԕ3<|>m_l.oeՙx>ŔBZ+%6M 25}T:V+ڃt\FBIq1E[l %H]U)79;C^r.-eCFCs˅HkFgG?>W~?ξW#M'xxR.[61ZuzpcGylǗ ;t&J!^xqbV6m舨bJ{ѯm(,?~TehːɃ@e~ ?,]iIB7g9,sTӔӣ8"1]hѶE֝' jSYiaU0QT<临/˼N|toWjiyWt_=b,)*jJ rSFQʛ- W3:>:4lL'~Upn6'WP922Dr(Q% -g4VY$R!'~) AB J#)5_{ۀƎDh>d6٤"> +惦0tz6Ö*3aO/MaA?C*r\32'mS'giqŏ)gSfֿܭэb+iZh4ViaGЦ=[˦M:z>x%IGTnNyf Ĵ DtvASeC[F+!/$bt096:6.1,0 ~ڥ<|Íߨ),(K.W |p`c b/gkcauYy3I|#_!Fx\s_,|qsͅ: AT "A&9RDN44Y>G9zGym^BTxTDxt\F8Ѭ\Pz]R 8sSżLr$VnPKgV9jߙs1߶i_ӻW#g|(6 ]rψpB[n>2{ızm߆-{L\Ꮃ+5 * }'o8fXƵu1MxhT A346֮ӤۨY2>b_i?S[44޻_ 3#]&ӚWUsՀr]աe,ɶLgmn^bm,:S Cj]IqPMzկZ&7ԆyUD5L4޲ l{M/0_O:nUM n;ى ^f)(#7nn0 }tT<ש@ %(&R_#Q*0sޏ+\(nѰ[mǢe=WK=wr@)rNԶ߿t_+Fy]j0X[b椐)7t=6Q}uzBkO=_6dW5egHc-kwd f =/q 9Mnu.3B0Kj1gC 5b#r(?+8\ܪAA)K?ya׳pjۖ6Ήzp~^[y B:ߪ8qJ(I{ph޲)4:Irȹ((J{zzɌlB:X+Xoh }pƜ1|XհwLPN8fj{mϻU"GLl>N&YL<=IuȌ =81N|>U~^eaۦ(>yŠN2{nkkZ9{昭09k3h#CO!@[™OKyסiRdYA.)|}34Kg_/bM{]$0om-er㖰4a`ޔ it[#\|t/ؘ6&:םάʏiLrL8%ӁR(tM\&䕓%^RwVX Zb[?}"ѧ?~1-#ôo>7(E&"?rXpe#-Bt~MTȔNsτ_byK&a,i2)!@+WZ~4#Jdu&D=CD^zO:M/e)Hdi U٧s4K"8"Z\I#os|3?.W,#`B52c0u.cZ(x (-lmmD |$ tr(Nu֌;F Bv80 x-4)hMk"bdgS m V ;c2 *ɿƗ$,b,A$"Ahm2'pX]'/O'~D -X80}73+b~lUCPR*dzHE( k&>#xOEӮDւV걵 sr#y:1լˇ3@ ̌͝Jbَ7E%YR6ԿP6x7ebȐj-bY"\6lQWOը嶊a KkR &8\k nQ .rbzq(hV5nOLmKB6ELBHF_Z#bH.}2hLj@ҢT ?ƒTk S۝h5K0 L~drj#a[p,6.G̒.1# bh'RX>hAXsefj6`(Ksn""$.~n16ZP - -X>Dڵi4(j|CڢC4ۚ &j\%Bipz[<5>r*ŵ4ɕ](`}cY̠JaJDөl3rK "^;A^M$T!1LoB S8q0_ K 2z)Bcr}x֔a]؜xNz|aKƔCiy,8zf[ڈ7vukYw/޺s%LzE b-Lm:%rjbkhP u3{B,`d^=S΂}U l;hor~V]+(Q'9EMwɗy,<khS;`۞[x8ŮO8rX *+1%ѷ.RJ7=ߩJ_o8=HYX;L̑H u;N7o]7~zÂjsR˙r^ܿz,8pnMsCiSD 2C'eg.z'Im*<:N9o=vJbpȬ7"$F: @bxθBIVDUr=f<=]WhN$Obot$`Qg,xTT8gݾٰp$M+mjl=?|CB Ö?v_MRw=~`hMߪ7Myg E?7Nٺk e03ZkȺB}ot)K>|WZ5c}xٔ^ڵ$LIhKo. ޛmڵPDPdFIm`FnWIW.6k׵_=|$5}ɻ{?dsYodFnLPɪ~a~r&pEߍ?L ㈮$:b,_Gy 7guݔ%Wf'Yc Qnm(f_B_̭zǒLj բÔ~r&n 7B*bߔ&?YAB U مy1 C&;tsm\ӲwGÝdzSH=:pe7s G!!%&!O DC I()•{EYWWOH6vmØ*u ~&#ad~զwsmQb"`r֑Y{ԙ^7>/"|G"&uQ)tGu "BI/_ˈu\mZh *@2'C>)m0T>}Idq.:)*^+a 5{ 24CsGB!"8P_hDǦ#7=tR|q %ts+x}#"o9t\n6=>ˁIjH^}=|k|5EtNQl䄆,:|]n:_E7칷i}7yT@^kFmhǀFuڼQyzunfʪ|=wjި,ŠUloG{56|JـR8? M YtU'\B^9N8QuMj91Zu K)0+z_ _8g4>nV[c+y_ڴ6xy-@rncZ^>PTmq;O0qçկ8Ts7qnؽѼW%}yZY'Bg)8'%ĶƫYxH1Wi6lԒ? ϕynʌjE6cgMNԦŻHU/_Rx1'%({͜9ZI~! +Dpj^#'OWjC#]}+W`YoLjVFtJp7ϐYm0`6Іސ\C(sf bjېjcuLgA@9NN]B*\}^TXFo9E@ViFio`YרkV.֊CkMQwKKS?G{JJ=V{Z_VRlRN2f6ٸ^T!C4z([owO<+b5;pJ}+Thܪ5DĽ(i@<"ߵAGv ?vSV iSfNIo>ucmzvy׳`hS[](ϊ-[Iˇ|iڼn8{{ʗmXe^mQ/lS!S:c+4=a^7 ZndJC 8fZSVlH<Дc  GQf*_^4bظ%`K95|NH3V5p B6!\7vq'dwmLL{t頋&?v߬$˝nz+{Vm&Uf8_W]~<oS=wmDG}dvr:'jl۹jѣ۱jB ^ *f4n9n*qn^4C |י0@NYkmj#os#Ya޼u!]uGU;1XѴrif64Һ9t_k?r}<mI t#CMUfB9vmΠoz~1ju'[>9ޚe>rmQ:|9z}<Ƕ_zՓ?uٜ'4n3VN-uS2G߹*cm!@I 'Xy=0 愯Jh>TOQ&+tmHdӼZ9[/F1hk7J}67[kA#UuS$) - 8. { tu{15oכ\C;z7AAQsFܯ%OIm.z8/rͶ_n^y3$4lRjg̭S \ ;>Tx>zzCA7^*C2rtsRN^X]UNDTmծ#&l9vږ,Z]Fj@v|6}X?YYMW~O轫db 6snYO^O2V1N(8 1*T%޾$&G>~lkqʎ]{q-#UdvֳooƦS]ԉ7<*aDDgy i\a4.7 PB#s eDÊqޒRJkc %\BխHY䗩Me޽cS4Q}]|8"R-(E9v*|J !Inv6lIϔ7s wQڰrkql~.j ?hwtxJPZJWOi5&Ԝ'[.j?gjxI`udЈWv IDAT[y |й>yǣ>hHm{f_sDT̀_fdS:h"ˋ@ku[-%IEz^J#K ^vYE &Fd*!OsY[X4t :k YEZNCTƺ \ufyLkkۻt|>лWnֹ3%moˊ/#B0l{Vdӫ>FQS[Hwsmé.aioA^T=KKQu+(|kd!oB,|ͼkW83cQU]P{1e876p@{H~vu7ܰ?wfo~fz'AM_K"U P =*fѱ(XC,,C%(tBD)m~\+ƴ9shsW% >ڜ1qev;S[ Q1Y,}ݮae]}‰KTڮae'N]?YbSGVFkS43xyݠM1&lM͟8Q|V~ù9(rM[~%3Umj0~`TO'f͉~O#t5`W(&±# ͖ŒP>X2MNPYȈ[/- NMF%uSv_|M\ݢǖ!]IEkP$&5&ua^AĢP> @'((Чur\p "/NRE>.mn\ l5I9Ъ#T[:hueH*w\ȗ5:n1ݣog( ZXQ[AÉdFGl |,Fnk$UU<( nCsQcDmCc178, Z,nZ SqD"#XMp`ix~]lH3{gtJ^{@E]RAvz%WPڐ4sk0M AX0h|mXq.h_o M\XRYPu`CDvljOqxѩ;fjg_K?<;uڛ8mVuL+bI*WZTd!b[Ï=Gu6ٟԳV3лR0č`J)!Ԙ"1냱Qۏ\ub`"9"ള"ltzV~ۨMFm6~ $-"MT@75&^;FݠvH1}aX] ȓ{p&j_Acgj@u M~}tyÍ}d..7s~뜨 J;|V&EzsηW's"7Pw.w[^ݺu 65v{@okLqZ|l\ll\\l\\RUى)Шר^Hᓝ;/ۿ::L\ 0 jb1YBYцػyyUR;}69om>:DA[֪<`3"K,8w>cdP`s>Ni|}awt>ӴS+OѸ[5?۹yZ;/bx x'@줄BFT=k}3W4-jĂQ0XF.ڨ[U&ERvT^ɍg^,},Jo[xUvqVPL^|z. 6޽&b>>Ȯ!_z{2BG%agB5 &ǝ҈=FW+cϝJt4U-uO>s!J% &С ?uk46fv_3N;7nԴ_~:y%NCPk隩.7MrWׯNFGOnW[+CTN% iUvvѥDw.}sQ߫!@[p4ɱ7 'wR*u6uCuu͸ F1/GĘůwu<۵buHOЌV0(dt?G?b\_:mzg 77.A}KNQ~/@^2HbKBmxظ(]AEJ6޻Ǡc1]BVsPֱv *|}KYs[_&b߳h֚҇TmFYYW~Yy YS{,{ҼBjt`akبI:<^3=x=sys=d8 i1Kloґ ;dso8fO"#9\= ?0x_ *f׬NL^wLȼkUљ4S[=X9fx~!$DꚩkdRm*&$c[UaO'nH'q 1y uƛ7 M^={右l ^&G0hbO|ђ=yD㮥[g:诃-^Ȃ f?PT` ެqYqou.0C5&O:cQTNgx6Oɏ#CF<ݞ'M.?@Sc `^+jޯ[K[޿lm8_I I:<_WE償Z8{y˗ls_0fw"-Jpww>_"(玜w-^d7*by/db`w)g<3;IsjhkLfU9 N^[~L:C_z۲38ʳ_fVMJ;?l?~WŢg̜XR_M%5D۸9=۷(kM[qh7D3̼ÈXtI&EEi3Ks]T$ Z0Q8NqC1w=/iRIh#Q}YMY˜PY͵FS?u|T>Xb! h ŵ@^@q+NTpݡX($ 9ؑ}Μ{;Oo29g-kG։(H ]dö @+We&GgX z ʷ7I߷JgQ>)T b`DgN &_OA2RXo} /rO>|Hspj6_"¦f6lSF""g:,J%(R'X;|rc4T6#" $K YDz;tB΄XqYq̧U14.GGav1GzѩH żPLag5m+84G_ 3*^d'',16Su7ɪgDxkyIqgI^oTt-xTsuy aKqx$|=b<(ڔKDӶzN&X#^V(r:z!I88Xb ҋ *@|A!i/XRƺAf3C:i1.W)FJp KI~C ]~k_k6 z ZG*TD禤 $XRMZ∖s!,n2wŎ7S=K(v 5to '#XPAc AQ&ȟ c2# HN@\M?6 bc"8'5U%qfYȹv?W( 0G?!+ CA%SC/Iϻ5<12SQPBK(RÈ$nKJ&Vx)-"ӣ6xڻ^l?h!W{JjI!0.!6X ~ȥ@޷ !YU`)d T6!?k݂3[W\&d6-F֭],ҩ-kl(@pQ1* Ľ,u]r^6o7X $ ]-n HG@G!6K_cIQ~#3NfYr6 \z0d=b"TS/Ol?Y}('E)p"vîD|6[.ch~~5oN@=SF"Gߘ!2Y|TJaKV(Dq<6Dj^@I$ .W5:}neJΛBsՍCNdfG_Q<03= oXAUރQSD OZj;uf"ռ%9H *.QQh =Gs~q-g!Lkp^/`A@@uEe]ͤ~}2kQA"Z2 2QjQ[o"*[TU:W.oLY6x鼖`v;ġegb£;Z.Qeg"c"w4s}F[O&bd,AT~8xOOLi>K?!"!Y4ϙ Ċnf(gڐ;bM&Ir͊JRsrbVZ"(v r("& e*I>UQM7Ԅ<%beR^G%L 냈a-z<[ (>P~bW ^rbxlDtĹ}KPWdtlxtlxtǗkVZp#&`U#GCZ̎]ᐭ"'p,qie19毺՟8mic~~p!8)4aK*9O/C.+aCWtw־d)0x6 J}voXА%;'=w1 wʹ &GPu6|xGbpN6hÒ x*Hto7, "{ ,35I`*qWɧ2 ?sFniY?O57 KIvៜ ~볎z \X BYUWcJ$ .<:[] "̂ZYgep7TZN'K6oHXɌsGt̪m'l]tc;j` 0qȊb=refUbo# =y[9&W ϞwѺ)80 &8jog?qFlD SEz 2**DƆG/?2*Ȕ*DĆG -6GƄGńSirJ]]gcBTΘ.bcĭ7C#v,CAdT~0*8xWwuׂnDEl[FJv`bwi8]MOt.QI%誮on=F%H_d@k6LneSn?8v=$_K}b>9Ņ-dxPdC!OmۮĹzE;φ] >SBZ%Ay!}BA:O!GF{EM"?Ʒ@~,dL =G԰(o1R891#^3 MN9"]G>6=VZ4(kuٷD6t,xsB*b1~Bq0CS  @{(ɏcUS8E9zP YVzQ=zt"҄sr!3YL׮ 6of>쀆 }}kFu7h(: 7hlïڔ\5LXڧE߷1 "kU^_qSm>4m7ohtt/>B6e 56!nf\]㧷a+PMT1$ѥᾐQx^qO7ϸ^nJRsu㶏oğjMY9e-t17{.>4!__yCu9S!ڳǼulٿgqs>CDE^n*yBi2 VE*"OAxb]E"fPE$'4,"%bM[@'0½.@(]Ź >"O &GK>@ tozTƒX i>ɉ6Pps긱 , x JQ({``)3G =gA<a6ѳx/peQ#ܣW1L Q;ErW&Du$RyOz&޳WСZmd9X&+`יy"\Z2*bDKכ)AtTǷ} Knb>RZƧA7 2kJѡB>_&9oۉxq>c۸̽/߸C AQw IDATXfR6 ]ȵ%NzKv[ *SR(5-9ŃǞ>a>C,J줐)ہ\Bdmh:rSH# 2 )ڝVKmATU M=7Nh,Bj@dĬEPIp(Q\SgwsQ-w8H08DB'K֏R0 %܄ ?5r9~,!#xoocZJʙj(N Z}4Mw=(979E:}G9HIv{R~Ĭ͟/ӣSQJсFrd֝ۯƣۻ؛نdދtȍLcsOYJQcr[`tFZq@^7CC.]LŢg I$EgShnI\*zXS:׎B+T, k+Yga&lKzd,Ě4 R/A2uYjlsDE;hV4\Ъq T M[ԘDn#1 y752;55O[Uц-a䴏Zh\M@VO$,йuk_;tBhBXMW o:ib'BGJ4iv!!B=q\}]t/W\9[柋UnVT'ֿ}#dfv9LcҾcr 㬏k5Y7ۋ 6uuX1x(HRX*v_{@RxМQ-"cR'ڱJJ@kobhrf#ef⣻TXL `ZfxBXf|.*pt Oma*g*]rPL9T-h`F1 ɦ! _kw;5i2>~jp& 2?jΎJ&N5̏ ͹רޠ 4e>/!¨3Gb !BAP)U>pm߻{FS%p.UYe!wЅ72#ILv҃ /k{8v3_w^YUh_%d MNmo. x~v'Uo,[m&:@8ݑÙ"}p  ?`FlB4!7'Q"I +ɁX"Sdћ^^.xyDJ(TDBZL2ʿA!~V/śE ͚ObQWRўy緰ĔC olؙ3$9˼ ^w(˙+j~q1uį,QY7P? zC}"D@RJӏHWeT$cD1ֽKHSTnZ61nC쀳Os1m}*seY)/3.LxS~ҩjzq 9yp" q]j/_u'f[ͅ2{ϝ;yޕj=e:jWvڤC=Sdt,h_(`1W̌#{1]x{xtx)bPgi_^6DtF"40F=հ%)i%R[C Uw+Lɹ}U."YX!%>Ǹ BG2McdN>%oyM'S.̚Qn;:Cn}3{npc/s4`/#pqK8?{/Õ眽9 ~Cbt>no$= `5;Z/Ћcf_?TlSNM'l[I2mNxA3Ƒ)Sǯ?ZB]v=fY9}YcvpN]GѡP(`ufN7ϡ.X.:d^:ym"vNń3_C,1D)m c;i7!`9TvrubY ݝZ$4B. #_BƆ*WB'v1: KjZ&MXQ"Aa?Z$=E( BV#&QX~ *}ߠK!?:a8=0+qVF!["hy7$(H[M36 rSbCTQ[z}(B&:HZ-vK&E/kLKd>!U>~K'@ Ԩ$ţ7{5; kb́B#;yņM"Yb:e}32[3oSԪF Xύp0$)RXRn/i *b| .ۙkio!%׀DI%:Ҵ1 L r@˛|rベGGbTN ; `Pa4(112\/جTK}L&9i|Ha7h33| ;RUoyzLE5☓7oG6OOVLU39O.'YOxq6[Gl6n3Ӳfx8Yr DDo˾D we _Ш&7l1f᫑A7"/8Rea7?p#`ߺIMk@1`_hD {Ј#=UHOhZ}tYαv},\NqlgwPhĶ(?>`8=ƾn1E&GKJLKy Tk9mө7*%SWr΄hַuQAk ^yٰCug8U2cәa!6i0%uV7  ;=^ ϺtȀꦰ.~`r] }R$-ȚgBWtAfu7 ;sF>saט"7D0Z?-˵aaGwlV^#v@y 9,}j7He4{$[3mqhZ" Yn5mqxkMsIN% Q w%ڷPi_JD}f&i臦R_Rӑyv5B6,q T{}IӇr:~.Iǧ?5DҮm{)eW'N=aog0'*<9u3/=h̔TsWdaM׿ >0E :SBgoKYϵr^4`U47@=OSO9UC|4ȣX4TZb1l=q61A l&~O s$7-(d )] [< #V/Jp%]eZQ|Za$1e[Np*<wNn_^ MVmrM?~Htj9꽖}ekعцKwҭ v<#+hIH%թ؈[zGU@Cg>z|~rJQQGTVW}&"6":xa}CùZ%] ソpUFGATF^|+<*&eëj,xNńױ^?~!4&,*_KzrOAW8cو3U!2*Ϧ  ~vvLhlF6 ~hvw_)^MrcV[w"On\wW3rjWM_H=-1xd(ɉY=nڃWo܉:q߹^˪2[(>0_vJ#G]]oɕЈ( WF\9ey[g.e?mvaF{ЈmסߙɌڶbѯԣC OH:r_ONULN~s>lEe;8Id=qb6F܈ݞCT:⍈ki塐4~ߚ,}-PF6 84ig)  ;wQ7TVq02 xggwuW""wK+ Ca>Fm[nsWfd?t{.۞Z7,!!ЊR}w\wؚv\t ޓW}%j4zȀ@C?NnDGD ꫗naa'6rh_]Jчv`BF ^Xڅ`k*kOX³CJнgx3Sw]|ВUPΌgW6Ұ~t'Ggk ;wQ_&qL綌hRZA@LP۞<4n# SǑE.0DXac='a}S 2 (Í2 Y(p@; QN Eϕ-Hބ(āG[ڗׯ*kE&i trʖ_[ؿ[[-\Or&sƭI7߇Cs ugih߯=}̯\-­]>nݲys?~s 898k8yǬT 6)C_&,ݢq5ϜTg4]m\{Ynڧ kO[7+Wrwi8(@w3ǭңKvɴln%.4h շ?Mb@cK="ošu-$[q]>nӺe.=ՃS xu`^&mNn5oyo?L`Z,Vw:R<ŜTL=LM*;E Mڔˎ 'I+U,O`ekߊ+BG$بUhok۲iVG\Og/i|x}Le=T#, ,>Jwsǔ ^1$9iתiVG\KgόTZG[ظ@M;}gql6i ǭ) ;/d|FlK-0g{TEm)qDW#GkUq%~(˴\ 4z{^˞eh¹?{'YӅ>aGZ ?F{knۖ_7lptsI݃}~׿װu7*MX5 AkA\6NӇV4g@0gnD]krP|vXYՂEC_?pШy `M52nt||m~ [5~֜6-7l`tt/>b6^jp٥ "{;@ 'N uI<\ZMpe*19@:^Iή[uX^(C8CQ-oE>xs>.0t^ƍw0^So3^|gC:,`?/2 r^^~sM+E'L}aݶ{Z{+ѭ^v_ʖ5!ZN0Ĕ{D(+7IQ {Cvt7}iDcaU~ߍ: RCn JB-Y{W/^ڰO>J̹qᅲ˰ax[&J$CW22&L/i]&?=\=4>} eUG=k" R/Y^<[ Id2ᛶ\ONطJF_㮈hln6_^#M&z(8'KvxyAk>M~z5!:;?EOxcM>MO8s' ڿyѬu!Y:[7Vp*ͰO>~cx,mWV 2vkMP- 3Q#"L \ I=W x䚱ة$p/9nЋ|uOU5q+E[E*i[}e ,J$)QRRc.;28Ujaᖅty괎ΥyZW9KyUܕJBm۔׬LgUUʒW|?]k|&皽NRP##F2.D BG[W6v]gRϙ+5^OrU-ų@^,I {U`0/AsKʩfӥ~4mH?/bL jr+ٹm{`[cC.^HEmǹv~UGNcT(xr(5{Oַ%M@c7Og^|WA>T&%ۉ|#]$~Ka N,%a% r Q w}t>61KkB'DI#Gćl`}~3 ֡eĭܘ];Ƙ"!T- I 9pN|װ h\r*!G51'CSY9kаYM0o}3axN&X'&dh[m2p-sq;㝪"^7 -附p#.hpGY@!X鐶}c(qzǟʫ3g[l9QAZ4e>/s7Aiݯ U+VC~jQuM**T*uLiX6Ɉw:Va(TJ; :FcYȒg} :3s9;rҤ&34*_yhu#E,o~C:LxqhҨ bqtOm[-KD}Վj`{gUϽ I^|>?'3^3yby׽yʔT0ե*24JYZ.Oe@^݃3? `ӣ$d,CgҕPU\ àyKƭ,M<4\4)W~6Xi\޷6܃\D4lN}2ݷv֏hh n+׬] ט/Fj'#{Tר jTXΘ* ͡^јx;)祼SP@ӂc)$"r4)/ GcjN:ñ剤ւU SSjU!$CzHm!#wE#[U\uN1Ao[}ܺ'uۻַ/~nt0GoC쀳Ol vzΉ]kE~P)V~^~u:ŸGj] }hCUamM.4X ؆ ^wKjժWVJ}弫52{Zxk5==ޝ_7&d>2vņݻTצQyFl^󆵨We)KF.vbѦ[ۖRY4i[֨E;zUZXƯj>%@ ?ܽ*: O nz ;ܽA*U3~r~pMփSƧ6N!E~Fu@*wǃoq/5|^<ӯZjJhGjիT̕ڷ'd󟞻;bʀ:Qo Ϟx^ߔ*>3ԅ'Y7oUצ% }QC?@ͰN ZmKL%~mwu8Jt03BBDF*8 4_8cϼxVmұsF\jh_zؠge{5v{O 5c̷&ǵk.#3R;<6n9(y +|>4F1Sa>bol ; HP2`/.-Y;}gը9&.; ߼3]'9ǤeM{ .͏VoqhDA/{u% OP}={>ܭ9J&c.Ό]6yټu+'No'"|c,`?zƖ'y":o,se4AtT:Ϊ4ݣ\]u?ϭ\H}ΆLLtF'v[};/nNG; sfYб7xm} 6ANҮb~]G]Kg7#gڏsw@EC5B;kiQk!_e_˨(>vmwYL]s"_M*i"0OiWb懿ыZRt遯WwT>ۈ)jcnipPf1 ~k{_6LMG49k)z6xxi{[>=pUL;i?ƪ%ח=pՖN?p;t 6e\NsԞ(kvt:kZ:)c M?knV4B%Y&ځFJ1͒һI Dn`I)vݾoT̈^卩'w ٓ!=\uFgQ;lEI+$g?Qeh( -|8(m4?:k4Sh\Ko2jI''K~,KxƜhoGd˳JKS/*CS$1hI2 bx$P M/v2 l-#9W "_-5ʱRV9o \(H$۴Ҥ܈BmF`{nZ5j==\#??KR>)f G C´{di,yV\xΙȱdqr[" ?a*JRJ`6*Z+!)r6u3}ud|u%꬛OZ(BdA(hٶT6\kc6ØWXht)/.k!"3"f寈i]/#Bsˌu3("1v-w5iʷο~M8 ,$z/,iÐ1+$A,WM/d˘M̰Jy " zȃ,/lʵiB&u"C*^yD @"wK(^Tz mFQGn'n")P>Ί>a+R$CƩ tdRw"!P#"nsB֬6'G@ vBdǶI5tqH ڠK5Wc/"X7.RAgRL& uCgl)E%xIzA@a80! T/?y["Fz oWO܁"oZ)|HTH#%AC Tʼn,΀DKDh9\j xޛeq~|IݜCEЕ) bE_boW5PT h%WBc2(dDŽc9D)u#XyEaE C}3ա@!1+zWڤTF街v_Qԍ 5|Mz˱ҳ߁*ŭ)V+>v0h_Xl <#*=;>ᙙ 1 3^8T\PTLXT?0jGDa.  :0&O PiE7x\ѩof`aP1Bd&DZم\`z 2XjEbsQ6=#(ȴ5A9WEDD/4O*'L7x~7"d&y៝xqP~CuXhn* Հyi w3:FczFAb!cX'A'\[`~D|t6ߦ4G=^^A< gj%ɇ',9 VĶB>]i +9emd^B<]zMVFDž|M~K>ԀLR̯_~R Ήu W_Y@]XhK~^Pk~v} #3 ׯOܧuꂷyə}vO\&+!o3^Œe!cwmT27-o N'l1j^ !/֩K_}Gg?IݦG3gkUP&@. r:מv~G&;f$tVV\bӴ/2l ( H0N"1 Fso% s8) p|sw _7k' J)ed<-Q%J7oOHl[#5IYOcDW Y8mk-6Cf^0$—Y_hجq+~ykҡd1cwߗt}k&y!w$؟Kd ɋP/H9ģL L D[Vf}E-A;u(e>ꠙےu HΙ!En];BVf-v6@d5*<E/v*dӲB= ?nsTz=vn'.D\cƴVTm1yéC/ҾA`9z;Ɖ)a_gr)xܟ"oGX]5ҹGig0TFW2C"oGLVMg"nGmYss ז-l#ãsiڳJ֭QFJFͽ^_r":uk֡Fl2I={G<{E^QUrQ;19Ư_'&& ޿t?Zk9;Ȁr5܉[һy~k>9 Ol8uJvZ>FljGwu~\3FWA^u}=xziTo# .hu^P}ds;@.nټE97 IDAT*uݻۜj~~jP8۳pt-nW.@Y"C{o5S,02ӳUb8ThҦlvT| L$+"UYqWkT$67_Jp*Ysf:eFt+3Fԣ!?߻z㯬N U z3,l ȘfKb%Bz~yPP^WӁƤ#[ 냇 f\##,R@gWAb...۸dKc\q&>Ѿ wf J(`xwˏE?K~~-|;58LVOrgP2ypkhN:>*RAז8)UA f=ZElp~TaITU*6[ƭK WNxx͆vɏ߷z{^|w: |4(ohǗگ*[ ^ߌ|:[:W (͊(4L]jL5,UdGb?tk0G%?snֻ>[{+Q) oE%6C} w`ew' PUCYa&b|?_0AF*$w !;Tow A |H%ʕq62NHҸ¹+d+v+kxWwdv-"盄tpm䶲:y;<̛YRQĶ$Ԑ11 c4Tk>),О9Zp &/vBb,K2&ߐ@yY"iAlNPLJhcVdRM^@toMXɽn/et3/ppvPL:,6AZS,I JwSuX+xKjU|Lbp]!3=Wm %h0Ia 9B+|`c^MvX& r(lWѢ$(.>4Mu)Q쳎E{!lKYPxR K6A'9nOrJ@QZM9g-'PĿ<>s?g2I! Jhm UBmuڪEU]k[tA]ҢUu[U[-勒K efyg}w&/7Hfy,s^;r0yR.f\;ʎA"Q!GG,&lif׿_:ӗ/u:CBkWBqLꎪ<υNx֘C{VIS=V _J\ n_Yx&s{NJKM::pEE᭓{3phb^5\F1jok2#ynϩ\#>9Fu/}۟Gm"YpWΥ3g^~ׅ(NzN留7m!D!,"T|,vKJs{~fۮN+I|te_:~1acCם5Qq7LX2\k?Wi!uA0eA5~'PZcqBP߄ zI`|Q D.30{SJ|4@s58ו波Ysbz311Ohjrئ=Ǐiفl?bbjxmL;5IwX|ʴmbcTߦKiq77Nؘۼ4>ah| XV; s`Щ*M\j&rлJm#&#bs3w־N1$>we?ܼa@X.#TYWw{Bj9b+nѱqd承YsQ7^GHT:5oРY3uo {~Fݞ^>\P!x'yabO:6&zֽ' 'xeĀN kDkѱqdɫrSš ^ZlGʄBCjƔqn7znm}i7s}BHH}vl?.dCA<ؙc:6XgO HѠ4^mqq =WʴտM\ʱ-ju}߾+ne|ٝBsjky1UGDGk>ެӰ:y~^RinC ή[}![}=Zq1_J\iK+*I-EbBYy ]8=%PPV'KzwtH9UaiyL7 YSEӹy`:]1/T3]++iOTWQl?k2`cCV@"s>5=l௖ wl9tFN.rk7$Vsd[n !>8#-I 2Ϥ_xecyW8[ߛ0qo]?}UWmb`|(-shڪۑmAkʈhs4S w͟L\kۗ/:oƶ'~"yr͇湝yָMX[ϱ[/RSGgkxi(n;o{5Fs} K&KHșy]/FD(Jˡã8_ğ^bpDZK[ɟt(*9 H2 * / nArۥ2UFOIepEJyNy o$8<|~~Porΐi&p`I%*=X%ꦧEijj\U1қkc@ e̩Pa."Pt fah@-9PP9L[@\~M2H7A)$rQ#Q|M\3|d8yC\MfʼEd:ՀF|h675H* Ae{y4ڂ*zAmo1H"t{a[@3i<'Q&P8\/r!>Qwt P=`Ebm+4c@2hh\)vOḦFC5)Jn1I *%)Ò>ּ:Cy !~0giIpN\Tyz'`7#C{˧QFn!BLOZQeʁR+ f̬QC? 8J\ひg!Rs}<$6ސύ1=wXѫx=$-P@6?t: ڄ z@:=u*, F7cڲc(P"h9[Q"1Dbxrdsk%"I*o &`$F4HP YL,`Z`RBd{AXXP:>.4)Fj-JZ[KbuŁXFx(O$ si9qbA`ljlXd"!y Y!1%ʄ&1/P8 ebYژrHQ`M%.t0&Ѳ5A0򾘰&栁$m `yN>W2'/W QGE z8`%) ";".72EGJ1MqL) (>!]e β"-" YESQt6"Z`$Z'E 6$@:/f4*Da0u8 ̂Af1To6:A϶[wLHǓ{j]yKYr0IN]Ү,^՟~_ݯBdͮ,ޒi#q:ajk Tē{jǯ2{ %NOw_xYtuƮ;yKh4I)bEb!OL+h5({fmnQW瀫ff +Sxi`9ξ@Tk8]@lޖ `ӞL3W|%"r*IRxhқG/lXB+^0ZYpV1[(1U@h ,nj „5)Bz0e{􍌈4}ΛSRs.ABYO;dW7{ܹSds:G葸o7mgB6&obsNDa0:@]~JĴ߸oN \ZvGi}=޷o3~!sޜs% Ywp{IqǞQ[40vj'\ND$usw7̪r_βh@qlU5غC @  !0hmIIKAIyG:P ^ UDxH᠅Cj|(E!t-T0 7,g$ K>XMdEX_ Y<\lNdR%8W-ݐt(9t_׋FKܗrpo=SA-[3|tӎ&3B;+5ijpm2d\~ؚrpu":8k㖴lY뱡Rʽ>ϛv{Â!(Qը/?mT?X!`Rޟ3w%j䔃I:Ώ$$?RRV9qx_r0)'.. _゚;=ZwmfgQWDz_aωI>?١+Rʽ>M߽!OEil6o:t~{I)iRe!᭾ϫKʘpu-mZУNlŮm>i7RO]_oھ;G|Xȣom7jǭ8O׮CTBj9_=2w^8gwAvm}ZK //5iԨǜ=$YSߕ?/GNo-_z(B=:z,=`єq]Z5=ӧzqJnٲe{T>/_٭C|1a$h[6Cd;閭:ӤAKvt{']s e|'4lިn,U;hGD+AIDAT7'I+{7Pbp= ** @T:n ᠋!x#$F61AIO$r=]Z K]7AB'1$ 7taӬ:}u{B qW}xhWBUg,@BfҬ: g<6J)\4DSKBBŵxo¶{+TOP UB<9;~.\w>,Cv*Ur_O+^:w|վὙ|T6.5M_~╖eu*nvsgdng)׏0h\h/S,tʵK)_qRS˙|Oᕝ6e7֤ M^jU]@=? z~{w-dxS!OX^]xL2~@D>/UJvEo($":f7Mw+DD9mRBBlnԭi6:ᛤ{WvrdJFϗhBYnCidΪrO |Ʊy.Ox:}ּFTН{U bbo;fhGJx?q0@«VGwދM {$*K]eKbKZA ThZP ! AkmR+oSa'MjAjș|M'm}HP'eI%""o֫(6CBZPT"A\:9jK˂3@W qtie5Ӗp i[,f:տ'Fq;!Ψs3ǣ$ A@DN`v/q)Oy.M?ˣ{Oٹgv}O6iǽ\qM!bYM#}qˮ"KH'@#Q MY*OJD!(yxJ#6)L)Kr()Z X?M/KN#!O<%0 tcF! bP0$&L fTzD?aVVq/eH)`  uh2uj ![غQyQFMB/ $:G3#7BW-i^/9 WmI[-cZ^q7b^ڏFx/QvTj !S{3phb^٣ƔB XzsQ G2#7h.,z0g ?|U{nKBGZFB!r^÷FvyS3FƴsX(U{B;|뉂 on޾yLD#ԮՉxV|2wy f3D7"+ӈd$XF14D>"d8wc)ԓr=BD/-y"= EEZXen/xF:nC3~]R]IVFEKST H@ Eb đDU R)E6Ì^5rOvhRWfbNڧ> /'wn1lFjEPq#~YҿO}3_tua٨qO,kϿvh͜nB0gG{{Ĵ%"IA晔 of9e^PH0y҈W"9g79=审啟_vHșy]-[La%[|X@7ZO`Td3~xR[3FV=t]#N3&Vn jLzݭ3ANM0KV"91= ֓M[f/h;>&#:[Û垕2E TΌ $ xZF ^J R т#V%7PTń{Xi'l=H$ !'iP~AJ"dޣ\|(q\(+kѫ$01&z Z`zցY-; tA7maPA&@4iOVvD1)gىurO8ָhk|ETQRײe=~\F OLCsZgjcdÉkg=2ez,OBTUWpʣ8 *Lwb+HyۜEkСu 3`+c L (MD3TH* &I3#1FJH1.tzlBL E<m^J;PVc( b"H]U5͋@b}v[O1[B#VlX=|a1DMTxiNS.ձ"t$0x*sjRbZAKK^ŜMi'"A2>KirY =' ~HQ)ʀ82P խd)&ZJU=ܱ"{Y4/!eW# \TO{+;] ]5 ,֠zg +YRne)ZgɈtfP[?ྺ{j"yrM5\3RρZܧ3M1}Vzܱ?w#Xq_gq+ PK7 '?\ѓv!)m  ! axB4o8+FR l ߤI VąP׀ 1$G쓇 hc2u"Hd4T!Ƭ&PdjYj-n3GN ~%D;6:"iDYA 7K5GC¿ee &BpV{ 1  *Fr]["3/ˠ? Y0Ȁ &K-DJQ \LX`bY1sJN6!H ,I@ŝe9)H]$L-7rV @>5IENDB`glances-3.4.0.3/docs/_static/screenshot-web.png0000644000175000017500000100653714432156570021236 0ustar epsilonepsilonPNG  IHDR pHYs  tIME g IDATxw|U5ǓuGnY-=ZFY28آ AT7" C@URM)ݻRF}{IrI6l@fx4Yxݍl:€kǜÆyy (YLCvJ  L*dѹʘE BP( By0P F;ˉ>cu$9wwv#-q&EH '`EQ "!ՂBP( BPy݃Cde(@ U@yݮNRu rqIJ$e,)zs`/&d\Q rD$@ՂBP( By~PbOH &0Bfg_XUbJ-1c.!P0\u<>ZBWeu9f&c!W,@H Vu BP( @~f’"j[Vky:XUm6^Eaꂊ|o$qOxC|hɲ =*8Qeaxf+&V.[W "Z%,w/k5-t%2 kTD{*s̨lGGO?I&/_6L T>c0t۪]uk r#===ܜxlVd&#&{遭[W$o>{S2#hN?}zӦM#""ѫWQFڵSN$U鯽3 38 _~;wnժU-Zjձcc˽BPPPog{iӦ(h6mɓ$JYcһ^ `^mWmZ]\SʅlWoժo0 ]Zr=q[=[w keХaURNj[|m->k@ѦWZ&{\B@cY٬qBU-U @ ޢQ˧*cy jO:xK/6= p|bDfwρQɱOo4/jrǥQU;O=0ѵ1).=jI;;ӻ^(8zeJcxkN6JrlզǴw޽#6[Bp{/BEk#S( [wRC#\8}Fҹkʦn=óϟpmfvxwc'*kctdt>>ɢ_da.L.F(cU ݶU)lan킽`}{NdK~jf=p|%kJ|ia.tRau[NF*D@vn+wvޛ_}{Ӻ5BK.hƩ?ؠE&K8Za(?ѫ*ѫ{xۖ@B&xї WJOMVBL?V  ۻ_`&TI !Z fyرy> aXZ،+g]׸GWܪ]7 rϟ)SJUV$''gffJqg5ZnjcbbC" clZϟȑ[ny{{,˲^/(((ͭ0D!qT!RJl=|1{}7_)_AaAV K{G_b2[ul8gS:o_|CtFN $M[/ꩿxsq:e3]o3z9r% Si2buҡ3VǫtԸ[ӳңًCH1l#G7G[u})GX{<Pk~yi^DkC\b <iŠJh[c}cr\5<__`#^Kaaӝm;ٽм즾o[nk;82ע/Jc5]\\MfVek"klEust&ܜx3D"",٩Z#+^7]بeNhV̹_ vl -]Kn:hX `e'[ml",ۆٷ~Wa#kx}P(Ok|Xlcѵoqk%޾pp^S'Wp$P_[+n>m V:ˍ[ԩN1}2Xp!GPf$f{;6tׂ^c]_ {^p: 3mY=\JAߨgM:eCFw9!U2/scW}۴׮)pЪ"4ױKMUiP(h,JnN^ZU(ڕ?;X8lKjND@omnÇ;wnҤIseBxر̜9s߾}`jZ,T݃ڴ-:52x0b~Nj5vĠB{pkJ9Z!/_Rʹsz5rHOOςcǎmܸ144… 9SU ôj*111::k׮$8p‡3oW8ݥ-9}tp0ͧ&4 ם0^^;dK>wlgv{}$cI9Pf&EV!E>}bz=x0׼̄; N~ yi)1^rk&jsV B^vL>}.hS_Q"ɧm˖iSU'T"&Xmg 5ˣ2B@d}kQLhte|x-ƻ,I1qW&Zʊj(v֖6o̐Ģ/Yd8?RzlC6;8Q1dKQW&Zxa2ӧo~kPW]qh8bX2C>7io!o o}Ni 7ӓs=ڼ 6Ug̵o10x˵OsЌ"ۻ}sј[r%@w]ڰB$IXQUBgΜ٭[9s`ZEQ4i~g͘U_W[.5c>v{o|qI'0?5Qh~Zj*foy0`eO>?5l6={6;;{ׯtRiBk֬RU/kX=Z:ewѣGEovl2OUU91iZMTKU5_l+&~>absN`+ Z q !RbΪVKs2JBE@ & עv[. fy Zym}], #/wYa8$j, W4zg_l=47 zu$G:AHY+Z#@ 6V< X 6D;uBH sEК]h:a/{†EM ԗ YtzW*2y39\[{'.V9+`)H?%0@/`AQX=|`L1Yh.KuInRFxUA 7r߷DG NV`1h'#VV(`Ih6AֱEDޤBvQvL -}G%6ZVUͪo&L1>bΖmn&Ѥ(fafF_b+yb͗YC$~^NP }AN8}qrՐ @,(C}>ZoƁ`\()jq j4 C4MƦ 1>xv,9۫>6`Rp@B`٬چ&TpvxT MAbb<;/dI빚*a'f,j󹜆\XiEdZRmؗ?zwnrF 2PJ}4wjƁXrד5|0{)=]39mzEz"ٓ{uǗmm)KF6sʏ<|:W mE>زaڲ_V`_qAы' `:~;]} @ԙ>3H>mur{;z Xn͕j~0]! ln Gq b)/aՎշ{C~yZ֣[Nnhz w;vq9S2◭?e39)3w1{)ڄ1/ FUՃQ694UWjFEUU \XuP#(JT6[y!믿0`K!K,y>nԽ_w/X%W6OOx5amֶmO>dѳg>| A1:NN8!Bxx88""VZ!!!v꓁ ,Y5[+"d]dtTT2;coNoRGHef-HOI-.nߜq>13--τ 0qٙ,ZMwySv={s4ԴSs潻2]_q<=l1;mzwީgP鋙YbYHK!T i)@ɘn)SAъa zk왗^kQ oVkآiﻷ#Ŧ o?Ō%LR@X!~%FV!?b~MF yws卷sa%hݚraFת.u!B,( kH O`"QyJP:J!"FAPE* m&ZUdߒ+%7c8ڛGtIQmmQ?nF~gYŧX* @giYrr[C,kU8)lOEP(?K\uAVUDI˷7h\Ya|Դ ,C+ZB"ˀaXw:}!'w}֬Ynnn-HVN??gWŠBe|&/>eub}ZŁ1^o6v˗/WdWRW5Ν;G)%F122l6?5\yS♟oL C$ BM~K4 VkP(0f]:mVl2'pHRP!,٬BBk5eaƌݺu;y{!#3zoSUiӦ{VEl@~@}_,PXn )*۽5x=%->)Uł BP( BP(g,PK~E111f=OBEy_Ֆ>5=l6 BP( A!tR$Ih4o6*Bʕ+M4B \]]7YBz…F-Bڍk̓6BP( oc|'NM:R VN[*8AEĻ(J%Fx() ??R( BPBTUL&*P)J ԧ+g.[A TQ) BP(@UEBOѭL@٧J!U5B1!(İ Ô|NB՝BP( T`XGʲq\Ν5PTi4seW38Ny$REK״q'pO+AUe0J| K32FS`̀B6QyD@0 ]<{;$Ydѭk,Kg^.֍Wo#T,^#dYN}{֭7nׯ=<<* x Y@0?'P!СW>mٶ=fn/v;y`0^vww_bk֬`B$h4,lI VV6&j&pgXm2 EY,"ӈeİ ,4`BP(,FFF>RB7o4*0*\~~(!N*'إmh|`s˖<}+DQJuo:rC밖c|ncI*{fA!EOݳ'Njaf!tA,Dѹ㳳.\ȲP:n(V;aiMv.pY1cELi,t_[Νyfۉ~> e9;_2B8{ӹՓ>G9 ѥs)$iQQQ˨r!WvI qq:3 77r5dX%ppp@ I=K!buB!tl􍄄mT\»vwб'ڵi1`eg=ڍ 899]v=?!qf*U4ͽL޵,3*;4{E?8o7o8xmʐEVa3Rϟ}y䆁q4az:NEB \N) .A߉9{wLE!HڷLM&oԶS]/=Pǎ%䊐wl.Kr=' :whX?BP(BVz#M#jEw77L&Mp/͔|l65 Eb\g8-ϱb\bNv={zϿj5..5:ZfYj88载BȚ^6ѱ"#IҴw&+7痋mټ~E5f֬Y3Lqq>^a^..yBC\ `TU533%9YV!,˪BS_0i+Yv-scFVPX8cK^Ɗ89qʻq,EkK9ggn/k >+jԨ޿Kmn2wZӋ=&9IJJMMU!sƍ&" ,j?N?NZu6[Æ}PsH,;7A1c ^ 1@ ф&_2eG:־A ݻIz[5_u=0dF6n8zA&Wn ZRVo]iTŀF~].vvU BPBH1.}Ch2]Ԡ^=??_f,͝EIIKmN}`PUn^Se#LV탏k\z iѬY\!BBH`cl6ۉC*Fs|16̝;v mڴs^=nYm[.I9nYW]g8YgnΝTEQEՖ6PlJ?{?t!&7}SV[ӊ/C(џ,lVuO+Z78yr'Zu|6ko]Jo"~&WnBrss_С Ukɲ\v>CGYo/N5 =z w%˲l< @yOUӧO{xxkN{>ܹsرYfe TA/^lZ7mڴxbԪUyUZ|} MVkil*!Q#ϚoeY/1ݲ߅&iNޞpB\]]2 SEBB(-==?Z$tZф $ >M j&Ϙ 1D}s٠G Cں-Pۋ/2C+fo-#[ň*&X uz7UҰWq[ < 6tUzwGFe -2Pb\8Kα6ޮp#6;~>WLP( AVo7 JS~>FR| Sxz4mbW$I^^^XU!<ە-x="j)Ȋޛ13)9XH+Ҫes>~PITmGı' N(:mE%===w޻)) ׯݳGc/ɲ,KZCH>dpy騳..cz(- Ų,!d…)))֭kӦ̈́ .\R !SL`ܦL&k&|7˗.1}uo՚nnnÇ .!*pȠ~Z_B ݺTL7_[UUw'M,rODV+@wr 7oBn3Tg$I lٲb A333˽(?ѣ...W޴ig}֡CrM7V...gxާ BD[2 rU#]a-[ &=QϿC *Y@e% -Wl԰All(n $, 9:,c!cg9D[nrrrfͶm3vB~?>)4L&s~AA^~ުV\1n;Qgh41F Znf<_NpNۿ-bG6i\u\rZ&M5q/_h74ٟm[^c1;ޜ1[Lʛ0S*UBBBܹ#_```\\\E\} lذaʕoG:u84dݺu wqqw12[C.KW]0wJ'пߖm۷+/izCL& $M&$$.q59ȐѲ 8e0<8eA qUjb "4dd8\b,VZg4f%mu(GĪ`hԩ.LVY`7BZ&2Pڼ%^UX45tƄLj.ғDvڪW+OTR( B陛PZ۷oBJT6`(lbT !!.6I)/% -7Bb(,˂ uS;J^^74mxq_|cf!oتe}"Ir¢[!òz=)W/8p𐗗g̀?6o>zu$%ԫiSːv:֭[SN7n\z,YrqE~ƍ-[joݷs-[/^ON4烙:9:ʲբoOFFrjjW8Z^+YjM7:~d]_ܹ{OQ8'owi֐TZk, 99 LmӦ͡CԩӳgOV[PPo+5kjԨf͚}nڴSNu-W ,sO'*2||e T8~ִ~e?ct*!A<`7ʊX53+k!VP{T(LM˗C4;w^cY\rL;Y=}UE{ lZ{,|h3__gضşȕNYTڵ*޽[xhN^߾)-j\W;o~=ֆ }_x6{hOksrFC1$IUYdXe͟/Ba=[_U{v̹xִV#48tgX`J ́#WQ( BUYܹhB4֍ke٤qcOD>SdlvU--9 Ѷ2ڳBعSa-+W/4_4Cm֡M\zkZ "TU%ev)iEΝT|/ 7 uvro !trLN^c;Ǐͱ&;::;q7xyz^~/p…\8yZ@)Wگ9yxF3h}^ڸnMC]]]櫊ƿVrJct:?JU՞Ǿ1VU!ddk-V"Wx`'?,I|}kvN_s ..^3UK3,,ĉ7o޵kc^^o߾q|ᇮK,2dȻᄏe˖ڵkk׮"Equ%(*/!dQ͵aؐ2ϙ~Bb)$$$ڛeϜ=:5E E)-=ϷF6F0P9u(.\;kX,FЧ2r]/@ByDRlֶ]OXN9|#7hۭ ջo+ c}'u՛h[{-突;"XM 5>@6hV0&*ڸ:"H4޸ɹxD2L3 N޵.DP( Œ`aWW@^tw7DeW77~7F1+;瑧3 ͲlfdY=pNPPUN s/}&UUB])BiWgYOko|Nh4]:u|ܝ*!+W^˯ h5׬vqv.[&:uj˖-ifZ o+<TVn^_}jq2a~ǟWr, PeqoUG_r:*1Fquvt޽܇„{18)YSKh߾}-[Z,ggZjV&h4̿k7o4hѣ[l1j+.u$۷ԩSZ{e ji!PA}u !Owf BP(ʳxsA@TU5LY DžaQ*qa*߁ _|bcnRYq\*<!< DŸއPU (LRPp ݝPe * W8B(J\$&&UzGW&F=pE쥊],+Pqi6zʺ0ߘL&I}o'ZbYBz\ܮ޼QaHmU F-6k=ܕ90@(f,J$ Db.e[X e:'#л^/Nj ^OL]Bڼ0uzf6Bg$x@ IDATF<ɒ\vl6g_}(w7 2'D l2Px1Õ$BIg->K[CA[@9kz-ƃKub`/Soe5+q;k$h|k5%NXCzQj@ ww&68?d`j)j:8jF ;*[nSU0̙3g[%@&;;nfOM!uUhSm9 Jm[G`7j8lD#X!++KEY޻ɓڵ ڕjT )P9tZwlf|BIwt1kCXsr2>e =}d9O=oמV|հNW@W B`1 <\,dKԲOXlQ71@( c !rc9;ZTO``#WAvI$0۝C8'-[A/q)j)Ϫ=y`s׬q@Z(ؖS y:V\ݟcWG\]!!9*zďXZlS1C}RƓwFSXX8r0l7IDGB89_Z |,,,%4а&pN{w# CHr<<\Q.?R !W* MpQ/D`! Œ'*@;y9!@$S~Qf!`ŖE\YA`NvwVczYBT-ٲc^{{rjr{/@ ҫ * HQD * "E@EDAz{9Ir{f' %~xANʞfZkf)2[,7e%%?(={u떷 tl_֢<et?L4 (ȷqA7NӤ8W\>crJvo[-fgx`UVQn.3,zxhkz;$ҰBX%lh,INB[ :~Νd噧B#RZ\R9QE Ng!@@\RSFOǓSHQ@ Vj}j)c_8 +T|*@o=c ҆qif'q p/1*).KTyys@%[y9c)\3 r1@WaQL¼入1К=u G%%%l6P~~޽{Be/,)u `1!d\BrE҂>'CXK mQH(K~~>k zr@0ǏKzrI1.}rz k| "48Gm ^|ykז,Y2f̘o\j qWp^z.j AFU>z؉PXTԪE BbT?AEA`2@*+,UA~&wM[ bC 󵾾"oP@m Z#V"&9;S3Fls_3x(Wo>w|ۭ_V@.[0edfڻ͢io,ucFW'rߙNJ|׾~ŕ+ .ɅU;\8q쟓'L?\sڴRxy'G>R6'8ye O?U̱SN^/-;'뷵l) 5o*rDmldau-Z8p`AIAU3?95/֮;CkxK__$OBxB[%&tLj=k3&һ9;ݻSΧ]?Ѥ?Q,%/ZuЈ^AM"ӗ@t$#jR{XlJuԐ +++B?>GXemCWۢϿ؊f1f,o|)Eq,wlfQlN~9ew'P+ d&tjЁBxs˥*U+̲U.h-L8_PX_䢍e_XBAI=/09s'4iޖSW=KRp[~WO;t`]:~9ql?/ecpևY\yOWCw,{}Bu#+?\Pw֭[7nĈ/Y|y i} c[R1@Lz1S>*#{,B;!g];vo^}/} Y42ӖI͹q7V}C3s>/ťfGCJ0'\ٿFs_웟N?.v(*Mj)mBg}33Џ=gT~]ԥ'od&Z. !g7=y3-ҙCiNŚ9G{ sʩU^OO8y#~h`iΧm[kU"L! 's^p270 P|++wO˼'/Nٿ~ [ ~6_l5U\;}2;׽}rIIQ~Ar-ƶlْdɒШ Tze5'’ u"Q1A3$+$oO;30E ~!H 6>rqi09kܿ1PQYYPXgs?Q_!٧{ՙ mEq돛KJݎbk#GMwcׯ_q{yyՔ ytc}gz,ɴ?#h-?z=7=i~Tt0VTVxq2=`pM:ZҝG=ƷVN.7i섅z$RyuFuzn꺲}+ [?qG؉gΞB55[TT5{j='V;.gNr^8;;.r(KJ+&6B(KMϕ.".cΌ EB9Lj f ~ +F\-tܮ4Q`486GbmO :ͫVѷ>OLX}գy%ڄHqV822""3J.whBOQṈb{RU~qMzCƒa\VVo:DOAYEu`ʇ6أ_+cQ?0߇UdP@xLIĊ3Ssʜ dS߄`mAڭJ7,.Wr)jօ rglS1=y= FxwԊ\EiمT6bFkjZ0"|dX-o-*,. m8ۭ+; z@ޝt0gxmYIVZnC!f+(rӛ"vՊo~ rdPrRoXUVZo+(W&q>.8&ڃWofYޡ>ǟF}QųY$gPJkFR^\DkW b9٥V$Dݼ|K1aNO+u(SfZȹ 6JʊKޯI\hΊ3J%;SClٹV0=vJ={|AA^OOO+1OUh%qAB隱=se7eM/dlMKrP!,6OG2ndVrYqVjn9)v00Xӳv@o_\HPPFMh߶ܑ>[=yf`PYQ0a1sNzņ5^M^mT}E(L͵Hޡ1:wJS._E(+͚y./1"dLuFCl Z 2?{'?*[ q;k}#"1F]0嘋ei'<005|^5E\UNYV{4'V? wؑ{q_G1 w/B{t">[.iBضt dJ]"}vgN~a4i(˗/:? !CD˞[8]YRT7&q^)2q(; 3PɖU)Q&Q>4F\Lg)+5|â¼ٹ.J x@n$j˔ti|ZU۽FwRLȕ~V"cb=5Te9K9BV|,zF@\y{ Ϋs›&8955/267̥oVĘvE׀/ub鳝K u~a^rIZhW,EPo/m۷x)A7o]{ ~N#$[t|O' S>>>iI+cGB\; H܌JG@bl׹[soy_GQErJqL8S2-MQ [Gv[ܸy34$db ow87{O'J<}(KCȿ]B.It]Y߇_L?=?pO 12 ʑ+!6?*7^I:AOj[,(*.# %.VTq9pMLLqӁzA3`㚺>zovk4wDkEA+ ҔI׹<ˏ}/p_/_aՉ.yD!x9ߤxgsTZpRz$w픖jׁ0p=*[e# EGF`YWv,e;+@s~ /N#Wu9sZ-ڰr?\`w/ya0s>ff-&Kb߃|wű`]>r$vג??Bh}ڜTؾ`s:VrVċY |ƞokVF%=04&_rsЕMuS)O }lSo~jxKRbJɬw?)՚[NҢmɔ5ނ7?EXyk~v5OtUZKmO0״Z=q=9Gߺbx_mk+9N1$ +q Ҳ'y_7q/{UnS< j=2J'6ԷvĜKË~Ek8:;+ܷπА;n߱-230AC6~l_Qܡ)ۖLZ}RuZ PٵW6gn5c@Oo|%w>Ɓ3b$vgưr*YA)Vw>=emTs8i铯UWq Am?$}RāE~}6<ͦe¼>qS|~a9mJϦܼJD^oۿ$! \+3__2բ@VKt)ݽZ+m!隙=pb}$0 uaXo Z,]#a|tԘ_/W7-3i;vx'GM)% 0pĉ p85eg ylO\?ٮ,|H@H0X,Z4˥qYO~߳Mh`M|Q^_uHjKw_/;oƸu6,O?? ?_S?0d5ӅWҜtG˂)R@T./\2H߿qJ̔{ݹm۷;@nהRƘ90NX47K m֠`V/؉3g,7';$3^w$c67Fsur)?/uξTKec<]O=3ax'>Oh֤5L)3C3s2[';⒨ڝ>uc_3zyeNYsxz3Mapj7ߥQo ؕog/-G_ɜ =vf0*lSݚ&$0؉#n*+/{/SuzyҌ (\_qf1%a$I`WNK^\[p#Gu L[]6 '?w剠!=[xxz/9F_r0p'2?2Q@`R xZu^HFd:No׎g(L-[+\Q>\1yIM[GwddH? r -h5B_,Mx]aa!اF?`t//vm.6O C+ 6;ڃЍ^]s!ʯ8%; Ȩ0@1(}uN|xui.[i[^wO[Wt`|xg'w6θ㞜&$ņ|QK$ܖgKj7ͻ~۽s9}QU}演=|싻~veo6  Tgid b*yXe1AWr#쵉#b"=QɃ: LLhծ=-݁9a c]>v֗)_fw5f] B8nјB崳ώl, O^g @oѽ"畘B#22CD&PCG㓂1tt0~C qQTes]Rw'h)EH}v) N?uӶUbpUx0|ऑ )c0wW߯]܁)vӯSp\4yd,H4'{J}=~:#q@er{D)uW?y|Ƹu~V"eSƾ:KiuL۷>#̨͟c_ȒOѼK?C˜Aѭ^h[6BBҀݺu k_*(#'h8 YQܔػ][Y }79gخ}zDl(gYLŗ/PeZ"_ex(6Xov-nl4Hv sOČ׼1GoO>Zdw8vo߶黵;lE $]i4YoExyzC%4 >x܂|鮈)o/H982#*k+?rj1Baz`_TdV|WiƴBqG=q-[댱記ΝBF>`P'*..I6i{v۱&_aʋQ<,Y#4.!.Ыf%ajI'Tf.G&T&=_^%1(Â\BC"AXU.h[nݬoI/Ae֫rv=M%' 0yxxd.t0Ŵ^v5_r烱%c\0 3!DQRcF7sS)]>yŽOke]惟sP!$@dw>Uc%2XF|f&-e\/AQJc_"0F0Y$MC1%%%b]6FM]?{rZwDiXތo"Dkٱ߇;/,1s`:!2hA4'pDAUBgUjΡ={ZdGĀBqեNjA#0qLQJ %8FryE/^c;V/wI}s(&x=QuA0BX* _e+f,2:dbKt;61~?^9TX7sH L raka"Z3T(@2@uDﴖB8jo߄wߍG2C_2eJ߾}EB|+5oҪuf c]&HGL\ZKͩBsL\1`**9` v!"D5Mjկ& ߞ~ڱ7cfY+ 3;?0Pw@\!/b|@7_zOi.`VרjbZi0tWxeCD /WdLjFQ{t I!,ſ<3e TOhu!ѱ&5KІ>hݿCchėILvƽ0"9BȨ,+*K[WqZ] "BbmekԵ]3sqXu*ҿ!s˗;usN_׮]pǁ=:<X`w̮*cfKi,SšA pTqIy~OQh(J-ڶiӶM;5#ΰ^cZZ롔}y'Gti6'>xO1f+el'6 I**v犞.} M}"LXQa"No>?gޔgxl%=Zuzeikzһh>߸Tz:|\HH;V4hI7&Rs"|9wBsұT/m^BOzmuIr|ߟu!a% {j"Hvri׳ 2DB' µ/Mٹ }3{4"(2dSYO-Bg>k[ΝnaI}#ťgߙQ;Z[8F߫_?tC6l6|nR87^:1F^2K&0"8}}!o5] ~ra3/6nс?,\Cwk-ϾYYP-wiJ ),m4\祭$~2F,w[֥_EO<s+]:=7}2h>pnOo:r+2~_z{Ttky>܋1ErI@v:ۯ.NprQ@z4u_=ZOhޠ$K3my̬cQ"^f~dži­Gr<3Fҳ}3!c߁6Q"|dH\kzQM%f+89l. 2bXV" A9K2n٬Q?B% n!R74VYt@z}֛6q+N&N]-*N21h#ʒlUKe@ D ǧf-+|sNnʳKT0pNI6o|m) &{) l+?]wΝcIl?mhOv esϏg*2ygz+ /W> ȒD1%i;o&˾\gfe_}O!۷衇o߾={:t())i5ȹqQA }K/6F׿X%dP(q11`pF=7Ch3K;fVrdw~/[NNl~1P&Q}hpw>\աQK^~3Ehb ?'vϮã4DJ h4~-Sn\}-MԼ0MEnQ2{6uxKO{%.G;1 I6>;Ǟ{{zCd +4a|ٌ##uƑJBlv-ʬ#;9d{B,,%ҳ[?/mAt)cxB$1JtPHlգw-^˵yfP=zݷo_NqZ>^ڷnPC\ŕ\ $ s9] "gmł%\  뗭7J6Ӱ@ ܹt/>!lL׋5 =6#@5rSr7j?2nfk*~ mF./'3AUִ|4fj v>nm=7^ش/M:њ#l{w|k\~òqw\Fj4QO\{*YyAzrQ-eCµrxa}>)+jϡ+Lz}|||nB/6mZhh,z`1128%ӷ0z ^Z)p,}{V>C*|N]1x#e8w,p{W9zJ Bga!`iD$4M(a =jGay|dpb qû>9sed <.ϭqhy`#*dI#mM<>`,:JkpGmECw[Af0L#BF*//S}`{zqN9D!Tʜ%X8 .J}#ؘOӐ=O`6% _i2JKG( x}R(B0(w(% qmF'X܅gh0>B1ݱGc9Zq0sN3{%c1bS0W\|= ^ !T\U8!TϹ%XD`K٣^61qgf|z%QAK̾^\h].U Bs{0a!Ban'3t/6|.zeBC1cjcD!#OLf5ZCzP jt=ʪ`AØɥ2(5 f0 vmxMN +--uc!%СYRH̓0[N۝zrӼQHf\EbcD94be}O˅H'pޞT 6-Ȟ%|ITՈ j nOV6(VKUHV AQàzcQJc]65V~NX-C?>VyaDAG-'a|( kkwƨBh.U11v(5&@U2ny8dYs!("oU <.FhHW75U1)̉bc;smlΖnD;P0\.kckdPc5- HV ;!: c^hD1̀\λ;'v)N?ඡlܷ?氤hZp؈BξگF"oXbL޲5V7PW"n!jP um>Ӧt\7P\m|?jxkm5M}1jfwF>C8Rxe7_}xCxjˡvKuƴ[ZR\@|,wܩx6/慻sFղE\ݖ=;[{kW}[Jκ@nݦO~ʲw4鞃_GoS{/G=wP]-ꨮx7gc{)\XX֜hDݹ]ﶁw)R85ތLJw!}4j@Q- c?}OUK뎩&më('Ntzg$cJ)}ߡWYgܥ~xgڧ[7}^DP rBMDh'3Nrsw:zTgZCCV`Ԡnn]wv}[] pN-[iFFx(װ;}dT]0UT !Xo pp9hQ+pv\14x:8RpάFL|7n#D};4F?aچ0J!1sbo^5z***** *`^0rNЈ<J\8DQaD%TTTTG 9]j\򟞠ԃZ򏀧, U)4_NEEEEEEEEE=A aJ=Ȳz? XiiiWR^Etw*.K5i4U*********( * z@i4B^qp'*yQšr?-c !zJp BEEEEEEEEEEEE埀:AUQQQQQQQQQQQQGЈl6og0[E9Bg΀,ӑ#|~3 1 ~>Lh|-'Os߱CTEEEEEEEEEEEwTd;(>"B)S'Jy '1@ HԶ\^^x !U!) Xqy**R auo*6[̧CŒ%\Rjj3-oBE>G\q _ÊC+W^7K.V_8;u>< (yվcG???lXV#s?p$赖/7j"NgiiiIIIYYY͂EuzhxuI Nk1gjTTTTTTTTT'kW'8p@Zt,d͜ɵhz1齤T0OÜrv V d.\ʸq#GN>tٲF(..޺u+.SV=1a8|\=ˌ* 7c;p8B$8}yȨWbB,˥Kfs^}ҋ#{~xk3޴/&딛7$'c,K4k?&"*********]4.AAm{x04ih(`f A9䝤 IDATl/QH"H3//E˖ \.SJw9i$~ sEys<ScSd yq<PܙLP̈́0?,0AՏ!9C e8c`DV( y\"^BE y7y^"% d8l#ST   Y*F[cXh4:?},kF(%f3ƘRtJJ̒$! ~޽KZ O9Ӿyz@C24]yu#T'?9Ay>/'j'KtZ3)i$h-m}xFtoF*<{&8(Q=ykn8Wӟl]"Q L)S>Fe %v]b`yrA:-)C+o;bLQJ])#!P#;~ɚq3Kپg"1jJ ~;4(̹=7=u5w6˩!l=1.w5|ez9¾1B#;vF;*737ɥQLE, PRQET@9z>>ʝ3s==5R$[UPS><0˖VL\.WL*)Kٽ)oZ/=0G58qr-_,3lylZwqp[0%A$>3=mO?pJCDrT*IIV4-]F9qECՏ#@ Jh`i) )?$ްa^ҬX[;LE$Q[:%j䏽m--0tذ (ʘ'GGֽGBR)hM$Ȫ-w`QQ$IE f$F(t:NgR1$SH(,+1Pž jԪeC-QJOIbV&DƘhHXI*QhTIq^Zv@N" !ҢҼϟ@r p '$APܢMCǀT "Bpt`9AAsJif_Z TZJ:f0 HCJTLETtLBbb~6b$5hl% uuu?R/x![/9/EA~rA:@RhjL*P,:!U$'C# J))Qq]qgt)lVΦ}0[.)"MT %Ħ0 $IT*U*JE i@  T"Ȩ!I 01bacJBuN1J\Hg42$6:pqݼY"X[[slgϙ#,aTbaraDfYDta!}Tv)Rs-p=մ{s}TDRRPQAqMK7%(l<.a4aX! a$OOs`ld)z Tݻ! 54klnT*~ϚJhmHpfW$vo\r eRwg)I/;+Oy `AnϷ Ajqgq9E O4zޡךEQ銿S643k԰ayܱ PwT*ΚA۪`@ d >I(HRSSÇJ2']]^(,Nk %\"W6HODR aF4dȿ-9dȐ@SAkiiq8׮Z_~DNE^RLrP,slSs-eT\岵gj3iR"!ښZz<Nb)T~gSyՁh @ @ JF0 $M@  T h hP@  Bq)ÀtW J`T* 3!@ AٳgH%SYP=|xQZZO Tzkqfay{s*]q 37obO҉=}ZK;z?u&n86MVh4upunzi"ڷpj㩯ϝ [M)5G^ ؗg]_,|vfzzӈ0zj[|||}^9-'_{ߓ'7Z2X_RO{^޾ly_nWo:i @ i²ZO[>ח1sV5ͺxY臇-vF is3J'5y17v6]A>^^OÃ]3jv牟>M5b%W/?_ FӍn?}I](dY.Ov-Yr$I*D Oֺ:lUQ`)Wθ}ROǪucmy޷NhT'=Yrksf ZQi:]_9g\9~hq2\ֽ>).R#{rѸni=:զ։lI>.y6Ok4+zݍkYm&k+.;{kcMG]CRF`tc[G5I~$,h2$̛ #on`u4wωM5tոWW ^:5su-ykKo^xL:쐇FT1R{>)S*"<>y)N3)Q"=E2Hk(֣^z-{ KRGnArX(>c;*M@ 5}77s)4AX**aQN^_  JUk-X%e|T 6߫ cו=zmf$~&m쉶=x7kiv㍻wu0^mm0hkyO]r2:VgE{ܸf8il6_EvײZ=֮].^fφڳP>@ wi6)̓vG/\rab ڭK[ZzE;:En>x{wsW]_OЍv ׎2b K\V͞5stD1[G\<ղw?MMo5gleUzFSdN79qɃ{5[Z0=?7EI4q~˼8_=7Zbm6ۚr/jLo )?ھg(45*MZ*AڊSR󄤢7UZ,K(VqH@EI@Tį:SM߾ڼoJ* E,Jө`8lB^1ixYA796||Z"@H*$AT*H *j2xgWK?WDFZjioa߫po,vw>z?:wǂE+7y0O qǫZcײuf&~'mVLQlrH|($ԦͥC&O8k~L /͐mFQ\LTJLNhA9*B&VnH*hY!y0ECv|)q{ނՇw jK.tl֯۱Om,5i;>f&'[kL=*@dsT| mE֖6񩟟}{S:l:7c$1 bJ bbcccc}Yn|,\a ,6$0KۿOxdsS=5&G<~FzlZs_X\'̐j 4c(Ԕ/~59U^ M/A\ʢEBmS>,0B@  Y+ʇ 0JI$IXjjؘ kmE1_x WHwjc95\)P:ʔ=fЧ2m^U%+߳;IӒc[ 2 ;#굗cp) dغ9] Zte5y!P6\oX4ųGgH%лomb9! $Ť#7ƾgufDžBwt" IDAT5DqiѨR2WPO]_@sp6RHj!׆G2]VEJN$-5qIr9 U_ٰv%~HzPyn*J,H 5~Z)a@J͛Q?tͬ5߬9-9¢#U5 HP IPhf=YR뷑~KaݾV1FSBR1Q{CXѪĵ+ 3fΘ:S h@P FfN1sy6g+@"meN0d)r=H!=~LUxWV U 0S}k䯲PixZ:\hkUΓO)rF'ȉ L=YzoӏgWHlo UϠ<2SmR)idī$}ntaMQa!2n;]N~Z6rLG>/,އ  qM+:4A0 0X"SR8QEd>?i09cDDDDDxT|f8JO Uѱ9Q%ʟӢJ @Ffg B+Fn\ӟѫ3 =F._b9ED뫂%7Oo=nv:M%~;@dtwbI[ժ߽l7yH^&6b}Sl.hǢ>cV EI!6?v6yOlr$H <Uq=.KK&]1R3K~#4Ls4 _ Ъ>Sc^EFIAqJΊ5Dר5Y=Ww&Ҭf_F K^a. <_iXqum$V8l'5_P}bNO̒jʝ?4R&˫x &c%n-ʘjJ$?{pvMj@ٵG<\^| i6;1e!Y VC0Q/W]:]9u?r'IdMuRlS|ߗL3=0(_AįZOH0M=t%@ Dc椮333Wn~?$Ƹ,wAo4O4$1#/;4"跷047N;r"Rȯ|.( qo Y̻n+0k3dqGG&ֺh☾MiQ&ͧʐ}h999~ȴ*qOeg3Aj6Ok""hĥZO;ϫ#`~[ɸeڇ;(xFGRYu u7{IOr wY|`i ݴFvҝ6j;kɅ=>5{i޽NjNi=Zm8ս!-GI3svsϻVnu,A!o_xpzw<5CӞyW6("Sb8?S qzT_X/t=s4@  "%I$%@JʊRcʔ,z6CebRe?HpR^?}[VSY#5~˷EiqQvFni\'+ق(>cJfa^|r7=ҫE%gefƧV G&Ovhxq9Қ oҶ[]VLhhhkS@|dix̘q UdFo-BZ\J%RT1VqKKyRPjF+P*)g:U8R^ j1VvǏ b\Rzχ0X) })_]x;롬Lou]݌@F~€ﳹۮeko T q^^Ng\#|_%48 A^QgiU_~S%y!O=~OccS9\UI3BT$y);uԵHUc}#c$r(:ӏ̕z IR}̯,ԇ ׯbJXZj5 p-.M|cEp),\äK qfTKM^Z!%󅂜L8T1MeF>qVP蔥Yce)j#}EJ8-.QX\mIJ[v}^AJr4x&0竌\ ,'R |wL1 F견Wo R099Ԍ7O|3Kݕ)1IҨe"\XqJRB|lDiJ@";%P$bTT] oٻ$ž-[۷oWH$ 5$M2 |RN2Ԕ?㐱]Mi VWgѨTN7o`Jԗuꨇ>n0=*@ (M>=(8tͣj'`8{]]kV|կRN.[QKP>DWY (l|SwX/Aᛆ@  Ugl}eBECcE[W3G@ Q7LšJr@J :E @ D}"@ @ @ @ @ @ $P@ @@ @ H"@ *@ @ @E @  T@ @ @ @ @ @@ @ $P@ *@ @ H"@  T@ @ @E @ #]XȘ4_T ?l0)* YO Hw-_ k0y+ *oF`i"@Դ7M\=/p\u|޶l)tހS=my">27l]6n[zukq?Vص֖\ݵ _}ԮEob&_2ldt\cr}[pv&1270G޼xɣ۴0s_7ჼצ}췝N ۹jk$eY<DžF?? ҩ78ڏ~Rx;0&ta/9 R[TGE͸㊕i He~G>A}{ֵ1Q|{n)Qt^oe:S!$(zmr([k7]v?@6>yI;.(}:o\|ֻϗ6l~\?.ܽl.y^=qJ'ݴ͇ƴɌ|gjMt,&EF(/%]B:{.3~wnWdQqA0X,Zک$NP*SU@CZ,8߳t Uf;<:jqO4hf}іKt;k60|ݩC{uTnw dpGO:DaeP %Ph4h4(ؐS$&;߹M+O_?n3>βi6tv=Gw8X: Gn(0d_n1-;{m ߵ=xh1Gέ߱¨cf7Btw|Loy[p. e+4skwJykqWM'PW,\d@Yw/^۠ޝBV{Wb,c[]{p* +iPIhW^},bAK Vw1>Ň J Ĵ.5`H&"B/\yEs6WĽZ<ú3t:橋퇎=ttVmڶppzEo:8P'= oC 0;K=^JDk@p%2e=ZY/J,2>kUfTqoK# _}4nQ_|voشbh&z5'dys^x,}aXz=?0vEfL/gbSs&1k*m%'{鹻[*sMwbŖ k̶=,i Ͽl[4sԩSN9"žs7?DFz]Hmܜ4SqhzFg/5{]fUO=~ۃfv42}ql~kPNg?uf9Γm>񸾰1Ir?<3SI߃ʹ(o|~Z$,w)]V697:áb#;>})2ᘋ~; zb(.*ʏ.%ݖS[$sͰ힄E~ u^o V@Q66ןm+ `ؤkjIv9~4) O`#ؼ^V3Y|b#/GA fSIQ.{NgnyqSy]Fvw5ݔ~-7mj Q%9W5J4Ws0CtuR'P11n/ǷǶQiviP{ZWS;cj߀Gp0=z}\Abz6͏ʿ@kvYLGDzrIcSp-MdqMi2 G۷g;u1s)ZIЎ÷V*14J dAokl7qi*nIDQl%փ%rNDd`̾}{ϦxE菵^6gE)Tz2r]7ugbҋKOtN&ȋfNvKP)5?xѽ]f w Zu} 떿k# zM9yk; \5 "F;SWJgm̜m瑱woi3Q^ IJHh8aɦmGl\V ?ު 'CRo H)Zuj{2J!U+*@ Jdqs.0X+'6աQJ9YH dycI%:mbs:ܽwnws،% tѸG h : Jv9Nv@F@n+,f=)Rרc_be˴5 ))eT vvcFO'[Jl?c$͏+fO=da]*Ŧ*ť_VJ<}lcFA*τA߼scRKsuԥT4&wWE>F߸{06?.2X\qƦ.\| ^P_ e $BMm XkБəYIT$e@*"@(*_"/%]jޫۍm-Lʑ4jJPÞkfZV}VHBK5nEg| ^}%xRO.SreQR,KM:uե'ƳL:5R)AؙPq{ *k÷%$Ѐ{?"PZ!$9F̞Ԕ.QP9jJKO%Y) yqtL :l@&qNjb݌e3փo{Ӿ*iAGIi1zktWFn>o̬pۢhJcĦ=^  =}~W_E˺oUnnʠ1')H1nD: Ȁݫd9GUt$r-u **f3QwbfZnzd^+{,@BE$ID/Q#?u*(Ea\)tJNO|..saX[w-Vj7n2m_SHX- eq"KG?/}8,39~I\-(u=vxK 1ym}bbܰ1Q~/>Ͱ4XrLŵQv'C}}K~6fvB 8 Glwi*lP2o+1vpqE ZT!۸_:=n+&'<}rT+Fa%zן444HH1pC*,*N<5c%0xPސɫ} Ηq,5pP#M&ݶ^xSqAiO_#;uQ Nh>3svSb?{ZjPLф␙ߐto{Aa{5e4iSG~\@b+15_3\ϾkGN: KQJV_$H3mR"*tvOS r6މ^M8>Q([ m2;_Z|~ Jw gw6Ke2TF*mZs? il|T*%]r5"£KC6*? A}Otzuv.D2 o!@Ȅ9Rf&̧a~RIHYFdLQ|I['@()]ùZ/)orm/ 1)2Y^XXE6HĀ3AkȁGc1 (阛ż%_4eߊ+ KeTL5YSxBnbݤLXddfvm}Bߓ}A0:l$Wm w. J{},7Kj^m=+ sZ#H'+1K1dןħՀJ2'<) e1#g%湍@皘*%Иݭ,}PhL-A"?b}=pa`8IݮY\$S*q- O-s%9.%.CUٕMj}S?_^TV~BCح@UF8\u樭` ;>ՠc<Ѻ5zlau[SH^j~+9z:YlɡtOwOK[=afm?z鹋ݙY37|LМп,~vfzlC] gqevv1 J|$*i66*f @w9'7n˾CcqY~H%er->$ @sű]·y gFxlvvRhӗ\V#&ӂk7' m@io1tHfiʠoQnj vkr"Xl-:Hh#J7#q zK.RObm\> `ѮN}lF44G Wditk=@wd~-lkF-8J;GϘ}F LɬNf{gݤ]{x3؞ Ǭ2H~*] xֶYyΚ-t# rSc/#N;ct2Dž}#|x`i6=i:(Nf>PQ|h;M*=heyɉhKθn˷۳9ulY}βV?Ia%9՛h5];ɮ_z Qi!ӺF1ێ)]`Ln3ͤ};ݡۖyM3g>Ng)*虷k*Ƒݻ+M¤ E"56^$iz-l.cʘhՊH+EҼ,ZpMߔ׏rP2q5 ; oV Od$AYUdm9oec)kvxg7:$&>+/zB.|:6e⊗$&* T a:XzpиI.wKW٬\`q7Ns.U%)ba\`$9ATio|ܲiqxyK?1qXL=Ke͒y\v.cf!;dRݤIWG)=HQ~X @ܮԭr1KW^@wʔ+sS AxQbTK`"^TTdQ+ϕDOs0doszrR@-͋A.O+Y9cR{jZ'3fc8^~ )00ko2?E𻰰Nٞ-uo/K ʔKg6}kCP5#up=̐wÄ"@.B 4:M&a@ ]p@]6o;JgHMwQmMsv) ݝ؅VnlAn@n@Q;o|,>{.=s朙9Jrc';FאTΛ}[_ի$Qa @q3>b)a=GȜ{fi~hcMa````````````ݻbrrRR<.A-7#YK , ~}*e=100000000*C@_"&@e```````a% v L_7͠8 E,i$1}M$Vؿ3JK(i[{0 Mdə8M$]1Z1_e5hZC%JF,!#hBCk0!'r4ZzpGOKP4bej"cw_`:ܯ$ˬ20 !h(v1!i$)ݖwf"׾[N 0 o23X8NEpSD}a8EnahMń o(Q$_7,LPJL3 [O p C@G%1cZJ_ ʱp >0CoP9F9OzN3_h=jј5FqR CG1iǝ&6fAIS@Sj0 j-FdbsIvXV޿Sj\ġr-v-j8] gﻞ(6|@OO=ǶA%t}Q՞ܕ@<ߪy_.,نNpn[Rf:_^O!ϽZdzc:5)1O jpr(=,%'5j9`lmÂa t߉;\0m{7?(Fy~}[4Y:ͲeYm/j'P@\n;g}#IJOZ:*zZZѶc46LL+aqGm-JOɣ8|6:~W{9o7uw_,{{{>|]إ}w/iȸH0Nn8k /In4M Tuŝ["|yf֨xKfj(hN'X暍3$Ie7\"52wV;8_қ [>eRj!馤M#zm0%h?u՟;>πQhȲri]CYbnoLn>j d [fPi}F9Q@1_CK1fڈw~2kt +vȬhiî-a GGgc3d.JÏ^_8aG!͝4t]NqDiP2@\iTm" BPk*L( 9'dcRV$*ݒ IQS>\eHWE.}NhW5C.BL2ԱAպQ'MjrC.CbaYrݵXđ(hRVTDP \Z!G\doġ6{&iLuTխ=-Omm6s_]%䱌-l-I#$'R0W(!Tʊd9b6 JŀV(42"jZ1=JO ݹbZ_:lɮtY {OQp%H:KDʸoOpRhxM eJ|idzH\"hD"262 04D\L~#U0DIX<1$ ,T+_Mɏv鰯萾<vkUNAE!Nj}KD=7DwK(`ZYjE=PJ*@8W$a@)dEj.G \ ѥbR.WH %/mY^I,<Oip`Ȃcv xxUޡ遧J]{ ̥c`cq4otlG?1+ID4ITeE\"n^}PB')A%/Rj*4TѶW*k ~6=4ێKt5.{=zn,+f\mn_7;Ј#!#Ԩr~_3MN,!2#7P p?uGM5SR L*"U)WYr8lugqٯ}-x[\C>n>(Nߍ\>c_E|%݅nE[ ВSG$}H)YZj3|')褪Ԃ* ]r9FwsLB4o9Iewꜻ}>Sȹvvч ru0v{z{lJ<NCS'&gƾ-MPeܢOY&6Φ3}Vs.:Xmdl1J˚ҔKr<&mӺ|qXѮw22:g@7e&կχ]~ `13d}+Lu{-ew{cjA<6qcf%1ݵ#+@Y+ި].,K(odx*i۴cNUJ9n˅_z״CGiGm#e4y4I/i#A_bX]Weϒc:7tsQg\(;&@x;ﺟVkic:Wq\8kmJ`9Ƕ{QV@&j2Xd.Xwj]ޣxReܸӀI?3ƎsL&m.b[O^^q!CG;ΫcVk~&?޲\Vi+-O^bɾIqtW20B9=6zrmM^]VlS[lVpҺ֋n|Ļ{ݬ7]k:(369am.`dˆڡ>TȗHo==ř⪎F1[^{] 7l۱io P+ݓ6/@(MOр pǡ,1 ltwq-A"&8 Ubzii:;XhUxv8x}^rd΋"T*AZ\Y~\bv0}W<&0Ũ( es;>φYUɦ1hDvN:ڽݖӿ<ڔۏ|Qdy0q WqRf7XTÞۚ۶lfs~s?;D] ;BeFRaC%K3"ss'tܶDth4weQU{U٤mX퇖\:m3 F+h2PNT.)3'~W!i-l''YWZ&޵K-$񾕻_K.^(߆MrzI:k)EM } a@\tspZN;h|xb-z@qhյj켚 z=ĥr<@\%CNܬժrooz^]t/NW%2T$=]Yy: ۶ 7X3SiYϺN^#v:tʗbHzٷwTϦ!mݽ<2QE0QԸM VMs+uLذ, rvUmi ⯠5jҹԢ U%%/odvӨﻷh=棖H5mWzD5$z?6[&xl"~yrkVXo1iG-U@障kbV,+9L1 \umJ~>-nX{ZNTV-H=/ǹɟ>3޺٠\O?=kζo]9wBu̐hP@4&fz%5 ac⏬  }/˘>x @cǚRtsϽx@Y.uOR7K;ty`_׭ |5F٭T<®LtU! _D : ~z0?8F104],!.r=Vwp+_.{U8CU^Ezq5@AR迋y΋z!@yri$ N{zwSH r~GӝK5Q4 uq *S.7JFP(<&VaWcy䥤Oxdh 4{ ?v\@Y>Iɚ#_Mvmvê!W˼qV; G@dYWVm 3 +2{q8@U{_εml̎m3!= 8_oQ) 㰁" m4@hkɵiG~JIٿdO !TlJ"cLk-ִxGB„O6mMOƄ}>$}!Ŝ Z4c YO3R+zj8)ija aW?}ٮZԛ}0b␌k?.? B?v7u~o '1=gКNM}\CVoh,0ˣǣ(T?һ, MeJSmmىiv1kw%g.\6.c`x]VP!,}emLlrSm?I+A+=mdsTY޿ӟ4B[^*D SR*MTt9)S IDATԾcG\ujK.QrŬCogFy*l1vץ;lo^'IJl衟.>Arу >SRsl{'=K^HSw/EItRJ瘲&i(*MR9o"m6瘋=u^WkYvfFFFFFF,-II2KxUV$oD c(ev Q1m@J4>1>2pwF\;/^<2ȅ;5hZڽk괴 E#nuLx6;/]>qèn j)8Zdػ6n)ߔ%Ʈ[Gq*Q==Դ Y7pZ իov>{81 4 L7lY$!)̞8/CjRm!A,^.մW{x+!IRT1yMoTvm)/]O'=e_%3H4i&ֶ~xNعĈ_@F8Ojwq=Si[e4 4smeVcլiRݗ 9X}'#N4=ԷcwPӘF7#?&bѓ1d$6:d(5I%:WFA!iԚ?f@jk^Nk|vՍǝ\inHt΀M|t=]5#m[C/g_3~\n4%8p9yglb})o-iU53+sc]#`̻Vzxy5!U0}$襼XߕӔ>M YWN T'e<MRƲ+>s+Fn>L'\:B@\Wis z|dket]Ҽnn\ w}s^#+e>uir* @ytu36<}ga,fy6;\p 7vp#{w`}z Q D^YBnvW?]ͬ_=~+p+:kvi7.Ho\6Vy\VXz8AI(ߟ>DnjHyN& |uF^xHy WeЉNO˼yaG=uEG[ccdu WV=09f Ǯ[yיlO')Hٲ.V ˵NdCߒ@BX#"9O KԄ(YAWTؿS8Я7PCIN% P+JKn/fIE1e!Pead eT.X*~\!WIE\yA!Q'rYZA@Qc RPJ,DA4Z'J)+TH,(v`R9 D"6*Y!AsB>єR.St8W M% 1tCBZYpR.)BPlzbJ!S8"! J&-j6Â1(nJ.xB>J+պWlk >fL1xlP)S)Jr6O K"NiBY>[\0X—HKr_(0Rɋϲ`qB[k" H@@(dԨ%[u Q@%/Rjl-H"RJ/aiT[ȦTX,.5=5=Pkjm7K 0W$ +.TXEB\/RJU%X\!(?zleߒݻbrrRRq ͛,c`` M3t^nÊT_S; ;83F ߢ%/ϙީ;Hre_z0`4̟EzǭF0 -:cq4mBK' e\BQg`̑D4:PiFzT(F f`S1U4M4EMrw3b \k>h~@"čtYbzqω#rh%I#_'0vXQ@|f?_,6!3^|f&زz:guEz+~ISU66;{Pm4My$JgCpkow_N^^xϞLg`cv//]k=yTonӻV4r& XTGڸ rh_ihMD%hr٤'O[a?eLF~Ӽ̭&CSys[.=!G&Dq=_rRTEa8ϱkx:Xj2*L1D֋ŏmլ)f j%E iX j?B؍7L>T7X:I1J7nܼqK5/Tw+!#W~ ;!["+[dzr'ϝ?oK*6W 񜖅,sL${T`b g\DŽWc nY0fQnM2׹3FEԪY{=LҵnݗZ,l,XuӴ͹dD>w*_' 1dp>NMlҥlŮn ޲_= q~6n֦a/ͫǵ0jBd\Uoи 9v_z,;Sk慁~q;V7PJgs\j;¶m hj]-ZmۦA-*@vMmm P{u[m8[yOykpH+[_!v/lW:ͱunphH)]ouZy|wp7v8MѕXC,/YFqeA׍Q68cKȎSKk4`sPȤ^MN?OsUuoiMV1]Zjbg4곮ʀu}Ha4, 6lXԎ ZЍ аڑ`?||̢mAk Y.h;m^o Z;m1K'{v\@6m\ٯ{6s[{Nqxy IGfO99{J⸊qatvv>Frzzp)K"{P|馭[6L۰d)6A)Cv9Ȩ)7k֐Y-ߗU$o{b{y('qDd'o.{lf_5mҼ~vmBCE;CmfR"(7eR.g޹}}zVЏȗhC'l$l D-DTm[LcP4@wfzl˦5oȱ1%$Cw>WKq$65SKdyVFN.|紝#O-kx?ҡzzb?ؽܥ;F{ZJL@\{O#zv2B6N,h <鉰}Ds6ۆwWҶe[MD][w5dwnN5 tn=A#x5#^q7cڶVv=v}pHVS=Aip7nyK_u 1h ̌j{+Q{4+GVˈ:>ͽᛗl9dPjb,}Ch|m.%#]!^ET YQMxFcp}-7"t:z{ Yrip΋-_Wo Z=lxWIK)4Y& |3+2V' 4(6+OGtiGj8{pr]mZ@֋מ@݋7Բb;dUJVvrR_1x_ m5dy^۸δy?Nl> @}>Yd^&wD2s~,m̝w˾tAQʌ,e*aV݋7p@QH }6O&v7MքgnJ;s&~EnP"HL/ɢMkӣF7ost˪J;[qCӺMpidF(2n@p0gMꄋ9l[AaƇlee9/\WEpz熓7n5bWV0&ʒrJKJJnM2R yس_KkSgZFJsq?sǷdu':af\N01`iuGP@ E,G \ 9{ d ,Kn&sȼG3Έfx:fF=t\Knٮ61u+zOM:])-tЧPSFu[EtYc։}K7.-(7SJ'? ]9uI V7o MyvԵȣGr \1m8v -:b(XUm9w颙NInlv{ZÚ6͌ i;dF7^v&0'&hW*EvbQ#HXo7%I;TkޣuNRe0djJF+wk5(koJlmi=pƣǷzFs-nk"@ .w4IPRSrNOL u}x˰F= 1]@3Nb*9†K+Ux.#5DB:G)٪UnN :y;Aǧ'L<{Ԥ-%Tr+c7, 1uyi" ׼>xyF?4K,Tz~&"s3oٱ# qEhVO) $K-=1r& }u#S^ME|)ZHz\{kܲl h TISRKWiqTW*xX֛ ]`TYJJ{ GbJԔg_:KY"&in]K)Q .>mngK$\2U=)?0y$?i\GѝlJ`%(rSMϣ_kM^~=ܻh!.i{MSNe֭m)剕 ɥ#:=2|=0@@mоԝx(hiI F6*#I.|ZŞ;,Ϣw/z-eû6ݵw? E$H$B0={ 0ZAady aη;9P݁ݿ1Z9Rp2 ?h8\UC ǢQɺv}C-ݒ7f`t0J4. .Zm՝e]!kK<8lÊS$]Jdbh@;^ԨU'XqјIYeaw!A]Q*D/k/y v^~q|i.)Thj|OG)GVfIn*m9wUlP IDATs8ʽ-Zo@ցm0xQC>#9b'=<`;rOF8&];~:INDQHksX~sݽ\I:,x=udi"s0B r;aLU6G p, *v8D_:^G# ibZY _NMFJ} VX\ɠҮ$H ׽#"ϟ ë)VN*sХ8[Y7nASARJ66bZGhĕ}767`T }AwN@Z1(H̴wt55ԗ#gF׭dfn^ms6.mM |$ݶy Јtf[pzty~cuv>Dq0b0+p8|6" CY^ nfiүs'O/ο%r7(-L\viِ.iڷHu]$zz"n@`l*uR ]w 6f=IJZ 8KAx,]iHf7r4P{aNmjIG%ShxK s{Wp@s}׶C,uci<;Vx/ݸ\cn![Blħ{z/iL1B'N}iVAZ[{ *zJiҰM6U[7%^%q+c#E}(H[uX4IP+bMn-+i;tׂ_{41.3i @c֠˻.^l^cX_>ueRMEϮ^qx}ƽͶ1gX?~\J<Wo`ENJ=E۴Uh?1^=>"yyL}Pnv0WQlOz>l3Zɠ4h񛗆常i-rQcZ};zYXQŃUCgܶ7Ʊ* v1kg[!~͈X(kݨͯ~.]`B#rhe<0`mr9y8 GB8@h1|`x=r:aXqCNqkG^ӋjaO*^z$ Jw|)r*L/97>E1_nͽ݇Α?ťfQg\I7JW;qFE*@9,֐j?4BEP>߻I2MXw=M 5PT4Td]G*M=i;&dʏ @eBiB uŏ kj36RT6XE(@p98_.1 |zTsYe/BC/Y0xQ0~c(\~ , *$|/a PKb@?-dQ;4 u={M(~~I@}2Q,bV.84&X .P.0CZC0/d*B+n} C3200000000000$P߭?v%s6C:y&|NO2qWh֐-hkgU AUݺ=tຮߧB% ݾݚ.kбk!!{ `nĩ2nD0L2!UJOBCHTAHTNREHD ~xO20T7 Ce:Y@=sn @kUӑg a!9xz[{rपo={냪U]L` bO?BV:H;7uEM~-\8ϵ{,Qddj)MjV妝=xrhW} {EFD>ޣ-y:{5rv?[=jɈVM c[Θlк%[3Kcˁ}ծg"#o޽?Grڹ-gN>>\zޱ؀6RAۺݶ8qjO fo vjO8F\pvO?;!* JQ:&^ݟMi tv'b1tL1e.$z LˋYK?ZׯҏHfD ` @] {$&œ$)PL=% Uu?3sթv)F/8(mF-yfrI&)&XW-KTvd_0Pꯟ5qAg8}o>h*ϻ裘&P-зy_PDz|ܽF[|J֐[G:f J62`aQ|h@f{f{.ƀhū: :jl"l{c=#20^Lٱ'`aj0*`Duk"5F&Mpo¼L6߹ Qw 8rM&,Yc^]_%]]}KgwQMz^WTYz!JA@svlRe5r^`JB#VXXAnd)ijg/pkA??daж2}ۢ}g\c)6R8ϤN=V4D<fZe$<+1ǦZC|J$)J ۔^O/| 2 Թqy qBvo#p3l ORPe"P#I;43iC]DѼ6QQ01; QNP@ ;owKݹyffVD(5ƭ:%Cؽ#)v]+2Xna-G+ST%E(T ( IL}R,AtwMZ]$Q@DXmg2⸸痾EаCw$zZCVM:l_\""c/יGแ78V_KcWķ۔RA[q50;2H{[T&V,^z&g$Ε)dİ%>\ M+Z(U[,W1 nٮg2:1SLYcUfVaQR2W`Vܐ /jh GMnܻv۴]:݋f]S11f{@uZDgsC*-gaˠ4<]"}#I~sMm=TG@YW~Æ7LvGj7v"MoؚzCWZh4M:XIgřr`ϐǞ>y2*GUuNWٵ4uZhINH1wtDUsM;li~1Q[ ?,1c}nqVZpq->oԢiǍzV'n]Ƿ6en41=Mj]<5u܅ ' uzx==>00NDvbpZ:::uیpd#NhJ)`68i2*iôI{gTEW"t}{ogo]{:jYSM}`ّ3ҥbR H U! c'GfYtypVR߻H͠"ah65l$wWkе9.AشRP=u>C2'uq$NbH.$Wv`exAkWɋ)KJJa CSV_k%~ǍPJlWW+(;;356e210HQ>x:?YC30Tt6t;`T)D_Dv8g% hjTlȸV8]mɃF7^ >aT|aƶ(%?ꅊgR5}427~󷘅ssޚm -9஧e =*A{6~~%wR40U1B Һqb@pYuڶ0[EQp9ŢMIВ؃} (`_[|C:P i$kl98^&S@u',~1*ϊ;vӛ;{=Ѕy2)E*q)|{(dP.G&)[,(6ԣ1}Żͼ'@ j``F|aȡKӡÂz)83 c\M(@E5b#(E űR˗ P1VP)Je<UNІ5AQ[?#5ҫ:Y{ĩ>V=j EQWuiRD%FGg1 yI$*OiLVHhʥ 3UA@k6!އ.mߣ>;aœ #xqvtl Cy8=() n낌R;wObJ__ϝ`-g[K6]"&|/xpy:geTŏ.mHָ=,XoBwxeu!Yc2@!ԣa[Ce&F$H 6~caJ:a'ZZUU; eA}~69@$EɷZpOW=կ p_|M(5 Q^a*ϓ(q v NTx0-*:&0s (ή=z^/( -tǤ/ZŹ5s4[&7cms_BN\%5NH3 _ǀRUT[>=WWn O_:->R(hdD#[eBcdLiC<i˥vw6ЮmtLN-EM3Tt~Ls0 _Nɡaaaaaa!! ;tjِ@ Ҭ"heEЋ2x@刷*0jzb `r&T犋1J e:0u%fw9FzuݮOjVVD~^/{: e|x]uul7hX{Jg1pRIhnyeܿ<՗ ciߢa`(NWOBVj~"K3IqXxPYVXtT'FUیӼ[OkcW(QUbuҶqE(nt xr DչiQ8/. IIS_3_D`t$W\BZ%6 /0Cګo92]:nc?HspP&c9 h4*}TNԅ$U0^ %0TWM;E.z%ӷuLg%Fg47  N>\zz wjWU` L-,rՏ !qvm4 *z XX4:P\y/sSLmOzWGf-ڱAH{ߨt[m1ƌIKAsaXpHVO7:(i4za^]M!kpF]%zc=hZIiyFg/8_|?$98,SkLg.7,LO(޺n ]ȡVǢΛD@.#-gv~xQD=LŤW(%0y]7vQ;?pry6߾n#]3}$ogtre; {[!$!.}aƖϣiv4m}4Ut^=fhh xǯ0쨳 ]Vx:"8R'\}8.|xw}r IDATCKLf&Z;qGe<5*0i2npIs3<]ݳU@r;"gv!7w9tqypwn h?kǖN!u ?pr=gIޖ!^q=KcGƩ-O{o}5 pͦz&O}vVGa"q;9?!2 Q&D Zdcc 3qEx30v-d[cȔ Ig$ž?V5p`Vx'Ƥ[z=h55"-9MDV|dkf.m7-={h}@R NbtckuXT*Ҵђw\Kp>~ya݇4%XcSEz4A zl#N꓅zz$]Q?<e];v!"095O Nz&U19"01Y`_[[QvQZzA#GD&Ҩ|C2ZR 3͔(.D5ovJK^'Ŵs=D{MҫcG'&*T4'qM=BQNxJ8YP,WWO抛oZjF|A~oٺ>J!ΊPE-vf8_WҐ%.$Ą?py>L"0 !I)eRÀa\ܣ#) 0Jw ʈK{:™N" R_`kk۫WEAAA7#e!ë]~۶m5zAAA=   ؿmJof   %?[_   I soGϠ"   (@EAAA"   (@EAAA"   (@EAAA"   (@EAAA"   (@EAAA"   (@EAAA"   (@EAAA"   (@EAAA_bsP ; c{I%'K8/ahk 8f{~j__ѳH~}m8joQsD[u詟'^7:ݽNm}A}ˎO{xsrS}MRM߼jA # F$~q,`H6軏"i K?h~ÇHs=)6о42Nb|w"^lHgj9}XW?'i!rdYJl@/1@Š aqav݉+7'--Ozf_\ C4 ޼cw+Qboob`ÍI 7fĄ▸8Ëwm.z'`$gnDa bA[n CmSzWT^. LXX kh1+ u?vi/| R{# R߹J_ǀ5A#yokn/Xc~'$\={ӠݞlKMYz_:xD2KeׯѡEqYVu@q7 ks썫L^+k\,x$01ƾ1Hwt>N6YU?zK;3LX'=}}ެـm ?g߈Ck4(Ր }>s9@f+0IF6al۽Cad tMK~v2 sr헇0㙬CUS_&cXNfmJw#LdFͻ@b-)&4pxzmP{q^_}Ѹ̈́^~O>Y h^}k-9όMux){|?}t9G\{=3жuc-[LzeWn u~5^c.?|}H+1nIcvGOhnh9ޯ{-Y%]xp_̆yoD땞Wk"  }W|gwIMدS56Oa:SgϞ;l@EB ԃIoA+; nݺ,(GPfFՉ [ mEL:i1Ew%Z` 'X|î{ſ3 @[rҒ7ͨI(xڡOp/[wjp5[opCe54ȓGbz|" w0 nˌa0'봚0iҤ mjܬs(v*40TOR?e HQ4J^h+E^\ J\Vyz8ȫ4בT J?|[XkGtZf"0&J9d:>FuwA0y_^S [)&MпUbSOcs>33tF{}?9Ι+FܰD"V$N+1J),xF`2+y#TJ oxګߧ᜔ۧ"JKUoC6gzŐTJnx^{Z|5'I񱋱Y~⍺b*Vnmmfcۑ )RG.=~~IOs3p5ԬWh uqrYn絸̂ҿ.ۃt--9b."P  (@..M ud妪8GK#zL:SV7~ \.ѰDR2g,.JȹbpҊgJFjTU_8gH)+mu4(_Y P- Cf}:{!#{ {_v%abKVnDRQUdfqO_7-:V\W5 >+NsЬ J ǔn[<ҀHgx#%'/n@9tW? H?jeX^zG90҂W|T*)evƆm:w7Vc?8ܲiߚh \^dV:l첳.83\O5t؈Çnv/Ib $2mGD 59b]?ndR@%̔!@)TϐR2PJn%۵62oxC R*-f@K+)U?J-M@LjJ)ʨWy ǯ#]>y‚Zx{t<XыAߛ\*lVi\. +;*N!u.+yIeR h`dܲ0g[Ί!Oo @1¢@MN#.jF+*(E2YQFk6 ^3ì !+f 繼K3z}w皥goo˴F1v;}U~deeզ*ߟٷeHրykm]@KE5y|Mck a> H!'q gIV[+1jD3,mCc]&HrH  *Fj)dr\A1˘UwNpjݡtRO rq0n/ƭxѥ./1ȎS'ΒZN:;[({r{||!|)͎  2Z|˗]kcemݨ<[ˮ|y$|:fˁqo4@AQѡqIOzJ #ؑO*Ƭ9Lu. =՜{O74ׯ߀n6hl;eU:2°s* PtQK{wmsX;g-W\G˹l5][=9@w;fu4qOoRrF]ٯ="KNFtg'H_>I|hu׶/}8J*޷w]mگ?R,6("sevM_[Sa}ZumzI|KGVQR_}eo`ѿ(I5{ ԿF%O72!?&G "S`縊Z\хAO3 U>75@}J@)n#Z/.A̺1?G)1Ӊ|YDo|@̽pX7[/ktO@K㟆[Z`E j/_AgƈT5(~QP 9oN]-8gf|sЭE K/Htq?und;)FCԫ3/Cs4}x $[DK ,qiqaN\@@@dFaqIހI +,).****,QG~)h(\x޳Y?f9OCS +}M;Sn9~ر#;|gr_qf.x;c@ӦB pݲv@y[/UI 2daq.hԬR>fOnG=GG6x4?uSO.7 'h㵊3^dc&Ģ݆8d_r.3ulk?R|4;y6} ‚\)/nR %1Uvqgo%^]X5d3I~d5М4  +i]4 9,oG|] ̲V{A놣r@Ao Z5 4Ǯi{Pq  _ PmVtA~eZ`T,Ee  TA!F)-)E)  HkAAA"   te0 ^ğ/V Y(A g34EghZT K_ ƬϜKd je-]BMS4${=]'du߻]:04o.t5zc@c/l;8 9jfKPʮg;uG!8Ǯ]{L3ixۮ^Dfʜ4}־Ҧ/D -u.Nn}O>q=3lx9===۔4ޝ YYyͮ>5e89ww(̕!q2ٴI?r$A]V11k\xsrC˲uM>k تPߎ6[%r?T*b-h\%*)H6eK2P4Q2c2pXIC~WVm5Ϻ5e}6`KR_`K[ ]1)s_yt >cJ!K8Q:m_iֱ^+l@I]rGmwr8LK-,Xųb*;N'!^쭈N E`4%ԏC0bʕ o-k;.Um);Z~Fr.R.~Eˋ[\\p'Nv>kAN'S&l]WGH'7v1e1GK!8%b\٘JT&e,&؄T,jUTIcNS XJ1~,[.\Iq0KT.B9Xj`T`E[n@^-5IZw;S^:^lc:Lh2n^6RƇ݉o2sE闻5oH LH F?өk7؏>&kp='3m#j\Waٕn@]i@GeBK#)sᏟKZ7e6+=4:g93tQQMLvxwl7múaB3LڴUOL-Ҕh\W9y:c}GA; }痵s%`|"teBԤ"ȯ Pgl\3~%ZgϘxo68}q kuG+n\ ޜ~ xF?pwƔkN0(׷Uqv✬wG^:gj ˒^8C~wm @;?`iv+(AZ7"^M8`a]" ޭ|o~EJ9-.~+llgRgi\3鶎çm컣 Ѿ[{AOO!9Fqz L/]3qm@s]jHR(Se* ~GO/3l` |^H)&hٮuU('$Ctxxm/l1ˤ%oQ`/Au6ʩX_`("'Ϲ4p!05%t(u弥eԦy N/L] huqM5ϽZ, AC&YX#;[noeټLvhej6UG긊3̓N)\EVuƣwf7wB_/{:"(;cA]52Gߡsʃ^/v.'3 <-O~zVʿx^V!+ppiqiU#;Oݡ=Z1gGGn3|cZ|dX;w& J&_:Xэ\ ;lFߌz|@M*V?'9 ¬(Zg3肷z{3ˎ+.7r0*Ѱy`j16x-0 6 `h:4Iè0g,Q T?ArN)+xoJd3Hg$;`04%st|KUl<}:|~v/DsY?ϾI4KbRd R%U"6Ⱶz, |FKt{7s[xOc^I}Bm>j::(Ϋ<椆8oӢuIԺš27*88F'SrC7d_;ꟉNce@C*B/ ά]%JBVSZ0T7ФmFFkv]tނ69ȹXf/2UIqvn:uwc&hJf'[oɦv.^9]1z狰 P1M`ճ ;> gdfs#r*:džWϿ|ׯHg;%2ޝʾĕRl,8JDXz~ϝ_jа"Qs>] WQ2@^"ᄀRpe*F\ S< 9kͮ ui Y7b E2:& d \>R+-g 7gIx?JNʳ#oظiœWpDRV=Gxu3{> i`HsPm!BOu=*NU?(N*-SVqq2{~¤KObu]<8M^Sw2; ^jƍ7]6rȜ:ߖ4':ym1ݻVB8{]kl{'Ȫw~Y)Lĭ]gAN^{dà&?b&Qn\rv@xbfVQXӺ|#p`aa^\l XeJ.dbX\m)6_i%2'HI] GE4qjUM<3*^[OXw> ,v\r_V$I.b44us0 hR$^Ae1^}gOB*ޞX8xHgólG7Nߟ`p`3 o,v߶2e˟UkMtf3;sj6d}3t4еըdio.rd0aߵ&wnݴvL[1 T"V}p2mЀ$l4 7V($ bf7nS>+Ydgon:9[:@]V=rsssssn&qe2i@E*IK͆7l1 Ӹq ?P?&E)rZж,]ٯ81F,T2,,,+'_`ڶˊJV/ť5:i㕯`2ȋ5AgG޿|pmx&ǟ]~1bTiPefLgDGI#~'>9'@*bPd?ª(`B~h@D~H@uI;k7ս}窖8žw=wQfZ?R ]ϓM[Z5EfJAwź-Pӊz:Z?(3v^L*SB9s9dN򭷒^f5Ԋ`2hE'w@P,ekϽk&ʭN5lJub6z$׍Q]5L_^S(xei% T~0)C̵mwfqOD,+$8oTv^/g@yD0cobCwN b6oR~r`g98U2uX{W>]twX`wwwbwwwbآumQQzvǃɃW{sg̙3g5NLybɰ{f]*ߦi*0xa/dN0qGwD5\GNٳ^.A,6@@llD92\aՊHղ [D9'pfMж՛EY[AɸT j' _$: Mro tJRO'`\C@$A:BC#% XPzJhľV!}UlH@u4Y ^Pe!Zid $E_`|.5 #5ZK33'V@%bVP(9@Tj= R^$eRKX:f ٴ\F0#W?Bx|EbLkU SG|"N)U>9BVQl|Fwd <^9ۉҪ*M"9B$^Tu@$\.tC޼L Er">[g,b 38b|LFpB +J_L|K~V,"%bBc@RCaP;P:BIa X\T bLvyCvxusa#jn"$!Dk25$'p+ =$Fa_̡r-`sfy\^Ru0 J&<%bB):tyǁoo ?Kp|iJ-<ɔ NKV׊4<$(Fi4  |XG!SpbRFplJg HBMJDR&È% H*-)e Lp$"\*8|js(V|B`1`ܹ֭s+Ae 0].o-S\ x7)BF|#=\<'l&cIP',F; 0`M i^DDwȘ? {d@0*` 0`Lʀ 0` 0 * 0` 0KPIDaY1G(s^HD"CcJ$l狢!H,`9?qDbB@bMŬ. MLLLܿоf~8 a5O Xbq\?r@,)ѹby,˜2y1{bS)1+111?ܧ@ҿ"d"˪zh2sѬ{c<1(:LЧkJ^ϵ ;g*^/24 QV{Z=SޭWg̙}wUZ{Ӫpvt<- ӽI2ٯ? =k1}Z➓?iIwvj8s卺pyacըbp{GgYi.L{ߕTcHprxXUt`scu'[+H*V "hJL\Gtê,*K eJl؈tBDAM<_|̑2t:!t>eRӟFU$AϿuR}zZN L'55ܲSS)z@VO_H*(kUg¤ &@"w\?pѿM*]BgSz8sij>MBo> ޥ4x%W~ȿˈwcrQqn7Oqqt'HZF&ُ|ͨ4BݪlQĻK)-lUy媕JroS;p[ul[ӗ0) ]qѕTB&HXWACF\n^z\}5ZVW"o7bz#֭gT.(VOa;~'8;׋VS8}e;Ͼg"߃c 3*4$~O gJ'4A%mF$-H<zf ILڏ>4c ~QW(ο?rzAޭtGw&*n1G~^Q@^n># o[o}@k)S:9=ܓXl0kA43%*&vD0ڶ||sJ@ZަCD,Sp?={y?rmzUuJԕM៾ˇRI3K,}ՊN;~ѕ8약{04 J Z8+"}Q|+e͇֕npgu{ͶzqW:I2Ai[ګTWͼ ~FR}0o/_|JE3.6§(IβL ? IDATuCeGXaBۖp(׺íӞaGr)|cly<-~[p^s.!A>2c!+Z E LiC޼ĮU:]E=XmX>_FËز9W@W̍,&5?;GcA?=JS{WRsi ޜr!}y(E ߆D-*5(A__Dq:@ܛ&7"Pi7o9<;tJ3'yrdEa[gZlkVki4Q& 'vսI:;m~Ҥ~VR/Z9Co LO!!#Ϯ :-7 }Ʈ_ݰbի,ް[1 ө_ί;u/u‡I_6}zŐg)+<~ϺknR{ޖnRЭy[{Suv.'0PsU 2ﯘ>mjKq>#dh6ހ2cBe~ı.\pFI5׃f?wZ>D  r;s}. MtC~|iU`L6 JmkS ٿeӃD5n=gRy͸+(A>5Y?eFf=mjoe[p5}ң1 Qvi4RwNʝr[U?9#4;lנT^ڱȣz|Gfz(?Y!xkWų >h;ey_-{-Z ӑqSK~39vr uX1Ѱׂ.K }rF6G3nLSZm^p@MDĸ,X_o'/^95G^hXOXTZiH ҧy9j7O).n +]>̑];x zTZ H[_q>wf{t2uF]?S{x:"~LӒRmz~)ۡ/Ns9yĖ#l ^W|fuGq<':9“o {("ي6mkz]-+JKr/%6w5Zn\w8`~%J57qo]}9iג.ր8bIP9t.-RRoy=tM\iw;Y:hҀV ٷЭWl蕲pknX1sS>3Zn~wޠg0x)kߴKm:yA!NsyaDžW:x}?7uٱs?Yحl&_Q"143>g `5JNxW:Yr9ߵ+v%!3b 3~{{ԯe>ۚjx+;֛YA!1`tyQELz7ѡDzvSVml Rh|H`|*M~x7E5/,"aϢ3QX[YWvi3m`GzbʤJbJ%}u٤.Fr:lyyK\zJ7<5gVWZaM:uv vQ!ͽ[Uki!1J [M4x{9u{?:8s5ijxgxqFzjL+! :;\IӕzYI_Z78p5/׭W0o(bL۫ߍH9^kB \¸hEFJ*.GLKO˒#7"[/o% ,-64sE1dƃKyT/I+ulO! et~\}&{r[)ǁ,/7T&d7mq54U#^ -~O'mˢ8()ȃ̄L~ڲc43Tx_'ݠQi]Zܞ'*QY 8ۣt"ElmȲ}P$T2քAtrls\&Kv,RYEmG-l>B1ʉ"䢊۶l\Ž#A5j$Y2;Ήe/ u4a;VγYG7]L??uokS~%>2"O3 Q\+ɻTvj>C@ų t  {Gjg>(o'؞T R/2lVFoSy[l2c3ͣyʉkNL RfPX7z U9S;4Z4sD=vZ݌/ +xx!Azgw6L;֕1sԹBN1>Ot@lfi)h|>!ǔd]RILL(J7jdlۺkoPUoz4s_k#*ƍc_`s_BպTQ'5$iuj.IPn}q։۞z<|+C =zX[[8jt/n|w}H Ҳ)&ήjZ4[fe30-N_z'x \#S!Iv;w^GVT%Ȉyl<ˆxLJY1tyu 77vU{7$s"?B1 Dk2ns:6 ,Kއ#ɇРO}6. ަ:8l4R;5(B$Y_1~L_[v.y+|6Wj-D?_OHq:&2F+.a 0 @6/Uh FR< l Pe,WN !1-NTҧp*5P, {ϴ,(/g`]O]~ҏ.ZZ„:i[Z= "#9 '-* -+KL٬v8M NqY 8H !k\u$\GCnaak^L5K^%aEl/ Q{̡S{d?p9o_#ewoO!9$[Ӽe{+nm}Y .a]O]LXws)#sei͋ٵݵC3w)2 ^堪7*]Utee!R lGY4TzsbN۷EFF?!IJMu]J>npɇsޤmZJ𩂳^ȿ7NզMD\Djn?0ɟ.&;2ÎFZRbAo|bP~o; {qcܗ5HL:#Tзfc.QGST*3nдyM o3.d|[PkBTlDWssH i X"' 2hӣ^ßjE\1%I5MdN;fєug':/Z&M$덪Wܲebc&hm WA/Nnc\K_`@f"&zmx )@ƀZZ E2UH}?GpK';krN> |'WI^I"8=M%kSDZ침>[0ʈ4؈ ȕ6 WL+'F> )Dϵy+Ti ^) qD@KB1,: $|70 ȼKgGЄH%Rȧ߼Wq۹t~? pq1pl,~9dj@cSs> x&"V\A MkU;WP\҂yUG,@Wn8ƚTp½\Yֳ@$Rx7nsLHH' rNޞ"4m8c|rNa,kO6nȽK ,_kOxZ޸k"X< 4#ce ?_ *6V\>ЁVͥy =x€d)WJnAd[%6Nu)_oYJ=N02"@*)㆖Wpڰ>mԳ uh`F:'y03|9&O$\Cg ͹\=Η<,q16*UJگ;T޾ވF2WZ BU{zwk`kRDpidxӎT+VmPZFOXƮn1(J*i1uXVp@E\E\B$fк[wʾt#䛹 XxI;dl͂ :Zy챬* Yh.\~ΞFU=V͖Wڤ Za5cק7'¢`_W77F2;~v:w;~J}[!Mm|+wKiJ|.ǂ:J>>#r b1EҎMNR jZZY Xmryٝ >k@]LHjԼ#:;7kI~`:ШmTU/1ZFvV65 *kђb @a|m+Afߎd6hUMxw lI5žnEZA- 7?XH:DOdp1<!f?aW!cU'G³u&l\+ܑw]ºҔ{kяp)|Dy5KyTn9"kN٠cٯ$7d j0`΍L?/#r..Nf<]TZOʹjԽkg}y>}B)Mߦ:4J:RgvnЩsvkQob3Q>ǕTL+D]ŸIm]q꾵_J^67yr?oױmo]ϴĵ)%y7_~H`׮VFRnźTÚBh vNfĐ қ49D,@E0}a;Yӹs)ZklkV^rGt % [9qmuŽt-] &/7|K$k1uj{YKg-x^bƎN.?jwȾC@SOmcNU(@$vkRǷw| Mkޘ=v:U/5hWm;. (Wl@AK&ΗRld`A@d<ݾ:k,-F{M{6Y[?9,rbh={1H 4ӆෛg !)#u/lߌ>հZ 27,1lpu;g~9~厐5pS)1Moπ/Yش9'HE D_!@xw/G~ΧvlDFVsIYzkmO`LR@|~G[b;tH;9uO}!-9oѬyȷ"PǦTUoGmݣ39<6<*FɌHZPko-t/0J! SRW/MxNW@jfDz A*G\tR`z@ ה @&5H`!hIj@ ȣOs:.OПސ- rr闉i˙5qUȧi; ) ,@o _X[=C "oM)\7]zmcS<ҸF[QBƀKAbO3+[Pq+oxaՅp%x ~Ö0lktʑU |¤s N?51L)bIOax֭bf-NJ^J˗zV9^f-ẉ)i.Y&(f 3ރ_BNI%.^1?:0G g_~J,]6Py6֑iXRo  3@:u,̸k7" A5f`7_g;y{$:d$AsLQ2`?ȺZͪ6bQ7ьFw.~+Tk7>unݺ͝;IP0` 0`T 0` 0$ 0`M50` j aۀ~ IDAT۶ԑEZ&uײdg՛ \]ގӗT}=nti+6m%a-޼k֍*<a5Oغsv}w R+vkp|'j{ǯN-ĀߒڹzIx =rƴ3͋Ξ=w5\>ט>(>͆>uЀy?q;NZ ->ͷORN9b+I HN{}]|ףb{O9rgƨ a #,x Ǯjx**υ4x9Ѥdel?߸z̙Z>CZ}{7.W$)ɯމs/=9_Lb%Nt‰U`3` 󐔠[&'pLFbדq ?}c;Tp\eQfΎc.^طfBjC!rQOH=Ʉ,~yى8uPн2cJ x -' q Q+?uFyZV;mhv}6|my&,Jb#_m[3_gU yޥ4AՑ!Di0?T53trmܷKWʳCzd}अvק}[= xQʃw7L-c֋FrdƸr){.z2`P(JM o~6egeJe F#)L1ؕѸ~O^Ò!5޻Hs'R,`G<5jL9TD2֠ N5޼ ~jyk5pڛ|q@a^v KBaԾSҮS *֥{46l=||%pm;~ޓakg Q89Tn*#uyÇڳmUOqƐ]6>rȒ {uvl[,{xgzjys^HhL:Wx[x|E۝fuWo7/-] kbb{K h8bGǮwpiCnߨ3"7Aڵظ`ءcGżU7kwȁC~2i_7c3Wo>g.Xb5j]s0)MRi_}?k:=N)K6GVǪҕn8)xbVc ʮ?2h>YgV,!>DE,O ,Flo PMVZ#Y5Y "VV .MTjp6V4:nW>"\(WdG?;??5Goܦa˭ܲSƷҐ{S'B;V/|\k7_8ϳZ:wqI+v ٿ}37zrRu2ϰMHn?>e!&n;avu̯o\ݢ4m  pJfUۥ{3hQ3wM??yWZMz61wf5@rOC/8bgޥws%rɒaju+'`Y/6͎m8j݊޵2|;ݪ; ]RϊF*IcTvUce'k˚`o Zw2QY?Ǡ}o`Inځ0\ܽgϳJ&T-n&|GN=޹gW|H B3^ܹGY]>ݺ6a!uX꠹ N:Z۫G՞ 4\$*4`P޽C>nz/Пw%0- ɸc \47G:oȁ#nOZ egZ%hz9xƝZd3xzژXm,yޡ @kdԣ+.Oշ"Ţ1ݡ2Q *;A`nпw ?6&֌o[[h-སS,ZG/G_O_4ĝɚYJótA90!i{X/![G];_6V*'Ы-T<#uX€SSMI_N.}}rJ`цGooM87$XY;۱Z[$"$6ITl=“r1rj9 ۯǼMv3gųMq6zB,MCj>z]ž8!]o;&.y<+Ub[fo)cQ}Dqݡ=;s.WcN'Oa*=4g~FLTN-W:!)0Tyj͐AR6+-ڧwcצ姼 3zܸwO. V;I伏 l2Y #pխ·޲'4d㬮 u0)[\?kfhiVIa!s),"YJ|v'O9ѥG' yl"7l[eǪo/,`d40G35:о -o\#NK:L Nkǘ7/–u"#niu{WbH4َuVOg73W!TB X.yzj0;u+%;tڹ 'CU)=9G&M4*- ,e>;, dn4MQKwd-o~ t̹ճRUI{kE<{+P֏tE_Fe B۶ԴTFJL@@4` gTRzs+9Iync `Y}#76uԦPl&{G9:9XvhA鴢ֱ42`9~%/sFOΰ.\fF~[ /S@-`VY~v:We.6)sdޒ~PD1PZ ՂI5B` c!{7qDB*e-6 #6A/WA1:6AhMJcΧTjBs**" xwD(2T[S:b¦y5׶ٯB:i(a],MTƣ|j2 6sceRkO.O/?L> 3fiG uDq @llg%W5\X>6ǀti YN=D.wڦ%S,1E kV0-L>Fz,)]ڹSvm#Du>O^y̾)r^c riɜl2.G9ThTcopph]fĵ\gڮ(S۷t 7fաgШm.?bڐhݹ7rK[Oy{`f&\p{U>ܗVΝY/Vln֦-Sq]y.A'skt7};qa[7M?չcD̚}vZeBM/ ܲ!ӇP\w`kiz9h=wiϘ4;= }PٳC3)\cfIku.ö8>כsxf#/T[(_zetfᩮH7ҁ>9`bBs$L23޼H|*^ݸ,(^qu4%:tk/?XimPx?Z_>8sN%4S%F[u ȈypyĔ{m(ST3BnUYLp⽋OTv@kdϯ /w[N'Sgv ߔtޓO(Di3?<9r:sw?ɣK;r=.}t\tu2k :*onyY:mjM|rYo_~RY ef,KgnE\Zu4sSľ}y"J=Ϧ$\EnVFllU|M2]Xu˰U}|rcӔKu@i&ҍ"vbggwww}vljb'X'b-ǂq{_03;y&n%׏sI!ߍ(Jw,:%1WMڔvY}cP8w㽭c wh$]*DyYv^|Ջ4-:=**uXd؜51[?t d67NS^.q/t)QHxˢn0rv{.%uo|Seb^,{ KB[uOtLX$E2UK Ez2Xj"SElfnA,%1E,tiPHd󞥄 .%2 !,1,6%Gw" Y]U#%%! ~ w޶j2}O&K,Q=ܽ"?ꅩ?}*HY1W]v3:9=%%&88B +;'7>qD+<|KzaBJ.kww2uBl諗Mt#w$ž8x亃!#OX倫Uk)0]6 k/,L6}*ESBtVkVɑ/=*"B QʔĐQK5 1a?ӏQUbWFXq?A @I 1oB 䋛[Æ M&Nl&BmNi5wJj]ayWvuV |޾UNJQӅt;tmΜ9?K|Mmzwo$r[Wgx:IDWy.]'m5N-P\G1\iP.L gӎoz"pttQG@B!BSDfš[ybcmBN _W1<p4`ѕE6wԹ) ׯ~^,~{x}t+ospBVt6O^xtf;<JFO$2I 3-nZ"4@1+{L*\yiZiۭo1q.mdQrFSS_B!O Pk{wg=Gx*a2r=5ur*T$C|z^%]~Z(L Hs.) 8ܧDH8Zd&ԩiu4WU8J ܛĵU L!ӻ t" YIYFI!B~Wu\m]|>pYh!f3ӄ~(= UyJ0&6g#iQiWu޾ϚgqOuPqEQdejTYq;ue'~XRH@l&MUi}g,~(PXATZM%Z]SB!BjaO56L"Cy}+trJ2 {K!揄KVR^Ե,4!j=k Bu]o<46,0:1UhWT8h>ʴ,!U.'ɨOj‡½ yjOjf#AT[}ɓ7dwNjWm!< S80wTN(6mްTdHB!B3R%nwz5^9#Μ0{͡IR"(^yxo._v=\$$'h7\>oEx݇*T$`N: [;}zpfFYQ# ,]pǡHtN,aWQGcE-7KfbsM >ԍB!d}͜hB!BHu6g}FN !B!|Wn_y,ODT=ni!B!|5%!B!|SH!B!B!B!B!_jޱCe Q#Ե^  nUO}RN6!~o `/w%c);|d_6lcZU2?jaÆXݛD\ }Y8 >FQ9K !cy+oҿIſeMŔdf=/9s&ԱY-޶O+ԤQI{Su8ѣIb?ua+vG9ugq=,vr L91_&i4ݬ0[RE <[RUO]bYxe;Y>Vlܸq~`.e7z7^9m 5ru%Q<`Iy;ӵ1*8HfWc9dݑh?L!Ԝ2~ϟ1rӫLtcΎUͩHAVϝ2ar؅-]@`nzw#$ Y,-k>{✍,Tc|'Z;}"ۃ@(8o5j3ÑAC>], do[ɯT7ۺfgrhՏ6> />qCo~\%t8kffy'Gi+p%וqܴ@;h 5 xx/~8zᤙ]ԟm3zW OUb5f _6z2!]#kNGnl# uH\Li}j9闍8V9}tce'.zqÀC'l[4+F@>)}8y΃ xV }2F*5߸9C75/?O{:j全oL3`@Sb ێY|ܙ#Zk#cp)q}CEw);}Kp_`lurXX=f׿f24i1̶1K|^N$;wZ~1vjvoRm)SǬ[Yĺ s/c;Wk OcLptaW@Z1pMFmIW_xɢo8&f]КCd8κ?0bthjv,qi;\>2c) r~t)gj^hXZimzűۊxL%`J2O1 `֙1g NfBW;Ar7C}H̪g Ϊ׌MJZx4֞S;+KbB! PS_%9WwMDCșX98f`7t{BJEn-m < )a: V,Q?lDm/Y1Nm2krw/Շ5jbL Z?yj \2؝xeOcj^ѳW)HNIKnR KK"9!.][` FtqUǝ[NZ>iak>aV X}9l<CGu/ ZS=-oϸ,.yN]](`:=ב3Dqc:py!FL}7g>!+~l@]aѬL:u-v խǰ9e=wEz <6iւ\  X :`ڶsmn {sxE/]SYV>x\A ʀCV ŽC2Hvq5yAZ,xcHB$Ug)iQS=^0mf /XN B!?.}Yђ[5Eӽf 46{m-,--o vo p~߳iRAvիLo:PJrԺ^}Gt9W9ZzfBm/o\ru~:~揪.>}э{8ܼp3W"mΞ9PF m;EUH 8Eȳ[y ùj{?E+c02c^v>gj1_}27YS͋rCoXAug oͷc)D|DfdXn#)>%fr{q*Ƽ dV6&Bnݺ=3"j?h/~C&O3OMsYmqzo߲MJ?H`LJK"ٱo_1}ٙqZ1F͋7uwvrJIV2?yb%,0~ʋV,qOQ"&Q(}|uꐤ0흂 Ҹll;: 7UIfr*5<)ϒJbJI29Qj+VlOeJZa%d:>CޱE!Br Ma ~x§E 1Ec7+ b}kf"/ZJO j+AfT*WztzG qiI jxdZ t^0$C.sW|1 "nNe%@ݯғ#.-~3VX5 !H~5ojV~WFm?aZUf:^`Νc5cOGXV1ѥaް429~ 9>Aj:Ʋ/2^ ΙeM >2q:u7 Q 9`go-;W{UJhWy>+uw[U4nNy獩 \S`Z`2M"^&+XVh\؋9׉2T`["2Z17}, ;ն8^hckxZ0][tPGk Mly6nZm0s2\&9+N^~5ħVӏ:ۤXMӒNOTiHB=8ɂt6>x)\U={rXw}pa9gSg$s:rT }9d^bT,qbT,6t!%A2>50ސ@@ b9)3RSrR]_:oJ!*fUw>|f{7 \BYW[@*(D?Uu̴V&u|cC=0#a #sfԦMыuipmܨq1{}RRM~isG"hybzL]>àVhܨq)'VYŁg.u25cj؁j7ѧ柛ҿNG!ɀaTS)@R[ճj+/pvKk&s!/k'6Zs9wڭaUȅ7zǞz*.{pͧ`ߢmY=;11ël;vbSɨw֎8JVTya{q"!{fVE>*޸~s.kզ:sȅK,z v7\\4wСOoܸU?{Yg*0nۓwn?x0tVi,٫ TTnTȋY7ΊC7]ek7=83,iA/z+ iCn]ݻFe;L$g,9sAj:5zmG?/߾ydv&5RFĖ+&B~qJh/yɝ&M 3u%Ϸ_qMgHgD)}&yPhעndAIZ\Wij]ߊK/~NָK]uPȆKBX.]tܵWomSs+|^9×kݽW2/ԤsV9HQ 5׻Eɧ];j͔UkW߾xET.?{{ܾv߀ M|n *6[Hx~@ E|xT5y{ vV .@2/y@eY[ϭd|ܐ K2ABZ.=WHBHcjBl4erx!פG"u&w{L|.0pX轣X` k@4PoR<ع=ˏ^kIKY=0H (ԭ%j~_| H/9dm#|R`Iߖ*:l=z}|ՃnJw5ëcu|Ё1 O &#o}tko^ۯUzN!.;}x Do,J.jmNV ۸3#T5]VTrO& X5Hs4,"2 ?hi"/;m':oqYr8S x ,p`P~Id#<V@WHys//1 m~pta6Jz-ĝo _w B!C%K2q:yelM)3׶u`^g@\=Y1y1YD* [ub1jQUM.|=sq}BR ymlm\,ta['[QlsC-@qw) xȼ/Swn\=\Tnaaa&f f2B&8`\`?  l67 ct&08DJ&^ P N@qXĺIq)گ;&⹶S1Mw |H-|݁D!?,%%|1TD-$|uM,W I @">~W[jժ }ru+^]Q`7KխlZ\rNE u9æ+丆SlUj\{z13Dŧ[,ۖfղS+ۊ,TtȸII6WIa?ꨓ5at)0k[[V=ۦyF%;0cxN}۵J6}hä_ؚ!k]yvn hn{n>RfԐ Ub,_:[tr#8Ioj|SEc\/ 9lr$k5{^L6%Y?i[EµK+Y+^00`p1I (,gbPk=Ko+ H<`fwV["S+lܼcemvQ5kތNj%LNǍ6s{z#{M+ub|Y'&_xg_uJ܋T]`3)Wz?X6׹/{-]aۤK+ <Ź |֍ _pvry>n 5F\>``\ LǁQ%J 6u* %(vzd0W|A[>#J22ǐAA{B5Щ^ 4K,\JުuIWn ST+g<@B<fUD7$x f[klJ47iJQdFZƠ3-K%u"WD*U pBmzFǠSs$9sߔyHL4-?W={iz-8iu K@G0(K++$ Lv@- `d3w20 ȁj3cfP88 84xQӒsTv]+3LR8"Fm!BhR`v1{cxS%;Fh|F/\+8yNe+_;|N1Im)ˤ%33d:R-2_|HBLZc4G'{]afERB4V/ M&nZՍBWM3Εe^'+}T( o&O9.ru;J *٦/^V3 /w/`źUa[כ7H3i|_iBt>l:u~Qj+'J$"}%KDBP{oc?Y9daH.nb;/jfC6eEjw]iF- g9TU /_ԏ|α5 fn=kOt+yŢe7zZNK!B(@.tI7}N%ksP**TZ/$¾ČJ9 ~`v>WnY^e^%iSvg:B2ԹM۽V.N ӖV(WX{We|R3*K~/9) ܺ?ɮ=u*!B! ?/yzRNSԂ3=9diMO j݉(ھ a箟Mm]>N )QJ\lϼj]̎#DvW5~0bUKo"b% y^ݥyztrNQx̓;W !B3+s|2-Wt PG.]IVβc~u)/{}cW#gmIU V B&K-'SGp|7Lb]jG_z=bzj2ՅvjϱC7wkP=:,*`&_x[R IڛdE:w~uM0U>t{2SUB!BnʴxS˨:ZA"VR\:fBR -\ ,eN^l;_< Ȟ8UjުY i5{TPMS sH|/֩}Ky%Њ}qߴZ}{UvȈUWU{z5EiH<|`>ϱj2yl5 u,!B!+@5+tӡ{ߢ(Zy]zebh)`;=m wdC }M,{Xy<sӺWȈ~;og@lx۟l;xYZКpiq1D.OuO: [ـ3&HJ!B53_7}_{S~bb)B!Br:B!Bg:gUB!B~B!BB!BB!B[*tbKjJB~,\Gy)_'>J7E +~բfKݪИ2N8p-{r_~geK^֯.,%l7nml^PʅCƿɶסw\0ڞȢt;cu˞#W?֚|CFڡ~v:8wbF:_LhvMk /c 0} 8OʁF`򮌱# 1ƪg. f-bMJ6Zi'mZV_8v2 5[gDV%:~݁Gx/4P`%?S_ZcH ʛ8p*%:v5w,o5u,S =¹f9];g)???ߡS/ߝe1pOz}}e:|S.RGȺA|&wy:(]R} e;-?XV`UF3u(S~[7s9We.WYx(B Dv?_ا]]&<ĥGmk+YU}o_il̪?u]uGW~OQ={}bz k04eEN25wpӢ5KthԲɳꊥm{`}bZkJͫ~9c[%>O.f>yZS.V{EE~-~v`d]$ϵEZW~.}+/btC,@+ؕQf:Vin5: kgvQ?96j!y[op4lBa7͋4,vaUh3jB2̥{5w-+A˕5)gAJt7Jqgg3Wx-*?X x3nu6jvvđ{ ^dOnhآ?t~Sa :>!||͎^\$K<ӵ){ϵN.x+|N.GM3sflrWp7.C_OoRŘ]1үÈg$ elPZ[='Vm0Ɣiqї-Ø&-1I;Y$^yM9 x/{o83^ N_k#kagg}\~'A5sH$,?6#2 p/sxVNVϋ,\v.σ@xb-`Yn5CtV %RSIQo,l.:/;[s;]o+f &w\n ض{x7ux)fPbH _;$xY{FjA]K^~}]Dvo)aeS@f" 9={89콇H>?{.,R3[3@n =Q-RNl=_;]/kX:5I-F;4Q̋Db'y 4`07R:Gϔj#|t1 f WN{pnC.,o/jaqM#qt຃˻:ۜsK9:aTfczxw V @,_qp"nBH^A=o;VL .QAT==~0I tmvlU/]ۺXRӓ qtR3] xh"M{Z-'|ӇhW W]rmWr\C[ܐêT7^ʙzO|8u֭']M@!K],?:: Yߍ V-N[qB$@q'J<2?@ -|NOO};lޝy3\㙾VE5 "C-۶R3QdD)s !irk؈1W6ZY-JUwZUo eK񚤨g"+ezююmT3}7CSE^%3dcf2/TdԵwݧ_V"[+|#{i R=52=U `fmŕp#ǹ5e)Ţn*Ӫܗ91ĥҵ ޾rb/\ Ujiuwo423L[O,ѢТcM>e}}N)]2Ntx/ޭ! ,ZMH7L7u5z!'xͦN Jn>(,W9 uTUyӲ#'Κ\G鋕6cYkz* y7ި6sQih}NlbiŞX6RD|QP,X~Lh!粓M%z]Ty{يgxym-W)=a  u!T3fTJ4r;zǼYfv͎RIW}NH,خlQg2Bk;E-Wݿ#fgpV$~Ou >3#C!~U0*u]`LoNֆ\ͱw@onGxWua3wȀ{<繱] N-3{,6yQQr(Ӛ yrnMmo(!e^^5FF PѿuΔȌYaaa!/͝s_DQͫ:&Nn-צM;H1MS@Fvo"^h#jD& v-ߘDyQcEAW.،|(J/[qxG 8V&XJ nẓyWޭ!盙Eȿ"@̵OA|_΃m *r/&~ZLWUjRSP4eT>~(ҴMU /Sj-vrnw?)%\h˻g2`v^Ujg.:)ڿƩU MK UMBغGM=nū|NB ~F*$C3y_^۴0 ~Dt^"&Ͷ7ɇ_}u--d1;LB7?zyKmZ\^kUz+f\kFhVhsUP.m]R+o)WO*WShE1zQuYj'OI-~mhY֒@XJ} ]C}T)b4I2i=yx eTzPX-ʼTu/o)1*z<qUW>& $-eSѦa]>"&Ӣ\Sݤu˰csOs<{j/bN k+o Ih(71+NZy00t+kaP=ze4`~m@x#ҷߖ^Cɧ\PІnc9{vaE^,Hiڭۑ{53p@(<˲(Ӽ}e=o5$Tdt̘1@1ǮzѤÿaYdʫONk wGQ ytsC=ul?nBwo*U\u7I{[Yiێ{PdfCtL,ۋ\1|Όc*%uܬ]'_jT|{X^6gF 7k{} uTٔ9Iz, &/"Cc peS{Y:#sf>-ڼQW6>vaIe>-/~vgfߢ݋3uuT)Wyq-8"6n0\j猸6I5(%gm% MiA˶l߽yR26.nvm`R]zÒ ~e2[̸kd_!ez߷mW;|᧨52sZMx UV6lޫo5S6FdxlH=WKj[ 3|}kHGHݜl6oVnP}xSw ˱6+[5h#~tW0(b+mP[v{n'!7 MBO ٽv[@ÀLr`wbrlO]eY9Zß>NPLh:*!Dy/N~/assIDٵ~o^Y&ɷo\{1,>=4)wo]pj/vg_e^n~t!49)&-aK"Cs4zFrR#_ WiJNhd;C_[|)$Tߡ#8lsy5o*R0ьWK-- Yg{gk@bm1ɹfNufX"ιs#"2)’bBҲcὍ!D*77->*69+';%6.+D)911n椈zpGi҃nX*1|-sk+N#JrCS&J]Ĩɝ\?Ȼ&mRgPXub5T ڳloz m ULz^P}O}ΊU|xnי7\H' wS!oS_C(]{=Rs~fDD&d wpKl}3Qu\`@Pq W6#TKώML-bS=JKK C>PQj֬ٺukЗFzWµҡ YXe+Z6EGK,޻*AJV8]_)UwvOUߊcS}_B}!>;!9ŗWq7ƽ0lۨ/`L9qc'm˒[( _H#qq|Q}o>2yOU b-*Y[iX\HS! fB!Bf-2 B!B/!B!0@E!B! |$ɜ;_lQ~*-]BY z9Jʥn &ڨUʵ;DY@a_L<,,]Γ$@Ym^\=B!' P oTE|(k̕][W䣁/@Psʔg4|Jm\ԩAmٍXVW6HNjFRJo2)5N_B!;wպ~rȶN䍳utsZ()Gigz8e};}[0FgL!ĈZS^ʡJyڌc?rOZ(bd _%lB!B),/lO_f agCd PTQ 璟_RbJ&:ŎX\#0Q &TǏr1Hyi=ӈ1EGCa + ^ݢ !Bw^ q^?FeZ` ;?=ۮ]IR h 67\f7*It1=73nrN:8^Twв3⑿fIܕH{f?B! P6VҜXW^jĶ cSmTYp H IѰ؈?5^@$ YqTrM2P\KqvHTglIlצ ol;L ,yj@$ d zzq𕽝B!*xƢS(X*ԯ{ N Ҥ?{$߭[[]r:9BD؎ۏU8y(YG1{:*Xq1WmϷi}þ z6ȘU15 O$2c7hxD B!Byaaa=G!BȜ,ZG98sB!>!B!!B!!B}S Ka> *B!B2ƪ0TVҩyeJu]T̆Ϩx!(]2S uDWoھ !@ZT8IQ2Y˗.n;)*aZ8{vo-fYks>G5( u-g2U[?^s'b} >[>|.ҽ'Qd\hb'a葉iK6vwD*&9܆}l#9A [3Ǎiپ:/lk @}}fYk Ͱ 4MW?&侘1k9Fo $c?ߒ5uS Zł@*=MN!UHָmrWTxNATf#{_~yWZy>8e[/^xdDR9}O9j9JNQb4<ֻu+|Qgݰm?O z^Q >U7f=;7SHlƱ b>l42bPHF.ȴ-Ӟim4"ȶ-?XVe[c+ԢTlI4Ei8WQ@Qا~!tKg-`ژ{!~B 8uXppTRBB9sɈ}N휃><4#b@R wo=_@ˢI>o\|-v vx撟Ђf `UϞ!ybOne~~,90@-=6=tS_Ou_tgGL'?|]VS~[jsaj MlZn'mms)'>l?{hl]Iey`Pn!ʓO %nTes܇ Ypq 1WyAyz7*TEFsPe -V R;7Inm هKUcP4 uk\k/M wmGT9Rr~;u$dws?HfBd14?;!]ƾ R.nsbI:ak~t_nR'&e6"1]NFb%*4vxQjrG5, taRLk#N PYVmT sR Z-jUiyz M,>Jæ{wt_i‚ɓ?G|l )*E$+lAe>1=MT6(䔳38ץHyq^*S4A|r6iF  @M3O֞oj.?73=ݪJFo%#D,e)Ɋׯ{{@ a{ԐZsQT*]vF{3QM(AL9Yaq"hnϘ鈟qtQV@+&LI@XܻwתV,ywP!5$S3&8c,d#zj6->r^*Tڧ8H(@) ?Q,>2  #oXd@r @(D8#GtX*ʄ'@EZOb,a={·c+RhДZj+&'Fu7|(D}+EUR{kȽdS3aQ JW$2z *z6s+7YG FG%%23N~(*#f6/$$<[pEGu `L8M;א@uWs}޲hDqЄ3˹VL2Wi_M]8Dcdqs c}Ҟ̹EHz.q`UIyJCN6P k $L& @9RQihAVH@I) zBPVTSC^%y>-&.SMPJ3}֭de5#j4 yp2 @L!TAmӮ]m"i۱؏u(zYQN+@ w1چjlR9t_7¹7tSgD嵧uˆoSO6vʪjL'\Zr.8%6f΢+r1Q ?Yz5o- gNx.\>1s,OAUȬ!ݟWg" HLDXsdAS7_ˉ=]zQ -V/ 2}!OFe<6fÆ/ס$!TrD | .w=`s!2욏5wv:"1s܉IL'PF(O~5ШҨ{v5]Y3ns IDAT4u~}؝XM`G_t9ͩw=RQGgk&Vq ٻϛ8 Cr̞>;uCW۴.U]Z7|>  &~'?B9S#I~*2 aWK9R=y~JJFP>!3~Si$ȝ)q'M /+|8|6)I:AjWҵO4j.OyzGv^t~qo650AjS>v rek!迭f͚[6z0wB_'LoG;MY!>-m蝽W>)61`EA}(hP2eB9k)w'S0:EaJe_nNF!  uj B"PqF0#!>E\@om!B!0@E!B!0@EgQ@1U'GQ@zy?3~tS4[3fق?aY iBfY&h(BH7ò,0>.|AaMKdkx7kꯓ,7u%2,0)ys,kz?$  >f I&|B41Q@ z 㜏WӸ}?w -s&', If9>C:os{}v,t}MIǮDL*f$k'׊̍K7Mqi;aոW KaY Uj7qi/_\njݩG*K _5geoԛsSAgƫB+9rwײ=w?`vӶSz=Fv£ 9'E~,)}Ak/Ѳ;tho@"Pbӳ3l;}dyvz]zt/uH0/?WC^FՃ! @(3BX, Hv2@--?0gXܱys4Z.G!YP : |b8hAv-iH!tiI s7BA$"pI`WNt)9hkB xz{-:r"/fvwLo̙i8~n2;ڗՆ?6V4_N BbWLKygn,79kE9r|<P(#q]ˢ[1%r7ʧZR>zR髗BS~Gti6N6*i%2yOԚN?s3^d6YT`ocJ̵uo!Y)+g[ }}'=G%<#h2i00zF\:\Yȼ˛@1y@Q9|f:! Pڍbl$QDǃJ2+(l^ Lp+pBоV;elb66eyْ rh:T5|h{([zL-@ޝJxTݚ˺o4)0jLP,m \(7u LH[AO_m۳~Ӟ`!j$eyÊ~AX 7l)@/l=3=q'uiZkn|#EsB=<bHȎy"i1]7k!Y}-c[V>w`ߥ40 y8ēqZ浃 Z;9 Dϯ=9[l3Vd PBs}庌z~z󻛬4{ &%$>ܬD1t٫²곉-4o Lݦm)hKSȲtT#cު#OP3uER(>7jzZVƢHӳX'kSs״"{*2')-@,w&!+-)|3O%iZ)Cdzg/CLrte)t9FbԼEG?x P"oY,'pMf7YI<W3rd*oyjC ܂1N̻)H .''o)''MKDQDݧNVk&ol}cW徻ܨScCC%"o+Zu;WUJ3>V/f(|!5*$עB?̘+; \`\@DŽ`. "B!!B!+B@Y/bKKKKKK1B!zղ휓j yӦbXszڎsAeyuh}_-hs-_c&Mi?kg/]ؼeZԓ?l )m:uкmZT7gw#Bɶ܊"TcKtk4}eGUUOz3柼S0pΊFd2rPҜu/5fRtuwG~ԵM nK$5B!B+@mءKT4lTQd'Ӥ` etE2;uL~Y&ȋ؍^~l&ħ u)ȵF7o4<8cwmS|dk5Rlݨq ,մqUY o\*4ֻj׮&ʔ^ԋ 3bμ3 ,:@UEnUj?iB!P wv&NM5跕&|?& 5k4{˾ֹ=('91[:o,eݸ7 }-7nC]qfuw/p=>yA_&} '<Tpx˫ 6e[<}[o8l:=FOA!cX  z#F U&;yH14Eai"B!TDX\LJԮ]N]gkzN1Q6 ȩV:k׮jm>j0JVA#7Mi˟mk,IX~Yi6*X4];mM1В[/箜w 28͠}FBSFviN;w):m\3 ٥U[pт\89p]Om7Ű!BOaiRWB/z r}TB_}Y ڄ[IqB2"gs[X %!dXܹv`_%%ta+snq|V[w/MN]@͉+}]6tcb&V 8RQLPkd~:S- bfl89k.B! 0 ş[a,Me}i0EvQ$iE͕zĒMqB1 Ud} /!>Zy }J籝'oDh}^ |tT JtLZ&!JVʼw/X8HPPg4n>^rlEB!_)Kz+x!3+) Зqza ccIhw6\>di4[(*yyw)录pbs[D ݎ_ɷq&ڄ1[y QR.)9@X!%Wz(lDӛ71Ab.O*T6B!G;jvMk4w 6<:jѦqf<<0e\c$c1fԪ08*d57/*&'Uwu6Tռcfj% -d<ӛ@ˠ}7D6eTNxp=x=;v@yc +W.{o5W+7(JKN+lְl\&Gc49Yr.&ƃ'ޥ陓!B9B#j9Z&>WҴ,؍Zfz|B Ʌ_Mlj~ svŤi !I.r_,pʹwZ~0omǕkWw.@5[˗=OnVY:ĕ/]qlטate%#mmA>lX [kgZ^#^ugE+v m=[,jS_)}U=1ֹ 6S7]J勾fim?DX{Tw[Tk*՜,fU!i.]:Dz9=>ʘX7F[OqJeMzuqdo@,41~ߺ0l6$)>v:w t`O/_7ʯЌ/]0DsµѲ}.:]{z>+~&p򺟷ϭ}|.n& -^{R@P^/^8]+2}t󢷏u*۰0j1oKo_>5/{z޶Vh[K56@,B/uܩ Z޾W |Nf 5}=ҼG*CVȽ\@h[n@̛.]}oُZ'+/3uo_ gO5D|@M}ҵw<۩b|}o޽rcr 9w"@Z'_;콛WZem%C_t|\U>{tܾy/C["'%i"i]gߪt^JWs6ywgUZ} F`\s Nu0nedu?e_w:igU;XKrm~f )ZYegK Sj(V3ϯj'+,-y^M.YVhm- !p`/[>Y3 cQၚ]ѣKĎ6YWY @:~*gŰA)~~>@9#8ur\c'BP(21 %4b}.ݱk@ϗ.3+37?gT$*b+W;T 5tk®CksFPBem\r\\6o'ԧ++ \P`tjR\Pn-2u_9T*Ei bm>R +drf|O4)zom*w$ҭF'hIr\aYP?z@7\.W(r@4=kKer^:ZZ3@ϙN m*WhTboک #_X2L&SXXUZ[H*WϾtrH H0ONcgoH1E8~\-qhװ[hP&CXe"`3[ :/=AbK/hWL5TfQa:V2XLꖶ;T;}ՓμjC\uճpk{|GǗR)g+m˖K^ˉAmk IDAT \H٪ӫ'i>ԅYi׻;`F%8D ;{Z60fg٣vmpƸ]aP~n9›Yj̢V#F0ߚæl:=- Ӧ? xD2 Wo*eYk=W`xx?ox]Y`g3w~MDx<+-׾R"YyNOMgWNf*37:)(}PtU',3@.A oϼ?{x~8 oRefpe~-6Jf"mAP}GPGf0j[s a?bo#`eeMRǹs16N k^EB޾G-Uŵ@[؛R K )խr6+^^S E~r wVr5xB:b'svDX5.540&BjV4Π6 T- \R ZQjAPt&FMJ)Edh@տIhL߈IKQD<*ިSUʀ ~9;wybU2l3J zHQ9uZyp-AZ&0b^[j5iuϯh:pJȆ+YEdZenE&5*=ZoSLC[/tǪ[9MZ3ks#|v OekIutͶ :=KB^_Z^9i3֮mmÏyTVŰϐX=3c2bC2Vl=>BA!%>#`=+bǜ96R|n:/FizņUcwO;Z#䍠c$ (@&ɿs}~i۬us&ĨKvf\V+ReԀɷ$={tNm>F{v]9ŧ.AвLV&v5(UOܢ2a_d3S'eҢ}/[vPXA3MV (=cp$mΧZй5ߴжFaSG_s]2sZcוk[X;.R&\s#fŦ7xA=n? y%6.Eauj-iԢ_q۷/5Rx_SKVόx>ûnƾMGվZz(tLUq"?]_$`d(sZPtF^&&#(,ͼ(r3MwUk4T/xezOUDFUƸ+i:@\zjxF^55J!*""#""""BWΜPEjWQэC h#g>{5GK: ZvbdnajDDdFGYw-tCŽYz00KZ~'pʼQ2^i$MOJMLLLL(Ђ &8TqH}vN/ro>d-OծZYرΣ A˼>}alF-rFge$&&&&d4$]zȡN=ϿxA%EzoS'L6g3lx;]:5RߖU]R̍#;b‰ +gYM9Lѥ6 u~튅{t}:OfݾKo2/#&뀂"hs_;˧E$W R QgNU-p~*_}RVtܼ!+* U+9ҩ>cL]D+8VpXY\rdsmwlkk׸=g[ST3hC sT%V9".af4M$o0 -l6kQz|X"A Ӗ@ЪJP)9 OVm:sBWw zx][^8##Hf~yho^jӣAGV@Yɝ{0MZP%r+; vm!ftѦs=x*RHmv܄$p23Zv1@\'p8!O@$ʘ"֥Nˑ;^tzZhA _T|t‰٪ր%M9f:ENQRNBP?B|NwXХr_tl ΍~_ @^. \ a&*ʱNɸFҐ>|S8_J+QwH1Vq1"B :Fo374U7֋wW%iѼ`@=(%R芊\U` RwrLд ,|PahU,K|K@-LrC`0C:=Ƭ{e||\2̈́WZub/!1-2oOh5[7ݐ[hJ___1ypˇ@i-̀־5 ɰniM` U) U$JZ b{ZUw\<ʅkU;eXgEu::Z1j4iF%T/.Ҍ +qlk2S]j5ޏ82YafWkyS55{Ob.Vh3tگAk[xqj] G=4߅F ;wn;91A碕wn߿Շ.4). U,z]waovoX>$CON<5ʈ|Q>1^ >Xr㫽C^G4QQ |Vq{?ʪv-M:%̂XݱUe5Ï_g^k|[Qyt]&iضk\.IP1Ycӛ\Ƿէi2Tdi15qn?j\f{82lͪZrׅO2n=z4qէ t}܍3enWi#.IuTl] yǍz} (E{=Gn΁x70ػoGhz;]i{:\8zUm^4j_=ܚ hbe&0?vTjc7S/y<%_O< +Y3u'L%{LiwS6qkQE=z>#Ul>wҩ ^/uxvh'^蕇V54t7֍Yc|i.JWQcI~;mתW,?lճ|K ͽ;'2`tY)irR. ualx\a~nbDxV @aҳ~jd"'m^NVLL ćDŅF$fU̹ONW*թyh \Izgt R[:oP@zAZLYT(+OJMW)I.痴PR(^~]rxF/>}Ti3dL_e '}AYARؤ|@h]<`ܫ+,zqR$u1oyV-zv7(WRfD%gE7/"uf;b ЇOrTyq)C;̞Y=fӁwm H"$|y:oZܰq̈́)k{%yU{=+iAZ3kĉ7!ƄЀ`ji ׭aOfe濩j ܪ 00uvuloNk@dQa%P]&$Ԯ`ã :W2,@[{'[SYfy¬rͺy̜ RcOaayGLUy'%(Y7OG["g'nVzBԫ*Wmh!f ־98z`\p0US>P=רgO3A+uk,:y5|hܿߴCyc'UF/uYOr~gNy ҬiQ~hOc4rjFZ&k4:;KݥHCIyuVR OQs6OJ1ljפ5Z7=8 Gv ~_9Ė9m"\RôKDiJΙx*>GN@o IDAT>Cj2o\!ll+I@4֢#_Nu˱IZ"ͪNDKF|iG2n9vf#iBDdU'f6ΟK N .:}l@Z;w=_kxa7bJliiQDeom6;ܡ R-=8ڽt'v>q.$gFؿthhg~i>`),U93%I?;*rZBYI*rmڕ\a24!i]PxiI+uhݼ)_Xү\5w1OҼmM*Q^js7υe$v&{!0mު _( 4] VnNvNBI=WXH $ >7{e oghj4dʎylV8Q cըUGLySؐG/u(q-%P~s;ժbgFjB~ڏnNƒVyYOQ5!gQ# ,H$1e.!5'>td^ t l@nBZL˳w>zZ4D ח՚g'~ų3oL WW}zˈʰ +``; &]=x&`"05~b=K;ѫ^-27WA0hкi%)7à?"i[E@U;hkc=|y&IwjR)22QΫwhΒ/}p9&ͧ7>iƧy( wEs=㷩/ :1K4 8R_~gF{8uO?~C-8}qb~ٱ{ ox$˯r0pG6՛6)Ÿ>3uQΪjruT9*Uox$mX +TSսaAbHrSc@Re3;c<'g,,?uHӵVޱYLzf@:o>й xl z a^`ӒS3i0ɉIʷMˡk %NZ͈0tpt;+LLN!YRbR\r.XkM:T*nzZC^-’ٚ}WhkYel@Z}mGj6ՅrϽ+ <':O\稆m% u[|1:sao hi ;:%Ԯ?u.=?]Vagl;iA ~.;ܹk5 pv׮z_~0_ľC:bUЗ˘.a 䨐rgAeK~5G"$ج%Ǎ۵e9ڿ.C#w/]//WRڟc TD3^?bu#[ֆ&yvY"둒X:CX|%ɑY/rcnZY8p~~2.c*V|'@#`$`0ޛ}.@&K|vtt:<8P[s>ox *x@ !HB}8h%s~:`(1MmXѥpB}K=Erc=;fh%R. h Uiบ֑{v}UgJ˾i>Un5_Ύ]~{tfaSyOd(>aËTgpE :im j @isw.t ]sHm7c _lW;XRTb2=wk+Q9:`6n] gv\Du9;O:Vµ6%M8vNvzL Δԍ'yn4Nb#Q?/4zaRzR'! k[extІ@#|zybL[77ecy3 ̥fWy8prBHXXBO0 ԹY}֜*_\ M99g[OP@HY77EϳM;+_>}ֺcJ(~x5p5sn6pn#M/{j^c'\|J_tucX~V>9hEϜec9H]VIΕ rh /4veaÍ}^e"Z/yV*ǗvW\ lML~yP?"A?%>xh {QvsPj4Chii$:Y>Ev.f"S k)]?j|.kM$dc8v1A}7|}}}{Y Ab-CTCӆ>aL[R֟*FD]"]3``u(g>{O&;^pxlR\%: >8Fw;Q@p'?dεMʟ.EӄY;T x%w^8m職;81$ve5j~콃tZՄO7v>#+uqs[`| GIgN-oK?QblZpKMW܃|<5;=,'SGP 5g.zJ[T` )8l%h.#s ʒ/ ^_9mo4At2O3+z(]z% W@ }4B$0J @wf aG)O snJNuZ/:||m 5/'$WBPwƑVwG \YD>iI|J0=C) Z .OLJPjěNGEwR@H ޠe0w}BCP3֎c~_8 ufX~>>5Ҡ'݉NvܐHm=|óպ~X}0ia)6C܍fz+Ghb PU[s;tfJ!VMJFAE H"ɏxw\M&o=xF}}| ~2Xhub .C]ZYAjLW7?I.0 nzQg} ,rR³ *%D|$Hpʠ~3Ej\T!d͚ǥΜ0Abͪ7rIyŒOKDRH H$E"ZLn_\ܹмA}K'88$9SPKtj"(ZxV^z)#mIa@d~drݽ^"![ 6MAQF1LL# ̾]΃=۹. D&7,4hҶ'[)7n1{󦎎o).q xo[Z$x|S,bjf_ׯP?jIJ[2J~]YP$mWfg?r8#.ǼMU !ر4FЏm( ]qG zfFnfbԍ+ti XoW$޳*Ghƈ,75214o>77FP-FP^DS,־*jCl@s믍K=a=[Zr~'G&jsg}QA%:p+/]{Ӄ/i}{ol!x'#_hZZ?u^gwuXs/^:U%%.ZY~-ZcRk`WG [>ݎ\urKϮZns8-~4d e]ist۲s?sȖN hkW[ؼL&nG/,Pc9Բ78r+'ȦW/Xzzr=e8;6STm,,O^@zO 8 6͆Uʵ\7v4Qёbv_ `CB&(Geb!={fN1cƌSgmHMHT $7n&RdI.}'-1: {([yNWynY^k-:k٦Vr솲&ka$9ma̘uvxߥfoNYyq/: IDAT=g1:m㼉3c︦r:,8v w&KWtYϞG&AA"ia3Zz,rѝnόaQ dLZ0N(o0;b/'Oyd> Pon2w[YUdhlZߤ$uBY{GO8*Olv߶5ۺWkϪ{3sΦ?/c:s;+ǵ)ص&!:,,,ԆɏHy|4S|91[?);u׹kTx^3yZA16N-NyGZ\H:QO?~u30~(-;.q/Kgㅽzrn?,6s:-?:J40ec[sC}?JNS:2ư%|wNl |;{XlnCf(NZ0IF:IH9W"{?} Mz|Md5koL8ǥl>xOdž?*Twf'FV:k=qgA`h F \RÁP[Y/3VcbnN=+74q|bױʩu?:o_ʍr#:A-c\h X*㪴ZFd,#Pmmly:9C,8+CO#cUm+.¢.u|haBcv2`DN-7>#kyGV񝍿t4|Ro+<{,-1`aaT F"(P,(HE ],VF!ϗIέw1GT IRRGJNKr'H}ǡfcSiKgmӢ$Luy ~(DžٽIyj%)'p2ڼR2WH4okD;UOv9;\th3bbx;iֽ[͗7ݎw\1ݍNi1 $ py/6%#6Ɵ-@zF[J}7BnhlP8ode%P{^?Iu q[$#ԡfV=: t*W6tv 3r׹4@/:u,eaժ]>R`X܋2a;hХ[ZWTC>ЫZ5o^%ª>Gj5aq`BRx:Ԝ|VK!%WHU"!GݛѥKkJDBhR\A -x-)|!qΉZ% :"/*O2fLnP\!TZɳSkQQ"oo`4YYs˱ƌrBqN'63\-%)|2IZ!gdU7]$ n!RQXRZ($ÇZryyf\r`e:U0pp ֵcǎ}V.7JqǜK79kE00*/8(@@( g`ФhRG E^"i䰢"59CjYB#18&P@-b[Il"$\8z;꣫G8|ƔJ~B4q_mi}fƇ$c֍,0ZI>NfOP-k1Mj剥$h !PѐzN3'+_*6cƸGx{+f&}svS '|.E) l @{vl;v#7/Uԗ?%3TC0x?.W&k£6?3QNKB GKE#UȈA GYk߲YslP"T<};΍ 2)I(J ?o\9ݿcӅvDHM sc_t̎2`H7a#~W}{ [rIoh e&y'ڹs]=|n꬘xprk;``aAe`̏I4ܜfM,T.i0#S Ȅ,K} 0eÿ,5)] 槾zU򅠁mb2*JVAE?R} 52cX#~fyxU3 53}uEaeY*-"ۃܰK N[ဆhnHxr ӂ {R۟v_r*$66>}K-1F{~rp@5[e˕~)։G֏M$O4?]`yL*qG>G~ ZXr)3!!2QH3U;_!s4ܩ[iݼlķy[&? 3f~{}4ʚ.61p{jS^Ο7f]//uQ:٢y{YߖOMv ɟ69hNnuԋY*Sg <Fom#4x7+w6t}۾δ9wJAq] GvY<`ܶ]>Ӏɧ')@H l-w䪬+{_=>aУ.#O$Vyԭ寻;jJ,s篽4ۖK'fH5gGϼʊ̨ٳCO:M?>͍O>.-ƛ|N{?Рƕa%*``*z%a_mVQz3Ʃo7llS]a{kSٲHW]jVC}jgDYݖ80@lɼ *ij6ͳ"K+k5jR]^^5 $I sRRK>yY@} (ҪV֍}toϏG]1\ N+a9N/ ;nݢ\4^>]:.>&s_dlʂDEܶEm]o&ܼd{N~Bw4pN|#[$Y͇҉~uڣxs`VGq7~~x\q߻thZ# icwzY𕯯lȌ֙"kNS?Dpu^̋l};ߞ@%f5?ɥ-t7?djzYޮN*$IRljhbn?.57w7ݾ`&6txq%G^zM?Z51Q?wyݾQ lDHUyf<#<7-b }ҤʹAsRVN{wiM_c;7{'.W6ѱPyйlgr)R`~oOx3dyAcP _+f/O_v@RdSO.dSY'?65 Ǩm &@e``````IДR.cf P~Eo0bX,/r`Y,,6P, D,6b**ɭzTf4g e``l?C0Op*~З%)˂/ H8!8^AK >c?J l(ߋ0 wӊ-.}dO>PLOJ=7W="p[n/5MެKaЏ;Kn{SQ@eUٿZeԍ>*.xJ>c/ۃjͽ<-@zXSñيe)4w`xpIm>]TZ',l=-< `ƍfny#菖)$}✔'zez|5IL,^H{肎k1Zd`V:slj"¨f.lh_;Tϑl";Iw/SoF<,p7[MMa \]ڍJ'?s٠g+Ɗúo[ˊ7bKkUg^7|XymNfOg~o*dzLKRx}]*뢍+ S ,qAϟ47PY{83$_Si6ټ 3fC/ѐeי5H)<mmN/L-ѻ{-a OvNKVRnY~US;\qH o3R<4L~>{߇gl׏tJ7+|y*?eMimpɰYCi.)O=__&w8ezΓ:2j:?Щ=;;gS̛]q) ٵ{p <_7}f]x eTgQ0ljy|kt.Mgwg4 _rx?cx=.Ykp"%[6"Hb X%C̢X"N( 6"x8B$,H,şDcbQ< BD"sXQc+x@yڭNվy B4h605q{rpo.îYgF`\-Ưln *>{99}]/K$!l!e!b[bUX\sBD"['S^nş3Ӳ ./0 h)q1| P=-M&T|aWGV>:Az[9n 6^M^rVGٙ|R(20T2J 4NU:a,JQarmbĶ$da;0E %MS ʣۦ.**Qu\G3-#51?\b]]۬l/w|*!T6:XW9@^Ҿ{w)}Ԏ1ֆc3Q Sb_ǁkخI7rmP"8z+"n5~ᯥ^^5CG>.~U[TsĘC*@u:E^ٸȯʁ&A+iG'q`;^{Vݍ8 ^ċ6Z.!޼zb! 6P4?iuKEAݍNT0,6߻Y-v 7nAzk@vhdKؙQnxj1oZ<07y7aġGwv|n΄FYj‘y4;#Cf|Fϩs=_&ٹWrԞOsVw_Z:p'K8E7=;pԬ(&d>jˋK2j:aL]D ӄB*2nGUS(eܾ6۾![y_P⒚ҷ9F#S; 4p]x+4J1A!Y%~Om<ٻb(p@8rDp`5j6`j(_hY̱WXu:d^#YcdF2ĭ:̟hVdwmaZX@CNT4[O]0zN S^y|awѳϢ߯c7ecֹU\߀@}3:@!*od-`ѭO%$x>m>!8B6{y_a"#[2v뎐M m9O$7ێqcTa#YZInmԼf{#}ƵekV\ӒE Z 9 fd V!&U2Pc ,pV,b8:DvjڇRaUseG椼-#c[锣 a/gx/+|ա)HnRZ5 2KWZ_*0 U.f=CE~Z(J<Ӯ1 Ħ:f- y2d⨈rZI0Y7SϝЉXZal* ~ x|y3Q`֥EF}ŀ~e=}m6űmo(P>~Gf0Ilks-s|]zXo i~$\\ȫpAq)Z_zS$*h/OI(ىqR>Ȩ!`<KIp4n0^j"v]ҺAJ>P}ꉹ!ӧ:wV#/̢IFPoNo_=4Uڮ9Tӎ%8Oeu]\:)ҨfFenoߥq t7˲@+@5_W=I#L4npv½ /]} VlǍЉoh%2qsɝwQ&XRԴ9WKJ5=~|+GhI@-n,4㜟)snΥf٢6^j{U^tm3f<ʢCeEZEzkNZV,mڢC)"殺l?B Kz~8x;xïȗA3쌙"8pjȱŮDc'\8s9lD+ ߍ_^fvHz{ֲP` Px9_qۙ= U_GKAR.JM~|1:i]@lnUA@ʔYR~'iZe.n&^뜒/p![lg2a51bǽIM/o@ZyOT+=d"'gϧozM9[p!>ȶ8:ڂ3gv \/N-*;̫ڱ3"@Hs˲绍VڸD͉UW`G zjɱ1g2i0RӶܺ6vEozMЉ]%˼/k|y+KL%K" 9ZV>)Y`Z>[uAnYH/Z7=h9]"s؀w_m߽hC¹ 1^vI![fxʹ. &wjN16/_0dqqzB\o5$ fOޝϿkG O^q64m붹D^>PKCyG iNyu=cOҋb/df uyKOq7 9݆`ìRS\>}Nm?# >Q_^fq s[G< -}qѾت{W=jqMDm~CZڻY}M3'WV5} ,RCR͍q9l :Jï=@e``````eZFqqMv%{ZVĬb```` P v~r;^V{cLt? 200000d(Uݘz```````na`````````````TR% <SɯJH(@B1HK]A8КݼS[״bw~ȪuC~(${@^=Z^K@ f-V,yTd;qZ]ݟ2 qE%޼Ŀm"H&=Ʒ{J͗La7ϼUuoR݋\rnxRߜgYR8ev#cTм甡vjݪU~TFTb؆NԱ{y~[|; {}rLQ0&{O6]#礧a_yîm7 3L>V+οu4np}{籥Ӹ:7&w'XޝZ7ύ|oL0天~ Ѽz۲"_i*̭j GO Ҽfvijluw:ޫD @3JzMg`(& VNy7 }`1K{nS-.0(?u]H_otMESӟ'톛:Y{c UGU [;7"0YԶm=K@,F6.B+O]~g-o:ڎ-7o0{J)i?ԮӮ_bLh^ݽޏ"}sWcþ< %>vЦf/I\L܃{;}}{6m T6'rݎP/޽f5S۽ySjҊ)mo-+ 2oYtsڈ1C %έsz8W D`.myc6GwarnqXh9NôЗֻ/hx!ݱT[k#+k Ϳv8#92Dy?NnSs{%ܹ~aw`Lo<-uG'0k{ټew[~yOz~F;k`_ԋ@V%1}mT񖣁Utk7.pONOYrgvS130|!_ėcʼ^ɼ[I{n3o,RYvO7ptl؞G=j8u) oO$pWMқ6yqo*Zvƛc4ьi|^B'vztN}l~QQO)e5>,ϩV:_;<(]ӡxnief^5o^FGR=ߓM8gZC45ʙ05r.Ou [\=22r;#(H:Yn m?k4z]zgߤՇlzӠોxw6X{(]}SiAW*Ws(8̾ 6.SogXӲA[{}{[Û$.>7cj_rFrե,^pCO.0oiw_q*|Țsϓ65s6uW znBeEm[.lBs J-p}8E8~ߑytvwI.̍aq>6gm sSMQ~G:61q/ln zuD JvN}-\?zz9t=ߍ- BZF{dHWGkQ5Y'(d{of܈^TSމ e9UI Z MwwBwlHwǒ-;˩8pmc+slkPd[{9z9B)M*H_gD# Xo$Bl@SVդ\a!Y%UQQ6mٵ[f2[C7Ƒ?FflxX7s7~aX; MVZ:#F,Ʉ@AFV`:u ,}V̦u"hp^kPVmG6T9jæg/߹2ɀըmƵt3oŪ,]npS퍗̜6dv#CT Aӧ+fm~ y =gߥ6]@>pU:9ւ[NmN޳ut۠C,K \w\;śŰ`P?mid7W. av1rF9kճH ٸXI7u~^횜IN|MtQ@`NfQɢy%r}O}dJ ;u8ЫK~B#4ɭjװ%?{G XYuoJ lj%}v9S$rk֝3_.=kխ]͟JI(.66ke:{{ڥںu>g-[wXd~Me,%e59%N5ce<;ً8wtsb_{F<~/ZP}c/cjrП]51i!EUJDq2NR*J d_˜'P717ͼR~[Gb Jp2_lN1Dj>d O or+$fVv@#vzldՌ<.|L~.2oVhmWvsOD@EbZ9brp3}Mo`ciAqmD\8<N Y>eBBxod$/@1G~|Á~ΒN( hMvNV\g[e6uu:T 5-ޏQOr0&-)7#E \:}ձR$,owr돓Gں"-9 a.WIɡ]Âwu\諃[8A+*?I7拏xпc-da<.i],a6nMzZЫ +j.tߧ^ݯݫFͬRP&e.3w>YaV &VomEE8@9=f,{}~ awߔY<2Rr>Hr QI'I.b2>09ϟ2 ïʗ524rZR:0H=:ZJ00MzcS  0+ +}^L:@fB5m'ş x}fKw~dvjie~)OJN~(=#wE;Y4M~6d{9"چ8ypӒSjLfզW {n:2eK\<530Rx_(jU.^}GVAd|hyHLǷ6(,H!Lb,r><8}>> gF:^^ote>ڄJa|@(!ZFJj dg.2Vձ:|"ACG{@YtAsaOk~Ъyid2`l{K{Fɢ-`wzjacK: 5]LfJp3Zp _pBAR7ϫ'/璜\7U;JW RLXF\A rz#Q# J__#sIM^xk԰M'ztL)cA{N&2ïǗ*޴^ Sw-l_m,-\\fscY{S IUNDw2 \Ϯ> ,&Hڸucd/*N_&>T j6x΍el!mdmkg_]hr˳/JCz*[~ݷT#?gyr#=zլ1(~\ډ+wΗWUv,ڡrrrv6T?{1bĀ3q#&v.{5u;Rvc{T7.{Vl`h0uv5AС]z >bqrUQg-}T"~{w)[7{ԃK9*UUij\e7'™=|)d^WRom25.()ʐ׫*KDyʲA}Y[X8yC|67׬es{sG˴+3Yul;垗jo=8Qp cq جNJ9*y0 p?X޼م3G3TF(?n gL(|{{Μ?qZ 0I:& ZB2FTɨK ?۔U@dP (ДMƞQh$PKhV5l G9مQJ2)>=G[rte2Pz4oy*sA2_ӣqڎ.3bk74YNW|f 0 Oe{(4xr] ԇL>wc&E/ ?0max>Y$ƁMFIVVzu"`\i`k8V|T,dgO%/\_8fݕToπq6,JqȊ9B'Nݲzf3]ښ#WT4=°zݷXCaN4[F{pݘe3ndX3o,l7wþTΛ5#F|vӱSRvw,`Ù˯H*}$zi]/oyIc4"uy˃}~r}_z$FA[%ʄCF,j[<5 [}w,ec<-A5?OʔAj=>9`MZ5sOl]l9z Iዶ˿ҧ粬Өy 3KXۛk2t֜jb#7^ѕʪ[lWl4FvUo.".Wփ߀ -3+z]}f(h-Q0ÚyG^0d&7Ε:0dFo3/ДcQ3{\.d_13T}!!UяBu^2gD9|%30-GO- jy_C' \h&/wLtʴd%00cG %)Fާus̉=ZtN;B\lM?FCC;xK|BBo]w'4کU4q7"{;(Ύyz/]̋ ȷw{6x V/wiRo},y*84]Kq66\  r']NZFeQn靐{!js|B}nnkBʭ9cyD1z{# ,<, U,s'4 8`|M6 ͩ[ܵ?<9woqP)Cn07ZKfibwj!Th bF/8Tl;F,ܦUkp[] XiD1Z!|c'i&!ov^B찎p+˟_<7ԺaXM:u >gh!z{+}BP'ilfPrA{ JZ wpiXc|e]~*|~‘#˘<88L֎,uJm7"f'|Ί! dʩy],,V[@0Cw'U u. SQWUyz]V]Bcckr4v;y{oWwSU\E͵%5Mu:C6lw28xjn!x&cL;VJi1x㤩@ɢGP_go{V ;xoBos7|nO/4^C35jTB#|-xeǴ4sg8>2T9 /9ue`x+I:Ac uxS(3!3,Y0<6㪷$2ҍDļd{Q% `:v))j} v++lEP*)WvAML S:ƿwMF`O)ݎ_J27Qx /8,% ald?᝙"kxiQ1stGMrߤ@yRo*%q9%vt4s6 9I\a,TZػd&M"nݦ"Ls_-Ā(ƫB@X% lWq:؆~icD`4r<%Vr3E2>Wը͹.~Suֽ8Uԋύ2Eρa.-kfPI\GWG[XB8Syv"m+6s>6**>DH0o5aJ (7k~q],į#=n$F=7k1yrN6,%ȪkV ׾@aDJ(/Zo;Vb*+ʚR򚒼ř5bӆ9tmIOC:;b^dK(@fݔj^@ڤAa88Z)'Іrk}Y& q>)8E1BR%݁#T/1L:cfſH$0eVz8s=Si6&¸Sۗ?LegK+`9)T#ގz| 3\b!'^.:_PnzmFlD5z̬"-:7]l ]07i|MMgś SxL$@f]ۜGx,9j$+5#p+qӎuTW3 /͛5uΪ+V450?SD_VHܼ~XA.Ւs\P*?P zk\ B96h;ޟPi28}e)j σwIw=(!Ҋ &TZJ?8r(SކLۖ삌J @I$[|s 1VWf"z:Bട; ==nK q osHoڕQt%nޞ+`5H%];ó\FJo%8qd&*zUw~{WZML,_[gsknRdGvKΑ~lppxy҈'9ݒW?~(򗳯dn3nau9ޕ(BX9Pi KZYy)@:;zjر#ټu PκUw 3bȉg6f~KkSh?EAP@AQE+SIUÇւ܊G"+*Kd\Q⢘\v>g°^Uӭ@)/N̫N YIh:LRűf3EQIs( 2qC@3yU%oDq|]m5!Af}{6us{οڹP&*g灊+X\ [|kW^?t=f;@0Yw }!)CyN3U+&EHWž+iiN[?1Ԁd3 /Hol`$j,ؽpGRpdȬ޲sl|.}'ϸہ!Kɯ.ܚ!L9K^_ Y?o>$#7Ϟ6oٵT_6:s~XjjZ` @P$IuV4'ì{]E(Bi ,AÆ ko˱e6WPx*STN^*û:1;6i+j`\()9)))))>f ( H %aNS OwBT6':QR@WmRTT%v=Y.LFBD6Lj0i6uɾʢO;a%/5O~3{3{"s*sD L%M6 XpG+JKdTDNUʼnHY))JOsSC}&@E{ݾq[o Y qe<LQPiVQUe)^\tﯛTqj G!z%Rzӱ[L0k0 R.k(pXL9{Z UDN!7J!TK 0I*rߊ"LUV ڷ_2V]tڹiA_ٌm'lJ%eEɾ7fv5cmGH"JV TUOSK%)Yʖ&uX{.ܻxܯ.Tl4UT!a*?w02KZ^DM"-UӇ" eemۛDH)/[f,@L]KCI_Wd(~.M3] P;nՁ:[P2>}hsDTtb̈Xy&b `L*(*/>FGɎ.*o2A 3ee%@G*8d cf8 IDAT| f yGYj(fɲu۪sg#a?lL͋Q(`ǹ/7ϊ̬uCN؍6[uP^)u i'͆ZUk5R,HQҰj[aMQ@Qd0X2_'YIhTgJT+j7) 5*Jjj3?ǚ<ڀ,YYQ>k/ 2yg7kFӦMK|8n O͛W2^֤mW~y"?iGHQwRO݅d6ט;# Cq2E!ŗ@["QEv@,$5BD5ouBH(m%ZGv9 (Hg7I.TAF*zF}?<揷4 A%kH i3d,7je7o{vI5Iit?ÝW&N($G!6:~P Zm;MmF_ַRqsflot͸f':uhrq4_OؒN?~?o>x;U";xݞϪ&ZV[,M+vw/Y |./zmW mME *aNRlAeh_FGE\upגbmGZ?ؖQwUz}usW@n*">duc+T~֖2BHD>!(Ciˉ5wF~пxm 4/m 41%VH?%~;zì|Qd%qsd1ԣ~IG]cȕ ?o9ZVX Egצ*-*!U׮8q]j{ȕ$-]Y^Րة]B*%hgkٮRuQgo*?ɢCM_}A-E lr@);J 053STD)K * T~ K!jz ;(k!5QBfP"& Pd ̡@c6+KH ZՆ( jЦ&!^G}%#N#^[NRcbJYn.B";>UZ}m77>2T۲ 'Jl\{ƖVܩ&fԡFu~ʽ'2 tZJM.TN]/u,[T0$%Go2zƄ-"AȡVauLrD zNJa::3gI@ĩ Uޓeaشj\_v@%=}9)z^PD{OGwK{]6 pxb ];+3r➽HatqȊy$FV5pji̕Uz[dˇC K# -/HzSoWݠ(u%~x-WW'M!=$JڸRPQrJN)'2Qu#6[ֹ{eEĽܚ{ lu 0+ZCXSe(G$K WIP`Ì$Nr^UԽGL k ۙIc-\ T℘Bs fK|4= %K@ée:FZnuPÃEt+46[2\T"ccomv2fA!BCCCCtP IqPն( %G׮S,?A6OM2 g ű끆vPihhhhhhhhhhhhhh@߽@CCCCCjujmgdlld$Eey:D^)|-svq7&}Af2K8cXd7fHvY*N]U+%$C5-۴4'+ k_Jl,ҒROmAU7b 1PH% 1[R y} ( \5\LmDE@C J_P4vy z@" b7PzMIQ@DM*?j }+'G; mvIH5ގ,)5yUď T ]4PXTlB)E @t[8 ¹FVzB'zԔW~/OǶ4@ Ϲ ?iTBvpœw0EسoK3dۺz&yo|MQRG8jGPP¥ZTXV֭\m gd **.hlqT ,͌5BI{+9v0Ϳ{"f-ZRc ?+GOWK67s5ju, h+w;KF:,7[<**}PɃIu JS-xt3"Ӥ~oTRc2,~rEv*{i~.O`=`;jm+Ok[RLe^LT3kl䤤+Ɍ0]s4] U\jebZ&aN#FQO ak&"OǭۣZ-P=g)%k:`mcZ-Q-T5#+k~x]ug.W!7j;|tHrBQ|sibcvV{Hd >ܾ_lf;_RnlJFn'Oo▔I|6gm=KnU|<{"!?H86sd୲ׁ=v%\L3 ֓C/ܲc@S8O<00L@*J20:+kP ): r -v 8w7x0?N;݂si%-𖜿Օ'Rm=rp5Wt ܸմC,Xh*x^ղ3UΊxMgҮ zDzU4Cs~CUXړfk99::K=t֜N&\)|FHPӬn<6ީzE˖rb2K~ ~^Fxߩ3{9JC;_Dy1_] @QJȢVPN݄V(;CeZ_Y^Q2y~yx5yM'/>*_Dhԥ}Ke"ͳ7"@-4Qy囇$PЕk;(QRc߽eif:+N9у C_8@e'_>Kڅ@+zSސ+*Q x<fQVȶ*IRip1(jWq1}yjV ,9RB*8/!j E4pܑa (HQ:r2fpѲUݿۙ8t+_) }!Zqi='}_U]VCqiu?~pNky؜ʜFSc'H^Q`jq9fKY$Cw#[]-&q>d e9iV EQQUJ!U1&CV\5CMXY#=}T.B zGIr"M7~eTq&D(TTrTQX%U((\Z2v1<4uuۥ.C,jz]$Zĕ߉ep1{ UQi=iML ((:ghn'l1mt< Iryn^"o@ߋS+52y8o_oDvzV4mŚ32;7˚ @KtFwaυ-jLn:fʍT vI]$ak3kTj/b|sx2MW[]i4ԡy lmgMUx\>?;ҘUs7%&Vߜ  mQn\@)en'UHJԽ(09ZO6<~^Wˈ|ɨecE12RBgs۵,zPN@ehrkEJ'"34Wgⶎc܊LMG_8b'\Vuv5EQN·ry^Nvj-yC<wRPjvkj>M Q=7c*m +%&KnZl#& U1Kok3\&_ ўExo] J|3~Qn]>o؉k E <ޝbCE_)mE~a5>j3=vs[g0fMqcAJ.*Up.Ҍ)?4ߡOk+]\_5!9jA{ "Ҁ/]\vs{|AȦí)~7wBh2 &/_N8tA$"s&6IkyNޭ5eё?#fNܷ}2fgS# Iޛ|CN{2)T$TjUs?1Xɩ0(1QB\ZPP0VU -M/  S44eUQ-zɳ׉5ٍO6ߞReF~Vl>aGI)U }9u}G3~VUFVHv3b9Y*B#ѯ,t0U!kwPeu| )BL k~HAS@( =΃sg+>qv Py5X-u~H5U0>PQH\ DIV|mia)9ٴKU [5e2DkGX(ǑMZ ғe*mTmʷEb2ЂP1vz;vuZ{qr ̔ظnC >w}ޜ1(~ 3FShuڙav+<V32;'Q R2uCA>LtsqԳTFᬪRڊ封`+Պ`0yտ7b*O~_#6fW0вo]iDy ӭeɅL%(#^< QZ*m镆B2/D% 'bhtʯWlaTS(*Bdfn%[ K* mXŒ50GǢ2H6Ycԅu*b "m7-QnHBB~k@P:PTYwEso9C}Iky\wBIơ*_+ `(a("mT%(RUE>$W]UkL%]-qQQ0@1@0@qNalglb5 ZY]Ļ=jpq&'PUr,8+k멹tj* yMl5k'N&YdRNSA h YV;rKv<|xxtdp "󇝨SQ6P}?d IDAT*cCc:XuKۺdmQn冪QD6E"_.us,g圝 @>z#帹r,~/gHdFO7%wni=tuJuO"uj#xYCչU 4x|egX,U|[}}n_ZS/|%s>>oU|^YYlc5z*l3ҕ>7q Bfഒq e qP<̨4%n٤Ldb(22*jd>ٍkU/mar^ 9hyaF Gc\;> _]=.Jl~߾G7[l:_|5o+a)VxҾr|vN}k/=iBxqCl홡c}iZZ{\+{c>b2U]'(>I ku0L*{Ѽ,%3Qϙg=oFY;۫I~@%]{-[7-OM}IV]20 kL> Muqvc1fUuJv.mG3[I VP\ Yi7YUu;lZ^85 8gϚ}Ɏ^o#N#{zKEl9| ^Wyodl%Ve,ɼ^¤A ;eәᩳ$3wUٷ]~j~Zb!klՕvAvt|x#^L\iO:ջDuv -QP}?OYKn FּE xL Ü<21`2RQ .Pyq7 Q1`#> ^WAT*P G5A8ђ;aͭ (`;gH~ KqC]7fҢG ذ{6 <`sy{d[2@|l[v,k? ZuXp\]r㖝>gHp>(\ۺץj6̈xZM>Mn5)qj4 Ikc˗ ]R/ hƽ;s>z+k'Bpqt`}WSG缮rkB W,-_q{B!Oٶlin^({mBAݬ&bّCYז,yi˱Ua ާUۢ}nyM$A!diW69Y7k\@wrv1Y f9#b[P=SAaUryµ'oGV MsW6Կ'~_K Zgu^lUO7m/aPEQ =5=64Zۦ^MW, Wۢ"܋Bm&k$=lՉgޜp/A i:FnݺBڡi* |T=sٝnf ҨUGC#B:O{4_G‚oNj,5b|лw.4Wc\n&W[^mµ~ ]fX^okP5*Ep|].kp=)=ڍKtZw;zjMZo?L_<",444444$8$|trȮ,Z\ rַe%Ns Gvf5wNEs\~~mI^V@PHhhhh&^>S UPd6 ׂ:(~nm.'tOeC"Žp;x^ٟ44?AUZpMys_z)r:Ni ߨY;504_.:'=p ~ׅjlwre (CYhURiF, tg<8h",DDoFW {L!o[c#F P (TPTqU-mJc [V&A QOtoҵ^JpX̐ P(` lZV0)csՙeR@ ȕ Xy2gk7Np(1w",hqU1qezTÝf"I}Yx6'ħ޻y;WW#L{>;*4 Ԅ(@!Aɟ{ seW"\蠋w>8nC&u$L~w#v@@& "x:0<kDi+ !Qyq{. Yj`1(i賁B E/?gS(vq 2( }t-7 ݽ"N]>uK Ѷpܐq vWm-Y8q#qKN3?xzSf7g @QFEJ^M<`؄*rqveiUfP:x sJ7L;*?gfnpA$A;׎X;Pvͼ\@.r瞙y<99Š1NbS[.DAusMCu28o2Vaܬ.>%<\?˸˗8xUL*nQ,O4ogP7I ]=c$P5|:1b[;gմ-kwR^\2hwMKqZn4=Ҳo l[EL%]:23Ayc F1c硽8*5e%C|x}_&ÄJe dn,sj"`c'6Vejݡbϡb^T\)dz Ȭ`;٦z<(kz\8yռ [amzc&ylBTlٮN&="2W]F8*;o]FbRTTڹlmF gN;vRci"v\y0L[-ɵw2R/q[/.H|HR+cFBيPrݾ ԥK.ͮRdo@ht0B5CNaE eQ%tZ-Y^'"/zS6uXd%' ႻG:5XM ~TSYt@أjZ__007Gft>EsPR\{T呲<0<'|ce< Fn {'CW (ڵ 7NȐzsȼY=Vyfݧ۟yu #Ju`:YJ%ۂOJe@f`Tc!H9hɡ<'>g%!P*~4F_smn74$W)zTh4ڝ8?Xv^-rcޡ'i?k1o=zX|+FZu#U(|EXYaޑS|&rd7 |J*2ZЩQY}`@0li^(R\!pWe PQ~*H)ϥǻhh§L" .7l\N-SOŤm}HMksjv||v|9S֒/U幏eۂSO=v1jeLX[-Jz6(KZcG*j8eTj#w=u= 19Omvs3n̯X eڹݗbfUN~Mk$n<Αt=ߠ]9|#ƮA[nEe*adphm 2?X!eo%⺃x4lc]5K&0;wSC/z~`[J"}@NJ)b"xPS1alD"pCqR`yG/ܽ@ewb@i9O=pV%,]:O?I՛k '6!~hQP I2n x-L=Հ]nlD4h֎EG4A!#QK{,mO<2,h,`S˞Ċ׮dW>/,]}}Ȥ >" llj9@}Xx;C'uf~U =[I+NOMUӫP.iBrl*SmVm½XN.6aavUidYJ8E(& 8ɠk%6͚;Lz8*zLhf]9p?6g l#?uLxF>gO:hknc{(p6yłm mٟ@ XpkR>?zƮLͿq(bҙÞ>Sf:lR wݼ~u+~{}~҄!k2ϮdKzc|S{voHeEwJb"tN 5vH#Z-_;.P\u \<+K{PТwP3E{nj(/N5?/n%ztrdݻp12bO6ݣ^>2n|%-Toxئ1%_6֡&-4$%iO5S$.$0$XzRf ADVR X GH Y %~EE0ޑ8i*H%R:,A)" TQ]NAudj4VG"/gҝP-կsUx|K>-<{,|#ܾBM]Eo(~< cYp$[N17oeic2̵rgo/JK[uu?=pXv_ׁԫg]Jkv\*Oak"RcպmP/繷 jO1g1vKO}S z=D]-4u>mI TܻئY=#zԞV$>J+#ɝBRރM_4qi^ۧif uI!KVk̋6=3㥅+N(RW Zxs/|SZ-y~wc4:ŷ%#cůs52t=iH˰lp^B v n<+ڌkB^Zj,^5"3#ĩ#QNܻĿ׀F֚5+F_vO{ߞ =:5ވ}áhc_~ՃōabچJgmHww^9C~I:hxxxV3ӹCCCCCCCCCCS[ٷi?N߾}/^\W;4444444444ek}* f͢s2JCCCCCCCCC Q[9<S!S+ihWU)U :hh IDATihhhhhhhhhhhhh? ! hh~8APB8.3W 'F"}=%pk[# z ;# ]¡^UCA }_ʟD bJWCkJTro(Kcd"Ǿi5ʦX 0Ҿ:Wi,kv6u~}S}xoi }()f]pf\VK{wEUQui5^\+8/id,׃WݹwM2$;oZkPFlվ -id -ނk`Kt5F+Vˎ5/[_asJ+Y9ftޯk[" ߁ R݋{p",70A!K͚xH'"PpKqb31} aj8 *.ϩyux4TQ<}Wb]1ώ @ )qaI݃vee'FSe`:}@mDIa+紳̔0Dޯyӗ7茰c?ݩihWmlM뗞x&SIEbڏ0}(kFnvz'\pԊM-uJaa=L3vmRf< |YUa\e2M785NiV,O~3gf#v6\B5-|sVȽ:Úce<7Ch>M+}{y*ʖ ֎WK:!Opʄhʑ+W;.أ׉13,{v̎(0"͇/m̈,"6$/Qbʖq~Ou&2G\[;rOT{`^xMށHA08OD,h8`ˑU$&\2kqՆ&X抖h<-JT@@T4telbپf~էVF.>~ށV8vݚ; V/܌JzǬ@ g4b廃g . P$e[ 2 , d "*"XH$_&_Ed_ !p[ |u&'8L&O((ù|H$qsڭk9~:nPGI-K8gױIG<ŀMK~Uiѹ#/Sql95C*9hN|.CWpݛSLH~< W$qYLP /3 P$9>) ~qE<&Jj@( *; DB!E; B)gW}nmu t4i~.}{ %zoѪLp6h1ǔN\K 5SAԶ}zN.IEЄoOyyMBANMx%C{wqk'cbKRܾq&%6;NZq?wywljnq{ԋ"vq:)z/M \^~;wn>26SVm"-l9Y_ 6L;Su^f2y:Euna ;;ߘ&ɞ|VN:n.wG FOٱVRf_;ز쉵!$^8ӢLa}ol-+maSm(Rȯ ͩZI@ kpy2mGΰ}Bر놑A <(y*.ӯSMiա5(1THwE.bvpF' VW螚wA<032u&Vܚy4r?6IRΧA\ sމ1T`Ɂ!:Rz6Xm pgg]N=L {p 6kQוr7f'dsIBDK1 Dba!Gas(RkF|߲R42z}:~ǩ*~(V1 qG/]i-7, 崜j^q+M ETveNYvD,GT%WΫ" 5&0zRg$Y6INoS8)TM'zT۶;#F)=zq×.NxXcȔM+Iq4J~|&}N];Cz{̰\6x[E2i=nwߠtp@]sj1u!$ٚ~ ~՜(N|VۼݜQmp4cr?z͉lGnW|ڃ~/^8c"F T7 K/y1g\hO,?yҋy{bwe\Fe7; ּ mUs=7ʳ"O(7i5wJz':/ ݦaauPyʬ^]mj섉%#/t8p3xkϑٸ1Ӎf-X?c=vg(5xr(x_l+1L^ݍ]DQdʍ#KB;qÕÞ|:rmw|O~RByuᎯY @⼛>TwL[TП iQ+}f 0\rTbY2K-+mpXopkNԖ@eӤYw|Fn+OFS5Y*;/uYȥ =;s)%e+*S7tQnwĸGi~Ac #sFq1t@Wm=?jZ6r<G_*͞rţA'͝% Ei[,i1IZ]I^Ai?gK.FxoI/rژݻiQ+~R;U5Uψ K_ g;~m` ^ow%molPJUAj,mfңU>wG)p_+"A n!7A0LLhFv i6ц}N;8n{&.ʔUӄ p=3vPj]\I/ω[tE?EN/28X6u]fط1XPew"<\8=̄s"].$ ɣ=G2?j["ȼ#;’ՀU᭠+nW1 WgŢB?s,5GLW:J.Se^/ܜrF NK+3sO{VMn0o֨ѣwyάnɒ97͎ȮrJc[s,۬7־S^25&kh#TOP3xN}J GW^20(.`x#k;M cf,J&#VyoUl됕MO_xx}:? DʽB7'RzЭ瀁,U3`N<̢ Xn:ʊV~ Zl45(OhrM|IX%\t'V>"eS7\ߛw1*4d-Ծ1jՖ)fO G-kOx$*:IW"ddfmA/!S戽He񌚹;nCp#14ZOk4I8F@Z@5Ü:BʅS1`6"R> qŠ-=&c#ֲ(sO[֛5e]mklE+b$iں_śWV۱i{¥a‰ j×\:7dק<yiBxonOxJ (aa;/v0`?-Z*H6f)ݓm=@0XbvS1uv t:h@i!jvD8 3 I91ӮgTcLSia8Cy!=\Y}zz-s6ڸ0}.RACN%wF> ޼yead=lw/JV1Yh͒uyęjMևW><'Chay`ơ} _Cqm/f^ /ӊMVdn u~oPEjʱI߭S}I y#J?ӥ(U?r0} z5:JԠY\(`X!Cʨc=u~kZ,emcï>ZmҴO5~^=C[յ1oF)/qh~i)0ʔ {\mU]Һ.<;Ұ1@bdL7$lSd ;nrxt>Vʿ4r跉Zr [K+y|8ڹbKDʓ#;(gN ^..Tضυ:^@,.)R5: cx,iT2Ro`JPds,(RT(OLä( ))Эoh1 ԩ2Q"8Ij`!ґZUu?T:G tS0Wy(m0`RV[R ?cF8C"BXƕ HdeE`s9,42"Reqkq B] P+XFU, %(JF" #H~rBL j\ʪ(HJ*SV2.p-dm\Kp|&wJD-80EepL r(b,'URq|*DKR@Je"7!_x irJW8 J+ʴ?X0a+gTj@i2@(Rr|_SZrBgK;icd l.%+klM@8pHB.j|&F\HT!k~)br&(erU2<.(SJ%Z 0$e2}N!jH64 RO(H$``Ҫ BaL!VK+yZm1|LZ%gзoŋ:4444444?heSy5.BCOq)bۆ=n44?tbvF{5wJCl6#-w~4y8ݖDg MQ *F MMvPihhhhhhhhhhhhhFBplC D"K}+ ^/`|Whdm۶j/R&ĦJ*m ~Fx; U :isBvqzH d(99\12RkMcQTaeb 13OdžŒ̴IJO }ܪ.\ Xw>T$IՉ1C3VUuƓOZM&N۽U#:cJu[hQȑC{tjnɊ{I ;7_#8L;9DE&jZ5k%`F,3?y2^ˠk;M"D&)K#+Iֲo#mӦu@2#:)GLCIwiZ'˼u R{2?``իWמ4 "57uN_.m3hҸ-rIiyչ7S'ohnjz_zxY6$|ɯ:.?CmڴԶNd )ѲC׳a|Op-ԶenlyM?9=[˺^e+kVBwШ)1)?T=lߙ'Cas_߀}Ri{xxxVbf~OaWӑsV؂+ώojXYJg9to/90Е.݉-sU#^d7q n5myM!Ĝ`tCHh\/"1f`. g̣bUCM<՝Dyt> IDATp7 2_Ǒ7q`dfK>;u0͝m1Ը=(V&#08ci@D&Ni¾~!8uݬv z׷#Ԭ}>xxSf~ɫU\|>bv+KшG?Iջ3L{j5+km|ݢ.H9wϕ'vmg6mO}pEÀ!j<@n>o1Ɔ,I G/ S.b5nޣGߋWzBv_5Oeꮢd~F506YpM]j|AGo?v3EU<~ͭVV؏zzD⺉M{9+6 ۽hlDߖzՃ{v+Z9m٣6n baw%S}9_k #DȥG9StƒN8 ~BzrSļ#{<8U Ƭ<1g;tp@͙,*}-jE>CBM80n޾7^_uwmߴ[(k!Ou+B}C-{)ne'dtl ݼCQiw hhʆNF~BCX■{o9m `QMHiM/˒:JRr:;+WkrS0 Xwm?& Wwmw<(to>ȞBHTێmzI4U`ήd 9{|tZ/J荙C4 G# -l6YF0kh ܔCT=t@GVe̒ w\@LPemyoʹ_"y7t#K.,B]+ c˫74e__IdzΚ6M_Px8 R X7|B#bs$&WTE5&X3[fWvRedeK6fhv3/O#h6a]/>z_cw/qm[3R_$5:ֳ[-MG@mpލZy4 wݶ=ۧ:&<\Qq{Z6&.c`S ^Ƨj\l齏wS1 4^ƘN LJ--鋛 %$cF+T8tɶ?] }6\7ϓM 3Y; yL5ϗƩf5;BoK 6nM 8@%KB1'A^G5}@kMVNp;yBjeY<eelP*Ӳr}Gh^))1c$J I?9ǡmKG;4&fgW^#XbfwDRJ(*;GpElPQ[YtaT]]zvqfO ΄z6QCl^.>e NJr)i )P;ǩۋtRTo(ƿ-a0Z9 1R w[woN\p~mFvu9VhIe  ŗED(̹5ڑ;w]?jQ%ׂ ٵa qZt^(>Iʫ:HɋM*fHEe@*W(U'v6$@'UllđY -0$ɗtZQ*ŷ`+>ėlFQ\g3ۑYH̫x׾ņǏڿw6+m+\U6r(c]_~^ė*TE9,Eh_+I>wXA w\ה]]kjB2erLRKi4` _ק۔G)% &cJR_$W(%)7_FvƼ 7Xph4)'+%3YElGML:f@Ԥ<*6u"OE9wk;+ h5*(q[+w}s5νaaaaak'&1ñ%Hỗ!df)f Ygi4llҎK^}0fc$`H%U.amwLt;ۗ#}b500Վ1ksׯʿIaX`{a{wdS렖4Dn#F4'nX?i[b1(tJpoʔ8⊁PJB R !YԯQ&]:;MR`ÂnOx.\N1йCcNyQdVۀ_7T&fB#kqҡfTB#@i)`5 u)*Z|_$c7Ʀe7aCB߃W U\i-kfH1c 33U͂>}#g?LL7ewt E@R.@0iw+|x~(ߋPF=ޣɋ'cbC/v ]nNeh ҋP+k#Y,VR7voYY{g[ϩ_augP=DO-OU) 8u:qmP"TtZ+apQTyQwǍN Q~5tt! a0Ev.^F6OxGZ-a`nbgxstJRgib``*u~Rr\j DB.@~՜VNf֞TP0+uхtQWh@'765LyH:m>c9wj @|bv1JCL` \̥f䢆p%7@>cq綘cGܽRS?tN{Npeiek2jPj-0 @ 9<q&ܐ4dj1|޾m3 u3j#>Bz{AG3r})s(oL?a[Ǻj ] \vQ)* l ,lܭa:}&ɻu,'?Œmlqmd.(M:m)/WUȸ]k7`sO)/Nm;йVx4c29 r*stwrԱ6yأz:[[87<-:$7/3n3c1UE!c1U%'?w2CffZ5x<,zusOc jڢwGQ_~vq3׵uoܿ,yyR}k[[73tFU{pO[}>4zldөy#Wg]5?y(bF>.l\C>(gksʡ ˶ު0`fdoc\~Ӯ]7j!S=+kk{v-vo}-l:Oꅛ5nPd$䑸RU"k;h'h P(KB-4us0WiA+ssG7߾}]a`rGX 蔯/m-X8~JɋoZz ?4*UݧV-]qL0䰽W70uB5f|;}+.>ep>cg$sg7D  ;zG#z٨:돾:nR-z~^XtY=e汅^v,Fb8^g d4u?8bi<'sظ5,z ut멛/-H,%"tѺk'_Np^t﹃evv \ֺ[~{9p2ٶȾ['8' wQЪZGW'5/'Ȭ 5Ґ_޸ "_Zogw:j7E_W:"53?BN71MVN#Wy+ӥ)g%S@pufoTQP16::1bIuqrq E/9pyDy yxd_- mXg--?xn0w;T+\w+Я5Gg[x~/Ms|.6s;.6$_9݅ دSκw| @{.oy0˵!fgqQA=PAqppptt_75ũY6G shpNĿpZ!ws ^NE)z LÝUN$ZB ĿZWTK=ᗑ4*@!Ow?U@ 0TPA ?ZR@ @ "@ Tk:FE  Ǐ~X3q㾹TQ!(@E l'\N 2X}dddGU*6v6b k컇췋ɶq{LqR׊{ju=zan󭫶avŽ9,Q_oa cݳmf>~>֌Tqn)ўǭvFܚڎ[w{`mm0׷0w=j"8pn^7-1!|gvۯ ={T|cxIڴƁƯͨ}鎙c&L g(YE@!*D &0k]3}+;r CD#Xz޾q1YC!Q¨ g=fs[1Pȋߑmj\0U,  g)F_qd^?*Ə?nܜϼêN/HLQj2s7"_(y}zT h)֫gL^?צ3Z7y<'٬ך'wdzoug88ºYݡ :6{3EB54kAzi\NM5xQ&͑-^݁נ[cG]6y¼]ߤ7ρ1hc#Yǯ3(۹;O^xڭ{omL=Gw 0ӮyjuzctS*q0n dSj2[ ]FvKOQ\B!oY7R^j=Ye~[{1 ;v8A^LX=<·:jY IDAT"5mZ<=iRJ+\l+(s-0:?:JLTsҸE#BYh7a؇Qc7xToebdɽp⻣;/;~1K)4U_]3kiPu) ;nYRk6ݷqۊ18'Y_iyh3gY.]aY3RoqtZSgK|E.9rnܱV\@R N^+.2Z:XNVwL)*č[Uf:ym pw-ir|mymٟn#KEBFϊjh}+n<͍6_76]jФa;4ǚٙdc͊sNqA1YkN7;+;tÄ VN,0w^|P*P%U(7EPRB^iv$)bhYpHi,XN(4A\M;Rm6\{Uo-88%p R8Cɭ2g7yZR[k5g9ji)}}bҹ˷woa yLM (r$pӰGPITb2a))`C2nǗrmp,Ab 05^%ȕyDO?H(B",(6cUc2?j%U˳K*LB/DE@ J AVd9ׂGt)d:%lj (&͟Y@<]J"WLԸ-nCYi+ ^)IBob۽ɤz7nY>q Ar&.8M:p]q?ppp]$Wvㆭ4|5 !;57MfGZ9uϨ,lnd zSY"qYTKN.XZHEC+i#?F!ϓLP Njl$tիId4ۀQ6f?$jP@e@s !*d̸q_z(F-,p0G m +(BЪ川0 p6'ʉ;x0`=,O|N+!czw2X$АG50&Kx[aPAe ^!LX@|̨-V =0 `HHwN٘"BӰ.CW|ZifSn݋ *Y wҘ~+ԺVMǬs=7mYE./>?5Fhrniݙiă=Iۑsb4maH5v374 Lj 1SkĥAE-6鮍O+7l L…м Rv]=yhˉ<ߗ\&}{.l?~~ NU.Ert) S >hߤyGVwoRcO٭{=ٵx*YGv>3rxnsg=|jWS3`,0O[}*yo3}oJfxƶܷtR+n-ywɥw߶!fy4Ń7%7;O~di9ifG4&/Jw_}+e1ח уnw]r 1`Spp$O]<|CybZHc/.C_@ ~8)f  r(NfEUf2eoPB DH˿ΊA^)X +,(Mb @*'~JK\Bt[#=%4Q5M}TTSc,WWRRz\UEUۤYSbR*OJ9mȏ%JL}*@Uu5iHOEEGn`V>^ݡJ&]/)&}_<:jZ"t*Dm_Meiće?_R:f-\]\En̦(-<"Y72kdHj9kծ QRyf`kTEg$dWբ{w](JIǰ9]p} ٪BY?@kʲ0+S\V-K!+{'_@"ߡݟh37hZ(]͆sH~+\5- PsI-n+zȫsf4#qV gkhB_sZQ5x<ƀZ2K픲l|kZlZۓ;eK6eEWo«aLttMS| {FRܼ9V_7GðKqkW O)Id@7X7F ZAE qYFvGpX d5A \K_\SVe/kuF ~$:pbwElF]_ߖK=ǫפﺇ50|X{1Lp|aNLҞ%7V|,)~s4'խm;pZ]7FB Uoe]|ݓOu|[GC}VW,>tQbuUEr1gko]tX%ύ#G֢"K{g kof:[2~]yUic',;si(59nlnj:=wkVXYѣGYmk~Z>77lR[j*3n?Ak^ӫ;,wrb+^t8&sFߞ?(^ `Wf@ Nowq, pv =jA }<쵱s/.ERgٓ&3lM4>ټcQc5n۹ѣPѵڶQ5t iUҮ{ X8`=ޭϰ>m[v=RMZ3_fȷA4LkAE hZZdG2xcW ʼn [`jPUԌ0xFň4ǪAAZ 2w92&1+”V+ʔmI/ '(kn旪[5M|!ƣzW`F"C|/?ԮCvF5ZXJ"@gn\m;zΜvg:A,At֦y@u>}M{2ӹG׺o>#w6#Ca;is4'-]5Sћ][K}ŒM'|}xm'] Y5;ǁrzo#⃀!C@ 0Yd#>#d"֡? Aa`U XPXKL~NRnȗ /5(WC?.s9%.ʁcp>K{RF;&i4{i) ~f-gW_S)4PsʢM]FI4Zv̓HCMx[;m9 Y>c;,򅷞 ?|SCj}1آ\DMVyi|nE"E=am=9_u\ӄ53} Ur=NXWdeOʪΛ51LU ޒ( x.YZxzdB[yåGn܆=ۙf|Qߡhƨu/Sn,\wjt%}/{|ݟOx w-!ߥsBh7w\g#[ݿVx0E$ݲ#22N]t9̘b 9T 0 (NJk/A{2UÔ:$ PzqJ-Q@V\P)[pZ >iL,Zg[_|PʔF`(޼yyDc.CIFԌO\к8?]߿|A-ܵQ֩)PӔ/b6~·,PP ɢl[ij&ѫKK߿ތZaxҿ,/'N(0β7%$I`$P%WKΫOMt*ǻc|7b9Dr`$Ѧ9+)'@B lʺ.xw5c>bb}5ѬgJN|V3\ '}h(4BJ94_}l̢:58zj Wk;r)('1츪 HZhػ$QJRĬ7y /XrFNEXXG+0vw%x,`0y{zt!e`$ p "09VۊK.oFs謡Y8`2%R,!EQ .+hm(@E T?Qr aUOSΤd03_g*I U`Le5$g``Wʘ̺vLܵwѴ͞5ߠ0oMƜʽrv#\ilBLjJMzi:T$Xwv&L up֒s ^o?ۊS]3eBoؔ΋N(Ze镅˶2LPΥqHuߏ%_Ӊ4~3<ᩐ8"F瑕폥ɔJ#fx5 EVDZ/);a( y6ڂҼ$6m(P+LN3lɏօE p0U5 fӞ p&2.tP„ӭFm 9%J ÿdSEh‡'uoU!w#0#'NZdm^ TExy簗J$߰bK_cB stmG ͒_\끧N$&pyЕ'lE.߻cYSNnax_c+TF3%1Nn8{sɸ+wI?;ʭr)uk:;_5;p,w_̬Fwtr繁 J_~Ph Y7ocV O*5s閹R,flQWR>|:E-s IiɛJ v_Ex|KTj6$Yuo?xIWwxy?ױ7cr̳?f M|z #[ >UtkN9 3@>J#oǝ Wbly Fyښ^5oجeϾz\ZEvīZ%sNw٘ݭ 4=ZiϢ#uEcfm[}~qT %ןXXВ%d}ľ%}V%0䪰IAM[aؕo7nD^8~-tg~ܾ9 pU xjlU. H,@k;8+!IG 3 kI͍8;4UY!M;dBwѕGNXOh/@ wI0Ċf6!@mg 8%,(@E @~hTZy—8!AcAS|@ Q)@ h@ @  @ ?nn̒O ם !RTiOe>e*ûL!zl&ma5H@DdM0$V#L^Bv_G[ne݃^f]Qfn?w&sVN7zlW>3lXoz{z/.4Uz\ڰfAv Kqqsnהix{5 m;{Zc:o&o/(I,Y=gx;;RP-???I]ö__֙vc{[TZ.LMi=a2$?Nvg/pWPkԫkCv3(;/9լsw^ ytٷ+[xϵ֚V1Oxکt;AM иWT F@NCX)i$}F?pjVo f֯U56E5 Y͆98yw<.5F)9l}9T\-4ۚmMiZo=|=wsJumd@>7?VsNI)+j֚ȶӖa=\Vw@@¼Y'H%%Ө 3c:^CnZ6g.5޵o]밿:'P0Ar#/3tQv;Wg9zsE?͜sö.]"keơvAo7so _ +N0=(m\ ۼPysjuՈY}uw-;vte'$^]Ѝ04<6S;Y(aO<7/96G/y}tyΕqOx^!mӆA_oR>cMZl43Y@ <Tۅ & BG?R@'V(#kT;BfQĵT҂g zU}BaK]SJ~np']ғ$0ΈS_Mm SsmGZ9k_^nE8{c׀(q5;~?TcX9%X~ղmv҈B6Q>0ې]3Iܓ#'p_eLIfRdTtttt!R5D)Cf=yV4:•#J:IUn>)}#ɯI1=y{%$9.0ϯvʊ>1W`DO9[qƥ.AFnpt&)〘\LkthښOjUY|fYk1y nAZ30ktPPKxM?7V=n+gx^Ӡ6 8K ~zmZ'؎X792aWpCkB5b {YИ:;l  yc^ ?AE uYq0$yLn$ab|V&t1U.Lh`*\#Wbfa\ǓGKˡME _U#VSAMj(0+ әꭇ5c[=v_k1@ٽm{eͲ u3^nP5lZybAXk,[iEN1bS;.Ȣge7 ԺV)[,´;P[w,6qS9D8Wcc8f8O;#`0&'f4Mt!{ZW)@]VN ]eFAJlas̳$3} M8ۢU)oZ OZ3r}KsLϔO2xGIŝ -Ɏ/MG?xeʣ;@T͚&3Ռ>WS95a&毝nJ)`亡gLjpKď T{ y})WSS ^KS`/Y8^ٴrWȕVoR9cڠǰ.F80 36cQ]ݍ.}?Jc11d.V,+d%>obKM:xպMySeo%o4b=(#?E4XZFIr;c0ہCIy}{MKIF@8}\DPS[r&S\-vh0%3;6a3sy̤|Ǎ{펀˥tQZ"UټJ+!u<8{=6lH=|ȎF<YYcN<*#ZqNxNe Ob|?rN_rN˦Vo4)9xmNAӎiVᒔTڡ{RR9UmPqR22 v4nQlCeEѮyv-,~HʌӢiDZQ^ULXVCP_X"ErYLGvn9IRS@hVNVI"5};ŕ$xml*WA'm KHL|σԬ7n%63r$*,KH-ŕ"aQNҫB`%* h%Rx55IN$1$"wUG/JPˇVsIbfDR!9sGcZ ӺJM4}7N9oĪu]g6ș> 뮙-GnLhnLhHT3.(%B cƘ;} Lj5dazHP7$ apxŢ@:9iw͉i޿X($Y^rʥ2ki"UP 80l4" E5@/;"J?}/J?yqM6ww*CX/K ,MncA\Q|QRTt>>:6FmUc7ObKڷkm+5^u3%bz WLnBTҠ.RradPV \}KoF=pri kLkIkYv*FK>>f6+ͯ *d5-;3uȻw`ʡBp0L&jxeſ[2h?~4Ab0ythbo+˸oZ@YjS  VC.ZxeF1T.grןƧl( ǃhs PAxM1|ZRi[&T(04(p2`b`kHW^sLI*ˋ@df*B- ,ꦤ@VR,IJA)fJ )K`i>Q{57VD00tM9J|φ;Kc1 Jq`(~W~VIa6wR(%ҟ" fKyMyA%8>trhQ4h˞ÄNRS3ô4bP ID29ZںX~_kxOa;۲ ݄Hs$+Џ٘6]_ãM}ٺ-?玈*̢4"'ʡ(ڧe./+(iɨN΄Z2q .7hļh2[jBʲI^:FxQyyuYQO$]v>w6V\- PO9 (HeZv 1}ȸ[pڞ`闩 *fMU[cB @T`O o5+߿UVڦ*ѩO݈ -XrqmmR5l~LIB,]rjt.TJ}̲Qݗ?uca`HUғ^'~/^?8َR^=ϑ MtWĠ;?mh7_Ut„VFͻ w>J;n˥TI5m#QY^Pw[NIXe[K+t"&EIVL3swQNB\$:oHg){ϴݻB0cW6L~ԭ(.b9 K~ozZ׬Ey_EՈFQ,q#gN+WEtlɐvn(jmo:WQ/οMt؊w^Zoh#%@qNJ}T٩kϥ:$7۵d/{gW3{AQVLgw>[QQJAZrBT{~˙3ggg̙]6h=;v4*!G[(J8gu`]zf\N, "`0 guB Qmݳ4 l&޳z\0 k&?d!(̒@MMX!:@!Z9ce:,,ɝ%yX <{zzӫҾ =tjWO֮7}CB72ҠbE˻WBF R5k_ܾhM 3CkUFU#[:zTXRZ6«{^Im[_C +z;>|=cnjDH*5k\GTEV䍫Q;Tq\C/ߐ4Ц$kZsJۺ6r+O<.7)^:0rD%9{N.cɛ {޿zScFUiVߞaY `jРAia0 Sf0h~f_?:ja0Ij>n+ (07]v (Ox/`02ښ}b^E9Up\b01}\&h84  A`0 _o H! FU(T . ?y\XJҸ@0=x`02 (0,z*K`0 `08@`0 7`0   Q2b%i 4D$EQE_CDΏ*h\#" QEԾDz_ȽIJE˟R,c; ($,ԘuvDrJ"rvkϭeb?7߬Z" dw;3̫WXa _[ IDAT c2lbM α˂y#6e'(ԢހMհ)6dY[ةB{&^cV ֬L$ tFYZĶ7qP~ۚ_3cǥ(|\>1ھس\.o-%$Ȝ ?Yej/tn Zg z#o]n v6/ Pmwljc^9{L)9a %?6G\o:U-:=րVemϸL?oWp6/Oֶ3i d9Hu2/d20N'=6+=6H*s'dBW(r~Z[Ώ9C"@*3Rj'@& /__B&r)Tm$W dR0]R @E|Pf2cPb{3Y Հz"[슊}u"lKy")Rfo2@$ o# a/Ir*csW!BT*i ,YLܰk H$Ld&-xkwÚ֮{rɴN6>!C}:ɩRg^x5.m0i jԬPr@زjRt.tto͊(Qkn;nnrrltc֦K[φvxuE +>Ne]5{Brw#߾ *^x.mFňױn ԅ,Qqǩ"%~nwRu>&^3Hd?Y^^U~}_舃* ;mJg޽\s#R=VˬǞZ;8|{^s~,Mo$#5ٶ=P]&yn3/[ 1LHL[t/sd}}#"=;doVMz~]8M8mKUlcϾ2sgB>x[H:+pvs YD-C87O:1wmcs?6p}sòs]tO U_0~)~Sq2eJBͰŇYO$_}z5n_:s6R[1jd ̟{ꃑRS-5@ZOX 0u^իf榔}+F;mda% ۘ?v7#DN5|ȭKr;cc"R'}h2m@iЂdضlon4%2B402!SdӪ'a斨3~S2ssusyq6yNFvַM̚}MBIonsY96 ŝչ9ź/ػ[vk޲tU7EH-۴|79#F:I7s#8ap`J& ^a({DJ+SnTJ?_b>ui-񽌸B{sAD{/ZE4+2 >x=GWJXDWѮΩCE S[UMkO`nƯ[E@AVB ,bB;t;Y"?(r4_"2fD<,Rը*y9"ο;2ZM|m%tZ>1:4%7{oeƶ´K?'z7k?:)9q( Sɡ+utro%`^#f%*JiBP e]Y0JNffvJIKV[5Wwl+6J_>/+|[.YvsTOF1i6nԙ$ 1vpe#lCJ$8rDpCˈR8/j=f]xkۀxÖܼvvy ߆Ճ^ 2yQDb%V"@MO$4|^ 2q-W}?KYBy^ɧJZn IL>ǩ_:u˘6Lk+)p)?!gju]ʡ?6ٵ>RRޟ{L#X`ٛ9>o VU#εksZXprg*G{G SۙT%.ɮ@hU&&-QghJe_>uĴKY1^#Ǡ ե/IJ_|OjCl-[Yujg酫xo:PM =V"@$G E4ӤC15vT%5^\:r&Adenfl(AXƁjcoÜSy >hsȊUdMMMH EeYFsb< yfTODpd2`Hyo[1R{( 1(WToc2UEEq%] cAiԗ\ z:բgǏxQ(RZu*.-հoKIW2uRނcnGW\|z|-wXɩjˑ_eOh3bFj75f_x!mh ۸G/< c|/O7ws{vzdy#7}ZRRRRRRR#tJVL+gv1z? !<9iޟ;=4 |51{GN=zv=/_@qξجq><- p ST S=DgGD6<$%+2̛ȭ:Q(b77H A/3М9`t@֝d BkKˮjK;OUI{ڻV$l5?-߶2"SeQqzH-ڬ8,up_[u32G2hT D=kxD{S!ko~nU=*qHx_Wqh)ܿxY:^R\f*[būۇxLMwoܰ,c>]sYx!挻$'tY70t kؼrZW`9g͗[ӻuK9W_du*)6oRfjfnez~ȲY~&wTe~\l #+Xn6w781bFG/x-D\;=aRG "cCOBN>JwWM#6ݷ/5`efI }iY$+ꣂUhȏJ;Ig/!́FC"Mm!=TLm*`0%. hW0P9*9- V z}eOW|E2BgXXұ(X#JF_*"rE˨ڒO(qHu R@gihH#YpxJB_(AyBBDI$\NUB$kr|)XeBzJ&BhUvGHDʒH._D鳔zJ s lNVs,\2gMB>R(07"1"\X!AT"PHxي Թ|Gff[l Zt)8$ҩJv;E }1Aq|E,W):TNTVU(TyEԊl͗Aeb]^u*J0m \H$$<@pxb:El/$(XHV蘲qBujRs%? *rxc>dZVjt )HD(:: EbIyi<*3hc]=D6Oq 5* BXV/7"TWȵ_olCP$t A]`0c]E:[;|Ҽf5wk__ֽ0/`0 PIajJ#G YeY1_0 `0 Sj``0 `02P1 `0 T `Z_ "8Ro" wԑO&ઌ`ż>ab0.V 94'D|HS7a(>\>jٷ:e@fWsǖn˜';R84eUXVg3bή8_2uedȼ͏2J&q9Sr).bLTgHM֫bƥ[emj[IɄ{/dШˤ#Z6m\:PfѤicrqG$;G3ú26=OF]&4dBX}uWSjݹ`Y~`HkvT\ws{XoJ?aBMޱ20ZSI./8ׯMgfc̈ 􅝛oD´TM͑[[+v_ /㏛9;КJ=v2_=t٭GoH`Ȧ-;3gs;o`0_a݉GH,cCsi$vHT\T#LܑJ k-Pf%z??{vطCCCCC<0pdj5DuwSEI5QRo\,RΠNfj0ࡼo ~fvA_޽R*]*SעJ5_nЪC-{GJ^kߣ}4m]=8U]ލ[o߉KU/ z^{bZw~N`7zN:3mFz}=HJq]|,9ۉB DS+?O߲ڷ(UXa~.SG7I}x:c53*ۏt=(|dclKLRxF[ }2!N1 PiUA ?+8ˍ?rH)2ڡ"diEZ9i|xd%Gjt|r@ ծs::`ЎC\y eTB>W_?sj 9k]?Q.2!As6qDGqչ=}Ik#誖"֜2F,84qEWKZ/׍h~¾mیYuv^ya/ѨxJn-ٲm> 5fkKz4 8~3 ܲqaeVoݼrv&.kM,9weP]8|q%Y'hpvF 7^#vZ I[ː{8[a_wڨTTÕ+szQ+*ˏ۠ N{~^2^?z HVM+tmi_/#0Ml.> m^2 Epj˖ 'V4K@Y4pۦzz 9j4r mx k@9߹wˆ5 66n9”Mv^b0Q$bƐ9AdXT 6HK,TE Ӳ\b5Уd7թr'L3u$}ďNG2q[n-DWC~Ax:ђç.\1_=H9a(ૢ3Ѭy}n;bEQsr{>yơJ#`YDK^G6>:6muh gc@nԙ7Ow2jh:~'CjH]ٯw1cE+OwxB #|b{Hu\up985GO?5҈%-2mh|;6:Ь/@u;/:;+t[[q*F%}Z}~.q[;8'']Z5-͌$Х*d; 5U"ֆHDy8T#ȩz<17b L7O1Sf;W*3iFwL-7#<*e~Yeݍջ+ IDAT;G^2O"R[6Ǜ|vJUuJZDZ?Bl3^~,Q@'mTOuqn3Zȱwq@yCfmc-=MY a?2hY!!~O[3Yw)Q #Hn6J L$- 2feB8ijZ>hV͗Os;}4RcFS>N#y2ݯgnz 6k0XbC3K[&#@.)NX+ЩAh`ciaec#3MjyxŃ"nU Y@̍x*>]}Zկ S#ضŜ ^T zyՙЇ'LVy88|5?gww)eO|y{W^_ S/nꈋ+ɵK.u=S~TDtWn3yF/,}Ь!1v>xa]JCMt{=iCN~ĶD*9 6d?M ﴡ+ks kSCZS72quSO Qb"+\wrG*JhG)k4{mKq6,LER Z2ڝwt7nI5"XXHBIelk5*2>;vg:9h>UnI?;f~AGSR*ʿ7?޽.;Ա?g/?. n8 AW@w"֝=mYv!g>;'xPafڋq]. 5+L&F$1/=e&")@an)- !ZEbPrq\Q9{ڣwLv!<3y;ɹ5OWY=(}9j8ԫKv(V*p06ԿVѩ)Ie3ؕczDYJb4զT N()=6uxy.TQ9)=)Jn"!Rqe"-;w,ɔT~(Q@) ʋ >1,Z /DX#Aj#[YK5>82IEmN[ND2$3 !Fa?/`0<dƃֆtvLnH$v Bz*HcH kg-:I*y1"Ґ]MA[g?xȐ ׇJf Xe4ubC70U%gSVU]]}vZyq\y|HfhhAailgm kۯG^.ڌaM~KqWbd f}oWw5w[:D>y"T,Vڈcce҉{ȳNKH5lUt ~XhC)2?c8ڤ}'WK;Yć}HEԢXN> kUI-/X@j X" DQtQӖܝ4Ğ?V'ޅ#&tum3jb[?^o]#īH@7mBnV9;+Z}z9LP}<_.Q dmڻJoc4l\fh*0r-\r _(H!O{gtimaYk_<X S0`wiaUe<_6د@>D#L!L/L"B̝zl66hZTef2@|&YebFnC]u@|޶t=˱jYwkNHK YǑ$U_?:IYc-4n񶴸=׉}E{7 'ok;s85|S9cggθ.b ?z>www,E`0%Pٿ-[Cwl ÇfLzq0UgFe-ڵk@@@). )eK]C\ޝ$~0e_WQK|1 )n2)px)?> `Vͼt)T1nR'+0 `0 T `0 `p`0%?L-Nx]ܱ}Wla.@̯]18w_ثGFcV`'*5O^/d'NVW P1L&HZb%>j {Bc;}F%]D-aӆСKg"iӟݧ|*|6;VbJHڿt%M䧽oiQ2]^djXЈu!o`_О];o%fh zyN׭ۄ]6Է(^7ݹc}l>4}kZ-cf X|­vjOP_xĐ>*`TN;O_T ҊعK]e3-#4]5= W{J^= }]W, +)L{u_ձK|{Cs5HJ~`b0B=,@F'<`޽qJ3XJNg QR1oXT}$6`ukWkcoLv`!O#Ӳ 4HҲuMdHC͕k%nr<[qv-]81s" 9!ߝUo8+,bv:?Ꙭ/exY_Д 2Qe#wKPgdjI5jV1\] 2d@-߽Б mZC/@]xӧ kQTkʷ۴Б#O?gKT9}h1v;txo#m{7iڰ9ؼ1|yLdfǑ{ٹ7s\{9r%|yGBLZ='Ԧ{FԔu[y@Y+NwF}'Oj*?uȱXZ} ܲk ^ELs,ƭsUiBk9~bךR VϲҬ;^Y7 -_9__p蝍r$. W8pET o\^6e @_DKY'YDn iǧinU&Ɗ [+I3#f_⊯ #̝U&tv ?0u}撲nRÔ Dѩ7)r;{)âᒞC!ȟ{yx5 /+uOoH^=tʹ"Ӱt\~s뮩&wrFfb^˯tۢ5؋z{k!tɤy͹,`d^={u跦9&Tv}{r="lw?`u K,N=v:zx8cL:׋I&UA^\iҵBm YI#cʨv+z&ނ =~fэIbN۪b^gj ʴ(5-5pp1ɿVzRe|πū4[8Ψ %Ng`*7S<`Ut{& ѻBҟlz%DK9gw<;QXsq#0Ip]U>Lf1,9m@JF>[ *C 1nyدR ]tK<չG?{9kWt7v-߯wϮ7-]u3M֪4-)eYFRrŌ ۦhn)T  =!`5ܦʟ+'E0lF lneI%mWIOH呌%Xm |豞붌leqn!]U+w2eT^3ꤼL/'uH+2sEllWkO?gVMcM)AOd2,$'%%0sr6 yNO1io=|!XC7{TtV{Ͷ~~U(7e{ ӨoxZKu!%9).]Ƿ 봐~G!aZRcHxC6GG{-~RNG2z1$`4@$$+' r%mZlFE%"Fk:V_)|#p#{ YEk+p)u<]r4A *Az=eeg )GZC uH 1-gq<_N:*g%lBdeXf@Ժ7:]koH '1ڈz h\0,04M3,Ky&! VuM= t] s6M[ێga^Л34ZȌxH%_ 0y*Mm6;T C FGR$ЩT۫ ÖjַfHbh(R`d%LPٙz|4so\Wuόs={)["zeYC?JH^8i2tTia6V# 'p[a?ό%zTzULUРuC1ZwԊtMq m>tڜ 呅k51:l cJa@R\R3ϠX}NB^h Zc3RQ\a7N,7_'zTD8u$ƌԱlY=>}Hܽݐ}…wչ)y4fʴKŕp"Eؔ,5ޕCdvb0hXu<̽ɹȥ R/ ;%H0r@\$0}7HG/Ό+JҘh͌~\̙3k 5&&1QN D% oߔّ95؆z0* و"na1(ۚ/AH.凉@l跟œM5}-mNln?hA,ޕĹqKO뒫Y֘6s[z޺SP=ԻYYYm:!3w$_vP9l_7ǯkEEL??AfE(;3ImR3KKG8u8`I7N5hcSx,6* zhn`31uG^2̶%&}'ݞ/lۚ鱭 '5} _g*gG9ኼ ޷DJ v\; ΜLn,%26ŷ7Ja׆sv^=W.rFz:Ũ7F{p7I>XS'Ry 7 kϞ ص3,SW}ʐ;7#2>(@&},J{*/ ;cض((0y S+em޿E@d>wH볲cԸl|Q= +@+>}no:4IK2`(!]{I7k+$?*Չ}\()܎u%.}Ȟy%ᬖhO O@|$.̤KR :;E &ҥ1J xHMT P($Z". #]G:\ L+rcr@VxYG[jLJ(OynT1 ')&1l\"JKOJ)Vr1E_]?yJT"%SD%E9e(?cl&JT!V$p= +(QXX*+OOJSJ2D"Use(Fk/P&ۻizEy1TrIFZt֣4Yg$!ZXI  $*J zh֒Wrm!]+z'eh;?L+VP¬}`⨻9zz)W",&LɝGvR]dE&?I-T0:5"cY,M(xإgJC$)QX\ib[uq^fyb1eaJZR&H$2Iq\\@!-IP&HҢ̀ˇOGʴ~ )ais"n=y:C Ğ^>~a700lWP>_%>y&@[+'RZBqNZHIcJFڬҔRDŽ<| @ ~e;Ttٜ6Bƃ.r)zr+2pv|kҰ9̓Ew_ś*0m<؎ vl~zu^u~fsθ>Kq7]kE ްt\ߘrfM۵q736i +x񐙻Z(B}#C"mN+hc 5Dg=1](\UxF6qvT jL]wZG^v39Ctn cN8pVXm~ˆw,5>xzvQ^IZh&L{AGB҅]U3REI6+0&2=uF#̻/i\q鬗{zFK9 O3ne[Wiy5S+p B"?4@EA D 0sƔtaba[Bu|<4G8t^V{y@CxgMY0WPj4jhk^{I=}o\ͽw|Ԫ&WGKivştQfnsOj8E^?ZŻ}ݵy_v|/+T\P6ާ 'w\߻Vg=[<)4ז̨hc@'ES6nvL݋2бjܪ5]<%E}V8SսJ~۹m[pECC%sf ^r] *RixtlmH|1'ny$ ?;MCOhP4 lGfM0 an@ޓ;7-{ N|]}AbJ) ;zb! .1%T*=a뎞dł~IIgPKS? :Nd* '8E2neY; :9چN}g=Dp'-݁Imd y Pp?61 l%a: Vǟq5(Ӹj1ò,5o +ZM@)<6/X~5ha_s^Nn];v)c:8=1zڳ`^`]vdkH႕[ Ԙք'ǹh0w`˥pM P҅e l<Lo)ז=ڲҙMe n%uoZ7h@|ҽ@2@AB` `b 6F[ c8ꯝ0: OR0p,bdl@@< aĕf5GJϣZM޾heBB>}O\94r)M˜ υ1%k6ub]W竞@c7xwfY'Tٶbyʫo} ow0 M{5-mVtDbW=wՁ{U,>r ]sVt9p-^sp16ӎ}Y14Թh^Qb޾ŽLF D,I-z^ێ v7m7.Wwnz?)+EHk'̐q5X!W5bdY)@*+J! 1m88|Ƀk2d W 4ي/,qz Zzdq>t=|Ϟ. iTz_<.h;L(3`QGɁhYrɴK^KŋZ4F''L$}\= )aƣ: ׅvI9,@ )oG2e% 80cDrbT 44 Z@Q@V4 U nV-+bl MC9NY0{굒&WP*)K,e_Sjљfn,Z0N暟 LA2w9Ǝ|o4|HӚ_<RT2fs0}a#0b䖇1o|ON}W7u9 (rOZ<ŋgRpّeWr'VmgBR,dŊ+J% 6 '1k@ff"m;J0f;G8C~Jfx7vYz㶝6Z\P\Fc ZEg<4y|ԅ.(+ZL fkG/ˁ]ԥߢA ? [(4Nb7,[椒 )~Nj`(?:Au;1 @%S@Ib&t cf6DJJ@At"F@c6ƞtfï\M/>at uٔ:$-=u0=I-7Sˁ$ɳO,׋RT,c Ai$H_:RÀR h H.@\`7bp[B?\VFćT}k&phXr2䐓W:s$o%6F|ef0s%c7)_%4iR/!S^UЯn7 ׅ mg9dUG}J+,RJdc ?69:Y{*~]UW1S?t2n9#J(3, 4`V)laYg0T6<ʘ4Z"bE'g$EGXW0 еfԅ3_PbnAeFU9_{l@CY]eeF$;_|o⦒2JXlل%I1vNLDŽE''RLCCuJf ;rfڅ>]{߿}zN%r Ye; 4MSF;>l@3֟V֏;fʠ|N1jEE˫n(bhrS@*C)hippgDP-`-h5p渆.]#*ҽEXF-W4G?ylܡg]ĽR0#0$1*]Ae /kactz4{ve ).Af83I #lͫU8WPU(KD'<7o\|%B,[)0sbH0f6f}ÿ__8vbi8Hotݛd0s-$INYJK XDbbH4ي]vXnAjnRҀ$d0Híu;ys5ġ2mO.OƮc;]d\fƲ\i v5|H`-:ĥHQV lA_ (tw.R,TѿMsnH&Nw6zۆluodl"`M0 Y7p=" :r:5,A!`m2yw&<7*U{RT)LTݜ&m ЭZMM4)*5_&S5hޣ,xŸFNJl"\[6 FG_zB,\5! iuV o}Ŀ @|b.^$J6mgM؏~}j8wm 9D00UA%:x2Bm5tJbm "}7<ܰw.H7-^Zwnf8}{ˮ*f U 6W۫|Vm~M sxTаnoB= !Pjq/J`M{'X\1R RoέWio2zZ+n]OA'mչ|!#$lѻWw1 xn,޴·l% xR)l\z0{ᳵ^\}gʨQ7w|s2ҼYn8gS?> Sj1ˣe/}j}svnv~'OT@-taͮմ8'[Μ'@cvH qͻ6C` &}䦗uxbFv}}ǃ<}JeG79 A%=q驂V;JOo((B}D8zɬ7'v>KGVDĠ"@ ;VZUб^@ @ @ (@E ګ&Ϻ} e aޭ8hoiҠ{S}d PҿDek[ߺXm F36H+Z{p]#vOnӎ^ ?e72WFӏUHt`v/$F$@~}@[gu?XYaqG_ ܊:e5+䣙 IDAT:qˮ:[߽G[kV&.9uF f-N?q8 \A&uf~7ّږob>23zOsٞYuڐG. :k9akw.ko[*f aK sj{v}/ni냗|ao OzؽOi' ]"sKǛX '^ g6,zAtuM_j;z9b@b- 84xx߻=еמi8O 9>Fzd6;6S7_s?]97pPS/nm ]U]Ś %ӣNǺ|!6ϙF5+ Xz785K^ ޼>G`d[CC׏o3aIn,8͝s9_cwNmm 'ZI~Msvж#HT%Ujfrtk&4 \뽔tqN[_|^$f7r)i_q 㙜yn~7Md ?XSօ\laM#C2n͑C4@ >Y ڲ5iMjFusL]Fڈ5<~s1-w8y? -ͅaRpe7˾ Φ<iQr F&~d]枩q4m*!<w.Nyg!m'(uLmkp4f84~#fmM]9nY^8tZ ys۔ R4?:۽d84 ndP?~%ʙUVCW^dc{ɤC F]_MBL=]VR}u[%vw t L٦W+dJU;#di!Y "-s-d$Ks'-# _^#o?MK}{7\7 CPH%%b'%-H@+KŲR1tbؔTyګLPG }=}q8kV2}O: h݅G[&aԝBJkfҵy!x*)Ѩh n=:+1_VL f~eŬ+}P`IؤZ&ҡSvjdwgs1;z+_)8j4+Y% yAԵw'k*9XR>wG/ڠL6."^᝶u.? .3!j? (@E բJ ^Vx4(@V4R=U?;@S@_g`Ao?nQbԳwca~8AKv˚FA?Eԝ/R$ &#iFӔTPg\9)k|':d]ls\5U(V'Ywc(ZD^"2i>d& 5J!,Jne5&PQ4M@h H g (,t)*9|'M^!IK3+;Y~KJsiΜ{w\K)VR2x/b*ͫؼz'%w~%ٗULJ&y}|:aMI$q՜ m@qZZsOo",]jt:)u?,[@ft̺\:JTR p ʠb42G=h mmY^Ҿ@ejG19|m-^}yY4۰h >%Vc2L!mmy#~|t3dJBiITr՛:]'N8qԹGYjJT{]֤o?k7bAEjڲOu4l-csRceܶ}.N$9ǜ'1,=Yѷolײ.KϥcWE@8`lbiu-5!2"6JƚeEC-8qnjoM)X;+&'Rye@0 yFz61g⪌ @Z;rOeU_>#*YI 9M'oԑ>v0n\"RM n7=GTg92o1!skR# >M{Wf|2kV%ujew62sɃeUw .^2ԃ#?8PV tČ+<}&w`6jb=wݵmcnVS濺ZQPƽgoѴ]X WKw.=qHSgE$V+v'Z`,DS?šL"4t(xTQb:8nTIq)pgKoK]fĦX~Qk&rh!xs"ˉ/}/7L-_q썬TNCķoJ8[2cGNURƟ6gbQ{LK6ӿu)W^&)f=B=zSj4W^72 dc]E ]1-6*S6݁Q`9y* ,o,ܣݸP;Wj.s\=7s;=˔ʸsGdI-%i|3=N% Z96tO>PįŪL&r;<,V (q)Ma!U-ۗf̽- _Sjug (MjƋ&o+DM@ 5:l=аZ& XmWMBZqjF90Ɠh3?׋Cg`n#1a8Mfߺ}t lS'1e ` Bb3+^ L)9j躏 ehh+^khh`,Uv7>#^^^QՀfPħ!c8N*XPC+J8ßU̮Hwj~+̦/aIh4Gk& 6 di)rYuvA6T{r;m;Dbѭc;$W)SRn\ ׿H~/˰ $3}Z7qƾ|gҹ*$A2ؚ;'&?E@U]n\ҶmWj@ôѦ=$)w|/~~Bhu{jXhx|a]ᗩ}uyrƁ咆LG/\:m;}KX7R=ƫU~4زF1u@ſ_x7֤~N 8tjAaRkbWϷYtY'yA"9~Bgmy7Ko*8ފ{W㻙ڄX"-e٬ݍDz[lɃgFtוQ `0k̨ۂ+1Uj y 2eΐV9;;A__Ks&J͐@^k8+D/g'2mr4O׺&*G/śiF-#SJ޾%4 LU]woei6m?c yַ^x 6CK6]ԩ/cZ׫f=]͜3?bDx:n8tr/INL9NZ3(,P]x0yG:ǁ$ 4Y@$IlŨZ԰^>ec__SmՁJT2Ǚ"!P@ ]H Vj;*2L:?[)җ,޼eIᄍ!E}V짯1|p^ UtWl[`x^|w~ "6{c{nb1&to+ ,ӞO Vw+ά3wHI:m~^oUߵ!rQƍپmIU~<q06vb$> @") +a(󲕵CN8r,qMa$!=?+ԢY0!(JɰYa㤹7~-}VL3оs QO1cUmV0?{xo'ܘn$@h|j߳MO?|zAdž(İ|bE8$0*lP K-U<}U ԅO2lmϻ:@!+*5>9Pcaj8| 1 y|3"1ywN_ ~IDAT@ VJЄ.)o: 2 8@iu_MҕԝdqQvϛ x0(J }_ 8ƛcG%Uzf]i^XaWSFNlDz! ̛:Q*| J/\DT:oVeb6`f;R1K;9m-:Wj N҂U9O %Tr7IȲSh]Wb?—ɢ#1x6 NT$BALRZ oW?Z'">%cm_\xj _Fi}v  ?b#*u:e?Gˏ8"!ɠXb :SDL"(Hr{w{^!)~{ǖve./^|*?o7KL@eEo,:eq>:q&m/wVz| ݽ..Fޚŷrۯ+5m2g2Ɔ|T=ad$RSR+_,-+?7_ֶ'ͽyo͊N/'_tOvὪ?D"L^w}8%n`E?̛ҙqL_~v.ȟXRM-N$5Qݳo|6r뻭q큻}GO7orƚK6z )卫wH~h6?./)|RlMsxS0azfZ4{0˜:ΟpY9nΘS~#s,lDhs+OzwkO=۶H++4=o$*NB $ ܇* ]1ِuT2B @nL $P47|%,xcD3LPJH?c{4jʶdshSNyS C%"x:naF򬌝B0XRi蔀﹮fDgOHDwm;%nhL2i7NhL%BA 2)'BuPă㦸IaƨDx軎{|dBn QK%D'2ٚn*@"ȿmBpM!ADBFnY˩! 菊>KĉX@!B!]ף/A%\؝mBQF!`pBW_ozܹBZN9vY-$BhH@)8)B!F3JiKk$`UaY&B!F3!D^,&@"|i-m__!!pu1@EaP@U97BRBctB#"@9xO^B!B8=,lIENDB`glances-3.4.0.3/docs/_static/processlist.png0000644000175000017500000045004614432156570020655 0ustar epsilonepsilonPNG  IHDRVJP;5sBITOtEXtSoftwareShutterc IDATx}wT9{KQ@)A RD P@*(]zawaaLr?Mn2|y샻Lrs﹧|O\ٲ8??w%O7qzB۳w!0s9E\0e?D.zA3,'o"" Ȥ40A@@*A! "#)a,M?Khl4nlP4wDih;E^E*asx?مvkD >;Ar4J1UˆcXf%( tH?ޗRd-;<qcVW^1mKNv9Q&  >}輱X8>Ev.d&!&o$Qh5Ve qʻw#ļ2ZYg~n<dcZt m+(" ^1Gd%x!퍈!rx=K{(Hq/u$"_Mwꦂg2\{XB &YgfdZbْR)B  20ol»x'*6욁eݨi8Ȑ|eS կ0a˙%"$ο\+N|:܄\5 $U2{-NljJ8ņ/+&Br3AbG֤s4YNH uY;f;(`Bu a=]CP.wL ܰ !a<2oںrz*kg9Lfr9!]EKH1-JrhݕTtkXc2\AяC9 3 CcE*Lf s] =d [Gl0 -BZ^`h0H!:ٔtcLaHqe~ta:Q8kGڊb Titx6I 1Rȿ/BW޾($>e!R+A^Pž ( O1dt$4DC!kP-G˔(x8\8 ]"XnA OQX[B3 u $P4u(N"+qfA*eK!.7Kbb Kوb$"@f*d$isNU|*@fj1s\HM] ˠw=>[n~ Jd8f-Fr5 QSO6lt/Eo0s& y[M8$2,nUN#/Yشf@FRE()XVA!BEӖ$ %SlcHalAF"1@*dM9" BEѭV"XV{B0d\LM.m0.x<L#D2) 1B;lJh~TAȪVQgxs^KU[[bt_8(ȇW{h 1bw;^J X_ F3aM,ٌ2r%M5^Im(|e' `6V (6A53:}vȹSIQH!RLQ)5%S7R"BꗒPWKXN{0"3CwbBT %3hVAeXIVgtvc bgјtp-PQR'bޡ Oތ< bgb>Q޳1om'Qkq"·{xc.Q L@O}^?кu.hi0ԕD`9KDwِ9 4gkl|8:o^>fnOCbb-8Lb誽")pE!E~ !")◶ Re%BX 8;]z" f$1IvK3Xԙ%U> 2!(fh[aVU@0i,40K0t/( /&!zQ3bZD3[#dY&^߂XϮs ^]֪ xW9Y Ec/V~GdYϘC"C q9,.c.DS $za#H#I ,I!zx̵|#"H"T -f +۴)@"ˊ,rPewEQ'AF{~P:@5eE @  Cf~CQEE֞)˲"+Bn(h:o\%>_" oD}#zذv_b_7SuX`Q;R! %$ $IO;]n|]/H, }dl\]BS@.bĪ PUZzKFGCJ_X%_fǮJ96rNb{7>C :$d mCm7c%؃B v]nV/9-Z6nܴs㦝{Wkvޥ}`dF{#>35l(?v Ga[@?(N .oBݷ_OJ$'SOO.<|=꒧Qe; k]3󓶅#"j}sfߛP]x͛ߩCQ8tM!*;TrP rrV]qꕳFy ըD!53;yO !: %@/OWL\|65 E/ϣ}2?7ڸe ok<8i'dVvjn.s<+cs8 o-Xm~ D_WaF?gOzFrغΧe ::uo|9XY˝w<(f3No#x*fS }Ʃ CDRN̾CFًOeEQ ~4:΢ 6AdS=tH!J440!"D#sM v ǜH׷)Մ21ZW\N^$d$ %-REPƮ(j :GH#SEk׈MR:w<${ȹ.V ސItS]+IC$K{xc49LtڡwT{6yG g$ ?~ 0iN'> Z h3 ݘ!t_l$ o+&d52D7T hKY;έE4 P 1U#dʵ;(񬓋V[RI<l>VN[NG ޣffI_+-EVPQ'H;tG3^~eΉtoи0y01>cwLhήQvihJF,0Gw߭]XJe| #zf Ya\gfpqCGKExԎPE>]_uߥc)NWOTܟk7oO5uYu?cyԲ>_~Q@G'>zFL2nP;L3n u իY`SFإ]R4^f\ P˙?|&([0|}I}zO>y\q-r|F E_8㙛og`1wv|;vH wF-A6)o[ݗ_z0缤Wqph^뮩Z;̅g4feŭBlҨXv >}'}\-A]ώέ~_1Ó|grK)x>\CC\{M_۠>>R(:wa߮(PNEnw`zgoZ3{_5:dž}rʒ[ݑN3dz%|kP|*5G-$j{ͺYG"Ǧw?M \J͓gt I_?[>kQwxx.ˮKq_|,==K'|6~`dwmHl+gxm-dWz̙W8-סy>ko-.9;as:)-ťX2$e ."[eIPvN54_OD+PUe@}xi.v%`&r%J<өEBV(כf41[br2PA&HNY{sGۧr@^Vn)vצY#vܰyق]%n($KJ&S߾PvKg|ڏUh?jZN/+ǙS 7oVn{=eGa RfEf\p2zNR}D~ϖ߼޴qv-<&+i}:$!"DnT-vd@q?Ԉu$S6:$L\x%EA6/&/'^I*ݪN]<y]kۦ3bLE~&I~w >! \٫c=ƗWGӻiԸ]C7znz=]ը$2wanгBWђ{oѳխj޲x>kְQF`\Bֽ./K lI?/O?m.z}QMYC8:o[/wxč~f,,Q:3պ0k|9:W'f>|7_|CS ] #s>{_zuFz8A9=S'Wu^]u$DLOG>?R*}aԔL\='?>suDT΂.fX̊ghTP3a;n^ hȲ0  @dßBCھkaO$Hd'Vع@V5swks7~EhfyK< ;oghEgޞ g7~EhfUImtg{NY9} [2:A=eשHEs.lRy1 <5SGݧLc: ]kOJ[ J\(Գ09]pn<6>i[Ƀkp*"b ^]4ۭgogܽg>Wgo`yrW hA(3jcL`:K^]4m'SXZZ @D@ Ȋ[+2~ciJڙMTcqB=v@ֽ ;l,/l)ߞpqN];em7gnתE6<<טwr4ӟHkۡK҃rPPRҖ뒪We9OX88؊Dzo/\ .y굋'cA ԏ<a_}E7([WO4~Nv¦Þs '}|3W.]`qj#:'gG<.Z6u?m*e!P.u}7Nl=xb+Y D8`ww:s fTp$!g3a(ISADO%OϽP7cߙKoX8鈐~j޸i8x~w8r‘Q kTbR|6ե-Kvr#:s,U!' iOֶ'分+X]<)Z$uCWhU5nqJí+*II=Q%Oҳ[ח{|v%ToIZ;6e B]ZT^ݻ\?xw63Ox1e Ɯ5[R&@==-~j̓uRΟfm^r7G2E}PDL$d2!™POm^b7])_m99-F8rmY;Eg7O\MPҒR)*.ʰ3Q{+!"/9 QX/';-wBdDe×)( 9r YQIOɀPdP_3׬#r>{KszGW/G?jKjˉ+{laa-;ײe[/AQ`TMFj|UR*7.ҊpoF9E G_?r\T,+nJqItӕ&[7ٶm\+}.;z-bYq\9؁+"ǟb\^fN\[g96bQjȗ&78u89ޒ6a_1j &ɦ Zi16[yX/~mC5jTՄoBT_,prM^)WC7S,߯eՄ߄TڏDCF-GMޮOVk?;|vJnKJj]%Y6Z}lL7q."0e8QD:b|QDA6 &[4&ޕ8===B(kKP 5P rG"NG-BR,kFr szU2'v4`ʡۊiJY:z?0K' '!RX+jBDҤ뇳v_Y9,+h7:$TdӃQZ\t@gtFj+Tcb5 (}^{2oߕ^yv%FArڮQ:Oa@ ˊf,Ubq?[UT&ulޡ a*]$-M&IcdϪmٴq=f~lS4^IGIK+2R~8(j1}[u}r JA[$ 4~:I9Ɔ|Q2Xpq IDATAQy d5(I[R`mZvڍnФD/^'HuTʌa]:PO[qPhH1nƍ|—=m&o& C AǕB?:]:Ďe>IAPRNW<*U9 e[T1 F$gA ESGfƻD-/x HQ9" L0 9ZrtF /kx[κQ+#O~ѝu1ڍޟo&3o[#^pşqQ>`qw 4x楳ƿݳK(*Q~MEQ rI!7 I#E̛3S?8>lB(I9w>=wqU4!O[( 23CH:c*W6xH[\9"A$ Skٗ^RS6$ky^6Q`ܒ z?M ʤ6 F ƗJH(WV/].|Y5~n6~tO/?t*lhQ%_׵#eɗPy,IG. y굮Yv% 綬X@K#=jP1ȨDcUߥ^…KV|}O_cѮ+ĸ[J+0S=_k- RG۵Zm<wKXXV[9W$`dz}Ϳ -Zwn޸RѼ>֮seHI>}6c ,tR65K͝+kf0M=_dܹ%iϻ?ݽVʺNH!D#G4|{ٜ ?W(U@|Q;Vy2 7~3ճmĨ*}?QF?؁$Su?*=o_ܧkC-?8xmsFl٦ hzk[;lǢZah9jo -XEg^ɂ@9#b oW6xj~ R{>@~7>:9|W{oܛpuո ~p0ڲ׬H`d:rX *M"dy>9h 4+)sE̢:xh7vpzjN3NE<, qj v 7mで3 ezLwL(2MeԊxo1_RϷ`9=7-11Ŏt̗EŒ{Ժk2*Z!%==W_t-')IW}gj '~lN/Ն|?oe"_2?>xݕ^`cFt|R!vc&UI-ݿ?7AN=Rί0x~#zzCޛdA6CXII:f3Φ>4уu2K?B"Zdzrľ料o:d@}+g] ׷|9m;Z띓7OGoe[/{f{u2C=xbӒ͙o][5yv!^G}h;25[֋tK\UB&w̫BY-x/{Ϙ#2d!yV`[oqG_b2'lN/Fy|첬OT1b;4ˮv-Pߏ\ξgMV^tfARN9=q1jXع`"גCp]kj)]pʈ_ko&0p{? @ugܹ4e JNJ(kY̏*W+ޕ>~$kB7Cg H{HXlX#1l2{1(b5,t+;֏J-uuє5xo<}+$HFSKy.b QPXVy{ /XkK YN 5bd0?Rŋإf|x1 dd,ȝ{XE\u{%KO~ tș^9V%]# iܖV ^Χvz0XD^n3謅Z<)i ZB 0"ʧ'Dn@|uks%aC!d 0 ~-)YIq/;{~~v~{+f "V Ջv^갊gCLDNy٫#up]q6_(rPVCY4Ck2+?  Sʎ ޝu$ vm'`9CChyޘʾ=t¸w<md. 2eǻrxYaCG\a-]ᵝڷ7.EOn45DS,E<* `ͦX5"-"1,W|p$"0uS |$r&j)2W&z=Z +H A6јʅe9"4ثoe|zWMvܺv*w5Wn歅 @򇮝dzS{8*/8$2Њoei$+ $4L6 k?"9m&Ӥ tG B|t[DL"kZa{\/SiHđRfGGw|TEFDZ@P\5N4VT75UwP*kGAMv5-{L胣Z4rܶPQXlÓ1ZA\^Z0(=X,Cэl~)p)S _ޏoժfgzSm}8-8D0vRrVu93 1prxp0m/t2wkiv*quLc=h/9S' ZZzkwUȦx)2hO%&q,?''(*A!_,bJHjBB.0p"T*(RlkQ[IEzx S[defrV2AU29/C "hD$/E:gzxq"2IKͺbrdK.Țx@ݡ$t|%@D+07&f&!M!͎AėIP%3F͗Y_(4-r}0 2_jLr|L8M-d( қ( i:-makvXzxh T@A= ] %8뤒5TP_;1R2dՊc.e;O*J17rư(S&Qafq2%V\G{IFDPvijT̀3fs` >apA"[isIl:.B* n ;1Q.$2m_$L6D 3 y_^jFlzS'/h}oq͉; RHYUP;hn]"tAV 6Km&>3ejeUBK r4 $GnK[B,7FDŽ!YsuFEa^18}Ö ;MN(xUGb`Yrb,]O$ fV=bK8j$#B*>Ͻ vuLMf gq_fxkМ+T{5sumP酵s"KB:`=+ kDDh8@0hwi`oV5}̼gP3V7P;K4Ch<֗ϥ;RPBdD͘HkL K%GFrCNQ`͌cJs'Y [I "gv)#ԥj \'E{B,0ߖA"(' aQ,S7~zlZz)^drizR /2(P! eFyVZ]@M1q\@+46]{ ,ϒTE$tKy!u3eBDpd)ٷzICgbKqEUqD P(ێ\@ׂ /@ha@NðE4'!rHD|F∐ل*L
F5$TR={pF 3a>JLBFxSיݣê¡RB\3-<=jD "6|$>Lw,!*D1P-G B4joKhMy 腐xϹör% C:VJFx ߢ 96͖%K$?,li%#~J(p{27R[$BⰨ<)g3iȦknBOYKRk@|gaD$"O #fe~AȊ ʲ|ĵif,( O ?TX^؀d|Kh?ҎDŽ9{ unu(\@ZWᖀ %Wq(@D&#T6Kqz?L E]:J|13)nXa]x̵2߇zHZT[Co^Q)(&۶rnBd+ Wvʱ xtK+[Gp0<.h5oWW9"8tChkE!=Z+gzKo8C6UE!ňFh6{eysahD;+DNpCsN2#wB\Qʆ\ GT»_$ 4A4:K C4HM՝g!bg-!L'q6,0HQF23jNg; lVo^Et 5LR Mmnp Z EB9g PG!^-d$l % ~dap~K=9@`Cm"*bTCRAVC25,02Y|3Geҍ$ IDAT՞qFqLXd܏(ڂg:"J~Nw(t3_#E[hLh^‘z|$ZC"לXG0ǐ2*^Lc2'6KD O"tLĂ"'S}ж"V^풭t2bgmg9M1f@hYTϕVD/"+Nm:SQv8t, ̋"[4>  @Qr0(+dbo~K!sh#{H#ͩN{qDQ\FI\MsKU#%)I))o߼uC!mە[g>OWcII˚F&Oҍ;~x-- 0b?l߳yIϢ@bm{ϯIٺ}ϖoپg=*Ww=D=R(d/߰yw虩H@wfSYfoݶg=ٸ/{l6~vj A*ql޶g?|BQ=r?5_ՊQUU=Wjm{֮i#?S[B)oƙܒv:}mڣb)YY̤3l [/ p|Nۼeͻ6nٵqˮMۿko(<;6n޵zُ)V/4;7l޴Z4:G#{@Nd&Q< `]aP4r  dYM^Kf7XRd%"LtN+їHQdUɊ,+,AY{.T*XtY6Z30ϐkNbV%d,NTF)j?ZV7:m>Z9)䨶$$P(.dKTFN{\a*lek}eJ%(k?PRn+Y7nR:i'HɑPb^ߗ 1BH=r71١]?1/iBN>VlMq(ڨq֛s􁭟4MKs1(p3{Ŧ}w4lf@YNYg亸ǎPm{R/g ?wBx-6}}ь,E~=u%dOʝɚ̸+a~#gz+n(qNXq#_ ёԬE+׭W(.(㏦oܽD R~{%K^W_\ice٦鵃zk_A^ `2:-Z- nLEyk'dc{}wJd.E}Ş=y=?>H: eѕr&Ny޷A㍋ kd#8<ٜfL(-oȰdE(*{ 毦]$AQQ2H.9[ jfWmL-T@yfi6ߔXNd#lPH& Ht7RDgI\DXHAbvF1*U_oe=jJ>{БZ4lTdihHYB+Zn}1٣3Ȗ軐8QOʥ'Oޅ'>򽦕,8|Ð%GsG>(r䑽{.}۔Z3XFw*M^7kOg:r޾pԉ48qzRV :V-rɋVhv)g_L}z |r#1}L,F U[iā/s_~QFc6Ww5+o^9}o+я#)=kuz7+ttz^wOBG"W |}J>۬R.ee"XO\-|j弝~d jK *F"b "B"FaQ# Gg/mbdhnN'/7 7Bc7lI(Q&e9Qtv͇^1A#XNhY;OM%RRpo 9y +T?ZENmrx݉Kx杹+Yd:Kl\_Z\kar5ؠquJ↑sSZf\ӓu:}6wO@Nf2m) yRe}Ry cs}fq+)pғ a'np&W@ Z@d\#{-fHC#X< ճzKƭ`ΊՋi& &JS˷] 2"߮v웮/q+-Ц]Bp.>iBOo.!C>4듾۷ѶP'X t15կ(_OKE#XzKvQ b؁h# &K$ݐ8lKN^W-M8X 2 h  %à~xC! -eRT.8\ \- ɑPD/ 1# }AR"d,k[݊[7─ Q? 2di8yИ_>֊ʃSݼ77‡^mZS}>s2$p:# g~bD2l8S|qkj?O,yT0֚V/%WҚwNk=_VH$(H ȬDve-KmY:eC}ԝKke "`?9p;ktG|)&"|2L< -@Ag0-o}VTtfnǶrl/sg.Wfג sմHp$+]DZ8z2@D(A@j}nN D>1i{hDhmqP.Yquude_(3Ȅh&ҞBh\i M,M:ǎ(PS<i}av#`#s419ZEL?(Dbw:A((uH2UC#s6$bJj\?y#ukwR='S^z,):`|`[/r#Ύ)M׷,Yd^Oww|o(WVՃ62'{ ~h#r7`G<}E6Y5ua7ɉ)r+"o[H)[5J"';?MYy`l%"YSB8mG%6NUʞkb+#b koAl(UQ>s>-WYTi]\ "/wŇR|м0ir7p(e#ab( 'dTmkq&GwP9-m N^R7 E^ttKZI+}6bYZ~ƕ˷c 1J?pE"W\qʪ7\et iRqYbc"l:)8يPN)W"OS 5H)@Z>NBL]!e)R\2EH_lr E5nY LF| 7NZt,HDs'ҥ+7ַFġGxwǽWB՚x}[v\'e'$OH(P\Ѽkmʓy|D&~/diƨu6nzɕfY+\6\q˖OH(G䖕]׸Lgz+*SYhL)c M4h䠖5ʕXv{$Ek*…jw#KAPN:}6`GDFzQG[B' kpLy22&ĶfsXMvf] oQZD;㷖;0JCYړj+qV |> en^x*9NǹP#4d\ٹ`D70ѱ}ՙm}i| !rMFzZ>aa(=)_|ʺ7".杵WFG'Byj :'7HY}̸pLnt+;|wơ4` VI?0oo{LlGVO_${G9z} +^5oxɛFzt~O3>]L xm& {gκiW]{%X]RfzIus+VLI-ؘ Q;}B!ӄ9xKC1'Fn56OK[lir0)D'̩]mbtDGEBġ|K.贊΅7:'jvXL -^պ>2Tfgyu&ulP0wvwBn%;{sؙG&{ am]DV"!'yk@a˰9f"&{Ƕ*"3(md-`{QǝɝD!2u$.`4$L*ŨiQЦd1m\Z]ka1pKaqOqੑ$d5FG6an9$]4 ͂7 E]: =b`OI9PB<(e=f3!(ӀgیDn_|ChL;@29 K PX34HU:t.ITcE='""Ќaq `+8!cܩf< bLҲ^CNN]A^FT#kY7MMe0LI4e A)O'Y2@ً6Fj!YmHcâJ߿L3JJX((k*b+ݮݮk(v H)R!(=33'gܽ8<穻SN/U ^`@׃*LKNY s0Cm p ěSL*1n6 bk.l(q?+…a]gBփ0$px|3 tbV- o*FfBiQLEal};9?m"nsjx|}xdbs$ӝӅQmAXwz Vq+)>ExeG^([Cv~_gĈ{yVQdeȮ2m`F0`;*Tv+v+rtC 3bt"^ӇFW\ϘVx])Hx F}[. X}z? 3vXu8!aǞ}+u#Sny`5f<-p)i euv0j`<_1\ZHѯ/2Ipv*tyH{o`56z$Td.rF&e"eU`Bf34L/4ĿnfbQ.Bj>_1_)"X̛LF,G fQnX(Tea ;F#CJ/4 j|}z+c& LZl*ᤏBKn4VPDǦtBa!1_gDCHwH!0Qf!LH1%%{ wDĂ06q>Ȱ]#xxkMG1|Kkk_DGÚVpQXE1&[b^24k4@uFiV>)ѧ|Em[CO%ƌ ̽{F ,9?1W3#B}sMB=,= >'"##GD>>=2D:uK]ǝ8(.ٖIbY˵Q$2)| sj@LO1-粗.o.D0 ZKbR0#++XN7$0p Q!OFWc.yh L± )-+ L\9!+A+Xm䍺S<R<4A Wg>L~X{9:6Tp>dMU7+Y ;}+]0\c Qbtb7 rj7i Q1.YBB݉ܽ{NTY0F=sa߼.#h1)zz֘-[5*I, {H%)f4\r1 Kǿ^|ʡ]%\㺡'ue-]g/'(<ԃê rs#슮<"JD1`aT3t>)J ĴR r֭[w]Dx[\v l*0iĉ`ztt?uћ[%ؠKE9JtP{KH/[)l[B7!d IDAT% }"j SQ!% Z0,h٪Yǀ$;_ g gDt71Ipshy4:6.,/ ˁ.naL]$D5:{Y$yngSXU}c]7c%fT'o3#KVp(HfޠL 9ٴ tc<ǀfU67{ufӱןUUM[vzַ%o.(!wsDן9:R]ϚurOD>_wvߵ}|1rΨ xmV[_20/u qsuPM7eu%: ʐa'KeZd p Tf*6{hgl\ۻ+Ds܌H~w^V;&o=.=(!.TWb[6nnptUR1{[svBԣ[GI%5G|ff=TzjѨwOo:Uo-s˹i|zZN^ՁT{ Gw4bD|ԃ; )wћq17Niy-wq%<&tKNDeKZOz."2:.i]%L3}q< `9t?vq.{{ey۝#"qO{Yrj;gq"K'؈OWalF8t%zh\dԣ+GW,o5v@n]~.1lK#]ߕGяw6ww:>v&kâb#jO{0Xuq}H :=<>2&ʱ,Nmfl;(!]]$] t_/'DE,q&cnjK1k/ϮW5;!֖00J&hqba?|nws9lB59yIxoߠa# MhH U >H^{xcш/|MȲ7r5$*b9Y:}kF~F wkƮ56ߴ=o!eHtwB{έu3%`P>u~{P6huo1o;:Z0 7N?Ш2 0%:ӿG+^[9e#O^( Uɽ~ڹcξ)ѠJm{wA"<G@z(ϫĆ@XóOqz0S:ukٔe[y"nQ[6nl/GWL0-4l:3vuz~}lˠTLKص~AZ 2o%\W Ie} HQH\k}x^=.84_5xJq =\m:znɵޗMRVo1?@\upྉuh|Z@ܽCC;-%eЊyM ;fD֎pkؽED`ONҧݟ:,\Cb,kqiQi-( q`t o & #Cn6Mj<@E 2,,TTϷŒ;?u탏i;Hu?$0h~Į}P(v"22&<˓s5NH}ps')m ^ N. ` )=|9XS!ZX{g_vRz֧WK.E`5,)h?>mKyޖtw']y"53uC6uMsaGEq4T߰^wn +9wH v ,˖̂wd$,K]þK>X9XX(l45q|׭%|y/^E{{q?|%w*e3i:$d;Y<ݶA5Xի'ߊRb<͖IuQ+C3?<^RXcgaj7ܿx̌WgwSXտmۯ<Af5\ҴS[\}:dwWNE('d؏o Z(7Rjh OPc5ϥw]@^==J#o%pirʹA{o⾩{X$Rzj+23_?Zڰ : -b] ̭{G71u^G-є^R^4NxA^E^%@RJ%Ȋ}ӻ'%3DKAP߰OoѣpZA{S`lt?NHz-p*>U*BV?v<8Ya`߉M4WxOo Wh+F"~|(GIE"K3dAE>_>}5yIoJE'ӒRu{4doKtO1J n~bƘ|v>ɿ~?[^Sʷś.{+j[iǡm%.{-`3(iS6l#t|i~B%ɥe*^~>IR2HٸY|{V_}6fCDk7篡xGlk@ @ضYzwfWS@,T̀bn*u>ڋ1@U( LU`U@i^8Ҕ%9nxlAZjO,Ey>k,HRk _7,>i1\²ᄝm㗍=|c7`zdW"|¾ {66~`DgӪ6#aL(xgCFtr ;p+Y?x柛S׫)p|FPh* .[[c,o2KJ}7#:-Oi~׭EecNN9x%SZ/P|Pe7e>Y@$-_z.mGQS#"k<}T;LNUu{ BlF6:9ט3Y"iDEonEomiYLp()hx۶hں˴C?188|5>?e!-ns mţR~w)-ݛ>gb7>>Ġnh۲i.wvv)OF"!1` nO`_p̃|/~8Uqo?3 kK]z/^KZ&55 h~W4ߊ3 bUN5 E_d-}sv ܇ٗzhKq\d4@Yx پ_Ɔ#0%ؼvNn+@#DH,-DZX XҌ sPcdf)2uI%V^}XE&bm4D|򐁷Gҫn$fĶnuKVN&QVB{zS=xTԞl*UNJƩ`0L:p{dmju(Y ,˜@T^̰ 3-ȥjĶn5K2c^^aٺچXEҭe]+DG2]ދ dZ' ~|kݨD|TbQMNWU *rUB7z)G#}=dk껒.6uuj2Ӿ! 3t#߫77^=6mcn,DhxF44Rˤ bg Sd%O >.eLIG2>W"Uֲ5n6I'߈TմIF/ i@ߓ#/ ;az]kjSdurM:|>CFGHH7O-{yS{6W}=-D|23ƨ~tkUϚW t4p΄)J<(}jjZjjZzɡAmݎ]b[Vd?*c?nWwz;yLBni(ڵQ κL Z^;kϺ_ӯ am_$^_X @Zם^@a5R6+%n=~g]YXA޼sV<<֩S\ۥ\9qݩG~Tr"2*t3S]WWv#PvmGѢQf>3ׯ料n h/[돍[lIj.]ѹNAjcT2~qÙz5pucj ]?&8tעs>:Aȼfi iyc;pf6C {뻺zi[oQB$lewyHz>~Ȝר.\M)xy*K+WuPldfzZ`Ԟ]]|lP&~>:|crusaМuZ m=vy~<~͜?:Vb0ZRԞ^..:_*?$8ZJPоv=}17 ~(m7wLNUZZeA zLB cLs(>c·>*zrMQ4'婾&jtnje.` Orڵ!C"R˼-2s`GRv!ۢm%)AcQǶޠitH]뱥j{æ[m7'6ݛZ.nZzlOGݡעn/dVt ԇ`(ywg:i9x:>:t:qs -4_@=XyTg V66}g,}篟me=y nҊPjcT 1ykZk 6" !"C.RJ 1ѡFXV[K }VCK7$"@6r?V|pJ|'GKҕU?/SdK',?E=y)^˼Smsⵥ4&r3t"\t-~=GV?={;Kť^gmXx`k(H4wgWkaxkDmZyE~}z|Ea'ruK>?Dzȅu53%zd4 h!yVz|<ه&^}UɳvXԚY.,?YʥȦ9F=)y6޸xdJY~b0\~sO]qx(Ky$G ^#87n%zLph\]nO>j͞;u{HEI秗=P!@ :1"5xՉ֭?^9WfA?s}z|EtGOA@o{Ci^TZe3WcJ;_hլ}bgbgW=FQxჿD\{ ~Dmva=z[ +7ްTLZ;gu-͟8+P|\1]|Ժ*l[N^?YNhR~>7"Ea+Zd!G.|\LH ? 3ӣnÙYy4>϶LS״#@]܍C9JRVS6';pr{Yl’Vե3>_|P9]~X 'ZvWEƵdt|Q5g;RwS?#rٖ(*#t_mYtcy6 r$ |0m:6҆A5`d c hW.}F𑺛{O" IJF =FcuŨKHf,wʄ)y.o8`uvF`v_fWHrQ<=",9㝧vk& wزLzɛNݏ1f07d;ln&&+Ǡ'C~LRPCe~TXpCFvHݷ16|iAV+f2ֿRXP#QqCi8r+!_w(,LtAG&ɍr5h%`3d|?S@2?Q݄ j9)뫮㔼 /x$¶ -_an$z<;ަ!%hX,qћ"k^A?B00eY@~G a2$MwVqquaO4+yo2]d[؈dBͪt{D)E+Cg A"A^/VL1g{1kH²q޶h42hs`P &Izg2CDF[oڏtMQ$xFi:s^&9? GU01f&*{31gS?_Tanƥ7A`},L3;#zGlLflBGG,LɬhR] al)}7Y5ЯZd2(~LR&I(̻ixA 1w7ӫGNr (12A*'@Q k s5f/(x`8w3[yKX"L** W*GP+ɸ_P8]o 2\{ׅnq ;#WE&'l#萗<ظ' d1˙ě1+ڇJE|>.v r3G9ݟc?y!PCubjL~ ^DHFz $Pc)9Ub ]$P[NAoKxazdʥJZkA7UkHQ>"ֺqQWVGtH՘cAUBlG)^Ok_[E/%f Xbҁ&xL苸pk ȕNތM<>ҍMȕOތM:>ҕw:wZz|LlË:H.'bbbm`xƔg$;X ̋Ln,zma漘_G Oϥ.w-.Q ;H`u?[ <}7!Qb[89#vq*0w1l#OF .1:M<и:c|Tije͚'cLXތ 0܊1`s^}uL2UYrYg7^nerdad!c:xB,sӁuȊo.c sU*Q\h8g)5Y53ڿ%n-d%/J:`/By~2ٗw RcdFLW>DhcB\ck%$/nhI$27-`Ҫ7飼4c) z&\4h!F =b1%ʄkdYE0!|X?"M(B\SRqy0O0j8DxWuh GD0tY!C {e^Cƀ巇wƨܠvt%~$7d5r*\*vC+cb ۸CYE 1z LOEd㲕5 l4 <+Cy&`o,*6bYlѶ v7e?f3,FZ9?C]iMV\`qv״I;ej;3g9ς~jrͬm̈́cYzIv׶M~>#dʹo/ aBcj pM]}G=EJmȥ3&D:<#0!*V rq2ґ_K~X}azq`x+R=g;T㏛r@ƸHn`+$d1b Le/sxk{ˆC0"x6b@TKVB1lž1 疎{6:dpU1IIfY}G=Jg!-t4Z{nDޜT׌trYD%Vj+1!$,Ҋj#S,I1wwwc'>aG\]6jѫI1T֎K+bL㤈gvuЈTc=}gϣ$/Tn7sŇ1qO"nYB&| ܊Kw( Įݗߏ{')&zj>ߺ$=yEz@~X;^OTwWۣ#TzPmZHgwEqگ2DT9UC5|-)R 5Z6j|=jdݿ:| Q(!0@~Zj4r,J~Lv*s_7hJشLBjZaqrϟ&o׮3o5ȲἠM5/W#+@{NBn5uꁁ [>E6-6ldح/P_3 s |UƄ{#Ǣ7$dn-+{ yJ^M>ּZ1_RglgOSеeB|n9vᡧ?/!:N;.9X{glZ(TI' 01`n"',e uRA[ 2w:Q3an':St3+Bխ/">߸JKDCFNCwogl4?hAӷFo@:h[ĉ:]D`D r7 3E\%?+~Tcmft-Qֹd1f-89-m>$SOxea>Kr{+(Zbǎvus(JBSHy|R)3V%B>ٵ[I\`>Abn"t>C x29aʤXsBVPwBY0Mfnw\3upk7afA$ٟ?<% C(+)4J{_*zǮ;o>|3AV<^t'Oi C\I)є|x@Biȹ^.Ҡwr]j\a=VPؾá+;SUwR(M=uߕiYCz%mU1H{g_I =8Y׌+mwՀUlNB2aqT: h~=]WޖhJרB7 M. KgGBaWIZ2O/=[;t-vRO i{k٦2?G9k-@ͫ$vX~ +`ݻnqZ\lڧtZ@9(H }LA+=]M7n@9,1p'?,"WAR> zwRpQ,V`)Gc{-9ZZ1*ese)c^rd$ynVS`{J唘'X})h\qr=UJ (-J F6- OB"%=DncgQ0 zfIzm2e!}2K쫅~N-07~Nrd0?^oAs.h7HxV:nҙcߦ$~۴5 Dc7ê"%3!0Wul+F1 jZCNRRc}BFk1`ZD!ABs^@ +'şs*}s+xSOoeʘ%;Ogb "ʬxEC:hѮe6]f} gT 11cy7!/bu`0(k5UUsmFjs+jSqDZZc7~V~>`cvL Wk(,S!tLCMϲMZ}}"ռv>?]TF?Xb[% iC"Aih4Q dxvTW݃]5oT:ɩs sg@ @Kr2ƌ;dEa$T) - lhYN؟= X r 1ܙl}CŠmkJ&jCy5,b\S>]Z껴B~G(nڬo/ (?HUW&ء3y MJM1*'G^#ohۗ-]v{s4:@ܗ:f2)3b_[lŒ؋+&xUJwױWI1mo9$dqȊYGL,cth} ʬa0M:x,> ҙڪgLDsMuK[U̫a݋V #z>UkZc 'aڹG qZ'ɨs/_Rg 6ʃt! Idc笡 N }ٖsptҖsky϶嵘Ү>ϋ| L_ z> {/4MhK۱@Hj2d;bSr4iep7m }ui;Ѝ: kGEA rd4E,d5bNI1_7Sh&&;Ɔ1ʸ妓D bl4Lx"6҈|N#qd\4 :@c` N d} urh6 ;{gY*;ܦn*WRNNp OȦ}EfH)鮸f] |QIdӡwK3qfɏƾ"F 5 O@/7}pLK^ 0_f aj;yi'r KLgɾxnk<^c2`쪣ѧ|Eyu1я%O)fюY3e-s!&/.SqMu2Q8]2|GG=Jzp~^Z'eC @KAjYw5aB%M,hHHI:2jx>@KbjjDo8wkXU9"Q'a c 60)YвUI #`=ʴ~lL4GqW/*o5 +1Mb瑧"CW;~ w(b'#C1=\V΋)]5\\>@$/n2}B7;w)1Mk1M+/]!4gqՁ[7VZ;ayrumںX [iaY!C]{4Hĝ-Zx |+ k([L[<9_˟_ ‰]P٤Ym=w : E"y6M;~|W8^%.˹l[y3';0V܈̠eX9#ND.kXjeyH:Yt%C&F=2* {HnqGѝLpԊNPN:!N1Au5 (35Fc7&ܩJJU3p Hpj`ͽ'TZo[ѭzYq\5ٸ7E ;jۼ9h;HIS!Xo-@./훦}$SCF)ƣ0V~nc#Qs^ JHd hx? 4n[^ZPm슔qLj29+\gݦUhL [r/ڠdhvӷB5,2EA>-F W}wɍ/Z60FbbIٽ0Ol5&FGlFl|؆Xk>ia٣Jn~ѪIGɋձߏ;~kR2֛uG)oOI-\;4D5܈Vd-:,{X0ri8k7M4vQ[^Sp- Tb*ZM@_\_V6qFc"& [hx[TS;7R~LЩR`u὜b%#sfoX(wc4rMՃU/5]*0lڭ981^wO-{kh΋Td^'`+~s*y]Aq>\{i0h\K74MW_*Ww#ReVˉa䢉 Ocb  xNGѓCr;}+gڷ>pT)UMe/#!W^ϩ$J=׎}>JT2L@Upƺ)wՕ=aONa[LAٵFWJ =<v1bCfѶ)A&}{6Updζ17rmuv6z1\*BQtOͻ~5jVtQA<6BqM 7}5nEBC2xXäCcE)^C#Vl<,čku]<' dl `e}4s!ef6 =~T-דy~:ڔFB䮍7l!0 Ƿ Р2\u1ή*ȰK}C=3g$S2S֞0@)PL dgsdɦuݺ.p͓ۅѦ~ٴrgo[H!g`[NL}WVMꦼUP]ͣq0F{{e$V8᲏?߼RΞԮg3+JzN5=3 R،տps펽V+ Zdu50JN#=2tǍ|=Ct{VL N91Y!Q.k .`a+[lfUV%༳)g1ݙt%i)'WogS/3iG֩.qvu>1F4{ d˩ SIoѸ^%SHB'W|@X  'lRP;AŗJ_{PsSȜc%9vxU3nķ" 5S'F ##L灋<:}ѰƋ_س~"y~k )u!B wf`Cf:>K}.yp{#V RdQ2,xb{[]u r?oHRK"bʪԛ B b6}9&0+0N|FqG\,2wf9 d.P}fzsʻ ~BU,L' 9 Uu Y!K) e0%N}'w5ԑ ;-)qo2uM o^zĖӾ|GT^aVA,Q2\?"dg7U..e.Kz&F6}]7{U Z(1]"k۰45F U^m&~KWms7:-31GpbQ}z;;MdƩ 7fʝ\SǭW [ͤR×SQrUMB"sArᐹ{/.;nB{ 2WErA7)XB2wGS9d">idnᯊu{doQqH"@Bbm3,,rޮ5A"עye}}Р^ۧAvM *{=dDSDeN_L)m7hL6g} t(U>}pjcө hzM0WE@?BB ۊ$[9!ω@\FKi`z936/I@>N^T]G `Ζ=8PUӮ\J󐯿kՊ)6c* 38'&y*{Ӈ-bc7!PgĦ'vX,3:o]^Whn5GG6ߋ3֧I[_t9XcT(Ekƕ5c糨7O:a3[YKĽ3F=gt.Wbl&Y3R JH(/w_Z4_J#s6ǹq? oIzr>U6Hۀ[#s9ytǮ.:sƣyr+ 7rp ۾6k : F20>P|fh"2cD^ d9eO܎Q [*H8?_R4j _>YS_]z+trnujƼUo%0*P9ظ `T;iCϙIִл7vԛR}\ja 1&JTMf2[87yjTUJ0&gw3JxJ_ WV>@Mxiz#z|vCQιrX29tnkrʹ}YdD_ Xw꽕^/N% 1}*cWk 㑔&D >&85. ylʊK)ǰN!| 6e%P;:~Vumm{F2kLPXWL+ySCOrvʃ÷,~yZS{'y|}36?Iؿ˓YsKs̶xVM|'6G]ݪ;~{Kxd8O%Q-M sߘrtAڎzZ*<@i s鿘L^v"k^{4̕ː9ȒY}p(jjI sc;oThGH^ehO -O]L̻źI_3eɞ `Ύ~|qOU5.X3s̓c8w`ZxK?9f3+;%QDY9;I}zzoF_=@i/Q٦g3o kVJ}/?F(19cCj\ofWn#08 `TcWd KӔٌt+q=gWot3Z¿uί}WC زd6?7Ӣ`~rL`^ε;-?jSN˴#ku&}ɵ~xAtsQ|=>l `eCAKyk-ߔz>'*K=7('{}4M;Q,9jzKyoz!иkgoacIS?,<r('De#Q5Xd +I1-=3!P+S.#vˮOT%-tgrrcd3!eco|O#s)#qtNaR~tG2dٛ2瘘fJdǁ^8>|O==󫒙SzB H&+cUpe׾׃j築ZM.F)r.HvM=04ۏ|q.;/伩$VT= ƃtqol HFrrH uEtYR=,9!wr'(#i{ qB cȝ/>Q(,l *@ʙe;Y-i{#޻l1F{h;iQW$9cs V;,r[ t82rj }Q1 v5&lz~ pZ#&XUݪc GUi `/@.M!XǢTd@%G埣 J!YLx>Y+YŸTrI#y;^>*/pY1X,&E^ RQ-@aB.gm\G(Ux)YP])o=r1[KM|DI|9Xa!L;kCU23v|_w~τ*&+-V鯒wv_K<Hz$Af ^_?o Nx#2c8=i782ADLT\73:!"amMm',^/Lpvc~A֡pR!X;N &$?1Q eFrNRqWvO;r_&9Y~lBn2Tc%(xE Aڡm\-4C cYGb@A^E?dB 0qbވ:IG9ED2B<3Zwx;_u ć /K&D ɹE!8Z2Brgg.(ϜSHAebe J^Rӎc9p;LLq9o"#U))甘MsX!'IoXHk t R/\̺e[JS֞VIVV R%x&{Z< FSBC 6PTa\6@qJPGeh BĒ_h)fJAqS"eXM,S%oR˘[i(V@܏Ht)v3'[NE f?(1f~0(LQƀ)La sqĘnB1'AQݘ{rwĂ)Le3٠q+֦L3?lWvޡ޾jIrf lU>՚>)5dI+"ϘGt xRP0Ѷr2=AU?OS+0h&cʬeH."КK".$Q?9I.,0MދPx%ҒVn1Ͼ0ma8$5O?Ƙ<2fi #Ƽ.uއna5?~f#Y&0YC@H-)vQd 9m S4{xKuF7]AM>q8Fw/`nHBt\Z0j,{Qo}ZfitVUw]/+8u[O=zz܎i C==qvɽGO AFu.ړ#sYb8v/h)ef-0L:R&I/;;S; 2427~?nNZ ܛ}ΉQ!Z<%)brL=Ns*| 3s]?BJ5Y:ޑoBdD2R?Н!Z:@o*.GwNh@L-Z_@j:ʕHF0G}REVK$0h>Gfg"eŷH Ab±PidC w_8$z|n*TLch &s˒bwCyhމc5#cI?zV-zZ V%^F֙ϐm&V OcQӣ߂ nCWU!HTέ 18sI'Rt& d˺e!Y*G|Ht&5-H  ZYa ]pZNO6xaV!bE}im~u>rS VA_Yr`6 ޹-xf?|]bԎf˺eOO("Jn\-H4_GVFJ_ZzMkMgVNJ@9nd * $_kXQŮsqY}Z"-r.VCvs ̟^ǘ.^P$0_܂{Ġ`?K,=C'Z]s%?[Q>Ix J>y'ƀ3ܜ>yed>oW*(q|Yͽ߭GWlRT_E=z3*--CJlF]c7l{V*O+8s.pmywqױ!5}>h}n?{5t ÈO$akKp7;ޗd=pŁ+wF~d*Yc,+w<>ˊA]U7]z~/lZ|o#:pca'i.=tx\@D\-;pYG_砪w'&YClܥfo(2/e@ewdN'j ׮;\\GOu<7X3cM7XIow\xmc;/q% n~x؃G{>+괛uKH,o6lH 09dˢ/USK ~vrY*n֞{?\deFb)L1W:fPPpSJ2xi߬[4n #t],ܾŰ]LoD;98&YGF2pvӷGsܷ]>}*;rLoBac`mBOeiתYA-voڷn޸uK dl0cۊR>_)ے>Zvh5-F,\Q%J^)Uei; ܣv9G,?a\v 哽iU{9U :fLQ d0S:[ܪsxKnKO˙O rԴ}7cf꡻acuƒ90ܭ?\ϱb;H#qX ^6UM7j׭%I̟!$5c_ypѷ&C 7y܆:hbg^Ƥ$~`}f:. s ,%)7eS-2__jdb]o0SΆn\ĩӀB9/}qHF2#A#s3Kn|mK׊p3 Bwwӆ]/ 4K!\0ǻO'Zˀ1S=9˱f¡ s 7eGO'Za}wrk-эZTgߕbSsﵵV6 Y|߾?yW.E:^m`cDщ1bѮV/79)>ٳj%<79:0`ywJ㙖_Fߠ LI7e[à?ň%ƀw6omBt.6צ""R'D 9UBzÆ? ~&|kfk-Ͽyy1Zv$O,r`B SnU_ZqέX@:zn&s֢+3rm[4o6t'gZ0nZXŦXi c·%98d.CG4 kˤb@`eZy DnlW ?]|b_ݬѝ}֮gz|~r?;/3l6%H姈|DOe&fV5\dqkKWI+T$=+ mA TQF} w"s39dB#{gue֍s\9+{ $2wC'[k٬-1 ZlaF Ei7"̌}rU 0 oƭŧzflb1Z~ !Uaa¯T1. _7[5oeږV t4ʚ bz&S{Ui'n`so<  {|ثbn \~d -ڷlޖ'10$'V%DkMxVV׸#x)r 2N4Gr1hOP!w . rc U*-"E >Cd"K8UFHff\;p7TTii$<YoOfHW-o~6r?0yy8u%0mظ0␤!g]G1߶Xk <̵P 2W~ ݲfDP `UPUQ P1)3N+P" :"PC_ֻqXI|0s!SC#6jLZ)Y>oןM9mۥQI_\{O \BX3X[R#-NȄa0`=͵v z; @ Kу5^Zzew6y| *! uBD9o_f.j.:-Pnpa ؒyu_Һ]k ( jqeVRF*J") #V͹9e%uW.F f;xFJZ4O 'OD^S[Nkj'[K*q 2׹hO(`ag<]9iX[U,;*,2J@(-yrjۉu1~.L2wgzHS-ѭfH\OҎMҴz|[Hr v7T!Jk1g[5H:!q1=%$ܯ3Vt ii@Ķo_V*Fr5JW߿ɬW$2uǓ{3\9ӭ=N\B핰10(2UZzcњ0ǜ;:Q[L]9oQ&e]??vϹ|ۤ|L#s1I[ [1(z4ۻG}clI#sBNGNsg$2!% 򦑹HX@VɪLi)i]'mN}5F9 3^yto`S@mþ"t>\ы"p5Q_`y%]D¼eB77v[4ۇOCU̦:cmn*#;R8/T$!nt{fm`ogӯD,xWhWWm}d *"p@k8r'j.,>ml2DH[G`'ƳQ&$EmW,""aFػdf_"52V b,C9gY?󹔝[wC Vgh2}Qy Y2&%)BYvdu~<˹"jDcH1CEȕ) H0;0![}Rˮ$N,AWZ Q$)W>skΰoA dhQx!!t.?Oe?1 a<0JU&.-L0dnXx9^g?b 5 9AU\A@nNrt)i+w"~6r \]RxAb !W sůM̶?XyTf8HRHS\JᅊnLm\xj%>%4dDn0 `Uo~lً+sFۙ^/%R ~Fe H)Ls:LP)f[: o=ǘ)yS(ٗB]dƿDYFKPI|=hd_~ sA갸$yJ~8. vQYau#.V@ bɺEkv@lr` aT ʸm"0yXE},vcv9HL caw`9Y\c%nQ)0RtYҩ! uV/eP#it6ceC]7y\[B[IXII 3*XrKd'*$Y#4ӴrLM٪'L ۖw>CUJ{HXV&& Hmsj422W$"dOHD.\$1EQve>W0?N-Ug 8:qLȕ9DM16q;Œpk?鵣<'hH8]]g'M H1̇f=Mvy7[@s kdqws$0`jmte/{`ٻFiUF]}i/3 ^"= %V<&$ ,a-HԔ!@XįBn "/0rf'hX%P~,P XmbsNkkkjXy}(9-:YSO_VRAD\ 3^|Fԇ OE#ƼSڧոoT'>c-#\%F?3xW/[%rERU:Fj ^n7hOW,~*,;D4X'&U W>l(XSH22,,#r.:8)k<.sax GUn+TAP:y$FsW2` MY޷肒ߕn`1#^V65sU-,Qf- j<|UPj5[o lIw>oOЁL mu뜁^jXzWO&_p3mlE aEܝF^jY÷ǚoy6Ɨrk<|%=>qڛV̛yP~;~we%V1}ބNMB*lo߳jʼn-\\|])yr?qʯ6Z0oujȠCנּ͛?{ (?K;HI0?HʸZ!w'Ƅ߯Ā^m|eBz=;fx5{6n\wod޿w}-ܻ8>[_ ?n* Kn̽[l"wSV<-L`u#bsi>wtXZNGW~Z ;nCKOh*>p|]atobί|X Bv֍ws!8tFLc%WDH1^wq~\qߣy^߾΀l/Ȋ)gL6zT)|Si/= N~U^m39t" 'G=v/l!VfR}B.+A)/u@Ͱ~uL``"[M;,[rI4GCVUaSF{@UcQRA\:PEo*I{Q !i KUt$\II!X&TjuрbJ1T)tjZ[vZ! +sFts: qV!*? ȿ{]XJrh;|̢\>H1X*iP~so11Ydf ؒdZbNpT]\f[G?rF6~ s|Ϣ;⇻!6m {/zC~[B:.^5n88)Ӎ\mw}_6&. ݈ە`a\3SYidnMw1z9d.RHR(0ܬ#ɤeFȢn ߳ow?+n蝿:w$V6FYG>+Fɼ{r._pKh$3̟.ȕ,p 1QhPohrdK0AJ-EĹE3+fva/ F֐n꜓>]*[4h)srn2aAm[֩UtQ/oZͼWݎ!MKuΥ; A5U j:%ujjnzQHQVPCP#m] *#B*@g Y4 &-SHZq tĊ'uP q*HsiXY[<+dA@.Z'(U6םÀ@Bv%IVz?c*y[bY@ `u_!Q<ĺl[ti,Gؖww]=p/3ɡHvDc˵XkFw-WoǔY@ T5y\v]_ ~ɉELrkw7n㦆 \݄KqrGأŐVw61ڮ4w݆3O^#bIF]]箛\ͧ4F沮I!}ǁ-+ kdP -e2:6S9(!^S=>˱"s eSTv?l]',Dk;^LVTIt\2˥89`pB㏌+ƞ[XRs/R )@ b#s#RpuU,@0`ljqAX_9r@Oc$,{IȠ58!&j#Tnxab$ W氨2؅!]i8uH$8a{UZ@#so$1_ `U+oȕc9e[֢̔(b? 5 JbufӶ-l7j'Z0)*p\IPCSY%|j(3Ĵ3#>Ԗ*.mM} myky߲ږg-,r KZ?gwӃb%D%# J8T@'A~Z1\y8XXV3e)l*B IoWU>1׊~k0l~snSu&E_̾-/m> &K~J@Wi} (, P Ϣ0(aD WBXG $P^ F+2ZL@rY6]XT*KC8Ӓ؋W?R .RPްSyҏqr]l,Y)`}7Cj dU>]G l~QHJXtF^b 㨭u3sk =VڅL U^FCޭš> 6V\9cc{h%נL޹Ù54wԗcs-mc\N`dpn ʐ02{{;vuB $T%+{g~sa:lt: g19DjoW~d -۷ji[Ft[9lb$\.E*AqI\KX%*bݟ@vc &-+` a,SXیJp]3X&nRa>F!$Qee7RN &ɐԁV>rHp9|8Xc|pc *|O;S`L.iF.T\ёBL ?fފ̧pIzr>U6"F;E se.6֠Snh͎}:cWޥhj!ki,+7]mGcz]pq_55]_,٣L 0+w6TZokv68 ȃt+V8."ۻCj?Ǽ OGOit Ȼn6!KS>$wfusN&k #?=BamT6Ndz#^+|YziVqy$iƃ(E$ԛW]?rw>)a+wfLo7mq~kӥ hSD/:#Uo.%Ejg@Xj, )yWJ IDAT&_v )flXEAcHV*-4 LHhdt~W%@z<'\ tPYSOlߪ[h[X)x +b+UhP^0 K~0Aߥ{295p]-S?]Qcbâϗ͡t_26i_Lt_?WY=c͂Ss˜맭|!s9~@Ȼf9'?'ޑ9d.닿ݳzᚓ#1҆'S)}/"^E8-JnLNPZFכսcLSÿuί}WC زd[eE4B˿U@ӽq0b+.(3]/.ڨJUչ9RnGQ}}9M64$BA"*JG)VAADEHbDH&'HH/;;sgvy~'3s=9\ s"d/>Z.*WQ 1h67ɀMOB>R."xdL_(6a h w+_p &P72S}aUy@X'@AB{\} fw{eo9'7,̷S*"ZӅ2i5a㬚s{ܔ'm"‹sFyrVHK*OD {Jl^S>JJ0_Qzu=nc*:OߩRGH}=IOtE)Xĕ.ዘXjypOGujV#X#̫[fq/ .unVX9LtIi~ (@(N$˰X Sa1aH]"l@)C.U&m6d My/jjk'OhJkP"%ۈ(,Gܭ5s7 uXK|jZf=2Cd>42qѐSqD҂/@[s?Zu@|gO} {-(g jH3 jKͥ!S]W,#&Yn^i&# 'xw_*B3 9A^ DBgNJ]&Přl~7k= $C5s 4ރ{-zzV^lkg '?KF1!2Hŵ(6uQ [- ])pkCmx-=!G}u]0QT-$ФHِ_{{EN5m<\&I'ZӼ;YjR @А|9Ʊy^;/l%_a~+ւ/L=E~m"ڊ[޼bYVYw0+З #Cb\ sн5n6' pæ.5s&dg1 E1|LX'iCM\Y3]d4B d`"z1` %t9ʗKWW$pQFz(mTDV\uceeR鐍̓O޵wP(:3~nI^C{P (QL1Fxd_MrwZ`H!~Iіk {LpҶeRڢ/|w>,ܓ^Ms죤&\ٳՒVLUعSzBKQ~C3yeu6c'TtjȒ*ZSn w.bʜ6Kȅ%Ð 81ܳ|[3bG-70 Hp9  H|^DCG$sYǔbɏ4-b$^%\KOǏ|Mіk~ie9!W4^cz5;ϟŞt +d%U?9nwVfKeN$(ä׵rAM^gŗ9LJ5lX%l~י|3+G&nG 8kAD>VދPaݶv+"A.{(ީp"F3AUH2DЮoԑ[M?(NJ! })'_Y+pQ5lj]$!\]26w?xM2>fk<.PTtP?zo9^FuY.]|_Tr:nxo4r̜^wk>wN>4TEDI 4qOD3rg c;q. 0Ϝ[CYWGs^>wX䀤^sg 9C^0kC=> ┈;1wQIb S{t&N28*y`R0Ym%}{{_M$) ^v/t́q ੩&J3M( aa"6 }l+NXsLvs"(D8JA^|e/ϜX>1kF4?G H&8=ڎ2THItvh\A $́C<}3bogIwK 6nk`1avg'S%K49P{H>VĹyz P0/=ܾ«)W3S@^fn+!ia<,='<.+%-:/}]&m/_\vV'H[>{c[.zdѮ9r/lT)h7ెJnmGd<3aOԮ);~2}"b =2)ʽc36-"Bm=w-Z1R?s^mgT&6qU7AϯMu /1{HV/inm9v ttJw_lz+*{Zv奥[:{ʄ,4I8M;KP͒somCy+~G.`uGE|mǔ^j\`xaѱ;_ZdIuY* mHhDDKGe΢[)+zʒ:;>"޶=T_527Bw) DP(ɠOƴ,47hORȨ!Bb" S \=|%^6a+qn4`o$ɧ!tjIࢨJW6E㏏n(]ԡ=8Q2D kA!VWnf,Nzm4Ӂǿ, ޡM~KnWq5q%/58`L}_r_EJRxqsm}aoAyYB"V}4~/+iwIgN#{.c]j9Yb<}x |'5{k;|y7 T&7[ZOR ߖCWiKY*1!6{˅ XtuTu#fOt j:6#;< Ylf0,wG=8˷`ܓNb_lĖbuz4uԭ m#6L>KZ A!"H7:#Oљ%a (/{t%7$VDe_!MkD$6Kn&}eW%pQ n AMSθ,]XN!f#0|Ĉ* tYhv$)o?L9֥=W\hH^BGS{ɕ۾be^w"I_.t6=Nv"L J\=Bcà8,[{ryN!U-xU^?pQ_!!XTuY@ť9o$#bVSѴX7![ΦJ^S~dBܹ9!82ꇑ{ʒAJse~EXКq$Տl9usŰ #o|$GEvh>{ϲ_Hi>)H'5]սVN}CE\wMͽ9^ɦX> ԝt(aD !s-.P Q'(f; ?|"vʾd 0S{;R iͽ"ٵy)s^gmH?]Da&#-Ȭ:ccџT5<_tD}BO]:*:*tKIBɶ>4]٠}ܺ|R|_Q_`=нɐjr'v!{C=Pu . U SfHƑŧOe8Qxs)Eԋ-kFHܤtj̽˸J/tzKl*x $*}> s>X@Z~/fWk!QEhkNia75|q[%vW~zJR=uQF켾\nakD8ߊr@!*G@\R$Ym @9J.HUZx @ k=բk'=Wa5(9+ (DZŒb(v:& wđCp#!Vcqg@:5wd%)q/tƍ"!)qr̀"EjlÍW^W xM3Z^ޛ=D:dʩ'>'nҭsr<fXz1 }v-,O&e .޳#<.~[6`C%Qҷ# yODI z$p󖥮I.G >YEesNO vᄈ2}81-Or7vx{M@\#=ԃ\R#E&f! ?za'y^M<|˩`ĒE" 顂"I+ =*Q4 eXJRjԜZwGnA!!3L&&yj) "(BbOv0()&]Q$29s\{d Y$$ Wgl5VÃԽpTyLe^w{2MQ@?<YY6@߼hi^ٗl!P~y7%RJ" [zQ!= OM4.f)쨨d) 4(*#ӆ|-}+-8vt.V:YsVx|{ϓ&Xv㉝}kGrs'>4Ȏ@wfdg*\0ף_orvuhWl&J=T8U4^o*?62'_ Td3F҆K/JMJ;%Ò*#VHgyj=&G'E((KF `68sȤTgǷhnUN{<5+v<arkEz=>rld{v 5z|哃9.=\zFBv+5p{|$/ipa *y./Yi1 jH@XA"+ʝlSAQKt㦡Wl1 *P$d gΕ ,ކ c17{g9;g^Q|<   }TPk7S4fJJJJrJjFlt$0݁F[jPB~+[49stv*F$d&$'f*˄R|zvY)ɩ䈐@G<λEJ:4FJJjjJ2b0G +/G=;]hJ!Dbu?)R*X@TyI>Ȁr j$.~R,dpE|ZB姤/N'6J"@o7 7fHjޓ\kۖ0%52?,8쫤x0dHd!UCosȻew ̬/GGobuJx կ_'.! Jq֯eC{O*oiC{\ $F7Fx oPrĖ"_%D%Wϧ_6BpQ IDAT5տ}TzaGhQcZ8?-қ'*?}⢣#lrZG32ZNѵm#?8=MFޤZOFs{ٓq@xs)!$!K"\~mԘonv[C7lZfL}|/'V :^ճSd,wHFynbY/;Enur]ِ䮋{r躐w]M0&A1ɥr6]B{0<'_sUί/IǶ|Jޡj1QN}EŝHWaA=VkDxfkerTV\߲>5zOJjuv٠ɕ:d '澃V. cJ:'0f0;<:sEgI Zmo=IF~.e5K؊)h`MQ/ƠD uRX襙}3%DHə!c, \ϹkmOlDŧlέr3|rW(葴f`[ƺYeC*1BWQ.Xj/~L]J1ȯ}]ag7} g,Ou{7|kҼ]xfʷy^>r4F lʯs=4׽^\&nk8vܨk+Tdmᄇ쇷(y?Gu\eV?[,Y.~̰?2 Ν}\ݴ#8@SdMs`&~@gu2=~w_Y*^AEhѳ`s__ߝ;9ˇIy}8~ mN9IEKϿޠv o0.! k%ҋ;qJn8wJ#{ݲ/MW>>Ts6*I4|>kj=_0'7ZTބwb?RɅY_W39Ό4r.pygۇE9 &j-%U{D¹JEj3K@D[X廮`)Q[:sS6n8>}ȕ[vuo?5B?9=y;+*Am7h&PƾʜZmn>mcX-1R[?)`0U"3&NEԕwdTM j=W>0n$$ rP\Wh\.l[-ya<7Fz Je-je O)Ebb bxo!]V zj2D&?` ģSE'ѤFyiOTJ 2i{^ #kVN6Am;~rkߙ#t,@~-1i^䆠YlW"Ju}*볯F"^ u}$|Τ(YiΈY6%^xޞhG$.B=` v<@p$:F4nR@2HZBNz@?1H)8bMQ70!N-Hݫ?V"Q z |h'[S]ajukY'bn [3]Rpifv $,O*o=sC̠H9~V(6II5$9%7ʒJSĿJDp.NFTf@STx'~H+}BJ`X=_oWB N&ŸW@|ah1MdVe>!jfEFbJgl~lf zT}pdn7U^&>4Mhp}uD!Vܔu[(m'Wi1}|ڦ-] bQ!ڀ~UЄwz7YM+i$[VixyE`G|I|$ş-ܛ^O˥W!݃ Y,9A65L8 7}?)7 8vލb΅>;ݡꘪB>0xy%s=?:.]k iVq}/A3)kyOUodzx/EOPÓJ IhM:$2$6&-ӹ2t"7%d@D`GPd"*4Cs+"ʈ:G"h}v{͟׊L ctF8O \|8DRo°Њ9cJJZZq\.t#Ip?a#=#gnyo`OC9o[6-fN뙷l]|>ukIL?jxY.e:5ᓅ]+9pgGf>ޅA?&jfW=yn9 ‘TAP#KAͲo&uc$}onTgg6gTQكW (| &c Qo7^|]WBgPCeL/LFybU8R5Ih7L8"wҘl@HLjmلT~(5׋a D :XbO2Ȏ'$eE$R .&c $IseB`^n ﱚ%v}۞~H7.٨so]+B0R(#t֎M9$MOe_'R뛣cچ(Yg_s,H6<:zY縛zaܮk)Nty*ݾS$s-3ޘ DG9#4#$6ָ5P|; itm򎥟|\k{;%sXgx(CIEFn#坚?rF7bam+h=?p '@*՛J>SMKCfQ:խw͜[y0Ձ7gzjZ~.|)Ezٛ;t|ָ6ks&8*@AWЭw./(3MmjoSSqDŽ׮!QAy̍J>d]1ذz.TBDQʐ1?K}_+@Z&=':wAD, $k|VcuD>H<,^TfP' &Q#.)-&7xTi*(A1)$j̓g bBQ<^$DDwk$#9rV"92T~‚֖1U}n/7'}(;Vf(IFJ9@!I3.{/vh/\,a@Rx5 @ 2߷+*_(mV'lI}>咿H{i-pzekܥI.hDD%{F>кcŷˁT%/587Tᄑ_Y<.B!MߚN+_ ws}y>=B t[>}{W9;ߎܩS)?_.saCS>c#>'>6{kλ|=|`?o<|஗9UH:d~b)ƽ:3on<';jL{BeVG^vaתem$XeDZ7#7 KO:#G׾bow^N{=-޸Wvͳ|q"S!Ĉ8Oi4| _rKftuǂ."i-Hy.w-,vn[;$K˄Sx$'Ո& $KWgگd}ve~u2{p~9{Ѣ2]]߾j 7d 9~},?5PEU^U5^迈[fb{:Dׯ̈́%*JN#(ӞSZլ8<*vnH.#qyhG_x[ `޲e"QALm\B8{'P#}e!XϨխ|{~L(lpnmvc.v7|X8,:lc֥"/\Qs6VȞQZ0h?3Z d$AcwI_p|\Q\!6dw*6qT?'n;Ԫw^(PIʅ[ҁ"Y 8I mo;un̽=$W饳Lu%^U)cZ9:3n䒔95#5ߊs-H. f)υE9!s?*Mi3~]v>?os鱻2K׷9AʑWl|}lCE=yc"tR{.6yZ&cW.mo~um1y4&"-%qγ!֗jILyxge BQs133B2G|Pnl}ʺ@Oy&OPd73K)^T 5 c=;"[31#Q]J!LcJtR7?SP̭`# =Ñ~C7l""`` [8zp`JQ1Id|bz [̀ZXHhy6\v[/\)ץNI3WCB=HT@ћawf=Ī#Eg\#6  El*B O&& H*;RU$HڥdA-K:/˄H{pq_F?^{EvFdz{!QPzgĺ: 䞺Jw̨,ͫ@!_{ Yee{<9rXW_'̼_^b:м'%y'cؚP^!'vu;ZꊍWP̔H]$s6u~JX "/zV\H0#Q}?Tv`~jϗϭUdiˏQlU{"\vDV^_wݲ d*eUiػ5m=щ&W= @v-3GwǨб-8SS$֧R+5d+o5e𷆜aЪ7WmRZ%eon;aSwbz^}~>TF6^`YٹCЮ{& gmb دRiA+k_R彺{*w욝T#Y?m^DJM=XSl' [!GUVjAC,BK?M zDU @,%ِĿkņ)dnpT74O q 4,Ls R5JdqտkB^ rɿUG2*S1ЄS;ɹU{0-o(W  qD $m1rEpss8RWT|wnc'W IDAT@Dߎ̇UO8Uq@RD`7,Z=IpmQa+n\74ыEZ3O @'g9IV _*][qW9$]}̂?9}oM;fv+L;{??]#ywoo N}Mz}Pcޛ3OѺ@wt@y~8~N}뻔 `bay /M,A>|}2P{ϙ=((msy),:PVÝXq }U 48qsM ~m3,z|W!R&A&QLAm=(t&kLQ'o!uծ>:  h5T$mܡi:kCqRdm nbI6 6S=Nq׀V8˰?d| X!@[ȼȓL'r_`@kN?/1[SqQ/2TDCfGKWDFw}Ih1H@Դ@c׬h0k wѳ-!p{Q4n ޣ-9\GF K!}Z6!RE"Upo *Tė/ᦍw2^zL31A߇p]-@wyl 5札3.Ӫhf=Uo_L_iBngB?C@2B5<*ҥ7} cD>JXIbQij )<Ϣmh!GZ7>^fuAEݨ](6|z[clXvdʤŔPXq. Qo)P䤾Po=m.=m4f ]C&2(R~%x9m(C#MSIƦ֝n gJEFgddQ Ԭ2w)#x˄'lYۀO)9,&<*y"DMhkH(  Ch )hPZY4d]C%[{4p(H+_(G}<^h I"r}z| _O]ۢWd/C nhO@GVsVĚg&=-0r1S#Ip |aUV[^9OT!>~ \4 BqrTZv5C KCdsb6&2)F,2@`̞곿=`4"Wioū"dluJ3'gS!Gf ЩT{0TȌf i3LpN&^'Lo IC3F}C`U Fv&P݌?O Xq|ߞO՟AB+Qi]aY#ӆ-5 JTSf̱xžILM2 sfA8T1oQCa'r&)qN+ܡ`۝!ƖݜBlCԻ(|O7$]Hj9_?FjZ7EU%e& F_Z$Q3c-0@@gD 7 4|W#F+}(yg< a$,e&C &zpuo9ߥ` 5zS47Kj3\3Fc*$"=QFf6ZsSX7xCp v|j.7S^! *ԽdXqW}Q\_r[ ip#\ {Xu]#~޻*V{O!U@͜zMm_}!gm /SUZjd Pϡ@jslѽwMl,׵jEkuh^գ;Ws-ݵh}SbZ&3Ϛԩ)-#_sV̺U8To>QLZg|!"T8v / IhH;{(1^?gd9sQ Zc#N}L]%cq}A?%T鉅(}pK(qmcʐ?u<I0ըm/O4hv9=XH.4z_M#ZqO8(-KBRPg`qm?^w @xoFYir˳e@4[TG }(榢;٥t d9DK*ywwx"E+0."$+X f Wn"Tͤ^ CJ/vBPdnYh`lSEPHDr v 04v[u&VkM.+gm}o`{fm|!(.4{եLGb/v ;jH[iQMj H"ǒe:|ugO dbAN?!BMP4:Zu,Ms Aq ~<"[ Hx~洞ߍ{a3?}ooT5n̬O_p0ce՛=P0 d9ܴ 8ȕq*GM9Txbfg]t jĞrkk, q?7dnȮ}>ݧɟ3ruF.k.Q%h\7?[Sυ¬ ݼ}J~mgЋPі̾QyP!Otpi42BA,/Bz^BWK)s)JmОƻZĔyCP`Q JhXƑ]+C(o=IXZ ;thPʲg.RT̈i1eɷ?iK?G>mȼwXxl:O~oJd#ƥ_xś~:+򄹫8vȺ3W}]5+ /1oƣ饤 zG]rPAlywo{ˤYYtSqXxU?{ apg?noލBQmC`P7ݖ'{Oz7 S`qn~Gd` @j8g#|5ҠNSCw͊#ץi: n񣛹z$s+B%T?{K -ݧ_W+7W6gN R+(F2[ι^+e1y@ uțn+K =xѹ;^&F=Үˀ28ec_F|ȭ5[&SJcCu2?ٕ:#}gJ0nuyKfo~I(a/*%<;鵨?W/kN#ӕ! :ˮn,8SINP鑻'%.6գw甃A-&tbӅZS'Ƃ?"XO|qk֨24 t2XCy%1T|f' P7$F X97p4LBM>R}(=Ͳn$ xSfm$xUkC~)̭񰀌%` TEU274fӰ |_aRT i%,UG'QaA?nVw -k5d֑\Yu'x؞^s,E˕|2RnFNʸhv뛁%;O I>]]n.۵}~`ԓ&(z5ϛW-?pl*`Yf~st'5ꛝ{z, @@{?f+C]~л Ѡ^vE:a@)+Y1aPZo9#.ʡ8 UC N,箞8z6J/2 FxjǿhJ#G/ed ;)4fS2T]aގKy v/_C03 FII¬u@(:/(Ү1S,}rÀN k%˂ 7)E-֢]߫5O|DntgyYcboaaV')ڒVkI5﹊}nHA"4~l9u \R{u_١;/˼>׍|K♼r;6i[p9wEn5:<[ü  l5W2q >E`$@z:hWB 8:іځt[Ud.tCŤV댾 OA\aɷzmż lsΥbu{TǮkFrD޶zlۨrFNOh߉7g=f_ fſJjhZu](̠D= ->Z:ّ/FMkhLP3bSn'jDʹY}cJe1ȐwqΨ7E"(.A-ُ|e޺pkkn/w"eLz%=FXr1nbW|ɀ΋ߑaf4P$&w"eE BA <)ѦQݰBD-Rv ss2bNAESI,3nK*8(-QJA*RQ}m~PÒTagkOѢ,X|G[b߼x4.[4gOf+xi!N(6"+BڎUW ),D aOr$Hq9e JQ@X)s*J[%@fQnҜ~m( 'KS/'iE*( sAgz+4y24z\Ͱv`W<}y79d '0dJuEw}4Q,X蠮uP&䊶YS:n c~qnAC売ISzL$=4փ[( ^'YA}pt\r$ Tw3XE;}`3+e.*TA,H;QAJ9{D:F\;"-Ee3 n>>nzDs {_1Ïui$ /zK ys$ xZ ͨ7ƷRX?(XC!5&I] ]' Bv7R}o?ò0Ă'OU3 ֮ȺAg y""Gwfgڤm~X!m'QBHpӓR^tc 2-80.ZPY`yZ 'YE(U*u]WT\@'t=\HIHhUh캊 W$9{iaɳE!38{.nQH6s~関M.L: P'+n4o*mW%7v w;e_L7;Zͽ[X IDATO?9^{5'k({HWxl7hX¼mkt9i[~+ohvEe+R!ߛ;]cvN.w̼.+&lZկ[f+F:uWr'^5֫G8I|B\\B||Be=oQH "*&,n˟7iBһu< <^ =WmmnQIv}^. Xr^nGQ!ԪEZ@R^po7jV{mW=m*xi'8B')J[k5 -`Q&ڬvxPpݶ[s"AːmGv2ZjW1-Iܶ 5+W[5XFx1kT:Ts> _{!X\a$Uj%W6-m=Q׉Ѹ]Is6>Qegw,k8 VmmGM'w.$@<~5w緿\j_aߌerۑ']Ȱ(n>֟t*u-@>&z:8=˃̋,uβwԘz$y-*ACvE FHne^y sUp-w1em:xWU6ea9!2hj`V<(dbEy'E2zQwǥՌ!, !YFIXHh րԥ;|#(sP@La)s|Ql*e`Y)1JPg=<.#D%m wk>5{?0^u;IYk% ܱ,%?^~? &B#!:Txԥ)s^DK))NyW%]YڭN 2w 2wM-,27?cq%e.:5N]Iu_  '/i̵7"{Va|S3%mlf?%< ~3L0x(J{JA aY*=N6 d?Z\yl@;ƚ+Z7ox [:cu|)"r}C[os9S쎹;ۨ{0SٶzXU|ݘGWM~3z kmRXѶK-LQ="Iᴒ)~po,ώ>1 2zvۋ?]<}{k6O-|#~xp{723c޲Tnϱ UoXܳ "eXʯX+ łyic<;'y n+9(-Ѯ!`-֜ LZ?CDPbz{"pcyt 7,GA) 'X#Z%ć- 5lYZ8z%lC*$$]p9@dB"'[)s{~p&1ڳ["XF9D7AGCOϫc D*F>jd_hh>iۼ:L`;~5YM0Ddع]W視{ԮeHA jTBw ~$D+ŕ <-&P0v2L)OCQ"x&ĕy.POB(+BP"yKJd8E%&ᙪ#P+H#6Р{JGvxk|d/ 2 #\H+kmb4a LcL۾d\F.I+Kȵ x=SӦ2uw*TDmh ";:n>ƴKȕXp]DT6; Te?VԫV8*<\4D́L3\ <@ABe) 8Oir7J^K:Ҝy2U(xFU\p) l22'j;(n<5הSP)tkO/m_fZԭmNP u3UAK36Jo@@ hv#Tp%?r'pXK4UV) 蒈p;#ޑTՍOE+n*5jA>϶m"D'w8T{?ЦD\Ԉ!6 $gSSՀI@e3aBSà#UA( bswT*xAEek+ e\BQ%dOB wp,BMH1;DkNi>"4;̓ wQ ",$g{ƯDs"qBD{]Q29E|z& Rq$2a'^_g 41:WtꄊGs4c\uW/5C#)M!R+t/Gsך#tp4cŧÙ[aɎKg`<Yy> HUj#}sc W=9z*R=kwr?БZC`=՝JO{3';3f Pp`S"2!nnȩu xnƗ?wK׷Lma\rI}QqiDYM*]He-Yum$ J:2a dj.tcº|Ԣ:XxԞy{fޫ7~6C  NȝTGWf%;,5Q4==l*#\9X-hQxw-"ؾ6#KA# ]UٵG@9#! AmQ6e{+Dq9k蔹nmuWxy42J;uǬb~ "ޣ7{VLb<}ۉn eׁgәsRජUUA{E#Ei5tʼv7wkR JSn]5oɑRԇuwAֽKg~& B`)+A6 )sy,\;_i <8thgՕyXȵHͨ^0?r Scs~җ6(sUW!"2t_%e9q7N_E,/yָH$ k|2í?fMo 67cui?*/&%,C}MV c3A6FedjY%1'%SM^䩣&=v麜 +K foYy0i\R¾{ QDqJYgi;5%:!*.22J%Kf:}D[/CYY]GzS&]AyI ’UD:(|˼=t%<u}q虳~/}};gͤm'}͒ʉˋLVTX,YV9bԃV=[H$W^ӽ9( EZg;QDTE ^8uG7h7bN,W\6v]?|7ǂ727ͤ-5LRMCͥA˯eF'6KP%&\`#L%͈#)zIRQGQ7g^143l]v)U?>pKFpmgu3= J" q":Փ!iGIt#*-y ƗvcOWDž*pkZ!+<[fA`' x >; dxd<}e.85Bt=gg]v0Qa[5Ot㝨?p6m豽oWqnZ۲)l}cc=WOB&~w^nql|7LбA%]Q=?^v6Ռ`{uO㏬3wBnyuC}7G[cnXݮۅVlllܼ9K o@!'zTsglP{x#_9d'fBuߞ>}l$?ڹw+c*\dw2 =jQ{}'e=Qoұvѿk{Ndm/c#^ ,Ih0÷Ҥ䣗A4(0j<̿<; >}VmMyD]{էiV,_y-:cZom3hN M ?y9r R+/{ӛ %DkmP=`YRyA69"g܂k܃gk$@?pCDж;-zwGN3/>S/:f׽] J~kB9XtʞU=Bc!fY=nō ۃFJKx.T~yiC[XnKPgvO;o]S{=BA[޳s.=-TDzKԨb'ii㸩IEpx#ȸ+=EuY-*u0-1~dS")sFfA~?:Uoƹ5K|Z'ZnxQ a~H AO!- FFNU{EM>{쳁VtgR<`W4<ekAMj։'@co˺q7ӢZA2W,8ބ!%ƿl̕i.rww?tY5jti||$Tfdy%&05 o|3okV+eWF5x Qc)?Lkz#Vi:yɔ&>霠AP6*aBA|j4 .ZHq~~Pھ4t9/34li aTG֭J,_]Yɷkʡ_e#1b_ۖwɿ3/Ϣ2K97vX)^A#{}ͽ*/@d_IGDm 7B&iqD~ _K:Mć~bNg[&}ߤ_-|r%ޣz`w+7mHP&8DWݣ{HiT]@:K e|we"ܱq_$Ӕ -ݬojK Fxi-3ȕwNY2v_LШɥ2fQ& +O.@ ])[B<&)-kLj^I sϨXE uSV-Kcq i"|}8V0WW/8{b}wev^~.e# nA7\~}bh)B1%X' u(ٰ)w4}zG'<z5׭﹕tў6Fq0\l+S=8yCf#=I߹h夂g7N^[bѳk*]Ш^{ӻ~Zz>M-V52Y fUocevXz;fOQ`&ݟW+O\~ؿmA`I‹]4̌3`U}Ve~$`wTL(ZⲎ|M;Eʾye K?3#&70I1ts {el[5D *e]& \? Lm}a[f/yɳۇvdUKfVnM#ޙŀ0Dȹ8OE:,UY5#q7}F1HU)>.KHmCߪ e~X2&_1 {yJJ߶> W2+74w>b@;"[d_}gA9bJ#\-މ3ƾ+9eM'G&Odߕ ԲNT+fzP.~Sς\^NӹPr 3173sV7mе~1=iP,]Tz܄Ԧƣ- 6 ߿ŝM7X|Jyt]Utd K֡kycƬ)r2SS.Kk9mڼ1cW=.,K<l C:fvGxeݎ/% 3[V*4 N:}v܇z?frR=>w{@Fz7ʐ%Of[PQ%/TCWVp"h*LI쁔>2Z-ۼ666j&"t.tPyJhd(i l/"2a K`xukݗsTeZ{ D3ٶs^Yi;N;r~r4!}H(GHϐ'fD?,] I[\mZr6+/hahv߰on-秗F.ϒ4l![`*$³r,Nn យw ED,IxoQ|Ò-Iu&)drIT(QyEzX A-2Bbbٌ75 O@I45; 8 6 ߔL%^aPcJ28B?}ޏf?dW mveg((S`OOGbI7n!E+d{j@(LQ By)%6=:ssM8j{V\[XtdAxJ '/Den#ѢXzGzW{c.ݼ;zm=銂/2XUa+rbI*/FA dB@,rm/0$tXZGǂ 9y7*jPgV DLh޵/ 1i9|ȿ!^`IzHm9{ײ<\罭|^IQZKe;UmZ)x5Wp}bIz.\IQ79Q3$fcc-\N~nKwl[7ݴRұ2 vJܖ*fwY96jVCt*3]|"Wċzj_JZ)smMϻWU{}h ~m}g G9WmPqb+o A9X)|+WKQ웕G IDAT}n4Û Rf*Dj^'|I "wh5-ck?*LӴynD 14^uV<ѦT-acc̶攋hU_TJZ?HgħJJ4q{"3K逈#fzA4c햡5y;e#I/{A,IOГ]@rå%Rh2zzp E~na\.9d&!Û;o1moƁ|BpkE&,>Vl- _[T,!O|>tF"rIBk*%,-?$wA''+j!^t*)F96/U~*3bv&).b끺/{%e]=\J2fpO~yN<|uHnĤ JШ.*::$ڭyu!؊\2"!|.:63!6\9v G#$n!|pfljGַ\yX+Y-վ|gܼj׈+<*Dʏ'|*6>G<)Iܻ;䕋y e_n#9]sb`!^z}ԑf ;'!Eww,eO7^f>nn:1Vq2Ʉre:%NsLOyCGNzcIK ê<ݴqQhh]󎜸(9ϳN }#ҷ^IH;jJ%y u缌FmmypRfJJ"MmhJA]T^^!UU.-/$/]o|c w[{]8b,SRFw M~o~oCB*։ΣڨEq啽x++4DHUT(9Clf1=ſ}Hq߱Z;v;7Kxz'xKl~%OD ׭OHH0džk;_M+ۯL|x _̬ed#B<ʡ~Mp1e>,+-&rP9l^KKnq)wFtYI0Nݹ\}pbfS&<jL)4\Y b*3xܬk!Ǹm>JɥoH 8Aÿ-@yݿ[x< O6N"hOȹO'ACj;H7#ad]׶ ᮵=Wfk$9)M{BD/ ume)se lnq(-oΝS r^ں Svɒu/͛1g Sw'y""\4eь [:yat>:qh0Ѝk}Oߧ z c;б_ ٕݳ'}PHO*blӷ/R˹w=E+UGvJaRWCw:S^ѫū-LY-,7SnxkG^2cJjr>dYh1(.|ۧI+"=53϶ ;k]j~PE}iɧgٱ7o0@IҥgMe&<ҽRBG$~~x恥{ Aޘ"U0GKƩٳtNH3׳֢)Ϙ %Ig'Qi-TQq -%:j,:T1*ի$R+J׎GRG#4YANBTPb*a  <F翸2&MYk 7I}@eP/J̛,5>޲ox.9J] ຝ|8s.'E1j6L$%Wz :s(߹pʈDvyC -q#*59L Ī.P)ʹ )T^ylZxڈPqfSTt ..A\͖tD #@M_ #eD@E ¿ Eu މQ'*rWZ ˓ J$(dvjjЭc{SMF0Yr/5bSNdAs-ScSXM4aJfU4Ɯ@ +q9:ᐤ`UԸ FT *90$<:&81 "VD?e9/hІv1lqY6aMlHb#N3.@9HuP!BW5jh8DWG"1QQQOJGd63PD+·xGQNN,l=<=Н&_ŬsDW63fgL;BW{LmZE7N$;!6]$-&D_V߈lھGTȻ U#IvGȢTRE( l? eh܊TvWra]ߡ;fXuK&.]: !:`g*UjW}p/ϛl WTOW-"&vTtGq׹"h8OE"5%u][< wՙ;Td*8J 6f8P^:>YTݹ&7Ux=uv8\1MvL_8o]i|-NP`+R|[W\"#NGr^(Q# /cOLh"9ERQ_+_HKK*vo~6&c_[k9rk$gpu.׮2_(mz',_'T'O iuP&B&pxXUM)E%TgǯJ5F VxݥouPXaXvU/ȁ%qCiMapt,!9ryVA12dEt`U O l*zYyH8d/^.G㹴eQɉA^+?թ/ DG  aUnu%T/݀ivw%DaBq 嫠՘ 3ug'X!3?DaK(ژ}^b]; ߢD"Ly)bg@2+EPdQٲ/:zY:Ǎ{ށ]`d^Ŭg\=X*0pNReIV(8ᔗ]ҕ Y7yqK|8A+\*XUxH}pQCHyto!T@cҿZ:,wS0 ~: ?wpޝ/)Wj$/ݟO)MFtBg cy۠.KD MזR[rϱso8@^4Ut ʻ QWۢmWTjW 7wU7DGoPK&%Iۥwj<ܦ^6C=b/cNWSԪ|kYF sPV銠f}<4en5y.b7"%yWοFJ5lԸ!qцa2>n9Gol8Hw?Ѭ1-;gI5 rn|?nfC3fZ˟9;Y)p u|>N۷sw+ݢ}D59> Q;T]jR];ͯLgm.5cs ݷQ*w&A@RY:Fv l]2Fk3pd<$n!]5Ԑk;zPF^ϧOL}9k#[7\wnܥߧ~sk&yچJ {}hu.rֺuϸU:uӀnom[<iڊ#݃GfFkp٨]~C)$ &y&ODB3u{CbDF$e=ݪΒ2?ͨ{%|ߨʦ2z6*YM';|_kBRYm: 5䬴ytZr9\hӪLhun|mZOAx+,UZd)@;_<6f5+A^vZ EWD W}z3΅Y)sK*P} *pDv`AQ(: &bz7)&}CKCo˺~7ì̝ FoyvoWLHN]:#N)˦5!Ļ%Y9r@a?i:e٧|XVo3ʯNK-۾8H21$&4ࢡ%1 .4Yu&,UeqAk{6F۠e.r7ͱ.mrX{Qņu=|ԩC_o)Z*G6߾f:3'}?sډ' 8coa:KJ+݃:4z`PG,D#;jcb)J& Ĉ Pf47*MŎ̓<[@ÅcVB7R'a{}iHE*uj)#Q{9Z*}x,_§Q?׬&-~i#=[Y/̿w*5}DyOTO&cJqO4t=<\ P!TE^R SG|[MP3d)'ӽ8a wIh+ Tjѣ2[A;JzFQRYW+8\$ҭ! '\M;>ok7(cbc (- |4a3 NfBty->6wmr[|+q"JQp$3/us{n牐|Iγ6Ytz|<$/_ҥ>M]?W W3b/y([πBT]By2kac3e-01J;,[=Maʌ-@'waWW|.]9}瓊RĒhWI6) XͭDR_ynh&%^N2(>B%4Xo{lEVR_y!ڮ#Y<|DzVJ8}`bɩ cJdp`BmN  fo*:v._T Xa~Ig :*AgSU#tv@f׆_;m0Y1ezYp*ȬQS塚A%fI,,yt5wTvӔc~VͰk~bGכ@mCS@[{uJ1FckżhiA/@YfX7f@ 驳d|`_o6mGcԸ`:~9mڼ1cVŔB,oXp ʺ_dMުp!GxH{qPplj 1@`eP֮D[T4eBIT-Szݲ2w'#_ܻ,+4ONe*`y)MwܪrӇ^L)N'J]/ODí 3TϏMdf+bDQ+;(j힓Wa Q Ijψn̤2WN!QMf >d5e[_8(|) ˷"" +|FuQ2"Qz DśQAbRi@(+էU^`yrBh?nQڎ[lłD ȩw m:]䌿TȔu[Ю?nUB8+e!6|' 6 4Y>嶤^7. IDAT~$Y$ !Πta>nُ.}g|~FUZf nwQFO_~TCMmu7C!qŹ(%Jam3_{,59oh˓Le V*N?cjnjI(Tܮ\}0jF\ 0]I9S^Jd)MY3è' Ttia9)]Ed)&q5u eܘfCɠFVK`d3 gӹ6+XE(*b^-Q )se&$Gu6.2~z*| Q Q݉WHziq9qVjܡזxDX}ˈi݌M-zuTiQ[.|P R wEww/]ķl-T]'((jM B_8^n1Q5 >4s%P3ĊGvxIb_gБhRJ u;zgy^;LJE6p'ΖS.dXJq⭜W_K{Wl1hlܳgn'wi{:њ)t}QקGԠrΞ^1tj}WƏ}s;|ԡRY8H@ۑ̧^ȰP1!tcBf+'"r?Qa5_ _L<^X="EZB 4 `/R=a݃2 ^_ǰi[G*eo^dy Q ǖ~:LYHK]?i[G*eCX^Nܱ3~K(䦴GG?XнmԲ}[1BC{ mm,\U׷3{֙(mY N1x s+^#yԞMr68k31/}2|..{'ɳYC9:m{P)3nڶ%̧RD摌B`除Փ_ѷ_9eFƉ3Ct1֭ 1p%eB҇DI8] 4(x#U&< ~ 4)k9Ъϭ]&򀼜RA s%FDr9$P4W{':@U.^\WAEѮN&ܺ!rvxOUSpa_ -&_Nl Bx CGl_{yDp]EB_4m^L<+jd]\0;&Og*)>(G<+XFXPG = jƌRQpUg:jO5.g`E3oɼ'jKMl^Qk!ZN:˰&F /U+*E}"kE$hH|r ? py"؆LkD6Rb>b$ W$.ˠLFE1mے'r,a 6/A\&f{{m_DEӌDG̀C(6o_D82YZX|gǝ$]8CT2:UD COHȴW+"\:05{#J[cDH@\ h 6"p)1pa){n %SQmI|bT{HF eku y^ѹ& /%3 ?Pi 7L\ݥRm,BB\w.z,Z-\DUoThpRm7E )'+ҿU%&KJQIlk>o?(/ڶ[?EYit^ֿU/5$'z"͉C'k{sd7W]P)MQ-? "T`!끮?-EKM/{SND,zJ9(EG6%.\tjG1BLj9Mmt&7T7.> s`⊒9։[svT&lQb2E {VBm)#Gi6͍rBUFn ;9Bq)]I&#CT|;ُRMqb)w,-rc}lS!sVpwX FQMC08Cѯ[.pLޑ<&AVJM ݮk3 QzAT['+ Ī0 =( Eј^oB(+9kх; kTdxQDrQhRj@y((ؘIMH{LOHԥV^Ι*<ӁR,fȚ;s|b*nmUƮA(T "@dfPE-(("w  cl1QEz"(P͸"lf|!+-d Vӹ"*&?<7/\=U+F\FDcVz}>on._q{WM/qC^W:y|_%zo+!N\+J@ ^-KK@pҢӭG}W]~/rRY+~| wpS(2p8 VeS[EU0KCJQR֥TeSGyŰX3OK;:ѭM 9ЦDI٦Ȧ?I֟'S<4! #-BBw.A .N,VД74_pڦA\.¤qy}7.QLn)5މ'ឣ:s;[JԽ .|+/].i E>{Hq%fZe.E c.)*ԅ:]t>a%_3ﵘo?^Y èwƈJlNgb5lŇ{#:oV@T4^aD>읖#]\9{.%_q?nxVOZm[OŤŝGXaAu++?bDߺr2`wƿt F|j៭s3;&+??N_:þҹӿjlt 9,qV{%@PXP[۹@]b& Tqw{2X\l?mHֻG-T{RԬS} WݫXGS_ۑ݄#-;T>W90; ճ8vml#;tje`N mGt9k 篞8QG{GUlKi@ $ޤJ7J/P)H $@@H(! ofΙ%yL6gΙrÁU{tTœ>jzt^{9*}+ qR&掛08 VvB+ZNB/:]aޑ&=g/ѫB*}khڃ O6 P1~%1ao|Ug&KEE2v  &O4jJ䪇ȍPy7߸{WL[z wO!FV~u56nϧuv3:6Fy^QS4xʍK NPkFGܸxr˴z7՟UpW V[*u t#*~Z up= _|R"sUVphrcר7Y\m+@5 V+?'ScS>X vs!!5>:W媵̥˲SKr)d!*Ln aAR>VԄ(K2ƋYy >ZT.IIY35S٨!oVۨx30o²Zvt䕓{LQ8_l!LB)^fܳåowi?zU~ϦQQԼV?m=5<2hh}` XFov8烖-C&c݉Ϲy"R,G8#Һ`sua]I-e3?ϷVjܪQ $VS.ϤWY,FT!ߣh)Ԡ[vS {4}F͌nkNz%wE1`ъ4Dm/xXQ. jw\1RӫL Z!_LwN,;R"߾? [o|bqc= {{m֎ܯ;9B@'Ts61<\/߃ȩ>f=;؝$T=#3K$v$UZdEFFATLKaryȗC9x!r"<638LqFˎ?;(PG$_x|UqpD_zZˠuE&qh`IBqVi`u;,|+jW7>y5z;/̳ƧJEϐ>_5u”5a|OU;'tUwӟޏ;qۋv8^±Gt܋]O?W3ag7}`[.l9UzЫJK)3CxɅs$6tM!wi;K{יMYQR׮ m|80/d 'R.l^ Ix{="5jݏ܏f:q\ɐvoJm{8Pk3MF tW[8|"{W/=yHhn`ɼZd16ɀ:]*+[0. `5#zOm>)LY4{ș~ZX21Xťz͂-j4FaJSgVMpW80ۄ,#I07_Mѱ7coFny B,{pDJ{]6ݡBs 2}i̋2uѱ!yJiH񣹢iTCDw-H>Nʸf%OnWnR8p˹Q1QWo({p"I| hV|R1€4}K'O[)=4X!X  Hpkk6wk1RY]f2H[PSH\J+A $q[b *(&( Y_r%ֽ|0Ў;M97MZަqݫU[ֲ>ɃU|eVfǯDN^sѽ'JKAXRSVVu!5#ѐJ$ \.A: $%+±ɨH¯IчrrɡU]~;.ۉ$IZI2S,7фjHnɍc{h۩]N=>^7#Ͱ [J,vu#ZeyKqoo׹}N=ޞt<$v& ћԅhwĿŶNj6\hϧn'z׭gݢB{4@]nh6P,VԐ^;b43߉HGqmv1ѽxow:`Ymv,H!T/)6wpp|\.)Hq_E7bJU IDATd% Gʹ)K+mŽ2i -} 2yjRKr;{ڼo5e34οDCBة|P/? B\X@jhxK-`s[6.1iyU<!0pl6<|<4(Nr ͢Z J7KNC[1Ce{VCZ;H ꂛqV ؉f"t #~3qPaEl h*c}pF<1s~ ǥi`3 j*0ycrU4zo=X%_nWxCF=:"J"5avc62 ˇUWҨ d$eYU1h[>ũώ@/ȋ2 mTP˨M%,̲_QpIƣ))e`$Ɣˇ~?5U5~-vkɄI,G)))E^Ɔc8Z ;MwhQ2-f` {%y73󔹇r Qfo(j5a#h\(s'u)Qo)s0R&ǑX@\~Ccѳy#{Fw}}>q3޹h"wFg{ӬPtHƈw?l~v1Z6'uƼ%R [mw> E:#]vrox}u5;H*!R`Iu7L!ZMB8:2;E}c'hۑ$]O}Sgc=-s1V8HvvH2W a(~t37s:39$LզֱOebck4"vvGS]xE SSzdgFDfcFy@fMvm?3rX(ou^+)jSAY?aU`;b(.ms 2?^0YI`!iX??UGϵuN{?e퍙1{b߾8];=| q()FcH)^e_xX~#⼘13LuF-K6-\b6zU8pÍR(M:~ʹnt-ӄb>޶3#)gF|w |K_Rێ,g@PzfAg}n*{n3nw n~YAs]?ԹK_sX2Z. e* Вm(s,5)]L{V!I~2Ԣ\5fR**SFq`Ea@E[}qSO2wMOo(s/Q)s [k,20%m;>Ԛ35X [dh{~ҩUox`YI"9Y=ty;;is5N"(źRވ,q@dh5XSRm3-2塙n# O (~zzB6p|g{,wowrIK M37/SIsm{sBg{(6:|b2wV@nkI;xx9g_6m|[`݀[hT$6rY-\q`m4wm20 #rN49ѳ!1d n$,qL^+bKl !1o![/Ξ{fm]&(5yޛ'#;f) _ί/UŭߛQNjLs[Dy[zxG_tzRcQ6`\g{(falN޾-;{V+5w{gw/]|T$ RkN޶rg/0W2 \q|-|p8):WuCe U%Ui#GH,|P@ܒNY׭Q&?v;2|VPsWl7cW,&[p0:1gwYGj쪟qOxrecGPdIACZwG%W_KpīRIW۳'j hŠBU@u #FyPR#'X80-gYYsI',e6H 2w%E䋠0uI6 hORd@HBƊ'Q #W0Kr" ۑ\1,NRa+R9nDlG|Zu}O45_JtyB,Y=\Y6!rE U e: GTUj ]RÕ^ ܐD+n&jŠIK@c )DZ  uES9Eve)1}~ݍ8e&A bP{cuˇ9+r%^BB"?1ǂZF)3jzIA/[YpsG"W;Rh&FH[%T/ŶAE02PEX=בrw)uKOY`S +rv*Ϭ!pcOrğղRs܎Z0ӵU! ۖRGv%ȁtQj#*n/)%iu[qh7M_b=J2pV+r`5(pxpvavځs>)No?[t,QCwEPYE"/IuUXz 9ù_;e탈I.CN,?9s%qQƂd"A$k^F!/h6y_qr*Q.^},J_BS@ gm)pTx2b rڐ/2nb}wWG֓"PoICm麛++Ĭ}7jgZ |@&w+R o4vE*9Pbwd> Ee?~um_9@0kwr 0vI*;|f-R&䓚C)gC髽e43-)uS~xzB4K-n>mJi݀a2& QWcSc䲔F&,淰@IR@_}eoY Tƫ'0!H_W}o ~g.?j ѾkDjS+SCșcoF|]֦cH&-%n>P&ujS,,v.GQ|aˬg/aV8Pjq-͏㘒-WW2?}ra~d%C\tP7\X:J ߫`f"1Pf;LI q="\ݵj%~nQΞ蟸UG[Zt?K^KX7OmU،]~y%數]rx+7FUtw˶}#:_{V kZ~;x2ft;Wv/Yڳ^qbPT6z3?s:wa|݈V0) ;-30V֎o^ʮEeãJ-z>I=c՗$%bwjNQj+uлO1y7Qn\8}`ŤOn݅3K{D\ԵFVG{UHg3/mj7!姫Qb@(O=ztYuyܾUt[KݿRw/Z:_$6^|F.Z %6C0 ƟNyv9/ga o+ >h|w/ѻm}گEBE >^_V%@'ĚלqѢk{E%@S4~л4Qu,ƓqQ1WQt}>sxFT̍8.ʭME{~Z x#HZ; m{" 2^~1Z|d^A!'?i /'bbydUopR̅>7˿Oj>Ǎ m;/?~o/G^(v1Gw,fľHn+.E܈w; .vzԵ,/_NF^~l5/P鑣[TA^U+p R lqb!5^h0724~YVj)bf\fW 4rI"1;n(V}u%.X{[w`J)hXEK_[}o6kb7>Pi;GB]So 8=gЉwGmsƬ|_9LF+D[E{1& Ϯ- jVOTz8&A|+ӿTҀ7ϱ>_+9w,Fyз%ٛ)Iu`@Sv2)`QޔXUw3oyj.OU-moܳiʒ_o'Rp8J۶ewO,_~E{TU<=gOF 㿯XEs? H,&ڥR$M#P\x@9㸄)(sn.C1`**PZd/xTnpӪ[6mU߮CN'VN6`Lߞ#AOGg? *.`-?^&\sO^ε5z|~hBHfԸ>U^tvR)  )*Y{ĨfOb;vٝPdhk>X~>|vrӻgn٢MA ekPo~~Rh)Iq.6^-go;֜+xC{W9|ɓ[|}w\B* yTƽן:'Ph$*w:ă׬ dۅ3\NՌy\bz#Fd4(34<;O}OeX撧brDcϦu?JLMf:)8&0E_M{h8X']IQV#qhpFAL7~Mk`MrޭG`Ok^-Pp:ȜK3$lUs\ăo'U4*ulcGi[6׆s7ξtVyًv$ =>Qp15?v;%=z4oNJdhwG|!|Drn<)r|xLTVOdy㋒-&2W50s7+ɪ*սAMe҃27E1u}$_:H#-3lY\ Ǝh_u aWrvvҬ%/Y"F=-_,Y%aY08F|4~½rq$fjkUh}\x+7[Ch߻"}>^&T (KD~rAuVtcPMr⬌g,e}T"j:~_qv4'П|!K%#I 2w5_ϙ$2kA1^Ѕ+c 3bCx ʒjwuB,_H8ρ#zp" -[!qVpMB/n1k杧%X::e!QQb~=4@ο0~j\8`YZy-=HE[ORfvj.2+H'L$o/Ș3+zxj ҇ a55"rt+K2A^d)g7=mzUk~nb\ʺ|3p+>5+ɲAdD4F~Uڠ:kNmDao6h ){nY|Q ,YFɯ6)KU6oB'q'e kp"F@ӇS_J j;i֋,v05 1yd%۫4 !9^IY@> 4%5CBa學( j7Vb(t9ƥ !xC Vil2c ZSRn([p5AQ@0Eض ;pa7zl5A"^Bj횄O$)DfO+h}R ƷcOCɘò8;@/G)G6)Yb3@Q"U_-Ym[{25Y! /7ę`1IED>^ GVRZxT#^EWE"2b+AɁ=/=ȷ԰1F=1&7ɧvKr" e\"QWVcP-@,$TR|ex'BqVj:RJ0 ןgZ 9(r9X#c*~`쳿u]`yd/x܂Mُʣ?סv#?X#I&=B&uo^A x z}Zl+tU&eR0icMO|޻y*;v}O;ϖ>ͦaMM+}r=3+{h)MU; 3p*Ns޵7>ԵNٓigJ[L:YXX~|t"סI"Dc2ʣgPRF_C_ˢަqz?wxXftL&Ih:Eqܠ׻1"]`QC43;5zAUv7^ch:u,܍ҿєuj?Y|mg~ShxuGի nshg Wk(&7M>cÆ}f~)=ȽpGkF٭:YWr#*"5tvWnES16PZu|ѯE* ^'/!SukMQ'Vq3z_?- Jn |`djjwo75?pI/Z/<+F\~s/Z΁_=Oylڡe!:L435{t4x5y?[>uz yGLd#|fsj9+{:(_W(j,33X"27Ԣl@lwFDЃJ*k,`}~/_'PqQ|_g \ * +G[?xkn)f0'BS# |9ejd~t{?vj h 9~?~'Op57W̟~Prjԯ u4?صp[+vŚ;=,?rS{'Wwovd9pmN뵵1.|snEɧVO:EN" `)1.tT^5S~[)m?zoGf'^w42PcS@O(s(A*K Y3N`;q볨q'lMrl}s|g{(@̉wbg S|eV\ bsJK4~HX^{M6?æex~Us/c8rNgOQbU.$}7~~~1rW&ddPOI! QJxa,i{Q󏰡GϿK{ӫ7u[xYhn/3,{|VGDpԸ'%j\3 <|xh8Σss| #]sYzuϖێ!.:fS%wljntż9mE)|B@ dm;O|E[R ,rA!҂ +/pHUespmUn pFYN%]^t@yژ[kޭ <Ɔ("i(ǟ*Hfu@rok|?}2W!F/n-d$cÓ:S?FSVȓu{T z;s-Nh"'w|^$%,fzcWS+m'UW[e~XMUn1D݇%4$S@w1j8r))& Hq7,@ hĀ\˜ hTrBTcen#Dxrپ()1ZxLuxٛZݸ_Jw#Y{E sCBO|! 2D;H!z\=2cjJ[Qe nG]KWAN'30nRKL`#PcUwUv$2L|_e,5zE?]˶ (Д|>ЋNΡe~E!.%0MBj~5H! UΕYe>.$UPRU"e%/}a8e?}\I0 &)tU1l @VcX` 6;=SʭUvE-"U v nVCؽ  ȉ;ϥܗqfIՈ 6/WXGNfI: v ®+eB!@ڒÃ}rh$ns# d̒ Y {.A-b#bn?:Tl$4UP>zL1Q $'{6PV[yQ]2Ն }qP-0A0Rs*҆Q]HnhE[TWH@r* !kVm 0 rdyKSm!cbc4䈬 P!dǥC-ٕkd ɈH)$/M-$I D0OtߵB#OEmRWT⥐7J< gQ37[^-)sWTb*OQlA%k*PIEKuoJn ~IOfڴWn#;wɘ0&3O^UxFErY-Mp5s1IڕXSgI: R gmqI;sI&:Kh)Tx흾S^%wá_o?u=ZԬHg_|귏Ug߫ˏW#G<”@uiB6Z70"k8zv.m0WoP 5&41O~֛; |Dɠ(!/_YA.1d/qv=3bt%+{# \uDoU "Cȡ@%lƠWSDPؔf)ʃkMe"$aS1B,צHUB8ܥS{xEmΝ# #ߖ4/Z"v5!o?@9ڵ~}1'nLaa]4[T.I0X25G'\oԤu os=Ny@__+wS}3[a"fmU(}NQnJK4rϦ)KBQ7 &+H.`ڎ^mۘhu]͓Ԟ^WM*y|31!. B rf'g Js鹘1 Fq%a% "0_N*V;e2)%dzL|b<c5}#Z%4̥Ԉ;W]`[P[H4+2KE!MYzL_jdy)j,%ibsC{+h1Cj\wd?" _(* { VJHIvuLഭNo]½4X+%9͇RUVIf=Q/jDj*Hj??qdn$koRtIs&wc0 ac}ۍԲ01f֐Cd#⼪ &Zܕ@7뵮l@HԢod:(G43oۀ&Fڶ>Y*VSw#6"UD3!S8VZdJ%]GBb73}H]#?=*߀bC7up Au=*Jg,?鏊C @3 @.Jh2r]I3sJ)&M0-0(/bJJ쳴ds^;lPt8Ip6= ٛSPqHiwJѾc%·eqC9gx{5W)J7$`o4B05]_Z{Nc,&P.}*{լd@^4h],qYU-y7S7?me:?E |ܭ%aGg36jgZaEJB5!ΘבQӃ#RN1.~9kiBm;dH g/[ IDATll3yK}Uaaclˤi@޶^Ojw>m|.HԸ>#gޟ<2FeoA3Mkz~e65?ȠX調2 bΜi}}M @tޭ? LײL&6RYU3$Pt4 @0nح u`Pg(0gy`y_*$7 ʢ߈*Sӂ/3 @z^NFg> NKS: Aɮ?dq@@|3l 0}⨁y.4-*@Y6u,VWFlԃ7nzhuTSN:+)qEa31>tRj2bpy[=rϟVѳ - l6،?Y'4dP fëֽJ\pʳ XQ"!VyM%3+\#(R!T+PPe"mQ"S*ZTzS2!a ,|\PtAE%w"K@E f949]k~ ;d'Ub $2W_faVױF?%ԓcDTiibDG2;\xqE$33 DM,̱8ޘFktiC,6{Q:*%ɼa`c/ GsTýȱ'r!D8W3r+-NQԝ0x%@x!Ü+wHnzQ`D!٫ Y[#D };>7#74# *~QnF\nLPus*rg09C@-&##]/H*dGΒ=ܡ3Y- ”! G ` UIQ䐄@T=AW]X^ϴ#ukqeʙU}8p5^0!ACrȼY̺KOv 1.|+{i]|A<`CE"ɩ#HDM#]]}PLG·/GBt0QQ/@',KBƬf4gZR"ʜ8d%LX0)uy@gjrPuqzb/bCJ OKJl$u0^\eVfs˳9G?f"O&Ky_`X0 G,tQQ{5C^ڀ Yeh:ĵ]}#pE)H@@!1kzcV$i$DXH_r".*&oʇDq;W3ه4]AMH`Ff6vҷ,Ѿ~WMa<]R@_}ؚ/Qcf.?%KRZmґmڗv!Nz2SS@sK!2(j 9;_LZ>L!HCJhP F1Di&S!_F+( U=XDߎw])5BF*U싩@ڮD4ٓN= PPr K_n 3mq<WSG.v(B ˯)*Ɵ(s,Gt&>(zť5_s_S]g0 =)-czJbʣER*VR0JdF3Yz_?Y9xyc9?\~I0C=DP<\(nZ6j)Ag}盏ȍ,_( 4Fe27Б?S,1eH^_aKІMݼƇa)_ѳZ92+I9'z`_ˑ3G(>qV[Ujm[ߪ+hAģ$=DKܮL(%k`6l]=3eǷ!^e(s/Dc!Z7}kh!ƿXO<9裼IǐNjOXY BJkPYQ`1ĐvŸ*{ʸ0yY].#?ЛEoA7x&Etڙ^C MqH&H"3k(vS+8j(soQ梒l3U=`\X)sicY_-1mz<gΪO] mNf(sK/*5iO]<}wd-c*]N+3/9.-KO2^5OŦ[-r?k>x0\6UT j_:39̍6|OMOMOSW-Qg+۷vi7jSAc)o?Sxt꺔%oKn2nLho;%"[;9u`"ZIܮmklᓇWwƆBL6*~936#l>S CLBܟ<-j}FPưX Ci5t!Eo"iQFt#_ċ EiB uD6͘mP;սGE\IDS5\>뻔}${țOP۱Fu *w?SF-3DPw`oF1,u~M{\xz%뛲}HMܡl{8o8i}*RP]q+pO|R_󶶷u?O%My4f1mۑEJi&KEd^ʧb"\=b{ê7m]5Ox@jNM.0 cƦtYuՄät.p 8t[ DH.9NZL6uPRnuB-mps X-r']Rj PiI +z^iR rԒ fe(p/|z_= J6Gʺ'Lނd=軻@+?o|t+9*A^7Z?S@7 )R uOcI%yPʘ#\VfkcS և ;++my?MZ:c=Zi-D{b%(+P&@k6b":yHC9|µEG^~rt.}ʬt+qi:Wr' eMxpany8vpw>EQR@enP}MԋG+ưdQZ +Wݤz6x, vO[/zMJT>aSF)s/#4BCE9bCE O"EߺqܹAڮEy DWG6SLw}U RΘ6FضuX$eS%o'cC69 G/ .&&?ľ@@4p%G|>)۽9v D4KmPHTXW<{\XM UA`Rā^f& ~l%ٶJli.F7xL9y۾+M/t}eOIبk;RM3o߿2pIiiBm󵈹s<1hݯA#V9qnjҤqEV;-e-2>w5W[ڭEͺ qK%{ss/^sp?i4}B\dxD(bi)@MŒ5!Si'HR {ק/H]GaOE}m гo>Z1p|tj R5kpR|4H )hj~se}DÚagfU(kkVq}$*N0یI e$nQ~nTxe'?v w&)3Ů✠Qar=Z~t (@WGQ}).G0씝:奩o:/_lGҋB[.Py¢5mx]_*WöȔrK0}+<ُWq܈y' >&s?v౳#_6n.l*' j߾?=d߶4"fAyOӺ hhvK S%"KaI/Y p_QH.I!o*PIO~;{<4]Cr`AOeWo v ~CGlQ/&FPBaԈHH= MdbC'qQHopQ01" H?V _^adjYD`%rk\BNz ]\ =@Ɓ߇4Oڥݠt$:]k#*'M6P%R*kᴃ wC/iNR|^y,z?z!s )s]c"UoGj{(<$~Z+P:赒)7}(px'&} ,o,Q;^x#o3凵voڶ~th:Q%<{jRW6 !O~yBAFeMML'DA. WPIxJ#.^/"^o0:?pvDN [F `#nYavPP.ĨVouw8ۨ$r4'jJգ%"])9gl^uwْm'oh tʀ$LsBX268nRuNԽ ]yqh^ISlJz6_FM]wE MVD3*Ԯ?~!;;;DqsLeقMbfT}9wEߏ%ٝOX7B8ɇ" @v7)s".Ǡ˚( j/Sꨘ^R0[U@X!.Ň6V u)ut1RU~ RA"p 8U25lG%?h:ڀsa~?شz}~WE]E&>!2,0Ǧ$sӧse瞽)+?IZ~[LJ:oc2sSSC?ݞ-[L\?kyґSA =J ,0ѰKzۿ6?Σ]E[=p~2})kJ|)' 9m_[nوIWlڶk߽xL41iު]wzg em; k˶޴}1E7m=>;7m߽iCpMwoڹKPK@LY~x_Qܹiۻf 66n\6!o^5HDrsm޵qwT4*vHl>hH~om_OLG!RL6m%,K Q5͢En :dpRgH:tsI$7TuFB(dޫ7 eVqtA ޘ6"@@B>b<Í~ڴ,e3!Fլ1Fdك>NZcěg] Tr%d#ljވ{gwuJ t{˘ e&-_J~e,ήh'9g<(I[;tSȯ_\u5!:v#>m9rS{Pw7i`Uc|9W}V :jqq7" ZU=Q@DP@v|FK V59m8K[|V|e GOҔԤٴȣKW)INÍT8wәBT('S᪲`)0E4J 8 YI$e'DbI(0C'ҹ U\̺ެ?b)sQ_9"dIY~_{o_kO{֦\SSbIKQM8yϕ-bɋw(t(V%wbeV6e.#lRyk~{s(XO)niӟ(sC+թ gvm&#W.Xt YNQ'Zɓ5#5S洣#zH %S?ޞ]wzϺQ7g期JeTj󶂵[{_P$LID޽kϪ\W? q|$ O"<aI\BP"sSuǍeTT!jCe2"'p8qhSy6\ärA[ +Dl.±31PC>k (]N9:`ޟ}$պ_@Y(B1D$仼'Hj13DYϞv<ܔQJb.C)bgVs9f?F-/wI:d4*&g*ÆxHm)@-P5#C4 Z%k*v:LՔZϬ2Y l$un0~)g6@, }9&EmŒM9 8o2wnفs3Df f1#i51]/1DSGOY1{ E4gvk(+">k/V~P=41T T[&.KRbh3 tM(}9}i}oU5r|h۾_0k̐GutwU ; f ~ '$`1'O;]Crc5@7kr,ybēj!O`ؗ1B1$ӷd,\ks]s>K[ОPY#t]xʪNUirG&B3T$V"e *6TDAH^TM!D|yeX(r|ʎ/gCtn9볝Ӳt \ZrTU P6l޾Ű !<|^C;>jJ(4QfPʌrheG40<&"D. ,db̯Ҹ~=~ҭQ e.M @ A?\귓 gK-DOr[-u9ntkp)su3\N֊B{%M\A7GX 6/s/,/hz 1qօ%K|j0lAN%d@v*7g_߬Z(?r$API(kjٲteSα4z@EALL‡OQ6- T.'G&Sf4|*ɕTNvb3r2 θ0z PsT($ft0Kj%IDj3@(͸_fx-p20y۾+~xōWVBzWnӿ ˵Vm 7_Y@ 's_<5cM"/0V4oGQ.qQZ`2~pnkݢ=&+OR(6׼>{ͺ8µK[&ݚb>X|!@jSZP) *'ս6Us>IBMe]x|o'_P#}Ɋ OLfܣܠ- ~Wm)Y%lNiDM3&oRߦQ@ѰЧ1Zn{`Uݷdm~a/tk^V.C.Zto7k[|!-hxc#륚I0s Z}&;kVK)ߦtpg0Kx0{9n*a]K~ {bd'̒D!˷ۑh`"Qu4ZQ,ea̤bd  zD upk𡫥iROD$A۴Ph!T (.Av0Yc/|B0qCU`3h ^vAHJ[W^2O+(R[ ˔Bz_n~ayҢ2WHxg|&_\56]GgUJVŒ;4(_gkP6D[Ur"JSǾ 'muҰLm^_d_ήNy?'<(49ͲalV܄#uŢ`XBw/@Q72y3ǏDK$Ԏӿzw.0v f+ MYdA}^PX~gPw/I9Vgi_ SR/ :A5{'_d0%C~:חxݟd@fywԬ c_[鍟uE7@D,Z?~嫵gf6M?yATtWGǿ52iſ{iމB:  hҨ'ɼE6-q8lR<]h@=A1Yި!vK0b#BK79$Wx2lFj@҃P|KLAlQr`%h\gCzU֭ڢTx^HPgI=Ph~xUT8Rw JTM{ Q+EeR@i= [$չ~.PtVܣ/+ڭgw&?}BYAbTPZPS=j)͎CQTسqU#1dMF qcR_7j1rٱ.gZ7wXmC1yYB7[r]e+&Qca!yh@iq(:AxuY@ٷ~d jw2q!tFkV"I@jc1K"(e20ʠ֞d`ƞv5|FY!58T RʻH\؄4tkG%Wiȇx~ 3 rDwI6fP ->DmۡFwD9ڬA]>ZˠP/̺^Y`|%(P,[71 80mZrS:Ȍ;18 ܃~e+C 6HKdVLvhH1R{"xwvOTVgu)y0Qy{7Q{GN A@֛3@^%y!i!X.2FF\ I &}-h:n,oT:neJ>$XK$D sěf"=$jC q!G%͂Ex rX9(x1x\B]"8RA`NezNA,a!&+4:Op/'{S4jA{$:4 t_S۠ 2A59= d+s:Izx1_h%:<+4(/I#ŐhC[]H"3>N@7y|YfR6'|D7Pk*rJLAmV#`9zKƣF,y.Z] /˕$ &Է3eTVlyYTF&͂'s* UO,]^;ȎcS!E]0uJz%6Y([xFY}zr[(s"I& gfY:*/. zHF x *@"lk,z!*C@AS ?$ u{AaLٷnIyP1Lq<LygXnYأv,_k:dw=n)V7 'S2]M ':^ӆMKqsSsFtU6.ao5P)d*n/6j%=ȧϣGuFdMgΣUcj?3"3]2RFӲg,w)#Q0(;)ė VWoưz=P>ZgSbލfFaa<˱Eg"Mqoدwb'K[+-XcO&]_f\\ >id.M c@I6t:{xTG?xs@D#kYbafFA\U/R/"0nϤ)U6a"XТ<D5b.Bd]mO`XB)}<_ORwnE?4ﰥ]OP' U"SG gIʽR3N,@XCFqfd({F5 6u8A#R{K.f,/,lV3O*  0TȤ# oH~oǶu٥Q$1$JjUCN]z;{;wgy $(0^YsZv.|^6p^ KtQ%rsuPW8玈3P-x (Px *Yxm#`6f+j)p5$G[ F'J^ՓhiY˴(KgFZל{UҿƇ8~(pŨqHW2>mJkmLܖ&e.Ƶz9ɤp_ˑɯC(>fS掺eo5<ɍNN?/^ a.A#AH{|v_DJ(so5)szq͇̜rIxĎ-36>= n=<ޏ gI/:FܽC^tHNp~]!q̜͆zמxc{|=o/Խc{Avc\wtHǎP~ o# P"e>p% qF@:?}~x@GalVr PgJ#)O)?DmîQ$"PˌYDrb,C?)͒N "߫wdjƵX$=v4Ϣc-"hà8ZWLVxQGPb`μ9FTкT!Ekͼ9gS/M)ĸ=Egh+/?8l37=;#y@B}420t:2O,e2CfU)\3VIDAT!!aRHh펝:Ug#*E`}G=n6 R8 $cDm]U^ϟ?';$D#'ԨsSӓ1xꯙ>;Ui]'B<5]K' CVzE!tT{WQuφW*AS׸47}/C7(v Kߟ#tmHl2|]h"_x{Kh?\R(@!NȢ"UF*I4ݥKG}O׆6{۔w_q< 1{z3]*,Q" }ht?ڵ,9%uwzԺ~TxbGzlN#B_.|״|0 d8dO3þq}L #}53)pNL ~Cq}.9 ؃!&>I["nyO Tx .R=q`Ϲ) Tz?<<;!͑O[v.+uNS"pZH$w4u3qK E,bڏmlI~<ڔYAis;x*ߟgǤ=U_cSZdfՍK.[ܵ`q#는=e. ¦5ݯSAaA&&zESۧLx$tInZZ>RfMbƷT&(8~$ۧ^O)?n8ϒM8r(B맟G] S_N;j1~Ⱥ O#glX'IT@,:?N L [ĝ{$9 ~bC͝H9~όitkǝ{8bjB16C;51+NDoqGw@QU⭄E\3r4u6Ĥ*4?h]OgFO<hBovӣc֭noЛSppѪ"\is/Yj ][Ԯݬˋ#Z]G@>nͭK027!."<"pO^#8fIr;KL^E<~;|6|; ~gZ C VPO;4"i췞qW6?V;sN? q5eoJk|}o",uO nIN"]&.Z(/SҕG^o~XpSs[xef)=bm 4?Bz^-ԺKq]ZKܝ9N M]$*-Q!Lc iA#r PLDwT>=Z:Fj&|O`FCYwpРԩ#y} ;uKSǼnR&'dN6?'<<,b%NzuR`ThFU4 }9OnVܷxGԎQ6e㟟{ _Pn [ޝz OmmSk6(y`\eҴѯu9k҈){.K=et [M]x ><^{ GwUd$O\ ,G FZ2nB}ԗT ?{(1hP0*nFJ1Eb3Lʲ"n ʝ)>:jWP#zE~H7BG>ٕ(l.{ʶC^#&kGFFKɨ6IwoV X 1i;d{zT@_KlCElBKIl)'PUq]Y>DØC(4=*?l"Og+i|1c+ĘNtFC^1po"/$KG`*Iq쳉Hg(w!J5]Ln{T4"Grۋ}S4 O ڂd,DdRT"dz%I,)mR4a+L|!S,A^xc8櫗syP \#:RVs -KOZ"w?ooBϲaйNc"VuJ٧O٣D$jI ŁO??foIENDB`glances-3.4.0.3/docs/_static/glances-memory-profiling-with-history.png0000644000175000017500000010143714432156570025661 0ustar epsilonepsilonPNG  IHDRE19tEXtSoftwareMatplotlib version3.6.3, https://matplotlib.org/ pHYs B(xIDATxwxU&H/H ( "(4D;*%HS|HT@QPlH 5!#o,evu͕ٙ{f{1K:"av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !av !aIҜ9sT\9cԧO5j eҥK˯ZJ6Mk"]gQꪫ4q\s=jٲӶ!yyy/sZl{i1]) ђ%K%Or>l?~%o3zy)̙?0Rg}oY!!!*Uj֬'|R%/k={=URE%Jv,l]v WYffӮ]Ç+>>۹/*V(///GK.[onذAW.???jȑ:{l_ܹszꩧ!o>vZ5iDKV*U;n?P6M)))zޫUV9'(K"aIŋumfY%Yx:tP\s֭[jժ91*׳sN:VEmɒ%UW]eY VIHHPjjnfCӥ֭[Ν;_U/sK{ꩧԥKUZU.]'xB|}KZU[#<;j9W8zgyFZp֭[;u{ȑ#]6a?jĈ8p֮]aÆ]ٳc=sZd}Qr,oUl?cG~=6m8$o߮m۪J*Zd'|RSro^֭_G@<}~-Ciҥ^[۷oׅ ^z˨?uwUVVOIң> lٳ9 Re˖*]ݻw+::ڡu!=l߾}4uTKT^=UREӧOW߾}%I*TӧD曵g9R>]l\dE ;hÆ JLLT6m/[LՓo9,?}{1+WNKVƍ}z6m4UREٳΝ;S@@Zl={8<ٳzgUR%*UJϱ+ŋոqcOLL~i曊RhhvDsr{˪YJ*(a[ǏW5TT)U^]ofԩS8pbcc*UGɓ'l6߸>#),,L馛K}QϞ=%Ickx^߬YF-Zʔ)~)99پ<~zlRzr/n 6lߓs?J,ySNy+VT\\K/R:uRCڵWC|gY|}}ռys9 qqcbbt19<6l{mʖ-kׯof͚e,X`jԨaԩcwn;c,Yb.SD f{-Z+-ZE &%K~zӧ?TTɴm!ۛe˚'1/Yt5kܹ}_#<믿6C 16ͼ2#F0eʔ?>|yܹsͪUljժen}dʕ+gtbKxbc1wq 3YhMTTvFppn>cSbESn]s9{SNҥKocLzziذT1cW_m*T`Zha޶mLPPͧ~jj׮m5jd]t1͛7wا;vIfѢEy|3gΜ1o>kZje-Zd{=SzugFa^-wm|r3|ppBrJo 3vlqͨQҥKo$~\%L6m̧~jK3tP{ǎ3*U2 40g6-27x2O6 &UV>a{|1Ǐ|nTbOn'QQQј::fQQQn07|򉉈0ڵsz?*T0=ꫯ /`l6?~y_ݻúNjJ,i=jonn&ӰaCn:n:wBv7H3uTpBӬY3`mf/SMNFa|}}MժUɓ͊+̟iMf$d橧*XTb^{5dөS'm6nh1ĉtfڴiիk\Ο?oJ*e^xB=/?9O佴w^3a#̘1ì[>|9~&::̜9̛74lDEE9c/sRJw櫯26̡CLMj̴i[oeƍg/gۍy7|c/^l^z%3o޼\_ӧODDD &oL2<32ȫ={֬[Δ+Wtݬ[oUPW6%J0cǎ5+W4 ,0C 1k׮5gϞ53f0̄ xTbj֬if͚e>SSNSBs13q:u2K,1)Yymȑfʔ)ffɒ%gϞtfǎƘkСFYbYnٽ{޽)W=ϧSdIӥKxbG *8|f7Vj+V6^^^СC~i1<3; `*c1)))FRÇ$3gΜǙ~x{{{,YļꫦJ*ٶ}gaNy>?l̓>h d5\c^u޽{ooo_}F?1f?^… N:_*ZhaMbb}^Ν$zj/@N2d$d$UV9ڬY3s=?~x{{~>/::TZդ=&22a$~;ctSBӧO< '.r*55$$$IfLÆ nٲ%ӧM2e.`{9pIf̙y .4&--cŋ$ڵx{{;|ѣYCﯿ2^^^/03o… &66֡w} dh~8`$ɓ'y>.y樂~1&{]/$~z{}%J䙰X^͚5s(۱cGӤI!C????|Ν;ׄ_N&Oll6[2 zLNg~>\aI=yfLF%I&66~>3ƘѣG___}~.\`RSSMll9r}~N瑧z*W\\iٲüoơgﭷ*pl8`ʖ-?͛7cr~ԯ_?:_|ES|ycL{JʤIfʔ)9';w6kv8nj=Hv-SõK;p~lcĨFǙ7솲acRΝమF)88z*YIvX|ʕ+oQiiiUV]?kEDDػ[d馛F\uU:|RSSs<+Wl]`3۷OOA^k{W[nwg%Rǎ^|Pk֬-)iii޽{pd{kQ!uq=-I)Rn.6lPrԸqc{+f;椠źb z뭹ބ uURRzKԩSƿb 5lP 4qya!.gc:/ݠA/z'QϮUZ>/**J7xcر ԩΜ9c™5k.EFF[>>>ںukQOֺuԥKmG?CŽ?{yuEنyէO{b+VO֯_;(5/pK,QժU0?$$q"w:p*22ROvC'u:\^Gqw^rK`N4?{N;&\g>p}._I:~xիW/p ;w{XQYpӺL%JНwi/ zM~m%mf>f``tiӦI\r[󌩠8p }ۺ:d qܦ*MN7ٲeKUZ>6ӴiԱcGVZ9իWL2*UT1J/ ゞ'Kyu96l0zر|o}jum)<<\ݻwב#Gr]o~۽k`<xai׮]2ߺukM6M~Zlp=&+ S;]Hcr-ڻwx YF6lP }<΅ 4`m*UJ>grڷcԫW/oZdC/ڵkO*11Q:{1JLLJJJ1e֏˝8q¾TOrx.˗WJJN>p}!TRWXX*VZ&==]_}U]2eԩS:ydI/v9`yn_bΝ&M8 /N:+WNvg+3̖7oʕyvh~7|oמ={4{l-[V7|}ŋU^=UT!ٳܹs5h =/Pyyyx wܡaÆe[()eO<'xB{Ռ3/***J?npx~~Ǭ .(ͦ.]hΜ9;vfϞv9'AnN:b9ܶ8ko߾ӶmGW^Z]Wy% #`[d~,*V2eg=6~=z(!!aL2aXo_ѣGIӂ rcsJj9r$ϻs#?eʔgѲ}JJJŋ5x` 4Hfuh!+g_C$>>^?Raݻz#Gh޼yz'q庍gy#s\ָ2[NӲeTV-Zb!ŭ%B  RvZ`AXRRRzrd ըQ4tPժUK{ߨ)ӟi_*Ud3n2m;TOr:*UvYP7fӧ~jgѧ~RjJT@@5jm~A'Ov7K$裏r\ *8t_2ڥ̙3پx̘1@1e… ַl2rM4_EyÆ ڵkXx4i`kܸ:~>oϞ=ߪU+okYV{-($$Dsٳu=8$OrJ5nX˖-ә3gon.>.\c^դI}G:ud[IRJ4dU^~'ŋ[o͖Lvڵvء/BWvh͗3u]Wʩ^fzRI7oʗ/(M*66V<ٓK{A[FI&:|[ӧOkErMy红k^>}h߾}zUb|ϵu437.֪U+}95͛+11Q~f͚%///ǫ*SڴiիWkҤI;vl%ڴiG}TcƌQ&Mdɒ|/2]}պ#(99Yʕo!???O>&MmSJJ usnSչsg+*UFG||:o^<õ~-[L}Q˖-%etԩx 8puȩSzj >a݃ք t'5nܸlq0aW0M0!7nZnv顇֭[FCz'5}t|4h*VCiՊSnԿWppV\m۶W^U.Vy3Iva\{^z!CeyգG=ZzۘW ~Mw߭oV|~l3<n![KZji?=^/m۶UӦMujܸq*S̙3zg.m SŊciԨQ:~^}\zjѢ>J,Zo߮O>ġL t뭷jz/߮'|R>֮];* @&O\2޽[ժUԩSիW\iA'/G^.]_F|oq'xB}5k_|Q*USNg-g)Sn:z뭪PmۦsW^jJqK&L-ܢxjΝ믿4n8_C\#FV^m?W\Y`QFӧ^ykN/5rHHNNVΝկ_?o5j}<[^ P~j߾}WŊݧZjСCuW+<<\111zWժU+yyy{Q``٣ŋk̘1Yf̙3 /O>X{jժlٲrEVZ%5z5x`cTlY+::Z=z{g4c Sӆ 4eM4|ԤIuE>~lU)c| &aÆZ|p)Px 3 Plll[̕\Mǎݻke=oѢEyN24dɒk5_}rgNw{gϞ5Ç7ժU3>>>&22Ҵm~g 7|3[9-;r崽4F}||LŊﰞwyO*Uo羥zʔ-[N:LX*c̱cL.]0#Gi?馛 6ݺu3;ǻ޽۴m֔.]T\L<9;k6tҦZj桇2{u(l2#n3|f{bV+V0u5%K47~)Uk{q=:x;M``0<kӺ1fժUYfײeK~ӧO{]6w_1iӦ&44ucƍ9zh}t97}lL$]:|g5j%KMf;ᜎs$z?ӧO7]v5&<< ><;n۶H2^eG1wy up~e:|ٳ 1K6͛7w1;$;_4j [}v;cfl?iڴ)U^Os3~>SӲeKd|||L5SO=e8s2C]s>ycweڶmkJ*e*WlLbڴiESڵkҥ 1^zO>/3v)_)U1>9{}-ZqQӷo_SlYST)p'Kȭ]b-ZdnfnJ*ej֬i^~esM5z9cӱcG`M$_<&$$8|嗦N:tҦnݺfَSN3gΘ>}eI޴m???SvmO\ח;4er;'={<&<|xwϼއ?&M??R (~Hy5jVqIWd_"Ijj5z*sf̘a*VĨׯ_?ӽ{]fdVX䨮1cƘMZF z[$7&L0&))C, c:wlUVaα&,, >Q#KrrrH.]b=_eubŊUT̝;W֭'O޳_PݻwWݝe1s= \rںuFz]RWmW /^:|]]v鯿رcէOK2mٲE?͛wIC:+~nU'O,///ըQCGosQݐ\M۷… [-ZtكsgѡC[nEoFc<9sZhQFYNsѣ0`q[K+ݻwfmuhpq6 ͔7A\ ;\ ;\ ;\ ;\ ;\ ;\ ;\ ;\ ;\ ;:XfY`:`|K ,Pǎ@ \<ot\ ;\ ;\ ;\ ;\ ;\ ;\ ;\ ;'$$cVPh3fX4$iK,BHs}P %ŋpZ.BH.BH.VG8 ;~⬎pv̝;W]t: l={:wlu(8 cssiA1F}aT$$$M6:{աXꄤV8 -`$%^^ٓ{f-e}mݻ;r -xq ̙{M{q-7n\&M^n {ŋ-w}KH\۲r͚^nϞի{EG^.,{&uϡ\0]TRhe5'*)#qmM^Gṇ,nˣ܄,QnlrQ,2?g)76uRnBnRnznRnQR|Zl)I UhhN>Yfiڵ QHH > ;{nr-믿nݺif(fN:~IW͚5U\9uY֭[uy5h^AڼyuKHHPҥZN111$-\ԉ'dl2)SF?zxD_%''纾x9aނ ;8@ ԃŋܹsE ,"1oo+*a_>$iǎQ֬Yf͚չsg8q}rƘ\}l\Hdɒ/ f8@{G}6lؠF9u[^v.*$$D+WqYݺuM6k$mܸQuֽ!@1w\u0PHTaE1\C=w}Wי3gK/UV ҽޫaÆ)))I۶mӻᆱ}Z2 Wk֬1s8Y~9"G ;6d?~\ח$tM%IǏW%___ 8;@.ջwo-\P L2Zbիgu(g# 믿_=۲ }'Dkݺ[掬sQΝ!ap 7oV˖- |sWWLZ%n(n:ͦ9s`;z(]]l6!pE` wW.?tspH(wg0BCC ಑\Q{udwfu7[4$E*!!Amڴٳg֬Y8@ATlup %;wl6[YfnP*Udu@ĉsLetbu6m4]Z/&NhCDAի1]b٬\.fٳSkqgNC ;wVm9g駟ZnFk+9cI@1g:vPLm޼Y͛7WRRա%JqVNE ;(nɺƕxJMMUv`fu\76mڸX3 }ZqqqV@pu:ooo5n08KpNC(ջwoƚ___-]sٽ!as<朷-ZvY W cn`ݪ^z 2˘sHYRRC\\qcb͛7:$::oba@pq6l:*YӺuSSS5p@*,,L RZZ7Wo'I^^^ZdIc. a t 7ؗ=Z oi͚5;vѺ?;e4m4׬Ydڳ'c!vnjԩ:tʗ/_|`uXng:+Sbcc\GzP sa}TNJOO$8qBS e4h={())ɢhu]guծ])f1V~gUTIaaaڰat'xBO<ݫʕ+ȑ# $9rDڻw/>>^#Gt7++.eΝZh6oެGZƌ:uXۺw$-9H\I֬YqƩVZVc;S|⋄8q>#}:q´}vUVM}vըQC w}6#?cbb{nÐ$U^]˗/Wttաx cǎVQLHH"]-uMfڵkմiSn끧^K UTT6nhqFUT@:OpB=)uj͚5kmHf:v.jΜ9:y15n8}ƌ;vka^zsNEDDd[iӦ'.N>8 '%9?~z!bŊ0`z)aÆرc]$Gz -fdA$B[!a碾c!vEhƍ9rj׮xe˖͛kw$PZZ%IKV@@]HpU+Bڲe6oެ͛7… /igΜQbwIu]AAAԨQh/oРA:~٣Çu֊V^.}<Ç -Pzz.\ .z?+=syO֬Y4zhf͚4h>pQ%&&Z-\XZZ &8tݺuΟ? 5h@cǎ Jv :iH^/$'̵oQukjذ7oUV秤_%J򅄄(999ukȑ,XPX:uJǎϛ>}"""$I *}Ziii]RRs]_||m6:vxqÆ ?bϰ`|?k޼y8h©ۢD®L4i.{} :tj֬)IJMMUrrgG6mҵ^+Iڸq֭{->}h߾}j֬$iʕ$n>bܸt@1D®#ĨO>:u 嗭pvEyڵkz+VFV@#VG8 "@M8Q&MʱǯpT cWE®\PHan35 "ԢE C3dd'abp+ o(H#q\ ;nB鄓|駟0Ew@ {9M0AM6}>M]c8!aSNՏ?ZjY ATVG8 c9VjupC$`Ĉzt9Cx0 c!:O?d[ rXvqBVanňeb̟?P@a~Pܑs-ZXPc+S+"'O?,Izwr-c]H vyel6 ;A7 H%K_r+")r 3fX4^VP\\}՚8qs\ &nݺW603&]YtF!C誫RZ'O?K_աBa\ "?PokmܸQ'NPddڶm[nEeʔ:L\fYRw__"aWԭ[7uP(/:i.k9@qG.k7 av EdϞ=*Wre'G`Hl6cָ `pS_|auӐ+"'N駟j޼y1b{n5JwuPY4$Hppc_~QPP$)22R=VCcP0.f,@ u{NΜ9$ BV\!/]c1F)))JII@Vxxţs.]]vzUre޽[ƍSΝ !!%e&낃UdI1JLLTRR¬ǣs~[Gs=G*TPn4tPC-rfQrrBBBgu8 ;v,M5\$유dɒz饗K/Y PlE1oD:E*+lzz:b vNm6͙3GuV;wNճ:4_ePp 8\Y^VP-ZH7>Ht =G+-p5$^В%K4}t{sц jƍ?~5jRJ;̶{Q*Uhsڵ_~RSS5p@*,,L RZZZ .d[3(66VR^~s9OUTQ``jժS:>5P~|ĈڵkN<իWk̙>}z\h=Z oi͚5;vlm{ڵq<ҥKk޼yJLLԗ_~)SoIKKS|r\[n(&&F=zw'NRJxT^]jXԬYSWvߪvE\ݺ%&&jȑNKuIwys\^n]{fK۶msy%NC|*_^|E}5jԩ#oooժUK:uRBBBK/jժfM7K9>yYlի@EFFG$]wu(hƌJIIQǎ`5o\6m+>>^:t#\o6l(ͦHUZ5_jէO\muuw(<<\JRϞ=e˖\'I{oW_}5۲u޽ծ]; X3Fwuz);wN/uVʃ RJ+j:ݻwWPP"##5j(gJv0`Treu 5j(۲'Nh߾}]24h={())b;ut뭷[oU={Vׯղ0'?{3nݺU?EEE_~:yL4n8I>kN*T7n:tP.!!A!!!o_|ѾluA9sF~n|X[Vttz圝4kn%1Kzz$ꫯWF͖ڽ{wDaĉ?~~g-\P]p:tc|)))\ؖ-[&M(000߲Cӧ 1F}U5ԩS'G۷oב#GTlYN9 ҽkgy&gǏ$-_\?$k׮z' {¼NNҬY7̔p*..N:z}]uUeWppʗ//oooըQC˖-u>={V={Ԯ] pnha$_hҤI4fڵ/ɱӧ5k,=Z!!!Y k\-[2&M޹s甜d:uJRF""s޹sxL^^^jԨOZ.䐴 n/qi֬YZt{]A1hںuϟoOfUۻ>9믿*66V 6Ԝ9srݧ3ghQPPbbb$IGɩ]~o߮;B R=y2?pעE,_z3w\}'<<\>:t`s= ui=j֬N>Ǐא!C4iҤoL:U$iͪ_|dܸq PDD6mڤAi֭:|湛7o.]('ؽ{<;wjΝZr$iʕyEٺbі~I[qyhhqF7RJԺ.==]/7a7n8MLGհaԽ{w:t($믿~I :yeWW?/\VŊɓ>}z,X.] So}ݻ 3*))I1?P,YR=ۧ=s7oެG7pu5HUO?Pqu% F~AϪm۶ c=f+!ChȐ!?4c +WN;w !$$Dɹ'>>^#Gt-M=8_Hwrun^3$ꁫ˱IQzObbb-RZZ}JOOٳg奒%Kjնm[;C{,u}WjѢEɘ_cƌэ7(I;v[x.~zEFFيW_ĉzjEGG:jڵZbE=>9fϞ:(44^J( yyyiǎk%e^ti*%%E/BۈԁtXɓ TPPݫ^{-:vؑvz}}}գG+kd+cǎ/IӴi=ӦMS6mTbE:tH=j֬ip zT~}jʔ)*]Wm]7pvio>p Zf}}T]p>={Vw_p@c1gΜ1AAAٳ&--̈́^z̙cZje~gcLjj}ٲeLHHH/͛$ӨQ#C ?!PLppTĨ0zk$K:}[^rOMM5wp)vi$;w^zr3b#ajѢ1Ƙ]v8lMll=zpB޽ỳLHH 1t8Fys^x :4I2>>>>zg׮]F)UI'?Ν3z 3檫2g϶/9r)[ 63f007t7棏>2/b?;vtwaBCCMppٽ{w8֬Yc*o6lh^us7j2}9K~cJJݻ 6o߾ɓz3fCycygLsg̘1c=f*T`LM׮]͎;knnu]g/_|Ϟ8qǣwٖ;չc3E-::Z˗/ׯw}W+VٳgU\˺5̙3?Phh;/pB}Zfn[lQzԨQ#mذp` <d՜P Q\Y~kҥjӦS 4>|XUbbz- <8[;Wr~Sddfݺu5uT5nlpEunA0~gΘb\pAZRz[oѣV%\RR#q-(H9ɓuA=ꫯTR%}ZxӭY%vNRT)uM_}6mڤ[wqC ?< ;'oq և~ٳgkƍ۬.G#GsΩgϞ駟Tzu&M(,,'UsM6Vv啽cɒ%d "#aWҴ~j*d]͛_(fpư+b%Jnd͚ (H9հaC5mTIIIkUvm=쳗γgjWnݪϫA 4͛ zK(QB^}U=zTeʔĐ1F}U5ԩS']V*Qߗ/$$Dɹ#>>^#Gt`K=8_Hwk$)9&M=D=pU;w$[NN`vN%K:$҂ c [jR@@N>4{.))I'>>^6M;v,#eʔ,X@=݄dML,R Q\_-Itm9u[ׯҥK+44T Qhhhcѣ>~AK.Upp$)66V>>>ڴiƍU .;vNлwou]ڲeoڹsBgZv-[ӽޫaÆ)))I۶mӻᆱ}.[.Npa1.(vޭ'TRѣ&Oǫ^zE ;'޽.\xYc^DGG?((H|%э*vN0zh]zWl޼yEw@ z衒%K*..N~~~V@guӐsիW :/:iK\uUJNN: 1tI:t#jH.<]b.ht7#VG8 ;~^~K,BH#1I2&K,p??ďv7 x v !aD7 Hѭv . buӐGb ;ps$P%1!aϸqP saǏWFTT)yN<ݻ+((H5j5A`vGcx@qv.B :t/_}9,4h?={jݺիW/u/\3x v.SN7:$N>Yfiڵ QHH >]!q\ ]b֭[uy5h>AڼyuAH _%J򅄄(999kȑ,X]O?dߓE=D=p'J85@;vH~+Sz ;7ӧO+--͞KJJR```ωW||fSǎ,X@=y_3$+[r$I&N+sCѦMtJnݺGVG8 cع4={ViiiJOOٳguy{հaÔm۶wU߾}+G2&"aF-___3F-nI(xzC,@1@XvsYO>#C\KXCGw8Iď⎄OAp!$F\ ;x4UWCp!%&N:iH#1ݭp.p?dL@1D33&M ;x$.܏f:vh\WCp!$ \ ;x4WS m #p?[4tGb ;Hs}P %ŋ-(ha-l6C aįUGWZjH.BK,<c #<c:i vt1]b\Brv< ;\ ;x$=<W]bY!aOݺVG8 ]b*vhanY GW@qGX~l:V<D#aٍb֭$K!aưGILLTbb>lk.!!! ?ZعT 8P ӠAfuX.R*U4h nIUTQ*U[oYtYIҩS,"aFߴf;\sN믚1c$iʕڹsvܩ[ `6oΘxsI"a(ƦN7|S˗$z5|p#s]YKbbbc]P«\!aN8}Ay 4О={`HĒ$I:r}b G6c:޽{Ure9rD2.\"""w^EEE9ȑ#͟?JRRRh"~ :@!|qIҪ߶8'hٹ.{խ[+k;W9(Hع'N(,,L۷oWj$I۷oW5o ; cǎVQ QNfkouST&k ]v馛nʕ+C8xK UTT6nhOmܸQ*U;,rA (K5f"[בk:y>C=SZt$'0`Ou)Yٰa}ޫj7o^$.3l0;|M^4W_}Mpp1Oӻwo<]<ʉ'o>5h>Aڳg NuV?>ky"YvY_^գ.xq) @ڴi D= iiiׯ&L%KS/$$z_r.c5jSN4d?rQe˖z뭷$IVRHH}UTIeʔѳ>vܩ֭[+88Xaaaɮ 8P+WVDDzꥤ$smۦ;Ce˖UXX:ud_?oTHH*}'e5p@rʚ={}s#(,,LUTѧ~eT^=*22R<}YLLʔ)իW@qBΝʕ+O>QJJ&OcKm۶:~z=zhڴi֮]_]?$iܹƍǏkʔ)ٳnݚ7nܨZjgrr~wm۶M 0aVZc_|QիWѣGu!k*Q$ǵyfܹS8p$ԩSjݺjڵKԠA$e9w뭷k׮:r&M~iڵ~j޼;ѣGo߾JNN$3F֭ӯ_~Eswzg[={tX~UW@qGkթS'y{{k׮ڿ "]uUW=a7eG7|:hΜ99ĉ s=ZKVڵմiSO9сk.iӦ*Y9>L&LPHHK/iٺpႾ h̘1Wɒ%uM7I/^ejРAQ-Խ{wokQ.]={믿$I3f / *($$D#FuiӦ˃tĉ<P\"##8/%%Ek.MbĂJĀ DԈ (A!Ҥ03}8 uk̝s9{S=5BLWM*#"%:_  RB]w}wYue= 2?1+ -A[M /=!>K?DlLZ`кϾTX0YT=Ka{{-D˶ZD37p̝kz~!<:J{zx/EDѭz4C(BX|/з놫/M7v!"V^<{tC&pQ/[kesr _#V]݌ߞO]r z,,81 @v[rVX<| 2!?GqF3o#8/>Wkڑ2sMC'vZo,v xV¼ *М~_(s#1Z=5s;;|nUp@'6*UQ<9GʫF+\AĔ^*ڟ^3"b~LsqqˡV\ՈXZE4*! u*-٭.~3$fܯGst=%Դfn""VYՏ^(~ egjhhhͽ!B;^eKoL@1b%-e?0s0lN0` DLmPI:ۮi&*QMnY睗̟9v͹R.뇩Ƚ_R_z|n?3vu͢Ix*@uC^XXXvr@vP%!b!0+> d27Bac z^UsA*c*&ع.Ĉ,U[gMTU# KTuxBUGe{η39r|KǟnvW.c҇=T0뗔 a+O<%sVeth#L= @,SD`$UU׺';\PEm?MM.Sݿal 0q]5LJmKT$#5+yEA9"VFm6#Xl "^ p!Igd;mso$""&oT~Bc‰kt!r7߉ wمIrmDGFkZeo^ǣeB](ݵ>~OzoAvcg>~[s%-I 9rmAJ@G\Uy>?xkl[mA 52Т!dc/bluMc N$-vb k6Bf*)tVMK=3z,-=s/fjF#c߾ZK~e.ǫ] >ڮ2i]_9Gs'N$ |r]i@:z֎4d/tI/${8KvXJ!,"w޽Zkm|pCTYLm^E Bނ#oo9$a~?2|I xLS{i兯.nwj4 zIaA{~}V"i⼴2F#9XM{/H;r6fqrR:oB^rNfGGw9ި2'"[co% ɅW޶cDDUPME z}*P,)M` Ƙ# 8=s_D2'5WmnVT,%j D,%4C'Ɲ7\ )aXʲamF>L\G0%"ѭãӃ+ˋ+,H2#R` BP\BSEb$4&E5qPEoJOΰ?/yƨ[tw/ϣkfMXX$6 3hkȜlak$O#J,:|P=gwrg2W=ƴ~{/rrLs>To:93YL&$dt%"1AcT(W\Krn$/M:A0 |7LTbQBk>b%Bo2t` ZWiN;K/}PwG]ugrdbT;DX媴ʬ{7]Vn}ը.#cQcjbiM3~;wSEsc)U+y{~2ΦonaaU{[^ l-7`ۖ 8P&2^ GӢv9}l]KM$>NSiRbע O^ hWq)G6- M>bӋMҵ\w0.:D UqsGCyŦb/EijOXIENDB`glances-3.4.0.3/docs/_static/screenshot-wide.png0000644000175000017500000414051614432156570021410 0ustar epsilonepsilonPNG  IHDRKITsBITOtEXtSoftwareShutterc IDATx}yM9ŵ,3؇lQɧ )EmB$-SRْPDd}I2 c{>s;3wS;}5kVWsN@s9["@k""'!c8,<GDD D0uD4&~\c89' d14Ɯ -K\&H߾Z"""Ƙi1, 4!2$Ź8Ƙi8}bȾX@" b隦1 -2MT9꿈@D3΋!&e}h|=sԣ˹!Q}!"0dĘ:ĵ|ܡ'( ;'1&h1@ʼnD,l8$q918q|>&Ƙx;/䍨#$CD"rHPޜ{Q޹|xqV8BsZAŹM[' |_7wXЯ{b_&AxgmV՞?_0K7upn?) XW}QeƘ0ݧlCDc(7u]GdA3-ri F&6|kCbPn]RφSȘFĝ*=Q۹{ktt[iZ$Cq..Q ]L"}$ͳm]vڹRn)5!8;cLh"x\r93e;c 5&nͳ~ _= #H%Tu"h4s D10t]geY@ p{){j5i(&)Iˎ^Mq[#9Oد=I$MqNii0!51FDftLCt]51t&eYb*9 y;Dq=ul=P7 CR2s2-"ɣp@tY:Y+G*p<+ D0 牠@eCbAt6ArV;?dLȪ~B=Nx<,T6S@dp]Cjv8qA2@/g 8‰3ۣ-s ahCdɳȿ'rLW)ds10V2d6!sPl72}mrnpDhc<`#s)ؽ<+SہᢀdU ʂq Pd=ct%!r&=D8܊ݵ*<])=iv\igj[)IDl[}'e&e#& exm_ %n)E/ÏqgKgv@?)%ޢ R'!򧨠{MpE˴@c#<<0!)֡1u6RdO3$(mVw?PɩBD1SAb8]:v*8b$C᫦i 4-'/mn.vpgU ,]4ڔF?4A1 g 4iyNq5MS> G*QB(/=p"Gt3!ضL C$BuyM -RyCyn|1rrEi%\p[eَBh22""1Cv!MӸe` (ҹC;N8p |0P5M Ϋ LD6^t \&Pc"ieZ6M8wc@j!CCPid~/UMtCu݉Y(eFH%/~ Fy򲦘j%RCd #_;a@T+eUslxLXr夕Oюgg^$lkOP.7QGK6"1;) $5mvH1~?{r!ϑES/j:Qqj2|i&搜9p+iu81CI$q| @7mtR.G!:sAvdS:%M2)M!\-'7Zfoߥni/?m"Q7DXnʾ.)@d4M>9ƒJ^Q[g6KԔo$e.)7+' oyCG%E2hGZ=i;EP y0;$ɡPD^(;Ndo=6_~׍mf-!lEB> 60d.v0c }O*4y&!0L2|fcEaljQ9͢PqKPV(M,]Pf-14c,K*gKLBNgؐۘeMgުaz!p+RO썾QP^TP jNYD: @]bZ%鿨dcϑeeBC-Ad~^_V]k()4q)Ld]@/BHS0rHfAr\eYL È4`ׯQ2rYHO ƘeҳtosS@/}ʼv IJivᆨ 8qdL0L Z40tMIyvLáym2,fa8Eyi&P<*u(ӎ+eiO#_%G e1f,\a I-) _}xPĤDrC|gO H"jV?";$B<[weUOtEz#n:WD☛)UnTMWD2DdUP+&gfx/(+G=PHLBurۤ6 saq=~&C$pf#qA" $IF@`wvx%[7l9Ky:peq ߭߼urJ*W GߛxƝNפknچmۧa^Ę-ޟp喭k76EŮa|}D`U]O~oqȍh /e^+SjT3]g^ۆsv@yZ@;+  Ž r۶޾}'G' O28o_iNe2J>֨.YaU3&(f\HD@ΚNBSh lòukjͺek-[n?+<ye1mKyM]|\ K*=F=.dzE\[E+1;e5't黇b ?6sB|Uqwwl5{`ere{ߦoZGZ=Xnߟ~ߵ`r&e ٴ9k9i `L6L[?w4%Iޙp]شl;M|uB~͊};?/3!(m](읋^J67*ܝRFg:J(OiZOu7|S -x"ISOƘg.y uqUWL'I̧lB Rs\Dȩ `zS.Fev&Lc. - }d&RB( /g GCYNȕ)AedE6 w!1 Hgsrk6Ub/pPO UM߷$crssrDi(fg_M $fO(gb2 jf[3rID Vß:z}9g:CE5TJ*2Y EVS;D;3/CW7%d=mJ<5_ԋe ho$lS'*tWU'>V򉈬#kp*r9CfYV0$ n0dQVc]~7gT^g7jd=E(ĵРӖs`|^2>[|e_>sc|RX bo5}hՎ[vm;GľzCbmuZ'wߘu6ٴik6m^|wݲe햭n#˲t8jNg)%L*"CLEUjնʡ/ץ %VH~ƔhU\!(pEIAw_pcL.toŜ'7zg{r(Fa}2ޝW[ їLN _OCcnC(F_eď_}/}E)8)~z+|ұ. "5 !1Dj.WKNf2una&;?Z/ͯ-ysy /,jnfpy?;J?탁dGr̍1#::v׽{aGQ{|׬R :h3<5WUSqd4ʼ0l'grՊkUJ+xq {kOs0?}oi?yr^X !>PӺiM|Z7PeC~<[]ι(-qXnPz'#{tūUwv}=b6q=oUJ4`@8/z4_uX|@TG?s7*>aV#V#Fo%*tԏ1fpXrİNq~VնGusO[ʜ: e7ڭ3f؋G_4g~_P_L3bAZ #Ƅo~s|h%ݺ0K1$T<[zn.O6@ީp)|Yr6L,fvdCM=ZkyVBhA7iqYHN :u|̉D6R#*l泹l7i$S2SP%0IϠa EBƳA;ۓg5 Ļ+b%L }rܜ@ @Lٟ0A˲8q1!"Nu:YZl+ESd𻵇 ><*cL(i* caTd tMmHNZU9mռ>)L|5kU:s5_?YҨU66qIO_3[5 nSE퐞K& 3םreO%tد&dvRg+0rcw8bƹWFZ?ISAarͺ?pu]ck/ӒA)ڤ?<P̓f޳wio5)7ck{6y5}ڕ6}eN޸Gax\PTr0J4ue[=cɷ_Y%I b+sIy~?ܱ{OmwoEܬus%-m眑.mD(C@2J*O'~eñ?|Qgփӎ>z#G8DkŚe4U.ŞWMo!.dz3-[nOc5ID%s{q?no=QJQg,]ztkRɯ5lɢ 5vΪ0x?fڥ+.]u#gw hǾmMF R sT0ьO\b灝-=m *=~7{%;eÄ04Dp,\5K3߱gџ,,ȃe ʭ^rnư69O;UcC%c '+{X>_aׇg IDAT-~4;IuaӴ,ߺc};׫#^uǖHHPS,`F; _qCi6510 oldG!$%Z̢rK5uTxDj/'|P.J"bwghk_ǟ(5xlr/7wgl8CDfK@|ug{VQ<*?}:p6b@|Mk}F_yo;#x1Vxu` ^׊ jZ0PXl-ϋf> $GJXL%SJsChM|w#{eU*eK _=;ш*{$!{c~.YtIú),8*K R|]zLohHLWG}t;l>CZ&lTNQ=Xl?jpj^n)N<}bvo5-jٜn)^ {9^/&t۴xiz!EsY_W ]ڝw]`B%PnMe>XtG(wuT_H{JzOud:3)ǯٺn۪'Ѱq[?t_ǡġ/Fy88wz?pGLUAG+Q)3N\6jePЭD֖qV_,RUx zZxΉU` ,d8ݡWa8g&^vs mt2 kjG+Y1؄SV|$1 *1UW&ZwhQSPtBV^|m̖]G }4_v;\8rUֶ$iإNnvoWl]?>\mvڂ#V5ODU#P#ҵ..'>5<)@/]%>7u~ѿP&(4]-qrHoͺ K:nN% CܒXd KYP8!9Glߋ};fo๗;6]/&CXgGΤm6nis̩+&L_Feg MU'،6~SgOry`,}i{N] ۷aU3ϴ\T3uzrߑ?{_pHc哗0jq"-_GǬں-b.^t@E9ڲ`gwԢC>4J۱Kuj0Dlφ9'm@؁=sk^\1Z5PìM5E~=?\wيl]j1i톯gA8- tI{;SR;g{6x|;NɘVNYe"@t+)-< iDz ~!RBSK?|3nqZRnWW(̓iP}|t@,|3Ӧw]%lB[5"߾t%싹'0I CQCê<{S8OM3^a+7FlV*.uBqpxlEU{݃6{[TWP| pa#PJ"`^8x:soJxRdff DƆ:74I!0ƀ6N*&"n pfgVm?Pq-+gNG,[0.g8p.Z '3:s XӖhmq&ۺz:D@ DF1 SiUG7~Ȃ9_h'Sq9?/.v_۪<ܵC;vr<,Z?yL4;[k+#Օ(Z$o;$+ߞN!nOK`ZP4A7eϭDOƚPo}N3sϛyR(י3'?ݴ왇Hm?2UJمgsKf%=fIc5q?rV3Y"팿30 ܣ[@-W{Ϛ$;9OsL0u,U&*#E>hq*T?/X2c[C"FIM;w{*}1j3pn%g*WWJ43669(6y" aoZ=hՄǼ3o_BVso/?oyR^UB~ d 9y+pA:'`%8[ xhgK?۔vwΙv yY{9qn屉;S!b,4~7\n_hҩ|NRې} 7@)g($Ft\P'TڎJpDm.qK 2zvZ(b>TC1 .BXGS@b:U@L,'R1%_#0ʉtְJN&G$'eDe` rM0RcJ6A@fx+%sN 1'7+&/SZ%bK|晕?z3Yƞ̍oϒۼԠ`Fe˞hgKׇmtRsg +.?4MnydЖskƞ_^޿Uy~!sFB0u PrH3~pП6oqaS<[lÔ"%_?IImw.RL~ܥ5yu_0U)uZ$ 9qo,ɽ!LT եD d:JBW)5+hL4Dζۋ *^5ւ5M~Nŏ`\h.}1 bKF_qMu, Y(VZūeݻ8=j3gXIvR9_:ɥ kUzkz^]ΐm\Oa5 n?DsQuiuws3kuJ ^Z4 @D=ň来- GbEiDhe9yu ,ӶOf{xTWD:KG]oFoYHb>lvDb>@殏:waD9{*Q7.o;Om$qg8'&H?.o3L@;шp5"KCЄvn ~tOjkQ2s7r N<]u0h!ȹ|矍@@-mÈsʿq5o$\e' \cL.7:='Zc_#bCIh|_t ̣EJ9pdTOc me w]G<2{ѥIU{ YsùvkcmR.+6?. .ZݣС):PA(:˞ KѲL`(+w)W#UOnVv dhS" E.[(|T>PJ"g+I=P~$ F'WJץ M͖r YȤۍ"[Nq1bwDucȣ0Os&Ʀi'd>_1nqFGs-p㏓:I`)J6Uny(M bӫ7Rڗ,3`9~ܲ8xA4d:L#C׌('e%ELnY֩4F6;Bu';pYd,SfF)wغ{Υڿ!5#5$9ѼҬ]u϶XL!@TƤ vՁl@Dඟpec}0d_-7o/Ddt3/MøEYg];Gc_{=â608:́txR10FlsO8ϟH*d[,Ők{w_e떬)P;b1b&J˲W}l*^ NN}~kX@zB21+];TߡF,n[܍Tkض杰i(HxN5n3;U/# HxM\cuI5{QS>~1aqѶ@NDZY/JNՕRd@#cՙK(kH;:B\:>jK^(i'N8kEkQ-chO2%(ɮnϹp*ĩ'OsT&TH_8x,@XVLof2/ o=E@>yJw6HQ83͗P5`@ڙGM=vL6gkvP\D-]g+7ܹw?s̱ 15La/ ^nWE+Xd}eYJU*!Qmy>PcYaT\!GR/v=碫ߗD4p&=.!)).γYX]'Aϐ2F6hV͟kv}dﺧ]aQ~iEE*|%o{$Rxw?[utwi[WOկO$n>M!SQ3~C!ix,<~D&{5]ӣ On4'w DomA.^c* i)ldws[ɒ1d(41s,.~켮W˳E" ,0ڣaiY>Q2;ɡ s8V  +UT" 'E9vCY`VTF,d`  ̠i@t^e`?Vд-K,zFfP!L˲XX8^ E MӢjs.s[@sBDŽeB3IsիYE6"zĤ q/=gL.aoUJB0mь/fisVɶϦ] H,XU7'Ylƴ9y_"٢ZsMj=5.?p.‰e$&15ڏ͙|9cHCA_l[ ܤ9SR3+&^UvS*ۼSl6 bJ~ސ*Ϫ+ܾs'5Wܛzv\:}҈Fxa(%fS_kRckݓssRɻ*Wi;m =T)So6m͗(WJ4hX9ml[E(H;ɍ/3|X\'R⡇DVvhmЭw@@-tjUU(ժW-W}i'?$ig,ӂ'h1plO@r{_bS,>KcӎO;wVO4UvD ~=W_|rt}s+lڱN8vZO?i|e"oL蛇_`+etf=p/dO7^v%{ɓIf5լYFߦO*z);mF|ÇĀ^ֲ/EU}qP"۾O~8kttSy,>:|y" IDAT{W3/3G~Ȩٿ~L%ۑ^m>x{J&4}mZ{۠7+[;y]FrύV k-Zp:_bN)yץGnWօ]FJڠLߺgާ ԮuC i](UǃڄݠWJJ eL1knj߂ӹAr2xٞ;MyөArA*D)C"˟~eл}h-X\!|Sx;o埩g=9mC{Otx3P㳘R׬Q=K^f|%6ҥeu|O$0=?^%ZjwԨq{hgU8}Ѳ/VRk(/C=23U^b*7^B{nMgh_nzG 5yO6m;e?uI/߹A*׭ܱ9ɕɆeVPQqm XɆݛU}YsSKM=v ӎ*ka5[-"0)u(܄cƮnahzA*PTύza%R缉\$AXR:~醮hN2`?bX'-| Jo W| B)Q6H젆* P`ii"/gANEM]Y |>E0e9`09::::&&A R"ι%ӳ!6%0|iA.aMge|g*J\$rB)Jqĕ6j]– *$Aqōh`:RD @2Mι0t1Ɖ)3d[96MQ+Mr-4iYDdi5ݟJ:O5A(o,SX:z]ySOxX};z?w׾Q=wx޲cAی V/|>89Sg`Wϭh;;$2,[ޮIJ:~(6u~#oP/i& YԿWIBΙ-Lๅ uSʾ^y"`ڬQ?ʶnX\I=BV~9ѐ7"'fI_ttϿR! +1:aÅͰ m ms]I >/mDD`ڌ/g` ~{ `yPxBvYT.L~{`ÛZY}>\tCU~築>iQB|1iJsl_4taɏ~6䧍:}t+ߪi/Ǯ>"M_A4ØmnA }’~ֹ߶:Kz+nJ u#.>lU']6e5E&zuCr%|$FF:X*!~`WFnhWU |&>jFF3OE ꋞ_lđ1v3p6O|rqhO :3 7|BR"M\uÇr&a&S~ģtlV'RԕJT7_N/IEAk .5 D&0$fztRmBP4]u^W:sLpFlhV1@i(McAq[A#bv1db;OJz6C:b)S4OJt1iXtPp9T[ h,]Uv&cB"¯)0QhCjfܲ, `t~nmc!ƙo}00?)uO+{u-TW~#C>qGq_/3#lMddkSԩO}!mLSL6җ [m[>9o媳fM YOmq:x-5W-:PYLBN]FF: +G Vc57{y8ztäx6(ޯk-O|eUΚ5opNDQv`|&;?]}vql2q[%ChBJp;%&}gx] \jrC)#R#JfLT 7KBb@Z9V\[-QR񅠂B_vz]"LI[g/EƔMm,)aOs#$ykn] isYOYz;בG8"0MA > NJ=]CGrW/H&KRHdMQC`q"d!C9DeY\Q dro)HS]mT1D0(Ti!FtU}^mϟgWE'栗Ώ}W(=1q˴1]]u]4&$Wq@X]ѕ&~ P8|Q>iiӲlTE:m8@z;PpYc2 I xLn5Mu@C/d_n68'uAұUEa@@eAZbr;5"z!;":3M7tW3_6 7LXPKnK+:خN~^c7 ?7~^4J?7s^dnc߬EñULU8S 5;j&vGI-8y\ #cňR "()%'1RQ N n 5iW)W_vuWRD(4RoH6Q\WƊ̑#,垘,K|&k}k Mڣ+jTFQED@ hbOF#1أF(QcA "(h(MQڻ=~5kf}ιG~~=e3koЫC 儩Kh*5QEc7Ä^ 4ZFvִ3|G ND&\qCB4t`rAwNy8i916p.{z&6ɌP?D_AhȸEG@U$HeǩhZ/-R>Ͻ f?x- ܃G?ϻ_÷&p#8O| FI{n>OɈX:uLhF"N>꺧O&)â/5d4U tS?K޺⽧I=|MP@4Yc!Ff4 hK`>WQ)^lIR.i-e^5 2J s Q:ޭܝ4'4F, h~y:ęi10%qhЄ6G8u`§ ox6m|";O@17K87m#Xen[皦 $6!3k¹99xѳ 1AZcf {nkDI-,"@4u5|bzDxܴ-POz N!ڠW7J񗒪bZrs,>h "r)R4V$2ocޏ2{PKF! E_:NQl&<43)ǁd=7w|w{7+)iP5ʚa|Yk, %[N%Sf]+^l@ߗ¯ ۛxכ {ySHH%؈0Xt$4IH*ҕЂ]|cfmHy4i }~)U `5{ @t C1!{FHbFXf\6㣢لB*8Ȩ5O\6r[*Ojҵ(Hb'lY`&{݇%$hjÏd?J qX&/tWY)⁡xopyK^e Ko:;T'̮+-fk] Y@ן/q q(tQ1QVi4MU='-4z4RPO wԸ ? sޓۡ@At MM7J?83%.2GAvY7y/.2cM7}R\И͍y@d|f_GxYYk-qcvNv84"O30p 9 m A T)7 %27DM1XȪh~ʋ2R gy!_.mֵ~h 'H7DԶ1f</07E7PXWx\6q"Zn2d:O1҈H@^w r,\@ސ:;2`3|Hf+4DԶM:QD#70sF2鏵/P""^|:ZHs4CA\`EۻNxXt_yη^WzCIp=RnT*tQ[f xoԞg_w5f D41Q h/Ti_t9g2O(B 8a3OdQwv2"$IhIr^!2cT21'j&PGHFJA;5/Z!:yf`؏!`"c0 V 2T,H(Q*YpJ.P4P Ro &|d!w@g&:R@4 mnqyfõ#b.iɹ1\n[ Y-YlR|L&Y6Y/ r 13%vCrBhL>in@ݙd/0E=!Ak9,>33ιwN(㸡1l8t(>d"V9$ĥ)H"f@G7TzGĜBe=N3. }Cc-:*MSRxb2"`ED ØH*`}۴`cpZXnTكS mGe9Dljk'nY]о)\|3u0v6:$=y$0Ȏ [+kCJCHsD)5sFZ ՝;϶Su)Ø[.z:~ sAn1պ>Y ;׌f# @.4꟔ l ]@RiC<.)ӳ95H^BN!'J8SLj8iSNlK ˹{4Q%B@èAf d Ɨ-9_=*HxM d9CJR܉0&>j"@*~51۸@1^rHF'&25Abu%irC\Ls oI`W; / ikC d=1/2tp\h8 P$rE4"HFN(QCAoD֬&/S)GZ&K}<Ɍ{A=[}QQ9羅.>#L7XG8tw$[Z\pzTs iD_qbwT n4^1BSOZ8SAϺ4Gxߋ%MRVco6( B n鈜dSU݈>4m"KF3P`M4PL1T~4x< 0cMD1@S]pn$Bu4nնuqO1RjJ]8(YPp3p0Rwp73aU{I{XVѳy{8{X@.3%ʏFwD#エɒ1 IyklUU!vr ĮJ(>0R:&l7أ{*L;2)"jqvnclđ\{"%XC 5}F_( cGR{6dyqA'3^q3*=Tkљ#ێ15s='rDЂH+\>@CΉ&#T:sȓug >=s~a',H0E}%2wN^sBU":c(DƁ/q\I@g? dCcA1*>0${Ɓđ8iʴ˝T Rs<[7>{cTP/1[If1QO7$ZNK® Ź#NWucOCj% 8wf&JZihkxS:@h/B(pPkHE%2:{J'h4{}D[gvfO>-Dcżi -JCmdPB cmx)OI]UUM.?[GŨ;6nuq$jRp_]F?m\;\ܜo#ʍLVf4X`y) ,i=0>Z[رp9vp0| Bd ƣ:lP< 4F0:3M"Dm|UWFQK)|>QbCD}6E@"ZDXl;\D[ ޔC+լ~"πĖ9=:Ht5wBW,̎OZ@U |U#9 @< [u2L0])l9P"0㩿Ce if!iw#m$z%2t(+3gJ _[0w@zKpbȄ?4SbaQb$9 &-W&)E9a (e6 W_ La\<#D< kx#TOvJBPx,}Io\zt ,?fqHOgÏuW7zKè Nhvasb0 U&,$A kle9f1Dbxb6]&Gn'58`^5u][l(:(B5=Z<$72F(GZOM9X>/+lUU&N9|=iT͟ 3@D d,ψlTpf s-(4M ueadRzƒ}nJQIY ]< '<<` )XL CEU=e#Ng^F) c@'4JMG2Ilq2Za΃#E!)Y8`XC{1*!( @ޓk&k&4@N, p|>! `IdnXRCi9;ˈD 7DEHIH$#G!0IӴ\wN`'*">/ Xn{Eح*qvUW8qiIiJ6䔟D!ܠI[%qeB.7ʗ0M&6<(6ޮ\rμ" {!I*DD 3](פ %:{ *Ylp'\3m̿6TPShnT׵i# 2^dgG=w 5 ,KeH8ImԶI1&ؠ1*,ӹ 'Ĺ>RHU =pHh׶Nr]-sRPUR"R7,/YOR%(lUu umyQ}_L5F/P]׈ r2h%Dֶfj)ݠԌ8|'RxO5(٧PTcUX҉oΩ h"[$hCР?'L޶wRHr  "*襳ř+m=|3nK}2&Y-Cwhp݌̚((eQ%t,҈)^bRIxKA]Bi%!f 1_G(b;3aͭRd$~ARAƠ)nzf W9x[f4†QU}aOєdYlEd*E !z-{R8:Iؼ ̼HH.T\DqF2&$H ur d`SCaXJ72RBÓbTJ줿ԡơ$PƄhS>iռ0Bo19B:J7dǚmPB)Tvb&ӽ5寧9+Cq9Q~JbQY<(o37u]4y ҠR'ahNZ764U&E݇(EѢ5uxkp^0j{i/XtH=D} -ޏwu-p>w)e ϗ+~b;6CV"6~@&iGElӂĪ꠳m9& ySj皦(R DlsVq՞WsBÊZ@y=WUU׵3J cFʸx2, 'ϞsSF|Ӷhr *2?b%ۆѬO {1:!q "`R0CFyAdmڶmx6* `).xal-MLq ms厑?8\׵B+:[l#H\뚦}R4*5L8$f0F…3$6hHI[H&%UX[HDm@rZC._ʕɫYB֋sRΥobҙu*cuFu%NQ&Aڙ]mUj['Z Mm@]UM'՘N(HM5ܨ o$JrV_Ybӧ\H\)oU\m_ضz A\@nƐSeXY- e2?z륻cmR?5IxDWf4KmMT"I=9xILf4%M4KC4yVI/qVnLkb]s"[^2eL6wGIB `bd} E2IKU9޵ŊLh*k  &)Bd}^IڦMD| zǮ+4$IƘYL1(I4PgSZ+\D$ifr_ˈ.Aɟ#0lQSiE,PsW$r#kmմn꺦Z[=1N$ɉ4wJ#V  v-jYB%E m!\@ņPG -QSQ='y`d-eްݓfMJIvl}9E\S@1Mtupfblgq!]iJ]*O ?!u^x f!d5>gCRF?pr Y2[| W5THK*S1F3I7 UVے(و EQGT;2;G>KT-'(?6TO&*WH0qv:[ocfY]G03l2׶+dG $h+ň=s%a}Z|6nu&3 EԘ8%BR0$X0VvY)38}m?0ۇ9BA}6M)?0>R"18E'GtAL3iF"MՍKYdo[~N>\H4; su@Pv/r=Pb{jhE7/ uf`OaAZtD0JfkĜji5ZǠtJi R rGE }P82Sf'p6-̮Te5BBBkhT~ E';B]Ò-Qj({|p޵_D\J `Lp;gRFj̥?}yw` .8R-H&Mu\\R#p'/,,b,jcN5 []r{S6:䤐hSG@d s= 1?B:u撩+9FCAbh޺-.S rJE¢d3RQRC#u.1B;S E"!SGUIlNC rX44 qxJ3(rOdvlH|s8=vC_x5/T@ÜXF=ruӄRبOfT ΟTŒqdJ3QS3BQP C@9yAO85'B`[J2Lp (#S{KUTL_:$,;]#`mV pqmi@./aG#6]޻(q4AD[Զm1l<&&݇*A/^W+-mnؚ6&\0ƒ4Xyy |(Vcb.K^LCcnҹx|fϻR lM1RVlH}S=<_7V˄V|K$Psۨnbh-VBeʦϔtP{ߎvyܹlxW@ flR(eq(vL,BG%=Dېd~I7Dqa۩ j/)/Xc3m;2J6z"D99C30 e5\]Wwu7m40v~`ޝ-"Tsr q.̊px7S}__bblgNZ &Њ:SJD7.pmw(/TB@0[bn܉":mŸbob[PgNHt aA0uUuΆY13#~lB>uh$N}.Qd&fͲI::Tb%F&ba",*RXXˇfSG5[qFlk\W)Gtx} `Wd:[`1;KR6 OEKI< ҜzNVH/̦ =3tM83)>KF-9`ۼH8O#I hRqrk' ހQx\ g &/B@P7i1+T\rԒ5,jN8P<*YueQ$R~yu#APfv,&!zO &zãsm.@_o5*h:'%_^dNjDFDJEç~""Ȼ]E ]QPY#Pe,M˧oz<|( ~aBڜP"ya:] Ήxp9π{䋜Ng#b4_f+L"25fvMn:3wIĨ?=e=Y8@tηm 3n{ qN6t/7\.-gup\kU f`c &jS_[1Rѷ)< I7\G4A&LB`峈!fOn{ DOg3͸Q@C,ӄw.OG= ^fl#& |%r*mL VqXLyF}F)9ZE\8ɕ^H.,, X)s'6R[`0}O9Neyřޥgp`B4nw Qc) #䶠دH6@l |ɡP:夜|Wf?nGobS7)58,iGTu4͖P$vٷϾOP#OE"\ SDad UM<$0xi%IO/ 2% :JC"63$ CIk Cd~ڇT"I\Wwl@ۣV8GrS:Šqk]abL^I4Ζ.L$޼%μR%O>'qʀݰ,PFw{%Ƙ zD!H1H% SdN)PD͍2B>42W (Q2{Ҍl oyg|qߞ' TS>MND۳J^ 0 gW:Wb!CFB@Z(XF!6J&|w2'=3yG'ds8H֖&mƵL9!Ov􈁏JC"=M}-(u)r6B|Gkjv(ab#a $= ЮΉǠdB'^EJBΉxTrg8GK$~N /ASU1Q zق"h)k-ڪb3ޘʀA眘q6TzhMy 8IՖ;+ N8H+nڽQR2ka`& Y-e21tAfRg3]AD}/9ްPV2at'''^V1Btgwބr,]^ӉA߃=ZRټٮNʝBI]{g, qVϞQ tL-. HҡX<0fiP4}D! #fx3GˬH!{u帤~8iҫ(?*y533x  m~);!oI:Mk}c.:w Ҁ' 퐲emQ /Y0NIc.LrΉ(|Rm[crn}!ktv{% b 5rѯ Tǀ~ShCd xc<"c+K! 3,WMp@QJ:E0Ʒ0t*7BouK%bȵhZ7n.^;Z$8r '2cϋ C"j&L&e 4hZX[(c˳dW%[U3 Pm-ki[j[hۆ}:2{N`dI7|]`_J(:mo}y2 ,"賃i >=ZozR)͍N ;)#1Q8I4 cENK7hoo]SrM)rR:&Bf<"VWLYq=|-2ءa |RDc<7>`L3LPe8IE9؅'`Jrm-V"^-mN\$Peډ¬달T὇ Nm/ڑ!lٲiѾ,Z;f5AZ0C:숊_V>1β21NA(5$.Xdl81►|7tM3fPcT0>Ksy0d]xl(8g4esɌ 3ڶqmpBdnCAd-B`_#q|=I,,Dϥ/=iIA frz4ߠ)2 C[#*,J(>7SP9PĽ9c6ԨyJ76'x-qˮHyΓ!@UUuUYm~1XJAR|tAҙFg<0ICzAQ=cbP?,ִN4䯱͵mB<1%(W̆)GlDCKf/yu`4+l*X韌ɒi6͡eq.G%FC;Ut:(N#mEeáC@ d͸qRDL*K{&(T!1J꣧.Db7Ƞp@g&Pq |TZ < r#vHifر ȷMrY:BP{;yv9I,G)(&ʤ>*<P3n󂉅#Db;eMH|hGÂanBL/ʑ<.82>iه22hѨı'xa,]գ$*']wJ=/j$;)[xeG886+Q,F5"&7Իnǵ c#"Bv"3P#?XHGyq[С%QЙ VNC!MA$@QP!Jy'!Aф*<!Eb)y\\9 GDe Њ 8Dl%O"PfPUfտ(   *\z pҔ8:-,u}۟t y0:CC])Bph8 ,AM:҉ "5ve Dؔ>aV'h~~$>+Z/#\\닿>#z?/Ҕ9M ){V(FM݅IJ4!U#vRq}CYQb.KUUU]ce h!+ny?ۦm;b.epF8֑1뀇r`32ā4GQ]؋H tґ/>%;(_>;?ni8#Xz-JMp3l4m۲ 1; Ĥ$JᯚC'2y̛֬pJ ${ k 0wӴ̜O͢UVm֗cpue2sn I*,,MR8\Yps4fTdnx H=ŦTgwTo($򡀍4SNvEf8$^LZBT.IɥCsey4~=ASIlt.i2}@)ElIqH51<ů9A||XyfÏ}~[{~NVO\T7?~_ .7>žl}忾qՓ_ώ#T>}~g?"\1oO~9_cw4N)#L/ig_|}WvE?¯ڽWr,}g]xoz6Xxg/>׮_R5hc!k*/,?:( $ (_@hm&*o^tF{bІ˨H$@uOE3K[4ZfixW=YCՋ ,fZǐ+]T<~#A=Embus㙫[Zu+Ⱟܶa]w_5Shz4Uum+kmtSSs#x hӴ-mg^q?VfPU>~^xѹ?ǎ{F֩Uؖح|vg~]u3?onWYҳتգhܨh477͍FsznTjTףznٲ+/_lţ^s.3;n!PJD?4uiգQ=2)]Z[UivܶdB5 @ ůHXh}^/ɺ~r'G`w/^ҫ^{knXo+>_zW} PpiW/~@EDPOo`cܨ !֠'Xc?v wn_8]Wlqi74WWUeЀ[7uUW?;}~_B۴uIU٪2U '9[C tnO!F u1Q1̖w,+ːkzUW'ɺ>t]ݞqܧϺટǟ[Z5GϺ3>{ܾT4`LXޔ~m/Lcfǽn^Q;g7՚W_0n{nϼ"Pr "[Vu]/[6WȓϽv{J&)@h^aArC uM4ƵN: 2)ele|B!kc:mÏ䨷Ꝟ6>5W|Χ4"@}ƻ?yܣt_x̋^ܶ IDATヶUe){J)Jq1kГU*H*0--KLu{+V+rDꄒ =7N;hreަ"ӧhm ,,z` 8{@_RJ:HSnHKvͥ,  hP11NX?蕧}cJם;npW|A/al[H&9kQ>D4s3ܕ]z}g/g {_ۨe4Q$뼿|~+N:OzwvW>vRF6?r7}d=QEJoeo aڔzϏ̖|z˾_ؕIDo )7X"1 k{,rI'G֟/ƅ?޸;v:dw;xxmG\awU?n;;~ï6M:w|<9_uGsԑuvu\7g<Ï;sӣNx-5v8h?6Kp be-˃ &j}wN{h{废iգX[|f5M3n2 nZ zVyCVv=ϝo z1[ R2O 4FDb@R@ED p x3g^pm0 ͖є L=I6o:M@b^aó^7#Xc+H:+]M4ڸڦM3vdx2y;L)[U-ܒK>|~+^-ew^wͿ:/]G;?l9eko?w ;杏x̦O8{' w^>|n1އMn醯y7\/_O;=t`ӟm_|g/ݴO}9ЪGŏ^{?ܯ~Uc2ñ__u] ֝Fr(!φE(/Y)O,To/WEҡ)T伧9|HM;ǐ@֤ׅ5Ѝ7\ 0uHETS!f忧8^mB lٜ0*}ok{ ZKL=`Jl|Y};.6k_X '>`5;O7/ߟq>G~v㷪&n c%)*7G|.qn '翸o/#\7-yXܚ#=u"~.|m| g\ze~xվ_sFj;Ykmwmă=77ٽK=yأ>`{]uCz^|A[z4͍le:GgS" tiZΛ){;~s/켯|߾c}ʺZ/|]z?{ګ_3ϸ.lem7~~7]wNv~ض#`h\dm9`j^q# yZ~k߻K=Vz"O&|Nګ.₯}u{ﰬ;? U?"w֏;“ܮF˾u`/kc-|‹/o~lWųMvm6*[ Hh\8 Q=C.bS)1"{Ӿxo/; ?oٵ\s\./\Top_|/)?9g}ߩwo?ۨb:%T9 -rOK0"ޓJ{t׽鉏|ⓟyYho-G1z[l{KӅ? 6{!Z.`|n( Q j}g ٸ#BbopSYFz eRAb>&7Dh]{OOe{/>?T;/W\OO`_5 7j :Wg/;>u<o~XqKfnGOy!AĿ|>lq-Ǽl*jr34m\Mw9ßݔltW>1!+􌷜݋~|>x& z}gϺ+'vGKs~ҵW\uwO~Nc6 Hi,/HWz|x]Y˓K~tؘUkw_w-c-]{VmD;uPM.\wn֬0v.{]1Mw|Mc+~vV}3)=w 2jP# ;jS뀗7.HYCjF7K&i^p ˓!$H4*c`j1u:d]3CPp g0;pOy( o4fl~bdm 7uK|NuP/T!y̓>Cl7=Ǎn <3z=}l,D,bR :ӣpCb5yMkr֏}Smb@B]K,Y3͋N9?RÓ=_X]/>/~g>Q8Տ⮳yq\@;OO;i} ޯU~͉'/CyG?r4=̳N}ޮ#uE4p_vnc_O_K'}\B>a$T~\?=.ls _u ںGD?_=99l\w;ꪪk⠝'+6O?C;`뺎 d01 *(|T޵ֹk"AUemUͭdyS~[/ෞvƏ9-ɋpۻ~~Z,G\S{nṠ>8=ivH0hԿ?Cv;/ {"z>rK?^paG?kWo>2'=>߾Y?s%EH\d 'P@1E0ń)YPA$KwQ=3 {|w<0;;]]_h="_5=Ξ{vfDqY&E h!0kG7nˡ9cLKy̴c;7HW1D“FЭM0ɶ@89+.vEְc,=YK}]ۜSv)#VZW&ܓ5n~ns:wND`3nYAqL0 ѣvOH:l˶'4#d` ݱ͝ /ܟw dU׬@ZԬR Xv*PUWӅ|wms[qDŽʮk3Xi x61M4 'hÝ`+X2qRPiXѵ9}wիN5YsvQUFޞI, UV<f*>͍`,cV@3;s/@-mjԁ1|5\|Eis1RrS:wjwrN#"ڜL3 K={#z7q뱏Dш {QMSm2M4 }n;yk-'n+A=3 >ܓw{. ¨9@&e` |&!B@F5৖wܼK3C$dٙP|u:sxJКF=Pm׿h3HZ/'̙hWӿ08 ^I|MLJ7fG !3;5+mPN[; Cv];o;+K&7-6yZ^/6f{dب"׸>'} 렚G#*^^>F;&(*NTL m>R~'.{)R 0%b9Ǥ%7$Ppl#J>Ȫ[K mg]|Y9>xpϓl/x' UBCO~ ݯn=o緉r9,;[M+W?^n>^;VNbb;g;S7.-E_`G?3tښnZ0[#e}w|림ZoiΛ w< !3;%B&~;_~Y~rIFQMuL0 ǽ7ak;fyyW]r5A+ԪHW/ݴ+~Ö(PѶeG*5zzzaHӢ[O/N^V5,_lj #@rMv7en]naF(K^ LEXG"7FZ5]3BQRiq/'/:xၘSw"%E%E^IfZs_ē\P @4]7Djt.*Ɲ HnN+b) ('U)[hhnFZN}[8!˨R.\mF>}#Un)Ȁܶh$,쓋_+\5i`w}_¦hg*>3t`.2 &ڹֱGLݐw`_s|ceW0!.M~i߹|[fՊ`yLdEg굻M]`- EǛL[ȁf!U0t]48m۱h$b:a^8ٶmYA ȷB0Le ==+@S_+W[5i`w^[xRfYvn3im!!"ůBrkVLmwolЮGv4oA1rzeb!,!@¬51Bf=5-2t]#Sެk-[k;sha f괾Zt8w4Ʃ\MZ;s3EwXBpM? maӫq&#.B1 1(` McԒ'W,*]۵ytΤ5C-jd>zwy?~{5"y?p-.oozٞ_LխA=HQKU^aٕR>BPj:-l +fmΫ*jX .WI[t9<0_E@R2 #9|)KA5r6cX,fZ%:Ɂ^x߲hFR/u|ˆ{7N)uQr 8xԒ}EC[}^ƴAoM\cu?7rSv7k4MԉX*Щ3 1#IkBg[v) n컃ueqv3QQF@YWhԼR/Rd7GxoJl>5ݗuyq1'>EPw3;" ΢C_|9tJJ+2[U"!5T~\Rr>5L )2x~N QRh{۸$,*Wn7\dtlx R.4 cuEcaߘOq @;UUIqQWD=߸J6D߅kRtq)/ zl?M6T;څ3 zy|rNNNst!衃pڤdNfPy?˨cgk_1ꨤV!]>ls1Y)^i֩o&uӲZ~j@,oDf#ׇ /_ UI벳=Q4"#rƳ⩵kY*Z+L6O!'htOeuMe2yNƎ+#;ԅ[tXȶG$z: 2,˾'*@@q׎[כOh骲MQgN9MFor?2v[{^֝UYg8AW\g,Lh &MvɎ?V?N\u{wl+09iDcUq}ͬkUF"J &mjW\\םBlrD~^>'PwLbNN9/ag_-*ٻmێFVc׿A)weտA {STf!" AD"Y~\ҰYŝ^xMM+oەXz&OE߸NJd﹧>h߼&zaO@ԸNjjnK{3=m&qR:R -Ka۲9qj+YkۼA)wy6㥗?~c=ʷ$rÃ_7Y6;Ow\}YտFݻ׼B -iupNeٶ%Lg* Dtjz'rc,!^v}7zVi-nonz IDAT@ܽc e}Yfp(^G9~؀cd9I,@]\^GAseٜ;JDj{֯D]ZAz:_|*V:+1CFkƏ^{gԣQ<־ܟcxkQ+Q7N*L Joz/[qPt~һ.-bT9[nw(@T*}/?pjLG,2df+ԨM_~9yk^TpCU$ BWD:)(v6cMj9n]p{MeHigs߱# f̡3 q'@`Y߈ |ƟQ=[:ً(/ԓˇZjƥdB"@Q}ISL-C塠UĊ-@~9sÛ:UM(:ZY  |}ǡYN9Ǹyb_ޮgj[I1A@[twLe#>I_[ +Nշ0[9V`<|ݖLenw:餦ә"VڡD㳫$ Eܵ 1!u-!ϳD*y9&-)`iV`@gBe&UuWa0" j5r Zʙ3]ciX 3EMdӏAŅze$ 3<'KIT //Ji zp@Z20<$U>ߘ <>w,^5`.waSw])${됛;O8HAwze!(Kp,&V,O;̖}Lݱ$vՀf~X5gߚdi O@u[6])#i x%C 59Nњi5_]sU|kȮe2;5ȏ_Ja:L4:NNbnE(r7p  ]yw}I;F2'Fv|2cz\mqL2EB-f!Dn\fi@ PªӍ$5#VhEU|؆7Hk !d +q,*|D˕7NcSDΚ(T%f]0mw*N*zt,1M5t#9Z$47R@ɨ-[ZOXXw;4g^7Of|Υѫ6cTc}6eW4a[t2A9L@z* 1-Z&@";QV?\:6ILkijN=rݹ.=ˍ 5)u[6ШOv_7e sqM;Mc#'8R2qb@[X}fqbo}CGjssJr!W Tw "R3T22R51f`ۄtya޺zUY6,ذPfZY7}<7\YιKn %]S)1+VrNlnz JS 7R.HzCb歪-P/q?ݥT(ZڃZjRE'yB޻H*ȶM]~ fԻK2ޓ*.i{iY2(uNa|v`Tq߰yaéFe]4Ozfj*giKPt)[{8Uv$.Z>޻=?\&soF6;8 )޽X˚UMD -4Σ&oS{PJNr6Ֆylۂ~CX| 3+Umƴӧ-M}l:,;*6Rg_ <7[ٗR5 AӲ/4cǁ9pF:Ȳ3(J5NIa;y;/ wngUP/W GumI!_ϗ&@To=;wuvln:yeBNLN,ێذVr"ڍbvvP1 g0-;͜M隆q"|V{A˅0r /Y^T{Z 6yvjuv+]h县vƥ)!~<l6vzm[L 4#e%21/Jf4s8ԨS~yÚ]غÕem>A؁[Cts틶<:cQu#V Nbј3e.L;D Hu9>DmYi[j;o߱}{Ʃ}/HC=WńxUAmKh ZªNvXt] ]34ۇ}d?~_f]аnF>}FAC|E ZwsMߖؑH$_fR7*GV._sof ~CKr`3Ϡ{Zg}rhW6St|suu-{N^Wofv >ֽja=l8@QU)(}M䪾[g:mιqf|˿jgWiںӋ>"S'h4|̱]xl)!Hh5xB2y"[iLȘ&Bgn\⺍{m,]zm%i{Lǚyʶ{Msj6gW8d~_wvjnظ) 9 U"!邑4iʦ_wߴrܵ[TĂ{}|N[{eckjpnСmwnVURt]Rhmۖm[b&l&#D"cHiY& "v$ϟbK:coqFV1S~>X]]V{>eݯˏQ >զ 1OBDdwl۶=o~}ӊ!|yǏsk>y/d]<ڷp[OԽl[9; !O>UM|󰬈.*NTrdݻwٵkϮ&Esd b;'}#fv-sw}70✜pEd%ZctJHBh׿\꫽ 'mvȣOteh#w5N]tORWv C`/W ~Փ<嵧 OmZǺ"MDjب{`g>^GŶyjh=]˛EDkUzea'6Oym1@5|/tb‘CllnRri*_?Snqw{?0-XKI1)c`pBCYrE=xHssHReHuWےKF/ 48mu:.D@RiЀ Ֆ`DL$q Pz 'e =kF,Aj6ޔ,;u(ziQ +?ގ$?/e{UJX [3||rS/;v\;tdlgaN_2w~sC5IvbAO~C(ƽgzz pI>Y%kG~oW<SR6h= q@k{&^xWUԣGL>5o楧~'vQK gfL8^맟<'<4맟O~JY#~`GOQ#iBy!{&/f~dֻo|k蔥~-G9bM! 3gȥxF Z~ß-30rifZ=:g[$l﮾t~SG U.ײ5Sǖ,dn/v*\stӇF2ߗ^Y:0qXq l[XrթsNE|w`E%"Wq^o41W7A<ڶm'];WP *֪[хWId\ xBw Dm%h_ {t̋;S2 Q_:9>Zk/Z,_8@OwD#zJO{!vd/z}D#3Ye@(N/?Px|o/] C} O?~37Z0o}og_ov||PG&VY<\<@1DsO6G擮Eܙ~ GŎ1nYs<<(&{@BbC&"20^4tMgL3M&N-#>}= c#7s˶r}>h{Zm}%'ޜ= #kȈ !{D1Ѕ?"IbC4-1C"6ao7שeW\Cў}YM;eߖ|E;"%% 2vhvGSӹ3w!\pul^~B#nٶER@uea/*&$`H<6L\I<+󠒹^ƲwnSfZA[F{SZ ϼ8ERڑ}yoK;`RLR -6]fr߫j|׏=oA6)'V?y1evFbf-:Mh5Olz2Twqoh1|V= dAu!B ־O? ;bry=zdOO^}z2PO]y+\AD3>|왒}_WĎ}Q˟yQQ9wd87{v:S14e>Ɠ0v2w@ءnߖPA1ECqj+zI\~4w|OOTMq%E"@nX(53D\sU\g7B/.B\U hln6ٖm$k$6DIcU!+ggPӘRk}:>neܒs)[$s}gz h"%mzrTvrTy;0"~W(*cՖ4 9.=( sL)! JX1 ao--נ,q1sG "*AQDE>JFȶ-"*?$:%aY<=Rƕdw_TtIU$t,_cץ9[|@GDDv0PlѓI0A Lӌx\1r8QudL {]A 53 W8mۜDԄ1-sn۶MuCuC-s)id ŇĕHuvD@&HjJԢlbX,FKv+ႅg!At.E '!~Ep֩2Fj"*k ո'>\ika=@dnYdۜP8 @ā۶{$;( ]"͘&?5|k!ͶHv . :ض(xtP{D } BPr0UOM6[srE9(1& <܄R8B4g`ӗ Nf뺦) /aXes4E{Mp%2>pIA@\wT AQN=RJEs:/`jr(&0хet!&Piv:Yq&%8eFiRjHJkWfC@vkn[$MεQ2,w{t䶕<|oza`^I"YqT!*dP%of(s5!xfF cb6B-%1B/29)>/JMjJWAϱ]^<#: +uaKr9.&HM)r^6@IDbir3O3jsivr{Q*"wγpuw@O"uS3I=?V#oo3cSw6}cOF /Z&Lzt^OQ 1=7I\.-oVq6J 4M -7ȃ;he9ŢQ%[#I4Tǎ'ӲީD1m"qZF$7@BnT8TRWR-Xv4!x H@@dmY1!,m0MeV,-\c U 8J}VTp dH$h2|UM)a0L 4iLN&/d"*Bey̌٦X+9JDD#fS!%qo9fȢј/Lږ*` }n鎘e#8=,ۭ{%A!k]~N#Lo]-f隄2[14r@@SrJKsvD.D\ڹ%k$0. snLns9`4U*JLX AJLuazl @v^2O2Ux|ڦEXWtc fK "Y"la }}ߜ!=gL27))@\޵l>+ߨ|⩻z%QtX#(xDVR;KM"CTjsuPTܒµSpW5Hb*xdW]Q¹MĉJW^#W짞L R!>d*TDV@(,gLqL(E(X8K&VgMTE,B8pPC ՐA 8* ^axQpWd' [!M%;;ϪbfI 8?'z.%Q6t TMD?Ĺmjcm;P%M/Ot*Zv(LZE؈H mrSZX(bo(da@= Ud˲9.A\e,tt/FZ:FQę-.[:24\ŷ7Xr@fn#x>>ؖm&i A2 }p1LF}r`>MAb+'JƟ^_@U;U)cVJZQazyO@| K%JS>J+=jj= )A֓̋nP>Q ^RHU\!_~e܉VH2!ĕTm_QFbj"Y''MV qv9t ,Y&0f =*J+, ضE GB%8齇aƘ*VT^eY91lU ij|&V"ர0*Rf^N% 8y=c"M%" bUjO iA.661NEf,&=i cLc"|+tMODJl2ι@2N?U:D *59Xge襋ttSu4c*Cd # f̊b$\R*JĢ~ Po-.'dJ.5bFEDLBLca!셕B9\d\6 lA6d\G jM.MpKC@*R]B+ +he9$[f񢅉NG*ɩ^+ rz^+z))+y"%GgP0TѾJ ,X;#%x=IET<%$RG5gq ȲF=*mw Z[ &5ɟ ˢ $ d zM-LT :Ssyo57sWY' N;~n[ćf[AaҶL\qO{+QBk6rѩrCՉ ʁK1s ;T1&4" =P*)9L"ѥZ5Qݍ@rC97TOq5Ȩ>0sG 8IXNfEu^/ZZz n9 Ȩ@;W{zZ͠޵F5sPnӻlpff{`tx̚A+[Nc99*vV~AչZj9)ltV}]5T}jJZ"0Rpe#Gek T9,oF:Z59dPHA +.C:#L7yx|WB_:[g8?gylwVYpeQԝ/rx$VUv ('J/LÅˈpB?XuMwd۶i1Ӷl/po MuQcV̴L˶m Ҝ^aBF(HũɉL3qNB!09M'R\ݑqm6M4M4m&NHiWjMo_ð,juݑeF Ñ0`if,DF y{/`#厕AeU+N RF8NIapRq^z85%fF@@zC|us5@ "P8:=ywٶFM[FMnEr #?xGUSRRBFHt]y!# a<U4ROLǩʡTsWV8i0{ֆ6X8NIIoerL$d7۲96W<ɔk.P;dyT4L).!>M@ʷhq˖[_W]§'[$p=bz>g8׺x<.&ha`b;H1 ,<__(ȊN*Hf xh₯fkNe"xYʒ{ָ,ĹpbMxg#n eqvɾU̐iLl&0(1NUtܟ kw2%aeu~u.i !J]j򕋗X0wҰ'ZePe",lԝuyK}V5]5!C5r{A4`1Bphz _;?wقUˇN̓UuICYa>m@qCNq͓͆zP8-Pٺ|0qڊKV;cm"upQxf!n#D9C4tݹh҃%RD*+)r~ FsDH/0}e*ps/C2e2SRSa "ff肑ia@,3-˧LOEz<@',d>4l̤yW8k5)Y!ol?7\qMm\UiUn?ش~j1e~{q;ܶm[8f¡ m۶\+&FEs"ɳ:{i+v8vBpJX7 8µe:wN˽GT,D]ЕrDt9u'VIWs~~|]f)t9H{+~_q5})qI!_0wݪu'vѼR*Ko|KcXasƼ٥I<ݖZ~Z=z~i_~?{5**^I( ۃ-@Ꙛ|Gu1`ГEe!ofۖ qm˲be ='OI鈲=?EmX_ԾA4 9Pizٔߗ._lO_[#4Ӛv{mK.[u e{l{/׍9 ̥oU==L/2S-}。\,br)1p|}8wH09 +D$^(N#gŠ@RsMJrD9*fLYH:%G-䉔H*'8W5R"U bffj!Yȸ0wHB,xˏ. ̸}8r"c:@tRDrEga>ϸk o¡0Q ˶Κ48|Qti}ZdAk V۲RDT :yyo7 Qw*NudAѹv~dVH `#_=y =sb Q{o]8X<ћ4"/Q]#Gᥞ_wo9'O?"3 lk3% ]d.רO?5omK$(12&u{~h1Q :=vW>ϱ g1-Lfdϗ774M˲|"C^2 Cܱe7fpk3%✛iZ)ʛ|o-{")]lNKP1#)q<(јmۺ!DF~ xIcĉ,Sog_7 )GGJ=# smHmGjl(4R76:yces35\pno^R974 -"ƥim0)a4a1 9%-sunWUHYu]}[8/ǜێiFc }b=== 9˲1l xSѦ"RZF)J p飖6߿ыBeV!}>``EbU:v /uy+4N?`;~Jex6 IDAT,a+fi BP1w*e'Mwԉ+Q( `)8 A0,yPP(,}h۶iYHRp=Au;3w{ɿ?zVuc1Ƈ+G>:╶{>|9G_wȻozfK_Y=yڼ_輬 \ɵW56 JJ25'JK;i.7KUC PjE1E%}NVG [,ɂ R_J@[DD]Ә,voT t=;H$cCɨ<{dIOH$"Y(;g0 W _xU vH"hQy|īpTϱS_Rɕ-RӚEAk*qTnRVEjZb+ 6̃|!#C\8UG2+8r#w{vÈ[dq[bi: xkCp)o 0\>w\\=<~ꨡ_>$x5yȩw}{,vO U1LUX S*MޞZhƣReӷiȿqBͯocE9bo]]UΊ0U'yU~`ӛ7v-wf >{,vbОl}}ns^]kðJΘDNP z`dt- qCjS8JcƢ;{8&*Zj؉b2S+Ͻ".ˆi=V#?h-hjG9Q~<5RՓyᣙb]oWxO/Q [\bTrP]7muTиN_.]C}}w\4M8qi}x)sMpI$ "*ʊbZQfL *sD]E3~"Ȫ("HpKi{f}vߛ]0wLs7](aɒP|0PYjF(]Htsqy|Jy<9;ʏwqs}ZM~*F+^q| gӺiҟ?zg('DEy6x6 k.*=qu,˲o1ݷBchťBsO>uʊz^~4-cBI/ 4{ ,\=ӎ2ץ s!u]Ea0-"`9Fׇ>lNDDϽ|8k<|cl l1COܬk2~˕CsANjFпwV'4e~)/e/h`??g8 jy .ⳟ5|獃Z ~oN^wo=nun(S[/)PO4-=P۬͐a ͐2l1e)͉,4j.(W1𑬙Xdy~ڄ9h0䊓7 kƈ3h&\*`:HC߳%bRru<$7Ras㉨}ڐFqHtBxj`DO=>8rw?pv'~Y'doc.c#|#߳t&A&s><ማ/ 0Vso)Ç^4ƻ^]UƏۯ<綟zg4g)\퉬fg=;ii.r1Zy s@(@Nv- 5?aw_ ScwCW,y&oĽ_#|ÏߎϿcΙɉ <~^=NU 6~T?Wwi'n>9^$ D^7o,̬;\V?U_ls߮,שuu^U>{xs+_|9uOF4˥5sZJ)?cGn#׌G ;펛8kuVۮ^4cu=mף/z.7?H?㌫&o=N=XӮw`Jx童,ӾLl׌Y=f;ٶmW"_x+ҩ'!h?,Yw/'^.wS{nKaaQt٫^p+:pS5ϝfry:{Y%Ëw]~9<ՍݭmJt?) N:v],˲m14"B'NRNq]WyaKt?= Xr@!cv"a'L$ ݫm㍎2[R=([F?GD˴l2-CT`)c.ᔓ0e T$-vĐ'_6n_#0L˴ kU=p!_>:]>6??=rzAUjϟ۩qyؾk13̃%Oy'ou!vΧ{ۜѹ f-m $H ,ܳeٹY LuDf 槥˿~뎯gCL^R^| -MO8bk4ԭh뼏7B9r2˲L˔ - B[ڰ0dyezb Jy]0c΃? YQ[&mS\p~|ێa|Ôs:v6`.ۑ=vplNj0pcWL\q7]8d]:`72Ïnn*s=5}i'f0 oU>dnw|m3tlQswK<{m۔3K)+):gɅ&}hß(l ͋f~ϑOnvO]ug^ԗםxB/q4XOAOlFPw[d5۳uaK+*\ >ϜsyF/;!cZh4uv{Emc1߷\O~;CZw-_?V5w d݆\ؼhe-ɇNzNNy{=LDl *X }[Nɭ0]F4߂6Z1DiJSo@;"?^>\I z`! Č4z}" FmQIc E\y8zW`Zm,!.jO"}%<00A+j$0`hT@5POmK(3W3:+ 'Yk0 'Ԭ޸۹_Kvo[|o@E݆~d{6o߼g-o36?|~h{L} `e!}:`dtMg (2S;-oⷿcΛ[7FϞKo :<$mf&̩ݧKv^䉧?XiS{w7ȠS7)Fb,dA7ȘbAmLnzEPQRYs}YuS%ePTu|wUg_>߯njW/ª5oqީݻyjWsyu akKP~V?۳xx[7.'&hڷwS+\v x/5 RV`'?K 3}sЪѰ*J}٤3TAQ|\ ]kdQciAgz[;^~U= AeYf2-K)3* .\BH0'|g=9ni'߹-Rصx?M#/2W3(L&-rccO7/R-.EjC)׾|V̺ ô,4>6ǣ/[W ])!!W{7~,߼iS %U/ d3ѲKZʴUN66 "aM#MڕuP"md~aOH(w5g_r@arTVft0qĵ.i+g i+BB]h 0^FDZ fw,UKVYKv6mcTiMԆ:]]+[f*Yg@n8ǹWS6PϽ @Ӿo=M2fգChu?~iIȀj@; Ufqv@ǽjS׺P;20wsêHRC ;NW(Q"gIoǦڱHn͜Hk›(TPdjJC DL°׿JNJhZm_qDTeL cfNМ!L:%a6e@ LCw6X2>_x9Ae2~T瀕h7LSJCOӃ"&q PkhR[3ShhIIY] }j{Vc\5+wz2jw݌AN`{@L'ŌX(g=zEyX1<_a+Ri:>5ukQ]eLJmAmB~?CXfMJl,'giO:k'2`ffAisdĥ?>#ԯ 1H×Sk6(s:rwmܠwĩ<O}҇G,co>G8$ ,gefwh_׫ /E_TZf!!?!#"./sM~}j~Yi}9e%۶Ċ!,C0LӲ"8|W"B,^{yg~"AC%EI-DU(B+87LòlP-XV&M_WpN\]Ѭ>QR@Ȍj.u̐k5Kרy1r{^i$fqj>Lʹ2&cPq܇F̙NiGT`L«0Mp]7UZpXZ)iV6LSn`2,Oo} 4!L& .添ƑOnSSϽ+mmk-_q<HPC7u4_c,`KL:p^=_wv̙ݲȬ׶E^|v~U7\"ggv{6Np𕤨EoAX ԇ>xi/[Sixn~ʼwyܵxn;6m~0=>i3 F 8X~(:Z&y{P.rϻMZcheivpԨNiW˿_~qr(B|ggvjR|%untMy="[!.O3Ÿ';>{qζVm >g7^&+" !LB581x}@x)MqݔV@yP"z%""Uk^pH-7ߐ:a10,~:tרqɗ*FqYu Jvc+DHL \A.#RA5TQR7,DJx5nYɖ}iQx<4.c^Xa,*r#c" slUQ99I.2ͪ%o3(Ɨ D>$Fo;T{yEV0+^^wƒ~T#3$ 1j[MK2g0nYYwL)4YKAcTLY}."W`kA0B\Q:kKqsEHH:oV~To.PR({(< i!3˜"E˺ ߈ J԰?z]z|գLwU al@^{#.F_^_]s=Uf߹mv N7~[g'kpOa#|RbW{]}êCwuap{92v @":.:Y7[ q"hD wAA93n,')K^N܅Nя|&Ȼ=b*CM ~}:r+e1W{ *ܭ+JY kZۿ j٥8iEPVR!I) @~/CjFuzGo(|QQp. aeY&kJ#A=.G&8'\:I>C ,` **8~)7c@Go・V WAo7?ܵ:eٶA< {7Bf5 *qݛVY[dh0fL2ÐŽ`r"{@dZ`*"QK$(HÔ~($xc3yO}p [⺮dEz" eYDu|Q9T_]@(3M_<[9l_ԤxpOiyJَH?D4Lw]tfjL_œ_9N IDATu8gTוBfLlZ2M=ߡHAHA %̘?Rg_ 5<2Tr8i".=6ӧw]yӢ{_v( y_ȻUI°{ w|pׯ,&RKzFl߮t>w~tK7 Mkulu͎ʘ|dn4:rF<[₇m! 8Q1\T(:Uw"в}pF+=@F&<2 ji0"o]mmvXjvAG6vq~p_~)LҒ$oU[U ѢODvmYfM"ɥV hf)v3©Lo1Zq ^=r䇢 뽦U~nqf&LrI ~'94Z5UʢVk* ~ea}/U9SZ۶z@nQy]֘p8  q`T6 nԱAE6_dfy7={m|͕ qdo|gϰ62ƹpʲ q$F'+M -ktI -}2`i$D^2$! ZJSi øKq!i`AKv~㫵 ̀qaU঒GH3^\c1uĞf?Fѭ͑ۥc8&/R̫KJӰ+sO|xWWPib !૨"5FLЏRt†٠ oa(EZj)9h!^Hih3j fC"MPj~ anĜG+GE!EjN9r:GQh(\)UDٳph`D }dGYTv 8g?&_bɻjNX=ʥHe ;U@Ap`)߿٢NZq5eBՊZ5{jvWX.9#թ{d>_]Re߼{̭c.ղQN{.+-Xag2zS.]C Js~C(;Uw=*~9lߤUKn>Ntls_ue=MŝЈ}- yw\p譗:~eu3[? ?ד[%ʐ1ùr2ݳӫiQNX h.;>mӦG{?9`g!/+_\QR1k߻;|靏_\7fsRkޛ[/ud랃owgch}Dm̫ȣZ7i}-c_xzzG/[s9r[ Ax}u]qd!Cq%_|D6mZԲ166iWlȴMR(}_;t?_/ ~}{4oV COlYA<ίbɓltݸCNܮC>'66 ulPB@W}`Y]{q.Jڶ+W5ꘑ7kߨQ7+M7V;yQҶ-t:1 ]a=q--{O8Q:5݂f_5wVC7w;to53?̰N:CZOzNҥ٣/}2飭 />m6-kۘW|d۶mղ,yM:M&5LfDZ^"5^u7aW7=>o"fOjQ`|wm׍~Tm<6m2*(iC,?0ժW/[V|xDQ ) UNL|? _CpqKdL [-eADµ ǡ?PcxbҚ,D! ;_?5\@K |@򁌄 I+^_M |Bgx4g4a 5c4ޛH8mXM f4B++KojwMr@,<SFWv[Eͧ g˜5籬[fjgss6ko} K} T8u^>vpq6Η*V=smU#6yp!{-.P=5)ʗK.u˩qy-Ay{T?5 f|yNhz|`ϗ{?)xD:puV6viw[q'' )1zֹl뿧LmW0߄yqy m1s ʤ%ẗnS۞}zww]Z砍__7=ʒͭMIoMJ=Ռ?pփ;?~ޏj+B"1moʹ.nqoMz+7M PgyBR)0,ӶmUح|uz/oX;eWvVCfX^0v+sn(۷ySw,um0evm3ʅT*:ϟ|_n}śO/W1_]=}+Q|k__DyQUwxE޳_ 2n>@:.YiSP`S<ͤHWf}=ryMP8+~w]{mh߿+@o≩,I+)HNN ⬦SN~ \1ϥsvw|jP޿xꦱwĩ}OʨOv_۲xԕ I^K_L{"^_Pv)?:^,AuѾn8sI]0Cºh{=N w=x ƀF`DZ+7ތ1{@q[IjPg]w"c. c@8i~%5Oۻ@$?xѭ$?BC4;l BY흷ŔuIaG-e˫44{vפOI*_lsp?aq-|!"C4;Z9Z4n6r3al2!]Wm֐FÎcw:ܶ5h4[lJ# JͤE5xu½ȔDza *n0vtnp10L t Q}:(0? 3-RePվ_&׿E E)eyG#_ҧńH?p?qFLK8{|0fBP!G-7&u"H.^zWCtyH kj7Ę#Rz(۔ݬzH3f2qatu]gJG¯706Y2Dd:ؐBW07ЭaG8 6b%) @V#jf""C.nLq  z\0-d .Ɍeyiq0D2aFǓoתάT,sϕqPAe"c빞z7J$ <;a[-8CZ7s=qӁ2"O ?c\Z~+HN9^iQD`aS>5R窜g<ȒrvʶGܨs!8RϯemMpy\0!ETC$ogoP_(GJjF>0*d FUg4zZ-Fu:JA#ȹ'8WIòXh9vItIkn)>Q?%BBSVXaV)f#kاFbPQWq)u.1``,g?Fdà15]G?=zS ۻT-3i˃:5J`[Br GҐXMwiBT1D3duWlG"",x5lu*k1z 1}Byo}j1f@ܖ "dW2 (k3Ds𔹆i2J<c;Ũbbڤ`m&'0&g0#*1>u,J@,g tZm텇1703zezC|WS<o-H|6gb#)u 0ӪU`(Vnh1Y*h8~ldfQT`r([ Vd9w]do=&R4Ő!;w6[2-6b 6%?uDR+B%a 48{*}CDTgKd+# rL e"am۶I&&3)CRbkq&,/Hq=u]I'P?d;'g(I#mD`WaH,@ÍHALD$d&fH"jzYdWַT5%,fZ͘G3(,ǣ _FGE/iVQ8Ft{ !d! ,cN?uiq9~1w'ܝ_j`FJ{TGU,!dߑl@~ҨSA!EGMZ㫃Xx7 ؈ &~ hlې8uYa i8 jL-(,k10@̆|/^%|+mk_}53mG-QXhfRZo%eWdAʫ/֭b6#49٪!2e< ACA ˏObd4I[3+VzŹP"!͚E h#fY±23ڬ$%VabMBf`M֯iK` άFckyupLݡʗ)r pnw7}YzpZ1 Ow`c(9eNSHӫ#'DYw+fءK<0}`82\P}!́%| C.qZ.okt f"m!(HAER\$0M< liG0VM27W@\PvS ǥ_$`oah0IYWT?๞ystH sCMS2fҀHm[I'0 2q*?e[B7p3hZmنI\tqX2/Pi BpLvd$~pyp _$291xʍ QslC*/yh*#dpxv*ISx5oGib+MB`LF+)8!SE?@l%v!ē"8ZNG- IDAT !p`~Ic(9@$O\H~U"vvY9Zp Etq1{  џ ɋaOݔ۹BpDb0&SFaNiț@HD5(Z߀TQS gf2"MihXI!B1v:3aqu YBK9kW&oX]?È9/隯+ nTqT d̷-(՘.,zi4V3M$ڒ K$ڂą*QnҀh%Y䈴iXv[J/rb"cZmYR ɹcn Ei@z"g'1wKiIQ?ŎH˭յ*V0 Q?PO&ۢ(]D$DJ/t*kD ? 8_Ui"B$ Ƙmٍ :0\qq2-8_N`8wH}`GTSXk)T|uϯR"fdrN{/HEGg͈v])m!8l׎H{zv-8<uHkGn8v.rD:2Qͨ:?O9`ڐ&ʳ7 >fgލGJC4itth`J qOp/Z wV -;3F?!.uɬJ:= ÕFC AT/2 !JYĐT &3|=RD4 Ɣ&_Z%Z ʐlg nhSH R% bࠣL.Ôy@@Tk 4cY\y 00B}JvLC#$UČvƅaa2\>q0 ;Dn3L#dqu\"a -۶-ي['D">c@`,i \J~Fu³La0y{EjaI@eyyDu H A4O\ Tc]Jj+2[d)ZNiƈeF,nʹS#IjGD?0&郢(VhFT@ Һs3<|pd~ж}}N4E!z:W@ Hp#Ia&($D KMWd;GҏUv!zB0VLTs} DRuk/"zgE.>[ln! CDfa`wk̟FV^m?#wr<пƖA_2& |246["wV?+~">#`a3Aұ}:du 9 4ن0E#*sY28aٖmx:-SQi{:Q Do)vAιNbZ2fkd" "cxsIzp%Plu ghۈQD= EP]"wȔ`dԊR zD'iё@ҢS)\߿f5^P n\=Y+ !;=&[Fb~#s=!0(fOsG ˂K\T|ѸW:#""s-jWfi<<U㼢RiSd%@1Y]p iBpS d 1 )NR sPS˶ S Z~]I1ιNU5^j*@l u):{ QZ1k | oOCp 5+6D<qX&JNu kjCgM6FvdM:!EЀ9m0* +m %T}R& !B젞DK73 0S$Q 2lsvv(6 ağ2%%D;&,v>-Aӛ1dPhTo}($Hp.%sMEmcedWnR؟Fޞbh`AOYI|1ut :͐eB=;AVDddgQלc_{< vSGr[2+ŃrOU3vЂǣ `B9>"W@)5nYTp:DCLk앳+3rUO`gp,a?DzƬD0ZN#s\<.Y…Lq2P&  }T9rP[ %eD2ÕLI~1d[ .vAe*'aYv¶ Ô)BzIJ ROF)8Y:m)Jgڞ]B$dEg+iL! saP0Rt|mc.l)ÀN,>&;jGnb1QY%;ܳk'%#w2 xY(Ex ?[Zo[7~ӆކrl7?E"166 :>0]y :hՇndXi[iʭ\w=Ko3M2CNx:y\Ԓ颖e@tRp#B("h +x]*I܆\2dB0_P a, !\u3/nji:6

ptlLm@1BMPDݗ=ɁbxX\a!Ø4kugSV; W58\NȿKl!C_E,zgPS&HoQ0͂vنgWo Va0ayfFfHeۃj|/Qv纞몍@]dhaiw$H3N>LnUHߜZFGlCC| : n[!F*/&4dŃ7Ɏ]&WuM05Ͻso{nZ|wnhT/pjx/m_).7&,H3if0P FO!SfDQR[y ˆyѧCbtjyJaPx =bP+\|yɋWjĘ򡦌C eXhŽK@ C]gLd!we?z'TSo BqK@,]Y]^^ku?ѮS 0nS* !ϬsڕMmolc"Ui\ 68t D jT xgQU|u<ϱ9>%pyWbr4'wǂ\@.~?p.Q?0ڟvSt)N$o]y?n!GަZm_,>ew%.-m5v?DM):D3esX{Ot3Vn4((+bk ^'o޹ٰo}9qv#eɸ1qv35Kv~߮B J/#*c P3OT",tɝ#Ҳs/}y "uq=nϪ.}w~A o#ܺnᄆj?iL#zG)*deXG[ HH?M b ʖ޲, jR\}߼o!m/l[T|kqI@^q[}aupqpl;a'TL$ k8ws啺SaccKvngL0j?jxUcpVReLȳH6Cd).s 0TTRDDY0O!֤-X<#`U|ty1KR<> _9xsG'^_ooԙ4!U/y[ZnI=Z];֏?7{# ~n] kDgAb-VKܞE}9h;rڀCAgNlΕ'cj ZvJK@~gcQxO&t >sןw۷`)Vr9lKBR}[Fi@=2e`0&1P:Ԇ fj(+Q"uQó4?1V Yw`\KDfZ^nҽܱmZbsv~<9*gô/>R"TSMy[Iͦ½^ &o#=ZV2 >:?[Q 0 6 ba쏴մ.>hi1e}jCUSDL)r$2V%Ʒ}W-t?nSSN!E [Nm GGx8dWh!F` VHNV:̖!3 :m{VFZ1R`Cy|SvvhtqCMõRR^cjXz@^cLw7{%!Ćϩ*S|2txtN; x)x-d˅E8א?Wj?.ˑcneѧ9"QvD%A~ejwtѕ]YطCn7ig\d{gf߃ vwo)2_׼+Wh hڼc7no{Nc4=LA68xDudS|e%6^*]4Mt]WpA*إ Q{\EPX0GS6bD-49/?xC{YQdTw߉䜣(d (,faUk"(kEEDAP4!xowQU}}~~w{[]-2`۠<<9kꔚXG0<0,1D"\s# ^'n1@j:4P ߝ89E1(ԏ<]ɺHy.WihSjko++:Ҋ:蚭麮i" /_m3C;9Ո k.8< NQHqDat1it LIUήֲW. )SLS"Һ<ۨG{*[W2Zv5Ŋm0OT wגxvvǖKw Q>~ݻќxy⛅u7ܾq}N)f2E D^sz.0R ƶd"0mLЀWԏ#}B$[_e1\B,7-HeG;!,Ehj|_`Xh1Đ9Q`lP`te2BCѴnnIad{l=?UQ0Jנvϔauao U_:8䏇@Vu1dU3v8yL,;hhP#5"ۮUW}d'e9uci r;W;!n2̽s`扗q5VGx۲~lfn~NF{s;ew{ν ߗAf6Z_#ı5gmΟ{lM?@N>>~_Opl}IWN Ofk=[ٵkeAIR/ԢǪ;GhVm.~ٟO/wEX>jw߶:zwU.xƽD% c_{py=pㅝ[Ո뾘.?8nh^e{4_aPVvN3&+zN9yS?߷4~Ol>՚kc~#?僮n?Ⲳv"?}G|ZyBpbuuk-i=iuao|d./ިxkڛ*q"VOҼ8T &ɯg阠iOɍGSMʖOB++6v5 ^ۜܖsP=lϗ?~N9s=Oڒv & T Q )}1δ ߏNS?uu_[х*ړ z6Eӿ_\l7\tϻ>@kI_ѭq?'8gX3nzznu翵4,]L'U.R˕Eث֮ę|?jYI E0R \ Bl˶me8~ C4d%3s/=@ IDATKʷ*8{L94cu|; [ţNp9躵~j=u`܇>^O'vl()((s&1UNeBpϓ2{xQ{n J]޼C :᜺i6H4ZWy9?mSؾxXHfݵ;5ZhJjOWw…V^M{υ$ë@5dz,"h)hAF/iV,oHZrҳ63a>(34<0p@@zt7v+Lbr6]|u`/g>Է=c%5nʀ݀2V1"AaϑA-? Xrv8mdʈaA6J*=>NKWX@޺gTwkEID+6UoVwkEqe7>F#G|hp0e3J o{۩k9lIP |Wlܺ,_Re5ǎhל_w}sڌyv|tuW_}{λZ9v~Mr핇>k&XQ-c)d){ȓY-9\vFhrͿK| 'Q~Izw C;;' =<ۖ|מzvfթca6} ]6}Ҩϭƿrlr7Ob.O,['v0l7<qGftl(~C+^ "9 BN-g@|ϛ֧ՏqSc?V(Y1KhHɷc:C"&y^ %&ٵNeͯ~_Y6bΈPxaO~68g١P XV/Yc%B\λe {=5of#ޚ#[Ǝ`s\L"|xhµ/ِ6" ~}Os]qV }Oӻ y wk5:Ϧ_26qC 7p] Εw^{ Vӷ7+nki~NCm]%۶&Z|S[;=c>g:LW@j%~UWh>*@?ּwn~ޅ_9W眦)l  Gh a'A}Cg%Tٔ*4Ԥpcab HQf% k7 {!*FsZ( Lǔ氮$Mi !aaM* TB&Y=E="F.!K5盷\qX0@T0D}%_rXXW头kӛ:crb%r:ވ J~-^Tv-,wpO{tjeqb˚ڞ9Q=gFzi(#*sH`WoR\'vo]'wsgwUmw)e,Fzle)/U*]Gz];ލ3 ۳u뭕K*'u*DJ4 &_ u5sǬ(7a⧯5HԾgyc,Zw {r My>zÕw(Y]F hWW̗a} RT4HѤ&]t|[~zٝG]=92F^i3nӖ)RSdWӇgO* U]xmk{Y6}qˆX*Pz?hqҔus׌y'}wC4З ԼA3]Jhs*MB!wÿlBDqbH{Σ?&Lʣ*N]m`՛Ԡ˗ٝOoe)`̨Vr14KmH!)]^ylΚ^+ŗ+\5mb;LR.oVKZ }m`_Rj$v.ho鞟Qi*&  4j\պ_706'[Y'b[@p uٺ ?6冀/k`4 .7yΉH*};- v}G\?\/d ~b[~ +WB))͈ܠIc #;kX藃i s]"Z, VQXz^;70P}FMKVOv|5c6rɛSA 1Q=%[u} [ " w q@ 5t2ubFn@5󚠒jOa0䈁 &u'(0hH(.{H̩{̇o@0*}(F0bd ڈR~Os~F ‘9\&"DR:%! {cs Jnوkw B੒UDE<HR,yiH~yyt!NPPoy?펵~Uڵ(et|ed|Jpռz7j9v%UZ^SkկHd@TęVi[~Rbl*3m*}`Kޚ~_^C|?ض}EGsͺOts?]ܽҩIn\N-$0І&"E;<fWazvc1 =qN"2uӧ1dhK!*{+W%(_@B,75O+f6?gחh[(ޡUk뱫7zu}q.b$ `a_qZ]|/s_ޜ?NJER.mZf>kƢ夝.ޝ {MU-3 CFxLrxּ]:t!x/Jmj;9.yhYbdz˹<{RDN7w^ٺIhW%D"XL A7ljbh1 !vݓZdj粳*#nXMg\Tlo-eկ ~r(>CA," Pov&!"$r漱?df!1Uu^o5઎E_>D#8"^M9^(7ു۽Q6=&2OD I5v+a2 |!4}kIi9%bOw-VŔ !fnDY( x1&JIRtWmFG1FDR }O흕߃۞qR]2JFR:Bk]%L҈$a7AG[NhϏU)W> r=͜ gDk]3:&5:y݊zO!{[[آݔ8j|_`__Ɗj>=U"G.[=O7CV;_G/&{}CO!^SPޗsӫ&pxƟJV<7g{F}x}E ]?2{T|g+#M K%,B˲,KByP0ƘeɃI rJShC@1KI^ƪv\5-_|y}?7\ Q}kV爎 &0^)8`rb7Yߞϻ٭•=69F'߲,"k-1`Pj+/ 6*ue[(-qrmxfcg|m8 $\$ 9 0e{, M㜓Zpն84 &m'-=vPMoxa sT&"ƐY̲l@]d̶dL*lWxvH^ZBYJ C1Q˧\ Y`j_^NLDQj:ܔ5x8mGE-0"hѾvbWn7,+hЫ̛Sn|`ŚBa>Co~0AV句 !"Tkذ^"9*:*VmMdla[=NZV6\8V -c;`k|Pֱo,q0gYA^\6w .? Z(R!RpI9C 8LA Lg0َcf[VFujr-Yel[66cHa5%nO ODK-ۖl$&|bY[nŖ,˲-fYY2 TPF|"Q;˱ V5AB|5}V8kzvǚ 7uZײUe-G'TװAl47A?T6ݸn$֨z 'c!!8b1q\-/+/--(plFoA$pX$e eٶK˪լ[ò􌌌tf1a2 ݷf״G*Ĺ*ږ8m)c%lXьonG lyL)JU! 4s$RZ!`Zp ʮ۠Q*?N|y\AɆˊӇ//#(A8VXM¿pˊ1zêlXO=ò}emrI,7[֖Sڡ`贇1[@%efY̶$Ae&jubdZo2 俥?.+Uߛ88TA^?l6gmYmI4y01 hW۠al; š_֮:ϖFf)6$3Ϙ҉Wr ȨaY B$ NoP -'V(BfYF4AL,vCɛ]iv1 {Lr80'0՘~C.$ލ°6Z fTIb? C"Gל yLHZ䂟:*K,j0#6[.E.5 rP\'Q~G2zAu=t-kT1`5cHĒ\;fhP$:<(Ok/W9~iۺl{J?qxv# >{KVޠ]߯M{,x.t.VЌNx̘Y]^E IDATt@SCq6:Wя?s0>e1B#?^~=v+|Jk:tts(>eW.齺5 %sCf+.oDmwNQZKnՊsm:iMOETo -xߊ~y{G9c}F {!92s,>b9 4=4:/9mk{^_v.ۦ,9_~a_~bkW7&cDPQQ!k` jw%-AnsY95/__\Vl_]Ty'k}/kĈ\"pX,fbMQփKg|Z6z"j鮞K9HF yCٝ.V=qkv՛eӇ xuT%63&T@XZg1E+s xn^c3$@ok6b{ssn4R }ؼ<٣ǔ%$H!|,f5i;cUkVZiP0W2urOsyyDZjS٣TLL3||\J6}GP3 z>O[h?|K&ؾ䝩wɯ_t (f\R1X^[׌{qHSjcmON],'?fGxL(_<ʷz}SQ!-RQq;E|$vo=}>͝QTSS|}{l?yo`hY[Z7U`82l1fٖs^U?=e0l2d6}z#\K՝~t%WQӆ]mͳ_p}zQ^PXkU?A"o՗O_,Kߒ&^S'a(Za˝ΓsEtCby`y^<3AEp=*]wuo\MW|53yw枊߿.kH"P FaDw\ǾT6+jfx_.0Yogf9 ^ι&8$ U%v|M;!`w37Xy.M[pE,'1@ !DtbNZZдvDY1!}8UxG]7?8z\s ADA8s>cf1QaSœ<2'vM u"vd?tbը}|[MDQQ3uzXYdvBP IY8Wb쟯{np/U;g>g8Pʧ_6= 6-7=_wwۧ'~tB,OQnJ͏ӕ+Y,0ɭYSbAjGX@T q+$Q6w%E]Μd BpOEsƉ?{o-Lt]>=fBw*:"QDp®idW`#U&j^N׊ըUHp.-96#&ܥ7~nӳ8Kwm}/o}j>2 P'^|ٳg764,P† , Nxeyt:i==EIdY٧f 2%^oNz n{vXP XwZ m +)kۊu|ܠ];tSgHiY QH ,Ҡv*zƱdX*C*$cV" 2k xT%Vݪ_R( Hp!8^nKO L5&bHњl$t4{U 1Y{Gah"賾1E~ PPUOVuA S턿ӆI2dmɹ6Ծ /P`ȉþa%QΊ@%+3ZZiZ^`5_o<]Luy\.8{{9 AqO90Łק7Ǚx20neJ.`e{Jo87;a`;SM |3?Ʀ*mIO\Yr; X&Rʘ/wi1tE=d.I4.HA/] 2IGօؤ&8mIѶmqlP=1J{!pD5 '{k1<^r>.#bmXb@BX9812'* 7zKD!cC\ϓ:p S-BϷ4VL+鯌f Exe-$jH(*^}h|wr[珕.( Ց~ 62WD Z0U@~a2uɫ:@7[GuRo5,2Lw 8y6's /Q %**EasrIf=*6S/GB2$!+A1RiTxӲ@~"ג) m 58Tm5 z|zwics KpIUnl4d0UPHD ni"!_xJI`$0#nc#VO!" L"c|>ݗRC=9£)caxE4.*z|y_rq Ulc;@@'"eЁThi4jkLsjoEH)a2Plc'C;P>2KLz00P dęw lvj0 (#;۶c3ޅAC-]/ Ai='86g/2׀?+˱efH$T 9WݼmL)d(?s<'T4^p=s=k) E#}:ZS|_F ͺ ցCJWGD&F$d|Md,=u<.הEAKseXp#_bq;F%]x)E0~ IQL tV/j` DjdƹB1 Bl&:}l=Oގ } )ձʘ _ZͮEsd4&ю[GhUYbsoVDo}@K] C˶%KǷU*@)ԋcX_=!٤>kT2[JcdmGoRuŒ냝!e bvP~Ia6iHrh \ʧ҉2 POu Gd;YӤӘeYB pl fdb>B d_f*hY\Reَm1vy0n]3dP#kT e"+Oc/J3Y \CL:~ĉxQzz)e!sHP"w]? FVN̮:$7 2N)`FM2JZsoy|43B"l j&ET…4S1i(c& ㏛/#L F2T%EވaP_JG9-E2R9-t|}9BŐnsUqRoEÝ]bp:'1 ,$ }VHAaڨK[D ,RBbn|lJD P^*VMxDZ 3'o % myt/x\oA\OqwŠTK!S_K~æ_= C(EDGjBl$YA/8r$!ߡB4_K S4)Ԏ%6P #O] ց2ȒO72OLj6R)pa8SP% 7 :6 Ԍh{&h.]IVt.hPȷsc: )W Sڛ _Y GDiG& " @z@L0c*Io=A@j.bowזD̍H}\ѸF^lHL$E/棣,J@M"\05liPqZR923RTu]YLIC'DL-:./a` +9lvJn'Q,4u62{=@"/mٖ`,]5CD".89VF u]Nljy`r@*ٷEtdfޣ_57?lPsE }?UCA 3FzdUDm yd^a*QZ􇤍7@RuH6X>Gቫ5)@?)$f+SA_yWȲm1Iqś!S%hkEfA&B! e\: ݻbFʦԔ\2&I2AK1dҴLo9h l'g{8wȫ!d 49>M!e1f<2FU"觨ٚ偊ڤpJU1i8GsnZD &m:ܓ/#@{M$>-G:g ;yO$b,CƸIΏP JAӅ`زZ6Ii3`fFa!Y€sAIth i F?0W9m[Wrl4N0e"'u#T/hr# pdCJ0Aƨ;>l5Xz+"Ē} ;yxjV塀S\p.dϭ)F`VZzz"8Bؘ_%shH,ؚ_1et\>qH? 50 UvDGr ~Hv6ELy}2dc#"M^FЧ=/[C<Z,'ݯJyhxA F0un;eY|L\?V< u6|do09&\Y6 ~LW'p.BDeI@A%E&(GqX,fۖp+<ϓD$8cyCƘsZ ?c̶-˲et/ R`n˥G=U W(rd,H$B.ufd-˶leYfGޏ纮 "۶b4bGWY\ns=0Ѳe1!D<ιЮ q0gC,(MsJ Hbh[Qx*ި)Hb{^EE\²&^PԓPCP<&$ %^(BV%w`7|I!?S8|"e+RK1U*+LQ- %p.<%:m۶ Z5MNu2h>G6O+#)gY,3K_`ruSh #.M'[r L hO!5ntQ.ǖe#n Uh^3s8q)%f T638 b8\!֠o XS[ifoh5z&p (9p2!S}w N,2D%P9d' 2ҥoYg U'|u^A4BfxL o'qU̸JǹBj!siǾ\d Rvն-a;ECbJ18d^-e_)c,-sv@˲D"6D{BrL^4ޯ'h#mscC$,(%uWW8db1˲)0T%ÞUe9}[m|Y IDAT eFRMJANgl]P2Ln -b(E=q3l2kbd˰eYeKsxҊPJ/Jsw9 RR>{o8XXT|:sٱvx6[{Cd/P?/+`TadpR־Gj'1ԤO'KV&y|J\ˬ=!ApStē@a&T (oE5*MEhU7_c_qJe 8UȽ#vLb#&"dZ1DZ!Qv`)>j]}r=73a$$d#rLUJ[K@=&Ο/]8mlKv#H/Z&|9reZauoBNwMGud_Xb}zKa#?+ͮ-USɑPTf7Mm$E2\/ EK![@mَ,K)IDž&b2mۉl--jӨ$|8N,=Is,)r\KH c> # oJzjx۹%?#cHzT r]<ד&%8ضm[mH@2. ß`?-\S9DZmY-˱mq'H))CeYL0˶$y %NWffKYr]"ND1'ZBs!46ԖRV3!-˱l)^h"bRdRˉO+~UV҂fc;N Dl\hTc:HN#IRIO;x=sO9)J(<ϋWRNvl'^m#2!PehfT҈n;C+;uJH( ` )rco1JC7ɞCy"zw;3##--M--xyvh{_W-ykf1NRfөt(06CMj3t>6㡀R1,x)gMeϹŘzJ=Tvl۱lY 4|IJ:dAkqE%L}!4{1ՂD$z"޷T"Oϟ=ĕn]񿞝53" aVݡ'o [J')&ł F+7Q(!2ݓ0T 3w0!, 4_T\Q[́bz"4eDvG^/z#MjM#C΁)6RWYb0>_e&ҷw?^/5fhi"YZǻꑳnp^KƟɪ}onhxA)/ R%) &[0# Foׇߝo@TC^q{iS7uhL}Eq'A% "tQt0 SMrT U#k#r@-äe!Cbdƙ(l]@g?ABILB)m CmHL*%1)FsnRPk<:xď{vlv|T%K#@!3*͜8j3'd7eٖ[UD A"J[W.y f~!7T83_ꅮzn܀Vr`n|э}j=m{C^qk/ 흂 [N zO^}PmjUmyUld!h[Tֲ,~+ S2B\5d9j,=ݴB^̅X0MV<(;(CIAi PEzg16cSR&Stjo熾sxy"i-6k|.߻ WЕ~KmM1rV>bϩwr*1c# s^ň`D̮Y0+au Af{G{"47t:|gM|9fF$݂@"7A1&]rnY7}5"+m"Z( sc Lڌ7N[yÕ.pdZݜ`-얋E}G"ce}Ov~?@z:Sؾ]&_˴gҬ=]$"%?WlÕQJ"ccQIW:x|Ț;;yG^93f܀-͕d܏ Ӻ $N;eM)S(pbci=ݤ%}eu|_;ro=3;! Hq|]ϛ6i>thD5>P+Ș5Ԃ/(G@1p'62{֥_4Isȕuuy!02ɀck}7֓?Jw3fNXPDyħ[)Js=ŬVW-êVef\0x8g$ҨTQANئ0k;R)XG=pCJek*u™_6݋ܨ[$ T[#1& BN>߶ G7%iКKUû%nJ|"d0 ̉|TPf?喠%[cW4Ǣů=\ mz)߰|k ]~둭Ц.NU_|Џ=?eCo wDZ9o臑9_sj#V:qjhS|6qOR*')Hl4KBN< -َvjYYK׭|;Zx`;5}!I!JJ 5S!ӍVJ  a&ץU*(NAi- &&3pY>ᩘ ot*9XDZqo 5dӹM:Ϝ[a BŅ^SAI=9*no,)ܨ=@őBGoqY/_amةwpֺ(&a?f!uT':8-cnR8BHB^Gwm@8Duoy9xQ rXL ИOlLE֠D2X!0X&d[;z&㉖Wy V圾]A 1L͹xY>\O2sbjt03g/ k3bi2qw寸-Jf^o|Qyh^Mw-{qZBK&"BVd+s*@R$ؙ/n4>菶f^ѣ&XpC{P[f26ԩ%+⾅QYc%yVb*:aB7/nkQ]פɍMZz Iؔ]Iw6e뺁@&l '1-IWm6Mk˨z+ǮPKF.5lSp,(xմ˾uDRr ~WJKK|j;QѕHm޺|k|ד?>=xK;OǒhO?rۤ.7jѢ ֭\>o )'KG,yJ%Q Щ2kl\ЉCխx#x/ G rC&|2'9'5,($`B%}_ XnCjʊ}g]`7t~'Tdҩ4;yKn8~=gĊޙp?_y*)+Zj J~bv7`YguЬdsep.wVԪ!9Q (m?xWչ_vrln.ɖa~nU-Ӛ<ܘ}qBPHJ j]-Sn#`fʑaEkb `C6r*5'oh¥DX"A{HoδATO+(O(bC)y&rmop[?^ :*龷n]u=놜{֭Ɲu ֳ{%ԩ4^+w]}28:Kҩ4^{ ")c)$kܺ#S*U3cKKKcqz`Iae WTmvHL :[qcđ?0BDٔx! {`]=K ;{5pӕ|\ Cq,@@pC;gb04?߿WǷ塯aϻro$#V;zU?xҥfjz8#vm-*p?[Lt+.ܯcI߯WGZvM2_d,(&gi-_.Nn~Th0]U4 Jrܰ$a^OACu# at;ả*\~wOuOfY O?y^i'9EQ\+"THFѠ=v7l NZߵ3R[ƭ;!}Z38gGҡ;w*k{oaD@iFU#w]=y&eZjՍ:8Z,3)mrƵ3K@_U, OG߳z?%;p#n w8VL8`>uH!H; "(̄%]_>|Ljy)+js-óA@ɮ޺){x{}P=ɟCɞNo;RJh}W}ݏ9o+z{̨^d$+m޲YV\֐_]Ch!?u?ykxQ;'շIgux3@}}&?!f3ƹv/ ʯY%ZncF訢(lΪlem-V}f[u*]=wz" ;G9^u0bL lGI*5> =9XSc Y2Q!I&$z(t,HhsWk TkEHDBJkhGZ@ɓ8W!@jjZz Tp"qRt[ paj87b[MiJO2&pSaw20֖ưۉaST"ڤg-vu懮WzeGtz^K['+h` {аn[qu'7}gid<6a1yz}?U4G-Gt )z_|nazi;ԔǛ#kcv0-˺6}l@yX_[|/=qߊ{|~dC85)|#LAnF,XSUCfUuj:2TZ;/wlv=uK>Zf{4POˠI ᔅiDK%(EV(kK冚̈́A"cR8(ERKtA$̄ȘcJKB nJ7L&@d'i8UnsV";T>r*%BK[*K^s2?{̠]cӢxs}̩ϋvb e΅͏}_{6dE d{ѡu8i'uLr1GX!%ݹI篷Tv 0Jd7f 9O\5AXZZZs/6$߮ '",k6Q';_lq6f,ɔt>3ۃ\fm=ˏzիa]ڿY +vhe'?Gc{4W 9j9T|EXvoO<[FM12`ɷ HE69Eq[^yϧ8[2}\q7GZMN_AcϿ=goNQ.B@`4{.~0IW\VϱUmK^9_폾2͇mmvۺ#ybw;)pɣ?^-`َ>~veI=b3o37MIMI6%f'|1`Vv%|hm#4[ï%CLMu1v{ ?xa 9#HD<AIRW~Lj 8g-9T_͎~~3׆=?e w:yN:w?;oם<(2خbq{6U\~A2B8c'|ٓ{X76CYH!navow˿;Δ+uy_ʗZN~0 t{@vu$%Da*yyT*ge%H"fdhR?h ؅ $)c`2y~%Mdae`d JP>ړBJ21YjZ<ii5\2)}PDGC2SȋFx~dTE͵;-$7Se]A2e $<"D@t>_r毼vb.8,Cmo]?l׭قVr{-[ZjNGuɟhPkdJ|qs-}|GɟTDP9߹I1t6C'?1y)G?8`vㅵ_a6=l܉㗮m6P#7vYW<G;]s>|[#79][P̯~YX#asqBql3nP}׃G|xe9R IDAT.OWTf=5v>jNv.33~=M,aϦ)6sY7l'"8S} QIF5Ҷ':xyd=}nChzۢ{=5-_#*ɔK$qy vթ3 B05.RJci!!H6k$%mT`UjT[BRBQ"D$ ּzDŽ"U}'@}N;2x缱/|_'SGߗ;s|ق7y#칂X &VjF\ 0ks;R@(i}CFrgL rimɽ_{٤U][o\4ƙN]}ʇG|<;VT.Ny.4do1R. (-2x&d2!bic[~Xf -7 B9IǝpN]K~vK!Տ M~5N`+>a-lduNj?»ީ<]l3ͼym/~_c<vyfnEP, UN$f{xG~t擉& yj=`Ŵ1gz&NA.-aż!g^8N6XY! tWbPW=:Lഁ9WZ a?fc_erlӐ O{OS^-oOk;|KʎiSKqKݳ5^ioV]|6-`*^:3kV:!cВAKWj]&vZwUeG}س;';aؿ.>-I=6xvzȞ7Y3^o˾ \2dOT(]f_eyg4ڦbZxrIIZ^t<-ҹ0G/jIeuES@;CbǁWT [xJ'RIk UNs_ m1c^NY*xuz 폯C($flg E 3~|J$!;oB(ȉpSwD]MҁӅK-GȚ޸=5.3u +0MLǺۯWIMwQ# XKة-MpH=ִO]z]wٺ[i{+W5a0|^L6hEհ&_RAvjǫ2SG}X;Kgƛ|6㧙|?72ިՀ窦@4;kN>`PWeQ*=tn`oqȕ߯rXTHrf $`MKz~-s3﫺|Pq ņW"#iaZMl; 9W6D9 87ג$DO L駚33&@o:+h X$1`Qq\Wsu&c0#1dgǸ߄#FD#r=/Q 3L&UDHemܤ2{gst{Yy QsD)@e=Ӛf=~C޿ՍnG|0g } Z'rs 3l$b\e*,z7]E@tc/x[PU0l1RF [KeGk#Ȗݦ[is#OP)_đNP6)c+ }lВ75(CRKH7YjswMtQ ?rs*rðNx8WTn!@GF﫨Ka"Շ0![{JW|݆"xB~iq`zxsׄg|#r x~y&6]PdZŽw{wZk/:&3 Y xa?7k#/sϜP~F^=o{_~<77I*nk]Ҋ7|+TOoZ0胺M8˚L`Z}&h"!( 4L6c~ zꈤPJ80qvy 2Ri ղL.tXT 4Z]ee~yݶ͔.&޺NB]'OV_vCsG-[+y$ǖvN!֔!JGcB!cJGWPVÉoy-HlWbԤD%+>cyz$ xC7ۇ X3*~@E/8đ.~\8:uM_r5CYbSHTI=ڎ7YR{h)#bYRÑPݻ(p"=E"u"ˁX>++`#/\?Godmx}W/KA q;%\7/\8F4i ^\p `qo(k?r]Z(khkMhamWvY emV|ӄ4nzvt{/<ܮc޽_mnװq>{Aq?xCYx>\_;W =ʕ&lXa[ndn]B z(,K b:2NK,M"f- zy\&:_'Ww? U EAJ)F;V{UuʊV (!!a3kdXP1nCA{XM(Rog mU8f&6Ncq{~pH)v+Dz*0C[FڝYQ]^i%Yw6%> ĬPJx7'TDKQHb!r< f2 "P;![qA-u8}S]H B]U+#"ʯs%֪]v۶6۾ŕ^:Ӂ~fżG![ V-#@daY Ծ:偬ÌY7%Q Jv8~pͩ}ZQo_3%rQ 80fb}Ϛ|@aRI6gKd1T70$ߢRʩåaJD=Au+AZhłErvm}/|}>mJ DҡUI1@`rw޹>o;0R GQ􃥥%PO념2Bt vFSFuyY_vISyk(Dj??-F4Z<9dɗMEsˆm߬G_xcъ?VԑcL4vi$ZʀIH DܡwJ,,ôԿOJʭ*"ϑZ$g.Yj= $HuTrZO[gn]8' +25@f%jTukmjM?xe\}㇟0dĈk-q`DkTΩtm mAn[$ ZV>f:aAd6th49.tȹhZ_so%]˻I`RJ \" ZDBǮN<XF~ikrmT}5xK$#W,PE2"SX&g<^kUe^e \ڵ. JᦈxPYEڊ޹C lo?NA:m; tfz1?˶vΞ T~uav4[|'LS~!ʒ+ Y$26MS9hvs<5ruDmMLLz5x%(o^]S X^^8 fkԤ[`m{wX[`ٛ}ccojӽ~?ls|>~)A>z?'hu߮|޷mu Xp;h](ELlvU+yCI2X)ISgyd2FRő$ 0[ZÀs΃0^\ͪ&f-QFx Tpo mC`,\!e%%0dz$4 ʨ5gQ$1iʨɈ}ymSBkW|BU#.9`-w;;Wk:{v6 0Wrd e"_0@?5 ELf4d{#vեm>|Oު]d!Z=W=f̙K; 8VW !caa&Ȅ< Gs(Ure8dKlq]>e2 &Vگa1҆OrL z%88w-l]w扫sMpL2mU2"BI6f4')9uΐ )XڙިO޳G=wxҵ.Wi'^[?o>c^]:~aW})2]Ozwn rФFL䀐2 K)"TXHM 8՞^>;n_5Ҋ?ʃ}?Gt TҹSYiECwc(_-Eݢyͭ*ܲU \cܱe[rО8׻wJ [+2skܿ۟1vmۮǞstP:رmYRh6b~ޫ//طkn=nĔF ԘcIN{Νwe}#U߾m#b_I#@ec5YE[cZRn[wEr/&5@݊\ܜ7^KNܥ[y~ KWQU5j޼k"-u[ ӎ޻}vx wߩi4"6'h+B8|dJKJ+S.J 6R|]ݭk3ݹsvQ;L]aaWշĔS'={yρGOD EV/wh/ r b؄M8gkG_{ƱözY7][|m^[ڢyKջW=16gvqc~։+"4$JıHz윞k}{ުs\uQ{gF^{_}*B?kZl(NX GA\sڟ=KX0 ) p:n<3;dZ;謎;sA|2u/abqAvo)\ifWYJ!zx@IڞɦHw^&V 98+)c30k8cF)U%ȳ`Zi1,@MGĬo/42h?RI ӏCO%uqƁQ "\.reRF36B.grzH4$B"cHRXʍ1_OQ1e04mwkV #+r# _)o}Q%{˺VMnCe+zݱrݗ׭[CbayfMJ12,O' ]"1"dz(`)Ӯt,Xc^ S/-ϖ[|iL$w >gzW+>?}Ҹ#ҿgۿO9q夋hs땏0kG=Q<6>?oF ^{]p˙\;w_,{;%};n{˻lPwva5y!|7o=4Z׾=Wr_=;,q3Nw׎喁C^]"(EwL-[0-S_-MZbq@`lq񍚳oXpwŋ_~ڜy^|5[YvK ӊX&I V'P4&*!0DfjUD(Rfidj* &%)nIIQE N(c 3tC4A~`IxA;a 2 \U$Q!Al U\ IDAT[ 3MV}>"F·yrXSc}aq䡼RйIo(qOf<7-Кh!/}]O]Ҫ9=v3.Ib:ʭCH,xqyKF?Y_C^;?祓߻hͪ߼;1)\rvt<a7JBM#?w!IJo-Oveҟ}\T3)(V8#Is1PRn R=]dlH0_1q MuS_}; h{jNt=#O)Gs?~1O>bH1T H&'@OT JImD%.1Ϟr~;uBM HoleqH}Q*yf{>/vς0 1re_3]bǝ{g5 Gڧ1s#LJ:i~gG.qKCZ9{Cc&͉RhRFqɡL*&_JE}8y߇N\^w9A'G.sʢYNCNT U)D'O|9縴IhD`kޭuBNaLc%O5f3gjtT:=a?nU<DzT³#!&E1 dQ%*&رUYd8hyQƽAh;@{q&*w3FD7NXpfƔV:!MuDc!""V9*.{;ZL8m7u񷿅ǩijbG % l'Гz}8+|۽rWNQyTok*hZ)DcLDqEyTG ^bNAtKKj!?CyD "i D2BZ&ORp;}+>,. €+)AN.Q,b)ђH0 CqM\7#ΫYι,T4񝩘$щ VsfeضQhES0ڐԾɃ EcV.M\Ǭ W/,I搛ə HH$e5gK׌z5Cp r2+m^JG8Z$I{ :֘g84 T3dPA8sv/h=RWaA4d[(-?&]B+/&2 f2Z'>#@S8Q}.'3ܱ1DHV={*B=;/B*{)S@ ֕Nn(ʑs$u[' 7-9gB(-ws>ViwcycPڭ$$0чɢ`b௦)ygLABn[1G>ϴKtRJA ȅlL+R GQScI=xܷ#n?I%u`zDtFR _ +t&:0&@.C"HszEt&Q c*R#l%=̃\ P%L\jI O&$ bo4dr ɾ%h& ygH r##4D Zu %'GbĩS鏵TlJ;a2Uvt@e~'@f PF 8:=D+"mg.$5PK@;_ Q1vrĈ\nGƨ pG)pU}1!XwvID_,X+3Nbܘ1W w =*{7<8V V-6"%l8LK:YNRWW)CDDh U6A3w&E $壼2pi#O*>ȌT[Tm݇ ՜-}(EZs0#`@|y=!"I)z}.6nRKI+Ji٨`ԞvPhq Si1\,b3 *(uGfMNVEtyq3LtOŷOLGyB"FU{0>v62$fcR^[koom̵R0}#hgG~eW wpN17IKfd0 b!gʢz'e$iE !g~" d`nfg1 9[ ur_}[B/0l?bN>#:Bb֠e& AjO$g#1@tIh%U1:p`f$SE.Z.HI h)~r`RBG-Z3.l?/(6jqo)m dft{1ԞŮ`/ӌi|w_LOq/vUQCKTKN hp\Pqsl!.z&p5Xo1qJ7 S1"@F]w9W{|X< 'McL H8$#t9KZmJ . F|lǧ> WH&:V鱪qn}hɍwjGqX%yL9sYr0)Vڷ Z} b;t`RZ6RJXTi{IR41BVUHĊlCl pUF,RHΙL&CՌiiqI}N O*J'X:emaU;Owi%NRc ecs!80/\qG<0IЃ3Oq.R WBjgoɘl].ӤtwJ,14eBw@J|"e\ndLz<%dZ-GemMXNJE^8pk37d2$H~u X8/Pp"P/Fh` ;'ɋ&&uN %J5&SERcVƫPMaIIVqD bsePӌ# 5GG]Lu(S]4IT8gaLjqI!CB$ώ+OTx5cuS?n2RX"FUtP7pLT"e3XVzdTu˟`n n?|T2 Ǒ$In vЍ%BQԤo B?(W.RIԣQ@Ǖ&/]!'bH{p7XZJr Τ8 p(&Bx8Au j4IPi2M9K`٘Fmԧ%lPⰀɈS&A"K?r <($N,,{ ,zlBpPĴ׸6SRư)@^w[mVHJ_'QL\)jDY!%Vn^h) 1=|>lٲ(qJAT2C8& M>@tɫ\XhM2xDQű H6=$C-wyC*sArn5[c 5xG"N5n Ȱ"68(̑}$Ta\ vF\5^9M:oxÒR^H cc55ѤH'=]-tkaB(4Rs` 0SRZu2u< ɘ(|^ =0 PAqVJ8i.dٌjdci_au,D>SL&f3 g^ i}nJ `)W:aYVvE/{n1αm:g!B ' ӄ3ƍYii}}}9_6|>g|@pGJP~9MU[mt)E:[J[;f }6N;1PxzLB5"e _1Ƒ s%Kߗ)i>AB +dhci&nԾL$վ!Y$c(3'6Y1KmhiɶiԱP*(dlt9 m)BBT̺Gе?V啤 4H^̵+OtxhvVJdhV<mz\R* 3_ӺH%iIr m7RB\NmNIVp؊BmT.5L:'5RkVʮ0U@G!P KvL1o]0v~֎䐑J(D*bkf"]hS Bzɧl0uZGpffNmnёjd,It7Re H*e!_>!aE$ țOm$J F/=Vȴ14WĴqJ+qd0B cΐ>8((A6 )B%3RQQ&Gi,S8)ЈDQ^^G, `@t KY1T̃ D&ɝ#EoO@@B 8S|2t쑱@qbM(+20Xť$%QSQKC)Eqs+r;+*91i*Aɰ\s"QgK%%%LGմ}ΐE(E$OTɋc0[j-ipٜ5Lס}S|>/3 $. T +IMSѦf)(EO_>HPr )N)6vq&&I+z7;KBi@15-,=+L|R*Rz(J;1c,`}8{% p%C'M 4h59[zĔƂ>Áu[+ešTWS|qW7aϐstF['\rvU ]S[WnXL,WBץ$ʗ5$;ki8(T9O? ŀ(8l&X(R5ӌ."/h$Js$vN$20`Oj"N `nF4eB DYsxVt=T?.QIО,/,a.k(S UNo8;6H.YMLaYpղe<JBeAJ!\9{*vveZl ̕v`Ȝu|bcjT03uNwzi )Ȅ*aSE7DM/q<],NFmNCɔQ 64׏W+`gVg ]A t h.>`їabMgRtrT +V/[GBnZL ql)h=@JՀ*Ud D@o,jlg(2-P\HQG1BZ'zI5SP$eW81NQ cCu qʱNDc5P̊~0\5G"L0BE  MܛŁ5¶"TDvqXqLq < VTy*h:8(]DdADZd 8vCDƙ}9ӰrJ2oL捭qQF)!yj2a&[U췴4!B(ڜx9 R*'fl& 4_mۯފgH*@}25q1:h/AG14*s@ٷcdlf~Vw\D2?E'ݡ-U֒,XNܶٴfrWF@xii "syUq xf3Näm`clJL!'0yCrD]<=7z8'Z7$%Ah#WKUM2VZy3i7`:W1A /(䴷Qfnc,hM_BX)U"quC"FH ^cq6`8i q,,FQ,xYh9k1%+`hO'i cI -ҽέ ~X]v#/*Lp'(͔B (=b]#0NW%zpnR`դdA1) %Ssy"s&1X)Ҹo~G'& 躎E)W8i֛2RM\WLw4@WV1pa2.lM?>y] ۽e Ι Mm<ˆgӕ`*a1F/yglU m_@\_дdFP0./wk+ s2I<Тhp<秳'FXz<i? %F%Z$'i?d*R8=MI|h/1gE7Ȼ@J)XıYlt/g'RJe;;L}X%;& ndA_F\'-15wE :2T!?s$0cS"P娟0fR CוP"W*3%&x lFRRR!i֊̥$gg*%9~zd!2TcAW7$k`a5GTDL D(tfAHeŭR?(W"ՍO =m↷ +ƭ vF=K |U뢗!i$*4mkb.'זXPDTQKTf W2B!*!Q<37H,hxvgcu5Rl$-ૐdX3LÔTMX‘4YҎ4խT6-rCݭGI)D )>Z1$˺GTv Ճ0* E^=Iy!"H D\d )AwS2][d4 IDATaxJ=,!d͙*$:mW"oȥ,:4s^5[cSE//Έ]hDpc ՉUU0f 1`+$h1IԈlaj5ӄ:'ES~tj8D BqFHX"On0J`k]Z{o7@]R2jHg=&;&m?< b=(K޻0cGwA|K{J/jtPC> s &t2 RK] b;ˁVsHnu%"E' e]VM ȃ•،)/ڛ9fF ! qs xp_/;^ 类]#7Rb/v^ w Q-rki@˭yJ.F/h l喤?YHLB{d;|Ƈ%B2ʗ"oEt_BI;NQlV$TFv?ikT e5rޏ#J ˥@)d\]#v%8u`-dYУ ,I)k\+ˍܺԨq_3D*?/ + n$8iY}j4'NcZݲ U$w5$9gڽHq|~|㈊.TZgz@:c272ornAT;u 9T%I',r-%+Ij>x+NJ7@tMŰ ߕOX#Be!Eܑ lCd'6P0m.C>ksOaUo 'XITAcN~>QSrP,^㏵Y QMz a hlݝ&>d v{jl$55?OdK;^zf! )N7 pni1X@Cz[qePE2"V@5Мmx6 /3*#Hz &:^0z;ZD;X~p}`pMESQ Y]qlENҮɮE6)D8Jԏ qAJ8Hkx||~FK&㥉=P"2ytY)SzpM[1G$`EvRV 7&" #w Ia[+[iiDr?KކyW]:*9Tүs3 0kB{?0y~}xO}RL܈SE@236᩽h -h[CN6 !tykJ`<, (xפ@EVS%d#geLHiWx/*ۚ !w(ble2cmf+T l ݽ_W_/B!Q@ AřMs+~h\֌VK5kXȠG(y=64v[ 6(N2:=dAe}EY~#2p1/S0 ] + =!,^hn,0Qn:ȠOq "R:@{?t2*31[;|z+Zu|=b][mPgVQP\|3h>mcA*Pt8Bui~.",*WH@M<-/|}}iT6&sxKn845o"\eU̩LYx9~}Ϗ8gL~P;&E1{$Ƽ%muc~:P%_%fIdlO8S-ABƴwWNϗft U:HԱف4t^bZ/DK Hl#PU"'X3'MK#i>OH,UI;{ڽs~`Zk,NAXae¼NThߑMU"8FvZG7 qQvG+(d{Jr,yZZJMqaI![lbݰg͇$['.* PMneZ쫗s`D5],IW_˻*wR~G{O&-kӋQmqef(aTF-vn!Ï)qz*WE/aSVObexyҐSb;:5K "\j.0&1 SpEYKzb?Y}!`L@289ꙃE,a9xe "01,0EA;EEZh2ͩ~*S iR;b ,@"qMmCl/c%{HYK bPcHMxX2SYrі/&qB1NXDO9M Xa@]ݼqreڴ{kNI/ngZ;d4EZ![:ϳ0L"-#TVc!if/Hl΀C&St]Q:.ݑ͇cy!5#6Z fi/YfG)oxsD5n!iX`izV1v|{@ ќO=۶ЖBrj q(&"[Xx›^n.+Ūp,H'P"mdb .{BpZ__¶\a5x <K}U.j9/;NdYi/:V2/Biyju4 1N({4b#{h1lw.F kNDړiBlqL5c\#Ϡv,odW8Mssu0*|F'ku/GHXQc5$UtFhD"i#d4 (NNi&I \s_-$Ndv"qͼfn~?}'[QSM/,E^*}hɱ_ι|x꽲\&ouȿkYa_%32IheZɂX lUǦMxA H>]El3~tBz27q *5Ǫ{#qya_qr @`1sA_7.b\108/BRW7;5p2.g@r P%c+q6;17Va%d:?AQ?Q,m %,S"iC5*ll L(wbX^BAUT=)^!XF2[c?,咙NF{z?Hm}1Id6ͨvW\?]$WWH!ȷr^p_5N>pm -zG֕;D2~"'mrӪ*Yg_p?ޅs,m/'Xړ|GFJ\T= JIV똑8iY,ǣFLMR%L| %83::٣09,6']K*G2@[?FٶPEuzs2Oa)Ց}WswJWj\{qmu Ԭ# zԔz)*O:G˲x&)Zo9ԊTe*3Qj81$fs=A!i.y #bw]V`Q! tÂ3Rs#q5Stdpy`IB-;:GD3zD8UmehK\/rd"tE_saDx>OyL.VήU+R< p1p~ܕ{qT51#f,̺ީ=Z?.ρ:;4_"^3lJE?%K(\en]yf]Npb[PCGi~4t9`sT=[LW$>Gĕ&Pz"*I6n1եnk$1]} ҧS5jܤ8ZbO";ũt%Bc%(Oo>KyW˞Uh)BuxL5sރw#,R7Tv^zߎzs11}]Xj ԵT-mgz7}'FM?O}[Y>oKVYǴ T֚3<8մJ1ܝYɵqn6 C̝}ُ #fF3?*lDbc!@:ӨFPIC7]@aU> /ס:l}ZWڌ9eMk]?ϿrRT]4'V= Ep**(? ^<=i|cLJf yk2,PO^Зf!q,^m)9 l!ΡO)Yg[`7*faoLak8\ 9\]]Uպ{u~!>v}9L T^e k"$8f F1DI4"H,|L+SGsPY".\OC4t;>K~M^nO:Њ->4HsQDԦ>lB9ǜ  ]\1?) b?_Զՠ\4NS""-f4nCAX٠ZAx gnrԼݜA5[r#[}eDyd@.%$j̚p缛LYb]en5_Zٚ8^P0Da9J`G֌7氆J_∈_7 U),~sGXژGExrk [+d(N}Yi_ʱ^jvW{h}s= +#{,.nHߌnMw!oZyοCQGVj v?aU7U}Nkn#n?8*2(f t͜fcG+a]鞪k%hOs9wc$Q􊎚%23;|>j[qF%lҐ68L+*8Be[O&Ԩ](%s2B5.F9(wsڀ$"=>>>?>|@S=q~>') sL]$S%j!Q_I ֱ%Byj+ IDAT`u<B`a>(.Y!ٴ֠`nx§]BּŻXUyL}u:9&\T"R4yC&SkZj`Ec˶ZgjƫXh-@JMѥo2'$(‚3ٮKOp).BP,e 'l5d|O㗊#U;1:nlJ[e'bHf ,`"XkDUu׿4LYQpR#ˈaLWV~KT00_CoԼ[-f+vH",!aӷUfn¡ˋ_yɒuܿ !\fCUMr>6?ր;MrP%cMx3jHG(«wo=L%[c>_F"O\ ۇ&kֈ n F0-r>9x2ުctE{|8>M5:Η%B>q[Ȑ81b("<9&3D;1.iH<6* @؏fD\1=z;p]G(4/\L:@ ߘa?!%"ƩePMV‹vYv5 5mi0"!GE_V%ҪL:@,d3D:6oEP|YX;N)h)V}lfZg{"nEɶ9\zty>"zo__Zo%%sYtzWT_crk+ ^~[ /ȝ)"4n0&5eYe/$Hgd hsh \~rYg/8&?FF2Ɯsr6;\:^5sSUuTBf DO39^}֭feLZJ&"*4FlP╇Ѥ[Djf&ģ9UW ${oo J,hix||DH2)W\9963af(ص5kE(,+kV?z/ޏ[fل26r"޷XjaoC!a{Ԡě|mC-9-:Dg9rQc*Ws:~(4Ho,e/35\vֶ+K^5' mMkC/AHQE-̢"-Bm$ZʢDo; _&S۾;Rݔ; 9glTfJũfX]]uSl7Rq$7T^#0cC$9%ܵ^p zkScD5<)hM8 %{9,ҏW]yήGV90I+g{0 ]{l;BX<zNd@q7 mZ[Nl4."d׾?KAicLK^.tIhM0{00yt1ks_Z^{n%bW/SBV״0XBJ0!Lql9Ix*>j4j1Ӧz< ^2]Ok~0=19TE?jZYAQ^2}c'jQɓŹDGuYW{oGzLn2+wWЁ}2.a)]4IpInus hW 2է `g8zm%CPΎvh([ȰGDD_I~;RXKsexQ>͗ |zS&ԏx~)\ѹq`m\ˆ[j j%yCe[{afZdגPskr]BJj___| auM'/M EM2zzx(-nOl\H(e5f^̘/ ~CCmrϖ,ƴ>f[ȥKl ôjmcmzaq>dR&+1k9 #oՠ]nUV/bk`}AS1VơM9S*v 2c@g ~'Bk,rLV5(e'Ȉ)?qqYJ1%jPHMr&OKLvy1eff%`׈1:lHU@U@5[O‚Uwӿ^]v+E0!Ÿq׭Ezk-r@d-a!oĩBZ q#HڤZK$txx;Wۣ^#np-dpe9Y^{9Y4\4)v?DQ( D,(w湻 ;T[75_[I5rJt 6k5bRs[ O?G͂\@Jyqbưxv99bjlUAv?)e){׵X#MV vC轫hse|YiP~Jxma&PEqbJngNܮ:l`{#` ,e(r55i*XSBLkԏC;2:|q!LcnQU%.p{)kc iR*77HI&s[ﴒ a/klSecvaVօ1)oR?+Bи *]QS8C@e'Ȁsn wsʦEMF ׯ_hn%P.^+&OAj6 (LZ.. Eń2K/o"pGJˀꃧ)p(iAvvЕ'OaB<f] s@urÒBDۧq]`J}csHhOu|/ %āK`jd\q@l~ɓ7ogi%d4&;Xbp)fŠxwSWsNq_q3H3 2;5 k #v.TRaqJe\]H3(:ȜNYqgNb{I iYN/R.+Fp*&b<L M|;'ܞ4EV';F p_Wl~b4'}v*KAVϿgjX0 _f +r(>`ױ2kv ց.?czlg~?}u5k0$]\+5ֲĘ|&Aڜr=P*OR1[=ldDuL8/Bz;JT9W~Ƥ6E1mcfAUjf̒ZVދZ?:s1%B3XXy,T@B)i .1ڕP#;]YO*gBsq'78{:Zk"L;Z2%cF4Ɯs@kFh+z]wt,Ib.-WqH?QDSLԚ16mR& S!Bodnv,ѯS7T:0wv:3[z[]@2/=F!+N[dc8 4U~uA6XQF%kVWY[;pmX"K`8)T=_#M #aQ \8ZӪU~'Z {!FVqr[k+*Gy'09,L%zLf[Ib^/=r>C)By̋'j̚ P˚ZY(Q!sVf+BINFsy-ns' ,pFGjZoyBE7Gu-c,f!dU6[X8"fv6.ϑ!F<25궄E\^KVGyN|F~aT^qYGU E*,|> ~D-qƋxS Z%n2(C.\B&nv 7#tI@ Fʁ-qGM$ĒBdډ./˒yBNM̘+ %A)9AQkyh. Vki`"8 LC 6:F@t%@ɇ9)T<D&KLC HxڝB.sݵKȒWAlb>oHD`hqesqד@nbV0$ \uh1TM ?6ݗ5 E<4U#vsLɈkF"Is4)"ݺ.]YPϱF ˯ {*Zn'5_#[5b!DzNQ ɅIE>Ύ{M<{豝ߍ(g]pa؞ؕVQvƜsiR0BjHM^zf!= m;*%D,h?-֏N:dc3A͵,=ioJcN1nv&/ <´>>>,quqC%EHޏ8#"s;nUbZti1[?6t; i+z ''<Q)=eڠnT/TV:d(Ltͪ)X. AzU 8tʴ< ]܄uN2 P*-j(Yؒr8w[A||N1+T*'ϏOD T]rp}@\b<Ď4rw7l5of;֖UJ\'0̆ް!Q8q^]Ԝ"mQ}v{B N@JX#U[X LܣY7ոUl9n9]8uI"JZo.s0`"2 OFbeH.5?*~5 A&/@oKoYqb^U?=l 18q( 'l1dBICo3'Gk4konA&$le3`(XKBMN g,S9E%) ϐ;V}"P S+ )8}/"M^908Ȓ?M +-R-hK3TMۮZ^\RZ1r7=]}yܕf%p۟ *̂(|sN+9Nk-6C>G𛩩!`kc~֟n{A;AO[uj#oUV>hq_z`ai=?wp+0G'n SZ1yΥ]Om/- aB4K.S,jZjZ8¾}$DSjux5#jL]Weqj1LSsQyYW-kۚ;x E eM٫Rzo DyM ~ʔ1[¬z!Zp1`qPZo8yzj,dr3[F!QÉ۱iV[mMZA] VC8Q@H(itӎ6Mk2 d0%U1/!C#nW2\ nayH@%*/w-G [k!NZu"`o n+@ɭD?a\]O~=XE$7 e.ō 'Fx4' dX 9ِJ8)o~.|x t"Y O)ū1b›tVO7KԷ,ʹ[;[#oM@Eь߾$ rQ @[d,$Wsa`&G COܲqĞF]٬gFV %޹o!NuFhT䅿LZW5#nɩK\XL.9Qied}㐩qVd(l,l|I, IDAT!U0Z;ajhKWÝɕidhW\5<+@TYګcD 1U4&֍ 5A%)+) JN XN}24RE ߬3(x5$뼻%e:!MD}XB߈&p$-ŭeT[lkI҈'lXEnPkDTZؖcwg-9m`SR{ b+o aA*t+UṕV#vd}Ε(eWn󐕧gﳋ^Emg8XJMW Dݲ)-f|lLufW /7,@m R// 3SD eSF ճKdkDϮw>E4W3.XBxi>Dsl%uflI|dҮ~o{_%9 ݜxR~/F`vX 5!sA9_uVFϏK\)U8GT4B>K̢K/ڎ~yKYnRqfDeY6+DcLMZ_{#j]herm~t[Dԭ1jְ8C:X8G/#m Rݰz'B6확bqtjPȔX8eq@jf/>IFx<Vɪ˜\ƀ,<`>󩛝}A8@֚XT?ON47V"(O]r/&{w+$ j'U5IjzXK'9& b7y'Vf&hVqQqr˂dxk)"bm,_O< 9!:84)ܬM[DNwW???uM{P]v @_X6#+5FkZ7ӲR.kx:9Sr YLuޠF y6jO&fl l[-QC"ՐJEwq-z?Z +1QFK`|Abdlës+l A/GɁ Xf 2GMb>݉DxιawxEUfLrOUrF?CB86ư-Bx!3E68u}f_k>)Vz ;@vc%]uV*2n}&Q*L /.Aw(_e [")EUVo&I_3%!,',5lbkXObyꗬL'/ K=mu`닟eu{[. ;p +CG QZ$GwZR;K{'B`75-u􄗁P1lCzf%$gI0ԸMVB.zi=qlGoDNjK,*;N(UZ$ }8oC,"5ݘSQJ@mdPC!:,g,N 1RGU5,#[ڦӔmW7ᢊG?1lYq65I۴vӛO!r/QkjN'5eK_ rGʰJkvh&g^agYoǩE̅ryL`!!cL&*T_ Yjsjy♬Mf 9b#bÙkSaҏ% 0:iIr.4SLb̕&`x'|eB1S3gE^wۑ r, )0jJ}\/p+_fL">>!X}Cl L"i  ^mYDPOV]uԳ;NTԧ-612~*,L7@ҦJ}_ڛi@w7mfi]Eɇdsgq[Bh2DV| ^EծKՓ"+òXh⛁.vI {Cym^5S,B%7f/~^/orb 4 ʣ,f`+Po'L?|Jޒ4j{BKsưꃐX +j3S3} 9+5P0 V}#|s=yڷcs,m'JEEb h99&e?9lYJz)ɓmq=>mzZpҊۉ|>] -F!9yĚ٫zqbTGIBkx<;-=5#Fg lt|>9x o9lhDjZX}6O4L3`e;jKeCoO#4"QYm]Bv ԖF=Ksd!X2RڈOulld6 suN;櫀& DҲog kC@׶Wa1+yɒB4-Z?o%A/{!܁?;)TAg ȍJ9 U"){bʇ.\ D0I7q`S37O[ AܫL W[DcۻZ;9Я9oŽ+)+ոʶ2TK6Oh8*<}bETD0 L2;dmCEJx+cv'enR:DOzYynS.XVؐr6샱LvM$ -?a(z:hK9r"`FQL_|^c/dԹ6J::[\3ECW 2u! $l\ȴ*\v/pDiz{ ȚEZdS!n_@AQ*!M2f\^|ဒƪh#Pn49Yobxu0 #|qn&Uv7`"#͕+~Ɩ{랬Pӵ~wmr%"ie&1D{" sT ]ҟ_g1tO$_AN-9FxwVx?n qsYl\bjsH ;[ j|_!gzd'TŚ` ]cߪ>"$)lXXsL]fF+FƄيՁ f{s"Q?G=k \qوl25xy>) }wފvE!^\*$?UH=ԟ5WRn\^=`KUvZpPhzE̒ʚm?(BS-f 1 nԏ>55aN%.Okݏ)w1EJ*Z<`xE^+%Em&͔AD<P5Xz$ 5n%=]*rQ]yz^zRѦӉ?&oN9ujxc‚ײ<1N|m"H3YN4bfZFީwl]Ցk3ցV x"fYc,A;2kiEO7O[b-D섊EOVGt4p $"|>-81d֙Cׄ|0.PZhwXGy?IGz+w\N0:~B" I;EB+>V9a//kQB&gr4}Z{O+/|O.}J&7@ʞ=8A5tΧ2P fΗ]Auf%J4R9/قv4A&lK&r<GЯxVI -͗6"V֫%]!fU,[O=:9 p8sĐZt/5ݭ.VR}acL]U |o9xx DhuaVWfXBBS~ˉA!X^v6uerƇ& kx0_[ b,6Vv=AVu ҅  ~0d)tT$aإ_Ʉl&^4m?ig vڠE*N=Wq,%6q= +=q9WcyOc|~==[Y;|81ֈ@K!̢t \^DM'2}>LLsZyӯľ"3^ ˗ܒM*B? c0t5@ZE:EϼK;;EֈX;fNo-iNHϧ&<N:Bͮ:Ch~3}r'N>nFJejD3C*lU֡?Z2Q"fΓA$(⅒ |Dx<H~I0dLb^'a98G&EbqF6[bTF]\pk8dӢԶ1'qqB]W`N\ʢI JZ8~οKu/k-E޺&sSM4vMu5'8&a$ DtÁs_mnпka`] Qǜs `">»%.*"oFU "0_QfbfT<ưS!ni%0Ƙ8qN9#p Wv R|N_}l FxԄ8Zq<PYkm҃KZ{R K'd9YT\$Gar V!E5e`/5Ͳ޶U#E_x,3/*z;ldY!qlr]u@ֆZB8Ωie WX׷18|arjc]!;OkY.]{ wn.Rxta{KQ?;_?-~M^?)};́!(˛Ct4c9_,Q ndo4@Bf~>:&.:문@ 8y;:aӪ)Yr>1䭀q4P&OZCjM [WѲL䩹F7x|nm0o>LCzs|&2RP$ZM?J2)l?tb8X}nW4Q̀ߴe狯-YZ ay<+EZC "13\&ZeX̔YmCBr轍q> LItm!+PU.k: Z'K$/oSvX[SD"D1vMܛH"$Đ2!*A3j5:(JRj.b H@{{kǻϹy~y{o=gz3wWDǞA6:iqOYq|ZZЁ-mZKSƝjVkHDt7 ֢QrJlyk& Y!0Օ)dֺ^o@- z#s̲:Q0=9wBsWO"J) qDQC4ʚ8%H*.|MclJMјnƄ۸u U-a J vf2k+APGX)#"Z!>Pgw9Dӯ}Qh4~G#\Usc2;?=A%W1x J!-.+ a>gȳmP);^_xXNE%>2EA0>%J\c:ʇiyb?kگW}Ș(TQ|b@L ^;A: {ȧY"<"sjc@,Ј=m҄HFQq(.;61Xy v$l% L+Պ[p劔 y.Į7A J/XC!+(9ZË!rZokB-wVZT&[$VP+\:8 ikN@0c ((tle4{ yC: د( $o w2IA* ,l\GPEEd~¾-dՒi_u[& ^Ej@eih@Qn֏(8(%2] ҆qC:`D@m H ZX) ^[2MP{ݖ2F%r:hk-l _cW (PKmN^ܯ;n Xơ\#ӥF- )*Ths8Ux-bD!fDC3mÑ-Oy?IE<L}jҤmof"Vu »pLι6 # KP%ڠ0DP5 gРMƸ372+jډ$K#!yF]+O`eTIerEao *B(r`̧ ޝ#"(WG^ NBOlZ4{%8R*1m"a%g"q钙~O+OAL e;vhE50lR{0bΈ1[Ԥ–S#ʹ¾̋ .%"|פi L-^M _h=A,iMFjDvD`H)e"%) QVKڗ-[Vz%R0TBxC y睅Ҹ}/":" *9Q#M)h$1/| k(Į0f!Ax yt Hcw Psc$J! HkMG\7!+3ncBZ+S1|+#چ`3Y:J4\n2lcd$ZQjDIE\؂%<ϋ3AqIv:mf-l>>wJ"ht(2[^tΤ`SI0y\ +#$^w$RشBMXc l:R$*eP$lYhbU%Y'zW.I&2 BuCjmF( "e5mznNhOC#`+l(E-{y/xbQU7(jA+ T*٦EHщ{UcAe )N>˔1q.%E&khZ)mȇXaeeх*4gxF$ { oaye 8Nj=`8aQ ƥ"))8,/6X3+%9ԗmz3y5e=w<ƐozJ\tGǗtG)Bg8٭urږaً!kUpYk͟?I"RVmyk$ǎ\e/\J ,"(r{|\nXlWaiT5#lma-7֥|5=?tKy*#0Ep/(PMB:KMo4_$ADU͟g῎ wՑDLx.IZ&>#" I^Ff:A){DM"UAxUmDl̂VQ CӲ,#pg %"JI"j+DI?VB4Ix8-oU&bdܔ)Jzm &'JEƠQFāV5,ZVkk4J)d$5<,U`j9'ΏL~\8*Mb2d "U?ՙm$%/wW?C{v8b]鬞Њ Zr5Q[YΆƌAIEm,Ͳ,ZLrYr&>S;ELI" &FHD| ˦eܥCKX'qb,rQjJɸlhFz](1֣,CʌM8n9JC,=#7zVbv^֋%:nhA{9Z%#bbSd%"3P4y.*EQ#Q'4|<.sWD"mtpC dxvVt@C 5ٙAYDoiuEGO%VkҺF!C-Z=eLM[3QNY+)Uf԰F0y1~R-F QVA-z7ʦ.<}u:Яߦb}GN~QNe+Ιl!P"/RdLeDT9 P6EA*nJ%AmeBLei<4MZ)!deB myQ`Mm֢+82P2P7ƫjqH*i%4 Qh_(SB0As) V#~8z L@`ղ,ˬBďcE 5bɴ9C&9<) _$xF<,GvMS1D& $ #-di[&* 9,QLҍ!f"VBbkg*P,Z[Z%Tv0)-1Ժ7nt"c* 2F$Ip,td 97ecFmYp.G pm2 S[ WG,Nؓ(p7U+k(Ǝ3ҊjYͱf֦} JEAjmmy}MBHHQ !%JʎܜОDl2\(\T[-.0`q.YyPDj{r)N$Xcqbxc$F%g ,t 0Ea2BCE(tv=DJѪ BdZezΔ D;͟=@iwJʐD]Y؇@fCc* sU! Dlرd"dH!9HSA<4v9ЌtCV}׫_J]|^|HI1 WB0Jpmcsa[$foH< >s"pX,֌KUc_ )S J\~(`h+` Y| 0`vID+ xbC;p[SۏkB\0Of`,Pac;M5 w;#Q.BZm$e:_|WIX-J)fdlO܂(9}P冑& ?-BSب06"9D%7\7""I$ arIm"<&H'Ŏs[%g sTlȇ!$R*@D$Q2I$@yQeZ`# E^j4M! U<_!Oo˓Jn:W"$dHe;yyu__*ޤ~X/x*+tI@'.jpt(-ױ)-|r0e[G@BI$tr.a0-Ưyjmm輑1!d{ M6PpC梷)B"nX**g V`#F!]*Z.5iDvH4g2$Nc][UN0l5vK6ZU\9g ˍFC'WغXu[oUOx!id[DHZfI oq£v(Ȟ~)+( 2R8Y<5Blhb^{t |2\ #5Tr4AWD)AV@zZ3Vʅ_g FS4BRB`iI7($!+TFK(68eB"/]uI:ޥЕQk]׋B3<3rp$ TnzEj6Yxn$[@LDHI $lɤ Z52݂/Pv[M$I$@չyK!4+v P(fC8ňH$UZ+u($2(<!˲,K@)V h5 h*6;3|HT@R`֧A!Ye*#+TO>⭵bycV(\JiL!a(/IQEU+*HVH2鮔DDsP3C8܅BoNC`DyD,H$eI&Y*,|Fq *w+S.{/E\ m['{$r!m*Bi;4ڒ!#ps xɒ΅>?yg7nF=%Kv,^dѢŋ-^8 kkŋ.^ұdIҥKv,Y2c|Idz[\p^Iꔿɢ%˖~?fe ".]ѹsyzKmnݹl#Zwu?ӕDq4 h O-Q L5y=$o>tŇo1EblĀ=FZy`Vh;032nb19ǿ;xq&޾mU"C2IjZ"~AGG N-Y,L+! i\I#nyM]7TG޲'XyϙxE@f-l,y5`:'/~6+yu,^ԱhE .\йxJט{-l,[>}(}+w;|Yg>=}kg-h,yȁwe6ݍ;:K߷CϝԱnΞ?ج'Sv7<'[dE3>\1S|dն<꼫}zyWAU}Q^4>7 (Խ*ICZJ+d;2ڐkߝ)=OeM U<#[WX7w_GH);gx~k%B Eu^ц"R)別0`geanZJ../5wZ+ޱ ڋ* */ * 47xvUoYp׸+DF+$ѳG[[-IS,r=j6wyohDB962 Ix m*3[`$Rp5| IDATSicNybA"2$h VEY?~4n/;m?}i&Ϟ5e>*Kx@}nx˗aaћ_C=?Zk_}Goص}ؓd&gM螯On4Uj{Y Pz7|1ǝYxowd6b[.oW|3F@ϰ(á2m>t=C9w>򸃏8#<Ź"/lg6m#?lěYL!e6Ab'??x a?{ˏv힦C#˿7Ɉ^[\ӯdS#_L~wԏu8usMD>l߭{ԶwJvG^ig~^_Μ1ue-AŅ~2Of|Ɍ>__3ɭ?{D=O֚roO^f~][$sӟ]=Auj"i|t_줢oC0[lc)K)N7} /83{1}U]?A=ږWP[L{G?W:+-+2̢O_|Ϥ9hHI)tWkc!u^ Hy @m\yQjB@Oąl.@m梀KXl}h$=o'W 0brJ*1.BVڂ &n FgG*T[[{@`bsLmyR:$I$I8=q&d4gaT]r!Op)Zwq:qw씞 9?h$:)jYj 2:x ۨ$apZhA%5M,ˤL֍F=sr`2\{? 3A"g1TdnZ+Uxؔt7w/Z&"vP+FkU(c5%Yfs䖍.6 nz(9G/\)ۅg)$ - "/U>0ƒ38%9d1)`T3Q P*sՄu;kAfY ZiU(!#xRy^D@jAׯ~`f ۘ9,lU)'i?$jQ1R> LLjЬp[݃ȌmPT:THZR- !$MTRvDR)D`,YkmiB.. Q&Z)](](೩( B v'N۶kcYeY&/~=PLU|њU(U['[lwM<`vμzt>{|9u|6ȟ5~]Pg|Ęѣ6޽GoF~3{9R|Ccj9 ,(:hujNVϜ1}ڤ7]#1k?HkӏCFv)Ŷ1 /Oma(Hv$"i8TF??DCǬ|4y\B}9go:p5j4T.q/,$!Dk/ Ms 3H~$ 9-Uv<[Jx}W]y~t]u{3ǯZ!?wA~s |oo?p6ov?xP{mV'>ح71Km;rMd0Cu{.on50I.fGo񚃶0OGWv&ux>`-*XN;<)Kb9@_p/=ˏ?vlXX!S/{S/؃WK^Ow={k8iOOu Kog_xN{<{~ቧ%q}#KvM=^s܎!'uǬӕţ^C Z>_ӟ=dv:{gbភ&4.?dD/O+}Fq}c'L?Gn>{\y9Clg\'M?mP^}=;?i37vmUizo/}E5̢WY]%}vUh6 ;E]Ko}]dUbJb?^e̘5B2t>diyLe>S΂iw57b(# a>[p7Z"ϕVB,͒$a^bb;sDIޗEyM]E@0zh{%b^X( 9K0`yn$IJ)c4)$k$ jh12_4%dU6PhB®)M(H4,u*_?YIZ>șN#ff*A^^%JjR1T دdEs稉DmS%H)4E_L(eNfs1 f5Hwb[_b(RbƼ֎@ȳ,˸]Z3CA@ r񵵑Fnm YKW!!CDUZi!DVR*"7d,MӌP")$y) h_r ߲,⹙k#| a[ϟm< a;y/q¡J*dr^[7zk I^s_-U y5}$yFn]Xg4-T{nnF/>9?f:Ϻag^@_=ؓoQz+Nn{R=:}8_=GfmS [} _7Aڴ\i>g8tӔ~~ݹ[BtCoL^h{_ǝ&w%/. %|q) «X/YzQ|c~~]1vONx9YYeOҦvm o=j,MS1#uF _ODmY t7Y8Ohrlk)\Y +$MXi-CyޥNmm[܁*[*]*,=4Md ՆuLƨ5КQ}i4i*ɓ (Fq3۰ mݴ,ꂞϝ3Z]_|yImL'~޵vpDdXrmc\a 7X>b ?g,+-hY!P"e2l+1JͿ3g߰J/᳠[~0bbvys? ۫v:KK?&NA`?<̜μhdi9gnCڠ4Dtl鿍_d9R) dOj8?Z}qqΟSP-܋:g{O\wۤA4Hzgu_xgix=F{=AזGe'̚3뽧ug7_Uwӟϯwf㏻f|\܂nӏP}£s)&ٛLZMp9KaA+cwe?8qw6Y j8o8G'L|n?_ۧj>[p@s.}2^:{ZW>ȗ}6q_h?C-֌󂥧QF,R~1f'Z)C)ER Tak(C&1@@1 `kdi.٥hIZX! LVKk|&IFQ={J)wikک@#^@ a)eM``N( {|*WTMe;򥲷A`UDph"`U&߶(zg~\8ZǺaVhy.YccԠ)ɕQƵdWR˴إ;hPZqdhZ"n]ۢ3^mѡ%1!RfYf?=1nP~Ғ[Rgހ_C&ʒQ^V\#P$IvQn4P8$ֺ^Z%iUY3*jBFT{W,J+Ve̱m[L]pE Xm]kǩ>תbNV0Z!2aYMZҍz)(֪j;t@i{-n^hR+yhMZ Q[`ԸM{5hL҃Ǧ˂ɥD@0!*Cpgbɫ0V$A`̰NiS/y$y9չ(0FkMl719 !6+Ii\έwvǎ*Y,рi  |<#bw8bϝGu, /&z8b@9ihs;⒙}swBTPQA6O ď9~/{{ϗ[H#+Q`d 3:*s*Qlh6}%3a5w~vn~K,\'K4@״EEx#G 5~:vF%o^4fC{wqwϹgo`ȃ'zE+osEqO.\fC|2儽v[kg~Q4;Δ @Y{whZ6cʗٶW/w\wK&=hfQɗn0i_lFCzݝ}}$2qn9%0b ?[Q I im[H$\0ɣ6 ,ce-tU (tz^8|F ) hMGH y᳝#bKB!\c\kGBCqy-0QR9I eM6PyBڨb5IZ%K2yJI6:oDTլVfnWBE$2֪IӄLEQBHm6XMp Db L޷bpg3mbلV]*k`(J 9D 8 K١B$M}fv>(x^uDy]jd[*H;2[Hko)٢B 0/R% E,܈%pVR"MJƔX%6\[Zrw6eNںW/[#69r&lyßk7is} o;f|㏍vkB:6O 9w[mKY-w@.>uXŪtĦƶ-$t>R/Ξ>w/C׭I7bD_>7*A{?jw~,l+s0x߮:Bg( 8nc @"G}*+tZI>Ɋ IDATx"MKh>fϿ/W'WúӐeAEMKE-uX-jey_z }=/,sXcݷMYZ_GVZ { {K^>y@hz 5O?)t+ҏxƛ fG>>8{{luYUK'?tn2{Bm6DBFafV_䦩˨ı޻Vrc/~w*OWO?^sGmnۏ>wMS]y&Ӟzk=7c=>oFxvaop&Y9-iSb+|8`1k Nɛ;@-LW|XsGhc.:qh{ ?[6IdWhWJ)e5qPZakjm>g~??avN^>&n*yN{_s{%@ҫkU1&CR$;Jc+MYDU^hFsIB 0!ϲY)J,\06?pežΪ63[4*'Rp*h¦}H9u35Rr)Z[)L҅#B%قbDT YaR(ʠ0" qL 3yzy?v:[U¸ I؀.Bܖ=7i+_}I&M8;O\WV@^ ?E&_0Y~^:d;]gs?avޙE"]o]y$!7_ϧr } iab‰v қ:^Yn _kG}{{?z Iͱ뷃!"71v#";=7]Ъݞ\zW/#I!z8G]Vam__=;Ⓠ@B}nٿ:04m!?8f_sn~8爒![FL&I3Ċ =2{,bѲ>-7Mh{􀮧.S b7m"/'k7o̻5 sIFx읏evl1[bzЭh򥉓}I~]'.e-{? 0_Wu_{o=;Ϟ.ndОsV 7CVkրΔ:<;}ᛮqzېCN9v7j ?_7o{,⬳ޚk1_p&ݗ"g<5k[ O|$Ύ7Xgz2bA?Mڈu;AcLq듏kG^[hw|m'?K3o`{mg箼wj{vnyOd7g?ߪ4{ 3ݰ-~Sf ]d.9vD;Вq7޿t /`aC^% >l*r#ۇq#Oq4$6>laÇJ+:@{;E aҿg**otv+`6$C#XB0hg+j +((TmP,8ʙc"/RJ IF,%J;vK)" RHk}BX䮃/ԇBY]z$IfzkdMZ$Y&e"w{$IRz#`B,O+Z[MtQ3~cY*rfCѺ`OSk:L)e)u./%QT%6iy0vT[RV# "6EC/)p HiёRHqs6P%3b#Bݜ%Y4䱐( (/֠s/I;gM8$pc{iB%c0>u!njlPn]_K) }!XmG3LW8d U.kQEQRZ!^@$REPZA% z-Sv!(q[e/h$j)B$Bh~q@\(q%C1lYoVv^j$Z, UQ$m'648m? \>ld W/ k= )eŐfeK`u+#牞h$s0"=\x2Ji"bcC+sA^haZD.ā%UuyO^;qn*.f?܏ט'y34s>i_\qХvgC+cy=^z .tTGp(3ZHM F$VF ,q @vd;|qw>_^?uQ?m|z<㵿:㯜dyؖ;fb_@#&,Ӕ@pFotq{xX~ė x)X{68IE߿l;/o31v.B3לwЈx?/9*G8':q׌ݒ1ajH)~#{."^^p#*gu{P҄G{⺱-wviw.uޑŗAoŠ:g~:Y2oUYWk{xێN| I A0*S6|l(8A@i@@P@ Nd41 "3P44(S"2` $dg蝹~UUjs}{s޵p|jX0@tc}^Z/1?Optyk+?>_y?W_nyLJ6w_2_{W=ӷw.='?oϜoƛf B/6]_aEw>;orqݚJ p..0^/ O{ԟǿ^.;N{ğ~0}uaswcӷzS?o>O}c=y6Gbg[vc#~_{Nq ;K_L|AsW]“/QX_~ܹgM?@Jvˢ,6Vuyf+Y_bf&I;,y+9r1&"rς {VyqIxU^GvBf;fS,;2Vg5 70 *0V6QňbY$w! apމriӘn ,>+ ЌS828WJIknF윷fzI+g%6x{ĺ"7]%])ݲK.s0(XAȓȒ(qܤ:E'wq_\z.UB' MfDc7`(9J䄻EO`kZmܭ~ Z q7r&%1@nh`@t%%kyy朕%)%щɔ H!/D!8t>x@{<`!D $?& A8L'idji/LΣ-HQpIh8\4CQCu9iU5aJXIɥ?@ig_\:z_1&Fe'kVrha= ח&z"fߪМ}gt\2ƹpx[V$ &M&.E͕s"b'2EݜB1Ӯ >Ȕb1ѷ>Ͻo[ĢdY4,LQEއ ʑznLw8/vhݕژ#V4Y|VP{)YP[RL#Ғ\r En>tz~%rjoD8wT _q+3]s[qL5Ahp^1ܸ(U6iV^"@e7O(5 Ng 8qbk(8WYtj(.<9o>;ݏ5%\ II(fNxg^.& \>:y֙g]JD T䑛fOLm"aRb+J+u?oJWy!S%叩བྷμB ^c~%eiѾYtQfm4+]r!e p^|g~?!d[JPh؄i5 @h"N-A6;.yypOno]cKij'  }-Z9@[=dٶ-D4Nbއm_):'a3ʫGreB0 ;cCYLRcXXM27>&VAISm;-$ 3Ǖ;5]s!EqG -Q4"P̿(;>bdM1R"`r> ދ%R%[ӳ[ !;A%貃N12a5ϰ aKDDRᒾ{*^ X2KgB|\@kщmYlKric#s5ݞ{dglar;F*> JlMvv_<;x4GOYE>,蹺y;884E`{Ox&WpyÖRIuY8|w9L0H8M/0tg.#0HFFP*-/y2*uAru3R3[ˊiR!fΈcaTSaG0y'jLLLe` c> Q0f:'#ef 5ВDz#W cs! fiwh%؜91a&f.t0\! P(lʋ^B8PtYW&hWƘȲ(\ANYBMCE_R)/*~'Ps‰nb"㪂 Qn5}κ;o Z'u|ʈJ ٪犂LI-@Kr\pevl{vDYY9qA^M_"YJT^oK(U!Db01FĘbV!xjSj^13WCyi9rDcL jJf魾.Ćf]$LnsJkSJ>C\v`B??<*}2q_/}q5#u|ݜ(N)|( 8/oz"owm5/;HK['grBV*+!ZP̒tG$p,tΥMB#+F-sdioeT%l W']s˙9W5f Ө=~if00 䗽LYXH.UNHP"@pB,d.'9Ҷdd+V݋Bw7q>g@.9N381E@>&f 0^J@at& (gIciL9DŚ&W )Dī@@H&a$w̔ w[r?zyɑHCsBNβe)RNF.>[;s\)*O- 2[%5 Zg0͌H"=A+m}2ȏL@&#-1sq2ɖ+t_ ?lugm[g0OD̫LGusdRQ"+€(TըT=и VR{Q 4w:NCCbؚ5u%O$%z9^ںEm+9ok[cWMqfLQs&u Z;nvC3'p>%N =jX'b34Bӭ-RjsWg88Z&R*+h0il<钣+u1I?O)5b֨܇;f;$Wą@b_r4g(yJ\^`8 U|hkg$i6` 喉[۲ޘY}AU:V=Ct!+nQMn\zD&Ř_0t[[ }e;MoJ*G(2-ҩ>$a A@UVƱfmS~YmIRՊ UU7cmh ؊^3"h1ٵ8o A7"ԳJPP攌=0eݕj]լCh(:W{ȡ%,-NG$Q;k5~֡y` yn@w]HH^AJG!'j^8D4n6!l"Gw a8T-vN"- s4kYFZl7bB隣$I+d*(p$W(M1'ԧ \/pZWG9f@<ȴ8 `1NC6FG5wOV Mq02Q]FIwC Ih|ۛ U@گ旳hqy߿XSVf FM{?tIqL덢/MUmh1>QyMl'%&ʖaE1):/P4}s7\^3p`Vw1xnKKmxqn\d72 *AfZgw{g>jޯ:i/ e#R9[8=镘rA1)D:t A 6gmNA#J}s4|/YbD!(z%P2y24(q2TB lK& кJl.=7;-خ p^cfn,9W /&74EdDVkCMiX@IZ#`G;[bx{EW*ɫ1ZS'J1HI|tѻ>$[m!1#8ݍ5nF)*bcDf]0(3GTTRVfǫIrр XðZʩдj@Kf΢4vLJ52^A$Z.3+_P7W3SFlH`:b#q܌c"9;;;Ύ8bXv8bX Ж ]bZv]B @~s s0 .T(m(Mic(|2Q6 bjr]uSj-^24Áa0d~ nP(D+{ԃMm#" QR] 1^eAgI5Qz+$3dʇS*ڲW'1ؓnq,|'GӨ;heMFa C.yQ0 U(tIbKj]HmtcNݺa2 xwY"rRK,,q$G~.؎Y0=G5oK91M5>8-j8_I-4Na˗ 0Wι)N8Is8 zgZiownaޱe-K,q8ȆqM!66śZJitBqʢ:N)NK^lxFdO>x)B~x!LyhnHvywޱ}Tm;Iln!5?$B65>hm+rۈv7%DY-,Wgbnx/ [ǹ&f!T$ D꜔}Qq`)mͰZ0(##yt&=b @-y \ JP,L#+J)Ϋ[Ē/GSaE X&X鰼A..DіqRJ8 bXw{>xyQrRٱBԶ1`,qZdh"D2\I(M V)^?,k{(\yVyOwZof'cPȴgN}/~%N<ϛD|R$n e`a6A9<VEMکOowxG?|{WG}D5EeHUo %ɠ!ng>.}tǝzʳcT].!A<d(t끚eq; 6aF5Wy6S.܆xKe!sl>aGBjE0ڡ!.3,Srכظ@-3Űzͻϔg6=v=ZK G[2Fl;ʡ+@IfHCܭ+İsh'@2D)!S).ţm,@SVD}0p5vnKX|r@WUw`D<0L؂udv\{f\CCKS/E$QXkV@`>ŭęg YcE l } A3i-nޯVaBQ#> fٽjW@!a5 2k a0aݳ&9rSid ltN RQ텠5V%nd)Q8Men{~\T32kD)1g+͜0ѵT}~bxs >9k68Įdn:ʋ9ňxY2'qp-٧=ؤCO'iN:")}Sm\ZO3dTRۄv,ue;D4IS#ē)8njB &f| aTJkt u dfR'!ٯ́|L );^CM٩x*u؟;n=6 - !bA,NL:NoBK` $<ԙziL-H w \ݟc04Y;H)lM҃=WK|cgO:C9~񨛝t᏾O;GeCS^?|^xZ8x_1au׿{G:u]O_G7{><q.I?57K [RMPZ`^sqlj(|#ͤ9'N{򕏾͎ЫO'Ώ}ww>]a٘0 x~{T+7kq.=~џsGZòJțzTwgkV"Ψ3ecXCR}\ NIT}B6ڣMZ>z@^>?_1ox2n j&;c,6JfI_p i{4q?2%y[hsvQlxCHuҸ=~ɉ=DLNPC*g<`UWR&Qilgcd}P-5l/ b-`̡[i콇'6!hu*ϜaAv!H|@@EpL/_D)Ck北 NRjf4Z+t]h͓kB%r8]Vtp)iqdbIzgZ`wwwwIDιzYs/0azvJC*?l94Nfaz^^9%8:;is0 : @x@cJ)Q1N# `>Z_\5V̝ɺ1,fta|}s#z \iAT}đQ@yKa>ʛek#V;6k}<)26>ޟjGX%_JPq6{GRD.K聁0lU_9%7$']er! CbU04M8 Cq O4Cm3UXrD0n IDATYAYG3\km+dNThhR%g4$(\ rI?r{DsS"SթZ7SJ]:m/w)E"P$ ID%TՕ@%h`bORT+%ijRbSЇf/HrַtK߳E )'}/ӽ?V'?n{_<~zЋ>{?<z9=}{=׾F(I>nSx#K?ӟ_/x`C\tl\dN{7\y@Vy2 dɰ 6RB$@Do}| bSc~? p=~zz#޿w?N(k(ϟ9QLWaTxk]y?^8O/;nr 1 ;]N~ןϟm˧@MamX1|q̞YFTH/`ɼrkr9;FK*[VEδ CEeZV35W%mZ%糩_cZ@6f np!C_n:?rHWl:K[~:")I]<[h ? x̲hi(ѣ `!V+n( DF!95+YTP224\4 oa:2s6rjW$Fe v dCygZ!{J뼜ԮC7D\5H¹]׫ MTmLy/q>peFr-i?O S 4n6qл CX3V1ūrGu~V1nvw7_!4yL Ulq'GZgZĨ0z%/-V4 F6:]N8niq3k#+II=l/]nz} 93T"TX]I_-q BKx]A rkdr~d4Zp0EX'%هY܏%~g.cf8D)QRuEF:y[eiK1!BCb0Nj>$J40 yq*WPY)w6{R1$1h9ϩ)s<+RI^R'ðZXŔb _1;͗$JFG7oH^&Gc:@0 !n!](ٵ'Ag}\թN QT!^bN1 4YNa{>rNnOvY~νg`ԟqG|3=9X<7}o?W/>pΦmك_3z]~ݟ><鷿%|ݠx8eӕ|}>\q?{ zе*lqwomnt3uf d:W\|1w>m{Oep踣NỾ|[_6q>|#IOeRsw7^r:Hq;>/S[9@Es@B\s(N'e7>!v(W{9GUIafXsЂϵa5apޛDz#UhqBaX !|}Ħ%m-/!&(0EVfPmy6c3鉐!Si7#n 0 ;G0nݫv1 C+)pGqDQ-yh#l@8Mf^wvvdFAcBtaZ֫a5gR0aD !^RiRT=ϭ&Fx >8X~fP:"bY;ժCD67M }mQ-M4$λwB(Ռ n Kۿm*#x[Qg6&<Ԫ#pl業/͗,=Dc3|pD<*AHdfMcް G9W,t m)FI i؋AdPC9 @A<4v{`q2F85%Vc<)A>zSƫLlq*vuhlN[dU*+G9"$u&yжJ`R~_7 t>sq\\N/\2p/'/ e܍;C_d"Bt8wq^λח^1KXS?sfK..$@_" !2"s*b),XPEL`qA#:jM-t%^Odx?}*@D}BM pQ4vM"ORnLHts(,,ă":`*E#7@s_ɀxc_0qc֬ {xb\FL{X% S#a9ٳyESހr"9r[(f̨G >"hh:R𢧱N" B,s[77J ;ktJMq6t\M!>Q 5K?jlfd6mC[a^Ŕ(j/ Mc~$4 0uvfDlMˮvK87&oDTSujP^ #jM diyh#A릈AQ&ڔpCtA ]=*x#l +zK'9K3{еjt)q3RJyh[p^ՊwwTj5 4M]lv̘΀f)L._K[׈<50F (].ј7c{-EU-?oJ@Mxsȍ>n8J/քX ]Td#3V)%S-ąUdlÒAMh<ȕ᫽B^g]xhHR"1 X&8Q}8EvτGsoaAkk59&Nb~1#Bpb4t4+Gs{5kTɸ/\|tlz"s%7|yh` {TKX ,pT{.'1sއn_t r?gոdHS$초[_לڪSD5o<7|{~i#@eJ\,ǫ&2vt7.=<޹]e_ KɃ90kfq" bJjpŗQq?ABܹx{!t^$ynUNjE(\G{wip˟=]pS8B/ 2#M0Q,!|b?f=yTcxN;~e>Nڋ$'NyKˆloFhI*wڒx8-Tmry3s?˜m1ϽOtPy$*:9\FU 80wv0Ĕvڝ6zXNqSJPD1f#XєVx.1Dҹƅŭtб˱ML}OXˆ[SJj=8qkTf'$w*VK{5:n^Q,1~"GAЈS4 H;8}K Wj؛aBC1zlӶՅ_IƼW+1j'SJv)Y,Ňqi`QrMT? -nA@D\6ADuȊҽ{&׫fQEu>/EA{K. +×XsBϋ\T1%&B<?-o!STEC}B2/TeQɝ K#>ҺSԴ6QX΋BH0qqvOkíI(#3_~wQW|ѿ ?z[gW8˯ݧOx3[]nyԸK?pSu[#/U?~O䇮{ySvuj,km03rܯ۟x~ <7勛n椯(o#Uk4t {7_7]';|}I]B2*snSٌ)Ļ5Z$y1tsqz]Ȼ'䃟pk|g_RRJWڕfV\>EQ=MP|5P]Jཞp BC@?,`I v  mS{(_FwAǬp/a*[ xF)HF M.K)xͦ)E%ŚM}Ursb݌i;_4c@fUEe ،i€5,=L mMhK"݉d!W̍ i)9}p^E>[Kݴ30buRMiR]Y*ƪL]yp2dSS3LFؒ̚iK#V~ 3/f-sgyv-6an [~Kqo v(27hN2^ܤssA*Q)QJQ"͜/bLq1N11h_$f MVXhhhlE9)tYG #yCœVbшZ#`b ײ04M9/yY.aynˈ‌כ.y)3W}yEaN}Oz#^z5ܓ03p_p?g`7?X ͳ:)O}Y;W<}|c_QH.xv?μ۟z퓞΋RV0`F bEeax$ >)낸G+h:9|OonInl9X&OW2 2]gyk/5flg}S( {3v4)K M"e/HhP;uTŒn2Jx9|r9P4v)7<_]u[zIE$q{˹[92}RsH)Qa" zB6T=eV ˊYrKv)ԗ--ŀUnំSE!2Ƙ:R$*Y< UnD4J`덁)){ R^ jPdfqEAdW\RL$hbc9ĬD`JӨggŖlZDiJŎ8 b$ox*kG$V|͝2Z턃D猎#cMƗ"% DCp/xCi͆,bH2Dz$z|8m^MMEh;60ωֿPXޕ'4ձE*{;q1hms 6&1xt@4V=|eR@١uO˱FhX4ALá\FE"y 8 bcHSQ8fSLD9/Dl"a\;e3ղr!EY!Q֠W9S7T34#Od%mF9S$U2Dr&SCc.y=H٤e1V>ߺ!TOJeJcP- IM 1v%3,5%N]w8>AFU 3WCn^Y9g֜@#h&)RLR_]\,}1 *Lb1sNMK2-Rwc,APRm3S>fEwm%x4C Ûٗ7vE242O]K$1Н T~ĵ-!4똛&ʨtҊB/d%'ejGPsN>Ͷ ֲaIkj=rb4c."ء1V"8G#Ȋ5ibyTd;Za""LR4!J cTI0q`YmbZ1tZ:t0 fJ7R.RPClvއ!0C&MBXccYƂV# UG\K 􃺄Ҋdݍ=;u߲Vj4]XuČZ2;mq/TĆV=ȶV$$*rHU/kNYzkD2(s<dlw,_O26"Hd?hЋt$rsecj=#r pQRWYpPu+Q.4j:eөEY/gi5z5%Nh|SWVԦݜꮹ=#h*K&lzgAf][b4m-gN:`Hen붩۷&~=A],qsi2~6j,З% B915Hhz>xĖ`E8Z/P2ȥ@f[ %VlJr4 Qc]mgތS5CΛ#)i:D,n0Zq&,!ɂ1OS 0h6Cl=sc}!T2p\՝9wgdFn Y ƭʼB4NL$1Llljv!͘8Z,3X~@,,IgxBwdXP YrX>H g=-ƺ1VGhb;[Ypd3*b@c[.٩L :iq粮,YR:>ʬl0-< ZPL8z0e'!w8'eN&6SZ\+R/VRVP :/3 %W7;xTj07.kK\QAN;Y6=:+&Xo`1&J0Z%z0Mq#})1;Ԅg!?Nroh;!_0DH8DkMkˡyIK:a?{ ,2fbPGRYȭrpE$fcNиJ-DB"S$wC<F"0; Yow4 Hޞ3>‹ iD*R#ȷma@.lk+aKWhU܋ԉwk)8i樌B!zfk6k Hnf[6VqT*sIblc&Uo#RMEXUxclofۢ3ըt_j~ ovP(ݜ1ҒLf`33ާxNgXx or߄RXx ]}e6&~:5a A <XJ Y ^vrʐKK/ ؜_|I1SVcxBP`>^ "M+U?Lg&E}M BECn 5m?X3 ^c Z,._;S䎺єd.&,. Am5fK=pk\X, l59ٲ498ʉb&*01q(j5vїՃyϛD&nW;3{6%'98#!xe`oMKN@F)p-c0I{eX)Z9%}*5 6Wp<^'#K tcpb7̓4p9s Yg`ANiJ(6;ҿjn}ťШ %v9F`j%&C'}2K(!<2~8+^=X C1FbrcS@N|A9S&ewdec+.5jKs,p[RVFS6˩={$VUsa+iwỷХn\H<֎gSÈBD4irōٹ^tjڌq^0 CH&I.0 ]_ w婚48Ih}Y0u|PJG DĮ;}|dptϩ@IAIE@*(%(sU`N (*Ig$ |wwݷDz|{v:|bK 5"|.VtX1W,yv816W ih|'^'&p3F-%eo)?NDօׄawp#LVQHBkKᱪLe*r@,&?eʍuk"-ƳrŪ2ڃ/rC *@\F0M‹ӫ,kjskn[Xf[6ZjS@@F(S7Vb[G/:9xr̫*[@@4U5k+lKF&$Ph~@|S!)ۑ[\WZ܍!,$-K'[P2I}G 'φm><4ʎ9J"! ۊ "2dx&0 3VD DBke dAHP$!c>!Yv V*]JZajÙBֆd1uf5}]^UɅ0ewFFfڀ"0Q?H&,%CuE$CwlHB15,É8Qپ2QYਐICP((z, 0wA4"* Zr'{@#2TaQR @Ai2rUhDz?:Q1wxq.L%jar /ɐ9lޕ=gC1zpN~YO$𐔃]5X,fjbFi)b [F$'lM1 B$BpPj4՞1Ęm{{qANI)V <SQPPĜf1ιw]HJw*mqUhkH4\RvIf2ZUP4o 0Rjⳍ'-)S!Fv9 1Ʌ5 k R]e[J}E$sD:^u)EaC&*ɰߒ1aja¡Cۈy I[hnPAƴ_;Cl+$d82U9S4&皒B&щ#>_~#$jyя ]iCBnuQoҖI3DsDh1 82]\A; ,"c;{cS \Xd:&k,}r~3O C5X(8vYi;D%cѱ\sKDbcxo!80B j|[86a!P "n&Z1!P TxiIG=eɮX:~>]Nʳy`DF$D=&=QANAhc-M+1nbY:F;RA57meQ:kmg/(PLr/68GTFk ! F%Oc%,px Cr˧iƣ?C(@ZӞTHȀٶ-LpuHј. `8A&h3y>smsQ̲'?`,߶- 肩BzÔWheDOCr,izl-3lpE| Q=0z>ET'$X+qPΤItJMk3"< F9PA@Sxby$NUE ]<2Ĕ˶dΧ $jRŸ8 -˲X!zP aB T_RB2&031*e/&ÙY=&$U(8mɘ+4{װmr]-$lT߅:Dz_3RpJ"r`VPHE13Pw03w=6$!J¼M|ucY4s$Yyqd0drO> k( c`z@lgiF72Vf/OC1DV>.o. H*UIC~NI۲mQș ==.Lа/ =Ռ).Gf: o#@i_o!PE5]Wi9XS>qו6zJ :?ǯvU\ŅL2ц:>BCo0E4c4 <E\(84m4'HFDlߜ0s2\.hgӖdOCDVw??V|Wr@-HG2}VVO|0m5VZ6'o4ƭύv>}J6`eZ{?]vŚe߼PJ1 qL o{O6oP.d+wxםN{[,HLR1CT C/@TI^%3E N%2|im<[HP: XD @a/&(jǠVe2%']QXX(wb-  o G&aUjcV'X")ё˥A[zzㅅ I(Ѫ9e J&m)5mPrl43kI#kWY5F\ε%0x0=DeZ=!2ei쓙Řds7Q'Vɦ{syBʈ)9 "%wf.\2m+]P1?_$3s̟~KYDp/iD4~a;C-O…S>yό퍽 C_{W+"2tubh Br45{oTfX Y~\lEK-\}&-kj:ŊUgreUKKَc;DZDzmA 1DZUl o(, $5wDVSeel_. -Y૮exAAaAAܹbUߔU3_l.y7O(τ$ʑ6ɂ UekƵ-%MZN[kMֹ^;Yk6d-++kW#,k Qʽ/HHզ?y'I"(BE'=ӵ[F%=߳'O9~#;譡n8cr"QA֌-FY[)zO8mY/]<'{=uy{h0xWޣÖ{{vvv`!va6yqJT.e\vJk2;c0!46Np/2p3 M9!P^OU[zf0cp0IZdvQVPF&Ie}#4IċTh#0X`t2=ӁEO|xʛ_ηw :pYqv!Jp@|ڋ&s\R6G02nO΃T41rt .C1 ZamVɶ+?,C> ItyZ.\ɘ#Jy<<|gidn LRL;>\R!}/Ee4󫌆'}MSրC. }8M9@̨wKcg.yǿڱa  XJ2]SR#ڛ_*#_OHy@tŇ,)sVd-{?4,gu^;r~wTЮF /k=O7K=tV^+Uk˪/f.]>^S)mӕ=Pp!Hāc>j5ɨiJ]Ұ vWWș;W)^O_b/FǓ#O9s*{+3dp <6YSf,a!n #@ZlѬUm;I="BBߟ2cY˾­ S[3w]6{ĠO}%( W~%+k1__Ɏ<_$YdQ[g#JBMLF2^s0 S:DdaՐuDh'0g̞Q(ˋ4-”虂kή8 $;L:5 @|R7#eF '\xƽ]W{n\aM//$"@~AӬZy1tj6[Ϛ7a c6&{o+k:|Ycۖe 8;ޟ:;׬իgOxΆ lƚ_$3sIضe]/}׿%olYzί}9'kiVSha*+6b? A`_fN}ˏ{'ػ}-kkX)q=V V<<|}]Q`@ED"}A%5= umOq-lDoܰaƍ[6m{ ld,#Js@|F[AEdN$zx< $q7^hFC,+Z,zb=/Ke)?xou鍵2$>6d';TJvG?{aR`xA2Aswm^~Ӯ\A'wo\ae\2ŢLx_KصIqTNcmk{n%ő ι'Ju#zq.Rju:~̵.]ݨ~uSt…<. MڶmG*-7l#͛6o#Bz;۞l޴bdb%*w_ll%yζqܰ-zf"ڦ׻Og,YlY_N`PdCpq!={߾mߞպ)ҧf۽r Ȯe̒y]UdeY픾l9w=Niup]_.6z@4;؎۱e+jBpcv'},rwmZ_n[6m޸aӆǼK˞UcN՞VZ{#Caz]׬-~T˨5 XV::u鯛<흧w6nΝ4s 闏^㏧/{?7%s/7JXXbWVv3yƒUKWejhFu^I˦q3V^K7VR T1s?ұZ,a#z #"sl˱cqszǐ3I!( gF֝-F,IALx\(Y9 k1TeK?kɐ#tPh۶H9 u<}0 >߫/zpM|ؿ[vCo>rQ ęEU "BDu:36 MIڌ>f{,#q,M#b Q8z!. teK.n޴̃2Juc_zXro>qq:MZ=`/e]cyoXk/xm*,\$D$ wO/= J(z[Goςum.ql?\+BpwϛZ]W֭+o:I\@BsK,f&'}ލ9,_`iWVւw{r#UV7Ξ9kkIǗ5rm^yΤW>^B'TE))۠NM*VJ|LdJm)ߔ+O+yyX{.905dZˏ7Fmz5bm[ V !e+޶6{SbLiG6l:-Ը`^F (;[X Wl^?M>9hww91 *vnt\4=]Xᶮ RY9Owm{ _V4CUJm/BouS5l׆9w:~]9F*RB-fv̉9#re XD;58|ͺ t:\S㽗~t2-}-_uGZ>)'iA#yV0u&NS|ϧ?Y yuy/{~7vikd4ѫ62ATJ_7%J~rot>py' c4DHĐ *R+5O!.B35ĽeY,:lyn7ܴɯlֽero-c%ޚQā`<{*m:+1͆HeSֈ6ch+DdLNAM @ fIvE)m$B j˕=!S }JU%SJx8bc!DА6!E3䲷|o\YӦ-ݝ'3p.-scԄxO7tҬJ,kCaNeOVKUKANMxb2Rm] `=/_{hO@M)!J~ͬ?zgS\{2Dᶩ9)J_~__V8gxB.!"[Z;ۤg2j5mۗ:]U7XVZfrRo-\~[u(Ғu[v۟~y;[䴋|6n]ZY#8>g̷>w4*,+y-Y?lyoM[](J1Ҍ^!Y#PIlPTPR3/TBџh\_= rg 8rWZ!!,S9E@T)BliDJVzxSAsqB =0Z-DB[@ L(~|h#-8MA;2^quyǶؑ&o&cg=yY+~Wʸ [zR\/=ylȁ: tcD(HѴ@@qhSה<5w?wmі5o=5a 9 >A&+uco?`׋衣&0Ca'~vKlѬ=GuCfLҥ@$;aG~]>5fVz'|O4u lo@f[35Ą-C栤3}|i/o<>nإII!"qXJmX+{ SU{hOKyhbf9}+ȘO?rG|9vp.m Rs ~w,m5ǚx~w$G R=r̯/=sQɈ{yv d\O.<|ς{;4!N){E*{~><5{烷_Q{8cTmպ* v5u,>AIh(Ea%.$CfX'P{sKz}uuXc3X 6Oϟ?X5Q@q΄Pg(; F:ID炜mGWTlq /]')g[6e΃ 鲺`v|į.m\o3Faomв9B??MixM*ž=iSLX+q YtTel~Ǝ4_W-}Td Դ7`nȹy. Rg2^s((7kӾvDž#WhfYx 6_(YhʆEߌߍsŇ+;dx3BHA̸d g=_sӮ}H<<142\Z^ݲ7It9~, 7gSJ̵r|*~оC88(cXgg@eA}zwCsLҎV|k IDATiI3*#N;㩍[ ADou)t,;Ew?lIxG|W#6"S=MOcݩѩ7ǖWl~uۇ?NX7yKLA<`.JS?d@S;P[.nzx嶭-K=4KN*7d^s#־/o޴e}n@{3 U$Ȳ,J4G"[7n|x讱 Gn* B)7, WMܢm#ѮzK&ؘ,"o͛=h~e.o}>p~/0R mTcs=q.c܅8/[rPWN4;0ӺSFan5_vUۇ?N&OkГTS"DBLOdSevC@0# hSekޛf͌'{35hSIezlq'm%S7y7KIbN,8mٹc=GbSGNVqԘw_r.a y۵=T'-o3m A@j ʛPΚb`3tne;)K.:e;>f~?u2-8iAM"@Uo ziź=d.(+Q;OD~hs6()غj7;!oλ%Z议?Ӎtޑ-@]ضn1~"G WM:~hRc-ܶfGUjulrĶV?vVkk>v  oG?>px5 pYuK.I4[IՒ]c7R8vF/#O,~+=owϾ"wti~bimj!0LBa.%[~$"Mg N2cyl/BX.(aR`] {:2WB*_1 c^5ԬZi =s]7FUJslfv*xU `^IPDFly?}W:?&neNF>h߬vr]uS7͗M2Bږoa#W'Rbu|Sv6zd#75Wavw=֯qZtDB An [m|fC!y 0Ny Pb]Jkk! "U'=u]u%H9'joxa6[);k:." 0[?4CE>4˲sT:ϖ4S~x<.pqbKl|S#Z77sǦV{ ]\{#7ݡshdv{iWEl˨Z~:U2RAݺJ؈Gjh\zC9!!D9s\{}9J_5F9Z=4]\zW|i)d7qe)ˊ&l2Ԯ[VtʵԮ]%ܵ:Qnժݬk:; ~`ь2w{=w+qlsNK]zo?tD]mwqe׹]ӌ#r "5ȡ 6#o< %{\p(-A7~6;v)s.[_zڷv(}e,9ȃbkwq**ԹƦG7/4((`gQ '5-FI :qXSrS~Yscj.in/d #MUfh! ]Opa/y?O}72bҤ6okSG2GX6ᓵlO#?nS =~8D-c_qKؼpҴMޭ,8\1xL<{M$9cBJjiҾ?pѱ?i' nÕ^|ϺC|?bcByo=?-pm34>>PΔt L GC14qL5O}B_}:n !J ]u8H!"ٖ [7lz` vB)bV.:n%_8a&癛.[DŽ]?8O}C-~~bQtm( -^0O&~UG}4!8eA5LұO} ֧I٧"laa+T)cg; I= :eYpPtҩ,}K4yC/\~lsYxr׌~dh>Nio=A=qvdWz=UT/}ـVHcؖ9h{D)y 5Wp 63-d(mBD8ybI1rpݘ]~;jW^{ma'@DTXXF9Nol"12 ڶ,KB;^MO|W}xՎw7əeU^V>w6L5}o'AsY ?ɕm=8nj 6k}8AZ 5_O,*%U&q }vԝ\ӡH700v C G*ߋgNhFY T`FR:B;N,U %`$$}  I?)\Y V3u=!8ce[)w5}1LIImzv,FgWBfۖ,DSDȘ" '1ZOP30ӵD¢\2Ni#IY(ӅjDr&7rhpxR[)Jh BO(.y'لϢMg[@ g1<0>,Ţ"h'S[k^W-~VP>Dѯ6\i' Dľe,i+4eC~ɕ !W'YK\cP.G `% ${s=Q"?l;NJJ X<\YVqe %iS"؄{0hh`_?JT^)gYsb^~ٖ$ dPhGIVt*u]kв,;,IJoWkCF@qu,+%%&/D^C<"&kDp wjd^0^XdFhAHoUa"d`@7bŊ#wKVȼ&eQG%r &^{gKxlr}ȓ_J[YE p>fˑɯ_v{g\"/hp\@MŸOoB"ٶl 8$8f8?aH<7#: v8:Tdtd`GrCS[lp:Y>J5)#W^ c)(XSV]  zgNIH64?eL$ ^$Zκ~ @f1mO--> ʊ88mٖ+kC/wqoJ?YmyS3Ƙ`Dxi4#H"XȘmsʢYU7&D>QFtGh1rKЄO^ A:QF6 #̠mBLz;( !9W G Qe2eT2!SkI -feC!$i U_P ŔdpYhuT3(_ҡ|9!2QBNXNHF$& BC^` ebQ"1}k$h zT[tgt:]îⲚ7%0 <h$j<Lj 8YBҜ-{`EG(~IZzPS%j=$2YL!% Fohݨ;b0 U(E* GfqYRbmɄ_rP21qT9--V:OT S1XEJ7qЏ.#p&"s nR-9])'D ]f~ 2܍ҸR B˒&Ȑ۶lyfu{DpkJixjPB-q1( 0]EIfw^ϔD9C LM[DcR)݆<ҾJ^dF_iAn6PE"(9lE/'=7U[p攄L@²mf1qw]yjw$X|hF9W *ƏB+)C ]PT&@|uBRkeX&n$d@nl8M00RQ R|@sFa""c H꒱N&p 8^2.ElM3c#YR|J˔(Hs$ w/|.qhʅK3\%H@K+@Jԁy !DO"o͢7Gs=ږMqe[ Y.(S9]ǘ.Ch{ޣ!pw@Mse%VL {orHD9j,^"Lb8zNԐ??;5!OPs YЛYb s@Ef cHtz ?-ka#C!(`ߝ)@_R|02$)ճm3,F=.G'tDCyX |o.xx\p.x d3vv P mK6N?rp9/((-CH|ݡЊVaL@beI#ιsA*mَ#y^)o"qν c۶#vTUqϓEaӕu},07wD IѳZ"l>bŊ5 d9U =3!=Bӏ&B> 4A&U1eS.[Af1. BSmpvY\ᙘy-"4٢d&;"Kk%m%MRA (zf%I(2(t IDAT]7a3AR:5  lm"y+TO%zuSEa?ΧT ; <9%9"ڶcYi0w]=+R$M/6pu?6%( 'gF)ǯ9 jN ȟq5Cr 8?!]}~fBDV4,F2.RȧX4*mj TʡB.mgԞ+7([ 5ۡAcTC>aۧhy\p*- rYi$FdoJO? _L=5V_18M`Oi\d }eJz\b\h ٖ8pEs<9a!s%B&e"] {s.3 +lG1@{n qA>ޖz .79"U#o|)Dhk Z~*_߄m @1p{oarqM=aՇ0=BPtg?{-!m'tgAO;HwIdcLVn@!}?ү?%`ժb -T-۲l[i< "*,r8g>ALT|5 c(ϩQ..9bĄ$kD*f*"d䜳 KXX`ݝ:?zf@,lOso8DT3C@I2} =o5O(IFm]eS=ko_ xrB8-?u bx{1't%LEj26$BE hݠ&Ԁ }0XBbg/;A PaHKpS^Ca>ޏ &,ӫp#xL% *f 3FP_Dyz0- TήS\!Ik.PZ0=#$CHP4J[Y긞?''!Us8Y,b\d O %`5τmC@ڝD˷53 |YNnja_ Cq.&~+2~T\ǕUVQkE>yJL. )!E4 Qz牀SC_<IÞÆ-ʶuLoյRճ#"b}?dߍxjVsXM >SlTHZzPhoڇA7+&aFF!5Hjg e(1?q:3Z>ڣŖ:᪛.S^zPF@ՋIXG@S"8㼇n7W&0m-S{rԙs>얇z!r /| S/4Їuotw-T\}&Q+QiPXif)rE7H*cfgӾD(~#{W} 423/|+Z bDd0AߟP2Z}:$l:n,Ţ1'sb1q\"O!T:(4ɰ] ̀#mwSz?~mEň0赐aFj6lekVOꩌ1CYϯ2$@J|貵뗋_~Te]|Yz6O|8nܟ-8_ZV$%%5--55555%|-[zdiulo39'n~h⚵&[#F*!iۖՐfWCL9g9S͟x쥋޺ DRL8CLDRSRS27~UkZdeׯXvU3RRR˷#n W7n7ްbav=3S IJG Id@[켶>U>6d R-@t @ .]qW;N,*g]n1J7%1f{p.OoBtrf| @g 0O+{vE &|<;~աs] C(ǁ!5@ٰ<+׭it6``U˾I'b{2d>Z ۶l)QixϷ#p_|4]N'DNx&: wa~>L`Wn:yfz򻇷w%}(,Kcd|On"ކ#$$шhk7 } _t$Ow̝tdM2-u+ObgX K$tGn"ΉCHJ6\W#Fء?2Po4GbFԮqF*; -NHVY\?=1|J TŃx0 t`aFddVY'=Lte}}O~cJo#)eZq}e(%$^Z; 2w0 \aTpRSy,:d0M?Mu,LL)\ PRH/ZBXifٷo=j(waFyec+chp fR_^%|Cmc,zEjY:P~֢[Xջf>yWn$- 1i> }ɷ_t8Н1Jqj^QO\n7dK{lW)ň T Akw++~}3!b$οw4DlNi[T+k ٭qMG|d0 0=:Dy!rΝ$]1!&(^q( *$U8s"[NirwXo?>nKCwG5_%L.AչljUWLja8Ob7ޙ%OGw|O,ptJgW&?ZKF\~?dfվݷn-H%Ozmm>; 4lIZD қvz1%71x&iM>1$kC c1hZ&7MiH3;J:%2~~d2?Am/&Bkam5tSi]30  ݑ-z͂s{mrΩd<Zߜz2 sMdff^buV/IKsL@~hgC`u~E7Ͳȹ?r};WN0$7ԍUCtի~f20^tyՂL\o >ɯ~uu"dV芪ji]&I~׍W8gkV/Ʉ! UXdnu#/5۷"m.'] SմSwZ3L2S(pS^Q<@srvjۗ}{TA[ol&gfu/rՂo#+c1cLQ,DKI={~k[߱=KNꆎym9e?}U+G.;oܳkJPf|vO}2m˿SV{W_lnm*7Zrɘ^uOl峞mVz?,[4q+忾>Ox/\WU3FӼig}Yvgeb2eeV]=履FQsF\B$δ.moX!gde 4oθa/xV"9m?`=kO~9wO jJVֵO 5a7Dq:N6oO#{GiUG}Ӽisfyvjq3˓+V(SƓb9^ˉZ?ȕ!&R^/>c{$!gb*M/ %q=8&Z+ﱱɫ s~FK)䔼aHsd['}ayfv01NE,;bZv?,u_V{ܷ Sf#r~k[[ߺH5칦ˋkkee]+qg[;{yn#232E\ FFqIE O׍b1~sǺchţ:T?EwA4]0 R 0bƾ=jG8`No?JĶ;yM7oڼm_)'Bi;Y+LzwnY;WLT!óM'U?&Mz׵YsyaFl[3 [{br=u]z81'߷uϿ5]*8zuŢQdNԣh׬Yz5F/{̍Z fhH`2=DCz1oM+g?&#)iiiiiiivJ]K@F~BTH[:?an]4=Wt#Y5: rß?֛{onJ94-˨K^`2+we9Mkg ˨BoI{ `^ԑmW걜 !_7` WfJCq;y2⒵MR" 뜛}Q p/ŕdDdV wc<5+sXXewo)2^_`(+3Hm|980yUJ~YQp Wo.ܴavZ~nmLOv`!„>Һci;k_y ^9172++_zM*]?׵<+|R]LJn~q2,~~lggw`rKZ\7۷<WcE ϣ^y;3xq=uVpvg|˕W;}93w7~|ygSsXŋyJ?z]-k>'3/ַ1~[L/l#]v5лqx?{e+z wV^vRΦ?֭{,;O6Jt/;{to]ƂX^<ݻ j>F Ǐq'*ߑ!(êS!";'ҕcaG񉬁ހ~}[&LG(,ؐo h\}3.HW<_2ij̩~񀜆H;"X](S,H sʢh,))4iV3YB^K.ToN( +eͳ\^.s,#%wk,vx;Oj ̎h O$x:`ZnY^PuJ/p"儆)f9J/+ b@UήPlvW23*u +.cg[R,٭Z̴ \+XN)<Q^+|9-K=sW^U5W1۶3LIMbiB|_*]׉F1'vNMK#-ooE .98,[ږppÍO|:MFP#28D&09&=}RϪU|jm۲m6MD::.nSy{pg?C97_ ]vxk2m U Li RP }>`Q[V8Wo>^i3W#HSIgGdp?siOK<׿NdzkJ>_o1( OKPozyוȬBGo:>K.S_l)#C;9[_'g>UUON^׽5G\{3 Hͷ\^`^"CVxFw"w hm5o 2~y@-Pj/.P2 PO.+|[/&ԡ,)o3fH3XAE%'~GDv;ӿӚl7f[쳪vf߾qަbϋ[X^UЪ|~׻dTJcDѭ~ҟiְ6ײE] twZu,ݝVЪԢsY&"bbYǑ)tOʞ[ʮIʄۼ7uk !3[[3۹t3κJ{qƹ"F|B*:5 i%!Gy,i?hS@1dfgJ9m޽}L9+8)63뮨' 5֢_% Uh١et#fou[wGض'mz%˷xalրa36sk7?[)ٷf"?ؿ9#rn<Ǒb%W ?_?rĖ9-uɹ#yS76 cM]i:Y5K ,9s˾}8 / ~ΰ{N8%]uvؿuۭWyADw~)6(ؿeޘۭW5(Ew/׬($/?|ꍻl7ntٴY5^-krkg C!6i@"s?sl\Sp،ɱ ` D^u!ڶ-qSb]a?#vYk׋2ʝ^- M[&Ԏtfp7tXu0"-l?,دGfq|/@j5d@80¥ P]nuR #;JzǗwqã1qc1ljpWXyؖehtEmb۲p 7|0c72=*ፌ*pPi嶃zMvP1dVf)]=^=w=M5- qѨZ(:]XF;en2*ڝ_Z;\㸮EwOUvUWN'ƹ='~"LKbᜓz"cv$beN#1"2-Ӷ#6X,8[bYum՚ͮ=#"14+֬GvqHUkZ;gCqh4Ţeeei)P]jd3m3%%ImY¼ ӭ,#;N*?1+Z(M,Dzͻ-wϽU$(z.W` x~b t=qcR=+ߒa[V$bDmElKr]׉98XzCM9*COfm߷s=%Y88cȸҥicV7`@wDa)ͺ:+z2 %ţI!o$xNp@AeBzKu{ LЯ{a !3'SZ F~ͻ-{[l?:zԳ;w B@&ű{W\~ȕ xb&n9v.?qSQq /BbJoMٺtʖ~яo5r6YIkaYJaޞ6d-wch %6ie$~Q$iT2/MqD8 B }WaV%cQZz\+zȘZT˨yfG{ |J 逸^O~))Y3QyP0{؏4#̦w<ې!(~D9+E܋(ܿG].Uu6xlء^v#n~//R`)`47ku~vUA$&(kLc;WZV[,( Oy"qc,;My{C e[DuOU2ۺ9Gx2삫GTYv{ڛ< p=TЌ9"a0 &9!ކa 0uJKKѨ~]rOڿ;W-!@g~H 7U~0q2s NnLJOrM݃F <~e bAri8wLOA"= spޓ CWɄ'$*D֔8v -P#D/b'T 6)!ؾ py,NѬ tmُ=r&oش"ޱ=G])q nʅ_Ek9mݮQ/N|k%DD@(Pu'Hz "&`unA,ԑ!0 bƪ1=7w'20I?m_T!rmzʏ!@s1~|' P?y{mGixg=%'Ńуs_֥ Eo:]Y_KY3zXŬ t zk?t**(&^x=Zr9vi)?ι?FI5gD́}`<]YR!=;]Hie &N@$y3_'^n~w:g w\㘛rӟQC7!5Ν}W>ڗ}`?SZp&^̀RGKEHkXΙ}:E.<*,Д;w֋]k_:xJ_h$d)QZqެ~jcj}Pt:IMC(`(Ti_+ Xg9ੀqx\KCQޡVʼnLmx@D@ێpq]?=豨yamvD8K_hr"#ʢ/o`UhpYFӇ25?IKbsr]'lJJJչȈծ^!8g9C󜘣w}ԺC)/nuL4L02q8>U`{xזJ|dDBĘ"`]|w`RAu]=GʎDf < $bHJ;6_i_ 0LJPʠO60|E HB=Yҳӎ/xS̈́“>IfË.H{ne0RkqhbYs"cVN(倣8CQd=ĘM(P%@,"GDKOrm=eوȬXͬƹ@ sknOUJYigo?z;qՕ7*yVƶl?pe諉YIӌm_]#Tjmk.OQ`^@UY@Ӱ aMozc.rl[Lpp$@ҙMӷNbq1]a2QY['[ $_ 9LWZ邙ߩ L`xhYm[L%𣱓F3R7Q 33GfGb z]n#vXr,9L3:[^ `jqb#i)teّHf%p~>vr%ZiVNIM5  ô#0ojbXD [Fd'O*Uɮ "Vsض [䘜87iR7j\2I:LvN.;wRWs J/,eG<<} };uhߩ".ϺShŇ\Feٶ-aYa211}#Y綛4eg'axJV!N nog; i*--ԴTN1oEqUU5Ufps#DfeGH$%%%LN/L{wT]w9܋ϫlF{cF ϩhٵoۭk _/KnթR.]l&/58έdFHJڢL c;wGs/8h׾*!s*YV$S.*׫_koPZ:y2QN 9Fc&|z a)Qٚiٶa2pG{6@^5z,m˱j7VoaI %Gִm]"m?nY|S;Ǖ-ʺ_u9YW:M@´-3%aMz׿PahMT> +G`ٶIWڷu^p3VeY年V[XWݭ7˳=z rEDUӔ0ʗ~[ny޹-ZR;mrJ~LZCf'Oޥ:e}]wxqr?_%o߾}GcE wW,~D !,24E8iYƒZ5mĈDఈvY.M:8N.tygm_cD繱X,kԭӤneS79IZ,+ Y_w_|љU5Chp Y +.a2aj]dW{GaX/v{K׻=9i[T>˞xmüx] Pp4L˴,˲m;bv$ +U/nazbw\u0 ym;{uIztsWΞIo)[»z]Wn7 G]Kuݫ;|P+LЋάNOvv-gכ?uj]ЭVOZxH͹X.QDӓ{IH ߈ު^:?ۣzWWF.{ ׽ާeob/{B/;÷ 'ξzihf_حc-&:>h5n-Ĕݞx]Ƶs5ꆖE[ #ZVO~ [5>0z`/<8xq鴈aÃLᮊ0p -g(Ċ1uy ~+˽GE?ynj!F~ ?s8T_i:'Xb\e@U7 ق&|b53ٯ<=phÄz%1`:qv~[/1O?>3& 6S}OD }$C+ QJ}5f)tgM.^qc;-07+ꌷ7wqѯKǏxAȴ__]|ץ_t 6>c=yl#Ia8wh[/#;;n2E Dx|ѻox=ݻ[ZMOޣ=_4f5-0fߒn4xAg@mKªsדoa?m,2'p[Y*a019*91C)Whz63N|lGw DpѴI8|rً0JvxA;d 1 JҤw-wy1ȂVUw`nɉ3iPɦ+t$FQѿyG0<<\4OgGeEzaZP1מ_s!X4I[k' ~t6|G8Zm;zs Uy. '24M3FD񓷜Rr @Eg|ˮW4p^ BZ<A[t܆38#"rE'S]/֍#ԮخOp{/_f z_.IPg\OH nD2Bmcx麟_{fȸXѺl[L>|Ξg)Ss?)O'k/L ҈ (y$<1#B $b;Fz6뵧0+8^#wGe|;7'Ս\i:UBC($g„ kO&}@_>c~ mғ#vEe<'F֌ |-7K f08e@[ Ȕb2jtv t +ZeLJ[gτ ~Uz4$&6/dk|jb[9.\emqnk)`T eJ=y:%r\w9RեobB?FmMGЏ bfcgq.%\]!/s9?Rd>I݈|Vرc{S#= rh$o3ޘt $&"q"{.y|Q2E1"W53} mP5 M)=*d~o+t]֡7SjYNzncF5 ÎD (\@D,[RyuJM\IAC'ǁ6(}b-lͭYsH=?J3 U$-Y#wP!|})XWBghQb @Hf&1&-<'0ұXu\ET~$t) %Y/ XIIAĒ} B4H$LIj[? tɑ!v. (@2[C h$%U #8qƘa8yrgLӲma6!C,Uؚ_h CvA5œE1e8(٬OPB_c2戏#D'l1v#.1f/8;SQ0ST1_"19?f"1誝}J=+Rcl v! W.~Tv~>,ݧUuGi$uҴСOFm:B%Ӆ <ݍ$:|u5?|_9kBpIvIÈK? @"$Ԍ tMUZe0 f.9Pp3 [0z \9ȉ$CՀLO*mp.WSqűNmF)I$ɐ_iaĉi9Yf6h|s'lCt1Ͽ0(()V0%siNA%IXQ9xF?hJF+3?;Ί">D0%#sDŀ* bZ]Pw9UL" QA2HFdAafQ >yapos702P%*k-4GޓjމXh] Wx 'Z|>~cAŷ9d?IGfX"1{GsH$-XBd2!6d1j1$0B1X7xYϳT*Cy0p.`lVsd 1 Mæl/qš17IrzO&LJƚ3ٵ%xiH !I4SA , #2AN at8-%&w:!#W"N(PՀ-w-Q\Qbc7H*ӀXP%+cn75RL8K"y[@" =Ed21 DgPєZlE ]C{!#%kߒg5"A@ʏסR,5EM\š :mjUy\ulT9#_K 4%k&{Xj] #bJ'X˒ (0*[}UXGI!4DCa&QIR9\0Ε6Mf٥FȻ@+l?K7~+v&pdJJ)!Me =<>:Ogd$lWM 3!Oy;dpɾl8^&4Q"%Wpt t(r0}_u/5OٺDnfOےe2 ==E,Af$S5aڥchޯ 9NE:Sd }dJMʐ3;u b6=Fs/1)C|_j -#ؘ:dMbj> f=2ޓ@9.J*bK>BgAHg-Llfm.*1J{Y>mi&IF1IF*Jm= !Bw`,G pB3:7Hՙ&ut772NZ¦7SґQ+=2@֕R tȈ1)&7 U@zcz :;6hb5#)&c$&h!SiKYLڃTv`RHdƐhQ%Uj:AΐHVGROq#% Z;QTb9Q*S T1-)nrr'ÿK+ AN$ J.^/Zt @{DIBأD^g2֌ԐT%NϪ@j*Β!V|ߏkS lU$hYt=[^,}5M U:I9cdmXZR.lA>0BLmwI$4Ag{Q=_0[x(S9 !y:Rn3f8"w>z? 1W g{ 3g5 H0-k~X8kY?,5ys^;=3꓿(owJ|E""` o-?MX"oܒYXcLzg?fϟ7擿80I@DVpulܼY|z};L{8F4&{%gfN~79 >d5L;?z:9?v̹sFٍ|vx#n?srkuĬS# )E1D\󽜼ܜܼTnNMRANkX<{?,Y?,7Ϭيh;卮b܅K,\2g ^୳cX= ,\ٵMxܜ:߷S.3s\9~;,})\8I^}44=*'b%gzgf"j>qtF5g.߆'|׷t6$^Hb| @Ьu]E'oޫ3^^ţߝ~w3=4`տ֎Hh2lR'qE MW%?w⤻_xm]sFkEƥz^Va3lyޮ I8dp5/>{wo26:W|}+z$YخwV}I5RW %yWUUKc)}:݂">:ASc !?,vjOQT S1#1P$P`oUk4*C۱[$l:q0̎n!y!rs*}17X}p pm-' `U{X tPꮟ}fj/ay]l0~bDIY|J~nQƧ C,s1?KrWq<>eygK E$nXyރ*+-'BB~`61=N3 0캗û'o[}k38ib#ϫ\Շ3ѣ6s(*}VD5DD^rSOv+Cɧ^rȟAV>y3~sP%;kg/WN'^ۺ$ wΙ| ~VHTSAlFR `^WI)rEg@kѦtէw]o\\Yӎzιw~ ƿoM5:(A-@R o29hY@$IRߤe7s޹qI^-+|guHB$ !$8:-ג@jXdPIcUj=ShuPOdW M>8{yˊ. 89 |884<)BM+BFY1yZ}vvF^xelt}>ڦx{{#J"(6VP|!- zU+x/.eJO}>ߏ ܱǥK,[dٲu,g H5䊖g</irwzaRaMvSװaqBLoN(56zߔ+B;oq3gM~31=q\-0kt^I CO4jdHA; }\1m}n~%r3 qO]gssqWdl2XJ 5˸Ě7#Z A>3ko>qF!9Ʒwܟ+_q}73g>%z5xYgN:"wIkkLMKo1eK)F>t̓|1y){]P_Qz6yG]|pA<*N~s'Nfڇg3/{u1ە0s}8~j٤)Ncrz8|VpV_^{@q=ӹ8@K:;SZ'g'm4P yz~8|¤#߾")$wޟsΦS5Lx;';˦ =ސ?mFD]UzI)~))?_7\•HUj3 ԩ}֏N*>f,hȄD$0 Hq#!(ܶ}Ko߹b˯хq0 #hBH)k8-o[xTX{nϮ>w:^c?镭?>='zL:<镇<]gpfe<-=@*6T]rZ^ҹO_7m_迱irR@z7 1Wti20g<R~`ZbF3nbҪ-Nl*jr`IݵHL:7s7b푔7SM^3yhC/>}_l4:g N?K֫@rEt:]V0@CQuҥ˖,[d,0W=z*;leK/]S1"Hn/: '{ qQ޹&/qɬ_~j:+M%J"SMRZD$H) &=s@C a9|Θ.H\GIL[ѴUkg ~ vװß~7g޴}y/ .<ퟏ^p3͞5sS+}rF2պˋ'-'xR~GΝ= z䋪iw0p`%TɼhEe!c30v*lDq˭ c-Bt@T[攝䐯M7TIG> [Y|٬Rs.:ejF]/sgB{p)0Y Y| : V[şƥJ:$l6α aYA#84 2wiYCZP:~gf!xO[&zZ5i!N[w;wKdO)f +l~de36 Ms.>U:eU_vgcAbl.m>ŪEB%&U G/L[;t~`S6xݓ|:>vm}ZqXi7_{FHZѢO_?Ħ]O:k^[xñǜz̮@_+ZCק7^h,(95u9<.d%ֹe^̙~_N.2^ʗ)}ʲC> 'xgۼŹgICZL:=ua$U(ugsu^6@V].y*4~։WS!pܢ&ckl7v]%辋sbL`͞=#L tV8rD`5ZYRt/3?.>m<Ġqs*rѥw:>܅feB$rkS[v"=8"!e$)=(A v\ [QgR9QfӜ%eE*Tl"A}ڡ}CXǧ>!dR D)t.SXpFQfLj́h)8Ǚ"[/]| ]~ve/xg/,A`cRD6XMh- os?ًw֪cw:!/^Ԁ֎~o>jO+cٷ]Ttb^`-tND~ve>xR qjqUT]uW\rn7,&'/`:=w9/D'띲(XcՑl,x(, Dh `vf/#HH!Ml:=gMOG6lBÜDt>d#WerԯZ-$ qclT>Ǿjxc7Hc~mf\vt7LXa>oL ٌ~5|m]|b]`t/6#Pt[Rc&Y&a6꒐}Bz}~3V9\oTNr& ר]l U"nfn͐V|> B:V:ZN}XQ-k)%nC/{z'4m%zx/59-VB="0s$7eS)!mT4_cq$]9$+WT~Rg?)ߺ_ "DCMBl-He( 1qI)Բ_{ ξ_t)ܽt#,{Hxd$G7?\::\c;4\-y{dn(ڳt#OKe/n\R 'p31R%-%vSz!>PNYN:ԬCӆ9\kevo)݀e~ޜDƥpr"JC3beZk?{>x8Od<mYKJ9Z)̆[ty| iq g ءggX;nԶe>m"Vpp6;PfO x{|fZNi]EI`\(,:BQ}r}ql 8j Ͼ_dOܛ&cȊNF^}؎o_^VqVR`W.ΓR,2I#2^LOl\GYɃ$Jg2an^^&Q$tFin@V5ޏY)Nl" qcCw r7=wCT׌ۡYq>R)H)I"{sM{ɑ=B(۴KdUfӠ%Z~GG[ (wǺN sO7*Yg:Xy7>fG)Åה&b}$gWim*:$l{h?cbԏ ~Y I= ,D53NHn*ݙUV/@wld ?1LR3%vf_-7p0JIaā)5 cr zA7~lqZYoǞi TuZL:D̋\{^ݣ/(luJ7n-_ltZwP-|0 qu(\uswNy#~nq*LWm*k%ԑ0$0b, j{bʝ}Y(}vw=A;#ʷ(j[EJ!iӚpz7A~ԶO0|V!ۺG4|W^%'EsXFJ!ȖPPBJq֥]ZINzYM.u?[)rqn[ NnZcE6v_)d&RQH\*d#A  [ Iw9GYe+{\H EBdBHs a3$U,3O/] Vu߯YQBQB޳ʌR4Mz38`Q9IYY@sNQu0#PJ$]?UM@<+ a.ܹ@uwe_s߻L=lUMN@u&^Ӌr̦&R rayHn71L8qAP&&"9ya:>SO8}x㠟#QG?hBxBrw#`ȳ.pºF|)dΞԡQ2~X:\frѸU1"dBT;R<5&4N2%@YW7cBt&hPgd :P?+*dDѨ&ymcѯ;@p5 jx*T@YPqu~ͻv[?\ћaǹ{R<ʚLʟC]EH{Lj#sh n^҉?- 5r;[H䅡#աag_RJeokud=/:mօHRbaq%58,qW#5c{t*ReVVrdA4//H+luSJ"v`W0c- tyyXV[MA*`aH@,HʉWݾ(UIHFڋRАӪc2 CD^z +V;4Q+*47Ih'J(k'.kx=C @9BM" CE)m|*w8ooqx!C .\U/q-_96'jS2KA{[ ?e;h5Gӭ$8P5ۆ'mV:Øǵ"3&"6"z3{=`'R ?JrrT "<d՜*L!Ü1ӿo=I8H)d$R )[l aI!IUiQ6#X1|f -puw`Ԍ_ 0^6mhZ+m-rV_uw㛵8-YiSq^FO |9u |A!ׇ3L6dU]{R^٫{5_QrKZ=m:kum(ڙwOab8ّ6': 5ҫ^{=Ec[OCGHNsZ5nqu_sްi J=V)gSnn3,KlBV֌bMk~rVwyk*Fzۺqs~ClSU821r D!˙29&~K$O[6lzܵw[s)[I3zv?yq8)D)5$Ŏ5?px1Ew\Q\nLbu'QZ8߿իعv]fީnRyNbVgrNuОuv9{%F0ӬC7OnOtoH;f>]kH%of {mgaml/)kںe&5̭۬UVj@Sz?Gږ1}qH 97#ԜՇ.w9<=fH۰k"1cJ2NlK{>{&7=䱹OiHe\k}1-ڵP^6o)>r֠SW@y7it;jvǵΌT HH)TX%{\K 5G:D&yX)!q13@@zZ{,O׼we8: nHJuDRǕt΂G+TC:H~* // /3҇-*\79V"X wūk;=e;~1%]Ohq\A)>ZzU+3ww>^v!PZ.{z/u-NelT(\=G>LK$Kfikο5ݞƿ㹻haƜo㵅[&=d*,8ר}QSk߹pcOOL/Lͯ~z?F{X~F.{q|nFrIz^=yog uarFZ ItB9]E"RN˪/UATY>-9>P^s6d|^>fhI7g#W8kC]Wa$WUii|b~AWldnT;ozDHFɨt=jy4c@{lo۷DHrL5̍S-izs#0`·(=zϫm_:{>RJ)*&"wZ^z}S>$ RbM=3+۞_-G<{ʘȨ" Yo g6x#Yӯu֠[_m?}VJ9"FRp!RA}9$㈺l*Q֐˚ѹ2cyIΘ(X>s[ncۗ}ׅZs_4v0' DZy)Y*bisJZorG o( YdIS XH(AH" $CB v{ok̚9rs{Z-P|Ԙ8f:ދ誺ّk8`c)Yx28(ד'zMM;D(H /N^:c> n[kW&xf $;׭,(ik(/N%i )2WtЮ Oww=!Q)TՌbC߃G#ۓ@64$6qFb 9!v5r<Ήǵ|+!:dr!qt3r_uŪYw6q5f9*1h(@Oy;R"Dq"e:1-W.b!ݻw˞rAH2[ofNTpf^.#@bBn®y\>Q6<Ը8/B脼gzP5cC4S:5^M{*̸ .DDryh@ZOR2wJ1!&j#-o̚;5;Ul0aofd'SIw4;,4*`p֯On[#kI.>kB2'xS"".d6a"À]Řv[] p26#ob'ITsofu f]Xkv%Cn8.)dzeIMpRW!sX3ѹܮUa,{rJ 'π >KUb#Oe~shf272$\!I5RRN)"ӊYv*7Dɇ#"`ۡv6\ߌr+Q0-9;RMr¬NgĖPm=z0^TGypok'Q0)l>j tmk=I #l"7}>Ks~=qyٗV߾:$+"+VŒvv-G9YӌX*l)B];8d?\gר[̱ϺGӚxL8wZx͍ gImsqXEmH:I]*&jX@}OD+ŨX]]YYYAH4,b@M]PJyuNd0D">?D%Tq}S<,_ЌPJX&Eztd>$vf |XfEnC$@mAvkh"'RPNPܔS5D>̎g've}@Te(9n%~Z O 9m -뻕ϕ~Y=:&N)V˨=,[d#/s`s1angZee.P!A pmg$y cvwbtXZeC 18H՗GSO%ֳa:WUI:idN`2Xo&'y*S~fHޯ,VrQ84&Giע_]pU7dvlhZ/ ׳"\J'bfVa@;%Bx/Z ȂL^-DP(6ޕ!GmGTcZqOS{ 6k: k-|jW9͒-,T~upuht^Pe-\_S'U t`;51mClhW5 9w/ǵC{zЂm:"bݏo^/.{B@Mhb{$a!MK[p(߂U9LM 3ypJ8gl9wy]76 (<+ɶؠ5:\B;˴`F e'pX&1C#3hthZfkAT 2Ѷ yjbQ"Ml%car|MɎrW.I0,!;jX0NԮ f֦O%T?c㹰 LwsJ#b}TG=W0zI_9'y{ 9//{f* РΖU#s(ҽ٩ .%|nALZг",io$֦P!|Bb? 7 ݬ񄘎F[bHh4ZAN\%8Hu[T~0=+AF+1%!Lڇs ku^hz!xu$pj4R!1:{LsEƙ{9GT;e:Rqp< AE;V=<)Auv-Pa?i#Aܺ ?/98u4q綊6zCɔP|KLz9qL zSmPRԜÌ `˭r,Y4Fϊ감DU_;~fd6iD3 lݶmXq0 L@DT*,e= 3?8=e8 F!8/A4nneyctbV 9K0b dVɍ|O[O3T1#V4Du.'!.3{-lH4u(-e`jM \7c~?s)CЀ$U \{?22'Xr^xCbLEh 1qJ4/zvl~F_mK]5-M1[zu:]o~kC7 }LId\#75yMlaYCbي[ٵWָ 4?nmv4uq+հI7s~0lL y&&JSse)ǗT?@5~ִ&tP*âFtbf8[\9e$[Ek]fÛLmS ]nш5- g6kcQ G0z`TŅG6"NrU8k rߘbjQ-+Y7rq:O=tR"Vڞ$ckcGjd*#?uU=Őh#< jb:!,u@2/8Cqhd4n7I)5̏,5.X3˱%"{l|=rUͽ7e /IѹѬ Ϊ0Z[.64·nV=ÃBk˭܁0taeuO0OA"r/ Bqmcv v#:BVs@hg-:BvYRQ:|\wrk 7K0el>1ː>pYI EʐR}J)x}jOZnmeSec1(ox/])&@v]X,to3Kzú↚&h\#܄彗J5ralp9aGb_`kQ,Rdnh/hb\Q]%*•%1*>7x w1UX\*uI!"Ce IDATNDaL< a-nۖ-߱c![Zނ~|LZƷlb'SRq^&*T:CEDL֖1[I7o: Ξ9e02FW*GC0BBZT3dfe&O2=c;TL'q9=~9e`:9fgZ^F!3 N6[KP}*Lyt2R94+cO55 lK [~dfsXXF4'4̄?J"Ecu32])@*\A-5Ќ F;p.Ŷ= K2u1KnNbs&܉91IFm)uBg jO$_G"7{\ @܈N{ƒ_s΀ծwZ# 4*f|;3qΧ#Xda|-6Sw95Ohk^O=aqv4kI}?wigsЌ·Sv'#_@f ö_ۓvgs>3?.3:O?p3'P]|Mm4IZvJ{O3ǁ S'qɧ|/ۇc?>}Cv+nUVж{=?cU$2:.D\6- ::pjeĒW+ΤmAc8U 8TbސR4Y -w'`hwl w#Ƽ 6>ZZ'sF詧+(#Ǧzn{ G)`J#h3 ӯo6&7By:Rʢ)9bXY]u!Zˁ^? 2n~\.U@*w.onbX8.2ιBln.UV7:I|y1nFha9_.yeA%Cкڭ:ytK5Jg[tӬuf טmFA+[Vt3N/TʳPAr?&)"\9?PyAmS Z9+IaBsgL.(f;זKVWWΒ9)Ĥs[[.bӏ<c//^W?~]9qonܷ"Dj*b)_ƈ-8qqCaEhe0R _xD.c<:$I+03,n)U`6"T.Gpĩxx1!7yK;YaI ff(v٘?N ȒBMSMFiٴ+_ SaA23--6[Sx+#CK셚0dٌtfLpҵL`=ù(8t<^˿ 8՟Kﻅ] 9{}O﵏sݾzI|S^OO<鸓?xGqB,ATG̨p14'=oȶV-]{߽/ۂ+:rW/8=_U;Ly2W_ss}_dKy#]‰}3N;+x,(x%sf:G]q|z;}{֙_'~=#꡿C.{ߛuyzWsȍc__x#s~̔ѠUj`Es|Sd#u{'ǃ0Hu6|ɘGG7z`VĚ̆ieKǑ#0M]G=t7+gUL̵^නw<Ғ @oSE_,)3uk%6rre<Щ!'[9(йRr)2 qJib~2!1>C8 RkQcbVO͉V{ׅ˻MMmW]vJ0?VZ%tՇu TcيȶS5Ӵ8ی v`4x-.: gw ݢ ]|˲BM*O[i\KnU\3lkLt!喻4 "a׮]v1V4Oñ$; N1~ݘ`p}Rirk6TGQ#T0bj 'oBgpI{NPpB$Rd,OtÒLĽL…OG8N?xq,` #N>eݗ [ia(ɼbnf%K4tN]3EIĦ0gwsz?5tʋU9\?y5ZU:~:~~oǃ򭣉3LZ# 8lsBU-A ي@FF( 'G+N=8 q4jv~Je;vn6!;Oxo?/,}.xo>OxGƀ:l]> ^~ֹ;CϻؤLvOn.7"49nv>o?+:w;w2p)v?etC_%C}bG>3={% V+u/zG~V'^Ƽ'?ળoxث?Oqap}[Tq>_ri7>哯;1^{{p~|NݡLeFC`쩳BݔAuPd+hDefvbGު|7p;S='.[컲R Zt}L÷mCwa TF-'flfD6;Z2 &]i{1t]!sL}W)i8DfFT_neeeX ](p>%̝3kTBRL*ÓzSl5Uc/!ơ)ERJc\.c?  se?,A^QO㦰R֪p'0C|’b"`s 2[ xu8z{&o QTֆ?7*(QQ8O&_:~*1GtH.i"C~2MZD1GhQmmIV+kk˥ZQSbb>a,Ī[Xrf6R!Q&;$I܋C(DqTfbA!s@NJo@(o,7#R7Ȯ= HVsڱr4< ^]KZM|d&a <;c2.c. /_:ϖ7!-9' *ϻ/\SNmy͌h\ykt<8TA^&}\!%+ Hq?o*sF [˖62M; ܜIFJU yZ5]~p[}yKʽYrn8+:A{x؝:;Qշ1;^p%~{N=v~`ӥ'}ON>;ؽ#'s˫vŽ;oCXhZ ᧔孠y+ayx^ϝyyNر~@s_|_}_|zKxb:OzX:u_}ϟڟ}0zx!Kye| tiwg8?|)0w{\>{O7<|_n>;+w9kW{ow xLJOp׾uU4Wo>K.8]ou~B&VAk/k UUo,lڃa'Ȕd.JYمg57CŎG }IKd3<‚ ;|hd[zNى寥{rN|EqVFs!"7۸n>j*r`79/esLwqN-".Kҕ˶B^",""%0 {kdAt^G^Ioщ!Oz]%ficbaQ8ĥqȿb!40k)7/absqy(o"Ř3C{a`m2Qc(!t[ްAcr!%*K) Ð(Kx6󾐉S1E(lI B_CXF1рaYt.ՃuoKC=#me7yB)>$.XЉhaHYBU|$]"((&S?B!62d n CL1jRѡp!kt!,:}.NtG/YA%&(+*%ʑ J]6ZCSUSfG7YL *[`:a8XDJ7xͣkA RF{>>/^y/?ί\s/z_>I~x)ZCw1/=ay:!k/bo]WHVuʯ<*}-aXEU4M,_i1k@kjg.]uߊ] )n&#gة:1wU{=LavUR M-MUb;q;Mg֐[@Z5<1p@]K1 CW;/G&d s~DbL}3sЩs@KL}k4 Dq}@W"HI(Z\Vs&' >$:8 `5k*O5>s&#&B̆P^jnOQ]y)%6s68 -:D\.qW6f~;lGҴMbrS` GjcaV#eƦ'ϜuM8"H8ZxV`(ET-f.k )"GW +<V3R6 ( D)kVˉ_%Gi83AR 1YS[/t޻aR~-K_;N}g,t)0TtKZ5;B;lvQT0[_&/Z@dxll!`D<} !V!g. Zk&oyY|˶so!3e4Et-|JrF-({I~NʞS7l&20tE6*G熇ܐj&V]#̸2Ggԍ眩,0bWo /?}sww-U29`_=^yo?^n}ߝJu ,BH;/ __AqWY4Rsqsxr)u7SF  y'I'vy 4K*Ws.et~|܂ӛ\ܯwvV6lM;)uRzSc?po=|7^}«{"|8xv^/3m쀝L __=:E/=?呝t`6q5wGIGʴUfYn|1CF$tLKݗhgOH4,l>LSW *Gms߻ se2橦C*#".oƸ:%ƕ+[Wvx `q D;/8]\n~z'aKw^{ˎsyN?vMȤ ey_v8MPC[P0VF+o"U:\AMm2mSqZ./+{l:B*..ƾ~. 1A=.Q F%G%*Uw$F,Vk]%"W0 "Ry|}9 YNsY[mx ekk%hGq8[b uJN4w ysǿ}>~2G>x˞zn?u VeF`g<pÇ=Gvޤ" lucUw/G;X?8'8Oyow?#%:!ExD?\q|mK-ȱ!~q'm.iލL=5O<'C~p;FƩxaҩ!*+Bgkdmk N;b5ɫ(Ĥ_7_M32l9g%J^3>b"왱ݴShu+S*{ZՋ P.NЅe#Z5Xx)~ٯ-R"WLbb*3fr)h)$ʮQj4ɮʰR1 Qj\$^T ʼn(&Qr<0?M6N`*!^J{syBB..]NVf2>xT&:dr1WőxA{By$3[ޅEN0b5 C\puueu*8];ZBj\ 29(i\UDdj5" Er+Psy0 XxKJYo(4#x59Yf2Y9\r/rKPY[[ڵkm6F31M~ϔ՜(eKujuNz)OFLE%Qܯ4 4Ŵ[t{@œ, O! M9{5}<(auBmI·RJi(%mcJgˣBmƱCg7k,:|dh첌271֙YJVјC,hl`JD M(h܆:i@4 =بhQ}#F[X8C?8DI  BhSHo㖜!`ֆL)҃WEWfqw(,yIG[%l 75w:Db0dƏMNȾnts Dn~-W~㮧]%֞p^{ϿO?hs_w˕}ͯ_>/9D06pah׾oLw7??|w{e|;Mb@ٹ }Dv;1EC@deB rYVj?gV5iMah8D^.b7)NQָ.hSJǪ ѩS@)c >8ib̄joU,r '6nX^chhIT`Q'хDLҁ CYK15y]$;378čڕ OM`R"kBێ{!fWiШp T^ؚѵʺ gI qH$Sfv-[ /1F n$cH Oʛ '+du+&B1Oٟ/Z<ƗN3DK0UΈ̆,@A`<)|:'k6&a}0 By$Ad<*Gm۶˾zD)(H!.:g;] K! ՟]|"DιlgBQ'bAHx@*!1a;g MZe"q҇ЅXc wq!.& J Φ1r1 |DI|Ȝ]9DE ĭ^b1{ ` Ջ tպi51&{SmyMB=&9-{#–T[`༫c6Ϣօ=?4:u%eFbFXdr>nXېKZY3z`;HchjG1@ `#/6k2!ac*%\3ֽ{xR|#mݶRo5=!xHHP?l[Bs!q PRՇRsD}RK.n#jOW& Ӧ+ e+,&GqZ¶PAGPPZ,.믾1%ox6NNZ,ib叵b)eC_]YB@% x|L̓2diʊ;z-p#sbI2J)80f 쎭EBQ)]hQDiF WƬ " Z^pu3gΦ[^ X-Uv葏w}?+0PfK $f֬M}Ƃ>wDld.7{)I-[z箻iFN#ӟFV!ip8DC cy s H;A}RJ̘ ,S7 vN+yu g ml%Xl 5yQ%y OQ Yj2u[1mx&*F,lg &b3H/RI]bIG>P:BGY# N(e:4P㉆~4@#7MԤ!z @d =hzd.Jk=zO-Zw!0aː=|xH4#{$hFQ:.lq{A b^ Wkf:_z0nb3HUh=J+nOt''x"T̊%Gy#uNؒ$e1eɭ)QƵ++snݺu]va` !taM"DPqoy CJe.Ix8a`\%-tGHI][C9fԡh'nhO$+nS?30f3\pX #gB3LԌ`61lB[? a#v9[kܗ94\%ŵ_oXz6MMhZtHpI)Z0*K@Ȕzh:/,tq yV:xHO9J46Y!.bee<7 eIaa͕O[b`q@&n}]yL/$[[/KL}A:$|9S˱(oś37#0tGtqm<ƛ 1t++g2)Ka}Ma>mV5p«R +!\O)CDeG&ZF`VJ9J@))\5榓QM2 6堬r<*FPITuOXٟXstBK%Ёeg8&VSZk:MPCךRj3mͭ456=hJS=uC/^X LQ *lv՜( eVOuBy֨@֍P:gkˠ>1#VDVYU6n1`bRx^3ۡĝ+N`1Ęs~aVP՘D3(5\tn' ̖3&;űL4 q6ZQ_{KUj+KBi9JiCeW~W@R+NC -ռ +XsfHZ5s {>h>\һNT(HΡeKS+0cͧa  ql2H[As 9Z˒)sZ\VN4hSedIwr~y*bf~ 5s~Pʠ 9"cIU[ffZ[_YY'_CI85͒wJ$G$XAĜw]yY~s.t 'MlQ|u%#bYk8+{NLb4 Id$"Y#BlF7{&3-qblzRb.[tλ@hC ]p'=Ŝ s:Ab,b(Dfbʝ,gKXСsb^ʯ IDAT6$y~Z(ȍ Gu_y.p!$MPVdæzr" :q)iD˶/̥&L*Or X 8=%`ne, ֌N4@Hj}I~w\ʴF-5Y3F-)Z{e e`jm'WԽa-J!vU罺8BHɑapL1(o"6(18"zC]^te(̄΅.h#EC9‹w 3ӾلrދУAo)ƁyE'LEbB'7?Z1457% q-/M5|8KXg^(Ү袽CI|q47ZeTr$G2Q" z#rQi0DR"fq/DzDw+ diͭ'MzJAkL f\}$8킛Na$n~6$D)yW-};R "V=E]m &LvjvBbOIJPw04+&ZyXCHŖOw)SLz:CmwU'P# 58q&REA-jXdS1( 4IhTKk7pu5hF,]u;nĝ OkVDwP!G$4EH:µ9tОu KEz6|.&ߌƅy ) [ zC}wyn _0\D_^m):sC3<&U+9CD J-c㸞+]#xL:TY4"c,_0 44ds*a\< 0 ҃}',LN>繎miayL8g&ly(S"Gī~k_><^b A"9Y0 MVC8a +uhlcވ zABLC15?g'% $p ' D A‰"g5%i:P/P 9u:(*[)O5|McAe U Sp(rs<}wB^P$hTL,rQB,ˌbHD E2+}P*BiZ]%@ l'hI5>p3O1t`'-h"FsWCR3% 9c sGcofGZt3j^AN!/l lPLˬLc:Gwh8DnZѤ]~E;*$D !iIҘ=q(u} >3-Н/u$i"ze*F. 18czP~-]+,2CCqP\%q_q&Tr>#JOjB|,r-`mUEڬ;Z!(*Nߌow ow>҈Be;8 ї9u rQF0뺢O!gzw-EPe1?O%|jp#UY(ef?y4aFH 4n=f6= w1Ÿ[wݺs-W0Lv+.^‘˚Y3K* x]\We2cY& 1`Bbt6q&‘tFB~jM8'CX%$vvNNNnNTqq&NAaPjDzv4&"\hS?rױ윜hq$0 s=A\O'M4Ms׎ٶxBkl8w̥6ܰF6al>Fc^(V\3x]De+Ii.+-3>O"Y`_21&,ɵ)BA,Rꓨ u]G2q8]! Ô.C0/'7qͥqG,m:*>8"Ƀ6-QcD|S(cHNf?j+wasQX5dC p ȁ /,aO0C7+uc T>R@H ZK{ɷoi𖁨8GN`YB=QJ #pzɹv ]|syۧ_Ύfka@!5`߅W/?T &<+y G33s^zdĄ>}wK.X#!T-c}ԺlDtMSZ~2=}yzWl8dS I~\l/۰aن 7.%"$`ڝ2DLit$>VUbyc;q1"@.lyeѦ/ڥִO,+OF(j*OtPEy^n٢qw`eYeR@Aov[}ST3U  ,'cv]?ڒIn[8|R0A:& %:1ޫ˶s[9|+@}wI G)I59~[q"' <($x;՛ Fc\(O)t8K3s0HO ?SR8safBB͂iA0G}SlˊX%kײL2LS9Du]vh̎Ŝ-uCbL43^"%4XNy|gq9#7] B<U )qj"_R" I @JbL=xhZ䁁_f G>oA#R,+^s6Hѵy2@Iך) IޙSe>s˕btO .}GX]='c%|V[Z~SFS|{ώxs,snK*MQ/w#ռOիzƸ/(SIւoK$q<ƧFl,ؙhJ4{{SUt'y{{G+UtW 4T2 Bng^ZfW:q{pUp7G0 ^y#"TEΟGLWo~x٥c,\}3]A__Ϗ@qBP1)I B#2MQ2 %@וbP&[p/`"Z1hVz`n& ~p;ޯ .\|)VpsU Fy._·a r+w\ gODɦ9Pp=3Ncql8Rb'_GAMDߋF\Oe5šH ံm〔"ǻ8%\Ok`k1 eHvӬXOYS#"`sU ˚_pdSqVj=#ƨBt/`[$^  +H8>9sqoZm7&y,^_enHG; }_V^F5!QJ,.0QaP}GXt|_kj TzՋ}g?^p׷ J+聏,[p/t*oG1ַ|+VNw W-=]]/hs.;qC3‡$t6aM;w-`=coT2X,{f-{F䅛m8サHBB2!ǪM2foWʵ)؅#۳{ߞ=q$lkNJ[WM3lղm[ȲJQԤNx1i;w_9glL!1FXe&v^v?ye1'nPjZX"O ph.+4z⪌k~ʽ0 !M4ԹXry?YR+VMj6hŦ-OR6qDX#cgZbLs*[,2MZv~}-: y\J?_|ݺY#Q k{{mÚ[@OOM_jbfZ~EnRj$Uh;+VmH_Q֔ -jڍVN{gO̿K"d!]au~zWBsF./XcšyOdrV_4O uڴcJXt#޽uGS;=ϋ4j7lع}gSVٮ~=o[vZ|i뷬Y݀֩9m*9"'n\ QͪEN|_rPB'sJB%;rnigsOi?qLts\)k;B-eb!tǔ]|ƅA̐ñP~yJ _SF Pg6 D])âjg#FD)PUq )] H6V~0_>rP8_1u"=ɴ!BU0ZeT n8Xx~o0wB׽R7Q\8٭/ D1(+B5ocM`U285b|tW"VЃj\|^D9/cc"R4CBJ2,]i!cH߫Gɍa24\]3Xa.V 2뜄 YȫtY?RQ)|MG}٪L(KRƧPζe(r.@nw0޵}KP?e9 /xTvmǣ !l2t IDATIƳQח+W/aܓhE 7Mߚ/R+`hfif&)Mz31b#I -;ck9}~T+ȱqdS ;[t{6w,Y[%;U|ۏ=1Wgj]$Noy뵉Cux9++IXXE^jH zģJP>VR3ݮM|7ʔ,^]?USÌwz6okۇ$_:V41t/͖Hw¦}[wmLBz=z?5=@E χ>[/^k2m@lwKo8zǿe[v5l/S0}a⃽ LFjpi" {.ctj+9I.OU8楺)C#Gڶwnu47#y{Y+YD\[٭U}FdU$,Ab}ֱ](g!RJ 5 ӧnx." H Kzr}[!I#*C>` ]('ގz=ZaWx8NÄZ|‛vD]2V0Pt*/vi1{Cm!PquR-soK1>lwA}{9r,f6A$(9 >æq8"-igOyccVJ!,#ڟnwu}_C|cL߻e{^} SCtӤdٛ_hլiVM]ɉF 3KUi[=1ȨZmy̎DJ3y4%)?T^Wyo4)Lwy5սoy!/Sjtov@ Śv}m(d/{~?=aޚF/y[wө_j;DD ê(;-'4x B TZc&! &$$tta@7OsNŇWw\q\u=ߦ$%J2l_9+<@©0)=uEbZ r;-dkecD :R+/U]fPP 1B|\ˆ⼟- !XQ BJ(%(;2UJ( \z7<[@ nuKLU+` PB}h~H@{8an4~P5jAELHj뗷恮r(@7~kubp8bDG1E:eZIߚ+،-8h! Ǣ;HѕEFpffkC<8IE'5+)֤G]K6o^rvfŀ1̌Fl5 ?|G%aܳ]QpdW?ܒk4zӇZ*!\gq`VlEm\>~=KoN=WqJzԛVڞ]0@7*ᥓPW -:|mWʖѯO4~d%߼#\b@R A[4mZ5(驰4d9hoE_9eIi 5k[Ofѳ;Vmʻ|JzCsaշCߙq#Fݫ! \ `_;~5sf۲Mʒ 3rY9j `"$Tg-y"CD̢/?#>3G*XiR$Xsmr"C`DR19.c䆊-l3']7-wX3c熳JDG3~w>sj߲Nhج),O%Q{Bw5M0}o^#gNYة>_Z੓~?~OBfMO 5*ty>pѲ靖@׫)_Ƌ."dQr b싅N^7q+{*Znhrw7nOuyq['~mGΜسDZSGr\. ͊b< VCvhZcΙ.nҫi1=l?u}|RjZ"̙|:svya{?^TֹC=MN,^|Ɂ_,:լ8QDc~FzA~_mcy'_15֪yP# 5cH4WDĪ,*%DEwBv/&2>~{OX!ԿAUέ8 %NW/ l`2.q@"L4LjQtQI^9"Tzq *.JA8aqh^61ZK@` é~J2yp39--`+$8pR8 vrN\\7 s Wcg瞏$U% ” 1n&do>sYs j5YȴTùt| 8]Hr衽\ @sL4zBN̚|RN)n*O_u^΁]g0哗=DαA^2G? 9`,c yS'ݹ#)X,Z6k⸇͟ڐTv|,bf?3fέ~mݩk3(`Ym:ecsiY-E.$ (n`OgO󫹎 ><N(5MSrRʖO8xȊ;?lP0.he@q;(c$' FJWoNi=sQ^Rr 71Ns=oZɼ.Yd1.eԠUves_:9V(gu]] 49K%֓#Д: r_Z7^gi2 \u\ιL+UY8nBqCv[vQc1DkCP$]8jAZl1&`8$pů~#{zT^׆>|{MBMt\UO]=x{A-X/sea=r9p{BS >T߫fȮkBs+bWm9;Y6"5{Hisc _!-r1̌"ppeV7R VIJmuu+rbx9wsmʅjДJuSl YoX%xBs018Xǒ"bT)Ax25 !6VJS$iS+ԩHy>aӠf4v_ۡNjplz?E06 ]ث߽Atͳy_Ru$ymo)nqCM֝yF?izA^IA8yHɸiݓoBuu 2P/Iu\k1i\r]-Bƌ Kxp&T*EU$eAj0^R7ϭ@.Ow«iz}u|W pq @n*({#(9aYI1 <W:RMU5kq*U1?˿e7ׁ' ;a\ʺA׿HGB9TA8v Hԯ`ɁY^ٲGD{ħ -T&>鉘\ r%/N`#]WU Y!mӣxw,MˡS# ܟ@8/N kRD*& ZXxC:%N|5MUBn32d]jZ9xWOѥu@#K.|@B5pp3nj>8"$j$wtx;~ lMSBޕݳ>ߵA^HA}PGCRqoݺA0ޕɊ)j/U52}mzph:w9 Gt_xYcY vl'/qߌ[4`Y 95hK ׏k<Wr` cgp󜂡w  rdzeg .j ;y:~'+ hm_e/MOi07;z' !D"yvE˦繞epg;淞j_0 5<;f;+p[i7/vS>U0fiYR"@ U DZ&Ԉ /3];w G.xoV\N(^]c^,P=ԓ+q.N ~~xͱ2FBP"3aRB'R|Xt(8Ȑ<<˕:!0?q(!;[LEj&rG-3ӶU8A.QUg nCT@}+ ԍ| L Dy(SAKAwO )<e!%RJk?"BH|M!gq"B9Qs-}pƹyy@ à!{ 8 r؎y"T//N"L 30x8%=9ʏ %Z:wC)LLfEn)g"=4N^䵫sjR wǃD.Ց ʜ-4D]A武򐰻uheG5ؾ3oUa[:^ o˖ٓڮcՈY'kfk'^bIj >E}Ps,M(}7N31^9v*$I{j;יQOX^~DJN#O_v;pc.%N[tcw!?Sl^ցS^Dԯޭs*JIAR6< y)76JW/taw5*[JH P ?,qc),/ibKKK-dTA^Dj+g.)fvn 0-Bjc:ф%K6/MݘT~GYGPӰ"iҒ5Sҩ8MW:=ak. ~0sc6bڹ?3suiEar3єvymsNK-9,|RhB%K2Qh՘8+3]=\R%)8M9Ug->q*ZR2 &Tj>x6 # pĤ0iRi*w Gt/f778ϩѾi'kW-lPDBRIO !i~9k1Θ ι=G -k1qDqKjDJR78'V$B^@:uS͘efJZNN 0B w4i`&T>~U}XluݲClVZ2j y_+oxajb"ɜq/ 7d&&F IU7Д2n*mBTq` '[>k[6g_Nb@xPHU6Ik3/k]E;ۻo{sxXty>BᆍXG凑V\8ruJG/qn^ dpN)Le %5(Y|"y_蟻8VKpmc\$ ȹ[3뺞wE6*Iv,l;#NfՓbBRRrraxAt>AS u=4!!XJ'v̓Ixq<&m۶cBRtb.3,PQ7IHY€vLR?}*ڰGkۛ~LGj!r`Ӆm;ݖE:tnW=_:<^W3[rEe%DưZ%E8-)纎$`F%X>{ #fHb+ IDAT&hY&o"RٓPUɥ#2I`}ˮRrp)ձa ]pr.+a1P(?VQOSjh.VQuRLșthlQPC,ߗ'LJ }oc x1:\=$!'Fkڈ{W+3yNxX};~ W8+zy&'i^bʰ(=D2MPa낊HB! ~8psj4-*So!'NPbJmͱK:rDEc  5AD)JF3]x3m&Ptd\ 9wlqEx=w/|cjESoZݺuԥC_ҩuUW?w%v,U wC w?E 5zGOٴlɆˇVr')f#?X|)'SxM7VR"")zlۤAFysd.:b?nNg- fCh!gj6(n-::Ϙ$ӯY֖5gnm`7)[̓ۥfnp}9'Jy*7gHq(A!aw9r[2"e`>.u"yaPV+^ b-NѺኵziXNA#sqB._ΑmKk_- -Swkhj,R,}Yϧ<^V5o*lzෞ~k:}#6X?) WQM5L"sqAbԺVG^xkjeԺK—3y);5d-Mm i:׬TtL:{U5̜3:s\1cgO;XWm]hc9CjeJCXH;sEހg)Wf瞫]~۲,t/;U5+!iRY\9|[ޘfzWO΅j6JNJr\܀uʖA vfABbOq/=+ӪI)0LRV ELT6<.t5U!!>2}rOzs5h5!>+ӪQICb/+y'+q[VJw-JtݪZZjbR0(K3T˜s渞'< r(cW*equaź=}sҹ~YS~Uѯհrr7o7Ee;n,[գ/O:{$ztŴ&Mm=I(BWY`͠^馶OrgλufezTMoO5H a2 ь)v}r˝T,YjJYm}+T3yaD" 씽'2L_=Ivl]hRBB :w3 {sE\T"9bvމizZ,ru:+sK2!]-츼lUpHj / sd1_I?ڭ {*TkءЏo`tjկڑ()6##%ZN(%ˉSĨyLФm #Tx Obv4ߩ{p^4d XT)e"SDfiBG4jWx;iܣ%G\xZ1uM}*}' 7~F73c?׻M& >1 ]~õ%V"o4nwnNu{8_9FL9(E{Z7f,֏)h@syI󎹾H[ްg,h;ǗF%}~/; SKgglD \]Z;cϬʌI iR-:9>oӟ.E&bbKQ|;?W??nfæly`/s;=wu^$\8yp=CHsd=?řX[sMA`.lI=~+}d!BOo[S 4ìPjKm6{|#|`C8b1/~csM+ Ǘ}2لÜӶ=HHǬc'1 {޿Y^&N) ǖÈg 2k }#ſp?'=1^ziEM;s/6YIyFp3׽~ S&hd9o==ts Ďw|4aw=[G΁]4}ݺ9@Ĕk0Wcljp{[x(pbpL)B!O ><9:kյ#`ԛ3ּzIy ?Z;`;|;nΞycwusv'rӋOVKv p"gI@ޑ'ᖬQrwwGrqyG B0䷑*~jp~-gyuR c̷ rBBB̶cv 8W" ~8=1%($j`2[s`ǃ3O:  \fu/=#QdA 8 Fbe!z !LQRG@Sd ڬ8_pT@R }=E/ P˜C9?=CjCW e>yois98y~S= DG(%a x*"sPP/Bv̶]ܲ,4=O. ?xI7sz0 CJnQݺT% I6=+g@XE}Н $46S\{ZS@ٸ""COEF$n*T!"G 8isB=U+︟$Ԡ´&ae ҐRIG@6H'P6JPMId* \\l&Tx#Tha 0εU\]rg2BBIVT?`q4AV׺(q/TjADJ7gAJ_HґChGg L,A#1xcF(@}xW ̼ ?3ɥa D:Tf!0#eY99wg \'}u]D4 RNnTY1A *7u=;9_{slU(@_ rj\|+ J*CxJ?Vs:8r%'R$GJJ<;=TTPD&TED  $! !S={UQêϹ&_cvn{>kUl'5%HJt0(twsJ7䅓@&y0]Hxmb2nRrE8}=Q)atA\UxZAbܔm.q?ZÇ4-Pb{!K#TUmОڐHZD &%Sr@ K%7sWO\ۂcR^ݰ8wpyD+I eze'dL ])% & Öe$p3%(A-#gxL)M6lٳjBsAݭ3GfKb J9oQdB݂DHI*l"9}ATVU*=zU]RLf¨\\$6s%Dtb\%W#&fOrĨ27I &"ۦJČL%;WZ$fLn0M:xtS>'?u9 O7ƀgϦLܰ3,ŀpksw?|?_ᣨgw%?]IG!-{$o,Zޢ-gz9o_}oدv|Lc2՚sW _y^V0s C 2xEQKՙ5%LI w (KBdo{RNN8m;W]otŊBID&hw/F%":/+"ݤʤz%@= c&u`{󘶅]. Cp[y 䐀j(]JVP,uPJBHQJ"W!yJ fnq5-1('O~\6>4;.SKO<}ޣ[b#f Tm+Q@Di+]H@K:r^89t"VWNjGεk7@-F* K}vʇuO/{G֖-vы qpp?p%APhbZ 1Z)VCD!ƄjD4 31/:r ]ߎ}I vAtE'3Jpkp/508QQy.Dד!M!/*X$Usuگ8[>LUT=ᐲ4"Wӳ57xPKb[5 ) gnay=Jҏ;CDT*%[jZ&m*,ryȘ@0axzoaO!SS/~ϋs'b)rzn=odxOꟹw~s#M7WO`== E`n;;;4O*9q0\2bNY]N%81.Mv> U}$ŞSrտ<^ &X7qk%+H "|j@S!iQrK~| s,]!PwR:C@b8.qΔq"RfkȎ+73cZ%F5G Wl !R.UbFo^\Ruڌ~ ?ZyVΐT55M 5l *A| &M-TwVK"YQ݅nd)a7 CR$RRΫ yjٗa i 懜 8a(Eh/> 2Y M}REEk^} EpCJe.DկCy[e W(cۭ 6,d'j6! IDATprcP,)r0'y6+1k)̅RJdz3O$ |ڀ]/D_pGGf1:Jc%A#%U{aĒ&j(z|dOEoIo]6{u m/p'|,4UBMBA}Jp;m1$޼ywakz. DF^Y#G6Ð!` t]Bq`HdD6G(+3LR2d\{k]N]rX7[y ”js\b5$rWteCպ5\ PbIC2Z95Omzᅞ0̲xH Q'j$!n}&*'64̅6Z7 8R I.:J)9Y%F(B($lS#8$$íyB0 b"HJ]: 3e b6b{4M}\{$7.8Nh=kUTF%{DO0yV{J4hz(!ne‡&mxRڃ ]SW j#qx;7Ox?&iqqփ9( 4ֿxh_ԥØ-Tc֊D C2; lMi Dagg'y*&9YD^ 8*刔FHu jS)2pq*LrV1#Et&v.EaV :"SMa=X ,@l_@k`mۂh F_ӄq5Qb*Iy"x>4aU]+ey]k%BD ,BJzsU(P}%.H%6mZF\.b郛"-L8Ɖ,JJ FN>_ULĜ1{Igla %lبP#ԘMRSs"9 lhWۓ͉KAS{kj`TWh!qT#/zIPJ8 >:iϹ'T禃kϳt]ZB+m--IB/Varf, 0n 9#z”)qf32y=<p lp/M 3&y:V2T yQ-P%-pڄ8ΰqK]OCVR<]Gu秼rtb ;s^Ϟ # PQ|5!zrj-1 PXaCtyOJ2?@H$HQ 4؁NDRR k1Aş*3ךҠS+ZlDINk-GyVHG ~CZ(J[㵷t HLVvEN̯q&xv7s@XTe'Gopea^!_Na%G6J] ԲDpߩ>&hؑ3]{ex%M,Z)Bp5vdgǹ5W=0juair`jSF(l\M&6N5ncod鎛Quf"CW+²"R1$|9#R\2E8)㐇G;,0Z1չ,fY`H/bTdVˮ-ǫ i"AT3WJFVŪ,Oq@17ݭuYD$A,R21LWP!HLzo DlpG>w}X}L8yq댈iaȐP@sJ;ZJӐX̥y%|EJtt7ѭY%2*ǼfY#ADnĠX CQKQW2[6-cFIG qC>s Δє8`BZ0zf5K-(U8@ySJWKedJ.dswC Lx\Xcܒ(?lt\5.: h_bߜ.Z V:TzU6.%Uڵb9w0Kjf?Ȇ>#!, IG h\HϼquHO2]4ۇ mӢΡp9l(5dѶmԨbh]=nsCbDHv @Yۍih}7s`JY:<Z<0I,3F+\N9ag3T%b]4ljb(Q|L@ P%7!3Ͱ1mH-5J(0p@yYZعˋM`VNk9)\)c!p)Ogzݡ!ƅgw[ZjJ)\% 0 f }uXPluF OokܒkA47mY&C-+6sԬ0]u|$*Z4{"s;ۺ/G4Œ!?r\>0!)f? C2[L|BBNxj߈[ M vT3ojp"ِ ۥsHp8jހibq;DF&("ƐnM##_̥Y < AI0"%\1Va.)Υ7!踴=Ⱥ|ah4xbBu*ZLI5[, 4O<cQ-eZؽ'4{v*l)"Zf p b݃@̘ ݽlBz״w__M55/:3SVw{{{|}`\7]>|胿ǪԱ(ݠοi:|ЕW:T{d GGcǟ)p'ዧ2]x+| N{MEj@Kѭ-E_~}g}[^;7'E@}7F.MQRl8?X0 ӼebX^{SG{q2/a0JiZ' #jyq) 2<ϳj}!gwq.4Mb!T湈֛MrN3sJ9y+"yH+Q\])<:muQ)e^ϵ_~-rF7`C=uz bu$MM}G.,Vf!Ԩ=; V/~ת`-܈~)W>>&D%Y 94޸eAXF*$6>yȃԈ{Sy0 "+Y BH:|j=xpwwWʍ-pwmnos4Uy(CNJWV8f?8Dd4gaYV&-#i13ȼ )%U%IR :=(elKMImϊU*3YVyVlUPP);qjJt4S!rB@M)ɳJL̥*o`Ee'g0BR-WDcn% gwx/ϮwMo/zy{ 't[A??Y_|w<嬗w۞p?z ,C|s'?wewEZ[n}> ??ppmܷ>畖!Yo(Ɓ `DzG'ѿ?z\H??ij_t|%~gMYbJV $V@vݘ2Smoz,*{N8]8A$ٽ{B3ŴP3Un.VթT.Rg|{L(QUsE ֆQ8"܅]1r,_-?6bO1JR:9.wBИEc|Clee ml R|\A1vb64)p6eˠR'I*23r̖aDH{^KQlX[Z/{<ɹg}'THmDzp94C8liMb*3OgaTD&98J`rAOlB$4i$("&z!y@|Ao uk\7ƶy%R>,0Ð GZZƓRm<["C秦'%K?whŦi,x-$R0 Z*z.sɢrW]53ņ -dU_ ?)QV9CSW\Iy*qtʒo9Y$.whvT+ d& t&2Ex]R/#,cop|3~'g>Vw|LS$Oww˷|p{ yҗ?8o}g}*sx"0|5{8x+?iwG6JLˇ! GLJ@yJ)"]SLiT2znqE2,Jhfs區M :>]HaYWt}C(1σnYy湘?H2#Β;-c7q2搴Ykq@ynxjV^%- R 7l[i{98Yʮi: *or$M9䂓"'f[L(nT C g)jEb L51{x r+[Ɲ;Mbΐc1v, \AyR8˞l|J5w?Lm RV7JNrN*%G7[ܲ2CE>,O&aqqXj%ʬ*b?9XѽQaMq ^?w|?ݴ '+. nG? ꕟ|[?t+~f oJs2~LE!L'>|<>~oίe}=o}o;EHݎ U:q86dž^nȰ&L"҄؁~|Ο}qK0%.}ϾZ~?iwijN]q)wlrY0ᐒO7dO~d-N.ԥM;;Ty8W?}aO}ů|Gwag]~w[*i¥_mAu|%>N9%F60oѢ9'zߒmXRB豕m3է%2%9 0'rDZ X$ońfA)^Hޗ,۵pasɲ%G.o 1Q-"7}uƲʁ+,f"|Mq+H$AUtV)7$x0r2ZZ EVQp1lh8N4lX4!ڙ-RP.‹Б_k-BVzYZ'2I㘇 F;K!lk)DR&G_($UV#-X!k'6ŇCW8Sb"Vvq?5vB(AK EL: G<R]?~}H%pՈ %}0EG) 7}Y*"D\d 8CY]o x,bL̰fq5U1lkqy IDATlE]~>Py2ϕhXJWsO@6ǻZуlQWRSIvp-b-[G< 1V)̱^&/ +W!xw#܇7aǗX4lXf6&[Jյ&#AWv&V*<aÇ42޿|"aX80H^}yf(7XrH}^nl8 C%K_sloSA֚c# &׺$ qwY+nB)]:[ɖS2XY@yKSmV,!Bh!cݯG8ܺ`4HmZlv.]'"8`\,ϝ{xl+!mDb ^{>{3o?sޘȽ˯,~{ADH6 =qt^ï;c:F7<p |\p o|l @iF{b.,~l4 `m5R0qD x>_*v?~k!=׻'/2E}PxP$JSJ(*.'^O~{Nz۟r+ZvoG 3@FĴsS_{?/g>^KQf7Dz˞VM741hAY*D" O dc( rwi,E!Iܾ&1$&"o[2m+ga`HW2q$cȘgZeMB\-8ZuHmO6E 6~hJ.1$r&7}rOa>h&܅®2S0}c^)]mA 6oi0NUZz2%f+lig9nk3U"ޭ&J6-A. FbffˊצU\acQYd 1KB)^wRka"Sԅ&Z nAN  X̚aE)'{4Mʌ8PK[y8IMF[M%vuJN !))AMi_~@H>&T \&ypC;:{7<1Ǟ~?~مI篺M˿zK|k|傂8!E4 _(x~\V #:+̌N?lwӢɍ-v3?ЍΕt]X_H[>Szuh'n+`oy(~HӶɼ8`Z@G)qe`J0Llo2q&- e Tg-i*򲰥'Wr4\QG0lm>-tEw˄_wIa{ﰫD|ގ%1"0R0!5Lkv$9dSQTlvPxZ7KKJNY_=".aa0$LZ+0IUSLNHySƖ[!񜶵& ?'bʌD/8 VHI_GM@ŏPr4J5vjI z E\UHn>bs.W|_3ݭʯs˨y?.OoXˀ7yK?㪋.=F)M.m<^(#fXbt.#s7.sxejU&$ Z`f`NV΁ q|2J0 ctt@ʔ`7 8`j]e~s' RJ%K $APC%hs$M.\:uUbH!cR gaWJ~qhl?#Z,UR+kmƼG4(]r.Zs0h)m< -a0.^+&{o#76x$ϙ[{SĆ=az^O2iZXBLjB'}C#d7['zGHŜptζ`<[A0=nYwd`Z8Vqd'2l!ȻJ)\ 唥JѾ~uH䦩; V؋aOfD,1 ]I< Y[ФCǔ[ :Ztcnv?H,t=GiZ Qgy%GVbMc>=J6L9_wTmZ\(H ">xxI? D|rYbo%&5B䰉Ip=%EF3 oxf sg YJChqXF"UDh)L9'LiMVs`BbBL,PgG4&llY yKgk \R-\[#uβ+U =I`)ըv%Ϲe)ウ@ },d~B4yTo\'O:ˠ[kI PuUҺ`{EP|x4to|闯s .zٳ:KoxcoqSwygăcn?y|\η;m>O{ͧ|>2C͝= z-w]~˾x> O8 |K3p?̥/z ܜJ8)`KKhY%d`kUūu.K8#LcշQn)6UFLXI> Dn&v;8iOjqYƅݞA|؟FklB4Im![&Q! 1[/HL-/dy~v[FLNB6 ku~B ,qwV S)egRUSEQ-sI2x*y]v+6mWj+b|EGy%܅Ъ-{+5r{EpǺʕrL0ˣfɗRuL  `6ȏmP9%B؞@g),H;UiR {j}5%@h#f6ߺنH}k; tKbC2?8noz[M]V:fn:˾"3cХ15&`aUSfƧVSi~S=!0 )ebҰ6kfhnbV|F&ƇCm ҁ}y_9?:}K>'L/'_yȷ_k맞 9%yɓ[L6O /u5o @eo;G[Oz].:댳/>?S79&Wy닞c {X̌JʗZIU|ڤǵU}zg_c'ϽڬH.K3Сr}va; 0-q̵Rfz>04 C,i^T*`Ȳ^D F͘M9$T=5Jz$rEčD9>r`Ĵ5@m>1 >\j:/P^/Y&<=)&K`{jg\OiZnÇ$zKԖb9#LjeZK]OÐqDT9z{|Xdpj-UVLu x ^ёE-|Hލq!1bC7xGQ`1 ~?յ'ɲȃbfp-ԊIVe0Z!֮v"_:+V"+btSN(as4<C8o(:^`xYۘ)a 3$CuiSC4D lNL@޲HsdJU+%6ڑ,EҊ H!d.g!nŰUbZHK R4cCIUʚ{t6[jF+R I)+dìv m*p-S)!gsgga)GYВ,iP0j썰_,J$ey1Zc.ëo~g>z/5rUU"?@IdB$ 51k pEs@uZ+Qofl5ozѩsړrBPʴl24ɐ=r8ݫvw#r 4;^t'Jx l4IUFVW&ZN3uyԛ!\n-q81gbXO9Ƙ,&6JOؼKvdyIgz%l+3ҹP,; Et @ `0 \)otB=HKCRj{@0(A [1 ːsֱDQ@Ʌ+1yj3${h[}Q'6<0JC.a̞p#)a޺R̸H0)$'blXD,BfzvTrv0;a)XDMQcNk64Dַgqfv}Qoq l IDAT@Vf y?.j}lf}fO#bK!lr(j4-XP c:Ri#Lh(VhCI@$ۖ.k_0$Q7A*N ]d=qzst.e 6&\H~4}Sa#E4盳d3j-6̡R`hG" qD2ͥF\F>(0Q3,. )*ݒ=p3׳kfxm}=/ deoO(Q5]*|0XM(YHMX'J]Pm.m}gFDFݝDK)Ç!V;뽽zR@FICǀry@ʁ#-#AM#KdN#btKX _R>*|llpFUTV: HLs阸Kn?7/xPe{'&a"JwERwvcerfs 8>6bMzX۵HNjw1"ioCtbmȼ*M׷"]C6O%)L*$6[eѢM.s kovV\qB+D:J- kըad`/ܶV: b5nH %%R)%f.ޓ,7*W,wPm%G 픽=(Rz'K켔0 )s?#rNY$:KﻣVPqm@L8G4`f12`6ȅ{'So {.%"(e`q OWXba-N@gVi~+G0=z//z_̗)IB'm\oJ~P.90dVP%2NBF^c4Շ2ʗ?nf yi(~B:dEhR)Hb,CۀEZ[Fm! XLWmnEK(n`^~YR5 Cŀ­:xoޫXC3fh/+ǐzjA_ 7&59a9W`rAlRN=B/ g84 -GD| 3(7[֒م K;Հ-܏)egn\$^M`(I9HjA!:wf 㘇A(i-$mf$KK pZKmrΙ\UI(.=% TC S}ktuQv_o.URtu2`Ob'o-|0!^'=Ka#2gI Pk SɖF5hD#.!gM~p)ZڄN;i'2&y-)i H΁jdMLSJkt2"ӭ2ۙlKPΙI{È7#IjmݘwCɕ-TWdLHB7[{Z%]>%#0'0$ԁCOI,'t$F\w!ߝ! vwNe]V(DG=u wWj-AEv! F*]ر5 <82դI?-cf$[&hͻ}34p bl K >D̜s"bA c#/-R5*#-! dQM7KG̙xewTn8i^jHb9AaRN+뙸 &%\9a2WaIJq%l3Pf_ǁ_xNpۨ\x= g  [$lB=\iRl;gH,.j!4x6Ca b-ozB;KIDfxɘZf叨RR "ݣiBGVՃHq%U9Vt7I09 FsdTiĜƄHPb 69Lwս}ҭyo},MUus޿dQ4-uUuUuu"՗ R`iFS`feJ)^ muE l~ < }֩bꄹ"!2pïUQYIaR6u5R2J~GIivsB_mgŗJ)Ch"qb\z60R2:da;-86JyGa98n[r~&3iO~C1 /bۉTHBMEW+K1h J(hB f8S`N3ͩ&i!$G3;$CQND62[vN[f] ][ʦ[9AaDHD5 ijY2q~w2P࢚CXHhƟ iʶ !e)XGGt:(G/N6f[[% 7aCv@сiv%?q>ۚ4؁ Af+-#=> F=K T5+# % \cN M*L ؙ tP}S(3S!%PIa@J)NoB'q0lPW:<փ76X5"q̛Nvxl ")X1 n1ѣhIdEIs`6af@B Sr ̺:ph5J!( :NU(HFY7#_QѳC :z߆跖}5 ,!1z.(bn0g+(ƹ> E@,P@d0MS Ác$)ƛD Xe`-eޱi"+KqBgAothbc|JfTqj17>F׆^AHEϷan[ P8wƲj[+R=/b~ wbVDa{OgBɪHKMo>AcG@.U(o6w]j5A,2 }wF2rlڸq*3d+ā8S  JAy1ZlK3"8H)XLiFOޞdIQflG$Gghv ĤLa] 7O \8jehBJӚqO2[:i6w}<7XV)a" [H^zH(#0Lq!NHX!d7e3(rFpn 5 !\lTIad, #Z;c;\Q[Z2\JGR҈vP(B!ȥ afiRBauRa-TKXTHE6Qȡu=_EPJF_-4p׋w_pgƍ =w;N&LO#O`JdɆ{e`I 2QL`a Ǘ glqߚpͫ@}JXta$;cE̐: f8mmhKQԫAYO y!Q&(cLbZߨз2̨ 9{8XN %RVM9 PtS5nZOE1$j9K)3YQ$52% ĮJFkr@M;("0 v(MN3"+D UTHQAaY09Է3ŋ4LspZQ !OQ3!ЙR"e"3*' QZk:U I)Y tP[[_4,-J|C*I;۬,$0tm'nEl њAнmcBG֠o~JocJ) .tBF7lr.S8:0{I!a&>iH V< (b6^,URJyԺHb˧JkulDBS }+dIz2?$lx\e,HnYu_\ح$#j8N!c&H{m lNkP\ᩎQpWMebwrs3- 0UQQ߯ر21Z^FF!)Hl+媸6ݹ .B,@>:3޲jet[M]LI 0> ETr|Q`YoZj#DoZ5t Pi41d́;MEQ)S#yHCQ&]'+#Gm(VIM!d4YWURJűɂ/v`o1NGfwd Cu!NDlBĹK^cqm@(6F>The|lqCX=7~_ ,JMz,6%` ŵDRLTȚ$I n04r&"ZX2ƨ1Xcg(fh8!ksx?<$o9iW T7Þp7bk~dlY>eֻ-&v#BRE!YHZN-~M@*M`#Bi8R$ڲ X gYz3??O: q8Ѣ#dNf3f)RanM**) Ƒʝ"KB C &[MB\/PF#!%;Ͳ}LV3mg`:6fZԃ`ma$b6jL${8$.`MFhLt,Y]6>b~s߰C,wl,JbLZJkc+H!M9@TrN'\2Cotcf) K% _6YKI6#}ͅ<rfR.@jR6LbVȮ gxKl a6p9=F8j2Ozȑրy=@!۹{vPQR*MJ56뜻{#Ǝ{6~c9`@ 4fnwOӺ@i* I0QٜcVAwtR*70s \cNWo9M_;=8B83@w,_cWbࣥ~Ns7q+7޶!$kN[[BBPm_6`ԕm^`ʇ7v]uKVoZnú }?oPӍ֭zj"_YZqW'T57Y[~gN9h)5)zJIz?M+ZQ9y$|q1þvȨoW#G=g>f.lĭsĨon^ě^~7;DXQC(MS梷+,)tѻ}U ৆刑_Q 8)4?i/G {{8@þ1h؈/#>bШ4kUKnژ[AC:|!_oʄf?3tAC2|аF|d/}Oۯ?[Ew2)8C|>)$Q)?HiTTT+/nÏF~ȕ4Ql{}?yܤ&~?n_8b;ЪۓNvȻ_w\\H*U !&Ozv̗߈OQžw~9S[ F=|_BDmsG2|WߎzwN)-֧0v1nj1ۏ޸A͍G IJ)+**8fV>fR f& cfVbHa߬bPH.ʹ ,iPS;?sN !u_ҡBm}mOLnK҆pco 4vhZ@lEQ˱,g-کq**P`R($_Մ6/d$#ɭg9m~m?L/xec^ÔwI=m{w>C Η~/?},[֤LiʤWOn& ӆ e`3saijyʛS&ȟӐ_rHG·'|z.#8(\I)\lpAH.ˀPe;a͈@q>v]bPMeV Ik}g_kd IDAT&o=p9cdrBkCMs_\[RiR\.8M|!_0)U$U|XFIDBA+mm9Yf4|(SvBAْݮ\M=oA[lbGTξT^am F(Uis!_'L1ປ_Yޭ1(iLvfOJ6TaG"!DUTT)BaӦJjE 02a\$SRYQBlٶHi|134al8ABIQ(Z*<ٲIGGÉ] 3C՘MɊcqZd%'+9t@TJ&J!F8">B-ÚE-ؾ,̇8yȀBd1ms~gܵ@ > XM.cLhPijS291׸)_0WloSD{VLcj(ư_ ;}3C(81`^Rj'.r59~3ԡ|棞 LLvh>ǵ]g:zbլG3 6p~*fg*^EPGd4) @@!*}'ysC{GW=c|: DUG(dup\Qeuӡwzd磏q.{~tJgfpp^{{ι O=q;_5H+F-.`o͍ڼyaG6^ut 7k kuhޚ?jM /gnǍڦw];&&n֊dXsPaӣ{˗~G= #A}%UUǮMK֙7puONMeg^7/ *\Mǯ~`Fܼl5`"v\hfn;u|'tj}WVWfiYiQd}WsfD`~FIT7Um8KSj2q.rVi9EO գ ͣIF@tǧL0RJY7ξgWW{ۀ~av6hzB5 o^פ>fh!֚UI)H Ij5l.OBQln86wjPm\EwLD7-^6Y5U~M6dvCcnu\Tknk+~NGvc?UZ~ş,I=G>=J]S&GIf!+Lb m*_Cx6q ҍӻ/bNTR̊7(5ȶ9kJ].ڥex>qBgd6v&HdsH +(R4Mij^;Y]`-Y#q4edZ^xPyVqC"%Ǧ"m#|Sf w>`J0N0#Rq_(wt(G1_ 2& <4"BmqP!_H @UUUuun4Ŭh{[l,S;$TDc5f{{ H(Rh|7lS2P+QR_C~i`#K!LaeZ%eQP:\\s$[b].iDhmtܲK!+0ᮘE[/J}9atkB⩻NRpNeθK{-&kfͷ<3R^rvkZ594}|n߯ö9zڗ/wl"n܀B^/|{g|2Υ[>c`́(m 3b"UGTUk)?Yֱ-^Dqœ1CMŐ:,{㬗FJ_}$IU.`P2iG~8ꊟ'Ny).|^ksEiZSv%95ٜղ['nwȭ7vKwBuzUY_NʼnoO{99EUUrOhIc ,t$nUE#ґG}eqQzŽzI9kϬӨA-5TydwG!{B֚mrk7k\8lPFn1Q f;MzaN7-54Egg_ts0wހ]N8⌽[_/]T;rAE3jדz eຼuҍ:ݴd)̝|8}tY3j7@t+>:&kM?|\8*W Xj:?j 7!swߴv:Tm@.9m@*JΟ5eiSn뗧IB0`EƇ/;9O.y_4ML DSRo%;ϟ;@s>#ڧm-\3!-[SdT6 $324I">,` )@S텿\P )uY3&vfz"u["h_.>:~*@픉e.ma1a$&!m0Wb4MHir?O nr6̟>o->eFDE##l,}Qz谅~g7Y;o/S7TCߊ=n[N}r]p͖K ƶJ0S~ٳqO>Z^Xz=b㮽;mc_kI! {J9U1YԶ;o'@7'^Mt%Re kz7~Vz_z\GSq&Q6;;`fO Χˎ-wz]}_=P3mjG^sb/^xs{?57ѭW^^qǵ%8^4;.V5h2~+#ؚVs)Lh}T ڹҲw?z%@]. lҤ<Mi=3XqP;ΛMǟxM/ ͏=m;ߟt9]l>"i~ z`lk߲ou h肯ɾDYa(6Hы;3MEC[wփfXr& H2T"jvٷiO|N5~jclBn< 63 Pql _3zJ1qYu~Ʉ_64߫sβ]*`])c xF]N}%~wF0oAQ@+'2nҴY)O}eUMzi9rsu?ڹ24i[d_GG~#F| Gćv#F| !ҫ<ކ/=o{{o-To3A|Xj ƻ 3؎ N3bBko yd"22PoZ߫G&9)(Eq.XZw. ( iZ$ъ1lin8bT+&8rE*n(T&e`SiN>983RpRfʹ;IuVnP qadٶ.loV"f)1޾]SX2qexRJܶ{俺!6Ҵ9ħv)y$) _yij뺷MV.)r\i"aiLb@60,, ə閜i՞UZ4"j@@y;A:tI,Q͠?E l^섧^Y~$:FQ Cg]U4вyjܢZ ͭ4|1 ;&oy i} };φߵmwjYZ`8q窯ݯ]vHW>.^y 4}ed}=*w_,P'bŠ>ھn[ $w#\ @Tѽ~xEuWxЌqlw*NqZ+~}~: CRJ 6~5O _TSD@e.Vwd9O!Kp w|䓟?Ӻ1O<9a@F9n̸ȹq6iF "7:0v:)#&;WOĔ4M~4[[~jK|]v`ݘ'<}CΪ?f܈A}:fQp:<6̈E߼g`Gxt‚JDk^S!#(I"0'# (>8--1Ľ@ű} J%Ϝ}vcc@ב||_hÆO|WG];aoE pLPQ`S"2w6QTjsog& X! {S(< :a7.H^ύej32s2 e΂s1~DQHX >?[4ޫm Rʦ;5%qR-cH_YY2N*+gGԺ}e_|ÎkOW*!ޭ'=z@Mrvc~YBEŚHYޙ;4JV/لQn|5un?h⽏ = =Ӿ?QtɄ ӧWlj)s/ơM \ B$u"eY@LMw*!m0XX.:C `n,lfOAF߆6}֤y&% h`H1WF&i"& f"CwҬy8l\ikqNV4J M- :=S^!)v.O.OBQQ^k BLܘ>tFİpd!P`~ֿ{7'^ :K-G\w;8jZ] (@94QNvʖOl` LW9˻ιa#@2nX(_yf!W+,R s€L4J)"Rt "z&怂̫ V.]74ȶUT28ZMBLP t1*]vwS- -]֋bFG71t n: \ ,P{]׵jn"t+s=ͷ;sz53W6o! ѫM?}=?n7PnuY5OCYse(C! 0!-s "&?jvu7WhO0VW@o8~PvC/|O>o̶ׁ+vnXˠ-W 7 =ioK3.LgIrZC+xЛ '͂ݩ'}Gw*)UOYίP7᾿<1r>B@Z[7Rvg`xKd}Fh>*n #z4.>ZGRqBPUWP(Lt[}x>華h[󇗟n?ݺ3f\p:RjlfK()II){,1sIBW-| { 8u^z@@4[~HWVgN+4O9O/n2d$"ơWJ"MST nW=1#׺_]vtUI)e$DtvO?|37鐏IԠ%cن׋~鬵5;شv~vnh %2 "vq|E@s_㣏vӱKRJPo]Šek]ժmIs7("MsFLi] I.*O(jɼ>Me}RWDi} qe(j:[=ff^]-\"AaSU50niG\:ta=iMaN(Db^a f٩fnĒ |U:>& K8dTaPS~8 n|DRJvB)&J4uTA/"زV)`-zhmxOlˈM!xW DDZ&b 9Wcv "r#"(BMv1qxzQ d IDATݠcsQz͈J+] d0m*&:D ̈́`3CGC'QqސD3+.x&1$!"4 C$&284ˆ 7+46T}NAp*Iz&1 &Ӿ 7ffx9lkA'?ާ=޿AGL=s"KG^{~?/5w]Co ,|Tԛ" Ìp0'ue'@2y0sr Ől@K/>2 D 7@Uʵg8@U5a&YB *cq^Kk,@4hXI6[ _uKktxy<Dqj^v /$SVm  ]+w'| X]KP f nѾ{W狯lSv>uVTRe ̰W|t=7u`>rٷY C`M"pԀyhnQtJ<ɪ~<_{{?%GٚHFfRkYz^ņ {:JS*3.]5I!d$r抦罇7uj-\lVEA_enṯ[Ç/8tOF?sڌA)m5g|;[x3_ myNk`'0\۠Sm94u^>ƌ$4- ,erKa qJwݸ岓v|g&$֠P`m?Qkk}V;7_|Kܻj} 4xY[;$""I*Ix n1dcMtfc @aܻFI*}v޴)6a7C\ ר5O-]Ha C6ooMZΞ95?u6Z~NeS.3s't턇O?Ⓝ8Cz^dߞy[ SRC䵇&qE2b~V\Ѫjk-ڳQAK \.> qԙG 8/zs0 pbmaQbY}ܾM+jT 8LGf:M*̃9r$4XƧk-/5{mRuԀaCa2dJ -_ԔҌ_$ĺ"BζRs+ɸb88Qw_c9xS{#5 K@&3 +rq$EE.҉"Li*dJJܹ)DJUdH) M(FQb N*T>̝rn, "do-"-$IbJ)e|Li LL̺hMeJi s9A @Zl-cuAHo.&]Fk†b*iij9> N5BW2fb! ;ǯ=rŗXg.3f4 nޱY mQ5s+_׮-(5u\QaV` T_ BجBHk,HFFQdlK thL|5&'mPej+'@gq;Vea9`@+RXtSݯIXNrAA!9ӄսjY?,RqYӬMiCشYFqdWs&H6Z>`ViP7u;]|;V8} mSkZZ=g%@nqV rdȿx~:+ҧtݻv0]9ǮN(Nq7_@ HVפe]ejZF~l۞K47kt7kwC5Oրʯ <{ v  jgNh愷!!N%Dpyn+,䘄FTSptӆ44YبBm\NЄIRذxzh}UN\gbi;/Mi~깇43Mzs 'h)0 P/a!H$G1-ArfGc7_z=Ԙ@)UHNLB$5)vL-qͭ?\vqNɂyxSkN~)_YfQaQȍ_av:{di"(3g-%iRH@/^oֵ})wm,pEFy+Lu@H)+vkڷ_9{}Jn;$MD*;Q(ҫg/UvNhRT"HT M ζeX5.M=̐<1"'wt=@ ڝ e$A ǙҜYU䢊Xg{Q>yB>gzY9WtwҲbj,UyCdc9!ĥuK5HkEQG28rXBXR&H)= bdڜaKIra"O)98u<[y!5QI8l `AZ40P9M"v@4ZBv"RR:[Bg=25su*_yҊݶez#g9I܆. ;igF֦BB8"@)=gжOPd )$_}׾۶ha'hjzZ;Usa"{61˚COݭ;tڥN尲eǮumߴEn+eL^\4"6s 4G"cHa(BdK%Pn, ?zogxA:o5Of ׁ^3`¤㦌䎌0];,0u3?p^3һ{V?tfdDV4VֵJ(>Xp{sSV.]nO\{%t~{/hs^UVWWU:7Xht PV[cuM];uکKN];k^QDv!S[ AiA$'g`0_vQ½7M8o۷֝tЮ u.>"Z51}V5-ƫJܨI]:wԹcvi׼Pe۞m8;zY>fjptjlv>9dT~8 HԴ]WKie.]7^7inru?r{3 Ö$iRH $) Ӈ"^qc/w3z}iߞWzFc'2mӮs.]tҥSUX7K BWkL n! 2!%ga3ƈ„̮>Ď0 aomvP l\~Mإ.tڹs}*Jvj'okN)mWnKptQe#BGq# 3W:6dJ cD5[vU5m;uܩu0TaQh8뮻]wݵCF#p0P`(dop܎($-6pL|G7AT_>7rq]!IS _n]cC{u^3ciɈs:BP $IcȐ0c-WW5?aA,anX "\3+Rw>Km;׬^S8\"Q\zSݳ#7گN8ۯ$uS?~#VD;p1TfqKP"G,FaËIfgE|=ºZv=jvӀq;)&*֚&HQܨ"Eq>󤩐/|RdZ.ɖF K[W R8\Y_ȗ H4MV*\ш:D GqE1C2a1V6HFQL@$uTY{'v)#"Y X-hwz]LBNJ7nHBTǻ 8 )$&V= 2у`ؕ4qcYj$wgs|^vŭ^;sct~0?DRJ\?;|ic|}_8N{`?|ewPdO tuj pM Hu9ũngs'`s(hF =fH0(&)./Ġtk7ƕb/+Ak&*h veBuW5(vV$".B?MW.k|p絯̭ז)LN}M]-?$϶QZsvD(L{c6kN߿Uaΐ!o6}ϼֲNxm&0$_q+?t?*;Цx:B;"Skovws/z1d߸O/x+T@{,J*Kb7ڏ}n }ސu5GQPX5c7ܐUvn__xu7 8 ~߽_,((5{m׾2ɵi(ц. ӫ,@D:BbeQ r,/* Q)iR8-q-=2}nWm/?P~?qVxN,nFU nۢR%>/NcZ.آ(#)i |G,6X bо5} n=ϐ"sv~xSV¢?W:P+ofNEEeX8òD(h ?vS.읳'o6 R$up}zmaKmц8"FRFDI!!/<6~rW-:2z_ki lp3ɗ3 aVBha 5R`d6!ȤH2Q$eII.4&uv ޹ҤO U7P CG3o m'](j3a1Aڧ J#oJ[m.2@uRJD)1$ b{k,Heͮ0 xw?I ~@E[Cfa9HIR06W-n"8&&ۀEե؂G8q[RK oPki(_b̮ H+۟@Vg?.C JTY3CB);%D-x|y,l g^Ar?S3e<#$ r_.S2c pq1KL7dqӯ|4`F- )@EX90fkM?ӮbP*MSe.% *,cg)2ՊvCwD)7 ʘ0*K&|!DJqr`9 :b|olCJ%>ĀE9)D)e8x&Z'$MM,30Y7Ȭž /̹&L)S"רB#lF݃}mɤu/$QIFBX\߳闵ӥ, #*ϬU.JUJ+}Mb(@(N ,[#H֩RQHYѨB+Uic P. ҊoQL;a/`4K4p-L#ws JD%P=x6 =ԴBb|eX]*#f mT6&41 :<$pc!]^m~wD-0͌]ERn-[QS-PUz FKh߈hDi0htbn ^p,wޡl"ha(73b rX4 .u% b"uq9#c}7g&oؐ:t%xdlOui"dUY0օGw"ljwDfi-p4gMgggWo(kն=xvW,eBIM@Rx:-T_^cfOGUW̛F"l 41I\. (J\ ߂I=FI$I>3oSS_IKN .ރ WNQ«1q#Q{yLd$Ikj2uϯ!mfCyH"k6@d.ATCC KpQځH$ 3 H?G5Ջ{k٫yz^ dX ij25SwB IDATWزj|8|[(QFRJA)&t!IEqIDޣvSU(BmŜ?ĘVY:5+3CJ6u/PA6oi +lA}p-D~*@?"ܘɚ;3Қ$Q*E22R֊}\i.δHHFJVU$_Pu:hk!2;jx7<9OTIZn _¶583HY9N+Ph! urԎ<̊h[lm`" Ζ'JH:!a^)Jf>|`Z8Д.lѲMk V GkM7x6"`3(l kf8Ep2^ə Ӑmg\ ᐽ2,A{ppi1BvrQ{k!ժrvi+W[Q4rC)"lDShEE6KVy9 %vh)?ڮdG'ڻ{"qr* "f,zHp<39g#*zPTbBT$'$0 'uW~Pz=߽xtwծzscڥAfi BJ2)6t8ob 5@YT)ޯu02)أ6%v+DA*ΐ-Ul3XFuqӕ2mT9L1D>LCHG(8RȀcC=ECIDkBH)7q`!ٔ$Afƶf1 BHIqKp e"*PUSeg^eXW`sKDl\Ðhr/>I+Ӗ @?A"¤Ḕڭ1+U|AAiSݶg1.d2$S>&K1Q*˶|)Gu5j(Dxe@Td+v6 s {]3AqA7w~옾'&hDQK+a7".XiYNCП@EGQd(Ѧ/DԊqO't`M] <]=F!S,/hfg*^E1 aH(5|(Tυ=?S-tIYzݙ YKn眙Iy,ϓ2LDga;v:LȬ*fVE̅r:#pNFO Jhc=tZ\V)Q.gvԱes6loYJB!y:65>tJ R9*a9qK{۔3CK(N0sCUޙJ4EE}5!T-h"t|1 Ԧĕi:d1t"B>i^UFUZJrrgۨqbF' -{dksynXdMJQ V%9L:Tg(<4`"i2j=3P4lӲr=]v/D%-:Ċ9Gd""x7# 1M'DwCQ4@`TGLk@BWh6T=[_ѬFu$;Mr^[tDb;"DEPwEbD"lv+ 2sY<th>ց]vMhM"VgXHpd[AeSH\EJ)*XR,PPn]űf1H b(* K"B 3xD`3ƔcυRMe+_m[TB?rQ1bZLMR$IV8heQ#2T D*)URO)N(!H˳YX'ˊ&UߒONδ=)sGrĜX6 1 Pt1"_l5kFcxB`;=LJM-MKnZ׋ٲ SKDld֤K ==4u1'htzϣ8Q3Dh')[!"+)10fr_;ÞT#`HOZ^?*ty4'8Cvf {#C3Y[_;"2"i<dۗ`Vq qBJSP*u/CBdN0I (d(挓xiOdƍk+KŞ9j/i6{B.M'D!eRHΘPjT ȪH gJuܖ37׸/$d.gKK3H9 ѴE?6y3;SC2$s>GR a&#RIX6jHs-r҇E-vnBrw,T a7C8[UF ^ԌJXdΉCv="C&R["v4[s2C03΁]w+k驚d:X&ݎ{zn!8}_  iCP ÂfpU:Z\lOl 8ܤ!$C 0R䌃ĭP;8] kZo?bmm8 #|3d[$"6,",شG"[A9#O Gf=4b櫪ȸ*.UdVÝ@*A(9We=cvcewYi)bbd<5aƥ\N6CTFYd[z!&R4V1f&h庥E~M{XP|yYvYYO34%!B; V( J$g+~MG8ZSo~'rQ)  :!jH%e$ޔ⦵l.u%sCuQ O5l-9{:t8@0R%jPh]W;U0Fَ=mkM#HW;${-vY(DfI1Tv[}4^Gaa{  ;![_3D k1ύMxH PqDn|gXؖ;z״B'pw@GNk0 3C(5z8{*jnlPl b" !U/2 .ۑA\FKL:+O6Q6_WE-u&%o.) aFagpUěW$D*K5Ld2"%3+؁ xYSо]ƄH")HJEEPͱ?t Jv9Z}T5LW&˖]r"s[#[I]\sЃ MVE " "虫ZI:H  !|XMM$Rf:BJFBLZ@rRjqI/PTX-"CCHQm㟌8BU"gcj9j_+麮蟺[|k!&;b! 떚6dםD4lIhWCԆԌ!f zgavIóV9î!&=g>jڰkHv*BfT eRq2zIe9E[X@}0cY,lpDd\[VY4䤊qp=fO]YEW̵sƚ5J D``m#b5EfrVl'r /ʫʦLK Hd$2^+E~xdq3F ~YRZʤwgRLd&Z0f;#i蝿@u4ufq'Ld:<$Sm`EM P̰ͥԎ.a/O| ^%C02В<7U=8V&ǬU:Fh*.w_X$Z]& tjgp,[cNxJN}$lzϯ7n/L"EQlԏ&gZ5qIR.0<IYuԳ խd%asbL}'Ũu~b;g42նq"A(Ƣ+Č,:o6 Bqu\uTu1jL΅9P&VpC0lCu񬨋&mnUf@L%B"{LbC =EFu.b- e(0=YV9PϤ 1ɓ: GT`<`kd]v6fjeΚh NWCb#X2 KayQy ƶ1ʂ 6" B("c׫B"̄"dC*H) b)r;b+#utqH*)xY|pELdK%6!c#IH(R5\݌XԴsCSbSSPSܚCE<Ƥ@Yc '夡յo$/80t-t\7.X7))+ԙ/ 3e12Ŵ*rBZ~"+-912%F(\r"0#DAWəݰ\Ij/FS.0;Q_6g c+ 7* V%e ҜUi6Wq8^ #ct̹3]ݝ+jzC4ﻗ3Ѕ.:&֌m'`5Q9* Y l2y_|/[t< ""j됤ʅ_onͺrP 1~i#4?ϠR'ЬV-75/~ v nRe->mpLU?qomZn>$[ꏜ[{@0z+''3/y]ikF~^-1s_zw^lhtOe^31?~3c3{BwEwv͜<Z$4ɖsg͟cNn6^ΛɸSk7=&0g9~µycM0gy>i0hGAJ)#z3"L!aՊܔV aЛɤ(a3K/pZ`,1*KJ q/FD"$Nf2)zL:,$"!E&2A1 І}XlWvM/|?7ҷv@YЮ5;޹]K;ߵK8b&eM P,PFyi Khq}d%_O goY~SƼ2us>}֓Z'"Jlt­/~FWkQG-}WmmxC/aZ:?aУ׮5i-ũxz}!DD"ɆjGZΙ @T'{_Zolf6~b ~ҀՇpiFy +-d䙆qi"%{a;r1{*DU"CD*˨G!$z\14?|U2f+=l^l2jøGօњ\1K0ExC0DW:ϯ]z_yEq 4ڵ'- h6N+'㜣 ˿89,G+cGv_D_ IDAT:b¦ˆ=pٻ&|4纇~l/ BG]}Ӥcf&Zxo<6a׏yE1|+෹ æ'w4~mhq(C.7{nwx۷y쵍cr|SJ2GӞ[Z_ŨlCe]a(e>cldbLă^i17?u[{yF<_qw[ pdqWu˰{Vca}iE(ܳ. ?ԸkM \=p 0b}B3F#v!`I:*Y{{>cR9m*#Fp: NjD&γ4~u٦C@;D01_uqvlMrb?rJ6?s ! : Bc %U}Z (rh# nԒV&N9ѐ!8퍾ਮ EuB 1:t=PbhWCS"&(ӕmҲE$n;6`~F. ~\|;/۫}ص }?pU=N~#ʞ_64(/9j|G>]ɀV؞хD)B2D :UGgj P^ICٳn.ݷ= 99;%@^mpոwXU.㒛,?f~{^GOnʲ*hX9gϹ2%c=LF"}Wqn;9ǡVvb.'wG=rw^~wŧ7xeY%E ]F SAHHKcz}JZ^IDFW)Тyj{'Ӿ{_L.Yy!@[w >iQ|Xaq}{grhW T ɇ1^g/8nFÿٹ ѤZJ%DPl>h,Y26g~!2mXvo}zW)s@ۊwˆZ7^S{e~?W:M]@rW8lʵ ڗO2ǵr탯sL|foѽ ykv 9yꋯ?,f(־;'ͻ5/?cN ;{oP>XLwOke^3z}_lTxMZPCuѩ47/乱-r1W־[k=d넬ais =7{j=9bQ'?}OVl%G\qn^図)NZ/t0ujV}=ʑg1 .J1!EG&:y~wo ;ǷaYFp`x΂g6;oLp B聗OuRlp'0se=Y^xN O^ KE%%PsGU ]μ];w9k}6<:?kOV[WF)-~[.n DPkdu 3Vaхto5q4a[Q6˔D0k~nÙ緩x7gm`#n?Bq%y{Ϭ+|3 }UyBd%֯yAsv1i脟щgm^}2y?|f}傱Π:~%#o$kV~6lq3M}$}gcN 7cd-Gpvc6~:- E[48іGPu}:!]e(9c:fjUm3;~iGO-i$>A_looZt,KB5sh?t|n<&W3uOjO<`ؓ|R>X5!LSy*!_S{CZ؜wYz_oTY}?8] 7Y)vrs{/AL&JfS ?!̄zo\}a2k&PTz*u.Q5gֱBxT!V9QtekO Ib&~Ű}eϚd"i6ŵ14Q!rKs5=DJgkb:|Nw*ӯ[9:ƉiP"L-#ZERD5Ts[,c%Qqfk}C=O4D鎉փuO ;/%T59/nA/{ Zzo}9_ڏ|C <{{J:!*nxQ4qy>`8 yzgwZσYN!ٴd2B#Բ|5Vȁ}w#"H6ko됏S[mκY4T=v6[E;ezk``f&v )%_腻W }n?;/l.02qb1Θ{ϐifBL[liG( H <DVD,ٕBI<6Ҳ%m.)x# kf Eͷb݁A>aX5YߨzmZ_fzE-J(.~5{.5LՓ|kՆ *jVnT߼$ͺc Vt}Vǡ~tQKGC}GqTTC`ӌOl>6ȦɅE)\<@پ`پ+УIՊk EͶJ\yA[Ə9t֝W>6o3RrjBOV)гi9[k )_. <~vc;3ؾesf }?;c:pؓ*XFH~vc:r^蓚5.sme9=" ݏ>PYm<5]~}wMqBV'F+\x_08ȫ†osŀg}#_;g^ǟ}ǻ+k+9.kC^:~ O9l_xч3&.cm f=TL&Hצ4 1PRaLJwǬe4ch L'- $*RD0z6Y>gK >TC:3Dۡwٴy3@aŢ?R%w È6Ǟw\~K0.EE}2u :lZmP>Obíb$a!9(o3ؽ*}7?ݳٵdw}k_|&RԪ){K|SN3EWs_oұOPc`{۩ud$ÐT>GyV|sϺdNMhW8żb$?!"v ҧ/;3.~|zi=O;)g<8 +B:T^ ?X7>i6UQx``KgxCۑ79!C>Ÿ{\ͅa( ̤3Z )]NhkѲ=<vVHeM:S2gieC7R/C'CE5:+N{d@^Qi"mБ5qlRS۩'F>BFX]~YD(E(d(d(1 V*K&ܳKV+;FG_TCg3vtL@fqe{IQ*PM:L6Vg8C M&qQG(HBP]Ŷ2f[Yؘ:1BhEi`M(,7OCئ^"[ģ6RBF~RlۦsU |{kVO9Azg֨/)6ڲ7*1gY:;:w1_ˮ?șfH= 0f NRi"&qX @D7L(%8&]d !k" Vrܰ2Ӯ]"B{r .-3v nt%s_B̊" (1ʦu|SWvm*,;f2;EPO7ޛK~׊Ѝϰn P^a:PXGt[:~$e5#RMn`@ @vV8Ͽ{1^= Sx7EInH268Y<#x~A^\dp_>1X`54}@oE: SCJA4cJAwY^ltދSnh{xp+!Q@1ڻ =V9}e\5 K~|SЦi1ԴT7ˣ*Rйi=6:{S8&:7SCFh4rĸ])ڬv>|˫O<7@9{7!^w7@z׌bkeM"c@VMu-ӿpӰ-HIYk;Ao~GX'LupRޢh> }p~a2 9]')er-EB_!CZ6dw#_vE-xg^pr=[yiw 8䱅?VF9 9݄́A^bP//}"1@& &| }ɀ7a˼Bp ^Jodu0fEMjEMIqfO {vG hR̡\fՕPԧ^͞x|y 7N) 퍩u_s飋O`7{ו衷j/uTԤՔ9ݑP.LX =jCaqƤ+DR):ƩzmMɏ#pk& ds{:OCY": f{<[I1T)9WFcCݞ.-$idD8oj:WB%1#D|'ѥ>$W?~F1;xtwl4:E_Q7d|ՠ},_oj%"DPxiKB"@DEz A _}Ӌ>ٚL*yUi [}yv3G#It_C0]Ar"[6). '2 M8rԋ Rb٠_v~w/=VܤVwLJ>#4CE %yg?˫ urWfCy= 3P1fM✓" 5G$cסF!"LΙ8Dl"XJps$mì#ծ $wVyDqucgDG["ӣ6cdHIM֖j'J( 'BUE[)kE,da^v* zlΈ.H>Yak'JX`H$ZZ=D1" pF3bnYG5?]~Cc*q2ܶtS-I"Qiiyh?/y?|y.>ұ]'5- BII{6 $ Gؒ[h[2)j*okRRW-C' N v=?dE{d,DWک -ٜ ͿQUUcȰf em3}hTnr~|~8z AC><lNlCH˯@=Zݸ:]5^;ƃ@Iw۶CG/Mo{wvknbD1oK_iݽo'H),l۽dS+X5T1wiQ}_ot6ns#4"ʄ]%ooM]nsM2 R{B_8=iMQ kG$tu|rb#lk_!P3H%OY)iʫJ2rvbІuM@^iwpMQډz~=s<j+-1Ƨ]1iU=ܻk#N)~Ϟ|{N~c'ϾrAUt8RH0R95AXOI*͏0u\P5a*~MI+ӓX6]7Fv웦m zx!SkGI2bHYCιOa DWQ3FbKu99Ң@l@@ C+3IVzU %}; Ku26]?8庣,$b&ZHR!7q(}*VFTP*(OT3a(wv_<:(16sڲ&VX =>\8STÌAnޡ%p?s'6LދBٿRS"$̱#f":R)I=IS y5\Yp׈qSYj[ Ut%KڿR;*%4>vD_W\XoәcG 3O°S4)3dv=oOo̘ܰHM dt:dLDTd1!IrTC ХC`-OBR$H,q#noRd@[ L}LV#*ghC !"M~ *qbwy!-K@ Aк˟_rY;WÇ/]h'Ssy!;v0'dj) x~n_ꢮ]+ 5w/v^gSwL_;%Pp᩟F_pnY}OtSS?ºgT[jF82}&l1q;+|)y;=㼪 uy9DEǨeCJ Rڸi~Oom؟wlLAaih&yN+Զ=agSQl 2g!DcP] BHY'&ň6OxLŵ%:Le:" 0z7snJ}:@"k7\LuI!gIqd㊄F{ H]ha! UfIΘ"\vy̹rxG f:m5Cˊi[ǤEq&j''8J2Q| (XrN 9g 3Tw`Pƴ(J`첈]+f~c7]j:c!APj(iXAz~I>*\ΛW&ill#T{BY*sѶ`'1L^-KߴׁE;Lِ6ie\{eQE兝{5MMV\t^?[H!c(Lr>^QeM={$[\7@ w9yP䟐Hݯ$T(ʭP黌I$8c~]p{A^M%^ &1%|7A@ɪdJ!B!Bmq}OQDwm{7+v 0{V.VI΄=XroT\}7[țIQ^AΙeNQ63hΜp*l&kFL`C2]IHLr)00RH"RARH aӊ~2L&d"L%Ʉ"q1h53ՖGI fL&I3L&ɤ3t:S20ȄAd0Cj+ʡԾOɼ$D^2* 8g:*Eyi>ABXg)P[kFME0H&g5d{Y#5? ^bSuF@O /틐MxVcP|da]qơZ6i3zc[ ;yNi*"ݐn~lf+r CT%_?1qM]еK&IwƦnpe7o矷E/^n:D'0B# AHD1EvܚU-L:3ѐVtOYo߹kvT/U/y3}طDbFLPke2a7AС5hfA~j$5k@]M|ܴsԇwfs L).k'T@}ee; z|20jhII ~,uDzGPp{y^km,L0BU_Uռw[^nqk/m:n1?hW|1[쿧<nDbAv:un]?:uԪOФ[GsbԻw@^^یJp!FoֶcN'0}[3!W|:e]ަ͡xQuS>Zbf'm:GwxQ#MdEuK_Z#{zE;u逎͊}u|ɐFӱnlǟp4<'wiѪGRR>k6!aߑNڢU_wJIk2[g.;kԒY?o΄LRRTNZ,w2t:1 TA'6|ޒW=:횷v̐w)@Yw5=yA-[t 7VjVqAy۾IPjtzz9F0};hϜɿ$N:4kkӭjSO?gTX$Z(4%o֦kk3t$% ~цҁ7 ?]vӰ?|UZlR}m"K*f.ubtm$C4Qwr0V76j;9deֽZ3MƧ_qQ|Ϧ-tEGkGmKڿvT9kspf˪ "Ƨ_M>wCָ-^sa#z}<>o|&Pɫ5N2Vkr9Gg7y%WJ3 T] 5+?E.>c^4?Z^z O6Z]jKiRWRH)@e.2$)e(% b&$"DQ#Ծ[.n~'kM&v5݀[5KT<~9Lmq}MU4r)?/sOm3V~o$ %A{ZuO.ET'}vƶ<83DS;dzŤ1gl׬eף/ip<}&~d.;bisMHUkU4=ᤎ9,댋PVo[f5֬]zހһ7mVEBH ""dyXU]mϹP:hKF X&v((`/ؐ"XF +J ;R}f眽Ǯ[-Z{Dݑo[mJnbI0{]twVvpq5AlΫN'QE"EHb7稣a_ fV2=8Qp^T\\\R\ڠX)*iN2k!V׿Ztf*EU6zɼoddP%iD1 (`+4:CT9OBÐ a"I[&qbm\*[ĉUyu8|G}qYMN鱿.crǏ=u+#D[>4Gy{J'})9vNl{{]v@IJ;X?ۓܵ}UEű$[z`$ Iģ3,xqYOu[æWld`1vXP[`& ǫֿCw֍l·Ȓϙ !(6'\Ƕ/~omcJ)khl <Ǯy#;~u 哞ѷkP><4yƘN!R_)%7+2FBE+wgC> lAA|i̐!!2 ~cbi]Gq8̐ғdH?k@!w=3/lwU5i I~Reuc zo߁ xO>hxaצ/z~l87{o^6⋲5iCX,Uid gc&q珿|#C'Lfm"UJ r{I=բ !<Ǯ} 1k`߼m{6rEdt7W,W;lu $ĀBf<ƚ*Bk pjI䨟,h+u,9D֨dAhJ=ŀ!T5i'!8,sxF:76r.B'IĪPSbKB`<]&]JK^IPzo*2O˩ݕ2{u9sT`Y:0o:6ʘz8qlRN Ɍ@U꼫3 lDg.4i3y (v( 5P|J0R&q='ZR &]x!(3G3wg'I*̣Sk 2H+L𝆮q#?so~gwOh TH)h>Aڦb#l{T|A2hgПPX=L3N$fk)$c!DR_p IDATAqR 4-#(gjv_7zl\w ̑S6(qx[˓(Ivl6:cL!`QS dC YkM@<ƩH(gK,OЏ@&Vr;#ۓb@j*zu;Qz9׺~}zK߿첱Hg#uY`>ܐ'҅?KdZVlT'pE 88dbY,a{[woj&L":Yg:KPFiU: rrI9#Jlm2EYAlSFHa P0zTfxV我8 [ٜ]3!UAY.WBԑI6oV5jjD`*,uO )c(s\gFP=]:Ni@=_vE~O1ڎ$jr[/,]/H""4]TQ}[= Ͱ˔I !M>sr ɹŔ8Q*ēw9,eHJ~ghlsGH%iCE!F)dMCݶFkP G { #T 9=,*$O? s呤̫,F;q0G_fR=b$~@lxbTt/ }t(jwqۼD ۙΙ1GL oDêlCH@ڮSQQ7׀3ERJk'("-d$WUyY2lB(c@AL츟&# S4=[B_)Ebj8 j44 `/ukTeX/>wCܦjNZR:gW#ȬR} :R+M>voS9֪"RܾL옊b]i4Teo3e@AYY|FF)9@}&(+ ΅K$RT'ФIiзlP^[GR)ȩջJӧRcͭ{sB+\ru*Y}Aq-]2W2Tyf= :t#R"7te+c< Pqt9I"XzCQJb|/y{e#ބdv^E$L_ L h2ey@B:q 2Rzd}L"UW39R4c: ܧf/we:hЄQI)i"0AAXQTSSG1p0N:VURU HB8rUX(MƭgC%&DDfJ)!BfdӢQ,!\_yW%B /*8aKbI0D&lM&4DlRVLdrAL 9:iTfks8E^'&/ ˰F(=zcV LmҤb-iMգEݑ33%~P.e:5[ȑL>iFzj!RSeMcJbDLϣgbX< z1#Cd\לQF:ln 23u8 ^NU(y%_+n&@STn}}~QJȯrH=B-){8Л]2kMsO_65% qIĉv=:жpV ang -OK" !!2o~gԬV rd\Dχ!#$Ms68w4k{c϶5?TNY;aƘ׳uy](LIa{BL=mxyXK @z>nH X(P6XDiB7k"X̙]=UKw3A&,;nPRpno-w.42& Ӣ=ACd`dRz$ODB&*鍡kc,Bȝ8z @2vr޴q2;C (:I䒡@ QU9euU !.55b]29zMLa5]@T$)Aȃ0d#g@GqK ,%uIK7_Wz˪:˙n.(-:;XHܻDcD`)hqzw:;oyp7wFHS*T}VYjAI& iFI45V 8SFvGf8qD{Q$rEԣ^'!do)lxHK3\UF!Tջy=V2u( KО;Wmkx ӭ/BF?(V)w4X[aG9ϫ)oS5稵VJpIOaW-x3pOLX'B,L*ݞD.pAk8:SOJ5ZH$ ˤe[lwJ>L?MӐwtU I{+b[ ?7؂GMl\R cBk/}])f*," k[+m`E@_!Dd3);Zԗ)X"5ӤnD<91Ԇz}2iIMdžl 3]&ʃJ{DZUѥEEj t9fPu8SfYV QOHE@j LGm.9xGsL$\aI$ȒD܏g1zY1Zz 2THbGیBU$Y`)\"SfZ7F"jArgCF:\꓿QHeW,c39ӑdrlqvPc(fEӐŭ7 {rҨyqf6I:3W(Ie1dNQoZDikD>3А T`aIVHpK% *AG:S#"(XU8#gwȽ`R#@8uꠝ~YOSU}Ȝ\ iWUj`2 Jzڹ:h^3ꁀIx(/5nLv3Ij5)$D],W0C[xoOBgK \]j:<ҏ`IQ/X[B ˔5OAT,܃m{&ʗ_sH"ǘ$#&UKDMI@.NJȉPH@CD'ƈ ^ QEp(p^`G|i'_RpjzSz ./':8yF%6)@L? H).z:eM)$<<F$RXh-i]l*1Ò:Nm,FsK5?[,푶̓Vp.(AZ^yJ_෯X<(;6e ]*U?G1n^h,\#"UځyNR |;:ƷєB6xɄ1ΤK7Ѓq#MMMkJr>“1K"8!0D*"ӳv#H7yΐIn .,`A:d$%RױeF%7п*3B!#Q={7e#qq>BHLmZk,]:Ö\0}!(Y,qQwd]ov4 ġ9 N!|UOmߐzre2\ˊԁ*R Z$Dbd)ƌK %HXm2$c@dM:s],MeQɪ5 k{FՏ@t[ntRPoO׉!cu=H&z n߆khv!!IJs.ߔf{0 e@䵂R_sXvԔ3 UzP0٦:s "֧"{P *G$uOA#(}ׯQJ|{H>WOZYW9j7Im#hE)}.;g9<'"L {}hR/Rm] _1%OFY5{OBܘ\h퉚#00>)Hhl 31WYqœ*kpҫU1:BB7ް$cO %k6WTvnBJO#s`%OIwo6qp:/Χoo Do:ŭ%D( Hcd{xBYS&H3QֽMAM@ N{%T00T|IaUUq7T=t?Ǡj+"sڒsYX%"^卛RiĴ@  |D^Ց}gP |޲^e],2ĭgPE|TZROke#))I0]tQ]sq\b:Q]yc5qm9BpC`UnKɢϘb&1JthC]Ze3'557)4sz+Ow!H.셉ei%١3C2wnKaߍ3M'D(37&xLsNOROj 1!᳍ ).,JcW[`Fu 327b2[Y+CS3ϐ(#Q3Sim ,b۵ΙY{2IenlMÔ/>تIh#@lRA*/m2IխZmP.OaRmz~m6gnW_t~SGV5}s`iR'LWD*.:t`?qW2)>:>6_ >a2z;'6m 13ozOLtcB׾;W WՔO4X|R@`%Ld/iJM#?;c܏_6y/rts7qO@OVvԍoΚJJL*@ |齏7/_SəZ l;^8}ʷ_ꝧdbpods9Uj:=ro';8}ߜ>S۟Wӧ;-R-|e ќ)3zY!ܽ|GS~\|a\vI9Ún?N47J2IL}>sΘ sYEEEa^e"t}rf&c"1ҹW_38҄pCѻC,퐥}`ɡC|9p+dw0-RY?T}:3y3t̀Zqݠ<)&ɰ>דghs7=~Yg0z`#CJ3}U%4k|]#&LfΘ8(Aof,XqpY."m%(^Fq'q"DB ,D.[$8ŵ8HD c $$R"29  yEEEeeyLJ_] :6* 0,-/t# ͝\-ZOW> @ 3K'C!hO<!6ud;_;2|n/7]/仞zpUWJxKrQnOF7~9o<:z&y\gWF۷]u]W|=}:>0wzXthC]VU?#~Kvnzz3˯xae 8S0Od)$q*Ca%hF<_r=H} MSaFBoV)Ҕ2LY ׮罗<YIݦB,r9.9"IER * :rF[fи*an+s! vCp@'RWNJN;gb迳nΚ)#APYIكm/9J)N}xGO 2+,+yQ-VyjRHfzF6dLcAK$,H1$B/j;z 8&ajKV2$8Q>![!cX>rEW5m!ŽJ=Z4Zi!5 1E:p'pc5rɽza* s#ZЦ#󙙌9J#'@ai )w͕|\N04ɉ7>|OF>}haNٿ;`ضQCR<l?f|[0PՈLd 7;c(9Ch'Hj.B,Jil_Ph)ekO*3$I6};m;t{a~iA7uDrSA!#ꟷ~yQ%1Zq$UқSAb^i*%o2{B_"to31yxl ]:wZdDI.mn;/&P<\qXFMV$;0Z58|׮D‰iƫ7.o[=\toV9}QGJV1KGM?NG5U>ׇKDexq",~輞+qn}񷍃u3{'$r}9pO_:d؄EB fBu7̉mK?o/@TvʈOWo3/PkkdG\s?x%}{rW%1y.4' ,HEbuz@ś|:_w;t:j%&W^wٴ߶?Y[Čgn,-@EW8Vĸ摱xnQ M[m6BR.o|rWͲ.xQ# w޸*II܌KlfƺN?eur7cF X}c=EdMl" Ee+ Snpxڙ6S7DJ~tN]\8ETqۅD4:kHO!P/]T'aЍbkǮ^=cJ?odrﻗ4 Ī^ N2cY7k$='!P͚YX}c/ f:u+1=uaMu3=ǻ=Oh[Z9x-]|ϗ.yqu y~qܞ?42suQuӏÀgqHsLcPS%ɰ'L~?x䋩  [D ͓_~Y_D>h,^r#izbQqq?יwHi8)tyu;* $\Uݚ)L <ǔW R5Ƴ)=c0AHDI,dXZ*G&ZG$}30Nuȣ1&RB,T5G* rdLD4ΘBrE9IR^\PɄk?:qUX,3sA%0p d /ftS*˜€%[;|BTpi :=P:v3t躾W˟58>{rW.}FT񊶡y 'FοecRDVwŬ=]7R"4TMS]i_$I",ߏӏ՜QE@#lh~^&?Nkev9O~8yI?SrOkev9O|̙cu'6vƧʽG;fl`)9{ɫt"I5ˊ$Ͷ'ÝRXin{̍ "@ifGk~cˏ %KDH)&sRN,ʟ"Xѡ 2N P:K2eUDʤ*k\˦lrs̬^ >TAwO iIFW=-50hPҦd]ִݴu#WނTQϜc*`ev=cn:=cq*=v[%!x)hS© PXVI{XGؽd(8s8e?lg/j~ā Ƨ=r;kj2g;4SFV\&7L~stK[WEIRyfGԈ˿fGOlc9̖3#򀃈&%[_)j^| tWۗL] $XԲ_z>n9!2Xu؉?KI$ m=;=K.躧-ww?{wmG4PefX* o wn1m/FbȂκ邝\{vy6?ǯiŀ_ӺV;upՂIGQEI[Z5ggr_)Mgq΋r0J?gmK$5g-lzAB&I"$"{eemT #uہQu1|*6pL˚e370U]ZrCަˋ~4EH@RYQͫ( cg/j~d($ `Yۓ/>m-nYjZ"%ot闞xۜE;`#NF,*4xpX ~Ɛ B4 ABFDqk-v/a` !d땫;\ww.\ 3_V#\Rۦ\?6<E9;|=lbx?`Gqg1y_cak;]'[4Bֺc>LJvlkYiúlyowZ4c+!yv!VؓOfx=ߟ~tϏDRJE]3k)w̅[b)EU͏uմr(|#I"I09XfaŒ`l#Q08yb G$ĉH$@8 KJ H$K)0 r9E"8N8QDHDz(TqK^n!Q^*!?zR<*'& Iq%I>)"A 9F_1@Sda 0 e-6FZ1TiRE)Y*1(ll0Ӏ7M[Y.RUh.$_rl}0V]#i&ufDqưawWUE.;!e#?qS?:_5ra;77cIx+_ރ~t9B{mKH}j'I~ݻd o`d~\7? O y/owq|7=mxM^Mן۱ߥ~M]ox`s=XT~mӱ^r8%ZLUz_1R$tb)Ay?ƀˡzymy7{pP*VB$D,3o]t.?Y_r A((?PqZ*z4O`F4o$JJZ!+nvJt_ @bȈ1JiҤCGUIH ,ݰϣ7|]ay0. A~ 6|x2_wN0*/! H Bmm`a7?|7Jiu3b82ыQjYMN#FeO|iQ4-eľD[*B!`y8+ /LY:S]zJ'~M6+k?'{nY͕^x ?勵=msqsv>y- +qƚCfg=ĵl4oU(b)%pH5E̪Xer~ĺ{J8q$&q67 ?Eη7.٬Sč>3 NEkmJ *qs}/{T ThLQRXqr^ᙏOi(lMWx@>6&w6sN [w{`!~rv! o~mESBZ@piP¶X`܄3F@B -PyM˞1|S%ҢM}چ{ rY+Ri%C"ڂ%CQ"0[@-&ܭ-eE P&"TrxS/PPfez8_S{=}u C@ uK 1mTX!@j=!E%%#6_Gu]'+3GJij<5 axN{˜eWr;NAu=IYB/Gwwe'.Qf[kDTMvn Xh'.**QK\u]?k*ONY /Gz<t[q.?y=:.TU#$2s3n찗&-Z6&E\tB/T-G@$ε;1Ojb(*+ 8cl;Ɏ9NEkvߒ԰00v\ ֪+!Dq|MmxqϧL@aI".Ia/y߰dPGІ[uDJr>7d<̅a. CŻ)e'q'IjTM=[4LH@ĵU6TT& IDs$"GJG6ucfVT0 :!1z +tH8 IDATP(Wc/"a&jvmZnӮXq]U}Ob10i_긾C:TzintWwG&&=f!Q* [k{Mr;)8(L~ٹg=,nW=ytQ7pv򋿌JבLЫM?/|ݡWTX٦v:`gwnc|}ų;y?97$x͑+VT6 ?m8}@U[y]_6i}$<2 {3y f_üiA.BMkڤmRN?{W]wO'{CJ*6ߴ+RIVXQ5h+X򝲪@5.)G$"IBRs(\c(\0L$"!ZQ 6/ ujZiE"dąe/ %$EBHR&I"ABx@2(9RH%$0 1)Q?c4GM0ʆB4QXRfT?ĝA6#̖ QS[[>yB[ypHH9Ou;O;S;\]~[@$(ocx?iE%g0>.2Z˖>Qv2Zk 87$fDB﯀ 1Ch%cJq"S JzW}e*H*WlM vТ][ ٵr֟Ce $l7?^o޳ Ng#DD Sr_TVi%.`J}%;k `ɱCeE:~YA`9 ,9Q8ԝn7@A$7nxڪk$c1IdiL}aɜjv|/J~f J໾6-9!Xj̪Jjme)$UrIUI-]ֿK'K_)SJȵ:="qy yhP_4Nb׺U zU[?}zx L[78 MupTRɪ͕P֬tA= r\)f; 1wˡrXK='Kg64-{Y~aQ5!C[*yYL(:rT)dtd_]gcU#;}:Zm3}N{if{[㣇~puۤo^-bC]qQqq8"DH.@ALuԭA@" Ѵq\HI"HAW͘YIˎ홿逞7~j{_X1#Qu@ВDQ55ZbyMx),(IP{%ځ(ra.rS%5/5cˡZX4$BI Ԫ|SkYǴ:mc&&6 :NTӆ\5 szh"^@Tʚ;;_\krsXL*p'_{I% 1 BFZ_"Ħl ~=[slt]Iv"1oK0yGq1O])u]uBޡ=Q!Pi<ЉA&*RWWGTxS3 1tHIDۿ:idR 8*()%}:ܒ=IsƘ"qUhWn);7$^E*K6IZi3}iܙ wT!Hl\_۷nqղI vnx1,)ȵسU0X\䩛S7^#PwM& ݖl9 ?0M-9sZFGBW,[np!?K+Y˚( p6`Ke_oN!""vn`"? ̨W\vx~H*7!lZ{{[_Æ4=aH]eC-Lס AK޺ƥ%8ɚ?X9[O [64 M?SsJbvHaװ0"7jkw?e Q=+*gBje{ܲ l~О3Tl˚9a㟆^׭ w vÜ=s=ٚlO_[o׃ftnj%83% C'(q=Xog6 ?L_[r&QݬkkXy CDB@6PXEU|`"es646eZ dTly].SB䣈$Zt 9ɼ,Lēa}ѓl 62ǀsn|zDu V)UJ7}gNEQa]vDTn&ъJ)(eq֢EEQBX$ "QJr\.d YݲkʻuaX7MejSg7M嬂E8P%0a@DTU)9g:`fͯr|XѼea1ZZ@.rYU-zsܒ <{?jsŌ1T*ɬBꉚ^s(]LГGϥ6l*sGv*}JF>\d^;tuʹ'Fjڦ՗呀ss.B(qQ޹τCqK%kT4dA)P~گ_.Rn'6ʍmE^go 6/ڤ[߾++m\#lY^t#]wcõqF;y>JҮAY9,kˮo\ӆF?~={ں\O#MV܁s}N9eپ존y J7aYӎYey_eQ=Imd `,w~S$o.UOƗ԰K͵4M{7>n]hòū.xE}ïbsoJrg+/7|{>u҄ \LHm/û^ޠ:?JB3_Xĥ)pyW|Z3{d_Jˢ$qγu`RJ4g΃ ^GF'9W6g\2unC/] b ?u'sW\ܻg zm 3\r($FϞ$yg\[ Vp]Ğ>'G8\+?>V<1o.cвK:-|ڂUt?d_ys?/bOܭJ|qœ/Zl}S~swNh֒]E~sܭTے))),VTynA Zb Hfޙ_ ]8)L:g^_kuD˙ QY%(`=is<{~k//w}g<<|-Y0~ySXe"ڹb -[eI)e<6&[6~qϺuk0G"|vcnsFWmKuώNUxcsq+UG*heR!0XgN}3S; zKȆ:gIiQ 3AHv`of`Jʹnۓ5ISJrVeh\6סJJy(---+/ۺu=yjX{h}þ='HHhCd],)!LϠp{s8L ^ےn6s#?orEw_تSՏ/AV53n]3ÉĞjw=}1dˆ_C"R~㦊o ڙ{V5@>sv@L>)Rl S z]GPd9C2!khă̡DH*}a n򱗮ʯt݄ sbX[|+x 9-~{S~A*dcFʹôitB}Sˆ]Ө a;Km[$w ^}Mx"qθ,֊1&8PJ9wLw2U_oSS֛d@*%W]CFopV8v\Z[=: @EOToܸṥ%Wݺa^G.@5͐Rg07Ayx-9)܉k&Tu?DiU#+^F,^V*^Ss&sa;ϻjtc@GcM7?!ƕ?L1`䗕"h\MuAC6>d~oGvW mz됇_m ?X;[.=ph_1_RgՔ񷇮oMZ/=}l|c+C8Q'93N,s5Mn<__I/yl*y˥ORAۿ]u 1Z3mx*'AC2dsggråO.bKizJH}B𲽮ǻfW,z.^Įzxc'8z{];`P.>Fu ́ʩޭϛk6}vM}/Tm\+czʡe@E6~|5y-~wԸe6}}wt〱@G z5r"%bgSzq@F9hB!pm31M[U˟: W?0HD$릍9IӉk*E3?9}P1,Lq{|l7]9fid9;DZm~_mWY&ś7697{'Q^γG3Xic_OW*d {]k??I,=YR;LB)%f3?ZĴ.lL/sBh3WivG_mW^"퇁Pmvrz0/$8Ҟh?<0 ;srh;5F/Vrǵ'?w5V -[%t/rJpVץ-uCUtirK~ń (rbuͩ ~wg@s63h]e >x]ek;# AKa\so7k><?ouʭAC] ]| _vާ/9/>=!DDP)}ehc%B/~ff}ƙ/]S ߾ /Enǧ Sle隿 ϭ2.eH2h[Ǻ7`y+R"Jd,ȅ T$1OeF$pA 2`tdJ3O9J6h|)0&d*åSEpBJ 8 G,;I>˚ۥ{dAT$C$T2݌bDKFfFj=fA$gs]57{JtBC@)3 ݙhJRϛ 8qK!\_Skb]wtkgOtYp8ΏN'H°ᔾ tjVE҆ڸ7/ IDATS9f}I@Qpva~ȴt^eT=0ַ͗í1璥0 0`)ckiIIb!#yْ\3^ (n㔼x;˦YyWk! 8g֗mhzG{$ g;Qe:2s~JӋ4K wyJBHoϙɜr}/16oDjO_$؎H2Цx C걫~"T6ar]3P:)/wFXyFqp+x˦Dp+^}^8iuAe2B8ah7p; TBET9n>RH'(w&H7c s1a{wb9Be X9(ɖZQE*Tf$+i ۤU8*ԓ=H~vX*\$)]EA @7!$/7]j.5g["%%)闦AH@)ܚ(eG}11Jw{ѲHmMҝx Z?y`BJu-lG5& w6}ƽS{^!R@'Jz-BDA0s(Zd8ْDY)2"-2Z[+BECm1_z9eS/t 2EJJi|)OK=}6ffgh`V̬)n Tf6 㖤V%!a21wB/[0@2)bsIWk3&Θ1&bEy ` ÒR Q,@ HMi}_cGђ_ۡ8cdS*14;fޭn1Sa"Ȯ?|y'tyov ~VFH9h̄dfjpYzss;2vgp&WBg|%)2iSqߚIlk{41 iJS3I-0j4\D:Fł?hMx!,FENCG:yCrr;6mWg#-_@(5^T+R:&A@RWJD,Tӟd ߧCѼPOFRz;`E#y;}?yMכ9j-"%8BVI%tR%$a5]~d@f$PP2EN o;7jmu>|2[[齂I1 N[ mFӌ;M f;@F+۽!deZ* )&R,) 4/M~miV2wG]sd\](0JfHfRoRjO#ݢZ%QH6 Nݗl\a2"gŐ:©-.%>%s!\(J(tmbZyOE>7F~6yoICTF߮O1PPih L9_ك&QLVQ"=""O(ʂTG\_} &,㌤"ތRdK~.X'i1΂0$)D$̅$Z c񏝩3$TwI3 $ ty?R#l ʢe\.x1 $Y yxGǿ7P~/s\-Iʅ:^+J"mЇ(b#CfyN`)x#|[^*"=ll&6ⱷ->&NH)v1 <_5J O!+d̄h>(:db119!\\{cEq]^IuPJ;M_19 48P~mPmG>S k[GHi)g7ȶMƁ92&0D̒fuiQzZ͔,9)Kqh'ׁF<ތ~HD Ab@TLZnQ!ђR"T66FA_Fq4Bzagp&3%{])^0ATxѶ63S'ANfD)fnl_)ƸDIMI(q8Ι_?HPA%p^ | q xkƲWZdz5}8!DBc OhYX$3 {=L;c 簍mVր %p'YW2-GolD*ZJEi[ZnfJ*[4!"^lv<&If#>TjSAjg$r0`}Rq L9"⌅\~_YUSLzlĐi2瀳Mw }8("tL >3i7Ol|ҫ0g8!8&E?1f~mJR3f9dY艣< -vMSyemD)jT QQ=G|'cRgToDXPLJ%`S0LT&ÊP@± OB'jJVEm/~)M YhzMǞ>[x&ICR)P*'YVEޣ<\E-D)"m`f;vP4&pJݱ>6 c&v=ߏ٤L'ƢJzV62^.7l!ou@uKʆ3]J!bDraRd1]ԶExr^ xtsM@J^tg"Rid,u2x")seGcCҞ+$M_N5I)e.=&QQ*vyZ2lQH,`i{;MPqXBwZ[x$d8 8h\]2Y& m.2Ԍ02|7!R SC]{("F0Ll(:aN7O88d/ (RR +Bc)=C;sH "aՅSz"aJHR j  XW.nk8n{Ȅma]@aIu:P pfmLX=+ Re]rN )``="f0t' TW82D&bIi\)%Нqr\Д4@:CiM 4jmqnͮ) Y$ǹ6')0t@q@ /QIglά1M#c HY4n[XX/tLH-e |55eR1 SP8>ʌ(ڧBL*HR r6 6vpfGE@Nd{&;c<"c*# `h3`Р 8ה:K!R))IMєJ;s?v:8ֻ1w[uT%|g*%ąu.K9"]򐳀uyBFuuRH`(d0+7z2(>_(_.ҩiV*aշ8A0f-1d$]\;6fȷ3jѲ!]39*)W/s@qLDa `r?fƑՍw8$}$t 9%s@/GJ~-I:8HX[*P0`)vmد)ڿWk>N93r嵛եRigF3RT6[}s{y""E]Ni:ySD?#$m &XLoT6:RR :4k@bLŗ.1"Zh+=DO5}5 phi_rOjRoLIFHI4uD$S F$-&ږz'sG%PZn|zz-١h[qw)6pi,(P؄ 3 2h)TY:/ [:$ ) fLa>/Q/eLzJ3 lq&EM CmĒE :섣Vlo}s/1{7+MCȼ];kϋTw{Q%ӳgH &PA)iCXJI`J~ `R$la 96F(c Η{&Mm[:/eî Hq%,"*&gCEa׃1kؓ!梤F5]Txo25(RТqɃ_evRzTbb .6YĢ I" ƴ,lx m/Wo񥸖Gh=ݯ7@Kgu򅬘I=zo{g :L )ca;6M)0GO߾uܶu),9SvrA L q@(@()UvNO0gJG(3Hq0!Zb+YClٚ$[UQW!%&^:;x'igm{n^L@+xB1ƸuɆy )1/)S#Rna,=Y np$Ba}cRBj='ZL?-HǷR.THIUBAZ5j B(iȵ1eΙhIمv,󰰗#64R v7 "F% =z14(iXvkvi] ;: ڪOm۬lR^GJ 1ϝݢݚv?mf7R"+=T*Rj0kz!D,.9Mkde~Ќ7h9 .}oY7rJ맶me-=Fqa?}cϤOm+t>F<9>~rϽO>}<2ϻ@1?~sÖw_8I}!  g'_O!Zwg|7c{[(݆8s̙6! @Ю߸ܰ~z]Oӱ|F 9.?vS&UG)l灏|SWђImT8҇_Ͼ _zLu1칷6y769KϹ?ݬ_>CNwd{@|e)BhJ<&91"u`]A T5]xhۧdB0̅ €ba~abl\lwkztSqK=VGЁ1mHt@)S߂aI$'ڨFBIlu.ۛ6:=rUYX$U;E~E_nR ;MHRX aqu?r~է wp,ga""Fr*}Ow:&G^_Ϛ;eִFp|2rnG̚np޿/?悥#nm?Ko`8XcW(?5$xp0raY:"|JJ 0@?dj!&Kllq[oZd1mgqi~MuN(XRgaVG.M؅~^ B?yw CdT )uӧ<*^#۳cfJF.TR2j Z~̌wBF,؊e; IDATFsЖT*άM$M,`5vԂTJ8c)Y^ͻCf3s;ȆԒ De?S}ZyL\fpohQLeRuDo>Nah|E*时9԰.Z_Ѣ%OEkf[yV$λ .K.껿j滳k3ъeus3jzubpô7F0+/wrkG\ԱLXqdvQ#7 ̎5 E4{cQ>v<{=+>/v:]~wO%go{輎#VکO'/0vq]'%m}xE?e3x]K}degzKUtϙ!k~k2=v;~KV弇=fN9EZ{#wv;sr yB ]K8PŻ3312 ɔ2䟷?1 KrE@rLjlJ)B@#^AP;8VKZ'J`(%8&2a ySTq (-)))5`%RH[Q6 @N.;E/֜pCvy1p̮[)hN>Ҥ]i4Bj`<lgs>qz=`u)cwT s/W˃RaWzI|2Xv=d_t56F;P趿 J"CwLb|9=X-EI3WH `#@QuvMI0G~/hݔn9[z2cw^>m#K!v:m}nApYXkLȵEJx΅A.0'8ܲmǮTcSQd4#AM,OؗxA3X HvӬ-Bƀ@a\@nL@Ȣ/ ))A+eٺGX mPudqQ?YuaQ$^fW5=w; 4LO];Fx׉>3:겖jҕjuTѿu:V;83ǸSz:ma/}dݫ.-7V69䈖ߺf咖>o{\1ͫM_=zdlzͥr J:OsG}ѱ5%~oP>?wf!op.;+N#X#w?y ul[|8궻^SE~2Z%%]q9GСaNn?s@@27@iܥ 8\ v9k-zwwsNaa>θƋ߭nY1~Vf̔l:+Z!e+% s9JZ;,pwrOGƦN'iӟh`S{6f쭶tf,2QЦQauY51v_{~~ ֡ŀOZ5_VGeh73yj\O=r6}a?M hӱbYKHcObnŚKگ;5+uNZMmg{}h/xßWJO}s&>#ݞ}Cމw(Y7`.6U0|>"")`{{x)3o>JD'̿OW_4#tW=kϑ{~ډ?  | ~YLMX1dC@JUZͥ,\.QZZ >a:Ѕ1kIBC&&̌K%!CubW!9:i[t4o60ٚt FMm4W`*)$ g _; '3Qp@@(BhtMK cYɤSM)Őq2mn/`牒qicáh 3!#$8 8G#|$B#, CC\3nD^ 9Bp}lHG)kSUYCE[,d(T@A4qMId&ȎzTZWh)QR2Cd揶"[I,| `!@V'#")!I )ת!%kIU[ƠMB/B$ιV [Yl=uq(kfꋒd)]W&D|s iu>4#۴;_,S/XdM?wYpzE }u:7`-zEnUy&_w=_o x@P@X^ 6Rw*2 ۟91矗G>Z4XÇ8 u};&<`R!bU 5 O=rzι\!Xu%7x#ܝ?o )Eq<hD{5bzPqic8: ʅ 5O'$Zb1y^ +:ؼv7+D5vs0 @,neATs-%.t@y߭skoxwݞKD t>yoWEbԹUM\A?nz'QE ܴJU6S>/xCcd} ,iGm)\F.%Rb94~nUϻk9id:*':MtcSSS,xʾQjzh^?E@tn1FKJ W~:fsVm3g(6Myi7ny]V~Gy>ǕifMirڋmwms<СT~:Z>C,nbž'mIv36{'85o:Wߝ2|qt%609wL>\޷v_n28Q>QDRqd\;]"=qB~w˕wr>]7٦!܊]O>bfw*= thm*&CX ( T(է~R)5ɈZ*iLs*z%Y$/eR$d:E 0wR +IڈZ;8r9L_$Jd,X| ̆YY{ϙhCFVV^+8URYpg9N=/cͻ 5569QC=W0Xi~W}gcW~7m9y;?_3ym !R%@YyYI j$2^)$P @UMzNz{{5M,e j!i]D{Y*f#2{zT{0JҊ#uO:溠v{vOʃZi$֎o}pcO}>Z?#U-^}v6MQus+ݦ\tYk*ՇEuMxj0*ԬC5OCmXffA]cF†t]ּ: zfN.zZHꟼ@AǞ^߬*ZTrםW<}k5.~{B/8m?~ )Iv)?oczz1y+gš~Nx}zb:q75sxެaBʫ v#+'͔E' ]S}+qDv}y,"`tiґ6l{_o#_`}GcX LIaM@,٭w}~z;^7Կ>wʡ;"ccYD.gpGL(iwH!(z#u`Tʞ|o9A=G3CUW ֪_|uoż5>8&9"E2ZX馘yPǀ!kN:K!d,m6T9#wjQ4J}d-?#"s:Zr4q'5ΟIǦ1љ-K ,c#{rd < tZ"-pBo2 +=e*)v/`]I\ ൂ~JL&8sǷݟ|}/d$")"6ˇ5Yoi3֑[B^z}eZDi?*Ro|2r_<;&K<>~R#uZJEdǔmՑZYE {J].j@e͗&[[.+R$1""Oذʵ[jU54.oЕ+v=(cE*C&XAsX~3ӫL 6dԖf[*%_Qnқjo]zƣµA2*9ՌoNj=ruuq>"%jZ'⢠n-pEmY>k Bް]۲esVʰ. yQIGBƃ\.YIF.G{IUdTafIA5!b(*k 1 5&LkV"QA A'w[u~T=߼~f龷n9y8}&ɢ.% |BK$%v/^9@վy-ꪥˠ`%=,ǰzu啡 Z')[TL^f=G׭P͟zKji]ԵbOLM2nz}nm?W/ 1s6L()2𖕐3ι/ܞWU׮)7/+2?Վnm1Y6 s<ɐqOȝn0ۗ!@?ohdAfZnnhuix[Yq+_50]8K|[4Ⱦw}[4;D\4iVɂ% f{WS7:iҬuD,oms \pÒ )H/-gJ*!ZPָSؼy ynpa$))},:q̒f6{^Mq,rS7ߙX79.ӽ m'xhD?zv_D UhT $jw@RݶtV&ip΂ 8 I( utZkPR t=$GFOQa[iq4CgsclɣR]3V.ʀA5+eF]@ArCrC%6omLjp P2|ÓOxe'M"+I(xE^=GͺcV*[uX 6?zp/忟ZEOhWDۦ?>g7o+7[mB =\[[[S#ծ@BFQ(1@kj?J!E̙ 7G1(EQIM$@RaQOcT1LD(IR0^DQJtiیq7m?)TOO PLg<Ͼdj+yᶯG=O)MiWn`q"+]PL㻷:ʗ?liGZ*(s{}GdnЍ*nHVo–3{N)*K+VEep_߫wϨED溫Cy̜;<[vTo(UYͿoέ c^x [qE]֑s259Aj|}w:Y=_tkzqZܑ\?!C7FTm }y_O6TةHRY-۰۱E]^mO;dKe={)*1xtoBӶ%(sZzjnwEQn狲ѿ=>š}/Qo9 d_GzVl  bEbaW.z~ͺ񏷙wߞ|Wl%d$!L"Wﳀ]/ml[ BG șOioj}gldߒuG_6/yA8\$E HĘL5_QPCu *T,:#}IӮj'YTMS(If(M4!+hlOPY-_#b]-tzft&26HV"[=?f\jW?Cc1$ CNѓrma,Aɘ]UE*lSc, HpH5)^C!=`CUGҌRozqGςsTr{W !RC9pmL0S=;3v-FݬktX/9zJ{WfacH!$& O@@]HjHts.J_ɼ5Qa($dHUH B%Qi BDB 텣~T gLT*Nņ5ېv/ܒu$}0[6QzGT0{aA`Uk.][=Ol>+MC]LmEi|4{<AL&+|[Z@Ue6un!UBʊҹ :d'vV\Eʲ7سghđ7iw@חtY㦉# iW;K=7^F8qƈO6D~k}2j|Y=5ejҥ^t࿇ 4qMC-:g}ځ7Χl?Xc.^2ohs'/oldvnZةi ZukUVlI"R)H#"ren_ vso~Y םz,>䆞iWj^>gC3< %[jmrT#lƚskk y,*HB7r٧YbLޞVW]=i68WZìatZJR2!k|IVmyjSoƵeオKnxi^KR+`kTۅŽj񯣷f.l9Xbҥ￵Kn8glһd} 6g!].Ƌ>8A|uZxeKڼG]xr՚"^Mi " ڞ~4'W6ڭXLm^^v{? >};A36ŚX*jh*%Ɇaִ137SᄉKn8g4yw[1uאx˚.0ԏ =B k!Ej.xوJu%mM|wq-Vx}TMŒaج[ҺP9T2ƃ;^جr[6O3K_[o5^@o7}O% abBf>0;eOLL@5mny?>taAE(m.U8TuRXԢ&ԖU+WlIq-nx@:afe)k"J6ut-vҵ5WRoa}ϟ<'&"( w'j֏f Ph߁WF)F鷛7yq,H@X5: 5_ᡟ+̮,(L !CBHլ)P1E)ɺI*Y'2(VL~[72e[o"k2cp&+y_$a+#̜ym5Q'$D W2olK4b,!3⮛yReۣo|iE[_pm["?{ʇVrG{:,QϜoږ/9_(,p㝍F]+xz)jx*Fw7pD)eZ\1y?hnmqװG_ܯt.3 CglssH& R.t-njpLi*vb:XEU {P//{惩y^9 *5zb9ѽn "MKI곊< ~πaC+\u1yu/iZ?͇ꧧWY/%y+olCD/{]8|7o8c;6 Ĭe3ReEj^. :_/7RUԫz!?RUwz#gM<@3t 89ԆRos)eu zsUJ@ʆĖ5*Z%lT’4SѸ&^RZy(MSzF[.اor@V}Wj%)P43B:Z]9cQiQ$擨c&[WNJ=CZUL "ni,SHmRkjGd\-"8^ct:(B kgcRObܱS :lʺw*PmSD1¨dFl1Ŧ+7 7΃/?F8uF72H#}}Ǔu)вzA-Z=ܢDL3IJc;d" &C=&c>}:04=I^\Ɉ?$XϬ/aGcȟ վjvt+j =BF-ᵑYPP^kwLq9Q̥tdښPgb^2 tϢ | d y,4nQW Gɋh!Uc7I7;˘0! ;1QoΚvg%"7x~S>5/D.x@Hk"PK )I2."DL ")ҡ$RM$!d6'ӝ䮖Y_gz(6TdymAf;Pmsd@r(ܔQ RsQ(@%DxgOډuRwf/idU1" d2JD$}_x;O!/84W4C&B[[j^c=tb>lC 7$E@L14^PAV bj+0*9[&KˤT̪mM{%;яی#WLoK3ZTg(LߤsD mɧo ~X@LK'6LJ "z,sȀQ|va9ț&1Ƽ,YE8""E1qC]OĵA_OxOFY|dgfU4 ( .ctH2S4t3ϐEB@PSYIj@KU LA/ 1j| !d Qhntyn@14D@ey VnsH3RFKHR" ƸTp36- ޿3؉/θ ?MxFDopa\qx2 z{ ޤUnŁp̢=6PcmL+Ւ-VAy3N'@ 0 ow,a޺I?O6$]O) 1 (OQJc [kS mc vZcK)D b#9[ҸVjzwNPuCass8wQ[kNocToE6y2S;h͊@d\+jV!(8"pMk&b9mfGQC辿Eg'PuȌ,tE8cARL-$P%4*{2A+^h!g> 3zל[=CX U"P5MBzυrݳZzJL״;5D*'#]7pUPi?Lh˼GJ BRn阤JYjzT= /dSohLh 6p Sٛ tfJ>h׶H" t( "k^@鱸GRJ"mD]+޹dڹ&I*d;?AelMYҁT /Fɝ#*%U,o~W]d17ެs%Ɍd<Nx @EJDP ^J)$Y͎Ts}*BHG^=*ex l8,۳ىA#o+s5>u #nZTVb7+Ǯ務Lg+,`ssMocooYʳz,[tCg^9*d0.pLեC;ck' V]qyW)DُL$!ID¡lI,|}db{b M߹L RX_"۟:i% MD9fn:uB :F^$%ӑRETg0+9e|!spgSuJM!lc8SXJ)"aG|Š[ ](|YK;ZajsQ1k&"נwWڹimĠ1Z2q̘Ac5 㹣I}rv|fԺ'/ϣ]I! DA ,YlqRwraxq*O{u7c\)Ԝ$!D -PXZc.d jz[oX mkG: 1Pl71 }>mja$o)Wm ew@zjGT*L2%#%R/OzG a% 1|\tRFa(D -Nȳl(O?bN;;!fEڝoFF eLϙTA` 9$! 1ZΣ3M\ߴkX/)0 O[j*+ !H>CE R`AlqFPoRY]J&A[$I1DQjKXnm 25d3\ڶ,&fyaNIi 1;y09vX~HŒn)ft>}"Ayzɸgn1njams?@DQI*g>ADBi4g_iȠH:x<4$JzEOL*"0-Ck&`%yDDh0-!xh)pZ.vLE۝l=E&)>"#UexՋe=@vr%lJSVAGg8zo4ft'/0r@YW&SX zVk9uR~UdEO:x\GC[겳S1X6F`9Xx|K}Mm6ךGJsCe@񩎽102}GS*HogI*M ~OBr7c~[Cڟ,N,6&C/oD+uIc+T`+uCÚJKHD" CKe֒(5Ha_q oxQDHʑ`4PA朒\UFEd>IvVJ&XE-8Kq7׬{XjZ/Dth䝢+d eV-Ȕ/59fNdc`HJdmCd<彄ܪf3ME@)e;0.Ɯɫ۳X w*YX͈2"Aۜce7Rƥ9;B I(Wx !8cڞ7kaxe z[p K w>Z%UO#cη0]|)R![J9' m:qLMiHDSaRD"OW4fU?6:v]91B]! Bc0\%DQd✟8_Q)Z{-הn3I MmWOzG,w&6UBH&@zq{*fX=[56Yak|" !MCGII MJ&Fn1n6\PzL4@[׺UEt]2<92HʌDa೯6F̄$ŧ2|MwFm>;٣vlSo^,@]d P|2xCݠH:$FPz#f7 TskQpHr3~)s]܌ kJ2;K_42Qr'M h@5Q.&@Bk4 3%a{Q!G:vopΠnlJ>讝$ihhAUяs!$RLIH_J ๐;N3S?m5[vB2S2 7u"(hBC57"qBDBP^RRo%(B4Ii~GQx9Q:Zh gFMwwA,nvgRZlKfbNtjTm?a/r6Kl},G!I1'ޢBDWBĦҐ 'L˦4SaVgβXoKMA(bAMml- dμ/Utqiv3no>8g͍ $=‹F@t7`xg@o" clg!ey#aPx?0gs~ŰtzzMj3O{NFq]*fz:LF]Lͥ$cx$vL!<(T?/bD!R&If[y8w+HIꝇ0JPAZ>1=`b6)r`|)7KںT]QJ?;mπመL$ &LhvH~dr!d:33W4֨w-Rh܉ݟ qåoMo DMm*I( CZ ٞ3N~ϘrIv ;(;b\i2z"J0v]EW!?,2 =ɭ" \l;,+e`" 8WM'v.;Ps2!=_>)]JHD8A(yx?<4 \(wmOv:FKJ*d` &m/p3m0(Q(#؜TKF‚I6mxE1c.w6TmL뻤λ3ɫ Vb9 YUL@HZH"* ˥v?ӎ?hyOsJqGjCf2"ȱ+mlu0NtUf"&_a@6S0=ҜI6ohwΕ Wv,.#l|Nhh2YNq7'6i){||1"l0p(~L+Lɒ֦jjꪫ몫S55U,C[ ҵa]]JE; z]fya}ZF( S0{!TFHsc/H |}lNOꪷ|raˀ1-zocee;%yuk|ʘsy?*]20FwDn :EPy^Çې_ϙpV+ኑ[+:ob'gti 8@3ϝ7%d/%3u)6qo3>7<8vBaG{~N+vqS#1j6PowWs3:C`yi&G K&w3O]p1M1#Jg~򕛞{G!6/:k'L]$kB(J@Ts`WÀ)s8kΏf'.j=&ݏ)_|WM=7SINd/%Nի] (h7p잯~fQ+_/O9j}ӯ?>76yJ?7k޼O^㤶I}#w? 'Їnܻ} 'I*wNdosK}<鶓:@LK^7u4Ϧ" Qx_ZB-Ռa|i3S1ΠGy" gW̥KbGE0%gQEQFZA&T:E!I-ӧ6k̊qHO3~|w-cQ:έeQ9dQ%]x6LYoaJD" 'xY?͚m^Lo zO7?~?aǵQˊ7?Ǧ|ӿ ;S ;>㥁#:1g8 ;MlIR󍥢(9id;A")h[)fx5%v?a3ޛ4I McPQ>y^$ګ׃q;mN/SgG&C]Y(3a&&Lj󹅴=,fB;_\l(^wpA{dL}eEf1 HRJ)!'.:% l S44,&n'G|9Y!͎˂YyQ;~ɷ寳K~Q> RXcWC Hu8!0B*R ۵rp0bC=<C򙢦!7ZOE ;w}2m'v%13E~^alWe#4 HKb &R!$ 0%д עE?'djd]!oZ#И|, g׫V/_K毬 kV/XlF5H*_lk|%09]Ѳi岲eʖ-[ung"O'/?-}ެ[:cF޸5um8!2* x<p9+rt/T4 t+A\:iTGU,%ډ'8cGf hjtCb֣*qzնq| uMӎmD >ܯI,,[n´!aY^tX A=Jwa:3,kᅦA"Jʂv7qnEMUgdxa1A`osvÊBHtI;AC 2L |PRcAC` v?3`  <G^=+"3k5@S ǵRݏgU- O;\  ?/Ϋ}K]魗^2-'M  \~ھ>6K^zg~ri]i@^/ek/z帟 {%N|]>o ˑg9m8oq[LyfNaqqц%*^o߾C^,utgj@Q'j(w=5w4)BJl5!}4(RTZBI cz%_0| S+O롁 6y\zc}F=ymӢxPm0((] Ψsk{^<~?笳s #d9O$hƅ2E)VN3sZ8Ɓ]VU zN؎>ͿX :DA=^K_=džtIB TGl1쥝+} \%#P?%&qM1O![ǔz9牀uDٸ"8Q=Ԍ:TxiSy腗 )q7|Ccϒ_y~KԞvC>3[gV5]}q4be?VcE$P{zRc8GC"IQFi͘b6*KK/Ovr_?5(6{ޘsT4" r6]zs`LY;Re4V*1S)= 3?֫4'lYK} Tnn9ɇ?T&=Jƞ︆X!=QN:U?k; _#H!ݎ= ;1vAjYЧ=uY8=fyd?hN82]kA" ).{S"+%h] iyt {헟ܵ1[ʦ47HۂhÜ7Ǎ|id;"]KHd`jzwVgXpM+$ZpQm :;gcXszc~ : }k?zɃ?YOz_s8)6/l}c*LgjFɀ1mI\iZ_@" MdƻV~toByFn8ݎ=B`MMY0P2 IDATz m]7]|Ɛs;EBDƁ3ƵűL"D"A 8'ދͮ]Zzi5(LeIԼwʢE+~h^Z E/m}qf>`9瞹[ "B`g$+[D SRS&nCjr:_V)e:ǖ)eDdw +޼핟֤Z^]0uy]׿z1N{ӻ"S&ou^3%U1H}ųG׾ZNW_Y8x>vۿץy};vu {cFY [5.gc_nIJ.3;瞾ͯP횜@ÎH&jWTͽk{_GuJc5tov?\ *^J[_V8El&dcm{ :cӧDoqm;"~e(횜{}_FۗxZaA&.I+,ZZ`ȁmT^[-z{?N:]A)ozrٯsI 4o).*TEkLof 2(Ls\f\ʉ _=~mšN|-+.g/|4M}ㅇFoL<'umVl,nD>RVuqCR HP<^3`(my !QD//_%~;R;iWw/:yV诳m%e;]`ZhnJY) +3?&K Cj{c'{2;IG v&cl cE;Cb ~H,S/!6qf20疿<횝oK!DTv t:SjHV,쓲4"D+5q}ۭh^ՈZ'eRO5w<3,1Ɂiv K vFe 5<ÞR=MόW˟\u}@ Zr߸M>_AOVԿC6&~a8Hp&4&Mh1G\Ego~rAQsgt?Sӳn:c儌bދw9=Ckb(,l|n7W$$}eY=+|vim)/~ןްv/B6X]_6aeם>yr7 繧tjLCPDQFXܚ8w5f X"44߽U[\p@q6-:ڦҌ5oЦ1ʫ#y%2t*Hrs@ $8^(;}1MUӦߡ DzijΒT]mmmM*L`i}XUsSy5۷K1RQ[V/> dbU-أXsiXcFpgod[ rVP["O6֣UkC ZеA]oms±]0^ؓmqZY 9. +x+q'׆|;4ЋMaF"#9һ:젳z7THDU.X Ww+ythNשV'x! zb7=vs*sj%a:7LL}y5x~d:( Y6IKp\ed0NC 2Z|9BPN Y,26Mf= "sU4߯k1 !Y>ئf$E %Rp-"oV5fK.l y'u޲zi|B=? 7`@CiكAqU*k_<0Ks0\GQ:s 3\تfu)p-ߣ$&.֕vGgHR*Q iRT HRXMm]{]8sm{4~i+x6)XQkiMr@ vr%?EN7}ovI$X R1凡HH d! zY#C~:.͜\E;7|wr`LC(T: !Ē64vB ?5K$mYpO=H+U"sgaɐ)JȉH}Lc")H)mٸ 0HF2vkt:Ju3扵o욠uS~޴zڥ@=`K`ӫ @}_o|RQE K}BrmRTlivW]d/8DDK([~z~'XC9,ls_.}'O=UmV:V4 U^!"@}=pߙrE<8 gP ҩ2};I\My^1гm|eDk~αu1k,<0(5~/Y\ZobHޚ`Pq"h3WcrĐ^y?Omچ0LGQEbwr1iR9m%,z1ޤQ2 &w}Qxb4nw!HҩT*JG ~*riotmq*LC9~јYPi_ :) RˏQJFa*JSa )dG6(u-nYW^ - zEgNmX ŭ963J6wE>~NU;` ̊"( Q f1!F̘H a`]uTtw_: 7twU'ߧZ e~^3IܦPYg~o_&x׿gu[ޔAw}]ʝߍ4d~>Y8g.9e6O4=7+H$I$.rKﯪuk${ =hL*L kK!?[aݒo<;9{Ot|^Z`mx@jM;?_n/^ܓ=3EJOY'ۭL&c`D4)?pj)*nFRM7E׎'G?S +*y> )!aBvhzޫ^tpUM۲c Z2!DT:5Df zK}}UTBAa>C*rg|ةKšO?3{N^-v;ErUK%@by;[q-8oKo`Պ8d?hB!T^fg_=գYEC!9h K1- " 2:2Ўzg(Aik^"#vwk/1YáOsڷGVlwߵfz/ ^^x(iΚ.,|'Фq<ߵf♋OL`~^OLLETɸ§֝ձO?lXW}}y/xz 6~9ᓪ#;r/=aN}M-+sWf'O&AGtz`jhOȻu-LYgےQ,};)uҢFΰ(\.cdfJHQHB!=/L*[+zJ )gɄA|)$pЖ2`o:K_-aA@*CnV!B79Fy mR9[S1ݵ)>z;"Y,Fbvd#TȢ0a1݊ B9(easkjn/-!RՊJC8n@[ז^xV"h}Db/Njda*z6 ׼5rfF:PG_8Q}xiWvHS𼘮 rPG`i4֘ ʴkkڴǷAB:6= :/s5aQC5ݷ7-P@5l &gD:L a2D a69[Pfd  pLiWpO~_=$U3=aƽBvƈӉv2pAAA~s!|˓_s9l}LRn\ )H$/<# |]T$<9+\mڗp26w׊z dor"Sw>w92M^뫂O}?MOmd@"}Jut)^ot%}xkŇ߾٠/ G>u(-(c,41է|?}1E+*#f[}l*+\6Xϗuǝs?t̰}jʭI@شR ӊVI#:wڰ~_oW<97=yWLv%\6+ffOZ긏g4ۻ㲀,L>PcNHS\Ҿ\7Ү;'\5*EzoSםzôGcœrs}&Z T|;ۉrc=aKNܯ$Uf9Oʼ<h]2-Ju)p@oHzcQݏ>s׼Q > s'Bʬ@ i/[Og" @ 4VV,#,&$I ~C>Jv<H2 au$)Etk g!(רՔ$@ ?0R+>f(;[ZRekkBJh }L&[BzOTWjcVr9qnwECU_\ .w9;fUޡg@ey5I sw|3Rfw=*+d4}Nrݧ4hFݪ5IAϏ>n~O.%f ޣ*+$+> +>`OmkW<=}N'GO+bz}wqa#ر>}Î uDJQW tإ}W;/G)"U]/!Dr s6|@TBWzv(&/WFΞ)6 |GdUE%51kY[% VR\4yJ夏!sJuiVH@B["ϓQڳ*+is>+fdֳ*+&e]pm}r/QAw@1%mo6lwV]Gw{y5Cf*L;DhPq8gL23 Jr}or(*.H"Zê!e v m_L`"*|=7 &1D`@K[xY :;uQ\{~+eb]o}8s J^£jh^\R;ј+WeŞ];ٴ=ha$k7落_F4=1i#gʤ@Nd1;٧A8o;Yqmf@α矓@nA`<{4r<@sʝ`ْb]yyدjxr8M#@ы; #UDNWE˄PND˹D Saycj]),\ S]j" B_ٝӵrXr݀XHY{nN=I%1b W5<34"-DFd E1lKDD== IDAT!c ).Cgu8]1 j+r"]=h4Mm5>\bv] P`7g-NnM$"ڵnNimkI̛zݚ'k˹究I+)65p<׌O99 *wV|71ݚCzv#߸os kb&t& H4ݷ0[jnRfʍĮuMԊMSVi"dIn:{I|owHbM>DnwGx E- 6Cn*߈@5)6dDpyZAP_V\l.jrS؏ݩ)8GGcXWtm5mT&UKk]NyI(qt6h`f7fJ ?yj}6֪o_rJf)s[}U$HR [1>+AdPC5ɼ,n w8 g<Q%_}_H9dAE~.M`뢕RV/ԭyRߺ_`NUBҗow YO^?f=_oz6t:#" ۿ`•U r:q$I!%5̧ <ݾyT.[j* ǘ\1fGIYhkúyβԺw Ym;64:|B&rp7'zD$3qR(/z?RAMTtpd,yl(o|$B&[߰v$IAORB=?̄3-!;F«Ȫi+ۯk$"@顝 ,\YPw*wTxe%5l),ug =:[{tΡ,_ױ[$bR??*7+*jY6Sϳ+vI3c4^lټÐIqXY !]U񡽏_òjQ⮽?FӨ1LI3QQvS3[ƴߡ!+oxx$BYyj~c~ AeX,br> bm|d+Hެ VTJ7Ԏ bvXƷ\% ٭a,3,{fk*ЯaY=gm@".m|{}9rô X6EUڠYv>J޸xUUū˪K-YiMqIIqqj0UknmxXעW+6y 1Ձ-hӪ)US|E. ȌY_]s//6s;Y*SVo\[\x겚y~ JiWG#w>H#ȯX>*Lcm8c:N-c]gfhȐ1`SQr$2G<ƙO2)HCycW @&;']5mG'ÿNF[iI Z!Oh#X 2ٍ 4>lRӋ}VRdܡp+TtSG( QN2CΙKg?k}*et۴Wuث]e;J=yu;TTLQ}+/_oZjR"uޠ /҅ d#-'>3C'(t'ZxaYCihU#3H! gk^Gk;{]tZDx5'l˹+udm_mC]?n+F>5ch3z6h/w\y>Rt= `#`*LaHM>^lB)keo^)8gvK#^􅐈v'=бM|SK j CJ-€liȔTm@Y38{z uhԷQ+22I"mUgr `紊uiqRD0SW6gzR߱BH^t7.>UghߦAލSswn,^^aśww/×Vg%PⱠ#w7(dCH&ܝ|DY^{ӮQvۆIi~5koK}YW⸫/iOW#7L[)z#J]pSrOohٝ7#w.T[_ޛ.fH㾖rE5>(N1Y>7omg52?_[ =WMo#f׫EeCϤϮ!XŮy2DOB\Ef)0BHz}‹7t)s+Nvӯ^|KC]=Kݗj+JV4w.QkU]Wn.ǍaNT@H,x;, kN~{M ]zмA}*R2 < _DhѺ6J>kqܠ~K|>EqHfDo[[VpfSO9s"$ "I)(1/3'!"J>|wu+nl_kQ:y)mkل~M\@}~J7貢״[o6f}7w _VkFv?7Z6VpsZth(gIi֡~ٻV&X8Ek'"TXe& oѪ3H`R Sd)"tqȯ/ꊧv_\զi+Y~RJ.R~sM<&w,,7| ~k/mr'oW=6o}{zډF?חm_!S˔)Ch2bȓS 1U)#Oz'͹-"b<.Aѓz?0/yۛ׳ qÄ!V爜Guy6`5O/9"gu酪8N;cu޿󪇾&H(P+l&LH6'S//R'(~WWJ`냮ۇōyd~}1#e{ jէӶ^MZWzobFuǛwzh-vuI"M%')ŦFܺؑLZ+J;%Gz S@/8ꗭv7Ƽ3!E-%β60rN/2txݷ<BcPP[8" ֫+WKyk5&mCޫ3Wï\e~?uv\~K>GiaY\sϹRdO_7T\$Z'uK`2-> S1c&ŕY'un!O۾7^YD^4$gFD9nai[K&۟}c۾^,NE/0"Z[T6PmV%@--^۞9>Z~7T7w~fAU )&ʾ>?](#aѸԂ%H7eY,J8c k] MsyK`6ݛ_kN"'zĽbo?[t)b斄0'JcfR,7sq 9χ"ThpU]ί3 x Cb1"zP1!L.M%3%ZTn #cKx$I@S^'8HoEf]t5`lE? pWK6n\2rAalUfID]ULjL:\fC2&AJfE9S:\m.u\Yn:uW_m/}<%9潖9-QbQ21z7GD"*F_*!-`,QRe>%Dh(Z,DtrJ%+FSMk0 +% DT403գnsVAVX[+&v뜤&aqI#bLꇅ8W~!L1G|!"҂Hq@ RR9":‡_ǘOHpQ sKVFa|*7.PWC9~ RHh4IMTzQ555M5: 2d@!R8۳:͍'|x(\H_{1J e#x!֐ V{JRǕ ~<';.D$$lMĘٌZꮩCSS\[ikUlgebI]e,DsMzeUgk1Z+:Ud չzD$PZw FZxI7ll[A!2IIƷX1w}ELq ճ9]& G6̖& Q*62Sa'|03CpO!w :<B}qlbsQ@%<ސ Un1dJSCD_-x-Ƀdel!D´dtGI h>b6hVCNF !@2d0)w["a|,4j("P\2T mzE).I25@B# s&DCD6."%g>R7 Iߴ} H&Xmm- [ ]5 4|}+Ș) 0=ﴫ{:+T5:7Ӈ`ȸA{L4C5SS8 Oœ* yPfE A0E9:M%ąJ鏺2T4o3^E#"Fa"#B` NC,nd \!fGQUb:LWcaK3z5b.9f?әEke: y"M4# b- ik\ ᚩ *; St7#]՗N; E@Y=a$P7L6^TZsD&%ק@뙁{\`D"!H:9ݻ # 9LH? )>ƿKdWqd\eX1@V$P<9HM6k +FX%kR-,q B:9 (@88AQIÎMfeqM#t#Ȍվq-3vF3𲳲 X^3884h$fHɰ@愐đ`m$fre"宊Rj-+~hku#:pw{XnvX.m9խBW*&@FCB  s\gNa"][Jފ*@ 7"cJ刱j1W:Ȑ"As\Q:<}-HftēŦ͵ 3mB n6 KHpQKkFfM0-Nu 4*$X{Cظ=$!y9NVDHR ;J  $Bٌ9|_)ބRaeP~t)nŸMr 9WJE֍ %SAi dH ]׋'{"s#OКpB)28&W5/rԺ3,E֜k6rI4 )$)DS,"fQ).$e+go`F{^2i(nEs \X;MEXd&C5)X'>jZ}Bi.tN&C+Wt1M$/:?!8E +ErFGV04D8cj2 ܸ#:V#3GZ)$2We>$Rj!L2L}(3.,ǒuƌ Byr4ᢙHHSbYukgs$1cD5, ƣՀr>du׬!3g6_se;L$l<}SGB(Pka Ƭ(YF0U"J{~x1Sb.K)o<{BuL]BB$I1q'TNb btx/: ʐeHBň2OCU[|fz UʜC$!S):aTzuuùЍ(FO U]0DџHcӼHW0ǡl|JNEqƶ5[A.qBnmd!E6Hq;S$F+lD>@mDBR&0-6f1oziO t`K]#P2П񴸷)uҭZ99(4~{վ#$IB?Da4Y?8r"DR 5pkT ҐP9ݨ= ei$9n9@n#"iVx rК3at*O彾m=ڦ 9(U{euԏ>uxzKEYE7)bkc^iZ59$u=ð^ާ/ezs( %BdiWA1|C3tM5K닕XtE`$Vce-c3 V B;[c<?k1c+'2kX;Y*m/m<9@*}? x /++H$yǂ Ɵ!8:Nr<+$}_Ղj%W^h6Sޒ=4i>!3f}׹~ gNS ֋=H&D"y soBRq4vN8Zԑݒ(Ƈɀh(tJ QDT*a DX"% &X> )w*k<= :dȒ}o[p"'DY sylK,XޠKpv&tL jEC ưSBֺV]7I! PH&99ىDIQ; @cQv$Imq2B1zXMFl,yf+ 'O{R,a"jO?)S$ <{ ٚm6t:Fvx;|YAq҄ƘB $6'PdH7.t'a. RnB4RJƙys72fa> u DiTՆnI+9 Y;&h{?O=93[7^ޚkat C5~m's?5o/?|v1 D2IDxiY-8ƞXnsqu( s'>q ~1dh@F]zu]ױ[vhmoV1e,P+wȢ.K^aK05+mdQ`HiZ_;'Q#+#@P?J׎ <<QUju)1Bmtzo]SXZÂ"'I޾-o(~Xb},G ȔS9^vcvɲw1Dƛ]~ y/y{Iw_լ^d_ 4T+OP2M㯼*լ=V:K,'^QTv\h{\th!l]CC|Zcyz0䪞em^ymQ5ixjT-XNf0́_k |ώ7=|ఁ߶!MK>3_/Xy݈Cƹg%M>Ϻ?b_yw`뒇9oº ҭw|^Gwۧ /~/&^>|pvh‹9k@䤡|a{AƹKjk;xq}]ŒE']wiue?Ȉ?+)#|%V@u©1<Һ~PI7v톍{:ZI fB DA$˄R )LAv 5=ܚ[A(iC׊11tT*O:{P[ĈǾZ[j9orC{Xdg<BIt$[E1ҀHѼvr:xl]|_RO1Ky£_wߏ9e]?SZO@{e_w]n‹{zT4lWosRF{]7~PF76ru]3ހYdHSGϸ QU)g3~ćľ׽=m`Gz_J2&S`^+'sΧPVTs P: "lXZҟ8Y@(J=*2]+c lFw, !-1~~H}q+ sǚ̦gD3\Oi:*Q^_nӝwʱ*hR@a`6 M2ۨ˼0j|x@䠽C5(`Qfe;kM((BF:2c(l?=K/|bRI&:w>˞\n6kɱz %Iy:59cjsN3a&jMw<'J "߿!{:cDČהlUnLHOCۈG/\)/KUW^"u to~VB!Yh\sj؂v:~ Un;l9o[ Sm+%d  "[SVۿpؗm y~>.ߎ^8ug4eY^GɩwOysN95j|{ $hu޸Ú}?o8͒ fE.^"[Dz^ Q 17ssVT-ks~9uE` =}tTWPL[t]"Ā+DIݏ "DP?wC7DVG[YV]J959dEg[ܬv'pꘗm{q<'_dIBLB*ݖU}/;`>x?vc?gV[^8n w?sĒI"BJyHXM!:}gwycc>v+^٘}kʫE/'sZYH[૫vRu/ugZokvϕh`TNs9Ջ?;ۍ7p)olKF[M}r]֖}tys8pGna,A(CcM|%cІ} *HjͫXsQwTnmm"n5k%L0&AU1`UNU(Sc7$j+@J(?C61u+ l+;a]*U\Dos:zj Zt\I|K3qM9w&`VcXe дXbM.$k%t?"kbsЮZzdܜ%SkE%!ljw Q/]u޻zs,~w=M?xDD.кfDb:(R gk}}Ύn-X ^#"gZPƠQV_[gwA5qJKVAԾA$ן' < ٴw/ts0LkmEsBr7nJR妱-Ataru"B0=("3?@9Ps+cG{pxY~M gU26zizBX? "Rb9~dZS31 nQ 8q&.wm`Qҍ9 @!hj"k%\ !o3g~å?DDɶh\in狆Ϟ6BGO9b _!9h+, V>闄i]zrSoۖ}:qԨ7VJssGeWv9nHJ;|eB[ Y R ]3DDM9c矹ϰ ̭5@Yz[B"Ji/XMw,צ5]ߥ>wO^[GR,]2K{^$m-B|l F)m ~\1"yt#\yY.Io~MkH>unS>LL:}z3LrKie:2ZjB)s(odS\y h &i݋:ʓs )qI 1,lF|),qQV[{W99 b@k""sFT,FDń9DA"Hf|Nw~T3w[oֺ.aUoBV 餻lzի(-ӧr|6d񸥵Jm__ ~g\8mfw<>mGsSֲc[CNߒ ~3Ή/J9tjiU#k{;$§/NׇlΛ+ޞB݇[J}Pۿ6U}맜-|QXƣF7)aՠa6V  ;p˳n^o`i}:Yu>pWmO+ITw$/~ϙ,}ԅOuS?_#*bY'=ţ㟮vNXOa֞ kt^V_> x3_ya>/~ Pը.$r?24'}o!W>jXߚ-^я}{"IYvRch*fBnB*Cld5Mw~5?캞zW%QΩ['=+&!郖tLS!@SƷ9_z&?;oKx6=e+Q)WFW.j!Vms7 Fm8Tn-B&-qIlR9X L;M/p*T%"MF? rF6r"BjGlf~o8= ` %BJ88=5<뭏Ӑ?KVLRrP%답?]]Nx}FLYXNjVvSCL⭇>pGS.wȻ^_s( ~duTqJfGY?2d'{g:te bY1?\%Ptb*^7qsVs2)j27lX;bT+%Pb_铙UrЪZ~MoY3,JT 5sx oWUK) +ɯCW*0j7 64*1?TfȌe`NޭTgg/fW܈Q=rr|097HZ|V@qHwY>5{yHV&+!Pq>TUU RD`q)d j,T=,xQ9kެ5'1m3TU˜o3{Jm F"rwW FYeC5*vsΒ˧WW7k2bfo9FZ vQ.Gy,#3_+0Ib1:x y,~'6QNnM+_'@Iy<ΞswV cn -݅> FaLB 49]r=Uz}Ok>nk W{:OCNsS0nwo?}j Dm{ ]Ok }r]XEVUoՙ;dr}ZXݖc6=4M9p=v"V|w1O:ٝI-ҪXaϿvakbM>Ѵ.cǖgF x뎹Ѝ_1<\=mȁ }li# ;zy=Ά*Qq9< Ue=oyjC~/#':հE&%{;0\hFHs:ӤbOI`F]q}kSdihxm'IJi͐lSiX.:EUB=3!ۨ,NLeqY zY^P_*B .xeg=$fϐ ԗn :{w^]Z(ƖC}mZn JI׎8* ZofŰ6EsȔL1,B cΝCg>va) 𸇮٭ڜsM3VW :f@[]poku-&<&$_@"u-y|cq"tkг֏,6_eǾJbVwn1^sژGD)[?rU0ߏ{{ KUvH}k @b[y1Db i+~O vۏ:^_ݲ(dQ]ExV1,Jװ$I"'I `,kSn{OH{ w{ktkl<ۃMCbԪDZVVYl_u٢oB{r+GDuU.\qдAQ^r)_޴d c{]n^R$4޼˕GO۞{OOx姥[7ۊxkg|xuKo:ia 'F&PfB dF'pK3OQ}~{@d",e}?;q+VS V @ۊN5ZY86d1/MS<=Qlgqz#@Yٖ_F s9S*iI 0 i6&u{Yk7탦']tO?[}%vʜ9PQŞ28i65ho/K0m NY^,Kew; 7?v3+˛ }{o|J |.am3Z?1VŰ >bQYͭGݛ䦷ܤivǷI[ f>:ǝ@svr/]_ ^2ܩ0>+zr/Ev>D߳9cFAI2UXk_f"mjyB,qTlj)/߉O| 7fP(j8J?ԲM+X-]!-iT ADR3@ٲK $?(1+ס7go2yA{qӢB_]kcRW6sq @B5꧷=z3+Sn5! a0YiQ0:\yDmœrR9P~~rsȦ9\$Ƣ޷9@Hr1* Bda¥#ͻcF(BFH!Id=|xUO~=I㌅D@צY|}^/vmZn SUZrd՚N™/%|/וzugCrJOۣo}' Ud-9A >贖lQcϒyhNH=-*eOOy0wܸߡ1 z®<1yI͂*8OU}7|Xꔮ?x~hIqmi/kصuS>!7)|nMO_e+tEFYWywD_VE? ym8SuG&[D FKHB)6)PH|u #,MBX+^`˿IHɑ.9O 4' *YA#Y"kB(cT&${D=)g!CBx2 AF;kI@J%LĬR7MKɣΌϹeAtg)4P1?!]s͟|q?p|鏻+b;6Ǽ{| Qcu^!Cy蘻/9J ELؠם^{K@5&{*yˈ^eDf$mlHdYMU:=U028XZLJ[;67u?p: X,9M72{:"jjQN0IUvR|d7Q,㙑[OXRF;ooҘs{i.}Shټf&wwkLx,,Dfn:KPʿDkS1,uH<U,$ŻN08D HsƝZkVdMkh|zhD!fȜs@WmL8k!bb$Ad622|qGAykE3)?V`P[ՀtS޺nҊJTnu$BuUwhoy gqCz~ޙ}y{4I CErOЗ3/V ;$H~6`՚w vOd" CQ2o֭Ӿn{dQ/o  suzڕw5aԆ˞ߤ~lrǼyaI''-;]Ua_u]/0r #g z'֕+v<}eGwl:[`,lgk'I%W&!-3&JM& ̶X^?B;bڶ(i[Pܾ~_CAjs1w_rfFf_ݚz(ׯ-&5gysvUP_nE˷IƱz׆};4XhSn6 zrE!.7Y_//|1!R (<~~B'{Ĕ|%(0bZF)ٳ`#zu%-i'_\n*I'xK ANޛM\ZUg2ƒ^}47bmݺNxկo$5=&?و[MRbtQ cLBoK:MT5pF ¶NDRFI9IDg SoO@"y1JY^s6t^J)Voo=eW|٧?-ׯٛtQ>}}ӂBi/YC{qP~.;'= ;I=?:6(7\M e9U+ )գz-rp/r5 [<xhҚJUu[}*yH=LԸO?bUW.s k?F\t^5oY{S[1&ED@6 U@v60UPuڴ>KػySԵ $HƔ#VLPYvd\Q)l-GL'QK) PdFO:g6!P4#k#6BETU'|q8&ph\{ d+V1hP6SRJ$Ai$: =qp4󋌗bRVL&Wcs4"3(!o=n{߿x]D.D.-++z\cUO ={t)g∳_pլ=H |)BYon,8c FmK{{ UGwo˨U+jYZ7guLNIlus3k">~P+8EAݭS5p]-;[͗*%*!nMowL FNn:xJ ){݋Z9-7YrŇ͟#Rrʷ,U px~8U]& dюM[ *&kht!̅qq `vlIm374"|ȏ|aX[=W])z,%.T,L$~VVdʞŚąPÖs1)e tZ<}C.Z^$xɂf:%mۈ87<$3:_CV "Rj8h~H!58c rͧ-@AV?ʁr'mdb^<9ZS"޸敭xat6Vv~ӡ%ؿsS ]?u3]ZTB-uK16W_ ''l׏1) ݛJw߷1s^eK,n}1nCBu7g TG{n++aBûCH2jP;d1nµ񘒉sJ){^8yB$a37e g*Jpc$Nmq\;5AV/_ ?z?nHk !l[eϜ#':՟>)V3Rn&b4֜1NOxlɎ*(ZJ!%I܉W<%#G<3yp+YX(t|o!bkвVE+ZvJ3. &m7*K-6Z{aR覥2bwⅯl}ureiR!m8gr,C.+[/}Q_BdgxwwL(} s^ @V'"g#e0N%=8c<^V[O<Θ$MMֲKsV[Vn%?㚧Ěv;2p v-^YAb10ZQ0:4:G 얽M BIgřw+!xV;PPXL?D@hLa n7WXvw?) rXfUɢLuC %P_ӭE,NQ] lE!G4Jn?`(7;?׸sN_$)!q<AᦽY逈,eF_UC99Q2w[` վɌb z1+a~ 4D5)gڍڊ5,K\w]U2sak)sg;]1aMe6%?ء<;~<B=AH"{ٍ5oza^4KX\;g|Ž?IsxVF u)ոas!$͹8m3ќK)%o5JB*:SqjֵZxSe9D$)Y㏖h#K(ˆ;|[I24kY;mW'2j쪣uʂ\4H|鰖^4gҚlHˊ3-*1mԈGdG6{mK\Bڤ*4Œ}w4F~o[6=;0r%Išx-H?5o}74)[tTɲWI^co6 FYq*N.F`s"}9{ü#2@lzT>?zrӏxK 9}*;q03u[BUћ.λP-G ?dwj?ors;ɬ$#!42r;bpc^Lk!d2fNzco>aQd綂jIq@VPg{]}%[fЭe~bY`ԩqg,srV~!6Ӻ3΅d8I5ݖ56P@vo]^vޫȈ7pZ$?s?Nr'l1K~b+MOH 2 :CK z]/{ڽԬ%{um/Y9:]n9L,s]yϼv[ڴ2]cN.JH?CYfeonjf82,oˎIb:oӑYey[vhp]7ey{%+%fsAƛ_bo$~v<+xa使dZj&h#7Q+1k/qҘGf/é;*`^KtήV1W#15W&% q`D7 7w<疋Z"5S#pCn<52ޛSp̕7wwRr;ud9 qld%|6{ŗr/O/Nff|:͈@*X:'=_+7)8םߺp֊B[* $WRf!#67ه_a| NH!xO|cox~GNGdU,!fnj&]Qm~@ڜײ.MOwnW))QkrbMy˕m-Yyoe!\|b %ԁhG)~%s(vl! @c[>~o%Wqي߉z봏7UZHY&9d&38Xfmg* /D2if1?XWo025ii]Ɖ#ok~VZKGwv: 4{<++K'}hp`-?&d$"gsAO|oˊ *3Rh,"it64x׀/*z_F# ?Zi1)X6Ǝ^zlYg/x9$`iV1H$} N$I!ҿlkqNZHFX;t]cKЖSq/ ARe&vܢB&Ζ9mݬb"0UnGd@DDFnzC) #ɑHsq2h )@J~;]OQot@d/$"z i4/]H< onfH6:'idɆoMՒ1OEwW寞;oop<yxY~=b@DԷg&A9H zj`> 7^g)dy^,e.oָn^%KilE>~+i!:""Hyj3[Ĕ3֋9PW^MϾ6}+Lnxߜh66B}*)#0#sq}O@ȴAF3>Nx~=M\Hn|ֱuyrwnYn7 no?7~ƠV,S>xCF& m @e:o'\T9e\{O3^Xz={,^̅E$)+18 ڧEއ ,Cz7hU@1-[U IǫeMhqb6 KWw`o Е,홉0WuqɫSP ˤE/Ee9CGsq,D9O^7eQ1z<(+s\,A`WG=mCυ#ƀG]?~907]6?맿?ϧ/G9ciu~2oyc3.KdOf!e@nYG˚5l|7v`7c D/M P 7M;ցNev}[~nOLzۓ'mZ#CJ.[~ɕc/mɠbʏ $Qӱ7 tX1׭X[F 6SAcD0ږLlz/lL0AEUfd0b^ +77ߋe"8$,6ݟ޹Ɵ5X?{w;w[&hz.>[WQ;WA3؝d1^xzȠ?HMR{&yp)#bh^DȜ1ƙ6!g O³HT5E5LJ"bW[ߦLZ="*:GqۣQKKuPmV*r:'=mE7^3qh/*l6М YeDR8S$bjz];&Ϟ΃Իr̤TEƺC}U;5Mi=b4rjcw#¡zp͇Y-!HhVqJYOGTܪ* N-)"%R#Qb "aBB9i?18m!2άݵ$)?y'.I# ú=aGXV(~RJz@ ,%V=S(QxPT`@0ׯgn DhF"도DQ¨JǽBpc-)zpOpODhsբ @Gr/320"E9bLpe@jh^‚CN72ҝk)SU)`լ0BVaq sIZ]ԜhȘ=Pt=԰DrHRDy! =KMK2uƄ#6|0g&i8U9!c$#3S26ljRZ x˅6I/N TU?{3X[!BpR.AiGr1ݟLj5i՟9^Ld=;J$qQ5C,cAH&W''GHY]]Ǻɤ6O;,/J&}0U桘LQT#4~eugZ=q՟Ɉ#^ Dn*"cxZZUUp{UUU>,߹q/WIzդW9"\;ƹ䲘g֚AhW3Rm3C7BFnc"Pp(SaY3*CHgcL ǽ "HBEcI1NP٪l0$?!sKAn' z(Vڗ' g9:8/yi3cBMI_k!2UVp΍t>1)=zKŽbuΚ"(aj ژS7*ZoVJ_a&٢\29Dg*$6Kna2* qֈ2$$'9Dn۟rR=2N)KD3S O vwC2sLd̋ eغ\WrdXw1G.@O!0!+]IRrk)bzE)+4OߊZ:[p"R`"1|r5RMqOPh⦱]nuVu  Zr`'0*pI!x SUR@ZzT~(vvq)8 `q;+I#@@J+9i^ڼ9cK!Ff FF6Oޤ_mSɍP,GK]: ]W9zO[#)8N G(^'Lj1F!!dݑAEu5EB%>POn[BwY=*8LJ^ՉD,B`݌]>Μ}IT]1/R١d .M9ss$Ɣ5|v,Wp8Ĩ f8JQ/})D:)D,)˄59&XI)y99;gN|}2Z: %Q DBcCpPAm+)O?tx IDATH1r\FP-E` +ǹ硉iA)dBI$I?ۿSM n#>tѢ0]v<B{H'LՎ`-/j2ugE4aqh/wQ"AH&71rd\!5Щ@&%wG-y)/5USsʥJёM53gμKslEe ) U.tg ب ;S3`68XN+"Cr4Z*rm g 59cH ɲ87f7kah7WD/ή5 D IS;bR¦L(V5(ܔ[5!dxqLʕ֝2̉")D2Q-$BI 3 =:햩dMxܭ.t!3D6Y9sk֪z`1!qQ33*e809|JkQ!ƙ jmb 3eNR] Oe;5ojZ QyZ ?w%v9߮dhLy4oZ]>aM@qX\8n7E"+A<2G$)Jx0۞t`iP{[a>!/$T2C)%_DrPiOr#L҅ lT;qӦB1Y:X{!SUr|BБ ;#c[+:'KqpkIf,)+|wb~bR)aZK8H:pX2oÔUO͏0^74mDR8#!CN{J^P*=;L,@)4Z(Μ(Zc)S"4\Qr*O0T4hM3o%Rimt)uFш-tɟ Y.l/R  *]63ť+yzvDQ)nfɛ~yc̶ƠŰ>(|(vTFHJʌ٠lT5jlo;B]|DTC0MEh+dQ꩟OOr(aIsG~Ğ6!K"^qP*Ԋ#dq B" t 9ԔG X{9/ehvXa3`eY :D0MBZۦPn<@ f$i@CT*a\>/E,t)Q=4Fѓz$i39c^31xt*:Q\ =5Ommu"3T @(I h>9~ѩ gېK@Y&79C6OzoQɈD$eّ$/QβSjK)HG]Ɍ C8~rCB&gcLRX0aդ5$^ig-!*$cn*4[ƦH%Q)K (1,,k"@$%3rVB̃>`,vkNґZ@vUnv % 4imvŴ2,:dE#FPUqX9 HҲklS̎]62sbZCrmht) x񌌌 ?A"[ekg];hL1EWID=0˔L9 J)ؖ0}!*3|?1Ct"`vlk j̐I"dH)mUمp\HME1IB fwn#r!I@T`p$ED"Йbj'8Ȝ(\Nfwb5}gҏq\[DP`0m(v$avgMa;o$LgK6?EY=Z5CYn٤[PB @CLmc\I;*n3hm%Wy _ !?jsqd왋4 &xdjaA%qtKp…q 9ZmيZYa;|r+۶#nt'`Uo H (8  '-c 'N6Dd)؅@-q$`3'ɘla;cȦ1Y:ZAuUuZZcKSB41Ƥ %vSvZZvzP55D4ì[]HKb-].cLb18#Ng'5sȑ{DxiNѢ:")!֛ RN# #p%Դ w%e hEM:hJ ĪbN}#fTkf5%p 2Dqȋ{S 05hZPdk!8rPc28cXG:T^w,0j) \fH Fr"g Cc4.;c2-D`yD^0l.DTY1koyRRPFQ-վۈB-XL1 )njNXj\mYV@׭oP'A:}s/+S%dWֿ۞2iD-.] F<b6T0 @ !yrl>C֤F"8WJB$2"A;Y1 dž@D,zsn SRַOklJ"BHc9gZ)\>Dbs}D(*"$PJS`)sT (OP ?95~ Hc!thBl2NQ,1lK Qd$Q M jQC> 4P5ܞ¤PWevc!JɌ^QHPYO aC6eHpL?Dr D'Ek#Պi^2^5qjPg 5XD,da::DN0}d}dSD,:`1Di$KJ2wghY5it'A7AX=4TVd$.53գN?l/e_=x\uvW}sr 7ex):ZЊ#"Ӓ; NE(+:gRTⰩR)ENl!zedefff(hP-ƚQs(g)Nr=1zɦ~ Rz$%W0qb脥P;P{]83E/BєEڃ;BkI]C R{ޡ=bV$ܫRjE*Kdž9\/2c&Ϯ޻w<ouʎ;Z;.OSv>xhCߏh]$,E,W Ð&B7]U-4%R˜Δ&(sg~T1(ACRfw;߅>~nÊ [,upIw[URi򹠖;$2nG3{O\J:.a ]MTUxZvvu0 CRps~IaMZRFԗPST4!l yDs2V69P b^RS mQ֨8&{Oۏ6uy1h@DaH?IuJK@rVD sՊB@=8vkF4=!D P).\ = :x41K"qՍ̡E!놡z z u0^$iTc? g!rVDJl p4?Ň]Pl!T*&LaLcK ຮ C`h<7ae_D7:&'a 5?B.1h{k#"bD A)wUq&mGAc*dڈ=urZ}IehuPJBI_v呆Ca>H|Z b#94yrK&v/!w>dDN^fvJDe]u_6ygT\-V5xt6 S cUv-/?{ }Ӄeew*JnZR+=Q_ʧ,A@F]jRF˛&K!*؉)k~;jSq_CG`qY/@ZAp'C[]+Κυf.J-$:ةG x󐁄[Tmı/Xa]_!/?6 X!#ΠL#\_3+V=W䖯$%P2XאWQ Ƒ]@ma}Cp!]1c&׼V[O41.Z9JVY2x۽[K_`SSK V*/Bpnyo3:7t㳽pPަÿkN1lio#&ݞRg?<{tm=FRR!a"(jLǢi}Kc+>oA:Ra+%QQo/ϱ?3Lc j91ͣ GA< z{g>#h3&Z QPi"W=!xFJ%b{VlJYRL?&b^ Q؎NU>`nYTOś[ 5M8HPAx#6դr$*44e`3R*qR@euG3V׫w;QӸ(08F4.ZJ +DQ}c6uk0Q98ƿ]s0@SkE- ]mHщRWT3!f:G [|`4sEJ2r~oXp/}M\9< ;GDY'aD/0y~=ӠsDTE 40_r.nVVXv$ "v{pfEZ+ᬈmW D P$jaObG~4J [8:>db}過O<mJF)5r7F~Y9-敭\E 蜥.DްQB%^nx%PFBq4ئWrV̴ukXM9)07\hx~~%|ӷWzp&$мoG٧Pk-a,={@aNT;Q*qtS' SF//X~b@ Co )r=GI~IS&MNo*_vwN" VvQ&Mx_;n\1m,ao|8?2`VrR;r%XǾ=SM=[^!j[ %N ػ4Z4 ywe$DcԐI7/v8^ktzqs KޟL~$z٨-OS|r[Sf"v3ue-!dRjN]MiZHU(tΈ8q8RfO/$:޴C?Oщ:u&%rV?"}D=٩!٨ :hup3V5:eW2|f\N0M'*^}_{lG~ryذEi_?iF\غ?˨fBO,_~l^}x|м P${PNyM[gQ&ITy%}Mڎ"4wc^(]@{>:~_4fK0mT:Cup=M% (W(¡|[o!0NFM"Ѷj״;x Wr.+1+4̲T8mWAR0ޜHҁ;dLFsǸQn a7zcG7 NȬOl¢:v-Vhqf WvV'$tJ6 ] IDATwҕEpvE#ӡ̠0 a*ځ*  $ll;<'I%:CPY*N44SdWUtL $BE`,j?:̦*'9=À>ydbi+@lFO d86%-(eRSg[SBI|k7{սo`E#2`$bÁ䁭c K7{M:B<͞}'xo|s_5ޜs;=֓ԓx稹k?rl/_^ j[~ȡU4xkc1 ˂#=>X@X[iV^涣:ywHPJۏNuO?}dE/n$X1:Z."#u^I#'h)E3Ϟ9} eWɁϧ~크reȋ6}.w>qiѵ{cL`L! ޤ;MQYnԅTQB"5>ETiM"èuSṏ%/*LT6V V(7 ] ѵQ48(/ء7i}GrAFD߻_+<Fzca֬N)4Mx4Mc"@@;gΞU6y=R ^܊ﶞ>egQ>zƖ$UlܒM#r ]hߔgv;:ߔȄгv|w?rf|ukr6 xIs,Umڵ>cKlܒi(]|>)9_ٓQn)@sK٫g~79Mjf>oݶnMMݷg|oN֏V쿐v]hطU>rGRS%5zf~5SR/Z~|< 7:˂}v߿=k3E{ _kV|::$eZ~WSks_s.h`XR 4oov<{q7=O'F-߷ ),Co=~蟛VMܦFTQBJnڎ8H]Ʉ@꿪ϠN];9yϲ_]jܧWs7sW<|~NQ*.Y."Bu]LJ%£i̱?5ݿiOܙ|~__j#U̢jՎX{ zzQi_p~)K>pU>03gϞ9sLFTVơ ko,; f.߰kMNj;뛉Қ4Swt2 Js#돿~.i75Tgصt\/^&']{#@n=9Q8)x٩ڏ}7jh޹m2Y4}LIe":nSڽvxB_D]m'is\7|eN9vC)1"8 \ Nߵ}_w><ϲ[{7 # DTTTDTuݵg^a!)σzP`|ow2ѱ~`oM9{y,_0S<wkvڿ:b }ސ4с}9Ye_Xط7>Cn˷оMv᎚T?}}oʕO'ݕdĠv^Ɲfi+~g>u}wzg_) bg۷Ϝ4=Ys_Nhon4X~pbnzۜ7H~M^r͸MM/(/EYEb5}Fwi2Fԝ͊UuikM0ھ~-xz%T6o潭K]:~Jvl]!ą 9*5)TuY*}%Bu,f&;Rب ǯ}x'ԎtPHR pɨ0R4@DeJ<-!B`P!~EPFVBzQj>O_AAo39DiWT^qtJAZV˰Zuw :MVػiOwF|M@;.`=8iוzw,wt_g˅Lظvk;` rM-2j ΍`0  (SF:{D4w#' wki} >}ӷlf]6l|t¸ J(BuC7$`1A\BFmM p~΂tiD5E{$U e $Q4MhB5s!4lwjd!޽Nxf\ƨ1F-M 3莼>'0`]M ^Fs|cO{e֫c }Bwӧ4{iєPFªu}OuK@ۓ}:c1i# }s^.ƝwĹ ͣc@!fɣ~u s*Nh<7ADy@}%N XA2*!`lIEA@1ͮ]vf%{tq}=F?[v&C&k=DD >]XxӘn*b1EoլbtҘIY27X t]TcR&}eu(p=-Иf'ڗг(ծy,\ڨ3n/CIU ͡!#_D߾K߾1.8Nvg{sӮt{Ŷ>]u?gz `oʂI]|a`OaW(M?CW)BLʖԂbf;bhCKL CL"Ǒ[6Nڔu N~LYe2&|0ǤaQ9 !T9TM㑪gF-MP䞕&_F蹌 mF5϶Qg.6G T?>(ډ D ?J1pB/#^6Ԃ[J;q8lֳV+Sr`KXGl, ɶZ ok=z+@cyϥ߽dWѺ׈3gx,-ϵ3ߵ\D-ЌkvCwk r`yyxHC W`ɾ_}bGdމ=nq \ %m' Q'K5Q~kq볃iG@R HTfjP\tЭ/9X\4֫ 4\m^ dLJ=wi|^SW,kU7%}WECع=WB>_LLLOcz*& 2SW&!FE(9F0LsY'eo qN2B\t&4i$.23rbB`0hpRh,+=~RM}gQ5-XʅĊC *YMzZKhCB,Bfego\0qG??fiz˧gLRrNw.d$ w}"wܳo^zo{@Gק-iLZhI{ aiW{Wl߲r>|vR'ކZ8F(W(xivې۶f$pD  :]Խ證^&tXK( X{F~{^fsutPa%Z C] ه1 > :>ګ'Yn\sR[֥Z anoPޜǑ3;]y6@ wE=i5~mP.rS!Njsi|)4%9&/ڗQ+.ݸ?/uݠOǩM gl.#@(e$̀nQ\s,-ڙk @-k"!s-}ekRycӜ{kUCLBic!YFw-% \l FC9'r9Bp0rT1z=^ S"]+Js+Y$!V4 [Iwݦ0ZbMU1mX߿jΥL6Ӵ_rB@KuP[ueRW !sK-CIy=3dgJ\?(f<45v4!#hy'mN;j//yDBX|%W(c(BY5 DX*yohCv "],ReOy;6F4JBּͪ7u_mйG)448T$P1ӓo|NuN|Z)w]J)UHF. }zrZGH>/bg^52}׿sN]2 ,*8FuyllãfCT " WIl#j+.\GOfX{FFs{):O߲}<,x25B߯15zGEr I9c.dK%?{luƍϜ>/m蚄FMNЕlmGM E4FDf* U " %i1n3ǂC缁@WneR n,<ޗ,C>v`j03w@$nY5\2gï睯!%_ѐ^V":D_{o_vה !ESR9R?eކQ5^T,Tjm܌9ֳr Q,-S*PN9Jap@AXͮ~z=wӛQ^nPtCp飬  A.mH.N@3Cׄ^ 4o=ҭ@~ǬJxaz!1 GGzM=#ޗxmKU꺋D^5?ؾkڙ^He6\&q 0i6TQz!喚;2;MvO)p081(.{<Iappު|+'u:y3LExK[&M`Y0&n?5AM *vQŜsBæBT1# Ï81Ôg+D/*nܱ{;1[2ZIZ^O\r*)S]}.n P& {?uCw,@soa܇(I8BTa$` 'DGkhӴvf]O!qVv1MkCD7yGNkS6}dè3|QeE\W׎jd"ѽnuTb,GTY%9+S*.Ne&EdkY9vwPS8A}2',`ea,PQsOXB IxM%Hוa/tl6p;SX(YW"^0M0k)rQ;D7NMIqBTpʹ%rʬ'K8Rmښikozen<6>@ΥNs#l"O`]&S MR81R[0󁷇9^.hs=}\CޞRɠv5׮<ںWmk Vv"؞GWuyu.<Н1kϡxn_S#p2I{g>]w(x6er^w뷗p'F\5Z[_d\ C15j+m?X?R0Ggpb(!&@Cr?D^$"u6V^p@^R{qwju-@@`i@uvE-?Sk,z2IIc5fsù\\\,W:XIn1D%Dnfbn`RE-EI}=[";vbaRʹ[5B(5OJd[y#޵:D7 lY4qL4oԤԣ1E.Q|; ˳R&cc@(OdJJ44x5p&l;_Gݽ`˻\ aZG㜾[~I%P|hZ;zG{?FX6ںrTICa:Jfpɦ:paepanW[[i"<@D A)P҉vo51N"͹E*/q-١+(L"gheSzt$\#Yuw+1,(R+2ԏm@hBteI)"jq:Z-X_FɧZD@p KE(&\(Сl׸> {@Rzq[XDHIa Ey=ܲ6!9r ;Wq5fO{0cG*SQ7`Pa3k,*!11!Z]e8tΎbHfom-5zO2 h` hpLP+ .]-Qv$EG0508_+J22rJ#Z}' !jy R~yt~7G~Βuc;=W}u$Bi bڶqzX*[n7jg^,`FھVŷj8R_k0t1i"?Hl@u[d{qJZE5M$_̸Xd7go4,I#;GyZ7"JHݒ#ّWwHIULJ5 ysQPs•bF֌szG.]+3&DGKD]ݡPKh2&bKCNYyj!߮y>2tv%ԩ). oI2<<5s_O R|b 9 = WAӼefsi" mp"X$Ίhqc/Os-NUT)D(N>Ѣ|o{Lp-'K`27bcZ(H\RPg'@[ 9{`RF(̧It D.DTn[@0A=^gZ6mrKR.SU/`EŶ!x yAV1T E$jQ?u_zUemm%#c%d;qp QiLFA14y=Ldؒ!8©6)( e>Hѓ,3<eF$\NaGa.+m4ĸ6(Jkl ١t%:ʩaWȪ= Zǒݢ5eKVX]Yx^K# V곈UAjJv=j3z,ߩ9kmO7ޕc z[_xI|OÓvS6W,9w:Tlq9æO_zwWnlqڣ{{6eHmO?^ܖc8[p%_Nxi1w]=j?HyT3Ɖ+~Пc|& (hH\=(Ysz8v\6 Rtd:꿴FD6j$tt($[ +OhU𭾔s-vp:/ܜ?HD& b{ID|WG_Jx9$v5| yID\㫮(˽O2p{M A=(Ieߛ@E=yg(<^G7@ (9DZ='7Q YZY+ŴFK+%zHzPUBҠ5'V3T&_~yWQL4gS) Nipvx*ZwFo չ1=^38h 4Cl{c5$^Iʣ$$NdH\痟oq]WU;HEnEӂsE@VrRJj}3>מM{z_\3 0b qFJPy#~gj[V`An=4yǡse?6ERm8ol !Xzzct ],uT QJA4d ĦG5%ͯi]z9@j9g#izO!Ҿm/ -9zQ3]9w,؞Nju$S˰gfwȟ!MƨAHBss["?p==qTG5ܽ8[~jՖ#^-#Z_SEڡZ>pʼ‹uL\KikڨakLXiʾx&Dױ+/76?dIɕ?}id/@F^YBg85VA,9@O+{|36N/ sUyK[OVժV.K B E;5tP!'3yV°^~d&uҾ%)@cӰ%EC-NB䵫S?:j9N#Nf]ZE\ۯGܹe/!&o~s?G hYLbޟݬE Я\)"#7/V-anX>|kMJP; Ր0_R! H^"iӯ?z`f's7: KARe.i*zN;D _ H!}Υ*ogkzC0x rM"5_YZ\Xkj~CU O߾Vk?ktl}g̾ׄ(%΃A]JRϧy4 DhWz(603"lZUJi{<-d]}S5ykr_G-GSK͙p0#A qAlcFιԊ7= Y9 (֘!9B~#y,qIap(P.+Juz^%a_Q3 uN\Q:[CfL%yo Lu˃A!N[p0k[{j۩dW "EG vz`aEW^m \yKV^G:|?X#5[#o>#G6y#.JE)->4yqot %E(&}rpZ>u^2e(G>rؗ?'_87㖯v飉VǑ7T?zx^-:zu(p=+ yoPQ)+{rUEo%ULAV֖_ `Ѩ &I<ی h-;K <ѼA/NOfι]sz%C_Xp;!.@B~\7 !Pmcd{Uf I9BT@DDGn\yg~yĢ\8)"qϑ<M@\9qIGQcq \,=sDܻK w_\t2Hk+6͍oG["ՏhJ쭏Hb4`ߦ<1i amcĜ]]t,#yPQƘiQnpnT5/,\C,gc: f^γlp ~ه֌j @51Qi Џo>1msPJsk|-WI2FOv4 đl-~rqXZ.FG9f6G?yuo! }:8(94問z/WBɅ 3^|L"J\ /JĪsѶ0 .y4 ԥUk«3~X%)g)5!1 sa]m~Luw^5\Gn7:+gS>.Ӗ|c؊#&AypI /jg:üy_V09J@@& y׮vyދy%;^K=U@Q,G ؟˚FѪ_S3,µcWywb;{D5GO\a>5ӣ<(6agh1B͢LcӈmE jOI~Y# 8zT\9۴Qs Ěʟ=+L@Tŧ h "7-Bsg g՛j$<@%O\ԊQ ӹFELgo0 9`ϺsG*sifd} ߛ:^%}6SqU]EIJ\ahZ^'֥3uiEJcY}@8= ʴj!' +3ɲeˆ?(Dw'Mf [9lN= V *KΙpŵwƨǯpڃϮULz"UhneU8  u%cЉ J'YLW$dJ`U0 JƘ6I*HX2O?\yE `p.qG[ؼ 43 (x4.x n".t C9 SBcRw;)B)3Cl99b(- Α@!i8T$'Oܺ**#!Hn-<ʹ!g5McXGV:Nv ^\x7!g:e0ZzTJ٧$7yqg9p*[}h۲ )MþʹQTs%~M-:c:fOQIJ DgdՖBΣT !(RHc:U V%@wŦF-|Qit7㿂aL5V[UsE| Fub:XKQ t7=q\Eˁ[h7q XdZW3Jc3t⇂1Q@u) ;?7:h X::p ˒"[Je+ap!eMnj}@R<&Gj3 rJePĭ'8-2S!=m==F8O+5y(0 91}Es,Ǭ'x]HA B^崍hǝrD Wd(L@{H4Әk{!z= nV,HfJ \p66J$}) H4rqXkObܗpw85kwoʭHʤ4#GĂE3U! 1sQ=in' Z;A~;N8%af2F@BA9G[r[!X^@8S\@ Bg9cQs'b%>1& [H*f>XX&Gۭ'Ou$hOM\BD_ tA|H0 3:vE+jj8(G /P01aeㄱ~s:w]ƙAxxg)̬5G*ݔ+A*ꢉ!G1ct sͺJB/㕔]Fe-ص-Ŵd"+@)|Ժyn G[ŝ6GajJ=sON`pHI7Qx+Z$g&v/hq:Ȳ s$!#wIċҍF1_q|2vx5܌ SHP1c\ze8 @BR"S@fU(Te $lr&ǭfNBK?n-Ɣl\eCScR ־5Y IRqƣ&<-rv@ 47x8tu3^!ǠĚ0"?'5үF\סrE |qEY@GqDyd<ϓDse[wnVAg-8&OVQA,Caq6|!;c>)O6I"J1!!w@T Zι뺊Įw5Uf`RIs+2,ԶhI'RV*D49<4bMdO,FMs֘"E|R@π(ɮ&k ʺ:] ImIX#PELf˫6T#v ݧb*;jX'$p#,bcJ)f0[*`sJ8 sڟ}4@LDw~ 1u b}|{B \ZwwaN{FdWi}ȼQJZgLJ1d89jFB$r:QvӔ,"d8p]'J1H/C0 *SS_TgjWbh'KJ71A ITwX{VL"0ؤYZ6J>S9Z!D="@Cl/uk6 i;Lr02S4o} h*ftAEkz&) )t33#Jm@ߗBA㺮87bV/X-&OL9ѪZfQJ |_6D 8\]=-/m-l,!wX!FcyKt<@n'PfO*?9Y8Ob$}e   .$ 0ƁyAI$I~neCȩSՙsh/]GA(GK`-`(OFli-Eܹ3j*`51Cܸqf -$TaqC-j3А-@@ΙnV#(&;ۤ$4B@ںx_3j)"^Al Lv9 jMJi}hⰞ̲w͡)[>BN:0!`kgƛH"36PV X :d:nQ*_dS-~K8wro,Hqm-f%a@#ՏvKU@b,L$~2Ǝ\yԓ R"8놢# >1\̹:ٓaAJPG9敵<Ea׌A 411XB-2F 1j%];n*/A B=(S C9Fߊ\;л !|=Ԧ]SCBmPJPRl٨=JER,(h 1I%a6mMYwNsvU$0.a.0808/$2BA)p%Y@{ZfZf=AjNC9kPn:]3[EF,j#ʼzg]&{$W}Qmrm0ǖIH&@+IzEI0VY05MH5E:qeGsh/b2nibLqNx9GCL9jPeDJb4adzBnb.IdH9vDHvv4Z̞0МF]zSR&&:ZIFeѤ#1mvcrcpjjjHH8H$)H9ùr|RDI18>}7$U]PgF:e1E' 5CĐ+ qEZG4> &\U2XM tIdiZMEVWjh 1#X5 DBB*9grpU4'KJ0˞!2!D` C237AqY`d elӘ㺺EE#~#>Y~]FsL*'#]ệ==` .~yqn#݀INrrbfkZTuhE%eM! 㖬#fQd=d)/tΐ B*pGɞ8iCl'agشCrP |)X>d!P$CƓ)}eqg3?+LP;}қj0c:~u(jv}*8N 3R6Id,4[9!JHq,tFR~Tv*Q+j=oq.#W@HZv_79O72N2YSUYLJ upEcUқPmK n#DuΙM*d6}ơw|af6 wa>k8hNN(ֶ)D\.Dcs6/G>C>cm!o f7>M>2NK>c㊀g3̚F޳mldc*۸ۖ2^҉NYWCF gaW Ax'vL#Ch22=ۋ -D2:SmoLƗ8II"RH 9wBS;9ǐhjyÿ>yF}|IZGorϼMԦ\v{l'+޸I3fNh*65:z _2WDK&^/{_/ѷ%;c FO0uiS'N6q S~"0f $ Y>/s>ww#o٦sv2gg|:꾞#b4'8n[s{ZQǯjyʠΚ7:e~c$rYƈL-TS?ysw)8 8w |D ^4ug|ү!fH K 9yTA[R ꪪʪLUɈ )1p^9nƧv$ABj+5K&|9Z?Z+mwŸ_?7WT(A!@&Um$YV˲ڻ].+[tɸY1-L9z= oBZ:.,KɝRHq2IF넅ehDJ,j | ]YYǙRkzY_+ k%4B|08q"4awW6+טk"ȂQA@tN:yyi U8ʃ gOǔDdxd]='"ƈ2:{1*u6`P0&ۣN+r4 Jfpf`2|m=R#XYQV_JRb[*3 J3x,ChF-a6/xk<4 ͩ`@Hヨ@&+x@i¸@4 L:穷AD*A Fcw6?N^4\hQ8.lyM7`ٛ׀׾07^;N~,\<YUfUI}1r]@Sa_Y-!?&F'$5=o/+zxאe^,j^2tH-?>8斧uy m}L|;{?3Ɠ |T˿u&P$LsBY[cd%Cpd䧫]o&E z'T; :z[}u{%M}L|@ٙO?ٯp- yrȐjm`J 59ƣ%D[/L3֒ԇ~ H!Ҥ$9-b3Z(^M)Hъ`S-[g!JPDR cKU-C=_{O9kˈ~#ö\z%>m'/cu[w9{"=BA2iF5"re4ϋ LPxiD0,5YsYйe-<*O$C0 4!CO, ,F.&zK]0ްzgbEOmUկ?[+ :1h :d )bK:"l)4HRq ;<_"ڂ&8GBA &m{ػˠZLlwa_+'gisa2D?9QzSU cU~hT\'Zhi\l237$Wt1[Z§44Fr۟ѻ=mky>}wp]4WK/w m$ .߼We`8Ie`{J~ϔ5$6}!y7nCiKG.SQ6ehoYPw8Yjd,X;iqr%t rOkz*d@L MDҟ|#<.vpwzΓW/ج%U0-d}maWtT37 ]ڱer :3}4w\+vfՋG9=;7b+yz3_qnģ IDAT (8I|Th[?S}jݜ/^~%AAsS;˾}},djesy=ٻ^JlY[O> 9/llX7{@cus4vߠC 8S[3kN's#g%l\̍D2mcuVo:ĚT3ߞϼs眱ﻯbhre_\= /=mX%Cm<?|S̫r];7M-+6^uD gE/hРTlRDՎ?+:wu V-\|@0ٛE! |Ho ?vI4T*f/>wvi+ ̚L[[i" Y΅&/`#]=5ΪW)Y GN^ ~BO9B5 IQ%oN"$ov{_>>xƏ{Ku`РNlW~ףZRxzlϕw]3DiM?J V=3;o3۟!_rWt'@|ٕ9m>g|GZ>6~i~,(_[J?/[y^Gtʉ O^Wjݥ_ODzSx6~U; o&3~o~}͍ڼsV/֨!=5m37ߚYK$N"JEe_sgč %ФNnB,I]SWiʟ%<4B#oWc-$b9@TjRNn! !8f!(Y@.t[ 7iŔ*n^-갩E\ LUES7hBˁsQ]uaH I9yy6yL:o6E&dvEM'jcYqdss (^H/Ik_G@\=?RFV{7BFXK;Lc#YJ|{Kbqy\Gm^xB[XXxܣ~3 pI E{zΓJE1&ԝ z2VP?a 7g-!827 yW֫L{F L";)7˯[7VHbvC*ppų6xAٜ;w޷.|OۮK;kIy\vMn,V)D|Tx88ALXP 2ĺwkY6ԧ>qo>z1F\u;؆[f/B_3~So~̩翱ы|6>+:-]'T7)݇-yo3/~σx#N[YYX#^p9M>(^ˬ1ړzwcVO hýwǟDu{[]xEh5&%Isu lZ^P !M+!/.oyz,tOH0Eڶ͒#C 4d29 qv[XXurӜSI{ S DigG~^{7>-B Sm}Zn˸ d dŪhyb@Ol}4b]7(54H: XCƾ{EU/)T.G8tA-U^U 68^#8ѧ;fqU@RB@^Z:ݹz;ꍫO?YՂ#TtM~֋%^HyȒ!m;龁Zj=t̻Ta7Zԁ%5أmdx/a5nw5ĝ6?DzM ozJ_k@tAz{^ΰ֍〛>fԾ=Ol7!D?ho=>!Ϸv벟Go]Ynב'hA銵 {Q#;f=O l7?c[Sj[:hk1`tRYaPU)dy[?-cɰW,+oc!!@ e< 5eS`(^uyI*r55Ge6Yuj6_,A]I)%HCNF2}Xy ~C>}tdal*ՕUS)PZZKdxHA@60)V#lJEWdO$KP ÜmcF(0$Y>#$7!hdGx1L!I!"Yu_ocZk"n}$!rUX 4\K`f^Hq%zs9˸rKR&om9cq\qX%)dOdirP2Gk̙!uQ~Vn>Qm[죢""D %&LݥfC/Wlq30"|)%"Sxn1E^BNu}ߏEanX A妚&' a'4ɔCQBnsKXlN6`ʭ!q32c;9 #Bup+wGBeڟ&ҩ]SNW;iI  ~|Y$fqwg>mgk-6w|Dw7Se4޴{ý!a38ҽ&N8:ČdAAQ?r2%?N*R svts_qVkؘ?+vsb_|ڒy_ {nV}.Jl)&y>S<׾`uK&][ "mOQRUӯd#.8i?-]WUEl,YZ8Ze5MNNjTE Jh\^F7列Zg:i&~~Rm.'} \¢jD^Լ~);7<倧;͝MNÛu~'T1P SS3":)IULy΍N=c읅BE[ԯ:ncWKmELRdW3OMjʡYפgCcq鼼4C Aglo. <ߗ$JxgM!@A/n9WepgWyAD7N^ 9[hڿ|g D?=גގտQ&!$t%Jt/’e;ݭ)CA7?]R%kV8oM[ Xmth;_;eg_4p 3u_ .]lW/- ?oCgT I* y/ۧTȟfOb|fК'yу vݡğ~U:.G`mz;~<"wS]sVTR05K6oWMeOD^pǝp@ôz->T-ޣ~{ z@PvAin:ZpS_*c` YԵWE!h%*|C+7o\~홙3Uy};k׮G_셗|~{foY"1H=4#QGö|w8mwD87 X;?)#󻏊UgRh']t_ZSV*Qq H=?{e'\2{sHyW*@lsoW{uQ8.%Q40y$bq`eMPu­ 6T q܂$1 ʲXqWS L5v['o@\uN:Rrފo~(~FbW~|izTZR qtzpXAƯߞ3PY+9&qPa٪ en3n15Z! EUt͇Ol5 `T |!%P z!m&8:^2`86E,{أ)E%Ki29MRY]3š^Sߕ/I9KE !Qiche9a5,1f1 *X6`[7S쓌f.w14>rA}2T( DDB1A%Êe=5ĿTM{| >\¿4G{obD2rDRv$FԊ&:m5tyi= F!˚^[ȫsMaȞ*r2x&~ _gnld)FD @DۦktnvM7\amRJe"-3ĸ t"q6+<<(yBJAJ)|%f'ĩ{/<}^[XaqGD<,+:MMrT=R<OG׭*iaSl]lEYY2`li<7gDp"T.IͫB PxYip7\GWB}1tV1iysXD3!̑JQ,rVa6x[Ko\p=3xC~n;ܶxrMw"Lqw+\zB)cבFG~uJkKWBz22T,g$I@q:Spحn86}6?ؗ!Jȯ4lD+4.&)Ʀ$[!I>P,G[ NI] (_ J0(}H"(/S-tC,_}GǎI)%D93({dxg e%hɢepw^ec3V@ܪzopT:e٪I)$I. uj[h LUc _η?Y|@M2_ !IME:#UYwwJ/ݫ>(ʔ*bN,,4D锏>b-O'C~Q.AB@&I3-y&L2|:_3~!%4L眖?\7 2*q9 A.LD'-m) $1[R0W;ViԒrN~N+wP|(܂Tݦ,\ј_ITRL'^Atjk[Q*+W4Bx$k۩vŶ %IE6`l!a7`n~]amܖF斃TS~U78èBLoL:iT2~tz2߲>Tei"(/+ ԋ !]K)xhjܗ=+,YI:rբNpB5&>ߧuJ`2adibӘ, MaduxΆZu-S IDAT ~YC=TnBA9ˀbqt::S# g9|7xD gr_u*,t);!0}/l9gؿg D)Y槹[ԼUd*jOM)[5$}}284[,Nj_nLtQ7PX͊k XD )kk@aE{ٲ=Ԭ)Aٞ9j~8 _X- V6,q5_zlP/@ vIPy^AM?iXZJNT]peeƙE.`du:⺚ QnҼO_@dYqXQ~i lk":./}nAtjW%K,{AT5 g_wRRwuZZ}^}z6 G/['/MGԷٚ^A V-,)ea֛#A/hi~rl!6 X~+h(OrӪ5۫~ W~ܺy m+y})oۻew̼q K1y~a0˓°B%I0E)wݸO9V9MXqQm Ղ$Pd?nTJIJl֔u^vev)s'6.7cO#lao!D9XDyQ#̊νວs6uvjLJ+_ֳKMC7ϯ~Kf6=yѶ[wcUI?n2lM4?aB @fz=7v 5ofԯpWY@'TS4bJ^6dJlbnxi8VҌ5A/z'o?%w.`fОɒb0fƈMO6]^I=[;_]X }MEv~3"kو^BHwÂ0iNTn\: NkJ$Ș*&c#zu@[yϏ~:>gN}Ot}U~nśvªBLDh8ݣ64SAO?,쪻:Q}ti3u= r~wmqZ|p} IOu'}wäRҎKk,otT_yg4I5ێˤyk+=kѦVf<2PhqOﮟT&&N-}gI^wQۓSv2Lqwt^?jo1MZar#'"m8ۦnqM}\Fn-qߖsB*t&=luKyO{Z#^cv,]:,U??z )Zٟ&m@s*!ހ5(^}qM@*!{_Z|{7KVȒJRdjjG`& rXAB pKQE8QȖd-G>fr*b-k9&,~:Ǯq)fzJt,H5 z0Ρx"f`Hz>#NVG8bX*)_̓ woކWQx ?<{m,%F`-ދ]&`6o5[=ꊇן+4 ױQ ysoqX7𗌺񂻯}j?癁#օ_mjn^{O9آ'z]S};V`Ԃ_> {͓Ԑbow>.Bl-O|qubn~rV9 DZD䮫ߒYй#\1wjgu;6 o%uԷi>u}-ebsWϖI[. e ~|a"zţ|}7>7ZzУ߯1 .${Doz䫽a?{] Qݮ_o˘9̒epW o/55[=G<ۡW<&AnF?KqA,b07|¨oc2&u޸7X'sѵ&)2T' 2d !1&%Jբrو[i/m7\;g̜0U~m?xuR)7s|5KN"!"F4~Zarۢo0"5pmp؆q̩*X77w  i7c量Pܩ^@ns8l̩^+4x:֙X6gf Py ǭ%M7}m1 @j&]"l[ؑYŦjX7OÏ b,+9|}"oF_Щwfm̲e[ sJƮN-ABH]uS$4F,"^*Z#U^# &uG'xD/y+<J"x8gb1VJĸB%"$ _ƝzjPIJ,-`h$bMa4wl|ayi\?NM!X+{gߛF?K3_؍˕B"Bn~8h.O2kRb1Q.dyRہԉY$D5U4-g>&'s ]'jS s|TT"ݲ\96̌s*xxe mq(ߊ#c|.˫$IGGGRCT0Uڬk[4qp|qiƼ"}dTEЉՏRزo<46fK/2J7i(4l LhwO1'X9Xe } s$.+K3̏4ج +~o0kvGRCnD1+wOS2i%=C̝ւK^ӏA'3]D'^vAGk1?my.lloc~]c`SI9 +Z΄7aUgObww>,%fjR9(qN YHCmQg]tW7M33SRoiț2Oa]{,lO:Lͻf]Q'/Exx 2Y-UbHh]YЭ˼gnyntGX,HJDL ` yJl 4{ꦧY.Y}52*+D]>9򉷗V6wV'o};+uؕ`y,r2B?$q2k8Ag봱fJu>ML|&"@dB1ATI f+V`odL9Q[VAΧC^Ѩ5dș*3 d;=Zsn"wxFm2jQֶ nAvxБ\j uQV(QU>R|Q] mY 'Uf\!Nز5 q]q_3'z,kU˯Gd,eWUͪ5ϫ0Vk&ǮKIU#{W=ˆwDԊdݚH>&%d~k~GXFabJ pi52y*'I$8gaAn/*|A(zfl8- ID ,jt::::\wfi7X!X 0LvIըV,ƇyxACβ Hdtv :^J&t0r($DXł'g\% r]X\7M%lZ"1dބ2Ӫ3~xSu U?׶жԇRiʼnd-Y~0{+MdxČ7"))3"RΘ7p\ηns"f3BexMTC7?MHw -Pv!@qFYXw"ljwsW}(d/ 5eRPxVoɏ 8$nlh*4:N')0a+\Q8I+ $2d')C&@J 6]m13lAkPMQIoQTjң`HRu@$\.䁢QXA${][SMPe90|5tMS+k\.W(€K!JRR'/V$.)R{P y*:<;J<㚖Y-Ԑ5?kحMC Daz:!-9U+D!Cw!VjC2'!)_9)s5j-qƐ1δf&RȐ5&ٺYt Lu翜1McL)Ĥi.;@dD$t+O=ݣ i T=) ׳%" yKnEZ Pޮ5lm>O~0T3jjfp+K5RgRȩF &qJÔJwL~Um.[{QEFGwV$e:tk+"!$g+#I(jd i'83 z$c !TLT[#d5P)TIRJ20 A"Gp*:\J,[)sbX5GAIU0ٚZ)''Taij?$*n n"Ha)to:vYw1qRJ!%W'ƾѧUaM+G/^ IDATϐ2*n:رš~iRAHƀt*NRj va&I6A04x߀ u(Kިk M!AXP{j*1DFTH&!e6;+P$Atmcs7AF9v'(+i{ Td[^{P2~l˫/,崴,;!'U:TyCQQr?3o3P;Q3\9 H!(RABkuj  _(B5wï3/Äsq"a+YT$|toP:K *DjDkqABƅ?QɯK03 2@ sƙ2>>JHY)mxqMD݃'6V9Z93uԙakʵi.CS]q$qp=0"1zlլA`dPNTB/-ѿ(gv񱴇'SLʀƻC5ej˜ 佢r YruE\tp ݒLʅ|#7gL Q$$$JBp-P:7 \?ݩ}KTUX}(SJ{M[C>VӖA{iKTE}hzk5fj6j %Q\asNB{OBrX 2 IK%ŠlD̏ 3-5|>6x_uw.Ob UАx+TC>Ppu%DIF$QkʮO?p`*3C U:!eTޑ$ ~+QE9IݶrR ,0i&Yu9 ]Gß/)4,ꚅuUz;*y#V'W $@M! rvEU&H*g*O!"g #嗎n}05!?8K?0z $"\w7zH ǩ"ÊOmsJ%!iL.)K 5sr$C6n\C_zt\+6fl Q-e󯵨(u\p aǬe~ Bz ǯs $o)U#E2 qo1vOxaiCtgkhQQyGn^a\Ln)S‡10?q+JD"R[OhtCF%Qc@c0FIʘq`d/ﶞ I`D5rU:yJi4Ȑ!t*RRd(밐kȆ<䵺RJS/3B"!c@`A'! $ +Ma. 瀂d{{[-)Ӏ߼0{R&My\JҀKtԯ<ыڍ1qS'L7 Cr9NM<@5Y3Yg?yL]}f'G'U;7bzqs;#I GfK-Kbtc*>uxAH yfLX%W>׃o$ci INb̑9ۏ"JW u`R[f CW#HPaQG$ʓ) YSP`\qA8HkjJratRBE*H==.ԯ2@2QV.uf֩$Wufa664tҥk.]6777546a&YMl  4lqj"QY͘go8v@H {<(q-./cQz> _wo ␓y=ID|n8n@?W-w_ _~XuV5lqﷴű3pӜkɂ:Z3Nu7T*Ə6roX/3"/K MGyo"#\YDd<&îQ^Ő&o~ w ^w&2'!^r1[V~[5ƀؼ}'c>ɨџvÎ9>>2Gϱ~'F2j՟d-ӾvVq'Ig}n)I:59Әȵ(O~|^MҜBCF΅:4%mXv']0GXeWG4v]9,E<#{sO>y'op7A.poJ_Ɛ7lsʕ<{$E@\q.d"^Lbܔq<׃ÆAwF?qže5 oN:o< p3|zM.dx-.15?.gK|w)|⯿[GePy_(^1zԟ@7şxsɓ|/ؘK aPlP WTTJےRE& 2k}!))}RWO{WChßMr/>|ϧ~8r4Aï|-}/eցڦo5;?{uR  fUJV >*-CO m D;;Nȟ7L,3Mp8f1=3WԈA &prVP6E˵3Jg_ImArg>h0rtC)T(cMMMM1lOv>qcW~xҝd'MܔzR КEkT gPC89DZJj:*Uy]hmSH=;MZ+"Bn|`gi dv f9IEiLPAoijA2pw=)&"A6]6voDҴmTװ6rx0bK.ݺvڥKccc ]TF5䆆}3BeޤVٰ|esgJ2^g㵯=x͛n _?vSWG<֭4tz[q㛍 6} [滞rK7?g4|1TNlz qo9{XMI1BȬ%/PmV͖&3:#JIIƴ]"}\*d~#ZxMH<*] vBccZW9{܍ O{W]yNzp^rJ]瘔f#PPIJtTUpƉ(8YMN[~ho'ogc䬫􇪦Ce;i.2@F]#s+@Ii/?ebGcqߎE;2Z̑NB"I$F (A5hyMU+R0ցdmXGQhFa :?^1I\.IMs#vV?)f%s 7>]Ѕ'߮u'=mE,6A#nr}>]\޳b'A"7P"mtrAT ikK$BtEϞg]y4t`+fqw]zOX7}73~v?k^9Z"FsN(8Ѝt mI羓N)5pʭ7z{'ۯsթHnv9Qd]9֑/@zY~)^?|=h׋neh,saN1""T*QR)X0D {|Ob(!Zl4lsM9zI;;JRW){W9]{YG;+̣y{K(5 faF!x_M!hy/~G.6?7o <3qS4%u{|!SMgHH#G00T9T3PP3ƝleáwN$e!BX,2*J%INKySV]yA`$$wK_'dw \s\ۺn}+ݨ:OꌧR+:aCLNKINi䦴+KO(Ņ HfCE36yp)eb1rg[ɭMNBhϺ}ܿ偑qZ1Cu Q 3DHgЄ$HDv9"8f\Aݱ]Ha[XsnG:^;xmϟ Ȟ얱OڴrQOKV^:[9W@ bs')HLlHwO||̜o?scqࢥgR$I Vbe93f̘>}- J7sƴ3O1c~-M\&UsgL>}3g,hU2ى*\ҖRvI1b~6ñc_>9lrUẇc?}U3r `[~;|&$"ɯ?2GnǑg~=9zdƮSg,,7}vQT v"vȪT㨯 :M>}>oz~8,mK^&qY;G_vV%B[HHDEQ\)w,F>oKAy3BB1u^10'^ Ǿ/.Cߡ{ιo:q^}yʄNLd޻w/ؖߌ{pvϤz%L5vlFd64M=vCΜ97 TzO$BD2 ' J =zТoS xԈ/<q;p >4O xK~wgSx'X֧Ҹƿy>9qԟ*mׯdo4{eS~5^!}Κ?g73s#1?q5sK.l>}Ɣ> аu~r E֗m7( Jcn?zjNc  bPsAp摁 #T^6X4|)5?JT)+RQ*rRJBXl,64546666444 :H.Z~АD봷lԂjѨq[Xy}o.7w G}h"}te$[ ˅03΀.}2M^`իd$vTF]OsTieU-nFFn]A}UVMg8ryٷA10` G '$i. $_=Y.I)pcWD M8_ݲHҒs95{vQK,ܐqxЫyn[]9 63*g,mT7/d̓>cw@dݷvDq$ "r\Y+EBTʕ80#`ǒDy K3',A(O}ͺ 1|p>94!q!ע_ A}oOz3 RXӎG>~nb:̚v:3Sx'6,I8 ޼Y~W=uYbvrqr?{Nr-y߯={;.خ HQ;i//_Owɞ;\]fs}?1ƃ `R :b=G}Z=Ñu:ͦY%eeJ;kDckh)6w#sX$$T*RTD<92B$N;W~A+1bb@m=7^6m_5n»/g *Fp E)ί_{;RּX55M)hS7nXuvvaU/ֹ(0#qLVT ʦK#o4WWcnj,6[v UZZr<`a@ WmɈ;F56l}秦w6t Q#vONd>`o;.~cMڃ;7ߕ{MUmV*ߌ a\)dvXXSue̬` /s#bZ_i69u3ձ L.ƙ2u7-nT˲UCEF/Z/ |olhljjlnlljlT(0@nXL9:ip:HWeGDqQ˕v::ʥrTE"H2aX(j.?]3#z3/_0TtO.N8b1~~ԂMO;e+r \=#z3_,vS:^=  u,hu߰I+3b+GuoR,|AbOA)%uհ?\ie:TY@$JՌiSҩޔƏJ1ٞ<$ջ׎$ߑ){zU]s$>* r/n^-KLЈN!AU2u.\ƞ Q1I8U٪Ns@ $q$$%k߱3VBޥm$b4I욂Ʒl~9CچAf;`~-UD8Nr{4CR}o{ѳ{615w !(BAl:-9,r,^mB !ڻڗG~qo߾OhY+4hDg5۟(1 H2"@d?neO7o;O>4Ǯl#>|qRImn<^5BDhA&*rnzymq‰/O:wٓ__]VGSx]/M7Wmbov˭] ֩5C >be+4wo(IJq[ ag'T@HWR:j0xn[1{- [Oo/~#7?$KIN|9~x[]?r.~lVgyBx +rn}rvӶhױKi14bnq_u4lS%cI!!X=%=nr}Sq{,;mEbS{-R2Îނ\ ]KEz"[+S}kDn(ĉ͊c$̔`X]ג &pN.JRԑ1X,6AoرwT{ Nf4Cا &1:YKFj/K̶CDqR!)\xI56tҥ9))EB$B,'JNb]) +%H)!$$JRKR (A1Ww/{} _<}@~esg̞匥 :&=7}?cX4_56ȋG]Nx@d8ts^N1WG^wyWBCKְ!nwȄ2$:cRagcùF=uR$ݮggS gҒ}lXP(@A~X|ܗG!yڡf*^oϭZT2I/=rDTmmDH!x be7!H8J7>%ǯ1R29A0A#p<|&fz~P'6~/nђjN@nf*Ep0)_,G]-,|X YKþ 6ݸljK@Ks}v R\ՂJIBRKynlXU.ZMy:tdJR_[p3=鶧hh7d Vɺ2 Cʕ#'$ \9"$d:z̨vvfD_#N%E7yJ߸wawހϦ'p9Ko͉pX׾:EHPy*=ࡗ52N)n[pwc׵W9p9mS1oBHBԺ)A";[K!@Jbw:TEQ-)G@9!Y5i/ ۦN.K߸|7m͟(z :s?F-fxꡧ;awO☃;&v# ~y뛓OM O0ڴ1%X4~j}Ïg>Ci-9W"U3EMV?O^GtQ?׼M-H‘CeZ|]XPjjWdfvʘC'[2"IRZj~4:eTĉHc-<̅aPWTXV{R\2a@@Z*I !uPM ) 7eDn! ^u1BAD e*k Gd#pDYp[$ I*Xdܼ<K(Z*)3u_ͻ>N4qI"HEqEPcڃJ+er%s)SQl))_\8,JCO2ob #9ML?4,#Aq !bdB$ T.eaSB\S56n<KB$qDŕJ\S_to1𨧖AqOlYVf7lo{s YqycNuYtuރX#M0/-4ްسO3@daTԋ5Cn+n! 8YK7z?Ǯ`y.KZyu9aa]dGQv\=$5z^r)ή~pR00 QӲ>(S pelv< lP:s˼FD|lė?8牻KAQJ%gK\ IRX]Q_-O]5XJ0 kؘse3'SPF^l[ =VнZ,Ma@Q#)ƮGQU";tBV\.9X =>W'_7feG3.mj>]d[osn T^bٵOrnF Y˳tdInt!xqfdW?6QlP9*׃'`LJpojc)p '@} ]#j{-2lt'wȇK" +G6V%m} g=:ic dȹZqEJG)T(B|>A '^mwvƴ/6mSOަHuY$ ^Al a2XZv}a\q\p,n6x[c|9'[ޝU jsMH+TNNٰiߗMZH6\1vmϽkUĸ/:rG8h%uVkg׼vإm;;zVJ_3qBB c6m=VߎUn*_rfUMc kn/11qgqu<+A(33s=Ǿ-^JGGKr\EΙ23]NeL*B(I4.!+6xahU@.=HHǛW kue -ktc1Ij8q C))R}uk[[[{TDHe].9 FD~CB[+"e޿;jNj(v+hSMh{bUPV`LЗ>슞jݿ\V_ߓCv[$PQ-բBd>gS]Q[ōݷҼwшeM1 s1: ID\q isrACuōzl?y3Z%htb1:$`-[d+4( ?ǂWqqPwV 5D U3d$)^>k^yu!"ۼ{4*IsU6r@3GȊtYeHU^P)ˠ:l ;ګAH=ë=~]Z D[$!]W4 nOԦԱxjhgqSe05Iy{ur$@r< xQG(ZoJ@'W޽CsC5ճ\6^@uՋ]6ӧWsZq!(nJvGe#=C:УVoNja`BL\TS 9t˦%Sf&͏7Y*`tdaR_XgZ&%犅P,iz@Q$n1iɔ"d!$2)k>$Jo_csmaP9>|AS7vC\gPW.ZҼڕ}YZfj]fQX5e>pO_}ut~߃|W ̅ș y38-?kW?){}OrLU!Qe 5 )jChZ\ι1JI$XF+Ҿ!ûB VhP\w XogEc@MkEIAP(łaB+CvһDDDJ0sCrz Z)3KGNj3LOː10wY, Cg#DbaA_YY)<@.-IuJIU]g=Og( S `Gc5tK\.qqliTͤPj)EŕJTQi% ٿcVKմk<+X4=瑏,5M>Gud~6}3g̘9MxhhELd^:PN%W!σW݆̉m7OW=lv.=igUוul֡]k&7VTkӉjz d2"R=QfYu]MA'خ's+}}?u)< [uͽ!0MNl(xiq'j\D}kqRT$1l~&h8[]f~_\ҲR Ԙ?9u>Ma6_?v~^X<8ZK\4s%w*p͖7=9] NpK,$4@qUg9sG [ii/LC|.BN18漓v0hc.8׷y늷sC u|K~q˳/(W$32 t1P!B*1IM#@nAD< |ʹ <lN3+qZ jP2mWϾӱ?hqʟau?𚳎OnӾW[" >Cw:lzAoO֚f/k4OشY3?q{5}=nj[6{w=˦=XpFOv?~f}}ݳiָo+nY<$Ȥ*]1Kٿ 18ȴ9"QGR54i49t Jv'I$U7G00]vtLi+g}$,J1rUGE=QT$f\.ɂlu^pUQSB9Ƭi.C9cse_&t_2"551H]=F YtHC";i Wk]0pBhVBZ->dr0lҴRW(c)s9s:T㴢:u3Fp{Oh;ّUK77p*;\oWv//x{|3x;+%O{쨭׃_pg{/=ص\!ï>c^nsۼγ#x{hUZ,04vK։RTek(j(õ}Сv\'g$Jh}-f9b-ćf Pzy:6L}AϮ.qcgj`̼f$M6dr$o_Z[f>en\% ^X m!ٸW'Ot32ࠣ؞0!2Waw!O`η'/ȯي^}y1B@BRQLraگ OYa1mlB1s:1@ۜwoMWB2-yGyA~g7ӄklTku Vm:T? #Tq5v|m3j| P3e侵xZ7?|[ՋWȍlѷNo8WҳȠ}g/]GUfIc] Rx=s(R|<϶ŭ~#4w>r<̹cd4L|eθ D3{i׫{x`̓\|iR2xwcE^[FXt9BMy\Ȗ2q< .yb3=YqB#! "gBJk.DBTŤO"`ȃ0,B"s}%.V||tN `R쩟rOgenG >gc?l>:m %Ӈ-z%pGф W|]obu[~^{u_[[.;}~ngywgi∾̪BDBʌ/x7xWk +-υ.ywFLLo4zV;䇜Zzޞr[8yCٝ<~jo痾=RYx£ʌ0=gԚ h-<$f1XWb2 wZm\ƯT@H)5ʹjn+ɵ9 陛q>drJqP( ::7XeRJ"eJeS`:E*WKWXQ%gҪҶ\y] 25xBNS.Lp@D#AXm1Usͷt7H#plK)„:ΪQs}3P=RDUȵݫʝƴ,/"%U;A!0d=X01@AuZLf*<3rO='|rٶRӚO^{??d]{^ǦѺmnsBc˃\G>4,fY~28S`a~/ wMv}ݑ$Ie24R`Y``Ձ hw J?}D)VW'4;R=k?QjsT3i9 [2Fsӈk^U}f$4+?d `KSs攲%eEZYd>&ٛ?!I \dtx@CBU-ˉìPBߕ됄ȤqQ13@?Da(qQ$g3AE,**Qt]W]לu `PÊ F%(Q¤{|{ y%0]]u: UgYlmGmVcİM{D1N5 ^|_vMe%dF0bgd$*#f9c h[Ŀ L}BѮDHjqUN^Ea75;M 1" Br Mk:nU#U ?fiiYIY6 ➉sth7"L[L!7s8|_d,2$H<386ͱ-BI*dUT /B$)qd)j]:f#k^>l5כtmj6\*e:K+S|n۶2t |5tWP([:(|4 %5lXd:0E ĨAbR/U#'AYK?FE)iTc%[נ(!CFB(F7Y* m{4 q`4JjE[d(źuFW( AP{QPb5.1Oi=dg0 M{+8IAMZX3t?!{8C3-*rjLr!~#h !Pv(Ƅ3v^CΕp/;4+ C BvLx)*8Zfpj1C ːY|KN\'AYqB)}' ,fz?)EP%C8CjIa7k2dҶDNN*(_t*yu<#1d!+#F'<($bF> eKӪ =}S EM0y^ꦈ$EAcj0\ذx~W:rB+ CѣNY Bi|0 9e :[PF6k.g,@ @(Śj'`_08]$HDkZV &蓩DC+h.@؎:xB'-UB%xsxKD2ôm#5Vuiv8&en xt)͵ M;cĔPGpa5L "h%0PS 4`r'a&l˲@2t)y@,˲m$DƷHC`Gb̾[ |E#Uט|YnbFFa+QSyc>uwp RH>_/:MK-YhZ4yU 41GT@<DBJ4\Wϖe ƸȌc3tRP!'nfRE0uה>,8 $ >ET-$iYYa2nd?@m~+Z2[/i 7d 3y!7dL )^gr S imٺ+I&DFЀ0"PzՉ 8 s#BeU(֙RH!QG4X3΢HAFzc"PRCگKю8*!Ssj֝m@u}t ^2f!K GOƆhNO¿ ¹?+- M6H3T e] jBb?(@lxfl @c  I=OͭD'8+E2)![*Y0xpEYKÞٻ[yX%Ftn Qhj +~{JbQt0Xf+H4Ÿa@(RA38&)t  ,GL2Wtʠa)T-4@"#cIi*f`tz6"—-C?KC#B)ȴ( "DU4 DT]+U>*յcXe"FhV3A%,#G7a%,4' [ؔMHvt#U:ƐN2Vqs&ߚ7(@&(F$6B1$Dbtz짔\h3c5IRpR݇i(YW'롃NI%u ,Z̜[,<ln!6Yca0 x%TL} Ȳl۲ef2ʋ=5UQ'1e 0h!K۸*Eln.3IX>M,@Hyؖ6n1ݾ+)ˍxŦ.aF#R5kGH!:H)”uKؚ;@&adY` b; U2@nY@* ms9pV AHCOF cI 6|$e1 t 74 r>ɀշ$q}`F#0noe`Y9~d5|,KwU>sjaFA)@$|9P ^2rI9GT& AaeDC>#)0ƥ*)iaWƉ gq&_G+GRSa. Ph Π/ȐRG\ `L0tۖeY,t%eTB'*5(8*[/"[,918zR+~){k5kUl""9|߷8,- 92t6dqP# $i;Sř2nAdda=D'T\wkE~񾆦AR<)VSB'Yb󠕅h:!3YBCD$|j˽@.3;Q U'=*hDFs 1 ]2EнiqA[b׌<[^Z=")^iY^=$L:26+9\o2k 9UPxA.IUދ?bO} Li)=OK ^R\[\b\, *Q|`'73!~"l+<Źeۑj&~BB ej,Àx](}ql˲"{Mi+9s0lit{8GxjaIVfg IBŨϡ[ *qnYjMDʆB9,dH 2mـtG Sb86RR~ 7C$=i$N dYL!Mt |ߋ HHf6SI!O` %GHՋɪ|t780`gOXGO1WB5BudrXhȰIE*煤D2dPJжD"dU rND/u n#GSGJ:A1kYrqІ(}_waI-G8]1` M:&j" -(0dD0\Vw|ϧ0ؼt}zlH\DL$q+JHM!5 <1NgvT}BeYU5aE CI@ T{e9 xv 4f V\r@Jm0 "~ZQ:,K>ӘLҼMM&}:\C!?$!D"/.K%!3'Kߔ)$ oA)E#(BZ0XFCefY l*)@D1fٶ {V(\:Dz34t$;|~9f(zԣ&YIQiG[G@c`84 _1Ƥ1m&i(Ƴ&q7RFm2j_87fk r) ~ Ls.H|efi.B)Ӟ.\M{kq$Bd =#B,DW] K{/Hs] ,QYn Ug&$ ChH`\[PJ:[`L9W *^8"1cD Dgl]%"۶mJgχ;&*場9P//8N²aIv;[;ajqFߎ!rY)6h ) >eث0 )|ɵa22 i#=Z4:CB$IBUϩ g G$fcgw4t4P)ZC#nAp);=SQV EE]r LxL!`\,i-K_PT6bm؎(Lfp.Bb@(]|䴩h}հ&9i/ouʹaJ@-nH"_RQmDV(}D1n; oC5Q?1#! ]#}܆v@ K(( (HHPu,">\--jč8\ODDDNRJl  r蘤:D6sB7I,^mȉH\*ґQURI[-aArbJ26ܕmH"2C #!)F3SGT⑁HGdn&cba\Rο)uwfmPĦ?"RPcg2<`,p((0P_o$E0DɪOٸAԄc1;۔6>B2.mN8%)7 0cT'2:&ʰuMȼ34z-L &c&H :q\?GR<4v)(}Qb}ʈ:#XNg H$3U3c AG/SgA\Hq\WSG3?|A1f]0Ձ"&rN‰|WdBT2ɱ- ,ryTs]Q yBJs۲uSt }7ϰT /.BplFƤk"ﺮ Y3zIU f[300PЪ<Q/ X.!!MhiDczeTl/99#4[y6ݮgek}€,{|Xg:60MۜsT$J[Cnq۲\|sy!Tb9-p]?z)CLU%UnPضc[cjY*DB͚}!sFt텒P!dC`;F5_ ;,Ca#j n$h'sFaбRCjo5 ѤɍMS@K\U/cv^ض*Rɤ @9BC"ϠpMjooiaŖ[xVw|k4@ws$@1}\VkQVQA :n2AT]A$5ː!otݧsؘ!|!o'Uˀ#||qO(г||&9$,-T P {ȜZAHuF*o%ohneJ)J&++****N ֪ѽtC~9}/a';Z3vаY>9͜ IDAT )}FUFY6Nie ɡgޟiK_}Pfno:a>?5'?'VĪzq~u-c-ӹ"oqwZ ': '7 Q"Ln[Z'g}ַwL6M<ȶSQmb8yoEk`ќE,*臅,|T:@pќ/oQŐ. -K K;'F}svn-'`D~_xLF(|J3~% lII ff4#'c)MʅAZ/nv¨m鹞zBD5Be1E ɢdavdm˲ yy)s]Ởﺾzϓ)/rS)7J%Sd2~뺞B}\Ș+Nɮي Ghaٷ>a% |W6vXrŦ]z-nۖeq,8uА'Yt [ZӴKJW/-]t꒕KVx#<(k.,8u MtAͭ]w'*)]={4,ơ°=dU%+}]:357}UKj3j?2O)7 r\Y+~5sՈFAoIw W1eI²D^cێŸ/eeeL* eۈ<&?:v֪eu;b)[Y1?<[nxMlT;ْcY ڀH lvK&| m|($4y-g_Girc*]ZZGO\ZXc@g@ۙ &mNwVhQB _/xTl)@t5jcA$gFbFan"bNn.4INƐ1pfA?󂩀"7He1]纩+Ba,63`PR}$B*4v}sK+{נ_G)HƤ#G0T N w1I"r=0ktjGg-sjZM}R{ %o/)@+7jԱ︽v$x֣cu)_!ܪS.9;jKVzmdgV.vYV>-UuCe[x3,zCNEDPD{ 23!&#"-6ڃs,/==| }Ի񢅔V~or?[mZو엠ᄃAĮo}w=jS XKzSJ|%v?t(얁K2f q?._zm٨)ϾwcR`,H*$,^#YM89 8􄟪r.#pBՠ,>3>{FF< dzh*[Y^8'npͶ='gUWPlV%PN/6WOm7w-M;w"Qm }ߤw+?<0kFL&א:R$mݤ /AS]2B͋)Сb W\ø^L4[g_LH[q,KH(d'4,r$Im' ι.3\c3|Ȗ1$*dTC$ƤZA%DQhPah)I6()`i: BMݾX6E*ew? bMOPCEVsi҈i/jA-]mh XuK#MDho{( BYn)x9$0 ed )$#YB]Cl$/Ru(&v['.)zNW.YQdWS4޷)^t}i;`1?򮛞zyI'CMo!6iF3g纊R#,*VjOɰ c'ZYetLv[uvxdysxD6}yɊg/郿Fϝry/߶wg2(U& Sqdzƶ`BN΀QnrП_u ӆu֯[~mDɄK Kh֜"1&跂}*TL•=]/㇍ռ%VW^b?\/K>U~|1wjzb21:[%V"bҗ|3/_YuAgPݗtRoUi@eYvzeO]toOY4wI41kzss׶)[1xSM+[x^sJoyvg1dܢsR3idFe7!|}O9mvz7W0B W @iT1QI+6ز_ܲg{|Zx{7nX okq͕-'|4 ǬiGL.^SildF˭O0؁@{BHX8?/mty7_v5׭ݒ۩\/rGKk_1v鬻OrX)}:oͲkϝ-'L?s^qc^tͬZر|ٿiz3_+]䇏}qC}l\4jekFd^EӞɏ^Z<+ZxR1 Vϗ{,G9ZeN#mРn~4HSܴxpes |%h53.?.j nw\Rdo?~W|BOjO[t1_Ў9V^ǿ. [s^/wTlϞۿ}֧t9!]~lҒUה '?ןR14yomf!.;N+j_ތoSV}s)%+~5-l!Ԟ|DaM{f}ǻ6D'_G3-*Y:u=3NL}rc'/`W4 W?]xԷ~i+C0FR$IЄn\ǷE#X0ս?=qM.7+J[;GyG̟B׫;t͌zg+8N',-];˗}:oҵEsrI }ŜF7rekg~teM#)Ftt{Iӗ.YC-`vCf Y:Sr:)k|r}=+ XURiwYdSW50`Ұ(#"!7_g8ީ%ຮWx񻋧y[U^ػ#B}Cl z=~Ձo/ܯc&Ÿ<‚ϖUR"Zϗk:c\rivnk>$>ф8 /p˲,VWlXE$v/_wn  ZVb])"wk]ms .j`֜<7* cͳ]e>K{{=q7F j%T U3^жZ1wt«S?ܷMV{";lxv ~:պCê%z|-}F=n?c]Qn0w.p;r.vhg.}RFno7Kݟ^/ޘϺgx}^H8Mk>3 wR -WCNז{XI_rษ3>*h(X.](@#}c[lnrũX矿YW_^t?_|Dd5[~ՠ? k;I x3.h@j_rg1\pydCUw:Ý6ֿU_]{}T۱eE2IRUS4r҇>-煛4A\ #6?5_ӰKM_^9/ kwϟ{n/|^J)` _H*D|WG|ϓB$7Mgf [uѦlԍ=]+o{ky_+.u~gC}]d}{>c^֭1Nș^wU_Y{}#T`g>G˂}d{w\׵Fl712 E +>>[+zPOt Q˻vw䮳hwrv}&Ճ[ٵN~i]ȿ:gC C${=[Yy'utuUm~JH?qヺwE~3򣞉|Q9Ħ~G+*#gv%~h:}ك ivӤi?=׿r#Q i3v2ne<3ù7~3x˟{}57uҾ!Gvl;eC>Ck{K>U% +>~SWZu,@zo;Wرτ=ngѾM}&/xԙ\cOyϊ7muGn~E6x;,^fܰhg^ 1*f1EގVtyVmVEP":ELWbLjpS)k@i HY3ПޫHz_ ro^-Z!,Nmpn{?20"%4>yKdL TP1๞1혥A4|qLrjsyQ_j۶5߼ڏ= mϋrW ] 2DB/弢|ge; Ƕmjڂ$a,|gxo}MwV|e=_YxPMGRzPΕ#f}=ePذkC  [;ESiAn$M_uBBo7cjgpO̒:#1?(.qɄ nGI ΘdفW?vN7x"@A itگ~ [tkrRMw̽ Qq-.S󻻪nQӭ~jO/6c IDATu]n@ JNۖt-WUV..mmB c"_*T^U/ aŪ)t;oj-%Vo߹I_ v}[܊fߐy1u햍 G|贞 $JYy֤sNjW߉t;_lX.Us_ jS=Uu={;U7NCCd;al_1ƼMU?غz{~fS'n~~M7a6 [*+8_ˋ K "}f￸3_|wmf*P7 vm~o?^O䵽%_r歫Ҽ.Nł v9T6ז1}wsNj[8ug3ӶG ! q1_ͳ&sRz\I]&ھ}Ç/ҫmҧh:̤G^ifHQ̂:n`۫ڸz=5>u:CTbp5@'i"' xaEɴpDٺq5F7M+[iMZ\gJY2`m!uMQe(tmqlnq=}`sS~pJPL{ Ծղ<{ 0) UKrX?a+D@Ƒ7o3^]<_{iևQ}6{20m2e)+ ɫطs'd`H^žAG9y au[N1rN %,CX^˘PJ#ݪ*8w8jĤ|>м `x2, #9;}e^fVndPe^GYbd ї:9BD;T1T20~>Sz)^rd8R^(N`?9{kJ!E]~ (!\_K010>YܶY {-b"|rS)ÜǮ{\#9{[HUl][d )bgFvP0 …D^ռY%u{3Xb~,IN%=^Vyu;?j>5/̡S~t=z36~lUj^޾r?W%iW2_h|o^Z6kJpw _fؼY1Fs|~Yr×7%'OiئU^Qt£/`Nr٣Xa?2KzaemZ[s1wO$$pD1VH#{mi IVTa8zt}Ӫ}}:ÏإmslGAQvN/auο+z{`Vu#],W,kΘdඃ$p!0ҽ{miw٫qp|Mߖջz7ӷrˊ~< t='>9 _n}w{i6Y0kU@ ugb>͐-w6z%-tyVH "K  eZSӪ0֘&cU[i& MCxum=F'~?y2i^\T,j:͚MC rϢCuyA:Xqc1w8RXzgKQUeY{@n>XIk("}겝+P)}aP*%!ClAQ v)-;e^ [7-b1[1fs!ѧDm9?|{&ιvH :ͮ>!yd!gN+9q׷O*}ə5IC_<~us:+Xz(Mn`/.jn].z qZB(].I)=w"紮PGx$*~(Lx6j 1xWp-<~'a h/`WoW]) ^i >ySJ#,"3#xF yI 90 &bƕ4;p!dV6ȐnkT{&cxFI4O4>Z'usz,] lWxDSঅ6-ةOyG}SD4Ȩ #Iiv~vsd@_;rk#Yd;]KM?Ed:A玮]hؿ+ysoؿr6ݷu?ذnfNdq#ΧL'_Nݯyg?o`n.PpP`J3#ZMdY65!;Hm1!JU$T- )ƌ{}&tI!.!Qi=#B*Ujs99޹3=otv^z]{V9!#NBFAUZp5˿sI5j9ctd,z gziÿ>1"UBHYB k=6ʿp'"BSj!R#$ϯOno$I*B A2b2pΘe!_$U2GU4{FkVaQ.}'@RF \!%BD4TRPz1b{ekZ_V0 sgp@Ov?JTV>=sȪ]Kfn=N-,.gM^b o,x.Y6#5o˗oϹ} L[>ٮ/o~jKce uM^%ux`ĿM}s9_֕a+*_m+PˌO#!ok aW>b{wV"~wݸ/Up۳D1:O{nj?JWBtm:r!3W׭lCB_[izk%ZWT㼎yOicFyRG>5"GT >Ѷmp j$]z"%! ek^sbi*Aհ]3N4iӐvn]irf';ci8ۿ]وW[RV bpfBJƚޘyV^uܣ' 6w_*9VdўUۃM&,]7YKie~"nr$xJ t ,)iq,@:dvzn9hRYctHլVA 0s} b^ 4I١]>qΜ:Gdn(G4m16Q7˱m@#|Æ\ۇ,ܣZȪSa{Чz2;=6 sբD')0=R! ۷"_orTAIe[BIG!u 6%!9R:(E4`ʵer~]5k C.\X*26i 9!d ∊K1 C=S pPF$C`ȔmQ~_Ys!+AF=;v^[fS*&>@ 4nܠY$zB fr"0oԸ~eDZ<+y˥,۴z7kplm@1MCE&ۉKyZ4f6QJ؟ɲMwةQjᔂ=+7?0)-sg63J,Aň 1b% \(D%ą% 3]uU]]3|ݙ: 4Rr9Z,+7'å 7t"/GT9iޞk ukJREIpr`Q2rwߚY_}<;iW6ʥȬBgv5s$zӪsnd HMJbZ׀}q *W}ίRz|Jy#s͡@=:Px禂׭/rĕRpDvs]qUعfWo@ڹr[feY8Ė(37mIThR7O+sNi\1mA5I1Ӯl skZ2 vl,(ذq{Uٕ6[?n̯]r] ,JB,/f3DV/cRW\2dq*{$FI(bnnd$~[uguޜ+͚/k'ū6gh;e[(@ N^( NX͛1owDݽvڲVk4"wϺbRʩԠSR ѵƒ_:[5[?n8UH%ɋYve-OβcxVNv<;n960`f۸ջecq-͑ ^wFkoݾ3CluJ,v#^ѰV z>yy_Oroܨq1̮ڠqFunj=J1Bڸf3#4 bIV ҹV'XRZ%\WVB}W2Ɉ`8w̦Onjfuo ֌>suKZYj \_o6F; 0C*k }v{Z/vaZ}vhNa]sk3Ou[ТFMkpx΂C] ,uXLjSIᜰyϬr5NMݨk{[~|9ccR[TSjVB=#5xZW @~  W*p.Rn*\%m1lj9#] 7m(,,ذa.%lݼH]7\Yq7%V$do6UȭgR.Ze˔ .dPЬ(! 5|o~LF5lXRzܮPO)5mrJ8] 6[`Æ;eٖ  &Dfe1A`&q|(ɢUV*"J']*C(k}F %3q}[ַG _N^-k*r|Ӧȗ|5w.Oڄ0*[! 4j\B oԤq"嵸I>/nչo{)K XN:oԤcw1{k٫&4W9g6WBέcuժrwȅݾQZ찇Zek=3kvu'O(肎gٷjGB~WG.0jשevAxHtЦmϨ fտ5m\]: IDAT[n͌5߸ջq'n3xZ%'*hS=fS[|#_$3!ټ9Y3: {kuV>gHϪY{D`䫺&hR.K۰xo /EB7fv/@ݍF`/=B"\\ҧ^E9u`9W:W}yT CV{GVb 7lNV?u ޵R#؇rQhW:s!8wTϊf9x<++ʲM(/x-SK|G|+G{~λԺξş?G7y`̘+nt·:<Ѕ0M3Z64LM8 㧌IPEܾ40IFEox0ٷļ 'R }oΏnW=[N;7qB j w|2EF4A?A S7^U>V<2ѺZWPX[⤳k:X=n׏SI^3ƘBDX̠R@+~vV(*l6SD[vcxOȞ^=+ DƘmY̒S:<{Dž1!jmqc۲+%eYm;ຮ+r~qٕڅ̀u=Vh$H/"ږm96c,##Q]znsl=فU߼-I@ԦϞxҋ}~ܓSX̱AVdKw0k>}kի|sǕ{"eѣ/yÐ7@npǹ@9@t{k}xDZwBBGqpeK>>|4 -#C":tX!}?!K xaŒWw!ɤ3!"R(ַ3)>]sIWa>CT»!y cn{Av`~}ToPwIfT8oe_j.c[O~ܐP!޴ر*Nu{lw(|c׏ ]²gtקo y դ1WŻ5|^x{R|=DlSʧz=Z%w-lϡ<\ٗ1Q+}ǟ PR `-޿2 P1,^>OW{_fVL`ێe[m@@YFDI =7JیfbT-T&ѧ*xzĄف{p6ҼNwsB%ڏ_ ^3kծb7R2Yႇ;k^n45޷'~'7qwT/xn_ mMɝ:}焮K ;5׶M~e;>?Cq= R!/QCBa"!OwW3r]}K>]jGo?~Բ6Ê7}pIvrײoHh@+˛?/>|ԳH⏟@$ |?6g; 0-9Lg7fpB>.Gz `7 ?hH}CrߏޝT9` 8rdEX_|S^,8LpѱŃ{<\̣}\qJJ}9y<ռGoCwAlnkfMƽ.!iF^2կ XbSj1pAؕq;`OA):}ĮKtE:U(G y~=b6ax:;;uΉ7/-B 1N" 4uj؁|nkf9e{mfULPbݹ&v]VlG~C^>{?,lpS >7e3ŻMkl*I>w=V;O5E~_{dy~܇;sy]w=۵:!oOC?l? m^pO,';qrm/ (/jjuroDQښa>gRAU8` z)"h$rF?=C9=`=%#_L q9Z%Rp3DZvns xhUm4vXiKIEEEVhy3}g, 5k%V$tmۖªв[w `ضn*R){`6e cZZ0l۶X+he@;&2Ɯm[C$8r3I% \>${72D%P:)E_᭚C۽VV jnd)꿹_͚C[eT}eIјfٍh$moor* w%\N5g"2-"c(h%$Z&E/$9 Nށ!P C_ߨ5}Sp\-9o>i22I&G3HVzaOOMBΰ D0B,)!RÒs1e,A%L*&+;=bT~X Ƙ86i@; !Yl\7ݖ my7(, 0~a L$l˲l ,q,[@F'&\Rho_/pȲ,۲5Au@/Ҳ%';[q]ĪkbO$jZ;2=a=~4d[BL]_jIjiZ̒4T~ HjM馉\`\[Dre61{=cIhr.CFܿrso?d}!ȁ!tjzhUFZhŐqqC[X^ɼ\V~ozŃi eA))e6} ,zJ  !xihFjvoiR,aPQaZnoJӇ)ȶlw=2wz#"XD Xؖ" 25# &\tW/"xv0LC}]5TT%4b*-&LSZsdv[aBFhc2}Z !mIh&82۔"wz4 0be[e~p2L$$8xRzC˲-5UA7[˲1o)ثjs Q"bl*2y҄,m l\cm۶%'Sl.zܲ,Ƕ1m傓 z>~6D:t~p>ę . a7oIHRI):H$I!FS |p;>%[]NcdemFI =\i5J"Ф9@nSʬ/5%3!UMD1["2±2 s`Hm31T&qb$S"{R T[511dc9eْM.OrSe-B. 7SJC cȐsC)s-yAHifή/gJrOsR6Lu+BQ: y*jњ\˜{.?/Ƭ>* uC_Cij* m[e̲|LB2*Lӛ7`ڊh!3)!PͱU!sx>qB' D):5WA5 (,\\)Rك ){ +%̎up=Ԃ(J9FR2Dq sک>o KWehle~H]x`'48"Q#32g?9bе+!; Gԏ?LO u 5 )䁠.K͖j3 y*e0P?8Lʐl I=Ұjic fpkWNOqO%00xނzBdf~ -eq!9)3 PSP RsZ"#HXƠʏ@tX`/"a~Qb=C Fժ-U2=!qǶ=+..Bضm[ Ug̴ N& MH $)hD>j0) z8Ăi:bz{C)&ǓxU]vM'eٶceo\.T9j`+E|-_ѕOt {cHjMB1Q rf޴Oz* _\RxI< iCXֽ!ܦh.tHuII=Q0)p6͈B?4. 1ʀ_0sqqfx} 14Sp_Xᲅ ~O\U|o{&r*`,˶,7妒IAvRR nh!fйܪB 3qЀ- Jo>M2D:Èt,cju]Aa$bcUcX_AD9 ilI  +mASAcUbYq˲d4|)|ԑ$UeYpVg!M~#%ޣeHDH{q˲ė:#!\dcB[ݓ#=ٶ6i( i*=IAJ.b1۱w"B.ůzSBH"Bl۾b*Df=clL纜sE0F|0l.M(:sY e1I`VďKjQtG.< 1Pp.QTI9l&M af,#0z:&@@<0M8Bf 0%-,;C]( :71$ .@˶G|eYZ(S˂'ϴ`:Lϲ265.Ƞus: Ιm[O@ V%0, 0 @i>&uӌ F# %O1 ҲiryZD/`VɭFc#~o=F(jnxѾf04-1N0c߫hT2rsΤ CŢD:e~qo)OC9wȩ/j9UTF}V*7փ6@JYZVfTɱUkʜ2lšҠ^¯O ֘sak]~7~׷ȟ>D$n9k-oj=pc{)7.CAI#4+,9-ա8v2c,s'VK[&7x~et=˶c& z`kjA6kZ>bv Zeٖ?YrOp>VU2-VPa!(-/;v_~5ŘcYx2Y>9l0.nvs}t[MU͝/|մ͜˸w:ͅy3o7?.^~m8:U~6oozp=&Λ7[sdM\^;__s#vEdW:_ f/gnDί3g\XB;Ϛ;3ϟ6yTƉ,Y?_0{/Z8] 5A\/Z7so[m(ij aˤ.mϾⵥn.!D2$RrJqa Ȳd;Ay+`NI#(i v}+aZhύeŢ+~5capjW:;hsg~N߫k8֏&[7h`iqųXe?~e5cRqq3jtןs?WhŪ˗.O0"˩w \rъ%fLʄTYEOUu1$Q8؅cx,+ zzBBH=={=< 'e}GM_?}:Y,;;PҒۀʎ9Y9̶(QTR l灠4W u\?-^ϟ?&ϮcŸS{u3DZۏDb\3,7]Y D/%{mr偹՗0,;SGD SˇSA*X[?;)0B! 0㱜,olKHVe}*"m͝|c*|4|x)yXLIN,Gƚ?1c鈋P8hנA̭m QW%iY r4n&Y쬘cPģLdU }7@,;s,-\Ϗ, trp餒"HB&11 RC-pDhzǂٔCcOyu]-YdkU}_D&)kh}F`)GE@B)25_ v^EYKi#0l N׾}j'?Ǟ4w4|M_(R_tCK,|aUs]9,۶m+%ÒR l̙ cǢmDiwsꆼ5G^?K{R8\\̵ck*Ƿ8pj&OQ޿(`ZWkYB$U2vn9V4>S_7TLfzR ֫/d`H8ݾܱ f~ e!pʡeV^z<۶- MUbR o8)T; Ad⿧}8޽+2, =x`Kd[xdȱl[ʗq_7 :hֿojk0|Ugy{5=Q{n`F hd%V0zW.HF۞[럮ֺso<|m2Egg0l\^<{Λ(:c>[G/$b/Jy+<ΧkwĀwŝ7!lػxO7<5/z׼24SВ\j4+#c6i}.ϋIQxß,F($Po{g,"I`%sXR35Ф=GsryA 3Yp`[eBubp;2=<;7oJ7vqҝϭ-.sr ,k6WKAxH=4}v>]=F< e5:s}·G:;?xi_$ǒ4#o=a}(`V{{Mow]{p+(-85.ŗGWG*vKoٖ8Le !İ+H1'-Ua;޹O5{~+?Ȉ ر,۶@8LJ 6$v^F.W<Uw t{<;勺w}֧gA'P@J]rv[%C'c)INwbDu).W@c2Ğo42LN`]S}5b1')RPiֽ{oLU) $7G}βoDDnֽko~E2`08穔h3vlsxʎY+X2?SH^vݪ,{sj4A>{ umۖx.!aH%6Kщ@LH\a74;?E,DzO~l˒,ƤhohA1 jITr'E= /`^ [ "dPNY1`d *AVd% ^C Yb>2x԰!L9 I݁2nHDd6_G0cfR.4ɫ{9-p"uIdET{{FS|Hw8ym)4Hz8p9İls ܲ,q<!̧3Ab2QxiC%ȑ/۵ TB_a9pPlmܹb zVeAMoڷ'Ū\RJsdI AigB?JWּvځOtGSmUM1ZO/ ]1JSx[_^}5$bBZ\ .n5Þ].j ;cphriTd I5`eB޼ppӴVN$ɤpb1UYm0rҜ?_}M&mZ`]w7 AD^8NhB62Y8rBTrz"?X>,|#.oTxhl!!`Ѻ/?\ m=]kWsF1s{6~:"<$,1˲XvNkQ3(ؐ1sԇR{ʡ{p>7juJp.Dy8@p=/vxBʝf>ǩqe];?l}e=Ϻ轟5A{zYpOx`U/^5znWku@ʟgc3pg7_?}k\e˞~߈w< C_LcFN# Uc>0*yWS~?k_j}n~wmS3۽hq[J? 8rZEv`z+N aM#Y-_qp3Oʅ)veL*è&E!7mb ,߅(pDr 4$bba I{7C4,47jK? "e! S>LP! Cr&Ƙ+[m6!0rЬLjNb~bZˈi~ݾܓslݦ5恛x[/z[9N׷ѣݞUMr\ҺpN4d`e:ށ]G HgE,pU "D,|O *R%CO="=Bu*EiHC '*Ԏ \f &Rc,r0n9NBnr&Hv`O@]?~,IJ1c˄tBO^AoPr[ zML(.Ztڦ?R+ P8*kS\Hcq'&Ɣ\jX xP.8BuT+J*ZqNQE%J`dKXK-f)e )$@!d"8VyrX^vW><NMLߜn,Y@Wgd8w;Y9w`g0'mR>"s w̙EBk-{T*%HضʊmKW"+< ۶d>_j@Vqۚ{iSY]{Λ9oءwΜDVٳ951!rIM^|%!xv۴aĎINּ靏h^7wfUO^ok_=c(^ܓҫSziyY_}/N/_W̱E^Qoz92V}{wwn'Z#Z!aMZn&9؀#;˯׺j2}sw.ZyreX!"uW3^0K;bP4s]92[W-^`[ 8Dɷ~:oc1>o?+wn׶0狅KGdyվ3(M-*]N?npelo&TiBeԩԡ}MR.3"BSdȩuuϖ&[v,|St͛ټsZ9{uýmh;*ۡQ{ٗ=ZoW'}\: țƨYC,Lj ^ 󒩔oM e&ȧ j !R)7rH2iˣ 2r74E"( !1d oP ǻRz|;4"EH! @HU@P3 S1[V}L GLY8_# Ps3րQUH(a2Vr˴əo 7l-\6y{+kw?Żl;sjU->jJARcg^I3Ե 'l/& IDAT@j6"4%124E)Ӵ R]VK(a7=10G7%w)'{WjwsyYAWL8HP/B˲8iD+ysJ";ceȉZyY< E>fIP4PRnPʿd%C8g/S_}R >(Vo\4u$YvAB1@f )׹~m[_z{{1 17]Ξ A^M%2bx,ӊGDn=Qzs*7}2NzW}}e]Ih;j5KY9jO󑾟mo|qr JumzQ-ѐ %7͚9vjJMbyQQ[[l7/߲{9_@ve/{)+n{o.wl[3ӱkc-ΨP 7Im_2s~(Mgh]gykVR̳>{oMYex}qvO!_CI5()Q30"ꑀV^|8#~}Օ{@~|QUFz'gȆa \HW9)hO<]gAfqkU33\r2 wwvN8s*y*Z$Ư66`:57E']"In#B ˲T烙rj/s 0bYY̶M = iRB2~kʷҏֽ{%#'mrrש@[}u d)GRǶ-p/cqD73jw[^~e cġ&-M3d5n^x柢o0/=4Զ%Ң·o(գ>qB ϳ|KUc<#G$݀ BF.j*d7ڭQlIA+&"B2_>vڱh['Vs]_ pbQksUORVݪ/hVO'ܹ-á:WIQ\ N\ד9S%DbӯS VǛܭƢ,LxPX4o嶝[1 kRҨ ԕk1YUA.H&Dsbbr(l,SX;;=;x‚˾:*ۈz -;|Zʰ UZ (>XRPyu]We.,lAa@u(}.6R藲Hn}W,d04!1 Xſ"mBcYvX,8 D̘iaȦЩOY7aѴ%U).,dّ"ڬnN?g6 nأ{YQdTuH$* `Zsd(,  s\ b (*JVrN]uU]0gwۡM2w}4Wog펮ppX|ro_Z=^ml|@r2]E[8@HH|K2_YV] `Lđ 岾lؙrIY rqf[t_?7WE7X都lN:JMX*gA22mp C#ݩFC&MQ6ZT DYyF?e{EGivU_*]'LU&=ײe'L 9.e,D spے9;ICfW޲e"Z-52\A@r"n$lBD ^/u',h^xwG[oXtk/O\lXXE.DUx955s*Ha=ޜʤMq/{Λ DAd2`<٫u}o>s1'oYXVs>W`?RΨ_}2?YK|u|ʀ3qawV#kčb_"@0a^3pGPtт-A\|Si7Ti#kod5P oDZwFk([D R!soun̑TײmAs (j$u4lGJU)nn1AY+@.ǖPACVg?6_TŢ^G8cAh (U9E:[6>?1fάtizSrv^twʱGkxق>= Cmnp{];VVcݾA࡜!r$R N2ޣ56Z%IeWٿ}ؗ:OHGI]cgty9 0& 8*V{'GdYbgލlr6duνb6IUߌ~{Y L;zSJO@mɟ 'l^Z:܃iNbzg<9C0 Yǿlv@aMy~špO;2|U!AmڻOKc`g$0j9{:??8ٔQ̘vm?X=<՗Lh1m*7xlh%xXf:]h6\.-K:%H\@9HU{6(WA^Cyw\|p@S镣nᄏdڬEs&nڦrwZN+TP5VF5GoBT*/qMҒ5,Ro^POΪdoޜ!,acZ`FNamFDH]P)4 +a,59WxՒR7ݲ$P)#bJ_IGE؝0rkC;a"2KicȒ=qGKOdQbN\3k/R3L m? *ēuM"\ lbC\eR(R9X[o4BsrǘZ#gYg'7sEҩA2w)] ^nY&,3"$(정bxu'cVvYO9w}͗̓V y? ]a=s7]kܐ--s.9(rT7VJ o PCxmZAF|ZlʭU`Od #4N\M$ڭ.(! DwZ-YۨY+ "O!H$Լq2|.Bp6K#"}m!i?ra_ӚqGٵq՚eۉ9  Ng?6[gΝ|VJȂM?WLcs}y.8(?URH,<ηk7n('Qy|ȗgAf@>vo M1]q",ٱa-81r_zum^^L,b:D.UT# )ywd<!ෙ >|IsD/,w6jo>W~xDf%jBQF:~4L(cPxEPT$Te~3L(8"s5ޑW^תgV'K.m߫}x-ܳėߺ{>v{6c-SɓXFF@x+a[lF}$sJnI2P 0 x)&TTH!~)Hlz=}DzUG.m_\@eKgTP7k} ڞվãuveAegXc65>vrXHd^=crƠ|w$4_1# ʇ¸QUkjl"[Ak4SKy"w>e߼g#v?uW9cAE@,&u?dMK 7كy "|_MJ̓ Eewuuсoxڟ}f>;Gl5G""319Ct:MWXX,v20\f!b+nbM-{P-%JBWTR&dֲwNZzѺ'0%܉@'lj9ŒF!jMg=RN,}xXɈq H-a0X)/=_ĴlPs R t-th^#U5T Cؗ$`K J:Q@@@,֔II\O%k&mwФ׀JVt,8j !6{e9xh4y"'D  c!FJ9Źu9G?ݪk'o˻뻿LGy.^n TQlHaua !a^MJF.T+߉0̛?tT\p .{֑5 שuއx6']{M4Flh2naBcC# B<®Kac:# S=hYGKת /IM}<, 2gq\L97/P-/>aËA\lsd2 J.acA)s7pa38&, e?p!I%}!2kۣόz@ZwͯgvCf(c$"I1C\c"t6g6O=hiMG4_=J_tsDǏmftbȋѰ~D]⓮=`ԕe +Lq2 x eZ' vYӂq\XzK9a0:cv,^O8MyH(/@s8#IBD5Cku lJ?۫~9, bERO@^#T&ێF >f}`ˀe+s":5sAez۲_ ӳ_E ÙX |C}6mն?QCpi%+f S$$ "a;ƬzdpއnV̎?&}anM.ǚ EB|@ 3A \ Ìn(ykJnC[/+Oq1vaxʑ1$%pVni&KQsY,8 :)^@Mlw,b^.Q?SIQN,zĕ1b j& s1AXThw&Rc;<++Wdܨ%QL"]Q!IP@ME˗sTHHEVa BZ_=?Ks6v?6kIFih߬F!:}/3VU?mUs3cDoY秧y15({ڭs()FF&b<,(k8wJGI09, BNKQ$*pi CpOn_֬gGuYzob; V/↍/l+$s?ewɁJ>0G1bM&lYثIo5Xs€VM_~+׹V#(ɮu{XWT^Iz~~Xk'`mkBitĎ q\UÚ!"p]fW5enow~s ^֍R>dz,)pC XaVG)lY[iwu3zt=ؐ/ &/hТYu<̯tc KKlܵmΔ?nS^i n92~e_]U^=ugXvOZmu78ob6mIKoZT㼦Ԏaʼnؿo;z -"#Puq_(!2FTnz+ μ&LzGwܝS'PZteg5qKFHn;[I@ m{_v~NLJ/1թeE&[tOcR$0)eൺG]S'/ܴKϨsr"H(k?Zfy^TA@Cz@UG/ IDATyCO@Q0O6:on+ *%^.Y ITѷ6UsJE9TUdh%RH5K:!jF$!޿(4`߸2V5j!ri`;5֦_pX*.,OVHHo(}q _J\+/}O5tgE=- !1Db3.(ƃܑLEaM wXiטD?ֿuMC?K_tMAfo>zᥫ?ףz}c.^9i+&J$MAS{k2dwGm պÙyW>ϻ]rDӹACo6=\&l:eI6Ӷ촰\1ds@lvRawk9迟$Z?<3s>)5.FeN!:.뺝uM ,S\ tǏ|gE0yUvNmŔ/Gԋ"o}tK/}{o]?zo}pA1yu쉇^bH\=˪ë۾VA9Q, 2AIdS UH ;[ YWY(6ۘ 5`DY$DZ""Ehh\O UzVu倆ph3=>G_MMPb+0G]Pbvt'i V-RH9w=/y dF]Sƕs %C$2"zprlcZ -' Byosˬ2Hw+6lX.]"v.0SBYT;^w'5q(fY!ecs+. {-XCW3 8WδB90d0sB0 -{CCCQkrJlGV1qTȂ溒^ Z/lK.BL&L.c̐usMA[ǚߞҶ u]qR/1 Q !TI}_!C;!<8ֈm[%pBF5jdKIK39w]q>O+gm0M qeʕYk& !H2t\u\P$zjnaI!D/9CѤkpqB_#XSETG$V:0U ڙPF@B%;#Zl$Pl$#y@X[+j4BT Qbڤ:q H@s@9#) VU2q@~sMbA>РavT5ƛAj}GL˜<&0| Zr+̀ѹUI=RBTsq7\,@i;uc!D %"0952q>wåJd*ud(To"XyM(RiDRyyyy}.!V30! RBF΢]" !(¶ M`fAKIX+[}OɥBTI!'+C)c SsZ);pbC3Pf1@RI -h+&8I[Acy#֗t(\8e&q.teHƔ Y./̃([L 6W:Un+aJ]LVdOx ѥOUg]""hb嬨5lvd;w[>䄪u]_z8(ZʐtdL% ㄧ`y9(Cj,<Zp;5jlgx:| f:^w֬;^"g-Ma;d(%K!$ 6Gird*WlwRۨK2Gq':T,UCGWېO}߿F>]2^z(w%5ڣڰU4HP5"`q:~u Ub$vu`BiՎ!T"8)KgX0J;PT.#V*t;rh3# ;SF%)u4L5a)CzBnJio!fbw*]poar(lɬ5t]y.F6CUQ&O^5mA+BDuaA!6 RG2 7SoQMyi&5$2[ڜXtDD0LAo@d0c?WDGKtDRHyǃ@]Ar2PoUk[CTֆyW(Q%dm1 i yTR'{C*#!]7ǸHl!5?rR!`Nf5f |"cw l&:dBQA;c -w0@Jb&͘<Ȓ9U/MI eMzy'Tʙ/EH()a]@Q<+2՗ GFa:z+XU4h'}dVrq!vf"Sur].9ALs3ƥ߉s""'"B<8-9?Gy a18q-M3n VbC*j1Bw3٢(i***+CӬ ױ'&F}-L ! 3HK,z!^l}RR{bjJOܱ5aylk'D( HRdlCai,me__^vl!k -@DBH4 UgMWN.>H$}eh4qãYܒBG#Ilt!ǤTW)7-Rf/vo[Xǩ~u]y:}?YP,Lj(k"kʇe+وirQK,Ԙ{XYD[__(XUV(i☉UI;gȔz$V _ %Aε96FE@&4ɼq7d|<}!jyxWq6J j.ђ8C \СF)9B׭04Um,KWf1we~&㸮T>qZ˒!{t:mhq?QlNG(-e؂j2RA]M3JUʸz&uMbNQt7f[cmJ"^9u=dL@mLVj_K񪴪(56 21hskG{ lh0[.&dlD9#IZ>J"aAl6a@=2 lj7 }r#0Bu) fZHl8 W1,LU*Jg+P Ad|? 1ɾE먁"h*:+\xeз2[(,d57pd;AB @UjUoe;[hODo=U ; ԓI< p"G$Rc'`)^6[h@('r3;r\=&RP\ R$^㋮cْŠMI:d/ꊕ} !E1$0$iC8] l02 mKj}@0ØP#B$sJ=Bgm(&j4h(ZU8,XIRy*!l (md5`'B WDx8&99"H0- 09#b+Q#)cl5%F Cpקj {BB\7y9[F.#A/8$=O]Ht CQVY_tI͋q($$)U0JeLeSB e9I夌!FBDRwC88˲J&!u lkiՋ^;S?M%/:[5Q㺮+*9%sȀh؈^ |A]dD1 EQ:CôX&$ ԉ֎Bj cQ՜8h;վbM6*kyN[)=?"CE`P H9T:Qyl[M6$$wTLTrdrr%A0ɐkIU3ZlarQǯ׶"J(okD L59iB9|7QجLH_I;X@~ŽWy*/z )YdD$A)&$%#NXZhcج3L W8st:Aû"Y m¼%eG %͜vR%4GKT)˕~1 B}{aǪj@uιԺ#R8sǁ I J!vXy1tuӤ~|JqF_GEUQQcbh*yָ#DQyJ̀YO|+R虺RHW?8&Rc%\r8#_D՞p5B&̈&g19 K $qHȸ㸮9؈9?+,4MB:uBA9D R53s1V ʈ\DA)9z"gȘmH@\QsU^RvEᜳh^JbT"Ĥd,tƗ2#*Xr2M ffF¿< 86lu_BqU*1V[J >ĥzpGc@RwkU/ITVGD@nj)GX1CS60RGR s9"HH tqf]^f\Cު,YZG [k7-F,n# $,4}dG8')ـu[_ia.$)5<8;%~ 7VG,!2jK[I2)d,lzXpby^(12e _j3ӑ3T_DTiB"ѰNeY4+tV>j-^id (Ϋ-@Sy:ȼ&WgJ5=fwŗ4$H{ je"Ÿ́\"D[$+ <Ĭ62ݲ.Y DH@ 꿕UVD*5;뺎SP/2L:D1! ;(ҕa5~";e9}]͜CVGWUUu}g9ws-V^DFD9hcԜ/ύ}Ɇ;KU_25Gtqu5UȪΖ*AU:v޶WO5>>3sDPdT, i!qH3%SV[+YH%+;IJ)g\JE&?)v\A A N3 !up8&2}p5 P#jap:3&"⌻h3E$.s;I~66O.iuIQڊ!dZZ}?_6aNq NbZ4ȈP*¦-YK-Mc i< BE)׳L[q򥔪a%6ld1"+ !(X %& IDATIVCֶo!@ZJ$BNo>r,"m}:F|)Gt:(Ogi$RFMߍ1OX}ԡwX%k3Z=Rn+GjhDȏ4j; BM=5-~I[R8*U$jΙ!ܲW pɜK,Z2k@5Ĭ7v% Q9zzA&z£Z҅ȶd_1a줍@sk]2oCՆ*$N>crf5yt1~e4ܥ\x6:W찯Q~WXљ>6g||Q6ޮo{v-W‹LLd,4ZU.uZyyU'^Ӡ +J:W4G?2N~yq;_ݨX'1%B tm@yy }lP^|g>osPzG6|ECbܫ3&BvI_vnXpBgɘi~>#HV>i3̘%~& D9KRXӻ>7~1yƤ}} 8 : >c;{}1FD3錟R0RR칟um* ue v3~9s룟Hgu᳟&[8kδ/>ؾGm0I3gM9<֨g 7s鯵ׁDpz:1!h *y`YA~EyE&VTy2,;qYI)nS VLLطK,xŖ:O}8aŋL^U@k{;_teO=rOsb_ktNX4w?CT>_FO 3ms36G ^[W;ds/xE˦vVI&,lySms|YZȂ+bMiҋ JxF?pμ>yFz.2#hNR20ݟb '̨ٯ{Uvu1gl$P iuѷ7w=@4WL;iCšMGfFƎ?LSݚs!gn{=CI3 ΁DRjtpy+Ș0> -g PYtFms5 C{5;)E*aꪃ79c7koI]Z)$dPDŽ'oW<O)#hWJ (n鿆ۭe P)^{~1(I/ L@>#G, WN~ gjUQ2aզ+L vfcWͰ̓@PdFn^=jC:[(dE!>$ nHTfԛʱx@%ZM8EQ;"m $_*fd(fe-EKb,+ C $J R@Y"7r繜+e["]V^QN )=-.,Q\ ml98Rº4 P|1i/wiiNߝ;\ #V!}'&qI=iaZZlbOH&jtm>tύm{;8poR8@*q]xAUհzGImߦEyq쏶LqEJŮ[gn85JS3OX@4CN~Ǥ4W݈C-у2&,CWpQ;z_28U8!P+gzmۻP1-%I>]u~ƷqjIsz{H2:B"5kto~7p_Hax|jjrE F%  WtܐsOm4?گWo?-5Ͼg_`A.X럭4^/]&C;}oغRj'(7^ڊm\L[4I$ɐqJ P^ Q~}}&RGT.DÐ"iOb‡n {Mf^}ۗYC.]5fǰ"c(Ibq]nm8Nܬv#&܄C(\ XIAD VEP;"2i#Tp|. 1zMI݁}QYp0U `c֤nzclIxwL "blA'upץ5"L#5f0IUʫj'0s0a9c?z [h\0JX(B##tRi``Bw5jxBL41G`@oB)P6+ALh1 tȩ݅.Z6wїW7ыYsz~4n3#WtO{8eժ߇2dc<:/'w8?"ι10≒3$90j&@ugRA;{<ϫ|/)j~S%֛U-V;F)ȚY/)aɄT%7@g_鸼_?7ԼnBebH_&I=?v\5M\n°";8 WC ;;pE!54\xj\]iQ&IKL=c}.Z+?ckKvάU/,VrR܆pmھio~񕗴c@b״絏܎=C@pw_z 6OE^i|?7 Qu%fa@qusn-߿;j-}{_qqS-/i4l=?|yf}>?5 ]x^9a@Hpu]u\q DfA} 3(j`GZyܯ5NfA;xsMf@4lwFC(:F4}%s yk̞ڧ_l\b˗twqbٻ9.wh\8/t'zoS~xdž\R^3gM5k̏/\RPIdoNu;}ȋLuQp1jD ݔSf/^}|Q'NU}M-Y"->6~u+V,g? Q2I,h-ZnχSVO^ƬB&M~a?L9̱imof̋Jg{0@r 1du}? HG]u[?ukyQW_~tDP(~  7(*P˗%!z?e_^/b2rsud?SW8:~8wǤXa_byϘJE ^|۴d^fb8{c_Yswd?C`n8^i܆So}.sq}6˅.H8쁣wTڷy@Ǿ>kZSl'Vwa8zUyz9A .kZ]\g֞wQms.f:ο#ɻ3t\Ŵ1w5s%1)BD,<榾ç,h)cwo2taOʧ?e z&n];O]ۆ#::>դEfO DE ^t%s>7~5#~n 7s왣ؐH"s^^;,=kޞ9g9~z pg/Z:6%W=/ f.\ӐMk{뷩7v܉oΚ]' 7p \8zܔ;kF6۟g95׻~hFo5 vጙCƴ\8c=Emn| f_W}o8ID92W<>3.M8$(pZn`Ԇ=TciH XOCA~)]v5N(7΄Y֔6ވA@dw -7O3yQ؆D(Ed+d͒D_mK 2[! LȤy6 LR)5ʁ(BA&HUTA 䧼‚|u5quuqƙL81U7<-uխ51p8>E ?6Vy߮j3G+mz N_ٯ. ĻO<l7(gwfw91  *⩘'pg1gQOTP *9č3]~TUwu,w ;S]>}BϿ~=}ɀ\M`-įu']}ᮾ8 "FD\AD/>ڳ8ު#/jͧv ǟu$VYfQۦMXX4>q36B0ƕO]}2w8{pO:<*7De.iXPvWzƖN1 ]_O-D_f^QITYp@YS/XR&=v%q= oUmb&F6 82Պf ,[gz: tMUߧWf.5oG^}hfi㜚bʬY?7VU^>{nOi3h~ A#ܣ%mXn^q zƘMҚ9nm[+saQ:fG۲ċyyO*.^WfksBK^nْS|fG۲9S3Z)`Г[>JpTu [ͺ{ӷ  KaxʳO:Q~ vsWy#?,[vœ\2!w|s*D^#Nao!Iu8A>[߿ yŧ1fzs)cx9qUެ?dއ>%+s3]셃4D.?Pʿ~IYz1KY"ENRMPӉ[qXƸRaVR(FCfogG;-޶A[i'_F흐=}q m%a mCv=Y՘Œo-5F._߆YnzHIOLbe ||/}xAesl.rB%m{B-Q!9+NL8N9QІjj(8+W!ӽ ) [Vᰋk~ZMm u?=̄~ط N=K ;`iѵ%= kcy=|~ϵ/sVㇷ( o?>j֭_YΩF.G IDATޘb:_vњlrKЖ)V^<U5PֶC5S  p ښQJ;Hno~IM\ӥw?[F*+k|MKhs +bɲT1Q{j6 /+E p,K&n oo/TM4sBB[8ņ񄈎ã&+u/+Q"[ 8.9V!֍ЦSܬ RSposu?o;R;d7Ҧ jBuz^|moq]pY8IbEPuΥ~:t`+YϿpOӎP->B@wӯG7oYZ!MzT*UTQ QeH5T̙ciy{Hchng\yXWoY'=뭙3,|'#") |/.8ПѼ:Ău߿ٲ̮*w}Lw2k˷?5~`ԸY{qt^?͚yעc1P57G81OtEV>i;KS% s֚nݜo(tΡG^f%߾2+ē~]ϟxqzA(.])'XH﷕ nKZg7@Y2g5M[zo|o1uy=.Y#0gq{ey}/ - /bQxECu{_úD} ϻ/y(c۹13ԤkLW8O*UB2i{1aԬMm̵O6ZIq *G .D4r^ } ^C4V;޼k *5 k[,YZ|wl oyuǫ]rS~˅ßWwmv6evշ.+ޫgu 꿸pGW/GҦ}{rڰmlzx=[u.Wl5_@ w?6—f\s˗K%-2Ȼw0º[\E߮ܿA{11}_t4O(A E{ q+V{:]XKKvwiA峦Qa͒?{Et2ȱrCX]՗ϝq+aTPn3}3h5(1(}ڸu]+{ۚ+` x!uʸՂ!EB$ ;k|Kw=خWT{şVUj͝8.Nd2M28:Ⱦd5FERk1Dn`/8Q} ?zK}`o\RȆ- TTR!(Ѣ?m}!Wd2awgMُkԈ. kV~ާ䬴6tӊT "Bm{{0imVϯEl-E_[X:UUDJ@~ thMIJ:ղqGl_Jv;w\Wusܶ>_wjPSUXޥ4vwB9_WQrŎGux5wWgV|ǠMޭr* ͘z @PnSG< 6L}]wSmc2"]7rH=:Pw˿߹^ZJVݠoÖwry/=ۃLkb.+@K]ZIb׷פY.^_/- Pܥ^['=AqS+nHJ"ރj8K#|dآ-ϭv:bYN[YP?7tkӪe:ݒϼsw 1K1"RÒ߫ȑv&rўmnM^!`.ӛfU˺~SҌX+1.^%]L [{ 0%kVm(m>Y ]Z@w=~;C]2ꂡ^3"VumhEŪ0|{7A޲QhegڼG_r눑Z4lQgib6-6j͠gP喌y}zmh1A' K z5CtA-?_)5:@ZYM>ax{]a@jK BPqz%i $dBVpF)A%q"&<&sR[5ǫaJ/I!*ZW \5 ` HSܪ]Tl?;wjX;$<䩻ͽիCү_Ƀm?Rcw9U/qX2NRl鋏yEfl[UݾMe} qa?so9^52:D5dR[x>p9Kw;=+Xz 8gNGTM1XD$O>}D,R̟0J\Mg{[1OpxS~*(G_ߩM55P*uNt\TT00|Bt1s7.6nѴqoŃ_<7 ӑ٪)YfJo|yJW5U""$kʗծ_ϥ.m3mkn]KXMo6ʮLKGr筧S:6sj7BPl@o-GR,dK6#Ø.ȴ@D`Ug=Q"jpؖ1hX%2ۦ?l`~'Aͦ:J\!Jv^of%iZĺy]Hv0o35vїDs8/qa旆AY&hi\T޷⃳~kt63)R[9hG,ƊЮ7-Jh4@oE AAH & G98爱pr ȜWLՃK2>c> x "R?:УГ8{!OɯBfH}+ǞZjok!Ӷ wW4s`PAjVBփXЉCǬĉ¯ ٪ P1@Di ZU8 ɬuB@9g_^QޅQ'bIQl^CBF`Dd(YGs&al$ XJXZ]7M8D'6T(-IRHu&Wh@ Hɩ<2EQJ\quT*$e D1E+@ZBJD9gLS @'Rs~.[YQFvjژߚxYi4n}?q=Y8wKK_yFNLX*)W-.4n ~r͚L3,`@5̸s>ws^xO5z5Fk4s'?oRz^.X* g ̘j|_^Sv-~}Pb)mӾC27@>|#gT Ar*3:{糪TAd”k+얊MٲާTbڲcǐ'GQ>~z{ )1UvuqXI3[EK!"Ox\("2"$sγkZkvjY[Wɶ5HPQ=Zyl !aq#Vr}K~޴`mjBpAK0N)7Z^QԊ;쭥TzM^6mV޺[u#7QI}bP3閿,!ӎ㸙}{V_婢:)8*9dhj4-b9 $.[?mSZ5Qu8sJthצk\yYd*)rJ0-kۡC2"YcuVf.K-:5Z'cQi V cK"rg Ag 6%I<[KVZ٣O"@~{ns΁@v, @IaC:ym,s9pKR iֱl7-a#{3P +9lp9}‹N}:eTT}ŕ_^A,6'âGr)hsi[`_WlNMJR"@y~`Fb3@mKroJ cѬIdk&g9}cjLJrd\kֱ *Ӣ>y.]g""Jz a"vNnvaiUvQ)e8 !QD +ys_xq!!s7GA·ӄE*Oڄ2쉃yqC ;9YXjWZhM!sy[]K t۫n6d4R.fM4#, mPKUQnVT8OAX!p Sn/uDtYܺX;ڹT0 쨽HkM,%l&rH ',jhF~5Eqk?6)RӭP|.АJ)Ig2Lq')&,aD$es\.<v 0)a\bķys{?AJQ ˴۵k][0ݡ>h\fsÆ+tƧ5u՗S)8*Yjq%wܴS;euU+lNdon>>InܮFu{s\#iCO_rG-٥{w!6Mb:4!"$ùù2"iK&]0f=H׮_r]xrْÑrI鴇[d=ߺzeUq7 |%ꊺ>lD`KՒw*Mq8Uri6UH 98b帱`~UѮac^kEvoNX1[7Q~ݖjOn[:wۉW `9.3,獝YЭÿ1vy3闆@@T^־:K䦾o~֓|>[ˆ^z˿=9YvEW2U$d7Mk{tc *(E;!%{e]:taGNŝW1~I踂T{{S_ v'z+~un_tk/oo{-t_>u ]vk/6yo|p{mЩ/[~ӵaͲՁn:ٟO|C%?[?,~ۭ]OGgnɖ=F6v{2AUR\ 5븈Rj%g- };]a۟Ioب/:2Ǐ\:lw(  IDATՕW nMm> r]6TcؕGn6eޚO9ɦs1J9ؖ [~|u唪qQ_GR6i;&EZdDp&ućQPW=7Dwk6ޘ!̮核ٰn絬nJhN Ru~irj߶W|UNftk%\}W#P(UO>Y~Ӥnz) Q|NUۣmԒ%^0"Sǰ+2kk|PSTs>STCSy#H_]5ec`R|H#֢#wp)e"nFIe'WW}QYo{RW?}?T<tb/|v^C7DLND2dʣ&٣[WΝwm>\>!Jvu]'/TG5t}c>6[R+ J ,RJ5L˃af@ @F:Yd7[a%ou2IӚ OےLl0kx??UnG?D;a*wSЄ&W_ <)Qj⸎+R^.ȴE;*yUt)bwp:8mce%9u\W?vER&.č/,AQxoX{{w|3eO8Ձn&trs>~bRuڃwﱻMf:ݻ^ģ R$F7~9ڼ~`j#|OgP1oҤ`J߸aDn}kؖyͫCH2MbB(p]Aiq,Y9Wv)]Ntz܀;`CŲy6?;2̏kMz{rK6vLs|:OeYV$,f'76 sY?i1#hs$ùRH"z?)H2)dR"[q5#.m?1yOE{_['`lX^_%0Űx`6Ȏ)g,Næ=x~3C?ʦU}W>3&fjg<"SzT#Aⓟp5e'@DtnWu3Gt&|_[Er͗]{?{_9M_ҖO||n]撳uAR^傯7CDb?f>z 6'Ƒ-:~ A U^7Nx7'ͻ` g^: V*醫uS5}Uoi˿yꚇg1;xK=<s:rї~|I2fҍ[꼃RΎDTIP|O潷BnKG{gO׉ ##7P n_=ʶqd:Rhdnͽ7?p巏8"H6!"S_:4]׼B3g̭F?\O WUkR9_>qrNY"Zjb&54Aɮ[ QQ3.s7O:mv˚[ ڸ>_H冕|9+ zӛ*DnUK9hD#O(ܼ)@2D|y-]qԒd`Χ]gڀ, OAD@ߖ]7}om_R{dI翱|I"OW_gJl걗yq??J}nw,ܦ?Faf>)LT kGeO(Br봇zxK53Ƽ ,R>A9/d7Νeɔ_4IB, B[cID էZkc%'alc|]T __g0!M V27tH|T-i?&jx6fۣ:Cl#-)HQ#T멺uG6^ԸQR!0D%)"k2a=z~Mc'.X o?O.SXKP\WUXƸF$T3\t1{g\>as ZZbd `@U3&eOw~+&lHPsbF3vj6vm>Fz@2=_>/l*FSo痜PyG$N;1]i|zLXU[ hتLjz(P}H1hUl魎{Lz`ŲjLr :wA!Q \1^Ç Y|8I63 ^AZ f$-C3ި 7CF}#aʥeL5!sQ_CjaҌ)/E+HJ!Ydxָ`#mdnOMQY·_>|5ܾ09 cC lQm^{]dZ'B#fl{!-0s&" 6%{RF=dkzE/28N.Ȅ )lB̌1FhC +4 |ϗ$2u9g" Ed*ҶC]88E28WTDRt,0@Ƴs12|?#ڡ=j5p*,Ț?5h\(ZVEkcY![] )IJUHmΉ B;Ěo`).3eJH! ,&Zn$U$(;3!r`hf ӳ\@@i;mFq|K+;o6ʿdaK2SwiRz#:F@@I#  MmzͺӢ%nYZD Jj{^b&Sd|3*Ug!BSVG?v8F&cdck^{MB V63RӤl͘Gve@`@5g LʚHIRXܦ3?1h6;rNBq]R[GFdh#Rڬ\" O& oG ڣDUD9 )W*Q=B7g HkvhtOIXh@cJ 60N!z(S؍4E͍Ň7Al8>Zlpl&lU3dekDc8K d1Xq:㺩l6p5W:nyM-5{88z??%aVnnU?=yMYG;D~N1e a/ǢCܰjlۈ'v™~|:71R3^4j T> v\B^s7g{_CEX#Q v ]nžcsl8/#5ChgAB} Q.R =$#|<͞W!vQva28t9wsf) B]DhB;ùG 3 )"cM[zhLk=:V]vҋQczQƕ2d8w¹缸8-=O)QĄIzPx~6 I.57q7j(CDb;@á>)a ?6v CӘ:[rv7=F)|7~ު9Ȋ^m˖"{VX w<B , 2t8Obhruuu@XELŎy;F-M\u=r9M^4CWVƼiޅazܨɘ=$IAJBT׭ab;^YJ[ 1o\BF C}ÝkTMaUZkK!٭z 5$1u<Ÿ{4 6`vb]FACbfp7SΨXk&*~D[gGkRg2x* oU1#~yd'ukҎ_8wQAUDn׾S9Sʍd޲nTQiH.aY Y $ N6d%"ghADdyq]L|.%~Q,% P1"dqb-Xd<¶B@H\9G1*1"B2S\A D)Ei9B!to M]3TdhnCc3V3[P6<]}_19EFp!@i*KE )8s)yII : )4$I IHo@8s2θ0dzanCHŁRj .8@̨ S@m?ɦXb9V cj_ C=XiTwYb_~UCs21 > q1!˄pl̒xd0Bd :\##IJ"KJ0VY MKL*C,DG7h Q`h),QpRd-xedi1sTCqE tA.5d_Qjږc&=Ҧ#jZr{LBPh'$ ˍ~Yn[U?mjNS(o̧uơG"2@͜B w8>ַV8agOΝuy)c0zhޙhDǏXl`ʿ9ޮͧD@q2]pGPIIRN :bC絒21Ba!hE̩3SMȋqgm]xUjFPrE:;. -$eju)fal #ׂ@yֳf˴ÍB1Τ ȐqΐJ,q%qAQ;FZ{NM(nB+< z'o>WwTa{^MB'),345d1I4. G Fhtf!H:qe*vz151 HkaQ)ƿi#I,f_'ź\EF-'@b~ Xh# Ù|$e$FCZ;6^󐺍Rکy,$+!3dCLW(])9ڊ$ FgB yE+s*.q~BT3SELt9'"_ PB@Vj&#,P|vq IDAT ME8GƘBOnj?WDsƹ뺌gB3[밴v%!]ۮs:M.d䁠jW )\G6/i~.2Lxgج LZtԤ. qƐI!HJa>9"-O%P_ΙR|K_Bi#|4;[TL?Z{OscR#$AVvZ8rUqGcr Dj+r ߖd2R.]&/XOU { mC6OQm96TjݍbZ!*%_A.ڹXh`UXV*6çڐ2!ccȞP5ںE^l!!mBirh^ wP,^m2.Ly;^H,<ĵ=!f4߰c43&"$F'6ͯ$'SD;1F)]WB^ pC!ٗE&2]QTZFCL qe$.BHR$?yQq1w/}?\Ef dSОxz$qWrBLΊeyT`4%QF#ӆ P$3^uw;)`ն䜫Ke#j-_B4\> J2"D:]/tuLmN#x>ڙ떯F Zpal2fzY{t\`TDZG3 ;d:2Hjtf̤Aڭ>(EߎE!@롆-/M2<=2'jKCect˔^uZq8KB Ic|_3R9aIP PV( G oK̵rax%-Ydu m_}ꞈ"JCU YQ@GaT`  X Hu9Yy@00H$ۉJJUh5B8))IgҎ:2)9]CU y>29Ϟ?1 *ȇmYQ!W:pky/߻H' :%j&hQe4g1l2e(4$ <$THb"icrݚ3=cߏw6҃oweҎ]9ݯ?SNFۛ쿑)LpuOj_0Ҏ i.~..NJbq$=%ZX#z^x\s鴡I耑<+ov%!@ 0j4 Ffv?7'4{~#*?0O^Q]R wv9uě_8w^&H3:~xgcӋ0O&Ny)c_nϦM>Wo=/`ziwԕ|)g|5+mCiX(=3&$,X& (T@K+J({R 9Ǚrf{?^dʙST_okjrճ'VLE +zj_?pd+珸h>/痿n߳ws_RÇƀn߽gۮ[O7k꿷{Լ&vv*pD)5MC8-i>%X8jXaܰg=Af (t;e" G0)c QTUeN~iℭ1JFY82TY UE!^RRB(j.)|;:;#Maⵄ~}lnl>OMq5KY#ش{%8*ZحQm̗;|xwcy&A|:|lߡ.ӣn4so\6U~shׁ.zs{ٳo7c﫨Mr&B9w+xbsܭ qkBI8 !B;64A$?wѝ}RslOFr$Wۘ/<߿׭iNf?uh]^"t*> %oxb髵.޻zh]_ܸzc9#'oC jyjd@t,BwfR~*{D.Q芖|! qC7΀(.Pꁂض8`WÜJ,GnEl2v^#\@ DqF)eBߑ8(e1I(WYHbӏF"9 Ɛ p9(hY "Y"jA|\ 7ͫ;ݓ3N.定Ȏcԧ1FElavwۨ?LTw,A}ջO8(懑 LJvAU?K"k!p-iI.1x)ͼ2p9oq;ݎ泌z[VIMTT@)?*Jn1v)3 sحk NL`*1=*~eLQT'~xUa\0{N$꣣I0I)e !Eap !WyNsYS)rFQN4'ߜ#":Zk쏟?7dɒ;]3 )8NcA6p>UJ:gMy$ޫ0ڏx9gM5,zk$peO~zjt|~{^PԌΟ|z%ehᾆ~>k/ޔYK>,/ܳ:`-{?,^>1*%8;Z1ő *q&;%2Kj(l&Vi>wvס ^Φ-xܞԺgNypK7G}:3fѽB~.%pA Yafp[[ۆjk>ŜHiUSPIp3v"c  q(?:-RwO"YQ( + ,' 2`sb[c9nYǶϜ2h12nhaM%miȼ:.s^D=$V$[s\r$E8R/RikIl"%d&$`(J`9@;ppJam7eTrKׇ\cHkPʀI!\9/{ùp%ڰ1iy^%1_Aix3Kڻ^FsN9!&82PUM cp8Q̞ZTuLʋ&p63 z4(;a 5I&,z&I~}1mh3k/F(Nz~Q 4ݿo}i~U=xW*0Dp#+"FɎ oz'[( 5L|H;zs6.QkbTl΀k/$UC~OzŧeKlR5oXybTCw";Wu;7IIVIVtP[9Q-(m# j3[lٻzLzj$ɢxL(^N^ITɅ#򓘘"Fl`@+=V9t,_}R(7qv_0ht#"磵,͎fG,{gE:=_l_1_9G<*H 1–}ҥssm0ۉKxu&O5wa RHqMK詏ni?:Z]8 R/r:AO v[_:%~w￟mܜ@88t1T* iI̽=s@@JIvlWcnJRq-L_g,^|zȰ۪VfO[4x[]a䞏i7;·yz-֟)f`85<5&*V&{=}b1?e1~:Y(i _{oa_Z0s.w[I)k/k(h>(E~49$[Fc9ev6# 3F ,eJ2"*wzaH}hP1H]]:p:8}t7 =( uy8rܟP r>\kc5jq+*1*XANv)B|E,jMⵣJ~m):]o>9*}wSʷ~}e3ɋ>;n&zYB*4l4Ɓ+DQqo9pj9*U(sJ$G$DQ"$+Hz{'^[2mgۊ5rп)4m48{+ϗ3ZˬJylxZ~Z1d〇58V#='ˆ1?G#7e7#F~qB΃yQIy;!>r_>W~z͏7^6 y5/lrcW>s<RVOx29JvHw% \K$Ze`@>s+93LZg^ ֫EX^(uIƒ)y$;Ra?V>~z.c]\0f("IϬKpu˩08u<6xܺ]Q6ѫ'/Cy Пp+cyџh0%Dmb.\p{V?`G9; E;ncj_H~gxHYދhXEVH ƥ0dc9&v<$wׇO^?ץer/?Q3+mΜ.u.sja|]wZn@ǎy &|x!gA֯LL*3ku3w,Tb̭Ǎ}[ry41 OܲuF͖-V^-QOu=4I\r'\28/>ZPI*k( -e@K"x\ZߒCtV6EuN ZjhYG9TMմ5KE2He{4Vhݶy>Y$Z*[Ʌ_.p{9ZBhex‰i:^6T׊T (p!lgY'jė: c64}KNm-FHJz"v[F**,dBl *ha]|Z mIB÷>~gzމCEDJws%n]x;+@ N\^|y߱*MoS*zW͜]'.Ymۚ3-υp7.vߠ['et*HFB/9TinV,؎bJB>UPI*JCs?wW}h:%r1@OOs%JׯnCB w) b-"hnfSܙp]BkwT`זT]bAsצ_"@$N sθx~ƍ*h6ؤL\ "Ş v}w 3i9wZgpO|v9.GP7&oxՙ9Oxǚ5iڶlޮ5uShҢ'%R01(jjd@fP(\497iap(\2MӖ-0p4LΨkWQ7/ clM'O?j蔤Fn])mڶʡt7.4Lu(VJy:ا$u.S5Ƹ[W]h*4xK Jx ZnykԡΕ}&oxsiW $Ea1(qx=xr'1{P/1"8m8.BnXRԟt8(JlЅ2BPIIE9S+EWME0/s)u\s W!Z!|ƐW>YiPUbRa.2{u3bה?}}˟]r zۓ7_2.:._#/YY: P]RלMQ-*dwvN~sm7#c{mYaQ_޼vybPcKFLf+*[JUEUUEX ! /uMc3foia; `),est_J5тUb(R5gPNVU]:9زjJ:kۯf)F$1bTy?6~ >S1q4/ߟv|Vj5pPE^!z皜gJ|=+&e P1)^ױ+nI=3R!R+D!jLX(*[G%bl5oӶaMy`s&y$ @TgqӻW}.mm"/~@/l=%ddZx'_|k~G'6~Ԭ|?Xqo\u9:LD@VQ@j3OU2z;Ț6Cl߮!5x|,@OK&!+~2HnV)s0)TرJ8Ԫ/-{? g !wV}O[?a$O #-ԊBk#_ߝԌsWN}Vjس O}᝗5*H9kفs1mOs&A W+S^?P qF;5 G\:iFɡjeI͸ϟ8ݼMVxjgf?f:~ݪJy̓5D`c;ڂGu7/?k`X̀;l'Y MT 2<~{VӉ̏֠ն+lϩhUu((I]y,XqǛW\*qv2#C<OҮNx %p6o`\&{ם/8ޣraR#eh;o۸[ +aB,Z]q(eTL,?wB#}8(@()*Κ}d<Շ|]<#c"~o$ Q5MQQd~?mK&7lU~ FLRĈ"G.t1Lܮ缇~!A?_-< qObק>] La |>,u uZݣ?X>uyr#g;Bм囗`΀fRKBBqF@[&h9 Omj?X6ug^fK,j^I4|rPިQs)YO+1 \(ZSJCxJ)f×t T}e\RB0|tuZW 1&m rƅad+ +DDr A"HUUP!\ո1.F琉B!9Q Bw@ʘa@SU(BCFh)fs- HP^2ƀ1R AQ}) ̲pQr;mжu|f~y{*#ٜTވѱ s*[wo7/]|ͷ3NCgfwk9f׾` }fȏ:nd(%(0ڟlLXrw3mofm9דogJɬ4ԺrТ֨멐*hPu8|~aRL/ (& pX= A#S۫NR@kV9ɢLWUx0[!uX( 'rjSۗ}Śɿ}ܽsv.degx<61UX(*ܶ4pV E/ɿ'IG?۱ X%ׄ'j)c ~QRfMZxnF>cB0 \1B\W-VlDQQ`csn6=C1K}>TtB$TŒB $]΅8YjrntqCov=1ol=RY&j?\}]sG2q(?kvT}NjSUj=\묟=Rtc="!TdOACϵ\=[ڤ2تk{Ĵ84Td>.SSj.8O1PXneLU{@M;d5Q͆}Jqk5=pM=a'H-+ g,xC1X: Y! p[)m.AQ}z @( |zw+ɼfň,1?V@΃Fx/y<Pڮ>=.t1kբvf鿦X>hI59F\&LE ½׶eK I> yCwѶC7g?mR~4c[BJ]p˥eOu ߙ3(U1Z 1i ≌E8P U:JidU"Ҋi2FV!̳uIF#mnu;qEK^#s+:[Y"^VD4o"eV5}{QM4?-=T:1b_ jTYA)o×wVNFG]x뷬PJ-o>|* OEPUUhre&xJH1;pI;r^=D"Qrƅ=  yi38Bφr( D'v4m<1#GZ~"\Z湴 5Fs%U۾Q5Yۏe𞥇Ks=YGf/,e{hS|@͸:Hc((ecPn %Y1Q+!W*敫1K)W]D-(cB<5b)Zr ks(,μ h?Cc+'WDur@fi7l9TQ4OEgg+j9cUHI@VZf9XJ|r*QC~NUfv^1b ![M)C&lf}QQXv(+XEJF9GN#WbWrv@`aG84;4WvXty‰A äxI%0=1gSR-.opϪWMm]A@U}-n>|3pqqqQqa(ӨiP(kgC/ E%5_<_ՔPFubT$HڷT/^VMHMD#ܑ^V4MӸkR!q uEz4M]Mj:n7 à# M)`\b:>ͭeSK;ELXP.~0m־dMG W,Fř!POz<2#k- 9ҁI#h-nu·sVMHFNު+ Sf[st!WTm} {W{93Wmpm8+H=E)"AB]dc>EgOT.X Dw|gQ(aw-mCΎ׼9Ns(npI!8s*#,l</Ց9uQ_OP׈ƕ[.ڐ5(oƃ$_,-bV@nOf!\Xw3)?5 L'ya&hI@J/ զ\ BtT;|øMU$?:CS/ S/6뿼v}L(..4 T[DDon䜾L+׭(V^eU*8̏_mJSZ݇FT#[c{ȸ0Aی0BgyCn3:V/ͣձ dW.YqVt)-ٳiii%csN.]*A] -1g~zSJ_@s=YzGTyuѫT`s)gSRϦeq*1jL|HŲg-LOUv RԾ~5jdĪ5Mū`!y -M}cCM5 Uw1.#Y/ܩF :Fѭn%S"Kq( 6i -wӫ>CdEu.C$%Z+D7(68s":HW-QIMaC-f Q1߯(D!Q 8"<=,k+5tv~S(&yMA% -ڲD4mmDVFe=3?9lf>}5l|Ϗy4@(j=|X&5o1lx% lXi] =qҳ5JLLnwg,꺄TNY'G>ٮn6G=]쒕Cր4L@$pݫAB[Y{ؘrǍ5EG6Hh~;v'&u}&-ЗB奠ej>jCR@޲sWb vpńrZP IDAT*ٷL< mva.ڮ¹ US5Mt}r貲뫪&vIi>h2r*T pwq;zGh*?tT&wwDEQTM 2 Y6;iZ$Vs7:F^?OQʹUm=`jW>^&H{[oUL0*EQ(pьsUQ4MV"01cbIbE,l])cÆaeEU-f&R(ؼ_Yqͮ"_sa자QsSQTŒࡔ?Ixr׿c;CSYq:SÖ́/&ؽmnߨUW=^#YQroAd%o=վ^vtʹ%+OBZO|oLYRзkMKFfbpʊ%)ԝ5ƹ΄CK`ٚEi(U~wlѮӧug^w:bUF o?վ^F vO;x,)\4 Q,c[M,B*u3ľíHtl-mV]oؠ;;CLMpgܾ~;Lb+΄KN_T`Y&w45}P+{om[hl0j­{-w埌 OT~k%&9tTؽKpO7[. >H*ux0>>G,hԌQMu@BsqMjq~0k)fWXsl7}zi÷q7Ʃ9QvTS 'a6$S_o%Eu /P(Σ(svu{]?.bΞ'oYUa%GQ7_IbhڸP(j$ \&t,F%:n3{rح]TYF"v>pW˪`t`}sgJ9TbcR^KFngsˬrw֫ZRBѱ_6ڃk$59|D?.jw^ yc@0=ۣEUnسMK8@^NRTJ(t,D"n#/QxJ. P giщ͋2&s` ."ضKj=5v:*,iuiC0G|FJl &nf:Vd̤4-ʓ}MQ~!7Ee܆>څ 5 Ҽ G7=R_v]mwhf)NAJZ:Ň3·zen $s|&^{M?qPxf?ؙgIN?r^K ˱rfNQ_??Br.7sTQRܤ¹*Bڄ#FNO=; J26UiXa 8ׅ4iSxpY lA-AUd4UQ)PJ)i(Zw Z0 HUUUaѭzAh 5kx%2r#uuWbddOO20kŒ3?7X..HOB(]Zk }+3#ll44y' PҖ<1~Z>SJU(6P'hdӴuTz[֚Y8*X}o_V˻|ߏSe_?Kr/Wi: @ԂabǾ(zyoTѣX_3Jh'}jz:dF2~Eϐ& :-l[9z!"d YEϭ|cR Qr(6b 0W148㪦:@kn5m7:^{ 8FB2SzsT$/y St*^~q?QC^|jAEv\ᯃs uQYT(L#oO_&Gڗ!]zxsùwTzӟg6D7oϾ]2t`(}I]Gz93M:|bcʽ^W˻50eܚT,(mY2N EP($LJЀ(<)t [nĈn\_ܼír0R ?_%ymTmus-_69}CI?z<䖟W0zmp_R®X;c'7:;#C[^^@iH䏸~߽ ߾l1ك8 %/鑧[f.pؓEz-;vZ:*Ҭ#W#Ět $=k՘WLĒG$3)beAIB@[l jQL- c*+!t&En!0 ƹDA֦tqb9/H2]R&oY <]~$r&2U(נ'MM -"QUE7$=2^[d1l =E" !HLjb[¨;SD$B&䌉J"64fв%(4 FQj7bsV;kiEŌR@@PX(J5M )ܧT5Rek婪]4F23.8b^ǥGaRY1#CwpT0Q%4(gq8}k[^4bAɺ r=TU5*:::*J Cah FbG?**_Xe2Զi0ߋ[D]f*р"(ǯpOuU9_sT{}a&+ܾ|8~\a39nr<9z\(/QUkz70Fm^ϧAUB%%%c&k1:!0{Vq$]v#9l>3բr'@2!#i}Y]nkM9/d%Pʙx)~t凲L` 3BMN)jj4|׷̦\켺bk?>G0مӢeY[QhEeaSe&ɁKH’A^rK"D޼QtÑ&.[E l;Gвr͖SrՊE*0P8 4 ` Z>h5or(KAI=\6{X #)^ZzmOgഭ!:LrֈÅHΠQEQTEx0TTTqF_o8m &Q_k]JJrLp0ahia" kWUU[,$@Ih$~OU=Sd&rd)V7[*wo&AOu#eHi#Bx  ,_'9'B3 8bv>'ѹ@bq$&c[qK%@ QJUUE1nk 1fI)V);R&.ǭl=|D(;tAM8WUE4,E,814 A* 5MS|n|K6Ma7A,乖jj#+-6/HHxgD!<  jh5D(eaڡ2Re}q8;(i&L n4pIژՈ᪪"4OVTzws=ʣ\=t;X1'AP%b!eqD ˪vi 2{ɦ4#x;N\(S( KI#YOH41J *DQfU1(BƙtSMӘ]=5PT4L4Uaŝ|:cUSҵbLId:z"wb q+*"[?j\|MUf"Z&+K%u4ẍjlLOS#?ھ;̊"{f fP̑5YP̮]#*"FP]sY$g$gx|TUw7 37:=o0wYDC*,,aʱwc  l}vE$qD}AT,)"X@(#"}eqʐ!u*[$Js!g?icw e4{uFz{0X܏%D25Ȳ6J ~c 2tWvWΧh_W']~zgn%qL8WԔ0d5Y ØǍ]1:;P1&dsWfl;Ԋ^`a )9`Z j& ֤!ǁl Oa)I)SYf^ʄP(p\HnPc2v%g*pfpNw#`<*OXc32K’I0cU6*L1SRrιQ(& A/T)>ҟ|7a%c\ŭ mI8BE* BH[I!( zNqvl:Rlt1!jv+T6pQ>hO Vx\{1 R)Ƙn]I]-G4_])*dDF!DR)X:kd3Cgu"RJ" Bp.!nI@W7\'D@O4XgKogIX'V&$k1j;PS47R* B]xʴS DTܬ{uRR=tѢW h34ᮤi<1++-|qtn*@ЅCׇ%כr]骜#@`C祤#_AW/hby_ 2tϣێtqi \HaSh>8)<11h]!ca)t豔:ُқY*PDp;og(Q0.Zn~Pա e?:d" O_U H)!|3wBrr/ ukrHF%Lt#:)$r 캕JiM+3]vay ,Qmm.E Zd-sȎMs7|(e\?`%)V`ԲY˖՜55!Ѽ ]aRf0P- 7(UIE%YnKF y%&E_ڌ{bVT9'W~4ԭw~,ڥh;bFʽ#TyΜHPhꭸ5ldڭlGjB!DE SFDqD7}/%g,,| 1,z̵P Җ>K0цzgiAD %Q2/ gS,2ȸ<aJ))dXGkn4v"r \Ll@.wS\ Yj,7^ιya(" O|϶ekEDE|IHab)< mIm"<9yq1ؖdYZAgȱk}NNE/R `*{ubJmEQ#hR3gHTVTYh/wr:LdB,j%7I.;ԛAt:K{>c̀E>?dL(l:I('L8㜛`;DPsq2Q-ch}AA = ЃAթP{@nf%J# rTףZ!(Qr'w"SSP]IKs|B4([3.Cc4Rl'`]@'ԡǙV+[AƵBnInf5(nU A(>k$PR"G1 ư$ kCV蹭O!dS J|;8 [3yg22\%%/!#"}[D7>*)T2_r)ߗR*&m-+-UUeeev1Y=Ÿ=/(J,byFoMfumҗW #E0+C&o~ ZЮ{6!%G ~.(q4H"]8V9Yx(& #god`ۤ'.>Pvn 0:,cGTTr֍$)cO@+A#~.ԕc(`#z(BV(GM'Ѳq|`dXknv_FE*ٍ 墺^FqjeEY}9iO)Dz[g'odKᖡHD$C1TI%!g IDAT~WR)J%{Q; xSq7\LPQDD,d%*~avˎb4i/1RRHIH'j èQzQhIkzgȖ5s3#6XIJ !(p!ӬumRZ-=(A^j ;[#%2sY!rDцa帮-u![H"f qe_w` =]x^v,JX1c+Ne D'"0Hb3M2Y, =)IZͬHdBN"i8T?nӣ5!-`\EIvp|%HnDBOz1 "D!;FR\Duk,| ` ͛ UC? SR._̗w ,/ToaVWW) |b -dQX(Mtom傥y[w$rG:=r'qߒ1ר&r%H.|Y fNp3b^ao,#;](V2@Ih!7O6YY>1ȗeJ,'G[`Q!eBĦhNX- C&ۑhE})1 ɒOLQ\q"MmCMږ*4YF LBFP QI"vgT4^"npgVsE&bP,0N4,Ĺ#}r" @pTHwPH9#"|I R)Oh;|zhF8zB"yzʪ?0 T>yaA> P{d%URjID} >[vsR!Q(=]jFC֌  :2 X B1`fKIx)Rw1dO;nSXDGvu`h;Ya^!pd]5TJ*ť4DDH1(2&L 01y#tQHJ)D@tG@ľ3]v U J{-g]1Dd]Hf ||&[mk60e$(LLW%y6-Vٱ-C#^_CR;R N90TR="e$)2.A9svdZF 3T{"#("@ LP6v&{ZՄL2S4s"RFa@j:x,S *5'm"2QUi۔{S" ]RVț"ALF/ź&Hh"Ώ;WUcAEE=Yӑ=#ęiKmAbx8g2@gAE #*>x{v{YR2G,PW,ԍP"¨߱D7*91rg'亐kҲTR"cD5"i"8Z;CE($Q)1L8L6c4L.KRRʺʚ|Bp2L6***իe3my=/rT}-rvJE~a {q\G8DJJ A@4"KF-tb؟-wF8mqK)_ !>s qSW 0 ]2VQB06:ڵ9q솯)." `T_*JW@qq=xPo/X62)%0B y:N󉔊y(P#K 0CO<QЂ6>fn4J a(aoXdh(9]uɺcX^TTT& C8ݴV0$Co<^-=R[WuuazG=5y_'L޵xOHzvW H6FȘJQق=,/wMDI޺{ NUSҚ-1E{ qZZA }a=FVۧ-;EgD*u{F-aMj!AI;U+ a]j1CS:~-dG̹I#7)%lA(mP>GD`$}{4@CXsӨTۢl9g.x>LZ\vS?gK:D 0jh, "Z$(EB*۞P 6fܺ]6,&s70χ _[[S]-zd um"o*?s>GC'1=3@EJ ~*ދv?cE3΃0YHqKg32ymmmUeeuuU>(EZv Id ׯ_QQ^VNSd3αJL&S+kP~F7jT~L&-$ve1<)R>.ugX&g>v+s7>24Xš>BQk/~{;Slc{́y_ߍȕٔjdMj{|t0qε"9'-M _Taf>Y]絏5lYf"٪΍״o+[C88<m1J0A;8krϾ 4nΗB6l_'L:n'}i}{-FNy„>{-=E߷'LZQ!zͧ͜eR8-N/8i^I[!JU&:ecL* Ouѓ֯5c1!;ǎ5a;Э/ea{!DuMuu0ji>8 PG~yBmxk"J PFxۑG_p)59Ng==0 3KpmRb@ɷ*$xgOj}]G̘:cosbT:rESaî|gL>{_i= AxWcKKe].ztfN1Ll~r^Ћo}7q)_ԖcWuIS޷%Z$59_f䴙˷6v>9y欩4׉~0mSǔG{>P 87 ^W)ei0WR/{o6cҤ_}#!-gڞpǰ'4n?mRa/|}T{~nj0*]͒ .!$dD~8W~1uߺ6iSK/'*ux/{oʗuZoߟe4n=T %cNYck5l}J$S퉟\͇̤393s0>|8F<{\#隓AXS]S]]UW[rPBhnhn>omR F^);neF:=%Jc ESL'lqDHJE'Ѱ#͎ҡ2f.4baf2?GʄJ?:b,tP0;dDd;M:W8d2~*e ,%!ݚ"|u^;Ga$QN$j]g㪪#yy"b+@!B!;O*St|wZxd3x !"+A("Fg֫bNrlgmc^ST.v2W"97JБ:3BQSlfjBJ8^+.G,gFzbcI9"qs+5Iy$Ŷ$XL^.[W/;'((P@1IR t^N,iiL;vt TIE{/3y Ј:Y!#E"s)/<T]]4qioT紿v}A !wY WWt)4학8 Tu7$%*$Rom߫7Fnqf+k?,HۨT bȅaje=X`p6+oZvcsȚեy@8̒zVwM?EK{`f˥]}A曕"BqA@뿹. 6:36z?3 758vߣPH\S?xk+eo(^6S;Z.Dh:[H疳ai4 A]sƼ5am YO?RYGbnq!R.F800"ȱ7 Ҥ:0y=lLL\S$r ;lKǏͦ zWG6g7,whMw?]xKj}s[93}[טڂs=O4b#ZcE!r--*0k?_+񎇞K|rn x/[^7=~ [r׾a+nzsq@\Pw+u%c]T(cAU9G#of?dQ@Πe{GNKlivX#e^xa_lI9.fyގ1u~x%}IrZD.^'?_.LiΘgƝ!7+ CPJS4Ҵ_L*D*s1rR:CH-+te]e>C72h #)Pz`1206O l] Ɏ6-@Hx>4E48DJt:J /4Kq ho"%l C?gs9$Z7GjBt/cHoȘppDU݌H wɈo @rO7F4GkLV*p*$+uX(V;t-ehEܒY%'=#% 8IՋ뵅n$CQ@OQZ"vȃH"N5:wN]Iv)L\/(@PbI+)YlssS3?WI/<9em/{{*[vlyxPe۷ <ߗ^0﹥ϡmbW.$ yͯMжΓ\)9ŪEG PJY:]('"uBx<*)EJ!I;{S~=8b (DDNVR0DA¬G2ccHMbP&r\J|Os4Ո~Z!P =K89cDmUk5h'e]9Bo*zψZOďʎ87 Pىsǫ׌ofXj;SAVT}zqK~ŲGX|`vc?璛t媔TMڋ|w۝ٸ͠j9[Zq/tx0MPJEER%ĺQs=4OC̛ Dߢs;X҇,H_|ލB+ՈQN>$ތEBxmz^qضӅRI"v^M-Kn2W:Ӕn"LS^eq^-z?'|{5d+2qǷ}s)w1rV1%N+׍~uϫrvn_/=1J)P۝wYKyk!L}Ν&ͭWvXg- [EΧyegҵ),j<^~싿<`=xJ Vk;b^I=u{w}W{ܶۗ{9X`R-zpץС~Jnk*17l}mݹ <+nxu+u!M~8ӳz\+}{xoVj J,t.(G*f p#Kzyּq X>}nUZn,^OsG^lFsp֔Ì w4%$4f62`fiT7kVn\+>-.q%աg.~z0}JfKgܺz-_\vyuσG&;i-JI q!rB1 vѺn8I.>"S}ynt\N.ò_?^tzy@([o5?G!3*F;m\4![b"m 43FxwZYGi3v>hVN2X/?}O#?k z,۫]} 0ܼh>ln^E^u5a'>zo,W]n̾~Dy^i{f7MN@ٱC>{=|ZÆ=tWt8/W8xc8}_6YG~bZ$u^]7UccH*ily NiMÎ]X' h~衞TzC˿JE$e'{\_***jkjC{ٮa714 IDATf=3{5YHEؤ؇ZL-6~i {|}fz䧫[_ߤƍoZ>s==g&rwk?k Y8i~+Uzn.tccI qN!6 ȴG-N+zvyj׿n|]^f_M&+O{nEXvo)Wρeםj+W\1lf aٞuU=;5m {?U zgSo |G~Riﳵ"^~EuSzfZ{͝< KN"m4<q4w<^}wْ;zy~~z>/)#v@n^>U:|crް/yf#}pm !GzST+2N7a^ 8׼*FtょrTETʱ2(*~_T4KA "b'@ (ad[t\(~\_2sUI%X%n* '+1bG8qkdNy ǎ_5<V; vMA"!9BT7LM#"ι:'$i-XKoV;&"ƙMhlu"l&f3t:qH !#RHu0D aHRi}R!0 QX5Oo#!xRHaliͥBXWFŇ& :Կ[. QcW Ur޸a|ObbMsضdusT4۞a։Nw}|A#R>ڧHE(B3i drciIF+X]9o)BEE#%5kD^xbB|^\KpKu] DyG٭s6{ z y #^z_!GWYA8:3.xr.=Ͻ{K=n7=k^Xq샃'𗻮d{G<ܽ*ً=fwgjݳ>Om=2aݘs9CWvH  >Cv97+' y~7y53Rb!%%-`=a/P .P&>s.߶}5l""UUu9Wu{ O<<~?<=!w4FV&|nZ}U(>D 4tlc!sswP*.'k%()M= K J]/$E76- ]뀊{/Hc¤ "G;ǰH*vغQ-2ᆕ*!RDu>)ef|zޯ%Ws3]n\(" k_;ca~Ȑ,KOTc\se34prY])8~$ Yd.oVk:dOkZ*Wp7m!&D=9MoKڤԷ{flE]^Ԭ J]k34T*gv^ym]{-?&V6FjR"a̫5K|qf-<=o>[Ygo՚Y;aD0 v.\̉P^Hmq Bk jyVy&1?GOR.ng=k^>7[5-yC'-uc^5jBӊ][Wn].}7.; }$Gq1v> _ܽv%@y{/kr?wK창#l~>c6(8>Z@kd!0 @WjIwwPCay? јYKV]4fKC}}OZrٌϟ{@2qW7ckrm0׹wܴO:1xg[jۈ̯u~|IzMԾ#{v=ʠ._sܜDweg%+|P V #ELpN#*'?{u7s"g3E&˱ăN71 2CRR 1V`JPQ0 t`tkV%GNZFYiu -ԄJgHZ{GBJsιYJ@)˫5̀(b~=6jDv|Jji UI~$KcTT$ƒqKjm|Xi$}}^|k/rlT(+Q\Kl6O&oe#̈́b.0B2'iFxӦ3~NG_zm_xu.~:;WMg>櫎gqV{̂e#~^CvuVeva=2ezN{Ú~ĸLJH 6'ǧW)%cf5PRlF7篐&&ظD%Dbwwٰac/G/ZxիKk4`ɭC)ߡ߃ksuh yӠ7|B2W@'st( '$˘^GWҥIIbf7N]e3n^7ˌS{fwmtߧoZBPJ*!dͼ1R()eIlknkE' xPKfoHѡ>cQPcL Qʿy!K(Zz5l =%:IGO^w;Ï|?C1@*pe/a,GdMA^؄!rag1, )|W#JHmrQxn{7>2fKAx}lnjHw8*isY$ EH'h!cЛc6tKê WCe|lл˝vX&!WJ`9dNںj玓j߁bF7l Ւ1) h]^f@"P~|`?7(4ۭ%Fp[1s]V[Dﷰq1a&GYN= DX'um8mi>\kِ:d8Ֆ[R \Ɉٌ GCD[;} }3'jw\^uzdQ5;s} qþ㲟6;j| \3uD* jaP+u6Jc81t%䈆"t=}$J&S,t!w/KrP&JT?¦]5qH"V'ݙC%ܸY*2(.H+XBc}ޱ%G&0 h(3 NTlj:U D^|Kҧ( )=zR%EXĿ.a'RA }= @sb4}'U FJ M҂%HIcZxA;sbc$])VDvJ*΢hRͿ"PehH<ݱGצiF{U4d3x5oY]kC `T?ju*:(^^v? Jr?#&El@U݊uB vvz9(Ղӧ Q2hl|gKPU_Fl4QkT=GPǵgr}C~%$ܺb0obu} ՎVNl(;e/|18ȓ_߽ńFˁ%Akħ؜B-k@T.8[Vl]s 1!:JEF!ԳXy Pּj&pbT4.('Apݣ+0RONjַUow2ǘٺBpu|F{uxndıq Uy}ؗ|߻0 1I VeC3s2@Q!Hmo‡ټ ݵ[Ftwn~eXӁ)Xyk_|۴.q6[u@iչ\iM+'WyL;b6L*5型_U) BVʚd~A> l7q|oNNyz;#, % 9pqe&q`rQVʚf(=~cWݳgnϫjڠs}u1GvItQϾ©ܬOϨN,(M[]"׼x0a ORNkq$)gT+k[ eq9XtypWȨ?hȯ Yۑe{_^n˞R"ld@nDZDϻ:WϬ m۶mK(n7E0GΩ ."gʒ "Ő!w繽Ajm93 dd*)-Bw]ps7v7LX^Ota7gi9#Q_VQA#QdE9?Da]`T7yC;KE1r]j*لmcoՄ;;mO wcjnqYi p}[xc?cNP3&h0"l"da cY)R;Ã0nqE':U9}rd)u"E!g/fvl&nc26ʸ؝"Q["Bs%(sz M;\|ֵ"Gw1KhF1];a)蚻|>sax#ZjPۖQxl&XMKȒM"k~_>r,N N899B󸎎#1C qvw+c>X :% w|.0CT!rk'6)vhtYv}zݝJ낧F ʞu/%a"9CB#,/&zgzl0ؼC`u 2i?RTòT:I)!$kO͊LZXQG i<@)PZ_;jiE+؜Mw`咭j{RP`N\jD8ezgLESF))@B>_ֱZ8p 7/ C2k.w)2u?;P"{={nH"@u]LkD0  f#**Q$( Q ,"Ar7tWG {{;|]xLNj޲ZNR={G4c O6Js*ZNUSx0wg.sܫԆC_IDJ!j{;#BpS^(rfc 7SnsԦ2X Rf#:ЂD$JoX6*m"rΔJݫWUnX#)y5==f7`閥TPRZft$F`eUNhPVP5eh2K"PT(9/7ABn2+uUO(M? pĴ@Fu0*ޱy,پqmf~WnnR$3sT>O2>+4AhLj3zW*eX5*0a֡E#!c@ZMLB6 V`p{h Hw%4/PFHeJ:&NbX܀[6zԨO#(3C@32W0ht%=_p^ }qg]`7C 8ǻ.WM{>KJ3۶c-)MίٸAFUW 'ھvT:2<a("O$&Y8hZ\: SҨJc F>JO邫XWEkSch\b "镳$qYavD*|\4d8+8vN~bmֹq^o<ҭ_!q7T Ԥ!(+IӚGJ>۽IsNQ6n}(+]09+8,YK/'3j؍AJgju[~i'9MAxEZJwADDsZ { -_Y?''5h,Yz70{܆po31?J+~[aU>~|UA.eK:{Կd]Re's TQ`6kp_rۃq_=]njrݨC͖w5mߒsO9T뾘[/~gqvn5IobQ4N7k#wǪ_@F,_3S.4 D@ȫ^^żWWN޸eO kúy;U{ kZR{7^BR6 [ " LU2ΙRzafe k|AxUrդJGwU[Fϗz_Ew.ݿupMɮ[VukԮ5 LD( Gy5 k]ww#ЩFُw-?|,$evP r#Hln~gk0|QyOa?[P^ӶP{DŽ g16\,iX~F+7j?1Ю B#Fq_),fzk4n,xMJoXm`@=6l=!Qf; yu:2oiOqӦL۴~RTԶoqפNj^W'Y2' kW2ak+״""7^VIǢW/*Y.=pE<| ;*DnS8#qc̘̉ WsEyɵS&~{ Lg?xkuc\]vDJrn3cWYn\tի ֩#>%_TrW;gҨ8]mv}Wv+Z¬lsj걈W}W_Ct[g[Zr^.(},T\04lڄXtMjS^n )9fe\ش`]8tY& U[uSwW}?U56z{ꚰr3\ViS×RlCӸB)ab7=ի§_u88? o*L%"0"TNVX)\:6<Qs.O)9Ebhd%"Ǵuקx); p4wEsj4];aUĈ'4:VlVDjuIH"ZVXh]O9b̠E1Rn:LV"ufڌUj$’$=O,~m~ஷ;WbL{gZ@?w O=y)^G0"/үd}Ч{z0[g>oIw^[†W^?j}I_Dh$EL|0T&>zʋ;'s:[iO)"J&/Ɉvѷ24w%i@${k 3ȡ%‹Nk؇_p2R3ܸiO[v%ϮS9Kw]-ԏ(bZ4? U@qFW?u*ks]^%nefI"Fm:68-۷&;؃Ė~R~ێXӭ$qu  F9hWͩ:&@p =mH)w?ֽfB6s&mjS!Xw z`,A޽Gn}n9ڵg^b54t"]ŋ$Ppg5c}_N>*QAj\j"I–ן[q?{Km>ʸlߊOކi#6ElHS`jtQ}K_y/p;Ϙїa #;Ik:z,jrzfQ-$1oU+* |AMfMǪ ӆ dƃngv0 Fvr?8fܘ\;u Mj_};H`2;[hw f {ヌ?ؾ{̺T`-sV|j0(fPP<Α"B~Ӷ\(~zs1u9a?nGBL 2Tu i' PJ$}1 Bp ']zfUsnKR߻j<~N}oC #f?E{pGf2b)4T$<2Jk1qCLrG\uc_}oO[6ᱻGM|MV'\8k Ѽv1?}?(z^a}j2ϩ/ƪ$ ~kni}B%v[Р4S#<.w?0}| XƵ=f3vBJmoXR"Y89G:沪\T @ib_`ޯ'+z?3§wxzK*x׶ՎA(K_UԲ2xPOkƃL5   \^ڻr*C;&/y6ԺArf5Z)<-_Y)>yW>W?m 9mgޕuۇ1u:8* 8cB@iڊZ;}fC>yÇm3~3+.Y4{J{ )wo !MdxߐG{ob8Wza!jEH?߉~52?ڗ6fS^Ti:VԮ'[dɒa-}w{ArSܒW!|".#g9A=s]8;fz>{S P9ɆMP2ʥ^ *S(A3"L$bͨѸFi<3C;t=$1Si!3PBBd,gNgGq|NCZPhf0Eߦհ/]}{[;ri?F3D:Ў sny,\=J$AaX.O$ JJJR;@.ʈ-j%npjmـcc<ΐa(The*ȐsB 2h*yQ2Rފs/s)C!YXTYh%kGd-L[PdҴІDY\8 XNHq5gܤ2@EK 7vłiZ&6n&{|m#QXj)FvLϕ%/p*FS)2%ypĉiqe %e-<"mLJsyBXJ(d/Ao#=Œ~*T>$a '7tLsT2/!DZ[LN[Z'Z<͇u=Wk02a*\$X*C)%j2J< US'Bf}ԥ@ A=*K}"eD1_gGvA+a}o #)g>1WED=?86 %Mje4a< v/\PY+;|mwgSwHg6W I$ ;< ^iO3aA6iQ#%1~BZF]r,#X I2J0oZb 6}cc6 $H>ҝKYچaȤTmU{uJc,C!#bL%ٸ:jWA&xZ]'!vr2jeAI&$㌤*#ل9"r&wJe& <] cTĘ ղkjm`,!@g,Pp,'(SB_ŰyL }/~v4;DذȚ3&}< {gAA,sz9< Hƹ~BHy+Reh)+9VQ@ٞ3L(]#2>t(v9Jr`[}UHǂh!f`"5['a֚ oH =֮l[wD8Gt(HGr1ogӣ0DbLaoR@b*d e|Z2;[gEY#MUخ9n߯۫Suw$58C(%aXźZCCqU0w֪$ι'aԔb`hafÊ0 \ IDATVڬx֖_vCB]st-nhӨ0$Y{vǔf(S!~W3xWLBW{[:uIg8 !R"Rnlḣ,SD2n)DDlF1AQBO'|g*lr}᧪@߿ѩ:[]kv ehym!:f̢1llMNmmfd,ɮD(@3ڈxMlg*,EI'K#)G q36tu) U**6 "hH[@H<S@P6!D‚(M VkYK_3qRt֓kB7ʾ4nyۺ_4M /qنֶDRBbͥ!Ȁ#7cK9Wd4J(F<9Q;3`7ťz!:gL09C8qՌ;Nm<̝z %"1k v 3K@'TPAJBEQL\$b T,Tu(0E?wXqf\M9YeP6 & 0(oZ<:kT#xl9r}6*v3YĒ+;TUWS4EAB0\18` RצnaB UJf#}AcئycVlk\ 4.x#)sjB=aE %7P@t#c\'SYq-W-YI tpt)h Tss"\Ph@T~i1;CgYjmJn҇ʙ cCL`t_z Ү2&&Jz =k?u9.J'SQ M0R\GL {(0cȁYjs RUĘgsOa!J}F ei.F1+Hg4$Ոqf7ic Y|QAB;>mKmTŒY3]Pj5|DQ3Tt#3 '"r8BcubZ~N #!41ATn"yPRR L]/v2PH$Q&՚9ܑ48).qb\`3&9 扪"0 Qr7<MgS`B!<9C*jD$H4-IB=`ӏb$B!F w28g0!Bҫ^WcX}˜J*i2c2˜d V+N fOdy "b]58T/Wo@e&IN2HW6.Yc2%͆&r ҳ #]QN`?rZAbFh92>HcXdc6R0)X.v1Sr PAa(<8bnNB0 ;5P7 @0HY1Ƨ rL;҆3614t,'l1[De#g1PXU%jC7ꛔ,zeɺfJ>u#W)I%0Tu(VxKθ44XÑVsr$;r?bZ\pȹK=6 s:ظnh.I*Xip`\M{@G(cul{r(lOL\,]O1)J,⠋e )sHD^AA$сhbze78sfŒ&O˔!.;WȃZaU3U*) Y+(,#NZdxeTc$ gPgiL0֍J]C1lu"RO5^& X{D>sƃTJJvԙhqVOh"*K18'~U'_NO1٨ArSN6fRq$,"o\ !RG PI%Um`~Ku25=̐3E#tJCa '|s(:{YfϜۇw62 E2%˒A*kxǔE\S78^_&A(2^٬=c}XJTVfսeW/BG j#m}]aL$_- Ƹ9+/)H$ QȔk:9b~ay-_X*$AOWnnJw1T, wI{iTV]l'XqK?!B9AgzfF?W6am;@!#ؠ4"rQUe)̬E1 J@CGX4pVW'4!!:DKhL2H{IVmhl1ٲELLRt(kLXPFnB#h,*"h$쏬LKgg  b}: H4`kjV^le+.[۴iQ렜\<₢rjB'6iOi B@LJ# S!RsECtQSmh[&#sb|?Kd١ÇrSX~lvi3`ԊmŴDS*0N˔Ҷ-=}p'ַ~ê?sNڴ7ޯݢ>foe13FRƂ]+թQ=xFH*k'>GDiщiC"FݬE̞6j Eo淙s^``ڿz>5o̟5oέAPn/}Ի=9o4=j{OԂ=/߭6_X|W>ޮqԾ~]2gߌwImSnW‹+ @{35E|E+Y;\92ssKfԈye]Έy?1b VzFkPQjk`r@N[{4]{r{ H kG[Q8⾓|!cݜ_>7BFn(6J%9i:uOx ؎iQ@@hpƤUd;h呎1AԎ-3P6}W^~S Ҿ6DQa/\-&Ox[OșBd DL&MީzS-]_Y0b)sLGZk;>.i̫=&W:n&n`*36Q&Ry`F7 |-M^KzGno/3y|C`tP+;8s\MPm0%<1,ͻwL:sn.gւ`j`1JT-$rxѩnՇs0r1Oty/u/sgvzU5y})^4Y)+W}nu 0_zkVc uP<úPuTkS$Lo>Dn PW|J9əqdEv 4wC#{<$2sG In]9HpU ^кވM)­3^XpEǟ=zECݳxWL4y+UU@ܷ yG*ρo??yGewm빨ႋӷ=vPR28sk%$1cHxաھʰ`}ƨw_{No^-l^W_;7?xұIC-j[CnKH iոWoco]׮eu\}v byo<?7;˼E{u1~_̛wJMm4<n~xw3L^+ߎyى ˇ:EUo[|)|fjeyoIkm  u~;8Jjפ}F;>2vZ2Wk2IYU =%*%vyú^aV~z+Wx =xL&jkޚ0sƏ_u'JL*xߝ.Mk|+Q73rAK)E #* ` " 562-׳$@NSrux.cf pcr]ƾ]O\艐fttq9B:Wun\ύNW5RzoYom˦nBD^ڏ?.W>$v,++'\S_~1[;{܃+#?{%S'n T)xz@JB MV6ƬWOCX1Sv8]_)7\,o⏟.[[ڲiwG{MJcuڅ7| CunQ|;m~On꽩cyzCWbN/;WeާѪ Sl m-8媳qAD7I!*WE" "&>:ŵqO]'2;)肞!999@Ҳ0 G2o S3[d`5!T?9~TA;.U#bԩ}N~bvF҅vm- V ]ұ?5hHa ^or-9[E% *}fV˯} $T?+ujt͟נQt3;.821ɁժHЦ= vڈP_* 5xD0-, _207Aa*jRJ'Sg×=;Y8WF@ch)E*Ö3?0!,='v ]|>ss;rBteA5] qj_: ]yN[pӰ36Q9GGڂWg 0ο;Sqׂ;BQc˯wUk{%c?E6C=}M2qAA2$SBܼ|{ZmZysKײJf9 -]u: }goݥuw5#YG'=䡖F˛]Ms$ xgzfHeXXY,xu~avo|++qA@rZϫuyMi5JVےv뱸ҳEM"c#$RP ~qo&S9bQgKOY-P}Y We: b(p+j|Zҕsz':nse%;KBBDD^<}ը;p#ֶ _c.=?+.EqmxE{&MX?H%TJB jℳ:)+gxnKJF{>a wY},+־V_?qWjA3[8U%'uWKhUVXY,Mڷ}?q7]Ү74FBH(:^<;^6=ᡛ.|<ɳ{l{Yg'Nq^[N3e%bہY@u`=8ˢ~_Y<=)T[{WJY? ܺ}ި֤?xNa $ULW_ksrZ>MpSygV4n )VZ޶/,B^f^_7(;ԒT>5"O>`֝4_g$WPłsXsv.KW sOr͸c J^6_]sJC)!&<1n!&]mYA)~xpWOx9g59 r#xhn7# 2һ2@ D]Q,\@`L[,8( tW.Ă]_2ڍrVAFS*k){lVWK/D{pps8ئ<3CdY@hc~ )!gݮ[26{%O$$W*[ƌ|gI3_+k_>E0erqq P;&?֯C~OK&(:ڳh# PHm$B!|[@B Mٲ.'/X<֙ k2~UPw(07j|0+ tj/O(9$D gзXW|_Ӽ`2sjsa_ZoֱVpuV& cm -q m~U%j?]v ?ӥ yyҽ ms3Oy~ެCGf,g4q>-_ڳd8}^:5pЅ?t`˯}_?g̩ۦYN}E?hcAd6o^CФz&Dh1c8C]q[ݦ'ٖ6RЈ)"@8F1qC\mJ_,zgú_=_'By(=P)Gw|Ch)2dD(._XA"(oφCpBB;e4I3,Ъ-I )xֽV/?J^9lXvj9S y׮u1~ÃgM]9=ZW 0nx/;$@3{g?ڤeAvR kOZNqCF \2ckZ bk<ꑽTТEo~rY&xH4 n=#s% 4iӴѱq}℻+l~揷F'CF9"hTnjWTևwo?(nBmɶ`7~UgwG^zb㝿VFo-Ql o!HCf}ƽ^fsƷ+鵡^q')Ԑ8gx~a@۷[)A`[7`(Bѡչyzb~$7dv0 b{ԟ͛iPc.HJ?Dp^")Seaa[u??wq&zaY=hUi_>W_~bCAF˴ECDΑ O" C.Li)Hc3  Ҥr/qؠ(w 5T*f ]jlGR++=p77dxߖlsa۾XK@5휿R PU?wndnO\.>!;ȯ]8CQ鼟le0U]g}ПN>{ WMʑv:* 7U wmRH"ΙVQcVc׽vI9XG|}ЌNǼW<2joKJ 1R<7?eKO}pg>w}Y/ػcVnRHRjaԙ0 * 9} A 4?9qׄ6Hݾu c XmY%祽0$16NJ$@穇D_n;2J>fxԮ71i~~PC`bYjv76$ 2TnMk1W}a6(]o6ˁ-<ؚ֔{/~gIjXX#/z/XЩ{݋m=7<dڝia]N!3RwA Nə~׏ȐIDcp4ظ ZE:†e9zSu}H 9]@Nd@GLnܽfVii @ؼM :vЯze:H2HSp x>:qN@T2pߊ6iM`7j1L)+g'?ca6Vbwܽ6sn:֔$v+l-9dnkʎM۩N[ׇ_JjA\qd9Zkt<BkO5sIN5Cq;5us!H+l FbH dU˳:$ɉwGIm}Š8Fdh3oD01*BJƈVU7]W*i^Oc=Wn"]pګ3n"u8/?hjNte3_~;?ܶ:~pDXޘqDsB' DC?@'9L2G;Ӿ%2*LfTޭ<~XcL91 Qjx<((vB_Z=AX4K]3[Ѷ KGxo&V(cB'|RVunv?2] |wdS>}ƒ(#|]%qYkҦ"@Ι(& !/2:j? b/u>IHoέ lAR|fj<sˏp5cWa>Y;Z7_R꼟@cc‘݄ IDATsEkiQGrCi< fr{(cdƥCv^*p2>Ung{r)/]KG}3o W޴j&X| ̓Ozp~^{{|Q-Qy7͇~{kge5"F&̀3m͜io^qnFGfGW\e`X Zy=z7dM@n7=i33O8}Wܽiͺ/gy|Ce "A@$cEk ɂJqh;}rJ(hUXcgJs tO1N@"d"?e垧"pBW> 8TSW)D #{F,*lDNb"ˮcWE R&$:^pqe]ZelE^}ybtw}8< Z (A}o8˖V_tM p"52 t _ޥKĴ1V>P1ww+\W.Vp$O"H-zi>|ku yw+ !srQk)]MQrsv >zAW#c :3z]qKa'v鳚ɉOO* o'ͿxvLV= a$"I ^գbLOf@>J6fP{ޏ08{PhBFY!DljuN JX͎; ࠃJF]g #n<_vq)Fri;] ,:DC6˖M f9mf(h 1K8d[ )3^tׯ?۝ &k‘nlLs"h)$&ʾX8J,<@E\QIv9p:=$(& Tyxh:[ ]qhPR/뤀SqA"k}cƚ luX$np2%2b>b?Ge=m]q=U늾~ۊXo>G٣!u8P>!yA EH2 )5gq:PƐ1Ʃ /MBDq#؈.'+2YvMқ@4-j\,a̅ ]Z_rkklֿi3N H(p{)ޜb+wTovne,zS\ {ݴ9T^BT1{BE1&wlٍ5lt*dFasH-yeGqH*)R&~$BH:<5m7+OV[ر!:L4ilN9Rq0ە/d˨AO]0';N(i_& uFܹ^ވנePYVVDYgw̝!"4֮3|ƔJQ!J!"-P&!g,B+-YÉ% 8H,aNH#4WJƝ4.\8U{,_E/M1.;XTy-^杉kčTUtgie?|ˌiOk2X\|mޣ!6;(''{ɼ>ڠ, Pr-E/ڟAiW6O}:NsRZsF7R0Snz988O~լʶMIĝJ}:ZʙƓKCt ./ %)gJh0]5gTyYk״JFq60(-{1-d^FGcs J7} 4]Ïi"wOeuK!NBu"uC1D$ɩ#DŽrӅfq!w •6 Jb֚ZYN7!@Wpіd>s¸cDD D}R*#}'g\ `8ziBrhDi` Efva!74F(bNv)/WwoH٣7m+۹2vY'uR><;gaA%7~J'F^/jAǟsvK bǔ,E餲wNl" "KxHWÓ <1ι0dAK)9'+3c.tD:-MH!%qKm~mm@4fVV\ܥF2־ـO[6ؓ.&]rz@\UJ?s!iǒKI*WUԊd5Fu?UUO!¯E&m0VXw5-AM鄲u}k=:ߤ:H1f4w7%8p<%VZCP{UA͎7v)=C1YDa-OF Lx12Pi^q=Wݮ+s?dΝwlļ޽quirjѨG^Ynߵq" dO@WL} X^wjļV]_YZoեRxcOM~}&NB~9Ғ- }VR/DD 􂙛p3h5u~0{K V]:5)8yvhޭkK()j $~ $O@ s HfGVW.p^?OMuGNLpYOw}MZ\}Qn[+j-.sj]{vJ]%Rm{[}1F*vla7|uv}nK>lQW 7_@G]q޺dzRd4X\r_Vɼ&@^}F/&9n\7sBYh#L-?=y;voˋ&!4`$S# ct)I%5qZ;mJkK3D;nOפwOt7oڪ4.-)֣dR;o#JKlۧԎ%[u3p%c`$^SW =is H5gϣ=ܾOVPRXY&\8o'~-lԸ9Ykˉ5&M:y!C-5Ctuֽ~ls潆6,z/;[rcV^p€ƞrpc?~놪Ǟ|JSJWN}~ u'pMMJlWoXX¾'}cԞ])I*o'~KﲷV5` <3k$ּאs᫛؞uZώsou,mM[/*U!@j;Z熕=ۓ]N9WYKǾ}4ʟ'Ny ^X<ϧZgCι|Üw'!%K~n<9uDl`#vYx;ɷoik~A48XX0yva~*]p$Z2 1=O#r!$IL i"gzum9ZiFV"x"L$W.fl|owƉtْi/[Jo8!]KK' _'xyFeRa羧LIYb}G_/&~Pr gq;S5_xy{]3YSH' רYVM? 2#+6mPPSYo|7!f7-w #mϠjoD Ɨ @A 1ko}xo/5U,]JҮ0Mq3)NiRG3=O@D5+H^#YfI mNU,`]J|mkjVII֥AueR# D:sK]" &5ac޻U,y^[ƊHot:Yx@ݪ:Ȝv`Ļ9lXŒ6amAN.|\ٿ,K9u8xxwnU3*-jk2k7/Zq1$D"B)?@[Ɏ_ۣT@J2  &x٩)=_=zCӗ=M~stDKm勫_?<5eK='Ү|O@e9OW [ϚyE0=!8ܨo>x?ꥣo[xXI~荀d2 ~D^-}ڥ 2-~8ePso:`wϹg`% 騗Jy{p8Atz{*ҀsQ-~.k~;^|ǫ=.<ĞOw)ͬ 4hhۈ0(sФȼCSJ1={+~jbzIgtkbOjg嫶Ūj1 ! <#@>)Ψ12T+vEKL9W‡1j 1G k.E5mn cM6h3|{tȸ.mjz-b!.-R\CBERhQjG9`$C%eqWi7ihajQ4!#aO[r0b(}X(迼;W&m.{{ʵ ]}_Q|:9YH)@-&Ƹ1FԼyKrŮdM}a]3fyJ qiQQ= 4uNf1֡l0øpXZpDgq_;rfjK2Vʕ"V11|ÙU03R!FSeT-(据uf+psU:k@a=" ʧJ7aK P2AncZA `'Xp]Ifa"H,Mah.!d7DʸVIHtΗ<6iNf:C[k@e⌲e8H8//t*JI!2*׀T:Tsl-i 2 Zܬ^o3{04Έ$'E=C1BmQwp+k4k]P_GaT|bɆM;ra&?.> $H])IRUy9x -|^2u2a}ZFRTmʪLg ]gv(dk5s`CW II!gL#\J$cirR붳5&}KI8UM8(ecejVa֬9g繯Aunj8BX PPc"ū+ my uKp9'/LmTKƴlXh'i W: Z*Xh$Dm=Fa&ҩmԣ6t IDATz1զ@Ie@@ (_J3~$^"`A TA_:SRlDžQKvS=8 &8v$.?M0K FЙU<$bع$ҮQ 8YNW"+i)6~ҕN č9v7^&s)5QgA*N1Lr#)Bh6Ad4KH4kЇ! Q%tS3":3q|Ū] +47#M d*C t{4P[bm# 0>Z%0c[T 6[gNr1ƵcahL3DPFq)[~@T?jaȤ2k3 +Tti '6/-~ +-Y_='ZĶy5R|tH0jy;9cGƐq@`@O$#Cu]6xc,*v^u̜H?L_Ьjk'4a η'vΞ4.}J$:@@UM2pDGw%9;;~Z\3X0jj.C݇)x,2fl fΘ ݤMd 1/%d"Dzo]BǞ/p>U3 #NŸN,z#I `}YHdR Лf"i(3tNu`kc} ;T i- E1ZDܲ#]aA d%j&cbė*E1^pC^ORJ)]sݓ2# 7F4J+%gdoON߳DMx3* +h0C+Ұ :<0rm.yRT*DW]e!w=WmbEھo€a 3q g MD*1ld )u&iMd&<%:-K 3\sO# Hʎ.L %`0~PQ^ƚ9 k PH=/aѵJކ}Sd!"KeʡD$qQȚPf#Jy]<=YeR DEeq6!rA20&B`Ì'43sE'Mkh+?BTDJX#Cd[cTB0d*hԴ2 l*X4Zb Q^:8q"+̶H# \Y)2q΄F#4 GBq i!v4-D:%^J1֡ +$/$-U]ZuEHE;LD$YDBIRU3[ xaMj^ϼ wA4D! 1[>nME %J2HuRJ?cc /1m̐Ѻ78f>YEPU]!P팱Hi*H"-əB2Dr5FΘTlOrp^ًʁQ,Do{d[tnPBصӇ۠ӗ8UW1R҈Q)eRsΉ\l<4jJ_-Cz>Ѿ:t[ܯ"3۲^)2$d3@~tqE.%RLj~ !B )e:Fggm#, =Α10#7YG gQI,ɍO5 mi}BHs'@H!DfZD #J)"nNW k?)qڜ8gd3ԾZGWQVJ5fQC Bg -,|P fSĪ; t_A+u ,alB~QV:L")ڛyjw4yjV! t C6DUh^ Ui1D;6ز!H la3}Q? Yp $3x.^,ƫ \\nc xΜ "V8""0S8l(RV:\cH<ӵ6?fcc1jB_ʁ{aqZ0IKi_PHPDi]X#KCߢN?uN 15[́HS,+= 0AƙUXA 9##RHL~_}iwVE͡4z&yB4>9 'ɐΐ "U0Da71k?c,g#E.E5r {@W+cHQ炏k&^K1<'Lj]66R8؇-:+Qȍ- o!r\7:i M,9bk`qϐw/:=u"Jpa93Qy]L<+c38(X li#{k<1Z&XC Y:(@ *=(|2Gvm̉2gY'-F6ټ mF=2ňYgD$$0m * IVj!ЛI9IMnez|7A2ܶ%fcfT f-ϲIM) @'_ BHDƹ8=BOl z@1j)+Uo-m$fוJۦ*H&J-KN hx"Ja$ څJhA¾VRB@JUgsAxD.> 1gb`1fYvꓩnܸ.mAQ<+{@C{a`<qa@QW+E$p dN!Mgig#8h,&}_HD2 ZT*Eĸdj8\LGuv "DŊ#jaa1phfja@Ҥ0Q;59uu_ g%0,źy\~~8p9G@wT )1f$/r,3'TKi2ι!P ehH$A'(KkdEn11UOQ4ڐl3THNz|>ȸv^e*Vi8Ԗ̭hl͊a[?"`Rk?dT"C$KKn)Mll sXN2NRɴDY#+yd\䐜T<iWFdKׂҽD$  Ghh;)&uCC1뀈#}CvoMDx9hc4xheW8O!CʒC'E ͜&}VzQ"g )kM@eR] VDQ'IƉ j5; blL8s{3&exQǑqϳ"j@bH 8g^h㊖a&ކ[Ҽ@iZ4%D0;U!ӭvf?qQ O8T @$ 0}uT?dfw`c;[ų A{^"j ͏Y )zI2<:$᳑+)@%<)Se'-Hy,1cGn%>$o,f#A2C1Yzݞtw1&f:9lG3C*^f;0L{2CធmFsuy}؅d:hbf4SCw 2Q׫=Am3ƸA %!c$A "ʌ))Ra>U@aE|2[FaqOx8Ea5B<1!VѤ/lW H RX@AF'^pʅKW~|AɌurԅ\Ҋxp{䎌r>:Gv.[14}Ye9wxc:}@ƃW-r$7VJ-kU=v2wӲEXqgaJƘb"z۟hD|gJv&SC+xmow#uj%Ӱ戧Ժ#联y^2Sk;?ta)ctY\M[ $Ŝύױ1MԤFqxkJY* q_ktLejAI6}ț`t2u156hfSSKjbܒEq>" C*f$U%ȹǤۭ:S[!t@sS+ٲeu{IasZMp!LJB/ "P*'Y[S*Y}v"k(S%9W&Lv%ـ\t5L1,#WbUCteGkqS)ꂎvȐaxjT'"qMJpq=nË{*9ίՉc;x/GcT{YҭϪr5UD"`l*07ǻ[q+ƭT^H5'"wS݆eY2W[UKaǞ$ bTňisM?ի(lwc>3sޜ&wjQR3{s1pޒew Xo_0kڐI",=eP;c5ZbBW?_Λ5W%t5!~7nCz/t`Og_8&>tJc^_|gvMy]ohwH:QrxPǹ穒EBJ?59鞿O~xG}Z1N[WVlwu0\ Ihv-0Q4e`(=/]˼kQaeߌ8*WMQ7t [1#ǚr~?Z)o.\>("63RުTmOKrui)mSp(9JtނO {=8I?g|Z^C|*M|zMI}t23[FVF|{އ:siM7#K+[(| !^Flh.CUzHݠ5QJ9T)ʝ3D'^t}'ȫ/Gq ?38g}|mWKRK&>~qr'D$v|5g4*!j\!(Ly+>0[nn%g2Y"?}Yi#?tWmԸ}rV~yӳaҬZ@u)ӪrS0ߨ '?m{_n8pe5Qt}όW^ڜ_OOXMt}Qŕ?[]8O^yz^%{A1d$)EPCJ@WF|)9c^h} "yᮆ/ Dh"F:9@qg0gv]U(82e矺h;NF\\q5❑CF^ӨÑ={kh0њ+v`zu8Ј$ympݣ}|mqSY'r>nNnkADk.i[=s5D!!tu|޲wGM4\uKkyF==.yo5g3۴U !_FX#IV+%!L+!nfǗl3[Ew=K^\%8~/M(][kk\QL {į΃^xʱ68龗xyǚ+ƮKi׊ /IRΑO6Դ EҪ]#2~?fJ 1@>p@M+Dw/.5r܆!ۊ@O])Kvs3&k{M"5k?rܱO͡m=&1Ns}cפ~ F鴿otNwTl2ƙ=Α;^;ADT-u-W-x||\3&rb+Kj>qdūq맞fʒ7i9ik9=fw[O/rԱ?pg <+48:밦^S^z`A+~ӹ5=#WJdnw]$E/_K3oFzʾw\~DsVFO7?uǷ]s]r[/>f{7sF(Cx933XN v-{֥a3Οrw@lrYW?]?URQ7>[XyExJh7_yM]:Ë;`?Vv^ЬYݹ7]sƎT^Oi[=.N SGO;ޝBT[j>SNloX#:Wqvd}wՠ{k[k5YԬ E豬ǹ$B) SHj=9x6aZ3&rbѼ6Yt7h=cVv"%P+5Ttu3WOso#KW )$4;s8D'W Θݿ 8}zW߆M-'j+h*=uMom =_þ^^ʱG~R^Dُ|prO~&a:3TD9~ny}J`Lhз.S69GL7so;lZav@|9;!G>H}O]WtK7W᫙ ]1a?oZYXuw7FޮљO=Df}բJ>P>aMx^g3{~7m(/:EO ;֒/HJWمJ愎5_j:CoLKMcWp'6&qU~ʪo-r$DִG۞|F2 *m-pW?KneXn4mQUS6/=ԢZܸmy{Wl].\?mNJ]3;򪟆mr(" -;`>Omj'{_QFo>o4PEE,r%0INtnQ !(둜579,+K5rf *)Iw <:K$ai;}-Qi#~aFqv+$Rf;g$ȸ!'pH"mYx&'s<fp`y,uHPwh/gbdK $hn%!퐴r#c;tiOyQ>>{keV?V6ʿ}>[˟mR'ԶAU!׿=Qc;qGwν8]zcz} wfhrD5v1WNQ]Y ÈLs>A v:{ezu9NVuO`š4}4$h_c!(_gwz{yk zm0a8ܙ½_sb?ķkci/E{#7)_m;d b>,mf:Inu֫G#@ў76GK֦5!d??.[ɰ*3gwm|赿Qg_MX?qTzHTP=׸%i>vk_of49hW2R3_5hD~OAN|kVI|L5}pfԆPGb(HE|%2Jhrb[7p$Ή&DtZ[J#Nxd`1SD8YFf 3*?(?Seq{v:##LChjj @1 dKa$!"@OuR%;-wQvY$e3 v:Rv@w+`+[\(i`'C9RJ).e >/6^NݳE ꥁ<6!PY3 K3=犰xijl%^!4P'blD^Zjf6a,1ǵ|kJf/ާv+J:AXU e]d[h:&rXq?Y.ڬ"mQ\wAEm 9l_|yO~Օ_-8s[P ie a5Ņw9i3~̺=񲁍_0nδq'6~1bzek<3cFhTfB |6ZM@n7Rnُ/.zY+AQCBx[r_ϧ,\lO?Μ&O>tң}4m?>}KSi f?G`ŲY߿̢]=w`6WbWSwײߍx۟wɒ>bԀkWmg*?nuv,=V޴:r 6/oxNнJ\#@Sbo %YNUEL]OSC=橃˛kSO D_5yʆGwE!/)g(Xj?|FCd}Ot@#m@Y|ɻMJ޸1(B榦Fܗk=fʬ[}f~]ny¥zqZ3{𾓺f<1tQ0%Rf!D*9^֩ 4??d},ˋSx)A= >b˟.5>и$֦G[Z9i+*W[Q>~-3*/hL??W-[K?[gt:%~ctftd+>]}>"N;bʈt (nlՇ7?1f&)=~ܯB(mvh'u@ϭ%9|a^<.3t%ϜsۛCW-UnmĶhkO_8lǬZaRu/u"qӤy5?RNBlaS>{ҷΟ[4'ϢW,ygʹ!M9lss@piׄ4& XGhwl⹟"}6!e 4ǔə2Ovnf&R!Y A) EdJiGX&I :s(2N"x6-! N{xz,'P)&02XKTyb Z0+EeR@x2dY~h3KԴ"L]MԌm I,yWo/-kK4_Z&R*>r<cR^?Rm)5sAT_`mv=ߝYdEj6UyQXN$7L?zSmuA)zAH)u6TE>hYeM$ƚF"/cOlS]#$t섫?D!W1fܿQ/[/&._h#9 L&I+E¶A78M-?:gjnOz6OB`۽{%Z&Eq~i;uD"?@DO*c(KlXA2 >dHH!"d*{m~)tUuEk'.@Px޽k+.pjjSoAw(PalBE_3*tܪ vY 4suWJwTh֚޽ڰ_jeO(B$6À#Buk*WAm71hZUw}}3޿oQLaڮ = GIW~UP>onca#(G ޏ>P+_/! m3_::yExgacorwF5&l)5`籜{knnBr'I("GQRհ{bhK_yx^J!B̏%['STqLK61`Tf눡N6Qs)x!i-  )dj7ْ7n~0cҘ?eYcx3*}W(ʿrs.k ܪY0oyV>)1THԯSM~yy 9 v=bL㞪)MZtcyD~nOa["ͳQ|ȧ;nWkf*.н{`b%e]{87}8Qlk!!Isak7V6X^3{I@DZAmL&SRe\#*<˯^C`^ݥ ۦ^'-Q{ZA~cYX3H"]߸| VO `/ަ;gHL*j XqoȔ0LCD.Fpf]5^WW01_/S1R Y'R,&9yC|@amZ2ىA &Nɸ4OXO$Жk 'Rc= 4%DF:T3ku,r#m!F՘U)yhs;[LhSro\)LjIPCfEymq=1QbARV]@@8sB<ng5"bsSf'4F|Ns^<B2.VX-c Xy(Ǻlbqj!3N ώP5@)_3r[@nF 冟V9NUfD oۥ#0_CLcݏ8_՗ Q9y^F5 2}"!9<ƥvr="%{ Z>Wr cn~Cnc(c4à :!7 Jʋ7|-=8hsxϣ^ٽ_>=~p5Y;42GU@ &gDoz6|א RU"r7`N\ @nyҡKfevw~sʺxEh!2)t3w;_g=;@J:Pۡ~1ټ׆\[+B&$e 9u;Y\3ux7C}N:v,:sE"O'j̬b{i~Z.m^R} 𺫱qɹBFwEH*HJ 1[Rx?yߥ*xvC{ℕu/Ub_H 9~y_-h"dL&dB-dADʾs; dH@P5%3}c*k,kjm26{$Vk7 }\@ljw(֫cNvTއhT]%٩{[+ n@YT/N޶CnŢ BlV@c9_8muu)Ȯ۹52$MأGNr4^Q[.5jRc[nɷ&S, /jO[]|p qm4Fj `˨6lc98cW76}%^`#S2Z]Gxɶ~Ϻʜpli"T;Ih_qr9 D3d(!5rZ"6@@(zSb{~/Wo{oW}FH$TL}QL:C-vp6) *RHY`jeѠ:g!۹H\lR9"W}x3N6 ߗRsXPV!ښNk5gw糑m]-V;}Z)Z`M^lm;C*}yax5ٮבfȔdצ5w_;Qs~w~}Gn&@*n)SWRI\Vqg[ą2} K ^oWP*Xa\Q6m*/Xۀfs[UōPʯ5U9DKQz! ӭZ(mkYVz@ACCȊin9o7B_U9 Lע R@sgj+,+?*h*vإ!rRZmU墙پį; yQC-Mzymx} I>U GNl)aZY cEeT좧"9^2-B>`.;[Ũ7ɌL  !%z)OJ$5]Dǎz mt k9ƪ:fcZmR1p$ j},68l4˙Zc̸m-۠`y1C68oQ(qӾ-\*Z6^3K%軞YRҧVk,ş}x9b6ν{.&EMI}բUcE_]#mYQ=ZlŢ[nMIE֩,lS^x"ҩ'8/g${VvoŢ[nmqm¥s ?tiî28N{h>` 1=@E8gtlV8soUO~ʓ#.ͭ-h6d +3NzbGɅ%F-lJ;^b/u:rAΗ%x BRp$`oǩ?|CoL.='=}W?+]6r|7~:4-Z3cCSEKӿWy} ʌH~ۿzx]\qJ@w#DGM.2JCy'>!S#򬮋_t^S(wMJq#G n,kNzbI(eZʳэ_EnZ4L}|LϕguYgqqo_^:hXq-z).EfU ysTӖ: 8黫F .u7/b/ry9DDw}KGDuW6Vp{>[qW?^ M 1;bIB;OWDvbyNx;דZ r,\'=q{^An]-2% MfQIc # a4ӂ irgO~hLϵv_GLըeiGay)r!k\4}]y|R/`/o?N[V[ˑ{ZʦO*a#`c0=vN^]~IZdžur ^~ɡUoM~jf}י(/~ԵggUu <;fڲڲ]ܣM*ջ*G_2: @T\Um X'TS޾m*SA}?4-ŝ-;n:hu/}4̛,hq3]ߵ7[v+쾵wԜ/ǧyFD_kg0W ?)[Ӿq*pM֡/x[\Xqt54MGnUVZ\EYf;tۊF7 vZ?vWeNh8r 5 fvJ6JKuykח>ú[ MWOmiN ٽEUcA}jR-h֭ufOU͝Y=nfCzG ll׾jGv;J$i)Hq= `Rl1AA)Df\mܮm)‰r;[caM:Ɔ$XJQǹjeA9m9:ủaZ*FZCvU ٙ7JÎtMr`vI+ c C+7e#'Μ!A̓M辞iB$)m')dfiIPVZl(_9J wB`Ipϣ ) ,yhň MvS4`)u[( x}? ŨL|Q3#AW)I* 5"<گb}u%mY>?@TNS?:l+_kKI6Ô=:^xle=?- *?^C M9{O.ժۡeA'}Q(/n :壄z*= }1Çeo^s=ƅlQ_eőG^<?9_xI"D-eh䈃<yW/B~eޮw.)aeFt \ف/y n_];=]_75/0a۹A 2셿U.yodS#s?2t?}_u7w_9+_]C׬>~w 䕗U'_=?y//%,uU.nͫ|v(r­ݫ{_ Aqŷ_t;g@jڧ_f.K'% IG&{ֵQVx\NZ7>9noucPP@|E ȥ@wrY]X !ͦ/|;{ó\x_ZkƵJ9F܀PGNT$Bb07ǟV5gB$/R&7գW?='9y9+=ejCHʵ{n뷾1{)7zr+_.z˾ky_VJCWw쯠_!:#[vʛEWxUsƾ_~ sy7t?;ejtbJQgwwڷh,Xf V]|: hrWϕzkVXE-Vwg noXS?rM?@e%[Wi^ź!.>dM [.+)fʖVIؾ=@Sv4"k&~n!%*@4rDdžcvٍ1y}Юpm4gXΜ?kAaYZ[MZb@V9' .w\@׫m{y[lѕdm%I5іPG Yk[m[/h/$lk; iި1CyZ6͆Η5MVkhieCX/pOд\͏P!g&;f$AՀ4>: 16 ]80*DŽKp(Pʱ֮"87"_8瞲B/25p;pcp(Ǖ^Rc`Ȕ&"0FRf42[lCƕT_-zk%InJrQԶ暏^C~=E98znr[S tȯ1 CZ .]juD5 (P(ߪ*&܀p[(=vjE.z~.X|ܾ_(Z/Sۑ1ôk)6ۏPPP9ojns~&)))rMMMf !b Z bpc#ؼ#AcJD~.V?٧(uN/G4C)0mxC=J@zt?VbMk!0ĘPhdۿ~C t`EVrS&%9%[!cU2e#psΕO r맏t{a%LL }5pѦޢ))SG" ]*Ls~.CL[OnZc][վۼk#1d3B RAx3UA)EQ/(Bڍ)#@ܫMd2WæN [VVIsGHNlA$m50#N՜R(Gu"&BZՂQdYPbܔOy NRĈ-Ebvh%!_w:iss$f Ո0t4*);kF !I)Q WPr┛<Z7rlBGnϓ=gl$>\4>9Q?HQbtY *R)*bT+Z_!alTB=|&Nΐq%Q& X@pD4V,ml M)9D~91!{2B [RUAhll((f3Rs/t7X6܎8pT[j>*KCBt7PBG$e>Yx^FWV)@Jѫu!.'b&%J $\52Xǎ ").<Ş:T+EIigP#_BjMG/.T9ա37ZcM Bay8)+xSgQ &tLm D *dͬ bϕC%J;P/Znb^Xo%1,oBCLIgl'nCB(c/~b$*Kȸ*VIꇩP"w{-~3؂YbxcW )Q+XiId1f^S RlTq"_r]=?l'Wh91r&9GDIRy3 v2~ʏ:BeWrj7MSJ-)F{0&QyC ʝ- l8 VDj~^&J)Y&1ƅ? '$ )ݐ 1r~ΰP9۷4"[ι.Ƌ=R(QL}jmbۜp׍w@qp˗ҁsq,#6b%ֺ <;#;*{h Ԅf B!,H&pom0(s^Dx!A4N| -' ]*.! gk! /g )x' !15:)M|#HS甑Ա,d,ٯT)<*Bz IDAT;FM 0Jz,0vP)tbc<㩿#IA߿.א1nK`mPl'9'YG9<7Q(D3t!`ŏpIR@f5[?@i͗DV(Q59!(bCLREh4H}xRp;2'뭷WMɴTiM7g7c*&VxQ f;AM4Qpޞ9|ߗR0;0w.rۖS"(4Azw:8 y+EE1(2k,dU/CT'1s=ϓIL,bl F26N%LYD $)ǻ86'9HeLA,O#⸮T(u7鰺wL\Н z /2yjg, Sl1`ܣDh+N#/Iӝ+ʙ1ٓ,.*.**lte h e88gIy&K)mX"@ ;cl6=u [@1"#;sI|aT4IW wj83RQ,>IRB<٭#cePA+?Qf 2,((\sNH]SBm yڮOZ9z757rl6[T\d3lV0mDYE2sC4CLVq$Hrv*^=n4<{LkB _9fg-P~p.MySf6uN$ps5r3H[  "Rm_:չ,*DJtqaؗ'F%lA C1b¨ l6[PQcSSSSy=D ^25@l6[TP\l6$!8 bO? +h gCF>M~8Q_kDФ䞰XU^J "#Nmf u0ZcdCT.}s{&% l1M)ع" _uH-77 Ci# wk\(WN5 ;TSh6lfK75Ҥe-'ƾ 2M^ C!$IHn(H=V=Nnk&BgbNɅcG1^,>Q-?!W:!;Ԑ~̢6z !%RQ29ikM8wQG,cca:iIP'Xuv!t|@$SBbO4.,.C[[G1 S!gLHc@LGhZF㌫Ζi||7El`9ƞeYi?$I<[/p٪IFf)Ecdh="iOJ!qθ@a]i!`tfP)L3H577 )lA&SRXklnR02uYa\&_2/WB* !D /(BLE:;DTrh<#sdh*r<%pV)TM {lJhQi~fL; MFORLoXYiTS"+KsF7$rVx,gDuLP?HjG$H"a$il2h4Ϲȕ'h)$a\qn="o?7EXn`o6]4V !ThD"3wx`7&S$=m3Q|eL&N>l4b*0܈y˸F0׽arŰp/4Zv\Qrwf b VJ5]sUTl0h1`: ܚ3}8:29 QpRJr[tFOO{@fYdR\p#W asf#IAcSS}S/D6).**,, q.flU6`&DblcLt;j-bZoWtÐĆ2ŴII@Θ o=%im/6Y;q&=}ݯ;3~xu/Df;0S4u_s@EN1iʯd3~xhw+"`󔙌YE>?ugtճq#>}֔?fu͐e'&L9y^E\T2̞)3fN؇(R7mDY&<|*Hye1_Z[e;{ܦvͤ :6Pc"v&|!>F XfaOk7X4T""/';ui?7YQގon)3]?뉿q]x>y9y_.@7q6Gppό6#f@U ϾwLm7t%e qIMū7ؕ )VeD1#"2=sc+sdL"u XbC0nxIM Y8 r~sԖf4iO)dt]pli$yCo}?&O (AnR?H!PM jn]y7fv6×z5ަ3׏{ki3(@)jlR@-P;ܨ5L&=rƐq8R'"us|>vI#Z *\Jd ."0PcQh|˞HHI+8bɠM MygU[.\9=Bl:Vyb |8֤"RHfl&#D (^FC!`sؚ@85KDւQL,J+ƙB P-h@DDRqyS LiQP6uPɦ#mrV`1Yk)N8폴2Z'GQqGѵϱp`d]hft2|$KymWqbsn(-HpBX\ܔ[gY^i7cʒNgƫ7`]s)EzmUjV9V>ȱ=Df]{CϿ}<ޮH+<<}tjzSIy^q.I~ a`ȝlRP5;Q&(L?1 +20Cc9?ø(%"M @D^࣫rY2v^Rfd돸뉡t;{x+٣ۜz1`s.vw;r" ƹLqNh^⢆Y_|>e{\~ pݏUF%Y1DVsRrka4ZS{AKu?r~ʥq)bL!P!gX2 ?keV5ُ=x'_Aw>yV A. -SLB>i!Q3I&_cƨze5N\ɍ˾cULS?&SB0gjkx;DK Q5۟QRtQWo>\/cMQV(c!2FZh oWhNn0E@IPy~}cCCSS eA&SZRRXPh/:Ĕۓ:hIBێƴݐ~ M 8ìq*,d,#e:144hɱaVUǹMcRjy8,u-R`cPX&x|LAcv``xg~ 4 kBRg UKO:y~;I.HH^(N_+ΎpӍĐreZ 賅-0O.Q޽MKr | AYr=xD-Ѧ&*$5ѸHk eqh¤>aْE;@QSo駸d >9{8uk#Z>{ʇ ЫOb0H+bBa7)Pqɞ'z _pCǶxx:e$BrWo??'Xnh-|MD"'&n_1AEpɐb'<܋;J=q _-w z.ُW]/d5#OM0g1 I& 6Io4tKy  6EU%bƝ|y=>1{aΈZeꇌi;L*{' f uUQ15`F19iQfE,aHㆺzfP}V s~9 Jnq^~=0 ʯ|ˑ]_NG!&}Y!!0]~o=ec͏ ߻[>]/Nqu{zu__X ߻]#s."B|CJowozv|6Pꀈ)0Qg6Z>`}ҫY=퍇nt3nvi-&ΫPTx^oߞ;M >x'ή@@X'?^qޭiwфa._S{ ?SO}aEXۙz1rUd آ1h B\daKzxZu/엕YX>pN?2.PtlN2e'Am|6=b[-}oJ@ |-wT`7LA͆ mQ!Ko:eu3_{#muG+6NF]}j >Ojq},ԥ!ț)0oQg6$d^S_zOswod{?:{nҏ9gJ+f{~-Y#GMჭFxL{#Om#Ap h#"͊P LI{uʿICDkMrBl5VI"h BA(|`<1iDt ɖ<:P! X˄t\i3P| [LN19d|% Q]G΀\yɒ&c U&*P:9Ĵ ͣA43 7⒅\e"d^-tj*n`ga4ˆˍ@ƿE]Knna߿P#'GZf_YXaGu9i՟M^VF3дJg)kCЪ9`%e~iMUҟФ+2+%z5>rdGL)H\ #Cw;>7[|4>ӑp1M4gj]=Ϙ!gkuoΘ5G.='D=ԠXTcz/ԃ~7\ٷj&m=:ѕ932'x?϶k lqʇzY-}oܿXxEgF=g=叏ܿ"3G^z¶rAG_:[y}xĀ?/gvUl,nؿsN9č(~И"[":΢D1;*vӮdk_f@麤$Wm Zo V!&s2EFN臋R?jla6LO}OvRZ :即g ̜q [7MK%I\ T`o{xnn2dz73hԩ9-Gxվ刀e}ǘ#=w_U~lPOZ1usvưkג,O슩N}:E׽{x^Mb,㴃8-G]}9궻`i>Y}}׬uܰߒz-}7_^LgZx=wά"k\8dwB2Yl~(Ysnc QgDt*0r2׶qs0*F O1AtK>Y2GLF1im ;cDTho Hl_I{s#CB1J@S8R,oBRA&>1cvhadf1͍%[q?)+FA:Hԙ8 ъz,n;z7[7N^aK N2N{20Arkurl6!y22:S ݨZa#_0N-&O{zfZxȖHe#!rme;THۊT O3fX Es%g̈ MZfuNekWEɷhV`lk V@L"nqӓ!ެ*8feIێ~A6auas9E}ghP-%4SjwK_|9 זM)Cv 6-"3>㵫v~{W&)Rs6hi^S.c{OM,+!s0Θ' Kyoܔ.ʭ;dXtҪhZFT(iijngr7yshG_zx7f̘5k_7 ֶ?ssMyoqYu?+:_XG~~1#" [':Qӷw۳VA{Lj{n//(~3xVN+;j`rHd @o.]jό)x3X]O~*WIS:8'?^ӢO=]J<_xs֊ ]nZƶ_EF≅XY Pߺm}kte3O")>mgs9u+e`(1=bY Y_G?cԯv@(8~S/9qS(]6o7}św>0rɲFF?HLky<'/ǝVfrf ALa7Be3tGvW˴uOxrWNӶ C p `,mdLt{)oޡj6f:eZu<(8BP@VɗxՋe;@,bmGU~/Xُm*zt(zswߨ-ݺ~Mh[_v7 1l:u{xyO< 7zMՉIo/+m϶>a?\pj?7yUfywTo׵ۭ S=9i(.tW/;0쑷O[M8ʬ( 칷SOY.7c}?z}r7wy͒i[Zg5{ u߷͆ P?FCd -\TtM e 7t8q֚|`mwIֈ d{ּK˪,[!թܢYh[y9V֠FrzÚ_m˅T0*πN Oκ{hɬ 7pvB}kM}Tɯ@5u>y=_o{];ycwVQ^JjbE  70eO>}7hQg[49 fY0cքcZF/js̜`pO[D ]fj׫Gi&|5{ fꎾ%;4kf̯ڷsyIgѥَ}?N9}|["̜_u;~Ɖ'~D _r6 C敛rC,[k"kֹsfe:٣.};w8N:.tXՁX X 7AB, VUsʎUvl]}}}>%%%#2Bmײ-ⴾauɔ@AˤR:&] jϢKt<"$5 `.=,vdqrnjԍƪXuIf˝tƗ䗈f;7GcX$|1`UcȌQA{^VJp܇تH!#-aK4E9+zE/5&cc 5&p=$A970 Mm*'!g( ;"A9aPZ F#CHf  ˮ޸چ鹏A730 <ƈ8Nw$HH_@94~D'@J0%*\6_Ilb?ػ{{\^Tu$:Ё_bX2aWS Fzo2U}9-Uީ7I*fkdfH`M%ݶաCb̋X9W'? (_"+DBLB:cqQƵ೘ SUkuf}P Z_m" 8A߁b\/wq3YmC榉7 U6[5 ~GW@պ*;3 q~#}lN pfUl[ T>\?h NQG:i<% Hٻ*@*(kSQ>,ݷ_T%Wz.=ΐa UYyuicEn bDT u~Nyd%_ q&U^1pn%/RGL= *(k][}!Pcodz.-/:_.-Jc6f?lQ?>:'4O{]T4fjl L;Rn ~#V 7Xԟ*N߽_(mmޮ?0˾ݻ/߷ۚ-WBQ.N1W!Bwt엄?RoW[Efߘ(m]~zVLND3"h1+eX|> ENS)e9D3AY}6ƪ2W VbgO\6Bg/qAp(D1:.vTXaJ{EidacTg8c<|;4cV2ySW~CDuSx}"Fs ( $AZy#OgIBxi]gL용ey@DJu=/fJA IDATb0nQ^X,ӾGn;0Ӷ箻V]rӺ_dþEԳGZ7P?q &^1榚&\~8v Q4@xOK[}p++znC9錇#ln͈DnkgYOtրuhCK{3m^^J'Ζa  ed9@(R=myn\lM5A0UW;bw{ |܈Zyr].y?,YS!핟zjr_^Z=ӛͻ%Xw'bXfw' }5t8A;jbB {+d@@XcmPzsz%Pjn:?jW(8n P.iL憡Ѧ W y|R3;gP گnҥhgK+%ƟTk@\ b3< qBt FTP $ gXrHRTOܫe(34ݢdHb,mHncDv+c!D9b:91HT L 1Bsc3QʟEA>>L`::Zf Pee!2i/"tmDGhJ8_M|Wɠ/\/t" Wtkn 3B<Plvh{L+ .ydJo}jGK Qф 0P .>aZȣR !d$gP`58Ո `TgX UмnRȿ I<9CB4-3 -+C|YKw`/o}9Dc󈀄s7z|ֿ A|F !Xj16cytk;;dϙljDCf%{j@>>u1k)n &KvqGV?e3+b.R?q' ~fŢ/ o4zKE`ī/ .zGyG?8 㟒]>[:Y}ަ7=Y%?)_8|Hq\AjҀ tc.epr[ R&Iz/G8"مOudm~ehrk SG޼!6}9ܺ9{ׅÜq/G[Oz;_P:Xg?7T(!Iv;*g>u@~ne_Kcp3kOvelK>|;f2W9g7̻ȳ\嫻Fw7jʩ/?=5&fLldge+;(ɪ/gԨ_~K~m# tyQ+!@" h5s` Wk}by^62 P⫒OۨԬK/q@@R2s_6_ȋs_g"u[V|.|Vϸ]yKCG܏ Mp(e?_>g?ٰzzYn3W^zelWF^Ҝ6d蝤}t&eJ bqsܠH"z~W^|2y\3aULD1BLǑ%Jm|Zi̐:8lW^elWol|eV\ Vˋcg\'+~i] ~wh[_>m;XW?m;o=)k`m ܰ,{XNm[٪@]zӧo!@_^{䴡 Hoz~ٙTIU5U΀m~o9R)t~MW@r5ߍ=k%ݸd;P׋/~ tRY;-z%~ҢS;~wh=`M8U*O%XT`݇#oeMo}scݺٓ& vw]~ϭ\zvٔ&-雥3bZD& LܺH6h7 :*6eX}.+u I2xm 'X%#1 #b*"x~ B њY• Gc1M3D!+#~8F4V$E0ۂv 6L0Bn$Hkݢ2nM'D>dڱ¶ڿKCN$ WrTAKT>/Ǣ1ብYE 2I*5L.#6 |(̧hB(4T`]GPs HJt+nFI%=QĢ9SS,BRsOSi?%°6|l')rE;2W<::[B"p)zcGj\4E @Ks\W8 8C֞?]DDEkH@_LAfV&a(@_bX2/HUJFw}eH[KG.9鉒uH:Ɣ0GYn7fQ, A Apι1ƅ MqFfTIdQ74эH)4 W}Mܹ$Vg3.!c:.GG_E3(!|Py%0>1#$,YHHrj[s~挧)X6 `Je,od9d 4ڌCvOdIЃqòibb5Y L 4'B ?*bуM/ӂ_1^\ehN>PuL%VZOGwFEJGƘcHrz/v(;yoAM{g,y7:!*62 obekrl#=CQW;jdMUHDHSn5.shb ̴mwji阬ƌXg&L]_F9ۄ-jpJ q.D4X&]hjENo\1.PujcЊnf$kgf_ N(RoHƀ] C&DЀ2BDl'zl{y=˔AD. ZHh# BDS0 Y2 c74bqX&5dƫUjE |8O18 i ١4vN h!"5 ]DHL.3= (tu38kMM+-"4ل8"mss祲Fu#fHDQEw:A,Ye m#V0%TÀA>>pLү 5 P1 PfDd{\E6:;-VMp70) S>jπ.(xiZ:Dٷ=V4"Դ],bdUC]5/ H390aS)KKrl}6ԕ ZcYXH'#l.o\0HT\GG 逺F]DE$>'&Aw Hz%i{lNQ~R"$kBcG1E ȟ7BH}>}_@& h$Dprz[M+B Jl1!L]|RW, "DnsF~Si/f'(((8 EhТZd V A~sDAD_gJfknѽ4B%VCo/(D7 .$ae+k1!H"ZI&b^.#a( k02kSGCWD cR LI]mQBq$7(}tuYqp2+xݠǹ{fb d)K`#r d A qrXkFm5_D5{a( L\)2)ƀ}pcɌyFi+T."C#(EȨ';9c\ҳW<<.BoS$rKsrj_ꠀ G[ R,ۦ=Oce<ƮciץC-x; stsqȎƖhmlx_e.l2"3"L% rfG|/%6Hvh6 9#R)9 T貦C"2BL L/ʭ/ Ð,$BH @羟$0nDcb!f:@Fe0f1&(\0./s(aZ E\6 _UTq:2tKl45LHQr!"JFsY4aR{: brgcj6t`){E Yy:ۮBu`Rb1(Z۱XOeLG o$Y,K4i;4T1b9 A!2Ejl,:]*tμ1O65٩|R?6Yngj ߕ=^MMMPP"Eaoeg5$cD.uiBNBsm-cND(٬#9̊G(hy7éK0dĔLBK|ƹB-S[&C߹S(^ M$l*2#4"Ra+67:UpEljv9m_ @+HɀPys@3 Q㞯Bff{sI $[Zac+8{x=6aAI(Q- A0q.Īb"q%M6m@WR$*I5RrI̕vQWL69pҵE[ĥ&\D6,oDy{ Ḅ%y%7+M Jy+@43SzLNWga. C9c!60FeK`8,BX A 8Hu>0)1&gsc05me L"bGaL&d( lVh 9B6xMy@,0] GTawQ! Pjde0AđHDGfz&edRD5>[K CЦnR1/R|=6l4tX,EO"ȇQ*8/d<ϫSb%Tk, j*^McQa> <>er`Mt7!7%:-Bމ ~.| l&FdRF ̠Tʗrƙ\QHrjJDfknK[C,D,XIrCr.Zӫ 3)n Rٽ_0.HY^ێmt/e}XPGpc:dpiQd|$SZ>}l"fBfKge.UۋR#5`b(V:-d A $^ ),Z, I(aL&z!Hh=dY \֡"'$ Ysej*I2T̳A4mħɅpZ GC_w֢6Po{6ޥb  1dfF3i@*WO֙[)kfD)`jqP,z`HF99<Fa+ve;|9L vq : :A mj J 4SrU <(-5AO#!zâWƊ$r(ڦ;L~r*c6K4Xo؆]=7>tRߺid5eyЭ IDATҊO$<@ kI{6岪hܡД=9{, F,U@d<2*ՎqDsysP:qƤ1U ";؅v3g,*-hU(c8]S7r,G.$dc:, ɪ1$=Yz3B5՞"%:v'.L?&[̼s.%#]\CuuԂ% OZNDVS]E9 ̾"M` Hx˕()G`w@}{c!!' ,Z((>.:P@(0%!SYȽCv7x/8v^8\tIGh՞DX$[Frԕq1|ΕOxSN͹3MZJ)C cg0` eV(!6avnDjjҪ/6lH154t@cq!_;CgTX.ht=BWQX$H \͚N_0NUEw#FoZ p}СRSh kct)$i 8(ȁ:eM-ZM!0 5q)_wŠA/}Qz$ AXj' YĤ!01yA~cvyIy}v,*3m|cop]FzN?\OWV~J zO"gJU/NFX9 !Lj96wn&*ƓH)玞#qۼ].yR뎉Xl\ۣKsR}q^8|lw<Ӿ1!xt}o~;8iӿz) N0ry1dr/|gΙRqΖ=QoM=m/?x~;3g_MGuM DqY'T~׏`73g Gt`C|?gws|7gf+J4Qd΀܉C:1ܫΚ܉ú #<q:+[RٲW!k~疎X緗:,@17?főGwJ[ g\g2$[e ( <d{c @+z4W6=AHwxѝ|dD ߷-+]\kʽO߿ꈰ.siρ:7*G`+]c[ [g>#H ]ZNq;V"^xUH(;kjF6Bj(:A˔ ɚɷ0dQ]XFB' ,EWMFQ:tYA}}.Yi&SxHV&dbhg=TTbR DX*J)^ԁێ)TIɹ߹Ɇy CKϹ6A2:@AaX_@H{ B6,") YV ^G{]cE=eX\yz82e٨uC4pl[5`X:@};9#jeW "UkM6-')ZrGI,ȿ$P/QCDRRcMIo @?vP9GvJ=`~Mf+ "x9D%DKULX3; <#S^Xu83)tTιǹv<0Uͯ_T8vxL<ΘW _;qwJŽ d~>kK=¯l]p)e{튩]w)iB蠿¶E0S:}ǒbW^:J M\qL:T4˷VD3Ls:[KdJRtMr mR'$ \v5܋iI%X&y8s4Muul(D&*//|u9*E2ÊXkm:Iε9 B~szjQbCQ 8WDh1/fG(Tۈ0dB",Ax{c*,/?@{'VN6'rr.\YhsG^M@Ժ/r)[S: Q\s?AҲN5cmz>zYWtl7˅2|JOu9eTV?;ޮj{ϹRnz%@T(%(UCST "@ABBBIB !v{f}L3[{O{gZzM2 5p׍^z8=P#} =Qd-熝橩J?SNG7ū-sGw]=QEQ죘o>g|3[KdfD˼\‡:ea>37VÇnJzY=qFLy[q?/#L^3RPE`s:vSUѦ=맗 €8^zikq˹3t5mAGM8_"jy_lS/;}l'jv;ڱ}wn}?{ _4J@ H}wzm$be֚^Av%5#lYP:.yvg=ʏf2@Bʍ8鴝9i0斐$ nrg9v;7@pSMjJ=:UB v /*ɥM8aNĸ/l zׯ߮*!I ox'_*:{v.-o_eڃS~xGbHYm~O7UfQj:>޽|I/k\,Ddq )0RDil! WSߘ~;}?\&|oNy¸9E?(mvW^KCBDn(73v^O n⫧4qs(}<0Q[~j&~__5K6l3]o@lpP>o%7E7m- ku#FUUhgëkX Ŕ7}R!cjbu krz_f!A~ @# }HUqC5:STjsj7%s>!\S۵שg8ذl߾Rs'/֣ι3{oM(Jͭܥ,%kQ p jXK1B&4$:7 ʷ"OO;&$!bθs\_RLԴJ᫧$bUe$\R8+\*|d&+*{{( D(%"%WQa.'EI X"]F[1ѩ2&$&Aτ6[-yal $3C3m7fz4$ PhBCagx^Y#J#NXJV&"Apx ӗd֦ig1L-9\O,gu_wNYASWrwRS@1SZ6b\PFB~g[zdJM_z=fNn;`&Wm|ɊFTiu-t$L BBoDм`B]uvc@XT.FQ@>tӼav(LYtSscҋ/驯gX44_PW=9aU;73_h^ΞlǼ$D$ágppk;#v2ַ, 9^#0h zԷY".gt:).OXPE:-QZ· C?v'/.At PУU&#:VE )Gn KbnT8 )$XEq"BKJ2njx8Uaҙu??~tܕ-hX{Uμg~P}:xc'yg>#0m0z֓6A,V&nؾ-)0 k.8Zu ]ya_?ަrAu$jI-2*! }R@Ō$+wB#fc= La.9r>>^!Din7,f6$ñyF RuH҈~G& SSM{]:8ROm)k._9Ǐgn=\zӞ8+5>znӬYbom[+V뛯 e]ݪ+]0WyufMN*QMY.oHX'z{bͤr=&:ռר/oV6G (Jԭv :~u;cE~top脝U:{r^>$J_?&:c.rΐa|&Ȏkpd=pTkh|CC\̏tZ'"E e}t:un\\JR |mmMMw" MQ%3آB8RX^/;?^%s=bAP!̮FWЩ$žs@f62YZ)b",[*+D H)CY*,T1V8 ϩ0d@)tdjS97{w'?plj?q 5jsn&AsJus(Rf + X{τ&d?cUڠz6|֐?Ԫ|=ܽa_,9 :;}@,U+|[Zo|u-q×TwR8{V]~}upo}`uÃGy1_ ~{Z5_ {/V/X8߱}{>dxeaТgxlݫߝЫnx_K/[ʕkb,: IDAT .~ݽʼ=f:kH3{{z|}KAL WF<2)jRLBVbl޳K >H? 4eTr%Nvcn:2“ Vb6POٚqb12ymPUUVi9#)݉==y莟a %Eq bזMf9JjZ[杜DCoCķ) r½pd}GLT2zr̯i؊5=y?O*csJR61d"]ɶ17 7Ov0Ѯh,MvhDǐ_xD)EHFu$gL,(QıOʮ5uGs?ZWکa=r$C,o{N(ҴZ$X!S>캶#EA\>-8~A9)KRE-O/PuN;ʫF7/ke4W6Pu*i;UES!)Q徒>yI(A$  m5. wR( lx+߱Մ3o8''f&>B.7ojX MOCWM~;x"z[ԿS#)pa7&ŷM@یPIߟ"~﮾^VCLZD&ƫ&"z%teh(bd L/U-ȸ!!(j(6RJq.4z S˄̂^Q|4ֺ(렁MӖ4J3\6wc!]T}:vmiPb`^AEp? 1{ 0,:HI+4Vhe%1NDB ~ԼqZhϧ$)DE`6-+?ꥃ (]h.Ž`g m88rHnP_rUeLg`_-۾Geb8>졧]Rř[ڻHV* Ag;>l[ by @^r!}J}KUkɐ1 #kzB#USbrfPHcAQ-{ ?ʒM+^n2ECk-C:C[ᡍ۳)&͕TIA0 X\"*Y_=gu A*, !8x\rT&MIo*YMFYycD<&9͔Ҕ&i2N 9:\*>U8-P46GpV@@BǨSn+Ub䡒dz?2al䐘O.$6A=)E pVjn+Il}Bۏ:f)}tjo9ceiGIΩnV[Vc7@V$+I2q\?䐞sȺCD߭=f2&5PRR;%Ntv&'H$QG0"԰-VHՇ@QuJc0\.#|>lhNk\]Q JIRh΁sX.5uYL]O-ꗨ`u=MZ :[j׿ɕ7)Petã`Uvs7y/_{N[E6oh5ۦrDMRҲE--llڡUgP׎v_yв^:|sFhSϭ&6{tъn&f~ M @$@QL })- !IdOC}/~C_; PCBZmGR\$l;ARE_V*ڏB^uL/&J#[J1 mӆFYƼP:hl۬it`26}k ?|'yk~r' ‘'WALS.ȦPӫz۔?Phu= s^.L{; U bs!'˺7.,$"HC>2SL+D<8V۩ А3QJ$5 TG)T*F5BM}m'`jGn):RG'ID1pƸ8Tz.ٮmr?(;we4§@һ~μJY? bA3z>Ι^qD+]p8AFQE2gvMl+S)DPdigtZ2'f$ԺOP.M̭S+ rXg)4X*ʅaU>AX,GRU7=ҋjgnQ(sArAGD@Jl܎6 mn#<BpBRBaIv^5BwL&PstQGW mAȆSO:HNqJ9%9L8ftRT]jcHnrh tF߼%WdLSj8 k擝~.v v(ڞpcr5xZvJ\ćRYXHnت@ \vB@*M^_ ! qjL _ѻ-1UFoZ'jvLزvTW kzBiW4Buu 6!S@c!ı $ϩ8e(X 푺=7]4`8u_RJ_Gŵ 4R2y蠑pĹ9z?qFGDwl_Фx"ё UqHƹ!l{2Z 1j+d&-"g& M% ؚJ rDy Sgmu>xUiɪ靍+=vVmCwY^lR,k L.%! gly_GX'ƣ'`FkP) )Ne޿O^?$$r:TZׯt39:[[gu6-P}}é"o |H37n~;vԅۥrve]0\*TEDO}lڸ)֕]|oJ̥ޗXcQ$C+ \.Aͣ8gB\RR)G 4fR[Kg+s@8~^aF"*׉S+C)%jmt2(6&a#;Mj G}_n2Q/K9b|ˇt uQ__WҘ"W6oÎ]q4Q]@i*r͛7i^!v;W, Z޻yEj1;{[h`q)?܀h+wokz\%y-B_ nhm.75ՌKKڿ!f*MWI9Ly|61M*3u#N ޢTR 'JbЇra. 5҈mtWn@$Џ$B!Z[[cs\55-RYS*PjxCʱY0+mERFQ*V9(& b9#,0Ii;r̂)JxOg PEZ_ RXT;Ҋ@%iFDZt؆}fCҟYK?"w(60c|T|"=z<ӎbB3md`jMy&eZJA=JCT[ר}"xuةi"vӲt;cLzd0jhz2O$t+ teořҸg$N-&=yedb̄Swr~B(=<>1ꆫ%#5)%2_W}ĝNMm^ф<5UYml_M2gn{yzz&XW\IH72 1 s*`]Y"Clmdc-+ ju޲D>ռ+[{<^H[/@4]D6\ Z=wYӴ~٪-_Y:+K/o.*aw)(") Pr xND.kYun]eu /dO=/qôV]> ޻r؉W~wu/}@sVg.:6v,sɬ&D~u]Dg{^[q)&4`v֓?Vr.9)-fnebxhoW_Z<ǿ>gw!<߲'_]""Bׯ[=iڂ {ɩ?g?PB ֙L0}oΝ~$qȯ-Pimr#/zѣ഻; =rG+rս.`[rO/oY!rl#IpTq N婓oʹY1+J ٵ.sP^?/|d^17;==!,y0nUC݆Ic\yф~L8=p[" #/zϺɳ`'(*]G\`OcnHi]^.д/Fi]vOK}ףGW>` GumQ :K. m~mgNft+Ԧ+*ѣbRj]6-{׿uӕ=sŋc/y|QHz<"-՟/s46q% JLCJW(hɓWW=׋ٖY/\{c9AIO]qU~ -_'Dze3ŸwVz'DtjKzj~n{LXg=,~O{&?D R& 6ip?-2\j>yUo^*tHhlO54!IbcGs2.#U-˫zۇmifw/,%ض)c?lT Vi:=Oּj {b76W}wẄ&]ݼ>mU3&v㦨R ,L, zZmzjc1]}nGg-o0P5D?\ͳ7Xɪcښ>kD\2fa}fHX5Vmcp&E? 3pRDx*jb/Fb2Ccn5#b\DQ$zplDj51R@(R\rR\* 2Ill;~7El[bt*E\`$BHp^g;{䐳ںoc\rL}islVj$9gUE,bqf" QEDxiLP(I1-t|H;"0J>83rWP}t69֐Q{ܻndP c:=]&KJd&)=g}nWɹm;*vTpZTbS߀,tQ9{ZZ" $eY)whZ*\ycWjN܏pK-XMfYN^\)]`jL'!@5ՖA H"iranIpUeV9ԕs\JG8tc[t5% sə HñIrR)cű1HΪzRy 6ɷFex0eei")c!V1,(R`(LscV1΃0@ HBH& m i&Vgٍ+6 ̥Nю,R;pY|FYPzCUd3g&]i7[/qW D,D#९S aܨ}y_60e+\.ű(K%U|:&V ؚZѩ1!"FqsD+T8b1sƙUd4UN쭖؜m -_)J" 0I O0D, q'2ghYIVɓV}fY ]nmgg2$}B sIA^$3ݸ*u9~_;#q |>Ң?.Y$ebh,+intI2jTUƄq,2H6ÞUaVw'*o 2LRZ ;A]P;n%alA>χ!bT IDATvmO*nj  R֖V郀T1|՜;jQgpJC@&)5sq+&$ Ds(mr`9ibLns_dQQ)7v^l~1NoV]bYv h\mk{cyt;J :dmј2̢NləfJ%a^ѭW!d-ڿ0KPs;zk=RX@\螖qm\  P/ YWdGGf< R2IHWBf,RT2XE0CΣ(.H{l/Z@+)8[f 4 Ԟ$6eJE|H|G-Eѭ1O0ipՇ#KIpBTҽRu]CSEP )(HJޯ9io#`'r8cse43}CD@YOʞC#F1v B;P9-NXi'z9tZNNlEI% lod',- 3%ieRJ,d'@Ɣ;#HEV4 .01 NLRfb9)4\xYB|FW!6Uv^Bh2҃lL$cƳ*C\.yMOLQ!S"w걆[\P[V3ɑaKpQn!~(VK٠8{Ҫ1eX7mWWW.ĚBZր:;[gjr+< ŗ驈hHYu&ӏ0 2ԳM e~m 1`Cg0͛-﭅FƥVHE$rW,T%̷' w|RwP؍=UVvRFQ,r$)d jޫ'~nUQ $A) $M1#4o܌l h~-jCqShG9%,9MBOΙ3R3v/g?-vG퀺L\FזNDEce6uT3!*Ri6F&ǽSӒU "czku7ȘU. ,IS׹b\Z 58Hcs0=WGA #C/ ɃZ[縮?DrQ&4Zvt Hhsmr?Z6H]H!8.6 ^1ur!I$T( `N2s55d`BA_rL#1[B(P>m̻H7!h& U]05HHJZ,WO~:"9jՙi촱<~5J0D+*e.-ך#='6У$y[RV{J:(E䵔9HXSnjb%n_BVS\1t>#IW v2!imPLOv64`m/mCv#k3ϛ\A9-M߮qS6[71(Q).Re7NT )݂ckY'R:؄^aWJQPǖRK"Pl#x ѻisU@R7*/` #-WـwHQ(UUU0AXQLmL}'e2cqx,C  ӫxFWɆɩH7@^-4Bƭ-\NqFŢ2 ιX6"BsTaO6{*d&mz)'0aNJVkө nx4HUB9) 3|»u:܀\wZg>M˨JC)cFRHjH)e9㜒/D#Ę'{Y#6~:gξ0c!JR {;is)=ifq,09j^t7lC\>Wlm8A4j4o$ȈN߈aR9RX2Wb|X]~I!`W?~} RJ( q"E̊litOWh޻ Q$cb2 Q#$3)Pj SC~n_ruC TnI;${Ct0\)Y#4u#$5a\ܱ{IU2mQ똨4{’FDu4+P* cޙ Q!1D (VՀs|Dl& ;e0ojǎHwԸ[m$#뭬]iV+ pWC wCWw1d\Mؐ2s h(ZGᲴXvKEܡ+ LjuILN$=Gvd@T]]yKɖ ?l );U='gJ"EgPA?ozRD"axı 'Q:F'oqm@rYaX[(UIHtD^YX*zypEQE2CC*Tf?Xfc6u**IT5dRBTx9Q92SޔNIpX^X] Em=HtPnF3T=m`Q_[(>u¨O.A  rP6̹4'jb\ ł2 ֱdd1h3*k`1 tLrXh8@K$mzȘ2yp*XuXж* ENW1,i'r[v ~RAk|At ҎORI @ӿ5쓨 y4J#.ghJ^MnTp*\LQD ~HFdgIJ~,eh-7dZs}]o4ЦbS~>BB <iA0XLy{C-D{4X9'M#)11@ZR8h-e$|~t0< cI-R4)@+\wMŒO)JYS?< rlwA=VL ݩL~Mm|,҅kHK[I1;56F& +6F)Ii m]31!+l1Of x@@ bQq\UUUR9*Ԓ~2 Ko&Ք^hG B0]Ov+gP%$Bnb\y q,Jr.1 $FV%A~Ո*2CPlR$9sol/(o̅;4\#)I,,Q1q`׺ '݋M2ױUCZo2lL1cImk ~&A{bW6O*" cS`@Kkv߬b$EcI)㼱2SdsN$or ypDZ%<gp\XK 2.Utwz_n1yWtM=KGNtn؅gtJ=78 sAA3L7dWFɹXCTx0p91I8itAΜ1{sv9@ f"bn؅g8'TFnbJ\"';&/˝=ڿ't<xQ9B7(a복3"]Ϻ̚?RrRIð:a~p[T0S0iNH]$I'C޷.Eei"WϞ~9d)1P&MCaaahL88JN+DqDZcuca(IƱvK^+ng7hҞNԅiI4tc?w)Jt`6#dV;Ro:DF;YS@ "@'(*ZJҭ:,QƘJ㯼0TPd 'C3xf7ۺn?$l~:i/n!<1'_D]bM~:}\~]TS-Nx>=Y?pd7R8BDݎ#sg̚ƄkF `й/~6g !\&7K #cB Z@ӼWqygϙ1k5`\~?ϧ[9}7 N[3o^5;|=cٴ`қSV(,@xLNg b9)Vdv!jjP{P)R668]I! 趆i9{㲡qWOx3?ӿ?j@-kh:qM>uIz+G \-z݈3 w?|#2AN&3uU]5ثǿ?矯>?H5O͜=g[88T<ރjɿ~4e[]}x7灔B͇ua>F01Yͅ: vD9=]rOu[Vxԕ> {\uu'u1d@ZZ:Ս)J;xf? 1=3XN!˜#秿q}z[>yB/QhZ0w w$D!|_vА7G>_1ơ1{|sdS~Ԥ͘_S T|zg3fGDBeD|V?қ}wJ^G$KroɚzfxY쪬O??U  :c[O2,RrS!NYS r//'Cuf3$Zl-O?SZ"1Coѽ0M]U~]ף&^O޶w먫,(X勌sE T2'"qk HHnrap.`3Dw;w[\sHij+e#Q\MN*Xrs*,`9 wtKK@*¶BĸJg[&e)=4{Tf2#Y.yQΛ<2Dis(s`- @Rڢ(i=3ZD$Z 6TG()UyR%)XO@0֡82s9'Iw()%79A!?CSi9nʞU$^<{PX0N83Zț bB?SOvjn?{˛d~cZ5*Q+$p!bi\,vYw޼1vQM"1F?Wǯe7_F6~H(|oO%55ȟ=4^x; 䮛۲!26w;ȁOL8򘮛#m?9g@ 0of=ss׊!j평U'5_YUAJƜV"I!Nsse^c[#E{Ԡ/Az9D"!gA*7ű*-1g6~ݍҊn¡)wC7.:%?{pwr]7޿e-.wٟ=v4!y[rǛ`&L1=47:1rL8VVOh'?BH>qe?$՝7޻i,\=KNij]sطu.j u|ΒˏO)a))p_w IDATZ,Q.r?%g|ս7߷q.*>'qyug9;xyiQf@CϼZ_*L~̇o|R&HqAegtė;w1ؿCIOlRtć\uo\t {}vwmYYזExsQtuvT1fڲ2Tvgztϩ}'=7Wrw1n՜^\-X=wO5@AE8'ocdz>~$I--55W ?Zj)H&1Lk6E5L^6;pK5k{[qx8R3iUDQGQDA1$Bʦi7;{>{nycۀ#E[-7wrm݁{OQbD1؉(cşdr}|<W7:``h8)^Ul&(NQ1`Q0S  ㉊f,9 ’9tWU]]=3;>wtwU}߰k/t9ls~?*2D]=%@* p;|܅W-Qؽ~|29ო^ua>6{yuM-:^qɡ=M_Q[^ł'?.\dᔧ/n[{+,Yf .Xp SYrw!#5KW>se!6mw[N_fʕS'-0r{/}i._ڻؤo}t_?}۰}{C 9w}͋\hيi_wTnPxsN(5" ` SIzyM~tG;],Ve]`c/:#n[u { 6p1cNK<5uᲕ ;eyom3LYQF^ 3+~my&#wUDf-ߗ}jEKV?[^?.^tOi2i} HJj%S>*XS>܎hSg5a'hšw__=y_,C\O|>2&5"-0[;@DwxG׌rOb6yDަ.]6gwے1Dž,__}LPN1sgVyOLZpe#:-|e9kZ Yy@i7^S_VXU\6C9-L՚׵?3l~/y]]uc樦2m [ݷߌ Cw{!-wgf3lf׵yZç=SEkw.G>46W2#]7cY禷9N'<;da>szacOv~,K9D 9qJ%-dDC$89*K#4Ǧ$gN|S]ט!K쟺fZd[-U8E~FnPBF!$)(R=Zp,o;DBI[w뾾9Q.}g<儫ǔ}=rjmsHD Lnk_#Vz}n5+޲!7׾{E#MĪre}{^~B^X±FoCde,m#?k;ŜW<}O}y~ Ϳ+mweu-1z5ez3u>ƾ>D?+E( qkRݶ+Oq՘ G !diCu;\==DE`M}zĐӆ]sՠ X ozi SvdӁYUՆ6s+yKv_Ԇm"V}+Quߏ@n~Q[u9>krf/d;];ݦ4Jf&߲SO~Fg>ѨRڢbIԜ24:<\")|gLeGuI{̈0M)$t mRsiI>25 ֱbl<-&+׆z>ÍLKQȗPR& zLsdxc(9$HD5E" L->0N(Wڙ Ya3dfAz+J1Dt]7rTT"%pU["p}a-+?S7Lض_D*Uթ#9~u/!<=R~}MងRL;$ c9Ê&9Ǒ$}C Ucr"Xm,boxJR4 Ajjac%ެ4p@$tdlo``$,[kLv7z6$=6p)֘سtYi>NiBFn ,!"Ď_fEo~N = α.WuF/9S$I8m@̯VTRE,Hk3kų>{Kj8# 3nf+$V\`L tr M+,g{vKXn5n՛vX7wtn{ea!cGm2!Dx[Y Dۊ+[ZB!@۷m9P?LsvDQͤBtc*%fڌ= 6r֌ ? i ly1& ~]#єLXo7 N|+]˧/d}`L y9?oߕ{i-YV-{mԲ|ѫNnmdٜ'zϹKV.w>>D:Gu/qM/-l?їu?? yya! )?8`# DǮ5Jr9gb'SI,o6VS6gyL zmof" Yp죓>F'G+A@1xSG3yefɊLXK~-㈣;dK%&Zf6K?g*|׭.`ԏeޫ9?Ɣ7#=K[xž WZ'}hzXi$:ځm3q tebŐ_Y O8m_7gYJtwۀᅻr;pWEGx pjrd-{Ɲa5[[?wWZ0kfkӺ,>n7o~S&8!@힟pGOϖdtnҫ oWߚ"_Ⱦ,e7Έ}kqLjIr]Z2+!iЙ6-8(TVh$1ƹÍ $|սgq ={&*4d۳DIdY?R"o18d|7?7h > B?=51&o}ǒcFQ,eʪM\Fv BR iЫՠ^0~ޞU/HZb ͂a{>֌>~}i}]zBwg]Uo^sL{VGƌz%݇&)v:ݹ|mftK*D!6>׆8co:!6 V2m*l)/U$0DYð~5>! { 7Y m[|uuNqGp8eY,H\ި7 ]x5+^qѣ~ f~C$"Y4j?>4~wLWQ@DU2r2M0cf˗"{kء}VSumQN t#a Ƞiq7BBQ~^?;ffw""k>0@D֠C[$Uo]W٩![!1QDoMUKuLPvR )/{£4(f_2O;gpݤ{{~qMU'mlyGbʢ=r"CViϒ+t G l.tm_תaء5k 6)$B|w־e[_8ۗlW=0<ɶCl#+KO~- LGDJSݫ*.(*O~Ok31p2xI2(9 ޔW`Q\5={'tnm<1sZSCHDUQ7iJmُׯﴮA߻fG5$v^gł 6={~-d*}bʔwrodNs{sv#t=g;?x}e=N0}}Ͽ=ck^}\ֳsyw@Pf2|-{¡3 Aŭ[zUQ,@.ABOoDZSS&uIQ޴Q' e;x~ս޵ KwŅ~Kp7!UDDEE ]9Guа4طվM^G@ ?Q+HZncاFkz-ORW\Hlo g-:g:uk\M!x']hfTί(CbSҦM):o7Ue6f7: [^F: GH~. @bi Tq1!֡vf"rUd2' |e IDAT!ZvBW #Ju]<ԾBpcLc!I&GELJ-d:d ,-:c²sȪ2V  $GRS1(3328c qO E3)HesEVFc"p(UFK.S_L)֛RDH:wWy*liuN7J8 ُA("hhBΙrTXضN,Cu1n5 8K)gOX,HALIz5EVT'ƃtjkc^'}*s>RdÐr]W7[n%[H!|9VϟIJʯrXG;GKAӉBH|l޾_=SKغٶN"!MyJk6'Du+ƶcT]g<|^AO+nSs}ύJ*}Hzw-s52 H,Ƙr4HAAuHӲ ׾f.xE:oTUQU% :["S\JFͥ{^fex^xRXH ?rudrNԳz|5g lgD*sqZq306ݏiGMlAyC.r ZW;x~UW_Hw8kn@TW_Px֡gtkrl?/x%T_1/DQwbjjjPv&8i}E(g2rшXe@y7sxb#W_PTRRE &"藄I0}9||VPIb(:wuuw\>Ca0 e i/儽[]E\k85}=^s{vxvl{wۓ+C${ { 2l~slkńߎmj}r{\p/|cit_St9dj a1Z#E ]p]q_U\IK%J‹=vÃ4R b׍ my(jfQa9 !Qt)PrNWQ]W2]\`@TUVBqs|f}PJN]44d~sJA0I(ZI- =iHS9e# рZ8sVvWI$ir%Ohd)#o z3uٯ=R{93DAz$\V-ښD됆0$e4m +UɤԥGBɩuj09*`Vl^QݻGݦoP<}cEdv1 TE @"F^i[u{ߘX7O/Hv dw<ͲWju2Q7'Fmp2xgM0k_Ns>Um뇋^$ :pevٸ VP0YnͲ1_o<d6x-M?_y\[Q_ʢͿ;5vfUn깪VkڮVy]7bQ;/n~ե m.v<ϓRfegb8ׁR'֕4Q' @$յH@i e[|u_yqkZSSY]mS SWG>=5m6wZ`a?9i&wd=_'nD _p* pVP0e4?[NT" b-zOHpZ}̠k.3yj{xGܴ:bߦ6#ժ*7=pױV٠[VO&ӯg򿫫cM)6TRtd6X5hΚV9 ˉز|`X<&i ld 2b1 >@K2XRG{7ŃmI%Jpp 4 %&"ԢSZIg~u^_z%l}/~z{/b:Εp5;m~U~{MYm,ݲ=ަ-]tk[o9RVho W[Z_uP ~5{tKoC;>>UUJ NkЁbSP1_L@@RqU Lɯ {vN.?uƢ?vg~ ',*6ipg&Ð /%[#D`ޖ&n-9K~m~4ec<9m콫[WM8薇/}W!|M~ y{ynХ?/n9; C{W! 6muGFnG[ q^{~ujQ+8'g˿R S <@M!lcJraY]2\1co'nl< &11+Ixn?@@ܑ!O>&M8և/9Szph_[ǤTMϸ_V6//jy9]9~%w+WӳA=q`'RK6^W+J U8`s$/ Pfסpҭc.~ss{ųw{g?|>M ˇImxezI+<7sK &QOaW_ЩþȂ=!Eڕ1jg =^ٞ5;b} }䂸ۆ5-κ˞WL2wx^=Z|k/r[_s u"grMk>i(e2Ξp{ܶ%T/\VAFãܛwkyz;65 Onu%+so.K5ekxt. _uE6}T~n2g?B,|h[*onN6`2E \l)F8* )qLP%5;-4䒑Kh—f(!/`% Nr$ W8r ӊi2b; t@AV|-)mpg饡/L+ma͟}xwU_<~{r;\4xɏ kD>iVf̧8#1M/vٝ7Ï^&N|r wx?*7[4p/&.Ngms,!_UiNĦ 1/Ms_;f>mpM..vL~8,x#- [riܲ "X5/;f|z˦ :nM-׽qc /ݿ}#w:JCߚpO^~KlY!gR2)Cd?{^I{#aiT^p5 шO{nŔ eY y쯇VW|?~vHe/O`ē/O_o?$!dFg>[pm_~To.|BW rWitgx9\kz^W<0YFm~qu6nbƙd@ieicnop޿+Y-GGL;:YC*-roqf6įn֢[S omgcܫokpޫy KVocLJ"dunJ#Ue.lD uDMdǪ7ؓ4WkYk 8\.9bU=MvL=$H tݘbVkqB!OLՙBH4ٺc+ XO~P).Aԯ9r2g`3DYR]u1RB;S^ƀ3DƔHu3&`q"~XU{1V5Oh{$ 'РXc`UX_#D!a$i((Zt$llEsQ bc+P|idc815ʊL"y*J3y*ܼ# *$G]vމ*5P:@i}9Tu MP|35eQ/+v({I{uX;BPE0ֆL@;X $aDh@uy3dsɆ<IFE2F>PIBe`X">i<Ѽ%C[ +XRBkws|) O"%ȗRVI!DPaTәUٻ֢lJ֔ٮTo!TP"*-e᪶ f " `* 6D A o DIvzƆB>1!bYޠ $.hAxE~¨C{xIHl%s=; ½Lgg-_$ o#O+VZoLC;[@G:۰:HͺFkj&{4˟O/^ʶ UzKN7 "V0 {5J00!1 d6O$XLm |_O neWuq Sav@"J!`#vF~FX2<N%憲ۀ }gO00สՂ%Ē/@1U;z G/ԑT[S05D!ˢfZRo%5M: ڑJ~V%םZ$|!ʌ1DE77, O":%C溎놟+F.Qs) zhNr*'u P3$:0S?w;1 lfF1] J@sDm>NJ]* XTϟNZX0!"w@B_*6vL3hbtnz~c QJd:+Emmna9T3@}DeeykO5D>֤ϫz1ڕ Ǐؚp`RčFʶP I׃0s) *1B&I9g*7$9::dIv7K+v8~Bm $ "]Ԩ!Q<8Sr& TB~NLzArD,*I z:[LɄ6"{~nS$ _'uv"/Ȥк8J; .@XHnԤ`8cJfR[R1͑ Z~fbEA ]nF_i-jsE,qx<`[Zg=6(c)duŁ1tݘcO$P7|kn#p/|!Oaс7/hbBfhmBUfĝ{꜑r9[źꨭ+Q3U u]Sź13yT{$/:wJŠ 'VMTWMEQ@eXX=:96RC_ FMIlncnq9M__ZOO5BWv0b.eN4jAJ901dWBI^R\hB@kn>JqI{ 9<߆`FONRH1q BzIOPU KADPKj`6jG"Q FM4="jG>i gy.MqPC~ .>%=LD6aئEPȖԇi0uc:/0d49B96άE.IrG}5.!kj?xjY8jFiP?*[ŁMuVDk* vH:`Q& ш)&f`'iឈZ9DkȞ+S j ; )811ekn " 'UʃMĒ`#P3{A`Z1Jc$Gt]Wv}@m*5I [\<5܍ *`> l:% UE0IDfEFIv *R9jo) aZbRI zm:YJ6cl$I"a!( pD 5y”)v6hR4JgZ{krK8M 6&5x!Z:gߚ8mSЪou8g}(sϴoMִSO|koM|VƑ;}֤GvVC+9 4R\]a&yV㚧>3_kMϥBr{CI19|4rڅC:'&6Gn9샩k?U~^qC£ eq5 !L0K3@C:''<鱿jngyך;֧_zki-WlDD 6iڴ8{a΁I!yo?{ۡUXLI3+pPD&X.xʻ`Ϡ]pb#fY~t̡*;|y'46:{%ceŊf¿A4ib@T.x@^Ji*#]QwwpĂ &)AgD#(D$Dm_FWL¹fRJ<ⱻ껏k<-1#(3z=G<׺z&=<aï犃GVP6*RK\"~w )ۂ7|^yԙ˾ l`֙RjC¥@.ފ,~=cs.;pjL2}R^ѻ{< _UncPybu_sv߱~]۟Wc4—6ߤyc;#M\(~%cwo~W]q*U!Ek0,@{9Ï<ީhB7sQ?y㟮?a7y-B4%n .g'":\ʰ}ƞcS9G xΩ( nОr$d+h@7֛xݿkyWJԒ$?@86 Oyk^sOS4oҝxȾr9ןFS1kxmb4b IDATecJ! T|-,;s6iRJu`Z垱JI G H)D8/Be _ԡ9gHa7eCƂft5laKxoJ(QJh㭙SgPa:!g&zǘ ŅZR6zA̴$ϻeS?Ũ`p[:Kv|K %LZk%,^Q? ۋ>"]M! !˞BjZTiL`GTfD$-:H()Dt賤yÑ[ˏŦS?Wrzʸh>T]śzJc$?'̃(rPڔQwAI7X@:KS!u3JZO-K3A96Yj؇W9|9Pjs`2A߯Q.Q 6Ϯ_?Xf\2w]~ вCVYڒ61#$H{)5Sxw\qH44QҲN{ o=b_ޚĐ<$PUx"FJ .Md 3x֠4  TF*_:?_iF6;fQsۏߛ;λ3>mp = 5$6|>d}_=s]_Zѹeӫ^yq̶;qsoM:@{]xK&5{/k6;ͫu/O4d5H@LFؽuK_{ͩ޺}J- )Ɣ;VQ(`[.J[ﱨ(%v&YhM Y5a_fy?ؿ>|WitT)i wmV<2'>{%g_^%"V7-Fe&[@*cw?|.F58&|sŅ)o}S^]0dM&F*sno͚5α|>|G5;']Yq#~ǝ~35ޙn'5y;{=2v2-OAZ11>#XE^numyCvfdҒ1:KkJ3{Z2TtE%OȝZ勿?x17~6rF5 ([mz8}.۴{_m ز;xKI[~~k/n3o~~iwg]TN||tpt!I$ = b !nkw(QHSgRDvbcF嗑IIɋ>A à 16rQ>@kCFH&۶"̵rQ4hjAD fǍ"y3gN((LPt?K1&Q2[^L8p3"sgِ:B;0IЧyeT*fxO,_E2]4RRFFR,-KL%rEu]2}.Yx)Ddꗇi) J9  26@J;i1ϫRxW*ƆjCZM SiN @޲տ R.x ԿeȲ^їDs;yȀ@}2dF5 !dÎxbϯ0"~k7z?G:Z9)P_D4x? >4:2}7)dH!$87zҹsEi*$,+t7b")_kT2HGP4a2'EM2Lݖ)fT*FXo`׌kY8`Q}ĒO^bo4:֕`M9zׄE"A2SYW&5 {b-q nӟn{wnpo8/wqfsUoІкi=cÙ{]6c>c>٬s~:km%{61.D>2(oI)-Hɺ *B,ϡ<EuW|w5ڗg_ke$R:T-ͲL[gQl6*}x7(-Rrg6r:ߝE (rҌk҆ZiNV}OyFpQ@ Ԝd"Yfzޟ8'5To]CMn?/?gٶC1lӝܼI竼B9(4Gӊ|Ʋ,V֑`җ5l[w-܄.(YǙ~kz[مm#Ιv}p>{1ǽ4gVVYwkMk>iu=/IWa֠muԎ n8`M6;T?_{unͿ}j_>zW\&osʝwj$a;WwVG.܉e?̝.FS '*jiTAtHn_'TJRAb塶l+IX+5 IgdYl")< v p*xbct]LToyAR ĮnpǥHĴjC վjR )V;5? ,׽)!c"q3E)pN bBR0(wm C{"eU^U'pn1d{{QƜ! X MFQ̷# ^sÙ6 .Ĭ0BHD5Y3T/ S*-m>Mi-U֖jC[: p$3cn#EbMOVd6?T4<4w^K_9Jv_@-7t,8^ J+ntCfΆAIBDk)Һ$ I2")ժL"y&PmljJnb>'7?'ps:,50mFQW`'>m~}JT/{}G)bTF\Y4.}Z1vgY ڪ +_ӮN-͚6v L4M$I4uơxDi) ~m1x+3 Ӧ&IRIs (XB2L#@kI帚&mHcdm_ (eZAXMD$ZAܮ~;^ؿgn;&j#m6zڳLi'"J4;ɠ*$}7ZȼJr/sk:>섹Y{n:KxO=|o4oڭ@?s7|o}t6 5a"X+QQ Tø$7xhDQ2FN5.V we ,OpW?_35RZS:m_zلgnf1{o:Y&.lP=ҼM)D"CWQZ[A^ۀ6o>5;i\YKK=xy[D2h^~y3;]̱- ;9+8+4QJcw,d+Zŏu&Puȧk;>;F׹7e..d@ ܂ՑG4@ wkM_|2?_4en$οOk'?;a*}}\ݭc0k'SyUo/WLLvXv|> 2W$4ϾC\w')ksǴEscVt$1 (LU^^BΚjϲP@M`PC( ',Ld"mbXfgT zɖZ{1j6v!66,P=KPŤb]`T3cچjCil,D)MvC)rOA>B$*&0z*n;4'EtK7`~ѹLua**nŪ" E0/>,L10TuѦjrHuզ(}XD/Kc Gkz m#j!-M M 4p8Ύ3Hz;Dȧ@Rn%~o~?;Bk Rؠ .j()dӡ)`e: 6a);M0#Q) rk1&D.P&V@lh446txb=)xGA!ȈEAɟn''==[{l^@!ZͻnY7e~>pe]FiC Q\*g`ZS1MPf=[#"8 RJL0(Ӵ2u`T =cޜ/`aJD6sGS4- eMc (|*C%pFd ҅}*-=-]'0NuĮ0|js#Zl;uNM̰QΏg̫n2e#AKݩ_}ՒۊǏ{a.FS_=zʮ]~_viWeSy6_e.ۛ(o4!B)ac :Xp_dNvk3G)H//) ZD-K-K!_jZK)QkcJ-Rڡ鵋nː/AB­HAJqQ̾:꠰NĆvyK)L==5ۙqy"rJ&N@<^.G'tp2 4D& c_a7oT-Ue86ދe :ܼLΧ=6i9|S*FوXR y>J#5@Z @ Ѐ]=ڦ'*xxE$KW+_ENO<"֡NN "L)e]Cۢ%)PJe !$ReAIiE83Žaיe5\֩ QTh05Fv ʲLQVՊ:KSžs7 s(L$%((t{Z>S5rgP ht&C0.W:nk<૏?v^;p0TXHD=~{T&j`SO6۞Ԃv >*B\2 8C:j~M߾|/4u]mKl8]p Xj]"!C6Wh2I5&*ڡe@w/ l_b+hH]uv_uΣgѷ_\e=Ծ|@$y1AYghM,2"TPI7 yIzƇ,&Q9}yنOD/S87dⴶ3[RE p~-}_p>jռ/shCqmsJڃm7>v×LxK]h=6(0y혟O:^hA:и6yFWB:f7Dxo`ĀfFj/o΄un=sB$_t1WdZy@mmV)"H(:@/]a:}g'afƜ_]ghQPZI@ )DsS# tuB/y>B8yen'C _1{qT7,^Q+>T;D2I"E>zr!nJ!3һ(= M8]yb?Je)IdKKs>}[ZJ")M.70R ,2J `r[2Eo9[}1m}Z6={J_aB\:deCԧq!wx$bޝow~Ґ^q ;gu?LF,gNG~pwH[-Ͼ&HMP1 LRk2tes)'nͫ?JTM{ +".|٤=ucJ)2Id8_HϜ2iW*qܩGdFiI#w܏6.C>=U7_~uO:l+u֫NMz'uVִf|#"h~};D(*IrLhO.*|$1X{uAZ=g=W\yV[iό[bB`!a 5sc}^?G7뫖Q $˯j֘#!}fX}U dQP M~Z]w1masl۶j^}Odb<vҶ+%VL /MHHsn HBA(ځ@@k.eYf[J$*y*Ed3IDpEي'i& IDATTd"R6_͝IT*yN69 ogEe/;p%X BHD&3RSR"gJZgdygl`ݝZEcMގS(0?G*D<slS(XP(-}CvU,*n9+"2D_y܁ٍEo&\gMR3xB LQ"EV84Oֆ [H^Ɯ%EY @X.(ʤqzM,:/T)彙!|]0l&H$F0r,JLe< {zWp8jRYF@ܵڠ!({::;:.TT*2"TRZC?aZfx*vj*x\"`Gk<0YchiZ2'9>O7V=Q'2lӾy+ll7bIztvNx@4oyc0 `C?>k^n n5f*::uO yW;Ai(myq0֤3e*9D ϾQJ)͔5Xep7k}N#Fn) ?* nj3ga"l3y=3yGrFx^q={i^ cԺ>K+Wwzm/=}3ȧ:Th:޾癎 N8nV\qNJ+i6Tž='TW@Tذ>{1c;E@<[#ҤGK4c6"0}*Ͳ,J,˲=p?V[mѧ=abwZokWYu_yƞCׄԒ<͐P6{g6>rO=h>hCM+O:zCذn\}L'/>VяW_}@>'ȑ) >Ie^ { 3Go,lh5z䁏y~q>f?݌ܫZT®F.<,:૰{f>pׇ?MGdYqݹ}|G߼?=c&7kپ#g/ޛ~8=otdž'Æ'o̽S.KS|A?iZ07;~ڰWYw}p16C,foO^\tˁۜq{nk.G^xZ=:3PF'o DQ?^G#Vi6`QP eݞk#7?P$sDV,鐶< )2RX'1 䟑سBb(#ohhhnnT a7 BÂ-BI9?ɠ'mn5^[~;DRB^kz5e]@ĖƦj" eeX-.c\e3.BtER*NzDPlդA(E"eX- gHX Sk(7!jfbIZ!ʲjrQZ毀f J%C5c,Ɩb 'Y&P}V~DsQgZ`i5}ڋ-kmw@~v^)™O]zԘ7҂>s {_8xl YVS.&-1YENGLڵ93E<+lsEd^0~yokT~NxW({>Y5rSIk_x:xf?q݌r0aͱ21i=n>Ծv?LoS-"Rjڤ aso~7~9~'~R"=i{޻}w#k_M37mw[ԾŇ{nrx!$3^M~vg x=3!YyWiZm.:Ltǟ:`iuf]g}Ço_s3Y~ }nһj!4/?_PϩP @͋C\p{e>~dGobAt*+ܵ甈pL_gC=<Sw4[][^7~2_  /'‚ =)Ak5OJـ!baIHjff%2a9U49&?B2%45^m.bQ7I6iV*¯I @4)I!!D?%_F#R%83έ@Rw ABJRI -XMYQٺqz DL%8}x`.z,?H X3J$B0E]jhqRwhC^#{r ,oN۫lhT1hx zc[nF@YST*.QJSK 3Q[f,wqG#F˜OM.3_\*΢{r׺HD4KU|!6ؿ MD1 PɭݤҒ죁Ruc\@V xLI@I]*>zFu *:Ė0V08)8h؝ .a,-y9 u$vKuRȖVL%,*_7l㢁ֈRH haha5WKk J03/-buMVe5ڼXC>G,s K[ؤd@y@ dymU 4+pڶ BV-C'oKvׁb$d vĆfc 7c,:E"i43yʙ_)+RffDHQ)S$,"2ՉH1򧻝X1jiCMZih\L/YLt`H PCF*^qu~ߝَ@؄0~<x~PͭaFy(s9ɣ7Zl֤~|SQquk?mY@X<9?p.mʈ@Jk Vz/am:,f9u^F#+(&+i#ȡ$w@AF"DXdzAe6Mr!\EE%Oߥ˲BQ( F# <g62s8]inl1ݲNDdVQ1o3>s.*֚" */9*$9P,",Ԍ. qOS;[ W@+L-2}ӦEw4&kbHRIN{v¿dFDr!&'>oV̀a>9T8&-F{sO( +3B^"ݲM^og{L ຮ:Á7l$t[XY7QK~\im&ҍ3"E:Z->=y!фE@Jdbg͎ <: cl%A$Tr"1 Q(j:+Ͻ)WP (c됑%O5d@>-weT `Xg8Gc5tޡP>!fà+3 Mh% A.ؖ䎽fiT3^K}[#,}J|3E?s%Dg_t߷ٺKPFF6B)zؤ׷NZJ$9QE R )t~g@-A_t `VkhlVZ M$0TKsJ֫eӅJ S6Znh+)!Іhhg8|r&)ogO9ŵ @ ~ɨ=5h!K˜ ?&0vq @4 ZQiťB@v;U,z,=r 1y m둯*o*솅2[*͈H%3oAR|.9e9*c&a T8kKl1(E)?sժմ$Yz?Pkķ0}NcdbX/hB b|sm7><,(t+q!V酬&PojNYxn`tR4fd K ld_XpfPd P.n&m (yJ9٩ \+Gg7h!XK;`&֌LQ8GE@ Nzr,5d= fvEnd8N_Gp„/wn`Ea]pq CQLf`  yO7M61A5(!^=0.qdof}2 Ik'R*{hɑ:yu#D`Bu-_YqBȽռEЅc+ؼ#jM_`ҹE-P,.l`wG7Qh4XH}q#\໌W0 -]%*iKk8Sā儃hu2 i|i2qi)I!)%H#~134|>CIcC߮k\!vZߛq%Nhҫ0|)rCAWAجg=0"PAYe@d9|(Xֲӡ4 !0Si9-sֆAwͰW+]n>@=!WGBG#vQb1Jɜu!$Yk˵56?&^ !$P0cLe$mo|To#kl@/&R_w ĤTԈ?hQE_`"p$/v&G1M֐U|GL$%аD,E HDcDfUchFF! SE0i0z)4HVDlTb Uye_n瞇===#:r9z]!?IkBA#"Z]%ƍS-)h3Ҥ@9dmaL93`N32%$K‘GXۺ}[f;/؃R`FM'*%#iIQ66JbfY@)CF N4y,V.@dJ)s , xjl'IfIbMwFqBc!@Hk#Q"k?$z'1=\bNd@= PDB $0!G.|\ViS,zlƹ{ ޛO)7eȼcuEuD"@^VdV} ϻSZQǿ IDATրH|!Cx}'ˌ ,)~­4KTJIPT" H1p:? vonkC,A/`z/k䬬`$mgp^BNdFX&ODt>a$ yqz_]vc$p_]mygL4!k.m+_[`e@T*Yiyw]X$0HɴQ0־xz яU>^y9z5Q4sFNTfأ 8c|G#$c\8،IME<K"!WkNۉ\/hqk׬6OEWw^!Ƶ :'D9A!K z0?*(*zzj@ZҚRZ lp4gݔrm (M.IȘ 63~[2v g|R[`qsH=A䨜~ZIR&V"ՙPX{Sl=ژ sjK].~Mm{nK%njG m sw(BD7l+8F$n/eB@!eRI_23uh @(UU@9{d- 9 ʦ<$Ovr( 830|ql='8ߤᡨ,45UG[[ LdRIQe|M+3S!ʔiNxyB,SY":6_;tn_T+BJ35lDGJ3Z z nXŸ1yzfW;_&3gT ˁ{}`~Cn >eFGMD:Sr][(ZTê3lfccD9Q J,ZaS T=+jYi>jX/z y|=o8{e iOF`"݊BϬqi=y۹ae`D#ϴ`T--@EW?Y+2fz+ )d%)z n~) ^ݼy;؏W]__e]@V1V*6bSV2g? sR:ut:O M|ۥ(ӑ༪)gaC`,rUnznڤS[PEv;\%R !۞ys'OgoyPr(I"B(v8;VB ?{\۔xh(i2E:(b}hp)&֯#l Ƹ֛/k Z3u6LH+8-D"HZ5xҽfZi-0gj\=1UH^%v6'„o}`0[^~m۳\~\1ym07Wa;q69(b1 Knhj&q9#`xdbV@4s&  G5:{jRjSYwKDua*/A>x?bH@n8oj$JkScKSTLbd)ćNwiKRDJ!I)tɀgj^⬶wIzTﶶI͛TJ#bRIn..PDxz"jmm <ŢFة-6KkiL<ȥBYEG\r3f,GgskW݆trK9R.3> ysswm];{^a|8F!DJ22]QYa[EZifrn>9$hHB&RJo7>{;mk{̅rЯ;wϞr}pCBJdn-:lS _//I +mr_o#_M5+V9 ($ef0q|MZ!TՑ;~.luUs޻~g׎]qj|WFmu/^M4 |橷=Cw~y;vsoVxV{W};/>GCXQclM$qեS'1JT"Ƨn] _GQ7q\R !"nqLVC:?o 4ϷH/\p ?p-3$S^qq++ (j+}ڗJT| ɤ+%B0=־!JNeJN(աk}kwD4zv`b>ˑ(o^AB(l=&ÒL^<4gv5y6㞧HU1iFٓ"حddUzr2zV@̑  a ˬl$s((O4=$9x)35pɃ[V0Kͫr-2#M2eڎ^ R<λ@`&_RJtԕ< I$ĶB"dj(G?!n#א:[D%qP`"Pi2DsVUW3 ܎~*009G+( g\*HcA"iE`R"JR)=h˄J7U^;6ǎ??P *N9&:9.)(/"-܉/*aM<3CǤm5BC'[sLbT1Z80NlGXe|'e8b4Oםc,hC@xM`nN-SFD\2u.7]тZ!uh{wiY;K߻W/h!2 7|c3>w~Ժ{ -e&@\4s7[szg__!{Tnʢ&䛞~hk+ ZlI22&pS;Owk2pŤO'ءч:bX"Fs [ gs"Y@}a8`8>ukǟ2d3>>eAo}7?ϳB#o~۾vmY7OoG{gb6X Xb?[@&o=zg^XYh=m.=7D$7yvf7}.-T/Z03Pq[B5۩E{;+?\=aG}ל}Ad>qm/},AOS~sá^+G^x/}"CM 8,Orl)p:)Sd7vPó=I}KoWN+1ݓP2&#_Wivбc5>{SKOIyWw^ ׵Eؓ7ԧ.|OҘc> o?w> #~|Q}_8trjqŢ5Af8k'sM[sD0k~a DM; I.q3rUa82B2¬q-|)C֨qtgU-CreȐ|v>!>ǎy>o1lw”'ň5ͭ[Ԉ{}Ϯa+ KFk`~"x'2HHѐ{S5]`o*&7~kV̚OhR}0'Jx6nt>7|NvUUkoID>o|g~G m:?m/Gsil..zqՋm$w}Sч媘~bg޾TX:ƥg"~v{o\GB nV}-Nm@WL| ?:@X Zae'#1MT+=2vb tQͪrS#j1F"MP 4V;3OfxxB9uˡ6;j*!2ac:#D7~՝K6q@ky@XSS0i+ eVEGwaT )o >h/l&<_Z CIFUe@}!Ddg)*gX]C^$j&& +t0~dHe֐]R 9+¶Z2W5a"c繼yڊ6Aq4e7Ŋ_"rCi1t-Ш1AX-5MUkZh#_2G*"#w͋.ba$;iu[W@:sd6pR)vLeI#yKjtd|X*s F11O,`ڦ!}pߖ˰u6?da>-3&/*YeF2nAi՝rq w;u-p!zAe*D\EpTx"yg~H*pX(*#WцA?ƿ7mOV;x䶅3VQìZ{:XW>v݈ל} *hCC@cCoԡv-{IhV;x^f Æ߷eh-sh"ycu=VDgypآ 8b.%![. kNLxSzq2X~:DTUK]Ԧ2YpdRO~6>}勂cyʋ64z3DuYL҉A Q"^ "V3h䶅羚 7wyhEzS)I@j_֓zXO:~?}DpCn@6G:Eˊ{ hl/oo6&ޣ\߭тX_9`[2{]F'tW,[w֏Hl[/{=wNyz㒶܀ahk,R)sOߔkLIX2RD!):M!$0( d  YB'ί]]9grY1\'"$E˘' cinS1r1kZ4Tw/coĕǹPrJΐv 5 >X{V qVW3~F8Ā-#rY.gL&žVf[v&5N}FW;+7~%$`D 繱WCp*goA"p!̧AX*JE!uɚg@~ki-}r_>tUn2ܓRFķ;7ѐ0\'!fqd:@Tj~>]֦}j(7iЧ1%],(f0G-kv}o\4M-0|U|@Y m =]olj9|/m{ r|an#BuPZgi$%X٤ /c%Y>yZ`5\I+̵V197K:cPxs<+ !1\п`w~OS Wf[IYmݰ]rq`V62g{EZY}{exލ,r#ER""8]ElħRQJAY/j|'QJґ0WB(^"zdʰ6%8RqՈ.Jvd%VM&1ʗY} #$4߸ 1-l жfj۔uVVs JUb)\b*GA)`QY}yC]jHmJ6-3P &DxXS+ 1"Dă D>gecB1BW撓#!+׊\Q(J<{P,A;io D XO[rŤa2:PTZ9o6e:PBʡ$5e tҤ3HI*~DfQtA\m}+yƵmsTxB*JF!)o("H,1rӗ 5R(3/r6jmzHM)]Lw?ʙ17ɉ=O_s㋹3{eU7&FV.~a/ " sM%TK<2>z+& X},ԥO$AmRڴzUCs}Gꣶee[p$޳.çͲs;s^5})w潷ړ[4y cƟsœG]ys.ꎴ)l}nd]MN9ؓ_wļ˖0`5}8cmyV,3P7Mc:m`4O>{ΌYs|u|(h]uC!0/?Iwd6rU|uMM.WUө7_}3?l6y$IeMt;"&/`& dF"Yfk׬jj @qy587B )r$ə9\Ƨiꆖ0a@.z=G0uEm֬nl %$D>=!+n,dI{]6~f!t: 3>EM:*g<3bm_ 17)̍ ey$8)`Zg6VJY R&r樒QVakӚUzmE aظ mqO3@ahwiuc6%0Uz']ҰC8]ʦͺOo~)sP5Gd)hJg Twxʨ"Zn7U|_b!3f *0Q& \rISuQ6-]2q k02 1^.6r$Hx˾Ѐ &Q&2}C!JQDB0\&S]]f]0};1t֤[H DsL6#V2D?H?`*jkS7oY.Vj_D/&']s^d%JlƐI *)eת0MfpcezΌ$P: ʝ8RmSO{[s%(@ _Ahn1X-6a,,TҦ|k쮵{%y<$ko8Lt!"3}`"j P6>(;h)ck7<Qc@N `Ѯc3e/x9(wm{yCهx9тGgWJyCytvטoz{ӎk#}+7SQf2<ʬp]]_$"לrR YhЋ0RJ]޽_}R!:CfL)8cq}brƠG>=cBP&II(TA{fj縲USn0 ?Zhiji; \?ӏy˿9?{Q\MIk)) F3LJB6n*P3OR (ߏB{S( hkNjσk1qp1r[=Oz-e(N&B ;v4fm^FvY׶Df] oC눅fX@417Z-??imhvEO0mH`2:^6t GO1F;Jy*V6n ecBoqh_H"QfutawEa?o ܱ{y;W0㜍䔐OYǻ,MKk0c-&R;QX7JWuy0"8 $κO&v(44X!4/I֏iL+ǭ $xt91 3>j# D1 0׮M*oYNh1Z^TB( 0E)b Gr\; {]v&$7J2"HS<8S&]$P{BGc) \n/8;S"LDʎae@=2>c@Ft|t63!{7 J?lݑ4mef=s%zDEUǖ:_Q{ .Kh@+&%ܸQvG2nyp@AʩU ߏٴh+7]Od=koҾH:׌}].Uuqv} @r9*Ou5B*Iȵ6!MR-kG 9p `&u$~ Ak&$U9HFRa&ɫs& Bf36}ίѻW<" jzqǎ=s)W|˞:7Ʃich/Y9+e$lg P2fg0I{1ǎsS=ӯph&3~ϑ;4}5Ys'yvW]sXw~ikXn$-[k5M_-h&s$a6RS?i<߆9m$j?s}?z[oNt7vf[oٟD$V/_xu0څkDr"`,}H;\'/JܱwƑQ  ٩fUrz۝f"9`lkU~8%b@ꍭa{l@{Cگ7SSVio\ U2Xq׉Ќ"&k!ફں苆6mǚ_o}z-Uu:~@cj~v]cVqSݻggps)e;7Y2!jqu~7PC撅S#7WlCX(1e9k~v]=2[ *;P,o_y*|n9@l 1!W,Cȃ3HJd=ΩXVqʷ0kVr?ZM+dFvꞥ0XկW^˾iz1}v*U9QZquھQ}jQJj!B@⧎!\.gWʙA4$6(e dBBXqdsznRGN0Dq0&$;!9!5Z%"߱ÉU(։t%j t$%l/Ka,y>wi~+-uxk&0r2<-wt7hr睂lJD(RXM>2qZlBͷF?( (0>bM>U%9c]Җm;'SV/²/R^Ǐm -[)aOEN&ҍpgL|t"H!IčD9RLݠ=PJ #k923'.^{RJ*DT0v v-咁G!*M}1ܪc~զeĚB qQ_#3r޴qbq+bUGkP @뗷ivY4c,j9e.o,bCn /~ e47u^2D`D <o@ i\Jk.^eԊ;_y^IDȹ<% ݃_uw{Qa;t`Ekk/6[I} f9IsxmA1L}uu5% EWdzdQCGbB0܏ozm> >yq}h셫ۍ>]iW-883g9m?]01S_^QBϞ}voW(Zj2@3d>e[/y/./e! %WuW~QgR%J}k.:7*!hodW) DX dq޲uac/:7 DDR21܈a!:>"iR h;xPˋǝuɄw$hB%sAl{l՞u̺w?|MGԾ h f:l|N2]W; Qo7͉ԝsN9_~ٿ7½/>__X~Yi!ܰ]q}|)ceV{dϾPO~,4tx' 6,]PPLc0%6(ݥ.?y>G3$~K~}^YC1YqJLDR!d2Aۀ!c[D5,տ|;>\vN]-(@t$BD*3\n jCI}iY}xC.B#M_޻.#n?4K_\0಻jw}}hCr6ִn#[[N7кڏg3֬Uu@i>/ u92q%o__oS?f2/_j Bo#̑6x5F1$\T 0y8m` jiۣ.;m=fz7?q`a|^Of3޼0Z} Rs{<:|"Z} bk4cS3P(&mjRfR"[*\HZׇ7ßTؠPbLlF*11OU;7"`ꅱr9ҪSOb6G5 H`MeU]' ^)Wh[1 9Pf8N)!#V %e2e F Q2ͽ{EMnjHkG`XnjP|2t 3!1cNTH3S$)qDD@$(c/$`|{ w%D3FP 0*vtmLg[-(S[mڪcsǁeĤO'pE۱q&y"FQ 1R>J I7H0cQj!TpWt)ȸ5ks܌9 Lz>05k !k 5 Vۂդ]u+jzU1ueI#Zsc=6ҍXukyRU~u wU2t0=OaGr=K^s .,Zh/Jn+ SG2FRF>p޵ys4} |2Z;Oq_w%m~EB@H  O-Hr~bfbmy{\&e$nBP5ȟT1scE1?y=o.dz_?V$J[fsssM"f /1OxnKOT@(}om/LB0k~7EE} IDAT~r΍a4~Νg~SiaK4ez};Paɴ/n(,YR>+x~D1@"wb;}铫_њh8 m߹\޲a<ǃB"lxtM>MSo?^‡lZ O}S2@i"rrptŎ}*j3^yl7/_ѓMLssλ^U Vx_<47wЭnieB"~-UQKy>{͋#Ivzxm.zbq Î;pMjëgyE,&=O?wwOj  mU}9/J = E3Qmθ#/heW%l2Ky<:?׷fvV$%Q)(%MROuk&A_+|B篽ұ} \ݽvVU3q#jFLϼA~ PȬTj`#)kjiܻ7?R HeC`rmhplk|ʶ E4 xDu^imd1+ Dha/ǜ?O@^w#jv_&)dP2(L4NLu]\ 4; Cf3RPs962L]Eݎ]j Ϸn };5R o_) bՇm'vmOƀھkÄrs|Dͼw´A? ,AHrdbX֌Υ@PlsAXVurZlp.P:tSВ3Α5r; wapGԧ[Iu !1vl5 =I`>f;G]ٲ a1) ] ULAE4! $NЅ%"b)$|&>cչ\;03ޮl4 IM)Sh2t/$A#02@GP:'9 $TH $rф)DռbAq?  %%I! #ADB*ώ?U)*nluZdmDu,* DÍ)ԖŴS/t2-HfVꦼmE4E,2}1&Hj< RXw2־=r-+;vOO6 bgM'J=WrK&c 8ѫnc* A0dL uA8#kdV\ !%݃3cwNq0$9rS [F5snzERa!$iAI`c\'HH<*BHo;3_]2+9W,0)ᖕJ{ʴi׵v#< B>ɰ?LޏB 0z(|6-AB#.edJ'UARUu9eJ=DdqΣ(B2Fh9saA`20f9A47Gh-v $`JԵUj!>Oܞ XoE/T}hKM,nhMLfsW@&JzALAc@e|RIyX"Gf s1:a׮8V(0l"xh"Y,ն' ռ# mz˜{R0 -,^1*Ջr*fajb|MKa 6I4.M.ysIȶmH)+G\wy=r!c3X,Ŕ[qRtGΥ\)݊(A(H_BMMv ;|Eϖ2]Mǖ$P}T2nH (1LS͹] 1~jd,CŒxN7I`S0WEQhQF7eCU:"0,x3= E\L9rc2Ivq*p,c~x< R)8K/#.'uX!o~O-mST^RN=mf7rI.Z6sGQ$6OVW]9$+VAr"RDaQ{RH %HA'qdBE2*NN;cba-e/c}c2g 1|P^ײJ3e8!Y6nY *r2Y)2]B؃,\o\A# 1$t͏Êн ImL i#0jz^-=5-Vuq3$ @[4G,YneWWoc,޽DF9%1qdB,lFNF_5E ]a9qBd0r@]>+@?A]@tCYUøsdΖA9B8!`$"3̢T+ -bHxŹ0|j*]F"R襞@)sQhM)NLdu@7A $ !9*Κڈ5'IK3߯ԩ5 8#&FF, 8LAFHS 'q,WL{l& yy*8,c}%D.l~O?gXrl-L 53J>n^&Q4a )L>3, ('}'t@=+g fۂ$AL̤RϦZ\~W1iV^ b+Y-Ҁy朇ah cWA=^6Tddtߐc*V;Sݚ E:hP)[ůL5tTkUQغy$%Q 44B"!- Rhɪ,< C8äGRJgvE,PGDTaM 1# ]vfŒRbLt5^I7 "d2 ԒRTa"ӉC%BBQ,jTv /8lɷWIR[35>RcH.?e!Jenֵ։ M6( J1 3W7H^܍¢ȀSJ+kp֭3!iN *R!k*;aLqEB%@CJԬ Už[cyzCa$1slඅ,YOThnncj8㌫YdRx\MԐs:;Q4tW{ ^R|Nڐ|qR1ēur*l,>PNQ^$!R^@ !8=Zy"(`Im0)hv|!%pdC)")$ !( Cz"f}([*(f_8Òdb`B!vK;S6#(*!8KLVs\SzpأRͥI6=Mͻ}>Iđc "!e2͹RySJۼt|cgAlnJ)V WZ ?;T墘N2d2jT mTb0ԔS_oI (L,5]\HBqXq%2:[Wu/l*u9ڧh.dfH=- p&c.a~' "@)%\Y łkLJ b%lѶxլ'~4HΙq*\&,z2U JHD{H*KImi^ujWsl1UQBA!?F)xYOWs8nYR5l`cC\;1Iڜ9R!cȘ"2BŊ/ ={EZPgQFQFٌjo2*<*FCw 4 \Xi3e*+udF|]R‡: lUuaL35,!@5Ib`Q("EQ5q#U_h8&m@e\=c?iICjD"% h=lL7KBp9O>CG=%QK)Qͺ`u^c&v8gK0CgSBLf@YYe)k8"r!Mկb v2tֺxՇ2 ɮfq>-@̦HBJe]NEK;Sq3R:~J$^0:sɜA<٩ҝ1!jv):JHӛ!"5d= hkmsƙ^(B>}dQBGMC53@;f`6gゟdh'!DRAlbC$imf`ڵ[_0HRXB Cƴ4q%ɘ@Oqm]Y)z ^SCm=xˌbJB[zթ lFfS|W S$rcNl.˸NԔRZlEB  @EB!I2[ eTm  }i7s"Vyȴ3fmgiN.wqmav^R,bgZqZ.9^ P^1"EoT烺DI@1qqHZmuI建jQ$(T_ܑT!xY+@`3m(%,2ιa9 i_*z <-~02;hɮ SW#K\(dՐ( 2qAԘbރq Z"k]*9J  PǴ[;s-u;9Q眒Q]+|p dET܄PH"bwG L&rHF?FeHʔ.AvȜbL=q |sfESy[2e3eՂIl.!S]g|k.gnB9E]`xpKY:y+%*D@di2 B+M?I`Șuʎ1 k&.ngvG*dK~SRLFcj' ÔPop1n<Q0D8Ai"Qfh:"J} V E72J*0 9lRAg>=r1so|T*ǹqX9QI!m;)L! BHyS^WT+21β{m ccXRa6Hs( ^OB Q@JEE@QPA)ҥ"Hz(!@:Hnwg?fworA/7;S!NC+ye T!#M[뎠ю; g! d^b0!>0։UgI* ]f8=jwߨ*_OOE@&Xa,Ƕ")j9!GIb0JZVYH$JC 6+{d3򱝵Sց\ TQEȼ}@TtTj!9c63Mw򊓘˾ʆTvvLua1bRىkʆ:rrJ /Sd&db9HѯA ;g1EA HD}JhkXhtlhtʲT IDAT__41h^:Ri@%L*m.1}2:OI PEM(KI1D9syД0BGu`;K8ԶLNΈ߅groM&g 1>FS54|0flic%(?"5?Oj-y"d&vlA#];JaòjhESUD@ń lKDB찭>]jJi$j4$75k+6v®bL($QZa Hfj1<Xr6fFL" E ?VTH#"=,QpPwWƄHZ̞6DFX5Eړչ80%06uNzIK"Usn1oJD+4]Fi! Ül6LR'cd R""ƈ78sJSPAgĘfDH8Q5҄R7rM*' gH Rv);`ܩSI lYl~R-gUצ{ JNx虽߾`UQvtQo^>7*#I!AlRzt~72^Ds u&8jk9qCEXSyMTfV377'q߷EDP'rߙ;Wl6$Ib%2N ˚S[aRB0SAZn(^u~FZ@ $ \Uf5ȢjJCDQJ$>RS8QNA(%|m~/&{@1XO+˫I..Ml6nR%C'5JCf٦e RDJ⯜̮UDʌ6bJ-@?Q d ,d!3۴me~CЀOaNGwIL먦(bpZ7{9|K7O UDL1 Huq?&6~p7͘{ӎW"FFXWͱD]zFyJL"p3^|$4~H )PkG42"̀n]ARJ\KSmN{Jc77t0 MqO5RArO'YwEnU ۗ+HsN˄TX5G@ϷoMhve'[0V%ޖ)|G#,ledRKק~z`_Pm&D̃ABfd4B$,5zJᥔS< q+!ATHuy_qNݟKmƓWoFED;^ -J0`#]zF]]DB8-Fj1 rm!FPπ}!"#oGF޸~l]jMuvfZ%^"A*䚿t㥀q ӄe5y~?4z huU,49F$+;& by/C apexَdfeL=EĢ(rIXB*T:VW^%%ugWC5Zi48qse{.1 |RB³^'ž̵ +]EIEUX >F<c!*ucK7$9 9mfwd>Rg10[b_u%w:EͲ V?E)腻!hڕC{E\dw9{pn;*'|YCTub.Y8rs]9D&Z^0nĪO*}k \/)+x2\e)WF9"8*F@ߟ*2)9jc c6__U[m[=MoPlP7sj )Ly%IE@%eEqgPT I"(T*xk$v][J+:n*M7؍Ip88q'FcWN}P}OMQUA %g{콤C,6Zy9e1L$1&\y&` lk.}ih3ۀ%w:\KgF>_ iiDWD4U{]vڟ(MQMVR?~ڙ4t@#i\ܣGq=~ur;9m>mًߎzreG:E"eg{[G~]v(~ Ξ(&-^;n>oۅQw/wD!c ϯ^"N._y.dUy*޴twkD@ow<ݤOŽڔ`hF&ٛ]<#KAΒ77\G/ ?u':}vذ苇~ҋS5ƀ?0ڟ_gC@|@߅GFDݹwֻeۻãEDߋ80ouC}mW߸u7r>l^ ޺7hщLmecγń_OD޽{zŧ5Uyi9ZNU'ն}tE3sÃ}+1{Ĥ+Ÿ_th\|V/L`g~UgǏ?|r|)p6ھ6!S1?usLs w6/u{/ʩډ1ـ@n'BR˩fۢ>N/l Ouޛ!~3DNn\qzi͉m7o۩K1"Z1uR;pȹE;w/69f;E= {rg ;5>E*';{1w.+@3IY}¢y%*4&1SGcl>$4|\F|FLh̃'LnjmJ áꏰ=7=|L(* ]˅ɿyڽyQN5S#2eĐ+vh8t@c#Q.QCQ %m`"(^oO/l-*Hޯ=gCî{ma92ntC=Эs?LZ̽\ "ANWQFZt/;m~Hl"yn,0+SXbz~i8ˢ|?-eW7fHPަ/{u` MG7{ҨuTԸтC}cee:<XS17!MѰ?c|͆5l3>s\o, k'2anc,rhBzejK^W~\ A2!6p_71v+smsW5@|9E:-~V@ab !f6֨ѿth=lmAog`@&׺ՐA7wUತ Nmu@l{s֕3w}>S7?tFFyvt@I]:kށrGam:{4:v-_orl (G/.n=Lz{d&!ȚL"_kĶGݖ׵{vEwQeFk=.ud>,iSnpS-yݙq`Ưn扚\&\Z;U‚1 `^{]򃺘R %lioX ߻UڎX[٭=4>2R(BL6;dtԻI,|pU5|jSß=-I*؁b5_- M2훷L%4 @RVpLj0Bⶁ0D#tVmZw0J.`\˃ 5OPnt@|*#֝27fn3.utМ$g!u>>z>F&PyNK/ IDAT\z.HmrP*۱ڍ 0[46/D`YM$QRQylO%//ϡXLܷvw= ޵Jo<9d/ [ +ǭ.?O ٹLa!|( \;F^ wcދ.u'Z޷̃g 7v:ԈjN-uAZ@%Ot-*m>P]^φ Tv]nkԞV۵ˢ,$I6P89G-˿5/ūSmh4u0VScl%8OPσ*?4'Ky粳S΃R R%3wpӏܹq\۾ "ۉ%DN16NdajKdV?93,sd"VÔɩͭj YS]&rLJ9#kc"{*hywYߛĦe&;c-U^ϊ//˖THr1c"}*:'5hCyxkEo $+vë#W)C|^Jꓨ7۽AY2-ti,-"84`qԸS{5O$H}ty7ff'I˧^5_ѝ˷\|<\-ǪW)C ONط{=^abu8J/T3Лyxq 㓺xw!$]ܼlfߋ柮mbeJ"W/ 9v>Y|c,\@ , UֲQcvL58nmgvrՐN>sQvzRty H Y _3&3/lghuL׆?Z^y_?(ޖynɋsŝ1J=8/'f?=ZוB5TE ludF@@Z4a,vjJ4^ϛ lpw6 [PZ9 %G{S,h9}~Z2<@L}G@1""Cd"b0$y^MrNT,yv5,OD.seV0y wnڣOR\=6{A!YQH1P*1_> \Lѵ[I72SK}lrJ}mp}soa!e*H!8$NYVh@$fN&Ro^  JRB%82sDTW|ֈ\%ܠ1yv6hTS7z;Nyd2qG(SB8a $C"- y&|.O9"I 'N/rZ9k:lK6d8I:TvqQ'PvLt6 H~xQ"$B.1Є!g [ť*XUċnjU(v ?C C w%,ك=_}RJ6;3'.IT8w$~ϴ$b%a"^E)~ .`6Ȳ% z`ƈl˩iAoJKӹѕE:oo5+;ϥ5j@ A|Xut5ldJ^(>Δ0Vj9r7 gM4nbVr@#!Qtmc|!!ati\tՙhP\ V8e%]yկg }Z,QBEtCl>@_Ru笠کiq @*dgCPIi(bO??Mw}C.6tC aļ_k\r ؑphW 㻇}ocHگ })_9{u(i9?=we(#-6cQGݹf\bT k꼉'հ>GgT+gL샽Z{PdĂ"눕d3!63.>g bMw㌐羛ô!)B@c$!qaJJ= {ѡWO}y,\\K" ߿х"v$%S153_9|H[ҽ $GqvZ ,aZup e[G_̥Bؙ+: \띏{q Β  Y/QJiYSTPDa$`2ݹZ]?ɝy9Slj$1͸V Z>8iOl ADHXE B~IQuDZ烙&esa]&~v*pVeSs13Rq`BAM Pj@#w|%Ҳ|Դ%lo=Y`fIw J2W k`{nD8mɐ7q2@ X 6PP ']S-FZ6w!sOe٪@$ F! IHhAl=a!2Y̸.Q֙jd J}ZO6j~V':{D@$ܷ"lmܹ?| %i?Y0/J P[-~~D.B Hkӭ^|;I$ {:q Jn4pJh*'NƮ4AlOO2[RBn܊£a)hK册~f5 es<#86lp w&㟕 gA~P}Au`<傅bj:ӷ.`""7^xTp9uEA$i`eο`u řEgn8xD̳?& RhKMHdQN4R{BSB+UF~yr)-8)Wɍi]ON+Ǘ-ρO1-w>+u^7굪L͟.O/"][x½]OrOFWE݇0MR X|y(s B{N*+USUbϝ~WXaDvHcs*դۤ;^ Ѧ%`e)xuKPUBtD['oػ?\'@$¥V-ATFg~yŊM_Pki-_\ spy*z0y$p8iaմmG>'/~l+:|ku >kHI0=}MPhAMUXL3c-ø[Zbi[hj.BZ id4aHIv1|,W jmsߣLC<84y58JrcNom8lʁ:˄ʓP';=)lKKHr[ r"ʎ&Rm#{t\T#M+ɼɡMZO';lݷ\]=bQ%!5ĨbJ5a -=`6!&7&1aA"*O,KuPZvxu|K9^:|4PIw#8b1r_N4",J{M *M)e9?x`[P]F"j#ҨK 7Z\#sN_>G(B84A FAEgyKf<]:E+[&80A)PK<hrRQ:`V{i Oan[ =])һ]_W:^+ҪO*: )0S2e,s~ߏbcRY@H 9ovdKwdӒWQKAœ_mVC]9oH=\$$IRbZcF"D3 ^Rg<^P]|=ˋU-"0!!fh4HAR" l4@y]荭@[9`tY (n`+FhEv<:ndl<3"|JĢĢ4o\vl?+* W)X&$[ߍbfU R긽uYłssڋ`M-B xL$)BN>oH+rFZ*Q3ѧ.=^Z zY?h_EEwSAPn&DNѭg%nw@*ޕʡ 0*q$J b@AՇ4wi#&+X ]Յ.t~ҐD-Qu|2Ge/y`/=k=fcn kT3p=!T{<$ H)yØѥ*YVAR-O+Q#;d~>Ⲕ4ABW48l{^j$/c@ !#(f_a}(DQ6qeIxx@>PQT!(҂ %R9l cIBwoKrmMX9n5'i_:(n^ %Y28%6 oPV&jT"uQqUTnLϫt[TZK[YHlz+hs!'"z [W oFT!>[ѓB @,R}[QJ!Fu ,E\J$Q DkdTd@5Pѿe]b@/:цӪnبFTVMCjRiٶN >os3,U(uAe(b݀$I$X Hu|G pEP6qAH@(a-뉊srZÈ6 Im# dj|#(W^f$N)t03zX8@3#"IVPťd"hFTu4Ĉ RyU[EaP}8YTTF.&KEmn%9ݺGBG=Tp>(f|ujDrvХovEˎEkcWUAQ5v}AZ8)P Zxd'Rj{zL0Sj jA aΥ̉F.!B)te Bnq׎M=!-xH) yxFcEEk%Hʙ[w %uMھ^8+DDC)(t'I@m_ȹ_"c)}2j;ccd9%mBRUEjSGUV*PRiړ$x3M& #$?O(cR\CR($ A w]R5l9V[ECQXOUqde]=BF8" D9k(ESJMki 1" @L'Y$B5Gv=j@NZ3R !xmgT@>Օ?=K֌>PēF JJo:]@o-=y)8{jE,xg1cnI$q3Dٍũ8I"=AZO<Ԏk <Bl-?1!z˫X8 1[ qH"$IEr#oQ_<4}!,>cLRް>CC@HH9q(aԹEJ:aݧJr0>vKK2W C7m>՚J~9p?ϫcVj;3Cu[T{Y5iySE$I>F|=F*`Cog/V$86y]<99 *ޫ( _mFʫ^QNjPְY6y8#iv3!:6@Č'%͞a/WN_M{^抸Vשi5/49"5g0~D}gj6wn\|VѺ_+qn\je *R2}x4AaEQA>e`4u1W~fAASzI_˖[!ANj,Y1lݤ}>gl,wSa>w:Sh//K~uy:dq @%qq͖-~巟3a3Y!eeMsO(}"03``Ŵ{kg؊Ե%mݎ:U λ'}/yN58{^inoD(n+Izfր)e`w8E.ԥZI ai9?gMGeEDGM%K6䓰ƍ Jb]2^GeeP(*2Z4QA"O?RKٟƛnx1!`G;-!#11&(.6,?sz.8-!LEF!Z4 ݷKITRJ ev0BfIt~o!r.l;Dj6n׻gsDU(~H2[)i _'#"ť}[y~$ߎJ(77W w?.G &<2a :/eϩ 6%DQ7d2R!(y&9s̅ +e9=ΨjDȮ#Zc牬LX&hǔFIOa̾L/Reӆ+]꨹/'}e1g29 QFQ{?Hv(D*(%p:aoeEN}إΫ* Jpܡql6f"\1U XtZí5v"ت +)ypҢfcD1Bޥ9$#<#Q"'sOCz?hDqD[+__?spWLq;'=>v9/o?.p [zC8".^dr<bRaԟ^ +ur!ey˾x`Ώ9`$ #`oJgVLLquTu{8G^0$uGIm2(u~~ف{c>'Ȭ5j{wsL [37(UU^Y:AJڑo691^c}yzĺ=@Қczgs# 2t6vw/VٛѺ\ap8{`/|0I^穃hh]|ڮ=znhxߟO~M~? ad;Uacl&LUr >jyxtT9F%Dc)s?!27'HZiqF!8hb##ܜ9g~l[_=J*MH$ vc{5"{ڙL 21̫zϢ1,ojwr)#PՔD* lc _-"oVA3G-LE4wTXADj$ځ M.{SfbPE@A)Eɷ_@+ ci@@HJ~q@(Iz@=6-߸d5 6ZDuVPd9siӾ?,:xk)@̏=>'({2Ba7 6boFe',"Т+ÈG<GQY0A zY0TT-Sg%?V x4Mz=M b#1Eq2$RZzNo~l)#"SRHohٕlwwnhV矨GSu*bٚZ6Ӌ !gSx4[Ee]^Қ$5@(G[}[]C&9/ˤXYAt GyG:d@<6:?n|ǽy a5eQ `,q$H1\jn§r?}zT|AL{QʭϏ5o12m f<30fD3)BqdX# $%,TT#n*7y#WЃjXΨ>ĂUs<61NdqǟS7oxGbN 33v%c,MS!l#f'$8 HP%RRf%j84VXT! pIR$lNBl4:Si8yl}81)׉P 30'nq,תzR5z0AZ|2)˘wLz͛t*/,f$3iB标1 me9ok׃WOza tJV-8рH$Bn>)2MpӢq,{_e:'n~D=xդ/E,+&$u%iIJ%v|vxxҌ.IB!-hz3o鯁8nj-i^eQ4z=˹ -˂>xFu25ʖx[~m,?;jP`E$հpi,@#Mk2 j4c^xݞHEr$KYdιF)D!QTs fX>%)NԷo48p8n5~JtN Z 1"ĭC]kIRO#<y+]Xse5jk4?&Qk!G8]Rl/L|,CqG`'(F+q ELD̼ "y9ghf71j0Dd\T33lÜ-U^u""+T+R4!GD$09_HʺeC q%d#T4ʶ`+K-OM}dɄcC5Fdx9$m9'T4eḮ AT| "=0a"qysPMH@z0c6Ҋz48µo9Wp@d\[A=vlxR`JԺ,O!`jCuVL N%y-׽s5 ӯ^IY[_rϭ*p.<&H&dB! CLz6Ґ=zH9oT1άuwo9oK%ՉeR[37@ʳZ(1U'+z#3# 9ٗZږ12)|s= ҆d!.u~M&0XjLr#vo }Ju}0v o ty~FJ /3%֚7i4\1nFQsI(vA;(sgS!VMJ͈ZRR1G`Q @ QHYKGP"%Bj3#Y+nddM_JBVCkr M~G{ k&!$Q*%GUJ(TTR$$MmLq2c b(IMQI=Fg˨)b7 6*v_K<{8пvȐsf?TE$M뉛שHfcr3.R igaC K݂t sSI4ŪEjKĹQMQJ$Tj}2E&(c8]7=:ur)D()6 /LƄlNN"7DU62 m8-RijX)5D~k-,[/R.m,Jb(f3ƅ$LʤPcMiP)N+iAx"猋4B0 ]"tVŀv.0$ƍMERL<G iCHKԊrH0x@>=.MtUe?k5BG҄P݁KHH4 ?+0yH %*{+ ъ+ge-ѝs9BJ)LiȢх]LiOQa$ d gb74Ȑ )R FOxVd;2UG+k9JIRfڼ0'*j7[W ˹yu[B=REZ-Jϸ-\`P|*~G9\Q0 KT#%8U_qNXTx!MRcJR!;:rSYH!ƕ}Cy{ cheg(BrTCT,*8{_9eKڇ;Kk8kfefޓ RTG4L6haWFD3uBH!,@vHάbM| r.=r =z*6>)13^d,x$o_k*Lj~3/C(Q3S"ѨN,^ ]%JDQRJ ' THǚ^x&VzE\!$R*2)f&کsߏ98&@n Wn%AXE ЈPRah`B.ey]@k ,ӂHJP^5ة3z~OѤFe R⼾_$ 6|x؏ ^2^ >bQekƶAfФ@FW#G/yDdΜBBĈqhQ('IqBU5yR 4MSIMWLޤ$@Vvt4WJq #6BfMqA AnYNlw _navI;ݶ@i膼co צ `TK$@X+=~]♒PW-#EQJ@z]%r1뚰OHN(dmΌQRRf9i*Ra̝trD"MSP-c3GD&"7#wXSf.fy=K˰u#rۚۧίGy =Se@<N_F1EqqKTu"r`T/FL3-~RII#ήПGBB !H1Gat@,|0MÞOUюk$b$su 6#YPyɮ_}r~Vc%bv=o\0Hq!rS\j[a@xI5=EiQRXnjmIpn;&[ؓ6 ^_ TB( IB"ToEMe`.G'h44/K="q 4̜!{Ba fVj ߋXE)pq$jCϩlW U̬TF0Z IDATNjqrhyD pOvܗżEnCvaGRm-{[GՐ݈q%01epRM~8#3LX"Re1,3#NDI )-SwlS&AB*?H=50ۥ)6@밬=.IDR1ƀy\jEBD]m)+ TpHw IJSV* YIoۨ1EH整VI iH3IRHA$%9$iI6e6>TP8Iӎj q @qě+j*ZQ'6RoYU:P6jb 8c>@fT.k Lh#BJTBBGZWEZ5tFL沐GXNxwp[Clw31o[ ZKz(S%4HP.BA 91C!Tⲧe9< h?0Q#P*OM sQuNkȜ6c$@#<42˵U4cIdl/8祸^(1}5JƵ 0Swp'6\0=} X~8aB Yub2+?l E1l7ۇf4 g(bE$]UU ӤCŻ$* mM^'fzC䌋$dZfOWIHMGW qa>Z舠$(P[@`[W*-e}!ho%iL'"C !E*t V+H=q^:ސX7g n8I,B,3zA qw;wjD^t.*Q 4t* <GIHP1,%x@ bW*-h@Q#D& jzgGU8:4 P%CBΘYKjPZx[m흛5(ſb .4y)PH#=l#) F'a6-U%05FUZYArKK3!)|qf3 7+LJAQEq9׸Pj:זd pl]o{6P՛)ݧDF5F@#aC RQV5<Ֆ _\vKf!d lCUJBQ8bai)1BFƀ刢ҖWۛ\:.|3'z"(*%Xz=MzxY)ܼ|E85׮5N,6x9O7:*8cq+! vnPYcF%m͔4zf!.jci>TbcH?{Sgx,u6ز'>Ҍi3>zhܐ޿GӦvgRXvf|#T XINuy *# Bo~7񙗦x7 *wvcDAҦg??hǩ,Wv:)\0C t,|ڊcyw ogE\vޝOg5()7>oOg٣!=H"WLхS۹w>7Sy},Z#jQiԷNs4aM_6)>@SZ)G+GgyS?:<L{ЪHy[?/yw=;w{{ *Y4|>jYeGψ- i(b*e1 1mh_1&VT3q\)˩7C}iggk t)Fm;fx“A![X5k] S7PũiK!$% b +Iͥt&Q9N SťRĹ)XB$Cx'gq!  obROJ[R&I$uH[-Js _tqHk`d(a6Sdړ;Eᰍ-z*C9# }zTn-[ =_65v22MJ;U>XeCqNJ^/}6 oJMY̒$s1;f*7@;&w9%DKqLjJ $IT[(7ƴj0q9GЦz︌dNzsKnt/; {n؄X]@> 6 l^BpAk0i T5d%2h#z/FTv@N)W@\>Z<:{cŔ 9kN8갣ξMZUGU(_A qO{x^0ng~ܖO =rţgqiǭKBJ>*ŭMGx=8m̘'߷xoB6yT-s4gKef߯&%I!ԇ)QVu*"RpU $EH!RSMlם{ CjjSr9XteJB"Z6YyfA hc!=  $$Mt%,e*D=IH-MRI䙭ԕ[.cܽ'c,I5g&C'n6nǬYl4^Tl)$Vkz-MTDI$D !2tt =s։-K6N=HN7sMAK9fn[*FJvc"gu^5RI^Wɝ޻pk~4o[n1#q)eR'IJZieGsTG7 Mu,Ƙ)KC%-ϖ@65m{@^y8ߐV]hT$ !Rځ ~HҰ ъ Dණ>d}_ ?pM2.w7*Sskz߸k&>֗$(ϩ;-sxMyFC<{2..zƇ^0wcn=d^ˀ.? ?|?>p!?A7%{s]M}kg;(Q_zߚ]ywZ e!{S}\um '<ޔ?_i M3 ݰBVXKƐ務Ida3(ە*H{&:~NV=p=>8h#=q쏧M~ nggNCAT(YG}c_iؾ [4{^9IWq1!`-}з%6;xIWO|}o>pϰX|͗Nɷwr PQ8LueOs̛صJvspko~o1VySO֣i-MNn<|#Of?f4qcd3iH/ƃgPEcB\?^7T'~;_~f{ko^fQ]k/?va9|7^bοg3>|#>GOi-7m?|? ;˗xfb.ۯUxϔQ|S,3)QV]ّOн &\sK<ʢp sTB=^O[Qϋ\K^1!/^i )HʎWdֈ"7kB5q):cm:Nשab8wFDĮ?)koROIH'G8.Rx%Xks2M*qvN1%I!igGg:ᬥ)67N3(hb)6c&_9ޭB~92g@jL$K"͕r37ڹNh4ĉ38A#VD\M3HY锭kmR@-rB,>VLz/^PHTյBԪU:VjBi!Flkݰ--n3,y0 =YRaQC2yH۴.EX\Fu: ^'JZ^K |m߼5dXsڥc\iVB0E<^X8W\Gmu >gd_ BJлi_`i'sښ^WkU!*%!}Wf)wR .yq&6|@,ϕ7`t575,ϕ7۰;#=٩ר/޾DŽ2m'n}5[^znzct!GD=2LM32*q|Q%Ʀ5~x+:;o_N[uù[ϼi񟛝u9[!nfM}čٲ !}ͶGԧmb-V> @",GzjQ0DP9ZWn6@چmv'xϽϝMDT_M{mo効 X~$~se3C 'm-E?nÇS|f=L/R6nC0HC9igl:UoCh߅{@³2oE#Ȍ{Zu:INheF9@Ag#uA9Iu:?2N,ź^[qۄθ`UΟ֬h-)ߨ/ޜSkܛ>fCxn=58kz>+q΃u8N1nf/>WI{muWhSknrK~İș+9{;sùDC=i*㏡()ȢJk._.f.w}Op˦Q+-q|QhFۆXm )%Eq0tQTId> DOVxn²6PT0 ;F'RqV|{gdXs^&ǓPh,v㉳*N,=P6't܈~dDp2}'MS8"+b cQR.y<|OU@PlR"cQ2FQD<9 T1@ Q+1T8F0m@"f|`J4,87IIC ƏlJZ'vmXIVI]qZ˥2ƶىhd{8H˴:؛f+.|;B.B Dh]dR;@JImwH)tȱ@"y\R6]ag9!cxuX[ ;`6:2v"okS# !$ĐE}*k.U"0I=A*2Dd!1fE_:&\E޲5aVq|[5 Vцl~m{j+!VjOQ1U5K[T$Zw^z}ՖCm'm5vS P~EG,_K/<% Ofݽan}#Zr\SwZozF.yNLTsЮ^3_;7kEh][_ϛ_0끛vdH+We0-1}iH \z~44n$9`6Wnٳz;V߼quS>W_O=dAF9*c]kN:ۊEگ V-M/|O:(wZkUV^u~ۡm^3U^()*Ӆӧ;pö['ƨև9_KPZ .IFGNZԏb>fQsЄ_Qҩ~@ zV^]"˓*b~o2ۻ/~:U`1"Z69ƛwQ{~Z[m~ G/Cm-鷕M٣uxww;h5-G/yU RcwN.w3kzMly_οg}_sGC*.]ϻY*0 be8G։Tfd4ӿ;nF+s(opzr:qQC^jwV.`~cVyJ$Q(ਁ*H}0Ga43QӣA@Dmvrl)WpĈ'A=.Ɩ|z[Lg &S^1o,R Bѩ^e]*褔d]{F( q~6fɢ-2Ռ̭i)TZܾIIjT+J\ǕKB'X8p BYHc蝗bð˺'W#)kLԠbg`!bȐY r:5\"LSnjAT4,` 3? pDYD\rԞt4#$!ci!utn ZWתU!dZq IDATeW| \6yi:k1X&3:fEim ΘH9-s使??d5JNǶ l#S[* D$zz V.30 A(VΊmB`dtÈGBS(4 m XIV.jHd8wopYŖzVn3D/'^vRϝ}ϓOvѝ}~&_Wνok<F:2Y]lqX錅#\cʲsڕ%m܏;tMT|/>^Zv5k+$f-ܒX+-I ƑYc] ٢d z^Bm¼P0)YОP|!=_vzxGN?wo}MYX3Aܢd咅_yףF2q}7/+hT@yG'/HmyuT#tzO܂a#l!=/èx䑴 !Sn%K;İ?|5>U_ u{v6q=iX2d4W@}̥HNgk[ܷ ]ceon@r՜.-0wOf,L8ITJLa}w ]XɌ55=g8䍓NSxcI"ͼuϭo.DBι97=7V\*Jxd@lIzI)Dg S(ґb/$DRuԵr)qhw b5/dD׃㆙Q誈H _k6XbBDq딫TdԳ,+@`lse 0/4$@{Dysten- }x{ ˃B8[? 1&48/J=g!\4V% ѳn7!$2`H&D*ߕ>:7`G3f8N4MeGTr1zTe#s̎W@oh{>vKh #[21&DOpZ-{1B6H)$gGUX(Q^#D)!v"KT: 캌͚Qn'XXbw'!#f'|oh!(t( ML턮.ϯl32Rz^*RITDa6,(328+%0Ď ?~ha/߮IsӇc,beZ/gc8]Z?j-` g "@4IUl@-eo+;U ]lz@2@ [zלITe߬ mK)j\Dĸ9;7|;I^IүۗǏ} yڠ}J)OC^y^O2V\3*gèm2|MlsS.0go1߿s;kⷋ__/ڶ8wq~2 nEIIGs|!RH)k }-b)#ب2Wf59LE[+߾r/T=Xzgk 2|9=:.~gQN$`K1gI;k*@e۠}Jn*:j.i[V#^Chf6h_Rވo榔 ]QnD͛?f;&[%|Nb禌7y^m>>LxA'G֠ȉb; M xEMA{Q3 |W/:rrV޵ ڿ@*^\<@uGax邱/4okTiWF^~N)j;xmW}r뭆-ڼOͪ!gd PQ/(Ӯ9Q\vS~O|zG<:eT{+me?Q4d^AԊm[ve;N236{olǩ㏸iat sDJd 4jzn$j5(:艿k.Yj]S4EQ\2" y^h=# K$S0 ӬNC@Fg%@0jt%!xF,)fm P@QVgƔoPMEk|YD5GOQ U Jz(jЩ8޵Z\.W+=:/eW2'f39IB鍐.j9q)%xX*D=I: #x)niDWk5Eh㡭05F;19Zr K QXixaiifLAR(Rq Զ(5hxAJA@̰p¶I7=uNž[h?dODLKHkB=xl "rV!ǣI$~. `FNe3T3@{ǂ%zʶ_g} rioZ/>QC;/EurK)7(S*S*rsewVFmhf[mܺdg+$zE=[{tgz"Jh10tރքW`~1|蹓a='qRm1QfѢ^n˜?捎c_u¥/.gA +Z1_> meDPYos>OlXJBsXS)OvdV>YYdE6Q7B+g>ܸuɌϾՀ:<UQ~毀5,TgzV5![lܺmK"oeRw.j2g2E^`#`ujfSQ־]xymi+ev=v7#7BG]ˀӰ=KDrסTzoQ[mwZ~0sUOLB (♿==kuzF{yW~/=a&+>}g:?swMA_Oh+ga ̚nԷ>oeކ_+铯 kp7I! fN5X* ^Re#YwݏI,t-7{utZǥr˚eaADM#1_^yo_^fPsP^~!{(RG7yG~mJ8l[YJ3Z_=@F]7K <(Or#) 5g2dOx@+Ak}!]Ik Xd-v2@Vɂ(U%IܩR9Y-%2x5ĮBΦ×hx I$wBBT*E0$C'IVc7U*3({9(1"$3%ԏj,@$RigY]Y蔩oUhs%ccW  l6{k=?1O ;ZK$DT S GM2#4f~YcEq 0hYV-k!$BĚߛ"aBRla]ovzfE~3]kώ=]ʁ}5kD`,M$M(-L [ B+G65Z:xq мO']a(Mۘf>yӋ_G[z]f/'JRWFꘟ8) 潟g XVj{^j*mvtm3butHм9!CVy9t-ro\ƔIvZpVvm֓^{Yv`mǞ=nݹ>yռOin;[W {θs}Vl0jQCR;ߧ4CA?حm$qa-Ϯ'Y(֗ΝŬYg͞ҹ_|U"* N gHpSoڨڇy7ny S,.ȓDX@F۞DmQgiۏ=z*N|Y.uE>c PΧ>Y3_l;Μ:^XYِ!}毶茕BCo^p󽏽Hڿ%p!l+t Eމ{sTj@#dߖ :uG)}VCd ~m _5:jΣ("4I~8W[x@:ox5Bo's&{˟Ncg<4gwϪe(?c2 R{M?YocVoy&68{/nл}|__):hږN3= V~Ӯ%,~ڻ~xŏr-PuD aPj+Ti1l a支*3 H{y~wMNa?x7av=oK o|qտ`՗S?>ba9%!c{C\/;/ - Ϙ8f>&gTgo|Dsotwa7s|qA>.b,/jӟ8^]'h᳨-FRjΒjf(")1+cE 3q\vc<9֧wk"by"MԤ C͛AdTy*W7/`!ī\.3ƪj*RWYEι)' 9 !˙R%)΢JDs 2fvfYe];pcøTB$I^RA^0 -녹.892Y,ɥr!r%IjM A0lj6܀яhsNbC3 Ϙ|9 Psތnnr>{$ أW}Տ4tNJu%=-8 Dm,]i-{ $&6ZSJ}]"RgٰׅUtRƘMiZ[gT[lKL3.j ޠNkȰm9O)VJdQ_m X&%sGٓFveN8cZS``aȐ+90KyHJu3dVJL7͖-~6m6 !aHRkFRg+6Zo_XtpB!Ey0Ga!.(> (%TlSc̄=[~ 46'`=V=hJF[. `Mt J 8bRh+GGrՅwcmBt1ֿn3y+Qv/."`?ovQ#6M#NuſJ !CH޹Y{TJCmƹnA*U)M]7"t/6 v'cbŘI(YU=)Eu= fmn6a{hڒ]k RI !#j6J}g{[@TSyD D+oaߒBbO%scƫ {`9$$nԏE|"ǨzёB8ڱ-R8i!`-UO .')6c%ZkÇEUa;pg*iڎ$H5)H¶#M6ړPζs:p˖U-Y1Ӂ,(.x@(V!Gc;!!SXqLŝ81!a+t"!|OVxQwHX=.A[dVXJ?\rI6ՇW[CAzD2"D)R4njc6mZ pm~aZc{hoJEGҍ 0DS844).]:>=C|dZ D6k+U1aOQ' E6l "[d"SC)PjmټŇpfZda^1KhnGC(bhL !CP G(j kr( .#lhr,]~-(]y5a"D؎ݦ'BI!Ժ y-(`)TOfv"NZc/D'p|@`ۢ S0[´@˒ زr#C2J!,'QcLKX,&Bz".5U1MSNJ|l #wWBU u4M؍h!( ߀/k5@AJVU;ۡ&RRJq~n,MJ!4.ǺA?)i"M(e$:S+#DDN3Ro1e.:j ڧ`ŽMHjcimm$?77&Cy.,f| {ZmSl|D-E Lv-/bfBΒH,*69c*TJ`pѫx U% ߡٽ+ R;\UD<䷭# )F#uvAFZ/lK6c^#n;CWWn ƻe(9ż7If΁,,/rrBt?rL"[NF ,4U*[ F3!bb 7]04rM!1 Av^_cnRi4=+ձ'  ʝRѺ6 r3 @ F;O)tY  +RJ)$4M4!2 KS^maH%2R1(ymX Za#mZ8qc}̌< YQ:D aWP;<`bj)ߴcNMm.a0HnjD/E^a$ޓ1›P['A5biX0PqFX82Z,$ <- b)u$$(4nLa)ƠKhTx'zݑ \˒Qڌvy x@we#b%.$4딸=>0's5g3+*q™u:(Np'+C+O m::J@S P!k))YtAHt.,pJo D! MJJcDzѮ*4ٸn684ܞvC)%D7DPIh;k%`"j@4D.c_mK2vG34uCdڔ+}&``,d:ۮd[;_3ӛrn"m}$`'䎒Gtռ6q98+#SRaj-XMV:ry [,܌^*zGĶ}%0MBXvC :7(,i ^nSC|&Nی1^)Fx,_ CҌҊ̴ |PP˗ *W!%]"ssRc:iC'{4o"(6ZIaB`nJ!JÙ" 3ۤhnV4 H) dkS ь)3Du ./u]"|cJ0e<^h{ΉlZnH)%t6L24nTu,~ǖK#Iq M04.Y\{m^Q;%AY8 \'DqYj5XZ_Qm*b(QbG̕ѱa=e#du Hu9=5%<!84ƐINKLX^Q0h`a}$m_a+  ,p7Pߌ)h_Sw[3o]>0z9K')3<˽椉"vF!m%< ")4u:EI7: MRMN5ԺPe谋"04-vPIoj &Mj)[so"S7!vm]6oo!!I+ B42 Yb̡T[Fw@TJ`Zۓk9o|u[,Y?F==k!!ºzwD:^.%x$ႡLIਲ਼h\_@)! 5Mi"uYQ oY'BzMҦ8AٖdU,ׅ#FK%/Û]Ƌm"ϝBGb?~>#m3.g*yk~ y<9Ϸ5E^Zō1 CPokmxQ?߈_Ϙvb mٲ RJhlJTJP$9T-!h8>$ad)@1- \B &)΢-qq L0]ciT1!tJQ \l'*;r 2p$E رi)ـm,3ak3A+)E Q.]׵p8ebrfXZ N `nB eqn[ [x~齱ܷ7 Vf,1 sPf7΅y1 R-|}|l2W*R 3O:pgtByuQS Ll_caHN#x'1fZk-R`dS-e; ;&ٻPYU~f됱@aBb2XjW##|Ysg/YI%G˒e侑ii+_|ʽϙFޘKU^B6Mc?R*5uԍ;kϏ?n7o=o֩^ Q@0D#=kV^pj=3Z_mtx-n5zͿcŊ\~kT~0lN0qf4Po}?.*^,]%̻*l+xǭw.2\t5~qׯZӛ.OJ5@dOFEwo,`SBBˉҿI:{+3LC;o6@+DGDaDJk- FngdG1\DK2?z|[0$ yG;[LSbWeJ`g/;JiQ 1( {h(S^U"Mި䬘MܻYOVY70E!e(LJhWRAwdC,YZ$D~ -Uy3&u5@b㺄j 3k]c +]c+0.RLR{PL0/u&4>;)%!|I ٮ/lh_)~(d\*8  ozX0K%]XZ@D.Bڙ6\|ěGgl\i܊ep!*h:(J;8j1 ȅ-7,8C޺CI,\byCw<=iR* !,mH`D-K1#!Yd[!ӡ>.&eE>{S*xƈ˔XpaX~:|9gAGomZ{ۢ*qOEDMI|Y?8o9=6Ujm3.3 Ug\ei^|~>Ow.=g&tc-X5P->3מxYqm.o<ӢܼE'y w;9j8m~eW<ơZtܹg\ޣ6= } TV[K[90섣/Wm>=^H؜,$3cMg+tMgKVހ'e^W (%J }{/qU DFG6|W'JmCq1lC!]sh$ü!MmBXN`Rޕ@vtH!a&VȂj\1EB}+Χrw QUR --g&Xv&dZ1o2L vO=WȘCƐ&B-cbȂ)ozsSC:[DgK FΞn ZcTJ bxp8$ׯibyRbj|i[ZP8PrC6Rf$``xJ,#\I00&* It[éMDF Jaǧ(PH)+?SDaw%')񹁝N )TUJI%R)!sXf4%Y-ddvSse~)UW~[%9Ca98&0fyfJIj\qZPQl t>VOReS2..Vo N=M7-C<0p"6ϥGytEÈ֢R"z8U,븮v{9ϏlsجRƱPg#wm>?dPxuS{[|蛖<ͳ.nK]t!iJc`s^~%.>ݦ"r`~CO+ =":Cj^;,k<˫u?yeYq#2z_OO^û~_x¾bG~V~r9G`t_jG|/xg| ?_oٽ}?wwso\:KP(p '}NpEˈ:e|:&FዧIz *jDEx埽3.7'Es^ݟ/}7qKZcl3il{>bњ+ξr+ξU\fǥ]3-V$c 0vt['4 7o\zzy'h}`f\ IDAT~֟uww?[v )Qmg]޵77^|?UdĜ×k9;n~ߞ} y翻sr9o~XȪjWkv)%@9Uo?@Ÿ'DḒ_9_L,u6M옆o ,#߱S^ymMݳرJNgvMD-Z** n9W3@BGk%]cfJ)TDP61 #(:اsnOEl`$ԉ51 HgtvC@0SH]O0iP. }w0-@bZcgSG»T$h8wt[g.p8$2^_J & L  ֙ccOiQ7Xrd{/TeSpsmQhQZ ~U%4ANlMqYV;+TRJ)ÃG)b)! \Şgt! XAUUիVC"J#g^IѭnBMS}kȈq1ݕIfYR2$"#U0jյ5)$ߎRB I;2FvǞ altgC#;n kLij|`lt\ Z1:z+f&U֬m;쥟=j_Om m­B͛a?u4x?iDC0@-~Cz͝0煻e30C8cmm s^dL`ˈ$+Smy%00|Ƿ>=vшv~ o-ISɟnb<7z[ xI矺󆃏/~3gϝ߃?C^xO~L k}ͺ|~~{u:0:cbuW"Q=['jcF~hN){e裼%xhRTn^ZphzF6N4YVT0=&@&g/ҜJS0 ¢A?/p9ؔKK=LJ`mJURH$㺪H=/ |D#?<~#|sy{OO}ʞ&̈v1̚?yILv.(1/&1g 6|_m3+)1vsB̜k`_g8͙!p{'/Ӄ *Sd-.kɿ&yG<:k 64렯g_zq=)eKdf~P$a/(opK"Xs_#ÍkMGE_w=أ7νꏛ}s|?iō qurљ7>a/V7McG`E=x`$|`nT[cgO5R1ҥ]%Bj?) (yG0O#5׫@ @d3#A)e)iC8!u]رMWJ&6=ѳsUFW|,=p/mO-bbń߶(WSv7+m1Qz+`, K4.Zx PdL=I!S vc\G`&vι[iLv?]Ñɥ%"kbI{66`w/(Ғ#m( J ,pM ?Z sF 0޹K\"_RIz^Ua4!#y'4;Ny;: bjr O]l6RL9SD;6G,t!8!HŔ8@Y*?\Rr):F[ N6/T]&\^ wHLڊyn`Ri~'pFI*%꺩92z ]fl#dF*7 {Ãw7BpN2kBqʟIToXkmhR3N* ݰ`NO,H$ic|ނ]DTݣ bVÜų]LjZ},e $E> < )EWui|':'n11A y[58!"jcM,LJ Jlk<$VT4^/u]pc5vMbӢ^OWEex{b a)@ trq(G8PՒS/Tȗ.~ѶͥرlVe'@@DMmW,E3c[dLWUJRȯV2g%’c JwXe}eGmbL*4 ]CK^"3-y-Q#ђ"YVm0SIk8YZ`~gLdVIg~N1Sk9 J83Wf*w"<IB2{~+po 3c J䴣 0c0YM`~'#o{򽻶ss׏z=9aﬞL͵@g)G6d*e0! 8s} % I\]c*E-uRMWy[~RD<~_\/7qw_5]Q:Q$,Ppkan[0`|z'k'9>ka P`|F+"#Ta_g3u֍2au(Qأe!L, (tF@׍ӟǏ1ьǟD`80{jQЋ*5fuka `d׌q/ (e֚LiC!#Q ;2 bz..s5W /ܤ vSF'E(Uqw뢄j>ؐB1d WU[1FA'vEXc?p8 *<](=kԵcTE9-u&T:Ҡ#Ă3cZ6w[ĵa jKCȖfbw! 6yQ:Rgo[Pj2$Qc+N4άwt`RF,}/ch8z׃n?uh’[;I=Цn9r[!DҎIiP sqB(#R bWY]D]pR`!4(w<8H| ԭH8۩VJYY`Z7b 9uNTǟA?c٠|7?rq۱.}b.Z͏= .f+?Ht(zUUuc+)kՐ!Pz^OHA@zǞX0sJ}Mnv>1gsPXu{iDZ]g5Ԓe7-_=~;Xg9/~ތu+&H9h#KՑ+%;ϣ۴'|E(.%c{q!c# 3Vyp8hãny$"c?chGlE3yY~qGք ݍS?H8L,!ߍ##!&=s u_%_GdCB.p׌uHVxq,( c Oݼgat *GvT-}bӪ׌՜95~+Vcsϟ3S{sg/zތ+}F @͝1RakFakFwom aJx mVak ?ADoV!̆y*wV?5x^d&pAlz*Vh\g/١P͵3c=o];0U^h%/" =A]fOn~GD1}>ӶUs_p@vx::::bēt%`RVJ)kX3l_ԚR߭`B#BS̽KQ\^"/-Fuyt" #LY,`:8:N/ktHkLm,r7RAVRd)mL]׈XzR C6#*St B">ѼdCI6gI'~[Jk)J. DD;j{"N+) "<a;TIwsE}~h8/(c h_l9Ce Ġ]ϟ DA|eǙ!oɵBXCK0&LlTɳ m;R]&R)6Bq#l嶔=9=. xa@FzX1u^eRJVʲaӦۮa3{'g_im' b޺6iӭ F};uBTJUUO*eZzRk]HB(RJU lqKo73׭}t9}>gc7JnP ]OiN\Gap{`S W^lcO>KS߾knx`0Ulz iX(]Ǟ|+v[cD)5k^ Rv!-n{ȼ%{^{-m}/_z@;Vr6{͛{N{/{6n÷{-i~[~KO>V,~|+OyۂeX <}}O8_N;j5Ʃ9DlmI M5d뛴ͪ\ܣ>֗/^ң>|p[_ovMW|yGֿ^G}΃wIǾ|Ѯ锷-Xuݍ+ꀰ1KYCqѽ·%K^z_ul?/yQ'?O념F3f pƠF7"{+sz+cN}‡pf2JX"~W>4kMmY[>|+/~ѧ}Cnx`UM6"H2gm+bwu,qxIG?wmxhKc5ewmm?x;}?替bP==c]_q/^:fh >o{v=˒=Ӷ}ԴVmFz=5~ 9lDa=U'V:J}kmbdddڴiև%G< °:BU)l[k|5T Fpux;yExlTN zqG'B < ,t4Q ;9Hn.Rx&o'hFEɍG !*s  ѴsE0тHF~`x2 QC2 }-&Ymha065S/scc6(9IDp_)0:ܽ%k!LH0rdR)~D ;:F6F׍-+Z &)͚/ڱ;~wT# !Q^%ܘh4P IDAT;Ӷ=쳛Zi $=vkf,9>K:A+ V|7;S\s.3?s- O֙t?ѷ~\MMXZ` 9x9CXJLoR?2U'Yvډuh+_um/ylm]_wy-p*;wCO<ٟ<-u%0<\N/O۟x%U8_}\Ԋe}X馱D͖}u.}KI\~~٪aiN]`#>jqml&էkV1 ={&:>~s; 5v@tՉN9=~g;5Xs׵&qK>smGx_}]Qn?3a{ϧo{ƭ<ȓw]SoZkZx?7-(P ?K/yಣaKa7)~,cQFkRJAbX8BW̉N]h3\LY- "[KJI"GzuFQh+C 4>Z&Mb?J*5Lg wiD^年IT`T8đVV(DgRrbi ub/j WϷ3Thb`BY4,ХNEOvf"Ug9dMbׯz@&)DL#?&-RIV-CVD6#1QץLhDtKݯOFd t;I @+R!֚9:d&Q%G;YvSqT7@Q  ,x/ k|LJ9\U~Փҹ pR) &CDY"LPSKAIJ+l1)/-GlnGF' &b`=Y9 K_M0u#.8}tTy` Jэ/1r%J)mn-5u45TUegDMSd+WURH) i/MDRJꔌ8 1h!M*BE6zpkߏ  "x#X+()6L<˅ٟGK?̚0@D"Z:`J65YTBmy8;!G%zR`4簹() ǀLD%ӊ6!>Er.qNc('/llHMÈӡҧ'=;c:-~ I+ޠ Y1[Z>N4r8Q!Vf1-*M|%R;"~<0 'D:sZu5W\|?[xu#aCT;ޘ!zs>i+k,͛6_}Cj[{AAND}xtx"!+UUj0UeSp17oCcLZ5w#hUD4lj~ v!Rˡ '$퐻;,mL:Qx%^Cf6w $f,0L(;7?uqQ:ޒ:gnGKboB&K;U +U+|e(zM4ul/┏/ JbV )un5 [xB aTug,[eԻH!-V)%({5vXHd1Ƣ׽Ȃ&;*ĠttE( ,G h6W_d?9J.zv}v*,Og..SUUeg7o61m9#LpJ4i1:?E 3O;ִB X{y`tx>\ˆ6$'5"c[wZoڴ*"B"ZIX&lvYH΄+㶀PpcZ!e]vG [%bڿ3Ѐc 79ԔH΍gkQ!?Q_ : 0L01ٷ?VèHailr}+{SnЍа@S7XDcv6{&2d z;Fj[}0m{ - ;8_qcb 7Bh}bM>lM:c!mc MJ9`9o? +3`L1;/V 0 qQэYi,$Q1;᳛HCf @h! 1w/·)v8"*"6WURH0l 꺮jZ_)d+8.gB5!bO܂^DfWf1ZJF J"q: gvS.FA*>Xd=ad6F 0 2uJKJLp LxV)6b/q~k͛R9vD3Cw0˱'#pFs; Mp ~SlxmL\x۫WUe[/c@Yfw~x?$6R*|סeń8f) Ij.Uʌt bB.Y̜t-5i5uZIk`C4 uRZDǿvjfDVJZ7Mر[pi>!,66Z R_JSmQ0?[4g^%L@UDAHH Oa-pQ_CV&LքKh1xP-,:Ǻ0Rj˙U,HHXR3&/YTnmy/% M͈Nq!ݒK}p e|rXģ@D4ܸ6 TO6%-R &cZ 0铚xAGfhMnÅ|x8,pN-wSIQ P p"f;T0 pHvDhB$X:UU&C\PZw܅!b WpYmunyG $@!!p6Jd"LYnP dlSTjD8B`vPRΩܓJJ°3gߒSA}u!;u@Jc 68$Ø2 {ڇ6Yp+ZBg CޏCe9b5hup$:>3܌K|E![[OjoLz2*ʠKH }a"Ry rj.1kCnxG P`K1Q4R[wP8' i`cSهp ?i 9KkypFhSdliLIe+Q[*yk %(jHQK'`8Ժz%F7jƒ7YO'[]̛2e `gn'5@eGv&}(AagvdRim8WL iBcitc*T cLSMXkNCn:-"[m( wc, Ύǔ'8;[!2asi [+N.Zmc\7ɀ^i`{A7'{l 3lӓRs҉Q]A>s~\/ay}|xy$܍v1 DYژ,՘#_ca}ďz-!.G!8f~PYd1 !-LHK u"hGHկ/`qU:I>;3h|a+IdkV|CZ<IͰ$v%AeUƘ`%pT*C{PQRy̕3ŽTX =·mmRaЍ DrVL4D B a]3]ID(Da=ljΞ!뺶?kH: G8@T׍6ڳ@R{@e`hrȀ{J*"IJe%^;2 Փ=*DV J+#-90Vv)x<2RR?9S~φEDY25IV} "7qM|n=KL.} 5X]jc 3I]Ozln"7c,MlYAnKIJCȞG Eo֓1>;ro%PkKFT,mjD?ƈ$Al`/E[ 2Zֺ2u@ABMm=}"hQcBȪ L3c=/C!𾅖m]B%%jnus \R)/ D 9*=|3A>ਆ熈k`,[UR MXH_UBH!ii0DƘJJ4(e2De$b`!Z*)Rd]ޭ5h[t:[Hm''k#[vdrSzU>gzKan51"e|5w%^dhbG\xo9C>$!ϋiE~z"2Z(pD-msiZ/O.\Ji scDW*LK)5d23^YA#!RJ"k=O6YEL :|`M-'O"DR*)kwAF 3$MR7Q)e'A)U iaQ ϙ@rdi C aXCxa=1.a/PU:2Y(HiPpIq# QN5Y4& q֬ MnKSU6Z7Zi4PGh:ĈؒmFkm?pz ӈ=M`] ªʏ &^Qc%WhFϙBaQ*AlR㠿UHLة5s. %k>C[Svq(PhQpcTe"PQ'fT3馑JЏ! _,M6&2+|SE*man՞<#F9`bѓїD@ RR Fzk(e{up@6dgz9ч1 d <#@dXFژa]#J PoĂJգВNjUr ) vu]C/3hkZ(t"ur&K@#BȾrGAF$vrr)}{ 2,RV.7,M;I6$@R>(v(RAJ`E( @t;jqܙݠ|~l63{ʷpnn#tLQ񱱱b B-LUl@뚮SpnX6A&MMkʷLHzwtcy $㬜xPT#gԊei%#YI"qF aҞW:CRbp[^ؿƟ6h֟:TPdu,7OJqw~ekP縱[ȜYBumGil jP@C[ 0{ހ|#)i1ۅΤ0]o- U޳5vr& ՐQrE1CAdOQۚZ]asc!S߸e:)z c>OQdQi[Dhł}!c~? y'xGUUUU{ޣN:>0If;Z w-R 0C}G92-4@-s wDŽ;۱wkJ%ڳw.蔤ZNcѦ%RTwҘ#tqlMp EL^msUUU=HD]rڞvpX=9T"ѺumsWWn=WhI*SEU[C7fL-I3ag&YȫEz=KreEp]]&0l7O jV쨋e_L FNkH?D]EGۡʽ(Z"x펧$n2ʋ6HqWDux2\Im1&tpQOKQ"uH"8zl1ܡ[#VڸLԬJk4idLbi`==N0Xd&̔ueruF-9ىDy$.ر#]Vڔ;TtCW}x纮[U>zZ-6< Z}U2eX:,OH!0SX\UTlRύLG\ȊFj́\7Qjhv C" q؆紐_C_[r Dh%~޻U^?`C%V mk\W9@ &6Vx,K.)LU}P1X1(IȫJü{ '9ՠk3rlzwصgfh]z=|Ue b;3gŮ;2wfT;/sߎ_?$sߎ%RUÂ{ؑ IDATvd_J3wdf=y=E56o\33s嬷})gU,>ZV+{ﰩ?ٰs禝/zjB5׾Xf]wnymƈ }O+o޹kV9{ږ]vy55 }@#~lyLtІ;רͯ6owv3K}**x -rc*jT75HrL'yc=;25M8DB093Zg?_a={7^2yUsYqL3:׀_Ոo~ݼa떥߿PeʚG[f-;񍇒}.b1ڿovfl_%v<'XrϹbl.H%Eglޕׯ_lU -FZa״S =y!II Q3WgسYoN;UDAEJi0 npkܻwQmR訢Op8ُ!cK{jގ_7vӟP+cR;JꥸB=5oDz~C7ip[ Y3ERΤF7iOݶj;BvDz"Z%ܹ4I7#4Duw-wp 0jRgJZ7M#hbGBN58F]$y7"VW|- Ή,&r6a\ް['? "s 'YZ9;pQ*"[eXdE&G(J*n;2R1J?`"ݬop"WY [#F1[>΅v!|->h#FФ3Tl1Vr}>tXoDŽm0.D̀+(I<>{?vM/]%iӍb[i >S"5q뚮Q2Iy * 9ldAI )z٭lj0lOQ@ט>ROZTD>ACFm="a @3tБ1U5-q2d@mCTbl!Vq>t} G. rU VQUA)hk)+kosbjvs:=DBtN kD\ "{>S|QJ/bl ~?(Z8!kЕ<#2 uOogh*B"CMU 20Dα iW 8N+@5Yj_3Sn;: .HKСSn;Y]-4@MiզUrQ_\l߾)U?_B΃boSϟNm]-ݦep1sjP3?\m{!ubEs?9hyw\'}q1ؿ]CNGM5e“T.=^x9e r{noc?^j/.IOV A~L_4O?'1F9َ;=7LwԿ7_}D{ݻώ\u_'%]DOƴKVܱcd)J%(2`D! =ZG+g' ^ٹ>< =FoR͍ɡ:¢aJV?~Lg>)l| !xX֨[)e4WX[tLOMYW'*f)%abl[Sޝ:6>(%~YvJˆ%-G;:DB0gL+F즅53H"1T7>&ɣ7H{#{ݔw̸nnnJo(σ eݷF8ݨ/!4]  \: c}bߤ /!Hmn#>.aVӏ 71/d O_&5{p/}hwlhv$ KIwnzzFt²0 P}>2 /@0.p9q1QD,~-<;i0,v݃RB(#LlPU纮 !  ;]؜i {9MxAimI@6.BFFQ%vs STۊ4*lIьri)IEVX9UE(sNETE"Ή1f[y'ӊ\The~7žkс1Ss'mJROL2 dZs8/%@&OIY9 G'`'t>߱LJ-:)@(yLl~Nu 2ɱY(@@4(B(٪&n&ute+ri%y;^s*^WxϟڱpcU:K/8kɶ|<:~\V_qB5}ݴ{n[I';3ڽ%cNLVg%=gŮ;n[6}ăI>YkvmٵcM`S [2ڱ|n-J=[LYGL_}ΝMYe?/wmڸ`Ԡo]3Mjwhֺ[dZ8{xFC_.lw얞5o7=y?\L}j>öDYQip+?lۡÙV٨M6>9R5F:t3gw;y'ߝڹC;Ve+T(TZO}رͳ?|.kƀZ*f-vc[fݹ;8o["m`f-: @ / Gm=zj]:Va\$樔=Oe+^{Qy_3R-?qNk{wٷyjϴM}co\#sߟIf,ާ۲_1ܶNm ~gߎ=Xyŕfɏh}澭fP.+sπl5W m{o\Dy0[2mXF`lg{|<{}̽}ֽ^<ǵy㌙+4mS.۽c_Wc[VZ~@$"h`c~ڰw-T@V4o?9_ٺQm+ 2 MF@e{12#s=[PYE y~ٲgoumݴWTLxV_ra_/s{3W{ JF}>=[voZ4}}}b+%;vooݛ`v~\y t-(I~ڰl`LJN?mXvQ-ۜi뢷}P \i돏7צM{~|8Qjwڝgd_5}q RrhV~`Bk빢õ|qeч_JTC>\)e1kޕF3jY3,E~|֠q ]yuFZl yD7%7b u>ٟg^{wžzT<"3ƨuG2"BlæT}tT7x{Z;%m:QKưn\u EBry%akB- v?%EnyG H)"P ĉ^$綹K%<-r WYU7AehѐtÔQTE fqe-F[͜|pZ,Xb@.8b@m3F`9تQjda458O57.<*N3E@7 $WRRHtdQӵBs1DZu;>vל;囇^w,nLOD\ P :~YL% Nb@aLQ,!!,lbR1J`sO\2çc˗BF梢n\ |lyO!$U,ˉ27ω~;IxVXid`bI˺yBB\r9iF"*fy>RAx׋(#uέZ-[WAZ1G8 a-k灼(K8a~UвMzB8P/XpY0힎wk,*iwwdήZBeLۼg۞M ?;[^3Fbۏ}صEn9Q>۸ݏq.LSf<_sߤ;th?`_R*76f>ץc4|mʈ ܑD%;OwԡgRߜ>iܣ}OJ\z޼keM|}t=`צ$*͓l>&Xz 3wM$xPuLfU3'Hm e؋UPDnKHoTά@^5K0z\wZ 3Ƨ7PphۅvI"]H7/PcIƣKݷ-Uyy;r9O|҃Tevo-뎇K{A@:w=i`+eRfF!bBF m/#Eo?^MŁ581d':5`a_ޤ ų#O8鞹cz^jC}[Gz>" o67اcOL#$u=mn?a{Lj䐆񦖁]( SM6jp_ ۃԦѬ^Q<b+_yw/thRtٽn&/c9m{ْ>d[M /ӟuj %_j) ;u8PRI zc/%`b)Wj؇Zk#F-?8;{lԨE'v{gxv~f:osi6ʙ7gwhEU8bUhfM|a̅sg|Y2QLlS2X|m.rq3QL0Lzy/Vl\'>\|N)jUy8ᄆw,JKވmZ|x*Cy봵ibl:F%U:=鲥;Gjps~חhQؕSwz &qo *UUu>K06u Orw\ǶdQ6D'|{ P1}[0p8 .e#l3 5[HєٸF Īf iL6XzTL/ YO[,`ښI@_Jh3Pu:>,)]jtcz1ʈ=DERqSU7􂢐DZ9Gr=H(=nNTȂEqΥ:tsA`oJ6$2@$0߯CɡUK,*oE @  2EQCgQUX@ SɷUR"PaG0p8diTSE,뚮Z:6 ޞ'Dr,oA/uR-*їجOZeĦ}O 2.e>a.:AsRO5i@%\g&> ڕ+΅ '#"Ɨo _s#0ZҵSn?عfh)fSc?;+ b}k=im,) ]vʪ_XBճvܾwŗجG @p{z7,֍M8wlix!}e(*wKZ"WܻLz-C`M]}K܊JEY9!bc=S~? Zl/l֮\\HP”/v6)B ]9cE{#_:,]رX͜h!Y>jәp]pkջr7nk(LMqB'Ocf|;UzW39j޳/uԘy[O;gg_Ok2E2' a%[xom"ٻ} gC޽g_Gɋgn5y"Z8yq3~8~WCo_͵.=VD3k~=U>JN-wn9pҹc;~fU zJ9}9^M:眷eiFpNMpjiĆ~rء۝]hwf IO"V{n'ug86c6k!J_t޽z eiFxv'hriĆaߟ__:P+3I4%/&d)D3H­8Z2%ϼӓ;#'tKg6Jv #BLlr9atIRԙ4E.!z*`ksg P< ':( xn-l [OAl&tYeFiXY ؃bMbbI898WFD܉hZ Z6֥>m⣸pX3+*u N>azd^pX%q@AdS.<S BB1w:NsR!$y&/ 6ysDg IDATǢS(-.zDUMa e)"npnIMs0|)LK{xo.-DSTeMxnfqa!~mWa%zwil.*agtL/S˜ZxίyD Zނ.?,~*=aUǏ[ Bzm"뢚Vz%Ըa?dG  2#sg"bmGa쭚1"]O `yeh\Zw]ԄڊBf%SRb:'pW)6qF ,A#h^;z5F&WFElC\Ӂ0!%%NYww DڲG*E9Gɺ4+ʶ"n-?fE{w}XR\ѡ`>ؘrDYKJy8/E=N~Ꭿ]dunV{~6N?.T!YzZS(ZmCfS}oˏAFNzL/`Up9q7{6θ`6r.@FP,tn8~! d0 n0ˁVsP\˻|\v",e{ u9 .FDEGrǷgn5@_˗n8s#63D#PŰ8+{Cesw]DŽwD@\ hd5}boPu׬ȲV+ йvEm8wCp~ACt+Oq@?u0Gje"^d !-TV/HW-.7vq鵓%^dWkw@W YԔ+Nr"F̡@`\?wC` AQ1fEE @9}g'67t"C / ,%[縦|כ]yomUϊWUꖽ'#K(+{cOF +{eSlH:rN3((t=Fi(:M8F#ځl6^ aaaQLl 'An6/8-w+Hʲ"iQl,]E-z"GW0ctyh9DT;<.U ђSS< % fL@sE:L"#x k%ާP眬>`8z H:">SfU7LJv*IT|G-/fj|5n*|FP[jd.bg 4܊ ^sizISh,H}DվIؕ-ص+ *'0:n~&ٔ]wJ0 ~JPesby7if8FyZ+9ߜɈiB%@`WĐ*p{(LE6 "RUn P<˞~r10nʛsn7M{״JFWuеM5TRzvG+\xMur%:@΁ ; .B|܍uo^״U^e.B\ƺQסYW`)-m蕭nC?F?msns%n=D{mR*fm^K& ȩбWmpa1E6ye+״\=JNI+;Ǧ%ljU)r|"ѺnIjےbG-;L=B01wmZְs*1 npb='4n9Dd\{b{UH.˻z?z^Gjε.-\Hl͠iw}1YZ&(QMS*N "c<_ߛ ing([\=\'U")i$i3 &=R.X;Zff)C5˽yvB6c w>?68 P;^uo~"?hDD]u_z3lƽ[&FI¬YJ $[-S8#}\c=cq x-n5@ 4eRuȘ"pH%{Cpȍ0~ ǚ/ݰNFTPlTU}qqpETe;f p9U^z>Yd1v%C.$n ak,b`A~(s:-"4"zm[(\NsXi$gEӢbP/&,Y1 4rHL)6;Ɗd^ɲvj Y0ŁLM0ӝ$3XUDӎ`2 ctN(n]MIqHdPs *Te85,8KܵR=Cr\#I: Ne#!/_k aIKL2sl~?=$m4M Dbyp qLPrE- ;S 7hs5ۣl##g{f 0CC˼WV3;.EӴ7yhԤv gS%^qU$ϟEkE:#X~&n,yCiG.DDt[9Dȝ>[T WNb<-Eu2s[+Pb/{{̣bP.M߄R&Yr Q7BRO٤=* R*QTg_4d#sssrr kwr{I+U,:Eܱ%ˏ,@?>VVn,)'ғFNGtS})V$?BsI3&jCȶv }>cj1HNIēU "ԍ$oK2 mIu LΘE) Ӳ^IWa }j|zIj$6+ ذ5вRZV)[TjŦN ?uP8?PKUJP8[9!)R +G6,W>^&2XO|pڻrb+L5~*@l @lL; |Avqk;/,mʹeo:F<P( &VV:rYXsak;@SodA3ogFi#~*@Lq`:Sلut*Xa{*s0tMtM3L-(k2DvbTUSޞtɑ=5c<%Z(\*\e\#Fj(l) 8VPd2c,'osk,*8YSP8`􀬵h3[\ N`Hk ],SQ̐U c 2@']@QT5]ܜY9F~$<|qc!)W'i\h;\n# ffclJY@H'acr˄zلZ1TY\< ah [LJL&r'"CdjqyTܥWNY0++MyA zW\s&4M7 PhE1Eqm)뺮PSpM;B|3 6ؼJ3PM3Z=BuFUGk# kK+q^7_Mg??п4ϤjXlR:kW+ؤunVƇ:xJO wWwz}@ʉKATZ~YvkkSO.\z;FUFv!rਔo=A][5oTA~mRw֪yُݦo[~@K^v*e[!vZT=]M[=@ n$ې3;/{KK?\Z)0ф?o!`>ӖVL[m ]6gzkT{)ED,8`uA/ulZ+qӲ4[9>`ԔF-{9ņq{g*f yAJjC6]] s,:]ǚW+_L bEb.塓uިe7ǽ0"xjƩ3Jw5CSО::A{aZ-zܽV,Ο<4R!V^/w`ᚢC^Xrzڸhϙr _=;zwNa.5 ]=un-P!5Y\R{_•CÌ!Cx?o67 )-i´gOJ U*?pY˪iOcY(XcsP5lB,Z$3tDv;hb(BzLmA7B6]QDk6Gwn7 ݑ;6E՜˓71!$Ц!I-لU*rWLԥ&sIZ 8IXN E-Ĥ2 u]`E1%=nB,~Hjf-+qUUy=,m-nidT10@Ou,pZr }HEՖN,L'hd?є2׷Ex8?GƕfWāTE| 9qG痨j0hf!@"$4]3 C1xѴ xTs/QE|F[MO)c1W@R|@'(3/ -BY1`z^1_zk#|zkB5/P{D]o85]'߽:#}]˜?'·7vW8㸆>of9ڨ  |yqƮ6]/u y~V{u0;ܾǷWxG<> 8v g<2 |=G Ib=~vK_fi5tikt cF K@^dMK~c?mqcvMKQB?C @$ᵑoPF,&-BYl*έsn"4,U!ٿCQTUPш/<Ϯ 3H^] /'d﹧Q1|Dڑo?هs|:S(T=+' h16~цIּ lYod؟U%Z:E7&m{wV',|i=$k~|`EEEqqq ]sZ٢-=_%vqƼYDy79xޮ1t tضfdބSnOO?c+&4fg>chAG}2Mo#c,72Cܟ>ߞHׇ~u3hjn+ƾpm# 9KJKOZg4G ťХK&(wǧ/y͗_9Ov(t~jά =nQ$#0pq(*{scW 2~Њ~u,OЯ>(sKM,Wf\_9'o F쥣n\\3upVnny&qPp/C%)S]I9{obew}Dnly:q j O7~8X; ];z[9Y©*:.?1 mX0.JQq@> GIrA$d-96r֭um IDATl5]Qoĝ{  :)0eZXCf,4/(,b>iZ8[ XgRh~QZ CblOU>传Hh*"\m:l/Z q)ːOTLY$VY-G"mYCP nfyG@6@ Јj\0 Kw(bE*v64H u|x1("DQ-ނLei?rWQ[b)j-sEQa'E^L$f8@(DJiź:gѼOL4d3Tubp+`2S~L{bKnJD]2D4‰{dc ڀHG#Kϒ6 Ɛ?uW *.nk:!{RKwO ä|¯ۺPHu뜕9"~ιi|ZPX`0%J#&S?i2B$o3'|@~LԤvsN"W Ι~UUt]MHuEE@aQi@(܃ `BOLiWS&,_ؔ)in/i +_prO`rQ=9|bq?DT}> tMV^Qbj ]}Z\wA8G渇Yv;1JŞYjE B1` Z4KT4-6 pbzZ<tZk,v`þ;?VkJ+ZlұimTԒnpKt^ҸDw_ H;5wc% wPo[#؞rqH@@Q yyyYGcFj.ۙ{2Xl*Tfyg\RA+'"h?)x,̫"bJ0*@ŝDSUEeB"$#Qɘ;G(a&*UM!td"5\"V!drTĞa¤ a8˼Ix (]$a;nrZִp8,U&C1ňBAylFX$4U,YL56!]!N[cOTAݖC=v")zu,mðKhbQ(a."X3jY2H3 ]t*2z-+ȫ"<"7&gyU)KZt:}ѫbKeOLjj{pW#׺p^^W؛Rh N9E'^Y<`^0ɻ\V<֢.F @W ʀ`rgZ>wƅPrw{Í Hn="**$(S }ꑃ/fD1x;м%( ]3*֙0E5[edE*P0^MMCB2>,̒=$P ߡH @_ə[`} .b2 8; ' @$[8,8۞NsZ"ht.DV -G@TtZ"̜W]r< @DM%y}%Ӫ+"\y0 ׾uwS~Cp秙9mf5uf" ='D K,kHnġapJ3HLf>&[dR8:HB&К0rX1b[ꁈ| @T$ d icOTj8b`95MHhH,\&gC,CrуW.Bu<߮{@w)DٓCr*;X;j\7 MRM)@0bR;[ju踇6k10՚/dyߡ»cX،":eB*Y΍;dH]>t1Z';5XArmzא?EIT)++ "cs=mI6) [/|\jU0 RR,DqF)7_!?Ue&-E[rl+0fmSpS=OTGUHom\_On 0ŀBfY&'. > !3Jyζ.lןZY' e`;[eBfkV6֌vȖ@pD@وa f:[3b2v]PQ׳l !!#$ ",Sw'D#wE'%r:x1P.1k%#|8H #9Ṙp_d05oS-~Y}0Iw1\ڮɣ(kуEJa7|M$ Rh!E9Ş5E̴Z1R.%:N#|seq8哧6s 86~aT"K:D'Q>p"RXVJf@PiU^W=t?@ c2JB8K #ړ1 (D_Ǩ^P ]x3D]"^?6E4q%oͥi deܤ"&GwHiKdKDҤJ)AҘ'A)~XWXmcÊ _QsFDD5{*36 & %)ԶCNDZ@ \y+LCBPBH3;md*! X'Ʉv ֌P#2F#4RVQZ '1]+Go\ʘx(@ G%2aT9η+Q2xuC fD Y!0aG6""Aõ)`)6pK!'pe`wle<#˜RRI]UWcc07 |`im辨ɭ5D)mֺ(Kȳt5J+)@ۨX7AdI&j,oJ`` AטY1,YGɑ}쓰I?5Ȃ@hfd\=~gyF!D) H+%s7* AFEVΧiɐ%"7 @4CU"b !|ҷP̔e [$e0Y!>ǸcA֩3T_*:)abJ{Ƥg%jږ iEMRk a{1Jmv!D 5*G!%BՌRRJ> ˎŰPXp;PU5V§|IReLnq4`-i>n\j$͢"e *;᫨fcmp?kBa#9]ߟ[3 gڟKUh*PMڐA2tиԋ<YH" bJrL.sjӂ_3©hVdQM{0Lvh=NՂ G,&ٗ`[)1T7(ɵ,AR 峞\6Elܘo7^;eiOӭ23_1r}5FG4֕GXJbZTr ]=Lc< RԄ*L'6.]RQ0Fʏ?ƫW)P0cn(5nCN(c Dn` C I0x:&F.È Nx v\: t|`5Ѝ2@@ u&bO'cRo`S"Ii]HssYIlΜ uY$mEQ+wVK0pO֟g0mHա-5? 0 ;of988Je7RBd| Oͳn66|@9B S ycS :+bNH/o4)GJ?0  9+]}m=>끽5|R8L,Νʲ,2&`mU`SYq^^w!@&3)3m+RrbX m-5`$%L\~/YtQbcÊD&o[wY !VڈRfh.Ct.vEO`C2ӈz PZkRff-fYVD7I8*duuuw4$SAgǖgl|K;|k4qh>@ުs37=ŏM8c=q.EY@!efrVd;bgn[`Y{l7{vNl?mNav@OzƸNf͛w5?q|c0I`dGQ<_oǓιSv߈$R),Gӯ<23.>5}9Ϟ9̙Ȝ|`O_g}d^q O~y8^Og'_~׿|z_{~aDwt~߿$x)>|ݳ.\ěDT".&*(!$aHǐߦį+!p: P7.wެyOuwFZf=Cvv!V|4RMF_[6pe>x#?~|Ndbtt;;Nhq_%|'է0N+dƸO=? 󔭷 5ѹs&4@q5S0W V"vG"{(I{cO̹l?.' I)L܅)̵wE¸kZ[*}[|/rŽO~\{N+ɥ__ekQ؊ A!C&AtOyOϚէ~q-C4Ag\y}OΚ M̠շZD$#RZ)| =,"}}}y0?WK<;::԰T@tFDX{(]V<1ϻٲ <=ozh}i.⤞XO{VtRڐQsQB| IDAT0m{`ceFinT 6(yFZ CVkOST+#}~*XIE)0?Z@9@QEY4ԯ֜BD@(iF(TP̲,τ / 4A.KdC?j򸈉Uk@w' e~{m~/g3Rʾ6mX:@kN1YD*R6MYd;9TOmgLT"4z{-<;1eק}YK/=r/xsذmK4qg}Ttw>Ω{=e񵿼/?zݙW5髻mImg}sYO>|gmŸm^Pڋ?=otof-S$nu墛f.x97{邉_eJ8Dل]}1y3y5 V ë _;'l@n3əs禳H_{>6o:{ @gͺ~эtS̞wݮcDݳVܠ_UD{L{K#tخPDO{W_zkqSNH86@ŗ6y3/c֋/=3k9燂9, Tjb*tLcpޕÛ}.JQڣ՝o1Ŭ?+Nu!vNu ]sݿ_)4wk~캳zkWw+oS޾+҂Ǯ?ʅNU R ?ƿlʀd}?zݙW.uv7X,384\s Nҹ! Aǔiߘg_vF1'!@/~YO=3_#8gKYL;Λ5߄@m~zv^;>Xs"q}h'vv~s|o{}{⟞s-9H Q[L_?pףO=|~ӷ7Fƺ_<;|S}ձ;k׷5X'iSދ/w'޻|u&|춇j}y^ur]g Vg*PfRvt4:::y#ϲL\F4 i^si߆rF$P$H\ЬT7sD8R$ǵZC{=Q3maiYbcc 1b SUeéAvyP$jJUz X%fSȳYl]tqU+_B j0!)FI!0sy#I5(َ漯&D!NL *|mOϒp Fp3Rj΄4R)Db#yWCI!&jp< ,퇙"t(7'Ζ(NIHal)Aa,J)}qa^B7(TYY'/tȈ1n5LfpX`VQҺX3 ,f֨qk|bx c+m;i:㱽Ne B_h|L!+40;1uAxc_z^YBzcZRσ^/qI>7e˱|P,̊1p51 S"yBɾ]QDMbg@,yzڀ]=zwq+J׷nPdTQګ.K1vI=l!0Kz7nw:f-~ӣ$U|XG!};x [x[Ͽ} Oܲ'椭_p^{s;'n Кm}g,m:jۭ>'>ߝKpϖ$@J ہ̔c^ ׈?2n=;[f?bG7ObZo=GD^oÕ+%H(Xa x'7eu^d,E]1.@]W0a ۽GϮkdocV>X<7߰OE-xa-"[ozSz{'o9vB(~S"k'(r ռV̂t)@xs+|tՍUF(~e9ʅRƋ.-ٗ$̒6hZi `r[|Z׆KN*s[_[ȧ]F !@On ׿8w&N+_IqS6qo}|>v²9;g筿֧זm)[" Z(ty :lg7> g.; Kw??;`}tOM{4`9ߍwg=뷶>k\_7vڞe}|捛N:dڞG]?;Sv|[5328WFGhdYf}DFaBځt<5qQPFw&5g787V"*ʲT%YaטBmLC=4DQH3B\l&Im brfD{(5d05q>f .JUl-td15QEοh T/|!UR8bVF O]Rh&YcpF݌E#,u\e~*BQL#|WqJN)b X ptVH`hR, @2qJVYW, Pv/1qE ۹l6M"BkVA苸Ddmi༟I314 !|)9LD)!wۿAHJUeQ͕ E,(,P)03[^?Һ*HQRj5V/*E=p}.sȥ̲\H!`6=NzMg["9G5Y92U )A Dz= Wk;be5Yw`Q^r:jhi?'Vl;[8+ƷAuw+ »F7C:1 N1D){w%Go7}ޛ`.ffko5}zG$1g5;[}yg}y]1/_@ KK~mys>l{g׷BY*c>xٮ:p'*{lc?݂"2 lAeYru/i.퇾uWEY*{{oy]{${_\evCؾ,[ml\E..u|/01ԯ T 2yǓe9JJU,T;$G+LyRp;5qg1N I-KlRHmJpZY{@Z*_ tPr|݇)ᔢUp MD#.gZ ͍F !2)IҚ"OUj&QD 8lDi46!L`YM)EgG#2IJDȒOf{Q8,w2혽K_W6ؑgL tQ@*$>x;r0|!k#mU@b\mNjrn/TJcls({*!FJeYi G~KXhi]."~ 4-xC`PI!2.G890izl Zac$Eio)BJ`ШFor`J,Q,3)A970_6L77sQGJl`D'W/)RƦ? ά;?N{s53#J9-"8EŊoˋ\n)GKY:[P,KIQ+-z nt@'9bOk{#qnwq+U x4!`FJIg;A'ZM%A#ah 6(Ƥ]imR-ŭaq7f(dI }dאa$X3hNȅD5𭆐a@>,G/RtwueR ijPSi!J 3^[;ԆG.qT,̒ߥOwzhթt UpˆȥDG0ytڝL:%QM\ d@.1+'zCS&b.h,gA)sr6L:6xEY,7~UYer^YR5Dk YeYY,?JؙWk"1?7d.\6BkW-"F0 < YtW2( cCMB'ٴfrKUR~Y*lZʘ`*Ȳ̌Y ,#(i"ˌFE)PMeBM^w ]Ob4:&ӊw|FnW _L9 i> +ȕ^;zi>b_W]O#?-k۔1LavZzFwpе}п_sj TP9Q6c(\b_?>_][KU1 3O=gCV "4&ƋK-7ݚW4? P@ba V 57߃ Xu5ҦN6$i"Z@iuVb*đfw_Bqyk|祇n}[Ο3oYLѹ/81ga$s;гvǻ:~Į y z8m:?c~E gv=P싸Ck"*_=kwwߩ@z>_Z=>xjG^B4HnRA 1I#xrbq?~s{=:D*2m[Yd9{%JKU*PрRk& ķ`:>M[KLVyAEQVF2wVoocP^i~;o퓸n %-褽u#`sutfְJQ/׿M8#S}4:;[CMUJdUZkU5.jjEY_k Ra= IDAT]L ~JN=kEMV3)LMHIE,ĺ6ov٠V?PB3q*': <*B]3FN.oo)ߣ6+ȵrBCܰP4eO%|~:CX2Rc.c}_v7:qh#qQv|_A@Xϳ:/&-_1@^X-.bR7F@f3.NLSC݌% 8#ĶCc @ 2%JN> (r\4@r0ݧJ=uq` 7$j3ZKiǶT] !w=O3yM#A~sum |-?ܻtދuR|N-:r$NaLVV@@lbeOZiצW?2΍c7ns~3k|=/g-@٘-?Ի쩗WxWϬo]/K'woպ9/eKswo |]ԋ}A޷κcG/]Ե6u c-?Ի?Pz潰5ayMBJ_MUbj"*x;kˇ=j_sQeQy BCaEnL#Yu8ec[eR,tHh;3{".k-\3<1!a<(@Ыeq"5(eȶDEB\ff3"*ܢPAEq;QBdt2M`s*ZA&vet˖`ID"Y MP5yca|C)*UIژyRy}_ !1;+C*4EY# 29C4#ge @\@7/1j_sV[U Yt)>v"@m5de (`8ges]'|pWx]AkwMH>*oZ5r?L}O>t4TbgO1BDP!,_{܁2e}N8pXv#_:VpM?&St +|]Ftpடbmv;Ys?@klk5k̔7xZ(Zo}o߶'nÎyw\F\x5d8{>l|}|ޛXgsV;f|cۺyOkW1eOZg!>ET0s_ow] o}w০y;eknصΆlkDhSe944XEDo~wˊ&L|(n }AfK&MJ+!!Ѝ>SFOqGn5ɗllT_o0najb#'4t0[{UظDRrUCR鯫HuCF$orJñ N 0a:z.d*˫4^42o ջx\TOʢlJ{),#d!axњVvګN: 1`)nZ-~0f=N^ .i(8PlzGôTuܮΖл ˒;! V@@ZZ2+.tY6YъlÄJbXbpt#Qbf:h\-MBeXjUm_X>60Bf #,/o3\䚙+Mޏ9 8eB, LN<ѹFcB )Q+]f\r~ BLڶ6ۛd2S=tC,WMi/4m4ֶv܅ͿiI;ٹ(ݶsJ)9 vE:w]2y&A_5 p7}6^k[޺ְ7ϝj0۶j+=qNOͻG߽|~=uj ȩ5Bu dVPvO~s⽧o>+_-꜑vd´^>In9d"շgWuh;}Gso7ϻ}wW\7^`}xxwhӎuG3?J)@Av1Ư/=|%7#[o=v?mFБW]gtx7s+e] mh_v#ˏycc栱;r^ӯ|O(W"^%eS9℡~R3bYP )`TJ)r,jѤt IiMq?=҉fEJ=C*̼v:Ϯr*\Vƿ ũ@wE OǑ%ir'D7["M(hk"pT:W1-ld=pDUFTI{Ζ;4$ i9pya 'Gil{J50y#q@laE"@x 0$*IZV\qb?⬬vgeA ?RB&Jz2xaX rLFGC)U,#HFQ&oohSge`||0_c6iڑ)aLu4YEl6=t@mc4+|RRC0}6|OÓs]zW}l]1Mte !'b* F%ʄkKXlH! 6ɭZIgweiz*)MͭfG0o-n9 XM@DO̰ͭR9d(mBNPQm+{U^FL2Ax`3Rڴ3*]i?IV6Pb+:d֢90yI:[Mpњ b:@W@AVQ N#+alJ9|5ھMqZeBfua~% "AŌ+e~L_NY>@dWұR;ߤb'zϚ|FMmT%8/Sy9zQ@Nn3~aux5;[ٰͩ?J/$."]bbO?cX=6Fm-Yj!օ&JyH_f59\މ6m /xCf#c!L0B<{mp9o$f즥j(id|_Q ϭL*]Ws %#e"YV* {"PPzwlp!C(A-Nj{j42EI:eo~MP*n7V{{0ЛƁe 82I -\Հscxw!tEHp\s)BJE Kd5jbm!βe :A@/jp62 3eSRqC#cN?TrX.KsH8 sE`!Jꝩ]c%\V;oz./EQDM eYfYfؑEQJ!mW&굔9dGj/3jNkОU(~cA~ R0h6ZisM!(L-]~feEUd^ Ѣ#R֚ѓ(MD?Y(Q{DHÊeBLN:;ٶ?uՇٻ YDŽ,$m2?!&&)bHqO6ILqSOȘD$GSMMMq4i}Wi"VEWʝ4ԏG$6 Rl/Jk-XV4" 3ûeWp^G*Ԑq7eY4E6x$nb1D|$fo4Phe{DTE̜<-!)~G0v/A-ę{;9`B A>'+m/y%`ZZX>.@J+pY]D5X&1&BM$ -|*,*~lkjx.TbЙn@@*>Ae]]]+8O'#'@+p2*sQBs(!B J5[ ,܄iȃ-leF;W4͙VQ^V}eʳ ֛U(Tnd')!-zb>* &^U/ݪj-OǫwWVS5;MM,I2eʱWq윦h fl{ I gC:O2D9KPQ, S*R%"JK ߮q0 +`leR3 5ATQʲ4FV*ViJmHl>]u~򪐕q  I  D6K{Cı<^-]f 'OD9hI.iIO| fxFb(jYa,t;M8:)$&TiéV KN6,( Ҿ.BEY8Jٰ8oKμ3)m79=4Y JΘ)k]kjIh^gBޅیƕެ`胫{%O`nH08Az .bBf"Fد ZK(0[)Bw ),I kFb FW' {wb0v(h2!Т^:*ZX b|-Q˯) RζcsJXISQЫ^<T DueE)Zt,_PŪ~lw#fKJe@d6m LgtC#DIUǚ+Eb Q qN&Y9 IDATE"3fuWqoŌ~ry¶gT׉ekj.kNPe@Ͳy|P 42YYau"Cu Q1◢ٮ{I6#jb2qpUyf.{iBE*xP[R6#jHْbH}+eY?.ණ9gSHs,  S-!\oiQ ؆'wFyoRuH^?QWDA2>u&Ƒ(#6*nfkV hRD!kE"@4&#uYQL ӃC52tʸVo(m RDAQJEJ%e&Q DSA&$1oQk_EIf,k,y)ViM"-PL !@Ad <wmo#2N9tXba_Rz*q#/Xqfzr[`|BPBEJ6`xzmK""h.n}/T= M&2 tuk8Iz!K'`aL+($+)evtwaA 0 YZoƤqqBQMmӒY<zRCcA5/;( (q$ lk;9 'BH }ke`Zq{/ !fc3տ1b[37K7(R$3D_H7(4h=JVe4Vy.δҙ2K79s~>;:;l*]DTnOH$! (JH.My`Q RA"(E4( -B%I@ 枳gff>7sef^FDe#,'N5,lkP4MV/?GE)J)'uY.!ӆ8ls[DF+gB 1xBc}c$rNJNJ]ՄX"}(aׄV2京%b N`Xw܂LIODB&DԞ0':C~ԂseU3 690stO1+l8m!76HFk2Y6f8 Pl-P4IFm&lvzrzG;=,-^,0y}"6zeZ6JfEːimkjBS$aF`BQ)EfM5՛Hx EXFɌLذ¶Y|KG2>gLGHf FfAª,1=R9ȹeLˢe!F~ƦmյϮ]ӊPֶVȢ]Һ WpXVig($0ERʍPymeȎ}VQ G.u=~e&XBʢ(,!~[Pz;9`m]w܀)k(ZAmꀌS.4M]f_Q4zu-Q Y)6JimՙxQmbܻe} ;nI̠ 3T92rZtAjArY av{N4d)z9Wǖle!w; x|=J@A &gIٖuD5*e!-w+(p3K) )`cok% ,\J1@vװ67rIGtmA@)30~e#Z,RHi&hGӅ,VwmՅ(R%U($F)&TVꍩ-n)pF&}Ozm{PzeRzm5H@jA cE!eic9b%Z"YEYM$Y*\[0m^iHo.X1FVK1dŴ4xvI'<%x[3C5mXa50`l!e7h,V6b)M&LmϘB"cSuZ^@6r0ES/F;}MnV" 6"1J4AcBOF$@CjfexzsVgɵ1N58PBYW4 [1EQ3k7OB8rOۏ1hcʪ  1RfxyREUeY M25TIcUMѶ<D-eV{#&[Mo[HB6 ;"cZ9111.h/j넥,lNc7(Pku뺶 Q`^3^Om.+ : pᏮ{k' YVJ R DkOm#Tqp`ss' /ffmγkxǟjǜ۬gͺo5lgdhm890G%QNJ S'&n~όݑ ȐLy!ҧw;gofmEpp^|=u)Uop@`#k0D9RkXC@}K_a384l )vԀ0V ~^M@>C-:ãϿg=r%rJؠ0E%@~֕wϚȬngGnJmj *-‚NVM2~l2Zʷd r-8|ҍ:ϜqElZŒ1y#<2끙3~a"&ouony|fJŸ(j\ù_mΉ!]k "&o}onࣳnحW+mL)?E""̠ 2 c| rqjg9GϚun5jidd bq0+#}>~C'Ong?r")3 gn_ EÂӊƠ跃ap%Mn5K"'<;y鳦_#\s`vȀ/Ä,4Ā L)h #1'CA&Բd!e#=*45Y ,.H֖UY-tx+&\ERr"`%~P#bOAVZ!( )_mȖOqD `nYleѲ|ڄ۸Q !(Q:Ѱ"Ĵ o@zK.Z,y{%d !{݀Rӱ,G jWK͛ (!?pB+=˲ao6(9.CtJ:, C&_yU{~,'Kkwİ.nݹ9Yb|^D? 6D5sɐ?l\YCTQ), b6&]_gDDgC.,LLb~GğfVu%(̹xgwZEd浆B.'_q@ni0!Z~eAp(|f c.jNBB 0!T -8:oJz=% Ie&*]j5}twc&"IX}]:Ko.*&8yC+F"Zulp!k}W/Q[7@5ĔÇ*h^Lku|0(vkR7({Ʃ;+Nav'iR?RO̦L"S2lֆw>K~"*fDp?V2[7W:V:佃PsYloӎ_4obe|aXf!bA)Y..ìNk\V3ռePXauڃm~ǥďZ'Y:/ 5} ƣy]9u<`/}qM^NPsIH#gi8եOO}t 9O$KBD$;%۝xW DQM'A]GZ4y7{Ϟ%4k1St)_W}k]vOkViIࠆ_t "n 7O {;NE^G$yvklfAqvF#k"[mx/pQȟ\|#wsf,i7i&}6ӿ7,?AxK-Wy/CWYsΰV`[W'`jI JնN@HL)_7V75,&tČ}̭bIIhw=ٶaY:$ bǥT$e u1RNUI!| hX&h}Qk 6S*xD& >V2 ,D ,;J~ d4:ֶ8utOՄ08,2sŒi)e|^X;@-[0/Rr"]V ā!Nѵ:I])5>AJEX+QÍQJlخ'>Bظl`RdY6zj|\sZ+mVJս^W )3s-!Y6QW@T+Elݒ^@e78!1BBY|>ˇ#5֩3p: a1l ǕؕR+4\D%scdW͢@YVF'&2Խ^Z !;ZյV*\qTE5)+rhph$_0;{`2d=VNkb0r6OK/ՇSm3͚bȽcoǞhU9;x9J) δv]k%矟~)ۯ=X4q+.:}\ʚ BN{is^zʅL}/L ;/<O>ēO?&0MЙnkͽ ~{/9WZJ#V"7^A>Ah2X -mSq^'sk:Su.uɎLG.6 PMa׵^'sulpM>rpV޻Opc>Ľw錯[{8[硇o/ʻ\У9lu R~ &qÏ ylǦ?zŎ+8,%9wpϜȬ~%?fӧԯ~Xqo_י?'*'xG9q/zͥ7ϼ>3 Mʚsw3*s<F76Wd<취oK9|1jW1`o׎EG7o;SSSC&-`Zk"EQ05:>#8倁 L5c"k S?%,'PڇE700448nh.k- Cr;;!,PJ6,:et@8FsFH.&0h1Exa.ц6vZx>rT6mC}ө$ 'y0JG\ԳH;{o2TH)'Djx[ыSCSXȆy-1"$DzbsȥD(8c/yD5v?b3ݴ1J)2x_aD]!y =D&. , )%>(@j !3-Jpn4~Zq0Q\FMyچYJ R0C?WEQ+V0JdLMRuq&),˲tr_3.O摞>@@h ՁĄ+y`-zyCMLc{k_'50ߟOVk}8ϱm/6^ ԯ?g9E!S,g><10gΰ5?Sxj ^N#T(ϕ,qqc_ ǭ?3C!Brj_s8& Eo7|Q=3jpx~Ԧw'?ݳ0Mhk/o7و>So]d8͈i IsVƑg] 9~FF~u%RK^E6xr=` w{[:m-OhҒ¼>E6X{}>_YNdc*U IDAT6̎^/ƦcP՛h呧P?Ģ 5^@j Nǥ8j0dHH!<7\KsWD\؍_sI#O>ja\7Z ~c-=a5zݷr/}3~x#:z?k'?sd<WtznqG}dݯ{O}t{y&Xt~9@o7}[lse,18gCn'=پ!I?y]5v8hy]S?Gc"fJN誚̧-'c:E7.3DāABܪO@U70o2FR7]L`?Ǭ\N4<ֵHYR iۓ>񒫖S7dSbpf&>%42 s}[VUYU5<0044XqA_)DjcF.Y=e{ mZ 6 dz4๹#5h\ZmDFBiFuBUvDuN]fz[bmeqtvڰ:+5g sRJ+F, }7l~r2p;N{ƻ° 4ZcJY ctpob kRJ)XճnS,s?c]m: 3+ )4VYaSxjj8&( EE\[~3wSG"$%F+Qm!ke!c /Ҳ}.[^6Ne:6e XVCKp1#ƙ=A_KRG4r,ęs6/7q|9!}=WG@{u\)a%+}oOO/3 MU80lS4?nJۜugomgϳKM2.b03@,W҇gs׵'~c#3f3y=6_rM=  ɥ O>ޗ#ͼ7~fCgG^|?>C߿Vkgc>?ˆÜOBHH_߲!ZY%Y!DmB)K&|W8*qM:oGWyɠL&J8" CF˸Nn٧W !_(b7F'l{έ?w 1<>_?gVN^n79ys*!¶yFӒ`C4Ub_7~ynH(0(XDu7 W oXǶ;~ejU\/œM) ¼kՇ}_z=y#/ g-p+d78Ԑ~>Wn>_o =pyW֗wmMw/=um|0{M?X z{t'8N4nwvb- DUbag<걕["6ؒޞ 6G cݵfQ@K)/ר|EM?L6Z{!7eõV0/&Tj 0פvp[:\h4 Р%q#5Fz=Rj*L#Qf[qj !>mҋySQiʡ n4Tʲ.H֣DCMMُuOĨ E?8i*@Y-`~*ؓ0$'ؾGIQG#5"1`O%BQtdD6ʘnkʂL@R,YRD)!3_aJ5mr0ȑ@Gwer| J+ PJ)lAg|֛K)˲^2 (\w, #&Zg/oRZdOp]q0iҕy(B+`Osg ,;@Bou|1f,xvFGA@j^W֌vͣŬefIa!E41@͹]"n19lV8),Ys(ݎ}6Hj mm Z5|ڨa%:<r&yTOF;+"#bc ^@A??=\npםsq)_}7Pe}7)SW! Zs_йMVT#"G^W;V[m_Os1 ^@?JY⬹?GbŏVF#w_9舓]cS|tN+BeE?rƘm-In⍒=A +3 RGN1& c`)U(yvIjz<DU]1gK& w`1I;NMwE$~a1P*Nk_B slg#(eQu:`?Ynx8QvO-wnBʶQ\ADSfⰒ',\~&*gR 1j@UeiE"IWePwQ"\o,S)Ͱ-7(C?."@+y $f3 %ļhַͻ# 8A&R̒jv&wVJٙ r 'B1('6ы#M d F(p#,+R iu{Dd[eMؠ#rϱw$cj,^@i6~Vb[Xa1۾a˲f OCkclnˇRUe)ȍzAw.xJY`<,G`X`?m_p,w>)3]:Kgv$`!k17|g)1m[&c`h-y u9X*:jWt"6rL|s'[f@) XWXs /?e|{D}Y+<=߸[.l#PHMm$>!&Ys)и,$u> iw"LM)tcFHxPm!`v,;MtͳQ`zo>s5ߟrց]7;VNhBxm#6xX8w2^am¥w;?Kxp";EZfQZc]3<۳/kf ""TYj#IJ[h0Rʢ(e8=ABN  Թ+2" Kpe(V)%k@XJNQ說{u0y(Vnf,P R(@"EmyoFmx3Qq-t2j3a!S+T~~E"Dݙ*ժB씋&A ]Rg `fUYX&mnF^KI.3mzp$vAl xpPQP,ise,EƽgYEYGFbJc ?+lϟ็ ]buafǟ~?)|$v)X"7 +{ԵRZMTL;4$~,4\]di;,k)iNfVӑZG֊-d#,=vVҲPcblaYEUUvQO62] WI !rcXp81_rR{DJe~( )iiأ@hdFz3Bv:UY6Bү9wm\{it| y۸5 aQJfa`Yz&bQ-<0C|DRNQT Hgbͦ?Ct e0Ffu3Ӡ#,9Ɔ4rϟU^>oQ{x]͝ڛyԗWsv[Zπ,Ĝ-]|UouW͙an1mf{ߪvSF.p+:ܿ^Jdk(kJN떛o[lՓ_'G}7h9'շs=RZկ%_mza.Y#[;?eo{Y\+Zyb^}`Sq&F&1j2t27wJ)3Y̐gp<)_uݳvhqC?8_znoyNP>s VU"ޜ?] צkG0eΕ>;꽄޽½eY""tg_{U[5m= Q뮜=iZkmǑO~?7꟔r={ f&pMx܋l#v/G/u1 @Eqs yawW󇷬S_o;{AmW^{WG`+n]a꫾s>t8kQsFdӶb=T9Ī2)wMכ2mWNR=poWA5_ϐ+ouԏVmk}v}cf!١J+ ~3ulU #5vI 7LMF&{?!D؜9 6TjuqXJm"V7[ 9N5q&sȃ;)\$ 2=l_W+7N׾y4Ԑ4-q>F0ȍ'ikjc@!ŸRJ] %Aɻjm,O@(TR'#QfxChZCXQڤ_YDeJoLaι 6AYAk5 QU%"tdl߰wiAQ*h'$ہnE?0ٽOc8ܱGհ71 ^ND6hБ"-ɥ0{ڲ_]6K)R]NUaEdD<&,Ojm{'h # w2q _##d2q66tik DD'K(\QBj <[< !VD6 9jQ ^",ˢ,4J gl3ֈ %=ū_uK׮ySwXnm8_Bzͫ:ҋ{bM|s-߷u0sũ#1X _?9~爉'yeoͺo?yLmv+cS5~5⯊߾^+XF$A=+ыDb#}qLЛ?1_Qg?7鷿i21;[{,|orUnPN=c9W.oЂ]r:GWuc?rdP/4tAϊ28%3.%į')goKL;ȕO<˾!ޚuű^)d-Q}O4NdB 3x%@7"Wx /=?8쏧B@~Îpg_u֣W!wؑN'Pw5O)_vlѶ1hصBRJzu*2eeBo̵ƈ-kV"P `l"B cu饗p{67Id,m mKI{j ZH^].m YKY k8@czy%>0vAzG #Cc0 ~kKO{m&r'PU@Q׵Ru BFNdc sn^:AzɩJħ_aa ^ ݳ䕪> M)LpAn0&ж]F,V |b ;#hN&h>-L˰޵lEď #q _5ٽϑC:xT:{,6~`j~f6v-/hj.E;T} /dBxP^R,؁&^kØYRk0v9hYe%!JQ ]VX*VUEDnE<ĔCY }J1$.e%ړ\hcQzCa9YqPiFC}щxt ʈc$2Py #m- @m v:D{R*NpyeYjU)U]!2 b`hpt4B "EQeښaxx~GJìҠ=EQK DC]O/.Vxem003Dk(˲*,3Z3'BY6VL mtܟϘrN_Z X{YZæN-Fh׳NJ.^LX::}e`cĞtC$t:Rʑ[rE=g)Gd[mlkQ:?M[m 4TUUu*To qG6H:55D " dVZH,*BJ69F##rl(4Fb*;U5Xv[2%0̕ 62lg@2YLeT\0tiB@:E!ZwK.k|"2),/71<c.CƐ bӼp,PUpX /M}v˂@a^.26P~i|'hm )5uct{=)e!@ƠHwskKa}~Vօ] Zս(ʁNUUn7g+tG1AJjDn+}lF\-FYCؤJ\aGDDREAa2et0[Bd"躮6dfZKLqH&gbNnM,Ec6:IjYw?D,c6l~SJQF>e@sft̊37 =p|7a(FӦ=V&1Y]ǻTrv?0L !csL oIZ:J,cqŲrã^s1&[wsl$"6E2*"hNim0#lN` l|EV4ԩ)a`FgZJɀQl>+D$`&1Iy >_;ql8eIZ` 22F 1aD8BDł X|zQ)dCLA&\X4TlxUQK~Ӷa((ʲ(_* )Qf2((f񲕠}ږ\?s?so}޳G1K6{풚*tMVPLF=Hu,oDD6ȪA%hh!Y !Z;锅tAgt+*2^]'bA#<6 $!NJg!1C]h(GyYu]׽^YUY.Ydܸq]2EzB(.8yRJz`h^g۩03&d}!g5\x*gd@BML2B@h7hI,\Йc;Gv)K):"!nѳSٲ(˪HAk,RvRtl3eD0WfBOg4Zq̩W=R#ǥ̀ۍ/}6)Aͬz̭e%0G:R1xBvyw}z8Eb?_kwR252iPKi[ ު4(FMD%v}?7'?l oiͮ#jha@YH&s#"hÒ:%Q \T܊Vϱ3 `у3#Z8f#4Op)mxLT1DE0\s?gU`1(P Bmhf I(4.Pޅ3Q#o)R:T6ZL 0& 5 bq&--.Ԡ^Ci2WϸJ)S4NJ",Y wF,~x.<'|* αb(삯Ѧ( r`at^#H:DZACmRBH!l8]VHYU,*  <5 ă6,b* &ޓ.rDO$(74PeS) #:HdM$1օ:eikmǝx|2Ɗ:Y'ðk$>"-вHQP7a䟂0eҘ ,yf#HfO76dӭ,AZ'-;t;Tg5xWe(R-]퓙X) *Hp7sOsQ1$|00@!5w(hOp50p3o K<˓ZT˾R.kdт)FZ>ǡ!K.:/QJI 66Qŧ гTg> 1`K 1 ,(lH]K* R_bɇ^r/&S` do I1d^R -S?% Msl4BE7ҧvB"Bh2 D5X,n7CP;Rץ, т|Nz{(Rԫ zA@ɵwybhM~gt]KuU/T;#%jK˫F*V@icZ.;z6=R @hJ)@4dRJ,bOZ"x!qn){DN[06<ߋaReVJPgySXԺѶa*ZbY^,,ҒQ$ڨg/]@>( x(B #(D 7O3-}s~1% CĕtYgnY"K.Ʀ5207h;Ke1 ˒'ˤ.qq:1Sǃn\5Z)LIwOmxjP#XCRAzNBn7L`-[lPK50c>,$V[hm1ΔcȆmmGr^x~(X\QH0dH2ƻO9=ح$=!.\Tf=o!:[@ԇ)Cf}߈~ԪTLM I+·jgL/eR#΀ay چ2HzW"\^18)h["Ι/V08"RAۉ9NO$C {,=pǁ)FC)QhÕƔڶ`6-iOD ?m#t&n3 Ҥ4sEll'\c_g!2d/LΩ;Q&- sགB`]SB&jfz"UNg@ Q6PO&G?mPVrQ@&L"?wN %"@$DBQRGgMVk E6P7nB 5ػcnHeEDԷ}DV !~뜏2\JI)elPa좛՜lO6]BAB&S4 Wd9 PtQuBkoq۲U ?<޷]kU;J("'({yvb'l (HbdV " " 4{~{WzVծ;F~BȽUN(8S6x|ziR jl^GBgx\c3ҵaffASpAZ#L.*ILh1닙xȍ~P3m}I[i҈J!>pOwD1e. &Ke7wlfn6{ BM`rW9hXka09tTк$D@'Z5zNJf ) \d5[K[l.916ϳ Z; 6ꗰby04dc$KHCP6d4!+FyT?6^ 4M.|"EYV  tRqaC6fs+5{D9I8]10LV5öEOvJ7JI2=dRBE,ÉK~q٦ʙ Kp!; kf3AeQ\N'"O*HHX-%s\.gb!Ff)BM*>cA0q-pǮ"ʗ*#^Ģ4O'T݆{snݾ\3&(Q<̌H('*Pe[-ī22[jѐ׋]Ib";~j.u*`BSHA"J$\ rs,09ƙz2/BlKqaԄв̍DVTn413ʹ;ؗxfjgfB+>fcvs'© ^[] qw_劥:DQ%=i:r䈵yWbZ /r**Z5$rX+ ZG`M,v%6ZƖN4:U 8ca f`i p xDwO4qS+As"-Ad7lϮyMffrJSzjtcvj*9LA2SI~ /tͷ4J:@؂2 !"pHRKтC&- s?3[4آՁBӒqyyG"iۭDJJ IDAT6CZcEcclos`-؋p $iA\UdVAbn8(ZD7iaPbd >訔Mca;c fJ{@@/h;bg_."2>xe ѐoQ({cA^9Dϩ!atT3^cb.td`T1PZ|WWNwz;˟FPɠqԩV)IFk;wWo.<lXXONDKa3@XL 6[S .%ѐˡE5\7!a !\f.'D ŪBE/(,ƪu8>ߗ}` cΊBnEn'KY=p+:м^U-2wD0@@f@ˌi"`@#`%m%r%-!$_`{;Rc )zsBŢ "Ȟڶbm -dFBQ-dey8 (߲ly`,cSsBTȦ;ւ'đ8J0KE\?RS/0sg%^gyT2nj)Uajᔽ9G 78Y[Թ²;EF)Wu7WSRVd˅{Cdp3ju}(Afn*LE`458Ĭ`:Eiհ szdK.nwr[zcBƆyyXb\ ޓ!c((!aIDJ9VKCH*a9 S`0 R< RJ>ƥ)Wjk=W9d8AU Wr 3Bc)0SYل0ir3VԾ.&+7Ve۝VcGcE;:V|ؓbfT+\)To^=\J .8 sH L5ϙʵU\=2Nnu;:Փ;[ Ot;Q\a 1ČL2C4{ F+Zl>{V5R'T3 ¦õ\u#Va3~k XJ]_Lk-b:\lK "3WpLzjX9'̰3&NQ4a4ܾʬ*9 B% q/ a{ۂ8r98,=EwX׼`* V_5κOh5JI*Xk*r|W= .G@A=KȋVjC-Ei_Ikd(psZBaC84-8;l; h.we11^> 40~i*9Zz[ˆESq{>мn`t`ˋ US$f*ێCyZ|fsϫRjOT;(^!s8 㸿ba2pmގک ks9Dmz=# mC8ޑif JUbj l ɒ1F5C6'n7I8;D]/:nnȃŀI~"dٍ`Cl }%\"*䐔dA:~DB&JiJSgb9.9 cVr>A2LKTm/[$IR_ce\*ث=`nHucU6$1W#j,?V!335윓y 0qpx&} #BЙR.nFwƙf3\ջ RW.ɰw1ؐ'#uMoqvq4ΡSE0Y)U^%I TEb ɘa3  y;CIDLB<90# ["D#3?>*2Ո\1eAjTaE͢ K| kNq)ךU%=6W#"KJzJEswwQ,u~cajflC0VtmAT*Ѣ* i:[6; ^ݰAGn !l#&W q6m~K !%dUұb$̉3tD[8y-._UG[kpr3"BqՐz;0 C09\Ƭ9X&DRAH 7Im(ʅr3T|ɺ/[ؕ€qa0 RqYE]+µt2B=tj7fYrb=w3c&ѯeGެu.o<Az6֬{`ȃ(Q%cGhr`(ciFOO/&G!!xɓ5Hc7FFu`&&~7+gmޖ7yͶNZ!Ca=KH fh1qG%}qOL"2K.rT;Tn(Dsm+S⫝̸hED–Nf EphQ̥sS0#Vȁ@6OD QȉPQ~X s=j⅐7nFqh&9Gtb0Xn"I=YZY!*|Q0ZC%?@xXKtjiy:k-ېܣxyoi)Z;F'Np"#d=\zYex2Uib sT/ щATGOfYo4ю0V6 ͊>AçHtY yѰ,Kxq}-5r4KTfg5 Lw*-*`u io#az݆)Vѳz'JK0UTm1k(UE YNٶ 'O*"iAsy%9yqNz'Y+J-Vma*)v 9c|d1%>f0C4-ΆѨ4)P6.*xKL&8%Ze܇YW{§ar.vORX7NB.U<'2y?^*cѕPkcS)-?6֘$n^*| D"R}bDBOh_2V`SBՑO?.=C&Zl8l}0ZvW2P륞nk7Dh(ˏ$*݇!0,vD$2L"3D1b*AD87%JVIVS*QD )P)GQ.C֎0yN7i aLIv4!c"z+ Pw"c,#a"]P*(TX1>9/\Ш sN8n};.'v~]XMg߁\!q($f!{Ęl\3ԌTPF(Qkb({ByBDA\!VTyܚ8 y݋ѰKV[ݏzeK}V$V|9XcpyV^xT6UCudRQ46-(9WbRXrk<ۣuˎajeAe;Jx3$s5`#4\ػ"bGgKKaB@+z΀9>o2C>8>~W"Iُɹ|i DJ`79i|cH|`ch܌FR.!Zju,сAyJWU)7:j]a`U9k6ܛaôMr&v;۾D/j&$>Z^g6](A;6Y g&ŨȚ!؉ˎ*bU_Ra)?Xv! ~U#+)QhUhYBPEْUqOϊ"7)W&dQOMS5XϦ .j fAnEY`\e%: gPY̋圼kQ["ep *_"r劌@Hrͤz `/IL R}4Fmk ꕱp\*lqY#Tjb;6gìYVJXZJƀ1fvB|46!!t0ܑ W_ ZeJF 2g6 t7 A0 f [lA_o bj[*- IDATuJlBɦɨ6ZNЏj`v]cnl"PQ2(տVى")ʧ6 #$ξ2fW+ok`tjnj8%"V;'hz7T1?TQMcܰY&a#OgMQ`ZmFovvD%fs'.I w4R硠|#{D>dXUsR™: )󒓂 eOZΪUGIDy6{{p.C;'FT J'Q$e3$&(!7x4y< \ϩdE@ρ] Yَ6&7ٔ ~NaDu=U)XT`^A "k8f hiIb[5 )I?)tZ:ʬ8eQ8YѪ͒at urUAaӹU2Ae@)f_Uc5yOHgEo{\^|vy;[EݺVɅN'ͼSŤnG&Ҕ ^Sy"5qE@/E0DB6r`7!ٌ0{OD847$LTssqU STA %0]/ۡLpM/|=#,Ev6fi *)*b0'}] & ye"]`-7ɉ U5f;$>dyr>@c*'keQ Y(iXIQ[ TIKdRҀg+׺SNV:cKAG2+TK9mdx$U%tc`yT[ר56a])76֘wߍFmG}PZRF-wnVa含8k|w}'jVuƤ̊[c"!̾BƷӌ(#l$hl2P;.ό  @T/0vf$ 6̨pN]Đmxy8Z͌ȳc W\H<ߊ[.5BE#hQis0VaHٛM^vI*!ckn]p>3$jU$٪\R%ilQI#^ert+KJ ֲRw`,uX뼨4Ӡx:J\ضfIJH]~5,~<ĂXZƹo P7*ϱ?I,*!h  %T\nD OgN籽 rmxY#6'fiiQjL]T{AL %@/@`@Bk-OӤ[F2!MufBkS2Ӓu昄@YyaEOVI\Wg*tF rf_)uY~(ec`XLÿDflw<" jnZu |Oo|9ւBC^7=lx 0B b!51]{qEBȯ3ԸzxӜ #mxdz?ϞB4vv(y9W*lk8dwNiBÐt{7;iAn z]RX\!B!ȟsbGs3.J;i9fK: T2quT. Ex.ɖ'fXƹՑeu8"6xaƁ54F[ ښl1^Pq0Fm ^JqjeW 0q i§#aqQ@yꁪ@=+̃6J\ ̈́!k-@h6]FhVzJ1];Di'VZ]oy&3l-$j@RK4Mqkm|,d)^w ŝ|o1Q00˒dm2phB\b. 7730n* @VzߎXKw-pC`c(>!t bqSq ! =/6T-Q%Z²`v_ ~*W]y˥֌XI9ZJVsQG,JZ2hHXb 9E">jaMJ/5kΎAhi"`"Vd$/eMճ\7mvn;ME\E*hK4i1sVܨ=XHAf08;晙qMDfGB]7#<fQ/dej%DBtϪo1d%2K8V"CErg:\>_3~a}_(>wsυ;^6g8O}{Zw ce판:0Ƞ+ )jT ik0wS1R[+,&q ɿQ(%i6P?CI(zĻFJj4~Ér׾Wn&GČ I_G%ejeTAq@b+]ӾZ7VqX BWcվ2b&>2O|uSD9)0[dG=ek6r`J#gcJ4\ =QJ3=2O)2:YkeybFlv-IOjVٱS(2J:O $oT`nj; \*re1ņiu|ew:K;8];<#$QEMJP,;XVFyp=I63eDczCqD؍5]n@㏁%-x?lj;bܒ"yXcݒnQDbg6ø7++|$믚 !:724MVkT>YG;:qթuɷ<4`hFl! ʭE2 9ɸ"YktlˊKY-5FbG\s"0[*nW*25f M@:te&F}jR9;r>)\mqQX$WDd뤳FZ31Ԭ5;C`C48ZC|cCsiY>&̖'R o9ޔr?!,\o`C݃NmE?|?NǏ?|VUK L7t@{q>~\УOqĊ kGrNbnQ2NDA{?L჏;{Vyyco9`"y6 7N[% L$\\Wf-i\3Iw{͈MIBA /8gDro eFH!Mc8D삑P#cG,P@ nUo2C?;\:FB78l#zG#)3r ߪ ^94**vA7v*q7eŘ QoivNRN [c/ a Ve 8;zֱ$zϫէ&4(pɉY1ls7*6*r:OrG,KյRYgu0 ^d;e{5+ՂZBšW}@~r[t\̘+t!po[m#/9WP6ew{ǰj*Uugt"8:G %j4P msI!HH)6y54dÜ`$޻10 V}՗ޟVJ=^`{}\kʿ/w{g_[='~N\bUܵb^?25_ Jˍ)c>z54 +H뵛8_[w؃lhP,m̉(b(ExzoeM-~Ϟs ^OSA|m'A)j0$_do>C"K[  I\<0 <7Fn$*^z/{G}`>~'~AQ$I/mq+;ϗ)~͎-Dܧ0#"ȍ7mq|[5U;̿V*|li |ѳ(J-xeGT~JsOz 6x)Qb*h[(A۸R="kuɐ2D`Hʀ:|']崝K$%$V$?&-OW[DVJk+貳9d Gq@"V.=Ox ۜ!5HA"$` AeϯlKuʔ:,x^ET*`0&sa2:rqpuw j ĚB;ْAo"خ;c:NjfTAj2{~Tyr-|Z0 γsP˶V!h颓E!`95BCtx1Rƣ1Qs A/⌂(!Q}"L&2ffXsO$W d1r|~s}(ABƑs<Z dmrLJJs4ʇ@!W+ R޹ys~./e"Qt,!~}x q0 q4F /\E&\ar.r°8lLrH]Wlqg#q>q e ˽v:) _u*%~{T~\}uhnc+~/{s'GϹt} }ʑϯw?߳oѴz;5 ^4~9In%9$! g?c׾ogW?93bvG1=9ܫ4ED," p| ؘ0xAkEȽAdN,p% Dhs]D*Ӗ/HJ$TSbas"rQ 3KK#Bv8v~F;5YmyBcpCv\AS6u%9 mxa{`=>tȽ LP1D`!ifpqE2z`eta=nc`fHsPWąב hT YT8,NBE1*Lz%fww؅m^WЦiz0j6UP'U4X1|R>gpsg+hƌm<ͳXa 8N}Yv19;7!i[y5q(<4ΉYLD0Q9 IDAT L3 ͕Q@DIzMp_OK>򤳇*zǽC_ȅOMݱg>#n'>m=>w򍏞%_fU?r獯س8v ޱw?{'Z3}x?xC>v}ѻϳ?G8" 9ǟƋOػy~q?_s j]}뮛0t@sxD^q8qo狟g_۟폹){W߽? ?-/~cF]DDOWWJ\y/y/?ϽNͭokm׏?p3x^;m~}7膠 &U xEפ*q=/=>OY?}ǣG}g?8{/ku}?pFxYO}[?]fcz4y {7^/M5[ڻ̓__kӵz۞\Ww;䏜aT2,SVtGɆIHi!>nIZ$\ @{^R\HP|Ҥ%ZM&+ܶgkL/ω!ayzdɽ!HM6`؆1{& v6 Az]Fdk,*V (^@/&Eիn6B홙qc7a08mFc +u3o זFK@A:_^԰VYP, ɧH Al\p $kXS64 8kA)B˯AqWuj"/3p5Z%A՞^\_"ˍ>dQ&".Yů;ֈt~YR\yF0``$ +R&v`({ yZ&½q"d&E(mLn%`⏊4[q3= ih7l$cpMTVZ;"_K&'UV({0c(vN)RZnj89\ԕX*PȒc)4 oMYJ,l$yvC ¢:|;X`^Z#ӯ0M754y˘<hj-lSs}L"yL(ϑ(Hb _O~nti79 p[o_ewKW}hΫ~cMU/x/ ')s_'g+ ^w~eĵ_Sg{knoΪvX k3y<|?yN?cn{} 5<]/us_q}3F5;QOY~.o|_\G/|o`_p^> Fx;p+n=yG؜.\x=AOyo tݻ]}z;S^suXH~쟿7F~o~:os?sG.|៾}q}ݧ'}Kᾧ]??x{9w8RY-HlN3kqDDhJ9G|W ‹9:u1s<%p>}{~ֽxd7˷q!,:7O~7^]o<`<}S|y|ur?ag0}X]/x_}zjۜԟ9#י`z~o8_>M8?>?hO ^}+sY 3;>p5"+[MRQZd *b)K$igAG$+NrkL#C8DbiB@͢,(QirLѲ2zRfe?劚kR Át1shkZUd"q%$I{f7:A)E w$"6Cd}_Y3+b~8 QrPkR;-TNπf14nfldl,f;zd\~-QƋڽE>/d|A Kg|H'ΥށфD U'˩5j)1a{ɪEZIAcøN]lWPXWi@ *=@zIJc%rzfu҇s擄R!. '*o@9;?03{Kxd̉R'04 x<8~ m>d)%3\ʼbHn0v!Du^BHrHSh D-.Y/b(K@ аZd ruzʳGcFkOv*$Wx/GiySҶEzf"Zc,(<)(j ynd=ƴUbX-vchjh#R> w(ppNRy@,,ȐS,xۭkއM!l!KO~n}g{=S/Gܻpqӝ}ۆ|w|0̗<䖏œ,O(Ul#I?7/Zqa=_{'x{?>mo:M~70_uٕ o6◶.CU vfge݂jcukː1hlyQgPV^=GU 3S1i$n")IuҫSBFVbi/HghdkyD"%R#F U7`@6)(}bG)dB9ÿ *EdQTof@У.7״/+*:| a:yG;Xka;A DB ~5? 'Z> 6ZJZ/r2Q'5 >y;!0Bc9TBydmaz6xH`%6T.^ӢWjvi;O2d*zʉZ*`!)L׳XʂmMD6L%f.,:75 M."Mܻɗ#vS+/j2QW}K?'v){o|[a)_'vuÑa'w;.{ٷWؑ :uW~m)w~]`s{E5cWϪo_g&Z_W}.V瞉ܗ/j`N#_v5__ᷝg8f'Qo Ի?>m)>O> ǟ }ϧ7:YM@0p]ʥ|Sc(iuO| fd/|˜zGY>e{򔿿U?SfGyȵPZ;?xڻؗ}X[y]`8S \9wEՃuuO}o{^毼[S/)W/}׫AvlNPF)9¤]C ֌EVֳE*G\Dk_R+s -}wU9Vu A%($u]QWQ@]L+b5m20k0CJTrf=7ԽU=33n8~ŚQP%O7)ɲ4HŬNE#C#r\ bE=\U҇H'|EpzCT$%?)U čP7"U̜= 47i@xʋdRV>*a^ L0ӗ9xBqwᚚ0 =:taɠUm iKwLKf86VG$yۤrs4= H a)/GD ![qYpt#UqOc#8*(V1RS]DaHO5Xʤlo*픸"JmRn|5-9io{=wq<+s^~eK'rP$P7ȱBD$}zžS߯{]Oye\) #ME!$Ma5p^˷;~w}taDO/߷W_p9>(r++d"e`0ܯn ]c-nc~sa$}lC~6&)C <9yrG%UzF&+{rȐӿ_ ;`R_ZZ bHN0ܙm ʴ@dJ0 "覤ē1\PnKm9vi) F 5yi.Yb8c.B6p"cd?Mɟ1!t4#Nw Im5*dki6%;"MT;:!Ew= AFQKû%!$XM10ʄ2JVin布 k|m윒\3p.B,N͙ @[4%FnMbtu1;y\bcmQ5~A&R3z<"0XSF7 #R@ M VtF YYn^ZC%IrI_a!M3Fk̍?Mx20GGgSZ]4GXR@dsFRۧ4oebЧ^tӫk{WJ#ip}^?VTj\pXۣݎ==Ta?%W)C;~mO}lݣ;5'^Icl)ba1JPq'.w2wewo]wo-mJM?7@۝ 8_^N.͵=p*qMAIMYtJy" c3*FaV O7v'0kݫAl C֭{tܻcU-7UIPiښBO}޺q3\f s_<1սb! BḮX3Z{س ND}oK[׍ktMTݷ&D/lt1PhaQ{wۼVV6N|o k;/]j_ZI:q1]J&. QLb~AX,QS|SiEd*暈X&==6n$G.M:[u \0?{igd=X&Ere+`wM!8-97P8 !g24 !sP1wj^sCރ6 ُdvJ>k_b88j Cnm~vgY9A-s(S օS拌aű`l1!u} /A) Ud [^T {0 $&oCv:B"sGZ9DBj&CQуS֫ YUrvYfA!P.BP# gڍȓ&$X9(`U8q ЋOn\?ui.q0Ȱu?tή55=v_{CJk>skqS/toCm}bHki;>^ٔN{bjXlΚ,n{z[gk/nwC>ߔV]u].,yػckS>W:gîgs?gV~f;9mЉs'.^sE'?Wn; {6q+*{N\v¡':_q^=po7}C{Y^׬uŎЬӰvᡙN;M}4zt+[iqd 8d0.SWL_ 7,z~7KW}^tbݠ'c=}8M箌V!~^Ǟi7axdv ]A2O^*\Ӯiµu-G4m;ѻg>{_3څ ~^ǟi7a)xdVSj4dz_>]yhYyͧwz{ 7O9?g}w;/.S) ħ/Oۘ&Q0ʬӀT #Zc!Fqs@ımcG!I2jE?'DdT>֪KRbmSG.9˿tJrRGH'I9^!`k!PS| @'>2 E,Ϝ~R' @ q)W0ِ(ݓĊuW1t5S(:R׃т:]DCy]3ʭnV[AWO˕VӀ!K;R^L[ֺM3M$Ι$IB<ɚ} 2@N'[pqpv Dt1wܟ)yYFtF=" 0c$rRo]=QNNs\J2)=p~yE,Z*#$t̜̳S䅠P(0$K K%&crmT蠶` ## 8cD!,Jhkw nMN)g"%;A7R(- f*IILm煀\r%)h_lYKv l-_;|` @~'Z5EbNzd)5>"R549gAQ,q\*JewWj r R`n"IRI)^KaA&`9*N\+ J-ϻ3,}cl;N)/`?^s.e0v4{+(Ki{W+ո)D@,&YJWr?q+G0c.06wF3@Ba,ɽӰ%QS&KkQ{CyX3U$8R%*X*aPSSSS,*ѯthaQIăU-a}>d&C4 6:)ȸ@JVEk-3]N!PI}GUȡ)Nm2$< W5* iWW4RsV`UrfwevWy:DB~&TrڎjKcnO<'t2 6"bDMbOaVM}WdJUTRy! 4 =TZ U8c^I\nC51=2H=&Tz3uiu555E $T>$sbȦLe!/^9$QJ~.sES\Ij+[H  )b !7C5<tOO)1YczF@J`2ZB=owC bdYt3Ϝuιz1vzDFD*%s(b2q)^* 笮P(TrVDQQ,HAP(cB c ,(69 4NMW onm{8ABZBM\Z|ꎆA!̲qSg#@\o8b!ʋBVr RJ)dkhKƐs΃PhoI+[99PQL|5kW!ݦenC[yw8UǴ{jNQ)ݗ9Ĝ^9BYN bǕpב%򺜑-@ٰg% !SV҆GY1U ElokeWGI&v' +uنmȗ0I@]&cf1a/ W5 fqx^DHUxR4.T+m2LwV9Wi/e, E#)8s](-Jl $U"*DWUH~\"#ezcuƷJsh ukd TUF 0U@nfF5BYA4Vd7%oŽ3@塕h}aR??H@3>!ꢗzN!'imH= EONR[aB,,51e@֐KP+$~r]+%H @KD$p[M"RYT(ZXpjo*G(Xl$ynQJ:&3 bfq!àpJX'˄f6- dh?-&A_tg*Lk2EPBW&>DSV&^[UzPIҫz_)bTjB * >+kVpD)%3R!1L Ժ@ rJq\-^)w}''09g IRhkI)!I)$"'bys 8Vj6z!"8*XWA`ZJIRKR\dJ"n%gR?P:霑U꽜 ((۟o]ۆpj8{xбkK.'aQ87+Fo.T{H~eZ)&8)2 NҼq!{ # 灎zM"!CCV|9"sUn1cLH xF)#5ɏu)DLJ %Q$)` 0bKGqS %4MxɈKV90 0*) d$UA oj2[dgE8C@BF$H竪dȔW"\V t*Hg3!7AƐq"ຊIgN!Z`LB۶%L"!ee"ua,B"ըŐԁ:dx)nf ɢ[PNcR&7J"#$ rGq9 lԵl5̛q2 ["c=U})88gLaXOd5cGkqN$ $(ǢJskV/fqnwBTO 5ʁakrחT6`nf &rD3v˷E y ,A+ VN-:2tJ;gj[,$AGJŃHZwXڳƯnLJUlH+NBڲAQHQ)Vi'8u&&`uc_7UX=;./ͭe\Ʊ?d dk+b$@>%g*E$=S.2$NQ e (9pwXgZĀUedD$bFLQiU{ K\cǒXȁI|6L2Il]Ws@(Q@Ah !EY3mY.bmmMaD bgC BFq\.K2"kQW[S, !3tܳ:"S|d$ z1YI.;[E*Tz:W2Fd yP9٪^ʢWB1Wy@`6U 52;vdb0 Œ/&nPdT1۞ɟ̓NӰZ_3/R&!`eֈΊ2- '*j VTls%*Y]U:6ˉx0ȕIi̓$h:kYLU+fIW _*\'S_@#֋Ԙ H?Uc1'JDc:qe Q]8Fh2*U h!Ej @FXWQT$8!gEq]>H5k&R IDATdY&%0D+&f[PJY VmVV?X(ijε"AcBbiK0ōMMa$Ldr%4xM@}C:Ƃ c!@n 9J2❱}7ylӹ#*Vx Һ ^Q7e I*ToU)ݜу *NaNg$i8wz9M;!Ry/IƀX_}b!eaLWo?fV|Nܳǟ%bP\2f2[c=gX[(H(⾬tIOrʾ"eJ3VXHݍ3QxWS?"L@aB(8NahYV]5"B2.@h{희A\21Q`84Lr*=ү 0fpszMؾ+[ّt5bA Y.8N5-.үMRIaT*56jfƲO=HI)`sZ[ȁ$ %8VRF RRJn%'e`H; * al3MvnS5q^( BK6Bƚ˸2$"f\Wz2:i9/5g?._9weHV7V?cvrTI?3fOamrnO71Z]/f̪>N'~} l9<_M 7?/^|OEYL'ˏZKq\ Bg/@ ƈH!SܷĉJiͱJ>qem!sn/=!#`"05=TUvSVȦ,V%d乫qkR^5 N;Ǽ v.V̐+nrnc{z; w@xXjgU.VɕXDT5EAL%" *XHA-ĸIG;/n4CL# uBMՐ@ "AV:9f!%D-m(P"YtΌ 9jL gBn<,տ_(6$YAJo,V!*1J)PߔURqT*E4%*RJ)>pHq,VNfnUG*HĕY^Bӣ%(G9'=ק.QoX|j7׽.53sV_qcO{^ ]c'{?^A: %v&nz( @JEH?GvՖh2$Ч|#gSv~ (/W$׿𮔈,ڼԩ>εu]qds/7¯ -.iђ^mXwnkoa?TK%^lyV?ߵas9(ڠ/.@8(y@"T**C$u4@jNg2UPA#niH{%@@V*7цj4H!(R(_AdTL`Z_͓n9w9M9:;g!vݖ=5Oamwc$}9/v϶ɢtxo<01M:N}]Jk~;&:M7Şd|5s/G%6)!;hy'wxvZ@Ú5bg6~J+?yQЧاzl!Vgh۶4]ɟsPc!%{e^3/۸{橓sw/r ᅝgnkxSoݷ {74k$IO4Ǿvʱ{o|m `m#n4'ƝtҿZvڈck0GzaF-= ̺3^]IO{ǿ[Ymz_|ۍ߮4'cHWO=B}9力/TJ۶aVl|u M7,[Go‘E?RDr&xA O|M$Z(;u YǺpRP' e bsVUع_v f{}CwX1',,'=خmy9:{onf}Sa}p57OY6L{{aa?wNm lۮ6\B@OzӡRW<ݷh¯~ݣsJA _y킝/'̸ȳZ%As[xֳ[7C.Qnr~;+'wIFxQ|W"l3Gx@1Z맮9$8ZpPWFܨWGîPs_%E/~ǨpwWM~7>҈WFxQn [KhRHS/#F2"+E8cuB,D$$#M#I@)eX(͍q3@F$cbMJ9J[6W= 1Tz Ia6T 8XCD!G&2JSo 7}YRQVo?WlZ #l ranpU[VdlC_ m oDERI=d"d^\&xrY^5کE&M];9c4R U)g,rRhXqERY`6B*zPU΍&6$cŔ .[\QrBAYb"'Rsmf+Ji6NUu f^"-(Oo',f5lW +}Xzƣ*#We գn;푉g|[ 8f`zrwIa靚wZ3yc;Ϲwֲ5O9j x=8ʆc ;לһשw?? Y#}pS:^d!7Λz{nrB4 Obe j n@9oS,̧E 4ӴuaK"!J5D%"Ԝǂui ĴHfwD95|=r|gxn#;;WvY9SlmpOݽIRH: P"Ҳp!|MsǙ'pՏLG~_ZUsVm)l#~{{vn㘿{Ev=gv kH>#V>y٠c^nn9uՏOh `N5yM;"ؽUHv8 8g6P=XMr=}ͳs%ʇvĊNpz}gu/ BA7 5'}̹W?:AOpA7]k?<1lFr:c4vb)UU^ "!LI)M0ȎUƃb>EYn䑔BssY0Mpi3YTĪ!1ѺE8֏ E(`TFMtE` 4Enj=ܐ|,3L~nNg+jV` Bl1sAaJ L\GT) )XťrIamM1 8H+nKX-\.s[Ԅ!I)Pn)c XV ,>1ȌOĸ2JX(aPd: 0JOWSd}`*Rn=H4Ax f^Cӌ 1uO5"Mu*Wtn^yOrj, 0(8RpdhLUDCG2 M)ӬHړCU\xN*֒hJMgT*g<`p R"sΝV>2]NMS.j&Rr:uaB m\ι*62*x%Iiʔɵ/ 8nk%۶M7k؝[v߮^jmj9tϱ7 o]SF;V ø%2Ǐ~9>UGyC3Nآ2\gSFt+? 26c6{]ܱb8eYv}ϼꢻo:?FDAӟx1ѯw9*orAn--{{H.קY7{M[G]w?z}@c$qGo|广6rA]<94>:aLw@l~-o)k$p?R1/Dvk>zWvͭԧ0 >v']x5دGVD9 hHYqnYa7ɘW $0!Qjִ~mͥ;|hzeݚ[6,JucPZ<٩u!,`kފl$TZz^AkTA|C?]z -8$9WaS6@b뉛ݿɣn+N_a >lws."Mj gr9֕M綴l׳yvV4?D ?Z CN ߼/Ni%w>s 6в/g.Y!hُs'06;e] IDATvJ ?,)WBMz-tn&}\㼉Z^'vխ|GLqn}·.:ss6f/]%aO&KW󧜌ÑLTVHHc/bZӲI_^JʟԃCL "2&0Xʭc!8%[~Ʌ7)M=^}f6K{&9WjҕV.]0%M5}I igNUUL l$?ǔS2UZUʞ !l(5ѿEϲFZikI`AȔ9/R|,YjU'G<\kPhH]NQ 둰cR{h?~JZNdzHj.^]U%Q !G B($d@<8<`XR"X.DZ$2&wʤ7fL) )GEmTAp@@1kD(a ;֎ɂ 6TD>]9@>\QT0Y\-8ُ,#[B;_lzI򗗹xeu T[Y(KZ=("~VN.E0x&oDPg|1DX:ɨu!+ V$AR# X#)dHg:8,BXLE-39̎<04BB)`ީ$57qRt$1egT8?'iK85Z6DTP=f{?|m_Rnu @Ns],tQeKaCbisS1e<خO=0 [ss9ﮭ~aֽOؿVʙP^̘>·?u }}J G 4ՏSg-os"߹ԩ[qïFҕ9nBY+Lx]_mN֑3DwkݩS7٫ wn>D~Pbdоl?駙+|ΝjL\Q96-p@m/ Uh5FPlQ`=[Oܴd+a7օTk᏾}hʍGZBH &w)huyӋam3t 60zn[紮;]uXa9Qˢ5V Zy[ҋ&`k 5qԻW;xdXطv5q;5xcj^fwo[iHԨ:hc{$jE%Le"47i޸?9rܸO^o|@j*Ħ/C_wkwГjPӜW\lIK6~ؑ23&*%fLiT7֢'F{u׿я!ni 6}7}Y9yZ'>9=Lq/|zsM_3&}_.i0H]@a,Ԏ6~#^ '_BEQi˜Jd]g?'j;n'F&L7XH4oO|}܀&Lw&jǏ#PJ&Tk>oEL2UI"8 CZjq[p2.Ҥ'h;I_=[OzQ%11X\ʑ"ɵ\ʚ˻UI2GDFsDƆ'@)+! sNDq,4@#sRsQƕq!s΀#:K )(2Z Pjf`F 0ѵ3tckH(Vvz ='gMTRl2kev`Ѡ-Vn~ψVqFIiٰ t(Z:صC+H8+9g޻.(%v`T KQhbF HԀ"MPER;3y8eΙ{w>rw)OX/?c浛V߲rjku6U,XlM= H_'BN uhvp-?[CGUoY-Z }{_\MIqn@ދYrv},tH`l iSTu(0PcM=0vǷ ۲wNߴ: ?k޼ۖrS Ju+75 VPQC#+D@ ){#< a='~&=춓{0 M,_EqWǕfsow~8t¤3xy/{~3b>G_xy/3:nwAӆ0l'<:N:şRcR9 O@}{^\i6lİ}3xy/{ӆw/&|˫A)>H7}?<':]>|n;ܗ,∜+Z$:}{agc5iXsAo3b=}iuP}zc_9rKɲ 0#ꋙ `Ӓ 4]DVR_n46VDS -FrR#+:M \lGL{r >ix]J6q0&6NG> 4xb'& *ӕM ̆!j`68'΍®@4yNM3n K D B9Ⱥ<,<[% D!C!FQKŀrB^DQs|.[0~8Q4Ok1}'\.Uw,\Zs"ٚv $?KY 3ۤ|- d(DvEyȌ-М[Er&@ +,,+򏢃wF))EN`AŒ an˚2{" X/a8FYPҋR :+PeEQF"H&mNmD"*JRQ{KD%+N%o3$H6-Y@B~|]ˤWQbIɬjX>!YTrS a{z#o D9k#w}lSA7,[uﻭ0kd*Wtٲ˖-_(Tp,3]}swf05On{m[5D2۴Pvitvٳkg)Xܹ;n^9yE0.ύ߾{]k%=+zw !!f.1<Ȣ+~l4o;TwhҪ^$ȑEw'"^;ubuŏ-vW+~;v.Z92 hH %߭wU>TCxu-雵!Zۏ7״fe˗.[|uS2`]QD@*BY۶Dى) QPPȷۙbD# 3 v,?rA_svBWECba 5nY8SZF$vޡK`Բy횺b]ۻzߚTt1=WL}si0n=zv5)WG@@.5Ffu-iĐ׾[^sC)H6~w^~Sw9tp;)2V~5 ۩=3Nں1|;'{ԖNp;'wL_ԭ{2J0 SkEdh,Xo̾OuR8euNݺwIX7ι`j·1@!Z\Ͽ׽"wCטSy9w.\%84x0( 0("8JSƌkDV[ktSmQԾ`i[h0M2-97?6%Ͷ(,/ĊQy{2J 2EaN.q))%&jjΙ />.t;晎C&!ݐ"*!ц.AZ @FRI=^[f0HTWW!-RK\6_(s)2m$eJW%\GҪG0,vd?UZ1@XsYڵ ͐!rJly\&IaͿ/gKfHaLVT6ԆblD(e=,X;EǴ d˸Fq<9za,,U_m| !5.$-G=ﮒPi0IEVf Fq`d:s24K`N:&WWA+Re\Gf23s@9x.<zt^mQ0DuJQ:#(s+AIb^xO;}׳K;0tحN}ct ;s[פ>h!CuaUACvڷce~xU~3ϐ_qpa_lTZ\:=^y~+o n{z-w\^JxuCؿcz Ӑr-KzW65!y>hCn13v؀>CFw7ب>?[SSg%4|M޻so^<@ЫoIc];ۮ1bڢ&Ӟ>_.~u!; 1U q>ŝ޾SJwt^V 뿙}NwByz]|ν{|Ą {5xe^0=힅 6}9Gξj/Ook¥GһnGMbw5^΁oh33_A4=0wR}O~_UsyoCѰeӃE\ǫq^Wjn~<#caG]~];P]fד+~ ūg<[SNi@z6`;a\_nluO\ӟz'N# $% *Ba3/;=vݵG~-ulz1h|rjo9m^w] #ܡOמCGwū^1{лk!Ïثo뒝)g^r{'1~DP7k +/|qͷ7r>6kvѮ{cvܻK#qw97޶c WEB}Nm{q^7.^Ӣ䃺bQs2Dsꎶ~ԆrACzӮݪ Ù?f2∽-^ r楿?rzw9tĘ}o\3?U@R QP R)Žt[i_[sJ X50h(%d@)3۬3nnն)ΡDqcmڑ)BK1SH%}P_fdI鯔g8-*Θ @i8GTȌ)=7!G%l3$m8;dO[L#)ѤC &AEͥ$WU((<DQX,0b1B}瘄L(!"A5"U'i*cZ!΢ "il1z" /H[eE1̦饎:bq'#e:6]SBsƹ *bAcR=PX{sL7 e/7 (bSrqٷE2P%,M5coXQ},<᪮^ȋd|O--@~L>N`cN}.͗=ҥ/L5D`ٔ˯zՏC^O/-`Y3sk%3V/sOsS??zqx\U;^4eJNyu.㥟xjUSJ-{N { +nT;^àn;wGizSO9ާN>vuVp_>z_.ʂNc&h]2vO,_X'а{OYbI@aW=}}>BA"?qӟ'cj{hXνoELxzgt[XzߘϬRl|k;_>g8x%sGuqX%dB49Kz!F&5R餟͝:(V47-KyZ[l/kk㦙ØtKI(oY[ uu3Axצkv)[_(.vz]9L^xu;wظ;pu,VF>xKV#sU^ +ν al*Bqѣ_.Uuqx^huĚ""~.맒aINuAvLl{.Kyǭ7rƛӋQ"u%W_vsBq3=A "K?Ox"(%?iIɜXա-QpRX=O/|t;[F.J$]tLuKgTꔸ$o?* 八:~sšR󞿻eULl{&LZR%Z=薫z=n;ᢏ~b"ޑ8.m[5}HT,v>N~_Bb1~߾G,sݥ|HaF<7ۢg ST8r NCз.Z2:B܃ t2&rK4ɭKZD1mЛ![O 0,6v=Rt\"f o|N:w05 2zY~Ȅ03*KQ"F"RQIX3 EB"6 42ڠloKqALsNgEeD#D "#0 P  ð> B^]sJ0"aIƤZEKh&;.1 IDAT<YAE%Ӎ4i-_JFggLL". ^U *,maJ][smۣ_H@8Z9'k! 7^xqTBh cWZ2 lX]^MSs؎]bw1e&H;hZU‹|lF <9;;mt*LpoLDxܒA& QKC!ǐA~jX!81!DKX,4~,#V1l/*SELy e> Ў #P0R<(p]$L*@b{s*K> W⮁כrtS*h'Lӭދ0\Ca@A6SC,Ǜ T̈d/a`bg]L"h3C!Hb叄2[lhMeʞ$ ,Ĵ}1 Ѯ*qf aT,Q}B',<,3DΙqsTQ@R$ uLD4ES/N܈ r1:=@+Ǎ%D9rz  ]-2L>@ŢqFQHV/{!6E\ $ \Ķ5DS*"`%dzIc6.~Ha-ιO`q8:s'DTn|I4Ƌ_ #3y20WEd-ItF*QRH0e D0ZqkFQ#Զ/q2D(yETLl?p$Omh&WR}4ZDK"I֥Ŋ]VAk$BBE4R@u4w&Y;}0KN,Erv:Tw2漣j: )DڊNfk^" k@cХ]6;v_`z~^w#nǽmWpY"la6hU˕Beސjm93lFOۦ4"\cZeihG,ӢPHI[2\;~O$)2Rr_)g1&%v6@)Aﱸ9d[(Efg 0`xu~:3[ C$Hh- 8$L`Hu1.ɪSgBЂ%G_Fn2Neت%c9? ys99йmIOLp ,ƩI{$~kb bW&-T:c yTl#SJNօ1\.M$ UA"˺lfDa)Nilk Gb3zcB-bzgzϊqٔާTM:pt2VCM_O覘+1 BƖb1 H4R  6DBX2Tx!8'-$%<44#/s9Ή(" "@, : YU! ,[3@ uNAJ5==i#˒Dڃ<*,J"u guiA(7WD$Ui<֒qج)PZEྦ2M-Dla^R2T;JYAb={XX"CF$"-9gJݱB(.F1i/qa +IkHa!{3cAYM x2Ҋǀ2ZS{m; f{ O9qi0kzr;Gfi3T6)[ۉ-7*BKFkkLnh:C1E TCPGz]'>I "3F `69c[/v+uΝsӧfn2:aQٙAEzX7$ѩp`v(JHO5281GbNJC[k+(趢m %WhJBJ2%sح] &jX{jgS鍜8"rPEvcbFDd{^.,7MM΀!gL9O׉"!bsdd`egɊe)k\W|>=O" ʈ!;jJfUhcJih!1l6WYdd=~YUa/,T+_ƭHz3&HHoD=߳H[t Rm,)ZUU8+6KӎXQr)5r8H{@凂HU_έYuLD$dQD6f0 ꪼǹ"V1 K(  ^YҪq?<2#P$U'J 'Hmbf +]q-#Re<-U-IH\# ,jڳVft^ݹ ެp}'R$#aٞ13AP0F F)DPHSx LTLhcXJ4>S$ٲ܍DaagíLV9c,QDlfEQR,A ƲJ^1"!Sol'Yl(K-zg6DBDdvz'\ m>DO ES4XMrB``R20 AӴUdfk؈YR6!+?3YucSlؼAm̾F9J,(_'DNZMM4L5m1VV \HlVv-q( څBf ܓ\wEߴSvewJ=Pd(cq:o.b ˗l`.眗J 90|(T~wlF!)3,=ᄞ'eQ.mtsTkvw%< J<hhqr˹JnTlnj<,sM9"j)Ll)TxYUOz~3j AfM庇PQ A43sL I*()s(KnoNLdcΦq%FpY^GiK벬،kA #{Ȧlョ'P2u/W:T>LZV2wbk@" 0 CA$]d@#Ej?DӝmUwee)ylvZiX>x'\R0f[?s%ْc=:T4`1dOdUFW"m r9! r@T!66=jɝYP01jg@G_ٹFdhRS>7 ?js4KTE<%0"&;vfj;˻Yh9HfZ%}D8Eژ.iNH)YS3BQ*s)' ܧm*LtV\idnƐ!OQaWPuPjݯCOح*#˄Ip+wcťmoA/Nyڌ3\]J ;81cTcr^.bA W: AZyi4} KR̾%Way+1q h;k.G =I !%#@Sc֮lmzZ QnE/=WD$TW'sA9k}bBFN ,0%z`c`jl9 E9%ˤ^40MhV6Q 1LTZU02b2\2]@?j//eqcmSLjfBɴ ?bBHI!`0:A2V2y0exAXDU9aF_2æ Hoź^c|.!%(Uw'(Y$C-+v4 e= 8CX* !g aI`3JJ!{nZ H9X]`+|\X+~"$h?at!9H(F70rW "r,VkT^Jy,%Yoqss#Wv\{i14txboSx5G)~ R0I0aF"\Yg7e:Y+FBQc(,Kҏk\Ic 'j#_Wt$VDD\.r3krbH0HFAY3 d$"[&Q$H&tx̖8gJJ3)G(0 ysE$]}7,Ph+vbuJ eo}^0kޗ>~ uO;oy<j5uߟ7k—Y^;e'̚s7*#랚1oּyowkxz漅oUF`=vuߛ;k—OUsjDD˔ߟ3/b)cx/3z){]?79sכ'"T+X1^3%E7Pר~kGD?#QR~sۍwΚ?oy=sn *\-v9^/~_9G.-{+v3JP)&~Sa~AU "A{N˯q/.5o̹ fΝ+nxS9˹:}{x_>`Sf͛?sC;"^s̹> ]8m+㯛Κ9cmg=kC&FA-E|E]0sz{5o ՟y 9sΟ /:wޗG'8cDl/|N{|:o fΝ?saAՀcy̙&\\@cއ^;?i]{OxcdlPl簸ɫc<CdJd S N`ci)˂Ik! S DDኧ#a QȥB/8VЖl_D282HnxD5xXI*L N3eOk+r]i%%q=ړ[% *gP1H5񤿮Be|'Dy HڷI2& *huv(=։mZ,=hhuʥeP ! 7 q?6|g)Η[jL ]S]5tEKqJ2Ӳ1g"r6\%PD%!"2"b }s9dL6@L'[]=E #*N[sA 3 B䦔Z(? > =`"&$D /DHM %4JbCi5)EB8v͖,eERdZhƄtsE@/3)>ߞZ&# IDAT˯m~q['?uFUOWU5.xO䒮Vuu[vZ VU:]u߭lXzʤ%~ċ_R P|x̜8gnq77k-lۧk]觌q%XCn~:6 ԤRLZd;lqǿo&nYBsUSD};cwIюw\J;qE12i?㻤@7l2ڌcOeػ8f㗜>#oo,ocMFDc͓Ɵ:KO}"gW7-?{xa":ꪦo{9'}ǵ{^&|mwן9k҂ˮ<--&`SȵV1:Vťu߮ƃPm+vٺY 4z/rY;&j?{PEmgJV٭O?7>~w97Ϊoy)x:A/ݳdOzkOb}#[_uz?=9m?xߴU!O<=6O@"Ҿ4sҀ~Nci[׏JDİW%c~#MCf>tluۢ# f}u1~W6.=`'{Ľli/)3@,UZ+5-(aLzA# E8d6 dLC6LP+UD HOH\@nXT.φXؖDƸ2u6(\S@uMYڕV- &K&z'5`nNOh(98קi`хa ov01H2s$8<;A<*'JxǮ  yν( Z!"3`lCɦ aP}t lV@DG=n&K|P1  Z eș=Нte5SFbk"F"jjbOJizi z~xmFd50K]>R͕5Q$(. D0 DɌz%>Nmo+ڵLۄ-$<&;&Lk*RahZy'U.11\lh@E$jƐ3 c8؍B2ѕQS2٪F J93θ?0YzqZIvpJͳo;{}3.g9yN}%%aGzуga ml_>.οk<G]8|ç_T~OyKħzģ=se.niӱ-66 wOǗ+6}6 s/f)zyu~Jܹ6mh Lq7 iV<@Dhj9_g>뻖_|hP֮svT_Nosu8l SjS!v^Լ-BO|NSxYVSO8j|"ɫKjhX$䶖=ڔO6'>}ԫ'=h}ǜS&`WwXBYB?ܯsQx~%^`z⒳uUyo-x|m >fXer,pU6}8W.?K WmAK%It54R`תڔL i`m'B񩈗B.} jji)Al@T TH0S֐ ]؉ghAq2es9Oh%4X0K\oÌBpd3l-N%dzѪ!28ql 02rF#eԔQ`j`H$@GP šwι|3HRv#ӈT,ELh.TII0\(aQLe9yr<Tq|WdLݧXmDDP)2u~*O./ld8j燛4`v޼U%`o:]CFUL{fAI܏%` ]w^瓞ry}_ޞBj:3ѡ$`#0л|>t\ӧg藳w:/̚+cquG-lnZ[/=}o?7\0[#nii8+A4m:fvִxճwؿO¸4DE3\MC]߽{e]vW-0"mss륻)yr7nMf.kZeHHw_o2L)씷BSEE2{,A6<=fi!&ёD M*[ ͣ)6*lM:~%  N:C솺C,r¹7kt e\j= !"!C0^=Z)(YJeFjdƯ%LGkٱ2gbfQ,4XWwQ )'W84mh@D<1-DΘyu@ܹ~Dnc~ABb]=]A@#t.aLK'n66RX,><e-aʨ+q 2u3IDShXm[x?I # E Uh0ljnil)Bȡ 3=}O8D~,Ś;ԏgg(B-TdI0YU3rF$ǔRU b @B0WNYȿErF3EU 5Vw$%c(V\HHϓB\\AƘYRH15 mJ]B K$H}+\.r~93!(IPc?|.8^#NS1]2ooT:Ҝ{yS]n ђdYT*A`E\!@g/R,oMNZ ;GҲjLG2 ݷ-8,SϽy#{g~>~~gҭ_:nW=N<}_Zs"=x9'FBYKs.|ӓWFG'^qx?:ONS/:~}:Ak;7O󽺨<ɵrK󀮸iE], oGҼjvR vƵ;>vDzZu6ݏxdѩy'^J;b˧^Ǘ?doNį+q#vwt{i٢VRtEkEvkz_oߵOgذx]Ȑ~peo}ywt<`yM>=,wM[1?ş(8=:lهӻ I>?s̜;_Uϯϯ 2*br !ض}⦕uqΈ@H 2bw_t߶c,SϽ^ЩuZ9G<'tls6B "8!dB,>R)a or{7\UNWQǔ`|j)޲eQee+$@C y,d7=RpdRD(!ܼ|+Ric$9~WixBA!ҭ,^_!(" 0 H3U{"Ƣ6YAIRbfdb$( !({܋}1~)X5DzgNCLL't V,[IJ,48zGQKM-%2% EN'Jie꘽#Lte&ا@ECr[Pi8"G`1] ͌M\0 #"Fu 6W>DRbKB(a=FHI#;cC QZ g680Q3<(H{:" 9c Dk::#?%0\Fv] cVM+XG>qޝ^mJ7")?O!|#|;u!Xؘs[߿<{]ӿ9~mIib,w|52ǎ17m|b쌵+ee{ #--aLS7*'#cZ ֯^x!lܸf 4J&ףv"^it7<t_3p4c2޾kPdۛ2q ns~wh݋3J9ϚKW=;O~gEw{U.Owk`_p!\Nj  M+_yGa*H)Чwƙ5._!76&6%Rc ,5k_1cBxֈM}Mqe twŌ WAI*&g< CjQ(New-j ri1ąN<Ǐ޻^]O$Ɩ2aÚWցo͟,S"J4̽j1nb9ZO0ҪƫjBA!e%+9 ;g3:7nߑ tB ۃ8YK{\TQZo(* RRBgqH M:iyXGvc6+;(%0XA&hf}K[c±T NNbG9ٿ0i,|`9)k 钊0Mu<:<ЄL2-YG݉ C$% ajH2=iNUCweE(J2ΔDZ0dҡHe" RS 1nJ"HX;!"g!2V${/6L 9lƑs'-$7( H!1 \[ڥL/ffpCAԯv]wT5׋ Z  ܺtL{JWn2X'?c浛>ޠ PZ_WpnY9w5鵍PO>jѼns5@uـ* 5M1Ns_zrX/^ޓW]MV n8 IL"@Հ;wy7?Vd›rQ{NdKfI4mj;5 1jXW:Um~h|YDDz_[߿+qH-oh]On=KzD-ԯ*00USGy٣ٌ6䡿uSFuU9cU45G1)V_Ul&'1Ekl(_,.Xm5U^_["y^K+[~\^gؔMB)_鲣}R&H/cnEק냠nwK6-t M 3@ݮmo~(+]QȘQnS'NǎHn !Dc]CDRO[?kݸE64@Xt`M?mj9nĉr?UyqC75 yc*QT#/A/jL-:jXDm94fAn!,}j46;ׁ%k۠JYFLIe{ a[QF$c!r@|WvxdG_!c*wmnctW*t`&ooK`׬oB`陱 t>qS?mo o'VVFr ARIi.ln+V3PF cumg`Z97fYXL3""qNc~<kpfgAG?TKV[gQQNo-n2HO52cǷin~:x摅Oӫo^}=w.ί|rŵSi=M9AdSoN|V4zU#+!T7B'w׾e&B`g߻8eZ՗KP%Y9W_.=Dqjm% Pj[{5w[+ܮ:l_޲[ffOoiQiqƈ:D[s Ӣ&=^ Bz'T'i^v%3 Mb8ĥ㔝:udEE"V^B~%1"$$˴L4 ܘ ú`PCl_ F4*L40R zC(4!EIjEG;ɘiZa&$F1=6hFJJJJjjjjeY2F _Bxx UepMy#& ιc;iZJ ,YMH`[PM ' UYIցDz뉪1{PRPs~‘9_SgU9hx{T 9F!  8GLl8 NBL|T 71 L>`-ؒeY))u3a0sNB.TU }1218T3CJyH!+oKްY۷ô۟վyB֯a_ڪy.?55~}ʢ5n}ɀgiR7[+ջڋ.uf:?]PlWfi ۜծ}z1LkئYZ(yKZ){8콡 7lݾ]30-uKAo|j%rc] v%)|y g^srM:]wq6qøkiwYڵI!f:-cev(sҦûv+8۵mעN n׾]:Vh]&tmtl`Um_hSw^֦%W>_/54k>2)VȟZ347l_hA8mlT7[혥4y)mڷkFjwVu-tmi7<~ϵ6mw=PҥwQ2w^>m]OOUZk%#0)7Mokx|Ϛ 3m9Zn7GDE2^Y^QYQar>IvTm~zO{' +:{e<. ` =h~It SIA E̓7E$k.pdѣ 2.TyIZx.tg0Y7b"G_&3.gPêfz#W(v8  z0C%aW .T0q")Řr=@G,ds@c!ym[Hx@Hv+J {7 ð %xBDĹm.dFVC.ޅ:3s8 l@%ւ|WLQ~|"H.nF iZ&cB@HksefjhU)*&KDktn&_RbVjjS!1wCJEN0$|䝟3gwiێLki~JDZK W+70 4e%e8!2`HI2V{5 ]9(Υ&3^\ۑ^@|~D_=` "۱i/"NrlG C^^-;NM0Lg*M괂 q L!\$ D YџBܵj’q;]ɫW Ɉ^1Q;bB!PH:J﨤&~Gc.wNdX|~W JS{S Ӑ.V $~{ zB-R7GV#.egN떑u_+X!hpe4+1zAz 9PGU4Nѝmے . ӆI꒧i)ʊ q<|yS=xvWV#y VSpJ:/g>4wr:FTړ%WI~DFI%$ 1YCw3 r #GD&{SaY12 DATtd%LZH7dC4++OrovQQk$wKRwEY>ɇ|j0dBC-äE0Da0DjH/+iFRE(CV{&NQs<_ inT]j_&-ȉ]YMXy"M+;ftHu C'I,+--J˄׶x#Q蜫WE;8(yJZs)`vN/"=th1DZ_Xø2"B3DLF!2 {X31$@I/#Oռd֖J DuLb¦egeV Ag#Bk>KQܘ_7CdpdVg#]x,ѕmC\Qȃ2" l{J@@]1D۶"h(V٢Si?&dJku9we_N8]CR]B9$Z,Z21@|VM7*ۉ2$4į@shJ( 'X D?`8RiU=UmBZ&9'W;~kbZII7G~O~c v8S`i٠@ӫ%1kܱ"vS^nwhza c5_J`U9VN)[nAbY(=E8lFRAٺN'bŻ= ' ٽ 5H!?FXV'#%S(qNKMB?VS P+T`t di܌wb;Yp.'TJOp d\bDF2g#iZ!n^v0 _uP)H#8bJXUU MYsrQd*',2[WBv"8mZa 1Œ{XHh F4׃bfJ*( +"`TlY)%rDm"0CDRnH֕H%(R69ꩇ.JԢNK~D/P!#"J$tPv"R t`z*$0ILJy(SiDA@ [ B 858QdI%nfM`̙!Ʌ# x5Xo~bLֳrxpc` ]cPLn-cia(#8Gv! mf!bTW}m;Dd0fYlWszSwEwDOғقs##h\p"l?3[:YIE_䘐V&V'NFK[f AR -V*BL}~) "( ߓ pvm͡H#i k!2fXqOȓg(l8D.r tR OT$thtIcB,I*[ D z0 5k!'}#fkR1 .IA@Bp&(V1TCĪZE ?zL Fe?HBVRO"rݚ/2XTTFip:'"l R񐓳D~Bp$y-J&LdX,%;p@ac,;iHomBl~ D4PJy"CpΑ10L@8X &'%Q~V#2J(imuP~3͘R ˔gŅnUo1#ҩɭ6~t MQҸy YIh7z &A"ܱ!rQ_|z^ {QtQy_MkP\l Xu`;PJtHLAlO- _/t6(%k-y=[&HPZk*˙|IUP %+}r"ZP%UlRFH-zE[ A Fy0"G%ZaDW 1Tdjh1퉸YH)`Gw 6&닣R#6/vhJky,xDx+"X)M1*M 8 zOiuqJZ>|< _9*,5B^F>Ң 9ySG~5l $Q[`H{9޾N B5NhG'"T-+J (Q8?,FyUU3 FQx2y(HF^Dly?%E(L*C&!jYRsta2_eUuI'kLI1|N%!0p. <3ڄ;a%Rv '$aH(Wuq k$4 .O+IgzFI yXT:GQhVH!d1ONMDi#IqJV7D ?yҕx@h) ݅*ɘ W߳EϮJ!^r7л+n* EB o)LT~W Lp*\I"08Qj?`$d/mCng(W a؎QOXUT7AeRbƲ"WaW{eh2 а}|K1,ˌbX4 ڝH]YQa۶bv4?T}k3 i.]!Oq %02:Ma,Kf~$~ѓYv1R  :5P EֈZpR lq2eFi.I3d j-'an6c JZm!~OU Iϣ跊`."=CF]JD9KbM( 7MotmDF$J(Hz:`ϺX>]BZ_{o OU7G֣'ƔՏh,0&׸FU7t*ہ3\@z3 1c(矟ta(Pς"`"<6ֱ{,B "/1Rxjq+ܔcD*X[nC#XUS4 _ﺈ A݄-,y fr n B/ki!'VeTV'cU@C_cm|k#DQ܍m]M n> m?􀔙K#C=CL_bq"Ƙ7]0 `<=Mdv5_ay0̲ԶKVg6#0--5%3@< HiP]?/P6D62)I_TH;U_pNӤaiZdp8i V.j!&4B毡$hJ`voH0P! \YcEJcpQn1/ԳQ`!˄TTT*wG="c;Oli+kinb1 Gg4 0d~ b2[f,b4|SaB"Νx<^YY9Wp:)\x `>@6!s~2ImqmۖH hw9I f04Mdo):>8=h@J(pDһ]n-iPjd_vK~sU+M{kou_?|•fIZV;Κs᪵̠ Io/]~՚f.z݇O_Rrw}@ȼzF+_޸8 rfvsxjD޺Gẕh5u t3;5f)sgS#1eg/mMAnR]Pm.f^^5kvQ*}}/ZdUA_N}&)ѩIZ_1f'?]S0玦? um]A1̜?cdk=&@@r5~ W|nMSlj}kW.hu-5V&}kYgר哓}}3Hgtv]5W$sr'?{vZ~y ?}3,?.\_"pEeԾvV^~ኂ+ +}}]V+ +XW.`]^ڼOz7j_uyV_wUNtfʵ}mgܞe\8vY^akWfίZM,JIZ- SLиD!IN|}ey ?{k󜕅k qC̶X>*m%r ?N p.\nj_ʂyVͽ?mnOkrʭ2:RÈ.zy& d^8vY^AkW[}5k_zͲ|Эu5˕5g^xc='*ƃ?]|-__ME閟".8-I-iג/JRywyūsD1Mf/\Y[rai|`q+jyǛ)2b粧&~~u .#Q&7Y/7{Af9Gy+_\6̽~q)qi[+;*5؏+Kh[0ed;NxP@YieN[ᇳզfk\UUB9Dt6c~H8PJ.J]k37twLR*t 7^ubڿ-v.{͗:\N[3(uUau@|H!aqWL /ux?&ŅWDmjuW(ҝ(?vG^XR?_fW?ቯqgy>(H_sNQlĀ~YFM{œpsJ'@ᱷG^qcr {IOnyYO3qCpvV"Qdev1Ic/.)wR-nLHa}~u(TDb-oi/@p>ZkO ]{]?O|'pTM[[:_J@߰Sg=pvdy;#C:xڥC^q~SWӄEZ\Yob֨iR? W/._41Vs3o_#Dt'ѕ>{u!Q04rpget6`{-ޟ uQ[WE:DZ1d >qtrs2yk%yd“wk0 Ꭓ򜚺#W+lOvq*1(MhP/jK( * WD5]L\;CM{>pٱɃyG@?32G9I*nߴqS'BEE~oԿ[}cﱅ7(HNɾSP+ НP\*JtՠT{M%y^L|p2֯/lvFā|Yi|60Lm^v}uDX{FȬ_*سiæR@(ݽe#@fl޸DUQ R1Pbͻ]_"ל(ХX@]&>#< }qZ!8ˠÇ^yxӆZ-/rXlxէEqޜk=ZΜÊMBAW\s鳊.%{n(Eӻ>25IsgZ'Nk|ӿZՉ1kK >soen!4v^vo ,2=Ӭ\~M]x~k(Ic'& ! slfڿ<-ƏnZ41_V_mgj>hxKBFfzPv\񝛏)뒻#W7wMYywDD<(CZuS\}e@#eͫ MVG?;rQR藿X[*3{n[峟Iﺴ/^1 q& OrU<m3nԃ7> c?|YxJ~ŝ`־p`,)s e}zV}vlū>n;vzס#׹Ish };#J^_#Ow]U72@`43Q߮~?^b)ȸj: nm<5ޅ>{KK>rٱ{㱆]>z׷b{+֯,\ġgå:rV+Y]r ~^jw↓>}6$/?Ymhrxui/Y⇯&wY=&Z 5)CޭS]m`\ m>.fsj}JkS)*guξ[NQ:6,ߘfHdXmXj }4Z.91oꍥ krlW ?*@.-B(ëW;%[7XNӑ*)B  md3L>-ҺfvHu~~h5zUƦ+Wgce״L q=fv~g;Mػg /xbYL)֨{-/o?mc-fGشUpG/`X2ёi %juF+m8ʁ8hZ촴f}~M3m=P)ͯ2cW~).-SQ(n!DEu!buξᱵ[NpzhYv;U.ݶrO^p%]wѷ]zaǻ=~j>pE jSYi s!e5j\JT8Fsl_"ҵם.Ò]qYkĴW?ni IDATI{~yV̺NQw|.owGvdr)]ѷ]zQ Eo8ky@V+^Sra;I:!Yf+z]YuH@kF>;K:",Yv; XF^8빻{9-yَD>߿e69?1k1=$"sq+`g+K@*V~Wg{c#Xf^0{9e-ywxLyuI!&$ ~,ڼ/Xf'jx; ׇ-"]@yg':x*P1+Sa+W4֛?;|òC+~w^/{hMNը&_WnrqOTOuזES{^85h޿JD' 'R+-vCSQQ!լ!JTm& U$'B Qh%>foe.~Z6]yj;3uK9[唇xVThҭ~TEo VRIH/uP?֖n}zD׎ / ++^5>ȹ[= 5?|+rnTuk`5M;lñK[5 ޓ44E,P۰}2o_^b8buÐ -%LALWEkhҦNO~_p{N+-[!ȹ&{!A9˲m%Q9nB^rw9gLusa7?焃@8d*V> rg3o׬;P7O"$g?Ͼm} /VPuw.Yl~LӾD9Lo .}liu~ߧ9]#) #?#G]S_?@ H7ESz\8Er&fn;M0F<77j,a@lwT )=/cH"{pyl8 *[s֨y_{U,Yjg%/?^Nr+0GRe*|`燣W]*9gcTXJ4m )T7.M[ i^E@y w/WN>[˂o-Hlb5 CI:t*!D<HrnVKz+Yy;vȢYfMӎ^*qjñ-jKPw_wxhdX@rS(6; :P#KA6c_yeY ɆL$w)UjKn7/ `@U EV\1WOteJPAݡ.O@d>3Y?S.d4bhP2 !ȘNFPl՝O126ڋ[$fFk;pL2&7f d`I<qO[{rpՊP~WAOzSgH8A3E' QT3rݎ78tV2 J ~G s,(9GGJ))H1u 62OPǰ[{e0(2yZc SƧq(]'|PALGȮcpfL ڊ(;Z NYP~9Y !g('ߊFRf&&t,xS}w|U9wfwSz HQDAi HGlA)6Q PT 齥=?;~xOX63w=[r lܵ?^;@\Ns!W%[< 5`(v&K\j:Dȹha -d+"cw1^-D-CtQ͓o&ky"CWG̃Yt+}|UzJ[< p f˴émBGur;_T9Aw'/<|tR+ ^ǻ f-=wWRyRJzNVF[НV={^( AzX'!m :eޡ^ʅƿ+e R_9|)hw9twㄘߟ RήFO5w[.TTYdPv%РxpǹY7}x89C jxc$Bsԭb EZLx},,Q8v!N̈-iD?_5"y>C֞ P.L7Q &oM:޻Z4Á]g GTSÚ&-3 燉sMT43?0n>ӧ b_( yGi(]Aljd%EI_Il%IZjqMۘwHJ\qTgb+6l =k:׍C~`g2*>/%\j\ׅɰEQ@a8lWnݓ JVV$OfBsײWYoSN |*JV.7. "#;w<++hֱ3x֞su[V 5Hq9ǫjbdzxx+|>%DW8ge+e^dG\Wnjb% TjT];}Mpb`v3Eݙ󢚘TbRjKsmQgK{ߠ­̹sOjeYA*޴q%ԼaŌ9$>51b>D+8|\DDz8C<7kϹغ- }qnpEr>"C"]@K:x!,P[sdg>& E @[p T#PxxyRjwKv@%VY:;W޽z3+:,&D+H6J7N,,]?9(LIըLkz WCܼܼ<9(7Û5YNGɣf?oA/xƍ'ڂ8s#s3Ѧ(6@ lXmXhڙ0=]PC@GCi]Y}q=p߇{;nZ[;PE6QHdQ,ApVN9նs6ާ]W.l蔯rI*&%@FIhzR͸^;wJX^w+3b___}nޱй}*mgΩZF G?[9ZC\~/R;ITB"nW2Zbx?65\Ŋ=g޽zճO7 | xQ-s[#kV~j\ ~f^vcӟ.՘㞜1A *V(g3l}pbYA]bg~8tYU"bTu$iW13F8~2NjjRJqؠ<;|QS(g+OjP/%ڕÿ[>sSϮ+hܹNXS r(Jleഹ,@Juuu`E8'd>FB(]#ra" ߟҦ(|9u+f:l}aεc/Q2tRr|\=0*L$̺nʦmoᙌlj 1DY\!# j$0^LXӞ,?Kxjڠ4K~R#RL-3Dw jdE tN::"ն _i!~D*dJ3ז=[)QD-H b 6֧/"'78o^BU3FbLt%1@B:G VPQYP7Qt& 0!SL$㞈 M 3OsˁƄ`͢^-3[&Մ4nuMf%bfB,JP Nk8$FdfdQ(?B !+Ea>UeBusr5> Ҳ5Ɇ8@k[.Ro4%T?_G,xwWfSAj'*@ukV4jSUXŕݠ^[v#Y͙j]ZCݎK,㥠Yc|?n| #ME+_A}|ٚώԺfz~CLw)<:'z,.vjclZ5ͷg*jO76].~KoX6 oc^H;noҢӯS a#?zϳW+V^J5]Wߒ7;_d0v]5k7JǿH!&ժW~R~MU~j(s0Кs#5ORM>֭ͪ0'j OWoB)9ZƕjŘ|`7_dUmjjO|_G YfU4k`2b Td'-7}Sf1쭗S6i>ڱUFM_MowA .I$co?;d/hՠN㻺48WEߴj'/ǀ%TӠA kX^Da'V+ޏ 6WZo}z'<Ԫa7َ7 IDATm=3yqXxƏJvkVH+iPAz kРN4ձ]5Q7VIF5+C!OqP(kݡԬ61e恡-4ʂghZfÞor$ D0\$TS_ܟ*u׭Wy{tΈWopcݹ Şy2:O )J &6ڈglؚu,;X涍iZn/PIZ^ZU$Tנ^ݪρ(PkA6y9DQ0*J1(W J}wMw;}Kaת_~D3rAK|$ gjGϚՕ:iͽۘT2ri8HYu=SPjZM?Ƃ~؉`Ŷ-1"_3xdwgk>32}lw)y›tnռq m?7ﲿeLe;u,+;ةa ^]&(\vDbf|bkݯ1|shunZ? 3 o &({ Bf7AT Mz?Pȗ?Vꀥ\?o%T~>%wòr77tj85:v Trr'^울k__?v"XM$`l}}셡ݛ׫T~w|lA fPu| V>A¾::(mv]꯳ e'0K S_`GO?v>%X_!򶕿/|߯>u;F' EoYt-@ڤ{x '}契 dK^Qoح;y)7[ğ$fuo>wyb\"z@ϿV}U rn=rڎ błJR&EUTJ{?zz/oIt?kEY ܷV~c䟫F)$• Og5[ Oj?k r48Ӭ3w~5TcyplIls%-Gg7Ct'= -_[9Gv/жh^l^v_'k"@{-?A\#/!"cPmtxi =@˖vrāע}U,x~Ϸ*ÄA{S/O=mՈD^>㇥5¿Ӭ_ns5K1_@\0jRF} Jlgc'}wZVxZ^,CO<y>辡5+9He-fq/wkOŮ`O.xNw壈[ٛ"ogzF `D<ޗnɮeYO:4Ya)| C|_+ʞOOpoqqE|P0XUgڡ?RHáE3:1c.u=B n7qGTp^ѪIOH#Rv3dTˣY;7,(̺C1S^8+(82m|V{/~,Y'kx,0Poef|q9=_~Bw {߂] S8W>@+Y;~XzA3xn!Ѝԙߞ4aʵ 79#NOŬf"x $^xhajDPtB)"u"H*N FTEU )9g$Ғ32BNt ʃ<NN9GpꑒLwWoyNeQtWQi%?M t ݔ_F90FTAecP\W*( Zu9ZAOE JfD2p)#GzttM4̈́ezˬr1@ m#Zn1a0U(H)s RNTI15 (Dm p +#ThtAHك^O3A>:\cw/ڈNc4C.Ҍ:\<ޛ*]ėIN9jVacxgKX뷾aD97^UEOW_ȉZaܤ B2&ah0)fSֈ7 |~TX ŝtaܥl.eC҈׊􌠬bՇS(lDQUբ"hTEQT]Ӹbi7\%; 1A=7(XNдcbb8P0s]3bc9煅\vKa%0 #bW@dPPtK0Rc==3Gjc/?Ρژf ?K1F >4 "GTgRakG--B6Dx|@J\6ɯ5lccpAιl֛O3+kҖ :^:9QoA\ĥp.0WÓz pk¨vEQUἼ|]dSrhi3"Dc* 9es*yWz ^[\HI) //7/֘ FLEjѫ@Mt"v;~Iu+hy< ç@Sf˜s0$cA˜طRF˥)TӢs.?I{DFQH֣Y.7]"8 fUά:q q#$1PQEɜ K#Hd $!qnݱ}W炖؃-iePQDiˬH7kZ֨lM#ZWDF%A놹70*[15,\ׁD-2ŭCfE7@T: cTd]v(s{G&f?"nykՁd(-4fHdĢӞ[>qr"khDžE2& R13]9eZV18| 뺮sA^A1W3+[3 $ݬl?K#{f|=ÿ`%(Odv޼Dpci Pt}ric%(f"b jl$DTT>EUlj|br_Ly9:ω"[-QZ"y[d$ip掗#~]_+ADo1 Apِۀl/lG('9JL>2S~SI wAr͑"L ! !ym&\~$dOÛ!JGg+ɪֳHEm(!ܔ}}^WBGJR2~u慍u5Hj& QdfDZ+=87^6Yp"ukE+ Uz9̋(>Q m/|Mk-KrΈy&"1y0DDߧ0%;SIMs(FϺ߳c.O\E>5L>rE (dGq-ݏCjٖ6h/`$`4ƾ2Vpl<8%&gFIu~RCSy9rDm@㐯0P*`@B֝ !ի(\DT| c 04X:6bG/0ًh_B2;1Vt]5m VT朇?5M{882Z3[sclW*LQU-I qmhlH`䘢iS8s'sڢMEn2SpΜ# GBi$C]82rm|7R)pơ+]fIKwY ׉B!!lʕ3unT[<Dtc!2f ,;kN#Ak\Hr9<>σ*͙ bJsyM,yd`0b $e cT"jiaA] 1g7,XZmoTGM^'`>BP8!>UUáp0k v VJ< D'" 80v`΄MF3K%96q X":̶rԔ"DPDKRY:y}=&WmVriVsRJ|"-#[ds-gX6 xEoXngA\w#sSxU=n1A^T*ߧJ缠0H ߷^PJn{97^{[df2d11C!ha$==Ex.H1++SpYdIg-6 H6c*'r]D:j@- |o3b7"EBe9/zE3e (ݤRi@!*(2I(xQ U| TIQĈ Sk:׹, Gɣ5й HT:4] թ+e-ċ΅PT_ai+FIX47UkXD@ 0M]{u 2S3%x*?a){' U}#GtRnjݑP-2O:|݉lc,֍DrC;O8sz!0u,!~d'n"X!Ӊ򃅡`l6?"cLQRo(d&q 50rrK]aL[i027} .L h푳-]CW>@85MNdV#3  t":AB@GF#ɹ]h nD./:+s 5]74~wJHy6& EkJ( AtoҳDȫ$Н@v(%gYTxYHii:[K? 8ʆV)"?XT{SjR(:ɑɓp6g8Q8?,D:q"2sOL!A0G֠հ ;<(zc)`K<x]59d r]ll cUU%⺀1LSgY:hĕYUj=q-!NָʒE\a03jZ֖ ZVs%WmGߏ!4,87"yAng^l>9$⧔ Eֱ:zE%P)6V_{d.4\Zds |EtYC^HA), B}7ks9)b (lPlXMg?@;Ei+  su?*Ba]׉0$"0('ɓ>=xʟ94 YND9P0ܢkGP>B_8ƹnǰƸ(3s=AQQK ]\lEdT"-Mbszx{jGVcnwo62%n~D CNTFU "&Bѥzum=tWaMoeu"u]t`!="WrV,):Gf_"qN,c}mKfɺ>0ƨh r":X,WIq+wpDuY䦥lcrAܳ3{^!EJH*Qr?8vU Tl9y4YN,=׳wc !z}/X(~!7Lf82 . XB|;n-%dcl9kߧ*enyF| Ƕn,:wi;_k?2ړV#a֊..n#@u鿢sfNds)!iϹaMȉ(EULV$i]E M6]bڵr"+gz369NTLALL0Nb3l[3NZ 7?u;Lb;#8BQ 8!TdL6o){f5vٌ[Gr)ӻf.r:X1B1N#8dR)47<G =Tֈ|E"T)! KU 4CU hh6DJd>ge(}cccccc~ jDiX$P8 CP8|~_xe:P be<7rVQ@5hX k*OHl\.éPB:eTc`o&0R~U ~O1X9i 91A$ #"{4($^H\<<*ۈ-0ղndg`1@7׀qRҰ%M'@q44tHPX@e>~%JBVMj3t KM߱~KWKmW+^߸qO];* ٱ*C,񏝩tr~g+աEj/-jKV c|Nݵuמ{R6X4bm1o-lέi{}>ܸ.@Hg}g9u-m3tʟKر~KUbK6efdl\5se M2\Uz0f ;c|_i&"U2q馌]?['Hgνwݿk]ygxܬ-Ӗ~[zj5WU)CwzƎ-+&/Йc8GMS?\Ec%|e?SR,Ծ$ZI4Jhh{Zzo31d[K;%-ǫ*N@9f@goMؑ ]j)s\ӗݲwkWUxnZ*uUA!H/yώ&u#w g1D!W_H۽ We_votr4uT:=ekZK'v5;N//yWʞ]>бCYkWgd*,Se.N۹UZXSjƎLXR{wݙwgF/B!x2>RE/5c_jgUu^k]weOؿk]JN~%Z<6cR3v01JcԌw%ZO\Yd|`Y#!~a!,%( :F K֩>a+k޵og.+cujޝ{wM#.Cdez,;cyĵWG˫:&BK?"ZŊ4e'!(ezOKٓǦܭڱ'=eO=){ҶI[Գ4RS2v۹7l `A:]HPؚU֥gXDt??NQG/\cν{iɨ}e’vfjbGzDDϢf) n*Zݰ>" 5yغ럨"Mk^(UR3vn+DLhp{Z4c;aS;j;ӒQ*EU۫Uݻ/5T@_3\dfFۺ0$x )i;]6> ^n{FJz?-~SE_x}J{)i)N*!gC(gDqW(a#sq>=5$Q41ȘbBj;E0E@L\LL||\ e!7e*P8z7=N 0 *BHn{U6oݚ=yqCO1<>Ca"(ٛa t?*#II2^:AKv@>/>Dԉ4!lT-J)Y(tHI3[WⒽexw^jh!eT+[ga9M2y?('bk-:0pG0+G1'фnE*ݻz撃g]Lg 5EnھΛsd_x<E)-F( "EPJڒW}C@@_0 ԅF_lL 5rRhg{}S?|cu>g^ؼnosea%{mkv}3.P4<n>rZPm-{+ 5ftyo:=3D1y~xkF%d\#d"_^}k`Eb@>p֌^?~]LshÆu Xq1Auc~ڼ4{hɏ7׍GUk3~ԹW-<t[\Tɯ/=(_ALnڌ}/XH|_|ߋc{`t}3͡!i%Y#/Y]TCgU[?f]ԷgmMoڢ9OMޙw:6}Ң3@=sE:Ą.|IԜ71K/gx`~:tQJcA@:[Zun9M45=,y\({Mzlg,}9sKսKR  zY‰U ܼz<&` Bl ZWO29xU.0OB Z/Ł ^z;bߟ%>14EO~_Cs\vRSw.q%lL"e?7L/Jf NX=5:}~gS~y~׍#mڌ3e}d%eg}ǃuI6WJuPM\WW86"ǿx4ɲR& 79|dZvBZ-2|H"8BHR9cp1|~P{ƬYWm7EWJuEYPcW$uT1I޿ _wI?%1͹ײ.8Tx{c _|d~vޞujc_e?d93KyW__H'zLߟ/K}űX;Hd Z$7E5kho [d(0(Ζ#  (i S|X &F k!2*R_W׹ Qz($"ѱ dP$h4:P+q|{5YbG;ᰪ>OUಒE=XlCˡ.UP4W7$9웇S}g 8`r(BVI6dt0bv$!K r0$NJ!C0`ȃA 5P`S9N(*r E`H`κ OZ$ TH>| 0$3NBmfӪGG1ǣV_|{_?`kLO_ O /moOjn KOr CQD #`(jL\urށ bʱC M QB8u=|uGoc' $+B_#]?p|؄ bnkXae|U>}g ҭiYaS?BL+}jugt@;s,;;nk]$Sι!E4 Ti纗 ^ ٟ_<2HkygN;Vv5l4$yZe-{EUYq:7v,ox΃;KzxW9N[wjBq{rBjx59O?=K +ԻUu4L[c=k/x,"%39,d\Ws1QI/iY9VYm<U6j͓K+6.{/pP=7ŗ.yW%|{+f;C_熧\>`!Yq wWh\ #uzuc}y$r>ԡc'>q|ꐎkW2^>/үXI_ͨbNi:`ڧȔ-W 3>Q ?n5;*4Ǝ|ˑ .tz!/؈'3qOZ6*?!>n]jxd1_t<^vYRwg*We!0~dod+K2Cj!|;8?[o^^nT]1a:q_3iaD}&M|KMqO_83,gɓlIK2CfQ@8:\Namq|CI{?] o]:;6,î|g΄|bc{z{-5(ѱc L`ꕉK퉳wei$Rd9G)éʶk05(CDąN"Gˆj2^ӶJ7gEL4f} D1 + -M!H>\ ).lM}@1PfC${#SMks81)1Ra~˜dtv^s҉D⋍iW$ּ=)γA r6] =utiOn~޺uO.e/o'7-՞u0L%T)%]}g[t3\ׅ 1+e0Cdv/2_wyCۖV,3yCU)LQ$[DuV'/x6eT0WϢu# ]kjދR2v9ϴ,t]P 9Wo۫]ɋ]M@Al>(n12LE;fl(&Q_)@tv&pzXbf 8u \X45V^*wt~-vgڔVx%fSNBRkRbϝw#[U!ڏN"p@T';o޹u)l^b$*<$ս9g~?`]DW J< gHkweDQQvfGn*=jm{]RK7lb))DeN&]%$7K?Ls9PU%PL YBfIv-й.Δb%qFcLUs6U ڀr`v{⫵yv¦&-hğk'Zs9JbT Nշtpul;ö' 0PI*>uc,rg 2Hvl;ֳQងRwx0Mkp Ȑ&]q#Z;eA0@ӱ77ob&G箖\f >mWSS﷞=.U0D〢"Ȃ.o5T7:602 zwP!|xT֒˹lкսq§6m;%7m96v-Ú5mS!b&G}\ʨW_V=Vo>koXl{;Wm f 8" Kݟkry} S2vwQwe"PπMۮWLqO׷m ީ+ߩFN'Ğ%җM~Gnޖ'27RLXvj*\/Us XF+u]U)UOfov}w׌c,=*ؾ%; i"Kv"ZoN\F%Qbl \ϟ Ls;C o|U>{uĸ%9@e/٤JΦMZ_Q IDAT5>+q߈7=ޮ]HOp~و>]=ѩ{ߚ;0Y%>e;uKraZ7Ʒ;\Hu1|S_>k9{]?9ni y}\كqK2r|pnkZf7q| g/ٴ] uj2HTb(axOMI.!騏f?oW `*~u\wqK2r^q-2gz˃OYHӡGR@ =vUHY@ccci*fXtAV&CIMsR<@7謁 rV$3eVO BQq^9/aQl0@}|]3_ץЬʖ>Syċ1KXm B\c8mmg A@Ę6%ۯr` !bae^rs 1)Ai8R_0>dLO5`̓Vɷt}g e!bANme}e .@bb*@慳'1>=So{P}0ض< m`ES}a`X0a1akUP1T * DR0cB%ΐs:]wf.9sgܲ솅sZ]4UO7%mpIv+LaK([US~|پjL\r瞺DŽ:TE>Tn~oMw!IܦuD>C]Þ>ѷڮَש_7<=٧0kN@_Lyt4m7< v.EA(kuӢyOVğ4W[ބ*͎jw}ZY>TlwW^\Wt (PiI_-ڷy2oʦ}'}䋼XH3-zco?.虫Ԋ* /[7Nz}ؼc T@Y e Zdn=,bߗ.]8׏x[?X-s2{sZltفC?]sږW4& A CI|9c8~fo6虧{_뫈y9k+E'inp/hٳ@*4,!CO[,a2_SQס<`닾zc#;m ]8K[O*2_~inxj;\32܁ݬC Qx'O\\&:;`WlisqCu?lw9@VWY:qEdoه;6>h0sjҶ)lO+wZ7U)v`G{.hdZ0 O5eAZhJ2ڟ QNDQYu %6[_gFC 2B$͸ tp"iY@۟x'~,J )߻c;)ؒ胜!X=<&# _طk9>7zc`*U?y^65>{/w=}ܖO™4 ^{l-.|qO{-u9˞@ T.i;|lsqOOh2.. ȸDB߶7}ڿ4{yFM:=t읏_ɫ+cq Mm־3mG+}g9]_Z]NOm'{tB5=篍![Lpj˫"pXGs@f| ◻1חŬuL[++v6}44)]ތi$[i=S.=]pyN{v`SC rLHþ҄wC+*^?oǽ~of|NDZu޹&}2t.7=g;kwn⠤13T>E iW0埛3=?qw =4o]@C[.nW7 [qڰIdzqAkymdlf2/1EㄆRl7N?{օ~^o[*bggvB% kv_͓ 9@97vٽ|[jf;on^o>mU>\e 2D:q K!^;M37ǻμVN%Gm+L$nƱ܊w67Ͽ5yy 6N? -]ox{A-V%L¼2o ꒹l6~·~~;۪%[fLM:?w7Vt̺%WTᅋj j;3!g%O o2,۶mt8ޣ/٦L4LcEE/1sBOz g~8KG)0D:brYCʎ֌fĕa0FGVk.8P,.ҾWS b~b#B~$qr,@%@Y iwФ? AT)z~t xrSRq6KЮ>@(2UJb2< u[^_3[~A}[72x{4I@T< M"rHB*SNy>}@ǂv~fkY6cy'Tsc[@z^:nqd=VnmmFWR/f|oN=@ⱗ]7@_5P 65ͿnWIe^~Iu\xb98%\ |:ǡ,\Ȉ+NE>7x-3-"@ S؈8-P$.nY{` 1nI "ܷ P(8R6wA†?[χ]R9#zi_5`މAˠ^zw9χ墦9޺VX~~׀›?[Cٮ2Ws6́U"?\DuHKk;wUۭG85T)3oۧ5lKCsWݺu>RЩ V/eTWމMo*쀆^$|oD"RV(IX#ǧoJHں,۶\Ƒq2nXkʸ"qb}O!gNy̡V4pmYveǷ9cԵӿyz] 4Z*Apl؄}tVgyhI2oK& &f9xe@^pbk~x5䞠[e åjy-wRFPl/~f?\ஙw1X1/zgwhÁtSuM H*.#?07n֐ړxcUilz]jȔT{Q[EDx!GmL1xc?wK=0Dd7?&X|\4_$36jIw}~v/_2ρZVAYU9VX~q׀^Rdn_38۶aKŲg8{ɽNѓCd?4"S?pV8%%8疝8s2.Ch }#͗/{sN?oK~p*~}s!p4B %Bd:Q+Ι߿cW {ogƘY1\L]34k8C.w;']sѣW }wGbٳWɽzt{3 YLO|&I5'ΙmۉD+p=2iAA7[ V߶6AFJYh"pH#Hk\3+3H%]$k)Ee`IbCTMȥB@5*|cgRqe14># #(-V@׾??1E{\g./uW^-m"E.{W=J@,+H+XXqFpxw $D7l\aƝUe]c\BX݋}!WHT m}\+<@; r˷o(-]tJ WMPlrZoly#]emnYr{ ';ܲҕ{x_%7l2u\lزMa$qޖD1-փ\c^oYXXoi3jOWO&y-՝y]M~~۽,+]3V E{=,tI=eZ|v#|bJKo^!ylOleݏo'[{_b֗I?QOm!&XzUF,*/ [zCU=' mp| V pW@!D's6JTf+SgV~A+(e^-:8[WETTcF2|7{Ɠ]}j*ݹ0[z*S f9MZ4l0Hm$~tnG qVqvoGN+**./;TVFDsnYdHc}),ni8|;{Ɠ> : >_מNz,iAA oa]ayͻ0X;""ioF-VAQ{O{vgW{A<5[B4ڨ+&If~o%^QDm2s R+EDZ8( NCLqqPs(3~_W N@@B;@u-AoI6ʚeVc`$3[ (j dP ݌[-Eœ@DӂRW=>==w.: J~O9IW1pykx^E;o܂:w:%rGw~t۶ڛN[1^Aq!UѬ ͯm@N[}R;szvzyCxU5A%(-( @VNGwi$͏ܹsۦ 9vyN>]YCGG?q ;, Y^ˣ_!QM IDAT:w\tnZ7]޿G#:^y+/+q5??j%@w=|_?x}x zxcqǥRMD3>kkٱKQ& mٱKqQ&6&y9[ī|w4DkڵfXf]nssSoiS3Kt,R\Tԡ yՀ;ֱ n9XnA.E]lCvM9s5|9'総죬*^I;ڡSYUMN׃/;gO`CO]x;3s :ӡKqQ& u|k[t֐gђ"&íun$klU3o7m:9s$6wk49m7\zv~&^h;HaN:\ԥK& Y]>y͑I/5[W^xJv=DZv,U.6m[{2A9{" _ݭ%;!U:罒WzMz_Rv[0 PJ}]{ǠS;v8m6~0wm5@tk):;k|k]W,baW׳۱=#̒*Rs>(mS:t8;kჹk<(nѽk_~j.`,ݫWٷ6NǞzѰ{eܝ_}Z0`m;wj[a6EEEȚ .bv.>s ݥKĞϾwx?Ozt3>N̷wXZ5JKKW-W>7;ݥKqQESԾI²<;(ˊFqm'~<~A /{~Mo||i}3z3\N{ܳu noN^8tdkշk)TUxa}uo>Zͺ*=O}hg8C.yGq@ԥs.E]o:?g^Ts%)V~UwL;X_ġu5Gz_ήmktјiW|ikJg_ZxͿڡc~?b\Gt536>]zvǟx&^h7ܲ,{f@~eN<8좶mzvqO ͩSsmW92:D͕8c࠾to|bg`MN.=]O8jJ޸5ƭ˙C\d2ft DRͩӺr;}t݂֒StCξŋ_džsnoڜ3}nz^<'{/'Ag}[ܦmљCnkm7OɌG~88gzF[ˍWS yvܦEa^}N]_&v?M;a"CK^Sy=S6Gu=못5zh3h ֩MVEυ{ZP+{‡fФWYm;77׶-A2pT\^Gh`E$j"LU0x\O$$3j:AB%h4 2f[pNɋIbye0'Y,xAHz^ΔOfp2I7p|AUM;NXs[ɹxh?G?05q7p߭6ȦDr^>\+WI bQ{˳3Υoy[2(MR^]Mso7ґdp}qɣ&Z Uff~{uCj˷Q޾/ynb؏9ahSΖ׹//_6蕍%[9w-}{?X$8c3A$R;C#>7ᙛz ypP һǾf7x\{ի܈GfnĵaWwN2@nNcpɣ3/nkתlI,oͯ#f+S^6Q<}[c͍tv>u,JIU}/͙,kW1f{?j۷%o?o[D(S'/˱Z1iyU|;M7ftcye=ھ;Y!~ +;Uxf\Y|Hm[*gа/cP9 * $z5;f^ys V/^>.ǢvuQ8MKɢQfj)?_(}k87)7ޛwGe0j̬m-7߿iS>)N2Mjcy~37'8,+v]Mg׉CowC3Cj_8@U&wÝe=1s'貣1ֆڵlOsP`JG_ߜa]L~_޽7q۽l޽7L^b"U]uAX6-':>}WOo[kH$ zlpS~)'vSVR k{ 5|T#LZ6aO}}@bZGVy߫Um57{zui7+WΞ Z{*8dTոQ>"RJ~^(j릉#ZcO=i]!RM{H&m'*0qu W~zKER$9sdLe!6KL:1_J#!˔24(cBJQ =cU7x6p-c͍TX^MhQ(Q0+yz%B騛k1ħ ~X(H1ԝfgd§jB%}U* qIўL*iQDB 8cLp J=6pA` Qy3+S\n2BDH9vPIxN/o,+gcĔ+P,|0!F ƫS#$bޘW .PNpJX ̴WQ6 ~3!Q=l]̷`[ +/L3# 8!""ud_k' :O/~BΉH$)c23f!xĤjTt(ˬ1U_0~|Df}ŇjɃZ=Bzgjk(EfMKb˱>=Y^Ku3G{$QM@T+ޑ}?pĐ ` D,˗+L+8P!Wƙs=N!|bWlq\[YyoUp4^3*Ŋ,uyELY%shhK;D=Z! h*џ6#xKH jicШMs&ͥR+ 2xuz/Iڨ`}:pڲ&_՚pMb(R4!CZ]oUcnx9G~Y.'뺜1Γ99Bqv:fpe3+7 W#' u+t/!5P~A ܙ{Guz6[u<(&Dc!-L&m'l˲d "y2.LK9} i,Υ*2猈 DžG%aF}$-hQqWgj! KFGe[5UP0*1vR1WQj wA且v/3$"YWǠE\fBǙ^V∶ג"9[Vu4v19QDŽdͲMmmrt!= AV#"Ged!MNe^$ ۖe%롸KR9gNy$ (@bq]C&p]ד(K *际,3u+O 2ܲJ14B Y}Ӟj Fbj34odߋRTfhb>7a ։ eW eŀ!+ o1'')iW朜$"VWUfa 9=9ZG,OT$69R LE2g5aU Y2cYq9џ>$jʔФea,&)L1j^l}2Dd CK \D۔ W +LnhMA!hBBM6S Я=+AdY!s]u7A"\T55߁9 Ƅ7#&9GD@¶m@N3W#UL* P#Ƽs˲-۲l˒~*9\^N$L7? IڣA,BPu"G bf+DNN27'q /Hsf):8v¶lKO&%t\-3@kB-/Q3OTLQd$@=*22*BU@?u211{pQ#jԴ2@V.Cr \u@2LHr ^@&#C,= BI3x 4:;.$\[f9 HV oe9g^$TpAD܃s JCfΐq\Y3{K_YI/?PkBޠkV[rlD (H{)5TfzPmFyX1 x6l yF&FaA] ,$`pf1؈s+ M!d =6~?+8&*E @dzk{jgC Tr~I IDAT' *mƞD?#HΟ/9̒#E~0VzE6.lKvW}Íz$YxԞ<g2$8LŻjV3HXQ3LRdS u4}WuVd )+W `oW QT,óF$O[34nGPcv-Sبjv7W E"չsD&>C/EBK/3ԸIl#%1M#/C J% cH3ܸC2_$-T$bk@`e˻u.zyg8OXeqND)I椄g6&œWx_4S qQlb-gY FI+븐d2)D+iM [ o=Otm% yK+@:%RgÛ#sH-Y}* _͢?zB+ QBu}s6`#݈3%ZTo%#|fha"9bm1d^+/Jemȱe&Tw\2cwS1O-Kӌc k(N0YY%jb(Qa. N9= F0MAF=n !Hvp +\Ar& f^7DLiRFw6Jd`=yV/@Z'#1P?+m)LF bHtu`f("ƓQ笄vXi9>?/(.ʣ3:pҤ8`6Vl1[FBp¶<(|AUsG"IT<,cAR m Ɓn5:StNE%bAF7Ol=5=%i]#y[I;d=Q#, ƙJQ)h,X3+3Bˠ8'"6atSBK(0NԳ_#k\s7 G #`!P! œN#>rM#/6P£(>o$ (+24&f9͛(5)]uZAxC: a[7b k9$Ź4[1X04Pr !YMQ SWWeX+S%!\T|]E`uM<LDDN&[jM)ՌDz3^ O]ϩ͔Bnlr~H 0R ۀK &ƶDɳJnຮ S x5St]R\BX! ִ,K8^D QN!$2L2L$T2\ӁT2d,O$m#C=R$!Hz O~\A6k!UlfQ."$8?NO9y&y4:XB0-d>@m b[u؂QPٌBԿIeRu-0:) )ȓ oZš|0FORB!;W,|nYrթB{5up8qpJ>{VP:R"y1BI-;-28DMfŋ)C$HdeQHu`E5̒`tj:Ġ0ZX)"z3pׅ@Zf!c_@BcV*,5 )"ܒ(vT%? *ad? Xdz@"xRs*\0V &ƀ%6˖~YqruBB]&ŽuAd/`|ןa]JchMKǨg.!,rHB򚒣cbAqO±FP*Fa3$OK zF]4y+uAZVjOf*9.+@﹁H&>90$ D`sQ{/!tFksft]؏h9$.CNi*6z)BiP ~nKЙ> I <\׎ 8̘UU*ǐ?@$ (?O)¶B HOp]+QAкT 1?SE+DmVq`5(+O3*%T-l򘍞XM8(lRf ClQ QT5R S;Bx-snqq?:JNΡlu]a@34( 0cñ>>:h5;54Nԙ'!#Ԭy 5X<!f04m$,MtF*MuI~#1ˀ1@!\q.% "a](4ԩB+d}4 @lPV\MgbP*C͘}4ȈfrK m`G0G/C+Fȿٵ /`(vS8V\@5 M ^md1TfhfUS;־Tf:o,DNlJ$ d,JB! s/A0-Otv"c*!@ԩ m;#}qv8u!ԓ5 ~Do=Ї$lkAT#}oݧS ۶mq)_)^EOg @g4KȘmDB7"%s"xjz9:Ll-hTdt7lb,0 '7!8`dܤSbD cI1@ iW/$py`3` -.u'[Lk9PHjG!BV C bȕҮod%]GvZ}-Trg P44YRa2FHdRSl4qLB5T+15 L&8 Ѳ-%".ax>husZD _h=u_5GYY9b<cAR\Hd4og)&lr1$~hvjOC&pDEQW <Sh( B)!_Tkipmu@t]l`FHMBh'lJeg*J@AI*G8c pNQGjhoLxG#- u-[)S *GC*^a( Ë BTXzD=N6%BTLde1pɸ3u0́\I*b"uegTE My_Ԇ !Cd&~aĴR#F@:MV6h{#31@`Z^;IYֺ@SB ӈ AhT9 zfL:-WYY!ڌ; rn02SY `qn%lAtH0C aaWp]g!&l۱-ybm'_K.R >iztPBd2N"t*BDá4g4ݒt6?d2i^zZ)(xI!RGu5μ !j>03[xgcSAK!6$l3G% KA )3 ]gXX"UPFY-lIK@T"Sm2>;<L&NKc:.5_ί('%\A\rLz1C]9I{>a(Iirs"Tg83 +#;A#(p\׭t:dT~gy ոTvGAڻrqJRGOm3ErIu(L6P]-rU$/-P~'/Q8SBb PӏN9V3*Hj ,k%8RO=>Mb޻5JeÝ9w/""Kzq-!L]aR+&48d[ ]E Tҕnf#S˖cᰨدxjöŢ `w:QN6i[fAy`M9WD}Y\}~M@QՏ &?X!)S5_V^MVtW):^G|Ȃj#:ru~Քn=$[ZɪZ"-m`n&UizfD/z6ig6UèfNQ;}+3 ^}Ρ' GhTpn6qt d&Dʺ r|u{ ­܍7CKY~Ԁ2]nպjJs>++k&aI+- xQ5c ;).]V7&掫Qc0)r\Ys;i2HGgM97a -±myOEx7<;YH'H&d^^3p!}30ȅB8̓'^=7 ;ѐ^g_O8R;c/NW+l{/ҺXs Au-3l/g;]\z`,B),tVwi})x3x9X~?Y]Lؿ#OB!FZX#(1}Ow}{5:@B 4)ulϝ6SQ?!z\Ϟ0apsE'E !&!r3w9`Jw]z뭷z뭷z뭷z\73 OIENDB`glances-3.4.0.3/docs/_static/glances-flame.svg0000644000175000017500000064530614432156570021021 0ustar epsilonepsilon./venv/bin/py-spy record -o ./docs/_static/glances-flame.svg -d 60 -s --pid 229330 Reset ZoomSearch run (glances/plugins/glances_ports.py:224) (1 samples, 0.14%)_port_scan (glances/plugins/glances_ports.py:273) (1 samples, 0.14%)_port_scan_icmp (glances/plugins/glances_ports.py:317) (1 samples, 0.14%)check_call (subprocess.py:364) (1 samples, 0.14%)call (subprocess.py:347) (1 samples, 0.14%)wait (subprocess.py:1207) (1 samples, 0.14%)_wait (subprocess.py:1941) (1 samples, 0.14%)_try_wait (subprocess.py:1899) (1 samples, 0.14%)prepare_url (requests/models.py:428) (1 samples, 0.14%)prepare_url (requests/models.py:434) (1 samples, 0.14%)parse_url (urllib3/util/url.py:419) (1 samples, 0.14%)__new__ (urllib3/util/url.py:105) (1 samples, 0.14%)prepare (requests/models.py:368) (3 samples, 0.41%)prepare_url (requests/models.py:482) (1 samples, 0.14%)requote_uri (requests/utils.py:673) (1 samples, 0.14%)unquote_unreserved (requests/utils.py:646) (1 samples, 0.14%)prepare_request (requests/sessions.py:484) (4 samples, 0.55%)prepare (requests/models.py:369) (1 samples, 0.14%)prepare_headers (requests/models.py:487) (1 samples, 0.14%)__init__ (requests/structures.py:44) (1 samples, 0.14%)update (_collections_abc.py:993) (1 samples, 0.14%)__init__ (requests/structures.py:41) (1 samples, 0.14%)request (requests/sessions.py:573) (6 samples, 0.82%)prepare_request (requests/sessions.py:490) (2 samples, 0.27%)merge_setting (requests/sessions.py:79) (2 samples, 0.27%)to_key_val_list (requests/utils.py:364) (1 samples, 0.14%)items (_collections_abc.py:837) (1 samples, 0.14%)request (requests/sessions.py:577) (1 samples, 0.14%)merge_environment_settings (requests/sessions.py:759) (1 samples, 0.14%)get_environ_proxies (requests/utils.py:833) (1 samples, 0.14%)getproxies_environment (urllib/request.py:2500) (1 samples, 0.14%)__iter__ (_collections_abc.py:906) (1 samples, 0.14%)__getitem__ (os.py:676) (1 samples, 0.14%)_make_request (urllib3/connectionpool.py:403) (1 samples, 0.14%)request (http/client.py:1282) (1 samples, 0.14%)_send_request (http/client.py:1328) (1 samples, 0.14%)endheaders (http/client.py:1277) (1 samples, 0.14%)_send_output (http/client.py:1037) (1 samples, 0.14%)send (http/client.py:998) (1 samples, 0.14%)_parsegen (email/feedparser.py:256) (1 samples, 0.14%)get_content_type (email/message.py:584) (1 samples, 0.14%)parse (email/parser.py:56) (2 samples, 0.27%)feed (email/feedparser.py:176) (2 samples, 0.27%)_call_parse (email/feedparser.py:180) (2 samples, 0.27%)_parsegen (email/feedparser.py:465) (1 samples, 0.14%)send (requests/adapters.py:500) (4 samples, 0.55%)urlopen (urllib3/connectionpool.py:703) (4 samples, 0.55%)_make_request (urllib3/connectionpool.py:445) (3 samples, 0.41%)getresponse (http/client.py:1374) (3 samples, 0.41%)begin (http/client.py:337) (3 samples, 0.41%)parse_headers (http/client.py:236) (3 samples, 0.41%)parsestr (email/parser.py:67) (3 samples, 0.41%)parse (email/parser.py:57) (1 samples, 0.14%)close (email/feedparser.py:187) (1 samples, 0.14%)_call_parse (email/feedparser.py:180) (1 samples, 0.14%)_parsegen (email/feedparser.py:469) (1 samples, 0.14%)set_payload (email/message.py:311) (1 samples, 0.14%)build_response (requests/adapters.py:304) (1 samples, 0.14%)__init__ (requests/models.py:692) (1 samples, 0.14%)cookiejar_from_dict (requests/cookies.py:531) (1 samples, 0.14%)__init__ (http/cookiejar.py:1268) (1 samples, 0.14%)__init__ (http/cookiejar.py:904) (1 samples, 0.14%)send (requests/sessions.py:701) (6 samples, 0.82%)send (requests/adapters.py:538) (2 samples, 0.27%)build_response (requests/adapters.py:323) (1 samples, 0.14%)extract_cookies_to_jar (requests/cookies.py:137) (1 samples, 0.14%)extract_cookies (http/cookiejar.py:1690) (1 samples, 0.14%)make_cookies (http/cookiejar.py:1608) (1 samples, 0.14%)stats (podman/domain/pods_manager.py:149) (14 samples, 1.92%)s..get (podman/api/client.py:236) (14 samples, 1.92%)g.._request (podman/api/client.py:404) (14 samples, 1.92%)_..request (requests/sessions.py:587) (7 samples, 0.96%)send (requests/sessions.py:717) (1 samples, 0.14%)<genexpr> (glances/plugins/containers/glances_podman.py:93) (15 samples, 2.06%)<..stats (podman/domain/pods_manager.py:151) (1 samples, 0.14%)json (requests/models.py:972) (1 samples, 0.14%)loads (json/__init__.py:346) (1 samples, 0.14%)decode (json/decoder.py:337) (1 samples, 0.14%)raw_decode (json/decoder.py:353) (1 samples, 0.14%)split_buffer (docker/utils/json_stream.py:61) (2 samples, 0.27%)stream_as_text (docker/utils/json_stream.py:17) (2 samples, 0.27%)_stream_helper (docker/api/client.py:349) (2 samples, 0.27%)read (urllib3/response.py:566) (2 samples, 0.27%)_fp_read (urllib3/response.py:532) (2 samples, 0.27%)read (http/client.py:459) (2 samples, 0.27%)_read_chunked (http/client.py:582) (2 samples, 0.27%)_get_chunk_left (http/client.py:565) (2 samples, 0.27%)_read_next_chunk_size (http/client.py:525) (2 samples, 0.27%)readinto (socket.py:705) (2 samples, 0.27%)_stream_helper (docker/api/client.py:344) (7 samples, 0.96%)split_buffer (docker/utils/json_stream.py:64) (5 samples, 0.69%)json_splitter (docker/utils/json_stream.py:29) (5 samples, 0.69%)raw_decode (json/decoder.py:353) (5 samples, 0.69%)_stream_results (glances/plugins/containers/stats_streamer.py:56) (30 samples, 4.12%)_str..stream_helper (podman/api/parse_utils.py:106) (8 samples, 1.10%)iter_lines (requests/models.py:865) (8 samples, 1.10%)generate (requests/models.py:816) (8 samples, 1.10%)stream (urllib3/response.py:623) (8 samples, 1.10%)read_chunked (urllib3/response.py:815) (8 samples, 1.10%)_update_chunk_length (urllib3/response.py:745) (8 samples, 1.10%)readinto (socket.py:705) (8 samples, 1.10%)_stream_results (glances/plugins/containers/stats_streamer.py:58) (2 samples, 0.27%)_bootstrap (threading.py:973) (47 samples, 6.45%)_bootstr.._bootstrap_inner (threading.py:1016) (47 samples, 6.45%)_bootstr..run (threading.py:953) (46 samples, 6.31%)run (thr.._stream_results (glances/plugins/containers/stats_streamer.py:61) (14 samples, 1.92%)_..update (glances/stats.py:211) (1 samples, 0.14%)inspect_container (docker/api/container.py:784) (1 samples, 0.14%)_result (docker/api/client.py:277) (1 samples, 0.14%)json (requests/models.py:972) (1 samples, 0.14%)loads (json/__init__.py:346) (1 samples, 0.14%)decode (json/decoder.py:337) (1 samples, 0.14%)raw_decode (json/decoder.py:353) (1 samples, 0.14%)prepare_request (requests/sessions.py:481) (1 samples, 0.14%)get_netrc_auth (requests/utils.py:202) (1 samples, 0.14%)get (_collections_abc.py:819) (1 samples, 0.14%)__getitem__ (os.py:676) (1 samples, 0.14%)encode (os.py:757) (1 samples, 0.14%)request (requests/sessions.py:573) (2 samples, 0.27%)prepare_request (requests/sessions.py:496) (1 samples, 0.14%)merge_hooks (requests/sessions.py:97) (1 samples, 0.14%)get_environ_proxies (requests/utils.py:830) (1 samples, 0.14%)should_bypass_proxies (requests/utils.py:814) (1 samples, 0.14%)proxy_bypass_environment (urllib/request.py:2527) (1 samples, 0.14%)getproxies_environment (urllib/request.py:2510) (1 samples, 0.14%)__iter__ (_collections_abc.py:906) (1 samples, 0.14%)request (requests/sessions.py:577) (2 samples, 0.27%)merge_environment_settings (requests/sessions.py:759) (2 samples, 0.27%)get_environ_proxies (requests/utils.py:833) (1 samples, 0.14%)getproxies_environment (urllib/request.py:2500) (1 samples, 0.14%)__iter__ (_collections_abc.py:906) (1 samples, 0.14%)__getitem__ (os.py:680) (1 samples, 0.14%)parse_url (urllib3/util/url.py:360) (1 samples, 0.14%)urlopen (urllib3/connectionpool.py:631) (2 samples, 0.27%)parse_url (urllib3/util/url.py:390) (1 samples, 0.14%)_encode_invalid_chars (urllib3/util/url.py:235) (1 samples, 0.14%)send (requests/adapters.py:500) (3 samples, 0.41%)urlopen (urllib3/connectionpool.py:703) (1 samples, 0.14%)_make_request (urllib3/connectionpool.py:403) (1 samples, 0.14%)request (urllib3/connection.py:236) (1 samples, 0.14%)copy (requests/structures.py:77) (1 samples, 0.14%)__init__ (requests/structures.py:44) (1 samples, 0.14%)update (_collections_abc.py:992) (1 samples, 0.14%)__instancecheck__ (abc.py:119) (1 samples, 0.14%)send (requests/sessions.py:701) (4 samples, 0.55%)send (requests/adapters.py:538) (1 samples, 0.14%)build_response (requests/adapters.py:310) (1 samples, 0.14%)__init__ (requests/structures.py:44) (1 samples, 0.14%)update (_collections_abc.py:994) (1 samples, 0.14%)__setitem__ (requests/structures.py:49) (1 samples, 0.14%)send (requests/sessions.py:705) (1 samples, 0.14%)list (docker/models/containers.py:1000) (11 samples, 1.51%)get (docker/models/containers.py:936) (11 samples, 1.51%)wrapped (docker/utils/decorators.py:19) (11 samples, 1.51%)inspect_container (docker/api/container.py:785) (10 samples, 1.37%)inner (docker/utils/decorators.py:46) (10 samples, 1.37%)_get (docker/api/client.py:237) (10 samples, 1.37%)get (requests/sessions.py:600) (10 samples, 1.37%)request (requests/sessions.py:587) (6 samples, 0.82%)send (requests/sessions.py:745) (1 samples, 0.14%)content (requests/models.py:899) (1 samples, 0.14%)generate (requests/models.py:816) (1 samples, 0.14%)stream (urllib3/response.py:623) (1 samples, 0.14%)read_chunked (urllib3/response.py:844) (1 samples, 0.14%)close (http/client.py:422) (1 samples, 0.14%)_close_conn (http/client.py:415) (1 samples, 0.14%)close (socket.py:775) (1 samples, 0.14%)_decref_socketios (socket.py:490) (1 samples, 0.14%)request (requests/sessions.py:573) (1 samples, 0.14%)prepare_request (requests/sessions.py:481) (1 samples, 0.14%)get_netrc_auth (requests/utils.py:215) (1 samples, 0.14%)expanduser (posixpath.py:238) (1 samples, 0.14%)request (requests/sessions.py:577) (2 samples, 0.27%)merge_environment_settings (requests/sessions.py:759) (2 samples, 0.27%)get_environ_proxies (requests/utils.py:830) (2 samples, 0.27%)should_bypass_proxies (requests/utils.py:814) (2 samples, 0.27%)proxy_bypass_environment (urllib/request.py:2527) (2 samples, 0.27%)getproxies_environment (urllib/request.py:2500) (2 samples, 0.27%)__iter__ (_collections_abc.py:906) (2 samples, 0.27%)__getitem__ (os.py:676) (2 samples, 0.27%)encode (os.py:757) (1 samples, 0.14%)update (glances/plugins/containers/glances_docker.py:261) (15 samples, 2.06%)u..list (docker/models/containers.py:991) (4 samples, 0.55%)containers (docker/api/container.py:209) (4 samples, 0.55%)inner (docker/utils/decorators.py:46) (4 samples, 0.55%)_get (docker/api/client.py:237) (4 samples, 0.55%)get (requests/sessions.py:600) (4 samples, 0.55%)request (requests/sessions.py:587) (1 samples, 0.14%)send (requests/sessions.py:745) (1 samples, 0.14%)content (requests/models.py:899) (1 samples, 0.14%)generate (requests/models.py:816) (1 samples, 0.14%)stream (urllib3/response.py:627) (1 samples, 0.14%)read (urllib3/response.py:565) (1 samples, 0.14%)__exit__ (contextlib.py:142) (1 samples, 0.14%)_error_catcher (urllib3/response.py:484) (1 samples, 0.14%)prepare_request (requests/sessions.py:481) (1 samples, 0.14%)get_netrc_auth (requests/utils.py:211) (1 samples, 0.14%)prepare (requests/models.py:368) (1 samples, 0.14%)prepare_url (requests/models.py:434) (1 samples, 0.14%)parse_url (urllib3/util/url.py:386) (1 samples, 0.14%)_normalize_host (urllib3/util/url.py:276) (1 samples, 0.14%)request (requests/sessions.py:573) (3 samples, 0.41%)prepare_request (requests/sessions.py:484) (2 samples, 0.27%)prepare (requests/models.py:370) (1 samples, 0.14%)generate_stats (glances/plugins/containers/glances_docker.py:309) (4 samples, 0.55%)image (docker/models/containers.py:40) (4 samples, 0.55%)get (docker/models/images.py:335) (4 samples, 0.55%)wrapped (docker/utils/decorators.py:19) (4 samples, 0.55%)inspect_image (docker/api/image.py:252) (4 samples, 0.55%)inner (docker/utils/decorators.py:46) (4 samples, 0.55%)_get (docker/api/client.py:237) (4 samples, 0.55%)get (requests/sessions.py:600) (4 samples, 0.55%)request (requests/sessions.py:587) (1 samples, 0.14%)send (requests/sessions.py:692) (1 samples, 0.14%)update (glances/plugins/glances_containers.py:158) (20 samples, 2.74%)up..update_docker (glances/plugins/glances_containers.py:178) (20 samples, 2.74%)up..update (glances/plugins/containers/glances_docker.py:285) (5 samples, 0.69%)<listcomp> (glances/plugins/containers/glances_docker.py:284) (5 samples, 0.69%)generate_stats (glances/plugins/containers/glances_docker.py:323) (1 samples, 0.14%)activity_stats (glances/plugins/containers/glances_docker.py:62) (1 samples, 0.14%)_compute_activity_stats (glances/plugins/containers/glances_docker.py:70) (1 samples, 0.14%)_get_cpu_stats (glances/plugins/containers/glances_docker.py:98) (1 samples, 0.14%)_parsegen (email/feedparser.py:240) (1 samples, 0.14%)_parse_headers (email/feedparser.py:488) (1 samples, 0.14%)urlopen (urllib3/connectionpool.py:703) (2 samples, 0.27%)_make_request (urllib3/connectionpool.py:445) (2 samples, 0.27%)getresponse (http/client.py:1374) (2 samples, 0.27%)begin (http/client.py:337) (2 samples, 0.27%)parse_headers (http/client.py:236) (2 samples, 0.27%)parsestr (email/parser.py:67) (2 samples, 0.27%)parse (email/parser.py:56) (2 samples, 0.27%)feed (email/feedparser.py:176) (2 samples, 0.27%)_call_parse (email/feedparser.py:180) (2 samples, 0.27%)_parsegen (email/feedparser.py:256) (1 samples, 0.14%)get_content_type (email/message.py:582) (1 samples, 0.14%)send (requests/adapters.py:500) (3 samples, 0.41%)urlopen (urllib3/connectionpool.py:723) (1 samples, 0.14%)from_httplib (urllib3/response.py:648) (1 samples, 0.14%)__init__ (urllib3/_collections.py:148) (1 samples, 0.14%)extend (urllib3/_collections.py:253) (1 samples, 0.14%)update (glances/plugins/containers/glances_podman.py:264) (5 samples, 0.69%)list (podman/domain/containers_manager.py:87) (5 samples, 0.69%)get (podman/api/client.py:236) (5 samples, 0.69%)_request (podman/api/client.py:404) (4 samples, 0.55%)request (requests/sessions.py:587) (4 samples, 0.55%)send (requests/sessions.py:701) (4 samples, 0.55%)send (requests/adapters.py:538) (1 samples, 0.14%)build_response (requests/adapters.py:323) (1 samples, 0.14%)extract_cookies_to_jar (requests/cookies.py:131) (1 samples, 0.14%)_request (podman/api/client.py:396) (1 samples, 0.14%)urljoin (urllib/parse.py:534) (1 samples, 0.14%)urlparse (urllib/parse.py:395) (1 samples, 0.14%)request (requests/sessions.py:573) (1 samples, 0.14%)prepare_request (requests/sessions.py:484) (1 samples, 0.14%)prepare (requests/models.py:368) (1 samples, 0.14%)prepare_url (requests/models.py:482) (1 samples, 0.14%)requote_uri (requests/utils.py:667) (1 samples, 0.14%)send (requests/adapters.py:454) (1 samples, 0.14%)get_connection (requests/adapters.py:356) (1 samples, 0.14%)connection_from_url (urllib3/poolmanager.py:299) (1 samples, 0.14%)connection_from_host (urllib3/poolmanager.py:242) (1 samples, 0.14%)urlopen (urllib3/connectionpool.py:703) (1 samples, 0.14%)_make_request (urllib3/connectionpool.py:445) (1 samples, 0.14%)getresponse (http/client.py:1374) (1 samples, 0.14%)begin (http/client.py:337) (1 samples, 0.14%)parse_headers (http/client.py:236) (1 samples, 0.14%)parsestr (email/parser.py:67) (1 samples, 0.14%)parse (email/parser.py:56) (1 samples, 0.14%)feed (email/feedparser.py:176) (1 samples, 0.14%)_call_parse (email/feedparser.py:180) (1 samples, 0.14%)_parsegen (email/feedparser.py:256) (1 samples, 0.14%)get_content_type (email/message.py:582) (1 samples, 0.14%)_splitparam (email/message.py:34) (1 samples, 0.14%)send (requests/adapters.py:500) (3 samples, 0.41%)urlopen (urllib3/connectionpool.py:723) (2 samples, 0.27%)from_httplib (urllib3/response.py:648) (1 samples, 0.14%)items (email/message.py:459) (1 samples, 0.14%)<listcomp> (email/message.py:459) (1 samples, 0.14%)header_fetch_parse (email/_policybase.py:316) (1 samples, 0.14%)_sanitize_header (email/_policybase.py:284) (1 samples, 0.14%)build_response (requests/adapters.py:310) (1 samples, 0.14%)__init__ (requests/structures.py:44) (1 samples, 0.14%)update (_collections_abc.py:993) (1 samples, 0.14%)update (glances/plugins/glances_containers.py:159) (13 samples, 1.78%)u..update_podman (glances/plugins/glances_containers.py:185) (13 samples, 1.78%)u..update (glances/plugins/containers/glances_podman.py:292) (8 samples, 1.10%)<listcomp> (glances/plugins/containers/glances_podman.py:289) (8 samples, 1.10%)generate_stats (glances/plugins/containers/glances_podman.py:313) (8 samples, 1.10%)image (podman/domain/containers.py:37) (8 samples, 1.10%)get (podman/domain/images_manager.py:75) (8 samples, 1.10%)get (podman/api/client.py:236) (8 samples, 1.10%)_request (podman/api/client.py:404) (7 samples, 0.96%)request (requests/sessions.py:587) (6 samples, 0.82%)send (requests/sessions.py:701) (6 samples, 0.82%)send (requests/adapters.py:538) (2 samples, 0.27%)build_response (requests/adapters.py:323) (1 samples, 0.14%)extract_cookies_to_jar (requests/cookies.py:134) (1 samples, 0.14%)__init__ (requests/cookies.py:38) (1 samples, 0.14%)urlparse (urllib/parse.py:393) (1 samples, 0.14%)update_local (glances/plugins/glances_cpu.py:203) (1 samples, 0.14%)cpu_times_percent (psutil/__init__.py:1834) (1 samples, 0.14%)calculate (psutil/__init__.py:1815) (1 samples, 0.14%)update (glances/plugins/glances_cpu.py:163) (2 samples, 0.27%)update_local (glances/plugins/glances_cpu.py:212) (1 samples, 0.14%)cpu_stats (psutil/__init__.py:1856) (1 samples, 0.14%)cpu_stats (psutil/_pslinux.py:693) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)disk_io_counters (psutil/__init__.py:2069) (1 samples, 0.14%)disk_io_counters (psutil/_pslinux.py:1164) (1 samples, 0.14%)read_procfs (psutil/_pslinux.py:1116) (1 samples, 0.14%)run (psutil/_common.py:710) (3 samples, 0.41%)update (glances/plugins/glances_diskio.py:74) (5 samples, 0.69%)disk_io_counters (psutil/__init__.py:2073) (4 samples, 0.55%)wrap_numbers (psutil/_common.py:741) (4 samples, 0.55%)run (psutil/_common.py:712) (1 samples, 0.14%)disk_partitions (psutil/_pslinux.py:1270) (1 samples, 0.14%)disk_partitions (psutil/__init__.py:2023) (2 samples, 0.27%)disk_partitions (psutil/_pslinux.py:1297) (1 samples, 0.14%)update (glances/plugins/glances_fs.py:97) (3 samples, 0.41%)disk_partitions (psutil/__init__.py:2026) (1 samples, 0.14%)update (glances/plugins/glances_ip.py:103) (1 samples, 0.14%)update (glances/plugins/glances_ip.py:104) (1 samples, 0.14%)update (glances/plugins/glances_ip.py:93) (2 samples, 0.27%)update (glances/plugins/glances_mem.py:134) (1 samples, 0.14%)virtual_memory (psutil/__init__.py:1973) (1 samples, 0.14%)virtual_memory (psutil/_pslinux.py:419) (1 samples, 0.14%)swap_memory (psutil/_pslinux.py:530) (1 samples, 0.14%)update (glances/plugins/glances_memswap.py:81) (2 samples, 0.27%)swap_memory (psutil/__init__.py:1992) (2 samples, 0.27%)swap_memory (psutil/_pslinux.py:563) (1 samples, 0.14%)cpu_times_percent (psutil/__init__.py:1848) (1 samples, 0.14%)cpu_times (psutil/__init__.py:1620) (1 samples, 0.14%)per_cpu_times (psutil/_pslinux.py:614) (1 samples, 0.14%)<listcomp> (psutil/_pslinux.py:614) (1 samples, 0.14%)update (glances/plugins/glances_percpu.py:52) (2 samples, 0.27%)get (glances/cpu_percent.py:50) (2 samples, 0.27%)__get_percpu (glances/cpu_percent.py:99) (2 samples, 0.27%)cpu_times_percent (psutil/__init__.py:1850) (1 samples, 0.14%)calculate (psutil/__init__.py:1806) (1 samples, 0.14%)_cpu_times_deltas (psutil/__init__.py:1672) (1 samples, 0.14%)process_iter (psutil/__init__.py:1444) (1 samples, 0.14%)_init (psutil/__init__.py:345) (1 samples, 0.14%)_init (psutil/__init__.py:350) (1 samples, 0.14%)RLock (threading.py:101) (1 samples, 0.14%)__init__ (psutil/_pslinux.py:1673) (1 samples, 0.14%)_init (psutil/__init__.py:355) (5 samples, 0.69%)__init__ (psutil/_pslinux.py:1674) (2 samples, 0.27%)_init (psutil/__init__.py:356) (1 samples, 0.14%)create_time (psutil/__init__.py:718) (2 samples, 0.27%)wrapper (psutil/_common.py:474) (3 samples, 0.41%)cat (psutil/_common.py:801) (15 samples, 2.06%)c..open_binary (psutil/_common.py:765) (12 samples, 1.65%)_parse_stat_file (psutil/_pslinux.py:1695) (30 samples, 4.12%)_par..bcat (psutil/_common.py:813) (28 samples, 3.84%)bcat..cat (psutil/_common.py:802) (12 samples, 1.65%)_parse_stat_file (psutil/_pslinux.py:1699) (2 samples, 0.27%)_parse_stat_file (psutil/_pslinux.py:1700) (3 samples, 0.41%)_parse_stat_file (psutil/_pslinux.py:1701) (4 samples, 0.55%)_parse_stat_file (psutil/_pslinux.py:1703) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1705) (1 samples, 0.14%)create_time (psutil/_pslinux.py:1863) (50 samples, 6.86%)create_ti..wrapper (psutil/_pslinux.py:1653) (47 samples, 6.45%)wrapper ..wrapper (psutil/_common.py:478) (43 samples, 5.90%)wrapper.._parse_stat_file (psutil/_pslinux.py:1708) (1 samples, 0.14%)__init__ (psutil/__init__.py:332) (61 samples, 8.37%)__init__ (ps.._init (psutil/__init__.py:361) (53 samples, 7.27%)_init (psu..create_time (psutil/__init__.py:719) (51 samples, 7.00%)create_ti..wrapper (psutil/_pslinux.py:1653) (51 samples, 7.00%)wrapper (..create_time (psutil/_pslinux.py:1869) (1 samples, 0.14%)__eq__ (psutil/__init__.py:411) (1 samples, 0.14%)is_running (psutil/__init__.py:584) (65 samples, 8.92%)is_running (p..__ne__ (psutil/__init__.py:416) (2 samples, 0.27%)__eq__ (psutil/__init__.py:413) (1 samples, 0.14%)process_iter (psutil/__init__.py:1450) (67 samples, 9.19%)process_iter ..is_running (psutil/__init__.py:585) (1 samples, 0.14%)as_dict (psutil/__init__.py:510) (1 samples, 0.14%)as_dict (psutil/__init__.py:512) (2 samples, 0.27%)as_dict (psutil/__init__.py:513) (1 samples, 0.14%)oneshot (psutil/__init__.py:457) (1 samples, 0.14%)oneshot (psutil/__init__.py:482) (2 samples, 0.27%)oneshot (psutil/__init__.py:485) (1 samples, 0.14%)__enter__ (contextlib.py:135) (5 samples, 0.69%)oneshot (psutil/__init__.py:487) (1 samples, 0.14%)oneshot_enter (psutil/_pslinux.py:1737) (1 samples, 0.14%)as_dict (psutil/__init__.py:521) (8 samples, 1.10%)helper (contextlib.py:281) (2 samples, 0.27%)__init__ (contextlib.py:106) (1 samples, 0.14%)as_dict (psutil/__init__.py:522) (5 samples, 0.69%)as_dict (psutil/__init__.py:523) (1 samples, 0.14%)as_dict (psutil/__init__.py:527) (5 samples, 0.69%)cmdline (psutil/_pslinux.py:1771) (2 samples, 0.27%)open_text (psutil/_common.py:779) (1 samples, 0.14%)cmdline (psutil/__init__.py:686) (3 samples, 0.41%)wrapper (psutil/_pslinux.py:1653) (3 samples, 0.41%)cmdline (psutil/_pslinux.py:1772) (1 samples, 0.14%)cpu_times (psutil/_pslinux.py:1844) (2 samples, 0.27%)wrapper (psutil/_pslinux.py:1653) (1 samples, 0.14%)cpu_times (psutil/_pslinux.py:1849) (1 samples, 0.14%)cpu_percent (psutil/__init__.py:1004) (6 samples, 0.82%)wrapper (psutil/_pslinux.py:1653) (6 samples, 0.82%)cpu_times (psutil/_pslinux.py:1850) (2 samples, 0.27%)<lambda> (<string>:1) (1 samples, 0.14%)cpu_percent (psutil/__init__.py:1014) (2 samples, 0.27%)cpu_percent (psutil/__init__.py:1041) (1 samples, 0.14%)cpu_count_logical (psutil/_pslinux.py:622) (1 samples, 0.14%)cpu_percent (psutil/__init__.py:989) (7 samples, 0.96%)cpu_count (psutil/__init__.py:1587) (7 samples, 0.96%)cpu_count_logical (psutil/_pslinux.py:623) (6 samples, 0.82%)wrapper (psutil/_common.py:474) (1 samples, 0.14%)_read_status_file (psutil/_pslinux.py:1725) (12 samples, 1.65%)open_binary (psutil/_common.py:765) (7 samples, 0.96%)wrapper (psutil/_common.py:486) (30 samples, 4.12%)wrap.._read_status_file (psutil/_pslinux.py:1726) (18 samples, 2.47%)_r..gids (psutil/_pslinux.py:2263) (32 samples, 4.39%)gids ..wrapper (psutil/_pslinux.py:1653) (32 samples, 4.39%)wrapp..wrapper (psutil/_common.py:490) (1 samples, 0.14%)gids (psutil/_pslinux.py:2264) (3 samples, 0.41%)gids (psutil/__init__.py:748) (37 samples, 5.08%)gids (..wrapper (psutil/_pslinux.py:1653) (37 samples, 5.08%)wrappe..gids (psutil/_pslinux.py:2265) (2 samples, 0.27%)io_counters (psutil/_pslinux.py:1813) (1 samples, 0.14%)io_counters (psutil/_pslinux.py:1815) (23 samples, 3.16%)io_..open_binary (psutil/_common.py:765) (20 samples, 2.74%)op..io_counters (psutil/_pslinux.py:1816) (1 samples, 0.14%)io_counters (psutil/_pslinux.py:1818) (1 samples, 0.14%)wrapper (psutil/_pslinux.py:1653) (30 samples, 4.12%)wrap..io_counters (psutil/_pslinux.py:1821) (2 samples, 0.27%)io_counters (psutil/__init__.py:772) (35 samples, 4.80%)io_cou..wrapper (psutil/_pslinux.py:1655) (2 samples, 0.27%)__init__ (psutil/_common.py:344) (2 samples, 0.27%)memory_percent (psutil/__init__.py:1095) (2 samples, 0.27%)memory_percent (psutil/__init__.py:1096) (1 samples, 0.14%)wrapper (psutil/_common.py:474) (1 samples, 0.14%)wrapper (psutil/_common.py:485) (1 samples, 0.14%)memory_info (psutil/_pslinux.py:1885) (16 samples, 2.19%)m..open_binary (psutil/_common.py:765) (12 samples, 1.65%)memory_info (psutil/_pslinux.py:1887) (14 samples, 1.92%)m..<listcomp> (psutil/_pslinux.py:1887) (7 samples, 0.96%)memory_percent (psutil/__init__.py:1101) (37 samples, 5.08%)memory..wrapper (psutil/_common.py:486) (35 samples, 4.80%)wrappe..memory_info (psutil/__init__.py:1063) (35 samples, 4.80%)memory..wrapper (psutil/_pslinux.py:1653) (35 samples, 4.80%)wrappe..memory_info (psutil/_pslinux.py:1888) (3 samples, 0.41%)<lambda> (<string>:1) (2 samples, 0.27%)memory_percent (psutil/__init__.py:1112) (1 samples, 0.14%)name (psutil/_pslinux.py:1746) (1 samples, 0.14%)wrapper (psutil/_pslinux.py:1653) (1 samples, 0.14%)name (psutil/__init__.py:621) (4 samples, 0.55%)wrapper (psutil/_pslinux.py:1653) (4 samples, 0.55%)name (psutil/_pslinux.py:1748) (1 samples, 0.14%)decode (psutil/_common.py:843) (1 samples, 0.14%)name (psutil/__init__.py:622) (1 samples, 0.14%)cmdline (psutil/_pslinux.py:1771) (10 samples, 1.37%)open_text (psutil/_common.py:779) (6 samples, 0.82%)__init__ (codecs.py:310) (1 samples, 0.14%)cmdline (psutil/_pslinux.py:1772) (2 samples, 0.27%)decode (codecs.py:324) (1 samples, 0.14%)name (psutil/__init__.py:628) (15 samples, 2.06%)n..cmdline (psutil/__init__.py:686) (15 samples, 2.06%)c..wrapper (psutil/_pslinux.py:1653) (15 samples, 2.06%)w..cmdline (psutil/_pslinux.py:1785) (1 samples, 0.14%)name (psutil/__init__.py:641) (1 samples, 0.14%)name (psutil/__init__.py:642) (1 samples, 0.14%)nice (psutil/__init__.py:729) (4 samples, 0.55%)wrapper (psutil/_pslinux.py:1653) (4 samples, 0.55%)nice_get (psutil/_pslinux.py:2095) (3 samples, 0.41%)num_threads (psutil/_pslinux.py:2057) (1 samples, 0.14%)wrapper (psutil/_pslinux.py:1653) (1 samples, 0.14%)wrapper (psutil/_common.py:474) (1 samples, 0.14%)num_threads (psutil/__init__.py:869) (6 samples, 0.82%)wrapper (psutil/_pslinux.py:1653) (6 samples, 0.82%)num_threads (psutil/_pslinux.py:2058) (4 samples, 0.55%)wrapper (psutil/_pslinux.py:1652) (1 samples, 0.14%)status (psutil/__init__.py:691) (4 samples, 0.55%)wrapper (psutil/_pslinux.py:1653) (2 samples, 0.27%)status (psutil/_pslinux.py:2187) (1 samples, 0.14%)username (psutil/__init__.py:704) (3 samples, 0.41%)wrapper (psutil/_common.py:486) (3 samples, 0.41%)uids (psutil/__init__.py:742) (3 samples, 0.41%)wrapper (psutil/_pslinux.py:1653) (3 samples, 0.41%)uids (psutil/_pslinux.py:2257) (3 samples, 0.41%)wrapper (psutil/_pslinux.py:1653) (3 samples, 0.41%)wrapper (psutil/_common.py:486) (3 samples, 0.41%)_read_status_file (psutil/_pslinux.py:1726) (3 samples, 0.41%)username (psutil/__init__.py:706) (3 samples, 0.41%)wrapper (psutil/_common.py:474) (1 samples, 0.14%)cat (psutil/_common.py:801) (10 samples, 1.37%)open_binary (psutil/_common.py:765) (8 samples, 1.10%)_parse_stat_file (psutil/_pslinux.py:1695) (21 samples, 2.88%)_p..bcat (psutil/_common.py:813) (21 samples, 2.88%)bc..cat (psutil/_common.py:802) (10 samples, 1.37%)_parse_stat_file (psutil/_pslinux.py:1699) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1700) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1701) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1705) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1706) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1708) (1 samples, 0.14%)_parse_stat_file (psutil/_pslinux.py:1709) (1 samples, 0.14%)wrapper (psutil/_common.py:486) (29 samples, 3.98%)wrap.._parse_stat_file (psutil/_pslinux.py:1713) (1 samples, 0.14%)cpu_times (psutil/_pslinux.py:1844) (32 samples, 4.39%)cpu_t..wrapper (psutil/_pslinux.py:1653) (32 samples, 4.39%)wrapp..wrapper (psutil/_common.py:493) (1 samples, 0.14%)as_dict (psutil/__init__.py:528) (210 samples, 28.81%)as_dict (psutil/__init__.py:528)wrapper (psutil/_common.py:486) (35 samples, 4.80%)wrappe..cpu_times (psutil/__init__.py:1052) (35 samples, 4.80%)cpu_ti..wrapper (psutil/_pslinux.py:1653) (34 samples, 4.66%)wrapp..cpu_times (psutil/_pslinux.py:1845) (1 samples, 0.14%)as_dict (psutil/__init__.py:538) (1 samples, 0.14%)cache_deactivate (psutil/_common.py:504) (2 samples, 0.27%)oneshot (psutil/__init__.py:491) (4 samples, 0.55%)cache_deactivate (psutil/_common.py:506) (1 samples, 0.14%)update (glances/processes.py:396) (314 samples, 43.07%)update (glances/processes.py:396)process_iter (psutil/__init__.py:1452) (244 samples, 33.47%)process_iter (psutil/__init__.py:1452)as_dict (psutil/__init__.py:539) (9 samples, 1.23%)__exit__ (contextlib.py:142) (7 samples, 0.96%)oneshot (psutil/__init__.py:495) (3 samples, 0.41%)oneshot_exit (psutil/_pslinux.py:1740) (3 samples, 0.41%)cache_deactivate (psutil/_common.py:504) (2 samples, 0.27%)update (glances/processes.py:408) (1 samples, 0.14%)sort_stats (glances/processes.py:614) (1 samples, 0.14%)<lambda> (glances/processes.py:615) (1 samples, 0.14%)update (glances/processes.py:462) (1 samples, 0.14%)update (glances/processes.py:469) (1 samples, 0.14%)as_dict (psutil/__init__.py:521) (1 samples, 0.14%)__enter__ (contextlib.py:135) (1 samples, 0.14%)oneshot (psutil/__init__.py:487) (1 samples, 0.14%)oneshot_enter (psutil/_pslinux.py:1736) (1 samples, 0.14%)update (glances/processes.py:484) (1 samples, 0.14%)<lambda> (glances/processes.py:484) (1 samples, 0.14%)update (glances/plugins/glances_processcount.py:57) (319 samples, 43.76%)update (glances/plugins/glances_processcount.py:57)update (glances/processes.py:491) (1 samples, 0.14%)update (glances/plugins/glances_quicklook.py:52) (1 samples, 0.14%)get (glances/cpu_percent.py:52) (1 samples, 0.14%)__get_cpu (glances/cpu_percent.py:89) (1 samples, 0.14%)cpu_percent (psutil/__init__.py:1758) (1 samples, 0.14%)calculate (psutil/__init__.py:1734) (1 samples, 0.14%)_cpu_times_deltas (psutil/__init__.py:1675) (1 samples, 0.14%)update (glances/plugins/glances_quicklook.py:56) (1 samples, 0.14%)virtual_memory (psutil/__init__.py:1973) (1 samples, 0.14%)virtual_memory (psutil/_pslinux.py:516) (1 samples, 0.14%)usage_percent (psutil/_common.py:396) (1 samples, 0.14%)update (glances/plugins/glances_quicklook.py:58) (1 samples, 0.14%)swap_memory (psutil/__init__.py:1992) (1 samples, 0.14%)swap_memory (psutil/_pslinux.py:562) (1 samples, 0.14%)_cpu_get_cpuinfo_freq (psutil/_pslinux.py:716) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)_cpu_get_cpuinfo_freq (psutil/_pslinux.py:717) (1 samples, 0.14%)cpu_freq (psutil/_pslinux.py:730) (4 samples, 0.55%)_cpu_get_cpuinfo_freq (psutil/_pslinux.py:718) (2 samples, 0.27%)_iglob (glob.py:54) (1 samples, 0.14%)split (posixpath.py:103) (1 samples, 0.14%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)cpu_freq (psutil/_pslinux.py:732) (3 samples, 0.41%)glob (glob.py:24) (3 samples, 0.41%)_iglob (glob.py:87) (1 samples, 0.14%)update (glances/plugins/glances_quicklook.py:64) (8 samples, 1.10%)get_info (glances/cpu_percent.py:60) (8 samples, 1.10%)cpu_freq (psutil/__init__.py:1869) (8 samples, 1.10%)cpu_freq (psutil/_pslinux.py:753) (1 samples, 0.14%)bcat (psutil/_common.py:813) (1 samples, 0.14%)cat (psutil/_common.py:801) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)__init__ (codecs.py:310) (1 samples, 0.14%)join (posixpath.py:77) (1 samples, 0.14%)_get_sep (posixpath.py:42) (1 samples, 0.14%)join (posixpath.py:82) (1 samples, 0.14%)__get_stat__ (batinfo/battery.py:63) (15 samples, 2.06%)_..join (posixpath.py:85) (1 samples, 0.14%)__update__ (batinfo/battery.py:78) (20 samples, 2.74%)__..__get_stat__ (batinfo/battery.py:64) (4 samples, 0.55%)__update__ (batinfo/battery.py:81) (1 samples, 0.14%)wrapper (glances/plugins/glances_plugin.py:1131) (22 samples, 3.02%)wra..update (glances/plugins/sensors/glances_batpercent.py:69) (22 samples, 3.02%)upd..update (glances/plugins/sensors/glances_batpercent.py:103) (22 samples, 3.02%)upd..update (batinfo/battery.py:124) (22 samples, 3.02%)upd..__init__ (batinfo/battery.py:38) (22 samples, 3.02%)__i..__update__ (batinfo/battery.py:85) (1 samples, 0.14%)update (glances/plugins/glances_sensors.py:110) (23 samples, 3.16%)upd..wrapper (glances/plugins/glances_plugin.py:1134) (1 samples, 0.14%)update (glances/plugins/glances_sensors.py:127) (1 samples, 0.14%)get_init_value (glances/plugins/glances_plugin.py:131) (1 samples, 0.14%)copy (copy.py:72) (1 samples, 0.14%)filter (fnmatch.py:57) (1 samples, 0.14%)_iglob (glob.py:86) (2 samples, 0.27%)_glob1 (glob.py:97) (2 samples, 0.27%)filter (fnmatch.py:59) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1323) (3 samples, 0.41%)glob (glob.py:24) (3 samples, 0.41%)_iglob (glob.py:87) (1 samples, 0.14%)join (posixpath.py:77) (1 samples, 0.14%)_get_sep (posixpath.py:45) (1 samples, 0.14%)_iglob (glob.py:85) (1 samples, 0.14%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:146) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1334) (2 samples, 0.27%)glob (glob.py:24) (2 samples, 0.27%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:148) (1 samples, 0.14%)cat (psutil/_common.py:801) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1345) (3 samples, 0.41%)bcat (psutil/_common.py:813) (3 samples, 0.41%)cat (psutil/_common.py:802) (2 samples, 0.27%)sensors_temperatures (psutil/_pslinux.py:1359) (1 samples, 0.14%)bcat (psutil/_common.py:813) (1 samples, 0.14%)cat (psutil/_common.py:805) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)cat (psutil/_common.py:805) (1 samples, 0.14%)open_text (psutil/_common.py:779) (1 samples, 0.14%)__update__ (glances/plugins/glances_sensors.py:310) (11 samples, 1.51%)build_sensors_list (glances/plugins/glances_sensors.py:327) (11 samples, 1.51%)sensors_temperatures (psutil/__init__.py:2250) (11 samples, 1.51%)sensors_temperatures (psutil/_pslinux.py:1361) (2 samples, 0.27%)cat (psutil/_common.py:806) (1 samples, 0.14%)update (glances/plugins/glances_sensors.py:85) (12 samples, 1.65%)get (glances/plugins/glances_sensors.py:358) (12 samples, 1.65%)__update__ (glances/plugins/glances_sensors.py:313) (1 samples, 0.14%)build_sensors_list (glances/plugins/glances_sensors.py:330) (1 samples, 0.14%)sensors_fans (psutil/__init__.py:2280) (1 samples, 0.14%)sensors_fans (psutil/_pslinux.py:1433) (1 samples, 0.14%)glob (glob.py:24) (1 samples, 0.14%)_iglob (glob.py:85) (1 samples, 0.14%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:146) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1323) (2 samples, 0.27%)glob (glob.py:24) (2 samples, 0.27%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:146) (1 samples, 0.14%)cat (psutil/_common.py:801) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1345) (3 samples, 0.41%)bcat (psutil/_common.py:813) (3 samples, 0.41%)cat (psutil/_common.py:802) (2 samples, 0.27%)sensors_temperatures (psutil/_pslinux.py:1347) (6 samples, 0.82%)cat (psutil/_common.py:801) (6 samples, 0.82%)open_text (psutil/_common.py:779) (5 samples, 0.69%)sensors_temperatures (psutil/_pslinux.py:1359) (1 samples, 0.14%)bcat (psutil/_common.py:813) (1 samples, 0.14%)cat (psutil/_common.py:805) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)sensors_temperatures (psutil/_pslinux.py:1360) (5 samples, 0.69%)bcat (psutil/_common.py:813) (5 samples, 0.69%)cat (psutil/_common.py:805) (4 samples, 0.55%)open_binary (psutil/_common.py:765) (4 samples, 0.55%)__update__ (glances/plugins/glances_sensors.py:310) (22 samples, 3.02%)__u..build_sensors_list (glances/plugins/glances_sensors.py:327) (22 samples, 3.02%)bui..sensors_temperatures (psutil/__init__.py:2250) (22 samples, 3.02%)sen..sensors_temperatures (psutil/_pslinux.py:1361) (5 samples, 0.69%)cat (psutil/_common.py:805) (5 samples, 0.69%)open_text (psutil/_common.py:779) (5 samples, 0.69%)_iglob (glob.py:86) (1 samples, 0.14%)_glob1 (glob.py:94) (1 samples, 0.14%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:149) (1 samples, 0.14%)_iglob (glob.py:85) (2 samples, 0.27%)_iglob (glob.py:85) (2 samples, 0.27%)_iglob (glob.py:87) (1 samples, 0.14%)join (posixpath.py:76) (1 samples, 0.14%)_listdir (glob.py:163) (1 samples, 0.14%)__exit__ (contextlib.py:340) (1 samples, 0.14%)update (glances/plugins/glances_sensors.py:93) (26 samples, 3.57%)upda..get (glances/plugins/glances_sensors.py:358) (26 samples, 3.57%)get ..__update__ (glances/plugins/glances_sensors.py:313) (4 samples, 0.55%)build_sensors_list (glances/plugins/glances_sensors.py:330) (4 samples, 0.55%)sensors_fans (psutil/__init__.py:2280) (4 samples, 0.55%)sensors_fans (psutil/_pslinux.py:1437) (4 samples, 0.55%)glob (glob.py:24) (4 samples, 0.55%)_iglob (glob.py:86) (2 samples, 0.27%)_glob1 (glob.py:94) (2 samples, 0.27%)_listdir (glob.py:164) (1 samples, 0.14%)_iterdir (glob.py:148) (1 samples, 0.14%)update (glances/plugins/glances_system.py:113) (1 samples, 0.14%)_linux_os_release (glances/plugins/glances_system.py:59) (1 samples, 0.14%)boot_time (psutil/_pslinux.py:1572) (1 samples, 0.14%)open_binary (psutil/_common.py:765) (1 samples, 0.14%)wrapper (glances/plugins/glances_plugin.py:1131) (449 samples, 61.59%)wrapper (glances/plugins/glances_plugin.py:1131)update (glances/plugins/glances_uptime.py:59) (4 samples, 0.55%)boot_time (psutil/__init__.py:2312) (4 samples, 0.55%)boot_time (psutil/_pslinux.py:1573) (3 samples, 0.41%)wrapper (glances/plugins/glances_plugin.py:1132) (1 samples, 0.14%)get (glances/timer.py:73) (1 samples, 0.14%)wrapper (glances/plugins/glances_plugin.py:1114) (454 samples, 62.28%)wrapper (glances/plugins/glances_plugin.py:1114)wrapper (glances/plugins/glances_plugin.py:1134) (4 samples, 0.55%)wrapper (glances/plugins/glances_plugin.py:1116) (1 samples, 0.14%)net_io_counters (psutil/_pslinux.py:1027) (1 samples, 0.14%)open_text (psutil/_common.py:779) (1 samples, 0.14%)update (glances/plugins/glances_network.py:121) (2 samples, 0.27%)net_io_counters (psutil/__init__.py:2119) (2 samples, 0.27%)net_io_counters (psutil/_pslinux.py:1028) (1 samples, 0.14%)net_if_stats (psutil/_pslinux.py:1065) (1 samples, 0.14%)net_io_counters (psutil/_pslinux.py:1027) (1 samples, 0.14%)update (glances/stats.py:216) (459 samples, 62.96%)update (glances/stats.py:216)wrapper (glances/plugins/glances_plugin.py:1131) (4 samples, 0.55%)update (glances/plugins/glances_network.py:131) (2 samples, 0.27%)net_if_stats (psutil/__init__.py:2226) (2 samples, 0.27%)net_if_stats (psutil/_pslinux.py:1069) (1 samples, 0.14%)deepcopy (copy.py:144) (1 samples, 0.14%)update_stats_history (glances/plugins/glances_plugin.py:182) (2 samples, 0.27%)get_export (glances/plugins/glances_containers.py:123) (2 samples, 0.27%)deepcopy (copy.py:146) (1 samples, 0.14%)_deepcopy_list (copy.py:206) (1 samples, 0.14%)deepcopy (copy.py:146) (1 samples, 0.14%)_deepcopy_dict (copy.py:231) (1 samples, 0.14%)deepcopy (copy.py:138) (1 samples, 0.14%)update (glances/stats.py:218) (3 samples, 0.41%)update_stats_history (glances/plugins/glances_plugin.py:192) (1 samples, 0.14%)get_export (glances/plugins/glances_containers.py:123) (1 samples, 0.14%)deepcopy (copy.py:146) (1 samples, 0.14%)_deepcopy_list (copy.py:206) (1 samples, 0.14%)deepcopy (copy.py:146) (1 samples, 0.14%)_deepcopy_dict (copy.py:231) (1 samples, 0.14%)deepcopy (copy.py:177) (1 samples, 0.14%)_keep_alive (copy.py:254) (1 samples, 0.14%)update_views (glances/plugins/glances_diskio.py:142) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:492) (1 samples, 0.14%)update_views (glances/plugins/glances_load.py:144) (1 samples, 0.14%)update_views (glances/plugins/glances_mem.py:231) (1 samples, 0.14%)get_alert_log (glances/plugins/glances_plugin.py:738) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:667) (1 samples, 0.14%)get_stat_name (glances/plugins/glances_plugin.py:620) (1 samples, 0.14%)update_views (glances/plugins/glances_memswap.py:147) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:502) (1 samples, 0.14%)update_views (glances/plugins/glances_network.py:263) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:488) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:479) (5 samples, 0.69%)listkeys (glances/compat.py:81) (2 samples, 0.27%)update_views (glances/plugins/glances_plugin.py:480) (10 samples, 1.37%)update_views (glances/plugins/glances_plugin.py:482) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:485) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:487) (14 samples, 1.92%)u..get_key (glances/plugins/glances_processlist.py:137) (2 samples, 0.27%)update_views (glances/plugins/glances_plugin.py:488) (10 samples, 1.37%)get_key (glances/plugins/glances_processlist.py:137) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:489) (17 samples, 2.33%)u..get_key (glances/plugins/glances_processlist.py:137) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:492) (12 samples, 1.65%)get_key (glances/plugins/glances_processlist.py:137) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:506) (4 samples, 0.55%)get_limit_action (glances/plugins/glances_plugin.py:775) (1 samples, 0.14%)update_views (glances/plugins/glances_quicklook.py:89) (3 samples, 0.41%)get_alert (glances/plugins/glances_plugin.py:700) (2 samples, 0.27%)manage_action (glances/plugins/glances_plugin.py:710) (2 samples, 0.27%)get_limit_action (glances/plugins/glances_plugin.py:776) (1 samples, 0.14%)__serve_once (glances/standalone.py:137) (546 samples, 74.90%)__serve_once (glances/standalone.py:137)update (glances/stats.py:220) (83 samples, 11.39%)update (glances/s..update_views (glances/plugins/glances_sensors.py:168) (1 samples, 0.14%)update_views (glances/plugins/glances_plugin.py:488) (1 samples, 0.14%)flush (glances/outputs/glances_curses.py:1132) (1 samples, 0.14%)erase (glances/outputs/glances_curses.py:1121) (1 samples, 0.14%)msg_curse (glances/plugins/glances_network.py:332) (1 samples, 0.14%)sorted_stats (glances/plugins/glances_plugin.py:295) (1 samples, 0.14%)<lambda> (glances/plugins/glances_plugin.py:300) (1 samples, 0.14%)split (re.py:230) (1 samples, 0.14%)_compile (re.py:290) (1 samples, 0.14%)get_stats_display (glances/plugins/glances_plugin.py:888) (2 samples, 0.27%)msg_curse (glances/plugins/glances_ports.py:171) (1 samples, 0.14%)get_ports_alert (glances/plugins/glances_ports.py:116) (1 samples, 0.14%)manage_action (glances/plugins/glances_plugin.py:710) (1 samples, 0.14%)get_limit_action (glances/plugins/glances_plugin.py:777) (1 samples, 0.14%)msg_curse (glances/plugins/glances_help.py:168) (1 samples, 0.14%)<genexpr> (glances/plugins/glances_help.py:168) (1 samples, 0.14%)get_trend (glances/plugins/glances_plugin.py:265) (1 samples, 0.14%)get_raw_history (glances/plugins/glances_plugin.py:220) (1 samples, 0.14%)get (glances/history.py:40) (1 samples, 0.14%)<dictcomp> (glances/history.py:40) (1 samples, 0.14%)msg_curse (glances/plugins/glances_load.py:162) (2 samples, 0.27%)get_trend (glances/plugins/glances_plugin.py:269) (1 samples, 0.14%)mean (statistics.py:329) (1 samples, 0.14%)_sum (statistics.py:198) (1 samples, 0.14%)<genexpr> (statistics.py:198) (1 samples, 0.14%)__new__ (fractions.py:142) (1 samples, 0.14%)msg_curse (glances/plugins/glances_mem.py:250) (1 samples, 0.14%)get_trend (glances/plugins/glances_plugin.py:268) (1 samples, 0.14%)msg_curse (glances/plugins/glances_mem.py:262) (1 samples, 0.14%)curse_add_stat (glances/plugins/glances_plugin.py:1025) (1 samples, 0.14%)curse_add_line (glances/plugins/glances_plugin.py:920) (1 samples, 0.14%)display (glances/outputs/glances_curses.py:614) (8 samples, 1.10%)__get_stat_display (glances/outputs/glances_curses.py:590) (8 samples, 1.10%)get_stats_display (glances/plugins/glances_plugin.py:890) (6 samples, 0.82%)msg_curse (glances/plugins/glances_memswap.py:183) (1 samples, 0.14%)curse_add_stat (glances/plugins/glances_plugin.py:967) (1 samples, 0.14%)msg_curse (glances/plugins/glances_processlist.py:457) (1 samples, 0.14%)__sort_stats (glances/plugins/glances_processlist.py:826) (1 samples, 0.14%)sort_stats (glances/processes.py:614) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:360) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:361) (1 samples, 0.14%)_get_process_curses_cpu (glances/plugins/glances_processlist.py:188) (1 samples, 0.14%)key_exist_value_not_none_not_v (glances/compat.py:303) (1 samples, 0.14%)_get_process_curses_cpu (glances/plugins/glances_processlist.py:193) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:655) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:660) (1 samples, 0.14%)_get_process_curses_cpu (glances/plugins/glances_processlist.py:194) (4 samples, 0.55%)get_alert (glances/plugins/glances_plugin.py:675) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:367) (8 samples, 1.10%)_get_process_curses_cpu (glances/plugins/glances_processlist.py:200) (1 samples, 0.14%)curse_add_line (glances/plugins/glances_plugin.py:920) (1 samples, 0.14%)_get_process_curses_mem (glances/plugins/glances_processlist.py:208) (1 samples, 0.14%)key_exist_value_not_none_not_v (glances/compat.py:303) (1 samples, 0.14%)_get_process_curses_mem (glances/plugins/glances_processlist.py:209) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:667) (1 samples, 0.14%)get_stat_name (glances/plugins/glances_plugin.py:619) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:673) (1 samples, 0.14%)get_limit (glances/plugins/glances_plugin.py:763) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:675) (1 samples, 0.14%)get_limit (glances/plugins/glances_plugin.py:753) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:677) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:686) (1 samples, 0.14%)get_alert (glances/plugins/glances_plugin.py:689) (4 samples, 0.55%)get_limit_log (glances/plugins/glances_plugin.py:792) (4 samples, 0.55%)get_alert (glances/plugins/glances_plugin.py:697) (1 samples, 0.14%)get_limit_action (glances/plugins/glances_plugin.py:775) (2 samples, 0.27%)_get_process_curses_mem (glances/plugins/glances_processlist.py:210) (16 samples, 2.19%)_..get_alert (glances/plugins/glances_plugin.py:700) (5 samples, 0.69%)manage_action (glances/plugins/glances_plugin.py:710) (4 samples, 0.55%)get_limit_action (glances/plugins/glances_plugin.py:777) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:370) (19 samples, 2.61%)ge.._get_process_curses_mem (glances/plugins/glances_processlist.py:216) (1 samples, 0.14%)curse_add_line (glances/plugins/glances_plugin.py:921) (1 samples, 0.14%)_get_process_curses_vms (glances/plugins/glances_processlist.py:224) (4 samples, 0.55%)key_exist_value_not_none_not_v (glances/compat.py:303) (3 samples, 0.41%)auto_unit (glances/plugins/glances_plugin.py:1060) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1061) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1071) (2 samples, 0.27%)auto_unit (glances/plugins/glances_plugin.py:1072) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:371) (16 samples, 2.19%)g.._get_process_curses_vms (glances/plugins/glances_processlist.py:225) (12 samples, 1.65%)auto_unit (glances/plugins/glances_plugin.py:1086) (3 samples, 0.41%)_get_process_curses_rss (glances/plugins/glances_processlist.py:234) (2 samples, 0.27%)key_exist_value_not_none_not_v (glances/compat.py:303) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1059) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1060) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1071) (1 samples, 0.14%)auto_unit (glances/plugins/glances_plugin.py:1086) (3 samples, 0.41%)get_process_curses_data (glances/plugins/glances_processlist.py:372) (10 samples, 1.37%)_get_process_curses_rss (glances/plugins/glances_processlist.py:235) (8 samples, 1.10%)auto_unit (glances/plugins/glances_plugin.py:1087) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:377) (6 samples, 0.82%)get_process_curses_data (glances/plugins/glances_processlist.py:384) (2 samples, 0.27%)get_process_curses_data (glances/plugins/glances_processlist.py:387) (1 samples, 0.14%)_get_process_curses_username (glances/plugins/glances_processlist.py:248) (1 samples, 0.14%)seconds_to_hms (glances/plugins/glances_processlist.py:27) (2 samples, 0.27%)seconds_to_hms (glances/plugins/glances_processlist.py:30) (1 samples, 0.14%)seconds_to_hms (glances/plugins/glances_processlist.py:31) (3 samples, 0.41%)_get_process_curses_time (glances/plugins/glances_processlist.py:268) (7 samples, 0.96%)seconds_to_hms (glances/plugins/glances_processlist.py:33) (1 samples, 0.14%)_get_process_curses_time (glances/plugins/glances_processlist.py:275) (2 samples, 0.27%)get_process_curses_data (glances/plugins/glances_processlist.py:390) (14 samples, 1.92%)g.._get_process_curses_time (glances/plugins/glances_processlist.py:279) (4 samples, 0.55%)_get_process_curses_thread (glances/plugins/glances_processlist.py:284) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:393) (2 samples, 0.27%)_get_process_curses_thread (glances/plugins/glances_processlist.py:288) (1 samples, 0.14%)_get_process_curses_nice (glances/plugins/glances_processlist.py:301) (1 samples, 0.14%)get_limit (glances/plugins/glances_plugin.py:754) (1 samples, 0.14%)get_nice_alert (glances/plugins/glances_processlist.py:170) (3 samples, 0.41%)get_limit (glances/plugins/glances_plugin.py:758) (1 samples, 0.14%)get_nice_alert (glances/plugins/glances_processlist.py:175) (1 samples, 0.14%)get_limit (glances/plugins/glances_plugin.py:754) (1 samples, 0.14%)_get_process_curses_nice (glances/plugins/glances_processlist.py:302) (6 samples, 0.82%)get_nice_alert (glances/plugins/glances_processlist.py:180) (2 samples, 0.27%)get_limit (glances/plugins/glances_plugin.py:754) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:396) (9 samples, 1.23%)_get_process_curses_nice (glances/plugins/glances_processlist.py:306) (1 samples, 0.14%)_get_process_curses_status (glances/plugins/glances_processlist.py:313) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:399) (2 samples, 0.27%)_get_process_curses_status (glances/plugins/glances_processlist.py:316) (1 samples, 0.14%)_get_process_curses_io (glances/plugins/glances_processlist.py:324) (1 samples, 0.14%)_get_process_curses_io (glances/plugins/glances_processlist.py:328) (1 samples, 0.14%)_get_process_curses_io (glances/plugins/glances_processlist.py:332) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:402) (5 samples, 0.69%)_get_process_curses_io_read (glances/plugins/glances_processlist.py:343) (5 samples, 0.69%)_get_process_curses_io (glances/plugins/glances_processlist.py:338) (2 samples, 0.27%)_get_process_curses_io (glances/plugins/glances_processlist.py:332) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:403) (2 samples, 0.27%)_get_process_curses_io_write (glances/plugins/glances_processlist.py:347) (2 samples, 0.27%)_get_process_curses_io (glances/plugins/glances_processlist.py:335) (1 samples, 0.14%)curse_add_line (glances/plugins/glances_plugin.py:920) (1 samples, 0.14%)split_cmdline (glances/plugins/glances_processlist.py:46) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:413) (3 samples, 0.41%)split_cmdline (glances/plugins/glances_processlist.py:49) (2 samples, 0.27%)split (posixpath.py:103) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:418) (4 samples, 0.55%)isdir (genericpath.py:42) (3 samples, 0.41%)get_process_curses_data (glances/plugins/glances_processlist.py:423) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:424) (1 samples, 0.14%)curse_add_line (glances/plugins/glances_plugin.py:920) (1 samples, 0.14%)get_process_curses_data (glances/plugins/glances_processlist.py:425) (2 samples, 0.27%)get_process_curses_data (glances/plugins/glances_processlist.py:427) (1 samples, 0.14%)display (glances/outputs/glances_curses.py:642) (113 samples, 15.50%)display (glances/outputs..get_stats_display (glances/plugins/glances_plugin.py:890) (113 samples, 15.50%)get_stats_display (glanc..msg_curse (glances/plugins/glances_processlist.py:476) (112 samples, 15.36%)msg_curse (glances/plugi..get_process_curses_data (glances/plugins/glances_processlist.py:429) (1 samples, 0.14%)display_plugin (glances/outputs/glances_curses.py:1077) (1 samples, 0.14%)display (glances/outputs/glances_curses.py:676) (2 samples, 0.27%)__display_left (glances/outputs/glances_curses.py:892) (2 samples, 0.27%)display_plugin (glances/outputs/glances_curses.py:1105) (1 samples, 0.14%)display_plugin (glances/outputs/glances_curses.py:1060) (1 samples, 0.14%)display_plugin (glances/outputs/glances_curses.py:1063) (1 samples, 0.14%)display_plugin (glances/outputs/glances_curses.py:1083) (1 samples, 0.14%)update (glances/outputs/glances_curses.py:1151) (130 samples, 17.83%)update (glances/outputs/glan..flush (glances/outputs/glances_curses.py:1133) (129 samples, 17.70%)flush (glances/outputs/glan..display (glances/outputs/glances_curses.py:684) (5 samples, 0.69%)__display_right (glances/outputs/glances_curses.py:915) (5 samples, 0.69%)display_plugin (glances/outputs/glances_curses.py:1088) (2 samples, 0.27%)all (729 samples, 100%)process 229330:"./venv/bin/python -m glances -C ./conf/glances.conf" (729 samples, 100.00%)process 229330:"./venv/bin/python -m glances -C ./conf/glances.conf"_run_module_as_main (runpy.py:196) (682 samples, 93.55%)_run_module_as_main (runpy.py:196)_run_code (runpy.py:86) (682 samples, 93.55%)_run_code (runpy.py:86)<module> (glances/__main__.py:18) (682 samples, 93.55%)<module> (glances/__main__.py:18)main (glances/__init__.py:180) (682 samples, 93.55%)main (glances/__init__.py:180)start (glances/__init__.py:131) (682 samples, 93.55%)start (glances/__init__.py:131)serve_forever (glances/standalone.py:171) (682 samples, 93.55%)serve_forever (glances/standalone.py:171)__serve_once (glances/standalone.py:155) (136 samples, 18.66%)__serve_once (glances/standal..update (glances/outputs/glances_curses.py:1166) (6 samples, 0.82%)__catch_key (glances/outputs/glances_curses.py:356) (6 samples, 0.82%)get_key (glances/outputs/glances_curses.py:351) (6 samples, 0.82%)glances-3.4.0.3/docs/_static/raid.png0000644000175000017500000001272114432156570017214 0ustar epsilonepsilonPNG  IHDRc#sBITOtEXtSoftwareShutterc mIDATxwXSgIB=(UPpjѢֶVk݊⠂XqEEAY@B#[-./}~K E@C$j7~MBSՃnpO^ߘ߆[y/}ThQK#v2!X|:(Xl͉\292xS^u#~~NT8x><9VȦ_*TbD 덠~.AenO:7C]˰ Lfc~d[^4<[fe5lvJ3RҸ̾~"wR$`RGyULPU!+^,l?N6wǝpX t=G g[BadK/;_)dw774~S݀As޿Tgq5em|ImZ>?7Mڙh&;Phݴ?^l >_ 1WW'(`}ȎJLr`6eAY>1uxdXl7d7;em+^3nLˉܗ{Zh4h偿\b_ye֏rՀg2({,73 v]N@ސ1 OyK=6@Nh~` ΰkeQ!Yb߉i~+Wh8Y3ʈi.0[s ? p9çۑ?ykSߟPvnozTڹn*#pefU2!e/(Zaߌ ۻiX#@ҟ9\bsX/ZfzXH 3$錙d&&LVɊ~4N ʍ|\?l 6BW@Prt*氞R_rgmN 7f[NG8E t{Kzϭگ?@gO(ojlu\񺸥Vn>~+~fZl^\U&kغr|Ir=`&)igp"靦cWx*򼔻cP DT"SK&4Wf+nY엑S"8p+UH@f푕C{g;naK5?$Ie_yCb4I@g &8PrfuW@̆ORme5R*H=e޴AuiV/\v,bǷIb~]QH JdIJN.aS̕e/ &k-jhʫ#f$렪[+|<Lmv39|7} pGR~6/T V3d!᭰e_yTSvn-u#FaaGh Z ;DŽB4]wxpPpȦL- ۛwr`Du Z=b`G7/w e>o墩twR)IՍ߾sD c#S+' :R>uY־PYƝxsKZb$cWvQ)(l3R lJ_]uZNƘjiQ mq+:k@q<3h}^|)xMʭv&e 7Li3Iq{xMZĮe>5?oULpz=UMx۴sKUqcjO88q?pؒ:?Iؙ i]EoʐdJ}zdya{)qB7jO1ڄ;Sϥ&U\.0N3%Iosϓ\>ADF(PW{○.Plxڶ"ݐ:NBBBNBBNBBNBBBNBBNjzY TG,Hr]ڿ (]`lßǯ?T'ydLܩ3{%j)@c9'a1oq#6pD7yBI7_:yGhAe堀ĝtF4 QzckEq}"'¸_}=gY~zq>wNG*l{_pΟ3kZ3$~|Idz3E?tFw p:~' 8ot'LŤW4dEՕI)f]G8##Ζ^RW'l )˄LT*%,`he8Mv&txS'=bQ<4&$G,N8-ô.+g ٣]o9~XSa pÒ}-΋: j1۬1:>ىLQ^k-O* _9JMSPسԎ8Y'aTᓝ l1mge FhtE5Fb`.E&ֺBNʞgk7S8ť;?go97m>&mtŒΰy3$sҞ@yr,9uU^) :y"ځ6H |"[G޹%K$F&=:Jq)=q" ch:FtD%ݺ)D:ҭ{A[#ݠsHn"zB["ݺmH7%["֋H!ҭn"ݚ_=[ăH7$vIHHIHIHIHHIHI":Q_I7֘7ԐAI|h\D6ҍj==e_9gO j,"z&x7'sED8:s:HMidIUYWDbҍj6s8U]dnt#h '\_uFB@"L%R6E}'"z-=YҮ nt#yT3z<ՁLSHz F4e2gz椄簜F%5K=  /޲-/tۖqAͱ@ʀA'2 2̾A7gwI7ng_*9v$)TIq_exLN:EniO]tr`odr29YY%̉16ٳ1)e`\i(òQVrI7icao?IJ{;MZyדnz|xte/*{'.Pmaqv%F>a,qG%~c=ǫWu$E7P(+(eLv7ge1Nǻ@v|@aUʢrCrۚ%5u`jFҦ#/}k~>*ޑO90WJsO-{mР)Z>g~-ӻ\!0)JЀ\/ kFzF2ҭ1⟗Ғ[u}@OIo9? `Ժ=?Xк.Ȫr76XMT^:\MR[[[Y<q߰Id|we4'O{֎8t Ǫltt읠P6Ff {>?."cW-R_)ղ^㣞72"݈ h[?\l=22ɒ@5",M۸.7,O:^+/8tBYU320>8Ss>Aᢪm~ "3agt2)>(@ +ڗ{Y:ARrnl&uhtCK!@BNBBNBBNBBBNBBNBBNBBNBBBNBBNBBNBBNBBBNB!?S|֞IENDB`glances-3.4.0.3/docs/_static/glances-summary.png0000644000175000017500000127240614432156570021415 0ustar epsilonepsilonPNG  IHDRqLpsBITOtEXtSoftwareShutterc IDATxu\ )[,U\\s (twf=º~cν95wfAAAAAAAAAAAAAAAA䟁@  #X֭դ 򥵊)FD1ZZ 2Ҥ!  E VSρxrTաߴ9(% Qn0|F(Dء[.tQ   iyZ(<@!t]\[NoBɀ1[ʦqCW:K^嬋>hu=>ZA3`!F l>onkm: #X1gʘN: o G| v[>j3 T_6~*VYgx~E@kH7;mZM82 sR^.U ݇ X'dp܋8 1MŅ.Ǘ<Ihں[+GK=eFsWR$#Ficg"ɉ zz4{5Ɇv Y>*Y Mίnw68tСFV7dΎGfMáiC:76~}1ҩ4wp̰'y |^8h|Pp8_ m "v^UL4E<~x k.^t0a8|9Z.|(kfų e/z[By[t[wi6RPFͯ4[ ):G_GS (tICmY=l֕iI+>! >AOQL{͞7g:i/zy ȭ"oSLlK>8mǵaϥQ{%``UkQd/M WP r!璌DMr9$д$J˙ 9$x*WDL7 ̹܅Nug4ޙn1&u]v1{,f}UT9V0^)kmّon~IA$hR)jrT{&#UoXFL >g.uj<֩.wo c/t̛<M5mm$:urע9DSyIYEcs%GnnpBQ!۶ScAZ|Hز^ɥEUs$g IvBtR3WYɰbk;Iqg1q25os}J#-:O򜱃c,&V!_{Cȡ Y,0F7q,n>8Ɏ.[1!+.$TVCȼxP$2ӦsWۜgVߚaՒYu5:hwJ~&]}Ըꪒߡl*4e;677d߀!Id=3fwy:Av Nշk\Wȏ&DS(M{V=zʓcطQ`uIe)TY<1NȤ=4X$k103U(\Fm4[_sLz-8ͯy X:TIVFf=pѼc!iޛ Yƿs`Q@NtzH}=߶ hj8+=K˱ٗG!KvBEym.MqoJؚ@pɢ]r^3֞/9zۧihr hY=(YzK^߾']~m5Y+eYM-cXFȢ l8#/lhsw*NEDeHg>`ߡLarXprkw0iƹ ^!H Z9إ*B^;j[+̄cKg &u_?q5]hDܣ[Tt>\4Jm_wO{&콟.e6PZ1ŪR iӮI#v9v9ئ9N+|(|,)[l,pqd /?$~5^N)^n*ϯ.=-HY |)ޛ Z%g ʪJ%L$P E3 MI($2$l30&40Hb EY6 ی9N {ui玣>itnFt~bv|[v_ŊJ>BߖJ_+Ύ ztk/2x)F6cØj'͊C/ZGB5q[3?Du//ȫӉL ," oAzRߐWp2k{\dT{d}ɽ&}Jq![9EJSc{hUsh×rӣ@5aIFd7*al.FLM*Wl;y:M2iOފ,*JN@n^!4vp(4j)|Wt-}3hnmLsWʨʪ*P TjpHݠE];fP&wǻ#0cgۭ^0lSmsG?f#<'y7t<Tg%@VksPIc)MkĒp헧+cLǦ uK&z]qqrO@+qbm'*RCoǎ+Kn+|}߫rt{xI2oU)E7Xl|r5A3.vY=ĸmd[He]B!W_O=%@N1~l0cޏ]@99y/cRQm6wke^MC[ڨc@w"m9bk<2l%(Bŀn̥ve$g6cZ b_J˺u8(䫪q"1(܊$ɒA ϾbC Қ(wKlbޝ{;A;s> 7bܹ^+^[ <> ٭b~Yr?;vrisM¨>HX2Y_%(KU6a&xvY5Hpdn+V-QmZ8![_e0eڋ!hq:1/B hA-K, y%C88-]l4i#-{vκcxe㛔k+|olWX @5om$ ƞ[u?n8a`i&-޺HKFd7*aul/ k #_&흀^sF,pJJzd1PsDs3M/'%œcK]LEoּ!`A'Ogf:c!O1 P&9u}k^z8Egsih].O_ Wkqn:DڹbFM@[5|Ki*KgG;Q2,I$d҄AE y8X;,VΪ遏Ϝ!;OYrzŏdtXiAZaf%6zwu7x}J6B`wǢlXjݱ]Q H-^|̋{ՙjTIJUGH(}hQ ?DI+P˸QF.9AO{ 5TݮƘzV@u} OeY/J/∧ȫsj0hR!U2OЮ~]yU}bd!Ft 4Re\Ş%n4~,S[/Pa`YmŮ*)9A5ĵρCjIվ,%<.O$J,}U MQC3@p8J\>1]ID.^ ̿''Y6㆘d 7_^(UW"/pD㓯gɶuysY~sw??CÔ{nlĈȰyJ(!Q郗l@gF}z`V |,5bF&;%UĩkG@m0XTFWQyR`9Hs|Y :xC sZlIt?jmTݏ['>Zh/Wfz YjrT"Ciڢ fB?TMf}RVVE;Eͮ*zm[=}P>5tҀGw I|}nKcN;6۽bO1>Z3ꉒy&lwGaсMrA=7$̨b .tvf6#CEOj<WR$O@ܥ&3!Q@ikP/qVqLkU n$tGTq_o&ΜðUzY=l„^?ay,cO Ֆ稊n?Y%#m;E/2g @(9vh=9*~ T4 |ޥ#IO{$Rt8y;95o蠢rxd!ߥd׋#QLSҮ_I0/zo]FY(I y"$ZJr"|nD8gҡm='N8']5׮kK.3[jN%1uXSD`A@04E)'Yh2I0%/+i<<2EIN;;ӹdY*_LFC@T7Pe2hPk߷>gӽΛJrɷٺ3X_,aH]mMӒ:a&GSaLSAaFyݐq6v|IO {[7۷;ԣf_j!FvrJ0ũ˘Hlrn/ؤtp@"KE C/,}y6(WǞDabEj֏6H, >%ӟE!rX6RA)hVD=y<.!>xWQ/)+IԴT8|%R"S q@"S %\>ǥث\@D٫YX%YcBBnC\VT_Jb3e3}^ _E:mԗY/>.Be+C4]XJ͠ƺ_SpBؐOeg2?~) `AK25;8X,-X"Wf?l^],O_k׈+߫=wsԠ#fx[dDV}l(~WS&ͺv7%o9T4f0O7 쵃,MݙOn/[4= K[+CB6b; R!3&@<╣(ѣV`> (ya01kg^n~o4[VkT q⤝֭CWبXGFFDC%ލ앒ʿE]XtI Irh|z ml q U iT8[O #IuLGspT|)d2|.jlN@!S+jG eC)6JYlU0ԷR'9F[rΈi@Rd))DDBI*xJ|>Ar8#ha bC)H"0!(5_e*WP%b, (Hb (KEEZ@PDSwH-Ma!Qif&TDx%~kQ)؞#$32?f|U݂H"yb<}5[|˔jWa&蟿a#}_  @MYS`I[QÒ,CKk/ʂnӿUAKo rŸ^za=fp{1ߝ'5Uߨ:[YTN}lyt>9muv3hX=89.!4!oѱ. /v?H3+C5J~~G nfn`%*'ׁ%yk)%|9{{߯-k⊩%&m,Y'SVuwnL'EK% IDAT{{yi uq"N \Җqa8y‹/e}+ܧ_'kŎb I].:QY"~#.ک>>ЧpV5W)N  |O׉tX,׿/:MyLڍ5{]gbl 0z^wp$Ob]'Ke/p搥(Ecrq;֝3`^Bº" 0hȘgdboً'_ai*\޾Mxŕ3Lʕ*s]s"d>zWLEsgXs|: 텹vMe헌\(5[" + ރ*vF{FeŲF(epґwly`^Z8lxU m{ RG/I ;2c/\8sW_CuD(~/m?G"݌;K-ǬO_6* >i\)CG/BF;LXtI稬r Q{O:PjΜ+X3kܸ,5װll P,}zʈ lSާKd[6W!`'0_pF+GUFԏD̖#<>lM4$¼O4QL-8ܸ'wΝ&:M`3_ /^iD*pF\,QorXl#AAj[$QI^Y\-%2yj̩CxM"y|%מ rQZJPw`g8:viq3QClɈU5 ?i1|ˏ70!QȷR]O}jZ0v,單A_q݃ \AQπ1˟iSiFFzztēWh ߷ۺS:, RV`cN֠Pwg5Kwv"}[XCOXr(9wЍz3~ׅנqBRn14{W>aqŗg.v m `A?Zuu]v: Oqۍ3bSE'(eXP zݤɿFgcakG_y/ keb)ƚ|JhĽE~0)_M8v" m `A աSnEiTFw$cF _ZkQAAA[AAAAAy2     "/XSFAAAAAk     7AA8`A!  AAAAAy2     "/XSFAAAAAk     `MAAAAA)#     5eAAAAAD^      ֔AAAAAAAAAAAAAAAAAAAAA!P G茋 "O{h\A}$1.kCAAAAAk 3u~Ո( AAAv~j9,(7>}d#6_b /0/=59{oe/`xBI   /`ہqCW:r^߾!Cn—#{60ז}ϤsGmsK)u})q&*( uݗLj*b={n|9uQ% - ȏ6! ??\ <]_YIWO,ސu;;>Muœǫrt!Kk7 ݞ5~. .K|zn!GЉL&eeYW9'3m3sl LTE1AOOs%ϋevwfFxovOK'@nK.s~5D7mI}mtɼG!da41}lv L5ONp.]=tg_:8Rk(vR?^cN6ssk~QgK۷͒z.lu۷KK u0#6ͭ$+qJ[}e%D{߽|]-gӆ{a }na-~5n[9iҮT^m\ͳSmkMY2~xDGO޺DѠCW5! hEOvض&:j<8?=.VRGkLC^wZttcdFNH'G! M[hQrhGznc=1gϺRI%1ӹn99?fp hTsqU{oA7bԘ:t{K$XttK3uHȢ2d^[<(L^AEY4v?' "1KFT\\VrlT(BٱMS/JrԜڜsDžN<8! ;px""l-MD%ڳKPb #,9rTԥ8{$Ͼϡrt7kJk/W˸W*1kϮUW;!JRI(`2522[v)vFJȷvn, wǞ @g_r Z{NdC>?cr zpyB8L~җ Wvz0[;k9u_?q2euάEצud& ی9N {ui玣>i\ AS;;5Tb&O=Șy R"S*)x6]e2˹:Pm>r|'S0͗?0֒[[=e14m\y5Od0+~%uBPU~ ?`O*a;K[s~L\gX|߁240 Tg@.;-؜/U'jfZ)DžBZ5e{>*X;K$3=SPKOV|[͊2װklL 3-u2R]6[^dn64|9r;k֮9c8Z%o{-ຬ~hk߶({^;*Ş_3҅Ԥ 1mX·Sɘ#B5DC[y[;*4kji_k9gNWH~uMw-~r7H| ,MH=?G3"'Y월j9DqŠ`;!P0@|Ĺ8skAauRsߖJ_+Ύ ztk/Ztǡ1/)6O_]۟YRNef1hl V_㨪rLIMaE%WߡeSMɗ/:vrlTŋr{* Sע`ď~я}MNkZ75{*a y\jmTGNhڊ>-q { l@eH O@ 0@H' Ɣe?F~V, uRےN-uxs)_]D`s崶FXp.'HsGusO\)~ךa|c`9WI ӳGx/Pjz1N3e&s`${i&]-UP ]9nڻq"\>_:]#huSW7a߾Υ-b7'7-3I{U#sͫʺzj7kt`eMm?OGGM)<\ѷ^`q*77;#I.׸ٸp[utU \}=unkĒ^#cմ{bwHD" H5E/ƍbuaˏy`~>Liq bnNj\N>&2jۭZEyQd'gٿO}-/)yC 庵(rFǮkgyʅHjFjDY[W% ?_IIϥѠ(3VQLT o^JdѲ& L-JO7BiGRtG}żi%bsZnnbϙNpQP̛K=JI̴tc(ٌ^/^Ba<[V-:q-&Ѭ-p{X3ĜCw[=m ieYٿ0śKob HK=mj@?^_.mGtZZyAz}BAɗX4ϵ x۸80.+vTB*&3Sc?Uoa9iZߚ$}Hy)#Rd(I9GF<>0))E(0TۨGښܾYͧs?;vǘr\ y'4vqW*ҢCGB茶Z D)j#3NNz<J(0E"4^(a’M<{Zt⇇>J-U?9g敽nQ軪hsJK+#"ןcO=?81I@wXKAL݅uҞ9Gnho`F7>4'BS{;MW{חQ߾E#ڏऻpd2?>}V6\[뜎ejqnbtLwxv4{erfx9!Z8rȖ^}YqHhW.R/}Ҝ'Kd8] 17toݏVv 8m d^UttuIS-~+@`EhikC+2ei ,g59Tpڄ*$hP(*3=-lbtcUK/>HE^ݽyxgG;Q2,I$d4)r>jW 0k@+cpVUڽX1g#oez<^M׵سЍO%wjk\" )&-˶HKB'9I9~j~'|/L*WBvtr컺g颁>Dp5S@s]ʭ9-5Ohk 2A?9rBٹjsJ4lRcVoQʀ*NA>VڏE^ n+]zcUǭw&b6/': (FŘ/IhL}7!uQ ~K_sc&FćDF1kÒ<)\۩ݮ08*G2SNEe(9sG×ޱ2Ek0vDccG LQQ~fLoh|4?LI۷5LGJf]' 8 { ^.z ~<1D(P|I' :*zKASrWrF̭ Ȭtݰ&M3&HkmE:$HJ ptHȡ^`R%WW_<Wz D5oLHvښ] T4t_S6uL06$@KSRS -_rI* A /Te6eha* =/_|Bq~~8peH2ۼ(&A C?Q?yj'PPWx^a-O]x|ޥ#IO{䦱9 7 {]Mc&򬞗e#-޴G9gz߯v*n=PzS%; ZCSxub[&wWuMoɕ^ BUC:j/khDFЃ$UIz@g{BNx,޲e0le?}ٜYQ6J.3fZ=PK\uXˋO:t~RxWk̝]&Ւ[vH3q!$"ѭv*gO;?zkU *b6yJbRd=hfaJR[aRU՝B@^/'.f92s- w_OW}n3'kSDd e~4^|SBm㭯wP(ZrV9Zxsl]]]]] uj߱}B!ڨy}R(Z4RǶym XcS{;5`8u[\>r$*-MLv싇Tˬ>콝G~j6M#|^k2+#gBzcK*j?R{XMT8,EI_jvAIW:囼qloZ\ *$pτ [9;"6¬SR(5k[ce%< Tmlb4 X" 9{L,MIHl/K߽QRUWW*(3&%7$-mɛ_N'׵m7' 5رo%>Oek}Q_!a,Vf䛨JDe sR}ɐpix\Adf4f@}dM } "&:ZQ..6_$g"ܬc:_SU; e^ERo;}Qv-?w_߳ G}H)4M3l&~&mxz];${Q1{uսGnvtdތrY5 9z3c)2,( pWQgJ#sJŧ$tLɖ {HLՔ+y2Q14#a(*%YD@eO+rq BynzzڨfoOFݵ뇞Lcr6#CH{ȲtiuA -;Z**i3m~MÌ]]{:ms?-J9+D܈qΦCr{.aTZ80gOl0!@Z5kK(Ca[JzZy%i~w/]aab+s43! 9 ذ{ 5h7[oy8h\ N)w) bb5U@GԼ\,Hu 5\P ssi mdhW 2%*#-Me)]au7?Y^]bBM6YIxpبRRtlL_lBXDbP+<Ttx:W̯ YEq{  54`-vZkwwbZb"JJHw@0H,᝹ysC;l8k.]³lb`%ez<6(5jcm*kkciP@BoWJG!L&r₂bF&c>U.),45=ڲGZ/z} gNk^8}mĠÇ6fظ wdatg+NZtx֝76ɩf] w>֫+dRRJyHZ.haџ (wP竊3Xu axAZ`dkgSuIb>^QNR8YO=%MlF|%pm"ok^fS]Fܷa£G_nJzV\l\e(?ҕB:LȔ55տH7vl۲cE:i\Q#t zr̹e(ce Qq2,VF",̤qac|e~R#J_\TzU{ߋBh`m|@pQ-#n.MHӈTNݹuQ 'گ蠡W3\ܳrᎡM.^!4ͨ_Zs]f'wV}2b2A{eyty: F)6#͛OYUURg\Y R&7QQgK>*B+>fv-G ?fZm)jR`%‚q@`x/9W ͣ2yeWWQj+t5x~G t)P^ѡ,ٲ%gg˄W۰(̍H,h#fUnʼ}#kҢ +粠jlaasc<==='IXZǪ(M\G31_$f="a<-p{#z]U>r=SK f6-.5NiNaj?Fʄ$>r5x*"+8(Nn i6ђ y\L%5)x]֫ THqh EZXXdDf*1řQ8iz2)tt#.>Ie>aI#f⒣U L̋ga'UÒY׎[/vcۯz$ܿ fo8׼ݧ4O?6WͤI[s8v?~-Ϝ0稸->-erH又#HvN/> +ڔ~Vi_%Cʊ?^,)+ɈHaXLo%aZ28=?&)Qo 8E KzuPFqS= 3ri eӌ-rֹfY ]xS;`g(JP15:<]2+?3.2hjIu0)83B*n{w9RM)-)9{oʃ}g|QqR)VUÔ{ߋv}0yfn\g\֣e>=zgnx~Hpzsђ[o7iߖ> 6Sws˔lb"LeUvgѳdm%υW+Wߋg9Y,)Q\6\Öj $+!^"$Oxh>S)c,(z>Jr$⧁Ҷ-xZ4J DM#?>hOt(ium~8 DqPfKߧhe@߈oaBBT#G;K̤ZmSu56=[VF7* 8נ+ohF<ǼU|פ~C5>=YѡLٲ%gg˄FMs[Hbhut(&wLfZ&nVϸHtb3Y6M+\rqrcæM!Q6U=,J]>ZhRlAo&&&} BbXLjO>zȤvk4[Rܶ}QM^{+9@'!j`؀+͔#+ŀ˭e_Ļ;}Nk몱鯮?fWr-6@AyiE%8pSojʔ0+ ^Z u8T|7L/z<=ϙ3z:]u&'1חzjf89I͝eǛ߉O|=`ɢ]bMƓo1R*R4˚2+q\/Nm=hH.~VX`3sjiq<0e6VM]w&R8ucI&6oK4W4 6;.%7ٲkYL-wq^wic۶V 4<fh˱{/L(||tӥ_sy||(Oô)Wrb*ʙ3OUgsCqХ tFxuOz&Zό 8bp]gFH-/xrQRwK_t2=NOG!DuNCW{+UUU Oې T>iMըq[OsWT#|qHj8DOyp9 (c= KigZLv+ID&rs_K枕N}OX *JA䃡eu)LU+ߴoO[foSڪM׭mrj|Cٲ咗-~dot[70mdCAvr_LKlۻ<~3$bmPLTh`!il`֬?$RH}>;OE_P:}:4ħJSݠ^d0uǀFr3K"U9۪֮]ݯ"6QtldbN]3a둕gi`f坫w|eթ MET8j3k(}%}㶏Yp9zF2fw?Uw_ffYp)ifI,c $Z"j툒4L?Ss/ D¿GTޚ%%j";%1Q~sˑ yS=?UquU ?hXF6dHjv}O @ @ Z^U,Õ;hLq=4i=ٯCK5+kosOÂw4t LDͺWII@ ?x-,8:if@ JByO*5#}<3))'*"8_+wrM (VJ8 *@.ɋ|Çξr 2 f_&sÁK+ +ìc VReEļy=}4m8mk#RNs:0ƲpE\Қ_J돲߻_m&C8{k'wOm/xbK|v+n]V7h/]9k7<(_viN<.cаm[mU pM4e>ONQh>y i%t%-}ҮVDe`-  @ V ` jSV6:@P R\VR - o)_$>h9as/ȖIn1nv}nX=?ӵ?-_޹D)]K0|fkVK5#/qo}^{V1gIoɎ *+%7݉vۧGrNm<Q9=)ѦCήmrOIÆZ$? KP9Ja5{@E@wzR ó~#N+뭺FafNQO'QRc7qNl;qCۥ6sG5ee IDAT~KwͿ`,[_ _4m@z'B?;%Bo\`'p ǀ4M (IJ0 Ԁ>@`. |r峣|P^Sij -[:O::<839] /j60ɁϜwy[F3m״*o\HzhF@,08d= m> ~U& uTEC9:/y(UӺ&-;kZB*/=C}fՄ,ɝpG;Mm,oa"o*KMNUf%dI<H)۠HCUy}CO8m9֘0T`//MVE~\x^_}ZeXݫFa BEiӗչ.^nILR^-cG>:ǵXn|_ǟ{n*.HlY '!BGo٢7O\}Gl.={/]Z11'[|&QJ C1޹X1gC 6xx}CCuDz.u͢V[29nT qvkڷC+v_eջvW`1,[Ø. dթ7NJ,Ud4&VJ .cX3 x <@C&H>&$ V]D_JcYtd$ZU;/-\vԏ컪(C~sܰ/?dCtfL陫P |ȖSs)Cظ#olϹZiK<\vw9ԍ[َzӵ~GթWAR+ߊt)F^vSy8F( 7G~o2P$8xX۔ۨy\=]aBjL)GD`M@7^\uAVfN3`#>`AxNz4p2e \6;h}h`!@`<mlf" -Dv.G_|3%B%w* @ (lR)7``D[HL'2_v܋ZDfM4q8l Qiv.=T×up*` q90) R!jUZfIbP%)n#x?~p;.b kl絹:ȀBbMs,hd*H)\" :@[ XL:Ww`8 Z6jpEXM>Vr Di?$&:o7:z}~vZ`ScbTmM i ϯRQk0rE簬4+l)X XVB`.''ǀ.`T޹/nCQ`YdRSY =}u0I4lZjCRN l{vlf2!VMG^Ja hJX}dCtYW=bs/,]yk?~?nɫoD7UzXQ)dԮKk{rXCq|*d`'{g`CC޼sxȖg6yJv)LBL\`Q߄zU8 UP)#ϲ ǀ{M8Ie,-֤`XHGHA̖h/6e6'޺Q7!STg)ƈ˘:Vk/|eJ~ڀI|t>O@3oiS_ Kaџ (FѢ 2))iL JAj )` 6}b8pũԁ n/Wzb]0iNݒU➕S w m:u 6oQ/2&]Rԭ, p`.` _pZ`V. 2+P,_CBFۚP5qZDR-Z쬦ug+*ͻ/nP#.ZD)+%^k}>|C~X`Pjo"J!jʿc~ g gm.fdx9\v.o[kTYk!R6֦Kױ6|~ޡ8)p-[4U z}̬T"e)>_Eke|UP17Y3L{,&6Y+RJy6! ӢoO#; <[;zm[ cfiNDǤ E  M~鈈mW ]a)q)¾K'6x$V|hfx>yj&M8t{f>7S[亭s$6H r pUb,&\XA =K B`'d@rino$k'y#I̐FH^);{eJU [61TDR4G4O]|*S37|r%fluN8/@W u4]iZ^4"@vjYMO1gDsД~Q[l}왽cHzxU֔_96jmh>aIon)' ~oKv}0yfn\gbO)/3&84G{,/GGjL _ ^ͧM=eaUh:{ɞoY=9 daN3\ E<<0Xg_Iȣ5o!,3r_R\rj!sEXoʜ?[LXA:O^+)0"%BC_+SRۻO =58ɇtӺ.E|N{w퉃& UC~>W0=L!ԎS*J_m@fz+p|#zؔQ ;"bUOT(v-Kˬ̸|p8؊r UuZ ĢO2?ŃHOΝ8s+9 r=st%+^w`|r@ /Z@/6XUpџ)h7Yߗ$,+/Ymezm5&?39~D. 5MTqVa'gϬis挞FWI }RRXq,;0 X9wry">@Qm\j :p"I dQe=4wMٳ6żQg WW_j꺽3aή _X<0m#Jݜ}wy٣6^F^J>߻h'Sx`mHtӥ?N|c7|vkny T4a92-a.>[}n7[œeg$D}y4݉m5XiqȂĀKws*[ztE/oP|Z͆D~t>oINΝ2{IvlNbS^~KQ4lΞ:hzT^Z]óxrw% x|jJNeIJ5x6 ,>6Oq|F#"[eЖc^fQxΈK0RluxæOp89V+%2Snc|"ntJxq0 *TDHi"MR Vv@('Tzzc@ @ TT,Lނzvh@ aA:y@ @ Tǚ21j,0)n֮WFEAԔ @ @ @ @ @ @ @ @ @ @ @ @(ohNEF{7:o嘦26m*Wtu~,w |#IHi/7Ug?/5Ռu&s J֋/=:5)FGUIZ?}t >EBy('loR&7Nug^<^ݽvfM}Z&x$ՂW xdg|b͟! zS]iKieک|ag!S$CwO}0 QDE@( Z^N&B'#ex ~=^P7h[$81 3/ߘ['+Zti2e_46ѐgD<|@x>g9b?#A5LIaJoh2dּQ'wgI49(cemt1nhNV_JF6š/NڿoMP[j0cRR"?.}_,hC#1޳ѐ0٣.21pI\wUq%ˌ)#UfaOy@ ,Zth+I/N)gG|3⫃˔]E=V0xVRv*>Xdn z ڴk7@xv5&?qSRAAi̧$S@7Q`s~h^Ws \剪TS*/y^_c\[/N ۿIm}r7 _z3-b.Kݰ>z~bk ~Z5قƪR;&<b\[ܤ\lZ&JSg?g5` $uJ](`|Na'|Pkۤwǰa2I\vKGN+TSUIZ>]ҵC%uzϚБ8`?i*@o~nRweMb^bD|btQrfzeX)P{G/yͣ)F^PXS7pY/B[pSа0Ҥ@EˎU ]N'F~.=by|Yk@aVuq(8^cZH<#Kcy6|ú49 `YGht,*Y!`ز4Ó3nE hFsurױC1%KqZ>s1 `_^k sm:73a99:6s6@״oWlwH䒒FnFlq XiiZ%wJU l[Ba8V"G.P9}1iJ<f,ge];/(mZi cJLqۻZt <+QV#`Xd=v=[c_M4le4!6 nGw1GBe[1M"ǣ-RYŋ4$HiVyQ:6_\y:[?asgYd<}>G4`)߈pzg/I)<]SAtP)enf㞚#\Yvrʚ؞tZ fM6_n%IĤ$%t!&R @*W뤨AފӢ^F*˦eBUEE~C[z]w\-ZŬ-jg!' 0[@e3>z@v@ y\=]aBjKSNzX {Hi sƬ{ ) &!k;|l;R2.V+U~,@ "Ej۔; ,F#̥vߘe&I p{qyRM2ʥlk"ER_ANqIYoM IDAT#Ѳ7]6fL>o9M#ST8Qʎ++!E BDS P@G]}QVnh|Jd~q=ݩFiIFF(cʗ7Q]bZ&^*PP0*[[X{f 1F?ub-&EsD5_<+\L28j4B'0 ̤I˚orƜf ـ k3kj˩) P.4uZL. Sܰ**IMNe5d'%iߦTcȹUp(뫫JȰ(5mżuQ}51"^D*=2@U^y['rƬ8ʹ7V;v畬iP.3aU|_tP7XMVCqvcK͹WR ^\9F=CmL͓}feno٨t%MQ3UP)Pli*gWP*VMӹvږgj n6aaT"mM ,&)>tm]*auSL1sx2sl~ Bd2 '.((6`d2/+IPnXi Ų9O1Obo3}}~\h |9H B%,( C-t2Jkr^<@ :.~rqʩ;6xx.8OB_Ú"]))h/ 6oQ/2&d.{]vG\}mgI5i7dLXj4J OS'f). 455F8-4fg2JbR}}"]?HӺHZ`dkz aAZFDiBӌZN?k6prIaeUBLʄҮ[OOEx/ )J)]˄ *򤧦:ut0l~C(5\[}mĠÇ6fظ wdat?M(8%.6Ew[ 4OrYO=%MlFTܬC{ciL }}'?(V%g gm@)W1KɏF-EEҜΉIg+-quSLJBj1-{weSViY?*(\hQ#K O.&+C2T)@ *ٻ$FvjdJx:4^(5*$} MUhh7[ɾ 4i+fyj4s@q9G}HJQf|zj2߻k3ey횜+q t3e?a*cտYZ2גm}<8U:ZNJT:uȼ^0h;zNOnoRX-Y)jPQd9~NY$V3Cӳ%Gf8A_ lfDeIQ}^dF$0 _ԸNS6zXGbe3?8>j=l(kdۻO =58ɇtӺOͺOVfQgT)@ *lo#g'yj:Ifb1>uJl#J]N6} jhrqDz7r5OףĴ0Y앰:e=zx-UgƅzuExg?`\,Ki{ן-dJփ5-~Μ39O\j&jF.O}n&{wѳi R:HzhʀRllW4Xm@<3"7a&Í֎[k$1Ga9`o6vA6SboU&\]?_}٪Dj9n$|qy(Oô)W(RvsVw1yWgڬ~|xyLbO.=Jn,^%„XrLkٜV<ʖҴLzm5&?39~D Bo5{nʢ:H¼F.t 'jDy{7o5} SK'͈ 8ɢ4%A'NJp$z|6'1_rEz0hxXg;[FM%A[57R14tO<{*Q oSvY F][xS Tr"=/.NR!ކ,B@y'5|MT9EkS-~~=VyNΟZخ'"N~AcDHi"!K.\pZٍ_6g.kLk#@ Bbg   H@ TwMhDcd^ej\W@ X1M@ @cMe@sԔ PQ7k׫OZ%5enQ$5o /qzŷ{G' @&@ G@bQWxky^]3]޷i3["!D @Dg@ BHRCR0@ Ed@ @ $L @ Bulտ6*߬;i$BQjʂN>qvCݯ۩V9XTUM@g?/ܴ^|ѩ*++.5#n8|x ݇GƖ@Bug^<^ݽvfM}OߤwaQ\[YzR`WF,ް{رKDl&{BP<{ 3w-g枝Ul:v-Xfa*0 =K>Osif2'6GoJ}2+T`TԮQfן^OWEB^~G4NDU.Lvj%OBNc nKJ L5qkf|*i+ӺWY`X{/{{>6&Kkr O ]R47 7)+2c@ɪ,a1)fM&OmX`Wr,~ܓeL+q2I'%A)Sl-S3cRr>{Tv&R98TXڑmҜ;)RQv<V6NGw$[k-~͒V9wi(.Nzzsh>Iʰʃ?=hkxF{Z8ݵ*]sbx~Fz%)8?F<)'Ve>Gt>J3爵8z]ݗf_wMDnʦTohg< KX K+|W#m9c psݎ\FQ@9?d٤ϯ^ߡs79<:[VJ)v57( <")BHiԋקHM `Y΀2 ]-ӭ&dIyî) \j/7Z$K3@#MYNkZQNFT]}Nq&)ߓkMϐgfAUKV&RnF*5Ul F,rVFh9d-]XLYVbP|}+"әa$U|GYVsXFg!d9u7\rH~>C˥ L)3׿ z"3gV*4s'_y\VAyuxS / y~E?Ҳho/Lǔ-\M6G 9:i I[=V&Ӧf-[;|C@k/ bn?:ݜz%=3;}N@PGosQ_0rQk"J\ &rm쌶iҴ7,$fe5z2~5OlJݾ1yjYJOj6WfRSQ!/Xd~W* ,ld|<!WB S\sf!堹VՅiAk"Z*&† XNgq"MޮT CȁPK&?d!|W;IT] (NSxr2W#Oz eg^iާd\v/)o}T{>X]-,J}u]^ܔ1+tS=DEې Tuv6ulaF* )3вZt_3hgkC)$/)y!dǬN6*L^̣s;ξ,uWsYQDa7 /Im$NRe!|7L.L6l 6#f޺ W B͘u.H)65&ϩbYHig쿃$RHρ-5 kfCJ Ύ{_y]+{o/x"[w3RaaV?.q{ER=a/i V_"3*Æo1yI^K/ԧLtɹ1@\>k磝q- FRpB{fs\I]vϊz^zn&m*ڠ/Q~Эzn@^TaQ*eIK3n9gj*J Bva|k"V;+e.>_!YmK,is[@b !dhaN_ϧ?Rwɣ+\6 (= ]:٤)%l߰e\Z폌Dh>z!^~pJS |~YA[;@~S^g,[7S(yNJ`DIeRiɲiB=ָctx;R|sxtCTRj*4u肴B'(y}Ȧ J+WG~)^#/[O8{μ4bD˷֧AXw֥o񌣵uRp+&e7eԘҼKǩ>8E)Y6#GgHy[qU >[]M!Թ_WJZ^?f.Z )RJ@>-pK09NQd6ou32ĮT> wTZ,+sk  z7lv8 ;߇ڽ:n̗<~>Yg \ IDATuQ˨]qoM Go3]36f0DPJzaKBD8+I $NUΧ65&4%?%]Vj**&h H[Q4^%o;lWfƜ\R`K6G֥[ygIII)s??}ĵp#kc્M-)Bvl8QΛzt s>rA'GJ_}; E$r(@c6Ia^$--97jNLjppVk\}J6MZ~jZm!Z(Ѽ -#qF]9PReؗ|a)qEEt*eڵL= ]*JN\>%-;%[7Ow(-ldU6 šӵ5)!*!z@jSfNBH)m3 ^?}OxC/1NZtyʬ`SB iW@hYl2cǑ>#j7 (Ggj][r RMb45oʾ՜WrFz9Oyɱb-vٵ_MnJ- :ƿ;c~^m8z 7b\ ِk"YE9CJXP0O}K%%ߩ?Ye(MjǕCj`?b=p6ob|PakwҐ53tD e'NE"2j+&;k96, ~w(vG6۳yEٵn//.9 V;/.+6С*BoK`I/ZL-%M)3 H?K5tUL2KTbe2Ci|VUe\.tDjh@G$3@::cD 6~ucE_?L(t'&`dV햪*J^QMJg\͕ uf,FM6s4_S RSzg6wpqK#79zC )o|]\w)ASoY["c?x |^)%9`lMq!QPÔ?zjFSI!E¦&D;tƧE[J1NauE >4C!#Fi\ 7g3 ؒJ}AW::_iws_r uAz-{]5Z[K R0|y .lZޞ|x ʞR87t%ZrX2-)yUE$BۂL:D @;4#śRFè mѻ+@]r\ģ Cei<1PNN|<" LzۉOӦY{OqBLǭ[=*c ]ՙg⤘8?^y]A+ZhKQWKz\|jCY, 8/.Ė:_n[rR$3(u;-׫+]75y]b;[q3/J%2VjPj7A%Bi-{+- joGύ9:̥o D2%~H,1!5rJz۴&r1j#NL,`"zK5"aSbчzJRuT$eԃe;qo ~)~q?L/7&9t]'κzc;bJAT\V9#vQ:݉ɻ3w:v^TmBn˦e'X(`˫^ [BFv qGEɪRѦ&T T*R[Y̬$3%j/ =iCs@a̞/ Ѧ arS^*$w7RmI>GwTgo|ťY_˃E},sfVITm(R^(ZKoh=;ui. #}啠c)K9qK+i1O{6Cӕ~ y:mbnf.]l vw~##ްfvȽt0BlLʔ%1"}DiR ȩ$Qr_7X洭-J#sbGCEw9n&̖Ö+Ʈ*ȉrn9d\{U CV*Yhv .n*Is2)6[$%(+΍O^'{WW]8lAwuiM&m^BNWI*K2ハ,y樽 +L5sF29I<" /qɭ͗X{dUN&5m@e8HevUL~qZQSRl!_TwH Q9Z.7u}f\H8T N}e"JNQfϦ\VeQzLб9O<SN^eаzR̘szLAYϘHyNJȼ1ɺ۸BM^7Z](LoR]wFv%ptE47!v2u$mkiw 6\]w/_̛󖲗L YR&I}kPw`dbLIa8zcT}k.͚Td6ame*C*b@ZJ'Ewd kO7I/;2^sސ>)ڰOYb\6!zG“;Ӷ=cs4OG8ͼ7/ #B!pMT1u4Ŏ&;V4>y!Ps`=hT'mX!B!Ph9em[D11B5jIs!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!63{{g2{kB!B!􃡱 j~!XyNF۶S+g2UϠT6ad])7^s9)5!B!6Цn6 VKjdmrZDhouSϤǣ&];PӜ4w{݂ΞrOd.>ѶS p;?"g\;{?CrrRaU$G=zp6g 眎a,f8kʿR|U We1UyI~+߼elQ`PEם5`9¿r_as|Mhe@WD?gY"k.R.q7枎eܿTIY^N|THycOIcWh?fDf\W:ǩ6im(Kw +.Eyoc{iǤ!][ _?|jL9p{?<W.ebKCO9XT}RG8}v˲\ebx@!B! 2}͊l v|@ײ[|,!4ôzr@P*Q7vhkx3Isΐ")nT!e؆KbJƺS'¼![ܮU+ @R~Z|43!2RXoo1"3gV*4s'_96pqneBSD4-le]nQ-O+ ; Y >Wpm8}QB\%B!BoP7'O>ʐ ;}!N?PqY Iwp/m,Bw3*{JWF^Nh[񻻍>ϼS%ڹٷT}][>y02 uQ]Hi:oU@K[m{AaeG;WE '8[Hx%yIL$&5:'!!kk7vJ/]?W^QSc0 a.RHqf[9E,99O/Hρ-5 kfC5;MY1\>y200mF٥u 541\ a]sMI^"9WRc'c&/9g_V,1\EfT <،;xsikCٱfbpy܄a57wt۳7׃>Tp~ks~_=G`3Su\@(u@O_p0z]e~AzةJ-:M6B!BEv#Yxk*HLq-z>3*PmOSg9 < gcki΅o:fD"(~uJctiW1"|8ɽ7l|>r.L*m޷qmF c*f_)=z.کT6oFYHo(uMsH 4c{o&+ Ӫs)Yy~[4ںyL߹hiqi(ԝ1kv3'ߚ+~?pw#kܮ}ˢ <)v5cΑCjSwUH{k\_ȱTl:<ܨB!B!j>,NU2`z?݋AyN )K*ŌðInvTDy}1VVQ)"*+1JJ4Uȸ쥝 [HiooET?ԋGٴXGOrAZZuYQ. ˲A/ޏ[<}<D}iޕu("NO4*q.RGmIqPLZT,op6 yt#Wm/N߽cW݀8o}YxN?JGl2,(QiS\N\˯٣*_PPR\"$’jt r =47njĮ.dgb6 2a}@.z璢D+u\8B$?@12"c3$'2))e.L)viROl;}m1JV͋7Y~OB!qwur>)H|D&|Rҋp[2H"xLvӠ0@h:>̌z|>ky\!B!Pm$abZtĀTeDŽT /o ,h>1wh-G@*+* PTE'(%c2{qjgVPr2 v/N4ݏyЗ!!,81g{脯O`7yie N)>a'zb$O}jΕܫw.K)cWab\X"96R iWFgܕ{,T1zTTGnjs+YMWήdd?N/ű2e7/V=7 ,4gy&,SY_tW* 237a{pO/] @yU`~}0HTB_<ֺ#,cZ[Ng oyRԗJBP 0 '8Q`T+kFFB!B!TVLK>Y6fOšvFW"k`E/.t!3E% P| \E^+ABZOo>VJkv6oޏE~`!?/: ?=Q9ee}[|RmۯnP[+ \v˷NOo}W204Հ,!ګҔtLP}62|mD7NU^,#\Z4s,ˉ}yk;Ҿ^mY̿:2 ! P4)D CG7l9]ZC?LNfXLz:ҵ_?'I X ,氀aZ`Rב4 ka`s$d0 #)G|B!B!>IDϵ0~]7 6x=Z^#VmOEVv fݲSG-Ɍ ̘L\ۏa'Q2:(Ș 5ʐc}) }5RڃO FLGw#zߌw772?n:`w6g's};$JFfi dڏ2{o7 /{EqET\k;O :={FeetT"*P(N5=L zMd\P"D{iɃ&g$ z4%@g+h_}>Ǎ NLѺ\\"ߎ鸘4}yE K/Q!B!'>/MS>JHkr~W%EbB*#* 2yI^%@sde] %ݐ蟠aV9O]yI0Ԭ@;G#؋?^ЩS,7k|+*^A!@.A.|#h*C#O'9Yt$3>Ȳ7lE7s޿"<]`8k )Pjm¢4qaBbJƊwyvoNhdD*6S"Pkkn`+UeyAA\~^À)9E=!n?rYE1A<T%u%?ty%溯ݫ q'f>oP]}^uu)^Vԥ7}ˡ"|Y3gj,Sso,cƬyF-9]%(M̫S R"Bѓ᧽|nzcl9lb˛oO(B!B!/V4V&GM85 ߷A!O!B!!66?&ޥj_w_3Xy^œ5n:#&A!B!`NqU9dV?]ycWZzhy{-EB!B!B!B!B!B!B!B!B!B!зBнiE9ؘRD[w +B!B!пA7Y){5>cEZ_s^Rub[RV!B!BߩEK{ZS~lyU)rO3ą4&K5fG#bUL^-c3Hz<2Fxshۢ{6x\!0{6|FfPkmoD^se̩˟FmlUM! RՂB1ws@۔"ށEJ29 ߎeT#mh323U3)~z|MM_yB!B!:Li7@5b 2@3[}'2;4zdYPTӦ ϶s_Wd$?zmJu_R|eUNn[o867XT]T+jjTYx^B{=UinE`VWoDuR@x%1@V)iI`b /FDp,{S[H K&Y/Ҏ,cT(|Mߥ!B!BAuNejޒ}-۰JѬ׬e3:yq?SLNbDA-mlaש(&P CT{& ]0+"O &@VUԮkrJ~>L8KM # Lp֋k-Dq?Z"6?eLbϓJ, yRGu)al3SH>d~(銇(!8C*MM_yB!B!b0+7\`eqԫI|rgUQU nƼ;%NɪѤLXFYhY>?+5 iNɫz9Z_WDm+__;j ^~@x}5jaOaWelhswaHij'S[ڼ׾jTf1;Zv>ϯN5萛*CE7=s{7.t0ks/z]xɃWNvׅ߇P ^mQqԞk=yϹSxvuZK2t1ّF%DllQnP4~!/O{7(1'BN2۩'7f~68.nIȋ'>=z on~e:ԪQI6Y )BW;}pEiњ7aSC8o pޅED ܋ӤVgKN6is;W<k!з`ʲˀ*l_L6sUkWw_JI+l-.z1I@aAwJ2kG*qSFuRJɰӨyup}͊l{Qz}چϙ^~ę.ז)٥q8z*ka-Y>/ڔ28cêc?)›c37j1c 2t쏣'ۄ5W6&|aj`KP_ᐅG>FQS,!4e5I1pqneBSD4-xC!+ 8;ivc)}d`.]P!z^cWձosH=!ӫpn9gj*J Bva&htX]-,J}u][: #7ڥ~U̕v?)$_n֘<]_%@ԋ'2muӡ`W${NՁRt],Nw x6E '8[Hx%yILk>-ynv[3ٝ-893,mlhy.ɠמa2 QQQwu,pw1͡{ff"`鱷%p˜ď9]i [|@坥vUfy.*,hGB@ blS/n[hՔ6Ot쩀ˠ8v!_e]߀O0-+p8r`J3un'1[adc+!hHްgS3'ǥ i7Ю)5Oz*tsL{tSY.1d6up@SlѮ.62B^k';{Vںk SqUM!^_ČFw@+oJ0%@tHH#DsC\&6w^[/'oeZ]_0BН|4x_…;꩐+Ÿ Ϫ>z e7_>z F3\_x ;л5zǟf¬WA<8f/UйLx>A '`*f>nσbx#s$ LFuYs+yN"^#o Væ:AQ򠳧#n.2=+1=GE {@$z%Un kFC^eo/qҎ't_`֧xEi)%*%|_DHl$Y")C됀" &"W,";u@( ?ܯ.n!EsWՖHaJBsjFXY]HB (i;C]̪nwϼ~PSeq7gCLYEbBd /'w&C[_xS0v.QQ3=&n_,ؚ4^Jvgw$sxVj|Cb4s^m @e!YVVj :ɋ3LrA'KKJ iZcv\֝paME~6G_ČƤQ='26lȌDt(VhǐF  'pvi5H Z<N>zW@ASSHyyq@31To3om0[&x ˢ1iM\2AK=o8ZUemAgp0% i&fer'}̾Nm;vWT8xקYkkb v]C]wa8FV޾X$2e B˘^n7g?u]mۧ2)ar2u#I0 1qN56~d1׬<V*vF50y}fv7@_3fO{i-43A`; ߕ?Smt\t{Z%o3h 2`v2g,))%kbm>b~m4#S.䄔ш&2Aa#L/x_)kPl!6*lČ!:46o9MsaV@@mes媪*ȪVYDQA!Wq>G5%t-<9& VF5ߋin" ]tv&% ),ABTGV4!S}JJ2m;v?zytrDqA18@ ehQTXAvξ+ S= +ypEE،2B  Ehe{Dga-jtyqM7u+<ᚳg(<,80H8Ĕ ك%%%<;b5+3%|?z?xdBt-A9L˶s`mC3'ך鴺//dF#( |7ڃM`Fm:$!ڑF fE^16q‚~- yucɅvN?JčYm|o2Wp#|Zm O*8eƠA+jW1ЫLEOymRRo(SDiVbb& [7 >ˠ6#|Nx꾷|Wt7@ n]sïQ$|s: ʪbi~_CUk'V3& =5fXvV[F9W_ef`g&,>`409Dz\B9r]0-Z6;lxmؗ\ *iiIVU}+c3KZ]:h1x)E\i{aћol]E:9|uR,0UjN?o+"sT7۴i+ m@  o:~#r;p0CS,AAA4/,SkP d02|e&,Fסiey{E $.L_MJEy~j\omt$R8.\x;nN @S5Ԑgi11 222*O(~܃GVYw{B3e̼ýoଊN)FgX(.j3wÉ$=}^1kQҩ<0oJ `vQ6[|6@^]TqͮK)AEs cW,P8deQ^"L7~O7dÍKkg/7^CD=m^N O?SYP~nn򜤐!߱H!._hCv4^iGIw>]Ū][Ni;]W*+ʊsRzo_eo&+ zL_3]_Eż>/{tUOb( b޳غJ}I%yCi27LUʒ̄@uJ=rmZz*eѾVe8crܴ{6;[%ը$۳%ō} u ԰t>\Y;04 +^ܸ|3Q3,/@kg.Y"S`c뼤@(TrU_+,F鏽#}SW3~Sa}ndD<;oe/lvYf>!2;sLOJ~3cMuWo,?4b Pj OS7Wm:]9.bXmthDvfWZyY!@aQ7{/9Jz]Khx1YfL<;.NdS)琐F @4\pʅW)@ NZ6ʠhpgy{ ş9"]F@ D]vFB0ڏܶ*!5+?svR5h&N<aٞVi>ה:/ez@|ZSF Rc`tOѸ D3w_3>@%HQ!@ @ @ @ @ @ @ @ @4s&8jF6p+m*;a5SLih An:0dυ"̑_?~h @ PF@ U|orkZ1Nc7zL3>oF}S2~^#Ͱ!.a[Zwo>}yuGJ8PMc k5܋0c7Ah(d4un @ xING?SkW45۩c>T3M6ֲoGcC[2f6WV4"],u p0hŮodo3Q;hp]2FۀC#rȢvczps.wߙRs80[tbs׋G Zuާmt,WlGRO8g}Z(bQ~·.|XQj+BS0BÀ3R'/G9F n\[kك:Gx⡳k坘0|Qǟ9?t<X9,(ݍºMc-=P!pA5g/3{]EaqJ.{Gs)}4Wpŀ|'4CïRD&f;L{܎ck;Dٻ<X+UkV㶹8vHt疳GrVNZ1r^ǂB바%L/|7?ѯq!5xB2 ~iR'-EF$sYL) I]8mgBT} &A[-ZdV - +nd9̸űJJ.Tc=tucwͥiElPeEy)`jYuXv\b{)@<>9 gBCwf;V:1W=lSY)wdu?3CU"/C! </;|UG,N o'L5y;܂ _#@pĊ GukPC% чfO_IYU`l\/BhhLk /N ,Wqr5 ,APA=$d?tܐkj`|"0&G,Tl]*$A;; B޳u3EQaD[}m9,#AW5[dR?5 Qe,]PajջeU_PCuE:(sߎ6c{+}-,cНO3ƍɹW .t>7"ʇ eOݰw w[~ECnVldVgT5~b'9+(g6Oɢo%ͬMiJGMUI.\t%vq+g5WpJǡDJ#ld$ K@úeo<Mk cbt:{¸OXX}tM:"xt hʪ@Vl20.FHBD!u&Z5YvP&s 5fǽOHoŕbk+vk;WihުLbJ.:4!tʨO~ pP!pP0e*.W >,i3Bb܆d'~B|~l:A@ e%[j "PEJ,J=@ 5e!9K?hQśp@nSw]vmW͙V)tpt}.AҜ:y{س*.6ڞ?=4mt`Ǔ+eiŖ- l؛0=~^vR1"6|fRPŀ|w.Hi⑛K.:ܵ*P N0g sk)ˉ~?[8Y~;0z4ѐpXF E rٝΖΨG`Ul̳Da-q3)|XSrNȩ*tu5VvAyBLm]Vf6P"^ę *׽{PeZ MY̫;* *>{ʛ故$rLVdi7"n El)6@57-`<@ )C 6q%ke9]2`f="fF[hv!yEi)%*%|_4]<^+VvU ζ+)kfV5zJ{7+aU]ܡj7]=\TrRX7i` @Ok-]ݲ¬WA<8f/URSE_}ɳr NR1PDk4F.vyX?8B#\.ˢߑE O^ם9v|)C됀" &"@*z4Ti@KW2HE-8otޚNa!uHͱedVtMB2;$ ҅jZ ) U4üT [cT%)"*g0Uy"Ǧ᥉8V5F[IHASl\ Y8e@k(SVQvì ֍)⨯pPa~r=Fà"_CRt&/hE!Fԯ!BlRZeM2.xv׏ ;+88mpg{2iZښ yS8YTՔ1LǬYzIZoK6šo,3<,flz1l[Nw@/MME"Qq?;rQY~[J m|\Hb8뇾~}{šbX~2M@ocڎVDj``]#dL$`@N~ϼn;ddDee%)JAӠ3ՍI`{L]\lSOJiB|3mL1\J7NS8Ţ1$y D G0K&7`Jd[_jOs |}TBi$MIñtʀ[ fI W1R3h?EwF&؍L|H}{5w{㎽.[1o1eU%LȯzβK4ӡz>y1W8(ǐ /-⎴JD ?qSlf,o_/R~N r=@i6SK#!Tޓ|a#MO}0g1 #2o^~).$ $oK x o8ְCi H RQ]CPRP ~ g(aPDKʰUYpRd`$TȩU8CDG ?3\W2tVh`7 3ۉK O~q1|љޟ[R"bQC 0I|mi#)t';v$lJOa >$Q`O_T UCA$.*ަŕ9h3LK~ƠcݜF,Tda|@}ac,#V `L^@8|nspDCu1$3L6ثj*XX$~LG~fwW5y :-0ES q+Yga#'TFL҂ .2թlfRJ?)E_˜,IKl5X3q1|m~TÏJO:0W>dޯ#QDݯ4hݣ SƆxyZzwdaMm0 C(Hvc IDATF`aDfw—[/vyD =2C?x:۵0!.Qvws(uŲokoJ7l*p9̪ HLUku^zRv͜<:CS[QZ(:4R·.Še_WId|=H4\K祳P&mjxY3gx9ǷWWn;z\XW Xj DQA!W~c7[H*&M Њ\T[hJlb2( {1v N~\ƖcY;aԄ&[l=nڶזMU" @yfllF! L ;ZYje?}^ Qh uܽ=q cX{()SD%V}z@ |\q7Ii!EJFFUO-CS*-K+K2S*aՐJB1v[$WK˘9YPtN̅'Qyi+Vs_܆_!k6|C?^|)7"n /lzǗVȜ?us/k=\~nn򜤐!_G\e-ɊpPNuoBsF>Y](L{R\(٢I+)xC%W?)Y8deQ^ٷ,w\;gPslR\ԫ8.uq)<%qݱ[RF K3T"0M D9 'Lĺ %&ȌiMS3q)-ia6lvy/67GmGPwn٠ꨤs vm:t],#(+΍K"5 \(Oo큳 b UJ\49>ר`7Fy (ʇ4ֆx2I[jD,J 8Ďyt]eY,Lt[w~PT""Yw^JUMغJ}I%yCvK0X~|$*&h %T>,~%L#ʸ$[ӍM ?!6Jb Me1W8N{*#:S45޾ 83&É a)01~A5eR S-4{GUBA5 f/tu<'%Edo%ܜW\HEY ۲J C-%WDB#@ ?LR@P4_U f^v_ܞєݻ BH[|,o6=@ @ @ @ @ @ @ @ R@kҐMn`xm_hB2s=7NJz@ ԧbǞ  r* <9. TЌϛla=1y;TD#GN~U8;4_~yu2{YQ d"heoӝP 'OH!5g;O7-BРv;Yu!>9ŖlrqڶO^>ݦBѺ.4I܆ywj\OmE'~ݔkmݳl> ^Y{?_=6Q.Wm&9]5%ޠu [*@#)(`, cwqMg|^>ynjn-Z-FzkAk=z[oZ[ m[P!7(CF }S:(4cgSkgo zmԱo]ˍ o]F)HDM*nr@ @ ?qkDYVb`\!FoԪ=so\[-qp{bv>wy8t|թW!uB*m]0ânCk9nu' @)Yl9c@ʹϳz\prz ؋mt?gy:o5V㶹8vHt疳GrVNZ1ra`R1.< !_æW!)Tfbk9.X>U˸6ALGlъ ZhPX]q#a/U'81Bm<zc]='BsiZm{v*1tY{^ Fs׮cAJ}YL) I]!A5$_%$c>uj,guoM;PܞwÈ*rDYF ף I Ү.ooh6 &Wj*#%=3ُ`l\/BhhLk|7aY$5WﶬsDQy}Sv>fO_IYU?vV1VOx16^Lhq$nVldVT5~:YUm\M.)OR"3*A/EϼK&3Q# b_{u95{M^8wtr =¦ sVׅ'OMKKyE UW\^~W3P4^4ժi+5U%Y[pѕcCtu Qmi </-g+E;tv|Ǟ| @~+j[t[Q_1'_d, gYȃ( bc @Vw>ld$ K@úeo<Mk cbt:{¸""^t"D4Y;P4+YEr{¸hqv+3ǻ2v?rtf̉XD%phR$sQEݯ&҇M*EK {P0lQc'27Pe\CVu_gU^%tѤA QVF/|TB4CaT]b˯}X7݆d'~B|~l:A@ `J,avJ8XK^G*9 a@ LA;5U*ZxAZ!Q؀v٦[_hpIyΡ5dTFigVrpE ߧ:u1 ߝ RxR 7 w Bq'g8 wXUX{8=0VxLd+bw!E7l1V>?`ɢeť5"}<bj}Jܕ#hOυqk$` aw4x9rGSln;.1 z!O(|5k3nɓg`ö]:0xsŽI2jz̴̺3|LWqNDpd;.96ehqݜ)Knz6.f")SgՁ7D_Ja3vLK>U?5 5,<ճ[UVG?q(@7*#D& Gowa3L9;u7]=nσbx#?=Xs0Y<.LRu >/HJN{^9r_.Zػ pKP*8մl) '*qF+$H ](P PkH@1?HA+z4Ti@KW2HE-8ob2HD^dN_f'BoYbw=!rZTl\ Y8e@k(SVQvì 2b fv#NU2,0 J*OdUt>41ǽxAԒꢐ^D$$<=PKIupW1>GW-?5A{ cjL)˙LwrYvG?';y:7ϼ=/SH bw{G!p?`X÷M1%3òhcLZ  wa!ϼC*Ukﲈ3ŜngIH8 ?77GSU#6;Docڎ}?07Dj``w t:i ߹=1gq<7fGv qO#Fcښ|w6i@p],UJD! $|~+ɹ^~[Kl@G tV9QW@*kQJ daA!y!*ɍq_SswS~2XZ*^ =;nTsķf*J@f2lU/:I0uY@"?ɷd}An0ȼz/Yf}Wr^^3[*ZPR:`sGW %S̕?dޯ#Q ܆(vYxkfл?&*ރ gf䳬VTGÍ-({"@*Ӡu.OiEO1q1|m~kw7׫ 77FKl5X!-Ly}Tj}VvI)ɟ 婑!A!A!i(~o c*ݸl­BcCc3 *SRRjc7!oʀ6uB>0$",'1VI6v^}-̱G$tzŒphR$sqU~F&,Z:k Ee\Q<366 HeR+&zE"A֓3Wi8 BHmYMC1˙%'i"9 a@ &/;1q m.{YG{bPɵ#%~̥M`t_r |^suR,0UjNsIw{fr6$e }%|Y.". D͋ڛD:Xa oL@A"dT2t=Uظ$3%RR) r^q͵U7N^zo\l@2=ٶI>zF+c=}Ss+qI)4t5$.3#>~ۼSJ8Ni1~">>mϠ*653 ~`At j'Z_Xȣ3k~-<>s|Wt7@ n]s/ =Ru qq lvBFk8wB':r؛ab[mf4vE,=Sʷ!g%{GSNȤ$1hmPF%ͤ08FhzGBLc\ imkxY,K8H~59b =laB? %< 7c|ܘ `v3Z;֣ZK:Z(Z-2pA)u &S_`O )Ɛ{|~Ňɜ$*7mšA6LM}} Ye]swK\tוUN0[t7{NǑ1~ԒXEԗ䀄@ Rʢ'BoύGMYq~LXowX}H>SZqm\V\Lc'm#L<|[.[ 4e*BeIfBۺC| IDAT[[;(9dn6\*vM]_4lG@b$yl?bqc㊅*RBCGtz,#B?h#H͌ClS^8Ϲ ,̣6'}*zuR6..ey8; i<ܐ /[4i!;E4c ?엕8:n;ʆ8sU[Hf[?fQsOV* ӣ|<3DG.8;q_iEYglV'sB.x"5+Su {tUOb( DڵVϛu87/vD=m^N O?RޕWWDk?n>Dfn4[Dגz*]O7fe\Эc ঐGHuk杗8X^\l|߯O'b 05/q &0U(YM(E0fcm**c,= E{Ly_P{MTp ޑ$BTPAa<b/,f֎}GEqq~gvHE]E?Mkذ{{]PcwE;|ωf޹efjIQSR~%IgK3žx3 MSƱg UU%{[aE_o[iB.s˜:YbȶٮҬiՈ&}m+gM[^gc ( 34Bz-X])3ZA>4ZUb=ǢC_ρ~pa̙+/v8!)(e6e5^9-\bˬz׸%zln^_u#N_ê`rTUI3]衄h^tQ%i3i`;!W}WFdu֚WRBƸG}́_j)0}ˉa%-m-V{Ca+P79t1&F[jęz6dv6,_q2C]tk̤ڿjgnwږcDH>S˱s; l&C~2w,tdQr[s4(kl:/=kU= _u~׶}^709|} f3篓F='[ETY}tj<|rgs; w^ m뼻ujPN~ ߥ ][0o,+F8\{Z}FI78X!󧵊86g앝>MZ?wչX (?!$0dk5I=:f݃LSn_]ǷȾK^ DD^!':a9Lz穷G5~sq[U"+sθV7c4qc Fj|~F O@zmmCFMB>C T¥<fnbӒ7ih0b1%peT@k&b""c7@ĐqQv|~"^\ٓjs|(VƲGs ለTۭpkxʹHӶJR"`S)15Z; y򸍿fs(Fa.9:VbҪV<Wodo< #(!5ll?;`){?ؤLrn-=NBJDSI u;[oXݻ|{DkUjZ1w75' V70(èPȯ5c`9; ]gn^7x$^^kKz?v_G x,Ƹy?ֹEIUbz.[?>?G<0ex-Zd7_ȐQhq iD<2?.O-G !D:LQ"c_Sҿ$˦sLԋnv\.*g̺nۘx"GM.-{s"_%9=4( H}%x=6il<-ySpOOV+ZI,xիo_F7oǚ}߆cD/!kTňO)nQ@\3%36d)+ʈϒ𒬸Ȉ='n2Σ5NO%ߴ>&of+,enw` q{pȰ˸]}1(𥊽Ǫ^LK╪[Ae45UX+/*%G&gNpP°[`9Cp} 9|BP_|t>9ʌVMRD&^''CƦ=sY*D$ -[h8|+|.!"Q^3xOUcɡS)c܆ ‹f%6_xZ6;̶ۯ)nJָ27CŃ7<,QcQ.Ro}a7.efSM fVTCbu""fCa\w>Ȯ AB1䉈$VDD/UONd2vOTiDzv6b׶;䶝NP[ZL"kڢħ BW<ðD˰DDavz׍+g\ۨ3jꪥ$McuE4tĥC3W>XȡפUMeːd|j0 &&:\ԝ3xv} =[ Lxoe>ǣ"N[0D-l }xR}uܟk&J5Wnr)E^i3A>=:jQ R Mh=nz*]NRo]/*̦@i3` 9-ٺ9= {KO[z8p4f Mc %O29e<1%Sɽ#yc9޾U%b-3-7ν6XNbG '"V<{OG=7ȮSnD~ 4^Ǹq9IDk\EOOKW78N`ߣuwsRV'b9t@+|"0 f/} 5/NP^ońWr`Ψj I/dծ +e1>[[z#)2eC'HyP_ d^@<^x8뢂qk{v:t2 ,J"/.s_{ݺ2b=zU5Vnr)E>v] '6Tm:)u{W^R$"͜saߖYE.~k]Hy_RMqG/efʏ!/Ӳm܋.w"5Mmm/}MaO OZKzOUx ?1D > YxN*cѤ,,4\Fҗσ%f/lusIH+)IC%fmk |%}k殗~9ئZ{ /{Ff-؈Ē{ Zfڌ` ӞG19Sסm&I@E;ɛYsoa _*G%440XbڰZ|DT?QE>}}侷u!~q]COٶ0 HTXd>g jדȗ1Tyclj1-#4r'շeǽw,3sFf7rz?OɁ1lM O7ȿr;ȩХҥLʇ/abД\X#->AVk4g2lB? 0OQ}AʹRnò"8WnߠPdժ$yr3V9ePJSh /O\s|ˋv{6?['䘫DzuϱalOBK/e=~rIbSL.TWj#Pp7LQI*/XB.>ρKg|J D SЛAjjXM$߿yuOxzX˸*Y[J&5a&GE#N{< G>wvۥݗiRufYNk1 UHecx$m+K%-|"w*6%nRIˆ5Q~ǂ{qNy/Zo(B*j":a=ž~զ;$>KfڸJQTF'Y S89ꗟSO>}䔢Ĥoi%|Qf\dR.GD* F7)ziUmg.Jޔ>fl}d~L/9v4OlBbȧ\g}6Q})]M I ,컎ڶ{J(}i9U[8v}t̵J[5eiv EJ~;wiYS]n1{&mçx%SM8s8QQv+?<\̑tgbL=UYANfrЃX^9mxرnhI/0^A Ӌ'khXJ q†sPX-FY%ڊ,paGlS܆7#(UMS3:U8Έ }ʎFQ & HMxI=O7 ٷzgCl]tbr+N |uEډzD.>;& ".3bq헊6}U(?nyST];oJnqy>.*le.W~#:{kTfFüwx!UY yWy-+{Jebس߄`=Sw-7ڔ҈6w8`3 TtP%@ه;> JhfaQމ?5ܤ(ہ)_3,NN*>W^wQ8WxŦQ~{jPUYNo=_@1|6uVE(dȶٮҬ1[8{lR=LA[^g ?kJ,bL~` / kUWSѮ*>j-gs ֔Ӳem2DW\.1﫾F7p\RdžIf|ӏ8} K!bزG-\DzpDU}ޝWF=xNhcB$g&>8uqDQKPJbr~PnBó>+"b[(Ģŧ"D1>YG#kN\.fvkN#P&޺aqT" 3y Rnn:51Użz"tM >z ihKYOCS$gGD|i[PQNR\tqM>DZ*bdYZma!fHOΐyHƖOaZ]<Ͻ&"01YL._l^^Bѐ>)mcrBdEDJCmUe9-_IL}-"2p\m=}mdžY%5 J~ɵOHHʨV&#V-aѼC37P~rv]ޡONeun`ýW6񙾇7V ANnzFa M;7\M/9rҸE-5S345E<%|X͚o)E? jEb]][tu[`AYA١!2nʔ%bZ,>;' t/ǂ6^lU-M ?>2~%5. IDATF`{ç8m4bΞ 2uC*yfPF88-R*F|ƣ7bwW3ާi瘟d^&F_秷{ CaNkjX$rmbb#IBtlzki]݀ҟgHњ2I#ϯ^һ5̭dyOc%"(?C.LڰޭZSNͳ>0+_Zlb57{/>&K C~U6kH_:VZXT#/ҕ:2: {`^ȺE{][?/ / gSgկv{ Ndu֚Ϫ^yU)XJ^w,W0gt1֔?U= r4M9a5I);iX԰/UEBde_=pՖ7{gp4@yoۏ2[:Ln7mu vLWEwXᛗ|_jk0[L4'7Raq[XWlr;pTrG^Uw]cQzwdǞ82Ϳn~|P+x.n}eQm}:i`S%'RQ)*ʙ7{)2bKe\۔{U:yQ5N>oJq*Rcʌ2'ӮfQZ[vn?K?,kaW -F>sbO3xb?q1=WyBqŗv4>10_٣*,;j)}$T]5s߲uju9ՍV.vX}y=+&Lm>bT Gc*|UωyǐIV44EB|vTNɱT2n׺νŋLgj*ˎiVoTXwٜ\w4WT ZH #Y-"Na&*]6NsԚwY:Fޡ&t4Zܳ\*N%He =`Qcۧ|jGB͵~ӛG&$d~RTlbS+3nJMz0?'1;]V!r$D ("/resezo8EսL4oVDD$7 kUNˈ?p_Ekʆ}o.nJDTxenybPӶJR"ڎ ~*SC]w:~oײݻDDUF}sV/@45E5jQIS/ʚ\b {QʵK0Խ%:|fϙMk&c4qc Fj|~F\ߝ[ow[ܫ}ơp\ +,G2y%dmƝ<4JR"Ra*| s&36VMV:x-|O^J֋5i=zmm'}L'/)U<իw+3^5uĒgl˒jt1{|ϦTĔQ,J^x5`.,J`, PNzC֌hVM(Wc+Sm CX—$6i9h^52Vb.~ JƲGs+Pn O9&܆յ b\ڵaB32szgAzx[/B B=tXϰa^}^ oP?*ݣgymI'"+wEucՌyN+KIT5,pKv#m9wھR"e'ILޱkAyή379&3pqx{٪fh&O^K[.-=n}J+pCDY/.ZwBZ>cPTJa񎕝Ϻ_bժBW^] K@)7ɭȤNc6w^)oϔ)],_d!p,KbJ=ED>Zͯkep(&(nw` q{/={ 0}RʹXTU*T P C\Yj2d^Awoz\yZcж#p(UEVj}ݼk}Y+$|OYN- ;ZTa .7ֲ^g~%HJx""0Wgޱ0ֹk/s>Eթ)DF+߲f3j&,\U;i2$VTR*Rzg* a{zc]:.KzU2j`PAKDrDUk;qԏ(pdWbw QkcmƦ82:aocV<ɚ;71VJ(HkdSz ǽ@lED\Zԟ:E|.)CJGKS;n}2W&CܪJ^`Z0iTG͘#.@xy9e'Xy=*O`UG)Y/J Pks<;+2P\A} +/?cug-iظ)YVᢽTַ[ _0M.q^7qmΨڶ(_a,7UUyRe20,q2l1oh&{zzɫLħxTd{ Ƞmr$Adc[Kl<@~3_'7Nm*lƶ@'o`KQ;*[/JU9Wȋ ޱ{clϬg C̞_j% ܇8bY\#7K I y(FC4>GJT||Ώ꫼R̤"I%Ѵ!ˈZL{ljiF$xlK3<χy?jwA89u4ZxL6c%,?ϳRpSRm>iDqtsZ0_l>Pan^0'/^_߻w_-,G2_ɤ2b3ZZQJ)@ *9x-gR^,T _򌮮n)7bo3g?0Y{QSXXhL440XbڰZ|DT?QEh *RRghyGr%HڸϏ }\ij ZDjli^c~|dR!-4;)MlR\bk2.xv Zfڌ&EKOdc_GMIN PK{+M}kz2j5o\ʦt2yՍaTVtΰH3BԢISsYXhR|,1kP$jlusIH+'AFlN-=WB^o2sh[KD+o(o9 *+WJX.e^+[1R.ĠdQ#ǎflyp,ݔ{߉uzm٦q/Ydժ$yT I윆4ז3A% wA4NqI#3jjs邋>_+9p-gzT-3kS|-/48u? j_qYm C$j뛪Eeki8_wJ-cWø+=mw_IՍke: , a&GE#N{<+PRӦyu;GL"VVeȮ%=?qÃ|"2ͥ]}c eFVҺå?{VC=MokuDۋi)U9Jmy &IA:v?I剗I.ޝWwkw{1W5VPU\@W~H&ECr9M<<@~L+>~tk>Fcvon~ ʽp KG7U` |>cLϛO,u;YgoRWPWxQ)(YegXWɢJ}WO,y_I)Όwq闧^} k/rea./8vlؓc~[1.`d=~rIbSL͊T=dž7> f,ICBXœ(EcʯPK$zq?w:p'e_^ş򰵇o묗/>IW7%b谈E OX/%ZRaNJץ'͈l[H issƎuۿ@Mz›F:৅5yecme]}j+NRN[JZ&6=M*Ɍ3u^%V.}8j~Itgٹ7jmoұs3 qG7EuFw-c'_2x MP^gY7BR(WeEgX/9N6 (L :͈V% 2z~̓miKz0-u-`ϤM[a_p1Gӝ=z؊3Te9Ax&q(;Gd Bry{f|BR4K/RU*~X%1paGlS܆7#KXŜOSg|A?=TU[eHTwSb,g>dǽt7g3햜yͩZi_֪Ӟ[~}х/L{lT[X8{lR=ge{:b<# rm_1 .'}_`L:.ٶGɩiOƼ_Wqplyng/f_tQeoVz5gP XS(ML&"kJy%]Zٶ] jEUF/ \>*a껙_PAXNfC$~dzM'<]W6u3(g*3,Mу:Xk2hv)3.= OiUâ~ZUT>̺U[fud˕J34;>O^>̹."CLDD|™kh?IN7_&eIvvSUUT@DDY}tj<|r<#4),+U<իvm3eGꦆ:jW>gs(#">7U%"*2kE$5wu9KD#$"2NNaT 5uĒgl k4dD5 ;6xYZn3fR yckwiCz=ANJN6L:7oS^~G]kЮxKO1UZM&YT YYw]t%]kԴQӪTD"K.m5[Q~yH CRk0У2m#G~ ^.vغ;?k9ާ _*N?Kڀjm{#?!2˲,!=""PW\۵28N\^rT1i(ʈϒ𒬸ȈJE$[=6il<242ne}W_$" |bﱪW3ǒMnۘx"GMc19)-x3vƆ,AeڛOcluJne 8Oӧums=6/-_]ITWUP: kLD*l CiֶEgYIt=&JKh@%s^˾b+S̴vl( IDAT8~x6kzdc2 ş=}KٿI8"y_>.-%1A\NrW2|zΡu!f24S ۻ}ϕp񅼱 U\AB%?:%~RF3(f`;7Hסm&p@"?z6jYZ\NN!Gh7;u?ˈK7'gAX;:u"3kkg?M4V42ٸ}>?o(5gѾ׆z Ru=SzzJ0?*NFkiaUFZG'0Ur]ڀ{x\@.`|zL݀ѽ1)=f`d#!PYK'`O""yϦ%o5Z|ظNBy>ߵXfwfVJl~Ҧ ~L2z qC'~.0&]˧ݧE{×Oeow ѫL3NT)Dz?!u,֪Ӥ.mr^k֮=1|>p vc3P7kоm=247b@KRy lvM'<]WTc5=G)lZ\a[Q |3':|b|Nה!X .KWmŒdXo@vHKݮaQRWF**h7fVy?hDza iwMvM0:jhGU)SO/"ncl>Rg/[EPR^/p9 9dnO;;)R*5 ~aPSMF}֏8{zȄOSiUe/I}I:S;;F.kQe֚2]4mٮ4/+%cMDM]lc#S~X)%"ڹXyYQ0au'vm|!P}o.nJDTxen׊RB""Rqzs>3̦w ^!':a9Ӓu9f߳fA81%@ecm̟*؜ƳWvzwjs|("I3Éj{%"" "s[FېQ$O;'U<ȸn;VO^pQea%U-ۜ6dX "\JUY*{IEo ED4/"G}tL[5[f\N\[I X֣gLֈO r۟ɜ‚ڄ!p)| :jIm-%+`aYKȧ1iP_C`e_Xƚ0fm[[x?741AD/Z?>gwaQ\]ϝ]z[: ,5ލbc>M&J=5KEDai;;(vAO~Df3g=;;v 1a4-(d VV"{2H M;1,Sz")¨Vw E/I#0E(OCj5: Sŗw8?EÚ[ .e_!pV)#B!LU~r~Rhث'=1h=>?rɡ'oU1)&&vq1;GTe[}  5YSZ˪k2N BEy<<!I9ʈ5 dSӒӨHN@R%*5C|_wk5C43|N)f'2 $d*=SS9wQPV(A!B!>O5rݽzQn32}3.))!joG`^)}GoG&ȩ ;KC^FpoڥRJTUUxuIq %êpa/B씒cc*M.-_dh)@xF\qY[0 pϣ.1@@hMſ ˪xؚ$@VIߎx>OV `=[ylҵٶ ,k6+?EC&|FF? Ĥm;cYDXj$_H;i`,  mUvCpB!B}*͚Bk_hRTɰMsCailvi4Q ;gc/շT ;s;EqϘziJak$z)3_Q17;=7 "ر,j!_?RL`t{HV-v;yLNY(9d rh̑%-BHL,鈈@u^qnRlz1𯮞 Ղfg|k6|Ә_JO̩R#|+ΐW F< pdژX)+ΉHMtn+&T*"zX+FK[0ó?Ϲ@5Ψuӫ.8r?3u:_,xLϚ*i5(ѳS~cQйsmϹQ nh B!BT6&XQXiͿۺR-yk`cŹI~WLyscgw.CښiI˳[wLz[5{p&Z"YQ~NZ5nRt\}"Y~ˇ~{7=jDǴ7Q.I >uweZnfrg3s[zIǯ,K@y=7&@Z_`S&*|AjkW`/]8}# 4/-Ս]_=tA i™YVo^8`DaƊe b/{>:BZ,gH ( I^T!}=O,S ֮%|%Yxkڋih'% 3 >,U5+d,+ܳ.6ymjQ 9贙y|O{ \O3*g\#FʅOoܹjTI\#0]X2kS1dywgjϜ?vCpB!B!RJไ@wI'P B!B6, B!B!))#B!B!B!B!B!B!B!B!B!B!B}\wH TߴN@0!B!B}y9>ێ5*LY끳;Yb :#DK?tamkՄv 1!B!>!Le@P[={wMbUL,L5-,j Lq[`E -'wOcä%n!C g[Q [0m&z> l5ws҆}tȕGOo^pjT3u>I`;Z0/B>dOs2r Cc@ &zV<, ZzT{Ҷ|܆~&1D!B!T=HvvPEm|~yi0S.2BW̓l_m.[ypC(+>6&a,/fLB-ύ,+> ]?7Fă<}GHqqKWU>z醶m)NujʤzT^sʢ|&kX`I^AV6<hd[Oee#uZ+mPXĈ-zjr$<rjF de/(1qWN$&jsRQW_YհG!B!BHR"S@^B)Wyfz1-,t'vxSHŘwobD 3d,i6mfjE;\ظfף,*q}W.}%ͮ7.oP$͊S+>^BOC ͎{~ËmI {:&1a4!)2^QΌ++yŠ9P {+/c)Up|3a-I aO/5B 8/Y`)v8{{aƂc a@ROGo 47\nlLkiu=-M"rW?199ek~E>e]XRV^a Dо5kا3aoCB!B5Q}ʄ>e)Pi^r yšx`@Lbw++|fz&W>?-4UiVfVW23J\-AށQs5ƥ M+4<*'{SRdjFQBw J ғ%-+Ǫ8FF>W~p6'6s_}C=} P@mu tfvc\5 u"r\K&$g5uU,X4?)4=[}@S_\۶îۑ/!B!PMTSS^HSJRk<7PfJK(ȨQ7[+EwVNR }\RRB4ߚ+|؋PGKp}^2ƒq4Mǖ$b1O*+7eE.Lc;l[xJM7B\N z&dTk=v=.H{ zvW*I~H43=lbGS(C&|FFQݨ ϩYuz*!,@wμǬ_ovvrh̑%-24*+n\ `唏nV𐥼zB4m f?%P󜟄'pЀD>|,< ww]b--!NMxҨUт0K! 0M嚫ǯ7K'?ܱr8Ϩ/2֓eU< MUF-FLheg'Y~mv\u?Lx>Y47O[BÔ@UM@.t}4nCmUU3?dԂF"iNR%}1D!B!B G`k@ m#B!B" jC THѬc.*#B!B!5ePmL;gVُ9߳TA!B!B!B!B!B!B!B!B!B!Bh:.u;=cwZM[ aa FDF盽!BOr7HTwneA>d%㝬T @T mZb [-8FYCc 1*؏AA|;èQt>^;N_y4ejyIbB!B-m_+zZxsyR <0@.5! se{-1ZPGETZvf!}iLl&MKWoOIތI3EC֨U-:_:Â֦3G[ v-mh*GOѷkKkF,;2x薽Rh}_ SMRK}!>Jsn\ܴo*X3ԵE# R. E}J>RDachh:n^wzd\n2|E>{1߬BZ:E~)2U]c͌ 'آ]GEC!B!T 5~B@_ӷXPF50aԕD_j=VvKrnr~ 6_J7)0iOJd4"͇we;"؋|A-,AZuEuHsCH̽NtlT96ۊ 7.lLrj|Nipm4^ۢzNn=&q極cLȰu>?9*H^F!w)o8Tawn$aк{1Րk6UUCQ2fCVv{Ә}9/q~zV ?Sk[zkՁdѶ?eܩNMTT<#B!@ԨTаPʤFFFUzF1 'hXWGSf>;X >^BOC ͎{~+bN֭2_pNs?zN$z1-,t'vxV^P|!LU^& {e9)Te sAڂ$`ޗ. G7 e nۈ16hyRqb*Y._0M# G.:(lUWN }- zQQ>P% ܥ/Ka&G< fY:bZ?ͧ0bk5zpOв8݉!94.HqY U),֦ 1a#Q;i>TDGk΂z|^1˧*/?TojiȝOjdjc;Jn}ҷ?nڌ\2}c'Mm.12{8G]q~/ig #èvu fn}=w|޷Ƙ Xufzu[A2wigx ZUs&z ݚۇ'30|}{sb $ `13Lg7v_뾜MU~5DEsb#򐱞vi3O!B5A *FMr-.C uI\R/C['gfÝWm0jgo;^mQ,5SOzLt:;5;l RK&H/m,;LZ{d7BΣf}_^ `7Ɠ&I2>_5nSawiD(K#+"Zy¬ٞQϧ/+R c9j2W`Ml>,dյM[TM-cj${cB1jWx  k4 jKpiiTHJC*1g;$p {B%٫8*eG KI6m 2<혦Vd*i>B8`yʥo:9Ql-\z`;I|qǧ<0{*WPß/M lku8 on*O0T;ڿgw{#HЙ3uV(JKDŸرو+^OKtvjLƭ[ JR>g?mZzTr憢R 2X֪FqFJ5s9 "2_:4[!B5A^VqFw+CB:mC, ZOw} gOJ7X(6xi&^Fn"\aNϤ89~O>Ck4p-x4PI.mHTT!=(ZI;R(ˬ/OZfݥqe`hw>ڲiVEu."RM3>!B1 BfH"M>+ͩ (U<i&HR+mI!駤/2Ƃi׉QK҂HQ;DBP{9ʌeG}Qt #ub087Q5='}r azw~V?s_rIuC@EŮ(o-{ 4;!|%i ,*uՂ\'O^dS  YD %jrz/eaH!è/k9SAQ F'B{^\m[;ȕzw?񰰺V z4;>6W;WJ1ѕj rCAFU òD6~cE&T[ U(>B!B _fDv9#45b$$EYĸE+#ٳCwˊ}'>%ۖU4t|bI02 ieӔMLqS%Fs\zܗ^>l6ghZŏ5"a;@Y$WI2¦ 2jT1Gx}Ҩ+c1Oh' 8gc&m .l&GWԎӮsI 0Y|/\[&uȀd27/LMEbWQ|샋7} ,{g vvCߪ, =zUF‚_V4Oԟ] /[gѳcC vػnwo߸v/X Kv”~ 痼hXs+ N?lY{(xu”_MlM0cP)7RK}tg–û\y~䴪'7j CeXjq 䅷yB!jpPS&&vq1;GTes&R4H)47#<ŠsL[%~@ZV΀(FF>W~p6'6sMh,8vyY| J/QMZnff֖iU(+9B!>,nmql[Q:I%lBS!{]RTOiٰE9met;/†up< p|fB3Xڔ?gJ {"RP%PpÔY0iK>Q*p޿ӷ[JA)ݢ!pQ+תVW͢I`hHZy}Y ؎*@ƹF <!A|!#w")Wr3( wN4Xv{Is9=h1(R; S,!FM0S J3fĘQ"=?|.MMM׏Q0HqvCvlؽ-&;d٨ӎUR)%W˅ m`Ŕ=X厰ÆQ"n7j#s|@< nbW]ڂW% ɻUnUOPRRB4."7dTP1$zֻѽ՜~o51B!B %{nT":mFOh׉qx*H攵 [9 '9F 1iH+M^&P5mݥ CzˑWF._؝4DSf˗U 2 RL 4jڡA @4^'FCB@@RɛY~DJ,2: h\yiߔiD/9omJgy#z/U4@$""Xb8ZP!tysjy gMXjq'֦ xb_߾CIs֪3Q҈4~  жe[|bBERd 8)$@2cٟH[0y!cRob!g oWEjU_F!*q{x`SLe;F'n?c"G-?y63KnߥPEàIa7gE#ЬXn{6wo'7?fzFъʦ )E;(k98az_5y֬TQ}-RӠQˊmť>K4{/\3S ;$I FV 9oiO'D8mrc5mF6/^6ڮP$5;vTؔ"myKf\qVz,94MӜM&mzץʪrCAF)Lц!Z/r]n(OS\FGISPg1İQM/I5 o5 1hoiH&9>12u(@@!BqUl%{ƕ}&_zJ֤30^Oe%{[_7cv|+Bn+ =oV㧮F?9g2(|sŒ ǹ`K"nH`8|j/pw~滺^2_%E (gY*(eIҶ 6i͛T PxO'd9 isD*V|VR6'BJ3he.nj1!Kh "K]`4򯙕2lkg 4,!r9Lֶ'Ӫ;P(N#!>f]|X_BI G?ѸSkV,baAk~ *mRxSVOiΖćxYD,P0TR̃c N}Ƿf7;zNdAJA7TXSL87)׫Y5{粠_jz̆]cKRm= X4wŒCfE~/nU0 ~0*Mj9QhbĤV&lqvB-|/K;oThAj߯_9*nUO?%vat"I~yvrCAFU Cf z҇οSsJNb7`0֓eUv٦s lâ2B!B% :@Ԍm B!B!  Ɔ1TqO0 ) i6MǥnGWtb)7xr+M B^<{+ܸxb󘦵]xā]DU F-{86өѿWB!>l/g8{*Tq=i݄OIz7jӪy9>ێu mETwneA>Vêë`6xZuF!!>fbYNBؓ;. 5u࡭Rdƚ|-sw窬x}ӫZ4uOSC݄дی3ukf!ˉ}qm6`a֘ aM%'d^_BӵBo^rTi_I94oe\OR/誧,I sR^xݸpIˎtac~B<b2|IROY{Blǹ,bnbJT[ں˝kuՇ컳c@,gqin/ XױҬO?pF?N~+싍ɽi)x+SÍ-/N D,g~qFoN?vyu7=䞻~=I'nÓH@g+Yiqubx0Ο^>;8b JۚyL>>9bi7{<{uCyPByoYn=^zssu8F[n0iP=BSif0bH,U '[13]"SBA=*~%0Zeԁn>:~&.:uk?nuei[6^ՉD$ΥY ILת\ĐigA=m>qGOz* K^DD/#lm*+ՅʝRDeDrr6=7o}sA=d?XeYo5CmO_eiV9v>y3ڌ\2}c'Mm.O-(R@P݈,_Tv5Ne݋/-rK%1x=f]f/whK3C=q;`Mv>Zibo}Φ%!6(_R4.޸McC4+ҞO)DbU3U-Jz(@JN|':J<\e(|ySŭj3^4.ݺdmc#me>?s{/E%r\wiV [? zN$T+a {жI}<?E!WųgC}bؓH A `h45Q+M ?m)u`W竼$VjQǿ[pئsXQX۶'m0bïoџ͗-YE]]%wX6W;WJ1oHe ~7$T۶1$km1FfBɋP9 })o@nT=h9}#=>9$w[waDJHᅦ֣bwi\Fş2AoLqWdP̔@rݡ ;u%)& Js 漪2z&F"Be  ';ТԔ, Nom]D9/ݲ͒έW_ ޺pń @NYW]ebdu?l熩t%Ӻ)־kgȋdҧ0UoZFWG߻r̅~%cYmYTzDFZ~X]x)'m+Zmm^q_9>Az=7en@ hՂ\'O^dS !?tAO-92vIu-E;߸쒸mƙ7J_>3G/ hE? @EA\˒=/SpkE:Ⳉ)_~D #0m~Kar?zzϷ"V0ߪVͨn|Jo@)cp8sr_%i r>c2x(d9|ӎ^وjVAJ^FB7&,pBɻ?Um*:[n>\2 FRNDsFtijH2 I~SZ/v﹬6P4M5uz݌"o߽z]&N$tt)y|ʯᅥiD; 48K𦌚Aあ{QFW͡vKZ 輅 }`l 󎜙WrɫWTsKRYӡ&Z{>l):?\ $2iQ-w3S_K>%ĒjZTmSܷ㆓k?=w~=t8VBDzfG]u ~w@R-^&j UU $WjqQw]XjdQ7В? ໗WNiдoنiϓ_Z@?= S3zVs:|y튓ag5u&zMvЅ cݟ7yˬ}f T,<5nw {ƵyJ_ j-;>|$3Dͣu-{KJM)W u|_aͭ4axT.EUjxM3%F[@keӔMRIMUy4o0MoFˊ\wܡւ5mˊ}'>__6L%yٻ&7%BXdRpgWŽպnZsV ""vPB +~sy{}BU9jja,AlUK~׿i/˄=]8i,O**nTFݲ1br"T(%aTB̼M.z[t ;u0O`c"kFٶrܺ|.ݞ ޗ )Ax>Χ>u:Od9 QcʼYWyعSϯΚh~;n(e͐^yŸF?>g7C98}˓+0!6}謁TNQKKߦӫ("uJ!~P¦Cxޏg o:ͿɹJʳN%ڑA1aAeolnVwwer xJVYY} ڎYc¨~vY#1Ȏ/:n0&QʷU_FֳE0R e\㱘I ,'imL9նW^,LbpI"5{a¨~ v OΒ,e;gk-Y勡m[F[a 617~KP$Mi@qnB%rThP$T)(.j%wtlxjZ*6/ê mj;g!٠gj(:k@ݷNÄOz")&,Y蜜z-.$y24WWO# ,-Nc (Ev~|үb]1On^FV]%.h8[g)SZj"u ,-- J_cSea=زYW5l=r[UPJ/gytF+26az'&l_X4Wx*ǹdL~=gfO@iz<(V2rZX^ʂϟQ?ݨj6Hp}?.A+{GU :5^*Kg綘=8U,cYoos['7}g4W)RU]tB+r?yi[d܍#F̝*lxs[V-ũHr#@qzwOn=!W:~h8 +T˅a/A{}^*Q9v##/Aj7v89O0#[$IcLt ~p^^s] 9\]_N'ic֨qC{X[k1ىσ功^C^}n|M-̹^c@d;m=yי}e^^P+P]Th|窫=--kq՗uZIyb0ul:MFҼ<_}w{ZVh˥{]^D;?-;}7˖8Rj`V9B.SWO5Qz? n||!QzF F-PiB{ xeE!PvFͧ @!רtwci?2ۣB$ |m9թ!M|7%0!O~:A B!B!B!B!B!B!B!B!B!B!B!B!BVvK/;35UuG("_%mkBKFBƇ jm$'|8ep `TV>wuP?ۅ?0EÖxQ9.g,-:iռYvv/j9ςwMLT, ?4$|慐50Ok;R5[TmT~ht]uo*Rz챼r*VT VX j&~@疱cF;Bc͔ C'hK=Tv+lR!l68g^Y:ʵ1iD\ˊáAg6sGl1&[rUJ x!B0`  `0@`7h0 mvPQMv!B՞T7"ύ"ti IDATJImRҪB3j4<"x`E7Wޙ4rnefd|/ i`lȲ}7; f5c$HX]VΚ;_3!fQe2'I^k\oLWC&BǿL%{,9_pJ)ZaX?>ʄ*jXWDAfM!p̖kچر4:N[梱oepP'Q+vMjzPFs<-`a)[FqkY7PcD˼lٿutH}ylަ;-N/CBc!d1 QW dX` ;9' <$5 ;2@S~6xs{[ +mYblRey@V-h%UAj_tt.l9#/2 4 ׬o;Go(ykt~b:5 \2i%/^j} )^xlֿ3c sҴдk}a.<%+TPJ"4{.4XCE. qptģ]6o&&Ο5ws=UVtgX yB\N+dfQ<`+Zi义/! Ե]3#]MNxh?^s@w١W+C!H%)q7}Rs@ްн|<&~>?>t_7wwnNVFj%\A@'IaQM1ICuz(K[R]\)Wξf`L `oǴY50N$DbBE\s~XZ}Eh\Mm)^}j=͞K\mef>| ռ+&/ş=.z?q6MHdxB˶C:e 3/`s,їu @hh11B!pL!T-Fq2>?{\:H  +@'5kJ^+?@V^ăE 1?3`hI{:gZ+sk]Z,)ݜDUہ"V4Q^0b][!Z^p:M6d+k0*zZ]=xʼnІ*PaP(?w`\8H|v@T=)vYuvC1DQ]]uL,HJˑ:mF9ڼK ^qW~u 1tT@iCy)ݾλ&Y>)j@}GsMWqFs*FzYjiB/;3;ITHUk$.\E:35B.̩n3Stl2'&i֏|W7#"b#yB &2ڍۖ}nKzzVjߪM ]&_tUw㾠:%tn6(z_9v&w͒340t]ZUDB!԰pL!T-.~ {{07\"[^@WxpfRdi$@FP8- Ԅ`ARu-.7/vymuf{<͇D{.W8Z2XL VLFk?8TlAhikאz#76N$ߩ5!a0l&!] >fġRB&-Q JK[i·#k<1~մ_H Q7M` ];{JHwO.3.QU&TbY%%I)6%s! |'Ji#(= {8.&Ŭ$+./"Y6D <3([̥U\\s5CZ>lm)XЫ|`eRUHAlzc @o4\q3oO@[M<8JV_ܤrN_uQcʺ|s'Yw#I2@!j5!@j$g3L [,zO8  `(c'c^-!^/UE\&M͸Uog/p:!W~a&r *zyKswWx;VN%\>$yI irB!j=0C* 3cґoj]-FM{1|jŠ$-5 (8##̋>EIKD#Znd+ x,004H"%cNFLLTH8ǜR㆏;f1Ǐ {~ĭ:葑|MB!SFUߟ, "gs7O8 @vsXy0PRyZL:e0qq326ħrw y`"!JK#Bkئ % 28jxôkw_^lf F|Q1})xgK=7bI¥ 2^-WӴ,-*bF|Z ᫫ ?|Bcj*LuOUAi~R Ȃ}8rk$ "TCBe5φR VqTx8i\WȔt/?`6?{3 N"5+^lKS]"ni5bVWxT]WI9;2ۧHE6ۈKHVC\ۅ.vm`~L54Ɔi˔c/edV [˓geHR4\aMQV|wRMdlv'A͒Pf6WPJ!%WF%(~TK&re 6Kd[J¨G =ێ[4OM͚^#<_ g2Zspřj#W dy) Eu;lrTL~μ@_B7W衬Tm϶J+b՛v3cQuPBc±' Z0H4d%=([B*`@3|kOij ela&)8_qfvSGPZkR~'s1J].EK'o;_:ҊCdM{CC߾[p[*j<2G3 ՅP}|,n<ͺ`Zjø/me{7 k /@Dę0eÞQ.ދ-.ֺgyQ"I~usW|Hw;-_ǃbȉ9p߯΄[7s(r+M:fSZ%`J 2|}˾a3+J0>g\j+\ f:섭ITˊHULo;Lǖ4a>@s+J˸3\#&9S\mrOrV}_<JؘhR-%a"i&5U&=}/]ڴRo͒ vReKbܿrHxN|棎DqګK.=bj՛X >֩@r0eB!B5:Ѥ b*B1_LB!Py!G6&*I̖ZzOѡj+PqGx{B!)#Bbt20Y6=z/P[B!B!B!B!B!B!B!B!B!B!B!B!7l]pjiw!&UBne{gf.hࠐ}\mMh0UC>`"B!gnHGϕf%y\8@GuW=#4[4޾&.I tal9m[ ZM۹iwqcQHM(87DZ ߰ô_kEiOn"cPåML( +>cÊ>x|V|6S~sAҒ[|芗}6{484b&y_~uh׿QS->!+HH| *"uMxLqa|hoFl}j:B:Q_Uw@V!WSI-M(Mb.2 XQF}f.5uS (ϥ}{װYqSFҏ90rFQN\_P{e~@4Ƚ-F&%7ofeI"̆|􇮏`QaPVuG6|<`(_ENk=~lDV~Пb5(+utSlvJDS[\LeK!%#^SаbczDN.{PڭQ&JY3+eoI(׾n|:Ƥ/snk\q+ -^>܆2_/S !B 2&2lfΠuLZݲc&[\<+YL(|)c3e@4j 56\ªuhwA!o 4"ۧJT|`[,zt7/4m\[L椤Io-O~(-æN7yISnE(|BJ%'*<W*~uIjtIjr舛i͝: Ѷ󷃍LiVf!_զ}\a}\TOjutӧ-jOFǂxv%$6HZaiUARK5tZqH>٘h|Ƶ}2v-Q&tlT= laZ\!R"-״ ;ci0ttEcOWF( Ѝ xZ R2I(ײnFyYy=_5:ؼMw?NfK!BIG_UyžV'{#}/Ds%fT@c* =b"1%R ,Fc%]ql갂mUjޣ!> ) L)&KC[C6tmoJ" FGDADXpDz!un\y-Y=K–cV,>.ϊ}>ş4b)*|-)y\<y }5Bu=:l"6R2aێBGy_:[l+ +SBY؃`ЗRGoe -ȩۓDYhϲgm8S2!ZJ:w/վ8\eyaXf~ر/?H}CqS_{Ѩ  [JK_\^ov.R;:[%g6P\Aiik16œ]>yJVl_y~v?wI=mq@"8~:Ѯ^{ Z Ig\O$~(&=f/sЫ.|3_'6bOɽ?_аA]53T9/5~YKz2Tqx'P0>dq= k a,n>#oHusy$mn$\$$qV{մ1_]g*`:%ErlV VVWǴY50N$DbBE\s~XZ}Eh\Mm)^#4z=,P[-L }xHyWM^4x? {]~=lG7իgW K׺ 44ELz˘R@!jad\7D]kzx)ޞP*M;~Who_"#T =x-~FAYf@q}_+ijcBtS 2L1nRq򗇓KYB(:d9vT=? LebRCD`ɣPmʘKLx<(>gTk:zЁq;Ũyή:sPHJˑ:mF9ڼK ^qW~u 1tT@iCy)ݾλ&Y>)j@}GsMWqF+>zYjiB/;3;ITHUk$.\E:35B.̩n3Stlr-ӛ;%MҬЯnBY GDV GLd"'hE÷-(ܖE~#,:wmU L踫l}AuEczqvӏfəH .-XX"sh@!jHUܭs)i4gI(~E~lLuw]rBטA$! 8z/iZOrAOBg;:$х.*(d9iHÉ_e?)v?j=xi4?~,4 @wr=3ä?< s 8ߐƝ;v6ߪi߻@Ql\QO= )e<@QG'jn3%{R&MB|$"PBVBp2KՅ7S#܀NTU?HS{7_g<W8Z2XL VLFk?8TlAhik7pK0m'RTnrcZE)B5lQ5(@}Wu%I-|] 4Á^5jZaX?x(׉&O.̝=tl%A$'uNێċ7,ߏ8kY܉)N0LԫcRW_( *um*Q1,͒$gyyj^\4R͆j}@bVn,d"BU- *nO\s5CZ>lm)XЫ|`eRUHAW~/H p;Zfy5%Mz/) PW56=wq~>➄1ByCY:k?BѶ.;{-/H0 4^dDkճ.={ c-E@ϥsN.Z1!vM݂+U|\w߅=n\f Y_fP?GԀmT<.??$ΩRLC]K(UWRPTӒԵ2}T&\AOQhtx(UE\&Mutreњ&M4|lV+Eִ߲xpSrS -mM:adސyv/탘y-ڵ?OX&[T6N|ߏ<ݯJ \[Zd8Z0>'ta!S=$ʑC$x8Qҟv?l/S.(՘m T3H@mm P%laPW^l)4z8tAvVnmjߘ+دz%]]:l}ݿOȊnBlB!@"͛ά :/V cV}?m8nӹ%)i[6=\noU," u|ij8I ٣.?7ϳ28=>< 3蛡Cɕ?qsyyOEV4e>5A}+SG>x&:k-QS??JP ױ%nԱW^Ai.6@WujWN8#&"#&$Mqxvk/r#ښrferb@, ?xZR]CD4)nDJMӄHH4LcYe;, |~tLUC!y~z(ըz.7]NW: uSs94qUTIcXZϞ {.7wݻq\cg='4_6'+W034$G(myH:uFS7 y5iҕlDJ`]YI]-r'ؔJ0P)Vm`"ήBW(_Gnc(Mò,7[\~\iF?n7CwS0B!>?,00q)ŕQҕV-MM( EJE:,Nj:*hۣJ| 5DE2kѣ @va&5<2f%xLހzkV^ȳdo~o(KW>@LKǚ||>E^QQ?*UU)qǍ3qL񎄎=dVwI#45+7w\zXX&aPtpag;ӊ%<",mer ߛƳN%ڑA1aA5ty3nʥᙄ_<cf]b o;k4,gY/W1ր/{+ԵNm1{/?q,qϫYDzޞCsl^|ZJ9-b+N,?uaeJ >w"*;7ТY[̊:&6Alf F|QQ1ۗqqأ|Q+&$\ ൟlOr5MR|3ӊTԅ$] IfSSg# xM JS_g*\Tmɂ}8rk$ "TCBe5F5wGT@R2:8*>ș:Gkc#(LDžwпg,[2KmOvGgAhM\?XKJSc{[eS3H3=L}w!wtn!62reiQ ~##JJɓK2^LJg?jE̴K&F}K KO?zn(%aX~řAf{O`WRB֣'kiI&Xt7J_f|hO+U.EK'o;_:Ҋ˛VBߦ!to-{~-u5BSyLZgY'7zy$ua-EՆqM3i~7,ů\}|_Xl((@Gę0eÞQ.ދ-.ֺgyQ"I~usW|Hw;-_ǃbȉ9p߯΄[7s(r+M:fSZ%`J 2|}˾a3+J0>g\j+\ f:섭ITˊHULo;Lǖ4a>@sʿ[EeTP(r1Aj{~CKqPDCm) ^W'L[74?x9ҦzkL*[ wHxN|棎DqګK.=bj՛X >֩@r~E!j0jv~pi-)L1n,mCb!o &~g0NBS6= 7P@!jօzڊ67jJ렾,BͰbVgt(x!B!H#SVس`}p| ՘ݐ(Geu/!6:p@'CMS|oܣT!B!B!B!B!B!B!B!B!B!j=0!B!B!*#x2{b?K!A!>?B}ݚģ]B‚B‚ `r5%D|NT mj@!PC6ؚ5lxeZYvvJO#OmAg^yzA\Ӫk6d˟>wvj0ګ *rHuZX X^p+T\Ԍ-L4-랠<-cƌw< JTS}6Q*f#볐45k\G1N p;WX .W6U4!B1Y-a8f5mNX yEut̽ . ,](  + ƖGc%lc1[bJbCY.{P1wbyegggΜsv%o(J&&'1Ͱ峺e]]??{"QP[T=?<{5%ln6ۭ$wWyό m;rg;qem}m{7CuE5sO'%|s \07mp*:DmJTJ&7u9}B^Mʈ*|z[X!V,=

)/lBzfr@Y686? }ݚs8% 8yƬ)nTʏhOn;RnQ]ڷ |s\O#Ӣ93FhgϩrSBdEKsu2Ź?K,{fM^v]0tvn[*7xy?'b{XõTԸ[zT5!-#[R7W엧kX3F(h0 +R9tvl |YXڡ3%.ť\v[~:10 IHO ^f^;k7Udlp>c^ a9>YuѐVV\Q{;@9>j\A.pQN랍\ eխN`\355n@ j#uW\Y-YhsNW;:ۥ+b]c ^q헷 cjڡ~v,HB<};7\rBSXZH֩o"fҌQE+wb->>tO>nM $R.}$y4AE:G^J 25Eg(M g ?0ť)߲U&4uiq-2$-,ClV>R}$Jo2nNtDQ_,Z^"QGB^1.3 >TU[ZK#bzS]}/]&.ks(S\?򩘖槝Go<S*2$q+`o|?9{הA*qd*dfv<{juzKyXPduܜG|Mgz ž]m˹.__{ԃ{\|laI`!@)@V'.T :ָܸ/,v7z BjggaHO,RSTj257EEenM&zֲljg& lT&ԟ5 _5R*$dbuܝTa\;L~Pf#6ȅA&|(>BCWh;٘\i1ۃAٌN$DUx&?Y.:XTDIcǩE1Lhu=R IDAT#j$XK@^+!Cz tB")!;!u]6~ ǟ m{tg瀸|ʦܯ7S3\N17yO?Di)>l["ˡsFY!{嫪xa~AQ749N}?1"lm.<Efd8 N]!DJ͔z݆n=K}ݝe1~|ntqG'!XvY-h^۰Xlf qpR$C8pEPK1H *Ƿ!rꇲOi^;D\zPRk "WT3?{xbeE/jx_ 'ׁx!@I` SK:R(_c@8(TKt翟dE~s'(&3tnjBwqI^ K^@{Z~o˱ݠ^]w9^S_}xYm⢎ecѿs,"*S{},yCWCCS eR7GȨaXvi{?QXjܥ ( *ܹey`Iת o0&z1sa㑼*0x# }zkXOɝ[J)yWzr*; J?l[ #'t-!a~xQ)Jd,Cwv`>;roc-۵f\ L(h û ;O\5WKk#JG" '6kUk,FCgm!aܗ$Љhy\!6!1 2&mJʥp)֢5Ԍ2ї¡_>RwVT]뜸s\Yg9Wcj?@ T B8X<Ռ[zpY櫊 ++rd2~ars-Wu0'.|;[>` VEYw?#~6PfMg%)r )۶MVJImU`(7(:~Ufj*3c"3c">NqxG0aҳHn"EZ%1"a¿_4Jd& HGe^]:^ч_JGT]+a9xgƸ Ęส$dw5 ݵA\!ek3aNAmWK/UMXH.(pg51TnT˹t6ؗS&cLlj?`תU|EN |@Hrn@ "Bcݵϱu}z_SO= ~fweDԱOwYQӰzI\S0.g/YeNZjt಩or= Wo}|̘̔10i(܈ʢ7+FqU edޱ9fon񏐎2qjpIl\ABy;$,W8cEi~XzK`*kJ2vBy%-MN];<7(CC)0 PZ1 Krtiу?GS*GT#J0d-(#<<8$2BcեME e۽&2 N˟U_ZkU}0ʨdsܱw6ԫc9&ܲC-N^Sqn<}ɾsoTz8|֬V)nU]WE{5"aQE-6>"0tfPDS8<.ܱNH//-FF[raMKvbsҎ |Yj.'0p@4(+g0spa)j2R \FTj)Q~ AO..cAølkqz؅Q`l97z纹X#gKJ˹[\JTL`:PAЋ:sKh4@ hws,7nٮن0+6z)ۺ+g,ȍ5PY96 yކs.Xb8pؘMEcP9&솽n.sk@Gj9eF9QO3ߟf3:5Kî=\ti)"K24!0p|e[qMQZҫw2 : Jz@A!Pą` 9/mwzzņMGM¡.K8ЏMM z7= LSL|b81ajpEOb4sʘaYKJ^u 6΍O1)z ]hžʾ_T}mhU]GnvF3mvl1+'+&Ι>lƆfDw7*xދ<'ܨ>l~t}s[ݍ/]JbMؒI9.d*e:?jhrUX>;bD ێp%@E0T(M.ιμ T\#Oz lJ7̣\gT>H4l]!Fv5SVOhJ~zeU~vr}}`>WZr3A*{֝/'R<ꭘzzn@ @ >.z Uz,'g@ ~@;moU:cὯ^9@ @ @ Hnmsd"Vz{ìC^@ @ @ @ @ @ @ @ @ @ ])/lBzfr~|VgQg/X#| ʲַX֜M-)Pp5uZxĨ l['H:_?LޙH=xYZ}AZZU r/qjFց*Qa ԃnu`cV fPt #d9&69Qr^T> vv@*pʌe@ 9e=!KWL\2U(UKI>ۦvSCسYYąW.(/,5f+'j&44c=??׮ak}TwFsD:HqW 5sBn9eLiMO?UZ8;S6o9ptVn63v)aB` @v<+,ppeS~Z5g:m`}N/ZG*0g3Nż$.WgXxgN-0@[c>63n}t!3^#[L\WY5MfS`7i!#_W6mL^;hϵx}p܁NrC="6Ҿe {wJץ]93FhgϩrSBdEKsu2Ź?KӐ[{3C&/cv_HQ:b`vͭMMdzXμ1P=g,YJ *Ej\ĭ=*8|9e(us~yμ/j1Ii0 +R9tvl |YTXڡ3%.ť\v[~:10 IHO ^f^;k7Udlp>c^ a9>YuѐVV\Q{;@9>j\A.pQN랍/u;NpeխN`\35P&e3Ĕ@ B}mݡ-|lK3ՎEv?{~…o\{Xf(/Pm-'J&4&-<Μk""6hQEG__#!_eƲ!Ǟ>`j{VEwNyv<0w`yN%csȧbZޫf>蛟v>`|NF8σr&^SvthՍ#[HU!6#ذCȬ똉n>I9JF(5EIi@}h΁-+;ww>*5Q^ڶ \~yN;3oK:J14̢dCg}`f,8ڥI{LG?0)X󍌲uCe(+Gz~ɗWIXԊn7ZعTZEu>{juzKyXPduܜG|Mgz ž]d:`ۧ~nֲ/x=n=W.>0Ss;@D..Q L8#@ ɟv{m%?fN5.7/ݍ⟆ނ@X1*#*%4(SsST]&Tng-+Vvfr r9"|Þ5ҩc9EEHqzLI.VbEeK4OggoDy{#vwx_+ː`eH bGzq]ת mt3@8/giۣ8;/?S6~a}͝w>e3| SKLrQ=7{!J{ddlLA~}?(7a| u{Y3"8WzUu!=~ (Jw&)T'F= 2|}ޅn (24cM'8qgx3Ln7RC)h&EnHi TLԏT)F ",û /'}l.Pmv{CڭkUJXޙ16UnM~5ݾe}w|WHLwaغ6ꙨKqUR7K'(Jk47ęFM3լr.* (r8Zy%Xǵj*OXC79@@odiF4|! .f۝{|΀@r @ &Eƪk c똇v^j8œ'AO_$} CQ>eʺG O3c 0Sbr# 杜%elNL~_bCΜ3hoC:U$m! cySC\I~QE,ĊLCc9Y䈜$ IDATF ժd8h[H2vByD\iBt2I^/mhO'ad6`ճ7ɥ 0 @qZddj0X,OOo>-% ? !YӢ+UyRVZL&lAYtǁ}&.m*J(ݭ5o2 X`$+W8vlc7C"cC"Ӫ t`qqުLT?Bq&d\`b~ ߠ0.sg3[dGuT@`PI)+` d_N/"yS"޴Ԥ5py ,5Pm찱cFw=}o)_tSQ2$1Ruo j_@h rn;3׮AeRg+ j߉Lll" ::%f &4 '}|[<30eixB GkFMVJԯz۷6Y F2#=.il-JȰu&R-5Ϫ8ב Ksj!w5Ǧ1p؈|!6g?vdm \8z FOs#u֪CuʘY 9% mitw߮?~ӶoV{uls8|ff g-x!z1j*YJ$"MM"b, ڳto_oY2~]E}hX|:@:?=/ZUSQɔعcImWgorLOeZP $fM!x.汳}lߨ8qYR{ݪ(.6;kDbZl|D3`/"/<( [Yt(pʍyn]c-TAS^^[{|vXSgX95[H;g" fQ!@[dfӠ`Jp R!N?G^= }K:C:؅Q`l97z纹X#gKJXiB V&d׮byt6ou.gvVJ/$M]FOgq I@ B=Q5Y9rllCZ]r=AYMT}gf8oAtn}zޠ+Bgn7 r#vr&aQm[ۉqYizTBW%^e|bcgjE"|6gmҒ^mQUz؛)C^ݺY,I#6@v(>ʒlrmcĶ!תCذ_84ѥy)GlRøQ`Rp'ZPd ʼnAgWS 6 yi \ѓ Mn2fXEx"b\O1g7u;v霋[J\څ׮l] {*F|MmZjV'=zߍTgbWVOVL3}، P"n܍/Uι y~OQ}Pgٰ=e^_%rlɛ/3%EYt=s](Y=m1"Ut(tј}ok&)6E%J eQ`)P\syP GdF*yٔo6yGtϨ}Ci: ٺC:/NkT_ʚx;f+\} ;6fY[wJl̆CH֫bk ǁmj,E[t89L@ @ BYO8zAb ]ğ U@ @ ubrTQSu,+G @ C2@ m 5`L*Coouv> @ @ @ @ @ @ @ @ @ @  e2O&@ a])g7@D@ >dqI ¿sOlM׾-(А=DDII/ -#@ (BcǰOx$گ[ ~(YÆ>t,m[1 / 9dsWpȹߌ<VQpߵSU O=w *DQ ~c2p:{ /t ƴM}= ¡3K*z@o%ܾZN[# Bԓfo4i:yxy\JHXxHeh;8Y-)bG<$! m$Iȝ'7NqyK=_nV7N_P/Oi6mS_mل|`#O*dk֏XʲַX֜M-)Ppu.!Ӯ_F_TbRA)CW\/SƭN1k[s1Z__ڊx^ZՌ*rEqE sTL)Zng zh00LX(!ˁt%6ykh@ ׉heS51ʂP zC3̥$ePoj{@]/F>j`׈3,<ʳuq@?d(Qcb%^L\WY5Mfgh!h|ٯKXn͛(y 5nysׄਖc=??׮ak}TwFs_x- ڴ =wEe!܋8AM #9d6l\PUU+pƙOArkYf+z%oS(y!k+}DE\b|s©wKT/+^6si2<|lg܏dmACW=[xvEzrbgZcbKꪗϥh-_|>Yq@'[KFti߿2XUPvs?N=ϙ1wG;3}Nr%'8,z\`)΍|p~Yu3:b`vͭMMdzXμ1P=g,YJ *Ej\ĭ=*햍?ϑ-Cgmmp57H("(*x?wr@DiNvٱ O[ s?)c~]oҹ,]遐͛PJSYS$\C"CrKP>fŃVW3uu9Ema_ϱA{.϶WgW4X6SUrSII0d܌ح %z֝=<1W%r/fW<6Uzj<^L\0{Q^1~S1-|iU3O;qNx0>Tdj#IN]Wf j9r__);t}Gf]LtwIQ2B)JJbC@wl9\-1Q! n`$_y>9C)f1ЂF"|r] mIɊ'?s2nHPІ\#qK`G`bSm +Jr7ɋ.&*L=@%&2d= z>(eT>/.C`F;715}ꈶh.g]rW[0~k=tOߜjx2kБ >[+'z/ۻE9ao/"@hTML'/0@DXja6]'v~{x3eD^;wDRɃdǚm[yjo)6L _* x`ɯو >raк =džU+;xLhP6c`ik% (SsST]&Tng-+Vvfr r?u.."q:Å87P/M@w,I@ HauT~ZơDm{tg瀸|ʦܯ7Si:gE߻[)F< S(푑1\]K;t`F7|f/; <6t+ w?H %zӻOOS YJ@S>>Bz+g;~q@Y3C,ަf;:i1,Dzj)F-k}Úm%TX]>zt X .e\W΍d`a0=YO9e!s(SSȍ؉s4|L.r9ʹUk6r Єȉd(+`+UMaM,[CurHO,RST7r㞿(i-jkoUy||Mm/׷px&k@ G|1wr߯^{SK:Rhzy$#Y;nQK.[,%g~a@C#587;W 23s1V*8 _KJӠ4 +"Fa>(+\73R=\,yxU`(7(ekѨ;%Ur/>3QF`Jn,CJ"뀓j;tC{o$R0L&@ ӄAZj =m)3c"3c">NqxG?]5UEUW5408jG5l&zaغa嚢m F(UMXH.(_QGs z=qrtNIrvbU5D>| cȓ_͸ebo. xQ]8Jn"+v<5"@h T͏;ĴdL3DXuwmQʼnvǎb~;xfHdtLxHdZn/2zfެOfp>-% E<߶Ǝ=}xѓ`b]<~M۱IK͑\6C_ga}:.+k{4, _W19@f LZ\+2AUk7u|PzيЏb E䅧%a++Y0mA FF{ef|z1a{/ҋ9ISYg\⟹ =Ku!WUԵ|X?ڬP ?bڶ],Xӯ| uoo~,6\>:( @Ia*AY`ޏB Hޓ3IQ)p0=so2Cs$Eֽi+csͬwaHO]2ٸ80G[`D-!6MfM{uls8|ff gByO+($b)Tajz z~_0q* H:eLӬ64rUoן3u/}PWIVZzwĝmYr+^RЖH,nF 1-9EơH  CCragX\Pdm\u#UHKGsA~/X ,0B7K9Ħ?Ah! R%lvvrD0:ק CDTIDroy~#szٞB!PX}Veq6&PSʧfN[0{Ԣ3آpQ BK=uܺ݋Ltܬ@%)w/,[Zٮ;=ϊ=| 88lV=SUVB{1DSkv_ IDAT^̿m7ri4~&i!|ҳw7 &j⥓5֤҃lQ]9.wwJ H-]OHDE14ԃ+F^Q;HyJ'.=IaM3+yo]E_(𱙚R\=(2Diet/e[R@3q~T|8|l>#(B!5j$Nzb7)fs}!/9鑧gB!B!caW T,M:L]ƶB!PeI B!TuMF7. IS2& M:7gLwt@ gupB!Pe2B!u3,kc^s}7_&n.+hU8fLD!B!B!B!B!B!B!B!B!B!`{Y4 B!B ӮL W !BTS]eq !\~t&lK>/ / wG\*Ygޙhs-P_h*UYYkSj.!L].k/쫆_=.BK$iL@$?~F5 vf6-6.iMްE)_` ܋1ԅ[GkO8{汪|\4vFO迄 ̫T5$ QCW/nwܟ;NE%&fi<+kApѳp@*%k7x3wdz#k|4~"def!J̭ MONsmI.{sr/VԆ!֤L ~Xߦ=7 kvb,I!/aheY}FpsxI@>:חvzgNԭL;£!0u:Oj4=]h[ňٟмA]s3c]L{cNSٵ A7|ahFȽs}vH6,x~ | `яmҝ11ZHI4`9m܎ |Hз[gtgL V-21C4!)L?bd*!w>e\݉Y4ٓ{u T#c[h-H^RZƌs?N|.M`?L DW=5I7D#$Y׭D_EIB_뗥z>di9r=n ܫ6wYqv֦zBn{w:[P&mR!nٍe`'3zzĉKmQ_aʼn\/֟ϝ=k 3!51mGgJYoo~nmϊLg?51zi7uC0Bj[Sf[]_6~u/FYWE\2ڷw9bMmSjo$fMze9!LKQcު=}~xγOZ l B1r˽ݺ @dܠ OkGH .q6%Bt^jHbzN:zEɁuwB,4 \9uމNhEAZ7t_WT``Uǀ?^C,3e9f\X&DߡCSvcؾ>sȴ~3+tO>̲߶8vodZAl k]#kwFg06~RC$j =ƺ3?nqISpRCs@d9g`c.saԊڹtu41.vg&_D)وZ|ᒎ= "`DLa-ꖬ):3&i!sWyh `>Bұ;ğdDם{Ĕȭ ]VҾ;S嵗$ Yt1T1|mKCfIZ' oJn;TaӼ`A3v ^|J y$HHoD4^*؂5|tX!UQl$@P=w^ɜ;|ԡQ_?GǺ{O/_IEJ}n>a掏.8>'Ӱ/FŠ^m9w1*.c/ڹA1fT}T 1 |P, BהM S/3)@Peܧ=XA!A\+I )E&ܫ) I< &N{d MMeӮHEXmȨH\Tnʮb=zfLyf^J[\8ȵ_'߬U+s('=w @$Z0BjYS.zu7ݺq+^ ::7b'YӆtnTׄQ+H~cc :_Jݾ|H(#${ν +yUe.a&_cfW.(=d5ajr5a؏ km~ʋ7 $s.QϚ;I꛴"Eʯ+ /^aeI6\{ͱR&κܜ{wAi_[?z)Cm@!W{Bzj:5!7%-,e4#=CB-k@ @ j&)(K,`]̭!a?8M dRRS̐BY!Q8._\#gCfE gen{Kʼn:n〹g ZNtbv} wL\\Xk"M%#i1s JZ[t;i[+tINyޫŴgqR*BChUgY80jsոUE'YYˋUsۖ߯x|?oTRHZ@crз+ٷ~q'>[ k46xz B^]6|ĩusݰ?PED hҺqtmIdbU"f$9)WK ):NyQIFDMr2.0DDBm%WNL^l\&=##C8 /!88>@8*3i{ѫ4|aCG:z/V_X0z bg4g/s- =od;9)!WyZHSɐprQ/.?+REL La[i?*HemI cRWν,RQ"*]hjӪՇ9ڝ{[iD3EOlukE5.GY n dsDn΢1qBn5LߘǗJz4^戙-'wR!#PPI rl)deY;WnahPLVU H+vjb^>}'/c47 $sbӶ]]>,$/GSC"9Bb`dȔ V܈eVMt"ѱ?mŋӧz@!UVѤ%]}UVmYI3n<9n?2&fA!\I}5)FV#5!zNN9 ѩFBy4jMjWᚳa_!!:` }SpǶK#"[ÀD%n~s{BQl~WԠFW CTxYft?v1N-?t d *}s@J꾢]H|EeG% i5inorgDGG'G&m9i/`,yMlTU"WT|Mm٦}ۋJiS I :iTݤ""$(8|ۙS7wnXvh_ã}#2$ H!SvyOڹgETMېa i}Gǂx͎ ͗sG4/ȀF?};01\Sfʸ6F -e7튔eCݐ7UFz<}SB9= l^Ts9}ɗ_-Zqӯ`jB!T5e}Veq6&PşO͜`EgE9)~W?.3zuY)^1%]NNqdvABpFIxvM O|0.Y%,%=:A]:kAWCz9;~-phӯߌXcdarWnGz:yKOZy2U"B0jsU3nqDd}3-ʊ zkᮣѴV_crodiN +Gg8ۤ н|h2{0 D!,R5 X|,ih *]^܏i4K ϩJ0 B!Bf!u WQ;̽⯳>:jB!z}!BUAmt°4%cҠۄIs}~At`9ȦĀŘ)W0"BU \SF!P!r}em+R#of BqnGd47\%$)W0"B!B!B!B!B!B!B!B!B!c{΢]L'B!BU´+vB!P-TS]e!\~t&lK>/ / wG\3kL*vaH:~_~t” !BUI5Q3QCK׏v;bĨسIm_`Z`,I˹ۧ7ɶØCAq{ڐ $J$L~=ȏa،@&v~tPSM8sME|[8Ү>)^Á_-֦0%۷~ۅ&͛<[S#>+ՃN*N" pޛk=PH3jb~a{1~^Hu y/@c Ճ+s_ZW}/~ZA_MY[,*cU{v>n$ج1D,v+?J}~)Um$s=  Xϊ /}tdO F {O؝ 3Ow|do%mZwTVϭR )#Mj;|C-9cڸ)ǻ61Jha )RL?nlOLڸf_?Tf V !BU%~/߸W] 4: XGOn_w<>:~Iw[{¦ 逝n|ո;I Cio.@_k{{Hkl cF#{YL{nWmeleΣy?j] ŪO~ۧvw. yo}vv^ y"ިň~>soO^z_g_9eiݸڹwf䉇Q{ߝ=Z&sy֑VO{%kڰz5H:c{ߞr킯9*Xgm~C⺔unZb9Z]W[qFiӛMqY%Gw5j VilfvNzI^PL cY׭R7;$,e,uKZ,.dmwlm'/>B !BUsp۾/GO`3Kn3q]oPV]xKoX8q1foyMgVu xw}Gy/,<m[a{I܉eLVJ} LhJ$:<5|ʡA7BrZ :zg@_X3U sÊ֍Yoo~ |R}C )Y~ЋPZLn|Ê5H2WHzrs'P> AMiDnGv`?|UO)|Լs+nm\\э(r;9cgX-i2tfL ?s=,hM#$^.28ϕ4w DnTσm7|X"4͘rg$UʇJvgVm!$O|(*= h1^.*8Mc%?n_!BZ_f&ӗ (uq~x 1~l[wk q>3(Xm8V}5?QM[\Bfu*Is 9_iD"De@t -M.l -0`IkyB.!+&`dP% 1`?Eߞɉkֽc4mdliߏJY-/E#uxp7ӷ6`@Б0R`\m fr9)]xxn?115e FM=O=׺>" zm:=nw]O [b̎fHVQI뉋=4bĒ| p~SFنxh;BS=!B_y+>SFEb0 V šGra' њZ|v,bvљ=/9yO킯)uو8}Lr , }MzE8|Ī D$6@Z0XKZEAC^8$mB u!KB{㪗9&gv=/xQ u (`4,?@z`nG?0Ҵ/B!_(^S.zu7ݺq+^ ::7b' Am.6s&"]G޻Qyf }F5gblz0 e_n݃LRWHӡ$4Z"ؤ :lj$~c uKZN j"{vYgռe+h|`Q'x}2)^a˜w& <\Sx5-@(-ə&ܑ{_2ՇAĽ ~$WJ{142ic71~i fVvG \r>kL4=.^AM }-ۢ5|v!iԼ4OlI8gP3Gɹ4_h,e|pnT'ʣGaԒ@3+Vy2/EJ|m;6l􎳳}g9$PI}TBK\PaL$4.(״q'ƈ @[ S]R۪$ ߅?Bҹ'! Јܫ7_rK%鴁⽅@5C`lDB!%rȃ#t@i&~qpO(0LY4%6ZTc9Y9s-J1)ըSө>)`la)_rh!] z9PO҂1#dfJ#C;ɋʭ)$@A$k i9/B,?řoO^yJ _^akn>bA,-zo TBfnqܳitή2d}9E*86!cՕNS2/#xuaFD_qs G e̛5*ÂÂ=5#]+r\([,ϝr ZL PP }X.Z2*Ր̵))-'_;/|M-N" ϵjK7ɾ=#(͏+>ZUX ~,qCPJE(/B!(|V穝L8=.eڥk2)qj\7Ͻ'Z1"}VO3|z\PF5O hҺKɗFtmIdbU"f$tpZ:Ny ڒ}'VQTK_yl'נ4|aCG:z/V_X0zw\fwфVY7B oQ?U˛0##C8 /!88>@8*3؅FJ?.8Γ*c‚BJK"M La[iQqTؾ>;𷿾"%2܅^>:"ڴjeYF&VW2)>;Lvխ׌LSh%f *Ugј8!Z> oK//dsA_ڻ_rBChz(( rܭ|=Lӓ5 @-HB!b&-ҵjJZvqm9p7а5%~|dPmg%3Fu^DIZMۛY{6ѱ["921o)@5rȣQld=V ל 0 %0 ёcHl(E6蛂8]2fغ xڐGKU>ΧBP${e2pYˡOX{3ݝe`ڍs4'R=bޙuUU1mѫ<^FMwklIie!m~ΗҔwQѢ<@ײm].}G uyhVR/84ȜuU*Ӽa9rEX51\to/50PՌE]6mOaǥ6m^Ta!A᳆4e^.pwòC=Q$1AgnG 1sڢF0NM8̴bŽ>}PWIVb^Pܵw&ne%˭xIvC[J Mstbou21HltĴSNAvBtjkr"p,49G08jB;>pG`~4!*i;HR1cAӤi}M҆\FB_OڹgE {a i}GǂBYʱJΝ|~^&B!T5!}Veq6&PşԔO͜`EgE9)~W?.3zuY)^1疭VNx{kz<]j窹NntH>k$W 㲜5*RңnN)@C[mW2 c=|lH{E\ 5TcĮ'k$Ĕظ0 Se }]M! 88lV=SUVB~21Ԕ<)_3o?<$-:ٝ]zn(/f,d4/9ɝ'@,. "3'kʔy5czQC~hcdyW ǥ kU|䇟bEɁ7^4qcgN8eh }k#s@dًO\K!^ŷrphӯߌXcdarWnGzve<'-:ع?-?l֙w&5c?i0wz"FmMц\qYkSVSB!_a)F  |>PݍQKS?+lQN4CjV2:|}уC7T%wk8p>r|v&܌Z~w}ݻǚ-K~ah1ӘT4ZV\9RKzi߂iXwm%lC Nlu|=xgƭ }F i8D#!n٭'&_@EmX'l5qJ_{2i*LrlUQ6MZJ+ Y9t1ڎy\CV5TfmKZmܺviMjM;=,ƢS K8uri}1Fmܵ_czWeM׃G!V_ɠ")U=vRX;=c|wO\(8da˦n֟g8 ό]W]=YOX2cjĬX]giC &oآ ? SŽM!Lɬ~ 4&A/->.ڂ4OX^.? : _^6 oOd]=SQɱYblGBk&ֳb C#s&^~sS+1_SoVX|wyԟiqwvV_g;+*#ܮ-wx񸽪@]^Sukmo'(hLS;9M~pfG)V17knfKOvϜ},ci¹#62#>"ƞ=è4yӏۿ|z7J}2/WHM!;.bѦ}ݯ=WTV)lPN QB>"s>WRڡCi9ri}EGK~K[ /ߞ26ΘCA} z q;b`F$(Jb.!@2zu̺iᛄ=Q@kFL:HůnDҗ}g]\ ?ٕv^(Ԑ's}yl]&|2@<3תG֟ϝ=k 3!51mGge M>5(߼oAg.q?j H (IA!PR̶>l^1.d4q]oCs+6J; ڦٯp91]I̚-ʈ;szfrYRbanNSU.6:guqȘt^V/?yUnKR?70ܬA/BΎkު=}~xγOZ l B˵>4o Y1уj<2w2&õٜ}7BOdQωTvQG(9Vo'77r!`9W{';unfUєEؿ|Ą!_`_R&'Edo6i;t\qj{`ngvUͰc?=&$c|N.( @I US(R !UQl$@@ߝzW@:Oc #$C9.8;MJtݹW!ΌIgZHܕu*)ZEV2z;<5\ՍHҰ/"}hζ3G,-$s}/O~;>Zkd@}Ǩλo]hŘ&S%Ӹ}iۃ|}y_˛n;^]u ^ Bf)YS637O̤Ao>KXz\vpܶyOXӷ639ٺzl7l٪&g\GPqX Z.aVuE,ݖ-mQR)k_%ų(2~rVv :RҜv'7ӭk(UI[HW/n^_K^t\w2 |Ըk}aZhKȪߋ iֱ,Ǽ#޳]0{Ċ[9"[3Ϯ{^Ũ?)"\l+ E!/xlhesM#fM,4&~SFنxh;BS=! <bgh_<t8?ڢa(<ЊM]ɣooBI"y^Ъ Uc㵋\yɳ} kIrȤ)A2c<L`CzPɝEiPdH tP$Bs*' Y&|Cԝd_VH ksBKZMzE8|Ī [Sֺ²MMY(^݀HҴ/]BgΙ,UmȨRHokp) eՍ\uͣV}Wy#L"o! OVk.'!B5m֫֍.^VPѹt?"o;v!5aJ==WA{vYgռe+{U=瑛=4Y;cq&:@~g,|"3xO6pI9|Ö9Lx JjZ޻WpA{&?ɦ': +|yc8C/ i{S_rUp/_װO_lRIWB ca/"@V}kޙSv2uC~+bbfLxU~ۆG'1ƿRګauD4O]89U =Ħ1 5_UZgk\CSw "ͧ c@8(TWCyUf@ ^<ʡOO}?EsDQUwھgaC;>Χt;rqqZ߶5v-yB] wv=8I}复:J?IJ ܘuhy:qOQ! wzo-n0r&-Z}C~q* ଌ,o\AzhqvV6@9k%r!Ar!ɍnomrq2'0߸;N43h!cDW@Eb$3Lȱ?AIa c XHp[r[z~\?wN\+kg94c.M'ch|j/j\\%jz\} za)/bw'B;JiQ8ɨN?Tay{yT|qtծnT`WI+> ꪪ@|e?"> ,OjUQnmW>;T]?@4+{A]#&0Ar#yUnYSkqw=N!rA;~US.ᑢ7=U\Ts~?ANԓyn1haNÜV6unzzdI Ƿ̽t YoPZerjb_|Yk`}0GL0UղK`l#ٿr qMUP۷} s")JSS &%p "! ˇuoM >;Hv9#JPMl)S s]%%iiiUԐtUߞFm=c"CFʯP(CNTP(Tm.qqؤeKÏN_}S-}^A0AWiNQ]oHLPs4.X#==dRM dJb4jZ2N$0" @fX}ކ←.l,67׫V7*hNIu R@gƒB-%žK̩׆]nIk4(T[P)@ B;J y% [770d=~a);vRG/[QP>1L~ *Ҵ5O;NnSRȉL08ʝ r@ n9avopm++E4-&}w-ܢ+y|U9|XqinRlZ!fΡ bNY |56g^Cq zó#/r)!U$)vY⇍<:( 1VGziK M<E!(14yJ44E sqa> $D[֡;ncX39ГxUyՌ>v C M7կnT 2nѽcViMO8,B]\bxdi~O6mX-H.șG&:8"Q׷4蕂?f@ 3.@iXm5(K9lǍ33p4M4?=vpn2œǮ߻P[䦇xŗ}N(j`w:ynrNÔ uoi74[q>^{!vw+L|\RM89F;3.]|a`_fk,랩ck>) 1IiU!3;@J VQ,ClDlB9,5ŏc[ȼ')$xq|/8@es.l85_l_`B)$i yVŴ,fX"!k@[42Tu=L=gj_y $/L88?:F%(Wة5]CJB.ny?pcL8hZ'} T|m|m1/e= :>k1ߊ Yr:G,qu3N{ ׮ϑmͨge`$zwGc=uD6n@C(WUvUk4YZ]欛P&ώg,HXUP⾴{Oܭ:'J?P :O^0{TW=ӕVk1>F}j2¹ [l<@7G__oH/3RE꥔kXO Ueo?uibWOg/W,%,(VY^q_/Q?9a@ܳ.Dd}6wj]iVjz)CU ΍ʤ{Po7iWn?w鶡Ź.Gp? UȾpx!R7JG+M⡏Wo|emOg{KIAvqn-/w-řXn5{}mZ8^JiX4Ǖ=~޹cýaeӮf (NTUiB lX$#s_n dUR^aU7!*r"f6@ |$L Tت Ġ!\Kp|V)`.+h]PusjH Gs1\A!-xRU@=zh :wir-T~}'PFf|iPXb-`ಥ- f;3y;:2=㗵{y+(NZgmS+^o0.آmet%r2zhiPX*P^a3Bj6%o)oKNgIɲ>>̃P]ji Q'Y$syP ԅ }%(Hf&GFĶۏg f N<enh{ʲ[[qWXnPMgq#Q0o-,ըO0_䝆/ԗ԰a80op]gXثDdhk }bѯV]Ft4i6ۄsq[lۉҤRcE(E5Aeh(m iSiU&]:lY[^5TM >VT־;~yͧ Ho<)]oa`}_;dʤs#ȳksR9EՈ]up7nyI˫nXkLΞN`SwGLJgh-ƀqPH.jPuPm6WQ @ S&*Ki`(P%h Z <󩎫h. ! _a] &C=)ciZdXZdث 4x8-oۚv;}ۼ}dVd=/3&hgOo{kf\ni29) \zJ:Ht-g6wfq\>wsWydcHSr 96;()aL$ wϙ/^y&ȼ 66/,"Oaɨ{69c|J,B4 ~>5\VF7 = 8;KK$U354/Wkn^Xnʋ;دFyVQ ܘuhy/ e@F&'"[L7^fS)zF# ;d]5$-[K0b*u!+X_>~/sovxC~L֯DTdE䠏+)B7W}z꛾?eo/{eiX3@ HMC`2\g I3l+~Y1EW̩ |ډjQsA#sr85sֻgF$@%Kt kK0!1+R4j_Z) ["22#450 @arXXR0X(ERUyRO#--N#w`"CFʯP(ÒTP((Ƴnea!a%l\t6i&*W>& Pns-(U`\KjXO 6;34S{|kZ_Ugvp~S]we|/5\! 8c潫-‰\ 8c!ae*F (b#!?p~]K?š^2|)6 bu [6UK}S~PwXA 5PŋlMs_@PWwI t۽dᮑvoڅOj;xX.='95())A"MqM  =ۻܒ*UFMfTUV@ :S&*!>g9nFGn/@vYM6h 92FCl>i!1xݺ6:,q)\W?ffLWx:yqDOشgs$ ak]ڪ顱E 6i=dQ_0|{mJS 9iaF^θSv=y/8k<1Rr\VncX39Гx;Gl\8pH!KQ"4*|)6 bjue93dZGd1FyRpW]ty@7޿@T5u)?A5&,R'W3lܐ_#{ߪҀmXPK ,2͏ɦ _)aUCqfd@ T ?c}y$ &TmAf06w/KOTeaTG M9>KPvrϙyB\0(C5?le |\ QJ幈LJ \m"1 Hɳ*1ò  ݼ WpIyɟ ;ۡ+Z}HiZM7GN|lMZ뤯m2m3u^GY^g:[yxb6KYrq-B.eZ']w-*MWgZ9Ge-(;Qt{BVۯb%>PJIc+ѰT ۏ]2\_L&>38U(EcK*NL01nkwr+7yMœExgCuM4$F;^92"nڝ{@r(IӔ b3|Gx~s!\3YURm(* =mRʌN~u b^zy}C?pB*Ɋ}UA5T@iXm5(K9lǍ P|9IYuVpHB6- Pj@7@ @ 2}2~Bb i?p*"ۑUmn1߅Yhb @ j>e@ ~N%2JQZ?^-#v!$F_#2mHG,dp׳,1 @ _5$L $L3HKJ3bz~. @ 1{l惣Mg@ @ @ @ @ @ @ @ @ @ T=ksmb @?@`d޳W#D,A @ *A@[JԍLƟ =ﻫtaOMnJzY!E^_ݔjo]i w7;6Է;y]@ yxT3罫W\[0Z߭80 t|9͞ S>UDU0XXF;nkmgY oَ߱fa9; bʾYW#UJz?e;ЗSma[Z_tr< }6?W* ,CuMFm95kLuiI[8*KhHRPׯ\N]t%&+M?!Gy\4Dt4 ֍56kTv io_ڽw6~w'%=꣬0?6M~KXqli׌#Nļ-a s&D͍ ~zuL3i@09m׎yDypr<j<թy뿟v1_q`y_A*tq^<7'K=|7L嫯KE4L,j66CاVBJ]@8<ܱD\ϫiܴEɔߩnooȗ&ʿp5!v#c+eѹ3vItS)|M{X0uH{ku&/-*{=SwU6ӭ> Cwpa=Cz.TZ7}+␚ߩO!qu\@ ?B^$5MBaM<:yFKRoӪ6* K/ekT .WrLX'͉ [5?/wEkcߵ|u Ala/.GwNB( R@2Z q$ʽD|-&(Vl" :b^.%xp9ttُ\MhG Z4CS潧͞*H~۷y-zZ:64Wm莳+e::mhۡ5SZ\3M*cO=\ٸ.(q M8۞FDy8bjHA~:2)5 OԶ(98σOAvR[u'/= {ziT86D.Ҝ^3 KK}M<';v^(GM?2bXUW6x $}~ S P kѮ-P7 i72pn ,1{Mx{3@5\~W ky{xG#Tqgi[pVe^k7xy}zV] θ}J[cmc<#")#I o8$qBlNqżN1_w+ -4ljeκ}m %j(߫{|dAU]%K.W)/AGwkeɲO2l&.)FA l8ǾjaY3a :M?{dW[#!ȲC[}Y>J_qo ^^ ieZ;PT&YZy@.{ PkٵY:'eThg什߽){,%,(]4yxSzR)|!m-_7,~ߘTS^A0n廖?4yMM ͥ|2(z@:n5p/Gph %HMg]c=݃t iL+ v/Su6lFmtC'R+x:1@  ^=E_ Hʹ-^%V&{GZJNݯ?Q&En5{}mZ8^JiX4Ǖ'eԙ|c:tG.i&7tԸ@΍3 s""&!.k>5r9''x{ׅ,">62XŊ ҿ(ЙgbruVq#;Бןa%ʫKDE~Gҝu"/\]Tb˫JE285K5,;t-wym̞cC)g0[=䕐|Є c[/d D ɜ@o?|L|iVL)d lr`d޷:9X>* 8o]UbX uiπ8@se)-JK)/c>1"yu>42Ein\`mFMZ8rnj FGeҽ lrt [{ vK e/u9T\g wc-Q &*-Rzg~*&tʼkPRBWt:} WٷX`K )x) @ϑױ;$]eR@t6O͕ Á'nsxcOGD>J@ _%rʔ΄VƧ]@ĝ GΝ!>=n?+?skҼ 5+BJKu!KA9 4IiM\~ۛhpBaKwNYgxm?~)ho(NOr/OL(Iɓcy^RLlLXkhZ[ڴ6D&|-X|$2r,¥5S@Z= K%Y#Dr0Mu^Cb0Au~XkY%b PA@FDWXy K(R`ಥ- 㱑_XKr4w\C_i'ߔbu%r2zhiP[?FWly-T~}'P*z>- wwIlB6p8) Y_[r^OfǙSS@X Ł$ڽ3Bz}&9GiH:#X'OT11,@BE^VlJ YD{>*sEY˩3ڡₘ7as>$qFWk]`"ÁӇ6<|#_DSeֺn~}RJYP!?xjgu4JŘ$iZ J/)!>]M/qVTHXʒjۑRԥa eķ"q Iuɳ7Fvv+KΫ#@:trZxH~lBWq &4i3o^U$8W|)t{?=rVѦc7„' GںZ{OOΌ YȑXS\j^@v,[uz߼e iVbh!V0bqFS3lZ4z~xX2@M><Ͷ: ̓Mln4؃ ׳X;jɐrEg)Bv~ wuyF% ʯG@`eoX.YXہK/, Inv ~(3<~e[ut$]6>z,5 4+HO-}!RpN}H?C}z[n0rjb2+jbė5Vj4Z`ٶR,M K {"AF>ޗ^yJ)Fr9Ä0& @5<.N ۶ݎ~߿6o5(rP)dcJ*i`Qݎ1 A5Naj$_QXJqrH㚙zf*u^[z~\oj]]5[/^7Ale^XƬC;W˯==p88T/,}`]d` "jGxp@ @2˒cJ(*<+-JzpVFJWaFb.3 t۽dᮑvoPa˦j1q~sJ/9tmg"CFe`, z,))A"Mqȳnea!aHby#PoJ>NW ,0akd3I4?E`d`.K֪*&T4AŐ[BR=5-xЯ~ "^YP`6u˹ny7+w_I\t͠( 2<\$6ZD' T^B @n4yid{l#nN,r$o"uڏq1,ĕ.)~f+yJ|bv\qٯoPQMu3ٚgf}̾2&,R'W3lܐ_#~#]kr{Ũ[y^JyIR"naDA]42܏=8}˺#)NM4͋\bxdi~O6mX-H g cWE醂tz䈩3 M!Ǘݚ!>g9nFGn/@ ڙgefjrO1֦${׵:( 1VGziK J qV2XK٬PoB۶۸n20fF]NѶ.4-&sO=fkh9nAoxr6- -M:AZ?_Ksb 9ȸSv=y/8kћ顱E 6i=dQ_0Pj"!+z˰|H.53xf1/K(E;NnSRȉL08ʝ Y> ixhJdڡm"hK;HO(ދ!2hn)V;*٫|NlqlȮ/| yOZɹEW;-WhOЛʦ±{x4 \‚!* 2#Ny6)4;6 qk4;go…d&0@ _r|vZϠiѪ0)S:thn%)+xffԬTu[ГWzmm̚ #ۥ^K_eN Co[ZРN+ƚhAq^re;n-wvO2cӸ_4´^^J̜ۧ7s4(۱utoیyy.s@VYVP=J_{IS6ݸY%[Lk.E!^ <M(I"%;H:¦oFR o>@ @ Bxɀ' )@ ?9Č@ glmId|nmVx@ S&@}a%`1N=p?؅@ @ yEquq?3eiK)b7Vl1jĒ1{5&vƂ RD#wvfh`={9̝ BP( BP( BP( BP( BP( BP( BP( BP( BP( BP(007Pԕ58cȦY[s;5BP( uʮڴw( Be΍ iGP(L{HNfh//(v$Lm0V}83ݖkoY V؈{.gn2}4:Q 㵹fW] cany?|x̡UCԦR(zz6̼#`| tXpK])@] k`1`V|n L v5nSf wjSD#?[6H%E\W~eZd&vl:9[ qh@;\ŰcBxDe6Qh𭴑ͫ)wʀv 63ʾͮ.3'|֩.ٽ7(JlTU@æw;owwF\Z~l~i"u+97un:wod̤fO2VSG Uis&h[DHxw}mXV2!% {)U+!W*%,c5VR/Xڈтa@5 mK:zL x[үD)LUx/Ȍ,ԢP(/SfzO+vd-0~ Xc``` @,Ov @`vׄu%ٵd["k4eF/ Ag8_(9Htv}ʁ,m|;}9Z~juc//5)W 1ic BEWOeSΡ+D^[S9`:S~XsQGZwЏ\q E\vk tVW$qVf,RՍ5ݾoU.E/^U8dtζ37"&T$j Оi!7\M] Ʀ¯#ǝ#Xr-`?e Ť[]7z^1$'#)O7wXY usU϶\_nwx` 4Ԩ;TM,گuYgRI(ZEodG“ sI ]unh.CnjlX?oP|PHiSzY3볆6ZbV'm=U&=XWLzrmMgBTORzxu[ARNƣ]Z0G^^ZxTzB|@9e֡]ʭuޅk(8$̀<1p x݁``fl>p .-% ePBl蘙ёBŢLwu>ߢ'wE'huHRi$$ܞ|HExZju~`hȻ7GB+16ǧdvwbS„~@Ka}خvn|7GbSjbbTҴCf:s q3**qj[6z~ڕW1xןƳMX*aՍܴ5*9ʍdm:LP).vNjW*tMXo> 4\sqlΎ6{P 0jҖ<7l˩Z}{ןto!)ꩡfՍzjɜSn E#GXt=KU /\$m t2e^VFDFe-~<$@y\ɱZ_ XlaQ)a>ϒhnC$F0c$|%-Zc|b"6#7FNV!2%ig'ɐ7bԳs|DMye瞑ʳw(G͛euH D1Fulg=S>r}k܎auMl(#W+=@|qߥc:ۂDuhJ7׋ <~e;W;R'G7o d%s}ORaeG{]3mQ-_C"M9&@ۮMi,NySge4yOEY2_޳B\J.cx˂rÆm~̫6e+RmĴa+Ó6aМ}3gaүO@S(J-2רw/k}iJR[{V@$R@QAf7Its@Pa%Z@ ]ͺ8C*+bNhg׍‛5< yM H 9eHJMLKiPƋQ y`ś 1 ~wZ63;ܢ Ho'Katiw˷3~{=1T(X>}_1,<|5mw,G7nƘډ읿vnU͐4/)ڕZg}=k{p]#~8!=4<UPa$ʌpzz w|bXXjk}RuӤCVE2*~̨6a^?T 5"0QV BC*Lw=| !8vyrSVpKt)70H]ߵZ1ciSHU(]bJؓgwe}mm BZ^{k״ue?RNkX  `˫X%@GPc`ˁ߁5ð-r\1k_nEL#z")2÷Nhޢq-YJub viZO^1 ѧfԡSO'P [c^{LMu[g.{< ~0z t!:\qYRuUMfjkp鄈:>ђJ ֚cjmIQ3ʿRk-AFGՈQqFM%DwK9c n-n۝8쫬&5wFNх#z dTOwb+^ϥ&lvXӥj$'yH - IDAT" [Qw uf8i//uX-4mAMy"ƂcI:k3==opbN+dԩ! r\͛hv_}Co?MߪK?8C=N1/k%|? VK_zXSK0lP}˳w;4ؽEoj*ЬF׃p]Zη| Ueڨak4nZQ|+Wz\w;3QQJ#!`E,ÂBP(]ҼO˄n~J/ZP`,J>,] K@]xH,S PN5Nsg] ݖNX}+Q`cgA1/̝PӔ:I hiedJ{o&Ӗy^_e er:??oiÓ{Xy%N|j";˽/m:N61نS9@|W(Cuڱ q #]bjJurpBСh2HAs2&oݷ/.:K0̂ٿ2QfL`E2u'(Huiݜ_O#'>n!xo=!"-KMh(H˚ǁnFYBC6*,c9|ֹuYҼufm-A/xUb ]9=SSƾPHy|ű0cLڿ_?58PZ eN\Hh|6y' \%\*ȂĔQџh" .gPJQ!/l- >|$s,"}UB-פs"+fqSu쨧y{=~]9Q;'r|@YF/##J"cOζC{ es!= v m:~:z 0zze/d9z!wx^Sj僟*;ד-\oj2ĴT"1X aIJE w4PILV9BC6<<:s%῀p ` hI@skr\q*N^(I&DleG4I{glܧ끫ϒئu!FyMõN`؃t %&T8꼔Ǭ'h1F9;j d&`YFCVZ!95*s!m>tbgq٢UA[ğ >?o̢i?NL}'zu"/*tud,,ݛ/Hut4?!~/4Z<,wLێ]o??5f6' PaE[%F$Anrq/=k@y0VhH 5U/#UZkY=k\ c9 }3c5bm7\p)fK3HE?Fy엄9t |\"H&e6!RTf4YφK"|KzÞmMLN PE$#\!5 fKe=9B19жg8dW$$!I> QvU>qߞnD=zIᵌ3O܋8a-uienDQG']Mk7Sg Y&fȴR:6$Fܚ}~ZTBǞj>XqoMؘ=6nb=W ofXaod?[yٴ#~33EV\>zyuKc%V5 fKV؋Dnؐ_$ַBᢊA)_CUWaڨ@jQg_ׄ-R/ϺHTK {e)I#d^H})Q;BoH` {HOc~xPXiH) I%S@O$|Q(0kEs0Jċ1 597.v~ه*u o˔ qӦFbvBNV$y>_h !+SИks#c{o<_lbv7Z:z '}Ev.@>;_*uE$цӓ>|)\af K9Duoj2;|E n4-1?#酏[D.@/.h޸kk>Cѓ2jϿ9,|󰂄k.V1(*4TZӦ)7jH+hs~=v.Z`☕kyY9TP( ?fenLoP( BP(Qwdn v!c3s]Ol-5YQ{xmAg3BP5ꪈ>KP( BP(}taM,`r#Ui#F%u?; =r? k BOQNY˱OWiJBP( BPk҆?N*2 v='f!$][>yDگ>̤i[3g"Q;O1WoFUjQ[ܕUY~;goݜ`WT #F&c CWSP( ۤXzO+l{D̊ KBT,zY@,` 4_VX@+)X< |ń 0zkdY?]]K%6NS\fj$|>BJtp#AǙk'Z6Y'3kخ%_V'0&2\rVQ1R-]{ç2 u`)Ѓk/Fփw׭4~ֆG1udk%n`kqHJݓ[]?HhןǶ)״W:V,|')_Dʯ4sŴ^6f ]Me u3^XyHg.I:y w͛;gSC >'#)O7֋2ʂ0xNAV?~3{H{l\ciCqDuzY3볆6ZbV'm=Z1}2}hfvbRî=NM3"0p{$z`{T@C@V g(j9_#t8&"9*}g! 2RmǒTCnƍH>^s%IWvTwa>[;X0!l!Νpum2{ݥc{G(4َI;biqFǷ"Cîwnq')@u *a*_fmfk7}ʑ;([$__C5K`h1ulc#TZb:k@ۢs/WDzzJiQO۸LHfC٫]ӺFz$7{# ֤Ä.:74!756,vτjԊT ]F>~꾬ےɫ*QWvb-[ۑ߯:||8ʫW ~T#/_g?ЄŘBD JmkcڸJ4O+hzgߊՑx1BK&@Ρ=+BnaRhL9)#P$ƹ On؍k؅10cH:Ip]5852ed1>mXRCxZpzȏ# ŵ|5l2 ĨsB?jf˵*j5>`judy/J%%AjRBw$r}k܎auMl(#'!'ݱE|2*sgW9jT4| m6;mOgD>yfs{F*Ϻp5o9#]N'ԞSq?I yc ̀}@] [Jʨr)13#cE%h03}N}>\yo1 3^!.\/IH =RXVSC,4P0ѐw֛EaqG0jҖ<7l˩Z}{ןto!):r J,^yOB:Ry6Qꔚj /$"/yh5$mƀQᅫ2mTf E ؿ8uH4]g w`_HnDIJ>ySq["bI íwP<Ө{t^ =yvGYPp_+YV˭0hS~ǫ i6K#ѩ/*yB+Ԡ9];;BdpFȸ4{SYaZtdA(3b#[B0@~y IDAT, "X %RQazHJLl` AvJLlHA:{_ڶxϕ}_"s*pm;ڜ qb#A^or5=ܿi}Y͛h콪dp9)cnʠq,J@0H\w7`c@76&`0;^e0II@c`!pƔrv7AR[ZE3J Pn^) :pyvԴ @W!a:rNWi//I:fSX1&׵PI @$agEcIԋrj@Φ1-c,i O L@_K~Ot&Z ^]ZK荱d%$&UT4rB( өb^xtW֊\uG朽C./,j[QY@^qqH,K>BP(W_kާe 7R;BD@l(RYQ^M,Te+-eK=I?3iO͟QFN)C '\dB%E)MHW@D0`0 #<`!#̸Zˡ X|Xd @(]sKSruCVzѡ*Dۤot-_= Zy)7dD7NS&krx<2IM} ? LRP_LGq^N[sBj0ZZZŧ$]cmY Md$5uuy?@33 +gJ;ke&6-yFG.cQ51USC\]63]vZW0Nz^)vOc%G.)ԟ.sҙ7,+y* bb\"PTk#e-*2X߰un] d ;pu18{qyԨMo9թPݨ]$4_7,}aŤ7>jUk{>W$flvli\{Zr#:߇aS*r$ic)>1m8zՏ$j"t\<jDrt^xt]y+ZW{dNћ_ oyv1S4+Tc3BP( LA%i,ڵ'+$> Ww< Tq.6ʠVuo;bYǴ-Lo *-!= v m:~:FGW^FfG=}둷<^ALKI%r#5*4,)hB ? Th2<2/2&TLW$L&+#-_T4R e<hր#P<@g` @<$@Zˌ1uѕ%SV2P!~VYwoz8Wa#WIRhw1CUQqQZ;Q˱/^Hϱss&׿k䗱^sǶHǥDr<d D'2YyX2CZ(C[~C1tЈFx17#VƠn=˜E@L!Ѩ׶HַccҪzm 0zzz&\1f|BB|^V⚌I,[0c𰵛 ,vYAՌ·W%8PZP:\J@2aa҈!bdAbʔ"}UB-פs`LRB[ +fqӲ<<(luOAKd yJZ#/9%vIWf <y)fUPaܐ!1bV.D+ϗճU˭ܱs=UۊʷB,T BPj:,mS+nO_~ok;:Z(1Bb۾cvM]Kal'799J+TSy5K͸<<^f(5Z61FC1 IS9TΤf+^_Op÷piG<ff,*!WՐ(N S[^u%nD=zIᵌ3O{u\V؋Dnؐ_$/E L(A ,$P  7P$@skr\q*N^(I&DleGTI{glܧ끫ϒئuA5n :A a׶%&T8|Ǭ'h1F9;&6i d&`YFCVZ!95RtjUb`Dr-jw|?9;-OM-l::ioֻg3{SP˞{,d>FWgMNbTg*IazlDBAI~9~ayG`vĴ_| @?7fѴ'a=`:ǗzUy:6$Fܚ}~ Q- |Ͼ :64רmH1t^3sRaXUA%7 !j]rP9*mF-A*]FN I6퇏m-l WTM9tⳡÒ1mHǜ%p-ȚXG-0̫L'gZ(&GB FdۤcI[F ]Bdґ#ڌU`wұ2c ŤTAB}%-y!68:$ҕ<ceEY}왴qIy3s|>EŶvͺOҲj7tsv77BP(S$7>$q疌I5u| Gk3y1n|#<}1o[H oUzzi;v&3^zY|h7eGs/=;PuF0x7ÿ>MKHz[Q`UD)oՒVZѾ~s+L7mڈj-f'?:d0No .< !Ě7³+U'fEHk/oI@] 8 .rcQ 03 &cҼzrgUؤo>p02}i; \^P%lK8"k7C㜪kYrC*|kQWvi혅cl\aztݭ$jU>ޗ%I#ֳ8 7B &?5"q "?^|X2,"gPK3H=?ubLBQ?!|/+m") $yig)\îl. ?N AoK9{pzJuQ+BӼ/3VϊV)2/{whL>w]03ϥO`*ӧP.(_5b>u!MMP( !a_Tl^{jЮP(;s>#[FBBP( ?C5ꪈ>C|Gd) Ba6zN9\OCI |k_( BP( ?4RL_KP( BP( BP( BP( BP( BP( BP( BP( B~+g! h5rzt`) BP(Ju#k6d֒/q5T=k4cs'} BfuʮU10qsz>tЪ ob.?=5޾|oIckMfo׼t~S(s78ăk'6|U(B]h6b,*|ֲs΁Iҹ7-tnlX+|0-h8p:2}wƋZjB|[|os5̿SWφ}>'ࣷgw/lS=j0gRDZeέLԕj`RYs/Y:D (57_Wv@16n~S FM eYSj%tsZfE%obie>]Rr鋎Zo:?9*P^FQׄЕK:$_M#Yː7q|.+]F UErAn"SL ádPY=ْ&K5K^۩>mldً3Ўpg4=]#:6 !NW4&}ңE;xfV_N6|Kma@Xm(aB:edP1o/J*~7z ZIw:>em10D.L-栕K{<R&ER‚""\¬gOGO9"pNƄG ne7l'^(W^ 'mX=ƚ wZ˸I/U G-Xl`0+}'_@{IV kx M?kDuߋ,Fs)7[9TW'̎ zy{NfInbeJ,^Yl@QVbTӱ-'+wʮSN~m|LxK@uk?P0USIC U)e2P.{!M}0.ԧW d? LEhCI<PQ^ziNyZLx~ۭdXAOrTϼ3ξw jcEdm,K<r^;[ ՘h{|JKORQ4|'}J QnRd..d"522Rѿ裿[My6T{{%%5DDF̢e0%*2CR NnՄDE;?2po( <&w`{m\=]xpu"IuT)1U?npX+sne=.qH,n%KRE֕%OPil6=Ft|  ぉc[<BK56. )C\w;)~*g(*9;pk:ssnZf[>b-S%52G֔ A֦o|X:Q[:up!i@]jz cMӶcov|owk^L@IF Hٴsf⚧`eŧO̶=[ e#6[Ff#ٝ<5g~"M/ik#Cyĭh__I,*?^=@b^Wɠ5̊ PjIh*٥Mu&'#d{ ΀;v.JИ 8nsb362:ՂL쥤#(yh3#WuG󮽴uzXiCEEi``I,BZ-Gڭ޶(PH˘}9eR|UtZy$AYnK3I<6y IDATن4U&Vf`eiBddOa7P"Fpɉ  kNT鿦:5^; iLv/P _l4o&&&} ƝJP$#x@}8F9z4c˝\:xzA}*4Ի-xԧ0\&b^h+N" Eka9=+RmN(|Dp+,hw7v@-J,!S_8*TlF{bA;;lo}GLD۰^Mː%7lJɶMq&7Nq>5#շthE@6OHȌ*Aa"qI^ɉ$KsT%w`̹{!eJa,+Kl¥dӲl<&?'B␠pfBٍw}@zwZ(ʭb9he/S%52GkdA3UZ$fm ;]:n $mi˃nU΀YLBcEtk(FE [wWE !SdgVWM`8ʼܧn.o߸+~܇,2L 30=J>Lr𗿮vd_~,$"”ԍPrKXΥ{'BgP0[ FaL)}LX1>:GG @tYQQ]Ӡ'>ڃM36z6vލTndiX,˸XfC[>X'#49-]$")CO"䎺ԭ!lk_ZP^Mbdȕlw[#n<^eLճT% s̻gK''$3lb]<7'baR,RDreT{JKJZJPr$,Iҵ,fLv;R71@+W`ccdUyo'IIKu2:k*ٗ9Ty4zqs Nd8rӶQ?n|mO#N;=ΦgcPQRZ6Y^㼼-Zn⎢@L2S*'!.+xa}0&RQb\Eم4JUz5?ddB~O{銶>KLT1SU=ibBZH$,qtV7^"K3z j >ߋd{kRCaK!FHװ6+xk.:rFz9!nz*ZN HCS&av/(8m'n9p|xoe% hR!]]+ټaS%{[b l${,(YkErH7u)^_3a?n5ps;<ףÎW<&+rvg5"Ծv 4lbHl}zYKGH3fdJrAWD_< ?a cGOkq*S\):l;vSn'׃>s$$dwבOmdh_6.=&щ8JeↄRDbeέLmOM}wIȽJTCOSJ%ED fC]\Um|=ؒ((`߫:)n^yI,M}#@e(o[#o<,yqۥ<ȴAW-9z/eUmդ 5NaH*z M K;RƔ|U'5%D1NFi1屜/[pP]Au}ϭ C n{v5Nfz& t~Z*0Y%ETPHQ%R*@]*;)@I6&@SpW-C D3I^}?Ȉh;E|HН>h9NՒLajDhjDxStݛ) I"Y3#ZuRQEUUYʒԏwom{zQ ]ƻ2qX\`v]R :-9QREPZO,^ɦ .ZqE4DP ifS?huZ@5ɎcO)}y=ZZjU>۵PL/6![%qqdiؖC%e6>ܒK> ,p؞ ^Ky^k4Q҇\QN H۹" :L!ɵ>fK|qS8|5&VW3bKʜcZ[Rb8d/n%K(J$,q IE`5\h, ݗf$%f\1]12U3ې\,)ݜYjQJ;[w~Ǫ ]c&]O(tGWhRPQC+}~Ylv,kDcOF^qTz)Hw<s{<";y9N4f !䶳ן o"EpȪV{~_@_A H͈Ba.@сn KTYyLf$D٠Ԍl1߿ >-R[Gvȼps~0-H|IS}3p '^~UVdn9EF 6cRbBta_mk񾍢sy ;n˃mŨH2Nf6DOaOfYw54*BjtrCKK7u71yf~yI:דxI +QJ&Ə0AtGTJ,NgOٹL+}%JLE#&֡Т}w1p3lD~:=!,@z<+kv)p,ʜV֎ԍb)ŭx W)b#%!d% KCФq6tK.^rY\5;pLR,)ܜY:2Ur/s}};}VUIa ֡sof( 6L1Pܤ9N*pH6>5f;kgn:22C\,A~Q{hM'R(#afP"T T'%"OE@(+_!cb itBjGHU#D2b.q ۃ*b{j140Cz: fߊB2e!RQkfIfFdIvB',f,Ln Sc"h`>p 59I!^痜X.!~aZޚsި{v+\6yǥX+ ,WKO>rcYoӯ/dEmܴu+S-6ϑev=~YLS&ϟ9|ֶ ʨ8+Ӄ?;Gq)tWϞ Qq~NZ{4ᙌ ֮lO@ӴlGptX)׶_x!_+{zn& uďKULY3DW,ˉq;X̼ k/Fx&B&Uǰw^(Ly]/c$ ˼My-,ՠ4?.  LvBQJ>@($ކLgs,j$S+l;a ?)ϛ`(.}-S(, ۱$e6>ܒK S 3.<5,/-YLpkڕ߈TЁafŅ'~<*'1ig~~qܚGN+KK-꣕(;9"I5Ps|o˭i}̃>LD$J&U%=7{6XJʜ[Z+R'b8%^,+KlTܲ lꁋ52b^y_q$g$))ܜ:ɛ$7Վ7x_ֲֿ'}hBM&p |g!_2宷q?+1 S '^ws =/lQɜ۞IДbׁ}9~O]c]ӓwAyV~n jUڍ}!Y$%{!ϞLXӎ*0K ^w~yc}meQNB؇Ϟ}^Xk՗2j0ԳM] ⧫{rr ]nqpC e)+Ȉ|x% 0DcC޵+EcAKW嚜uk_k]:KrE9__qV)k$UF76t")-'^5khhM {vAĖ뇛K27 ޺fp˚_>Le\/7[?,ଁ`ԃfrS^ݟl%dG~h4͡?_d d8l17kQN:/!e`+iџPUm[5GyvKRz"Q}8wjɽq 34ҶSI%jMg.Xlr)(?ۨW7vxzo߼kD,D폭m|v20u٪S Ƭx*od@Ӧ}59 &6dqMh68eܩ}nUED>rceن1"`2Qɼa\X#*2sA'G('+l͉f]0np )lh1ia۟iiK՜ܺInA IDATsD)2IO(Dމ^'dk\s')Ia.,Blw;d$3|F .G9~=+vrI<*V(&?b_]HQo(YYK7(F"j,̕O_t?$[[-ʩ!Jge^%(v^ql߰ ;!̆/\g6vG1kɲW )|i(.DkԒC]vRE) S<-_ SdVݿ{fLrj|N Fn}744U\TA %JV:9mڔS Z1L @0^դY[j s$u>xV=tMڥ>||7^}\_=hנBH)t}N}<ܜojQq./sw_}k;gҠ HoO1SW_/@wǧ6nUڌ[/]}=Ҹ, sv^qz-ik7p}~Z29QGw\~✶xskffqCHbċއ*u<'9܅6un+~6}/24!oY;z׭߷Z}xu|CȞÎ%[~]u? UUa rz,i+_*$D'o<};W ;׬{,=v o__GoU`Yِ"{?zE th:dn>:?|y_S +`j#Qup/m3o7G5`MuV/Qo~{X,62}#y[OWYmw>3J>Sx=xbV1Չ$I(a=/6D5Q%!땹V}w[T)lh_e ?VJOlJƧǞO״ڭzrա~_'矿GQف['Ŗ듛2g7`1n77|2V m}rbȾ# (- ̐0e;V:D< 2kQLyFI":Q]P h1Q$:*>6Q=UWqY8$(ja&Jw{#eÎ66]Ɉ Fxp|0И 8nsb362:ՂLu>m1ujh޵nza'9 @\JgBXy$oӮ.~l4nށ٣\g Ŗ~*Нfةǣ3JtI4J'؈;l=gw֜=O3Vˑv+9@2fr_}q_U%1*V8: :xP7Lp#,F=C&Vf`eiBd: w ;\p BfLNTdi=hX7wJ5r^lv@Ә6_"D1 &$ h8LLB'L;3H/6juEd%B/wsudPN):Pryޮ`84*yg(cXi۱ZO;ۻK/}@J(;qzږW8pTiͲY5OOԙm{ȷ=J,!S_8*TlF{bA;;lo}GLD-!4 ܮo 5ƍc˕mu-Mo|4½oQ%iBGl>UE)2 _┓IPÖd݀*9ōըE__EB*-БzGz֡=z GXUJn|贸a} gҾndً3w}@zwZ(ʭbꍛK2g7WV).ꨦdTZ?۱AkTυxMkMY\[ UPVS2ي ڏ%Jq%%Ɣ͔yUEwM_f_ j3YtJY@@Pʈvw1 0hl/{@=^ڵz"ZWLZ^HK[]8|sԷihjS?^2)}\ IV$%Ɂ.ea.+{u׺taZl!)^{Nr*6 58-chQ Mϝ=})'JrL(oHba{;vG_-py­j3`o!XQd [wWE28nm;-_3dcƍjʼnPuh>uuyxƝ'^ɥ3m,T0 S+/CI@䫾Lr𗿮[d_~,$"”ԍPrKXΥ{'BgP0[ FaL)}LX1>:GG @tYQQ]Ӡ'>BYv|lf&FT~yӌ<8c8ͳ]#6w#`7O2wp܁?b ,b Ooc8/洼Owwsؒ <8g? .;VJcRPD5՘(!Z:l $гv>>j#CgFDPqc)*iz zd|^y tdm\,° _Dl84UcܨVT}I8X[ JRX0')64{m7Tw|=x{W>l:̹UIk9%6t@%YUuRRv=psZHKN.ǭW{({w/^n]U_s3*0^Ƕ6k F>^lQ!lS ݇ںN2nQH% '6w_tL-:z&-T_@>r7&N˨yI; 3\ 4SLD~ggsz#BSM:eɑ<&!rvgywBvP}adW>䫶#~qz".׼m+e5}v|)'  ?O6=Yƕ)y6>bT3 9ܮbfȔ5E5QN=}_9={{laA >e8#YzMEn&''!!KV|JQNF\|1۸d(G'(4Um`^Nh/C; W)pmzZU4hPzi>-h1t/hS^uEIqN\Le %smw\)gn"Pi@}sg6m 2yL) E J4Y>2Ev/q)[xm#-ffUt"FADq􂶶'gi9nMl}`q5٦/Uzޢ2JS>^6.oRDfF5|IEUUE$陌2ide~򅸽@B >(1($PU!}ʴqj`oM2P&h Jr+~hi]iqhGV4:y`[T";7$ % )9H_z_EC n{v5N!ԹT]7~Q>rrz ĝ"+"&n-ŠޙtsdMzy,'ELig\Xtoÿ$#KKÝkvz׮{6jz:jٴ\7`JR?>޽EϳCEQB!5d3@%1 Z[k rV*FT)Ty92m.LVu~>K皩ћ-"0^F0%Cst&6iD+۾_f$M.giWi _ڻq:SU E{Y?|VmQ?٬{jj@Q@YRh(JYh:.¼on|~4_dQZR uuu"F:j*SΖD` 048V ͋y[+F\<~1VR)#uMY mN}Ǚt1~%ebܡe_^xtU,qCZHN$AgX>kH|Y/HR<-c(U?&ΥxU Uty: 5hq,zM)}ù= T\>kB1)[pl EaQ-6˸XfC-I鵴j P!c{*DZʜC؉>dQN0'L?~{ɲ1O]d{׆r%AhEseEEdt>4V~Un:y ǙDꪲfCVT}u%WHǞ~,H!UHISݲ/1 s}USjf5v%)YRZ[Tݻt> dcsS !yk "ľMREQQ՟4:нrHs[+ o}};#h $ |> jA*oxT*((F= B1B(̭I䵛ag^I03++S\P! vƮM`Jo{3zM̍ MZ[7o KVhYM0-$&T:9 LJ.y_|J'Z7Qr@:Υw㷮M^ vS[Ƕ;4^jVNE"Juk Z \\ &|mɋg`b sa~L|dJEtD2݇:PdPNZ4bb*"kYhѾ|FM ?rOd}&Eh[ϙCzezMn8EgL<3o3)%]S\[2Aq+j4pvYϗ8e\,!喤XMSN9p8{;T_WPI #S=eU}BH,$#61ԍ[jCk7n3oZk /KuZ byƪŞ^IBEeERNT4011)V0j3x2/{ E'nt雬t=ʵ/y\5nTۉ8J(MH``nfҋ?Rڵ(zK(R܊Pz"6 ñtw!413Rciv(ثJ 8s:>Р˄xg1%{ɽgcq=1Iٴ́ve’ hANg7L#G7]uv)\+'6us`8R!T$ Y8:(.2>1&*TMSDh]?RNGa@`DX'%o0ϒHm;[CVvOFݣFk"JȉfS\+ҿdNְͨɓ̌ɒϳOYqQ,Ln Sc:ȤlrMGBfˁ>(2Ľ@ 3+Wx %@NOO>rcY?A__8ދbWynԔH-v ^}79,5֮/# I~~J36AWg%|zs<(ٿ`i%[hCfEyWaBxa_km;dS|kS:ugO~t8?'-=NmLӍkWXwBQdbLﰬ^)!5l)RJ)k誒e9!nG[7[ssZrZXS~A55329?)gߣ<2}vd:"ҥ%6UHTD:(< 0% gD)e ~{"3ͱIГL#j-*Lts#(?LD$J| dIMo i[ZC=_qH)nK(Jz J* ueu:t,v5|Il| K̝Fe 5믵E0-'^r$g$))ykQM*YPSAu~ɉ_+\6yǥX+ , `0:N < S)8O< v"/,!ɜ۞w,`Ma0 #&4/("46}5Ex^0 `0LU9rیgQs!³ה1 ȱ,6:` hx`0 |OA.mAn {`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 #Tڌ]~RO4^¶h `3 `~nr٭w//n!~^{I``_Cb0?9-x]M66 Y TQ2h۪V=>Rk71d4<{B_3L<2߶o_g. `}P7.]GM_]G7ѭ{LG(t:WjPqu2[h|8>wۢ*St[\seرG} tH`ԘO~\VW-Lg@Ofq  IDATym\V!/ُl3Px:(:Fc,F͐"Jϵ%r B1waUdo=snB®;Zn]ulZW]V $D.u'e^ g)(#cёNK:dU/ UZh]Ǧ:gG\Β0:?'T˖+<3H$yeܯQڸ3GliB}rzHk[[+m/K=t'7uv_4lOQ/\8Pә>dޭ516SVqBe?Ay$ Re:ϭ~r 1dtXUˆ:J!1A{YDJH*.#_O?YP(.~*W1K762RSQe !AZBmٵ'P2P %o嚜uk;;@cEݡzگz8YfuEʚ q+l?t?o:l9CmKB^;x.%qT݊3jjX9P>:cӄavKL{2ʮ{KHᎷҿkTbaA qt j;oҞ$3)m8kRx06UEq"\ت(+ֺ۶ݍ.i. 6 >9'\@FWob%$BH%=v?y]ƣOhZ =?i琟/R2k17I8d`k5 'D%e:jfɰUs;;Xfj7qP4dlI=H⽳ ۨW7vx經iIlDۄR0j:! ێmrvϲlcV<Qg8TYš<+T&:yøpc<*Dv(/+<`P1荈qa-?;m=F*6N#nT@QOhF̋xDP)@\9H 7Tʽ Ywa:5$#hY&Y܋߲[.\pCǐ,5t\.aϊS׷U=Cc_J:}g-YzBxIm2*8@4>r)MeR Rhd_qHRd-1/|:8ohbv6vg1j';}kj髖+z8(|IQ|4רCCVReٙ9SE h2ݿ{fl(6p՞r?/W2dLwM$@oƽֶLݎhxݝ\ uz:n]rovdU9*]y>XS^otl:7q5]x<CJ C([ 3{~uc+L,!$ϭʥdpę824A,Hyh1'x;77 挸A$;l i3+J Nz=cg\#Jw9␯_V-Pri;<>x#CLEF~1_7,sc;׌x1x~o#m tyڰ=e:t7;"#0}8'"H&3K,R|Ca}Vz*r(GzJS{JXov]&Ο5g;3my(3-mr =0G.xIfV0Vዳ^?x^DEb=n[71P2_x%Le{4WP[Nzk V3;bp~yAj 4X1mJ>}xCxVٍ=y)h V`ٷ/Q|]>'U X!eM$T)v8ї׼RCT%r?1\@{Eǘ:ko@loQuQNVo d7{p\ks 2=??j nn.O'ue, ]r*'ὧވHAr惗?bq$R+QҺ0QTTTVPtuSM:X%2$KdE+WLTC<=ǗȨ ̠@FGEADXȠɭ gQ]{keRLK֖Ґ\q& &X|/X sͷKֹhY%Ccѳ΁@x 'tbID wIc[<J2bm8ѯڠ7=b2K3gAve7&]dgϼ-1G z9պa +UϑN9t;/wh֢S[UWik8NBEyb ucIpwݐTdP^# HJ#> N f=J!Ҥ{)|d9(Ogf@IOW OKo8k`޿+Y#`~μȇ剺ZAN_̓Cy M"rjfAPKm)U0R*{8~zsgΖ{i(43jkcF}<:ȝglpoRICHk{ 1 5Z\M6t8Qs&PyCv0?y1%B-d@Gϝ8xƜi}%=OR2Fˑ+#HӘ}ۇ9ge-L(vXyد'@㾉J<(4 gjBMzؚܲ`PLn.E6ΈkDGemNtbvٍcX3^(@BV1ji_?=b ) T`~>pO Z/x05ߥ$R@+#_ K^$z.Ĉ}߂M&$Kd^;$۵M|!cf,|'S׍Ӷ7I@]m5$#-Zhi`W724Pzx:.zK|43`K2nn+Y: AJ%#Kib8[ Y  ./X@ *~#.RX*mVI_ibݮ}?ߴvDT~N^Рj3bW;F> aONeWI1vV*ƚ~0OWLυL=eLok]Zi:! ϫYORWTäoP2kjkbP\bo>y*{B Уd-ڜ M(78&7!nԹ:nS*CܶU@TӼAe08,C@v˽X^O8'0_Q@^mIp ͑:9VULKG *w6Ԑ3P-J/B51$%ICHg躵m=LxNjL t{[yeW,L+T}:obʻ=I`SqHg &&nK6>wEHqN,oh\{衏_-t{{u0ki)/D PKLԮ#F aOqu5hnHl\JCQ (9ru{xƝ'>)lɲGY)S$ q&PPJʿ&Ȫ?J*.w$qfu{% s!^(8 # VPd8U &c=R>2GGCdYQQYWW세\\1%MJ́znq@pٮ}u;ay9_78̵4AeX4d.%_l^ut䫄^~o+4n_^e|8G%0"j9eIy{O-mmޑEFNz훈 ^4/=1b$eZ,AKTeC yvsmwB>gno 5 UDC]/LTd&F*ʍNn2Ec|z/]o$:|LL*DV ϼHYG> GxE#ZYg0uHsFukffˣTyʺP+{bMQ`,'5M7;ҐFT3 îȤ1c& š>$ُj@Ƙ KJ=2Tbך!3ռ+#J QRKEM/ ShԹ[[CueKC1H5RCîHYX5HE0$֜,S[wƥKg=+H/S3DTb=KNYt\>0_bbFwGZ LRꮢ,%CI[ٰ~!ӧ APYJ}s!mr CY 2i(p7+RGKAffFJ7~#Z aK2 d-:j&I*/b2 G5]% jwfN[+ꪐq=foUK!}O9ʾo"sI0ŔUr@YUC@f"[ ͌"2Ҿܭ>e3 $ ۽uMse/mc<'aW>UqOẂC#CU HN lyu+ߧZE"O?Mmؿn{N&{wp7a@(m.KaFֈ2K`Ԑ2)K TqP'3Rf6aSw=SӢW&>GkvfWo׿)(fzꂒ\!'-* K% ݨ鱫j3r]̼Ɗ 2-%jj(#/}yaDfݺ9@k7K>񡟥BqMxTIO`>HN"sUqڽc1PX QTP+*V *?{mʁSyk$xG@C[) -y+p6TQ<9Ak. ;[vƤdV~B6;rY;g{M c&]L̲o|~ y[o+!/|4 8%pRTRl<<3( Meehb ̖F5*r3vSe㷙ϖ.PlJKJ) %QRCBx?|MEG| hkƒBOB_oٮ\督)k$R{D\t5m[=gi4n0X` 45kDR#&r\b B i/D| (U?*V1*J$r6_+w-ۏ^}㿛ӓqJKKrxxpxxr.ev5;6l f, ]b7є1u@@FFvUMX J򒉜pn7OO9q{ɲ1O_dz-b%E#m~apuA{>F3NR40Vփ4$T %}4~1U' kRh<|vvq;HAJޤvYbL/\:Q_O}~Lf$ L6ŊgiTu6:)iB2s]WKb#k'sq34 >&f'w =e2C?{.{e c-y*U^*ͳdme+tijZt=tMty|ʛ*iJQ(|ahWV8E)YŘ">GqGT^ y@zTuI`9뭯/Ѱ 2НaAAF?CQ44x*kdXZE8 G;j۝5 rbR*#͌]3a~M{sA;Z=1J (eC3}QBisHY´S;OL$Ŋ zcaxh0vtleQ$;]82v!ӝߜzjme>,ϝ<*YT~tToع#2< *F13~ !Si/5Tv-޷82oat>T|\2 6ˤ,u$ IFD>k-gm ` IDAT!BG*v0r87yv~(Y R @ b?05Fu@S롲@29dRoC68*]yVTSUd|+ U}fZlS'Gvs|x:MoD^l3nsnyH񶆚OcOF>m/qIc>ú!s R &g }$ Ž3Vu/ KٴeIP:hiKzl`=.ܻӥy{|UKaZK)[ZX|fɼ"KCB9MeR Rf*b m %g)5zd0v<Ŧd(.%d U>TF_%_n #Pǔibib`~辺1w`% 32+3gϏnL]Y暌\98F|Iv?eN٭'޿rݳ0&;7$]1\A55ҟT})Y*$;1U,2/۶ڊT(Up:Ś1 ԅPKN^ |,7kl5Lp6_E%$άQ8A"@~uT͎ +tt.d\pA*%AG+-6Nx`d(֮/ Jy~j3:Q[g%~zpkL_4w?jBfEVD=YRQȭ]O]c Ȅkkש=ujB8?'-#^R2n\ve{>I'ci4b`D  FD.9T4uTSme^YNBeG/5sfES77o*r$#}5.i۸O! &'pk $IAv㱄d6$.NEonb֓0]\" 8ȼY) LiY ymƚO@L[?H( I|ú!s R0c +SE?-usM_:8R2Ix}٧ $zQdIqY'Ta&GYwQVv4QWE)lDe+?$(Vlm!z2Sya]uvjZk#bPV 2T%=7Z=M.Տ4~!ƊCBr[3CYJ@<]WVn׻?̽RfzqaZsި@"|Z\$5vdϼ×(C]}n$f^\CEO_]Xr |o\w< 8pk0b9QpC7oo(8p/!r`M~On8p2ЉK#30&=hf7d8p0ga\q㬊.T~p=e8p BMX*$ c^l{E'8p8|nNOW8>*8p8p8p8p8p8p8p8p8c՚I ݢ8Ip8p@? h K3ըHhpVԚ2?cgRj!lO}JۑS4W!Qny4 xj:{xd2r}-8pߣ~Pe ~mzh+^.fSs5*4$͘rY8hmY&hٻǺZP047VU7o#9/?z3xqU߫ϖq} M߾.E)\6x<#Vޏs`qA&R ᛢV vC Y6Gzlz`j4z)4dzu6<Ri3ۨ*SEG]Hr*F:q;nOEImߝ#;>Uibet=ݞ^6F bQ]flBt{ۣGY*o(~_;>^ȏ9C`oɁk/_zʱ%OC(mل]GW 48QpO1eו2Ͼ앟Mz̾8TC)^u/\V>ciƮO`l)c3=gץ{iJ Z/IJ=9`qԊF p&SeQG9H+P@)@4@ d.Qs' 4Z-wٌci琟/R2k17I\$D'~qJX˙<Von?ui}(b"B_*e`3m٪[ Ƭx(Ğ'8("tak>"fdتZ, 3I(I\L0=C}4ӯو(0׷ IaE6"e%2-O(0j';}kj髖+z(yQsy!.Q6+zaﱘŰ姍Y\!h2ݿ{fl(!EbirN.g7{\q])쫲d:rRJ8иA]Z.tmޱsiƮdL`l6e`H|K[O'4`Jɭf!Cʲ۞2"Ud-*TN{OUn'Ң2ouF`-8D,)ջ}W;~ERkq=5W\#j[iȉ|wU*Nn!(u^ceeY#z3Ӗ'2/r8IO^4o>r _C"*Bz_;nb*GeJNYhEYIѡ.Ƿh|#/ rmGyء[W$iș^zƊɟ|HPj6ⅹ1v>QuNHP.\ȯ (&} !%H!w-zGQV(Y+0MCH\ U_ L3Mye놥]cn٠z]Ga:t7;"#0}8'"BQtTZR&ʓ&sM6g fkM3oi.C:4bv6Om.BLEFVtbID wIc[<J2Hi\ 9ؖ2]PΡ;ܲ%+fѳ΁@x ' apt5lj0Ms}ӎn%>yȳU?oY t 9!T濸ˊ=ע % dC"2KFxV]0Ey(0T-24BzʡDnP/a˟ 0yo&}{q^#/_>)̩#OݗZ2<ֱ}(-< =6 Q}aS jQb(n0yK* Yו }Um"kw=N%dTo=䣵mM><=sȣҺFczp ΁!!H*R‚S*s~{ƴϸ>gGsil)t #Sr͠`R.'vW_V-s)LNވ2(Be7=ejy}~B)zwˤR5Kܚ1rd @Gϝ8xƜi}xۛ%]s0t /^3h˶z8kx$'C 5m'\qdg$ǻUR0ܭu+dNɎ5j9nA9d߹U?y1%B-d')EHH[E?iC3 q/Xʓ~E/<Z}MP:GIE[iP"!ȭm{vQ#Fi|r]} {f]̶j v-_~p/Z=@ @`'k!'T@l(C7@iA %;"i1o@IhSVq@OBAf\%ֺ$#9Cm)UƌxWu;/HkF"˸"kPU s1R*{8~zsgΖ{i(UQhh*񵵔S3 0Ҡ)ʊQ&`aS$ߚbXXdȲl ր;#N?bArL) ~q?{/&g/u\`&<ֺm>2s`EibR;Z1$fLBϐ9a0":-\7`JA;"z~i׳.1+[f{e\qH[VT)Z 7pzOy 7R>]n&r, ;Z}qj1\P337sݏs#v{WoGG#%ooR'畽j\M0-PQL~;UNJ|*ѓϐ&8'74LнmǤJnuZfM4>;eHc^T򫗟LN xwU*`4uf9I&I) yZj}p6 'bst@0:!'DW9<@"@A**"#9DI'j7+qg2ʓ%~ôtP~@zrg#M 9b"Z[:,7yuEw)湲eihjbxg+'M_/4Gj4|HCL){h{pN(̠h zJB dE;35ZH "†==@BeGwu:vN[MV]:+wtfbǔsmx382+n[qXoyRxz,`0 @,{'W0X BTִ3ʾ'|Jj* d_;83:t=H 9EEȲ2R⡲세\\1%M*l{}%BF;y~r4_78̵4A}rn?f4I&^q|(l 2f~Sh0~1`AS$5W @?0l$i` AU YՕX&qHg躵m=LxN̤dnD9v2X^2ثi{h yvnfŖָd *-RxkҌHgL`N$2fS,!Nn* *iŠ2<Ѻ&-ɈlAk8XW2; ?-Ti!5kB'bdOʢ,(@ I0yV *;\O%"S*,Bmg^|g0`HsFukffˣTy \[YzFMҠ^-зѲ_O1\ ª/~@ǰ)L &7@`o_* GP")))WF}OHq|n&_ ^NlkUwէ&G{xڒxsog3cK*d7JCЭ)ҖUQ^|pڹ6EzRJݐ[72dQW%KmLȫM'ks`W>FZ5AZ7-::FY쬒"f#'يV='/j01a0"Z`4LKL ^4/=1bXAR^-[[N竌b l+ZoJ!}OfPCs{ 8R$IT#{AT1* êOQ5Hٔ|JN8ptϩkݣ0n%_Ox;5KJxq_ַa$H! TMhm Cq㍣/2xМ_nCyjU:JSib>q[R@rjdȫQҼʞg:5;RŔ ɐILJE[G4j(RYuRS47ˋob8)(#C-%!j/*ir(-z2zPzs;[%CN[T&Ra.yg^;ݠUaELZ}>;.>X}ůޮ=R0MuUi)iPSCAC^# |:<9tߍ-u0h^|/@QC :$xTRR%OA]^3EU*LHwhg~ja̮޲ٖ;.n1$ ҬlHIO_ӟ{l7Qb 7beEj^b*ZZJt^@uU!R*Mk@=m޾v*d|w]dξjoC-r_]h,tUhM*%[ j #o) J;#bTF[e V"CP& .A IDAT)m.o%_5`p)^-竌*pԶPt=e~{;/+sOmMX0S[[qXHTǎ~Mm!ZFD/FYRJ!UU*}:*5$$7̾d-S21[k-yyh ɥꚈm 4a 'oϏRQ.yM#9ӦHdH䄻 wy|ʉKy2bfJV/bzx oN ,?*?%H"1j/SZ"VFeU |?U5Kf@ ?VHØI=wWogIaXAqhB/[Շ/@նGO`v]h4Gets⫨(eaalCeDaFrt̡ms^x&[bT si Rl@Mj%TUA҉zH]M(Hl4e+QYH${ApQ'_ ɜ\q$kT25b*bvsD%PId.n (ۆE! (U>HIEˌo?I0bt$[m6M}"2<`Jn6%?q}#UdLCn 1Ա s1ldeZC\H2dUW¾}; R6?GgK_ ȪSU[s`)ҫ ϬkqHNmW WuEk R@`}+4c'(F$Y{im]f`gHQ$ ֫Kapz0lY*2Jr`UqzS,h?`i+t7w[ٟϢ1s6O=%G^l3nsnyTQa삱&/Hc*Rܫ+]m$νLu݆)d(IT*3 <, 7svoJ>Vَd&Ž3Vu/ Kٴeg~1@P0ʏ@@JOJ'tH! i>ADDGFUۃBLĮV<DSJ_QYQ\4 0M=yAMfB M!DCFy%qo䵙ko0L1|ޏQdK^X'w#<މ*mg8ڡWYX|(&b"牫ʚ 唆͸>JFFϘ`zyibib`~辺1w˕_?^]f0Xzd~"4qA?~$WS.cv鷹&#WN2ѷ!-%,m/qI[ջ/$04X2!s0&e)ˊa.Maizlb4j5ːU]h_2ξ´1X;OL$Ŋ ˾dg3%3_ި7>t1ٲ%_b!9HHtlڛS*4c2%0FĨA20D=1J (eC3}V~7&R<$#bep+ P2NsZ'GJY`MQKoW +tS6Y& R5yaNV@Yx'<xa_Vkm=ǦQKNXqp ,/-Yl} P'Ta&GYwQzЧʏO`=L7W-˂ᄡshP \Ix4 9N$dW[X'>Wkת#Llz ]QQ0 C@HQIz!f9YרMA__8p[syDGhuSԥE쨰rMGBf!C:m L已7[?aRTR@̪=e 'PTRh**ZH](I9Ŋlaͦ8Y-#.ë3<ܰpϙ'\.U-spb f`aSdVR2r(+KLO`) jC6|ןSD~ҧ7')gcȖe.yŮC.Zsb%yIgK/ui`)  A$e4zH3D*F֣&ja+N >_f.sH-( Q 4d^qԶ؏ 2t1큁48p=j8pMwcQ* #{  N8r)6?)up3C4ЉK#30&=hfIO2qC P2jD )zγMWC N$8p=eyAc4M;;`(L xu9Uipoz8pPSržSHQv| 8pcâH^=K%- I33zÄ Ù)3bΞ9G ` ("( 9a'|';,{|㶷{zzf1 `0 `0 `0 `0 `0 `0 `0 `0 `0 yD۟a=c0 B``0 cbϓ33-Ⱥ%u80 ($ ($\ &uy ib2`0zȍF_V~+&2U6x[Ijx7:lq*R5Ol C6So Hfm=s7OuI+o_DaUkFq ѾfﷅIow Oyy}#0 `0Vd7{Q?RNᬃXR;x-!Pb FDL#PRzžd15w)f H PsfR]r976!Ƿ-)X8f4Q.vμP@:۪U^*MDB36W!p- "?ljwx0{ }/Ȓ=;ieO{9𽹸5=q=t,D4}Ͼއئ?~ғ$?an<͢WT~Wל ".z.{~޽|r}^e R^Ukmc x~yߔkMz8u ^2G/d@:OР_yy=vtKfir˱7{|fNtܣgA~wϼU3[ Vu^G_MYkIQ\S}qo#)M&;P|WA%ړ}w]w"ehfOv_v?t/[]{秎̪Yg${oA-?5_coAdn»Qm~SQ"|[{O`0 w_`0PC"]~{v"/cvx f5;,SbzH! yI;jߕ|'MVVw>yqdk ֤c;M"{ ®ί`L߆LˤrV"eW~\657HKPsվ}Lxqϯ)hTsi Xy`'B{r?_nD0&m-<y"aҵGۢ[.4.'!=b#_WN+9.^҃d@C[Dٰ`^Up}|xtbNYOus:T .c& ޝݱjɬf_g2 is[%^ܲp܅Y6Ѹ`ZskcRZf={67:*4[V;geݥ|P1|5ؖNS>ľ'訐*x݆'A*&;V [j}W"z!Y6I6xKk0 :M<ހ ~% ,~`0̏>`B )[|s e0A-m#cRwq|fc[Bi4#~2WD l+upUFlRNhh2aWCZOF1j-" H}Xe ~Oy?R5(HDPo<-0x?khX^~tZqO3Xi6i_h板v9~ɞXE"))A/]ܖy>!"@Y_AwwOhMee uM5DKB܅vD/>H*l<@EKڽ}Kn%s{W9/ioXI3CA+,#:!HFجĤ"bo^~IWXm-o*Kx?ESiw㤍1_b4" zplVf^㌒þd%+\{bfGGxkHlN-12 ylvY YԔP::А5dGȀwBPDC**/0 `~T9e #l EuJs4YY~4!H[~s2\ *P{lQZdXZdW {G&[ 0Ūj(Sj:*lvV6YL L[*'UB+/ ku5yJCޘ_& B$STȉ02@B|RA䎇w Csv:Z&nkglyIf.;7a8]8}kk<{E GQmf ATRF«^@v[J|B|W'mN@QtѨJU˾o#I ~]n]ҟγ^ry-;'|ݺ\X$[]:Ln9`0 `~D9e #lv~>(b f|~YQ uC*P5HXgeՋ P*9/2 duD[`IT- Cz[WSibp=/oc7{u1])dj'>HgUU!PPTP"Pi4;fxFOp?h&l=`,Ggobi4o]ZYaH2qՍ2U?ɦ*SBz~Z_i7YŻyf*F^?x- ,"2$ ,YFt\tkо].YKҌϾgﷃ޽_HF[\Y>0%< iݝ6ɣӏ!nD|bB|B L>-Ai%R[ X} `0?*x!`K^! c2FGGf?R /2L3)ݯ|>9GL'7R(l-A BjEP)! /HA;D=6i3$20=46V#\y{l7mߌaJ/UfL3>6,C{7^d،{N:3ӏ?dm˶id$Ri* Y~i^r\F)wNs3#}F69hG@շ%i  㕚lQz|Ii Osꏞ9_KQ75U~ZLJ!:JqU%_A.E{GQ( M #4">^~P>p˪SZ]hBU&ɇlw.? 0ѱUY^-J':*TEDŽSM5BY&>akOxFAJEt11,W-3SI9{!KZ6M~ډR?ժwوl. F)#c#_݇(:)TM8Wˬ)aadJgҼ9|-TWb Hijƺ3dg&& zU `0?xOI7HZYx&PPXckH&@Vk?cS h@X&U+.JSOzi =h?>ږkәǘ RQ55WS54'1CV{*=ZyW;Ʀ^_祿tu!+e["(;=9 ' [ i;}fV#hӕLy("3>3ݷTeHU}OhT*E~#vF Ye"N-Z[Ze0-;ODQT'3X;ii!W}UlՓ'k IDATΙ>|ʨ$;í]cι.tذOY^'9_tЩm۸Ǿ,-1L…ԖϜiu 7=+^+kV.x)0[[Rh@.18R}5d*RJ+&k ܄P}cUd_^y]CY*&VUʯV$& ^7 ~Z@e0!AF2d$Bq, aBѩth0=ԇ`0 `0 O8r  懣20Gߔ`0 |N`0L=o=l|bBy:X[`0 `0o{ `$2:q\=5(#&FCOr^0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 Ppd5O4?COuh `3V`0?X6oϓ33-!:gV.hAt^?tv9̠sҜ賛g3P_FIO65q~1d48&&P9{[(}wilV f.'Vd;T @vZD/RL9!i~^Lѫ*붋!R2_6kJYz ..Xn1dxu?|[h ~v"@-_阷i+ 77jTMZ¡6 g˿˥( ej-tFױܧcUHMSfu~.;+ow#(QyiQOOn \f.o,Ih: S EV Bj!#,!Zۺ)>9LlSs3ܠoh2L ?:{?#]2D2$W.8Jcϋ۸zjYv彖t]?ov2ɖf&>zo& Z>`՞nJhef2҇rE*땏 .@/eQ$?M_0cHOKCUTy?x5@ZJϕyGIY͉B~TD>:fd4Vݒ3Ds}Ex[&tǖKe9\z@T6;iTt"]q2eI t~rTh6#5Fb5Uea ` cZ6g/-Wjֳ/%BYIj];xB e&}+V52egai'O 曣ԓfrR~Q GY@7Ӊ9ܞ%s%-@z:aDϤy?B%2Wb@J2HEi  _5 * ]vOiMmjeG6Yr;T/$7Xn oJEd R gSʵ.CY[oͥ|oEsv ]7 Lg4Ly2 brTLr47R}gI4L_ ?NAJpæX3SYSK3SXAyz{^fs-jB|d+t(A,rLjY Uk |@vEJFνmKĦf)nGOҍO8ɁkQ8JI#ɥ-O%YQ#WRV)2[Xcj&9Qa6;Ky/}&솣V)z 'Q|,%GoI5Q̹" K$>y}ؔXumgVlz@Ճ=__`-0jD]/Jn57(}ʭ@w֣_Q=_ö?u^eT 1̷λY۬ #nЉw=?ĺR*&K$5QeU[^k 6$hӗVYJ, A"HKn F\iZR ;.;_[t┰)k6cY;r4-]Իf|෾O_ȁgrKdB`[Lkqyo(%W4u͢1V^%:zHW}~nv<2J !F˱=Ux&6M3{0P/@͍uE(v~Jha6 en+m~;&ϙ1WfJLqVb?WoI;1b?\Th!4/wֿ 𢒵Q[/O}U67ƞ_1҃dM|NMUJ?$yZUB%Gj"%Ңj`BsL:rUL8)%KDjB:5<82>b>z钩k*PEy1aj(52*dQFGECDXpmD5x67x4kEނW$Z r I*ݎ1SNbV{!g yQ_ .\yDȽ Nj;,!* .]k L9Xc NǴW/;돸8֣pe7kHC]_n[Ƌ/ڐlz\QQ̹B9;k\rp>88@"EN},{%XƻrLNfZg1mVTrZ7%'W>-XA("I`5$҅G,7i;"w1g%2 G-)zy=ס)ueR\kFcFYn3U:5' skv]],yO:7u?H {;ڗ . [:}wզRٶx} b x"u*L_Sոe -{P 17SV(HA* `[.bcRwq|f2꺝l!mC~<_/I;?z"+]sVl縧,٬3I)>̈_>,v+෱h䮞3(e]c=_F1jǼP u rI?BKG f 4J|2Q[mYDr(J%-'R<^ -]|B60EqE^N:8,jݼk)U 1(?2|_t9M)G'%VuVݧ'i"=n=Bo}|S45(F#@Pl+A>lFm\0(۳twzܾz=F8<ʅ,HEiշ4L]߂@6%ە22΋W880!:u#Rk#(8 3"Qd8[@}d6v^[ɕQ'S^\\`<'!.O#O̊bbR4hT >o`&7.`E:P'.spxfέl/mԻz+@{#5=OwKsz'ힵ$ebGZ[@iBl*fO2TfRʺqv"?ƁVWIM-u|} eB+9|2+CinmzB$KKx}Uj7R@GWA; }EGOIILaa),׼|F%!Jom u 9HH_C]=m:tp1^R ŭ %R8879.4zo=T}>-@,_[\{vgz?dO,XZ(s-ΈT{;2=2)i!Q%D^n]U2{7:0?yvk״ Tޥf]駟l:؎ݷӁ?Tu/^B\l=c?+\@5~YM:UC޹2I`y/,{&o7DxMhQ"Ėl{ËZ9(=hI&xI}B-GN{,Ua(a1}s ~zɎǟMgh@e DكBĨ]hqI4ܔH*>3 =0&>Fr(Jf%&!s 5\->Ij kւz/K?)f&gZD'.5GK}u(XI *)HY[VH̒[PWԋoΥ|#+1:h̘{ =bɉ?u6FjJh(oa} 2A AdO uym՝P%2 ߍ ioG^)'&@w -ӣqV(jnyzsUOI>jD{:֌wO?WdmԻzk R-w45oI LM0$STMx5۶UkvTʝo|ux>уw{Uْ4nRweJz涓>jںG\?q׉jMj};IO6;EZ %\R>E4"9%6opzɋ % 6hיNisOxq.n#?rQ?.WhF- ojҤ tБ=n?JfLJ>KZĀҤ*C˳w<}TTӞ2s;Eߦ{c*S?9dP:LL谳+fTB19&._\bL[55atOGGsFW nb=k:Lod8dl/ȧjw@֨(]s=.]1}ȶi}zA"`h\ʎֳmU УizxTgd)rjFT k; )EG=~,A?xq/n%KX*E M&mrwr݁w17$MRZhB<1N\aH2n}jmnd ̹F^̼z@,H6 IDAT]D3 QԺ9lA]B555DL(jitT?\? z374ҰjHbLۯ:utؾ&i漺o.zsvhw6 *YB ]`! c2FGGf?R . x:`(v6I}y| 56kć9l]c-}iϰvfԺ%#j~ԎI杕jzvv3;O)dFOz:ܬ -Y'VԵj/)2i0{MK ,O_hS)pğZ_<;m*F_r`)Qk#SBiCzfL~JtFqkCJyQ8fXnrA0#WZQ"eq[W)5z?v܎ƦLqZ\J#<<63uK.N&]ˋ<9@Zqgt3Hqo\,sDˁW03ŢF q_RUHųȏ AӮ_hӕ!>+[>eF6kaBdd{(J {BlS$\XJmɛ/QWK rC^6K->F8C 0LbLNWoHu)DQ5KbTL^1X[H&z[lF>k}=TxS^_yb6%97(,U}oc4 iWɺJx֪PD#ϐtN-(C쉄L8=طhɘPQʇ[<,g̝;~:;-e0-͙7WeJkn MY=P85xH}&G8Q/HI7Pfלy[2[,O x[|- vp&qv|DJM&Eq4 >f879C}j2n=~duE(K;NvFY2D~R'(ǵ BcŦW^Ǖ'}̂?Tq"4'Tߖa -!-KXTp)EHEr_M ҜP ]gK&8 )ۚ%JhYH* znXp0rPޕć8h%o?k´W<rg7\ӓ$Fb_rqD6 KO|f0U`0 曁'|k VTs3@F Kh>3<@ԏlosFg8NmByX |l<\ڢK]Qutؙc޾4a4Ι9 H'u[uKP;G,a:|*}K5c>}㾶6Po<%vKg1eeAyl9SVj:;i{Z.{1*ɊH>19wNw3&Vܼﰖs?=pol.lز v9}Y SC?K0 `Re%&ڪ .]k]L9<|I]IWm`T;#*a!֕lV!4YB #@I|ڜӝFi 3~.tFšP6;@PY1@F -39 0u͢1V^&*]n9x>`SާTi6cY;r4-]Իf|෾O"!aګ~ڝG܂hmɈgEzs1m_ ߗVMHΜcP8Q$(Zu`׶4;Ѥߝ٘kYaWIԒ"qjH]ohaj_޼v\wڅ߷nӇ=G}88[" eX{}:ي2o @ijZ惈&͑lcieLLZ|p'6ZYEg٪h"Stx#SffPI=:˲ D' > L 4Q&< [}%^ 4mV.bs4SX24N#)[fݢ|=HnDz %Ya0 |>><^JV1l=i{QHgІvc/v>Ye$HHf)t2W2n΂f: (|Bn92?u{ԃۻ\t#t~D]4.r{6 .slWU3I5(3۱&Dd4~eZ< c0mH>d 2U 5$҅G,7i;"w1g-sW$&oC.:Rhoߕ|Jg,B>^zm 5`ۧiZ!-ͯޒvB 䛢dE$lntT&аϯE5G'Nivת/;fl/[3Ŏ׭7$ݤR@;iSt> R1 -i>W` Eی6e-b6Ҁ{m'*4}QL`WJ^>p*"ێw,yUtؖ`EUKw" nQ Z"0 ` U{t[I0ŮöwEX^%T_mw-r&57O\:8̜[LQz\ $iYq^RLl\qP=oNhh2aWCZOF1j-" T8 a,Q.ʛ#bO: '{K-9R d EĖuuAu2bs]g696gT+ fFa$y板v9~ɞXE#Mߺy[:a |@ R 9+SHZqO3XYƢ)zϠu0 (f,ݡꝱ^v/;n-#QU'7u XU~ת7H0C¨ْzuddQ|0 g+ͦ~`DZk O*y3\2YPe dT\KD1,I[Ty?q^"ψ S7Bɋtڻ M {D(8{=P b=jcG-Ǝb}k v1j+R * E@zvwbwx"`~Pvi;7 )AqF[+B*3wN <ļY 3jF&Lw>+\ =YA;'?Φ&*;ˊ> Kօ zK=$,7wq5}7w0L:W)"DΝbѰSfr>|ӌ6hnbXpbXg쏽cZ^jڐi6o~!& 2br6qZf}7;2z(N;x~ѱ}g߾nFLONJyث$6-x"Kax*#{+26|oȺ Wۄt&J8|ʫ\N@~Љşv5m()"RUI5$޴gܼϟptz:_^u=^*gJNE xDݩ&&|R9p|xlSu7PhB!Ppv-jٵophXopܫIĶӌQ{kѺؿ}}~?'rƮqi}Tl(ҲCQ4'~xmGAj򞿕5wI9៉ribteu5,dY@N[*ֲ#B]N?zDfNm1S*SƮGwxm&#FURdD$L>/Ֆ g<@N\ppl6T*ִɂ2WÇ> Ru*䌵280WIM*gQFs0|aCG:jб.ZsvܔyZdJ֐RO l9a 9J헐54z56qﺥv?|EZ'3SJ(i=|wiW\/u3L<Fn66‹`ԋ51A0`75+m孓SB2"]VAf\TGͿZKk( |{2~eRPdJ>-Z 4,̕'>1mچ>[4ҶCں_맃>Kf֓? מ4gSVQ=R^;'2|l L @YRE);{UoR}U'홱quяW^0vO0)7|QŨoUinˈ70RҢ@۴uS#q`f(5dDYĸ鶱~Yܺ mmqmUZgѕWe h%EHshcLvvtZBld)o%gg$>xYP_X6.m̌I'2%i1oz+xL㗍ɋ͊mb6Z>vE'_^WU{"ɍvba9`ԹO[9cI EL;z8Iάt]dҊ 5} ^q0!!iͲA)}-C#ܰG (iTS </mY_3(|)KC!v@+|1ۏO-~՚g[K/oe!cg c~7?`ַaF(Ѿ IDAT Eg~2cΘ/Wn"9Qn?MF([y6|QoYUcw{ۤ#+5dDQD-gm"g2opThNLXlmnx\߫{=O~4O@ȦT ze0V %T,B|XʶtR@ 1`O4-E4)Cpକ4G*۰;Ӣ(ċa.Ӽgۨn%&1X!Bp_|¬@!B!B|"B!B!B9eB!B!B!B!B!B!B!B!B!B!B!B!B!BH-üo҈6tilB Ő=>ha Ԓ$|O8B!J] :6M%~RE|{LPR봍.=xp}G7W[n*Ӫk']ˆؽA>pi RU^YO?t_^޼xx6nN;]< 6Py7Ws:x*V^aZwl/dZ=YI 9g˱}<;dǜfCgmrǃ^?aCf{U:\_7$}V{BN+Q'/{7/47Z_ocѝ%uXyg`7P ۚQB!>4ToFC >90 ^S Pg8k!>?Hb>m4W pѰߔ ĸ7x6+"[gᧄLЩCe Vy:N$*^l٬r)׈@6jiY#=eV )7fCW\$ y !N)\7ݰ}+Hm\~[~hsc.F2g.]K#fhӽgBgz"@ZՖm~xuo\^ޓVnTDDW.i@Mx%fǿGR^aUTÐmA+l;Q }Fh'U7-IM+yFf5r!=W`:.\>{|*H'D#L-k ~ $1f~5kuj*\7 ѝ՝~7=U7c|ʑU^x*SF$E%;ny]nk׷fI!%&q\˚J5r WJM!%kLz\EmsïS}\W-cgwY=NjIE h 0MK^(Imi{+u}Tȅ;]R\c̓cuݍʞu%t2}A ZY];v|U~V9TQ{U Gg1&q\j;~]/zWpwJZ׀ 53rjQK)k jԏ^gؑˬb_qvf c2q} n^6/UrJf#Թ?{ʞqu w\Xu]o "B[&2_ݷn __[o-~~ɥqp}8M /};}[l3{ߞymt2ࡃNX OM>t8eNr>͏8tA#=]Xo{Ő=_~6n/bpZhNT WۊhF,, Rb y>QԆTҍg@"@nK4>aBS*VA"CVbܢU]7k~iHuwx1%-3/S &m7 P`8H6L-9J!9hZow~5/*m>_KYgblBy{K~wvCC2.zW%4m'EWtvߞzuv]ע+d=Opݥ fWQD 9^nKw79x÷v=Blz+ O|! yx4@PM):hפC{iߎx`z;C9⛛YU96El_=N?w|5Pt6+m{})Ӡ%sTzľI>|Z<MFX?}/1]Ԭ)<$f(5Ҝsg|– }>=;ߌ۳gj-Dl*0ߞ=4ѩݴԥlڥ1;wAzXa&zF>ZCe%LY-vO}(T +,M=jJyA0jQw^JЍu?91u`Gձ  }V 6jiW=S}uLnEK=@P%M\CR1/%_NH (Y=I9excIj(uN 0?4Ń{z$jV5ɺ{^O{7ڥA^^B'Xܲ}~=[ubR2"X_S"RJ*&麬sfA jhAoѢ*>hq0Vb8AEгxVqgB  t h!kNUI|۞FזO^w'bjr*311;)ML4-LPLd ,ȽjKrm@6iED8}E-}޲J(<WIl0[D&2P /aa~Ѳ?ujux{/0O/}Qןo띾~G[ !bE~ }EUfVd/O Ug-:k)0'N@LOZ #9*l4l^׽h3nO8n:S=l}Z ėwF]`ศ,t+w"}-?.3Fߖ1%f6tljCµ f2ӓG5d ]_ZoNOlv(Meyr_3eG?Ǧ{ùD_t}TX!B_Z6;k5а@W.4!00mٷڇm̅oFSFB"ӓ3jƥe;A VۗU! 3bc#xT|OC+c\o2ʢih x6NKljADn\V!bgT˦-s~( 9۩M׳>"-94]Ht fy)j2bTMeO 7)x5PfV[Nӓ9q"SLZo2TaJK!=,U))JKyݢv\DT?Q1%e^Ko0r/:+aP]ñul*"M}㠞&XUÕsCrhU hv䦔=, :PD+f !Wq`73 ]nގ+M|3`dWvqxCG:j/IIgKaRTPH9t4yrdP!B_"B>_}|/!khjNuKϋ"Nfb An %C_uN"Ioҹ!AÓo˭'n%Ƅ(zONcMk&1ȹuJk[[1/1*>[ TJYi. 3.*_Q_֜k ' 1=S"&]Y3CWH|MK~[H֘kJG!h3m(xFXsv9[SV:混*NDHMaYP!r3?H +Q&FĿ`~ٗ0P%bCGZ!=Z7xU'H/m;0Ь~:di=yk`UQn4Q9KڍrɅBA.2|l L *@]L LEFşWݔI|ĔEBsDe_4O8{iEj6Ex4|ڠ9%rʵq>C':&6f'S.gY:ԋ4Xο3nVa˯!>xUS˴`t}zbKmPv3=gm_hb(0rB!p[`~u\ib9j۩EmYt%Ur(wA 41@ qquȧPڤ(@LN0iN6<>&v6yJO=IapE~[wP4Cx^lgPR )D^&B3jIzS!㰌+Д 7~O&[Ij[9+{G/}jH<_ZpFάt]dҊ 5} TmEg~2cΘ/Wn"9Qn?MVwV7凡"x1%i~]KsCY0 D*%sʔʤU,X"ճl6dlAzLOw*7Ielï ?g=LYe+ۜ O|+">9y#uŜĈuA۱zWoz{'W-|k*lA0ˣKgk-7fْ( K-gm"g2opTќWK.Yuq6JqO}LyG*۰;Ӣ(ċa 0->l"_!艤\LWg+^r|Fl_LR?t]q=wƴV}u :bӀPֹkG25*Q6r_.N;";ZdD!o\϶>Z!!B!B!B!Bs!B!B!B!B!B!B!B!B!B!B!2m%^nY'v6+B!e :1M?0vFz!B&0#uvlQG&N>qhJ#VŇXSF !PWCl룅njgucE֦Qf@^UCNYހQw!ъ{>/7Z1ѿekaSGЦi%-k>v?ݽzuLs},CnlLIQlU\ml90~QKw۬<" b7E]{9۴ paOzNI%l= Y&3$;$v k\%)i*AXO?t_^޼xx6N;]< 6PZ|:pi RАZwl/dZ^|c'uP ^;};T_Vl3Jex~m ޿PUfזqs0 5c{я3$=l9vO{ӌ|4ט!kLR"78Z0Y RF)6cZ/n8|o-3B!G4ghnhXw9wᮆ'&~gz!uJH ]sI6V-3lD% iLޙm?=Ί9i4/C4/ 9? n1g-3A1AVl'qE/lVVIW]p$C|~3|hbkL OY^\?lVC{ |=G&+ON4 &0-DѦ{z?uDoY(zCW-hsܙm'"3X \8}=v$1ֽqJ4 =oqXX}g 7yL f~VwڿV~ ٨{{uٵ/da_!eMǜQLoW\'6#  c"ViFZ _Aèo!j\ʸC5&B\F4r?=3H>ngoNCMDO_.$< {&15S=4iݟ"= 2BmV8hXawMt\DOt.iՀËWՊ~5'o=YǾ^W{-q|7&`F;xkk1 [Aywڹum2-M{n'j62SӔ]Fv7Omw;0I}ުEMkӼG;f<EU暅Q#kcOV[\[6m{zyuY"dT-I66 x!C9鰑W~;:a;#S"1 /rI(u(=nj8kۚɁЂbrzlnİ64ѝv`@,{"Vp~g:I=2IۢÔHt۰ x!$J ^uF06CAuA *٢X*G#&F#4/]BԝfݖM% }ŧTX  H15B!Z?狊`ؒ_Rf>oyĨ`E^8m{~~K])ZV踷ǯĨˎmCCU͂; 7w$ l`+EA}U8Y0u]Ψ\IYŀu{6+wv ђMiU2nѪ.}Gӳu~ڳus#MŢ4bևbgoHt1:Cm1)cO3"@J,AWE(jCu*a I`fKp,NԚa?4^eIt[;9g.xDQt "W8Gy!d2.aI>мr3ߏq~ WHVʌ2ux6rg!jb8ס;_#Hɬ_j8LcśJK6U@ݮċII8F!P522='GO 1JAkwغUm8r-'a%o]ߴxuڷ'J)/A>GYiaH J/7}.e< 4~PZgTsr㇤Ĭ燐-<ڍiQf1O.Ti?L#MM Be4b-1;d8.9Λ:bn+WgR^h=ђ3l6E/1%-3/SjhUDoM?H&b+͍L ;7]@ >s6А (IdzXvuɼnmk3VE,) [Gi*6P/<*dϨ<^h}ڔ}Ωu% ya“lB *V˫˕_DkTF{ۂM矺8©/H)C I!.ߦ"@rϘK"T y-}bZ0b!E*7?Qcô< %܂5 Er*QBnb*A41:v#(-7xe@캑?RyLbߟBRvJ@|A)uwdێ&Y~~F.i3#m3a!o攵>]ZZOxDzܩC:507`rSttHf-̄nė3\tZaѥ?R^}ZFa&zF>Z*VĘ"٣X[l9xvNMMTvEmБB19@v o.i@X*pDC+ ISw0L:}%iρP##:9w֏Eî_L`R&}ziSiKٴK'cw^yHk䇿bWWIzrc֪'F9{+BB7ԁe7V`o{{^=EO~N^'6Ml+}Y/XGcB^iHyNvdXPPu,Uј `Fq[A _|L>}A z qB*fNYc99ɹ-޳uYQYn.%(D1z㴲8Wy|'Ȳ,PV1yQeV|EVв(0̻YLMNz& f'%"e(ͭK~0zDTHÉ,|t BӥĤ_AEгxVgB  t hE^0./qКaaa~Ѳ?ujuxv-H|z͍4^ ӓ3* y R4| )0'N@LOZ #9\u(k>mdk'q*ZQ҃׈~MMW{o #Χڬttb]MjJ 2u:;-%oYvmDPe暅Q32_Ec(gܼϟptzTC-#o2S=m)<##&KP_"}}kI0"-1"Fe _ WX@5* 4N|)zs c!Zq4-VKw#/~UBU1NxXDdt eZ6;k5а@W14!00mٷS/{紉4kςNj^DQ-jyݢv\DT?Q1E:‚BJC;V(ҲCIR]Ht,GH3E4+ ֫WdZ23/,@.M NEAє_JLm 'GkAD VۗCN(Ov{OEͣ+!g==9< <ʤODFCvd091o.Q>sS[ &}VM5l;oVH:jQ#]u9?6wԚkiQBnJ\l -2nv%~]~}4k`Uvp0WHIT* TP՛ &S?(:hP+֬RO l?kPPHAroڈh1KP \-RnV oMɐBSChj(z3ybdOʫ/9Ɇl䭡DNJ:Ǎqb&O44$4F̮7eF͡Ĩ^u%2`7lgqMפ}j!BʨS"B>_}|/!khjNuKϋ"Nfb AnE)ct.{7nے1e Ҙߞ~7c96Cs_-ڏGF8mwCSyL*ܐhfpɷV7Ŕ7uO| PK+>p䪅"#{0\4D!X$۪ulLh!*@MlZ: ؆- JubF*XN_|uCǶI^^9޺eٚ74˚1>X+!p 5!Z0rgA\E,"SAnjfg~u͵ʥ7tAMϡ巢ڕf&7eě3RҢĜ^JYi. 3.*@uFiֳ2nw"^ ũME|mq{fl\]Ӧ595z/“X<1(K@EՇQY4˚я"n{ϙn%ʭ;FQ_ƇYz]14Ր*IWւF|ɚXG3-҈ʈ.y3]*SiD\ɢ!S? SiF8{#w=ɆS&OMYĢ?Fh! r U j/#2i=ёk בCܨN#փ2;ƈJyoA;̋k3+Ƈ0H3hN]5/"eBUusb%KMf|-!?;#)l\ژNveKbrV[Ͼn.nu;{U~4ٲ% qV^xam';;bסNUlNY >F.2(1K7s -3f̝9rzlQVRH? gV.X2iiy! q P&? #JCCd`4z)znغ#:L)PK </mY_3(|)K/!vo=FІ07ħTYc" aW)׽#o|_e!cg c~GRY-9[j)3₼}+HeDZzZR WˣKgk-7fْ( ([xPC*.bڼ՚g(W>nm$n 1V{2i0~1)Q!~M:r/Rjj]~9f繙 L\]!O !_pTxr[9*J\m51@AhDyQnq&r(#:yGя"6>VҌ{Br)^|>Hm܍sp(1.e10Tr>G*۰;Ӣ(ċa 0->l"_!艤\L/ÂP ~O| )S/3RO޹l>ƊАng-]hsʥ $JOc3 1!=Y=%}ICaq@B!Tz h>-!!qS0wIڶ@!пW4vհ0eJcP넯Zf]oXBw`oB% 3<ͤDFjbĿpY1B!jҜ2QX3uxB!̞oCt4;\ .&b B!B!B!B!B!B!B!B!B!B!BY2+ .L@03Q %m2dMS;T)00{Wj~٨+f!O1kIF f@n;L.vr!Q'=!5z6EMCH|xДF2T)0PUd/18e@n6?0jď"fi0c>i'4~/t<>`!Zw>vHL>w9\*+{EnKenҩ?S[YJ ۺo&i0r7? JQbkzMO5wZaA4dIJ33o_=gm\1TH 8eoy^ 3|֘HD4'(5!c6TZ7,o*`+'fOs3K=m[f~A~YUPEƇeKNno`^_߿\XA{{i8r[>KMoo,Ajl"٤*krw/PuFڋRFj+՜fcQ o*NCׯw׸]U&FPV}kg]T}1z&?m[5g 1wf#yĨbN{sXUn1g-3A1AOtf;8w8(zMfʵBLZu&4!F3 ;(?{G〣vQ_+5Ǝ=vcb(5[,+ ("J齗yb~onfygyvnM*3,G;~K5V5Ȇ6跛~o,?l7ّ+}ejaq6tm?2vizdW<w-q/LZJR՚,! Z9q緜MIK}`}Oݥ"I;Wt;Ne̼=N&C(lxM)~&_ؽx{:emi}]*E51pstNM%n9ɯn56;oɌM{xXR+Ô=f&88ү}֘P7ɺ{D}&:&hi<>|Ormqs=Qb߼kHw]APkicCԃKh6A>żAZjFRS(ɯ/WZl|:TP2( WwYXT!Vg'U~C;zMT\V FM9esfw*8ՏϑܻnxMMy8+mWRMݧ~õIsC&.z}ԣq^OuƀwsӑJr2=d[yX+Ǹ3"WPBLLr9Qh8e>,0)6wBqiXw { IDAT1xo- LlŔY`2Z@Rx@QC{t׮R^Tu''nx?uϫM=I=1c.]}D9Z-/Z嵔(_W"fS#^FEZTKͧljcQW6Ԃ_bwy%b_Cު_<+,Ϻ-qrvc8bU(Eo{WOZ坣 NLe9'9V 1EU9%[:]l3G ˼8h"cکU h9Q=)HS/bM4E7TÝlThES+$2@pو @ARBC@L ! e\,QWw.S'op.Nfo@H,E:Kq%׻|Ҏm(-(`MB۵Db%${x3 e#ցT.ܙ+%ehL.5 [S:r.8Jq5s8@֞r;u hEw71!oV>og$ghe*ՔgG_ܶaԊۥnc+Ŀu`"F?xRTxǷIKCϭXA-㠹stobe2b $gL_+HzumGR FL 2FZ\QVb_g*B h:jוͭD ϯݴRz{1=8N{6?7r0)wv(Z;piSS$@q͝k+Zִ6{Gsi^APSņ(>h6k%ջBdRsl]-1<Эfh闇AkfE(fi1-& åbC[?,ه7@PaM'HȄ-p@ӓ ;Rz%}aql%Afy5f8D'7"tM, vtQ& 4~:||Rѵ ~ xD7$lY"{TSV]( i#_#ΐpy ↔JK4Nм%<ŤcFb#U6Fy- 8.Ye #)D{Z \:A.yy8"0.T`*rZ 6, i۸k";x0n5rͫrN-zOuYku싞KZ<MСte7JRy]Cadzzb1C&m4ESD?h篥0rP^>yt0$38Y_b(_ E}%ߵx_SO\Vk'7x|//HMA𪼨:f8L[[ e’X{f{Gb9'54!(/ 9yAkx)lz}M.&N,!*(֓hKg&FR Ae9@k.WPtQyF7kq){1D"$|i%H,HC : `4.SgOBܑgQ ?c´&A{wW"㾋6} L[Wn@*^S AzE^KI5m.3S}/ظ+WKBA6:}KYvuvq/}hQg0ڦVf" 8 JZaye%,'!.O?OyI11dYdG)˃+ R)[VmvlD\U5e~[nsgOSH~с~I~-תS0N\!N(<@fC {\l9Dp!(2L9@,}DU PPmEߢcW~R6T6#٘@R}l]Qy]Pΰ FG ùs?8x%@V g6k(ƅNP ɀ!&󉡰_JR<" -[P\>0,C5T/fC::B peEEe> ?B5S[c lWB4]ol^$pY_? .t׋yxֆ -'m`y>{B|߷ԐeOG©c'8v*E6+APx粚T7tqGaN0_4!phPz/x?i .f*>$pjX[`HC D3*< 1):+Mv0h^rɬ сA3L^PF?%P.Ѝ`_NJYFɽ]Tzgit݈GH@Xyq񑟨H+V[2'2mm_6ַWOB].ޅ9޺ڊnߔw%.6;ciP3~Ϻ֒MDxpvg-ոAqݳlVLXTYïXZ "~ <*!h|H>.*Du_.֛0R"F Pymr$ʼ>WJ7 fFw(`SYpVb 9Kdc$m9rā(YVJ q! 8ſ,{{p\{'R3GS'}^pɏQ(2o܌}V W;ߪųH<hKC:3n_n8v$ͱ1*9:ЩSّ[3b_N0ǡ09bu9W XTKQ8j/ ycb]OԵfa. k)FY<:So[T@WvU4*6~<7GB^>ͫ*7(RWEc6P /*.-9ڛUfAj 9BK0ߑ$,w\VF52 = $F:8;+"WacsEB)eaxo񹸘] /*|>.$@K 7چrNk0>'p ~^}{zo_?uԈpۆSncAM b,T_ 5b2u-8-72iyaZY`B#*vKG)`l j6sx%WK:EaYyOKn8On~~Nܹ<'{իU&&9[O661驀ĔZp&:0+0>in3>ŕ^=T}Wve沫5aV%mTǧ)uo`vƱcs&~1;^U<ØT1veײJWW &%p uD:HMxv2uVRנ½QS% `,L[P 9յUV)1gL[ǯϺ|.--E"]1E:(RTcCFݗzN4x/PpMl,5Ld)QԪ9r<0h>2@1Hnbp"WJ^@i$GlT'C^4.ht@ų8c%L%k5Q0"pV$} Ul5ݸƩ_89M*1K @`4k!q>XۍpKp܃JducW=U [4ь:W@XdTH@XGGG̽&-'}zq{F57{p}TUe+s6*5'N I[jFΗ_oimQEN^Mu?M.nҒR$g"^: $MhwE+KxkfɮBCB lcR+|caH@xTvZ< Bxy-& @Yɻ **jŢ<gji^={$Tk~)iUjP xU^:fz38w,y0Q_QkINZ׾#M+9|~dedc}cs[6o] }4s7Y~.S&gpF;dÃB"Ҁ si׹(.!2p/|^nq6Vi`-m\У~ RS~L -lJ0I1BH2Ֆ"sKR,=>c/eIit(&_^Ѳ +4:_g~ZG+ofZGrz4<W oQ ϋb +G-X6!{σ<sGԏ=Ŀbga`i)Xh ~={丌"MVMzbspFϺl# &N~JeƶnEVeF)UOŶol<(46AwCwWKѳӫi1)7ͩ^8 ͜l<2-[6%K 57|wu=vk$,D_,~tF?ƅ@p <+pfؤmK;qX-g&/AlKi qlnfh#폒 юBQ89Uq7nSV}KY2EeA\FZq^EJlvMʸ\ƀҢA>_j{7jDŽc,R_<S٬n# d+m>_ƄF0}عŔ )@-F/ KΓk:76u–CfD~L4Ͼ1f: {e{2ȨéUo/`͛vjUU}X}IJ3^O^3W#/9E&Pcx ɸ#Oߊ2o85jPQ|FY b R_ɨ`UwO XT23jƇ|b(y4ZsECO>M]Qgbޠ]q-ȁw ϣCs)j_.@qBǪ|1)6"~ͫ8p)Gn<;쬲_:]{qmYޛ=6]J%%)ft.AgcTp ܓر?m.pya%>&ݴ7s!;؄!8 Vn@m˽bnn:#!XPnirߴ{̭ֆʸSPmtDHU9-vg|+w7أ<79]*3 #!?h#W!,?=wю5x#[<ӟ89 ?rH̸w;jTuYْ]tc9d)\UH7Yʪm D͚ M-Wewr)N)jp:.2e v$D01*N\Zjx{>ǎ=)HSM~Yg?ݰMJȝldj# t@%8 1;m;FXp).)e" lXq6;9,y'$PEEB21O醝.}ɡ4KLS: l gL9Ug)>Ѝ: AI*^-PBm;}l\‰$'Z}[\(:[NmZCm/,4$/9oWޥñ\l_-)9e\ˇiKn܉WsBݚ}?hIwL~iQeM{5ss ;vO%?,4,-̚nEBѳMSfΚ:lɺtY~ztXeF:.I ?c_#OǷ.+eC1xC"Z(X0iKqaZ_ 7D<" ϣCE5ϫR2> kPI`_e "^ͫ|Gx2߫@MT3T/٨@ @2Y9ԴF4j@ 6@ @ VD5!q!_X(3 IDATKTB چ @ @jw=ik@ @ @ @ @ @ @ @ @ @ @ @ +CmǷOhHW-݁A!A![k_5鉉"@  /Eqk_~ٝ<nQ ^+yt}3MƇ5NwX&赅{ҝ XF7mg"} -t\+q 6*UXSݶn~ws]բOsyoޜU'9|3gY1[{$$ َ;dPief?,;=oX>bmoʍOv 5 kpm<`c7<~}ĚqmC}pf\mŻ.=y}؊ѭЧ4h[ԗ +4` xj'Rl6_yt]'\:}fW3_ό҃0"@ PT(}Afgw1j]Pi_ nOFEO \a6.*\:H G?O]7A˼ #@`XEes@>2%jOro0~ n|Ormqs=Qb߼ (S 3k`յK3 yرquyy{s9 es'^x~ؔ+)a /7ey\/^=6yLO>f m5`Ɏ\)~ҝ+:Xq'U2f'* A_#3%WP~f&F-fuK)j8反cM霾87L @ ;kI*UP&&=v{7Nfݦ W;{G{uőb䒽= x-U;z~to9LՀf)4\.*&W b*X& iTqLRCM?U\ {]fNuIBUm?uW~n|XUu.+mzʱ6۶a ]J.ܭ⌴^>g?3懵ԔP͙/~kVny-iSg?yhbο^{זG~_1a;{qv#JF~#W{LbV!GULtߩO^Aeml_^6ccqwZ@F.Gv8aќ?N6_1fNs=z2l]=T/?Ie`fi1,& znvn.02A )} ΍)^Sf}Q%Hj ٯ}#@ǀ)kC}$0.IvVszzx|XUqHۼC]>q@Kj(*~znolEU?@Tnٰ5~q_2t{~0z0۴lfu~-޽uy/*dPSB˾5RIKzstv_GwW[$ϊC_Fv" *@vMd̝1eڳi o^5ABq5?-shłfdNjG^gyt-0@Y jN'W1sMYnv"T1| [;=InV* *JpLڹg_[ͯOxjռcr}\,Y*pMoTxĤ#&orbJR=&IF3IF @P(skKUXR{YFXk''Mqbf7J/0J{Nc|r^E ^_ӿɅSW;hd%;\A!ZG 2y @)h2*%k;#*"r XBG!mA@ƨ<>.IX~2;eIwk5>+h#92d RLs/sGfm =}} rk!*(֓hKg&FR m\u2o?:<_nN U] -[:Cڱiq]ng`ںW^>Er}?62Qi46%kne,qsz>Y>\JT^ Xghk-MыCU1aí^a(CFgf_e]qXJ-Co s^}sWRJrS ebg,Rd1бJ c`Юށˀ@ @Peq\C+~ !12c;L85kkUo&J43A@r;4AKd/pdVL@N(mOؔlp]Gy4ʾj=]<lPZp{ϻ_#ه{kF©~8&GzʋCD\d-Gb|+clStV7阘rq.֝OOVtf-ǡwϲ[1yk`qγ4{nģ3\ġśm6Lw*-(ҠJg728+1I%yf?2o܌}V W39 iˑ&l`GɲPSǦ4Ү=aĨKTeo*;k`6_3.$@K m(Fs:&a5.T㾽rޯ7bYZTXZT' {~|d?tH.g?gp%1Db j\VF52 = $F:8;+` 9t!5#(*El^KƯNznthymsPzzw K0,0L' *EUZ1qUZŰM۽yAiӍpakNa[l_)J;wt ~_1ͯد|>0*@ @ 7q`Ldpܬ7XBy1Bj&žC~CG GÛgRk L.,7K +R E^G˾(gɻw@a{?հGTb <9^ e%TVMa.+xxi?FVCJc0aaI`NuUI20VR6[f(yPF& spI]2sœW-^7ߐ>eײ~V)1gL[ǯcGiI)FIwԐtEfԧX^&HGg [4ь:W@XdTH@X wWظqآy*^^PQW1l|(r_(R&\cȁh$sy }#'R{BrH@ K/.m>i[K>~78Hˢ| 3{e쿛4)ěJ{}n\\Ӂz,A倹#Ǟ^_V Ca ]q.EN(di1)Xnl,7)64n`oinĭ.&1gmΫXg6X"BC7wCm0-gg)N+]3S{c@y~BQA ObI+ {N;L6&gb^'c] >L)a}5=n4 &T>Af0rpS@4'; QD@ OA@T@ 6;ܩ4*>kqO-/-"z!@  $L @R+{I4XYFLv%z!@ @ @ @ @ @ @ @ @ P]h@ eJL @ / ET@  ̚uȀ(@7Ez\B E$@%h7zež>gB|_{Y eƾwfߎ/r0PNSΜlb5~LySm^|f((@: a`썣<~&lTWQ 2XקDyBwͧljcQ! 9qW";xm1魡 @`ݍ&2dİUl?0z2YLU&s($ ի\‰O,?Ǫ_ݝW}E)aR*np̓7r67!/Luhve  "j{ڵ|"8aEo< bmnJ tXeK +M_ɤeVۘS ~1ۇ+/JT"^tOkM\tG0P&&<}XGC6σ+ԮIqrvc8bUMCwm꾔Is[RD?e!q%^a$u8T8? 4ZN>1m5|w9[uĻ /Եl3G ˼8h"cکUQis$,KbC| 6/ڗCQ/a_]fB+3@7tAb)0rʮZNcOʤg-PҎm(-( #@ |iz{u9LY ML ]'riVYZȝ<=χ@[$<\qHN0ak BM,DwQ1`f4+91])Y"G ꒄjK=*"S WZӛwEԒ^:/^ D|M.=>QnҶKSQ Z45 J5~q_2tZ~aڲDV'2sƁ왙sNqj4s7 ũYB ##lϔ1B!O:.wm\= 9 <}n7rɘ<^8p8l~I(Jmr`'nVwԢx&O *  ` KҫoFCYJPqP,k_Z¹3n=;. 87Q™kVQ9׎n2J01DlZmơLt".1tINhz2bJR>;Ȱ3h@s+{-Vt a|$ ̨Pa#ΐpy ↔"@ #R({ ivq|Wcȓ ۸d>~u.ey·c衣\`MDpB'l#Aey tDbց\pj!cbUrGY$vԴvlD/LNhw| "b{yO;b4o{/x< IDATS+k׸\r;w9o" QA`Fص@\R851R@_)/'?3e6R׾vlPJ/įq,#vH,F&81rXKVOɾ<˺ n )__bfe>@)D(@ #- wo s^}sWR`jI/:Uo=ɯZ5 YKd ]R;L(c< di!N(<@fC {\0 zZ4a̽GB\ P%@ |8y[*D!\xa;^Qe蘘rq.֝OOVt8x͆iX@ETB&g&2s>QOC t#WK==o䭁瓐Ànry9 "= bš^wG~.#XZ=8u텰)'jg@/o&$clStVpQ&R1eq¹} -&&.eNk}TO[4^KhKֿbLr Pd E~MǤ^}ʰYOy =#㠰DYkN.~ҵ÷=`ΟϿLjV}ɪiۇvE Vb 0BeK'oh!3;ti噅0Іҥ,V (ȹVE֘GBs$p|4q>@ u piɩ =w5 K 3R2docYt4p9D 3K`Sұ@@8-72iyaZY`+|\ HSCI>@>.UA&چrNk0>'p cV_!j6sx%WKJ5.{UDb$3Lȟ3ƂA"H>De1#܉Cػdgeda]#cm @bd9pQ9 LŗKIM\ꟵvߧWӍ~A-dZEc c3 PFή#5g޻(͝#TVH'I}=MYJ,Gߥ}7}'7o\w3 jF\9&=rBkհ@~ZXj! ]@ Ե @߽y]Ċ記؄w eYYQELmlT&T$62l]m„Ĝw-V)1gL[ǯc&g"g 8m0k#H~E j1 `̈́PAFݗzN4x*HwXGwv( 'E@`.vn%h$v5jb4jc>c[bI!+ """ EzhH μ;;i;)q1͸z/v)P] 2ffry(%""@yjbj*7knI}taQXi9ȾOTV^$NHnm>*<<[A"9QõM:{:98zzj#bx]Ij515j>_}Uhrfl}r2cbW6ʉO@OJ@bա);wKzt bg:zAqjTtZ5H^ ch3_т?=Oyt{/ҝ$򕮄Eβrż|Dٓu$a6!BJٳ/Om;-#],Bw/ґ5_jOd}w)8 9}ɍ~بUf~'g|Q'6;V̪c!F{Y[bـu'҅b k b 4 d E֖!רmUPSojXeZޞ7\Z{"KcSIop# 7݊ĪCGgz۠Ԅ :^J*. M_||ρ`odQy le ?֜~va֖ig+^_~!R sյ@x{~djhjil~=WqPHzn=:yj=qt|o]4@6 j.<W;bW+(]㫆]ԀHS'h)У˸GMp?E 0ss^C#E#{'&ƃw'*@;vV'!lKXܲM_r p@jdd% 9_dfA.qA4*uT0κ5`E\^bVtfݚєT,bNvS^3IG hcׅ cB!W&|)>'`lSZ2܄-hW|0f”+|*WPфK7i[G/R̴yFYw.mow2|M&VT~m;| bN!T!>uP^΄1'V-sfNv Qr b ׬1b!,T7km(b IA(y7T3IG sN7 ؖ}.т:MLJLjB!B!BL%oA!BDB!B!BՅk!B!B!B!B!B!B!B!B!B!B!B!B!T9^L[/ / M3.-B! &@!xxb[ 0)Fr}IʬƏ=HKRsS f0V,is4Fm# Bo}_tҭ7aǂM$\zU ܬuvWZ>,i:BNu(۠|A`H?f$8MoT+IbcN_vs'-J^6^/)m\,#i=EC2p y_oݹr5<eRa}Ȏvss[LX}Ц :_ chP˨5wvߣgx*r Mj\xYP DP(bB! ̲զb9}{>.=/lb x{;֯oaDfS-pO߱|YфlxsL]Qt׿ ކѝP:nV/qOiqfy-\1xzM>`7TJZgZThMDz^!eZbTAdڝzނ g /ٳf O.CА }ؼ/~>v<0G/_ UѰܔVϙ1ygB_e\"4QPBPȋB!T8b١3rݡ*w>,>s_ʤ!w2N,dZ\pZ/|vh YbJWBVMoZ],jt[kEIxP&`\OfWd>t{}T'Oz| iA|iȌ8^Bo nW>ivX/bv@5dZZ|C糟5]Qb2d װ`\ha#K?A5+cvܜ7tm̶BFKw̚C<ƺ;ϛ˭1͎v|}72ʏHeIlNe`bWp0ϼ??Yw1 t6nT:u4[+"˭LTeH4u#r%USD#wm(c݌Ȥ [8=R`Im߅ʒX֥#c*4V1S;뵉&MLUxd^{bnChM?ڲ ؿƺucL$2,bB!2=b; n.{*S$ʵOiƕaMNPL>]7iPhI^I6=Io>6B! }-P]t؋9{@lblmjr_ܴt ̺1g6JK#mxX(Bd;^xbgܜʓ80+}2|&e:9HC#x1AAd@AFr06<g"#Ċ˨.hRAUcRwWZl72KHK%b-2d %URG_<׵~ΘOʼn7JΐNfHMnb|yjcba8}q8Dx8ʞ~)hƛzeH4|)ѩ1 _EKkib!U(s"h^м_Et1.SEulBqH2kC ^`Nʂiޕ .6bdB! +8祯q:t̘׷o}]e%~?/0~:j]#pϓDE֣_u.X|E{yg8 ~+ȇ6>F߹ YCC5|9yN-ڴ H,_Rl̫<) oH6p9AwFo U)X睾cgW2E}kQk ;2,&IaN/A MsHJ>C#j[`hB %B:U*N e[_d̛mIMfĢȚOe0rp?tNS39jy>o#~vDgO&$NVJ*V?5\Hao UFEKy5Urż|i'btRPgMd@u"!b }ۺx/eU&Y B!q$݉J/&IV @퍭6xe셞,8Hphպl}ouLiΡXncJqqq)Pe' 35amy SSGvFA ,RM^r\z# Om;-#],Bw7 3EltCڂr/0:s±'{CX["\;HEXC#O1awݔߚOHY8DP\a5?J)`!%k*?%>SkL{N=o>d\G'雥;x&EF)|7 a"oHiIg{FeSG#o9Ag?8[\uOӢT'`lSZ2܄@aQ 2P'a;Ċu:zBƃ2w&9ɻPw'G4U/rd_7TibJF$X7@M.K_ylֽӮ(R(e˫@N1X!B!B!P(Fr3fช~;!B&@!B`@?XDC!}B!PAٞ_}zHZKJ9_MCZD=!Bg!B!T=2IB` B!B!B!B!B!B!B!BXb{1Л Y&^L[/|!B!jä ~8S&.5L\_܊蓷`"~˲ab !dھXV%)4_@}YsmT|R,zN4/c'[G$XG!`6`TS*9#>W>\s~[Ȟ{G<\tZ$;o Ɗx,C=u)eޟm;iUWU%6k o_ A69Ju+ pAY~Utp֮qJO WC^+u+^;|cdi^j.._2ӻ:#O7_>MY.J !wm'KʚwNԹT_)ϥE* IDATcP-&"zRtuu엸HiO-mo&z.V|w/T}PjKOhpcX(h6A((Jj*kE0vY#Z *eB{RȔ*(w?r s ELGO~9mVq[PʉHƋq'/6h*m8bX!'8Ncچ˼׌ w5)5H.=w피3懿~[^! |\gچ baVg_i2zeþ^0tޒ=k,:N"2@F.ҧSzƓs|@ (uBR$V_e8z@lAm4Uq :Eh:짥 }m9 JW Ʌ`͂!CJ_/we݇L3ū ~=3e>bqZUxڵOOg_HStykɂݟk9:/wھu>c\Yv;1SR`/wd0ޝ`4% zvHmjڱ_↢~4^*+z~߹qy`k*4i1]g 4/41yOR(*В5Y.LFSSBUi@U:nm]L@bwo?]?@0&Cֳc!{V)E@B/v6ܤ|Α~|qu!O,lfo/oԨ |n 77Ń^#8 }{eB:%7$w%zpV֩L^'l~y_6ҨtX Wfל~jX`ȐR`zZAK~?S#Ì0lKak|L녿]vvK<1ϭ5Xqp sE7 VSڎ[ٷOujཀ[gwOv*cg`ܺsO*Kb;-?TO=X:єQǒ=%wJzjb4c}6ngcI/%]T5[lsy9g*B?sޗY4!_!_q2.F~߅ CZK-ո]'z-_e-2󛄘P*>s(m 'J7ьXΤl*w"Rb۶zVfl64G!.ݐnsϙNl԰f!;2yrҤTY6?gl*ha^Ay{Q) IZ^mM8m-$hAxܵMmMd >GZv3//9ݹl>p-t>\=-f޽k'' L;zѯ)ڔƏ={mwxݵ8XG^.zy:UYqƸQ{p>G Iڒ>k@GH ƖH 㺽Bwm4qbX~ƗZ*\I|*GK:z *:3Bb3&Y9O|[%?a=ze"5!OW>QPfoJ{a6 \\rAGF+Mh]|\6q:)UJlQQY%4MHQUxVBZZJBXGw۠ ȍaMr/,il՘g]2[ER@6>. "Z7" d8ʓ fB柢kLa!KصFh͖v1Z?>$W.i?Q]&d饂5  )?|5K,Tu)xML@;qd]}w+7qlbʀ(dٰˮߝnRR=K6])y0b%B:⩿=k5tݯr(NPgwu2KGhrT'H= ޾6"796 ^|利VlY\+wg;O$'wfRhDd ;^S |(-hD\ߵ"xmPLSW~ieqH2kC ^`N뢪 v:X~OXbT bavdMbN_!/̋XpIITugMhT͆ڸ-@ P,Dм"yΎk\ UMk'{G+M[:{)ONRFn?߽yw/6`MN-ڴ H,/ULH; w2,!Á܃_MoO1x:?);ᐖ\T{jE5dBiH3G"wpz@ݻ3fjRiʘ@:U=lHPUcݐ814 ?PWF&P|OLyP"=$-<  ah &0q="}C;2,&Ia԰An }Ox`v1cǫإFmX{qI|A[Y%B!ē?..'H:qۯ//TpuEsXM,A,H {P=Q@@d(gP@TgRlŶuap1puX6Ň=hC9>*f֧ xcAOTOj RXJmæ{uXM<@iѥ#N1^\Mp]nxa{E8S͊~xlzL۶{ş+f|v9BU/ (l~R*6o;kMoh\w)b@ܓVi-IS"wρsGb@X,~Y"M$W Lw=Ԙ}*(cF$@\#&<DPZDZ]Zmt[iWl=N-GUTBU*wỸ|]O2PМ[+iއnF}{ړZ}/8YY³4'mubFwI!Gl*/2X Ez_H]H4{:ʂ?qAz(;3|'%R$2kBqVJr|Ȣ @̛5$Ŧ=P6b9xն}?|wݿ kmӡ8zzj#bx]Ij515[lKH4ԆSӊArP .s֏_sWH rc/άk+JZ"D, M E|X8@i:?,u$w܊SPgMdZ ˀ zI#iv#(=*wY1|/~PĶb5.X@ŧ֯y1D!P}>eSkGGRY#æ/ X{= e^Ev݌{tKUPwVV#O1awݔߚx22`2!R91B1P[tvJ>-!ٕ&4WBo ،=)0nJ/tT"ub2cOg1%b5*{w]FUNu&#>+>XR9XH gnZOTH<ƽQs?2H44 i -[zY5suul9dh/} 7]Y1 /90>?, \ "֞HmҨlǦ7XC=:yj=qt|o]4@6 j.<⋧: )M:7FvVrSBK*+>9.B_r p@ MCHN>f  B~24`|H";B%ȧWiwo/$Yw֭)a]VH{ qT- ф՘֜~ǙwEq"n8}@)1&V+%^O`; ܧ9gKw/2SBI֭Q &@VFJ] E/TlޛQ R#Ҹ묤 w"[ dLhQc:Y. #],ڒ軿ͯz[]qt&J_Me<˦7T~Q !kVvׯ;.H)Omp:A )$>_$֍…^\ $ wb*tH/SGOx3aIOCyxtUAHuhs MHGf鱑bs u1ͥڼ _`Ŕ'5ʊsi~hMKڷpgVӢ6}MXyk"q+K\Y3h֩<M/^0mv%dG^;wJJ*K}a1kFS]7w]]ݦfvKە[?|l>ouphQRtrKqLZ@ڏ|^,8*ڊiWRPb` b.!*f1*UjlIمe)`[<4JS2\$l+/Hfq b_lSyY/"Wg&sZwUHKyL85o 6fPt2gN<ƄhI#D=LĒ8g͔@8FTݼU*B!B!By̘Wi5y FY Oe0}V1{{ XJ܍8_T,,iɻ6 8&B!/ 6BKwJ.c9W+ HZmx \ƺ뵂fo>[wi$>sTkXU㰵]?$c^?t̹k7w*";s_.t̡S:5zti}oWt{_x5W2)ńۗ mRttњu엳HinW_!:˨5wvߣgx*r Mj\x7E MyBShEگ j;ly4t%Z߯B#6B! SFՐQOxw@|VNH}#cY<~ZWٖt\ &\:컍C)-ٳh̢T YCC5Թ^`>d )^Lk$J^mq뤳'r4.5=1"o$-qp͞YAg/F^Yy@88wGMcc hi8q>g\OJu^.Rtvњu엷hMf,|\gچ :5BnJ}NKVrރ!kK_D6Qv&DҼTLn6ˠaPm!B )#jx]4 >4d uK/!7݋+wf"FiPCi=wp=Dp>[\%z.CА uv=#>tݬM6p>kCojfK.FQԈ$tyq6̪=; G'/RUNfmycH6l[(d$;pǬ9?S`{ kǷow#TvZ$[  ?p Y +̛CusKWY~㆐fm)ecbb 9*WD[[f.Ly, ,ޒxm'tCXc[a)@(Ɵ18 gm݈\Id&@4QWYe‹uCmͣA[ 34=~ ){!ת%qtZy;h&I)5\r!MkF8Ф @$͔J\@s=D)a,ґ1UQUxoB!* B5 J>HJȈ&.D KUEΜp"e맆upwRzb?BwZeRή{+V ^8mhbԻvﶘ9eӭ]IB7k֮ϻXt\P:zri^\\:h:6ƍDݧOlxl2$iKӇko<:ҦDJcsPg('Rq@I>"ٖ86~d4qbu)PRbLHfeH{?H<):HW]\eLhm:u7/<2̆]vt I_JIE}_מ^:cC?9'(m;C:# 4ZOma8}q8Dh |利VlY\+wg;O$'w[I1zMB|#08qC_Ȋ&a$:>)0VY$64ƙԍ1. 0`׉lSBkȼ_}ۦbA"(2fbB(Q´eΧbRQ!B\b jPPPu5. Ygs+ ~*CF̦fV fʄd爵ː54_g ЍOn.SFۦ;km]Y8!pSA!B` j椃 )z(+g(yaRW6(͞Ψ g z\PȾOT˃ 6x4vyruװfTqQмKeNLQbR?;$ [\ɸz/v) y斚شEj&6rO,4ɂj-_`בsژI#ivWy-ƞ'TA㯖?jvY "goI"{B'u/ !,6BZ< TÑcY'sq<~&"KZt`,1.I.\k{qBԘ f T96ٞdJ],osg"ǿvs}Π]Xj2d \nR g{++n6 'hv:uܴ ^:Wv @z[gM(mW˟}AWUO * ?GRwNv:]eD,:>C^|(IH4u@GUu峺_)Z]IedzԬQlhܬC_ww.eH֬cqmdck҈+MMBu]K'~}yoZ'sglhgߗkѓRсP"Z234\ kɺxBr4@ژ(2F i"'̼Z&6 SnY1LxAĻBG:s7mAQIPcXdMuSKPfXܝmKTbrӵU>!BϾ@ՐOmp:A )$VM2=6Ryе<ЄK7i[G/ &fm_􆋝U&7OT:5wf2>Uo2n϶0EQm>j$pL[] ّүl_uXh̚Gן.XVw!.ZR b;zѥn8|fi Т"s+I+6YqTCҮ$7wlŨ]BT +ͺc!Uؒ #Skg*v燬YLĊT@UT>FSS2i!A6m?^(@85o 6fc|F!B!BՈb$1cF^qV=o'!Ba B!@0 UTЂF vȍӄxhʁ%@zB!Ћ5eB!b{6g[v!t15 mUXv-h "MA!B!B!B!B!B!B!B!B!B!B!rc׶,B!TW}!QO\l &Hwznw[0}-ˆ鳊)ãbIMO"HFA!^V9lL#ŇGظjG6kAdBUKoiI#.o-!khHU:]1Xx:ر7_*zۈy2Jb\|4S +" i1a1|ՏRc ENji;6{O;H \ueԪovw4#|ž\zBB@ By'FQB<=s`<2T{XvٰST@CWi ;!z2BzƓs|@ (uB 4ZRؾʶB}T4vam|/:Lyoɞ5EcNzeR.3|x53aү=(i6zŭΞeѸļj$cxoϻQZ$V,Rc ESh5c=6\(PeArSB;5.u^b Y{M\"4ABL4!BOLn6ˠ1TcE@)6B!r5eP 1ZwqQO};z=JQņ5b n4&*1X&1KlQT,I3bwX@@ޏ{PA玣=\oȾ[8~ҳL?Z *S"FG.*PV#֯c˦V&(3hwϧ]Lhfĭ#}wM+E"݂ b`|}0t0xJ/SV\Vuܐ&=2Ϟ={WwDdW,07(wg<|X,wNjݍiE:gKsaL.oH=)5mZ9= *'8BuE^swbdAhM= 2 lXYԣX%jBcvq#EVU53Q[wH= VĚq11' >%3:2>oG"Ă.0c瑯9J˙qϘ7% ϧ˂upZ$}]R`I{_濲;W-W6lLo3|TLy]j $}Q;]'F6_@`Q;" gkr~,WH\n/jJ b Mrݡ$mN4!W(G8iSfFp@l?!ˠ^[F׵VA\D] AKuha,ZD3ih«1PxJ=}V.SiiׄW ED_-ceJSW1it"&#E{<}{zY璗\H)rH}Vcc> .~Q>l>-AA>x0 ZQ)MC %ZFyTc}X`ZRgg>3=ꛚi f:4+3}>i '(#12 MOKNc=c>:zK?j@[" fbH-Qyxo8!C_D ~b/$U$>NN~"rN䞾4ZH&DϞ>vms|!_u4n,'r(V-0gtr HeN0!@iqBUAQT@0QB]VRaCʋGA ZѬT$e1gnp NDi5CcIwu%1!aٯA$FL9TG>-|4| գ$&*upl옂l*(zs$ 3E\pe{wqwE!09*:֋V=Gr!`?CԢi^>x2u>ێuhNJ &z2SgB|uD>#P 2@5 ڒ>77!+fF((zE,ybU\ā$@\0nGH5 |j*0l|8⚁  >,A52b71&TD`mh~ŀ7bG7Ɣc*fQ4(_ b(-hV|iQ!^玲ټ@Dz:|S Y4]X{Wr\ )2R(c<R*&] v?\:;=bۓoڠ.)i11 0!VV-*VR Gu/|Oϩ,hN~!MO2ioERW)ubػCE/Q(ʓ i܅5o,D 9C|B_HlM 'M% PEl{0RiXgh8Bx+6% 3e{2ڥ%ݘƎD ]wRxAAWI&۪} H'[C!1qn4#q[JIwa Ab#%>󾟸x a)l~>̈ U6PPa_ٗxj|?/_0Scޜ+`kXYF@koi4d9Ifm_L$Pz6;w,拏%y{׌)ol^_2wmޤ0U.D`,{g!Ex`qX [uex&pwphABtb}$ik3q)l*yzPފ}r/v%q<.}E MQ5+w'uɴNDJ(HW$IF3O}KЈq/Szz@u/"ʐ>& ʟJoQ8|sWeU|Cd6.r(>)M&R:},jEK    Ҁ1,'VDqZg5/BJVq1s, {4t  | 0a< JK>91z4>v,3As  @]ֲPzCxi''w=.?]=xZ.tEAzۉ.@AA]4-@S\<(CAAAAAAAAAAAAAAAzz)Z}օ  +} -KWw{l| *V|G## @=n`/awp?#'Bchn*,iVsq8'A+0 f[e $~P"FcCJugbJ2#oՆՙV}ZX4| mmq[3*,Ҷ:]\̢}?9Ll7'{5֑{d=Y]qtޗ 1|5泥H='k` ^{{C,é<3kw(i4Q~חd@?I׎1(O_[1.3["&P?V^zZM#4&eW>Z" '@1g1AAihuaouLZY" lcIFKƺ51uc\mdבraصq>i 9Y@às JBqa+O:mфulXTdk;foӼMqNc] ߿cF6Nmzؙ]vwICz{tC7B#:zl+&HHQs~ 8nL?&olN|t5n@g7?p#ƒnZuU y^SHL:ӏ^َi1hNL1 ăֳ*x^=Ǝ'jnncV mAAA\O"6WqA*(V8e6sX88}a d#SZia}-~޳-973\Am5"}٤߳+|MlGD^ouꭤ2{E  mooLZU3Q"֊3Ui)JEE-+, IDAT6Jl6TW'#^yhZJǽ|D&Xe{{mQKA?ADbY;wԐ=*pϽȈx(Ȭ MZ FmtcA¨][WЪO 듆oP>aKXGɌo !F}霶. U~͕k u_wj?Ym3MP1(zʉ__}j}Obx{53eR=3DPk+1/yu0w/+?LV:>A$]])˫czlyǐS0$ H۳Aby!hQZ`HdW2"8R4DGR"Ciry* S_(bӮu/QZ 0Ш35Lt\#Zos*Jyo'%^ "HqKq[d3SeZ>-OD\~6DFqh  D|6ح4H((/Ҷn̓g]-x]t>BӨ5g7 X>uShQMmǖ.SEq3Q, c:Ь#~ׇ.VxnF:_ZquqC7+S-%:Zنah!\ZX )c( 8d<>+թ4a4Ack« "PmĖ2)-=^lſFӧUOHQބOoG+7>͟0VMx0OWPT4M䱒 ' AAwQ<*i@$@ JU8v9@Km>3=ꛚi f:4+3}>i '(#12 MOKNc=" ᇾ2S #qI~fF@ÌEvW,G9큝f^ÍbuE_VcD@)ƮR>A,B2_ZM'"DL1MiBs`ז='_Ovq+|"bQ{F'Oz^$ JhV'Z.n֝<[XH+2w'8A%|R;D&u'RZ&S /4d,Ӥ#8um糊AA)#y4+$-_ ъp NDi5CcIz2pJbB²_Hڍ>sT; V}ZiGILT<4V-)OȦɀŒ ~sǷι4 @63-MxR)xTkiGi%M.0uE-$27cn%x#J. #|ChWarTtJz$BB~ūӼ|"d$1|М$RMs9"ye΄&r5뢉|.G8 _eJqFmIq-P;"-[VDPKHI3D5e4vgM hGmԨ2DUxwqWm]1@# `y1"dkkD#ӼWDdc1^cEcq/ } 1ׁ}4+Iېl {sGYl^z Uk=}I:N*jէo0v: 4'^\--fG~$+4jw3YN\HiťE3.{ϥŲFw̍M)0u;u'  7 $ekr S&̾kqEqƞ&)ɖ;|4}ם,[)I&$*bvceS3[gY^BK~kبGC5"n<_x̶k}F-[ZGә7!Ƹ k&壃 /7ebh8 @AӅw%)剱@-!* =-rmbbeo#=i BӬcr "ihѢb%qdZ"GJa$ &`Q3;H8Ƨe*ي(Ѫaēs%yYcArG d^𱯞Q 9䁦%1o95 "}0rfZ >1Į;)gbFAg_ &%wl~" lWҞVz1aۢWJ [).ўś@f ֟H`<.aFN@\u$B0c7ʾSy4n]w 6м[20"q܆=c 3b#CmY<>jEMEڴ 5*M[X|x+Jo,D* Z7mvYK7K 3,R&*ؼddeۼIaCN].XBK~w}L/ ЂgI:z)sfSU"ȍ &_Jʿy (d]AGɣ"kTW1N&ܓiݝ($QBIfƨ)Kha.~l+TKJϦԣ#    E^?2j^#5We3=\l  ]    h ҒAN]VXDO! )#  ivY@^<3ݴHoVE6t                     !`9o^2̆jº1׻!//tTmbuybABAA_eڣksctX HL4` k1׃;{lߊoXFשHSC/SZlqs\4\=A:6ƫm{M (D.@D]]?woSq60δjvnmD:ʯ -8.ؼ e,0N6V=&j`VIAۇ6nL݂ tk\I&ݾ9qp9o'EjZ(XF>N^Ņ^صxt K˭v[ǧYmrOW`>}HHak W7U{_w7<@ 2uƧ훙i>{d=YTH%sFmF4Ԋƽ}3eH3-.7Y]+\Ml:k?d=3#\vwNQO ig}sro_,1-9򿁷Re]qjНfuL 22j%0f:_\QEC]ffb7gG]DA0 >a˷~ qsXV0|TZZ53Ԍ^d2%<wI%<'NK.Z $;?uf/jqۂX n\i 4ݺ+e cA,,Jb`,Y]Mz6{5irc ;It;t,+)nP!@z)ӎmaKc9gFk3doSx)U)84Ձqui^N;ʳ]}nSLk5>O-UR'Z;i䠝|~ c!>82/ل{ZҀ@/t Qo8» \\`˥\ar?p/u.SY5.HԱ"ֆDTNV;0ՀNVjp(9Qrz2m?QRQy^q;aYXwfzjɎar--ֹ5s'g,%ѷ\F7ݬY<%att"v (_9~[6216ФEA[W,Ƽo|>dB3#nnZ*\:`D>>KrT> wb0ey{6](ϟ)EM3 |bͯmj<@L[WZ8;q|ؘf:%uU눡P֩E1a/L.C(cOʣ+,ΌSƼ)y>ͼ^~`xpYv4Q^swbdAhM= j ʉIP)<_UfaQ!6;p<Li7oԮNqDR*)W5+ ~9ߗVGT';Njp6Z|QfB.3Odc!הe= Gvmeģ_w9JD%4\)bi8Yס_K_U:J4l}[kp/ήvPؽ_oo~a'Dsn@Q[aw[Wcʬu`Q9S3ЂzmFudOމuyZ;8oWH ;yn[">-.Afѫn؃Bٴie8,-nqɰQ{ڝzCƺ2LMR2 8D.PyUa0|l/z׵qXτ%Qnek? a%[[ u϶cd'|Wn{R(q;oc|MB RR~S%ER./tm~q?V}s#7m"-N`(-4ٲqwάmPFs̄䇦K:6kZM/"-M% d򵬥6l+;JTW&,;):[c߫{i;uCa;_SZ cik-.|@kªEVm\K cE@%+ 9u18[ 툡9{21擥~<|y u~KK@%%4ꉋ*'~u??hϔIAiv|lQr_ļ)?ܽ*"O|5uߚ*F^ o}O/SֶZ5X>ȩWO9xwZ&. v.x_ձVa4H®d&2!qNr^ȈKI,8 gDu?Z\#CBnBy>$}QbӮuSl~(M~ROB3/-**}5ۗW'RVxH,|$?HޓwִR>Zp.Yg\YRZQuH$j=_FN?\ GYî ,p~^wY p'3dҫ{^ \ܣufgUcs&Mc |9mOLӦ1OVH0.(X@cnX73ĮC:|x!'D.+?Eoߗ_ʈ^\tQeskrƬ/)jEr* >. y9ExArlXe ZWiԚ,)HeQ=51PwOYw?|Gn!yxVxnF:_Z" {Vc( *d<>+3Ɛ}FABA! O#!M#MИ jUZJ:*͕-'˥O>p_wi3쮾Y{'G6xhFMse_O댫KCK#vU֖;/%X82*hfBb!q22 %DvC;;Z2EZZ$EKz qXg+xY>+f, <]3G{ *ˊפS../':JeJoo_wv˂_p3c Ge*vov=ewzA8 Q>3=ꛚi f:4+SUkiZ1 J.C؞8Ւ|$ [t ҺTFGFG܋oBi5>*$׵wlDnƕ5dkha"3V5]<=ķv.y7dzD&'IFaF>:zK?j' Rܮb*/52Gj̣FP5޾ۿ2>諕xUEU}H Sv9ϵSvĿݪ>G3j:pڃ?-|oG}|ezЪx5BM'"DidҸ]ܳ ȡ։}}uA>8(J3c">-)2k0=C:O+Ced"Jyj] 硲ѧ7m}1ƝgV$V]>طsTd6 4+6*5<ĬZ>./':Jed1 Gyy?WQyԥ^_,9/̋ HCA CcIe5pJbB*Hڍ>٭Q IDATsT; V=_Ivmy߃@'W˓*Y4`"W\J}>RayvճqkAR Xbka"bԴii‹ sR]K =pPs!t03DaGW Ky;q̲uy706V'8!3TJtpW@];SW5)/#>laG|,ف٣>UViѼiCarTtJ[C\"$>#K3 | vDKQ#|P!jѼR]P 28(`R x?(Q|A]|.tLE7ek?OKrP ZMRDSr7VN3÷Qu9Wmn-'ބ:J?=` mwytOh=OhtU~ 60H'5*j"R(L}?"R{9d[do֚+_?1٨#h^ZĤ3k'qAusu't7qZxLF15r2qeg+la[[;*HOo=t 4~sq:ӲРgg-UOP*w=( z: 'M9'js]GNj[82mnؗZ;)n`K=:,/s)SL!,* S؀,֬f x' ; 0aE$זM67,+0Er)60-a'91| :Z6&' Jl:}:'Gm/gV6ɣQ7hD 6&/4&qd`X_*9<;7 #v*jHTnt#G#E|#*) ӳԵqa/vN+d^+K*}?Hp,Qm…o~+l߉Y"]~ ^ 4\8/#^_~q4$wxcOQx6"J5ХgB}q6wC729-S;ܫo >sJH"%r [Y0]UׅBG,ir~b\[ qilv UusKk6gc|2 SF h~S 3iOT!o?fDT|x2zM|@cjiO+OdD3&Ӣ8CUGS&:[ }#$;!/RCֶ~EF>!Yc',T]{NյP@G)S|HF?)]m"ˬS\::i]s~Okl!I 5k۞rG))lpKMM;oȌk?76//;|6oRЪS 01 K\[[->oGB֥]|<,JoQ8|sWVB\6w<qw2YLDD$X0(:wT}4/Y٘B|],܅*" 呛|/~=qWFj⬄'֟"O 䒪> [jȋsҞ܎X wE/Z?4U/=\nC7M*yڴ4 R_{ԛ@I3cf*VTSh~?NKrӟ)R!F) a f5 G/&&E\T{+;ʲy~뼈Q+o30AAAAjǒ4g%B`ua  mAAA5د$|uDH.A2   zhn*a"{]v                     TBՈY?|֊[sA!CA4>K{'y^2t{hpؓ'js=GӅi@㍢^߲?gRuhYܸ!|>݊"r: 4y\R2ǷǤut/cVtĜ FA:};}j:# j}8w`XWRVLy~^[g9&ˡl5b/?qlPg֪U{v~SkgX+>԰ ް\ܤ۔5O߾vʩǴQZS!w~3VM$y}hgί޼S~? ux4m_Sn:ʬ3A~R#&vo(ɻ lïB/ucE*8JȮ]33qͽsyQÆLaPS26)G*=A:u7aՙtZPMFO8/n{ݻ{_[f$);'VSX6y >7e 3!::Dϊ>9~jM[`çEJ4~6lkcc޹z]k tԭfPYuR_˺GK\ {gݽԻ)]q[U3LYЍ ^yW+B"甆_upܥμ6Uo8)Zĭ;AW_>@7l 4R%xuAVd7i՘O7Uȝ |-˜Pp7geLu&΀\Xc[| ?SKhIڻ4waxiiݻlGR~3ωyȹ_M׫zi=tE3|[pkэ+U z)ӎmaKc9gFsJٽ~7F|ltRy-w㡘-Y]Mz6{5irc zN(tb#UĨ5@@$(5׿|Mrr{b|.mJ0%4 *PzW~-QNTHc ?т3WJ2)Xb(aoͻ}:}yo )P j˥w}񎬼4?E~ޣ-ޫsf5ϲxȴ87 h䠝|~g=6U`wNiU'%ܙ&PSbk~v%ŠO< ^Z٘]$.\ߨyj(4>(8#Fsq d{Ӫ<*SI <8M{==?WWh\ku/cW#j7\EDL٧|׺ s8}Y#>wxfǒvjd;4[XS\WTF9t꛶U(_Y$(tiߩ3?y_}zYayϗvwn]9y˺SVt#0+'u6d1ۿ%}{fp@hw,Jj+;rAn1 ;]^߳_~nH"3=Jk.j= /\n!1l3v{ը@.s+t| " X(^b1Oy+(caH)^n4.;q+;qVDC6n\q#=UAj1T 7Yinܼޅ2 \&ˊFeoI\YMuJoC+oKK%0SPu'" tq&{)/U) O 7-إEeᐊ>0+fJ-o>)z6I-|NsFӍpL7DMFIJhnHӼ^V{+>(<ѿQ `͖>h0jљZ{\x+nj QUcX v#$OKSU ՜1䳥@#3VmGFKky>rW22nĎTd\|lOK{jD6mZ>K{{%xbVi+$&A'Fiwetﯞj܁yB,MF]- 0F63uÊ졓SȹӐV_}RwٳEFn|mG.MLپxuEJ\Ε%gC|]8 E7.뙐$ n޶-[W=>kGnG6! 2LMR2 ޺wqjoh]mثLXf%KVZ3' ߫Ձ<zjvs).mj ^ e;M$黹g _H, 4 vbm SMH˴`GO?.G5ٖmKd0)s`4}Ǒ4lL YMmT(s;j=+{tO9r>v]I}켹V7W Ѷk1oaӯgn2{cppUEQ"lH)yvwbٞxby؍t HI/t3?@œ]vycO> ߋ_kzɡ1Ko1R m?{P}&s,_خ= ѭllg(4T2evm;&04$Ji6fOI߶n>?f-tHek9zzDVt1_{TYN$>5u2~:-{U7d2 RR_Y4b^q2a+>jӎaJ)p2STta^AUzJ#cjY(Y?ǎs"Q{NΒ3ʶb4n.ebW7WgGfwndYUB%!RQrQ!:cs."RyR\Sn yaJ;\eQjpvwBй΋/WMG<d}CόkVhc[=l:x@oJ-vV }U<|wSϟ۫BGW ''-I\ KW#7oc,eSNk:h7<$CBC:M!Ȇ[P P.~) yjx"lY+I";t%2ki6'P7~4#brG*1s)m >?! 7`"791_;_@ S?%|VC69n<1G3w3CV.#Wͫs\^ !2䋡4^YN[ů}iݼ4H1$xa'u^=,9!Ȅ=eCeŔe zKD}:wЁ BFK1V68 C,Jco;X u aML"p_ %%5:;%$ aI3;ݹM[5?OzJ-Қ}ϸ#tO_hl&Zdqv2̕Ѓl[f<}˒9 |g;QA6r=~_|Dp=zVkU;Q͊nlȼ8Yyq!?Iyh7QHm%ጜeD)ŦSng?ͺ,Q0Ǯ?{_&eZX>?ØD=,ݬMK ݮ~)C'{ʆ_|@=2\iS7\HK6\?uk-oJ!MjkKˤ:iPq~ W"5J(4j$4layG~wtM/1TmZTkj4MP-:͡5?uhRrocX \{1?a{Z1CY]Ѳ:8_qߠ:c@Le8,{zV_%B']ƥVJ\@P Im7*ODQW6.xD]QР],ATڽ k$iAJҝdMG)6_" IR Ŕ{B?OgzrJ1ŘeAc^3da^~a3A_c^zl\@aceIF|\l @̇w&>ؿn{w-Qb\t2o˪CsɃ 5%<Eb)c,v"YS(*k{-q3ssQAJUuJ/aAK?>g)i9yٗx';T$qR;;9e#N[^%ku#eېɶŐc9S-k\݈_gO}5BgHݥi]z!s8 IDATBrWԡڷ/HqTMm  ]48ˆ4d[^iU=,+ _T8Z-7ow^b?ڍW|p+XflN%$CNtv-mȢ\H u EiQQPH?O&mmTu˯%KyY9MhjV: :=""vHvȧHq.柿âKATDܧB@| ۦm+ػ'.<J+<%'ҦvvFgQr2~"$L^Yw¨ M8nq3v<]_=e։?RVJ3$mݘ_JRBBJ3_;t/$tmW7#rl[Ga6i(}P@P`@P`"E=Z^NisRaH]sO SrulLDKl|1‹WAaFwDh^W?,O$gYrdQc[_3ތy $YP"7cnvOxȹ2 %WOkىIamJCi0HI?~հNiŴ~r+>5RDՌ]+&^v]"چb'RSDT^,ou#Uې5HI3dnT W7W)#dBE߹3yXW߁ݬ_;_<-s,`j/މ S\ss].\K%f],Uci}ݼwxZ֕Kg|86O*,ώ=§菏\BgnZcai|1릚%l PS%CH(⨩qۀ&JkoE;&QKL%drrɏ./(a<|d+s*j '*s8,޾YE/ݸPɚ4~4߫H(ѧhE I/%5s%:빎+ona\6*_@\N W|Qj:7$:鰲̤_(/y ETjzV-N(-NAQ ?CwhGA2 X=EEF !MG݇P r(aT[>Iwn'@֌NtFuFmu`G].d r=[;h@ˠR٫S.t>yMLPY8Oki?at?Ih6dU/2ǐ/Px6H1 7niޢekJiIgO슄Wg,s;[ߣ?*-_dԮ"1DBZXX*i6U /EFsitGNq{^}Ȧ֝HJJBl*g(4 K) V&5P,@Lذ}6o5U+dmNL8)JmM,Zu2q\?OWpϯM 0dnT2us %vE{!n_nmG!;҃ҫNQRW8m?I$Qܱ>aџ .NcNb?V`m2?sFHLd5]ia.)nPhzi֦ܔHs+OW"O6ӏ\`]H ]FSY7 uTD]Z6d9Eg1=aΘcd/xsВyT՛ުBeXNy%wݚ^^)J pYxXBhHj|&ʲlbEf~b^b*(.9|댭TdDr|2h-3s/?j)*DiNʇ]>@I׭.dG{]Xt> {8qӤ[O>Q7mܰpck¼$I_An]iݼ5sKR?*'coj6CF_H+K:밲ʟet9_JBJ̍3-Yyɑo9z%)_C{ M-t(%f^yzg%zlxTl dIJm1`v (ObNbH+nT"9m'\V'Wkk<9(}pq|"JC,^[tʬmTOAnKh@ͬ-S)$Gh؍1 V f)Uު^m=}}ݻĦӂ~p,}mE{V_{0!dfƎ+zqszͺAO;+򉴶_* uy%*C CX&}9^:/(գ+:h;PܦaWS6˽L::0Ƥ @Jip|ss&ZZfMS? eeT[6Lq78wM(fE>̠(Q\D= a2r .(prVID?tZd Ų|zΙNm9IZ Zb37c'9^E] ?94U^ pxaRtNׯ:O0qdH󱇮mzdp&˨YvŠ2SȘxRِ gkJf~B#Scۿ8߯1ECkU\{i=jf KP [l}.ö́qe 'B %45 B\Ödz?@6_rlpuy04ҶjE=/I_CJoP#z*y@s5R274oߪ|q9qz2>ZښY˸E fc!EyἮeʳw\xy |wPW[h bvo SՇ9]gVJ/7~״ qy{OMťPKϮw~fwGYٜf__N}ޖ=hW0zW;+lI|1/sW_L4{;6:cٛ/|yus9:sH{|z};`EN;pݧa^OoTK'n}<iYU8AExze=>嬟%67ڭqb m> |k{Z%5R7A~~/_XpCע-Czwn;{em잻ΎfTr(l|1/dB֮'.5ts+sT Fj~®/nJ5Pܦ!:EX| 6LlVH+zKN}qiQ>? zbZ.1d>9Ḋ61E@_\ZfJ=B2ѳkgI9ȝʗ6߾d+(wnuALBr^Мެ~!([\+"e"їՌ ՄɉRݠZZSO.R5u6]WPaidx =Z " z uwR(%*Ԝ'zj&k\O͍6{g2RV {W l?Pb(^-T:woUeݛ\00}C]t-WCw}` }ÉO2ZriɣD;M,^q΢YJ$$Ox%N1+6_?No/r4@úǦ>z}WZw-s2 *Xti =XsE;@G:/>4td;8B! u>uQ  p0HK҄ Ad}T>&fV8^ЛR xٍ|[Y! $굒 LLEi9#ScgNj}]}6Q !R'L7 +)K6ů;Ή F99K(*iP\ZfJ==e,H==04\s#]%R. ٔ yۘ tyʓr$.-UU".?6eזM|BGw֫}dA߽N񄎮.), ylYBmcV6 y =Nl==)/elbK!/3 Zu\K83'Fs;q^UyWd0tdSS@s߰_8R}D?OgdRڷ3"}Lly~ۯ/bn֋"hOMї3?Q$|鰲F9j@Ӻko?;Oy?I&PNS@8=e=4/_Wk$QDZ^TõDA?JHslt9#9Ɣ6nSy}hPRUUQRRAjP/>U?ݡgzqNg޻! +o+}bչC./y`P /,'?q׾ݴnc`2+[|i(xki'\,kۦ<T=W\geѨnj^|h:fjIT-U2:uٱg^ ~GOЗ)ӥ ZVd^re-c~3y޶| Z))9f&:sX>=uK%}adLhS8u_zM[1R@g)?)NB6ɘm;Wr*EmNtKJq$qUQTq/ݤBZfJ2BHTvV6oTafh9_a Qr*K4:'Jv4MC3%-r : P\S to]#v@e@^F k}_P;;9e#Nܮ # IDAT[^%SDjMM ϤʬTՕX򥰶'4 @(8j+% 5uU>vZg6 )s҃ l]s˛R|-^v %}]( jKefLEѲk|Z3S6/ u/w^!1BHqQs-7𥔊:?p|z/j!C[}tAZ7"(s@! 4;nTTE]ٸtyGBwj APi6;k<+Iw4H||1‹?g$I Si o MVF< B$ *Isuu @9:țUe,(Ac^3da^~a3A_#ezl\@a#lIF|\l @̇w&>ؿn{w-Qb\t2o˪CsɃ 5%<Eb_c,v=YS(*k{-цi͈ʈ MV{rzƤvWv3Q:~J} mćJr-=//9&Ov(Rzj:hն&Xzۯw2-$nrw=_뼛׺`<_jPCT=^K6DBHXnHa²:T)) \v4͞rN}VPW7S ow^b?krTwWv]eP:)BI)  ҢR (VUSߍFBqOWEՌ iUSJ߰k/ٔӄf/#"2Ym7nl|wb[7,t1DE b*4Z0MVJwO\x&Ż+DJNϭVN$Q itbe󋥌̕~[,UkQT*_HCiKxN򅄮ם'fBV.`"|(f %   |\_ 5 oN*~)0k)1ObJTӃN]6mDϸXfCi(xeaHqM݉h4|B/n>y\ M:ӭ_Ye|#mmTu`ymeJ.(Q^ˑGwm5x3郂FXd@J`VN|lq9ۅ?~#v7ˌ+d̗\Kƒeד'ʺ){_oRBsP_LSXFL`Yصmmߕ(mFM?nqS&i0)Ⱦ\(چ]OM,0zr)#dBE߹3yXW߁ݬ_;_<-s,`j/މ|1‹WAaῸpsEn[ediZadmm]POL5r-ZtvxvˮHܴtœӞcM5Kpe%OkoE;6G)r4ny{G ڵ4T$Hhjry5C R%-YŗZh>Mb=u`mF|_uד1P32 xY% / B2#nnƼ%OEN*>iŴN)0%965Fd† ݶy ,D^!%k;_)řI tE^jBF4e\I].1);CcSdz2ֲԓ[SFɸ/~w uo;jّ|^-iI"R 8E.89%X}yESP-Sb2ʓ:ٌ0hcg12ukU9hɃ<2TU32jF\A^ZU'/U=l:ХZN>:Y|׭T֍eCTTAv-@UM/sq&F{{翷E1m:p>P) аKuTD%_ߴYs™J 2#$%?ݺRmӺyk疤~EU@$&AӰ??ƤVb}ܐ2:Ԝ/%!iƙꬊȷGH7MG=f&:SB3{BlV]oMC,IWɾ-/f5T QL4iE ԳB`Qd8$2#+ۊ=J~Mw'ż.^Ai xKNm U)rm5ej#䐇msrHK|1‹WAJp%A,^6y̸g O L9l~[+FνL ')7p񫋅y1Aw>[kWr׭啜u}fY6"\?(*,V)4RX3=ʑm'((GhAI./ݓKܓجU Y ^f PƐ/9l]OJJn w~s ]dUmEѨӬM5Ye)~VKI6 u)q)<1Qxu"1%Gv(km +)Q ď) m2 "Ba2RX!T-8M/i0!z/lQ xmeB!9Yyljko6` B!0hi|'ږ^b;SF!'x^jg} }<,B!Bu w:i'm3\o B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B !TZtܩV^\F F0o۩sGk/!K!B!BBb d 6vx_e)Mٰ~@[U, B!B)!$i;Q9VIۇjg=cٴojX,UQkg̘]ZZ]|yJ][C_ ǿ~vqP]\Z۝id1No":h!B!BHFYՓzVOzCYL9PQToթRV@QjTBGϬqSZY|Ļ!B!B2BH}6]ޑS?C ~/״۸#{S!ʋr3?^<:|AjG]z_*bg,`)E4(鱲ld vt+4ԯA zrnnr7h6莑{X :mX[S-%('?y5`3}€vV:p;WEʖ ѦYS= .*+Ȋ{k -6z/XWYր uDAeN6wk3M0-?ަE9u%2 H@~)D!B!>!$ ?6( DlJ$`q8l%tW.EPy{@;0_u]b JyuZ`3}{k B?⣫#f}wK!B!B!=eJKhR@t` $1!CԾQ{5lAQښ:2&0~Go(0ֵԄOyneOG1^*,(PJs;1GL4%ͅp׆M hq':4/!!jodc.tˣ.(,_']lٷ74?6.շIGaح-8(+9nެ[=ߜRB!BwpO!$$A[k)z撺G\xAvܸJ?wLovӣxy"e]cg6$ *7mX}scU&%JSN >Ԡ tn֣61D-7Wշ4 haf: 辬ߎtx"E=sqM@{O#@{"xD_"B!BE|+3W7[w_?@B9 lw)P74Q/O M}aPR!Rw;}Qៃ"3+Lt^l /&kѬr~m#Sh^s K.`XX by%ޠ-FVh62(O {v #*ҶlbI?DT])D!B!BZફsIqk;Fc B!Bg_ M۲ g$ 71Ba/ !B!B)#M,Ci3[3e(I x~#!B!B!B!B!B!B!B!B!B!B!B(V+&4GŴ34bE!!BX!󷳧WiaMvYsY;©uݴvPo R6nӧg b|!B5c֟rmfG@;є(IE ~ìZR&DܵyZ sxlsoV2P| r[`fu"~H%sǴ|s=q4:a8L Eޅ]uL^: c7CC":08`p,fұׁ7&?!i1g}uJ[YQgdv~yYgK`o,`@c?*+[k .cJ[?~} ,Q 2mԢG kߔ ̿{fn]55]=y?:ej$d$B_5L!_@DY(ޚ6k`B!4޾sS[eXIojqnPh7k;Ư}A3E >wN+h2huDmẺ- TըӋxCP饒\͆\`?_cU2& Ro މv-uK4{SH9⏒R4ss^\:p92l֩Rŗ+LsT-O͗>0\w ͤuQ˧@4e9/.'NV@PpŘgR崼Y F[Վwq^ǵM6E)”[ybկ׽ȭ(HPpK\kQft|  b?# `VIG2@O @O'rH-425(S4 9RǵLHQ6;egN]Z!BIr}j)?si/S$U_!B!9X_fwX|kf< Pko˛G}oWM%d|-vo MHϮw~D2P}Sߕy$Q((5P|I[)==֞5pCN;o0W^ 82!c ނKi` e)C \ |b~ϵoB<\^4{/&^W&/ Ql8Tާ,EmwklՇG]y/G \Fd٭w–!@hݧ^>/9כun3?4㚪S×R!&˄}nOwʏn]/}o&!T k"]@UYW˪X(+GawmNJ]\]E(*("] $y?LBPs.>(Sg30nqiWJM"R5hY_x6c!tw#/-k]mҤܕOW퐰+j3硺_ U"BHRʣTClS]HORU浹MB-lIDATlbt`;O-,S]Z cߍt [F$5#_]tlnހ໩>yQ yzh,qyٹ%ADEs8Wr^Z˥)ڸRVIdDr)2 XUb)iiahgZpilm)@T ^77f`ŠʜD"ƶ c6S7 rcn[7B~>aFXKfa ~0e+5x 2l5m{G(PS*+:d$)6>TsZϾ@QЦL8}O\ JJ,(9TT1onӻx kW8dkX1F}j]v[|% 5{|¸L/`ʓ(qKߙ~8 Ncj?F @߼Zcu,CYn*0 mXWTm;C@D.9/k[B@^f98x5  h]U3(d7'4\acfn.@noOIzU{7VZ/"ɁBC62qDK M}'8@X\IDak[4a|{4_Jz5oGs,t6q簽eEG,v4T&rvZX!΃Y$KEY 99rN2<ם%{M-X({@[!?U=dXg=ưJ0y2A2ZqOou{B nuIJw^7/>ޝI#q`ߪ&sf ͥ=P铃Of8B6!mzz!(L}2Fz8\Fbi`n Sؠwi}*j-L~nDvOA*d?^{kP@/Mה(”Q "|-82HN zknXɆ۽waגϟ YS#cWCVY/H cbȴ}Z׷3H3dFFLxSW ?d}6yxxrn/_\ږRWu׮\p9 ^Z_C>s7(!BkbQ^c-|=Ǯ{]7o6Mgb]l4D\fƻ,Uz+ML s懗+@yxk 0R˶+}~qo޵ #qnqi[|H-ˋ}sn]o1)l߬I媎g򶥩WB!UIEu߽[]?qŇ?af\J]dƉy$'g, Gv!U!BBj^3-0hJizrRM2|sIS8[2婐*>O6j9A~n)})ScX:UBFr\ӯg?׾n;tLŋcܖf2e\T,4hVD?~b_]\\^5*cM|ڸ-SS-ևˋRN< Q/?zAW8B > X-^&x̟ ~?PT+핮gDB'GF&B"F 0uY%ƥgmm$څ 409.eO|bV=f cl02:B"H)_c44lpΑG \sfĪ?8J<9 DTΗl쨛'7+ߔه <K:RE!:e=:298?~ťsl{Z'<Mwİ6]kx^IM9s%LõK|m;עiTJ>+w@ԳW5_ e`aooigoatt}歎:jҹO[NWY =EQ>VVKS.S*XQasղ"lp<V>Nr\ϱ 'Ml.LYzi93ZQ&oB.ܙu5%=MvWsEiNxEm[nB^~@.h|@t2o`sE8\`$Pޚ=% 8Z+2kuQHl3.)r "N=?mޜ ysiA]7}ٗf^ސ m86mVl~Z܃Np`͝g:{ܰ[g( _? x%jU ?h i¡&Wfl Ԓcn -K?x:).GC]"*w7-VoscvxUd[~?j9uQ4UD!_[ƺY&7Kq"B!Bt!5x't|zAEbPcnm;UdFRo&"qÑn>2IHqB!B!UeWuزw=s-=}CͿPybwXrZV-ثgy9Xf!YMDgv+gw!B94B* 3`I)#*tƲVN:ۚ(o]_:a/ezXɞmo4S{st/*8*m"VR(lyR\B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!J`>IENDB`glances-3.4.0.3/docs/_static/header.png0000644000175000017500000004664714432156570017543 0ustar epsilonepsilonPNG  IHDRzsBIT|dtEXtSoftwareShutterc IDATxgTU}3 *0L8d1qEA1AIM A  S}?>~=?:k]ZK ) !"n^O7BBBz?5)k =<)Exr+x\Ƕ%޷^sꏇ@㪏?6K,a!H[_~ 8Os5=JΗ<Vr NkQEw?φI̥3XҞYcM{j젷GԵ|hLV[ˊa Q[zeפnw~8`YX}/kVT\??CVe)gcd{! lkS׎!})ݵڃ]uJ&yvL1y+r֫vPOh{(}~wN,K]2i;7r>,fJ$I_e1yR~l"o)3s8[D3 9)[urI)֚rr*5c1Azz,5s(t?)%I)6}%%,"Op5AR4A}@Hc'XhDDp <4h + Df`}0;mgH!5jP獏8Dʈ} #RO؆* KOǩ`WH[,c)u?u΅.,&] ΓsxX{@ `씃Z=L!9R$mߡlUH#)ȗH@wMWl:ꏇb+ :і|>saKis 9ߣ5Е] ' nT'őʭdYnDŽ\X8ny KwfTCh z3[(4VRj1Fe;>֍X@#c?t¼^ʘIi(«č )uʡ!nΕ@ɋ s|dP4ˇL*A8)G s%Bc1B!0`Wx ԏv(%@Zp(^+t:\8z8,w A2]G)nAI~RAas#ll-γ71?o!vSe0U'4E_J([NiK f]{zw- H2tim9cGEyN+"ɡ**F]^KyVX=\5XX!gܙju_C8SDH*$%E4c&0Ս\ Ή'V?K'T1{h1YeCEG}x̬?Z|"zg+&CKNP;XlˆRpCW(쏃KԿsfL(pJԀk}:+PXX࿽P]Wp aH :d1׿3&&PCڹ2L { 0Ɩb+$"%X̗YU}/ێ MRqYm/R@ G"|9Ϛm2wTle%A^82 *|g´GZN&I'}y>oRcK}+TBTH7/*uE?w@R8}? L]錼팭+X禍j=$ RܔCg m $t6x厱y)rq"W%t!+5%:UMa4f0<Ps>%r=<;RFLj&eRGOfECk46ׁ;h]^O+v2^G?/ey<]' J*r򔥔5ό\V!Ul$ 3neȏ%?z1 OkHsY8zQXc0Hڴ7\JD<#!]?X@^׶EtE坯f?ܙpiEg@'mBУ82C0#13w6w@Gjk\V!`vVGZQNAj=mdqsYTSYPxIrdv6 @0hIj@Ķ! yC͛%s[=+X&\L1%Yp"B۟*kZ.7rd?֖: 4}gX s˟G,1eK^M݅.`ɏ Yc.?.[Ē ]d%#/̸4ͽW5:s: S䁺ٰ6G7gV'ѰvZ :y[.j, M:y*^N(Z0|QJEަU+xϡ97>ś%}!2d;㙾xKS2vq_h}GP7KF0,[c_5E+9g΋+r'^?S"F7<3Ӫ|~;Urن$U>VQpEDĹ`9^+wXk?vvt(8cu\VeŊ\/_Ȋ Yt(mrtd}=?"obW%2V oȨ/!/.K}_38c!QH~,r>ܹ྽->ᥛꓩ!uLÔJ0Gɨt%;c,;V,`&Lewry͘/}.Oɓoaܙ_ֱ_}3;*]͘~$oLœ37s,hAG~rrr"3=Z <<>asMhv K䐊0I9B_(Ul|^a QHdfrt _z>wbd$Q:( /c LPKߋx! VzN4wz,{ Ũv ;xFsΏioPd %  _ Gp)I ]ѽ-[\/IuYfPg7< fSHH~U[ EB܃J•>Q-ZpۣOF6p$,r2p!53x J K(| >My1;r_]Q﹤PkGLPB D bt[4o-cD#-z[I SHfӚ'#?л~XP e+xFTRegI ;Jx>RzN6{#JK)+-p^1ҡ9H]O㦑"FrE?ji3t~VTwx>SK!U=ǹ􆠽du`(^~SZjhŽDn a#FF 7CDJoĵ75`pf6-W?Mᔌ K4S6֘5UO-84e|a5?I]a#oYu%2ڳhzL; ΠM9gYVdLl.]׆gIe@cڷȼJ R?isp(^1WyX\Zk'ߌM;ٶr l?81^x "80/mA4Ŀs}a1%Gz\oKۗ'|ϒ~fܯA}O' 6LڴO'C68q &qt!6!|n2<ՊOl?[5XfkgrI~'c^Pm\c}ǘr ^{`0?C_X;<(.Z8z|o{"˾\#'\ٻU.Vh52[3U&VP:ilsZMחl: )ز/JLL%[LaB 3˭NVB.=DH/kLeIjҼdWSYi[Rgxk\e9%Toy\$mLQRjc% VU97_̐/#C, ֿԋW)vwy.}3U[*@.}̿dw:V0~0c\Ts;LAj4MbN)~^:0yk葀;ZWɦ; },r|{tE\s2EnKνm{c+uEtH=,Sjt|=EpJrNE_a;(`ZV=9IkDǧa c/5F?*4uBVg'NghY <:R mH~ { `ՑgŸrq+<nhՖK=epe.nyɰCөFX]u{'N"D{匂Va$:YG>@i.wԒnA۝6w0|{99TI# Ryf.@q:=Y,/RF"%R [dku-rZ$MCתBUA"~+ou=eRdxCp2T/bJA9?Ρgp AE|7˓,.Dk1iEQA |IeDs6HӫlsI$|)}6;pO:v?+i{58/vV0|s&9n^}6;߷pcLJ-vQ\հ r.WrbJsmx֝4[}t0&UC^3.yE4ҩlITh SfD:$(:+tiH+*y(Cy*3''FҤP$V4̎w PyT?Q"b'4u=8tLò:7Gx&;@v99K`eĥW`|6" 8Fk9I2vX U!G\(rKԢ Yѷ z\w9l!'7l7֐Og߻cC-M*mENF z j /Dwt"X\lf"j^z2"]V#?沱p_qE4 `Oh ,[ׯ~I 岩TD T8STYi%B߆k]SZywG4Fww==箹P=ZV+yo/n.}g+evXVYUOֽX=ʤ*]4fζy?[us9ȍ:}}Y3 iTOV!򒳊ɐ{g4y8`-%?UXT}.ì h|sG5Ͳ[ WpLFG{ƨv;|5EϏ *%ЄXjP"Ta2{x;jx7[hlEtLѢ˙$OaaJV5Zu;y-8?A3I2tJҹE vq_ʕ8x{oYsXu;~e;SX+ѸZ\BYЫM_ސW E-4B~3'n`ߪ'.i?'&OW@9 E20*+(]+XytiD֣Cl+'0qGhucSh#!TΨŵwp=YRNBA=ۗ>LZOy4>}Powo+q͈Y{*_"S8VϦld~:>2w{VXrC z2lAaBGδRYs[/xcl;neԵ߀yVbjK#kg'g`(G_^>[}CdlcF?c{ejnLAy9o ~\WVώ†Jge:gPD"iz_*^k8[`'KYβIے@ U"Vͳ{|B$Hk L{,(Z%" \S]s5))eI8HR8ZҢRH&;)BdF qbXz 0! G1L{DQg; S&m4nNF[PNy;P_;Vbk 8zu_ ^ru{W.pAw9׸jҷ~3"͠9r>޾3/Z~d遅L_[( ,5@$eubUܕ9xIQ=_;s2/o'ZP#3~@Sd-Uq.bUsܕ9]}^yTu*n&g@^(v)!;;+YuV4As/658:?'gӈ:hAr}>-nlM%4 v%GqL*fX~rH*]s|-%Bc%=7͎+m4gO';YQͅi~rkx*ͧ~Oov؇ 8D6U3^,vTE6/Mi>V>ٴ{#g%+qr6}ҿȶHot1OlFsg\3үM(ܡYx^c2'(Xusw1| J]T9^3RODF 2+tHH mYr2.b8-N̚ lH,+ #|sX4^w#MwOdِtϲ-s.mpiX3XߘTu Z^wFt ;yJfّRgb`A(z`T@pu灕϶ mR-ӷ2\Kk.iKsSN|Wg#|>'F&ꏭ֗K+ާrJX 9i鲏?$nិ>r ENPzyXw<Ôsx_&)ݻ}L͜º^WY=oWx flO.OZ'`-ѻÅ"jYm,2mö$CIoNRu7tt^W[_Gsw1閵3{\V5).Y9^~˷7'62G:+{fF !hbg n>3w5}0"~K)T+N@6‡>`r;j,fBY+grѝSjAYǚm\Q|s̶7/7Ӯz>vzͳ91ڬzn גod-)u/N")8yDop+#"J'FsW3bcy0._Y+ a$E+a t`/4͘Į"-x4z첂l/'Tö`^q,Fv,q]ĩ~Z ZQ]|UX#%NÒ)T]X2#T[9]'ڊuNЮ/4UAٰMŃ%/іhvo?Si=Ť_8F5*C.FVdRT;eAIq`uKEfw3bp];/;v: YՅ1Z5H"oeB\JAt!u@ 6Y@jjeIDS.f) oХdn=3?qfH,vHݟ^cʶVKk[lYC7*YSvࡩl43ݸmgƳ<ǩXa6E,iAFc: Ao }f)kV?նm@N!W MT@ɮ^a (XȶAfuEs zuN),<T=~#bNi1ؙpm5vN%җOcZlr"B&9s EJaV.)+XNy%gM]%@5U%cS\tj_!pN)wBPV˯E&7_}# AHJiԤ MOFMiִ>UV+ԝtlw>g7?\:GH;ߚoөHF]'YJ-t#MҶVU1ỵ֟R+N\]u=g\iXk"5`tQܷi׋6jРUO8=[Su)ԭӈ3.#/ٙRaRM;ʅ%Wdl| iҼ& J:yj湾8~uj҂Nti T=99[0QF>%4:uzf/qO[o ]إkfM۔Iݙ@՝FMhzJ]*ĨVns\|U9sG$D=n|-TnB㦜zjS5AV<&ޗ|33 zI+&OmƩ O$MdRqSNmV߱:m'Oh2z?|aIG5zqiuipjw5Uvxr5˨I|^g)xt&oFF4G7[&bi>ߝW;0aJ%fىkY;fwNUIͣ0)n2^/CUfgP&4kք'W#MiwAMfł`[X2W1_4ԮLo3wl^=(ǫ-2/[]ܝ'ҶO.kZM[s˃Q0%;m{z%;5+ny ƍo0}&l}nf|ןKNYt~ScE,bxf <}=֋O N9?M`=#YW-x _=[S{Vz$Fr_??t!,!2yogOxDa+|z3|ۍu ::X vlߖ|1 ey7+{/o7Pvʬfx=Qn:Nwr#O"_fPOc@{mwYX3i}7l7a>S>K~?0}=Rv/gf4_s]~;Ll'0Kk½Gsk 8>'ԛvki <)3[7;=*\:NknIK }0<13Jt'C߻Sύ/-T/r_9ͽx>&BD)[>Ƅs0ِ)֙Dx83+JXŇ͈͠^x7)v j}ЅBl(+dypx.үYJ}~7~|;s} Y={[VHe漌?>y cکO(U*Jiuض2V%t1 cΟZ"9^Bկ3gGkƼ"ukMØH u &㧣&\t{6~8i+ 8!vD`5)%of#qZ]s=ÙA9O}ڀ 2v2

qJN[y_KB !`TO#D/D'wBv-*DZԳ.S%GWk '\sS _[uTW }&{nKK@ԋKt_WV) t&#d^tr̈́BDD93HF `jxSa+ae 38vƖ A&` Jf6fcqMfs淫VX,|q%u[Ta{vZ1.O:xh*쳘BA5܃_mnK}'L᝹oouaYuD3Iwk߲|5r|&2;LDi~>_aC[:ςh gqJ|6[ \W~,IW\Uo'--A8R\\ *:z\8YuD+. 1{haǐIO@lD oE__'cF:nFHԠOY ^2]hST%i<^qlOO@|a¨ An%7cS3H*tE!I'AЈҫ8 ?֍@,'ݓ3mPGS0"|Ai#PЉ 㞚 DRIQp[!}'% WUQ]~*M@T^7.y XWۍ{Q$YM=|9CΒ\\tӮʫ[d6_XA'aAL;gs-}4ZQVn|5Ϫ#GhP^ǰ)ƸxZ c٨坤ӊPS 1 d.iB\XJHO& G h2 Co+)FWѾ+t :*R/*iHS̾5Q*@Q91ƹ+H}K]>|BAR*I!ѤP[[DЏr *IDAT4K7vv yZu-5V)WkA82Y._Yi DoW^GYq78ΧɤOh5㩿O\"r\߹fHMߋHC9;y&s&. ؎cD! ,"" 蝙r,RLaQ*US+TMDe$Q`7HDu Ґ̴vDeaaF\>AV-r ڱQg/,hVAC'#BsIKnⶫBGđ˫T .سT+jkU!rb#A98rxN9F^G>-DaV66ˤ+T9OUM,dCfGz]ssZTŊ^|J+k@޸3%l@NuT,BZ\ǶC+m'ML2SA_U@*@@z jDC"BN&3 Pf'm|J߻'o$"K%5KLk`,ADG* ԍp ȫ̳G3,9ېcGa ;0ܱIs_cC ޘz $n\Nu=v߯p5ZI5I$TA_HWNWFһ4j4K#ԦJ,+yfD/Q-ovG&$¯t^Rdqe5Cп-J'G'8ABqtDԸ7;,m}ɐtEPF ,:2Vϱb2m_~Nb?~3{zYaNcde\VVΑ#`֥5QfGyo2$t B Q>R pD28}C k|gML]jhC< 0˯DMu^"bױ 3&6US "!~u)sDD"" " r\"UN&^"8EO% e*a_{owñ }(/BBJӣ$WQ ͮQ*@[R0"$# `#gGIe榯A-Ҝ4mK%, Ie{Ľxj1O^i엹Vu%0Y iz`jBFeUvDGUiRDW_Rfad ڮ~|n _-.~DAIK“*n2|R?$ m0P(- RȤ~qWPSDw@4V2AR- "|^@i2@(ח0911o9W$ٙD"T ,du! %ŋd?Ҷ JI8{P[BxF,E) ;kKMJ<ϓ.jlm5 T>]2M3w_Mu- %6%s٤ov~ڥaW$jׯkb9Nǜ#W{1 {c]eqN.Lعpm|lt֗XHamkh"%<3W][ ^f v壓a\U\m0A^i"^s΅ۦa^a\[k5 EWrl.򺪪2YBl.YsL.De),)2(&Pd*쟟 ƳJ6U TIfϏH_ԢVz&f<euEz1 X*/Ύ.i^A UUU5RLL_wD؏{Dbg}:u \@kjF,x% D޾VS%dӃˋ+ʬZGgYF \WXQZMLm5[xp*)Z˺|`[}naqo]k7D:0 ~3Ga?)Wwn'T.aDK3ot:!Qֺ偻n1uYpꨮmm/H1a6 G)#`9 !S߄/z)^+ZHPC.vj"áoim7+$*85~7諣vm=e:5"DM/^<56q"a6h:Xc0Cr=pǕw6$9Ca(8~շ8|w:|tB:eQSۺҲb3/D. &e#mij-H/@7uR.-ư\ghUO%:95^CCjhYd-)3νߖM=m%Z  <ˇsBX[v] l*^V ""Lp#;kKJ6t%eT2:q!2jC7gr^TQqr.S8-kPk{l8&Z +@.F`E-x@zm:图=ՙ[-6Sxp[N? g_&#![{w*kh_prChG5?cz7O + j4T6)$@NVX+UAb0$Em5ulTOs >bD'wQc%wܴ>kEnOQ\pp8Cs"SM{ZZHJ'\×qUUmnohqTE@1To2ŵku?GR(.f>E / \83Ҟ=m&I37uՐ{33CIа{w˦r$<2zh&928ynleoR +z݁LxGo-nͣq<H dž|鼼|' `T\t=6x|0"]*䖥"Zn˥OyeW^d)bhر}s:_+:poȦ}?/enVT?u|h2"G8QbvrS䩛֮-jJGbرkOCQ@7b'Eb!^8ƑO3qϮB32C}SMs{I$)+t`KG~q~nt~Y֨&^|beg?F],ojxM풢&)6 6f~H@>%.V/5pv\zw$Dz<9p=+5)`G!T[[:{dDL"CEwmwF?eGs<*65Wn! H 9}G;#Bלʗ !v78p*+5ٮ!GXFF&q\TcPdfz_}ǗrHsXIyycp}}L/ 4Ç {MSQ2vLCK(GHSR}ڵ.VT7-ʮ4)W"Bkc • d>&LuJd @E m̺@fcK]TmoQsFueU;lS.M9,q,A T۬%8n\+ܾ͚vNe2N]N,'I2#–* ޻njTfbI%2IiCI7[cydGgyjp0/b>Sݼa]ZVxsafJFi/XfCmyɬ~l6\2e8HрnUWH0.*Y䲌(K*Li-4Ǭ/J__Y͋`6%hPmF,L,bRkq=zprCiMe+UH<[Q2Y;F{YG8^Q8 a qΝw z B3X0^%ļן \򧲩"SӞwjMUv"*D\YckFXŽYbO_W;cLR fgYF*e;J7q@iB(%j*mXN[\[&ѳ~O;`O%p,)TP Q,Ét:^@:9 GbkIi 옟zCO€0).pV^"r[$]3Kƭ=C ͵ %OXWS`DM (^>չt[$DrY7ohluY+EXPa(msx4I<ZZV;|c#ѸD72djhd""0g[bQ-Wv> <0ygdѷ@*>R?-$jfDaߝI?\}SWx?%^lb.mZ8C󚆶ZkU R8rKc si[Wۺ/]qMO؃ (1L_epw]uǷ殎.8><;a.º끯m!K.:|m" OJ =ds̅3.ZA0OOF DX:LėɨCbMIeyka gБct+mݛj/_ 2KƲwWdώ 2(waȮ" k :n" Ώ{fjltlbљi>Ǝ˟f~wd.^ぅѱ<ݲe~I.M9Ok (^2ܿsONO'sGu]4x~Vf woi);oLDڶiú=?rdd)!FV&{ >!׬|םe??oL;)tp0\bW+G|X0&H}=i)ː<7p~t"B"TǴC3XCKYDfk˛9!מ92KPt"OSyFWĂʅCT2ɡ(.Z{I`6TQX0D2A" ,rD $g?S OdC3ҠJ HJD,G A$pΐ C!!Uj9+0$ɐd&rp"fY#@ O i(\$h"8Osr Ae|$.E1vT.if?1݀@%z :t: “p[c8<-P\e.xN4<~:a2SEqڄ̕+&T^4ԘK=Y5E"}vEaXd L4״ܻw%27z=hs9H^Rl*'o"X^޸F]tGRyJ\h)%q@Q\Sg5W(Tk:;H g5r3 t M#D}D>Op9!;}'H^ktZ7-6#3y)++.nR$gyPZJ3|&I@rرST. "S{GM%h MsBJSEYy[gDp.YR٣KXºZ [ t(vá`!o' `  ~%L' c2Ceg=.\%{w)Ǯ ^q'y@t!*Xș?Fr|E!DXA`ҹX %?2P4 @ 0C`ZSUbKc4ysQ F``xoAo,dm]ˡCaɒso{J *a INy`?JD hAek]ECdd[۶lcsga@FBW<^2Y$yN zRm=hS:2pM;~kzwhvt6.j]=Vwh+eBAg eq\c_sX*K-(kvܣih>SiYG[m6QH˫*:Ztt|+#DTڷ[ yQW\Ucニ3 A@M[<޵ƂDekK{~;C`% %,-2Ռ/0!*SM'wFAbVvZRQ+rXT]E;dwಫ)ByE+FsaN/Qєv6⼪ʅ&'#i"ȓڿIk^9 ٺͪE96?3] )t Rx6\.q$pϜ{]A0DWb\DZw/H"!b6Sfq?;[{WD0p-yN;MzwJP%ޥ|5qS ejB\IDRѵN"~!w2A%JZʔh ]S{!\)?=XS/;p͗ D*׶쨑FSSR=ܲ\:7"~+A Tj),WhI_6PZS^oD#rϦuFf&\ix kLl)%@GD"Yt9E1X-#xd2^btZn+E(D28IcnPeqm\pd" h`*RRn3(%8|&q:|1Hb,,4U |*zݞP<)؋M:G$,%_8'O갲n޼o\diTv긠{fd>z \-6TMY>tz=Hp]f0-ҙD iF *RTfߚO {C9zVRi4kf!IR7 R%|SIǔ32cQQRPd( , TFQD&|qoJF$6'hwE"} G'fG9_n)7)9$cCUvK,`B5TGt,Gn1tc-`دF2BP P}yyi{Unj+ͼ >?Tݶ5c7;rvc:Qk_x{wf?ԙ>"^Q`p~ϼ77!gWhW滞7Y!0;{GKUDdÇqZDT/޾ܨ0\;w[uM_vtr 8?'5ڳ{Cһ~v=oGN\px'`*|d{ǖh|.)*?ֳoם_sTA+ִ~/٥=M;mʵ@N]8{vm/"7JF|}sP\Ӿc_l]q, xIWc# QWNP$MeJE$Ajt+.6%FJbp 2XZb/ѨԾgcq/F4vτ(=(H$,(t$s4%'$#Xj~C;7WhEp*Ur55zpMyIPYgl>pRcJix s.1$\f# ~W[` <]hνwW*5j-,!A( ]"1jfx&1;vj u4x2[xٗUjFNBȳ8uYJ#)ĩCYD_dwlGb_:&:7"TM{e 8\rJ.^}jCž}ع)O0lm:R937tjPS<Ti<'ɴ;rXn)FVȹiF,V"L>&kYCKO$?܉SWylyR)j˧gz_m:Ir@G$I{ٽmMsXH:UJ'q׵} ѽ;Z7m7EJG3B}q/Nӭ[J#}W_< J @(%.*8k ,ycL8[v3jJ&uW%ӁQ+Uc y:(K64ܸ_3ۼ ܳ֨4D#[UmH&BE& G*"M8?t"g^؛'^dc BAr{S,\(;ʋARmZW B܅8 uH[LӀbhet q }IwW߿}7.rt/X6ַE#Ł t_X$yVl|gkY'޸z8:IA'W ZϥrDEAiWfgHd6 e% JCpj!2RR iCjK й|>NLk*Ҙ*9dr%l.tU}[Tlɺݎ3uWXE[c*:aD+ (j$ҋ %o2EÕmf ,"TTJN$D:!Krr9s42,OAߜdS#yDt*Gy_Y  %S84ߨ)RX 5cnw Db~`y^^\Tdi4}gl:ZznP4`>U ,$8+;b&abƖb 1D:wۣ&-Ur4pL}$שFSUK,-[iV^U@3dP Imh7`bd>N\:C ڊʒk5 ˝HR+BL/^}''x|0y,;*2m{*sG_=~|*|$\$r<MSaR x5Ϯ)ټԔN'BakzXnESYLm) X^ZVIx9.ϾdL&GP (*`HHsq1'IfI2lZMAQ*T*o,HrN_=xAX)  Cg x`:p>ljDE)`mwD>Sf+Ѵ#6ref7s,Pׯ󖪨mCDW=w\ꟙV2OeB}}g#Ȍ7Fk9ZBPT%yϟd/1/ >/>W ^i\rƊ5 9xz/YLGn9!Aq+n\da ,Bt GsIq<|0XBD"K ͔@˦B@(E gRT p镅E0L6HqL[, /k tTX׹=Vˀ oP)%\H!*UB{.aRPt(@K Ԩ,VBu\6o??3 ^n6k|v嫛TpcW*#HZsK@aQ EQaFP Eyc4AE!(b x70Sy׆M-׆| T,9ufA'd>ziRR8?^U jUZp2&% 3F%n_0̋!/[[u'ҩd6TG ;f{Z/ʳYlO{UY8ð3[I?e۷DC 2\Rhr1R\Eq n{:0>I\Yna(I525s8mq'8J刘wbb߳о9I.Og4/"ā Gnz,vU]e&y$Bf+\sMKIQ,6[lJfݑ'B~OZq֮gd oq]MEr/}%_VU|)"3dB˦bfkR\C >VNb:fX*VUbX*V2 IENDB`glances-3.4.0.3/docs/_static/per-cpu.png0000644000175000017500000005121414432156570017650 0ustar epsilonepsilonPNG  IHDR+k3;sBITOtEXtSoftwareShutterc IDATx}wXGg ({1bDK,`]{bby I4b] 6R+j^Ja;g ,o~s텲sfΜ3g̍86Vɏ 02雐Feq! hkZuHGn?&ǀ+PT$R7^^? nЎ64IG7yT=EJQNcT`SU O (p?c?{Z8@ %@S Y^ȔrM>V4l ~s k0&-u!rMh~Q l(@]'gXf#ҕ$҄1y7fTScs<4_ox` d@OH@oH54j+J Q*BfLl&9upMz|LMɼ|%$T[.䯒Gg~;yU˚Q͖=S֮[F6qMAe52~хUWIZ#|qEǺ[t9TXY! ~4G,mG]ۿ-עbRe/_۝@ctBmDq37S>kWn4=-Wk\۝@1j?^k{t.M?';4{%?HO)OEqhT y]w Ndx2K2xΑ KZ:cFffFffFۿ u|]a~_9ːp/8'[V͓k Wz_XҚџXwBcvCQm€pݛ:4&lzGZҹ|ؗ2䊧40 k"&p*xIVk$i!!mϨug@qj0uF)ʆ 'lX3D>9sU!~ "&L ^IUO9L 6iOy1 ǎ7D^ߕ|ڬĩo鄃e'7E'e$+p6NNi&HLLdB(.]z\sIf~΋܆$̔Q00?τ%Cw]IuVa#|Nm:r"xЯU߭XH[r/J(2ׄ,+ 3dZSҔz1^4#aCc{<ͻNĺ0Ys}@ .y&Soѫ77ܹ8w <ftgKrݏE }jR ɬ& _;O5q824sgع[X赃iz='l _*b7@[rAMJIQ'x^yhmϰsIˏ[B"m/۽Qq~xZ  .y&Su7h܍-Cvn{-;r|M3ϯWǧ>lzBRt=dyj^4: 8/'/Ύebq G>ףϯǿx%^Pߛ062 k;+~S[dn9ےܧnVd 5%>_IXkG6gĮ sd ;b<^3eޙ|a'*?H{ރ-_6\Fj8}\֎$N]7!oכqBw5g+ ržӘ K<8H>4##n؏u<ک9:c첉7?0=*qr{oq}'aϯˑ7vb8kLY: %qjCb`ցR2Jʮ-;4e7 eQ=#ֿ&~&(!P| ݿgȶ_,Ɔvx"ӷτӃm>s2`s@qx m^,qq|^&6}0/զ<3C <lԃ%9~秶Ϝr@x]::zB)̘nĵ8};=Fqb _3ZU]Ln=sC&O].\SRɻrnc|G_BugXRH D$%FAFyh5e (qyv98q_ "̊uSZ3DC>1Yn[ҳn[u)Klt4CCu~p2gM1\VE)W\]8h7tBiy;?``CT۬0<P'W'U|j+|¡]sWx2_M<'m c7qQ/'c{E&zaRT2,bdŦ#u8yir4]sW﫤ǿLy(>_z<ąP5TPYTT.i>'#=pb^zj+BJ2_Eϓ~A?L U#x9qİqM!Uʎ]]pVUhS}TaIZ͞x{'&Fև"1ڲ9^z񩙾1'[^[ߞ $7<;x҂g'gd3!^dT9?м>{n_Diq3/Ϸa.|""B&IbS)5T䥥EOΟһ{`ω?%>ʗ(5|sfgr/'HS@"nPieBm4`/?<;W<&OsB\.\y/, DX"HB1l/TeTcf~+lj(jlø]}:?5<$IWn5kBiDi4i~3p)]z#:x(,ziX {>@VN. ==56-*0FiF L?z-3)''#W]˕Piqn̢+GJ=2X-Lݳ+]w\rPgB@@wGa/fٱ0+^Z?9.箚ulLHfS0y,[$.z~mլ*eKq8wpGH ʻZ|kCen!ұ]G d5(J~ӱ"6Ԛr-2c~c1ZcrJjQS t[`h)ժonA(ҷ5oap-J]<*I01{M[Z\ZQ ,*r8]R]k,Yɮq|9g[/iQJMf:kI5!(U*rE#byT hрR>-2٥~w>qgj[_5oaP-FɩE^ťU;G& #ߛ8`u}q|3rBgĕɿ/[~0ͥѝ!)}qnݷS(+*m\EԷN4(l6TJc8Ik'̫1$PSo/4vv`kzq`L:8aԄyK'+U-t~K(a1L7z ޖZaJn~ x6rf4P=A`exvP4M~ܴg򷭃 %n΋:*m] y*=C.p0A{ 9ţ%$ c+F%vM@fTs[2V-yOyܦپB*se5fP'ȇ 2u|ll2Wۖ ~kw+ۜs快B&M@f{UD:j!\l[Z3{bS:KťȦ9ug=}r!?!PbڬUQ? tfvM@׎2IVc9#9U2^H8!\Y f^?īSRRSve[~tp=`cr*YoCH0ׅC~dGu`F^6"g%z'U$2;;PxNa>Z緩͗>"HDBh`z ]¥?ΚsI⫦,QϮtO;# *TFSf*a6ϗZbkI%To+k*ե) @8w$"/A˳co1>_eBVm1S0쀀BqHV_.K]^*ǩh"1Gjqy83g_Zbe!q.C3 \ \>vJGJWM I<,}{xlg7D֊n3;w[JGQeDoj.lkO>Jy;Js dBHD "mF.tLQYMrn^2޲T-+ **>A0T%?|4i&kr{T-Nר=fDbFC`*U!I6@VT~qFi]Fv/?ZQ.䥾qvm>B\`yʈʿrKK IЭAPR/J`=4BFdHWufM܁_v,0udU]feDe4+{n^^v}?\Fdp2ڹXifrrɱ@P3cB2LDAm\FL`ߔ jҌ (|>=I.<}dwL9$e)evc;J><<ARE]f2ݕM*>4! ~_4g=qXcZJPCnty$YQHeDtNZ]Y^ 㥔Y^^(V;Ures"feՉE'?dE;3q`x/JXR/$ON"EۥU5bGBp+~<_d1hy>cکS'Ȫ[Q^(yukxgeK DF2tu6767 ԍ3`41dL&ՊP-jX"K 5leT2Ԇ#7Q ̋"uOz6Vi|i]tb3&,Y&cL9 c/!hR?HChf_a4i)!6CjCFU=g|9Ijq#ǪS kQjyxҺgy=DS dqO˅2[ tw>&܀k

[j4ᨡSͪJ/{Y7A &?X[#LVAלVUǩ\N̪rێs _y IDATH;ݹXq*3t)Lbqfsg ]݊Sk%_lǺO`{H {v18whW*jz"C c8 plyŪ.5ܻ1BQAqv[..W6Z(kL90OU¡:6gDpzDR@Fw>y .C7VIla:LR$ĩy^%U!;6ƴNiWLZFULAg/Vt-?^LDL̒p>_yq-w݈wx|wbS`z2m+w̓0F]YeG΋cG{|?yŗG 奵}54:kz߮՛Pw,*q\U}7%X5u=5YaTdV lF0 +\ȸ[187%cYp;Ys/eB[|Eyˋ3d27p噯|C5م1!tM67 ΕRf p+䮰b4Ccyjۨ:j$lA_ɩ5vC6P(1rּNǔoQJ"'dCˤ3k֭b eoD"QQgv k;**̻CѝLjk}ߔTJ`f(O7ֈDE:8E;**̉smcDF=4 3dcGe^ӟXj$ljA&JYY1gN_nQ~aaXcqDCؐDb-yeZ8}WeP/~(Q}ln2SR@E2L\IؑVC;Q?vyCr :D-wACzLXwsIE;9j02_vd^'l~p3!C!2SA1G$06eNb3n}<]|^J)[hmj% dZL\Bs}c1Dw/:KtL<0"h: U˂ՙd4kc kh] M$[R^Lo7  <06e. 9%AZ:Rz0AUɓc!{9|=H_{eU6#oh BWv%_/]*t*&^/Fu{-RJQaT |04G(B=1 s[nh5`._Vk?0"Ch<P3wY\ؔ↉Әe2!SW} lh!3>1֑-j$jQ{zFª?c(qGVLƮ-5=loXHLc>rɎ-\890@jBHZQ_4\Tz%,r6s>7;Mb$S\yN?,YIR㘘㼩&C?aYwa쁅_Px8%ǃ sfㄤw˝Mݎͭ½.Xh/wO>8aO-n&(!×'$ۣ'b|wŤcaq"Ls2b/Tgȏqӥal}Gt79aN _ 9?}igx{= iT!n;7$UHKZeebWK6eOb=zVnQ;9Dx4Y_ ]ZsU& O7`U:0?MtA778kٌ[+CBݸvJ?ㅬ$fWkϨ`곰? ;z}WF)䉨,͵#RM2o4  EL\UȪ|c/;=&F4hqsN]i7kIk}ϱ/ }†5CDW#&?W0o:5|}̴Sqjh ΤG))^(j]R^>܋ycֳR]7T@a;899?).]z>8#ح< SAҶ}]cЎף|JNn:|r`,a´cQi7k.W8g4jO[OHx"9vk\z|F )Ǚ|aj8eXAADa6aF#ym'9/br: ¼\~:l]);):1-#a@S!O )&, .=] 98#?E쎃YCgtݿ ȝ/ݏJfHGr2xP=8Jjh AGռg)vחM7cmQ4)R;n5w׺^'+2qo맼ӼpQR9 tQ+ܓTafΩ#q7U6MNL9z֖!;<.&:v|4 RD Eέ} MڿSzpVO>z!;=a+D©hI8 d`G5WR%TqpN&zs̝۞s#k9w b'_[p[7Qzʳ7<4!'qt.O㼡5l5!Nddydn>c"#a4u(qsuԹ'yYn+GCPRyA.4:tq`tq'V쎺_iqb뷶wډD鱫}MBw1:y9{TӕTr\ƜJշ'HDͭ%M}~b̭L=MԦ^~ 5qJwi"#fG2[F⚒|ੁ!}BN}~r/H߅=7f~y3=3'(׫žȓ?o}$W(p~#d.L\[ZP8J;fN2Z/o ce Q$2U& \wbXזOgFO(oWU:`˵!*m^WVoƒpe]9|f9.ۑYfJ"U+Ƭw-,0gmMY7,)2' Ug}ߎkKT8d?ӷlŌ=ƠIe5<`sYIk<+q2DC>ᑤg6gܻ!Xl."ydZr 9%mg?U}8yC UeRXj1D^n]l9t@IbTPYXT.i9;#]-E3q˜L'N].6_VZjљ@kn]OZ#Zoq;b`vaz9YQXX& j>nƑy9X+g7 9W:8{שa󤭿_)1vĉYTT.i1AvtuQ'/-gLia$_O!!Sc&.< ErkWgm+GBs鸭N'V!O_ENJ8|\cNnTD0+ d?+rrX'[:x)G.,_1WSOֽdžՖQ}c"14%@q1ibHv{nIfedf_Ub,,ϓ)#`^2je:_0_и.c|   @2H* D@)9#lRH?/$ʓ<cÍm'5kެ3)Gl1~4_9Q3<%•B~NKDRX(Tqb Ҷss% Agf}mOGLGf͚y7i^=W5(=|øv %W'T*A'6g%s~Y_\ W =h+l^OΫ+)J=lٳ{*#av .0jeł,TC_,1,6PcV?y t͇jtU_ >7&CbL4W¹Y.NѺȭHvO㩊U9#}gʜFQl!+HAz֝47``sV_)h21f-һ #3a4"l T>OݩB66bze q?cA}Q}"~3ks2X {9L|4Y3}4CΘHu=cn y˷/B\^n FNr-{.TV5 ]Sq5Bi-5{Սf̈LF[qraB1Z(a{[Ĭ7竡ЪoX ]β&(Eb] 'VTH,'YqrŵUFp2-+_)[IcsO.7=NLF:W /*5|A-(qcsN1ʝLiZBR##)3Y>~c$)ji`B3:4R(͊/,ѹml`"O*Ȯz6z}Y]xa;Ӳ9$.#RɮzNFk'[IcAi ޶e˚‹;^OK_jPpo|/TQފƺ9Y˚;d.cztn@!' ^_^!uzZgHmfϝ'?OQy8bR\7%UEׯoꪑLeT[NOOJtlE=w&'ifS|fJpx(iĔUF\_Fo#.fFPjoO1(3'J&+h8Ë8Cxq $J!3ET2`8o O9(= NUO>6CԌj 缒01؝Sj{D',v;#(` Ft& r_ *#@lAz{YVLjӨ*Ӄ]:G3Cq.c{g=u gd}8UÈ3VL!Dgǎ9%*wnԢvron=rP{2.BVc#i 8'z'|nD;$%,LIJD D`.@Xt ܕX$U^btT;2'JI׬l!;h~6M /0|gp/wg~$eU5iTөao.O׻ߗϡkRk2L>+6 r՟W!Jjݶ5{m1)CYEnߨ{Խ—"3.8mRXu W!*d'1WMZ$/_u$ZyZ9[/Nk1U^,J@y Jҿ .ӣ،[N(Nk1ex/2_ꏓwRpX|u5PzN0^.򬫗*YcfyN3~Me:p3JI[~9O]Kfӳ+0۲5*2;:M/[&ňC8:rSF%ʩWdn>ٟycT][\榕){;<=0&oȏ]Vٻ1e.N#f8;P(IY9HX7DƊ U,MS˔p8KT8?_:hׯvy疀CW"rex6 s3OMA]Cp֕Rk7SB׿4ᦦ?;gH+w!s^|7e q1YI\FuN+Bl[N4@Vu6ee#),D_uYQ 3z_$YkPmmJBN^5?(!-C:ڸ_*ϮAX":8Ommy)߅pkj\ !?S:ʈ項DtD55cb\p\CڅڸݪVS$V ?rj[eqlrz=N54ЪW=;˕GyR^`>{xnW[o|V EJ!79*6͜w;ϬL=_= I)w|J \r!)>)dGmӛ8}݇9Zʪ gh{f9a5nǖ]=%4I]>fFy]zymGHڄeHɊwh%4H*+ڙylNԦ^]YWvK"Gr_ȳDޒzIqhé2qYq.&-/'eqzW'#/gWdWA u9h]'-c\v6PͲwe5R j8h`#AC|GL^%j|Vd??zĉOb{K:؅C(%,61 ֓4sat߿{0l\pB# LZR7{!nimA:۝Dt@u YztϑQ՛WiM_?[L@ȴ ajD7nJh^3_ -Ч QgXݴ@1I)I)fPh]Mbrq\7iI77} 7\ i-#.'lͩ]ђݻX*nYB#nt"n]݇^ރ;dX@Wr4^ ^LOLxpkp{/&'&^<;M8:"{.\YK*/#&'ʹ~A;L­}Pe 8qir_2&q"ȸC>9a!KC8 YDŽ 놈.+o 'ࢫsu`4 Ѝz{kvqL(ίpzLذvJU&%4~8Wj$o:E&1ӂC͝JNchQe'n\䜸ȀmW4_EW5CG9v=9Q (>3N?<<̑; RSw$0`K[hsҴ2t[qLYӸuaZ5|rctARB只o*R*](L;ŮM9^*5lP]?ksqw SzJY2H[)UT*(&lBEk^t>6E'ets+'X)98&sjhBX4+":9u3yi恱A{LP,~]3hռ]zZŕKhenVf duq⚵&8sjG|Cvn}.V^b6+iܽETqؐlW]J76ܹEHZ +kXś*nS^yhB+D !$A ".KRqo}r\:ߕg(x07ٵ3D&=)C\ٯn+'@~r+)fuV:y+lbX 'k);r nT\c\J.UBzB=F_#fxN297psʹ{$qHSfUyG6!N]ܫ7'l>LhZȥN>}7_%Xo(!k'sn?m<'eԹg5i[NƪJe-(]g[ܽl Y#Zn8 qz>=GF9sR4~̩'ȸ|-cӧ~ .Q|Ҡ9ʵ!0 e6nF. _s>?}638t'6髆E,-7AqmN>s۾8cf2Ұ a:Q}|wROmjLT=5\urwߜn?lWp<N洽lb/wXܨĵꜸy2%VyV,i?g٭MY7w/'R5Qp2+NI㚭fֱ'"iFyf HAsOdErfmq>Z7告TF!yl=ɒv3zͽ.qBɹ{ܽ52ln]VC'<ݜ$@KR.Rgͽ$lUSUބLAU[O U@'CE9wzbmNSXM;hpa2dO~y0!O#C&؅՛U'OױkLjrLi;cuh԰CJBX_yiElU!Э8qA soܬ{p'N:6HIYfA@UK.WL_^ \ ]ekϊzqp}0y5N0[ӏn!X Y"Q\rBUdK'VYW>•B%m9_5}ESp]*9q'\APy5nZ*7 [TA'x0zlgub"i<[qob`k]3SǤΗk[@}aJS4X/W}%n~ޭ%>RwR(,^?2A8r mbֺ}->W9pF*AU)tؽWAΫAϜJ_C'RǢpC>$UJi;$' ?zlZ$jX^oV{we;-zBH+U UJ)-ϺCH+U r_ʹs #Gx(X,>}`>Є~`n B#n 1NM6,#r )Hx:{7r젧{.$w' X!dwg ۖҗS!?F,e`#BQ=YA'tۡ/ykhb?'i| ᠧU.gA?R=bԬVPBFH쿇uLC5?i;GmͲQ34.YsKt}67NhmGJ)@aYKzDƿij+'tC 1Sׇ^O"`{k'hn=9IENDB`glances-3.4.0.3/docs/_static/load.png0000644000175000017500000001541314432156570017215 0ustar epsilonepsilonPNG  IHDR{L_=sBITOtEXtSoftwareShutterc IDATx]w|?g[ʦ@:$ )T|>߳<i{""hI!${Hlcn <;=sl?.\kT ] 6HOwkzQ xNrҤưVZeqsPt\kz,<&b814d_T+_!kl~QZqiɹ ~<_MzN٘|$6e}G%%%?b#zLIIqIIqIac{>LNOUWQ6>f˰Ebu+^oc0KPi[qÆsI`+@wo]"[v{B n!RD Η˭XhvG͟CE?<=qKIW;nW_O?1^q8~v_Oۿ&>H@3CkL nCmB_z9NƪK߭^ntɫ ^Vm|ҥҰ W޷M8aΆs`)zwG]S|s;ou|od-_ᰡC~u CgBetª/ ?J,¸2%Z ui@)jG3<;Gpl[`)+W&W]6jL>}3(?¡GҴHq/(}xN~ĵ/uRZ%(f?+ =x~[삜'mMi13 vúȡʵb3L.{b>~X1On>a{ t+2"Pݕ/O}i]*߈eԵQ]~Ǿ +6EiZA| H&Ghއ\`k"Nu]&]_K 72/5W C"c&$qlY`]Bμ4l'Dڥ$2x3Ƨb6U_r!yR(7摵_j{On,="6rO;]CStЭy[piƶg%v@!@4~;!) |Vp!Dg6CXGAC̚?{Dt kʛ`Έ@(KiLi@ٟ$ nҖ>RA=;9{YڡCTvث?:6jQ:EQ2~՚1|;9v(FQګ&݄7gorr ~ܤqĴ0݇K4Uաן{v~g`-s[ >kCy13N1! }Fڶȸ;ɲ7 [C~J)6o(Vw"~Rע'/(oޡ^z-ǵ8K:`/sSʃ![2 edVb} < H=ڗ1atNčj+#9TnjFac O6hʊAsg܁ÿw໑QO(^-;<^4H[Ɔޭ:d0AoGs15{9İ d#s  ?3˞Oi FGu8 9',ږXhDt pԀzı-bC TFe+ESY]3 g}b&o\E~0`$H%Y+rܱ*|DL57bu;6E9.qkΝċ5fg@0g;h7+'fV8 Fg6$"ܑĻhVsvIX'Gi qFĚYɋm;>Ku:I.΍_pMȯN?,~;!Ӑ KA]I# ;v'BCϥjaL߱so0dL:|C A5I/ܩBQ^W }=[&Cu=gb\";XWG1BqPuU2[qՏ-2X v"[&)<쏗|F0?~PcΣ+z/=/yjMlww<~v-u[ k/n~-24d]3R&GO 2z)q{s%@787 ӣr.&jU*Aa҅VMVl\H_~tLYg/UԊV%q2o.:{|˒fǩH=1qti⴯΄č.yvXǿ"`@l C^bVbF1" Qr.'UbaauV_ϋD@}I_L5iY LXFBڈ,զRE eNB}M(;kʒISwQ53׮OէE;l@Zr%Urn4ɕ`Qѡ%H,FxPóP]O#(F`$ T+׋#)[/y*sLD&+ 6TNlxCuiB{QX>yɞNҜ#UJ iФlauA({$(P"Bb]Xk`P)v`]-W(t`ۼ I&Bʣrjmʌ5'D>̚ dD-8Δl2n{.X&y r3{noyU7R4-QYzyD uծGIj\NlEg$ w]^]+~\և>M/|pױ5z yԃ'+\id+óA  -M%Q n= ѧ&}c+ :Dnq˂X)7hQPxx l !z{;Gp4aw9dW"˃;P.DEXHFyr*#䐼9Ȓs3y@=&KWO\~c a#9qhtRx*_xWRekEB%#[-бOE 'BgRq^%qɐ[p"S&(5edО@ɖkbb5HHEE=2tA&vިQl*ܟmRd_V(bY~E_yLdq6OH@cC\y  hqHX(lPxӟ{r}XC surJI.Д4g}5S ds.Y|X h-ϭ[tȶoQx ="cwb\>uͫNu3r qk2V_^2:N,dJ{(^8y ۳ҍ9;s[iiv;#H/KmO|QC:Kd MR?S`NXikpۻO=M2떑os~+>[Qu6de>;y%™]˦w:)eJ黫{L[fggB=зG t|JM4c΢qNZY҇s:ZgMQe\K1 !n'ztT~KU7i){~uy}].$"yKNoX1ﳦS\.0Ul0^zА&+lytlRfG׉:by3O0cs>MCzY_qv?W\. d@p̃;2oo-;y=>wHΠW8 r+JVT*̲?9.pW#uiٹے,#ʛ̚&1Նf.\gul@*nԉo4o"гXNp dnDь9)BC6Ě~2YA-B/ Yn6w3_in ǖ#&˱⸅I*.T2Y.CvBKVHhTuoFMJ”=Σޝw25f=BE1y^bF o7旞1! l rvʖV#_@ў5ŏr*s>%Դ9cW[%.Ҍ#X7’ tfqgJ65vkO5ȵnӶALa_ޭ'F 5% :iV e2C$N#qyogpeGB[43_lTtO%ʑ[Cdl΂$kdՙw&nV9˳xJ#S3v}cl^rBàkh}nf Jo_:+z&:fE\[)I"|j﨩P%lBB>m^oԸ::`E䤚-'_:_i6 K*B#qSB. 0C*xD,PD fXlE%:SXۃ \ Qdl,u2'9bJ  n^w-xN׉UNDAԁuQN1tvގy3@PIѿaX5IqYY!S@-GˑC2%A'bs@qF;F+v$eby eȚMVec "q"&s prO!*}IENDB`glances-3.4.0.3/docs/_static/gpu.png0000644000175000017500000000743114432156570017072 0ustar epsilonepsilonPNG  IHDR8a~ͦsBITOtEXtSoftwareShutterc IDATxgXT){ U+h&`KW ֘1PA161" R AP> ј4g^{+~I+U "ʞnJw`Q^ {15_P_t&wS@{J4Xzx:IZBള[sKs}Ni㧻'_1I٬bʐIdW:Vw#$W!bӕiD;?yXI#|/dٿȹT1"n3: hY¡oO6OXr ٗNC 4nI^e'Пp>M")4w?P(ovB{:Dv (mk~YyDD )괖!#1"bmn-Ք0|}~ (K ݖwy#"> %j!)d(-˺qNFJc bS‘_KqKmxo"`'n_yi{w }/Z"Jǁ%XEY-U'G)Fҫ~R~+xemࠠ#^4 =(NuD,zW˽n]/Gʄ;qmΏJ-H)aU&$4#Agn0ڶ4@x#Ҵ/h/ntTe_{FK3|-C|kx0ۈȐS w".Nnr?~-I4O;Z(FD6n~G8*/:yrzNl0E]eSt̵ڔߠV1>߭W/b)"nY}J@cG'x\ H!eH-J3@ZZ6Ji]qSz65K` NOЖ3}4bؖo\5ۍ-PZ[#4^)^VyзuzS_]s`{{VmeA@qC+3ψKJ҈{Hif %eOjL S7̯T(5aZ-)yJ!VL Lgh~4)~~c6Y]hR5hovQ_OK yy..j6>#5z^,1"b{N'tO!b߮YgX\湉ڪsѰXxbDlmrLmjvD,gg@ĽHO TQcJ"XТ!~]~xgͫjuMɡkaQFLZ{^ 3.NP%e4 Y,"bCm9=D/*EDV=JY h/w يkc_6r[&LXC Poߖhn%Ǟ+ein =gˍtI1¹[* >~Od+{Dl;2FJN6ϾqA uv0" o;wG.Y^1#X־aÂ)n?v.6İӗ<u+:>u /}x L&>|~";hġQwcp3+T[r#ffZfv\tǣf;g[ht\FvZfgطԔ,\L ߲_֎P z- =4F 5yk\;ڱ]YU4 yjBRo4. )Â〸S_Bib#o7s&M򌆮E˴ u8wiaޝzc Zon6c S:m)R`VOjuSaKܗmut/ WrAXR⢼J4թ!px^#+/KBl1e2K'X(JCOhziY zɞ?FBZBz=S&rRo)5'G߿|< ߜrY״uP!P3I*kJVˋiC- @@3\kcy7 EZi~֪_p=3*[0>U[y`~N/2z@]di696„d7ָ0'?3JT'HEnؚφ;:tu{|Q4Rr/5iusa[Xi% >a7 cj &N$$ uKBvm3o">- e'kOm{?ږjtfOy7]PYw, L)S4vIYaE3~ߝ=h -~cN|X?ʁAf PDڊ;?d N3^ylV(S%-DUIm3RKpjM RBۄ m*Q"&X5gz&cocU՞xmK%K e͟C,Jل|)[x&@=շ&W @ ,#9KSQ{z{bmk[*" TQܟKM VĶzX:#QXfE{ ?4xCkIENDB`glances-3.4.0.3/docs/_static/network.png0000644000175000017500000002374314432156570017774 0ustar epsilonepsilonPNG  IHDR8#=1sBITOtEXtSoftwareShutterc IDATxڽ]w|Tw7PJP@^b{**,OPX4A^C !lz6;?n;}o?@{s|;sfA@9H_M^@̿nӤP$N$Yd_  n2 JÂSL"D"I1HO/ҵ8ΕWq?U~T7|Lm_,$ #%H{(&/G>7?ܱH]:?Pf(i(d#J":d:I: "1˘PYM!Aܔ }X L-rwR}գtj |G^fn 39ނHb:'J>𶭤1\°ʪCG2jUfЀT$!DxX4ZdmP2gr#v6Dtq0ښoK@kckr_CTT3?tLCO߹vDN€ _m*[ok#_+++++*m!Qu/Vj~!Z;jӽBG6<EŃC+8`I/d矬Oּc{Gp(_q-|W?^2> IDYE@ AtɖGD]@C `>xV}lV._r Ee*(:N{i+yQrZl(,)hjv>pGn5pdW8֪sr\hN+EEHQP@>,>Ж[)OZkMm_}|s*t8OjO lf]Ѱ?cdqz 097=PŇjHpl@#@2!2IDQ(JoI<" {'i֚<;hhdpۿ󨬈K_VԬ BpB)Ɂg7u?(4gD?S3@G0ן D$F%Ө e7TE6׷ʪOSގp3agF,j=8GO ?epb6hJO3&Ǐ+6kЮ |Щ]wln>v̽(O>9vyw%va\iR%ADի)& Osq9ʍGX, tmڵ=Y>jԜY/}.zKAU[,5+[a~|_43je#:;/Tt50 -qXĐΫ h.l&DtT7F[ n}tkǾ]C%[KEH%S8Z" #Kh Y2'0"`P>-MMCÒd31q_qcc%ud Msgm5d./<jj`,SA`>UCj>/{PaxKWup3"J$K@N;B6@ DžO;VEʈHx9l)=aG& 5uGkT ([I{^[ԃ',$ N" DR$a=U{nj9vxC8D>o9Y,<,=/'6xy^:yxgZ.nX{>{>̾}3]l-˵A魧m;ܐz$p4VZbZmeM. d0Ǥg2ExuLp76{{M?b;ܫ/tQM#򒒂֯e-sH Mψr % ֣r׏͚ Dž/>? ͣ0z@Lcb~@U9եƆ|TNaD]cdqq8|J; [98-9uflO{_ҹB (}?pU""XSF黻F7sQ'yڤ/[6{[E|?!#ypR̞w2:Xtq˾r2*$6ӷõ)BW~t ]41}ǎ;zcn'Ԟ>Qn;w2)}t{ x㏋珽7&<1ȲB3cy~c5}鱾K& 﫦QFBџON&?v=7 lxԴ@"N$݉v4?emSfGFgpt@hk,&IG_>mLN\'h=TSA>6kcSzh,H\G]+P}n摩WF8\<rou\>x RRP+wk!(r4gK5BwtcY}oy}/ߔje:¨Y(Q " zlә6~p.^B3@KϫsozW?DKIWU~(Itї~Wfto  !J<)h@-d >)_?9gG{OK FwUέ].Ap .t\.%k/LY7vi|ǮIIt'CZ$шj)dQ:d3$l&3q8cØ7M^?C*֧` C=(xɳKr#,9 M&A;xke$mR\ccB˒ s=Od#yDShz`@7R#i; W6 eød}u[xgƋ히4ITKAHÍ#1S $P2=.HU%I(:d (ʹ}mV=w[CioXvT.Xx*;$h [iQ r9HJ@>z_XK l]iJ*JgqrȒ"ZZ5dr1 _d:sV*5HJVA Y(G "\$05<'I=m$r`D[(}ԟ0LH"'rz^F#QfŽC%/DR.IYOHnM1tg7ϦWZ"fUku #'K|E=.wwBb(S p5se>ؚ&6FAv%eksceg)-E In-s *fK& yOؓ],@&l!=|G'l^LLl'E^m{h u!⿬g=0ktHݵ;TࢉPˇսF Ay̬ΑX{.wI!YWvID\;Y".p!{Gp&]ybSH&Mʡ/B8x5 FY)$L|]{|ۛ>$vbT#2)(K['<׾^Xd}OLNIᕨ!_nC#solL@Ǘ0=wO*B(>iv̙>85~'TAcg>n`z\y~Əv uW6#μ[ uv}C.$ 9>Yg}kVW >:O9#=}#5䓶|ߔE3XXCk~~n'}uQCS~/qxu4Ƌ;>[dZ%EIaziCSqǼz~҂/|m;3Oij;~y^]3*Iwuޣ?^hH>c*w3O{SՀ;JT/eD}/~Q-U:\"mٔ31Bm"01K/5"H 3r7NzCbyc}7cj eHR3-D^Q73Kwb M@ :\.|p?eA_ذa_7;o?K%۵]RU; 4qʓsG~ʚC"@pIuϖTdذ)7n5q?8鷧ΖG։A\9-Zk +G_=&|a n޲.A_\QtrC =䞇G|FN0EΨs?4Α'tO~2wC|DJ V-wJeh96! IHP"AK!qB0{Jnʥp*b:Ab'Vx 6x97=bUXv@viO|r;yT e\&qĈp,)@I ʒ,![F o2b?XHvWuN߻c0jلP%F{Qvu@Z?@kTM}9DDb81VKdFzpmF9-)6`+#@HHM rfW" X"3:5s< ZA刽̮3􋵠%a:vqdvۈ.qq69-Zc؛yǐn QqiomLUQ6[Pć&4ټ{֯C\BJcg?rsW?=ntU5n>)i͞[{_Q+j#؎MSxJ*΢};͚'9걳'ǔWUNk!~9QGnȄ{6,!ob6gJΚ;9걳&EWe i&$au{it/9Fy3Co7\s!"oFrV>[>iTw˩}Qcޟgi6cʸvYSrwoٕSf;тcnI#h>|T7d?䐚rOF\7eM4[ bhE:tdָAl;U~ݴ' K[ "qԨԣ{k5!)U;V=ItݗIm~+XOSG5F1TIuSg4ahr5KP/i#GW;䮻N9M"hXTyIH)B&ts+Ց ۬hM\Gg SPE8)ktn62tU[ Hy+:S!Ԁ0C`jBPxdH+0Crk"߰Ơ@2"yQ[ ]{_03*F`ٜmgI!S tͤf}lcapޔTǴC@"&%5kD`:bƇ;=f@mT^`[oȮ+Y o)!`ʒRA8vR^9)Ar{H2ngCyd m9+Y|N 3le4 l g|T5 >$f tJaAudIqd!m.mDU͝g!bCU{{?bg,<b1ThKíVĔj5$J>aZsFAeB|T[5eޙ](jK ezL^B'Nᡚr^{wޅa[6UgDZJiI݆`0~+o>PФӺ-`lWvW͠SZacOJJ>uNܠ,@l{lhg¬EAAgKW?[>:2j6d}LHC_UESQr"J><~]UrfY꺟iWޚh(oN:jLޥskR4K+#""ZNXRFYˇwN+;U4\@+wG}'g̽{@1Zpߝ 7cF *^"`6힥z&oQĶV.Q %ԐX\Pxw-sIDATtX8V]PݶM]d.Iyvh̶rssV_\@ߖ:65_*$p9 Б MD116CV ި}!V̙l&q:r!Jmx@k陲ΝjݽޣGbjвE'Ǭy3~q?y'K=Z-ul Wo {]p'٦kfX5E6+HJOMcl xo5,޻hٓέC;crlֽEN辕s6l[}ކG<.Hퟎ8OwUwr%t0ԫм*~{Յ3۹ܯϢ*KlMy'2~eEwjUSZDۚ!<)\[ZLVapc|Ƶ1}r~59"BsӅ\{:JNXe%Okỳ珶]}فQ@ dyN6:*{37JSe}K}TG6 -rn%,/<Ū %t6XÂ۞: >Ǘ^wXp'18Ɩou{ud[K4ge~. +SĦƓ'[a/֫k8[μS}]zk#n> y.XUy>~V[E/bд\ -TGe ,Fy (iı)Ig3t4òI!b @ei?4QDoRM\gzO$Ae g!l3Y֯qyg#/,7Q>Mo,؎T4i i[C/|?ޓt"(Cl/!ӄ]$.#  x*g3ω!G۲1fen߄R?dt3.î@-3ve*{ള:ƗѼMu H5Ȥթtz$njy<xcBQQ r6*fd<5EMuHU_-L3#n깍8y °.A+,6JWTk8}HCa IENDB`glances-3.4.0.3/docs/_static/amps.png0000644000175000017500000023516214432156570017243 0ustar epsilonepsilonPNG  IHDRwsBITOtEXtSoftwareShutterc IDATxڴ}w]UZ;5@B DzOAD{""@4AiTD H R( g&L쵾?v[{' ~0skg=yo_`fDDD`d"bffbJ4M43&fN4ID)k֚43@*DY!b41pTR*ɲH~T`MDZȈ$M}13_3 Pi$5``Do`^<6oRJ!bD/P2͓wa'dpw*D{N*S~vT{weL̤ WJ]Ds%̪@9gLP6S8ٮB>ݿ{?$QRTW3=d{0wr,˲̬@$&nJT$HLYq(I*LgQe_Vf}R -7<v o{I(|pg9,Hᶹ%OoRn]?#bUT4#*haWGx/ξ V)"(wce?T}m|@= Fw&ϡw@ESEke32JiZɲq;R{]b[LR4* &&J$IOLد ܏*C QB3saTq(b=|(|0+܀bg%-'6>ʈCbc?DbdL^ O|bb(Hbej٭;Z. q %Qal|qt:3b92ڝn30E0ӄn@W߈#03i4M,Q#NVme¼YW#iXGT*{8(J)Z\(^_`tfݧܯπ5ۤ fDP*1/CUjKYd h*qu0P~_Ka,.^Ȟ"4Rهja> oxt_`/uCbJ)[ݘTKv(s'>Yf^713۽gwB6 uo1d%.1%3s̝Xd&%i$cY}ie|6*R%& ([y`(V8laI3oكjA{ĥh&"!"2pƱM|=,lr!8q..<^״N54qQTT6d?-Bdj&6:(CqmLĈJ%*iTʔ.igK\n q?EQ(qPbm >܍"^Wh4%Wbu/.CvG*c6y q 󁽐ؕRw31Z |! 1s!z@*Ƨf?m|h[IR얳_fOTS!0h&`"h*TP"dlpAU\l@SAO#џ!`JAbZk&8K}6Ae\\ bn{ O"2WMM;ˆx5/ h )" ?Wl2 B0?bͧ vuPLO  O{|H-e{s@B@ɓDd b_a @5JqQ|[+!`5'׫9*q|q1MY"QlH(9\+uV>^W"oCFH˝ψnD)%aY* J!2B@\N >lHZD1ܕ"*,2RH*LmB[B{nӶGRe6;ߣ^P4M^ji3E.VDC p@f `cдD%Zy<58aOɢA?Ą8nE52l|B$N+[JJ3 hp$s3j>#% ,$I 9dY3EA)`~Yp>.q RD34O}"!uƪZ`Xb 4qD@Q[lv ԢCsPolUjqUR`Q zCku~btu '=te‰m),B~-lO7@kIFo{|5]d]ZLf/( {|f FQ>0)1dȦY6䋖/K<*q̣̇qydȳ P4/+ P[LL@iFOȵ|i.'& ˛}Xg3pX -s3LT O|h vBye(JI&R؀_vC'A10䂴qw& }!90W u.ת"d0ʅ55ݠ^ p"T1l&u<&\AU}-y2:ykH-( /yz]|"9*9 ؚI28t}P,)Q ˯!25ACʴ6׷-(< D\cK [VRL)bOAw,y~y00fA=dt}h l9DT>6F&O<"bR #?]<`>%dIl(B6121ZXVK+0eU!2)L7D3Y%"l8@`A`*LD)dZaI0! .$)JRx5xS0e㧡Bd$& V-BR͇1l~N !VR6yTYbTꄎQC*! 75gr*A37(3/Hj{JyFmG3DfdYVy.lfQq5'ChZ;![ Yb >NE .a-7rhx 2cHQm:e[p _}4[3Skʢltfx5Y߉zl-97_ɋo}y`}3t|>{W@.'}Xt<g凓7S݈}{{_3uef#s"J$QL\_7ʓ\S6Ye=#OW&^n!Is8MW'o|ҥ? q/n>frS+ńYS qoy„ޤ ~zs#-N*8+.Xd _mJWkB aNQ rC2X1ye4wK1f\ ]Uo'cT3m %)Jm~bC֞`b1=uC{ kn77I2#s:PktT@U),ЈhL&&$yGDϻpjJG-}t& D&_-͒@a'&gX P!35^E-՗\BI~yZ mhgtٗђ yOTX`R7l~uɋȯ~oy73Ovofv8‰TP R*Sb\!ั4lw `qd޿/(DҾ8k;a?߳ϚL"&r2v'IC]gS& 2n8 d{6eo瞴͇_ 9/Jd 1 TU@V| TEd iuh &q8Oϫp:_E۰*"D9T̐vS6kuXUnO9xF};݇to-ю~pVt>s<2r`)=~]ʨMн|xndaGg|\~MU}-ND8(6Z3!)Ph!7bTIb(עme,`* nc=+Z:GC 2Y5fǎ] N D82J(A!"G}~frH'W.YKgeFd(O!22i׷׮-g("QQlo[u L?_=VTiq/X ?e!-ǐٰU}zޭs bz,YvF2D%z匷h=<vGS;.^Qk]T&b[O/i SؿovϲςrIw΄-7:Q-h ȯ9q#ԟtްq7U:up|Liu%l yf ;p4Ȕycs8/!DC%4Pu{/VF&PD!B_9OzM#^BLnU3UfO-xͬw3cVo&lݯCsݨ0X!;G nXpmiM?s=Zgf-ZCu 3'" @*C8C}~ODL\N@\[ E)P9LB<,:zC,34 yl lQBD,.57]!fwhWxDI]!#"ٳ21s:lKyemrPI F=\enjxwn^ɧu,gѴCwidݫLk{-~`ރ<3rn|C–ߞ-:=c& ޚ,=Fl[Sո#FN]M,yƇ\^sȈyoV%(xM;cώǟxa0f,v{W<,^}FX_+l 5,"J݅hX$c+M !$w+=7 Ucܕ`?+{SE1A`p=c!7+UYo8hmv7yQK;c\̵L4㹩w6Y i$ $棯>Χ:;onR( :ϭ`zADtȁgwdT^.{vLʑ_c|?9µI\;u i (ߚj/k]^-,H*/';ߚg)%p!jP@#uD> @ֹf{39y5<{ Cn9.4$Ub-CHK)b %)nEk*gOH+746usYٜۛ>#w;S=tϟXE 뱜f7yl~Q.> {cL]|9=yC-t]u ؅ M6y8sc z0߲o3tDۯ}}/βK 4IGM3^sϬ5Q^LiMALv*tl׷rl˧~z Ld9mNC޿IZkYa_@Ȗf`%V=vZ 4;\0YS[*/bh쯷3VdT"ˀqow>}ܖ~l`?``,YW7H͇~-b)iߐJV"*؆T"_rЗ%K,VK6Թ>5h} -OXu,j*CLZ0IXH!fujdPn  U.yWROu HhW#~rA/lQ rE /ı{[=](tH`T Tx`ZR.ҀNND@̻nzda^#b`ʴ$ M≣lF0g̟)mA11CwzS> .t{]vȞCf` ~ƻҀ0fe ,,; 0iD)ffUj]y0m0Wv2 cG3십ƪTHuRkpPf]8\BZ={Hs(FoRc:?ΞJ~{ K|wY[~m6^Ge^BYc8Aĸ7`a3b>V|aQ)I0bW :q-{#)- fiAA-'ap<7YޜE{66@53ҢOo,6 D|COS3>K:_:6Ks5xpi/W<@LύyN:rwg/jI|Ii c?""~Ί=2GN\:tU466 4QI/"'MYe~g#ؔzI鮖Er_ J)ddW\z'>:"ׁh{ӆ6S?o ySOem#"풟gWs٢NuMW/Y UaR Ri])g*UE=c;t%ĤmQHGE9'q.EF1"^`Ẕx9611Tđ"3vc/!N8"o{u5lR+:2a4ԳrlSbI4M9o76vas>eTlַ_A{1 W.SoL_AH^QYYr탳-HW#m"A@3V# h] lpzGZ!"Hs$QG("*PaH<̃5 fszi aHz7Č lC…|k}}Tf'gBaB [鎡}OoU3o$LLu."SQyM[yF޼&@([j8\{hTZ?yΛRyxُ~Smj EV50RIF|D%PRZ'_*IzWì͎p8⫟\j%AP7= WQʳ'=ܟ~r|#BՎwA t^O\b,{+&R+HJT)'T&zaMqw-VZ~?lȟ`N+mC$6dE56F&O|^ƫq3ZJiZ*$_p!0&A,bJR,co.YQd38,Ipl~bh;@w ".En$5+7a\C~#F ?E2s()DaI&I2"m`@Ĝ1xy%YAΤ=8iGX̸"Qypкm&g'13 s5ubxp,rHf$b n0͏PK|1 5}cj]י6"u1q|` @,e@T!+DgzHhDdK e*%RJfX wtX YuQڃ N*\IDIpYM>W/4ra {S=ę֔eZkҚt:no*Q\䄰гb(TcKG09~mv]G\N)R$=1i&̜L7{G* adRC+]bD 9|XtQQIM&7i;A9UsN9@ %N0HˑP5F3Ca#(i^9yUf$LWNxe$)3֨Ie 3IXbV>XY0},H3sqo"8*;Za"PzuwEO>d<%UcmP1/.zM&I, Gq{o^ TCl1BUNn֓3+D,"]\UTf]vN|DU3_X/E"(4h򪴍6vP^>Is;j{]a_.`FRrmḡ{ AnHNo~H *GZy##6Dp%(];+,8󬧠,"BZ*"Q[{qF"J,B 'B9&Q!fA#XhPNK,AL,^QPv$ <;6@a|CN|7XWPRH@ZB lgv+szɼWHvN&!= 2qԐ ;DB7!_9Ta r Qk\X>`i˲>oi1U [h0%?4'+ fš,=$1%3@lKDV!9DV*Fꅈ; Pٺ)w.4YK!o0y NM*ܿ{`^Z pX7xF*  QWc  p2֦ vu8PeNX?iYL" FFpJ)BD#wA?Wq 2 NSb816j9P6tf4KRP"T/y\@6(7l,>xedU, A)5RKD|D,s ł#>9`Ri\G"IJs<E{OX|RQIMsCA$"ZioDW V~zDol=EDSg&Ҙ$..xaU<:ʿuP¦&Wa\q>F/"7?iL.`B^S|`aW3:dU870V45Rh);DYFTyvǎE#$p2)5s`ļV l9!I⺤@vjȑr={ir+1%`uS-q .8(THڽjg7AdiAY`.ZlΖ7, 3ZG|sхDIÕ0K nb$`E2˜rg&] N2ȒY"ZkɚD9&1$)7K(<|2t+YfK4>ș.IY*80ČTm!=0 )GYd-|C^jTm<U<>nTrPps# Njy]헪Uc&hUGC!9\j,'9=HHرCVkqeo ζBX}WM$Lۡ^oc|0!kX(EbdEd|ڪVR PݱﮱkwwCˇ,T}0ƅ;JTcz^l i2pIJF Ec/Yd#A-qGbRÎ?͡HV@po|0ydC&iL/DgZz%0lpRnz$h}]6K]EeLeOCGۏ|z)hx,vseЗP{Fq9â9)#2G X X cov(Y\V(QĐUHnjš  JIZJCP6o` hP5}lelƾ08;6IRtC, ^3B}mbSσ8 1-q߈-#VH =QvJyi,s Q)Q%* QVݛ+2x;_ч;wJ)bJ)LTTbtX VshzOo黵O{u^;C2kn>)ter=ݞU)Ts!"Y0 ($m\IӀshU#B834( []GA=KVMe =ɉnu1؅2,<0AF|PL2Ǜ:|--Aeqa4GhnY/*{!'0[v÷*Cɗ9,рTSlq "sazU0.s{vT *w`"DӍ]y.^ >$; . ^Z3J4-a h%!w9}"_6P\bjSmXR-*D1 nВYc͟R!?4VX萒ܯ_5?urǗs!SZ%&j'Y8i z~_"TВfUMؘGUtFHtarٚ9Ovt,{1_Ib؍jAFv&426FTIJ%0Ɏ§ ^Y\Q3kJAGN/ªc3Vب,g9th,gqM2 9 n<0W\+0\no <KEŠ8B80W\;!]\\;ַnoB$L؆״İQ4q{ounQC@+VӅ;:u{Nj Qgk:N^QTlW5G(Qe[`Mb(_ˤPa.)1n}TAa,X|މ zc`1Ψґ{I̥^z߳{G=39ER<ڎDH(pRr񧍻}u.(8zSN;r&}c[OW?bAߓcf.{y뀣=@~LqW\w;W]2=/qѐW]wO=b߽_떿A g9wF;qLzk+wA\9e7o¢)wtV2~3n@?uO|`{Fo,|ymTwאRHܸOn; Pms/[΍}̳0/v,cw9b~A6tp~wVg6uߧ0RMwکGM=1?cl쀳!*ݯ> +e]-oJ:M-; SY3 R(mQm7%2ycsޕt ˼!" AMv)"3p+V->?IxGmiY)|~^ԦDI!&V,f|'? (b V1XRcGz"u\ 9!v8ɵgRf- 6bMl؈>VS 09cKTgԘ Ҡ{zbNW {CژQ:5n@Z( uv.(w?U)QhA{%T1\e%u-,/gu[Y9e{sƋnKJ! QNBcURFyJJ E*1ER5~ҵz*ʸ͍1cuJiAcN\l/3kW]Pז^yMO?~)bAZ04ԅC>C(aajiAQvT aY##@p4(a%9s&fiGs>1mϵ'P"5bp9Lsr U^yXJ1I30֧i\˒ΧPqp2i֮ӑu%]T0s}bJ!uXGzƚa!#.3ެ0OQDƗ)q4&O;% (F{~*8 e,CX?JL;)*ɧ;黾8qw^5SؽS %MAhm1 / ab j>d_x#2C{SYЧ 'pBT0s=0!_GzTMXh^aނLl ŀɳ^J$M2*mpuO)QEr\*ǀ@ϻ_lA7lie×v;oN0- IDAT/^\?~s_qwy8+o|RL2D-cG$Umo;ϔ赗^30hΡ4}"HfƜK$!Q~.; 1&H`ށUcKj#2(4/vGYF }Vk]Ϲ :=-OݾvF2r|X1x3]Sg]]7+LHtfotX֍g484Nud;`9qQ@P6?Y5;0YTLla<rf8 `c;|0j!)C2`͚WϙtζoB̶ɄRs#@@m'jM`~cɲr7n0-6W.jh9 ΅ =9κʐ' 7&(3$hEm[Cڨ7൚mydC8z0m)k/b-lD%ؤ1QJXԖ1u-lmVcnd96oM,tۂq1F7Yg7m4ʕȺmqoɚǑDF5ݸWTDS,'5bf=e[0-3u,{7F271k[x̅i T ի= iJ| ;=$Ij|KOjB?w;ۧl+k ak eȰ' <05\,~;=e?Jߟ{C l>0Pɾ57ӧq2R:^i~ƻXN,*y?ipjm0(|ptds2ba?ٽ4f^d'#ɇ Z) *U"KoF)h3GL= 'g혱0|'1Æm9f'jF=gd7;(\;k~;2=l5)˜ "7h/_7v5d㝿qN%?3VE`dc;~?|0ÕMr?~w vУʗxFx lZbnɝ;#w5lct۪ı Nܮyܕeчpı ._ަmު.;X%I<&DM{nOꅑ`y뚼 AZj5UfT~uf4lnɞ_vF|]x\gj':"?`t3eY:1HdڦDy蹳ibs}}u呖UܿQu lNWttO{a25 ]{8 >x=Z 2EAJ( xBK_/yXݗ__M9k5s~Mo 6yM>`_ȰZO~ypeOt3MFg /(vM'mjj $K;>ֻ>+3p&D̖>xi_qsߤ2j@n9^uTT~ړJO>ȡ;i~+6*^⊩S:*52b>eA:T:V2 q>݃& x!^nI4+2R.FA/ ›7tN 5pPNI@ sQ.nTX);^Jń̨Bc}S( ,Zk3 ٚsb@!M[f~0"T92XD,4ik䘽jʜ#9^YJYݹo3ը]~1Ldi(Oݧҫ'6EA%)BA/ Z5¥ k]-B%˜\ޅP HHO#?Z95ґ#>pQf?Y+CMÀU}bF2ȞjAqiN]qN EK ]b8p~{ %2<"3ix.Q<#bX-}(5; ޼ij=RCkD, B кwĀD_p,xo #jt_[-)-0(n~(`EL 0"/0dAp 7O;{`mc5B ؍ B>mBfz|ڨazNZ] bܷ,W=ܧSC&PkR&M۹`81&:y(*. ?Ua>:8;EoΑb?(%uğVM<UHYŲ~%G#E%647{"TYG#0UgZkm)؜@R9*[SԏJnJAg9ydԵ+dUL)b0rr2/qeLtW& G-8Bg><11z9g†S% YfXexC^{`+eʲ,(x (I)Ly6 bk"Hj)lRuf7!Y "ƽbC tFZ"2)wSBA_dc'*KNt#42.U0/ʸNvWEbMR:&Jiüg: pk jl46`+!›?ZRc"f4gSр 5 T+eDa`b~rAN`j 'q.o# B_(c,#Y߇ױJG;"֠ C䘸W+/ KZD@N>4` i (֡u/&`̶F35;y^@5;aF@!j)"cq1xTab(І鞈RE-YGC${#w/%XxgAf\l yv3Ko$#/01]tr|ݮQŪ X~9ȵW,@wgrjAYDde !د򷑁brʌq {dcAX[7QIIi+X2hi,!W}‚#>|s>Bd" Ŷ@&_VLU ,T*UBc],74 f !l\ zRBL4<"Q>XW*Y^`cyڡ0䱸]`"G(P,RixL-H/":Dr/A1:3bNݏA%R) "y7Hҹ EpUQ595_a42L ȚE r柡%h Eq'Kvß08whk1)尫PhGqf6jOчR'(L\ 5|98:22Yf& WY($j7$WsfToЂrsTb`dX'^FxDx"mt1,HJMyCLvQ+n+K٨D\m\mfV?BD!HJtڸifH%Ԉ} .R}=Ɉ?K*e볧ZzvIyS ս'].z1Ram +b⁧>pzܰߨ3&}'&Py%5~>2]Xc}A|TxN@J:rdꨊu8X3`Øo| mqd?U\W.TtzP䑽+Wy2m>=5؃,w0@5 FԽՊa+| cG9sΙ zYܪEOۋǍ3HK%%~?mZMUg^88̞r3j ⸛HxGÖC=q̡'۶cO>tѵX&o9 >I~x-N!wwpS?pO<%J򘛣E t7'nŐgW3`5hN=k֏_}ZE,BvtH3 Yy=o> ]-zɀϽij{͖}r0jGtn9Qu/{Ňx*i;퀭/ۿgi%fJroA aZٳ#EN_oZlB ggKFQ Ȓ&nYR_M}Ej}I)^XUGFd[L&!pK3 `HȞWCĠcM;!iO)cK:*\p\2!%ɕ?0]xsnOvu> dPͳ#CmV궷uUK,?(1'C)KAStb ^"@=W77f8AD R$}{}w~L]2j}wE9}''H "&P5!(*bkAĈiYל@D1`u͢( a`"ow[]u{ސдc邵=f$v4, 5SۙmfjI׵&`C0 㤾 @h;﬈=jUwCS/krpٙI_<mݐ'Lr~.B۶rJ9X;_{ Z^qXΎ70/Z@M{6o ro}dmƎ Q̾G9IHjVRq8#oKԩi{^)yNVtZuHHc8,xBP(?3 &YFJ2iebo5$G9DfrI_LE}+qXZkwd,#RJFDA}B-l)ŒG\G?lh 7랗UmY ".?fu:CcOn9I>!B֐3;}ѤD+z./:; 7-ҼU=7y/=?ѯ͛/>!ðƟ{LEm툒^)&>}YsN=S^C}{g2vGҎܘs^?g =k ,q.Odp##cdů<6k^@~g^?yQZ#v,X!]Ǚfuʊ/dm}s}a蔐k++0gKS^'8Һ9{އns~!sbHTfHpq"`Ϟ{aNi=Gh7?Wny$w:nyGNڒe ^ymѶz'oشܵpG^ ['aӦQ]QQ=~=VWq79_pbj^0ϙ.:[:YzFt23%]gظmwÎo8ٝ `Vr\pYtv5a\zo0#W>qE<ݓ#{F}3wU@R!c.gҭu2sbEN*-/5wP!WU3]/zKc7Ν݉tG+kuʉm翾Is'L}Q! ӺheXTiqyٸZܰ:70{K" JtvHJajDnXpߙ{Tg~s62 HbPIr۽C}w.kڵ'g[q_lL}Tzz .-D`\+0'EkUj+b{BNG4"H8 Qcd4)*9}N@s5%4= כ8wL|]'Z[~P]з%>2u[*S;Ή=˗ sa{փos}j]c+>w#GZp,@$gP']Qr_dճb֑W|Ng'W7ܽFYbS'OOs~/'rJedf|N T)FK%pMW{ \Gw(i9sn/QncnYu;.)NˁOެ|;'>B}M|'_5~甧TPRnyϼ*闍%o܄3[O IDATӾzzY=ZiuG~^7dpNbk8"/]ap^m~Z^L jX$t6ʲ+r8~ܘ.>ºԜ=ڋ+۽hd:~hW?۱:~cdk;qbsOgQұgK^pa/?ȹϵZࣣ;oW l$ׯ:p#(ݸc^8Pmu2XϾWڵanl͵=Iˉ L@ QI(GRjB7 )*^39B@Ի:DT ΁(玐I9f8.= FO{i=~IS{u<.w߻u ;0Oodkhϫ Mh > %zJ}<w(+Zߊ/f]iٞ?ּcw ؿ~e6ٗEI+6˰W?}O]S}_6T`zxE|7hwC<]M~c%e :!ca'0Gw4ҡS 0џ^{_l<!aFCUG1wcnۡ\٦j@D`F-NynX|_şkلyQ ֲ=[$kJ[O._>YTqoߪ~9^ݒw zԣa)Wy%f`,uץɟ=5gs X$€#o/Vt=w iiXq%[}M&li߷{*ʋW}ns\p!Y·>ۼk:yZn!A?F rǤThlyܤ_|H/MKbɨG$畾4i=OJ:‚N=P]UE#uKr\ҺU_% |C %n_TĔD Ӏx׼ 2]EZkG`h˙K"jOCN,!)`ߊh,ZŸ`juvm@Z1xhd%)601| 3%B$ɚ_.9tV染kRzgvk]Ųƒ/gSz 5{ʑp_my6ABrÀ2t2lH|TCBKdFa}r-xW̗+"i G~zwMÓ1wm-3< ]^VM-=Gj֍+/Z S "Kw߳*jjWUؽ]Ы*Ȋ_UZ]f2FZ'fJem 5+b-Sѩ}ϿvhWe߾bl;7+{?a.ūJ+sLM{,ueSn\iǖ?-]_D`Bǡi lJ0ݵ[c\UDw{y?f>:dɫؿjE8\;UƜ.BX +Śot^׾-e%[hظa`y{Z?I}ѦZ7L׭""mOM* E7h,Bca,-{Ơ QEm"غI%"Rj<ƀ(6aڨq y9Fj 8]j#g3W<0yC*11UYso>{G9Sx75 ! VJ$xl.ɫ!ݽߞ.j ȮEoHSs7uM?ק.cfW}jMKh`viia7q_a4b -ô3tj^ce”N (,[8bK~RZKb,bpk"MoOqI{>ۇڔ)E+4!pg;副*_G/UH4A [E4Dl0 C vՉ  WtX2^:/zXͱ\_wO\ڣOn}cyE5^}ĵg'ݸwĘ=5RͩFOuΦ:QyWBr_{9QRϣR7g.c/CDյIcPnFEU@D$о}hWN+I,|0:ֿY^\߆mZL*;]szM~ERV"#u/LFozeSA-X; $uSU^f'H!χПo%Ȏ j1)-JxA:TUy?=(zؠ”8%hRyM& :^D"ɺm eGO~%?B@ Z8V褵k2 E!>欭Bm`M@rWs"vqB8D۔ձufwӢT#9ZN9I@fw̆]U_mKvSb5]I$Jv!q'îj؁9Pլ*Ȭ9DŽd7ܲeЇ;8r:ZTK{);UJTٱs^WZD2 "'(礶m%9fY]v$#@4ZQVjl&c. 6WWI3h@DĢp)I_i0qbX!l1rv(,lmw*õ Frg 7CA[}r+&]=#ztlӮ/m}Q #mݱ1ל%AWL8‚ zஅY9#zǁ&^yե>yHD۾]Q't8 x~Ap=~I_[>d}ϸEkkk}}츳o׺Sa^yfD`ݐz޹8Gc@T y|m="_S'o7^oʓ[/lW:3W_} s ,mo-*~_Sc\RnM?_D``FhӺna] $ yQff;kBmqE>^ 虝q]qphn\@瞐g*Bzw9o~jB$Z"?̃gK)wL0?.N+ةSǎىT˝yg;_¾QP 2[Qe݊%?YjeXE礆ߗy>gHHן֭'2>]y܈ KlyԱ ONԕ5{d?\{PR\u^JE4&$b}WE Crrn;(!2yYp`,+HLX#㸁J #XXQ$9h1&BFMb^4#40N=BۧiQGH)8*wB"FHÍuRoEg{I ]lo-oOO &L93]~ҷorL5ݾ#eI&#Pu^`w=^{z13;9^ŖoM :"ջ-^P'm7&s5)&cpE˧tjEʯ(dJG?j-E/"{,E?s.m>.MC*~oNo*Yɷ{ p`֠э>ʤN8a$9š&?ﮉzġP2wލ&1ٹ'?*i+7?pݕp Wny%mx.;dkuze W$=Nͦϟ{eupʄzSf.P'n&#M?Vsf3©bU~xV4k{Z).n?^Ϟ|?O>-[ۚ0S<߼eKqruɚk9|jv-_|ȋf8ӳ>8G{ťSɵF+/k>C芩>{U_`KCEP,ñ'#tÃ'׷\ʦFO~ݏ-_=GQ`{%f IOpM1&asLٲw]55\3o sX$\*up!e/<\uGDGpN"ɽ^Z \{f& Ĵ azy@[ɚfD R@tǰ ?,3';VP [assv y!Zfd};&_T;58B].e&Ewbm0UFm "].9\ T&B!+B 0εt朻+5O:[} %ti^jH$"*ǪՀE\u\D89SEq95,)a$!MEMS&!PJ:yCzS&YimտMbD4vF&cASK/L A3Q`@ƤF\7xҤӗ{CN:qjyǩH86̱R}Ov]&"H="l%4ԁC+b(0谧?+? q혉"q8\cGgm<8IB'`]"Z)_6 _hg-$H`  F BBpwV%Q4AiZsh.0! ́e魽>ɴkFA*r6M3!1[dJw+ @XF$U-(KɔN8u[F E OݗZr!Ggn_ 8.q;;!NfPIxRЄZ*lɉ2lBKB6أ`S dž[a4`2dY3DM! \qd7?{ pflduV)iDz 琚t_"dB,bߝѶ ʝ_A^nԈufLPNB Kum 8'5&a1θS?m] q$!_2@qמK+ȒXW:Sȹ1 L VL+(C-RV6QfӉ]oY9O+rf6 Wc)O#|!#ņ/OrmV!"G!%h ItUc̊@S/{ZxђzJIhKU(?: "+sΙ<B(41 7~I"#؊IM22+ph{0xd2-3(e 쳜7ЌFj7iMŶO/a ~ɩ)JQDx RcbBqMh4Ub뺮q,F) ߏ@WO}}d,!!H3\\Jt443$fD7sX늘,ͅd+6$Zab$*1& -2g{g+D8^ |q,f)ߨCs\gM!p%@,δU4? 5f" 31֦;Pv@t'Q!*Q~Ֆ#P{VY7719)dLNyFrKM._x@LO9'b ch;` J Fquɜ "RfߋOזOZ} Ec$K'ݸd^9^ݍ[b!Uy4(jM@dcH:L Pgqֱ@AlL:bc3 Rp& +CzSc4=*PbJd,?kSy}"4怱;051=c>TMLk΄2|s\k6NGdQGR""JpcQbs$Ix0 xӄѢv` |h >T(@le%Fcgw{gm"₊NX6TeE2D?~3-(!hEjvnD͍4<*c.T,/౾?74H.UWEGTWLh0"'M ,<Ɍ0O>2q,6fzĀ0X]Xe43Zh|9xܼRڂPq'Ĭ3VTPR}@Ғѭ膁qIcIԫ@c/k!`,XNWY3#|EѾgsAB4~ЈZޢ͜ў+tA cQ_bV^YLB>Ӵlʂ)@<$ "C/a{%7瀱Cin6pBQugBLCB~Aٯ/3`H 72ٷf8kNKQd c-9ZFEH{pƪ糁S"X;Wuܺ,MӠ*<$a왏ABѶ H$C  AsuQ,strlaL>nY΁Yt34nc18daj2!\|wqKU:f-Ll67+NN E.bO\5"GTzLŋPR IDATnIڲ—#ȫ f$(ahIi뺮bj¥- C0<"} %tGgh؎X) )!GX'6& <]61!>0/I̵'\-dV#$DW.U]=`ag\u״f{Cvhf6(BHp)71j=:l+gYeH=:^?7x_^G 8,V' ҙ,@`2'o~ 78I7";([Iv*$ .L pO|td8$nex AxwO20F = am|`ɉ ~5ufYJi Er`$" {J;$@`nX= 2~y>R#H֠ô#$ac \@UFg>XtB=1}M v]WKo<(8RsH }Yސ޶On >)q>\_WwlPr"6Zh~f#Q@ەG~M#{|xN/& 1#o8v ڨ0u{sJJWz$oy]ه+UݧUV:yw܎gÇivwyV'4?f^怯b& 6^yM! 4jdZP]0F7fcMWiR))^ Qbځ0ɠ@/ ZD70lQXZu73:AkE|ob8kׁytjT՛p}L%qprQI}/K8yiN9bDhf[~N^)I~HJ:"3>=#Efaf-.c~ɾdxc8q2RU.D/&/c58>#~Wx6m S0I%7T%?('Q^pɣZϧגx_?.RpCP/]!=S_|S۹v(`j︶ozbUE}YkZ7ϻF|#oLl4zYճx~#v?q)M5ԯ]&Nؓ3iG/uHbow7nҕn.qCߘ1wmUZS3ʝ=2Yӟ\ܾQi*~|eaMɝ{֛a#_>c^4ŷ{^G]Ͻe񥷾ԹIrNx北xnApNpi-L{njh1;3S#},Q6ЍE (x5kަ6f( ;Y=4f \R\5[3aTH19'էРVC8R#i$O 1HPJAW>QZmcSnlL%s)j>OʂaeSS8-wѺJ"ذlϥoa>ZuΨݼoIYP)+#bc1{ڪq]~wI#Ӣcܻ:|Yuy#3 K.Ve?h}VPPiw!=Eaӝ xSkx]"Z6IwHj7m! #/<=ǘi'ƞnrnABݍq߳QƨڲZRˈ-=ecjݖ+f.讯3kj5Pq[[7H:(Os!=ZeD<~meO0JcDdJ -g4ZZ}R#P,q^IIݧȼ^, )0,֌AGs ]Mj\J*P|Tf@:8cRsU7JkE,hL vflX:X)P# Crsd,`QA%!HՊ@E 7@d4!oe!J(24vd 1\\r1hOC$Ur! XI) 2@_ch:juL[EO̹H>޳gV \uCk/]xÐÒv~ؓ_4o#TJ^r39N#/tM?u mfqELzM\#"sm!{GDXcJ*9'bd%2eUXz 4my{ʍKzݫߠ 8m)ӿ$rl'b4`5nŝ( g T8.]YNQ"-F!)FgBԜ1<'[ JZ"PAm"U8buZhT1#  =Z3J ?gJy/8ZT*y{k~Q]W #5#B"}+FcN9gXNwsҏq0ftX ,@9<.d|}tci#(cDb !(V2"A woэ{']o"\c0 diҶR #@lFEJ6;0ǐUK;ɓ^V԰{kujn.UiN*( =]1o5{|]/Z z&3Gjim`Fjػ6slɤ]bef#a9ObYͲb!3"-w~4ņ1~p7KG:P| P*4$EQ,xQvh- [ЙM,""iۧ"%8rU=|0Szk1ޅk>qc![D7Y"|ߜ}_ώNW%3ǧL܈DpD "ϋĹ'x^l< -%24s¢`B^6~Jqaha%ztI9:o&#;u:բ W4OaM{V-gԔۥv=3߼dMQIEk~w:K*bӮ?ߜ;Kwm2S/8}*;7%q]SKmeCM}.Òuk?WuxVs](ZX@ØgכsGp1[twa.97 /u,XI~U^]}qFh_PЮˑ0k~}_ly˸!Zes ]A{UvP40inVozyC.<ǎG/nӈ)F="mO} Zv8B5Lh}]]bԘݮ}aiLlѶcL- tovڀZ7r #0v: JW)yGq=fX΄Xعx_"7KK6>xk,<-\ +vF G~Udtjk冶-DHRg Mm3p9qPs,XU#2r21 \j ;Kehln nOPpEA #_y;[ Q`^)%#+\r4/!Sms`_"|&΃Xຈ[}qloVJc&VThȄ!S^K/tr-[+ԵPw>=+|*`_DڏzdI S84X[!lmM y?=gt ߨr4R`WO=N]t^Z~O6~{T7I1P#dƪF1 ?d\~UZ+-c/D-ߴ_<*U,{#`^%Xp\[Yn]yŘM]? 2@2A/{2Gbіp? F=NiPXX ';97ϖ*N%Aj! #ho$cOmAO[ݚX/39jB%8790X% 6X[~aJZs_/J*Ld3Ƙ MƨG)Ԧ{ZݗcwmF!|e-z zPCP(qN0 8H<08|sr溮G Z/yGVwss#8QuГu]WR/ q]q$8)8nLeN;sayq4YՈJ-#$1d=JKzQay` b*2JĹ/ʾ@E6 CXn\꩕뺑9ŇUH¥_}nq"F,f&"t,l2as}j >90d0V5G L# &L`3V!s DAFYDFDŽCahySq s3iyTJW~r h+W,Hвb ﵏H\dVh VG13 {8DG}=O BL I~گHtk;ncqN6@kJ'Bgۄ[f1FLd07Ag?:kFӌDnj FO˕cP,50eVԚUq*I)8\NMUdL*I!'͈C=j< veQ6خҥ_ 桘$ CAsm)0Dj0њZKŀM(-heu-QвَdU4aX  B@hBk=%%өƜLjv(v"!]6sS #Xf:DhY8SDx+(Md|oXO3LPa~ieJtz"Kkh1d oylG[ BّƵUƄ&ka°a{Sm£WXLM-ʂD&"BLCU1#A&Tc$%΋F"=Cqq6Tb~|2rL_NWT8m6KZ\jMY'7@CdYZjDvl?бz4:0T1vCL2:̀eG8p7ai6KmB2CN]6DC|L ig08 .qHe5;QV|TNyD:Vyaz1ctrdG1N<'b*TxHF6 N!f2MtB#)CcdX0 og9P *vӨ²>`*&̎{qdC00I+E+ 顽p NC0H?GVScG&XЖnfG4Yւ\ /,?'˱ց5!_L oaqǓEs,^ET=YW," 8ʗW/l#{kY=\:Fy!9vi&a۰14R)KPwb 5 /M *tU2k+CMZd9i3_:P Aj9CZΉsq 8jOe_&{Mzg5 $24e0a{hBvB4YU@m2`,FACDuNBTyQ ;LŖv ׃l ` 5C^ dyssCGKItd|M@)Kf >uw8qN=ZMMWm IDAT(*2qPɐ{08G0Н+MLxE"1YF$+ .JFd |Eb}8@p]Ri oIik&Fm;Xk(ޔ1*uڧ~t4ro }!1I]DTfa;wIY(qeJ4]PF%v`9K Xz%h,dYV?OwyD۰iں" KV0)\}45g",i8cc7$mVЬ4ꑙNA*X ÚyY f#0.ו `obh d"d쮊 遼(!U\eaQ>%6489%%XpRH;$BShu"p -f|xOe"K!M5)2p#uq=ڟ ELNqhwU P.A( ګ^ G@S#ɸ3!2A ho1ͤ q8ìwBUN ?pF?2)4~!Y`8R较<)@I Ug<X}5?`?uڰ݊p)G}?m^>B$   U~B[ O%cЇ_AU3QLУ"0+_~FΚ96m&J>)|VNP5m NDr'C@n Ko,*3ׇʟbhLقAY[@q6}lnn'a1$pL0밶Ŀr07#d7"čD\!&?5I0%R^vx5YO> Ibv$)}F+sa,N;>"V$8\* !!8"XB Pq荁H(u,*HTGvX4 X V$T]lfQ43.eX8`!j{B 9[/0U]z$!HF q] и10B I6zF[?E1sA#$?Wd5}!}~kуVF3PI 7"@:BPP/4E7!s%&O.D`%&65$%Z{NkYL Cƅ ,!HL{J~3QdKAC2wx @]S .EU0F#<,"ࡣv9W,CUY78!Ȧk14 ZnBU}䎧\~cډϟ}01O+6~ -' ({53֝rNYztw@@uܝOS6}Qd8 E*צoߝ⢒z>ު?uԉXMyT\Q mq׭uZį'YNԮ/A2}{8nT[oZ#9οSz'}r}[xWUNۑ=~H mk[_vr+''[=j|=ǒ뒥wqםgmKī?q7︋/?g`Vhdz|iy}ر@a~}pLsF ^]-<}ȱvO*7}+-3{{gK}D5Iuf)!Uoxǿ.#Fp\Lxt>kߟۜ1Ǧ|<+M!DN1rS?!Dr=f 4gNKƜ= =뿛b[3m0\pv̼u "Hx%cFY^̜q1s}t^$͛fZdKNA4;0e#2(s# Ejb_( (s_ah[NZ[m>fCBiyrDd0Ȋ|fB('VD`!dP Ccʉ3H AV6:T@$ V ! xţsa #~PeS֙Ӟ^{0%kJrѤ_ƿ&H~5WZ e?]2ShOkN8NvܹvŇQFOoΘ*YW_vCUɃ߈0:`_y͕i46>XrnSpU^79:ܔE}asEB~GLan>/Y=<戣sSnco<1ymUzs򖪢)-|'gPO&7;od~zͣ?גـj5c{n{ySkkSn 2uM2EA$_}vy']{ыW<XRWlWmOǖҦ:HΠΥN,;F_ufNi\m!Σ^w~g.gNpccì)z *ƮI[IXbQ1؍1&IԨذ" dfa޳ms'y;{{ިӽv?#vftNVC甾D~rˏ|ђ#.V:_yS1GZVJu 8ÿzu~fpH vgMF~緬43NnoAk>#3oמn/_)3]ڵqCKx1\E؇ɲ[aQ8(# Z ,S>GS00E-̭rо<9[NRp8HDJi)>4%mM$ywQw25wL o@aA 4ok 5g_'77]uzZzzviLKՈ53_nͷ-)wc5Y_-[ݸ/7DP6dʡ?Gf}~O_jM37^v{O<߾{mwjzOפgުE|~4y,KG=vSǏ0n}휧Tmt27p洽~NjZtGo,\n͒znI}w'|&%O=5_6k)w}G֢.g hn^rިӁ*~׳_{vJJ1(Pg ?E߾bgub,laNBːҌK'S ݼ8@2>DB ﵱlM'bCL5:W0ڹٹ^ F)PJa7>&}\:v)8g2"M$@&P2"EbZE!Q!Yy(ƕ19ͅ/Es܁Ҿxe:(m&-JU pgi3o>y #WTO/wTK}7@m^AQX9kަmއz6Ͽce4\@:]GRXR_ =Ƌ`1̪1c9259 rrt*X1pDŋE&{m?z5dHk 65Cs!$_לuۭ[t'3ߝ_"jʦulSYe+GM9CQe>Ԕ u}Fa[r v?]g^}F5+B~l"=rPyU_{6w2?["QMj@z)}V5KӠ\^57kM]mX.Oejbn@R׈AU}}"@~ͬ~YK`ASU>Zy7\E˗|6{ւ(:#u&r.aAib\_ns=,aCQ!ƬIX2f? OA#Gd@fp d#$av8_&xnX$K~2(At(~l#6ŅhB|( ^PZy< &žQk3rkht#\]%;ɵbcĕZg(W^0kIICWZZ%׽DJ `^/U9_c:y;CW(2Ҏ}pԠ7!z?m̗O"oO?#ZKnx$1>w9j= >y]׉C&2`Wq3"T=w}n|uxg +ji<+RM)+ZYq0{1w?{=qml,0 GY(q^GUԼ¼Mz q~UsmRmzjFՑBҥ^4M;JeJc{)P@=VjpAYFqJ=`#h[P5_$vUNjsdkeޕUӲUzaYY>}xMTZ4Vk?ʿYn+Kx7Aԍ%{XKԔw,lKn섪KdߡC ](wnevҰm ݡ]3gT5>;Jˇp}P{}}wػv;aeQKKw=)W Ѷv9c& oz1{+x҉ 8lⱧY/7蝖UM8d]w-++5yٰt̾cgI벱k:ݲRHy߄ `n'NmAH?|j{k_ ɀ}ڳy kj=qCzWsv;gGOҿQO9#G4|.{Ke^E' ǟc' wIM=;uQ{=p'K[{:aH9a~/,.xiV:S0_A#'N>#F`)?9bϑCU˞c76v[NoZةwײ$gjla{ u1k@SK0C+dØ1N^I%/Oc:+-2˙_nQ~:ʶi_k&c2$O>X;*,o% U9iVB*:$IbdPnjZ UfDŽZ -m!ʦ5@a?KXY+"BϞYNI*5Vu19{HtԨݥkvL4&#U訚[)hctmh7ϻ.Ph[0攇teO|Ȳ;m^h?s> -u ?xY~AJkѠ & $Z?_w[ںq\UyJ NVsO O偩}Jp&Ҫ2~%mR uo y?ZWؼiwvLk[>|)%Marӽ\ :it_%OLc)ǟۣm ܋6/~'~ԫH?ڪ'^snW{߳?qqg\qX%W~K P{Թ.qOº_q]>?<(BGwdrAW~ϻ/yuRq\ [,2>B쌤,6x<ۖU$~SפVR\Yi'PZeVzZ*lWaY)FRHLiJYYC#>ki`>5.6rQ<$&8D)Dyy9"y2WVT^W&fi2c"bHkϤx"H JU)e_ i ij7ySj"e!`Ʀ+/}B1RDܭ:UGFAbo3Sᙦ6{M'? MLCJSӥ&HUj>5q.KvKJۮ6& ;xQ^;+~RC2h Di3c+, 7BБϻgOdc#s`PH *D|.@B(tdQp 1wO'.) EFzb:`F(2!lE;Ed1,BF6,^0Öd~V1!k]PJVV[4G(4%\Y4҂Vz}-)[9!о IDAT$%K bF B$h-,J}‹^I.!M|jXp@Sdܘ:3]ڇRGAwt ߟDJ!Ь]‰gaY lTH2fAah7 soRCV+Ͳk6]R.f3G"k12Ukwi[K%}C -A6^ \-JE`_7rTl|!2E뮩DZ%$T[ph'NkR]'E.n S4cĝ}X~LS*`ZβU;[yq+|s"ʦi0t.`3>a"U.Rfvͺ %@dɺov0V@C҂)Hꖑ)M( ,1e h5@:sv6q/|HzJMۣ ? Ibem1>c;btS  4Hc&fY8zlBe$PBD&J+~r4= b(AB|pl… s6XW+ w8~%`q~[\h+Oh0yN 8*5gufPW;b'L@eQ+T{A/%)DTH _A,5fm&~QILuγ銢ÇSox3A=WN|anīt)2 G_pS+2eE v@GK;MFEDt>۬GenKCKijiy+p~Lg=%v#i: V`,Ԧ=d>fyRH[mmhES")Ii܉iIaþ}$1BI1+yLd䒛XPwCplۂṾEX+enf[ì`ˣ&J:Lb5edwP0J)\˾xQ{LDSk@Tl;po Vb'oA9G:xΒ"iB4<:CjK 2mFt[M,Ae":Mؒ4;MIp'%K'NTPX-W;lyX}'sٿ5zhyGw Wlw*f-n#-3^=6UMj5yzux9$$4c/jܬ{M8gg]W_hm{^Bl41kfPbqa^.?KZz& REoUM{‘g[[0+Kn/9U\چ~gzmW|cq8Җ /Vz}Bg44+X/4rǎ,[n\M巻M9"^ٞ^]Ycr rc3Pi7LY8-}R?ytHmjZQD"SnL+NfkB<&:YXɍA@y_kT<ʝLf7.a*8!h2&efNш[ Tl mtȪE!!bANda.P5RboyN"^ h/-/d i╜ALf qZԝ~3~JT)Aڬ,2%r8a6ڝI ^-U^ Q |} !MٰCQNبt(l41=:;"6Z1[ܲQ$ ^Sa_ozly;GνuQjXզc;xku Y)`f֢Wq hoL_ю`e I?uH!t׋6^䋦.c=|(ʪ J%bRo;yvk;B$k¡;ߺPpѦ;x|P>ÆY)E!p(վi$ϸ~aҝʕR BpߚBuv 6[7o5T`AwZHN4 u=,;jg3U؁zqG`IEbmX2ϴ+Gːi"mR J K *Ő`cZlʅLJcSQ؉]Jip\]@2U&6WͼZU<`wFE=cE_4hy\$IBJAm||B&RX!B־?#VZ3GfSppPE?j7}0%&lW|{Ym"iIMǜ2c>KFT-{ŭXP:\T/?9K6/ڨܪ :Os ? ca"af2 V(Xd&03%R hL33e6PmeD|Xa3>ɧeP];.FϟwyYaEh:7*!@Hb.dM;5dMTǀd1T- OIRTu*82 dTJ6;󦲝VT(z `i-Y[4y.;xAI%i9AcCBX"~tv{Xph㽎`4fJ\.Mڜ.{љzR*=t>eh$Dc1`I'DE0պfyi~/;+$Y6~ ?ӭ nj*ŝS6Է ֵ5+V˜;N=dWE9'SRH3z-xWmw7 f^Gu5uaoԨ8tK|0yXk ^"x3ݪІQ}65k \ޯ0x1`  2q9 KdfRB%,CŘ )VDw[>sRq/FClTzM+1v`'eʑI8m3tF{͡ehao%Q'KM(iqupּKU7ڝPeoLw{´9م? 7Y/2 Q`iU=Riܸ0EX+'J& F ޝ@Pd-,R̉H+5=ɍ FOF%gbd*ʥa?mO ;$3 :Xw+Ծ:.x];}F;EÄT)ĞDv$wAQ/ϛ:B:wogV08 A Җd\2Ya' bJ+I`igeumBjU Dqq'mk>uvcdfVkHں KNVb,+q3ܔ̟!,P IafB=ڄ7|6 ]_][6Zݓ 0a&3H,̨1Aʤ{El1R@`n7V>)ȥD7JY$[{>[\^6pSOwyUWOu+<Rx;Vs8{mZ^;>lNN}yvzWOu+y`ծ]bYxI{>Ӝu j|07j"clq]SGNQVoK!zNf#r= QB)˘!"jJk$J(% -ae1F2c,$Qmd|Έ\^$e"Huq*ov.A +)ecGuxJe>v?>n4Ŕm)-]J':aڰn>wFwl (<ԼاMxp&$ :IGƯg>8m6%h *ذ/?l {'vôaѻ< :QwZowwz0qb2Ʈo4sP,qc7'Ay|Ƈ k !MF&B$ci*ҜrI2G0`"@Th%x{p L0$Ib:reaJ MJ) fmު~ssxGPH,d$*Hd*=l@V.W*)D|>-^,d$\NTd󡀤I.BJZфm$I%[2Â,C^ 2 f 0}r3LyᢼJH3 .4o(( k%IKL\@&E%l+#fz$ijb";&az. Ld$7 a#^9`XqhrPK0X*)ߣ̃VA9dfaVŤ`OE".1'=f&-)Maݳ6 D>Uh)-Q/17VOۼYJXu@_|NNy%bO}݁ nXD; 18>N0q"Ҕ:{ْ؍J^\a=HZvZfdP+4ao].`oCg 0̯ծ n! 0iuDsλ)?xZGv*E,҈b;';]K,axY$}T{VrV8#F,HXG1 #A6,km0sUEDޮ9[4i{*wQR&ٓJBo`2j޹fy3Y/w5$Rd9n̎*DpƒCpf+Mbi|# ݥE j,rs0ez'?!7>4Aҏ L{{ ):!HL2 DЯkwj* tm߸_ɰg5L lI=' /Gc tȊ/l 4J#"y7Ȼb&QZ((! p/QꂠL[w1MhB%DcR`!bsO=r8QT fZzz?t m2+Um"A0Jk>?6k-C/|ެK=j|wL]Ofu\ڟb}eJy8O,d ]yS'=~TOYPܜt ﺤ]a_W~hlsX f4n;Sϻ8e#Owqn$/0b]!M iRn1/qQ)A1)G~w7j@~BT; W7OZ{yi3dpb)aKN|]j3h0и|Diҙ)آ3M^u..AGea,V0F@KWxܥ i S"=6|O}JS6y"jogv#w("E )*x//<0}/j~_r\\nA7.o`nyE}̄2\.I\YYYYa}zq+qY_}a>x \6@H9sJ2*\7-؝c=U? +E]eBe=Dz囨y>B~ԣ/lE̮y2ehF*8@HNyl}-κ>w1U f 숖@K.:;g(}3u5"n=vH  ;2sLY4_8ڭ}uX"$ #]av)\h$tg5C>𺛏[gC~bլc?\:z~w[+ e{tƦB?>FmG~jGdG-:Նun|ם_+tBk~v1TK͜yme. Vm~ `w7F3^_~q+f|:GH|| >GgrĎӕ_jQ^Rs[ˊ=斖CH?/|Y_^vLEh,ӡdd 3茖%ҳʁl-;y&b#>.)qYpFM`+6f%S+D.`k&DRHmOJT)x،_C2I(r<wl"b}3Md ba1+%sUVl3Π>[e)$ZDK;^;{f+Gt养տtUtڿqJ<.W<2> ^{}?+{{S9U ϽSϹ 5z9rC=koGwt/𞫮?MpAW4(J˜ ӫie=G¶fʴfCyҺz+Zj; s%\^HӶ_<]TӗMYlJyO>~l{SιƎ Bמ#?z/q{]'GU}x~{ӛ'MH!-8[n!9Pj5fujb|SƲGRi*~e:HT(,{[9 : t|zYggYQ; ϾqvS.8 Ϻ&3ο}Ռ$w߮~u{pJ]N?ẛf+O%.;`PB 2;rmu_7 k6U<2sQFJ1egLfkA> аSkҶ#DT@<_ Q؟|+2k4ȥ`Ao!q^;l \)\qF&ݺ_L S&+L㙰) d.WBFq!\Z݄|ՙZi+YX{NTa},#h2/J^^D>WW=z߯׈v>@1G\z%L_"j_{ lX|./SN>z9kk?zOm!D}7o $ʮ]_~W3]+P1 M4ꪁ8~; 9i*.Ϳ?|}\ڣv~" '2?(Jz'/S/d{&=M1}O 0EkbE<:P XFG`yE1g~t ȯ|ɧg~lUcO_|lؾJq{R(|v2Z>vOx㺆՟y:R49RDU~h6ҳB5,Sغ$s6`HHڙ+`h1[ƻ@EN^|[DZH_A8RC;4Z'’Il p}y($Hu$MޔyZQRDAc qjo# Fxܦ BHSw`Ǎ  kuRb,_St1<V}raJbE~gcӦ13ر|{1Pk ˁ᯵*tva{?+CC`uy XIt<Hm\i@D˚["(͸,g:jk 4Mu?{es;>C׶QYܨ,FlA1S2ECڴnS^T鎶*sd>X567!{g`ɺX bL6PLQBThX렾Czu{ 뻾kX9꠩'{[Y*"5jo:YQYe$S{7Ԡ@`~ 5>p*iC 9oR՞c4n%y+-Aj*┚IPnY* "_a >zA@WuC^#&"%Bl3$v+!>v`D [?Bi"QbB8uY$ UÚMU8| LXBTV%fFgB xH\eS4ga=;F`Iar&VmZ]W,_Sw߀ל?yA%׿Zo\S9nOa=W:06L$[4kʞm5I)3N8..30^ n䁫?T>v.Ԗj&bISA_,4h.#0KMd3j>#$Z+s}›t٧O @ZHSb ٶ̝Z׬o񴼶u ۠tͪV#FV־6zsS - (Uaq`4 wd_@彆~D={DZ67/-n2x9j԰ִFti);e0la[ 0 'oi$XPmϨs2zß9X)vh]\Oz_'! 1Kcq-D)?*ZZU$1Å7eKFIJ\,' @4*5wZQ@ JPJfZ0۞JBj {z 7=#͋_lG1 Gt 7+oUS8U2~ּ>rĮ|G[ƻu ڦߴT,_pJ^]ޫKˊƴ ʐcBOO]zFޕI<`sŖ8׿,#& 5hO(C>+twv aax QPg!vayaÇ@ɿi צ~]66@o\wz$!?B,U0x}%]ϑʺ!2B[bNܳ.t5] IDATm/Ko􅖜]W5v0hA'ңuxc(}ژ%RY#rF1cVA<{MwW$&a+sI~8Ng~,窄&VO /b2zeպ6 ֊MubG6So甶Mx; @~|˕G2vƭPony~6}'xoz-mHy47}:@ a4ypY'{!jm>Vi (YA,`D{IGR_|/PV) Nvo#[IE[wxXLYH38%xP`*g^Gvi4V @4MM3 B! =@BDJu1!!ַh m=`$R5)j2o 9$ikNweSǓZ|!6f{v[l=a\Yu%FIP0\,MS QH:^]jHip6tpqmT1>-Zd I.њTzQ91#%2ua~}BorDVOx)0z@X>6o2 -ilZڗ}zUs}~;kfBHfbV$l"$X, Ң+[D\кĥHiUPXh?U+R a {2$=q9\2QB74 WP: GBqui̅n"!V*pՊ`W`^Pcsuf4+, vf,j}%^e TX^kRln3ƶq޳eC棚^ʫ\Yb ӂ$^A qLihjwPw Pq[gh:<+nBf.߻mmW=m@6/JEez @,yJ >TΉ\bSG`Y)-=ȔYD!@hb2N Lҕ5WWH+a&-nB3I @F Č_"x!iKeCh<@m<$B[hΩ>}tۖcy"8*#Q(Ɲhx1.'*ꫢ 9S0}j/n}K cG J 'ÌBCɗ,(EXCd GKd δ($܈}ZTCe՝+v2lꗽH|o~;^BkJ?tEaߥՈ(#iI~ SLTAWhE,3lʗ|ۋψwگp#,]ne#76vwVsnʰlVπR\]fbRc\U!8 !R3ݻsj51 <h|"C v03f`R6gFVBb8Dk8ʧE\,HKn.92cђкk,NsmK8<)tǕhɦG֡$T&"!( CrqDaXP QR/ D7j&aRV+ye0]T; BW+%k:65u)} B|v VvP ,'ZK;B k0i\nK$}k)2q*)y8 kiMDi 8D7K{(xFu+@[!l R(JhZ*1a0]EI@Rn ׉ O#Z$  @4qYIHHz+Zi_x+¸$=" ĭW\+@)/lKu/I|ԑE9^@WH}JU֦RՉaZszfP?i-|^G V u$#T蛫/9/UhC`*7imh>jaY&.囅jDz+2וQʄ]P3nI*IC"b !q΁n[5zNr@WήHQ"gt18$.K3gNHb՘`gvtޭt!͗ɮnS| }Q,M'vj*T.gZ%{ j.6|Y3sr9RKy#+$~clƅ)%rȘ+6"Rؚ&hk6Ɗ:K͒hhRz RJ>L װX}r *նN)I65*yPEAb(ϹAőX |*7I=~JCC 9q s>z.;SkkKv]LN Ū w۪Pr$-_Kפm^cgHP(a`(OIʽ,K5FBcdѓEyV ߑRr8hL1 3S5P`7l/=Ə[8q5d砇A:`A}։SIWD^q7X|q Zp:Cst' I8,S)%̙!Bb$[zZZy*)*Y--K} ,d UpݻmW[suCԺJ @BIT>Hɞ,Ejq6)כZ=v{WȩeU ._C9cLŚj) u9ELt̝M<>ir--Þӿys TkYC^({CFSGvz>|z KVY/,Hiv>۞@Ö:qؘLXshJEw+m|{6S<Ħu0peh"b(5y|}Rnfig}86o O )fk´=b^dբN룒N-ÓZr}-bnM1TUB0,BZ k1 qB|l=<w< OW''!LH@uQփ2U P1jK~V'LKr_-iVIE:I̬>߭usgnamhֱ}!\QLB|׿G?#?E F\lk90"C̿θW xC'>d+7?|'[qcr 0;S+x=k9 na3/b(LЉrVZ'.p\j.Uڀ ǖe51IBR 7a\>(sm0SSpM{ಎd7jagVGVncu')iFW-ꃡK?ZXFżhsgd;Xq@*,S]b9<}y?;}˷Sm^al !8q+!2Y̵h>e?q0DDJ)Q_2j140{㩜/QǗ -qեt_pU? sQFdsp9٧|T&l%U:Ʉ)sE mڗiMJys\1ąb!Z p-_XUG|O\򶍏 ߰;\=c3rǟ'|'_Xt W|[g{w;yy _|WK~lv AF=Ox c:7G_}v>wMo>뼸W[Yb@@fFg.ܥ'S̉v* 8ل[S*(YEڀ7]?y/ )'f4_ADT`%`@nۙ?v;S[6D&Hu?sGӵ1%fv7e/][6̧k|͵w.w^7_u=5ox֍o|ӿrwqWhRv8Ed^ H(j u(K~"%%$ef)kI(mC%Z,>sc A zlK'k2WS4gulFR>cGTmQ؛քApt@cq'~fܐ\*wCQ (th;Bls.U>g^/i<)qbQЬ"gv]K}?/PN oS\>45 ~Z,8|ڳw*ٵInz8^\[ccg3=敻/zY_{9߳y)g~r>x߼5A}_WPs O@Yx2Ly 5<ΙQs_ź]'$CIu00KITj[yݧ9 ;|_9r}sO|L{;_yw `}Qn=x}%3G'_}#~Nʏ<_sN^w}p?g?G\W17 1}R Zϝ0( U8-XSIuhBc}e{aԶBqKHf5!f\:뉗=x|37ܾIO7X4vKRi%O[3̻o^<_^GoF#orݍwXSkR爒-rgsO_Į(g)Y,G)~o}U6<=9Yd aK_k@+RJΑ ձd0&Y7eת/6G[[Jϙbp 9Ȃ( !8 MEfWDgYFX]q$.͸a7ܻ0;x|#ySveQnv0> lg/vظ$`8{?df/w ` ިߒe%yDq( ^n% `ۖO]E?fJtb@ZzJ]h֨y*u4gm.!I[0g @Cʼnϼ99d><' MMϷѥ$IaGocCj[NH<{NKNUBH}枱nOD vNIW_LHU*/?1xw^aЖ6I؍tm+uvF#xcP'ͦ#Q֖we]]7 lD M} a>QwlUbylP D["'b6rk|iUŝJ \+ ;b1ee1KC-m$dq<Z|s7l"Y[4{ЂVIt Aq ݶ׷xGn!WEqL@E@E R1_6JZ/:#lښ5`d?" DϺ"Dlkx.D]niwy\Ӄ6K 2F2z-|ikθ /zᄄ\|?{OuyL)Dcj{.P?# a<ߨsʥ,G_$,F漶X%Q 4w{HXj1-q!'' 4J) -?SPӫ! @ɵV&ֺdٌX@ ߻UIoUlCFsQ;U|H/nIcg͚HOFVKS}&s|hrӧ~n8ofzǒsE\6AӎM0 Zd8& q!D圗eު6sO|D8ys&w1!N3a6 CS;_t?"w*s|xcQ=xǸRX}'/]'gn8C"S,ԥOj.ʮA#Z~RPuE:_NwME\"-3FsJIz!cB*qw?i}/O0~w n]Eb:~p}{ƻ8WKk㮳v^4U[^s(]bƲn&Y 1,K,JĴXVYj\wj5(jRYOPARRrO)#3m{筭{3Ͽ{?eM)Esf! Bd]'p%W>"  @@⦅J{#w$)vd2`8ٿz]}%ח.?OoƝ>~Ɠug>9h '0T}CJ9%D`Z圥'9d=X0D x`]$'*3Yn!ϱ7zi#*lzqsr}Nی"h8[6U; qMUYAjd)bp78>Y=O|HG=~hmW=뾚w/gh5BsoGP** 31ciG4XgyraF* u\^U^?diyz\Lmcr(]d=! X@K0&qND@q~ }7n}meOxn 93{g|˾g8q߾ ]ow`|Z幛3833RQOgj Q3p*l}AEVhm +i>n)-XűjfU`(P ʙWy=?]Ck74Pyhiiύyэf9ũ6 䕁J86RO$+@GmX@TjftMٰZpD`ˢmml^ǗxFm2Q8B5Dt!\8Da1+q5Z.ݻYX ؂8s!́lB\۲9ٿ#G}6 ptU,wŭR.dm%P ay`~AY"RU7w̫՘swcvAWgX Jh5)% X"ۖ%ZVCΜ(N-SRR3#" o;}*1,Z+>b1,r\fW U׾zٻA۔%F>0{!͡DYDON%Z,#3˔Sa0 )>EnI(:\jg) |U2)[:0rj.SqlF?=~vL6%1Crr֟9PA:K\j %AJLb񓖉M4+fT3L\(5ҼjtƁYG,`hI [_̂O '-Εҹe6QqmLj" g񲉝fr6SN)qJ)9\Rf'kXgRC 139";Ԯ 5[hVUJcm٥3aKXBÔ@d5o>=]\yv蹑lG$X.P3A7zgºHB[ ,(GAׁrY,'Gpu*&]u4UM[G=qL[ q3yVYhw&R;wJ( D/M~'Ha}TS<ۻ# RE]o{^ZT_ JU'tMƖ:w~FS^VHnuX Er8#@!AΌ)\-":m/,fuS\B[YIWƻɀlo ;Ԫ2G-U!d)PևEz-gܱIЕ;Qҏ: LLΎP S[ TpF!FB,G{3*I!20K((&N)g DAdܖ$TZ_Kq7k_M~v9&(/7?7w/|h2EUlPHĬnЖk''k"qI":ke3Z @ kvSV5'X-*f*c2y)jIFq](QUv|ViĄ΅^Uց^m#" Ԍ9}R(0&DRx\8I^y$wvz3nZ/3`"(Dε#wS+8FnuE|fcgB\,4 6\)-VwBΫ4fB(=S^J 3rNrÙU|,ԅzJZ(ߘlF$513DmIFT,݂e%B(3jKQNH׈Y(./y'Y}-JLE=)#9e(+Tc=yfmr6ҩ*ƨk:E4ŶK5CCokE')#&Lcʐ] g0k/o@$¡ vOR(D&4'T9'el.B\6_TlL4';[a na.]MEfe6&د5圶1rKa֕:1SusL);+8>&(BCqȜWel%AȜs眤 cB D!N$aQZ-)_HK %HXA=U7)zfhI3v(^ٔʍ D)ܽQ}VKٚ扮UG&M#m%L+圱nvd V*TcޟGYg6IScA3DιCDʥ) 5)drNqV&%^Uj~8 Fez9U_(=>_6RLbIXry`q}M@bVlMSj 11s |ё|)4v.A~ץك;zc :E{1#VӖi(+BYhLf])%,-bZD"ȹ :=\5p]l*3nEB/1x$O!٬ޢ ][m-݁>o)N,d22"BK1NDj8R;er!Vј_}5tCAp~n@#MvEq6M.*]iye-H4ȧg/[pE!{2v6TWj~4‚JXN)EZ<(Tnѫgɟ#$|6 LgՀ%Qșȹ) *18]-^QrFdc5ܣ&$Wo9})+*r.O"D,wTɥ`bHB1~+F kYe!s"R|XEQ螪QѵF{=ɗBqraG\[v h/C+a'S\ݶ5 3D):5$qu\W-nGI닃! qf GiCbEk?v"ԋ4(((q(3[ez+^ |!FSR~2&V겶4K3R#o?H;޸?6 6D}ݛX*XM^橡ߖUZ /6?дiL)'vfv3$ PKm93"V Ԛr|+^PY<0(ѱX?$lXT{%Cdy2 %UqTiF*Ff-=83@[iz"sж: +^y22̙4%j;s)ܨTeM0Q vƶQNuET}{Fˍݯ+?̙BŅ*<'94̛1̽<Ԓc$U@nދ ́]dGor9۪`E[2\Ћۇqj?j k.ZT(J!SȀaЫVס6z6cJԻO==g6gO~C)35c~TTDX+SF"16m=⪞IENDB`glances-3.4.0.3/docs/_static/screencast.gif0000644000175000017500000412066714432156570020425 0ustar epsilonepsilonGIF89a                                                                                  - (&0+ $&4&)&*%Z6t -LiW%Q+J_^_`Z)^`%[`+G\Ҫֳն9! NETSCAPE2.0!H, H`*\0O#J8ࢋ.iȱǏ!=ZDpDA\ɲ˗0cʌ͛8s ڃ'ϟ@ JѣH*] ӧCթXVeõׯ`ÊK,8fӪIfm[nתq wݻx·߿ L¸ǏhB˘3[# S\v1%ӨSvqtk'b~=&Z6;wݽ N ǑgXУKNu?νËO|^|˟OǠ {ȟܥw 6h >(aB`AІ&Bч ("<H(#HK$J{T8ӎ<T@)@:EKL6$YtהTUؕXf`u٥f`YgPi暰mpoiܝxމ\p{u*iy&袌6ڝF*餔Vj饘f_&ᆺs,Md9 t*H-K5H#K{,9)BN:&"yTNAVmfR;mSOzȰpZg Ǹ.+K׽o[{cO6n3& IgX&m]<kqfoy,r~:s20'| c3& ~,v"M: ;<48jKg%K78:v֐#9xȤ78 #݈s KYl6<29%1 9uvQx-68>M^E6<邏OzB:.8A`cOZ3=3ps-b\)ol7.4c9yWs}lXk6rVvW8`o|+<0#èayhL07ѯ1+o XڞZѠ@Ak\c&c gxYw*f@ Af35dm>&+L?=K$) =U s-=&}npS4N%-!:25Ajڇ!WD85816J d`҈J296 GULf q9Ï`遃h񈒹EBs߸e.w9q1͒ JӱSk4GhIM1sҩw/xH^7|*ȴF9ƁK]B < Jp,WX d˩ܧNvsY$džq Oi>Z>nե&Ҁ nUT:;#»d7XRmj8H5T=Ou(Ն ^6jnYUq"8ՂjxX>F*ZZR۸9H6)69ʑs8[c(b4e ED.gӋ*?lWuUsz+Grc6ro8:qB:Txh+5rVY!6 5+m^թ-UC^=c.m=sT9;TEUL1Gg!P-ijlL)STTuqAgVބ ٟ†5#j| 7.8t2vjU*=j|ԣV ~֮BM֝qnp81ǹ810Qy9U}xګA\iyU>FY-ZରW;>#99t܂x6鱎yCS˃I&?ؐ4J.@0vsvkk/1}{ĵ709[sj[! 8\S`[2X.Ӫf7`6MyrTق(3P>P&L7KqTs4m Muq鬱dUq±1Μ*p!kx,fU̼/,i[-sWTKܡ]ٰdlAq3c~s:`%b /9Cyb(92Ըpc˧Gfj%fs؞wg*} E(BfNPhFG)+H+Ab0ʹ<Y:?6irhNѳLT́agF Ͷ:kLg~~PFVMsl9|$<8M;5 HFYU565:u GoTobZZ6S#*SӃ05-Rp#FRG05*35q+J24p,re ytrrQ7,RhGc$CskP#D_:ϓ8K .hscHq8WAs?$bvNpWb6pS`hljK6bNUwzW>VbQaƄ`ZS UyQxddf7_|QLvyZA\ z@hQA؊&%5SSS57>U{k{s{'''Pu|HU3}D7Wiۇ*SLTw]: 2PmUGScAipgUlEpSrL5ـ rK$pC ($!Ӗai Ce J wjK866sA P6w@L?7,3BD2iV7 Oz/4A{C+P1lVkxDDbj^R ;k ĔP x<5 ~űMm@XA) nt( p3qt 4 <Q{K5H8*ZWnT+wmJR+pɲiPn{8ɸGJz-)- 5̘zO^4qs[ LB N7NK9*:uvwv]qu uuRTM? ZNeͦ\ p :LWU b+M`:>ʣ" Uѳ;wa x}mcL&d5 Sa>9&t] LS ~Y!`vs=np=zsz(Zc_!Չ<K=&bmWeWI L3-;@ƝaQ4_p@ :@BBxo^` aY֘X`>e԰碥:S B+fP ` c}f13anBó{F{qCsMw=DɧAC~X 6p0g_GfYWlWa%ȵځ:>EwƵԞ]lK&Y.} kdu4 F)H";a&+\p+ oߧd#\zYM?G,BGH5E!d1aKlSr*/,%!1_04_-<:&hRg-֧꩎:<N!6jh5;)7]V\o3yW^ :"Quw r(_x G8Ru?71Kosb$C9.' "a"_JBm/s_N%-y #󐁟651p0>C֢GGE=ΟhfOFL؟ س1/h?0j)s*wyOq7orIn,,A .dؐÃJdb85nG!E$9RIQ<ɆK'̤YM9uIS̟[R(QXjQSQNU# SNׯZ ֬iծemZqΥ[]y3Ȱo\{[aĉ/fX1ȑ%O\e̙5ogСEcҤ!NMZkرeφܹ"E-wow#*qɕNsѥ?oTuٵo|KկgEG}p@h@TpAtA#lPJB 3P6R#82iDz2DS)(r(bj,:jGԚ-22/$TI 1(r8J,ҵLs45.RMm:8<:ND0oHtP>ӓ?uQ%|6J/մRIӃ6tK/0DTQ(UV+luCXc90D C$Q-xUW`{zqXU)nٲ|H#vIle0/*w-5WLcmUn5xU/Uc^=Ά2?6]_ SNsanOs.>B+ͱO@Q"BDLt:]IeRahutUWu#lI *w+,N&x3ʴwI yZS\NP#IOzVٮwDrMJcb;Eo룢ՃpUڧQv**9\96jt'TxGQ$"{D8>L% ɑQAS!  %I;hxI,G<Ԉw iHmIxʹ ld# ] %ʼn>#EDK]>Ϡ/$&zỹ}QNcdǍCc1ƿ6'#0GE.Ď$gCG bV1ґDSea84^'[T bn>Rvd5 wnH. , -)iz+ e-kned^W:\@-.KZgKk|ؾKfɚFKٖ x7#skLgوXmPCiz|:#v8C"wteȽ C~ߘu<ՠ.5;[vFqk|ַhEA7/^I>[ &=js+:|vsa69@M^oEșg D`RU25O4ԣe%Mšg׻ΓL;w1Sj$5 N;\ g;5%r;ěd)Y<2{Vr&}fao9` @_,Qc2?TT/C?)Q?`c/v(R?pc3@^Cܨ=( 9 @HT<@j{#2=SA zcWA`HC˺`!#[&tBSB$#?lÉ[%*Cel"7{FhFiFjDFZDFDH$l{3KD:EJ ţ4D34ڳ3S=Xyy EY܉~EeQM);BR#(B&[5/ c ü#e\ƻf$Ô@t@\ɗlI, \=9fKqt@tA;ãGXJPH=u . J>X$ȂtIBaH%>_˸HT5blVHI8^Z@?IؿCI´?CdLTLGFTIt J;jO#SMc|G= AVǫW:1\Դ4˩h~H%& Hhuɥon,w68|aקLopy[om؇=7}4_Yi!-N8gXbs0U8\\^x_HaY`=xTl &-Pgb,ꚅ܈泎֤֩Nb8)Pa1~2Њah胡U86Mr{ѬZ々s [ N.LHKZ_!ܽM ބ¨-3h)AΆbӕ\>]t kxp\mZ$&m=tXWXFEsn?^mk_0mimH[n\=eF-hƢu^5hT`fހ^]wQEb=n-V gSXqЄ %zF'MEL_dEVH6efr [ƌw=aԲ35i>vXq cI[oZW^Y͆,_[8;S\cņg.փeNѕYיtt:wsiT l0lP0VFub.f_`[4e5N1l+Њ,g@VFl{zۖ^fv%p8OvcؚUms7;o)[q`\Oud nmDg]2}GuF8r?ۚ3p ؋f^s.q-[Sp?-G<;ymƍ gi GlxiO.]YkUOV'=9!\fUWt5eYvM׎ec]W_hU>hE r'J0Tp]ͦDawLavb1O=f3 1-b^SFss<A j1j[E@wꞶj8XE`WSx |t͉ݗt-P1t0yօQW } b Wb6Tp]~[u+u5)M5.c>F6 Um)n`Į"-#-CW̳Op ~:v`pn7ڨѮγ71K#F֮  @9|xy 6"J8!VRa"xx !8"$zxG{G-"18#5x#9FTmԭU=BSSD܁ ug9PYEF SgUFN(fSuU qB |x:837 7Z;LJ%|b>ŁtQ"0 FUɁTRALJ äҺl,bZXjNSp !T>U~UAqq,DXf5PYN iAZ*6rk;/.]Q<ǸXre\\"n&ǐ@#l#3F U &- y0#MrRpF9d)I*L0 N.‹fV* NP"HKF(AH3e {3Kfp[bsn8%41 `f#ӽn-6J4\o3;\1сkB+f1o ըάa]# [8B>;3d)[ 1sNr?f6AӼ=tx}hC4^E;[-bCYq%h[JN#SWDiU?|ݎ`c@~\ݢ Q gֳ58awtI*~pFbX8l99Ҋ~H*:1BXAle+-g9Kbw9aw8R>Um5MƶWn܇ȇ"*f K3$BYHC[iH"&ldcUrWb%# K h)ŭKޝd8}1xWhW9|q._heo/=SsoIl୻8Jar^ۘp?Mi}i> HwVfs2'v|YSe<``nePE{9N>.ej~(j5o3X}̶? t{5B׼."_ MXK ٫HcR!-{ FV_Sگ MFM|7Iì E(ЭA EZ Np_Jaal )[ B@p 7eC T E𐳈C6p Л  H»C3@[1]@A 9ܯ%d@-Ax^dd @F Ch U\ChDni:C: $  bP.=C|\z!tC륃8B Q$%EӡZ8Z.ц(*ڐD`ajNa(E@- x 1Iq)da}mT5N@72@q|7G ^ O"DI9_=ޙI#?f_i @: @:MQ NNDDFd>Zϣ4JU~GrШ`HzJ [LLK" eUL KN$ Or!Q2PR.%S:">%TFR XT&UK  N)ؐ%ZZ%[5䂃X]%^ޞ9BcA 0;Y=ENHfH^}J$mL$ K"KN$p$%P $Q8%s%R>'5tNIu^'UMVE-Fxe['yy'zj\gu<™={|g^^΅`^$O<*U$cNIZf"BgCv D&ځڈ* X kvh$^l֦do* fp 0!rVs6@' PSbTEVv<&)XezFN)'{^i|ҧni'9&T`N&(CNh h⩎X}ߏ4zIbI艮$] M ndj*Kp$(qNq2a±֍& RD+ѬUŒ:Xze>+FRǕ\r)f|9ifc階"ٞ(1&ڢ+f:IiI7 ,,&윾k6ʤROϥf2[n,VnzP䭞 4Qk**N',j,ϚRVkj+mqe_Y+Hai:,IA,,؎-lZmFfhjNxdłźr,݂`mj 캬%Cl.ҬJer"F.}^.Bk Bв6&詓D{B6Bqkη^2m@鈤*FթYjf" &dJZv2XU>X-rۆ䦮lL- $MNmᲖ=,dL2l?SR?pXeRRgnXLMSnl]XŠqS ?v\F]'ꖃ װ%%R햣)@-xȺ0CR%$3āދek|TIdPfd:S摐RFl9L:,÷BH"1Ti!A9\(!KF ^d ~ hުjnhbFi9x2N2=ù|,DreLKpat nh D_v7D!Rj88uK23JHL(TD@!^-3Wn)HF)Ey2:7r9;{b1/3Y3-neH"d`C(*6SdɪqC7T84 wNvNjFp)^tgH@9qK'֙E9`C8QeAD5R5*fC>d@:TAԿT{+.lD8XD9(D6&oڔZqOtЈ6J`٦frM*' M_ AE([͊);'neKK-lt>.`pCNQHlvgv7tCCUgCLs6"J3RHiLLC6"EI)@jC?rd\sy*ggOac&(ij *Z7aW 9h“*#;7 n+cG8IXtv|.|؅F0GGt4|j:^J'KqC#戝%HKlV9deOW]HRh"Q8uRAMI S:]A0,j_ud,,gD쏬B\U9 *ߡV%Y\\ 95WhA"8C#wPJ2 J J۵iUdhNU6e XP+%CA312!\C 5A./%Oa:Dq&<8-J );4$9IzSE!J5xRU<Tw@0+ @ئr÷=S[.NS*M;G'2:F7ED"Gb;)ex/ēIPF:;x#T7G W#HF s|8K.I~Fo+Hb+l4|x4 $UP '\wT=e5<@~DؒWE󈯠d4lGVEJʦLPA9FZŹ9l'a_od.:4Päs٫D6M@A6QldKcF+ e7~-B:j ƅa֭vF`SLDX} ݜ3vAE0״I8b#PPYz)T8+3[7&sDY3 ĢZƘXSer0؍ 6th0C*h;pq3g t ns LWbÈ1/ZcDkƙ{wfJp-^\8l rCFjVuڕܽt*WYٳiun\s* oo` -|X/`Ë4vc;h,tI9wyQ;mH1}6Sve{}vM6Yx8 {@z'9sɟO׃'9YyDf%r8wCt؈oR8򗶷}oߧŕ'wo6<`s-9M=L?nC4?(q]o srq-F%pH,Ă"B !2TL"yL5Dzf./tAL/<3.ׄCbvN_ )?)C(N0OF|ї 24N=4VSQY锨K3 rK15Y3@AI 0XC[`_*\Gҵs9#FSӕR]5ElMH[]qu"xy&Uq}Uv}&^jCz0y'J42Ul 9" pU#fبbE%liT*Ň-[QQƜ:*p8`vUE9f2(],cSΡtgs^Ҏs#a)phiXg>V+fIZ(5S|K^JVf zyea-l$d6:PFmi0Fmz[mF6%rl#& 859Xt)9Gsu Wi(3Mzbd>l|?Y:~%; 4tT" Dnu+9&.OC&.эJ~1{f/^֍chYgĨyIl *?%+#t$VKǴ ٱE.£sX;Z.҈O* v㒈DĥQb5]r0Iz \4ee673 Bo|+ 'jf6P<BqP<8.|8iN%ӃzQ?guc< < RZ<3vO9r1AHy#8$bH!Ї,DT#)¨4_ErRwZEb~V"ȎHqnKa$ـT.i=5!MOjBt?Net'?EuyEu4>N`HY?š&:իƔVZPk oYn)+z_e1+F1bl H(a,hSCAhBTI҅ &=ZyRsCpaoh J'I[{nرڪⷿ|s &m,{;&89эqdCq@s3Iw{.)GQ. λݯPey 3K.0={ۚ6m20ynN/2LHsʃ6"=A> y&w눘7đ B=ఆɳцS?[gcNDz ڑOǒj!(-ce˨sErYDL)CC3̾J*ײ~<hG 1}cGTꔎm`CDxUO[ w}+,Upʡl8TLMV\RxAWA!`e^(Y*mNNWTAjᰆM1ZXpZD>GTN` pM`:o%*wB6G(Acl`*ࠐd6o4BcXB̈ a(bJ^KdkH_KߨP_Fk9b x$AAK @Xb椋hfpx-QV)/>q.25H m:# IZnD4nArNt(0 :rqNҡ;a8zā=>LIoɟ"@&A*Aa,?f'75@&z0JEX, @ \R'!bEΥE` v!Z ro\%~}@@dDr$ΤЈU e~~  hj' h#[F$d Dr$!Q@(a;JGO4e*MO+Ҥ/SDSJP%&_%&@VZM4"_bQ%Yt)g$6R&v$aPU0X҈ 30&Q\!*&($!m3GPh$G&n" ը&  #m (Rh\2b /_Ŷ0(0;50(r~ib:f3+f!,as\.DjΫH2L5Hc2[3 븮S$g,@aqa9T:qrXCfʑ>VCQDG?@]y'z2ERV䣴GFgTF,H$g\JGwGYHP'*-M4 IRRt'JK+JW>1TLǔLU0]4"%&z8MTNNN%: ;ƁQ|Nj $uSk&1L>.smmΘD):8rq"gUz:CuTYDqL?HY#SS4RnVtER `FE$FG΄\{ \}ԥT]oPTI^JI3O.Ot d_Ku_5K+KX<˔aaͱ0]$Mb/c3Vc7Vb:O#渢-*1QRS=cRa)S1=nS91uBT'4?5@iq#'~urj)qN=B7TαYvvxZ5Um @ n5z|]H䧦`oӤouKPzP2H+IqL4`ӄ`q +SEas?s#VMۅc%&NKuSN{mu u"v^u df@ ;QaAx_Vy,ռN0X >Cgl'ė21cdi'dU+Li)j8 B1g:k5lSc5xPzl\a֦i3xpT{҃4O$ڨV `7יکh/NYvXÙ8w9ww7<*emZv庮z˜θgzז3U>8ڏT:VA/,8@|+j1B;̢XPluC_uL:ǴZDɠPyzh{D8#iocq:HtyI}/m^ I[ETr4*z&Xw͊!8fyxmۛdi\~-\dC \PZ,N.+!ܯ)|-ᢞ&Ãΰ=YgDQ1W'; *;5xq5*G!ep('f|.r$Y)r.9 d7WYـD!&qgvwá64JPضN **ŕ{^yZ%۹wPB`ORNM8MLHT<<%!Dh Z΁r!N=չ{U%;[}g 4!$̅ x8{NyGpGY+Ijӌ %7Y-!ƣġm@&%v͐/Qh.I+,|]<#|5|ÝFfC<0=GqJѱ "hWc5Ip5,rhrc$ڛ&I7jqIw]NzDuA?VZUt^BU1O)ܱvz^˽A ρHnzoL dPAȐRAAc Iaѥ*KID$ҽ Ftw>eg>RiJ#E_YҀ/ϡ a=% N]N>AT Bv<}wjc!Jڭ-X᫹6ޒZcB$ko:!b8aP=h]Z-YXfv T#{4.Lp!,"P `n!񖍇1A{g߉)a},b`98LΆ'D>Æ؀dDHn{׈6ÕY&e\Iـ# PWrbsX N`eFg\6yN)@YH)hmfboR'=iniA A@TN4q3A` F$hu2ʨ/ݲH:n@Cl{Q:{34.BJ[36Z[mv;.۞m". n;oދoopGd0[mai\%LLqO"hFmA3ytvC1 SAM\8EqDB,"be2$"{U9!8A bYa\fǔEEtl!$  =Dӡq36x^FF:( +DlbX䶷 -fe[2 ,.Ja\: $-CX?DMgRRՑFyQv.m,wI9܉NzZB;ӻxCeO7`^l'}.֟q}Y9tmJSJR_2V`;,ыx@$P/K@ ]>룼zN BdTqJ{dX%^K0lO]5İwTGx)Vf'R4n M{T|& bԥ.$1Bgљ;:duÍnc%6t3 = 8dɬr(&1 $0%EIO"]%R^/KҠL]җX&a `{uJgaMX#H7@oH=aEӲ1k}kϩh*gKY5Ȉ#ga;kj:fXmBllԠ5i[LhL4i&î/p~/8hZ;G7kOL oMCvtyTϣ:)Dnl?!eAM *ǟߺo<R];`-(X ڈ99L!c?pNM+Y)JY-D+Z熩==`)jsoi'9`6 o [ˉuAR_qe;7]݌ )F Q93G‹GhtcU+eix8 "[GЏnɤx ^0uy20)a\wKėEe1ldE5D7f^3ll*;xt$hSq8Y06c)U=i`&"bRqFin\$/Ov Xn0Wp戨[x|.oLG ӝҨ)<<14C;JcҾ驦JV"9xc"''# q`$o.q') '88%1@@d /s@sio!,W,HsX`HwJgtzXtN.M JtJW'acYG0]Lj1a'vcW1f1hLp Z(,P3 !Ô 4`yPr! yccd@FZs *+DyL#6lwQWNQ ~@gy'R^kE' tSzQP0#l5sggoO>VRħ,ՍߨB:Sr1c!!W  Ȁ%E!#WW#`!nMS\ 8)` $=F$kPq3(˕$eWZW)\bVA(pҸ{#RgyqgK؄euq S8W)B 2rƄ]^%`^Phis1 tʒ_uH,|`DxKiV//SuXKK[׈1 a'3$ 2Z/rǜ尊>$p&7x yd ΐ ߴ@09ȥp@9 *9eaF?wiDUDxz7~N@ep66ufp28៶7I$:VtchCSk`8IiѠ hS!} SFSYEG<[恓WI6yqFp*WEC"HXN8 pARy$2$@C@ p RoC`i%byYJA9OZ(3R*#PfԗIbS7C͘ @dŕyLx儃قcJRH*A0rLA (n[%5k8xP_t_)}9`t8JuۢJ1n801Cb2p ΤJ!AZ3y@P zwx7xߠFݩ50۱Q5gbˀ? Pyy~١"*q S~`xyݰq(5)qɤ; > |gӤ%5E145W#9 T٧ i &C`ubRPv'/u6yb'"+-Ϡ@׶!( mh%J&| +TT%)o \hDU>[* n=+eCX4WF@`)Go)nWLs}Kp |,@s tH& 犮z.Dƒ`yaz//,Jz31}i11vd20= @M<34@ӝ N3eWy_O$yeLx4xgho(UHǐ6qx{<<}BR~aalkYpL27Yֻɝon%̨ D-->.-ׁ`%L j*K،a 1pmuA۩1Nc?cC~Z,SaK.MDhm

sܴ)ɽwҀܣ-PTAɱٍf}}>HNML oNwn'~ߑ>:,l_~, ꊮt#fu-ª(! /1>ZGl; ܔ݉^<\`\W,mʎs\'9i>[`n:NZ cn*ijn]ӏLrN'-- RED0Am!t>`}#MB2n' v)L]<_p9/f",R؃t33btJ3ٜ]Ġ=Q,ڂ'Cx1m3Q0X5Lar?nmMu q@:Q7Tb~Ҵi,UbRUkV]~ v,dˎEVZiEܱs+W^yҵX0neXbƍW[Edʕ-_L/^"=ZBƐZ5]2wkڮOKn|Vݣ ŋn#r͍?W}qƧ[W^aн^x͟G~xς_|ǟ_~.@!t4Ge xeB 'ܣ8ȹ'q $`)iNd1YDQGiFoLFwG1G $GA<$dI'r'#2˔P $<)L1l4μ$I&&Y8圄o=,Gg4k1sP(]H?CG!n9@H7h vԃL "<*#ZC"Z6{i \w-,Whl&D͉'f_ڡRcK쳙JjiF >! ]wxᢷ޶k3(.~)Ӆs%fx1Ȥ 5ȹ& vgZuqGV>4M# 8`eړݮÎ9zŜ tfΉ Dixd.ns):n ;q늷5D&䮭+ݦŻN8(.%>Ͽ,NOG;N>tq~MhAvFEظᆜ66@<ǖfUv`fHG!Oxx+d~(T&ri~6oE.M7Y9sFR<z_G'IA:hZ@4$ȪjԪIP6 sY$D~կw 8e1Y~NW', QԠCn+J>ɂ}Ǻ•w5]d[ŵ.~A]0.1=;昁9F2yX.c5q#3X܀c7ƍnATVӰ,4)kkfMn9lmgdBph?#vT0=k96[,3K@hk)s,-syb@AeqcTġ9PhL<= \6 g Pw3q`&'h1g0V"*t[#ÀP;w˵`[E}l_7mF1fbò6bQGUgcb^k`ZM,AGoKG]R4D0ySIMԎ +00Jg6F̧ ܠz_$,W$љzfG, |$qZ)0"AtU4n]g '`S"uwu޹;}3N7 81l.FVgAr7$;ipUwn LAnA}yBafɘP29wHr1<>>(~rƒ7R>^˱K|qJ8ta\ӗ&=1~N7I}PfuҊ؈Hips2 h12 dArz_k6Ʋ Ȳj!o3/BsC-k[Ӣ |٪ײ~k{H!'k?8x̹*RŒ.%Rrs#5 $8B.јØ2P aHz( :LBDLbbMҥFyt[W*#"*PL;=$h1PE k%4RŴL QɒS"E+5W@XZajpeɛ9 h@`(˙j\4fR ?@Z̞x u+H :e7Q. K7j-T}KKYB*L ha,BĔƬ+X+2F c:p $9 *LL! "P$F:XXM>tMhDj%\ 1`}VXp(MN9#DsH#mVQVYWX$ssF3s@O\i'ÑwLvkMi5(}'I9zGɝ k߻(S}P2<ےїu rڃ;7q)c4$*UMJ?OڔBDR%ZT^mІoRڮJlToH dT2u@ҹ҉%n!ɺ!-:݂Lhͬ2h S?T{} !tڢ-Eu -GBp(׍]2.rL+H#K .]N +Rm8,$hXY͆2: E 8Eb XDhZd WDYzhQ+c_p_ [;3Dy_Ik-Z*WDTt;aȟع=)%F M?]Ya M>b3SXUIjRZ:)?hl@ ꠶Jipci{9JRgȅ8x6nJ?cض)f/Ats!q˪\wz @ ݷK x.X]Fs˽y8c+< ͌AE0 gꪣ BRu7T9†R6]F[y];)Ya<,ģKJՄ֙Fl$_U_:gh?:SԺ/W:Bl8p-1vEpm ]t]vF W ?2oZ{%'.Vz*ĚA|0 um5j a( Y"&=xub<3E> H>,~Y\,p oq6_  fbBz "tfgK`]*&i)Bn .b qvp1wg@J̕g&l8,b(Mŀ +p&h/ͤsg⫣c1ߑ_p?&|)/ oҚLɂp.umx=ddq8VW8sA9{@tp[}XI'%Y}(3鹳~쳔pY&ȃQ@@eV_nD?l=Ic> ^7Z:@6+guxl!YSYou BW`n"oBh*TPT.1| d~ d68w.0xx\eCKg%Ǧyא7 wސjqEX1KsG kIw#ƨtMw(.>. iG9*Z䃒5tqYQl/@ѰHbo  8Z+vXHzg k bo'wBGyuc~Q]{o}g 5L]K׮@9BBm0$qqE}}}z7_ou!-`'PqtTG=`Gko!~3~H?)Pi<Ã(eouI<{cT)# m`#P 8l 4 B B/bx18? )r$ɒ"LdȂqԐt5lɩs'-Z~ СX"Mt)ӥS>TRbͪ5+([vu,ٱRMk ۶\ri+w.ݺvV6/߾~,8ZD#NBCX2e!}`a3Ξ?9B͚Kg խY {ڮmέ޾.7kO|pֹW-9҃`Ϯ};ރx /~<ϣ߳? G G$lKmxp 0R`#{шrء&aX%ȉ "H#-"3آ7c9>nK u4G" R TO ey`w,rp٥^j"wءy`DjǚnjZdvf@EQAm$D@FbQE &h+GdpEO$ZGTSVVUWV^y5EX'HUkat]K`"l_ŘDlJf ѕeQۘV碛љ˜QW]s6/ov,z!|%5O9"ŏ HVqˆ"+\*l*jx"3˼#<|-XD0yKjvڸ{Fl\rc_o+\AG>ܾ 噋m0$ e)KR@BC;v#EFZ7" .FJoV=L-kWRִ5=NkfñPwaCA5qBDHm"'.%H.h ' rdnsbt TJVi$]R 2 vzlK^/g dRwy]7`[b%9=/z^tv7S)Kɜ7[(էJ2_j0*q/?|D,`9dTVֈe 45iTkF <`,B)O琚s3PrԨB]b-`'3 Nqgܤ:0Oq R!捈Ab(FӉCD% Bh-n1T]chRP* ӥN2- Zd`1_IȼH"˴*-9Z–RŘդyQUW0.VZ4%WUW^%YjزMJ~fIL C5j _#"f1,MH?7v(rBVhzDӔf:6 wn LlaPɶI7\-E4Ϸ%AFn|c(ТAJ%.E{QÑ&5L^`JSj)GZ94kT몕w+C- )lǻ?~FB2!c-KbrYmU9i`!8kC]j /ri@GfqWB1,A3~,#mn0 gsd6v:$=\'n䇳 "DR7LV!cw\F#gFE\*DG "TE\v7]UwKiE8W]/{^E>4C-2cI dx1|j[T:F0lia?V A#Nܱ\ DEj՚r )P r5uLD `h%,Lئ|)swFv\$a6ms+l\GmsG=);WF3f>Q+ 4sՅ,h#Y;*7[;hu҇Iظk T tY!ޘ٘Y DUQ٦uYWŕE9EqĔLWN9EO_@a!-#91R霵U_ArȆsqa_Z JbL=L Gȁx (>fbML*C9DA6PbfEӀ` Mxۼ͛@ ՠoU `3bH$t]L tmJ\y!\&PAL˵h\R5t`EO@zq O= CzLԥI~T "Q#f&`4VHPl ]0 * Le !-hɓ \L]^G#0ۗ12~8 p9#B C5ZXi#J=Ut7"N:cK;㱨a_$ƴc@A$d"X,ejf@fOdv@d h!G"*FگD IJH%3]&21eX$($,L f9Ik Q"k QzT Z% rVz1(^ X%JH Mޝ[J"rWK]#^eY0_:"沌`(#ڗ׶HF8fNgZ&ekԡ@ afp~kfvfDjGvmd [X5M]A&>ڵ$tH'F[V[U ͢DerM^+b)VDIy͕uɜ. Vn%0`iG\m[Y3BI4Φ|6.!~]F!81*9%\΁j^*Kap*_D&cRa-UcD& ?fRj_sl&d'-!*B:݊bD腕f (v{I0[Gp n>#d $JsڝPh Pf+RFԄ^ ʐT乍 lAqp)|)| !ꩰ8av\LZܔRN=a`6(_bg$2dj-qH!vrmR/ٞm*벺ORd؇E ĀmRqGBfm%)A[vMbM6ѕf[+6I_+ޓ?[jyKYmV l.5.[y&aj֥ 9jXz /O;ҦjzBmJoj~Rn/&zс/X.q)XXگ*B:w-Lr"C${Fpn\a+] kfi݇)+*k0tfI޽XN.==YvB(JVj%LdnPJ J'}9W|>HaW[K-* hx\o[NEl, BgU!t.hc-DKto*ұhvv-rG"I4l`N3 Ss~vA+uviEсGkG1oJ6ڮ4 ` 6ȭGA]ޢTJ0LR).S7kPk.VIGle Au*1j H 45@C|*\\_+`'o*6<='hW6&RIfO/ijU4B3i1Dt'yhE$Ivؾo!HvKF6Q $\m+*'3 Mwߚ *̀(rwDeV,ϲT:E|z_u~ui1Q~MmuA[]_Ch3%7w9XLlZD*f/lc#b8?kUB1z{nLc!*B:ݐ4!/"H';{"{mL2%Sr4s;4oqvC队H^@S~9ŹebVlkm00fM['HT8K:_Svi:6jˆʥzN=zϜ:@3o6:BOtnjxo /rl6"yG#w^{wܭmj2J6*Жo9E0vpژ7H麓x}YD,pE|gE|5X)~ Ѡ' o%)5 Wa7q?aV%9 +U_>┰|ɛ;*s@c<Ӹz ծ1 I7;CӻN;Q@0_HNV&nz={=em7+-Y3ONI݋7@ƒGOA;w]RaÆу@|6qőxsϗGw.෯ {w߷|yk$g~}ן  P@G\,"@Gp -|d H%I,#ADalDFQy RF,H-JR%ə4J)J=`\q#<1 ́rMcI#%JI%LBB &Jm4()R#HC 0*M+ UP*TBu- Ll0;,[qWx΀ 5"bWLS-g}im )C +DKyϏċILEcmL$G!I.dAYeWNer<`(48vV{2.hYi(&*H̚>l%;޳PC& Ϟw )Q>LJ+N?*I=UZ W]We.iE 1])| a`ֱHd-\i@L-4ft4YDirIfmh@CF!=OYC~qpۂYS<ѓ?IWI}Ŋ<^/z3 ȘPUfsjtf ˍu(9ֱ\4z@:l\GHO:+m`S0Oyd~lZ6ozғTIG#8(vA1hHKXH!JIfUh`2h+-[V508: LW5} ALLM3,Ӕ&Q"j iivH C~kKnsIdP)7wI't =7|+_[ K;)V 5c&ud"jQנ6}t-7*k(eݷCٱ yx s`;Afӛ. ^mweh #J832t3Zn DR~Q,0Sd'@tɋL t㝍gŨ }LDG3tf8jѓrBNGWӎNZ^Nw9$G]I .m `&%1#5UYi˰Kr=v/@2;^* M[dOMMVCzrl>[ ӆt[~[O *#ڂ}{xYV-Wb`+1ܠ ɘ\~t -Θ.MS.Rp]HRI7ŗyL_wo>w|N?7~$sN I]uǒԲp fB)k;bzFg2͒M ȃ6n0ä.L *PM"<&O-PMЍЉ$b/$Ooh+ȶ.ՂB6Hq '1ƈ2j*3 t>bru ;Pne싼ZOX8l 0j?'#_xA|h"O ZmaoraȄcVFn~.$ 0٢qLo(f&cPdp̶QG-"p @q! OJ 1 *?/63ܨ 64Q35cpC~gps7u7y7o5r8#9#- $$NO&/&;TFnF'2(FF dofPJ b$Ƥmޓ/ +o?R`'L -AKPM#x&.qn),ߦ*R :p0DST0q3V̱ 3W$y2+s 13GQ4:?sXquK`Gv6R3IT55s<Ұ;`*J:J0"u8mރ#8D{B2Ie0Ǐ萎۬J$ڀ:cJFo&Ch(?If@R!.ZэAk"t$tBQBsB .3&CCtpD1b0E N8:11FSO3&F/.Ga/\YR4:JFs 9t^5I%J"9;J`pLӢ_DFM?b,@`Rޤ|T Z)gK9PiP s(ue#ARm"h|iڎN+ф+V+dg.KUW2UlAmH)tmW-OcXm/+̘5`LqES 1Vkom\;tZ3/*H?][7^qO3^k3_UJKEf`ts3s_v7E7G8}TaLb@TbD 2O%F fuKuFBGf3=Wk!gDdJM1H:h ́{~TIB@x|JP,VaBmV|flm&R2/Rim6.61;O*H1+owo}CEpn4!qؑ@UvSAS}-T ِgD A{jU@AV["aZiYTwU-R)4l'xoՂ/,tlZ 3UbnA'1$grlFI1+10Q8p[GMW4e"'z](t/gS" 0=f5҉oY 8!VY:x昬܂u7,.a!āTddDXiIV;_Dxa|Dd[IJHZxox{uaQg9uًaaځĀJ^샂L|%eA&۔:ɁAd=$R(,i- a[Aۻ9½{@۸[{[e&S2uUD=Z$3-0ߖ3P:[#g]#skZ3P?} uU|ŗǨUZ6Ks;iƟڈ8!ߋ6{ttܪ8QXaF==?}=iBΥ ]!=$ؗ,m%V rg 9yuol Հpc$ n Jr`[9rF?2DK ѕě`5}X4S >!Klso\>`z]!aҭҿ<= (N.|@ITݲ؏=&E$I|P]ieF: ~w<'īaB&dAX;&Ց,";q[{=XQ }g!?8!  y!yWᛉ˘AӤUတ!=?&_ߧ >g @?*\ȰC?qQŋh܈GZBI$-XRLr˗0c2͛8s Ϟ;uJ9+H( ҧPJJUUVAׯ`B ٳf"[pٺ}ݻpK߿ L +^̸cHKˑϠmMӣE^ͺװcF۸smO*N^y銟6s\`n 3ŋ;xVmygڝrҥoRK}-ZtRvxN6BN:sLm K7 08̈́r  $(&."ȋ,"x/6!80MH" h"&#2*(x6<~K3>? Di$J2ys B B,DiAa n:jA*T J"zUĆ6d/}r ^vֲ,fmPYjUkMBnP!Хk 7aÖ@t /_5 kb)s¦HEd%b]"ŶE` Y^62q' ԘF/-55M158G 4BSIa44"ɚoPAksNNw`3fggbxF^I,E˜>hۭJEA{Y֔!`X9 QN߉PT?{ԣc&@8Ժ"5DjwqJM]`.9|7LnNL# 55gz+՜w& ʔC|+53 A8@ҠfsB:r)=JWlɀȖD^aMm 4A Zo`FSgIZ!|jP B _o1X3G%֏]'I7"_6׾ޚDX`U̫^žUblO䢗EgLX񱐍ndV<~& ?2r6ALhH~v5$e%H8©S',nc~VǕRqdxmu|+z-o@ĭrER:2rQL Y49QӚ/"A1G'Iv~iy~{PڎRC nP0U =ScMq- *#hQSJX Cb=TR]#bm Ov{i ~ uF5'7ϒSKiQZ_j­KaY;‘5wh}׻Jgٍx>>õg+J*ЈJ`D b8i d7H8Pc FL14"E׈4.iHG/0B;-Ou\}h;9{V>ϭ C.1oMyn3(ɉ-їJuD(G5҅ɷF%o z>Bvw=> `qv?P:Ŋ҂AF,bTnyx3QA.φᤡto#a `ڷC~`9 /.uaM5pܱzAve^l+P6daBb)b.7z9nMn2<LʟH<"B>aN}_hG?Zmt8Le)SY9-א`0k2_#򗯃7ΟyAؗ)9"4_9գmR_3jL$ZJ]jkB] ߠ]2 ^"R^0MM6R@R#+r 8 6_7$ `3P!a `{NPաuNwq5Js&@ < Uc>'( h ߣ!9(Q(aYtɱ*"c%e%'J?@br@d&pP=fРu$ daGc{@Â> e9Ȉg բR0xHxWCjf:xxy8Qyyg|fD9y7y(zfqvz0%hhi8iF|t{Ӹi1}w2GkGkkTxӗjUTSIIx[**XyAsmf0$du"hŀݕ !5:S*"8N!XNQ/Y"#9M#9^:!i! :y&xaDV(.W(>$P?(%}BR2n-h"D!,!,ƒ,vaAjTv9Uӂe'f&-Vxi.hxx.XtƘ*!yBD(Wg20/xՋ)8^1'Xz{#{17vi{5wF=pk긎H'FZdYґHlI1\r37t\vr+{!$"5M'>+#-:1$Yj@9IRz`".%8 H`n&ѣ2s63''!#sy($)_D)di!fl@==*, qvs,w"$-|斉8Rjip*^^`_ECdK18y'30I09C0 0Wc11 FHF8{I Xi1Y|*ǗϗJFF|Z}dZva9 Ym IlEjA9!{u"%:&Cs:B 9zZIRZ*9-ut0b(97Sz1T,@z,n9TZA}@8#TL,z,xSzxnf+Vj5grLcб  ePcpcPzjzD/wz\E{Z1xسP*y{V!G4ᘵ樵踵fW YLUQ+uI[Uȏu imm]!*;6${&0Ar&0:! "M$ +c?"?'Z(Ka6K*AkAx -hְӫC4׋UxZZJ_P !{k$+y~sD>a79a!Za?۳jU iX<{#մytjkkhgH='g{1G bGXi\ GҨN`m¦bM}<µr ^y{͝}2|=̝XÉ=Y7s( ّń^h#KP*=-ij2ū=j^}]*J]$]9mp9vkz{̫՛xԭdC֝.]#^bB/FMF8+NPmʲuu.L`H`J0^nLH}*q'SSn*l *p p. i׆YI}" 4e 0d&eo05M BN+yI#%ڣ+%RU^Wcn#Kc[~f'M u+˰˻+f--Bݢp>DH#{lڦD3W?ʍUM`on{A`2H2ÌL0 r vx vDܵr2?1P'g8/MIʓ@ {'1_~.pP*bpq͉-7eAޖ f+N^{'>_hRC?tP@ 6MQEe8HP8E>BtSN-DKPCPTTSU2P Xc5V"H YZ"^{W?(c b c6^1Yh= `6&P"ۘj&p$5\tRw]v +L )^w|ݢ_t0xTsl,TDل ),T8J0`B8C,kMeUsyepbfqٯv0(㊦M/ c btAO:K'=2'@ ݓ? 9T+ k l°Ǯig.oS^F<\`qE YV 9 C BHnBHND 84md;!%Gc,%esOlX>b-WGZ5RD P&8Θ-%Bwrf5g6C) =}h=pW$ʷN춓!<]wyy^mp &)_+hQ$ 2+ Fp M 0+.}c^*UR4ZS fD]k:(3>⋫El=V}L,IӰnDc=c}bg?j~ Af+ C B A$;(}Bh>2([J^rP&ІjB.s:Ӟ_bm/4!4Oy[*=.B\bTpx)Y{ֽ.v}ͫw%6=>WˎzPYjK-l*ob* Vp &a4Q3> +ܘb .1(&4Ɔ#7jc+gG1iEޜZZšYaЎ]NzsVlNxCY[vARy]hGLX`b=7^p3tG>)A\ehMfsZյ ŒTw;=s3y— z@qAkARέ5nD B|yvJ$BxK[ߝ[&?qoH -j&TvmEÏJV6Ѳxt _Rxl3? oF/·V`MQl6#*STb,bPũnqd Yvx3x0@b0#̣]vw2 <(9Xq@|Hs08#,: #p|AA3BW,&9B$!)S%;[%;Kc=<-ܺA-0t&H1eZKaK`5Ma"Y.I!ʳʼ5C@`@Pc/X$E=feS$Y/ڻ0) =N̶؟ŞX jS$>80C0us7ŲW7? &؄ 1!Ϡ1 k&z8 1?oh2qGrG+.(ۏH+Y0;GB+'`Ƌ6J9:-*#HCBC&lB*!)|HρºsձB 9a!OIk2RCh*CɞPyDp5jR.849<]<= -Ђ@B/C,"/cD|HA (p/K=NDo!E ȠTTŧVsK>!Z$!#E^W0FЌPF]dLs{hdjL8j1m$LӿDԁrL3AM첸GyB6E}tH@P%+AH,)a;tԱֱȋ\N` &kN<=Hd:&e.2NR5+9I6|<|CD8J\'?pKJb|ʨ|=JQ/ʒ1JʛжoDmK =KJ PX Q#1 #̅ˉiѿhǴF[ȬQaLo,<,Ͳ͞b Մ{z@j:GM-Zb=P%QB#,A8Xz4*4) ;Y- TE-ə:%Ds<8OOCYd=f PٻQЍ`KDPRPЎ ˎP}b [<7´a[CoflLkFrűs*$H \̃y]\ ydt\ezןxԔ.RSLJ^H-9HT;e -:%M:mN&݃6B-YHmT:m.ZQ>z"YCo6؂e\^ _^D[9CtDQ6ZU_UPLJ6^5s[[<[z>볅Rџb`F%0m<)jT8t $X?1ƍaA+uR#=G%(-ΥM` :IXSIX)DBY֥XӉ]ٝ];]ҹ)SԴ-.c99e\Iqɕ,UQ^Uunj흃_>cY+_u:_[Y'Dէu_ԫߙM[\nZ)]0+c>_Ty `[ [eHrb^8( w-Rx Ȑܚa>ҳCa'5M'|aaA1`Ǿ26,aRy;M>Ă1%MB%Xr4ҵ،eN,(b00-#y#ﭴda(`N+Ȑ !Kto8JbHp6lˆ8"* @ onz𨱊 W ~alq~Ѥ5p:l7d(^>۩ 0 YF̫"\˯[hTL6ܿm.W $f$pE1C" 5x ?6'G%}\98Ѭ.2bp B-#gB,}-\D'G?c`l:P&nCk)u8[opA OwXtȆGΆlm<)םN>;YGh 5AI5TuTcc5v$O_ ph_`[1XBVvQFw(Kg,,Hpʔ!n2wC%Zp bR*ɓ*I#1['ixE+VYΠB]c.1<ϥ0O eR UX#^:p[ǒ-[vCb[篣peȮ_W%8(OnRL5]7 B$M^Msرː9gU%/ 6$Ip#^ߝˆuƵ\9saGxso;8lj:ǯ? _|g&H ןJ|Z}&QqoaQw+1x").`18*ب. ##4VT.O<"Bi!UƀF\%x%Ly2lpGxే yg#}'y4s?8۸y2,yuSq)x){f)v:*摩z\jyǫyȚ'++ê9jK:ˬ,Ųj`o%n >R ."~~,j˰/GRSf7Ȳ0 ;Rcp@ٵRQ uAC8 4A%/tGSᄓEgڝ#G H%J*SQT7X QMeR:E%OQq3WYp*ULdfmZHm?9d6u]E@5`aBDwUSMSan{ofZi霆?q nVvDF: Qlh:FSQX64{y+|{;XN=k!?_==./>$6/;ޟcTSg(Jx3C 99((Uq4uXajլWXs+S9mUX:)%$  c]FoGqS6# &=3D<@O.w=!g ǒY = N-yHd6{Y*CTQ6JV c*2wJat3=JhӞ6Q'!.UMW㪭AT*kȫ3 Z#>:A|DIL2 6(!(!..eDTT6*_ :ֱ&DßdH6!Cr'8iSֶJߩeXT܉:`2-FR<&..1ݐѺRC!rQ/A/݂z]|J[ЂT^y=l)7wW‚T.P!)3M70!d*z- (aJr ;)[%y5ИMs5a<8*S#ΙcXAN ۥD<)'BX)b1z{|@IG2-R%}΄ nj rs=oLWҕgysH-"s&"480h:% |AT5YVZF)H|h)OrQMMA8^]t TۗD`XDy۸  ۺIC#TЛ Cci] )\9 9^Qir9KQqqYsAזX%`a‹Z}ʩ\TyUMx4hUxQE:HC1,L\ Dx(Q"F!@a* 9 BE3\b؉`AJN<=@A8d 7(5E@OXA#YZxUEZ #W[PO UTA0C/M#9M=I`#b8F6\=1M`ehFn YQiSD]n$="mnaFeGԜX61JI 1A=dpx߀h$Gvd9HIIJH QLʈ҉lAŤUYџ 쟏 C<7lՐPRLL"8 /8%0D%S$e   @dmO,P@EL7C6% ^`h͠h -&n%&bq1fBp` eatѹn&8Ș[D.%,&,b8ˈB!!na K9p\f Q\Q<#J4H1D%D%n`Pn3'ΌRdX/AJ+e*AD3St1bPt5NdC*Έ5-"Y+.c\ }&}F~& 3:S2E9&5N^y94R|+N9dflm(&B;^{pEB"o袰&7%~fd 9)fv<=h>F4^EdaIڃ`HaF)jZ~mGdRT(v|^\$ XUM.5dy"8EԐvDɋUS:URTL$TElG6͉ux ĒX:`, W8Hj _J`BI a^+ikA\H cIfKe^&VTv!g+7u\1R~^lum!=@up6LWIMZDvf%En5SgR,ΒZl6@oN#UAl>M^=QbADE8 $юv#`>:hy>802BF u#x(Su\pXqǐ*Ӿ2E(S<..B)<_1HڃMe_ߝzmI)ňMY4*.*OB|n _}%,"FYM/VǭQm"^*+V>3s0wN.Aw,I 1w0Y #DEHFg``zfnh+HqIJPsqMh2,Cz~~iS7uڂdG\8gGOux\8mpWH 5Xo$"5Zn[Ǹ7j$7j\]ri<`s-k/sc;6d/kVB)n/!|c*i!66k9ksl#7p!ANovs< 7}xs0%Rs{"w&B vg7BwwW:xEߤ{ Gzf=.h7ھzXq:^~w:GyFG+PC/8G;GZ1QIkxm!:IxWmXOX&j#ϸ⸉to5^_3 1B`rb.kbsh9v; av[yý233n9&W9K_ɡ9k yA9Üm6To3nNu0OR$s33:ح0uE:p}PhNl:қ_@?}FHS>[w7.:1UT)SXϱ_;{PT9UiU=x{SȵꍈG@ (>#;MQq{c+ ߥ/|e[66Qlkk\ܖc‘vycK9oM$E@=ׇ6Cp `h0S0jW\E0hj4}hhArnR,A\I@0rэNMʆC^TqhF$>K,eiԥ2]~<)_j1TNS>u#CcS %. 8Vwݨ\O X1Vcoyhl\J u렢 F0F׿":,{mR\# kوVW$:.9>LsB .H8+*%V`؈荨e_$%TP^d 0Zg~' ΀kJi箃"2 f3:34ZAtIFF @ dNk2X/t.al6.!/ῤai>x;6>l!x>DR>ZᅱlA$AI;#Aܩ&݉'l'D˾.D̊K p$I,CHm.f I  . #7E, RԙmnaI?##уN5dxhN?JRpLolUCo(r9 rF8C2Fr,Jo0V/oAuItdDJ22Тay򤨧dLs0Luz sg ; S|btF!2 UU E VaZ4?6hmH\uUd3$vUGV+V`7qV |e !8h9)9#d(::HE%K;u)%%mXA<=3TkkQj$4el;/Ơ^D#: 1zN6 1l43q`f3vTB}tZC@I 85*I'  tC7rsK&4TML /M# gW +%c#nw=Oyx?LPQmU" A#]RxwŌWRNzxOp4:S|}D07L(`UU7fIjp/^u |dHuXfx Y$y[}t)[?$2e &0NUՎA%:P$QL N%5<=sZS SaaˊMO-V67;vc=!\bd R6 K9ui\ReEݤ#ܐZPu)ZLf$``b|6gV = ߔ6=Z<[Ve-:HA*W3GKRTQy> ]DQk kQ+@iKtu{l.4jQW"mYCߖ/Dzya 10-q: oTf1F3\f2FK`GY#@/b`Ti16IC :xl}t ]$7T>TdM2v%M7fw!%wL2%#Ôg`/=hoCwy"Ar#Cf9z\.PF;ToXO\#M摆4(&2 6eFvܲA C lfLPMD+\zGzay. cTCu>hW#+{iO%I2>wPMѱC;?c{ ԣ'9D}CH6 < 5.lhPĉXna]6f-_bE)/cR$DvB ) .B3J.L3 eRNI+\VV*8D9@ffI`:&l gEAg@*(~'HY*|h F IPTDejCjZ k. J 0 # BB lQ k²> -B\-/j{I.q*},m枋%,r o"n9So» /oj L0 ? z+y\qo|1G"Lr&r#AqF1G@PpsCBEFS4SMTR%4Єu4u^N%URSI6TSy1UmYfUeXX7[lM*\zYFxxe8ii㭁T6\pWqYuWyYyq'qsG;yy!z&|„ GA9ߠ/ȣXco}w*DI>H2d3p~Y 'dzGR, HIJ SBpz $6S# bj$\U+ZV򕯈[q o@!bYZV PX,="[E*3\6k"ЮK^LE7QnCM"06asW#8 -Cbl#02Ah9qT@ d,+d!_&34.삙*.-!#1Ӡ&Ii~Tv lLqQ4mRq-F7խ-Z˽o^d*2ɌF= xY!6R҉s9W';׉=MӞ3=3ORa >D %@A YcC y|\.j>b4}MR"oX)섿T@"*A'xP9Ё9^(AlrT JTp-dape+`4C 8hp:D@b\–RlFLQ^0LlāػXwg<;F7 etXbGPmb`s 4Y&0A ~D,YoZ&\o*{k{ roW-Eiî)ItRCN4δQ:*cHJ̩d!/ܠDB)GT7UbWAus3*j.;6*|"ΚBfYFw(hF/kK+>ӚhEqrQ$W>(??+7?#6W't)רs/F)ď1((tsDSA6dCvAq) &ZW+XDb*sBhf ,Fxjfif' )ℊm0TSX3vw6c=6wӅhIr `D0 h~W &Fgd!h. ) fymujxj7IRzwiZևxI6[Itp J6GKG|ĉ%zcm$n|f8(88o MoDP:) ČqpsO OXh% b?(2A;c;FS9=8As>  ِA}!pET [`RK0 @`/ fER-$mi}l+V`+cUl-֠ d # F\{E=*/{0DB -F:7q}z OWQw"D[ʥ.`d0Ead=j/lzi+p XgyJ2b֤HhV}`6IfHrYy(TZĨਐ:kX')BccL;k?{PhIJlWdj֓ K"a=_X o*Ȼ.O3#<+'-g¦`,L0P Ӝ dWK.Cؒ'`JӚ l#w\#`x1{[ך B!R̡11l2{ ɫ._goH.z2vj)MWjD$5@ !* ཾf.C &:q\Kf6v[KÇ7lZcP( e鐷qsMs8b`:x8l*\9d؞#NU!:lNMlj=@)BӘ_g=ـ=恰 S]ڧ-S,9B ك)ʻeՀF$C ܛ@ mDs5=w,S@ ,%#r b0Ꙃssit h3  c Z4qn6*j`=lZ*˥"^Ov1¦-Ġ,)9d@  bQa$>*@Z;͘; \5UZ&t`{Xc;` 0~ /S۶ `=Tߍ"b. #;0/!gMNJ. 1Gz2p:u{u3|Hj,3?2wHZZuyz0;M= 8-[(A Բe!@! FcP7z7\`K.p|7c c( zj!"qM}~~Qݚ6ZOlʦ x;JY掱 sq  = "]! S*"= A =b} QP #p 0B} i& "qaVޏ|8{=U=cC[3!9#Zu y lA{Il"~"9.ѦlZ~.4,lUlZ &Lvm Yw2,S2{?!b=Z- - q*w|VQd/p/r.tNz`mFrG|otmټ2d>CzZ~Kr+-Bp_>16ʉKCn306YrS,?cpE'n;N\!޹gEbNSZ:Ŋ[ o"[:s̝Ke\u*}޻PRxA6g?=*E҂& i$$B(i ġf&c)'|'2ouj'."4*XeYf/->CT.Xu ;/vS aJ,',5NˌTDI[MxU5]tj޶PH/8QL7n|p>y(V滞~A4H8?h?`ԠWBQC"Q1L! Z &P%#Hya\$ApH=ᏆD$&I2aDMߓ(6,z/z4)NoOvCMBZ4.I([3\rO,5Ja gT"*Q@(IrUU"gU+b W@0'& N)5"(?iZP8 5 Z֪//[re|5L^_D܁c0D&VaakbV1G+N 0qT S9#xf:ԌfBKhJeʥ=jA :5M [^Zvrmj mnt#!J>!8\L[RE'6}T҅@E'өT2)h+>\ʺ1tƯRW.wO62d0aʻ(Af%opA^V5>U蓾tO8 _1Zq*@UD"Y=Vzk+uILXL'?YA [[EИ+8`0ia\0/a-B ud\$&-x%Tma{S7#Z1b<| !K 4{fuzv4 T[DAD v k D)![AR*7|H>ZToao2nD àF*<RيN`Ԣ"+uPRAժV.jT_Z߅3k}Z'qȪ#9{5lw bˑO ѐ̪ #:Oڭ9.-Yr "qkת:k"'!y:%ڒ&"®G/ѺxpD(&"ˢ/r d4j|l؂w8T{i9l:hXaK>(wQ_ڏZz i㘺70D>AL;,܃IJm2z;{<:[ l?la lA1lE[(b455mHބl@D Aq:pr/p&t˜JIl *lBl0 􌊟 wQLp@OpqCg(()X kCk3gCĘO(X 0ijJDZ7̰Iim}J;/ۃQAHtzr!yLDȔ t@ LDBXRECL|Ih،(4VXN///h<2PDZ| BYj ٮh*s Cjl㪢mЯ*EZ@ VxDTD ګERk,DQVb ڶh۸i$:g F1M 2m-[C:Z!%AT9UO`= m){,zy:T},)';]F}'hTj4JTLTQ54@#mI380ǃI\Vm0>VQV [\^U @VJԔ@cpFTme3y%W=Wy-'{>؃z@%`|j;Xp\e,؉`؈8V-p =Y2! 2j٨]*P6aρ1UֹCQbá⥕Ct D\. (ZUW4E'z0<#c턺[0c2\lԐKSS&`dF: jJQ\ \>dA:Pu-HHFm]eTfZT6=]TI9#TU%U=^>[2!l\ DFE>$C-&JGKd ܋=$P KCΆvnan4m<_{Ά=@hiLvՃnh?K`]֜h6؄h `| iJ6pcU Rji}iY iĉa_B6Y٣ ױ&~ꢕjj,nNj3.b7QF[l ƹ-D.\4!bDVFFp4nC] "S=l6.sK]EuMLebB/Y/ٝAom,\UKA0a@ܶcFfWE^KYnE^jftړ<,U,6$q!fVwXܔ<.hrz.680s@,v`h,(YAT`8p_v_im/ ppiY5f,aЊ Yh )]=b~oq(л$jW ͘ ~ۍT>WX]k !T"8$7c&GU'([B-j*ho69 |TN BNz eO\ϝ8W1AtTW60󂲵[m4 t/KeߝmGۖItfmϰMO$ih^ۓW'| |{TI|q_qB16@O>XACoG^XFM`i}l?)ْvv-œp a v'jxW*(b |ٙjԈq:x_׌ 0VD?Q8X% Yrx%p Wuӓ>d!':hQƋE:lHb<|d%˕H^)r&͚6_Λ3ct@WM:pЦNm: ԧOTƤj^8ib6h\ƋW7sށ;,]lͫw/_[c͠h1Ƌ1,y2ʖ]`v91U9)R(=b֮_Î-[sB*[h̓$|-q#O|9r}ܱ#}g;wUO$qϣO~=OJ:wyϯ_}AGQ"es-bGY GpqjVblX!$"jbwQ3X_|:أ?C^|[GjXHőR,[r٥_1FcJg9RZѦo٦s9gsB1P@!*EUHVfV!((RZ|V!n F*ԊJ*ڪ6$D6Mr1l҄I~3O& o@8 6$C*6(C;b=1R]Vю#i =ғd%)Hf2Iaʅ24ʲ(Kɤ&.6Ͳe O4( 523S*O= Hj;kꪜrVU`+eֳR+ײ!UG+\% R_֖92 _.6\l ' ȒKEF6z*-G y۲vq qdf][.&-Aci͔frtKAؠ@\ O>TBN$]-PbQ(R~ASrAy RTZTRX%NTWBXIOAAL|JRIZYZZݨ^ 寨 a6a:DiM]F'tBdJ+B`PQg:*_mB+@2iZKf+OlLlDZmubVb[mvm988Ѳt6#n=#j}WnE_vE56vgL eFx'ypAmgtkl'j "9Bg'|AFhHFn 莌XmP9^mSJz+nBSSCuTKTC(Xua5uV75mBW۪13C"q>ⷴiz(j%bq]5!HGG0Aʸ""kNn9-jn$+v$%3`&tpegXHAԅ\Vq 4] -J`lk7R26x$s|p?F7n3 t7s./5W3,f-,jGv/ JX4}0]w~HʖCIUKPfT? s%4éA!"@7Abxksxw--( TIV1tXYZٙzm+P ePy ̙ebu:"P>'uqf)r]DzB_w"faGE9cm.b/bfVbEp*ft\E236\k2&x^mvs[2'howp 7:qOymssF …`su0f5CZ0և<{d(>wvX7˵| |ES}U;ENJCqȈ ȷuGgTHA Xb80{{;{x$HsA<H Y)ԢT Ԟ%YFPոiWe\|ȋȣ)1JDѮl/9Uiu#F[mbFm%Qefvѿ5*HT J챹T ι$SjƢkrdWEL tLAT6/(vp~x_& Dߧc E贈N/Tc 5ԀB8(0 10<8Cc=QGLUTK.MyEHIl>I,#RKpq@BXKx5 K8.31 1τ 5+lM5u{wcC8P=dA =8yd\mG!TI)K1ŴQFoٔ[@N=-SeIu(XeW"V+h*[o}U1Va_WbEVٓcV)^yZkjHm-衊Ze#Q6aB&n 鉖f^|wr߁{:n*(*bB0X+QZהšY  J/U:L^qb2qf9g3~.I4p[-6[ ܠέ7 :>dCn [3O<ԣX>>;(Bp9=l ;CP) amd'WܑEs!L+qD=D֕cqr2-]q+\sM9MU;ž8bMцڠQ5}h Ӏq D-ih;`-kɻs(H`!| vdO{޶G1I;-h'5(oBNPsS6A CD\VECڜ^Kt=ҥ>w!F#=MW`MmNl"M)k=DzJOyΓR=IezT`10 VTkXC%J4$`p1@0[AڐDĂyBhȔƒJHhB]+WĘSxH)PDCXYXyB:;(2@P"_`fE%dRjc$caπV2q)cJӨYlZ#ǧ15vP[rQk"dנHl*Nڪֶȇ> 0In 8@8e*׵ .B\,a<̖D 9lKs\0;:x™„&` fЄ& elM8Xx875B|j:NGi}+Etd>>WR3rA^Q >8 H0FQf$%FDHZRݯryLhId>C2Y ~$iyQD!ؐ+;XIp0U&(Le8GJV4udSKɜQVe 9Ƌ[Vj5#\}ƺa/54\ 9!]'ժv[z 6I6>y}#j6qU.H=Αv#Sbֶ-AiPy!9sHpǷDؼӾ.6F*|\U.-GT:^8~.Pr3L>;]c-n;&./BEgDX&S)ހL5*|_!>_t#;wqoJg*?0!NŲ,aO=bFG,Eb_6+q%|)@Eԅc@qLPXӜ`ٔ2*\7L'?UL1 ƘEʈ.+*8eEx3 NЙ.o0ϙ{:  QɎi Z!kiM=‘,%Iʖg&fMTb89TV :i:?16Y7DA- Z̸bkDxkkP*^mmt*ޖ uvm`#Id6iB͸+6pؤND؄NpPIQka{dnXRd.S`p lR.R' ~梨=nIJeF ® 2(bLخ)̥v,ex'+) /b"(b"obcPA˖x(+B:Je,͢hHhF1@ /*93q/hЀ576/up:o7؆փF@GNNa:p m*mΡkpHs'}re\ 4DL2wn'#6B `pH۴BR72ܲ `za$0 'e,Mfa 'R2'[.ρ|2/m/!01].%.L1- paa2-nA3!5' 4+0E)ް Sd rRA64`Ų!|4b([b9R)sr#b1s6!~A;9+*_A5O&K)q)|m6a=M/a\B̳`E_2_<_"B**LBYCB$mʫvdH/JqA 3&t (qhШழ8F!MyvP +:k&8,<ȃG !9k/"Zah#>bSm)9OyA_aP!vt`aAA#.. fɨl!1t>"`)$+?-ז)\!3(ċ@b¡0.u*|Ra;}5"CPAZ aJv"|+܂ tF+qqh0zF(\r˃7ώHq̫Czh1&ːxΫ?H?#?F]е }y\׾w/sx.!ARKZAAظƺK:%; f={Gt.t.۞>.]ī#nyMD\E-:kH<ĸ脟K.^ƋY[o䓻[oh!ap 7f[D,ǰ1`qht 1`(*ܲ ,03`&;w3=`9sN744DJ3=@cZl<7lcfpfsAx̭,xAw_ H7pC;b8cӎAH?#0EvTEzd B/ C QY7AqSH#uI;Q AIe#)aټF[#6 L" Nxz< bvbhA9 6o\TL.%~hu[|ѿj_XCTPm2 RP@ 5<.o~Cqٰb\8ۈD"↳x4nhn,n J$٨3j.O}3E蛑9(t9 !:p%!ч! %y-Ħ h+#8RpBQȌ$' gH?IE0"vihCb4 j" t! -y@ T&͑Jՠp'FbINwS0" SԤ:1*RT: N 3'>$TQ*IMk5UrF3X(U:֯rvWJgҩNeժ&.^^iҺU~܉G%/x-^B.2dw 0 au6J1 # "fd<^"n&:\Q#+DM)64AkZ׬xXQԠh;! nf@hd[VXҠȁ+IGRlNt(A:7<|՗JعHɊFhHFX0W f u\:?h#[N$Pmb*b[յ,fa<3PV! U`n]rW&ntK /Bx}k jY;KBΦd7.;F.9G|+X!Mp) U(/cyK_4F{z[L#%}SR>pE@А(ط" jdW"3P(;/~vg>2:4+c @zB#A ~),W܂F%2hr*RM)Ox -P> RTTf&hBv4>gIL<7iT]3f.Uԟ0NoqV[}\qB|(":ZBWĥbfP|5V":nS4U$VY1HE> '7N[Rle4)Mm:~w3~XARx67-zKD9|㈾ gKs0WHL/ 00U#/ə(R1ɴ*ʯJ<-ૺ3W&\؅_qUlqq!!'v$WŽ4AmK,z uts׬Sq=\K;Ͽa ,x5Xx$rU {PPU M#GѫW'ݎ:ky# jBK&J.=--L]4 X7 9gdpʼnwԗ*8K :ՙRL@ (JKJn(a` ]:@6 bM*KD}KY,DH(zڒv]|xn*U |}+Q 0 .2}Q .1]EWFQȧ:2cٚPA*٠3MWkʏʮݬqu7ۻ\ss(8+Hɚ-{ܦlܫ z yQNμmN]~< wx77M|F'  >:) n "?CK$$NN*, ( Ib( )KݑT) AN+m)FiL^ +(LKĂ Đ ]ZT9j6kikziv^y#8A! /% /hh 7J4  # ^9(0MR頾's SMR#3~?e+뿋1p%3;K0 /6eHo ;X*@?pPc krqG{QG\@r !q4r%xta rK. ӄL0$3hd8g)N]D=tS#;ڇcv\:'zwwH ntQ0HUxpy\? $TE>7V| LPFtEpuJյ&tk4Z!v+%cU O2}2SqP({#Q@汃T4<"c!p8+@.J߀^$9ӪV( "9hѧl!<`]D(eCI R5t "mc 1DE#,P\ 3(C D, X!xدKrU26SP`"PVDҰXꋚ 8]*C\ucU1YqLVs-;QÖI(r]א~d{@r2j#-ad{eJbRd80R+%)O9Tr~+c)(X!XBd2e٥h"3(L4Cj Y"#-d+Pllx':I`qŜ#Qg}Lm*JVΞ>yŠ\=}k c$892}*.w5Tx`:ܼ.vgU4(ݝYgDy'Q'd49iH>j=1(ToU~ D g38E0G:h]L:l(HWU:%eL =R ŴX0M6Δ&9Ғ7k'nA ДJ}2.{YZ6z#,ZY4jʮkB'[9#/9|y/}$O CQ0U2:5$08p:9Q4ySKtE4;48y SPl@.^p(Bs q0aDx?Kx?{ Ip!)mr+q\^ hLźt@zb @ʒ;ѬZ7J -ъ!A"4W1QᢀKLٕN-k)#Dxk!T#LKl*Bs19 C$DJ9E)-0-̗9~/\11t)ÉYCl|CCd:CCʰ0:089D1El:EhbĶK%JsMMԁ 2! y4ETjЃOб*>qPia^(p͆^ 59[qplH,h I jr *yr6d 6b6p˂2<7u#>i97d'2;-/-XJ/\)3ADAS ,BWy>x_%KDuAT¾V/$̞SL,U5XLUmSJsإ^%@L!D\M1T&DfM|d xFl%T$'N*hEÃ/<״ćj_SRTU>$69'$lBIBBLKVB/:]14USm]U9qՋq;ZtUaL!H)_:ֱ&gh^gMXfMh^h5 pxV a״X$_ē1S߆]E; ||_e,0=:WNW8JaDQ}YAv` .*W`^| Kh!L*#?faK?Y6bƂ)#ʂ,I.@JB[2UJ 7"b"4 \ߚ\A5}\7NKRB6PB9N9qQTBD:$)B+DHA0M9]FFPJ%Ru]IT]KYrU䙩 c_`:RVፉTM(՜Vu^X>kڴus^]1,@QVo5()K qQH,S_as׆BCMFE O(d$j = nFx``<*`~` n*acWJ 6v5zhagoF3@ln6Ųò!oc FȂ-!)V/}$7l`.6JQ c^ӫĕ=GH=ͅj4R7j##ɥc3tY=˻wa$@T%d{y59N%L̈I돁Kح4M΄fpRƺ[^-JUVN^ۉiXix^M[nt]yNl}a&Xf>(%%sfv< PmO ŜkϹW{or=j4fFOp0X:X" FOr`gnh64fɢ`sIB`h,YiQ+vh!>!-[YҘ(i2($1=-۽#-7E꫼t#D=.j@j$a96$<>Un$eC0-\CTbQd2X:ٵ]+ݙQ0ƾCYe_1 ]e@`sTAcpjsɞjpZާe.t  e.mT\ h|" U VئmO2e \N("p&AgiYCy^B{^a} c~;(o8}>*n$h8"yh6,p]LpncY&!,i"x/jt&Rj-6jTa.YxA#+N7(EBaGvkF  c!rC^\/PwQ19)]kS/,-Vx0Z͘ s`J<#s;;=e&A1$0tuZ{ ApG崋h{N_ 1 |mv׫ίdU?Sf {jQ0^/n[ncg@dWv1v&h:7Uo*nnv5}:m665Dt7v7,b$Fp618Qw-ւ( *V72e~g:zŸ7\@E=o,h 8j2dpaB5N/7rF?d!*)$ʔ*h..G%Μ:w\Uf.VZZtQD.m)ԡUNZ *Zbͪ 1Ʈk,ڴ-!rي#x-dsV0j3n|1[Rao̙hК.m4HVaz"5zE6ܷ_*QOE8qQ~^ 9螌Kn:tck;@y_^(T֯oɓ3-6aߟ*07+f+rb J8! lNh|z 'w&18#8x;#?1w؁i/M:%..HYj%lFaaG\r 0ifS"i1)uy'y.1h|z("z`JiX2 jp.`X:Zy*^4QD *hșQaGx+w: Ok*f."GJ;-J GAZ9kz-#ч~yPA 5QDIFj[/H!<QF5{08 ;KWQ[iV_}XRZ%[`^r%e-}b- SXb=721-a[m4M{Fӯ75 ֺF ׯr *z^ub}vܩ6љ'^ym^zİ 1lɊLTMluof7("*Ʒ!'gax/ҸzȎHA8dhH%6yWr9D8(HQ&p( *(@xߦ7ѯ~KU'[e@Wx8RavNR45ЕAv#E .1%2ԄVH<R @bdU;.xH/hp _S$Y~IEĜq9DझI4 Z 85X$ C5D D AM ΁"x49$ J "_:HC.`[eB`Q! Z _II`QQM0P9շ.[*ta&PY`:_M!1XAtƨW` \^Vm ʤ$_ &Lab,=cT\\,ơ M~HlWټ#yz\A*o\Yuq(u޸"عݥ켘-EHe$ﲜF:HVjEɥIBqB#*@MӞ\QD^^^qYSAeC AAP`!dmo TIO n[*@~Qq![!9S-f_6&Q`Mk;ʂ:%,fRR?ja Qr,[Cٲnk.DЂ`lՔBBO> NCjSkО8xVoC?0BU@rϚ) ȉ Yld A,Ke.< ||x \~_Zf$+SB` C0<zjZh6ĪKCkwl=k#qn7_ Ƭ1lqJq  BO_&-%owv h}Z f`'7׮V 1darуEʅ^Y`.3<-,'# =+n2C2cWb+Fب4Z346Gn'\/8cno:g&uwDGn(xx\64E}i,q8.4:B9Ǖf?cy}̇z8VEs81Bӌ]HBiI+IJ?0 Cy;PW5 N%*LvD( ,|kJ\*7B *8P.peTC4T5U5V"TS4L ,8@͏WI[;@\+LD 4^O ``/%Z Pc+嫾~Ы+F8Z&_CCB<.jcqj{6kClge6H$I %ǎ,ǻp,6'r3,_a؂Р4 B!PEea6aR7QXxkuǧ'(gj b(k >Vx!ck2Կ+YFmr+<2x.h,5K:88_-F~W(<k;O8hswvx1縎)5J)>yS2Β?onԵA|Fo]KoQ3H]p/:IJ9N 55ɉRެ:?B^&F- 6TP Grx#/7^;pܜ1y; NteAi'qu3..rY6.[ltڍ8lI4N8ڝˆ PF*&.sഅ.ܥQ44z;޾%k4g=! ?f1$޻뾯NH 9i-^"<(& ry&zFx!ʏ8FowđFr*kr#L?8VoDH=rla-6nKG0dq c l*c4ͬ!w:})9_w?*bɖ+9ɉ7X:itxQsk.w!N;WAL/A`?a]:ӍuD(޳ڋ]0wB8xgXIÝ6$"'C0щ` d /qcE;!FKR]Tͪ5-'0ZRUqk]N5yiTVň|+`wX^1= <)V #ck>1^\b 2n E3ZCF33}:= m(`Aj 0F ~; VҮMn1 Ԡ5z b 3B ThKFv39%Q(JуYVժaX%zm氙;%V8nM^`?h= jUb/X(+^Y~ֳ hAY$ZDY;"ȊX2+"' v$~ X\&IJR;>7d +\!\궩p ل'$ I*꓋ /6I?A_2"Ҁ.6coL7ٮd~ȑ*7 8Y|e!C#Hcp  Ʒ59e. PYtozi'g9fQe8 AUd$^O[讶Ғ=MkW^8 jɇ N:=pf3j]}f\s ˔α!Y~ZVtm!p?EHIJdmݬ+HLEJ1ph$҄MP!BPe^P: S2)hP,D)FSLTk+I^!V慑l嗀)EV[L陚 n)\a _.Ȏ#nbxgRX_ Ba֮xc~l`e efpΡ` 4g<g"@ 0񣈆&Q0oT ,oN1 b@ l"Z `Q db @Gl(Ҷ~|/ªF-eVfbqWFeZ/3R ů r2:K tGVjȍ6 MLj >DGm$KHńLȺ؄ lROP.Q.2.yQ~PLΔLT VkEWj8a® wjM2¾0޲œp\.%0BpNi `1&d&X"Q..$b3-11v& DQ2 ]SV憥 $@`<p,!!TohF ag"l qn B Pɪs1QsDZ-O==A ʱs>efm@@ 4 ="2۬("- @#TjF: Br$ J݄PI`^CWRIl7FL4OnRaCHR(Ckn)Q2PQ^UХP ' Β 玅LM . .T\̉00s#^\UP PQ 5`,c.1 ؎Q RklRsLe&>hB 4M5y5 a"J5a63O/psnF@ dY  !9uq-#3&r|/l/4;;p<˕ysy-zT>!]Ϡ ^9T&?_: T` 4 "!mA "1ab#a` C8#I$#7Gp${GRԏV \4e%F+BDk' (Et IjIVTi;龬iIHaK6UBaP w,-NllEV0L֖mǰMP. 4-"bvcFNP7pP)Q7dxA``q3gX>L=+QT,,H/dXu"@ iaflVV6qSz$ &U YwY1Zj ZWQSfm;[[%5)+l/^]Y>!*u^7S?5ӯ~u`@4A/aKBG A$b=`hla:6D:4F]E@$XV eDAv|kdOrD \4l!Y!>8f94IDHgNx2:!$(6(WAI2)iiu0OzRNS@JiSjt4k#HЅMt {)ZTM}m64 qEn.!꼩+!a6!A/9w! &'( qQB&`HI$yЀr-/B<&- F!!(l(siD4n ^VJvqLD~gF @ @ 8w^'8hwxoPЮZ)9{1Y:r<ˀ٘ @7ˀˀW9LZ V BvCdt:kw˳\˳cHIT} tQA{DMxck4fȅwEBp~Fo8h3OZ|2Tv)ҡeFPrl{N6 iMmlٶ )#{.8> 0#P;J95y;J`P_1ُIs;QfBQ};;>.&sf}V`29ri9Sb)M} 9fҽ`;7 [fxal!9l^;H jj5ZEc,A&P`ead"vjDfyU/&g l/u(8Cl|}A''!AB"wgx噀@z>8 1HAB_}G3I~*>=t\}^  ?ym @'_{Ǡ oCa 6dzoZS˻芦ǪkHHBZ3XOGNf0U8LDzF_᪡Fߤlҏī+f %hPh =+BI#i'87lvY l)XЉN:|!Ą FT)W:zc$H^l;NjWyŜY4hRڛwܝDى̚h9Mre頵|4kV\Id]Jj؁Z-B\:p־+ ,f`dc%{׬[荚ܹT[<&| :ʤKV.6oMJ ܶGĥi/ضIZ\̟Q|v<M0݄ 1XJO (Ԩ!4kZY˗&KhɧLIOIgGi NpG  !v&V^٠F7휓 6dS`7+TUG]~!.Y#!l ba6*Սd\W]ȗdW3f+c,Dx3ӣ"^Beb )~& ^Igs~Q'\xh hegiV,*>*Jf^in*",r3L kLڪ3TkVCL+ +.챩H$^+-$청@+mҎ&r1ˬnĸkoEҊ+*J*[@M,Ll+K(\q" rȡh|q* $[r̞,3{BŠsϤsBI'F}F!KLLIr&OMVa5:uZc}5b5dMDI1'ltR޸TITesK-e%tK܁xRJSSH^*!sKlU]u`gtXO5u2Y5HX6Y$ezyh8}Q9Ih΋fZ[fpVN4äfܖ0m_N6Gmgs ӡ}1! ;Q{4>9 c7m?!)rICAکh 8\HzUh%aCZ*ŃBêH p]p("i|I2xB+DcB2Mn`tF;i?yӜT@P:< z"'@vjԧ<3*X# [U%}5 gk*-cBVe$ A[ rj+\+]H&P/Ik\ TK̴ְEcBi3d51o,797&mhlgѐvMb#!Ĉf8RÚغ6y-\+y THC6I"osE 'dn[HַtC%s9GE4 9JJyrkS.cl$9aDhrJVJWӭm7$D6a`\V׎tw".Tf"젔t|G*VT?Y*<靦c 8T{1m|lkGG4=  fȖCz(~;{p1D vzF] 'YC:d8ux e8 ])F1l[z(fqt[g]INT0-CxEYh1+8r)|;I f0?q²/=jQ, Lz-N| X ,$%Kʸ$.Ic2E-!P+[1+^!^D6q(K^ & KbXf39 bK7ωmyb|e+ֳus>{;ƉirA MH-lTOl B7KSĢDPFz!JrK0DNA[kŨ4M1s)T!"$e1E s 0-t, 90'!Xb_vTnI^Kӗn8x^IC=,|5Kl6rVpE ' Ή[;(3hm}d-\ыScD&-[o~ۀ(D5$Q\XB2T-\$#@=xk^Nwd*"BM78Kv6! Bn,(,AaxB a+@A qC2b-_<ؒDFE,cv YָT4dԗ\钲qVڗLeO։B(9M1Qt"ࠅ j=fX@p? aJ; %?YS0e?'ٝq^֕Ո8 $4 A+ 氮= ;G]U B:Hۯ6"Я1B1L 47I̿I - ̌˪ai~& Ҥ `Dq ֬Da9 ,Ff96T3(Yn,lְ!k?H!4m:Fß &ĦĀćXoO Oc+W9 Z\\́\yUf| jI,nuq=\_u@AlPsC[,K[Ll^ؔ\zڗ%`s7 ʳʣ/ zʂdkM İ~L2bZҤB >tXDW^D#&7vHRD2Uɒ.S&P,[$JH8m3gOEjT):eժł]LVZVXg̞=VUZmݲx \uś^Z ^t'…;FXN)W{Y;=34wHNZԋXN[vESA&ϥEYLplCG364g\tٴ!q`ϫx4fĈE뷠|ǟ??,LJO8xK»bpAO8 P?%C 7CY>D IN>bPAb FO 6@DdEx.)ᐲJ+H8K/R 82<6@I7߼9;cL6G?4PA%P/E4Q/xTC4RI%-CK/2ưbRO%"TQG%T(Ɛ\V /d^5cfZmvU)1 aT^e&YeUZR9"$VZk&dT^u,b\sUKse7M ^%m嘱RK\Rx]H",z%M6$B ɤ^{-i%Bbډ'|&HxEfj)7婧/gf2kf|w,p:h&:V*j\Ae¦D2-Sn l4|l7xDf{&{3N:We8 oCϽP>THGό6eI #WB PÏA vdD !\]m$O!Q=5$|6ؠ8)>M0>-{<_7够;Sy>,Ԣ:Q"*pRT/ũOyT$ YʃGkUde+ZIxիUZ` `,fUõ-ZD% ]E,w1`c¼qfI +R<1"y *41 sNF$'XØQdAx”lLeT "L L I+6rzHF.u)Z&5IM^ ̜Hmjd8 b%}AtHuoN66q["f\f;yi;$Ǚ\4 !qKg}\ןAbwΝ : ~׺ QkqPC !Du/"gl9"5/y܂?7zG|^4R-ii}FJ&tRMs"0=a8G*x?H |5w?M3wr`)J0`1A(X! IpVZ+10a cXڡ}׼J R@%Yb+2E(jB#r ]N|b6W}ք3* #ѵjY1eMy [4iJ%%k3gH %3se dntB*K A"XV`Yrl9QԲƽ/{̷ɦml1 xX9HMp ޱ!`mH&Dݓ-' 1H=Dq<`C= !І 2e(ЌbD#1tG[c.)E4*t|WRHg}-h7ґ &ͯN@@)/tFߜT>7js6jLA ZVGTU%+lVJW$Mxk\,^jlm[E`K%Bvgj*Xx1Ah[{/nBEf9"! m6ٲ\U"@N2Ry ]2sFUYlx aY SD)}*-ҒIEB cQnxٵWwC֍qιxpn;OҌ"h Cτ RMt!GQk ;@\D3 νj"-mz!c4 }R<)5Y:h&l׺utlE:Y`##G# U86ڶl6ؕp ;$Yt.Kt)RxZy{÷$AbkOKAWräj8 \kxHp AZEl ; &9Xט/`i4္)Y189¡G9^sZ`x8c˜虻&3qKx7Yvb{'k9C;{A,(;$㰹sApk3r8 ;%%^hĔ-YEY6@/#J,Zy>Nkӫjm p,y3??V+s@}Ѣ_?$ D-8ղ7 *jB !ᢕ-24n5|۾7RA*L< !0W L.Ɍ8Cp`EZm%]ql)[ %d³) %*l8+'dbBBQ&% %9@C2j PBHN`ȅE0m&>nٽGX7E:Fli1tPh'3D5DAPOR˙D_Al sk؆7:CL9_FF"Bq<[mɔI[4dH>–yIUc?%B? TPʬ"# 1)J˱,5Ǫ d{zJlː춹<˗YU@IKn PP V"7V`,̄Sq.XS7};VAzWjAR ]M9L͏cBpMr i%ᎽQBYLC9`433ÓBGh0c>YDtb1Z'c>SA1t yT3,u'S\Z"S4pp;#Z2Z:~,E%(9ChH1$%I/%|CSB4tX3e3sl9d\ʆ%P%<| [QBG@l5[ũ/ý%4/U _%h=BG<=I?uɮAEB4keG!T^yae ]\uZ"w)~Sc V+’sx[լ?y6;" ՘<6zõV"C߰ +e5!,h KQ ?Mx8oo5a߃.tR8vW Rp;MF$ \l'TCڄ 4p9A;Sfz(2:8N.NN:0ɹH>C1tGp&11m'eĠ:HϢ5Q(1}JO ])U؂Ȣ"s 13eQƢPYиeܝ*5h߭HHX0`BAEU䅂_){އ7JZ_{D=1Ո6ʆPMR5l,J__5J-ٺ-,X?*o 7|`q.s+ n&r,ӜLK̵4P r=k4WSPW깨VQV$x8Bb!|l9 %^b٤)"cMb/^ 1#m8Ep]^XN6 t:Q:(6xY=hiuy3du2I=߉,?JGd&1PB߆EYi @[;~a \6]6#[&a#9f3sjFc$ĩg^nGl?.ǒLs5]p3%l1/T@{nc~q6I=ŋ\(^O3P!ohAeh10CU+H5I*ǖoVKQ($]Uqi&ڄ~5rspfi]e6 > >΢˳D˧lFMHGv,4@.`rq Q'R %׻`႓j \PU % f=B[a}l-tؠl)ՐyC1dlЦg3Թ27<1s0I >l6>c3x%c!u +nxHl1XnFsdBUB8;묓@%݂&+Y6`[?ƲnM۰m7<cvobةe+lPzyd 1%-\:)랅\s]4]sTN OUݼS8h/Ibah"?Pa?r$7B]$W '(?!׫+ocTPs y N?T5)7'9:;O=sJqiCGָފ7ǒG}tIG7KtMWu}3uN xo~~8MaxUW8t{LpaR2AК%Yp$n;gs(|MX$pQ4&*xpDwy("4.b F.nɲCI"Lf%˖._dF&6m#>y]dnj[=tMy(\!4}. &ZŢmY.\}+w.ݺrO5ab a/M$փ'rB/ƍBFCfaάysfH*={9M\6Ri۸lx;n؁'6ٵ>g fN,6l{o^wq٤㲦9fS}TM]lttXx.Ac3IwN6ԌA83Qf`FLQNܘG]Fҵ(yZ*\p3pA86FYd2U!263LSR" ,`p PTfVX!&U@aŗbV%_'I$!F*r{٧ʝ6A"(B(ڨH(&آg*('+BJ*r HʪD+,ӫZj&E L4ѬBP z2VK( KL3L9%ۮˤ I(I'\ڊ8S;S:Z&s1's2'!w"2("ȧJ֛sSRӳ $#hI@o" Jʶ*mpBPl{c/Rp5Jә0qf%x\$w(JR4W6sуS- %Vi,gYb.o | { d-/i $@יeO{3 HС f*W++409џ׆><² "T5H>Y-kӔ f0-mkkN!{Tȧ ] .x Mđr\&ҝ.,6*]̅}$+QJRrUĥ>^ R*3)Nh *L| fX,! ,;mP\0iM6aINSb2EDYJ+`eb)fe=1kfո:(u{[&Lf*3ɽ:3ULzkg>0O T+Mp:4@NmL\\2bm;FCtl=ۜϓ3u~?y; 03o|#g_<5GQtڿٸ鴙nj[$m uB~0!"# k&g[Q\NVéTWeNγUYMZU\@[Zŕ\^n) \`  Ā`Qϻ!E fMmhAAG۾ՄW\,NS0ǁG~FQ\SV up|Aȉuxrɑ5h\Ĝͥa \U,A B.~ I2T9"Iɫ|׍3A 坮 lB*]J9eد%-*^5Y) ]ʼ4+(RuTY60ٗA m mB# =L̙@Y20 =r@EeF]G Mm qJIـEFޟKbQoFU\UŹ! [X\R8 XEXM`EU d `h\| \(R Q} Za䀅i [SWƁMHVK!i\Mf5:J\]%cqv!_:s!uޥv!c-,ԡdN"9&W !}ה4#1DLbm]A=-)](띊\ *]+Đ٘J$ X."^&8Y0®0)Yx޸˹3(4V5R6m8cS9Y5ѓ:Rc<>B31*Yv#DH$mTNMDTAjPUMDnڧqHDDTM]߄¨udK|ԩQNU `J.ÙELbXَMޤN OF DQj)c@TR 6 [U]`VM#VWPVY$e1~8[6]lYũiR}\f`2NpA*˵\[b#2"yQ,yQfv`vA&g 嗗,Phf!0$ k.J5k&J&*4A*B|hB&ݪo!KbX7q#+˟$sbsҷ0ꊞh6S8QK4K4*)|ykg*Ki#D+:~S,5S̞hBЌ >+D,fg#Z GI B&ڐ_CM(LAM ,GMߌD W,<0$P0UL$W)JLN2iV |@Oϔn)^|pAQnxٞ-aN i TIEvuwMio=^B!lnƖu}UnܷJnt&xpq u)R*cnfrDdQ-L w\ ɗ2⬒&#ɰ歪&jk:J&**x±&kn"1 bƊòR0^Kek-r8f 1k%h{̈́ ޞ*ī(+իyZ#7C#̘}~S:R0ɘȸN,<)ühl@' ,1,JD:NlGʪ(zhETŬ@$ħ=dlHPMM=,X+T'&cqKౘr81Joi7ٯJ/ ALOhYԳ{7K$i2A5>IpFhaRS=Ɍ*nupB+,=b#E'Ģ̀l04LIOuy(JJp} 8Xx eC"PdGE90 L8ADuLug=I [ IdRdA8)*)YEQ]@ \ {PBem~iR1[Y4FaeO$OW/hKHoT0d# AA[5rn:,¡^BnuIr*&wmRy΍,{wQrxċz!s1[8!%sd 37sq(I3PڝT%)7w3:8gs+Bf++Y*+o06= 1AыĄK3ܯ?3ʫʫ'B ᡞ7+&hkE#̲0A'h}b4=#GF2z0J3 OԖ#ZL[HWMGH04tԔ8pDٰ4@R74A/`sF0t9pVFl#-FtUp?":GŸF,CZ-hؚҒŐrٴ_3LYYEEaO c ^ed3dge˱eRq[XCvȂC39jhkS;'8hQvvnBowkMw͂jsSF!t;u |yw39xLfՊ2뷭g׾]cr{y;k֌Ǘ~vWB5)QEēN,NlP6+ږ!f54D g˰߄Od'R-S1k] ⦛vҁFosα;Šeӎ;@ -P@(DYQF!]$E(t4xyGgҀ4nJ̓!da':AKa%D_CXa1ViC6 56s4xKyCVe薍6а\RGdEcK&i>%6TRc{W-7,b(]88>kш)>MX96. .N 2@YnE-L(TxVK*(i΄衣Rij`H(*i [jN[n2ũ*,oìS˖[fi޺K*\0L2+M18\.Q63,3P mP|Sm5YvrcݸR)bUηMZy:icZ\qsjOeT?dPAї1 :ۯkeD5a'fM\4N\"u ;mt p+AoH 4'ltW4cIKZ[aJ]2 eaXȢCΠ1,aAO+ T(H*TC)7h9]*J&NwոjՐEP te kYmbՎ-x-=v \`HBK]JU/{d_׿ ,L` S6Elb5'g`a?QCf*fvf"s\DP#UhM5hAUHmŏ+*#(7rzJ !'BkJ8! ;0F)xO>Ep'A <Ӆ)Y S:i-UeRbԩ+Ê)P 2@Wwe wHژGoAf@.VbHF:W$fɃshג *FOR>ʍ}+a1Y^>kEbЋ& h4\$x爮(ⳳ 61̐TcL2bc$nCb.ᝫ 9@|KXNXpvOg -gZi9y.1rA ' (XԎI(0ƣɝkD*O[)R(i_yhۓzۑiq  (褾NmJQCݣJxڟXʢHNčSխJW$Ճzݫ[%])YG J)clv30Nm"v.lvQԥ.u4@Q kGŎcg+ör+\ⳛ'bJqhC(XvK[mG }1+Kd`[eD֋$%0- `2+1vܯ|K35% 0W(`_ۯ|F Z"cgh)/ [d"#;5oǠb_%Vha<Ϊ1Y@ #dAj~?Lˀa3;(㚅JY8fEmjA2'={XYUTݛ#VZFFVqYzj$ֶn3Nq .UZ-3V;0t!|Fx+d4 WWDQARDeNfQ Y\ Yݼ( ȨW4AݤAY| n"\ b@_kᴋDNF]4ZfXn: cN ~bN)ctn YI*KgA b`ad g!Īi`lj6 .#*)&-n),@.)-ڢ^l3^Q3162o5:JZA0o4:4 1r54A $O1@{\7P. 'd#qGȲvp͑{_J1}$,z.D14OD| 8 OՐc\b*IP Ko#dDAjf A&XAN2RŸAsH %QQ"P%PR20R%aNY2ef%HP-\ LZԭ V+k%]~P  N"I __. Z> <`.N b1W L 3Lb2Ra(DhH&sAF[TFs&M3N( 6o7+ $q8s+I̮=FqN..--pS"jk1tuhgo861.j:! F:B5J@^FOs5,zA%tIn@->#/47~=tA"DB,ӴJQ7ʫ4bt FR!8t-ff$oB%8J*TaԡSi ցK!B$+lRtrNQ9>嵼TT"k|| `WbWxX Y`Y2Yڠrt-{p--@0_^2/?faas尐0Wbf! @` V[f2)ScA%Aޡ kWXW UKa^ u6sS77k$8ѵ89 3+niptL:.3zނ 0 <w"uZ!DS&VGd'aZQ6T@dKVje]-OC7xIf!CuZHDYBGRtEMdQBzC@ (}Ht{x4H RMHSh"4IJJ RXȷdxk8+M(PD'R&MEoWe P}!PY,%7в[z]~"ESC_`JdaRu0mU-F a@Wqd Ku5QtY t92P[E"6 \&uĸHb @8W,] .]œ.^AQ: _qV1_,`< O?=CGM2Dc502@ R<6cSgVi5jCeld[C@(6e_6q7KBBTBfiVgߑgg3$hOOPDχgӔv/j!>k Պ@GCBGζ  WX`m۶mdTX2+Pw%ۊh8 W!nEPM+9(%XXX wr%W&5]T".!Ss50t+ NUuUwYU]^ HiawswwgV`ހ˫`SC $`y)a;bm*zWzmd{w7B}ݎ:qb~~ '/;"8cE?l7>=CC Ba˄+zq7vxBDx v6BBTcÅCBtcxi>DȆJBO9$|hiSDB c#1)X=1:Z:7\cQ:M7R!2|4 ;L!ᙣD"Z78v7"5Q9SdgE}|B@^`k|HA}x<~La;DE6n~K^vX~p{v˧!d Ne܋ \Y‭'VP]5Ϡ X dժUM(܄P%DBE$L6:vl&CRdR(S |ʕ@Mh eeKV.Sɳϟ@[c˒ СM#«Xv괉ͯ`~ ٳhӞ UԷpFj-MEͫ&ML0LVA5{u*Wa]IƅK˘)k̹gʘC}4hҨ-kf)Yװai&۶iÛ> N\;vzF<;@Nꉬ'~|E{ߎyBi~g"=h;*Rfx#=#?%`xWnF=",%Pg0gG2SYBgb"`b@>/N {b0 tbx =B{csw+f & hl@i-U-"}b?Аad P!#Vt!P>}}y6}Ґjy}ck)c)"X)(s-ՐbbVP+2 :BBZl,EZdim B$.pEL 1E# vo/ؗ#d7h:r!?(CepWJ؄4uoS(`W  ˂C`,p)!?ᆢJux_J   K[sP6-=w`ump6w47DG69f1|̠t࡞2ztS46 Xc88Ni0!^WOxbpj'PNO RPp{@wĸƨ'vf;xѸQ6r# F cbĤ( f Kky[ @⠥_0|au!!Y!6 ~"hHjr'g)+Wz|A@ XA@zk*%j:+ B< کjDFYڢ-0MЪ uAn-0xt ՗2a^GqEJeIFЪ]Aљ?H@ RJ3Q_n5Pڋ_- y +41 dd{?W uePKM{hL.ر'}p5{ΰ-RwNW59?!ceccI[vN5P ldTK è:P!`&xDžg#$'i{DR_fmo%ˣ`Ryk=6zN:-S C\cCjEzG .0i0ZPzbN:|r2V+@ AU2Y)0 cXXkCiXR,B:&YL,/K-60PU;[@MdN4 0 bD(ʌiW G@[)m B9N[* ˈZjPJ*}kͫX */`:4ֲ./mXDMpD 1(a" /t鬹*LFgs?p1\ 35a-3 l]& Cqإ:J`!Ϻ \x7 q'4 d"LEi8aaj1. +.!J- YՎzȇE& ~ $gQg!{Yľ(Ly37zbw` Pb* )6Џ٠mC dOzfwiFF dٛ(wW:Zڃ;~<lm y ~ɛ|<}NW Cg `G ~&ݬ\>sQ1  iCkJf(#a|p (P. \u)` P)ߐ ~bΰ &ـJ*iN\9N-;ӆG.`,.D% /MJ7I &Ft1[F]H F|PEH cM1>Q 2en`C @:tԚ2ڛ(+Q]? K诠 9zMĤ _s4$6v].rbqU0.~8N9Hk7ROΞ;fB 1u sS;,;#.$8 `(aC%N(E1ǐ!BBɋT >ȥ[;xEmݻt3UfgE-.szBit\(JKaŊFݻsϴ`Yŭ-kfB+zn`㫔S5jt݄ߥNwEMF藫H@6Gse̓L /^ͺ15>D8 V̸P.r]9oy2pV/gޜb[juٵ. T'_޼^L޿ϧ_?}:i%%@D &DI#dT4QBMPPB; e&` QT”cZLSdPMLAbrq{\FG RH_1TFԤ&tRM4t)]#HTK0sL0M1Gb|TsM64sf~љisO>;yMB1KTJ tQH#u-uES8фN9)bNRK55f^9ePFqUX]EUD\uJQOu&U+UW`Jb2dUv8@fU<}l[;;w\F]\tEw]vuDM4Ҹaz7^sXx 7 ^U8Kx];@c&$E$66hcCYd6J6/[ 3bfcAK,аg炊. FP脇~.%DA@ i5Na+XI @eK,dmIC@ #vZ!Ћn#m+mDa#r|,Ԙ%+o9\P#3;|2҈|tE3@;}u.DCuc1d +snwީ۽;:Rѵ5AEXED)>Yکބ&>u5[aRFGjwĥLծk]vD lG:r}H=JBt6s'o~jװ$d.I7WqZbt[v773r8{[nɷ7$#YsKXzAD[8{$8Kҗ8{ |PQ9!{٧bڙ9!+qK& Y&;a‘m:1K X1c+pDh>CG2˅GÙ;>L+C@;ۨ[D߁4+ګc k=* k =q5=9>i< `,l,t+] Ҿ BU[GvĬiˬi6zܶ.JY??K\@T7,\dI#T@\{|@2py.M"u+AH" ,!Nt8̖n;%6@:U⅖X!"$@$: 0B.&1l*/ `ʦ:c5|C8t>9!ÜY -/h=C(;);AdCĻ[0sLDLaDđjãI,[LT)Ƌ<$MHxK` ;S:< $S(;L@;eA$8TCZE]TF-|THRe-fd"MM,ܥViV*W…,WCt]H7wIn<ҷmׇ@U$8@R}rؙ\ ؉UX晌1X%Y*ҤbBLC-b+b,N-f4I3]M6Wc܌*<+ZeYc@>j)AE~cHQqds] dN>O.kQR#DeUe4P8`dW~-e^nxP@ eMl4f~招l|X8%n،azgr%9JfI0`v6&yG06& a~Z2ڄ%}l~>naZh(3L(&>ۓH鹥-30fi{;4XL\iMPD!ZFjFj'^V:F~WXg|dd?k5kELpkk0k/Nsqkfk^P7kEQ|5;:2_сu_{_=fkϾ>g F-BCRNC +G@ *D R&K}Y8K1dY})vnv:;=`n (h( n+T13'vDTWrcpT͗.⾝o1@ۄEVDE!=43ci֑%*\4/!zpE^ !aI7l\XRHO1 q+#wD|7lRqeg^Iq.Poe-e9z7W"`FrM%?.J~ClmrBnB.s"4gPAgsm 7%xFhg=zC9tOtf8qI'Hoh^{;ӄDĴ2QI.\bC=2VYuxj\uuP .vIKHkv_a!idJl?jipgU8)!iFIdHyjPw`-wMCӄww6-V?=xo,~x-ނl^x w\q$AgAF:y8#+64h]4A^ k3j&b"ƌ1#Ȑ"=(i$J'NXL"Di 3ur Ò%dRYԨR+PJ*֬ZN5jb<Ϭj:tңE}Ad./~.l-Z|i1Ȓ{ ʚ7c̹3ТG.m4VVn1cӮm6TvO jjUüs籣C :ϳ'DL'wodSV׫7زK<#I Jl)7 .C :H8ᄭ *az!j *x"1 B"-"(#x#9긣PS Ey$IV[. Qn UvJQb e]z%a2y(&mfȉui+y'}' #q&z:mH ))tx)w\az-"0jzG"+&k"+FAB],H;0jt+)ۆ@P%1QF{HCJd MS{%}#QHR2SQ0AWUMZuLW^UkV.r\tU]U`9b^ b}dYCgMWYjQK=jY lVdusVupْ )utn-syw~M0{"}w+6~x#R+ Ɉh9ո:-b31~c$LNBpbeT^y;&j 'տy'w =;"(Z)[r >G߂-wFkEXV&IZZJ[d-q}\.> s0{_z!H%CD`1!Lpa] <$Y0QB B ' s[QmrG@)N#1sҔt<籓JЋOU){uӞ}7SQc_w>GS:!AOe\D`.h2+x `,^Dpx֭uA f*u 4T"jE`T|DZJ^bl&@Ұ@ :D0 OǠRŭՊh HЅA|qh2.nXcI X1gr\L.>2},f)R퐉&i5f:Ro~d6UrmYNfq6mvyL9S'=pyKT2s>ieߺ@J/KY`+)hJOJ bV9AVHшJR.&|#WG,я4xEXa h'݉&Tzx0#,ayO>3SP h@A,bOTC۠OwDA*fUhA:?Y2iAc -|5%pjYbŨFEjR7‘Щ'QATvÁ݄1€(ĝL!PXhB кVQŭY4 z1 ,QA W(`XN9l!+Q3,eS5WKdֺڌ᳠qH[Zv]tlOm;ݹ[㚐n";&(c$r{\XzrXVBt9 M6;ttSA7;|mp$DE)̦+XlS|q m<|g=Y_>98McO mA19;WychJu%@fA0L| iExu b.x"`Fȼ/35ds98\IWf,(PŚdtȬR2DafZe X3D&`= Q тgH-{ɎWiY5W#ZlRqG.-QIa3?͗kIv(̣۾],-',D:TP MuSEWx[a {כx.xt_) L˭heӋX+䛃4, t)D\4PσS?=`]șʵ`8tZ`A܉%U. !]XJ# ٫ԲTFiJI aYo)nG*x_8N+#v9:jB)p ?Xs=y#4W uH ȗI \}9}C+ w 8]B> I ގ v+|K͑&tЈ2TdJN ኲhh PP%ިPُOKFlZ [ݖʥW}@!$$ƨ쥠Ȑ^RSj mEd j`ƧgBM**ΞN-&8ndkZr2j*ppE[oFhA3Q9uzz2[f&筂x زN'vH9n=|Bj5+w|Q8˩뺖Xy#ɫk.NXKhJRA"(/C:HCGAKf$!5<8T\BKU˲DX" 7"΂JXNХ X%Y-bX#^nr @LɄE'c* dejffѭgjޢڢ.bR8BZ0&G/nYGXj4x9p6/_u 莮.92}Gy{Nwn@Jmq=(d}R`8C3+9@/'pBga/h/ro$Lhbu6=l657߃=d.=O7s8phA76ۃ7949C:d<9Ȃ\ 8,OLTt;C0KX9Gwt:0YtC?_!EJDKK]0l$??8C.s:B9:Ӵ<t"9w4#u*Rw99G$wD/,5G1tC;p4U3X{2`PĀLPUYC6TF3585CY8؂1E@yUU^C:CAZ25c-0Dtdf_C,e5UZA dvY3pADXhxveqivXOCd'SCuQuG6jr׬]ji۵m${rG &eVWIgC'Yw?mGmT?]"Sn4N$$rUbgur2/ (/TWB4%A.&,kAk/}2.| Hz8IJ2B-33# 5 3J0/Ps5sm86s=Ños?4:M384748k7Gy:C/CA,tECHXtXF#"X7p9CgCH'"wG4@ KEKf0A7s[97N>  9C?7p;$9Cs6¦w9|:9(9FDtGDsC6C5HXӹ9L~ \LĮC9zo+(ucs7-"Y1#^Eg7l:8y6BD{Ck8fW@D[;8`8lB6B4#8Uk{1ۆq`5vCA:o{+loK|g,z6xW:"k:/>Үk?Cmtrxvow1(9Bl$?ͳ)i_ڰYz7C67#Ƿ+}s5r1vc Sz7yQHP2/*k,P5ͲÙ39 W(+} 96ۃ(s89h8 i;Ds#/x/A/0t654p/z?A 4֜ԜBEN(CtCn7v7u6J3EJr.-tgHG3.|5J7ҭtKY +5MM'9󝯳_zjz::I:ӂQtux8k(reK cThq9,1f\VLG.|u &>T|`ܯȝ#&Ko&kVRq+gH$|lƝu0Ԑâx(f)qeYHqcyŔM|d H rT^IE"|MLigfљ!.0tE/R49VLMG&GMWӕ@_ B %DuRQR-yM:sO=]ԕ/PEmM7U4Q/9%3SJ9W+m[ٕF`ubA=d]Y\uTxvڅG 5n8so#8xif6ȹǞysi ` !c$]RpxE nJGET^YeF`byD>H^sn.9tclg²ňL"=C:v;G*=|c'Fr#A cxOMddOo bbtx!qrb h91DИƾѡl61RѣM BrґdT#*V3%11Lm#$E VMs)=q"Vb O(T"AN | YO\Q,20DhZ/(cpxa K</8+l".WUP̾ehi>̔3\]t>՞~" kg;ڮ]_Âe +@\N}ƣn?W sNVbXM=ho ;}hpIA.b !0\$IhBqZ_(i6 @n@7]"?xfq((E)L J\S)2U2)Ĩ8VbT~ԓnz* D`+N yb-:8+<(4Q>bM"ڳ(Nѫ\@0k9 l;#(~WqS4W+7$HEN<9R+;`*֮(?@$t#H>4a뽨S Q !bT;P~$h"?H*L$,RҨM(Nd#$$LDP!oOThrPLo\R'iZ'/(oT dR8,QP)UX5**%R XWLW2XRX -҆\@o>]\ pZnp&$Ahm@F!aa#p4W&& kxF݀!LaH(TQ0^&5%JjР_ 8i7o3,&8W[ :"^S:mP :0L"t(2"<>g_0ma6B@ n b*faf}RnLLV+ifhh"# +/|C5tCCs"@k2Vn pxkm 4C5BE+ 7AbthB:rVQ;na̱8ޑ jcTI=5D @h!xC,@w]i(gnL!#0$t?Ԧz`R$ N@GO95a}sPHnUo%[o~9uM޷FT(̓KLiBOXU+؂//8%$T$Z~ʮ X}UZ{>YX/A \iZuY [%Zk/~I:`IbSD\D*bz1!0,s &Bf@AaXIS=MciV &tx͈ k \5 ?eB8`ĩd@];Z6PǷnf @fg]{v%~ބ,FgAOnQF@ vvyh kj=:l7щ++ty D j{C61:2lN3@ ٝB x4\ wy=rU49s薃T !`!XPWVu7C D:QI9.Z! :">`+nDJD$=f릍r{d ,J:|(}ψ%%;hJ7~zyO]2}Ya9hTX(X:VK VU3뺂̃KXeS!XWuRXW R `/r! [7{C[ `S[W0ZXFi, sbb$5wj*viPga;^/ꐃ!F'@e`9;[Zp.p0&Mϙgge9=Bt3>. Y*`Y<t'ZNV-\%|{0\?"1y` .iKVY9<:NXv4;Knu'=IvG: d=xn#AąRsnd\(Ȍ"eR\|ODa6Iҷ dڬ+P2UDZR:ŸO(خ#=]T6қA7Qg%,&گ҄O8|%TuU{ ^[^(;wX[emGM;s] {{` CUc;5l{;cPa/aݸy &ڵ;[ ۻS ϻ" &]`9e9t'Q+zj evf@4++}`@ ,O>&r!.y0.:<1dkK Gg<w܃ޣ{ǑIv>\w\ɛ\KK̿ʱr˳!_!NW"W02OwVNOR;ۻ1*e*wnS_FtB```(+Gy!*na~!+L&6+b,+Ec6: :c>xbBc>JJ"NF!ACeVR,~@\z G`I&laffq gq!m܉gt~ h"{$ȡ,htIwLJiNhn~颋/jL$D*:j+zW^Hg\.ˬ[< m-1\{-=mzBK '&ˮ /#U HA CNsS~@1AFu4/F%-)RK/%6S|`TC %AUPH|L4U.,QUViX6Yc,d\5 K^t=b<-[ӉmXeef%Derjb3Ė[h\ƶh1G* f AW_+]w1p8s_?N߾J+ 㒛'`)"#菱!."z'1xc4hd=I<§dJ&d;9K.!^fdbfȖp?~pioIh">}x i}Њ?.r)P TRZu FJSh^ XGX$VZI0ja҅va,  lÈFHP@$ CRH%nb,6E.jbaD%B擑%KWF8ft#Ud gy\KV&ÐHhȿ0#11bhLf2LDCӌmYXcjmk%nt9ߴbv Bs˼1!7\k4;uI1B8_f>kfٛbqOlC[N93=)z9=4"ٙvktn8W!Hr P Z)K[/}KkSIxJAoC5j _?!J H5Kʀb7)x' X젲,[fOPB,[., eK6aPVD$ %0 "撘`aX]ZW/fz Jf3Q#3F;*vQYƀ<欏cd!HaL"?|Z5ų$g&P:\&jܾ9q-Ә0uYLc*;׹7a[v.zٛj.|5כl=}{D >$tJ(AuP]Bt=rC۔CLsӝ.O$樉S:IQRfʥ"NVESU] lpE\٧ꝴ5;XHMR4hk'PUUr]U]W aX ?dl XַzѮx+#$, 1֙/9pQ\Dl )ªn4 H/0V1db1".udZЊZ0zYd#!tym'3v֥<+V? ]h2ךn9PsoʆGF9|z}L {6Ӊ^bWkfh\9OxNE+{_jH|D^y I$$?h7<C]|C4Ҥlp+!|^k|pFxn/.8P*iJ e^̼ҸiOJX<F$fw8nR90 RE}ҿ]tҸU#A"ס$^ L's#Jh4t(4hŕkv5 f0Pk 4\@OJG;"=kF.ы`FDd艢mXGh;!Ȟ- зk SlwQm VG%k0{|zP#Ejv4P G5Ot4 h TUrF[la kG 6lO:l0 a @nKЄ@Lmrx ґ ngn Gtb#_L]!Vp}M"wpp g;sqIR"3qHq8bqq'#ȃq%~rr%x a%ٳP  & v&l2>=bq xtCGt@(@O'Mnbu(b+;ex(' iv8Ҡw(ccug@wcɈ( †x@BFdt0v'G0=`wrIQڈ TR  F W0zز l~߈@v ؒ~6WC/` 1lC TR~ ܸ}Q~xEWz'hVyEgFj&,Ix฀QA`~g f G Hj@f<5F#r5Hǀ { 6(6!kJ=k%lJ{9 4Ka T {Iv8y8 hhi l :?<;8Q8tn ݉N'p!,"r؈tIqC_I#<գ' ({9$wP- b, 6ah h=r‹r Dg l( XQ~" 0n~ !#FB)R)u{s{9 +*@swcu@h*(t" nr w t吣dt9=YJt%Ϣ1`hT'ZBR5U{i1rrf.2|&aP0l`YJ~P}eP P S^p03 @9ʦz9e<{ú a `ݳXLru4}Xb@|44 i8b Ȯȯ6 mɿfA [r w6ΐsځڱ1@ P v̴QNFKN# #M

S>ohm)mt#(/=tQtxZ)>z`hiлi**I*ɛW7*N๜))w8+"Y/[֐Km1btZ7Ĕc̬QkUTJEjQ8p8UN9(e1Ҍ4yW'Yq!ƕ\Hb^1KWZA[XTXy%\q Xs-\bev7^gJw{7{%SE%`&`FXSuavfeb/8c]a\?9dC~gA9eWFٙf YbgُeOb:h~ ,b3hR#lԨ 5 ZfC . fà8 ad5=Fl.ʈ"%ڑLB)p:\%:j-&C&Y Iĩߞj>/ )^*abȡԉ[jԢ}-VtN룿2 j`Ěj@Ì^^(i6)a4Ҿ/ :Sd`K.1.MxKˬ\.J.6, H%AFi90Ph11@TП BP +A7dA6"4D!hȈRD!5Qj5,f$ QEQF<,|!U#!kpÌ4T&эF*j XȆJp$R4&/ɏR1fM,d64DrJP>TA0TFYQ0!K>C`4-S C6R`*X^Ǩ *RM&T/ɭ\ًW^1,s!ƢF6,W83&8m[*E9 bu˝1^ S$̞ħ:vN~fX@jrԠ-XД dYDq3}L3B7auTS@7sby9,qB9i:am yp cÄlgA02 E;V)(K9㕣%,1o^9F+jQ`P8DYeTnSM1i,lN5#Lǐgb~!7 ozs() rg?'wZ^1OZZHu#:-;hM2\ Duѝ;d6:QH>#;!/m2#H1HS°l!L*Y<ȒR:=H7`]$pA8\prl,\2q 9 ;뀇;! DCιJH& DEQlvm <6,j!dfZKjn816јA)?Kç+-DZ7x3h87=XD}SЃEX28HN\Ap ĺ9̑`E09HH4Ȋ\䊩!EP D:;8Y4 @iĪƪ>SDKT oٜKH؃;pwtG切w<5(Y|G}"Q.0y "Ȃ4ȃDȂ/3=t`=?@t=!/(0 !!$ &BI+++U~\["c#;-Y#\!{/OdhcT2Aj$HAYETC ˰4[^niUZbKc0kMm)˺a#'V@%$$$N;RQ{/ÆY$z}+tui,Lvٵ!2I5T6T7ؔ(sQ0nàqMy5)XDw۩<HNHo̍LD*FOŴ@p܍K`S4ŏ4œ 4\ I^Oh @FPe4h>X Cuƭ 3F%Ǒ ϶CŶ+ sDtGx$QHw4B~.Hy UMȄ pp"1ֻI ("(m"(HɔlI,\[It3##!?. #1L-q?"KJ\D[hK1JMJ4TQɤmY\hKuK˺To oA 6qiф<ܴU%!'dЄ([mL+,`R{L꧊2aUeEC]u͕M٤CSjiS\D$dlN|Nο,\4P ] XO|ϙEXE ^O$bD P`УPƞ"m%-33XmnP{%O nFhHMG}|55Q]Qyzڡ=l `"==#!YCH?H ҭLI,RlI)>0 1 #L4u J9#0S=e2ATA-TJUxo,8vwη_ Y8Pϑ+++3؃E؜c|X`0Z KF9DZ73`] PGr4>4Ҡ PHGG=MQxYEzGYZ Ơ 5 0%'֡1)ڐH۰XhM[e[Yx2[6]#Uc8Ww˳.! \ʫ\$K>N@%SVpc\TL5&mGnqRC ]d"TB=Md#NlڵUy5xyoV\U^;i]NC6^ral mޯ֫9ğ _mNFl@xHloD0:F*ډ`@NZW抒P8`ہWwe:(Pg\ЬClFfos`8Y4 =ht}d||Y隭haI. FτGo{Ahٙmp&钎pYp ' o p ƀ'jwZADqj *q (uq<5j:fA6ѿ1yy1J)*+KH-K1s[dv[;YRv'l傢v'S(ӭ$L%$OsnAL$ˌNSswzpx'FB(CwgSBGll\\]59tMGNotrmjM8\6h#aj(:jȅYΝ2׭alާ$JxΟOd=&MVN*gs?'&R +1xwLk@V#K*n8*蝇ǘ#jb +++آ.B,Oٌ&Oc6C*P+NĠ*=B4V2 )VH(B*51"F52ƁI0*%%)FPQ$}ݹ8D KX)4A13Ԧ2O{$/e2E(*1j\#()\4Tre*/)^X9G/D0pU oD+# ƫ8/8&:J"9HְU,6Ģ]9J6!"EJiH FB& rk\Z/s\&E`0ipla/f&Ʋ mc;5d%ʴuMLb V6H ٬fٳ{~L!JS.Zi򧐲!$f ^~ЊAH0\*-h#ZhEh6^x/V5 hAD)[D`8(S> *L4ҕ>򤨅$ Z20:FQIαq )( a@/x +bM4c 1*)H!1e"c8[̢[,jcc-v+ɫSGSp/ y@e9呎ԷC01hQ 5!9)`83lеDC@q0X`9#`H8 Ny@-{6(TH5˰9*\e @WE,BaP SX)`E;V8T1d#iyJ A/wpǂra7JT RY1^ICFK 6M-&1(P#uLd$9i4!4#7XJV$[HeUEV_§M~W[db&cYxCܜ ^l>mL?\e/ߕH,cv  Kt [jwiba {ئYlv>=&Β7cfJvfwp.7m^ZA292Ԥ&K $֚+*@ ib૊luG'컑& b@Q"℈;a -&X i=RΧ32bآjo cEC7đ8amPyK3TZ刣.x Y˪ 酈k-G[(U »(U1n n' "54kxZxqR,vR"/:HgZ.( bȞ Og~H@8f8A@e# 7KF5r xҡq , n ᠱ`]ޅx6 aZXQCqa'jo_%0<]Ȥc y߮ a,qx aA^pH} g 5q7"183?X41 Y ËX54YpĘ]ጁ#Q#i3i[ 5Dm AlBؖcYຠ /)Bꍍ1ţ)D IB9<"HSA!5dp|dm҄W^tS̀ r!ԮSA.!UYhl[I02H 0\B.əCA i_r9IO򟍙I cBfd"`v [+8 ej"Y`ؖ4x<715H6Vjc 'eCA21Ԍ9LbÐ!fb#V( LtKZCv8xp̣B7QCas:`sD2I%[\tI Gl!=0(L'ވ$V h&=FMC8 RR@Au04̂,mE(8E9E-)".DZl bRJZl 2,d x D0  1,JK&iJ#3Rlk ͪ5RΪ5" 5;3tjK2r*"<[8 BZ'3mc ,{C+{jCz-{;)0\}NB,;%2K/X<[H@*,۱3 2(0TTDVMK|@Z2N=C/DEKhM)N^4 ,h+2ϡJKf9-.N/N)*ubYmun/4reTgD#`3--):5c:HHh)tG_6݂/?VVq4ti9$"W($@N橂34lpQ:-3A0ԏJtu1SdVf3j6䌰 - P3QbH05@Ɏx_O[ UJVp3X6[p kqA[2STC%eL^Q & QX!8dPhJe8<2$Ɣ1\t29*hʕYý3-mQ;q M8'0|7c^ҸS8mSϸ>C6LMՋ#.(,P@oA]xMDG8)1xѐN@'Rwp::R1 X/d58BH4V#*uHR^^#)WRE:~\*tF 3gCAE;/zh/ʵp0u4>:1H${Tbx,#~m-{ujBhh6.CuxvDWkDW94ACj;IC 7^n 8hۂA}vPwwPT^GqR13}GaI*w#\Ku_=uIͷ%Z=0SHQ~ϟX` 9`VQ(W=]8y-fJ$iD݅%wఒ,; MgAA:wA: *rI-Cj+L(sKR&M_!&b(bF/wu+ ) μe1eP~1PBI&Q0gBP;QhĔρ -CMTEӕG!TI)>TӁOA 5T/HRQMS9WMbWiu/dZiU_y-(>IVE`C gYiU#6eC[6#8q%sDumEаyy׎}X)>XYI6Ә)xI 9?nsIKIYe/ܗaymijqX]y!6rYYs Nin駝>Ajz^D z!#%YfIn'3nb^J{o0 +/< o|qX \)|r"T,,3L ]яY3d%T`-2H6x7u߈/> @W4cx[PW6c^aC ߤ GߔV|CQdsP e_?}Żǣ|_r!A NWM'P#(-S`C>R!51lRlTD # Ud5+gѪⴜ,8l[23W5 w ^"׽Ey^G%uD2&1^  21^c[00~(Zr2/Ne5VuE z#v J3e ʧI'p 5Yk Am!'B!LapG!<%ơShM* e,f29tE,NuZ1Kl8̼!=Iݬ3ӋlB3o1: (h'=oG`7ե51P96 b7sLH 󥏦DstQ/_J@SLGB,^1qR"UU ~W;Jy њVcmukpqCb~C@+^1щm⯊Ն(J 6pEmf[Y"5Fͮkj^zqnQ+0[D¤4\l3'%0"ς2,[,a-FSNWeb9Kf@!lB@p,au~!bx <4ߦP.Vp,'n;:3 'jO >{AkPTL,P"j;yԢqF\sB#1(,ґW**XVǬؓ@zڔ:i+JљUMG@$ym  n]*+6U10%,kRV59Nou' gȕ,W= |k_ 6VZ;,bACMf/6W\0Mݎ-dՖkQ̑i%Y\fV'\=bZn)K9]R̺.^]Yr̀׸K(tl01T!Av}pӿ#I6]+@(|H* S8ёtYaYt=b+uI5]ʊ Y{ zZ`hDʰUg=ʤ߻q1^ յ>\.ק!o5k XO}H^lc#yqW#, :XUܾ ʈ3-`xMlUbiURZ;XB} 573 wM0-l`}?ߕ]օ'\t )%7^ 7d%L5;cŒc.l·x,.VǺ(*`ڇ̨LjŌ.p0鼊^R,N^ P0 -.SP>) ̮~(lUH NWn6i X~n&M2+] ( P/4>q+fa&~+ ^\x lR&x ~F핞K! eaĭKoݼ/pĩq0ormK>6xp'E,0#9,l@ncc<0>P g{v 4}G^ANȖ!l瞌Gct#A }|O\a]%5%eR&&m 51 h>( N 0RV-Wd PAk Hf.0q\/ō+ϵp 8c?o/9F ,ӀXTohcFLG) iT ]є`qfnҁlQpL"4x}Qܰ,FB*I/xƏq8IR 19/@r`#3S!"ls"n%jvvd#G0~D9& €>*ʢ೧FΟ(Z |gI,d"G;!+<9<| TLAf?;r,J#!*$5tC|H$$Y DQE&YEt y'0 κ 2R)NUHW+.W`Ґ4W~m ]\-\rm@H& TMVmb:ÜSQ0CtbVMx+TdAzKKEvPAE%f#L0U#T&"J!Tg`3UQi %@"b!0B# B b5B!4k#ġrH 5a3ܨ ̂6-6*k( @3Sr(8a B|WgנT3B1H0g:Sl"vP$O+45N&"Pzl# QS5!&L Ds|qChā+=lgr}RpI0B/R4B'ȨJ8ti{ DC4OVrIp Xv vjQEk%Fcf< aj4mf RT|Gӎ)I*Q))IeؐgK+ TJ ^T, ^[2cf4%Odc|Og!Mx/!"scuqaAA&7dvqWwe!!Q' fywy/!zCewTea UoQ!y7}b1!y{R7/NՕ&jq! GYژYuoIM 'jP"6ovADTz- dA vWwM~L}7AD344Bqi;~#5΢cg3f7yJ® tj!<B#g'$lhYPhFh7D~6CN|DvE!ekYlctlAV ,m Y1GAϊR),M 6nͰUc9W0 Pawpw_J˲`fråKy,7LK`Хh!8@]+f7P0_*Q*~fAh^YG(Ҳ ڠ:ege9:|TU1 c}Sai6TU4A]j֗ *B! J$LB#2ll".D&W4fyzZŭ1+o7x@ R"~hf0`(>u FN!"x~Z=+"3(;["8@#@G P#4h(A<" 6J/"DZ86!9"tgp6Z!AcD+aB<]{FóCRV=8D!Q:!nhn0yf<9CL˔V$DD9֑!PvFț5Ymv `GO9TH)}oY ocE7 ryY o؀dt٘rkfRrEr)|2›-=ȍH f@78؅dk 2T9 ҙNah zt|g PA,^~ Gq.ilM>{y3EWһe> s2lw [A3FWom!GEyny K%fYWR7Z7^qϒdf&W~'K^,ۅƨsA&U3zasb]rn:y\h"Z_A#0{w _aʟU0UMb@W;|@WD ڢ,A!j N&l u}eF'=%(=sRa @Aa@[w`x3[b)1:1nҁ`+5'2Pm( l qeG BE2BCȢiE8!iD# mA (ІmmK fhbIK &2I i:b9!Ns:KOSX(.PӢZѪR˥X+8xCjPJ`K *V΀6,g5 2,XɊ$ f-V@$thtȖ -a! NhD$+a/{K_:0 ` fa4| lXL$@2@.dɎ͖Lf*, ΔSe%s4uĝ8<) 5(Ұ-O!I?'I(ILЄ:4lK [XD,(mLې6ha3rH ް$laes`"]Nw1{8b'c\x ocRB^TcR<ޘy1pgbyNqG{˫׾Yy"t𱐍lp ZAM44Z肂p# vCh@Bq`Ciwj"6'1j&9=dP!14u6% :~s ,Q6Q^!,XSf } Q!;{! rW`m&cnf XTv:;aM 7 VQq o=wQWpzp8C?aWXpXX!q8>w !'rdjsr*'A rZztbDMbtKf>tvCt\Ph`TwRW]U&P&o,~u`g(CGDbBv|dEz$ОY 8Sx "" YZ )Ax %؊ꊯJs\%ubrDB&܅'O'C v''paeWv|bgգRroGutwq) DXrG xNZ*`bFȐX'} ]x$>BZJAc1٦.Pdo Lr:' ?y&Pd""Pd~ZdPA."\`PQc~SM2f~Ui b9 0cƗ: 7B0ʪژ'Kxi97?yi-k6 *=Cx96@  0mfnjVɇԣJo!WV ؙmŝiWp9`>x?KP t !!`"8ERrZW"t\ETR%:+\>CTB7teDJd&i¢=;~BRKm'6:bYctF@jwEE_ Gw~DK*\OڤS)X[ʥBb`T7LRX[(-%{"1Pkꦌ`"3 IxvM"P۩gVkW gTf"C!20K*oѮƑkq S>6 S*a 7(Q+Ac=Ӫ7: ! npJQ𺅞pۛo{VSV 8X ɹY_A[sP8Z  p :D?CO J%a%Fk]FDxrY2e$Ubp#y 9Xµa_{(](Fr)x qWB:*MNzTJV;ypDb ejJ)bjJ1˸1駫D~.<ɔL`' %c 4Ms2&ɰkg21QHO0@>˷;̋I˂ yߑRH05z+j eQz =lWZy l@ Q=\s@qXԱp̰1q+‘e%L (|,"j@[l,r-B ]48Z}l[ID%Pm? ׁx \ޑxqq i)(2X0hBZ9rjC娶otp(Vbm<*Qm* !uul{\b_':ZsK?nȴDJ! "TLt1wə׹܄ʁpS-_ˌmi\B0hj潜mnيGtuWaa9~.۴,ݺ۔ЩtoQm}ݨ>pWgİ ўaRY M q*M߹P'̾"/1:| `Alҫs`& /d]Q%h ^TR^uɒStYfƉ)\2NeJJmwOz*"xD*㍲eGH6>]N]Kd<$d}#{Ez9&.gAɽ.? *3M3\2Rc2\2rjc<l>D?=٪ڪ*yoa |P*~X̭mMឨ  q; gංZ" DԥH=u&PB.O%en^b?^Yng0_)%?F+N)N:UmՋ+_~;NGւEL 0 bC%NPE5nh[VIHi #,1aYӦU9e̘0A cGIb`TSQ>UXn+$G,ieeiծeXTIOrٔ:/+›-.$H"aձi[V4B%jS*OoDfixݺ&رeφ-0mS"/f;p6ŊnRVsY2+SCM%u֫O߄z*r]GxDC9`?T B PDMT 3@8t;xQ6s=5UCSNဃ 808RUu6@USc:ruJ{V\cXb64\$Du6_ǙgM\fa$ 7u~Gdsu;^ȁ`WMd/]xI F(uT]YwisdIb?6Ӎ;ޅ\s{f {O@dN2f rgHY82Z`Ql6in'q;i\drJzl|I wQg"7z]nځjo~檭|p*%Ry,ȑl+.%XzRiE0ˋV6a$ښ 3,6A 5DKVqPKSwJsm8 vpZyLA/+)欏n{d3oɧNc<^=kq/=#@O*Db q g{P4#9jƉhhDኾ!lPGЎt{/<=sI0ґA0 D+IC ӜT>lRV'Iz0@aP,+T((EPr"6YRz21<1ST\U*Vhu-\jWx+\9XBC,k)[,,E@ŋ757юs̢7؆Αޤ9LXRQM.!١8geC/sAO|VW#qK6r rȡ!yς,Bg?!BqM#8lY؂%7!ZIP(a+Q(-M((h~6cfMaiSH Op` FMqbM;GfMpZJ#a0 вf8sёFPկFO-Ǒ ejg͜UwsM]IkNЦ1j6g ez\cc1i:љet3;,˳ ];}iCџY~~?ܮ'PnW4PzbKA PB$E%,a30HBHmf$YHC$'Q/&qIDȄnfE.Tũ.1Glئ8G+qch5C g-=r@0-g)P,Ft%Kj20 &| `@SjMRC#PK[h굴7O=Z*H RǸT4թvZf dLH FHQkH0JPaK ks a`ki^VɛK;W7$ m#! OW͑m {ySZ\O6hqÜzƺ*A] d e(&d[ :giZKk<`͟=_8tTO(f˞nm;G)>Qg*gZ톉>5=?I-0>0r҈O:&Wh|融 "xn6]m`M)¾S놷QF5hpjHjH%= q:GK_szљ!gLF_w0ш>ٱ v4G44 j$b==ڣOٓWi"$Ya;$1;BIBE4f@%ӱ"ۆ$%@dymp9) 4fXf%4k2S3$kj0;]8PqԳS#? e4)bB9c@e[,|JmHʏi0CBCЧXOPãYH5U%Us[@ĈU 1X, b r5 -X3l,46Dl 'x6OLB m6UtJ27XDL(Z,b`+  q8b7u˟ż8[$SgqThh|۠Ń;2N` ɞĒ9Z+zo[ 9qn1:_%!Cۄ;&p HϫvX*balØ mdB<mXcʆ+,,>gL akA0+*>{MDi-x?Ӱ30E#1Q@rlBJDR$<@:P&}ӃJ 4=؃aylEpD\22oI2Yb<Yrt1țwA^^9CЊ\C '"( ċ ҍp棞XG'M eDK$)D@)hO|6/ũ #hXE=u*[SEs3{ˆAhiAjFHbeaT IapCE\im(i aXF^4U{##3MP{{A=QS bJ̆w4M8ȄĩY*- T }A3;1V3(KWvd;YjeӊWk!ˁ ;W Y6V(=T:ǃXkRRspUЧTIڐeLKgY.}-b輾y<\MM?33 SM7xNN#)1>"$6Pd[S[{GaN,oF42g9DAo1YEP{gӵ%t-|\yQ*Ţtȥl%[P@32Ё Û^ٙiQxC@8PCRU_h_}_̀ 0_u_(0_" 1*UioPv-RR`98 ^|)Kdk 6m 8 Vfs# S~`@M &ShƤ$Sl$iybǼ@Y('x'Oq`11TU bm4\F^, "ƫ#{a "RZYViO1KxٻVg=? 3:V񘎬éXPHHsݻx=Tc(FFzhJJ^JݲTS W8мaJ}ed?^-lHe걐Ţ3L^=7N!l>hXfnH\jreY.;p>>,0[ ح>10)/qуP\xA([}hBGy[ k#ۼ(d@\Y)\p(܆N[ɝ\b92w)UO2AK2Чfхc|9%2xw93aZzQ$'n&o2#!ػ|qʧ$}b"D(EqX_u_~l-lþ_(;Ų `ҭl-CXXHPӘĿs 64ީPDD 2#@ES[H#2W47$0aQaq0(@V0hbp7qn"g %6Gpb(b*bTbO9`j 鎸3n .,HjV˺,p=c%S:VVb,4dO-JLVIgGFi OłׅReieE;VSeW\^qefc ``v#rfNeI.m%GkΏ)nSkHftfrY=}j! =<04Zg>+y,"> s+y.zBh0]vN3=xH C@0h@ %Q"^15iTia\j][eV@ $SU%g|'7q^iidm|ijpx.K3kK6Y6@Sjm\(d4.kk)W T&ѴN( }kk ml=l_1QXq l:lY*pR[L5^c ^8Ŋ_&h;uUT #07NlKYPU1XTVhH-ɠx΀&xǫ'Ԥn-`!oDoXUhVՉB9G 9d:pM`p:QsH :pgXJ|{?*W :Ŏz32qW] jMܗwp; XLdYm R O,rkvŤX/sK Rg6'!B%q6+!"*_55Xb, 2lH0F,ʹѣGqDԧ h)dI,&Mni%̘2_i&Μlvs'6A-J4NEy+)8?q9FӧAKhܱc,ٴi5}*NVDTe˫SpqM/`kҁm,Fq#Nō3".۰aU930um$ѧQ[]ag,6Xeht2wΏDmx-ѤM+/}t``G=sӮ.}v[A.*׳o [ȯo>_> Q2,t1*(5㈳ 7Aa,xᅰhˁj(omaAo*y0"/p#9#:F&7Kb-($M6iK+aAXi$cF4*L S&3.٠ wl{+`ʰ#+&+Ģ+o1ЖoKʨ. D˳iѦp3Ve}/5F Y7*xJKgsKs55b=8`mz ^/ݗM6f`N8t3C= sxSH~sY9^yB1$z.κ,]DAB9ԐH1GGsԇl{J*iAJTK'<[4ld=O> eTRm uTf%TsY\efCh,"hYg]eJsG\e8"]8 <.Ën,:PЅe W0Js@„E5KXH`60i prka :汎u괰pl` A p}#11@ HP*oOPC0D i;Nt!C Yr(5@0p<5(C# C"R*^$'HtYZO4ep$)JʘҶT/T6єHUØٸSP&O1\3OXT6(DE^xJ܂LdzBDN2UUdbEx3UD+^1VyР bPK06-Ӣ̲\8Ņ o4 2f;)B!}>C0#86f,%=Gܘ qc!1t<çelǼ̨CJ8ԛd*4yTBm~8c3Ҩ8^wU mZ׾W43vjKu[A?NU)߰*׶yPB\rlBB+1`CGγh,)D aH`uD !Cw;,/%cIKJO usWL'>pa{I^w}R?ݯ[ (_ h ./g@K|%,`9!QsI!vC03=·j.&hA1O rAcBe,(B5&$!e$kBx*  `7$"QrBARUҕDzI5H2))a &1Y=3R-A#Z|5E3:P|< iOlbҖ47q{x21 ox@JVT+fZm Vժf]\wb\S֯c*a`IXM.~N !6m;{3+=֪ywҝ~py{k7 ~p-;+ڒ3-<"Bj0fUB -CF9mHr7ܑ7yk^rSޤ%MLx+ wC,3 y^{|%.EӠu;xV/}5!"rᵳx|;d"6HP;(n1\6~^dF 82@xATrdXBPS!!T=2꽬zXŘ\'IJU f$!n޽>}>> MK͈n5FSߚD*MS)Ә־OMJYuX3pFC\mkS:/VK `m  A!+\VB|۹ Y֜ۼ. ~M3Л bM  BHA`V(!B@DtIlE8Tmݙ0JrTONN  ywMQO! {Z)h!yA__0]'j5܇ zޑX ^}d}@ *p/]RXP mޒqޘ R@}Ҏ`^ޒ 1ҕ 1!1'_!=~ڟ_0JI_$5d5qCߦuڧ_M#vƩ1&GZZZrdZLJBJK', L$![L9dF+OB+z`E9C^ R`1T+- v  1\HA ku봎 o(BC,V*%q!`F!NDuaDrxFXNځY"g__8h]1b#Cj%``k'ƦqAKqb* da+] G,~`e.ȍ/6g] Uт3,Ђw>#EYuHd6rt#181ɘI(^*Pɕ@ Ax=="_>>"_?N@>>_5I?B(5JGVZqv߆n_CbhĊ&xHJd_#EFjfhDê񟌢K$iM&̳IYO.j+|%[3T[ B張J+ D d%MWhE+@qV'C[BFAA)ڥC)^%DC,&\uYcbvyyW`]fffv&}Ahi&j-B E|݁$k&FfC+]p|D)rB sFsB'XV'1}ޅw"wz#$A]g({k8-~:㕸> Y߁_RT(hZ$"@dI,`B_(R_j(b$EZ&hҚd>,IdξdmMd0>)+Cz`J)`riSjd~)z \imzzD%t!Aݡ* .*a&\vmxU*XԐMxuj~*g2]PfF? " Wj/.l"BFO.6Di靰zqDZvA -B>QkX+X'.-x++x>Y*@y^H7&A*M{+|gzB # &l򡟠 =.4Af,d1FEZZ{MZ'DhɎEmF(!R)l K -;ph`M19Pv QRmg Zyqma׾ آar.WN l2AGAAGEsJŰ d +˸hI䰽L.VLUq^ *qNm՚ИQ:qB f)۽m 1 _eue|e)Bi88D x%X{"t\\ e.N mqC\1ESUĠC4 Kra8(:rd35Rr}88CW:mC*.C=45;#(NM0c?tta@b&B?l`2\@F,-IE Ad4q$e4*I`b$+ЬJGiEh)ZH> h)tM O4M>7Q2TOBNXRۭ85b^uM\cXh ]m}â|(/Z8AV%qjm]s!A)` @Dv.b3\`8cD6S`ZthaԐb,~O%S.[j/3E"j_7-LȐnorpcD9q088TwKM܂|M97H"L4Fp7wwwZC9l|8u@;|64D|@7_Y7z,_gp~X 830G`g1`hc:fZCx4.?JGflB`FUPCϾ5UƒB45) ɏdBd̂?H++Bt [=lʚʠ hd(KƠ+L:Q۴AHzn>9*[mX**Df^E͚s6tЙ+7їBb9vLG3 /LMVwҍk29s(9;pj@iqsqMp 6R]tb)RBk&Y,Pʆ{/)Xpྖr\h}`+'.UomKf͛9w֬thѣI&k286YAҰdwqxMn^kgcq;v\ӥ'~u]I9 {Ppq Նկ~IK!YCKG!`\PA^|B{1`xrKrXM̶;vށ̚9'-hQE $ " ?fI\R.8(4!MP0/,R-,1 2O$|S71Hv0RYeYr:Zl%bj1/AmeЂ^Y%&"z~HbOG[Os"Ԉ0]V{t('H3\GMż\Q`mlXbZFyiAV`b[E,yf&$mbhb2qz}1wsb% Mh\o$nvz1cYax fz槕'fRjXdG:8A "k0 #d‹k/zKy#ĔcGZB-\"1PqdA'A!JH 3. -q8SzK8+dWJɢ+kT˶0Eb EdQLoSPl-e~sU6gtZ3w-w TVuQ d[DyЗRWu7z>ÚK>,Vo|aZ /<&x *d^DXZ cⲡ%E]H B>f VJLA<(xx"R0F\!htnPE<R(.eF(鐱 $!b!hJ넆ОAi a풥::! .$N$b!%C% 4oPP<2XoqX2=(K*1TB/:b3?s@Џo֢g.bP"H08)-(C m`f.:5207`Đ,9Cda yv:>n}$ƃ>%ȣ|F#rNJIk떁 H$g2g@< TjC "$kj\N#5LnYMA ΤX4WgjfZXa&-.''clT̵&SlHΒ<)/*Qnr@+dT rUQ,(V--QO(>gK <6W!33'>@t6=ȃ@|CPC\w!C$6CFw  / n@DhE`.`{3gm"xGKnMHQ!`KPM܄c x."Ԥ~$'D. C `O KmrԁxlR!'L_SƩV@۔vWxAMO% U RAc1d!PU Q]X1̃M!ZaX EP4^E %,#]`R )(FCAU̓5ҋcxVN.X.vU(J$5dkXnfZO$ZǞ$ffUڮlTρem֕ oz N)̓2oq#+ TªoĒ!,%-a" '4k.]o^/1O6eavee Se!n!Ĺ HVAYf;f'-3 jzbˏoo~Z º־"lv6ph1Ԡbm0SnAcx88ЀTZ`5:}p۠`ZW Rqc9RН-Zik?i:3tPoġ,*Ý&siWh zyfvdz!qjˢ:7Bx/AB  ma+#Va3w b` nw{g@ /:F}0d}yzf[}M}d4ddD7!S~@Or-l1M%Eغw DV8 r8^B ΁uL@~%|W8a6q`fŅ8ui>%j[)'!ͺ8eJ82kf,:`kOyÉY_"S6ّB(tyaqD55!:⪸t![:*C ^wcA*+OǿP#ϞFfbaǛ^','=8aVg-L.A3re b!y002ymX$A]^h~bCr!@Zgi5kǢ/5,E8ЖcIM991Xz68H .A8 sps]s6Bjc6@݋zl?]<ރCתɇlhCad===7.a9\'%h^ xxCf?F\&i3H7{oW{3  P)ïӷ7JXBf|ÄKbKP=4w[SI]I؀XeAþK'ۚFȅa[I< p@28tf^" ![MؽY:$)]@ % Te;` jLS5p&+b>fTHg\0[.l\ƈP? RX5Ρ@^|aN@AY9g릡jF Ӫư&RgǰߟaʿfLO!!Kh&bq(oVq*ODt)opbsTTeܻteeU Qt*cƄbLb7EVZվ 6QS]l&Ly3Є>Z#ݹlp25ԩ&\XR8"ޚ6ر 5+-h6ܹtʝbW޽.@Ec}_S;~ 9X*[9sf-Zp9ѤK> >Z^ٴka;76m<87'r:0܎tw[~=aܻ{lѢD˛?<߇|Ξ{ѣrEGv!k .`>h%L""2Gqqv}b݇,dC X5cRL^-eU6R c>dBfAFdJ.YdN`bK83MZneTiK+T `f*jfnʛmJ*uI(L:CB0DH(JrL6H$q(Q$:)H(I+ +*b)RjM k>ALl+z2 l;1Ĵb L0@, mN&BLn2 kE m*knnb + *BpI)\)B0*\0 41| r",2QҐ rǯ0.L'QyP6ߌ3Q- =ó+E4QA9A1D? uQ;LSAktcTVU~Q.@9FXYcq[p5]r3 '@MY$w1WY?hM~Z -mlqm qaAǜC7uݱ}L{y|'s~{=ta.`o/# z(b!B>Z"fco?oA%Rٟ?$'! h ,uiK@ɄTrr+*8'; @ G6@L! zZ!$hH 3u[SԨL .+SZ!XEKVLa lXT"\u9 jQ2ŽΘ/SXkjrmԄn/;kJX/|+ {bl2vfjk$/Yqdd +v f4t*PT<{ER&o U\mi/+ ̪j,捸浯mT)7m0~`Ml ?0P )qkgc }&4=UÚKL5}@Hӹ61]cЄNz C쀝xI^.z߱GxiGoGTgy$ݏ:A^=o"#Uf ;ugdҾ(.|BT 5HGkjD$  ~LK_*E ci Ԋ bMSt𤸢p*<&\W\jRuTs Tj`㨪$pM8"cR]zEz Yl7wYc,3r[iEqQ]z[!U-B:c,qSLIF RUe+?ZqmgPRw5L0(slMT&qNzJ7bmޗ'XL !߱1|K:tt=`{F5SP?PzN6pnPPtq0T #GE4hrQ.+ Oc=(IS* 3g9`=^t)"٤h˖X`0n2jԉB;RS#&iGRj$ `ի|^|@nQa%F =Mm哟t¸Ps]ne 6j N"*؄J2l`5'JQ1^. Bk-/ދՄ-d/mElWv" Y/arQr'e'E?y+o Fx5-  ^S#Ys1baw#mM MS7QpPfh>q`r7)2r rrrrPā:3xqsvtB7t#HuAu:c:tPv}C>IȆ dgvq(gv~`pv5{C#efww{w#A$%@ x@yA_z`5h٢A+J`E`8ˆFW( {{*UD"XFXGj[ma%|,rj|kGΧ-flf}x}r}e[+'~}0Z[܆FD ΰ12ٲ213'8^]^ȏ؀T Y#1`8l3ps#_j0#8 PPNv8S.qVO4=Pr'r8&1W%V:ACd#Q`<ÄM#R8цQ)m(vA!2YZvv`S^_ttwC}pPps9FW>B b~g@jhm)@7Va(UhVV 6ysuz)-WzeH  7)͒piu*P.Q1+@@ kH([Fև+`mE} Gyɝ}C~B\IhrJ3 n%I(## ǀ9"  ߠ% 9  ye#597P7~M' ~`yq @ P %a AO4 $j`Om& 191#J HZ@s: ; .qI :cJp`S #CХqmKLda Xi!pYmv]\M1? _f֐D P~& @ %ghgDs{URq & mB &X%@VK×} D @.TV (H1BjI!ٰ,@π+---/*^\ l|tSN=YTPBeEh7vȝc N)R]ڹT]F}uժǞ;v`Agʲekl|}m\s*`cFXaPIFZrï:ZhҡG-Mc̝6샤ig ML7Lj>cHmݫuc+W.۵ӫOYtqʯI\eԥ/VܲjىzejLXkd &k蠧&X5V > ( /M4>$#hX0؄@MXHMljgG!1CAH$dI't|TQK/3L1T2Q13M5,7T\N;\O?4PA4 X2v *"yʗvyM=C-$bPNPcQG%TR8UWeUW_5VYWmV[MV\O8!ALT?#=qR9ۆN"ZiuAZZm][ob@K&AE0q"^,آa#z_~_RwՃ bb ;̓8h#!/Vq#Hy;b:aVanjd;B9ϙ%^d^Z[٥^s&cY(yg4sl(>l ^2e'u*K.oZcǤʚokG괦 <-_+_LF\NGt!z"'u)L,5'wق MfS(k)EyY&*!;Hg: o= /;;ۑ> /*& =(CR_StS4!BbbGl`rtz J2phP Q*H2d= !-IIPb *JW4&&6щdB )R1NmrS3'.֩c8> QflJ̘HpRTS#QY!U<5+BUUpHUW]( c" RPKDgӂ-RrSPo\8WܫXDu/^j-I85LbK #753a>2G c|XSb:DtPIP26vEˬi1Tb`ΑaXA sJhGSZ4PhQ96=$)yȃ.QM#b#ښQh;&7+sO.K({Qpf tcV%*q9*`Ht;S uQ]1v_j&>qLxq1 s,yMge` {r<݈1rg`@w1m–Ӕ& ƌ $R>pBR01M }m8Qp0՘m6L"E/Qb8(Ӊn5ґ8^ Et)4 'bOo|t&)֗M}rF~'g|p]l$*@>PN{^qG $ 5]$Vѐ.d"yWASRC5L8cPC!j01ph@KZ'NSFK+KtMB]ne]V'cOҋ^_JcB3&k:)lRq(dt^';9w1kph ojD;y3Ti襏&i Zk :І#ɃE1Q<5"!IHFrfa$[ņ8o. WrQb$iMwJsB$,v9qrb&5.FSAn0bHdbg;l" $0 *e*c%lbw)ka)[=yw,`Y5c&H=1O6ҷ(੎C?SBe3 -8nks2<`+! aB=+4 49rSlhC)Q7!$5Qh铣t>DwwNQ{s $½L{;x)bp%?(4^ 8Ԭэq EbD-F6Pa 0d{ķoTWUo#1ǎOxPgֶ|lU \J^i/Wb;V-O<}K%efò Q,CrHl!?@ Cs'i |@x L3kCۆ[( n=EqrAUV[5;Sa&\+)]8p?Acӿb knؿlX6p|xp`D g(m. LC< -)71us|w{sHY*>4׉D7˰ Kcpظ*Draȋ.je(먎&'y*cBj<ˆ$s-h:c: hBp,b躯ck9AɆTq ;;񺻻*"#"l"C4qcsɃȈC9 Eqq: kX*0Oɀ(P.0P#ܣɚ> >(Z_0?qKb 2s$ܖ꓾mq%>`2Y2nIqho%-lxQa(6kPiK?E9=h^@w95hhAӘ@ Ȇi@`xl(i@}zM#(9LК bKY[؃ms퓁$;e]kVW5n&D)8>VqWzmjBWzLwU_W%_Wh>M^ob^}-8ދɅ=hhz6ЃGk\;u_=Gv]ԔWbMňP8x֏N__<f-=vˆ` T2}.iC jVX1 &DE> *2[ +vͲ6yJV'Qnݦtv.ݺs)o"yk&MXKx1cŭLI亚:|&Ν;w -z4ҡNz5֮9*קQᾍ{7޾.\Əl9ΩQs֯cϮ};޹W/>.s璈2G{s؈/?< r/ߚ9x ",X, &W_:dAJHbСPb_h+(QP%ƀFL$ ..L1E)d KƀX@SBEV^Znѥ]#Yg af䂦si#tIGx'| (Q{q%eh SH"Zrک$|Ƒq8ᇭ⚫+p_y2BF˅VL!r-B,[+K*~kDB-!Dt\0F$tR+L'\941KaJ*%! GG"1I*L9lMaM93VL^sX{y(q*q\e)746EVJ+45cؚ8}gڪƶmovlw(2p{7p^+^3!'^<z1' ݈JGh ;E,2`ѡ>#BN;S{xr8 !33/338Q 25̗ 8ȋ1"8%<Ơ30\81PٿVja -O8QncwhS8Y9A&JL:qLN ґ6B4t*>BwF"XxY H@C%ˆ^4T)QaP1n=VqV53ΪWJE,[ KXpñp2q 99ѬeYCw\*eH/X S;>> QnH>f\U,.肄юA.Z%+宅!х{W,%$a҄5 ɆV2Ic.&CbL2qlhS\ 030+;ڹ0 Sh [oIR\׊1ISR쒤JI K2CXqZ5O*݂h!ŅgYk qcY]VA.adWB`S7ZLs2/[+ &BLqS&a%OAdBɛ`4)ƒcJy&Fʖ2p,YƢ)g{a2*Iϴp٧Әl ݅ _\ .)^1H41[aFF3MG6rc 1RQ5a ]jjS"2MMmj8$guNV[ӃzpdGx9G!1>eC<#vxH?HZMpPSCf-+Y;ԂRi%X ֶʏj4Z׼^yQf`3F!GiƏ`RI,d+1 NZ8iG';A12LLS.&lCZCy aZMy R/M=>uC<ܡX8Hh]6KB;c<do<9j) o'p`LNa`."a~%̓ \\K- ?]Œ[/|AXH| e"gÕ;WdIV1ӅIv0 ͊zͩA0AdE6;8hdqdd煞I}r֋z=N+ż$MҘ-$OΑNEeD%B@)%8e=%)LjFR*+6}Hz i KRdZ*87}~$z-dƤJiX@ª˭*jFܪ1t9B0Q&'YGKG(W߰nGD+Y` 1DTThPW1g,8_:pY -d>:fn½11EVp'ȓ)x2`eC_TʂC)‹f2F+0ZզaFŪn]HH1oT'rʚ7T3,̒4 }|g0x0Y4d@#wabB0m,@ާ~N*.%b%$vTO$⃲mHI0,AH%Όuz\ 834'VIfC5H6/887G"BE33C3~.!yBE/NB욇3]B x:W /82Y6ʊFoY^/WA|N4@ PG˲Ȃ>.HsEF4B9/ A4-čd)[Dx08Cp.#_g'uSp[G %Kp ӌ86dù,E*BUW9HdQqM?nN]LSg~s{]hB{Sm~FnqhM2+tdžJr);tG SZL*X{l $x'>!xxZxۯ%,'et Ǹ*w'R Cp-~ \C[-E Cj!=d@s85Smnn8p38WcËWCsMsYȳ34X%0T,хiܵ<œkA/i4y}Øʥl^JqCH+ :IJo>|K+ѭt68<P`[6Jy05d.^W4|K 5EA|=H^^Ë+z]DK0-``}Ee]+[]GYG48 3Ԅ0D*XaC-U0VXLjs'X6+ļkYrgh6E'4&1L1>fMilEmc*b<o1jppƦq{ Fnr,q87rBMuZu6!Vt7Tx~8hH2Ra6@yyGxƷgz cx8l[f@a-- "]$Txe݂/p" !B!i #zeU^V׸5ylus5$e>78-IOn#neCDNm,H2UtVת]y9ylU%@c >7l-Wyqi09<ӣ##HW!DҾ>ެ44d@*KJ*Ѳ5@\lc$D%aÄjd6Dr<,W.kbFsRIQ);pP`~4s8nN%LP|:hP!BTCԸi= uk׮Ax*$*FˎUGpI&!iPf65evU56n]ށ n 4b$+s6DmDshPYlQmĄI&nm۞ݼ{3!6RyJ ϐz,J/*or+{S'Xx~Tʎ邤͓]m Zqي g+bĖO 0VX)Ee뤻N P ! P0P 90NPI\9 QIQYlaQEWqqQGgqU!,"U9R%l';=c]NJB(*oԁs#x4 F sAuI D3b 45LLLE܅v|FK1TSL3 *qT)S3XhN} d}TT@EIc4xCYf)cMTGҲ1vYζIY:6ۉFTֺFne5r%v ]Mx ]6%oցq}D d8ڐ^p^6 bh^&=SD.b,ϑaIC^|d7'BXl]CwYӛ7=S=MAaNzqD Dl)5LG@M?.NmŎƏ2.c؅L31{nJl+ i I~f%xZ)q(ž3N癟8)CVυbRYJK$TGslΠ.Ck. =Ҝ{(';JcMQ!mR{Ŗ_K-٘lC, cYޠTBw( w6ࡩ1*cULX7إ9\0(.0/qxP:Ă4pbE4@ ͰBnx"#"lPQh(ED$=(ITRT#][|#mJT0uR<5ʑư(=Qj8 HAS2!Y+EfV*î&I,oN5 Z'A-n4)5hteGQ-` 4̐\A C1Gb`hTK^"$3_Fsdm%Gf7y3=,y؃9yNuSgx#4AS=9O`1f=6 nzsC5#ٴ(E:2 5D! P7+NRΡT :ǺA)K:fuC)W` <.MPp`wMuS{wBqABH6p)M4Є%7a&B>56Yjm͕}űρ(9}+rX;[5E})BXޕ e7!1 B-`)XJCkQ q2q[%QmqqI\4n+F.7VT"PKژ]nnI`1 KHWS HD}ؕ|EI7@:A&@^PŪ(*`r n@K-L+-(pe0 m q3%f =\4po\Ntl;NxEg>&nc,PNjSCܾ7d,Dh|\]HG)<*ms>&`-na Y:EV@)XJX }nH]K*nsNp VJI[y\2]" \Sܕ+eq%ԩ` pZZ,(V5l8'4-zERZ'| 6EݯRD,f]21.!Txܭxq$ ʻG? sd wSEdpe^Ih@)]Ha.i( fp+G!1y &t L6"ڐe)X4K6Gpܤcs긜;9w&d '"@(_wF@ThC2(Do׳9f5ta ^B5&esIy 'Eo ?)3}Q/􈶊hGebq^}|Oۜ5flXjSvִk_E|:U탴XbOؐ~q}d'وm)=Uz{ t8ng٭݂ (k@ᴋ.&0$D"N @LH.VbW n)L࿠ ``Yrafϕ~ )褐4l<,dΙJFfd® ojxF؎ P.mjx0JԠGJ(R4O|'>R!Fo(TK1s(+-jtm*Ԝ* 86oZO 8finA ׺îoͱﲖ PmJZ!ڑ %>$D#9?+@?rBrFR $K(лT2Bde& 84'Yh%Hxia(rEKpE`@Ĥ)2Fm *~+1L+)r FHdzbʐr`J .㲞KΞTN2 0m 03 A l!1#o#)SbÁ6rz7Ri9SK:QBWcٸX5P tH˳%P^@p@w XKSOܚۖFNyzdzKH0{%>ʗP@*N *p]|d ƋllR{M0~EE`~%ME< w`k7tHga{F[A` nD*xZA` |̠SaNC>%@6ZB >X*$A&>^G*%|袄Z6 A:8ρd #nl"%a !lp b ԛ hVE0md&1B[kf>4"D$!1NWx * `}B "#d! bʥ`2KO($sOonAHDY#j6Rm1aYdS15us7Ѫ6灀qg7yjEEw8;d(&IJT7# 籰AWQwMAu9|xux3$ZZA^ASd[ނ { 2(#1pФKX2F2(k 5P 5P5] I^+@V!U7RTTAPI{ ]O`*40}>' dRI b2.2"Nb t*yG.JR¶*vc[ՍN@ 2)san )b *#d~ YAʳH@{d`P"NnʶJZ &"xjS|[oBs~{!&wCԙ'T%'%`yb+##9 d!s!w42;>(,CS+@)2xB#4ywy 1`10b2G4 xzĪ4^q[#< ncRrKHi!5O l^4 t'RB# K3쵣=hك|f: ^v&< qu7ņE+affprDf!Q9ĈCH? \mȗWz p#rzK0K̂/(.a#i4 KxBB+} <]ߢ-:D5MZUDa0e@IVXJC(}A`{ "] f HaIc0", MÈ'2x;pgݹlSEȥkܹ11rԉ#XhJT9xމ#疦eL`ĆIta|cJFG3!$/6a#NPCa$$8 E<%7(M$d46a`ĥ_|NLўK+ iׅMLQ~x1L%(|(Ruȴ jY6鋋aDb5%q馛RhcB& &)ꛛh੍J̭.#,CL7~պ 3mÍܲ\۰ ༂+_ʵb(f *+~J3Τ뮻ͼB;*ઢ○,l0& 8P1aP`Ɗ#41$SK>Xa%7(y:WZ]Sc~ *?i 8ABNr0I5'|( Гp +MXx(I8$c FCm`hI&5MVd&fRhzB.V( Z_r3^&0AMk\b* O/i=5ґsGL UeU&0sbա#G#Ԕ.YTFLMUDVp+fą.]U8+XAMhZ-T|^bwl+ vWEzaDO@SFmLD%!R´hj/ -D7:3U@=iiF8jYּFS=lc8[yGKP@& YOV8H*Dŀ# ĺpXp&ua1n'{k P3E2Qn׫h Dx4`d';DF0(McĀ7qD# cJx$%$Ԍ#y< TPoʣ|*@:&h!Ecb$R$' 3Ơ$YJ%z".Ob)Gida M1I)jijlˏ'b '*Mz]*E+e9_zի%<4f\b'hq4^wZ̴=ٰ~z @/&2RC젛HGf*hԴ|Y*4^Z-)@QL$X3|XPS|NYM0b7E-lbQޠYELĻZO0t#F|2PRָu'YG"; %|}xV|İ>\Z ,ȼB q`Yy `a) PK1MrM8qu$|pDO>Dw N:K}"4H)M̧+͌KӘͬȤqIM",b P ,h+ձ 6hw~ hb`hĴ(i B ti&Ni O₟i&0j!1&P!12 Hq+kH343&k23l.#4dD2"4 F *p mV51@m0$:mrmR 'SxX@ c0dn~# V&0 AF`S zho&o&`0wf0 UF8. ;ϰ w919~8:vU +!1@Cq~1 x6 rQXr'<*GG3]z٠ب=AsEt?9>>ՑtK׎SSR7Tw[ue@GQ Ր a@G~\jv5]\a yzx7^{qax$K` x%|%9CDD2DyymI0ET4n \4b g $ד-&7I$BD%f{$cG% ~Fʗ rH֗HQI]dTJ )KdK6KKyT_I B bLy+zrL p"v!Nvi/O*iӂ0I0g : P2(X6$s-1I2mX"0VVPe#: 2 aKKu#SgivmS66Z!a4CF&y# qCvC$%u#B6'  0A9@Ca<+b9x9Q'J 9@;zbucXCq:X(9#Ŝ}!n).2qv \jA _Awiwwwu)~zA$ix` >'b ;:C%g,R{<" T`zA#z$aM@G DA(KYܑ0dfR_b + L`g'Bh' ( *Jx% {cj)xR0w٠" I`%bp-ҙ" i!&+ b<Ҁ.& ):N$i (xO ӛ090-%2I0Kf1 FX2,V3 QFxkHQP(Vض.R:B V$:m/ QQ3SSgSm~Pk6 5CFg#&mOQ`TP30:b`3 U@&@_{@7<~G"``A<:k 9sEWIJ/iӛ<mp~%G]jbU{Ѐӛq<Р5sGA_{{:C~auzY[כ d< Y{@\vHaV6 !Dzv, ^{  I!)9' *A *q_OҿdZ4a| T|#ۀa)5{iAKA I_\.-KPd I  {:<|_|9 ~z}%vV[^ϐJJX* bKL9ɚױe|YIqyp8 L;+=. i).DiH0O Լ|؜,>x9Q5cT[PXv k43+Ɔ넵1ύ6~\8V\ЃP];ѡk}ѭ+ppd"W&-:ћW!:s_a1]r/]r}pp<>ӵAL7~ZDjH,1lNu|`1KehϷ'k45#'~n-6~n#2O%13>6~h-Y .>9kNPtϬO 3OOܝޜ|kL(P@`A .dx|AS*l4G~ 9$ɐ_NL &NLq,9uӏ( @$Z( &eeS&N5*U"Ldz 'Ď%Yi՞ElΥ[w.x݋E[UaćuΖ2p$Or̙5o珁 9:ѩQVڵYϦ]6cYIw2 Sܸq.\,g|91rM>K ٗWwݡ'_~|( a$`l!_1' 4@HhA#&*l" 1B5 5 &,|Q09LM6 WjF_ %Mlo@0A\@oC2  Ahl[ Gь.j]ԠȆaS-l J%u' vL)UWKֻ[J8kǾ5Z7hw7 LAzs17*7Y&k*Ĭ!aa$9CIh`&j#Q :k%@|W0[ʥa7N?:*,3~s 4>2KH *73=3*ghTX T)H8IXB s8 sȆT\,F d2Y`t *h̆ɀ5ɀ8 ٠BY8A @ @@j6~S1Ƣ Y肨Y`IA#(Tl#,HgPЏ&tpL$1,)7155 $0TP1MYT'J{ԸlCM<T~cdȉ͆c&HM̅|ӭ[IQNҭF[R`Ɓ"ynG/>hfHp-qP>mxc884K`?hnMޠBtˏVožThK5` Y̕L56*P@P@<#I7LwsQ`غ9I)$M,*#px1XMfEO9IS/ܛ,¾lD !ك;YsVB07U}mώCl}̄ӹY@}T,gpʆl|?`lx-I-BZM`o0yCЧ%u.ۄ]^9FL<G[:TX-V&[%'W6pFj{Fܕ/LҺcRpR'+]g `!)oƓE`lPKG5] ?XS1SR˼^ʫNC<|Ā<]P^( (dM<G%*HI=J5 lhM%HpU{)01{0mA? VҌlt\-pJQ;@7e`tJ|*5Q#@5*mD=o G=wpWa[stM5MX \ YPz傓l.;}+WfT;ɣʼE@J}bX~ Bz#'X͢қ/NY8MTS5NMNSZ1b[L1pl ڦWh9bx#`8HC} rEΆIբRCбU0)KժBPխDtJ:KC䢮C<Dmfm%:WTfUZQVpVhDFMkm+^iЕzg;]; S]j/+G`[[#5a22yོ ϐڟhIʋ*^*ےn*dbMiٛ>4ߙ6 |?"n*xi_^Ƚ!TC 2`s7Rl('(hxl[>ȶ]~.7obAD[DNy ]f -QgjN­/n.q*|q.r;sFu'%w~az%Rm/XfZq ʅY^r&o1{A͆Ol?@r}|8*$I gp8ɝ6% T@Ms>7?I(v)[j57t:T  ,淶Pb\sp4BaLk2T>Jup8P$ha2Wpmlp*y#X4u>~ ubp8$$8m=:Bbb141mQMRy'Psym2w$AlMX{2>Zqm8LoqXtՂFxM-)N09j.[\7&Д/OGUS : ppiv\u*qW C*sq{fqjeI@aHF=1ikȆڐ޵/( >@'|`2h1J([J/G-WǧC|!kY~g sb[FM5 (8 =_j:O5*$< φA`PB0.HK63 4k̅GFl؂S5-P@-`*k@ 78u8 Be$lКsK jdxnـyO1\Tʋ.\<˚6mI'РBb(RjD" ,gΐQj*BB bk6r爉1RfӦc'z,]$';3nl7&a+HŬ[˷"7)dLr<z.\6O6mT~%,Zq/v6QRiy6͟1arT7ME wj -K:m8o Ll jB 6 j pʂX!vu#x")"- 18#2r#9꘣+쨣 9d=+G*i*L#>޸dݴs7܌MD9pfSM7[&p7mCLy'}'p"~"p(@ z[jr%8M,c|1^z*´*W\1E L0P {Ä\$:,k+ک8H kZK.eM6e71!us'bHKDA\[AvSAZD/DlEi~iN: F/A/ +\5757W!B/+;q, !bb XEb%lនFKE[ܕ XhKEX05G䌦QK=ԟơFͩZƨ 5,7@gC~|BENK̒ \G45^f+cxo6\SL2)Q;RWuF}F*HuȤW^m%U%o>9W6 8ـyN+bܕ^:;g8>ӄ%eI<.;)X57L+7FzѴ2~jrɆ*`gIm*xS|lg>_6xq#KjÄt7xTfA TBMp"8HJ 5rHD:Q\pD5!Q!QG;b'IE,b p)@alI-f:StQ1xC#d%xyz#(G9 N*,g,> `S~XHU\@) @u( H"WhƣjsN:eeNNȂ*= Jc-mevҴ8[HڥbVW6%/o,"[8F^na`c1f"OMS 2df/\9;c1`¶"o͞`WoZ8$lAZoRA$aHÍ(J6MHl0<6ZOj0k"AZNi19oFXB e(1DZ$  A4.x{(7#$qNz㻣9L}_旾/̧Dɠ#5d! ]I !PV$@IKV@]TW.q%Fֱ4ibUr q&Y,X1s|cS> \Dv 0e|*~h0D\nxhF?zT f6̜5SjU1}3懜aLbo p*i/{߈\Cq }Hp`ɤhZh0[V+KӼ69kn,bոia'?1ғcyYN:]˹z,*?Y  p8#\:&8dF;3.w4/ldQ:=žg](>I,*yIsOW0_Jo lC/Ϸ'mmUժf^cT7zur xbM+V~!tv"Pwmn?; }7?QuǝrpI)kyD9ġ㿢|{4">88  %%`UT ǁA h$Y =m- ܰ@ Ε  ֠ Z`  !  @,,!e ԓB!lA ;?}JUhΝY#]2HAٙ]DFd -]FʘP@G HȌ$ِ a @dK^!A>je Bԃ2%a b iR)N8neWOԙXTd4QDX%F\('^*'b'xB_J 濡 y#!"AQ&u)UuiRz<[t)Ltub&3ہ&f6kffl)Q &*vb&ercs\ȀUA`gnUj*{"yd|'gIKhj$B E)tVBVhIJBTNJ(p^%J+J&XWVP8,bW]nލ^Z\7P]i&޻uD`*H ~,Gricezʊ)1 cxp= )l+B憐[6⩾¾ g(-*c@}WImr.g"sƀ huhm`g٢-Xܦ*`'K{"H6C P°d.NY!d!+*^F>b.fX+bFɂ8+S++.kHZ~,J ,Zb§O]ҥgjmDC"!Bm&g%2)o0A_j/"~lbd)e)ɂdd4g_* ƯƩϒfP.py#k2m:m4nI7XDlp6&fgjf5\ yd ̰ P*]JdC LBi5L+D,dȀg}q+ H 8QيA9֘d1q@Cx1gCqDKf|opa)x038CK;fRf8b&.iQuiw pf& .HPmLMkrH NpN|yD@7C6L9mR/3/qCIN`,Ru;jvȌ0X4 PC7G4̇k5IZ<@ Xƨ0BXXd?hB:xq:G xDz6TeVc{Dv6 $ֽT@7ҼHS?8 S6Hu6˜A?]ԀE M`D5Ԁ;LvYN}AMJ2sMI6MJNNd/!G|H@ D0PN+]<ù6G īmӹӶʫ3}C*G [߂-8w@ DYXR7TbB]2?|;_U9a^uFgEJ_~nd>OfMPmnElFVm0LqWF({ +D!F{6`) t;C:C;XTpo/qLFPo拾ZUGZ&Eț{>[ēviLgyq#t *GtD<IYD|CN)E,MlF5lC? W'' p.?Q@# #1hpQ> s(9$Va4a NdH#?a>HD刡,reCp1WZ3wNrGPFq ܹ?_e\7v;ajjmDON=W#|=p5kX\gݹlWtஞcUWN/q|߇ 7[ +4P1x! $ - zCЫEMzM|x*(,pzA ΑƚmRCv{'x',)PyB șJ钔2Ii)GM832%06SjMqV&K&sMPyB uQW --mK5<-n؋%I?@UmKSc?,VZ7"n DN^aQM@UXM6Ye;jP Npr=7Q]uUyx块^UV|7z`}" (aqMa.`l *@(H>)H2̣7? h?Tx㠚ms& #frqdcZ9&*$萔ޒu9:kp† Ɗ:ϫ>`sJgc2)5C*-~D$R,*4)"Fl &0XCgŶhckM9 :ޢ|x5w9͏ێy\c \ ) +|gnm!|0)jF#EL2F E{DEWt*H)``4Jg 8Tpt&k" &$Ahg`$H*A``ICj #Г 5 PDW!z! sXTl `Xd*TJa 0(1Vx Xm+ۘʘ24sd MiV!A*@fs8x ACAmhX'6)@i|ZHyJ$WZհ l4GN$Ч1eH:}dn{`$?DEXA΁ q@P |[AW8 .b lu,R]궲:=57D! QXvq^UUCYp ?[Ox~ )]:ѩsG^` [RbXo (\@B`1`X6W: EEL5?1E6~0HI6NfCUS4DȦD݇4$F$6 !2Kix4&)+3u B^y*Ԃe* ዟxO^A)7BJV`J# ݑVLX{Az}O6U("M~ 9EV~nos2?_R`+f\,Cg)a؏Ġ6%J4&$hBHIRb&A"(#"0#ӂ*ED"@-$xJ+A"8`%~:&deDXMp+-bPP L^{zM(r-01r+@Z! y2 - "&PƐ sA jatԍ8߬ڢ 'VP.kA -q*Ġ /q "ڢ,%>n"t/K-a<GE4TncC 3>|.j|Ea< \Rj+6!MN넦No p%XĆH!!NH %Qbj+^cό'\EJ ڈ n hbneV&.0EQ Rb(eE:A$m/P Tx^Rԅ[llje]/(g'LCHdc F2ca20|"HкrP+ǬeVjد*/ #"qb.h)&fOn!.mF'l1Flt 2RBL-k$b2C2l'*3#c.@!4"$| N 4&c q3dٜa |B`A)  @ e8L` dt4Np@+6 Vo{NI}w'geLXKb&L.%iM&j h"qM!.NtKW4a^aw?,YV52EV/QVaAc.#I^#E*PjoNrYT҃KUW[\ Ve\H[ňZFHॅiǀl'S)XuXMׇ tXXu `҉ɏ', 1䕜@^`Ik،+Mf8+E78B(C3 }L4E Yto/H#V8$>$u `duqq`~G( rW{sj M{Y9MhDeeOYշLpO׊YQ^4!W4jeS)ҁsXVQE8Yš5P̃CZ̒R؄%a؅ax]\U=:WsՕx^rU戍Fac_x+hZQitGϘ]% BF"8@LٲX]`f՘]:ګ/i<KC;VN0 }:sy@  懖dl`UF22ڮ@ڱ@>8r#,иdq=aN?*ٵ_;mHm{xs>{;rLۛ۹ԟȟYO[OyWQy BY;ϟڟX8A\Xt Dr O,z0Z5\rO[գ_]>ZK]~5E]Z`iFSwGz9\ H.OE5|U<Łx\Ef\R]i=`mEЏ`OFYǻ:]ø ]|ɿ ɕ|ʛlɻɽʍ:7+Za;C-ZC,[g(X{Wa-"; ]E|X+WY5%Gk:uO\ō-i5>Owɾ5Ə\@rfvL]o٘$Fia|̹Z1KDzZ:C  ( (d1"Ă JP9t1ȑ$A<2ʕY6(`>ش)$8#fL %Z@ѥLT3H#\AرcAjUK8}[4Br]`7޽|ﺅhq JTŌ;~8U)6"plUK>:էɚ% ش$m6ݼi3 <8‹3iʅ3o>Ht$ES^]SUU\҄]"Íw4"?Uo*X݀nR߁j vaBI^anar8J"Hb**b.xb*x⋣c/c>hBId )BL Q&ISZD"!|G}Af}!X)-Cp EɩFsD'x hlֹgeRHh>ʨIn{j餚~QD1aM>C<*EM T¤k1UEibUumwi}]5^R-zɹb8d>Ou|K4iv;Q0b&0:Ĉ330Ox.O]_cpkMk|.M&@\Uf;8h aĨ .H0.*X= 39h6C!lF  #r/!&? :[84->aK[:;]5I) B+SJ)n ΰ3E6aHs?*@Y୛/a {=  '%^ּN0k+k|O߾ʵ[BJς-Z1oM׎0c$ȁi}RXֈH-H9f18g N;9Oaf\։ *j 41gT/jT#x NX2] ]Nt͆O{UvPxa na[ǿ"*{tlPA +x򔇛+@‡;X, uã8 fKX+&$a1OZ:sn/J 1 BOb f G`[*r!^v@v0H}ޙ]8B/C:0AuXRR}] P ]v $Lـ ;KL `0Pke `pPX.Wn.ITl&LQoe a@f!v$4QT^fSM`xU_pH S; H'LdVHR aOVQb$RxWHK~xWLTC}Qy 0XGCH#_vrCX QaWEYX . b b{1D$TtK \teİ4Kso8[UuLuE bv(Kψ OVOHvb5fm\\# k[ w#\ĠvOvuE ^^"k"E5i5z8Yy;ɓn_+\y4ady$$ÔM8G D}cgP)QKg;GnX$L`#~@Tڅd_;\eӖgnE_jyIw ְ Q @@'@]GFe@Fܰ~ P#xK1$Xʑkـb`\{;o.SSOWg_?] O:,R/n%X5"@X?uk5o {_yAAH0nhX7RIhk߈C S^Oex QsSꤘsg ng{e_%4q?5  J @)LqrE .G ꂡU|4 ePdЍ31XdXd`YtV G]@M! Q7A ^UCOpbuU „# `=Uva[vE# ) #a3[')6Xw6nu")X; VegaaԪד>9s$bC V5tQMIⰥK [  +(:tE +J0](I L ypP߀g4vڰ~ -Ev3'| s Ac'Hk dj*Խ lvli{0׳47)6aEI<ؓ7{7/ e@8DH_ zELZ{$Iz-J{<ک})ǐQ_+b tٯU ǥW$#h n#zܐVڀ\ [@ eUƙC\6 LOlò0˂MV1U($֙F[ϰ˻lTV|L@[RbVϜ"N] Ԟ6K!I,lVR 8:M[w|67ʷU.1жYd M Ð Uϡ  υk<78_U|!k5_eY%}Ҡ$s.Э(}. 24QB\cz^Kq4M P` D\f_O]sh2`@V_U3”L]}U{\ EI#,I"hn @v'{,!̪ӎ MMުgf0m8Gٖaya{ HB B\ ԠP ȗ{#<E8<„$ȋ}#-zhEHeCQ;/y)]v7{kM$ ׍(V\!_=J#{t<ܲ7k++X=`PN?@ Q[< Xmu&-?eVrH AώOI\ofwzˋ?2bDAH,LkoH1o\`H(O h {U<C՛Vk~Wح@J+.r ِ09={mO]Z5g_[.",bܸs d Btc Fp(~,M E5Y1qds''5mylD*sET*L>}%1Ur zUz 맱̞EVZ̺}˶mֽܳW]  oKrˉ+wXlf6M3ѰQ]]5װ^ &74e.3`2u[ϟw /slʉMܯtY̯.3R+<qnƭobϽs lgZpH.TH#wQ(b<< ` 8^!q((Lgn %d%/\r;I #OmQ..| 0i"$ 1#7 Ft3l∁EO垩:L#$pA0#p&}`RK#RKO%M45TQCl@5USʄ5Vbe5.ls5Zpb-3sq $#>$ 1gIYeKjn_YVYce"CS8̆>W(J?xgm֤$ Q \u啕~跉PSZ^lfۣa$V"UZa%b"?&Pה&*W؂71MmlJR-(MyFhO7A l >b2h"9*۫U֠{).(+g2ЕJ* i+Yb媌> qD?B'KG<-/;3K1ш0¬uᇿGgq,inӒAyqcyۤg˚v,y 8;uqGϦ?`/}@@|̢.hF 9P}vQ>!&-B簐0nhK?k=R>}OD3K` r(@Rd%":iI,","FHP<(+-SA'M߇%:}w q7)P1 Ѐ#ԗx)MUjT9Q*BdH,ZX 9aQE)L߂UH!DG|ψB!anbY'i} I('PHv%`@DZRe5+akPrpE 2 \DXBGkqZ`"8X&V3bTHFJ2"NTgdC ܙQ4qi9=a &蓟ܙG浢klXS'Q-#9CL>#m&$Q8'~O 4oR|Ŕ4` )QeA> n*XE(3t;S:UUuTeԭbKe7=)X4fwƺծZկK_S1cRxxS7pG8TԮȈyL[7x ~a]ZLew=3*RL̚UD4Gmki %$vy3H=z@=tL Hnn tC'}0uv11LD<"xO: YHMY.'_ ޵ĺ>r~!+kG#L^v4MwڇnsW. nwW0O=ыq0ΪYUկ^jSYw5~wyLJ20ɲ*Xe7χ~+#"y[,!YV-g˿f!6G"[sIUC.ՅGIꓢ:Mc/3*ۺGNT9W@V+<K/@aӯpI/3&0Aܗc/eCkg6[@ 4,:,! ""?:3@$".K+90LAI .s D@/$L-@H@ô|P> 5TDKȏ?4Ē $ĕdg\+64Ga+ASKE/V~ŠqE{<2aTJtJq >*н ˴Kvt4LDLLT˨c>|ʫ(,~8G"3,H pX3TȄDCؤ??;9+I݌BĎNE ?cT@d<2RAIܮg`N<;N/$6Uɟ/J+k[ʧϏJbfJPGǷGAK$k Ƹ˸JЯG2K⩞P 幋P[+dQ8Qx"fb%0pxlX"ȃ Q5 3L4?lМ+Ls)" B:$M@ Xqa!N\'\?I.uNC[$쌏ܮ { %s@m"AD;H;UT$" ʕO<7 Q<k7PTegƍtKZ}U; ;xlYUl$cș"(IbUfmg%j= kUV+*քC~V k8B9q m4pbɩH\ ,R#]H4'h,-9 IMH"|/hM0v%3=S XuX Xn.:5-<ȳC$(hW ? X;A5/[YqȈZGԤOJXTMN=ܺlHj@4߆bM؏ ]֒,޼ӣЄ 큎<ͮY _M@bNaj^Ygp (R(*% 6 0X_6IuTZMO57ux6Xb!&i>+t$C>2;Ϫ[,-d+$G僾% P]݌ (z26c` 7>,0 1Fq:'֬ !sXc =DM!k؆zVa#LR%36$Ӓ_&=SpeW@::^`dG>MȈZcF߂mIe;HS1<5dhFJhH^ MehbrHM1gx!]*xd6\z4>kZxFObᄙhrh&Z£ZE1JD"i"V+*jD,2+@+b_8Eϰ !c=~ޠm@jU6 &. iem sj#U3e Xu)sThHTC'^m"vp初.4lk.Y3Xi~;fFöff7ԔmFT9 g?abq8 $${VL(Yfl0(6.EFhF~ɃJvhhhw.­NլRܲ5.o* KR,pp۽uP[-BթpR>wن<hP8Ǫojrp-\ ]acoCeRxs%> MxHkq);LM.TrE9Z9o+fQYlaFq>$9ӟ0e5%_- m6`TNmpa蕵RVf?_mL*V2(6h,n^/|TYKUa CVUBWכ>Kp䃽 baj0299&eдΐ2TG@& Zbީ 3 ݡerpPqy "UdK%Fd (due ,irp 挘:px'n9tjlQfH^5Hf;SˮovWp p(p`t_m,I>7AaFI}nJRAAj76VWOXYMV$N֞im XP62A2K?V- 7JqHָU/ȗ|?·|-ZM>?/˲,=*g*-}?z/sk[~&eҲbӚ3?D?sWojwŀX/ڞ~:^f}uO@|_ `~>;!P5s4A!.[ qEn)8q C" jȝc1t/f4. M$4נdeshMbq&0ըm *ҦNBud$M6d+׫O~$fϢMv-۶n-RĬ\Lܽ+w/߾~,x0†#Nذ'E?v82ʖ/cάy3>mhO4ӭY {kӰ |޾8  g9}A#}9 vx]vܿ{}'NП ]4L;<óڵ"ckx@[?CbhM; B 9o6pBH\d W5h}7o' g|v:4Y9vP6iUjf |nߒn٥.ߨP:ii驧 8f@kJ#"1/4cB#2R">B)#ˁIi 1j\WƲpq#̕.z#QN4iH.j)LjSt$=uSv'bꓟLCw*)OyJZ@BΧ@teR"d]cLV*hc.t\-K]#Ck:ni&y=c8=:ѹHZ=9c5{͠s6 2bs}lvc% mu}wow^oCV <8t>8#.7ɨI)f4{{I9*I'ִ!ITu*g㾬AṇŰW ugo# S~gjROoT>ԡ}˅T1t??)2⿇)}#2ge_h`tYVPgSh%"`ߏ%u1:^9IԟQ D[}` Q!NT vJ \vڦ^ E䞅J\S_$RaZ1f8ݚ`a_Xa!af_E!`bdY "Xp G1LrT]ٛAs"!rbbb(Q:Q )b*6)f,b)"&Ü!!e 1Vh 88;3 "K^H}2܀\ZN;RO I=OqO=<\xZjVhDэAL2 ]|:;C*\9,#Zv~2=MLjOz_P!P.FM^6- ^/N/}x#6bE$r}q/ YXX64MzCXY[[re{T>'ҢI` RvQ28\D3l,ZC{h`f3@c}coDe c )l&Tonp= q!?ҎpׂJC2d,9$MIH&߳P&8X8pC7ENEIZ| _elaYK>LKNa!~J%RR>``]T^e՟!G ]ڥVAW`Sh&ZgH| M4|єC[~]͍n֌Dp8"ñT>1#IAӎ3 Ώ ਏ8㼎pH zekbI6Pi0P Agɤ^ RF.D@A ChO(6)}cfDC*PdȏF|#HZ ɬ {{'Uf}X*F"&Q$ad_>AR«b-2k:un G rD%–%u>&.\ b8@S2,` %|TlؕaVL YEP,^hh,8leVf\1V 1-5fP5F5lIKJ ,D7B ΢AV`bP-Rϟ4-`l*J'^@ 4.)@DK(Ø Hj:PBj~96g*k+j9߱F|e\+z!`! Ɓr+vkM^M(nO %Q~fͫ!GUlZYv$sh"^r,(- U*ZG960[n'&p^Bf6ثZLPRIn9dzw7f h PJio @DBm6&fHupezD;8-=q>EEdo1*.q\B㞪B0B7C,H+dh-${ y nB2tHD"V |R+//2EPV/*r,3Vo22h-o*woT/v+s )oȌùyݟNGFbd26ss7z0p:!@#B`z:8 &bQdiT lp|J)0d=[Θ)_D1*1m35|oNqIwH#H4.nqd,D|㋨߂Ex.JѝO*yKR.NvCFRa'{TrZJ,u\u++;o0M5eX1#3UDp66GvSدA57]XLbL'+,jv(^V~6g+jlѸ_f,6ҥ;iG cp@mlFyv1vD  0 tDCK4>Pw'19}IIYF -3`2-m||}WO7Mܠ~9dPO M@lNw;zDuQuT+5DRixBk$cRC%xxxXO!(X2Zu׸],y?0C/d/&L6m6)bk/bܕWuV؁dAhyva_oi k]3K) i6)P7C4|F$P@%29p7/t?ȓv|E-wCNw V4A 1S4cޝvמmhzhlva@1qj6**:'jB5HP4COE4\I+{ojP%8jX hGxD6.RoK"_UkwQ8뿻bFZK*5+9| yKS\[u0o+7`c6(s]ɣ|φ6 x9d.4Gu lpc]гxoҦ/o6K H:7d'}g׃w[cpw+Iuz7ٯɚ`GsۭIϭc~s^R!u:J|n Vi/ Xóܪ~n/h ʋ<&O=1򌧅\8DZ8[<|;Dckr9ǃ+|`#)/9.bʻvA 6kD@ P ,8P!C !"\( /F$H"Ì9܈r5#x`l;yR57qN=wde3-e9ʛ>ϨU"ݹgVb {dOЦUW^wଙNօ.[޽}a gfȝӄ֮/Z>otm܀t O.-j׭avm۴o]xqǍ~F|9¼3(y9#ݑ|y{W}{ꕳᣇ(=\+9'1*k+1X#VC !0Vv "T$Az'ĘKeѹK ,8p>qD $R!,H"82$2%(R+R-/ S1,3LS,7S9;SOO &-C*@@7x>"Î7TS>' ($SQ(S@aSYiձ[sU]yu֞vV_W耳nSe2\ViBaZM6XC-Yn Wd17KW]2`wk%} X(NXa\!a7&1VR*㏣ ,QNYYr6Yf_A:BBНetʐ4RJ#CL`XR5r竱歹1Ğ\ Renٞ*[+4[P;VҒv=7k{oW 67XbkƁI/] /62u;ɑC0Inq]w`߁S,ʱNJ`д|OF(6ZiI5-ҹXE.?x\ɾG?nO^}ퟟw>ampղ-غ۶ZnM&(8tp{y!4 4ax$/U_491t5 ke I<|dđѮvX*D%.dC<)J|UTނ,ۜ. R)MR"6)mxR5ő)yzcZQcgi(d&HE*jaH [Vm 7 ni)׷ wt]! EJ L.= X+BYR`4-qKQlHD!3vS1?De.ͼR`6Eiia 4:؇3qRnNut@e-l$ZN}:Pj&UI\*8 M [IKNT`PhtQftGOeƈRRId!R4wt霖wNbr6UƣidShT.MUSә2U,SUU1UrMdEYy}ތnϳkPK AZ6yE(VVPE*XucICN)HR0EZ!.IYZюe|iL)rz`C착J { [\||$nUk#kc[" YZ:9䂵1] w«_MyJr` ` {Η] Ӱu(B%\=AIZWBIDN^nROxrfOJsYLI}scz*=^  Y2 K(Ia޳@ne1ǚ2WG.<Ρ/ pe:ˢs1`.3?|8"`"\fMejuP8X1(Y;ts^h0`󜧔!Mgw#N|e q5u0 Кu| .ds[SFm"֡lw@}41&툍$61A¹M Uµl,gIY}}ISa\<-jW;',idbb nn/)7SSiApo5ndqxLDX*gk]r 1sAw`b p39D洃S8NM?JVJP*-^sۈ@AwnDWaR+zZ *Pv;XaE~Dx8/w]9% VW_Eks7Ί_.:THA aB#cv}'~0o. $$!&f`SJ觷o{Vw';t1RVKIXɛ2{hS8.j 0{%)AV4 +̇-u;?n2?!@ĪTc "/, ޾#^a0ZP0RVpaWO/"4 ˈ 2҂R )22 *c0 5#p r0dKbQ"6ES<\%) WRn&!F&ilrr3Pp ?hfpY@m')qb2pBʦ)C($/JZ"o b.6B'*%/ т!!@X NA+a"? 6x PρJ-i/>:2ci2#,r3 3qE2;#@*Qz/,j>zS;,J8/J @1@R #|q +A1U;"/,%\$a1޳w.aM  #: s191A9!@.ZJ2B'4 !0s3Cr/qC T1!r"q4Gu M.GK(}ĝmzƫ(hNҌf$*e΋HKKKgLt' &s~ll&tMȶA mCز CZ) @#245VP1/9KJ1OqB4(-/![0l 3UgVmu>^8a>hX0D7;B SE4?qHI6U! M7 +79q8Q`  &?$4@/M;E5;!ԯ?`V!^)qb44ܶ/Gt9JJBE5cI4 D/T> FJO@E #2|!@` 1  ?K0TgfQttjVNODL#d hmTX`hˆJz雼%0ng>AchnQZ@omF'?N9X̀Hڅ?Z2NPb+qql.C oBqsI& *?TUB;VҀ M!-xw w)@y ꓜw[5m6a+Dqsu]3.QuqH[66&*]ٷ]k^d?1NqAU+<;;vd?V ʠ M c2%M0!3ad QY)T@7J7fCf!e12RhgDYivgM51xYD;^ԉvXKƝ@"l˹D̖'t . `a']bNjl'f`Nu7AmH3/,W0 5+1 ,’T}OjWV)`U)@wVw#rMVpfW[iVk]{c|3qh,癝;OZ4U/367}}] ;֙;ݙ09L@OX; 8a #% 3./]6$:GFݤQޖJbagAK|vNhMi% 芠i:MfL_ ($*tQb`ʸRRRgxGK:O 1 A +ņ!`zfW(& K\M!{6yMx8;Bc= #uI;@tuI6( Q_woUck[#svU5p2 \%G9yG#,# CCQ3=]Jɼ]# |U#YCCQ[7`6:k:@C%c]c?F;J:fJ]K:LiUXiu ֈFZmKDw?Cyi폨:ʥK m2 &I$˧z  pn\Mi!Nsn%ؼ&>V.cA!ڰۑ! QA;pBR#VAC34(.]cgvCxN0Zt2!\ =/-3"/-ymc6A![{q2?Eo>DIExCGyқx]85 O薓}_D S0 4/ѸǠ# %!ATܓijA>u>I>G݄@ڸ3 L?DAAeXhpRޒKPT@( Cc_Dlws[ p!i;p\4m:3#:L8缩:+,j)Z5omYWZcCމo  LB@+ȵ{wYՐK 5sM̦:x +ZYC\1(%RDrs୼&Hp.ϭQUʔVRU4b,mzjS1sZ\NQY3nlAH<*n2f^6߁{nڈ[;tr ϝg:[g%k\S0aMA6BN-E΍lMaHΚ9ͻ Nȓ+_μ@}կK@&O| OA 7o؉>ݰ@a'v h]% *(zFX wVhfv wT,hz (4֨!P<@ $ %"Q:2K6$Q>X.b\^`ØdgyhBpC]֩x'*b*RHAhR@2:AE*E#ƤN*JK:FPBjjE*QD#*Ĉ%무jOq8MYz+]21U E+Vkf[:H睎Ku7*A}w* .u6,au%V.'1Wgq݀L7y$ '7itb)sd hPH'@b&l:A\X֌SEQu6=Ʃdu@ j4B4VJ*bV "kV}.p1˜A=WnIo+y$v8߻z {Ŵn8;v8bn|'|8ll}-gr|U_Ŝgz9#(JNmKsݵآ*і6S T( XB*o4&HFXA\okIN7A̙(L-δ[BDp.tK0 {֕G" uA:NjC$2E O+XC`yhL#4Qӓ|F x{S$>iKtDT4(y4T UQ#@2ܟ$)m,<*2 UVVVzt p !oJ, .Y;9ꜹCH|3D؇vX_b "rHB]鋣<-t1jgMO)Mz$z;,qcA& ԝm_GZtzZ&7Qm2SbC(F2RAWԥ±0.8 ˙T[E(g\!zI \MUy 6: tӤSDx X*ť&tXVQG)= dcXRh>US"Agpk;"+JыZf7f)HOuR4l*XҗւiQӛ*gHmgqfLE58LOQ>Ռ{)խk[/4^Y'BK^HA#MFN՟M}̿`G.TRr!!*N)T Xଆ7\If*'J)i1gveXB7"Ma6!,pEm yuF3|yGZi(0nHi;F7oNlMJHV!vH]p!N4Ca8!3&jQ s8^$.xTI64 Pqa!)q+c@r%W"(Z.g6"bBs6'8'+.s7+KU,D7=KL[MBKAfXxvSivSVf_w5uv\K6UdHeg]H\cxTe7L7dSwtvo7fy8wbe`fBbua8%"Q0OwQL=0PxSxEk!0h!2@ p T !m#+,_/|Rj1!xXg!RGlB~Pf=n!#$( po#v!Hjmِ<$'&BG X%WA3`%> "@ @ yr"8p*b&E(VY)Sr.&II ( a&@$!6Rt26c2abe~tc*S:84 gFQ B s]Az Jv!3v<sm4JMFAȓcؗl6{A!%m)KaF8u Ygfu8ndSQonGfpwa懾edg< 2 TO:cS%x.X ]xCm+hh"y'X#Ҋ r}v z*m՘0|x% P$80ٌtqoA!k׍Ӈ/Q _ѣ#`5Y~m#ƶPVk` m #j#T$M0("'~'r8,P> (>HO'Q HbHȞn p2eJLSqjSæ%r/ْ/G,? 7h Г#A{ 2* V!|ϐ%)-'(*E `'G rfI bd9Ac3Q~~ t)1 w٪zwcwQb|J7 -Vp2 1}P)t#9 l,8j'H j2Z\lن몮ivgr=؇eaV9XG#t3:C^e9Ow0!Ҋ{߉hX!y!Y%;N%iim'`H 8`A!1qm"08ҳk7X=[!!ϰ %#C:r?tϠV# ]#\r"4Q{_'bl>UL:[Q*|TmRmK[4&P 5f&am([)ࠒ05y$1"K9A Im(A rºnXIy>]  ] Lf{+=p, ),⫗@ }mqac{Z~65+~c % /q%- j_zuzHKvW&4$lxدHT#.);)b0x ?Q`Ym9 'a++I_)q<̦*?f+\p7ڷ%qڌrػ!W^Ѽ5Gs:):XB`G,uQ  \Y$5㙥J<qk6 tjLm+ KIu- GK'%ӵvt7e@[D]ԎSPN;Eg{;\BLE51W"IEA 'ˍ4 #u'` M瑱&`j)j%1:֘@~<pׁk|\Liס#L-рd0V0?rW|"\}Aŭ3%RۖY\`l (\PqtaY@>l#yL}_FKjfV4N 4CRGW-Ot< H A 4khMyjM^8b".*B- հ %&}d!鋐 ~ͳ}Vڌ): /hvم-f˵/d1<\'^L{#%9s{b419r\ "-Ԯ4H]Scqߝ]`?&~o< y]H(+jPP{׋+> AssKXtoA !SR)1@q=8.1_bdž L4M\,wa:s{M5}bw\݁ZN?3UdC<,՘x[t߱z0ъzLY~#~zϊZCɄ&}G&@߰m@ ŏ~}! /|۰W{  p!?}? =K~XTk٩ٜ{.Z: f 4z 9ZŎ>z'U#0eN5qq߫S^~}[XrA xIru3w.C5nŋE(ŃZ3.al,eS \6lSYYC\++A'.s|6fLgb9&b61DJVWbyjr=5[r|J [B GArU&M8+ [LULb {&MB jnRe$jesj>kU,JDb?ka؜Mg갑zu9>wiٵo~]s'_yՇI y}:>ޣ/@TpA< P!<$ LCA&xcE[d(.Fs1{BD"RH$LrI&w..qirJ.D  Z 6DuI,xT G8 ?;G)XS.D Й Aw,TOp5gQp݅<3]H}@{L3Pp(C!k\5b+5bFt 6 mj͆Cn[pW 7]QWp]w4*(bW0Egϙ5`/ԀSβW)hb+^,p$._K6d5:R9_XR ! %fi݈'`2 s>i E UT Ġr1K ^܊.!2Zl|:bl",癢Pl(sz`;?39~ 5!tQw֢ܞѭq*(6_܆#61Tn<_uc}vs}wup?7^ᓟ>ou裗>S!%]E`Z 9T\]$琁F%t_#"~?h`4'8.]SHS(EPG#beP`) V@ !+jpDݢֹ\Boy[& d@I BF21 "S"3{PS`b`1(F Z8 Ďd[bM2I̎xc 6a(̫vǬ$jTD h4s T D Mܫ9 V0f=~:pL p8"6P3/dT爑2TcBJZ0~D+-,#ZbMmEt)iOb$C!P9v TzG>qlM C&2j5P%ZN:+2gLzzWֲ V 6;D&smiAzП$GHvqz8&wu!d/QZAaH{ ,K'Z1 YuWTSĨDQ!3z7&uTjTB@R W5! X}k:V>X6%]{a peՕv+CX>Lv9$dxk UФ2"e}CXPKB$+غs 'p vc>sd-ǽ?5ȭ a@r&ЇyCy s\Q@){=9%jĽ uuļoK^+ Ċ[OZ_{Mmjzci}]m3.WAY~_\:VdV !+#iI O<Φ6<@!޶ߑ|`<޿䳧}qHhx,6M8koO|%W69D$Ý[B~(S/eUF~zz[H?[Qf5]{^B*0ț;+h0 +!= lܱ6Ďp!d")3%Kß9h>!-s9[5p)Ј+R[C8XC8p?7|CÔ?;45Ӯ/? 9:*DD(BL aǰhlE;B K< ;%p1NJNWO$1R$K9Vl2347(l"kFb2HFq( b-܄.̲,T2j ꀈkH nPs( ̰L<$pp;9M@͓ LyT !cG9ߢ @B5˴{"-RcÓi< YࢇΊ^nΈX- uP ipIl;Ι" JT ?D;R*#tvϫي*@D0( JJʵshx@dKuTA\2HKQZjQY H'!0[&Q6K8K'58Ì > )ş(>, *'jZBI"S-3ES$1gHӬ$`SLXӫrq mbX!M!ù IT s+ 5aY NMI245|tUN"HHԚ/htІ0 | mXb=t!lPd# 5j`;Чd_P IPw5ۻɛyQQ\X=A4vž47YRl2}R?B0 qB>>>Zeiո(-Y!1NbHvYKPMٝ3h)hmx`T9NV dG͉,tx'xb"KeIV!P/ XC[ՈMMV/p58Ce$@h\պ]=)8ֈ`$ gMh* 8mQ;u +p***t-$wMx;{ՁGWUX]ӎ)Kūa"X}Kr xAKmَBaZmh p p3' >h9Y?ɓm`Hp JP ͘JVDEeTnI=2CU V (wphù) [88? ["T=h Y4O$v--^ \?0 vL.(b`N_.Hҝ pPpuݤ | ݍ]aV <" U;^CRMPwI^O^=DX8R Xt:R%>>_e&_q `!Ip34^&` oio bs8 blifzqquF8lEmԊ ,6a匓紆o _ٴ/:[D@`U6#>b8b$ޢ?VՐC8V5*.5-~ܐnhDՈ*cH̝1։Pp,G9Ɇ -T]h;j݊`͊ ꭰ?^hE#d~@WdOk )AR.eSV\kQg$:+4X~elee>8--`1] N c},# =>۪X J vN%um Z|2 2;M 6vV m ZYlVa0Ă&T,p(T[hh8[\8p >sh5< n?-ne/F陬I{4c0\eppP *x##CDdʬQޯ. kO.z=qqqOk˫OWዣF=k$ll'K+efJFĶ7kn"/}Yh`1/a'==9F2jF<%, jԦ:-P>O>dasmlK28}"qK+҂74Y]V\8Hj #.4FH댃^m理hh]#^-f/V.vL fq8r9=8cG pr5p] }ApydW^4 w Sq6w QykWC˲ɒ;r$GrD=T'&猯 L$/,r{L,L,R{δ3ytXl؆ WMZNm ٶƫMMOVmհ2`tF.I7}>(ʴJ s/*qpbI. iU]Ԕ9u8oۦ_uaaW/N06}gٝ%MM Lk xwaBƊn?Tx 6Hw{O+!q/3g~y;Ag1j~>zx/?ih *0g[غ9sRkDb,hAuk3&Rh"ƌ:Z;x"ˆ9Q@᳓ =4!̉vD sxR\F;&y[t2PjUZf+XSN2,ڴfm-[-ru4ږzM͕cUa5pi8Ȑ{2ʒP(mN A9s@Wwc.J-[m;ܒMvw/nxʗ#\1^PE tϸ8 JCZx!j!bhC `%xbA"-"1ʨ+H:#=#A 9$?ވc5*$5$Q&y$U"Ej%jMZ-T@!Pofm&}Ei'Effgԧ :(F*ӢS-x[S`1iZB&iA:*ЩTQ*TPU[uUX` eUY\b1\z),y,_,Vnٮes[ f;n xv.ǹ.2{[{oU { . 0k0 1S젅z1x!#%좓Nx\21 i%4|MVX(3%bV 0 rfMyH ET9djz5؅jSOetO\^R!fEa6ch7>mҦ}8QT [ENX'`.d[j,\,{ElbY""C.i;<[oRgK?=0= W~G\Oq{>I28?cH\'@)Ie,`64)@d4QPNrZUVB(B?Uoz뉨zB.p(| *] t@yn!'ĺ Q;"eŸ 0{ZЂW7nty񢲞A+u;e࠮Ůn qwdջ=N\ W)$x[u<1`s@0Q{{tMf B$(C /*URK[DRZie~" -I&DTi6EhSΔ4gnҚ4 rkFL4AMS2lN*桨i7h=}ʉ'{u]1XXT Yd)#aȺ4эc h z#ծ#yH~髑.%2)I ;Oì /$P%JPBE(dJZ g|*Tw#XCU7~rI ScbbaӘ`znݼʨs,4/ pB27ՙ`>#+ٿVe!r"䬈m{ JǬ/1A b:IC`6BFMG!QѶnL\xy)U)Etz0  *@5Nm`1I a*|*2"-5~*Ȫ_VRWo`Ne,Ǻ_yI g [4>D>i ]^y'MOa±ز}=Xz}Yt8&筄,F8ggY|rVh=gڅ+.kl0Yb$*=a3q[Fn~3Gˎg?8Ƀ.W]+Lz|ʠEa8I6H@P(HUQǬTժ #Sr &´v"P s-BxAĬ:\2w"VSf \h ;4y& 2ʼnjNO&Z-wзXyt ]k5[3qdo5:.qpη=Sυ tZwbp(bQ1 n$zT.5@5Пt%Yº\b-糔Lga]Vk3'X@neo=2ĵ׫0_[e'_#~nWI(8*ơw/G6Tʗ s" ;c#HcrbjXRt#$#)խnݮAәX{/a̲o1?2 P:! Hf#";QvY!G?2CAKWNt{5tCYW.dFs=ûc!L5OO_=H~PC.4){aWHmX} ͸ZɁTq.Z MUD A؉Љݢ N=ؘ a8A,ά/CbRaeێYS]|8 |t@v͝^EJ!ؐ[ :.CId36p!1lM^6[XN $ֱ\hj^͖%,Kf7|8Bܸ8B)Ƈ,,\/*9.C/j6d4XC90 O#9r%GcJG*T#à8GP"7DCtG6a*ߠ9N }CX{UtZq B C .%PER] י‰eJ z e!$]6 EؽBsd9tyd $$PFCF$%-%\^w D| R9a ^kVCTx@!:f@4?AP8$Ay $H1@Y%ru':ԗFw)jF+bdVF]fFbbIt# C5"4ib|mFjVM,f5D6`Gha7DǝG~E*`_:GL$VA~ȍe`x\vKpDǡ#v; |\8$fg͙z@熄LB)1B6$>$=-edTyGf;!@ BI> %>] K dfP`-a48¾K (>UDn(eĊ$kLX!]Oe籡kP\"e14Q$eI5lCza|\J|h$jYHί[` 'nbVmY H쌥,dv+NW x,XvԞ jY#-YƇ- l9kf2f X6Ƥ4oX6Ǧj!p*Hb ű,+8@+׉d+jktkCҌ+T]hGzD@«&ľJ^T8lAfad[jٕr/ Y^,lhf)+Ke!Ǒ2,X2X%hl \0_0ភΙ"mN5|CC,GuT׺nq E5v]Xim`F|܊_݂CȂ\o .́s%􀇂0|@ Di6$`H8'_ܧZ$6xxq:18y:6OrHAzO~-VXgN2yUqaG(+"4hb9(*u29RBMV#20/Dhb1[%(hlޡ//4݂[ i*0k|YHϺ@;ojтT ҺI>AGkY t)"m'_G!mJߝx-ke)lć3 fTj^/O.L{_eqI'x1T'A54$J C6d5M݅NヴRSqR 2ʧQY&}vU9#ga$%.I~ n'!@ _ϝN_k=[>M/x85PfC@#$bOPc3f+eNJ uleS(᯽O6k9/TnOss$pw$AB"3lb|LA 07/"xtBgA{7x$6iD,f$hbpvilٞ&x cퟥ4&x,6KG~Bu(n~WAXhZK7J98؜ボxx6h51d@vP|!2Y/ЭZ#5y u]`z0 I!ȁ `gy2`Q|ALaDeAMN6۹N7azǪ2le?aqsfl6v9C 0V7UiS5®e.sg0\\@j) =vs~x50\I@A7׊wxxz뺟R:R-2t1 j12Nz !n4oIf#a08x<4xZ zwzb*$0*8*"+8<: |Wu8 r캌x-2|[p2<9˷|L!x<5+7!_7ޥDx\ICby[8P#*gDA^3PODԛ>e^]? Jdh{ DmTé:E ,KʢAx xCA ~0!W~:;^֢,HMLDn{zƦHH_e0 ƽDۊʅjy^r.1@AB_#CGw@\%?GD1V3|>8\ k|8{)Y_I\|+[{ɛ BD 4x> 6tѡ2*PxcF9vdH0yeJ( R$ō)PYA 1cʨOPA :f 76Y)͖SVz+I.v媑kح03$MQ+,e{SMs5ab]&Np`c6|qZrd>ٰssfxtt=I.h!"DV z$tlٳɃwnݻyekyr˓ EnztӏN۹w^Ɛ/_["e(Vȥf80U}!8|%d - 5ܐ=BlP8U\]|uEt(uܑ} "<$\& 1*,!BDx0V:s&ML‹2(~2p@(+ CǪ$zHRJ%%t*2TN+PE/:aTSV ZlBەhuE_4=z[Y݂+Z☛VlV5)U(zB ~h<ObFm$-G'5ޘ㎕H#ʒM.HK-UC\eL4mV$8Y-v)N[B)@=]Zgt,͢i-kRMaFUղsƶ`1c[n+,^w%McM=}D` _9kf]8j%ϖ1s|;/ RYC?,$3i,,N _B\V6iQQ FoMdS(k6-UhC㶷MVLeXȆ6/M>[D"vXCn48h9qSPTr=9tNKuZ;36hvhFxqG$DyĘ${R9 ~S"7>4egdi8EL`N_Xbr4Pk,%RV T*O騨SH r  0$, O7,2aJ6k!6"X V"Co"ӈA"N==1nwȥzҳ:Fx1՗XivsB(G=^@#@mH{YR|d3F$8QfkN-xMj N) P1UJK[rTxT@e/6bMj2BfutCVw7麇%bq4-h(WKj63(I̒bYtu@ǢarH@RЀt[]~EgxQt& i(@.#9B ӡ>3\pG/vAE]>fo}S+5oZ25@hips qBo@ 0irӋnCriC#6태}3um&‡wRpA* .gtV(8R(+蚳 37ů?T|E(-ʶP~Sft5 L,m)lj PGelf31>CMh.&Fϱ}O6Qxr3vAs4;7I>Gdq=ՊOjX8!l3'8G*|}s#.x=5 c;Qò*SN뵭e{CNc;P|1 px<7![4֍"`yY,,v #Vӱ K̡A9aণo[; N pƃ .*.=#]@8Ћ>$._ 60RNXvH`zn.||b{{BTI- }FL.LFˬkN@')knņAŢ-"԰0PPf#v01?#?M -0*c./..A@j悃Z01v/@|0H[-в1d߆O-! 7q7/7fpgA#G#n7Q/p#Q3#Z]Q8[q # $P; Heˁ*  ͲAZ!@J B.6p ABNTL$ $XͶav0̐@bj%Js{r(xk|G0R#5TP*M,0 ˦&0I H.* $,Aβr-۬-RB./e/0݄F>-F0")"ca/O1!>l00Qāb@4UXe ۬a^65|Ȫ| 86/6)ܢQίl 7:[p ;/#Q<E(:!PsѰ:'w"vb ;aN-TTlA A.A%+B! ̬$08Dװ t@E($& Jx'sf''|bzGbKHԷvJ,涤GG)2|b *Jw*+d$:e)-2n쒦*`K%3i)Ҕ!/4Ca1m,O!4.1-1O/U>>S]R!/ TE1 2 u>`7ـ|sq|I99[/R[XJݬ;UT33;!Y!82c]- =#U[Q;".F+n *N7 `WLŤ60."%.@`D 64Dc $By%7cWap#tCLB`Fi*GypH}G}$lHyvHzlȂL8}䡒 )oVF̺,J*Kk)Ǽbk+jkNk f4D״-B)n)b6C"OUޖ,zA*W"A!آpF^>Or@5a4u5 _OH΁~>2lWCW_W}4jXgx_uܾҍ37uY\-ʓ8>M{u:h[3?;UQu_* ,`00T%r@A@&vL(@A#5r X6!EW~ ^v fGf`jHpPuufg_XDDzȔtbzFiie,Leڲj2@N L 8) Pش-&/W κP@⺘MNA2N8DeS>H /$1.B"E$a. 5%Q H1V[0%uaAv|mV[r`UxזSY98ZW[79<]>@R[/(S|hv^;wc?><ȃ_)LY!7@ԂSA54-x 2eaU0%.3Ԃ1Xٜ -A&AHEf.WءZvq6dJ|Kx6:2:5I5fydB5iJл"c&l`LLmO2,͘)p ) 'N+-mШ":b1 *)Be.P`Xqe!׆ͭ0UV0qVSiٸ%Vm!]RYw)ʭ^3$[XoqSyK×yCۅdA\#3ԑe23ٙيa's6'Fƺ)Ba.vJ00(9Zrfܘ|uen3:<{Sr!xW#|iyx3БνOHc?oc6 Ϯr#7VU\;o]Y{a^ɣ{o_;0C tϙQ$IE%Uv%$ټIv3tb%t$ Hbn(cnJ,1*Ig:Jӝ݅{j',]9<Ľ+.@-n֧q N@ZRx|ŜŁ&L&:'(4͐O~)bui<1EE-/|.z -纾т-Mb`]5A*#[ᅦі|Wfxgxm۾4ԁA~%җm;8>f>B=d4 f-]o(9 : ~o-% ^̎e3"e}V*)8E3\F$D=G7&GSہc=z.E$Gx'¤߳_B -.,[!:X.ߨxPk'SS.8.b@. <0 :|-1&R1ٰ1d6$K<نʔ*[=z칃͝ 4СD5SΥLɓfԧPXœ֭xh6XjȒ'P ?~a 7ܹtUF?nj71_9818~̅cɏ+[9(Ux :Ѥ}>:լOB#SrR;ݼ{}ۆċ$̛3בFrASw>={u֧Cvu? hO=ۇ>p~hyšW^푷 >X GaFana~a"Hb&X*(-"0V:>$& I$=X#4hr eQ% uqA \$-xd8]AG9 "Igt@"pB}*B QeFG"=JR10a7-uTF-"jJ%ՓS6UPUuUV\qVWcVYqph];`-kb `YYA!} hK.kPxS8Cm>ofa{asmzϙoݦouzp6l!=!`m1?(!&_2q s195ۈ32*gpyAXSae\N? '3(n\ìfbaأC,3"T`gr'B'P~OQ iJZi.eSjjO>My{X%[eĞz2l~9^Smymڹ҆n|5p /7#}Qx_'0~Ƶ b|a'-hCY1P jUԴ% 'm"£ՏGK@!d3!'Pn4 lhnuDo !\)QqRt)rTb䒂9U"F+]qul VhE LH/]33C33nywGD*6k#g1YO{x/h;#<6](@60)MYJR> <+# J}%K-M/A&2iĴ pBdQԬ,%LIvT~Er B-sD_V@-(ȟ|*8N$JD-%SV, zІJ'>N*/v=ƐEa :ءt+nVgYИ4jzG y&W%T_ T@>*ZYJ Ҫ'Wo˰M%0*&^ɛd3o/-q ;D4eK$B@YXӚ~ֶLl NpH"yulN'oxC:iT> ND"!э 4EAD'D!FVT\Q~`,(J7.$UaT#xj˦iN}]uP߻\Ԉ@(fԤwWS91`#*]c|Bp$!}uΪX/лqi{+1tbAIFHbcd3(#Y##d~1opwVDX#p7$5Y".`$r#pd7$),'}bVY p`  @(@@l mbtKW(Z܀rLx㐄K SX|VxV(va( cX $Qfvۀ D0a8Qu)U*ywGwx SigKf \xeƉhfV& ^KH p( Fɢ{i]{{RȄ0;~fkh\|'|PfiS٘ѷfb)RY'bY촓ĀLAJ$; .Cws1wR$~BZ1İsic_It@ |jw fFDij4[IDh &}YzGvp *Aȇ@8AK 0.w =!/'~iPSx` fxy(zxf 㚰:$ z %wqQȈ~04kĢrz">KA9-H;H;u|鴽ɰشipj q|w<@J np, 0|\Òg,ȲRw#AK^RⵖPK- ɞq|̈A|'~j;+zpҷP rAL!l<vkd`_+Z ˺,LqpZ@ L,̳Q|˷|Ts6ʵ( D :)F™ ]tw R6|zİ )x/-9⾍ZdCD)k?~N&qLlTf& .|e:(.@O"wq18 *7S d(h i~pD3 um%AtɆ`iΐf8ewp|ŋًyٰ砰Ɵz>ɭ96A",:t 6+z|:;F<RhɓF{ɝ;  pPzb VMgؐ.o˴A1ϴ! mkL.j0*@6硛Z` M= *N0ٳnVls6rp@Мfxw ={!>Q u.\8* q|/|(e{lZ#Xl`f A z' ~@q|Ht $(Ak=bD0ۢÉXƁ!S/;霻0lC?CFl왡lͣu&g6štlt+"ۈ6ΐ|"'rJ*ɋ< |4 "M824A ߄3N9礳N;s+O?쓁 %BE4QEQGmtQI'P.PC+@RONBAdAuUWeUWgAUAQ# (D5C?5O6Xa%vX,NT.c.\vZj6[lc@6Zj 4-, mua(jc؅ n&b^2mW1^-fpjT Prhx9md!6Pҏ6F&d%>!(;td~IY:#&lǖ-:RʦGg<I$.ަti&0fZ~`q:V)&teY+B*-ٚ+1R͗-#]/ȼt.*b,1,Akm5(E`{Qrs7^·Iezܠ8%ġn@2od'0Y$/(|&C@䠫}̧lGG e(@:C$mh PÞAMuՐX6jts!9X$!yHF: %\%(EiJRfܰe)\D(4QZS<'*VъWSD.vʔ 5(8WծX,6댜}e(9*AԐWяJWwDd" ,I Hd5]׊u/lM‘4dOZ@2Mr#ؤ5Z#1x/+ fChq#:fsd -16!d&&@:(MLf4KEhl+¬eu2SP&8AzÖ`:ޑd3Z{? D䳙f(L6QJ'? z u|cR7.h=)=4o6+K ǽԞs]\ΨC*_|zh tO=]T-Әx*j+4d`hM1(4C:VxҲxqGZ zʱ]3Hjd0%?S8&V"9idMy" :b&+N0H 509XSUA!Ր.1KbF1a 59$Hi7aFj-d)O" ٖ僤-3OކQ(%E3ᰔjQR9?w3"g+_PCR cA0P-]T!0jJ[xtG"0d:zk$5s'>VկnudŃZ;Λ"Q896 w: ǎ* %N$Ӟx%)Kԭ6|`3ĠvtlrZv5,&/ F'ooX bF Z0.{$1ނ7bw`9ļ"ܸ8UN2|B&re,"&Ou*<8aql6 'MLqsK 79ts.vYss⹽OUL`яLJ[Ag5-j‹Zuy޳<|WZ =up[w~% | [_\$}졽!$JX=~% `ΰ8rm,χ~opiDj}w˛:ALo~ XjBp)L!߇>- _;;+4ÀĐŠ;ǰ(䂾4B+,,č ;0r˻<CWc"gC8d=L7 /Y7D,7>6˾=y>IL$;@=" 0Y.Ph?It0{s??C$1U*@ExԱ 챗2;"[ ig\d:\8 r ;?*93B;9$D&t¬ZƐ()K¿ OƒDHhV3tȅl:Ѽ͓89HE᫒cD>>qȓH pɗlJə,(,CN7OE[iT4ʄ[00N$NŨEZEEDF3T9:m"Kd@c#ƅ@jtK{(C(Xm$nLoF:39tLGu3vt>,@.8NS?,#ʁ00 {X?[p.=9=>u=>{ӣSiOB ʂ۾KEcJlAX)pШ

5I7}N>X$X.S닀[L@u.7,0ԏ ;GedFͿ)0,$hT,OE\8OO$1H)p'f[Э@tprs =?FkZm&[Ѓ m;بzqPB){'Giճq(ۘ23oJq b-6ۺ7\X\i@G}Vti4#Xh %T#(bV+ qe(bzy,Bw5^/&HPUHԔW\M `*zͭE˫ށ*, 聁*Z#5<3CɆC=\/LX"YͶE`le`6z(S39( +?ϦݸSnQ;ahQ1N0*`aծ@[ކH-F,:ZP1(⡰$U%cr9Ya1vy{'vۿ\KXבI[% 4ׁCnk9pd[QeM;xL*E a"VV M Jܽt4)R+Ⱥr^=W]^P޺MÀp ԭ)s0_`obhoC ?6-vnaېS.E"|)V3gl~/B?`5X FhMYa10^HQ?vHPRΆa|e 1qЧ&t n҃`cbH 1@(|rY ZY}%b:_:=8XA  AN< qDF.hddھVֲĨVk `]VFd.8l e.R)%Y+uB 94J(r؆ ZmЎM=qx׆L |}s@联 ik?$qr.bn x%ل,Nun>_0N=TIn`A?"Ȃ P ؙvHEШhXY-Hwgᮘip7ۂ&Jj&s،V60qnp$` J0'sk_pdd2j(\l\Q( 1֛Ys 8;;ߩ9DZ "D "ԋ C/V$GF xt4%Imkȝ˞-Ѡ(WuepPV>Ȟl@T*VW/gXuԦm{3،l8)HMަ5H S(+^ =?fg|fv5&dVff7|e=aX*_F4؃r"uxV>ygXӣ?XM0_ÖBTd-hR5rq36Êᆉ))ippqUM@+eC0j،f0vȈNc-ﲙk:?2Okjw03Gs5߈߈s>s50z&lƻIJ3  %t HѶ8Z[N^P53H؄'m4Z m.j߈k~n$f (+VHynPfɃw*"V7=-?a[zw|0o~?oCo0I%m٤cx-hxx(WܖnQ&aB&Л8Fb92Ij#[;xƥԘQ!t̥ffFALwvKJpwZz]I$v,ٲd*sU]g6ܴq߮M xpнz"NxO=;9e{ɬysfnSndkȵ;w4#E*H'S:;޾{7Ռ2f_;.yӽ`Ϯ;.ۻ%<[ҷU\ǁKePU@Qӓ CA>ʀؔ#&h7A`P<(N@VX!"bO:`0W:p3%Xc/|3).(#VT$n 7ddKFU6L.$=T8T;إ_zicdykPsYw {I'D'nZ٧ ,h @i DZbj'p)&ZBZQ:;"˺ЬB1PK bXhѭz;@, B[N4{.BJn9<ۼ`kCT㌓2aKV:t}DtAU;SQ[s9 H$Z(6"*3p ^е02W[j N1\cqdKOVex`gUufVX[lvQmjQU+ ƛUںTH!l]wsAgԥ78yav{yRwUU9i# 'Uep` 6`ⰾ>` 40L5PdǗA)/![?ϧMj;9N \*S3~ RejU #Ԡ!>! #T ghVl[ۂa`c57. D(Hid+|/]29%*˫bLkYfC!|k>S!ŗޙ^Y4J6s"E46_\zSn<&7 /8攜995| -賓ʳB(Xi@DĠ d"#2rM݆l1QG2rkD U4%g^PXϐLjg7~3?:O93LΔ JB:ҒTV:B5᫚UXGHD+3\!ny 18\״jvA.:qD] r!F^'H#io- ְ3-INCFQlaJQk߶0z nSǠ,pI 28G!"we@ݗY5V~/bNʾ׼Z/lpT _}ՒoǾ:d-ҠWS5޲N8YA'K.NjD'?{ 8ЀWBlr D[ Gc {7?D3toKz|lt!]@3_/F_ T(_y bdu[jh~ 6^%%SɌ< E `\@!`]LԛB`F AYA8gik`lфϵCG!`uĠ ΅mXG*~HA;!~ a*!`ANDBd݋]jBڎ@0T9aa^|&t^Ia҉J؀ޢ^  !b@!etY!AU!b u" A|A<P_+K V җH`-_ .ccH0cP`1"#2aX&BxUFӘWn\kR-n|6s@DA `:J%xc"W6 a*>2<#@maA]^ 2dC:$aCLaE PݏFzd`!,I."2_"dK$M"%nd vda:>GN֕+B",2%D 6B%ipF.ReAu/I$RXcE2̌eY1^,#36b03b )MzhD%6D- [7ʋaCHG88NS9 bf%P#yXcL=#?.a?f?_AAٌ=jf8BEv ^HG&on~٦IR= J28b=&@ $M~U$ L`|hbZз_ eR6,%6bU"dVRY%# h&c2%beZeP#]WI_~ %77&a b&ϩ:bcBwxD&h@A#gz+i]+ Z$ampVʫn!5iZJ[)"Vv©= āXix"i:J{*jْ}ʢgTTbj:R$EWz*0.0`F .©ڬʬjZ֫Rh\jҪ]vȲBa :"4a5)wa(bkg鷦?k^C+ +ɺJiFfIJn6N)ЙB #d h$.=B AD, K\]՞`)r,)eCQ`6"h(~%aA*JςX2o,`(}ACޤ`1j\ #o-~lk@(iFH=ofb)lPt)"p IB Bn)Ng`Wm.熕exb"HA}:e [FkǍ,IYjU>Q^Iʦlf,Y.&ͪjYȽ8w9Iʄ/ TD-=uc ]Nt5\ 1٠ (r1ވE:ْm?z!hf%&G$I֫r) rˉ;d,Qp+Z' Bk%bb0 P #1 ).K ƿ(EURX>yOHX 73:ɗ'fHFy,ֈw;|91xmoEp蹑 OIr3J tyTwOxE6MBصwhӫwlN?Cw&Q'Iً}~ m}+@,}m05{Zg{_{n{_3\8)#3'W@ pE,UVh{@DtW3-" ?^,<+l#6/#ZBo[ct|sgfy י~I0ILNjC:_~̣t<#Q<:chпs;7/znčM;2@K\l֐;*CnEn$\m1ݳ'QDeK/aƔ9fM2#ԹgO9{ԆF&=ZiSOFujUfպkW_6`:ǦUvlNoƕ;nZ,Xܽ~hVaÇ'V 5jdE ʗ1Oά2ΘAƼecӧQV 58qZ~Om۳a5ޱĎxqʕ+y8x㑎rѾ}<_ߖ(ѢE/z4~|~}F P ,@E 0Ͼ| )ƜsPCtQh EbOɻn û;Xd1<`qi銃θ5_5`#k16NM/-9C xKC$LSM?7BNH;=?S$A9C U p. (PQ(ti 8C!SN)% ϑƇH=%)$<IUUWaե^++^m Va-X" r.}Vi]k"@aoe\ȝ8 "2l+-3uW^-H#zN ?͏%~&.VS2Ʌa㠃lFab<&x Y䎛c#䣯>aY:4ȿq9kΦ@Ht)į pϹeBPIl@DjNZ=kNɎTYvN`؈d5$dX &75@MEQTcjR2ゥP 2j`y TX/XzфS8|j=A =-t.<7 DTp&tJ M! %O͘T/i71@硧V 7(~ _|/%f{z j_gK,0p&q@q=BRW*sy3 tU/ 7Qmh/5`+ۿR2ae3k"o$'9Ś. 3Cpۃ"VYe.㞚"tE-Od$64 Hh[t4k,؆ӔQj1xc E'l'՘h 8q4aݸQA@CK&7s$N d*LDY`s%&btۓN@ɲQc\׳G$51‰ B2g`S[ު=qSzk vbu>{s'Oy, (KNrfs~g?m @KANE'ь~d vaAWH0?>LG|/(ilb i CNh74$TT)bE(ENFp1@ c) `]c"#*Zk6Vo@$Gb+uX/PF8:&I?<5T`Q*VѨ%%:5lLY|j4>z95MrBvX>.Kg?V(-Ss%+1hejS(+D!gDxG:iJ-7IN&כ:ww*t1o2m-hB='+Lч'UiO*B}/SxjX]zX}g뵼O 0Rm`}fh.w`ؽ0 ncI/=|#lnK"'0{x9wֲ\O8lP<ГEKAФ:d Y1р2T^t'Ҙ^:ӝtU8NZm' +eY)ŽYpY-(0-.-ޮB.Ep\N^I [/K_n2`R/-`ލrd6jlp&J` A.a(h d gb@c\@nxOCLw#K cDjhCt0)Oel9ao(jFB#Ȃ qN h`  $ a 0L Ө!1nC:.Rp:4rF`a@2HD8 mDaRS7^UCs1X d~'m &t؏цn 2qn@o)O"F1*IMd1+fy'~-~+N,lk+eׂQ-GRr,/11-JMzPY,t'/$S-G"F2MߐP";>/a 1! ᪰ qbr" [>!0x;6GBrP8d%8IP4 _q&&1ry2(OP,R" or?I**b@/y"r/4-6A/C:0 sC4fr5ʳP5j2$3űDQtEt/1 oHiLTS\>`s. 1H!Av36gɤ̋I]ϫΈB@/>(d9]=R;',?!UsNXV|%l'.U @!pv%4UABS<90l1WDKtXtX5E?3cl<xt[Uo7 (؂JYSK385q5rI}#3WV&g1ujo 3cIGtv1wqWQWyRV*ybgmVמW.y'|v.3pb 7:418")4~_aj7J5oM5=YCՑYo6ojJ-Ooy=YtBXr%w6Kؤݗ_9sG0WsIN` CDgՖ%gR8KCLG92q׉9љ!YըmyyBтҾ秜:2 W7ئצKr8avPkZ8'e4Z8Xn0 05ۂ Nx^TwMMؤS#Y8`نMEtj>L;̖?Juk 6ttzO=t)z)wyת*ɋ+TW,[nmgG.᧌ٻ|C{uEUݭ{a!rL Alr}L5n!96n)o1?[#"YMxŽUa83[;J:#}y5rʙ!5,zg̻1Z<,»Ղ~wImK8l|GP 39}5ׯ4 E]MohM=\XlA~7zJ+8e=^\Wã[a[d;yڡ^ /|sڳOQw>GVvʡ%}˭9-'߿ͳً%G}`ml=[1/=qhs 1]so}Rw޳y@^GY}>~WXo|;wn)a1]% 3%/۵纞 $չA6)EQuw3d>Xe> 4א{q - "0` \@aÁ#6l@ŋ3jc/*Hq$lj$9.H2傕/Ĝ f88sљ= &N9=jѥNJJզx Uׯ`!BرhӦ}H-"p Cܺt%˷޿-ۨ[+^̸1G##fDʘ]̹Ϡ/]Ly4љ3/b$ժ[Kn Yqى> wQmqkЕ#GU~4'6C ^7WtIm^bݥ:=wOpyǞ{jاn߿lp b6\a{8" G"6vA,$Gi(grU0SfqiQśv4eCՌsHbH'$/mvT'SPRq^GWFeiX%+{^&Bܬ:k6ٱe,첕9[볹1߿ lAs[Ui:=+ozao[h7h<ba;+|6f&D8$+oSZ 8'}&Lg4C;tD_DB~1IEmP2 /")9u5hPU!UD6e*fK 3啴/o6V2;"(3v*eRE vdYTUT)l! )'0\x^1 s \ujZ 6/1nrd"'F˘+]Dn]/J h9Ʞ xXGFۡ1i*Ǡ“B$qb $rAIDzTF )#Ge`(MTK钚DZP٧PrL4ͩN6R_eP0TBa 6eS*U_f:$[6tg[Q\&3j*VčA5m3q=Lu6~FZXyURT+Ejv&51] yPKw"(yuL40>FlDhC*R$m#Oޚo K?)St# ?Po" ЎVZ7P*+b˟:%IQr6ҪM/-yZ{nQ"a,_A9JS84wMix%8Tf>aN万1 gxó_{-kxYExF/61婇yf`>vmh`ÃBSz^i*TXIG.3)p?bܝ))Ԍ=mIw uQ{Ava?Co]<Yר|3ЍvHG6 LEP UfqUOzpu7WE$nF-Ze8n0]-$Mk0"q Gp9nc! `5[Pƻ#2|[En`ٷ cpj:{2j<<&z .yslBGrn=/OI¹h031b3oQЗ',F9oߍ G:As8qh?7AYze lpZ_Tn6Ehԩn~W;[xXW/\7~sV-?]-#U~#ί~s`iv&yd_]Dëo< >(} >Eo5'7W9E0%#5kq?8Ƌ8*y]h ENEYD-ZL3e\fs%R.%ﳀL׀D 0]˕? ]ul'JԁM4nb܅hZ uq v`)h&h1`0S{7U1o6҃vdWcԡ.XtP @Axq SoZayM4N7aza[-  lpbl {`&{aa!hpH',mx[~hxP{▇n p haapWHـazl1|VaWH&y ʗk(`s(&hvb8c%5OQюht~~j~;bd0w0׏LV"'[QG#HD"!C>+W"fF,q(Q9"3uPJ2IUSBFAh` Fу>(h.).j&U{דFv:ɒ+\Oy.i{d.(Fvq:8d+DhV(oі`{~awyhxi'(cbіx {yȉa0ȶٗGnInɋuyywCpqi]iŗFxIIٕ! ٛ\n©iɩ0ωlƙI}LaHY(~x/Hdxd(G "'p"Y##1Đ;s3Sr2f& : j? ''y(,Jv.H~Iv1Iv3аT=aƝ?=i6.8G8UKWUVh0JvXȕla`lCƌodžmwu)0  І {Y 藫yfUzQ2vav zij։XnQa P 0n`bzal |bjwGaf *`{7OFO7W~Y~ ўs MFS@9+2Q9#:2*%:Iz373S5(@43A T(4aJ{LUvW' jx{Lk۱A ǀ< Uڒ'kD-ݰu9+bI-V`Y,'fyYMri) Ѷ Y,T,!ؕ֊궉!֪椷0W(`q n[^ga 5K:O׬XJ/WSdad"0JG)"׏. r:=ʮ=[4=$sP2:$cv@9k?x *a(U뽄wF9hо.w 4 +yِ ܐ Od) `Ac/ 9Wiv>;DOJ瀴Jpp!aP~iV۵|_fX_uf+`yijkWp QX{l +RǦ\0 /LGf*Kn+],k|tQc˹j>GhbpO剺*dF~XSvZ:Kɖ\Z{."keRy\VR˫$м,ss8>Q&(A*(t,a' KyBi>1(|ul^pw?P- ||@^ـ`_opwUGvԐc9zBlvnчnJpT 6umJFWk8lt:yy? ~jMn0snJ-nݨT oLpJƸ l ][HpZl` 3-`ӻYGx6p5>KYgf$Ȼ~!0G _ڒ& wkaGbge9gi+v<[{f|aMވ]]߫ 8ΘgXMtual+؞IL.Y +ı 6=X<;^)6{ЖF \!([u oՅ\~X.P\F_Nanۭmdp]lt^r.4IMd褄4 ]DٚMh6P,X6} w[_.4hj_pP{`-c9 K+_%{~mm ð =,l9Dl844.tObwQx-E.~!?UR.;\k//_Z*rs=P w=.& s]1w0%IB t]M}bJ&R P#1QY_ +Ypx}b$XР=d8F%jD5nGDhE)UdR%##9Mf)rϞSonÛ _կg} ϧ_}πp@  C?40"0*B 3pC;CCq`BQ<Y\D[PFk$QspRG$l!Ė$I' +J*|"2:/0!+L2i4 L6 j65\t\Av=A+w^|FmlF__`ܷ!dž#ΰ 3ƸJ;^rJCvhK:H2C"kEh&M8$tgz((Jw&CUbQG+LTe;Bk,X_ cnUW{_m7^#6cdmpˎZk΅Ŷmĕ\t;> cPA5SotmB[]kuk81v G+8v-vHx0D~{$R,|"#7Jk[HB9h)gGJhf5SʠFz~mXjn[v dVc_%FiLvBMlihu7Jo3 jo㡱C :p84+rcU'nsSO8t[$TGޅQcԗj7;nCPH FdG#iHHېnjqO<ȕ+|K>B>3yf/$@'5Y`'WgLɘO$\e]ɒ Ʋjԥ)I`۩cPy)\!<V1tRCCh6X tf8?\V78D Q9FD"v9LM(eIOFIMo=$JL OU&iZ*X54 R -\n*0ܥ MQ s¼,|4t[&3_gBS6&[8mƵXˉN]hY,gNg\'= {+?g yyqhe- 7R2_#QaH[Wb-Qz/|]DH:>-l#ˈFLz/e?JvRJ|'8!͆&Y(iwC];Ā]_I}R!Z"/WSV{BVel+X?SnjeplتCP8؜\fa:z+ $BNJ_{iN>9l;.@ 1Tu.u:l/c Y?#P˻#屎,j=Qm|Z"'s>LLd%yɤSNFw9៙$@I<ݩKb#ze\PF%V_Wذ_rme@3ԔUxkpe#ja 7=Wng"5xNw*}61-cA_LxkӦv/ζ3>bk(K{G}v|HN}Iߗ< J˼je) TW!xEtI7pe{wiSE<$SV Q@Zg9ٮvɜN(%Kd/fePEAYF'Sk_ "`\4/}'xiEksQ\.8 vMҏ9t N(n]\D}l"/ ٧;@L@;' 9;£#ː="Js@2'ْi,<*;>Aq>(A]J 0ڌs+B0ܾK+kR;?+k: ??:R!"1d3;DLijS@FlD\k7qq#I7(K7P !9, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c>e.S 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餇ZCM$M;__~Y97$N4S@7#N*v*>AکzNA󎰎}ȂP/p7_1-7v[jdn:X9L⸚  k+h:b.>{.3(|U> 3>6 0-8T\č1.VJBS\k4} 'w &͎spmtmr@= p eq#t#1yHMVNuɼn̼LͣlԺZ6F5amByXcܒq]͸-xtuح|3簒AnykC9:ӄt#?9{WGV0v6j  @a@k7S:V9Ҵt}6O_"auķQ &@fNf 5A>03Q YX% yƺls36yI6l ,DGYJABH# KD (ؕLfr *A X:xOO ṳ&7Nz (GIRL*WV򕰌,gIZzgl*GlkԂN *5MMNj8MށY%/ 2Eyis׈% A޴pSe iN< $,:A@8`H@A2Ձ_(<0(X $5)(ASDl)(#Z# } ]B5B^ъ7.,'o s^RC p)S k'/;RenMpԄ 9ArTF!Td'H<$5xN6H ҙ}/|S%(/TFPRu 9C55br2GNnJT簓baTM&c(AcTֲuf =1^hGV4} NXƾ|i"⼨!nM ><'>sVeBMࡎPvu/cbq:lġr׵Hv-|$h1İ3oOlHw#|=`+>t [ΰ7{ GL(NWN9Hq6`d.&9_x 76:嬬x Bz Yl7,+4M1$1 Aep lґcm[\lk;I  2v!4?LXh씣SihHy3-H:0@|i3dVk')Y18PQ ^-#25<3~n#21:KOM ͘G]<3j9!>Ȋ꒮~*>vm!@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9YyU3\sv{pvsF>Fy㋅s=Ԃngvq>ùIhg7qvȜ։Wnyȹ@xWCٝy㹞11 9QP8Yٟ!u_z4X0[Q- ;Gu`Ƞڡ ":$Z&zU*.6I.zmZ7 " x(ڣ,@$X(44Z3N, \B"HAJZO  `V:maʥj^:;Yp ` x^ʔ z syz_o* hৈ{*0)l0 𣥕j@BJ-Wᥠ""2+?&Jk:ZzȚʺڬZ*10h9D#ID 抭:B-j$jjj|601 q @1*0*zk*#@:۱J3갃ڱ$KJ@_.Cʟ%ˬ",3*+L*4c"*KĂ;>; (k*H"bPe;Df+ ]KЈYq4i XD"k˶iT1;J4Qk c&Q*Xp="+ۡv\P11r+릆Z "P\E0뎄ں;#A X{me뎑ҋ" kK`7yX ˻{ʡs[Cf/6YL`gxKKq:q"fOеOW "<$\&|(*–u)0*1b,,z]u3zu8èr03Kĩğ;L\1S;"RšCb\wBag, .ڲ 0!#7ƣi TZ4|Mǂ<Ȅ\Ȇ|ȈȊȌȎ$beP,ě6ZpqUY8 iļ`z\nz0UzAP8-lYPK@x1X )̓q_q>r8pPAaLi-% o//! ¡UL-<; u Wl~К2߼Wqѿz ڨ]q ʌÁ- 0A%=|V @ VjFy*Y3t`!{k*m ֟Ljlnpr=t]v}xz|~׀؂=؄]؆}؈؊،؎ْؐ=ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڨڪڬڮڰ۲=۴]۶}۸ۺۼ۾=]}ȝʽ=]}؝ڽ=]} /m0L?;a!Pmߵ ~z;gN= ^ 7 "GxNU*fդ.~# N]F( _3R48$ʭqzq bz !e:u8.~iWߝ†ik1zAtESbPD0xXSag@1 (oz1q(>ߋ.Fv`toVJΜ!P @.GA.i~Nf)|w]4^z η n4zAGqZ)fՎ x^R hN8>^~0 L,cI:p)횠;+I:ÎZ͓!ޅnU>$ɇl@K9SX Z,_+ѩQywpA6g}[aĉ/fcȑ9f ۼ3 ls 04𕕼91*#jfN'2&^qɕ/g\0Dy+W)0& Fڃg_P= }UT+BCh9 S.sr2lL~o0YVpDK4DS`.-sh;I(e7lIGj2n tI(rH&-"JȻũKpj/*j>s+5MO@tPB 5PDUtQFuQH#tRJ+RL3tSN;SPCuTRK5TTSUuUV[uUXcuVZkV\sE|&us 0N|ptuYhujGںi 5QUkl\tUW\ \Wnl Ww_~gK0Đx ]rʦa#unyF=(+ߋCyE)>b(Cx7q8ekfkgxN>pzhGPD-z^&qhjK~%k-/V{`ef{oo|p 7pW|qwq#|r+r3|s5 T=D@(gZfcZIE:v½ۋ #ww5 s jd&LqxƄ aYwv-xXs&vFe 686 [mHg#8@ \ÿd &2("Gi9| jl ka[ɢua]dv]A "#c(+;R$zS>4$y 70 I;΁>0,o~ 7숏L&6R7 m#$` H|c8%%^`!AaJZ6q!4 鐐p7h,|"ntȈ 9RC#yC8CbwILB,{/4l&&*XYI,r)G,i0oyF$,H`0 a~/h1 ODLpnJY:f& $ 頠LR@*zIVr%$zB>!3!aB8: 4 fa ;M4&LъcK:,$w#xˑO|7xjLts?)[j +@ufԿD,bHD-AŃ]W#Gld V5rEn3 %"κIgxj2,a‰"2`ć Yck([OvDh3PJpt*z\'-@[0l"#kVʊɆFa egŻDDuGmro\2npbـc.rG,jbh."'LtcVpUۈY6|SR"ks `_dnIaoE3l9qKG";tG"]H[=7iu.|cmƫ`⠈,c hQh X Տ"""ښ<N2& | ܇43]D'y(s"d%Y>8s*B.8^?bĠiZSP'zSdiZS4w"s2 P(XVea֦ԬWM\bD NcZ8׆d"u͌WbV39 't |ALB0\YY` F P (Ԋ$LH >7 2[ W8>~HҢysq͍@=[<9-;+葧G∴+mV,Fi|xzӹ -?d,vf6^ ŽCbfú/hjud.&>>BRxpcfDcrGQ %Vk9ۑbC&4TIxGBzFtR<ڷL8Ȉ9#勢9_LR}"'ʆVXbȆTa(۱ ڄc+|`d‡`p*w WE8M:O:\ONN<Z +ZzJ|P 3uWx WӪPYI PVQ%kmQ QU}Zm-QQQ R!R"-R#]TH#]R"T"J$H#VQ4;l$Η衈ة&*05؄P(@:S:u<=> VӍPBUpDu۠F]Rl+,i$t^`PR1bἛ,i.# ң_]*9AE0Up]hqƇb'WVMUiUX=_30U|f- I7: 0hO,\R@vMRJW0Ӳ@S5幎 8 P E؂X؄>XSx? bR;S:5T(TDUT@fF 7"T&J-S$1YT㫄QV5T2JiPU2JrAPx=|s#n-08v8\T2#X@ bE>tL8(m% s)=T #n ;چiŇ(q n= tUWͫOw}[zצW%&rWX ݎ0ݖؐبG#5CMԼFeҎHa=#T'Y ,+` Q<=XXT--36'֢ lt&K. iZ*|`9B[(*APBg8`ˆs؄v3Ô . !@$XEJY$ང,- |VX$|놱 [a44O-r"p|GľJW] 3!-0*Н%4fjp%ZX =X%]]X|c?fKfMؽlMdϦH~4RN ghWPTT8efeDe_W~`af]]|miܵmVfef{暅&RMaLd ՠ Y!d`#;' s=goh2o~A_r& qz. n=r:(B 5x[ބq`6 %H #@>a SWV6J^Il @jFE\s'XOx͈jc&BF⩆& bN4\UXQYQHU` Ík2>v249%e48%:ÖS=vl?@>6tt5Cd==lf]Jtl|PPOmFmT/^UVY>n[XO^n`.n%XOYZmZPfvfuahp%j֫0Sk opk p v?^H߀}7} y/@hol b>ha|GT3zgrhV8m3B  f/ IVlOφ$q;|x'ByV@g[C1Nqc&XDr-*0fT@'6&թ~K5MK4{4Ğhѽ?&>t>AXD^^݋mmAXJMuPtQ&uضTmUOYZeXa.VWeVnn~P+'7ߨTf(<"gX $g,pw|qG|0-owyYb }~'$Ǎm.c` p0H.# 52ƋW؄sK k;G1r=;pM3FpZ*l>_Q)ɓ0`'"|:/+-Wl5oӛOʉ3jSmӓUFU5%2*nMHřBy)4r.+.e%*te-`3F8PJ\yd|+<ˡ3SFji:SfZk|U(lչu=wiΆ 'o3u6s દSW%Ws縒;FsËw˹:^{~=~? 8 x * qG"=H"]B 5I#0XS#:ux, >'JC"'VOHrN7$56x ARm術K' L߉RMSAh9ˉjэA&#N5"5f:Ϝ `# X*'>=`><߉H`PӐR !E!!J P)QJlIID11#u4HnⓊI:zK.=33]S4TO>Ob!uR< VDV:a .xLP^ANNZȵV\%V^v19Ƙ\r^%N) 0!bmĔyhƲupŶoVɭro6)4sr%Ww5>UgX5cqށg4~7{FW)Yk5]{rN# S\eAp6\L-.mwmw 97qs47%79>ߴs4݌3xLGN4ZBM逳9yN6Lѡ8cfK 90#M8>wؘ.~sMp ZUcH=q(!8jAug7!<1tص^WhI:= 0KO,E: !>1-0ńUN-@Tz sE,8$@NꊊAܫ.ha%aK0%TddF@3f<# \,LoB19,8y\ƲБ#c̈جy+b3;33pjҞɝjZB)Q`C!,!Kx-F0q k8LJbYMXu*3b_F$_Zd~6YA Nd#p o0t A >X(ѕ\8EE'>f$a&ޚᷜZjYr2NE~C)]01E0e__"625-cTe(3rF4oX%cQ7i}ldE&Yݤ41qYHgNI~&MS$nJ򶷾-p+L#.r\ iN$ rD)1 L'[fOyӫ}/|fOp8CP/~)k,"pE.)6c, Sp~Lypyl&>1S.~1c,Ӹ61s>1,!F>2%3N~2,)SV2&j^= 1f>3x6nV񉲁bv3|=+zysCb) І>4=WU~P4YȂ 43M/2>hN:~5ZUծn"І;<ϯuLw5jY>6ej̬~6faPl64AI6Ýd `>X4q8~7=㳭q7.?838#.S83s8C.] b뒿0Uo~A1As eJ!"l ,0*flaKW&5@w0&2i=wR n E)f|sRjUʹh]c(-1_j m:/A3#M0̏;M?t 0N4ao/z9:1A0ANbXFD珲ndF/aw˳RC5ҟW}u0 -T?jp +grq;1I,"X44N}CT BLΕNဃ2HޝH.(  88A@ `+F 8BB-YN1,%H1s-! D xǬ&^By{J!aP(aT9lጡX +tq9HL]00П!pN6u݁b*9TCyDTޣD A<%NFhIBpXGN9>S 1;C:C;C%V,*L*8c1-# b !80A64`#-^LD_\^00b2T?@ 4D4AB S0AH+E I8d+h&INI7 N&lUdPU'U9HEXI*L3cKnĉDϙ&^)$Ս_O2Ln‚*OAe60%\ iY0EU8L%#x_̅ n)}!}n\ʥAT|6&7P a"<(ݎ܂KDtĀo< }pggvif# !CA&NNdDAj1e2шىD9((*|cH`XH(OI~`9-A %aH$aG6$ɘ\DF$KKK]ĭEj|jj64>򫝀dh$b(D)؆N (ρh(N$9h&k`(8ب 1H*xGP 6Dl\ES( ,S|Mj:JCՂDI69@m)tfXȸiF C489j \)mFड़:e@ 4`rq >") X*85渢2BjP5p;RbSF) %GȂjA*9k.;j'>*aB4~.- GgC+dIGQfH^6N+F,-1oAH8ֈLGի.GhL c`ClPS()ShEô-YQ4BC|"Ci/O7Tm6I.e4q~Պ^&J,흸D5oOFܲ %8i+ :f_X&LAɈN.fnDl9ٖIFqғAb6K\ʮD.UgoD a6Wq/NݔA1T&`O$+W!I,B09E* C6&hlrmHȤ,5j+  DΣLc7őFeeWzs7mPtSp5l6kK1FCO(B5r6EHIưGͰApo:1`4;߉ ̘d:1ϒZ OZ18m'ꄲpq)řX45bgb'Gt0 21%EjFHHā"*AHjr.g9AO~)29D8]LvV;4Յ4K$~k|J$IF03n+O+o,,X,lT5,ZDz465l4`1 lJsNI´I ب,8i Yk3U.&OH0ײC7rg^mY6+L`Ze@PH M_a#Zta;ofZo8pͅ8pYnKLOGF4O+jGu*~?N pH3gOrC.@C!{D+U,Hf;8߼9zl$(rKYh6/{G|> (KnK"TZA3j~/,g1JM-, 1:06 _A߉LU'3ԅKl4X6,SHl7{'mOUޒ 196NĂj-:8Y u萎:vfoC4nJAk"S7# W6eI&؝]1WZpsA5*]B\>qc6(#2G/TJ]CA I^1g=T7}-]^tMOXLC]^R3~Hdυ1I2=NmIuC`ob˝b5'/?7??GO]7>gڪĪn Cp,y\$A4AF "~kS(m'D7seÇ/t6t!L Vo@-SbH! |ndJ+YtfL3iִygN;yyP%o5[,5Kq/{tz5]A|{sO-<[ڬh:ę~hr |8$l%ʕ$n᳢q$s&RI%RptV]}Xe"^SP֘"3!ǺA!`-RȜ5I6d1JY",]q" G IcQR=tqsd8W^<:[ e@7~Ï@>`|NVomVN|ԒuKhkm&Ҏjюg|8$Ә">lDig 4Fk|h0:&n4!.Ƚ&{oY'qyLՌ-5ߜU\I8]K/iMd"=hl#GiRJ7r-s1w0|LT)uKƚm3Z _3c"}X`G&89I1p̋ s}_u&7׶B!Gd{RqZ!qn>If1|D {тgRvǤd+J)CsDi/F}G0q\ (ꣶMLoJ|:q0a;G6Ԡhr 5qMh 4(E$cbэ, WG?4+qȅHLyWYK.4+v,"/K,32W#|,|I؃(iTeU)iG(AxQGWEEbOaS90tqO|\Ήd3g cdې`%p>+`63h$ $;dAr&]L>ti_|!cPȝTŜ#G&3 W6:ĠHT" UmByQX Z 0)BnR\k4E,h@R(xGn>QTaBH"kQ Fz۴4JjcIh=\2 /t--S#aiAϼcN,qD\EPb^f㗂lC$[>c[AFUPd=g.jfJ': WVOA-΍Xs1!#(1 6dw:>"U\κ\8rA(%Kl"|QLjsbxEݨMiʈg G0UE\I=4X/9ЕCfj5|U DG v! J##bq2Pז4!OA̅<+h3P<VH2c{ faY5dfg)l)HP@1D0zZ`~Cd׶!MmIulc -}adл!q$s-ytB4$  }@ϡ˫t{cN!H}ͅ_>&i+͊c!Eut 7rk]4e0]a,;\ 2 ^Fbè["-Ҳ1Kp,":^R -9MD"ly0e)SvW220?2ŜmD)tT*0j솼b n&l"g) (HHb̷SKFNMtLAZ D%:.zM;.59H ^s=z[M4svg"0Ň&((p M|#˨F6k%H5Ty!"ↈ&>,te? F^7!ZlL4o l(IABoqx2HECr[ RSfsI!W@^Wc?{3rap"B?/+1ئG=-bfpY!$Q@ 3l{crx0~oCY},vȈnBJbX^(jPgQ3"i(Ρ"nҋ>'62Bp n`@lP6E!2OhRЃ WB.!  $YEy4 ;MDoIx3gP.BFHB#0֡oc%oj]!x&x%HB_A&!'`<^2ci v4HFOPد 6f!P7Ork2go4p<^lpFbP;V5j}kQhb?R$Np#Nأk]L8v-P" j6cQ0G <!m!!"""- &f&4'";"J$C% gy6HSB %h ?D8ub7"U>|V-;s%$!sfaP.J5b)""b \<-\YB ئoP "^a ,&ނ($=bGZ`%.1&!Ǡ %؆E.bH„C l L1`C$E4 #W8%R"N"V5V^C" B"ds$RHn"' '#t.7eXI>c8kj oB=c' Ŝ9A"^:S:SNġ%3gb!ްAN"PՓG,RQJ`J3`%HIFM ?BD&zăaT(-A "*DNB2zBM!)GRIuRJ?CCNԄ%>SFE+"`XFCS&v46xtS*BH4NI/np$mQp94%p!rBM!4%uBMsB* 9gO TaO4$   yb\$%e 9dU Hv 8'f@)>)A"l]L]jLT'_lA &1i'&6.Du dW*XaƆ5Jgf)!,V&@hQfʉel`l"`dgζdNda5(jh^m^WlzQPS"P$D!#nB@peJ >Fhpp4!#g2m#4%Ar"A*uMy A̅rp!Ba gvV^h7f!yivȷ {hyK㕊Šw^w uv=}9I2AffK,bzg{gk8zٷh_V8Wb65LPbT$Tb-V!Y4JA\ Gj#G-B ~\$Eei2ax![䑀u̅f!f7z'OVaU$qi)qGe dEaBa"TR'kjkx^%ho>p[d| /6@ȷ /*6! 5!Ov;frUBJd,W"*!CTU:sAmيDS2$NwE4#zLA"lhuJ#Tf Hw7X""@L:Qy A:^ NahN"#!BJ& Pd/9P;™xc? z/A?XeAM;XG4:nG lE!`Rxj@k#Ѐ!@ %Y5L„WX\Oe x$kKӡiBG:κl^v޸܆ݢ`#@IIxA ^-b:$\XO,")EBe@\NFA{ 2"ǀ(v#!",vL;<۵@qN^bOZ!T! &S\csGmӢu"| :<@׌#vt뒳9q={҄*ۖ*]ՠ %&I5@ nGאE@y>@Y,._]h[M\$<M'K{91j#8H7•5e<Z'::$X X~\RYbxL/«a n L&hA !؀h Dif $`̅ ¯ (q!]=P˭/gG%"{(%uO  iu+ hQ7~Ck/,Wh @ Y\q^b TGjJ"ZnM3wN[9|ȥ1Åbq!ȅtȐ4r |5aA3S)/R3gʅXdZJ # VS9XlsUS"@{@5[ bh۱SH?몾XɝlǸRZF0e3`9X">c&&I%%N >>D0CL&b%!,a6#FI`hBx!m"8Od eDVn >J qaɐ(Lgc&ju&+Q%礹vHO&k>&XS&gOtO8Iht'1>!C2S2,SXe3PAB"iT>1}jƔ+H\mʒBR=(F2t*>EdVҚQ%K*UuUHX`YP骜Ko5Puo፿l1T9Y»,7٤B7pC;@\ 6@:T p8sC#yXn۬>0MܤTMSi,!Q78NssL.xT]uǵ]'pCȴ{MZ}R#Z@(`>N > MNHB%H BSh8$͎`yM.8x^?6)P:`V^' WHBc?fȋ AR, ZYD{Dº˟X&9+/h:MPݴ#*6|3KK3}RK|4p,c"*VҎsl<,\mxߒFĂ5@U,NVJVx)z_W(0A[Fna08ޠB]k1Z"@Ԉ6Liq{P/.G؈Ah- 5x:(fy4\b3c jy h1|b!tb_8Fr8@Ur#AA؂,M G;ѕ8lŔ̆*㠋o1ҎؼfKxk uد2”0 4IG|A-q{NY7 cfv;ahCT'dbGXİp@c0)lDD:"B`ЄC3$D8qFj;$'6a%|0KPԍ;L˓ʗIA-;佋_^ޑA$ڄO9j-$*ԙL;Dg(BUUV#qDABI,F* dMJHqbj8rj[E$5+D rhSĶG=k+“r-mM[3JvbHxBsmk_ vmo[ I Ov>M+ŋ&:ҷpJ)^ +Үw w-/ni^}N$F6!?eB~䥺X)'zL]k`G^ KxF.TxpSF$.Ox,n_ x4ox< yD.a '!X{(KyTb]j0\ ׂNlj-f.|V3nŧE2\Bd, zЃ!̈R4 k2a }=CAuࣕV8&elZ|涌ymn5T!4ani6I9R֛:ش.qE@@4/4>yL8X Th 7LQ%|_'&sBm@).G7.:y4>ر 2a 98d]|!6ldl{e u4chCY7M]Ażcv w_iL(0XEcg2d#>4 p O W| o~.|+-qf0ܸ t'uhnAۥ b.x 8tj`vCHc?P0{ۨL KGp$ lfTkqߘŸuΔ)ى#F)p8v~k4K&Rh\{  3`@#xhqxiz]1L H yrW'p`Rxg=)&a4k\ wc1yi1Re"(|s ~`P|X(fn}M#'S` S%@Jր*  AO820&r~#wc 'n8uWlV oEٓ=sQg2ې#x"6pA8^9(w0g!r ssp!ZuWVD,!BL+Paz q0@pGW+@Ekym{ $# bMօ\pNc7Cue a{MbPE$ $8~%[?Џ (`m (ِ=p n(9S( h" 5iՎ|r#p@H VihhQ"0 $AT聏V,A4x"^)V͈v ӈ7 '  GpsMh瘖Ca} ֎`!8$ϠdCy! nCuE}U%}p->-P+d Ā ч) OG Lm #9.q5d 83i$Q0;7/XXhAKqWi[i4ؔ'WqtPD"Оlj0k\{P >G}I їj: ۰ ivʄ!juJn9dYUbP$ Y& i~i+y,]*M0#AXѡ>Ғ.h(p>ɤMj/} Ƕ3D(0  Aw \9b:\J Bx8@4DI|0)c,j^ПٰQ{<̉z8!!h4u''ffhC E yY ٢qr\]B '.՗y@5J z:p8׊uv2P0?i )2a  jQ )C2"s3 @i kea022`Ǧ"\1ٺ e2aI Qd<Ƽ"Ď^^Uimf~%C۽}٣rQ)Aq^PѪ( QݚIQM]: A9m왮vnk͉r 9њ( -/_)o0O1>gqԦt<*ָ HIY`K/ȱ쏺S^)э8| @s>W\l-^ĘQF=~b"8Yc\9pS@e(#2 =!wH4%83%%T)CbPժTLd$دbzE6ml7zݤ)WwW4փEԪ-aÊ&F{k`|?*^\`" nkҠ+ j:.h][lڵmƝ[n޽}-iea+>A 6_xٜ[l޼`̮ؓ<1:-]GxO|F fnzCn( à1gAL10! . ?Ѷ@6)"{!+1DJ癙gs'=X|*¨oć)|Jj*3% j<{Ŭ**ØhM7۴M/JK0KJ5 3* 2 r C/J;4EMFI'RK/4SM7 F%U9{R;5U[-lhbHqG/+&t F \"(@a7m ;![ ǿ=RK9VLdh $o$cEqGgꂀx\Y)o"*;u[̀s\'teOL%iA*BRפ7BЄ'Da UB5ca e875|kNtЇ?b8D"шGD C$65 cc q<(FqbE.vы_cs,@gDcոF6эoc8G:юwcG>яd 9HBҐDp oP#d$%9,`X0Ѓ>8H JJr7t3uD +!>S0ApL&3 pҘ hτf3ŷxĮɯ@:8y`Dp.ӦݚU-YGAqgtAMw#@7q1M1(xp9}[&OeL?ŧj遪+o;.J#dIAfYKbq6,]ښ@gnaQI=3#B_TᗿF- zI *o |lV/5O e-*ZUAk\?blu[zWU|­Aж{=3#CGĝCfHdyG\&r^; : Ɲz 9`81,6'y&hEC@m4ɃlҠ e-s DU͈>Zp<(mcwR$oY8n+`aܛSN]31Y^SM,P3f$Ũ)A|`6Q A .a5+'4Rq=+Z:azDhH^#ֶup`) Ux% `S#U` 4ҟD .:`K_BqFks>0!=Lf,9]V3:~C:VgRHlKh0g:EE@'R=Υ\r@Oİ$, &\b8f ˲+ppl36L 8t` Ld#@Hґ0#dWn#h|${^>G=]CN*A=J3L PVn,9u:MMܝ1bRӚmA-ow[}W3`~'8߮E@W@I+[%a|hjڶ1A8Wlv(q%GN@Ih~Aȑ벘3Ӻ0G4RTL( @f Oʄ$|ߨNq9*-򌨃C[KbxB,zgQb/(>IBl!HvJZdӥ6٤WSG93-M|i$o?`՜^8Vrխ.F~OdtH7 2nX:3`p3pTYD9355%/iPt^LA~Hj5{ Oo pį+°+ ;8#@3&$) lXo $邂{0c 4ۍog($|`#).Mho; H^ҤX;2Av‡g`? 1FjddE ŒirCC;? ǏH0 1\G3@z0t@d,0H ]9.M~gBhLZl$2T9@Ç|8 ,H"t* !|.Xtvb2o;<( :L!0<̉(C4b(ö+CB<ć$Clش@Rļl@S1=2l†bK hh|XHLo3$5LXsx `;&J4Ϝa=i!Xiˆ;gLȌ%qĈÇnԷc}kÿS|"('NBԿs0tN0z̸"+H8N*|4}I,9g Y<p.3ȋʛ=ipH1DIrIbɂIz 舆 M|,t 4!2$5-3d3Yf2BʣȋJ/)=)M˳2R+=Ik˷.S8lXDqXT1݆Kqˁ.mC=F\ (R0 B% ;͆MHIEāڴ@Uj _Mx JF8 @ sN'~3BO,@뿎Py\χG$ňOȄ̘Pjחh aXLo ׁh5XW(#!XkfrB@`l1+亡.:ԃ8CHQ069eҬ $Q0%XpRY>?'C!/ı<4V8XZĊh0rDqDPdӕ Z %Cgܴ챾?3&0g@i͐A[ JF@sTݤ>XUXBTlkk0΀NXN0UU{dž[DdGv8f$ eʈO Abm%n gJ]p]|0O3UWW~]:T RPT:|u\݂x>ɈTb|lAZ%񮠻8嗊ń*Iɰl̬bbl(Hο"*.\5\/^ U\0|Oca˵\-V̕$8L܃΁1> `]9{P| M4ݘ5JJIV2˄njXXIYnX `XPX2)ÉʋHۛe+EeV(_@c&ef[{qZmr~eb+mc~8t6=u-$*m-[%ɩ&`3¡|샐+$0 g$HD+.  oCn(\ic׈[Y.},<yXbg^gsSQb.`a ƒM :%_5¡ר$ΞPoV ()ZgeK!p'sf% Ga֘Hg+s+Jrs0"!  1IY (%#2o{$!\f-El[|9誈CR2[/ّRF'n[Nfn7Tʤi;ku`5_GsPf5F)ww.y?*/$;4|$wx:b@Xxo;=xxA` {Щ2|W+$hˆ;t|cF:qs=i4J—2(ja}Q4b 0:gfysLJ+e$[! 0:R#x@a 5i<#>4w`_;Dns 6ʮ__~ý=>Xϧyo#s;. IzW$8fhlwt(Ap 5$'A~צ7LJu,Ay"L;X87{֊ 3q'P ; _ka Ŋ/b̨q#ǎ m`]mB.Bs@]G_0+3y(8\lc{Zr x+'nKPf4%^mn j(˟nГ93PD K-[|Z eāɝu'W^@41!M֮_-{6ڶoέ{7޾m`xkFЭw$'^d)+K\Е3w."]Ͼƌ] kz8'i _(DGY%O 4^pↁ p 7~#n!8T\˥38!SIr#JH&9b5XXiDV\[uY`\Y$]وQe#EP6١`vu)I9];fu_'y徱P!>R1E<>YvԗbCY^Q/5kt3EwCdWc'Fgiru %PGj*c5A0 +8APrq /l,J OqH Ov!d@vpW:v#A X&! &",vL$hFC! t#;"]\”񌇲n0 n0c9o#$Q䨆oLE$! &y<=2 e(AƔ%|[, e|%1p/"a &FMW0= 1TqTcߡ.@F 0CQ8 ռaF3'=Ya0e pra)q\> 55JW(ON ćsh:*/@p駵 CCHQfd¬ 1h;xDR:ޑB zOf֔}ҋ5ִ[-o{7Dk\= Inl:+)e,AdO,1 Ɏ7/y)lqOYR=ʊз"UA@AXv+"8 ^0^⨮+RD0;8"1Kl8*^1[821kl8:1{cwkjb! YI݁)a #E ?lyF^&36(̱;r׺w=dk|O]pn)iW;Jn4*a<5 $-sI-"[ԭkAam:ra$ -T­M$ >$B8pTKمFwQ+0&wo!$ FiSߒIBպ<#z\n1zWVlŮ|,S{q@%mPP!hR|S9}47Q{u0T,[ nc=Q}JMT<3y@>î|ԥ[cЍ@1CmDX[`t uCZM@tݹD` iQvCB-GaEIC|CaQTE5l mF{T~)t vhIE)؉5vPYG!Ha;9M%cޝLNx 9`BtԄҌ %K$8l^y%$ݑ`aF+Q̵!P.Q9BH͉Ct$V"nɏDᙜȅ&A)MkTʥ( fJqezglƲLx >˱Hb^cb ʠÆ]zDAc ,"9cavQb,(:tƺFPU憠&^{%d ":d6D$UDEaԦ8&n&8XV+ }qrIG58LB$;Mu PBS:hw*0jBԈ)_hzҩnP54@ >LFNΰM-K" yb؍NMB58j8O TriHF˷G>j`TK;jKT(3]=Ɗ4U qλe?G@ripd^"d(車CD&^ Ok 1(F2HzFyd)@aXEDiF E+F0bqOOZOj'ۀ|'8)MdZT*IU"ll`@hPk,1BH6BhTET, ],'[,F`$aPhGN;yKtl'|(aé]<~ JTE9 u= yX R!c@AP0d1a@EcHG "" D-$`5E b/j%eRV2a AUm8MZQN:Y(f6)- +PJm:E%5MѺJg¢nn>a@SrCm[1w& aZBД}"V>CVG@2T]@H&c⣑jYNTNH;攷l &DT^&QlBl]Y}QIUD-KIQƭT\L6E%+iaEs1V:>gqޱ4Dm}VNsB\ќfiiDx ݢpqo*eW˥b~e q[Wz}am\iqtEaoWq~qS}Dq-!q r!!#r"+"3r#;#Cr$K$Sr%[%cr&k&$P8*oHS4SQRJil  @2,wwyPћ㹍ue(a{uDc nm UaU[݀M=hU SE%2j*.fzzzzz{ {k\7.l$ColʾƴS{XET*AP!m$_ 1HWEptD$>F$Y;c{D7FJDaϝriE@7lh5E,QT$|ÆG۵LBz@ (o혶k@ QXA߫ TМͩ{sļWļ5>2L;wľdž{k[;ą¹<:FkNQܧ:; 09F|ᢝk&^k;9Bk|_=ϥ l8=EGйlC3lp=>x}KZXWƸ <>c E`ԙ3>ۥ-MLn6OS_;'X#eu ?/RG`O~eC@K ]Ι1tKmL9|S\6o@#$>q% +WcmId(DȥVnC͕ق," GD4 I&cҨ6PaCZuDlXeѢk׵iߪMkV^Eo_0lf`wcwYLibEE+ʙ۴߉fm!t=|s TR}I Է>C cAG7pb@Z3kJe@(80 )̻t@1zzh*t>D:'yG8"ƛ %S+N*lILVJ#$(*z '4J2 $2.: 5j+5*Ͷj*S=? TA#*,,IZQ{6P!An4=Ax|NM4gh T׉K<~K> |o>Bi7$ P=vfp zB9(zH (1)R?k^J&7J)'&^iᕴ̲ $jQM-9L*7t ,ؚ8;S.KMDN4ݢMYy矁6L(6,AN[18-K1eSAvygm֩)nQQtVL[V4m^w[z5Xb=~c@|| ^lωtt]\1Q`!;}r*r)I$XH"*ң64j)AZC!NAEJ)>b$Y+K+MEŏKN/9~BSb ꬦ-8aF3T*L _DPPmu6 e?|zC0}d?409@r qM rE-J'ӽ]#z#4D `n;+G)}XQ_#'< e]K1IMnEE1Sj H8EdU0A0a$y@$uJnG]CT|9s4`WЕ|; be`?7ƤB :)r3hG|ȷL3.\$2]R71|S#JPl䋶60!``B4^dD }fHEbS҄F.1hN=dp10RqFERxJc'8ЍC"Ԍq#`>Qg#[ oC&m6{ 2H/ l)a6D|/>$ש $I}, qdmER4zV"D"uKJ%MhƟ0(K2E*+I%BIhA^ő1[d֗SI+#Q=5yћPha5|j"81fU*XmVz$U8Ui?E 0}͉c&h;BVy"Pp1J 2gz"W$/=3$1B- 5GifCSg6O1` őd%Hn!f\'A1gBTy tB/̮]Ivd{dE/эv5cC82JɗKind]iQԥ6խ?b(D˪sO1< ?ԝL施p|'K9nNv_HO[₩ρp\>BLܒ\1du8kw~zVe?}* /Q.͙qn!=ȱ8֨C\;!{ceBډc6;8CdF5d~k0 :rUTv!lt$"ak X3D$Alb$l!g@dz*A/F"bkVa' b !6%01L2@e"@|`$Ɛʐ⚂;n//֬/i 1M eO08w ۢ@bbV@@F%jE$oB"A %!Ϙ.})0&tb"֦ @j*>, A^@9HL\| @ @@8E`0`@HP,0mV] 3?ral"*q`X)tXWf8y\9LagHDB֖ !r:O.<;˵@fc]4Z4[u"\ u_j, ~Do#tZA˨W^$4:!nkXg,?q[*O,8vEh@WFB@8S .AB6s,G+"ix A!KG8yjM)᪔rY80J$&m\W@Xt#u%w2,wgxl9r6'T.JA^go;NQA!4$BNOGZ7s>B0S H55ayw!6v"$ZTED9xe|]cX xIeG9w ؏z]W\aAB&9q~9%=u@M~S~u~rv Z Rϡ $ҞS<#S85C9t_R-@/uqh:g3,ZĆXw#Z ȎNiZVނ9$+59cA`A AiwZv"Z-W8&تx(6ֈm63dQ`)X/UNir0$ؚ$H$ZK"K%z@ksSGt^Yo~(`VVD'h rEZ Rcr{q`@/|dYJ__ utlTÞaKy[EgBc9io/Pɻ ڟGe%R66{@/kv>G]rh<@־bY;_ڹ8\28@+Z2drKB_`A4Ik7ĩD]RT|Ty"'n5$o F%z%t\`v/8GK"`7Aal;QS:G{z0H4>/R9Ey@|5ǜBȪt F 0* A39e}A £φ׼ozAAr|z!o=d=w\:`qω9Cɺ螠{D}FϺC1eyQyHa` N]uП8QDţ8łm4m=X@TyO-ݛc>}#Qt`CDVYD WfQ䱼\A\T 䝄;$PuWIPO QZ&^@bpʏ1t.apC=<&[u|\{cB4L*7a4LpzqA$=#P 6 nK5<$4]PsR\X=9gn]α}}֋_Ͼ޻߯?zɦuGġ 6F(Vhq2Άnh ($h(,0(4h8f|S;@@At09=\;DD. sΚq'wyghI}kZ3;.E|J ҋBI#Xx8q9Deka%YN6U꫔B+>ݘ8dddE9eaIrjf52qM;q+2Cr.hUlXv9c:♖䞳VQ8᳝92qŲh/Z8*WpHV3A 0%@-AFU fyLBL46=8$RHAkEpCTE7NVҲm騧^-Yz:P49f_~q5oX{eͽ{sD1D9`:1ͧYQ]U "HooUwwHxg^1$/+VlݜcRAx&$|@H~J'HAUmS`ō%QÌb=A/U_§cl(@M"UC*{'%clҠVmoW;FL񾘀V|J4¸`lf4Eg0VKtod H:ril8%/b%H !0;HAr%yj+nt0z&fǵ"'!ŲG]ec'٘bq2㠰|5zw@"Qkc iE덝4Yƚ)r0p&DHxg l.+JiHjR-$^DRUO|UJ5sCҕ8XV[q1GlP (4s΄#IR|4LJW wĥc7A ;0!AmE5Z5g6}d$BU`4ڀRRu["O3T:NV$Bc ,OyE(3[j2E4b$$F6:NhFGqT a6m#GÇ(45Y*klalA } "Dlv녷lDtc\G!X'rW uf^y3#8>3&&pK$lIlH,d }Xlʻ” #UfI<" 2`S@,bū *ׁtnPϊݴ(OR‹~6DU*ZNP%Tβ.K9?L2YuRٙ6pL:xγ>GMh-@g ͢VЭM-5" S%%4DA.vRx ǮHh>ɳ5QVjSP(&2a*VHM%Kv^zl@-RZbA n83<Uقy-TjUv$r= /snYڪLR-Ya@M@jy@;nK%x"-NͦWOWN<I K姚+YM{ +&FA jYe+{+s$+-bHq{Qm-TF *aupH-ZD1M1bww;:.9rYS\& ?epp}Q%x 'wr W7NO?%0xkel6>@LPl8۠:j<(W7H(+(EaEj'T6N]D?qq^V`؄8Jlt(`2{UVE|C Eq86<se$KXyT!yOy zrvA4DzJlT<=ĠF=ˣgc C;06 n 8uـ !VukNE$(I  Ҹ/~`'>jS;tP+ZT6⅏PFF>P9s?/YQ% #nP'l1 oF oV8np 2y+)>Đ .ْS3L2 rQWj *Tg+,x+: Z鄷+ژaqxu1[?.Ȳ$`8ڕgiA+=kvjXVI+ W2 Z @;]d U7a5V0! 1zJRS03QUkV\Kw;d2@J+-ܕo-Xzq|+~ |Bqy@ 3T uSS G3UX16RlUw,(S`@Uo16jPغ̪)l cem06q@fLHc#۹{UɛhnüZ9\\!V0ٽ F Lbt̪hW:逾+ G2Z:#S?QࠕJrT .[ l3W8\, v񳸐IU!VO sE4Lc,yZ[^ۧl <P= ܜLpP -=uqy5=jEdʂr݂[PWP}}Pj,W<a$Tc`#V=(b/ F=&Ƽ ,b2 &zS 1PC-|0ȝb*wD(Ɲ! iMtt>uC εR7@~%JhV*g>P"*4ra?QINfǁ\o>y"h0x=r[ lE|ݍ JLoNKk@SmQ]RK> ~8E4J=6XIKщ|2Z$y!VkapGaawm}WMQ"x I"оNaվw.ɡKdށ8G#:8*0X">oO^&wq1:8,(*,.02?4_68:<>@B?D_FHJLNPR?T_VXZ\^`b?d_fhjlnpr?t_vxz|~?_?_?_?_?_ȟʿ?_؟ڿ?_?_$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ[]y_&\aĉ/fcȑ%O\e̙5ogСE&]iԩUfkرeϦ]mܹuouWɕ/gޜsܤKs^u١Bvŏ'rqqʯg{ݹY#]I' 4@6W{ LA#02B 3.kơ>6qDKy'LtES !N, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0ct!.sɳϟ@ JѣH*]ʴS5QS3ӫXjʵׯ`ÊK,ĚucΪٷpʝKݻxEjm LÈ+^XsmL˘3k̙q:|$wMӨS^ݰװϱM۸sɫov NG׬УKN_νËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)pݘ#8y$5N:4s4i[ec4l 9yN6xh78xMÜx3P3 SN9Mj e t3 e0hfp.߬(> >೪݌3["9lBNNe3YcΡ"7:}9hfM9pmS)>LiAdj]O7nTe/r " D XY{!ų8 'gÐh[!PvMqͧN1ɧ 4'LM9r']epBoɦa 5fĪ@N10ٰy3ɩȳFP"ۢʺj]iLetI Uv]I&%٥MmŦXÖԔgu YǀsNhf4PƯ#f,ovm፨{麊N38c~:[ap9_9[4hJ=G79,^+wf,[v, 8;xt9GȱtzѾsb|ĸ%yL l`D5%xCf1blA v٧% g;&K2`jpʅK#%˗ELcP elb`Yv/pъHeu] M{Z&+XL5nTbƲ1IC7!G] *b3] ZU]'d]P0RҘ'ekC1_=K | gѹ-_(OCn*Vȑ>;A3Hl(Pq8$%fLSF/Il sQ`ЉFzWv:dit+aY"87юz HGJҒ(MJWҖ0LOp8)jZhf3‐K+pDL9T@CX(S2vᣐqzm ԋN/SΈ : 2Sjr ȧae%7U(a*9Xj)([M9@*Ub'h4g.6ᣰݗZۯˁ,E$[#}gA;jƮhg"Z;S-kqC7 mK]666^X\|lzv3:[Ϧ ]5D\Ja!C[(w#[y=ϳyGh߻:VȖ¶pJ 8(`Rqp D-XxG [|Dda :aPqی)^MV1;.H/|S h9H|*ƹDAjXo( l㺌v_4Cyәy%X{L\ӱ܃d<4bi;{(׻&a:*6l)ЎiIζn{MhQ\xOihfA>[>1:WjL7C MpB.ΈQnDICoػ܃i료{D`X r |Ľe:+%>qXY1zc] +lȚ@PBOjb\5K' eaمUTJ†ǛAօLkZ sX,XT#ͤ (xa!΀Vdz^~۬mfxU=O'&-us 37Y~0Z>|ݾTd 1mi矟}\\h {TJcyC `q%L>c<|c1`b\guW0hGx7v\qd Hft{'P{7}kqzzSC=0~ (tpeY&6WGY%G|F(\Ga1UP*S'&h%H&G65xx8q4ku5xȅoȇUs0za-ɲI{fwcߣJܐjhhun-l/Ѓ9\(gP1ϰU*xeq=kPQ+k8XxȘʸ،8XĈ8l'rnoU(EhҦʔ*87,3 0Kmza m# 8tFmfqLzf'9lC%6bs 7b`&҂xDžp)ex )w-@> A>wPvޣLp-Dnf>yz@磂/yV2L.xwdpb]c d'b)nPu-Lg$tyl>sW?wzHDp{ xzyÆăj'V䗥d&c 69Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:ZzQ(XA+NU:MO kqԸ(*7JVE:Ez:IɬjwWcv͇k3jj`1Zc]mF OJU=V_9G$Jv-K7PA bJyE'ڰ҈XQvHd#Tڱ\!;Q2 6kg вϨiď! c@c @+N;K>cO`b;d[f{hjR<1pk1Ѝo .JA+R]"*kpRz ,~%f s;ې/|H_b6-wۡgs[B2 wzf1P0z6Ғ$Iz$Ѻ" ,绶g#:tsN{*(+-cݐh"!Kٻ K9ﻗQC;+@#fҽpč#+h gp&Iʲc = , ,1- jpw Z4<>@B@B=D]F}HJLNPR=T]V}XZ\^`b=d]f}hjlnpr=t]y+pXk2vm7~|q,ؚ0!  lJ$1" -ϙ lhhz~ {@o\ͫl_c:d'mٜ"Ƴ-}mi_I0l=l~_ր hP&z ؖ켆.As]M0iPL<~]ˆ(,;>^~^3l("ތs1P1Ri#~Xٜ=|1`X{ ]~ـ1>>G>s 6~- R2 pk:[ތwpG~JTx# jJn~xz|~>^~芾>^~阞难>^~ꨞꪾ qnBC`UHD7"5` 1R.7upNRVgsK"Ƙk {Ӑ2m-[Eu p뮵" Y>! ޵PMx`xqg`=]'2FWp ,0 l׵`Wq0Ŧa-8d"Plqݫ/Og~@b1&=. Ȱ3?iPgwd s^*p!S "ML4ٌ V_Yhp͖ " 7~gp.L~ξ8Q`@">t ݞqJ ~T :*DO}T$g2+F4 $?Ϡ/xnk` + ;d{a/ Dz@ YN)pu5 0bг P/ Q^@3̍3\6|Pvc.*|%NXE5nG!E$YI)UdK1eΤYMx+W߶|+4QI.etevq3*UWaŎ%[Yiծ͘("F׈J86_Υ**cȑ%O\ٲMnuEܖƢPqÆwiirU̺5*eϦ]mܹvXĽ햫6ܨnɕ_8]O^uٽIơi'_rRU}o 3_}[S\Mmxe?irځ砈B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G rH"4H$TrI&tI( &6#Vdei9LJRI瘟LPqͣ|r˾jCoցpS eu1h``|q#0H9T*|aJӈW"QIa%F`4hO~L̊DS)5U8T وV\)ObQXމ`>;m#t-p&K[nP"q|āOifen[&TEQԏ`nZe6mJ݊)g|,WbfqrWv'W~wG`Xn珔Eofp|0J%k}|:n2?;eiŔe*ޘN:RY|R/YjNWCZ\"`'>k`zN#E)YFZ]v`<"L6`9?ڸ<# 6)跊꠽BH[ew[A᭄\YinOK-#bj!&戡E17ʈ,f|#"zgKmkA9Xv (d@A9K 2\ep!e FKaDdi+nv | 9rBU!֑T

( 1/ $Û5u#B`v/{C6!2OWU  | a΢cT94`c@> n*kE,1.kltªĘKR!Yv74S"KD9n2cM )OcQTM7JSl#SrWAL%PpK+hQl\mqFjGf#TfZ͈ܕ>%h6HÀ*Ta^astWwnc_ P6N%ÑHQbNwh-s,hi6S/Lp`X]vD>[p,(V$ ɞ d8vi[YV1哀DöBJdTNT!@j6*P䷥0E7zGORcZ߮~i"aE9 bÈɢx]Wื!&K1aVl8cyjMaa!w*6G{J^Wd4ByMKԗD;32v/u k[f^ta:ሚUcn+] 4yeP:/!3#I3D3=+󜏜1ilG]pfOS@ݤV/冔&b(A^[9(ahkfV6ƫJ[~;a^\6D_`7ņ,v|ϵ F!LJna1~h{Yh8AzciKq'd+l<BW@ײ#q4Rr}1+q:ܯLN8qri ]9m$4jl6t^DI c'vx[ n4+&5N".-s,I*VQ?z"F64'ːoD71-^ǰ%b2#;"E( ̰9;C7 79usf{ /*F^Lߙe{88;zF{(^kx~G|xClCҐ<Tlj啻6VF?8^lx3 ClK鈢{@cDk pP@66:,.@#P>ʞ@P'\Ԯ)DPHrlXɅm5A1ٲh>020>s6BNS+w򸱴H+*IT\?̆G.?Щ:ǹŜ Fp^DE`]عL1> l\5J˓.^ ?|L)_M ʈNtWbh.yjۄɆ1a&z+ZÇB,Z6-1 +$ ҼNOQl5li479U1CP)w=tIˤ$|HZєHP|% Yʈ KX0+KPE3̾pO3bs?uQX 2ūĺ r4L&mR'}3>hPp,r ' S11RkX-P,ӈ#p8S6]R2S>#Q IP#UASFmTG}THTITJTKTLTMTNTOTP UQUR-U3HU$8xUX큉UYz1U]U^U0YpWWcŇ(EUg}Vhֳ`s VY5XdmMXVՔVqWr-ה`: (dcՖzg4WzW{ڢwls{X-]E($Z~uc XXK]kXXX YY1mYXXVpS}YY(1hdvm׈UeLvYYm ʆuWcbNb ZZZZZZZZZ [[-[=[M[][m۲1H sEs ]=[N8ɤ&[=k=pR\\E, , MELaUU=K_{M_(]ڕ^Q[[5膆IJpU5k -4Q=,!UaR{j0ۍ_߈&x2O܊(0ܦ5g``БEťx\XɥC:2RMghahaKgL&jዐ1‡̕^a7: - qaƦq8su]b:^?|842oXỡb|0U%&2c9.Y@ip0ވ@Ȁ?nFGMP Pp ֜ZXdpd_Ϥ_*Y4ߢ'xO4!*g1Ž*0:ƺRESvYKO+܍@)eᕀaK*+#shapj 99L?q:z0撰DP4҈x] 5y ׹a  9bfDOf ^ ^Г>7 6(A[/9B^in"?IMbw E"$1P؊FT=jV ke5ώpTAlh|X<2kŇ0ΫeM"Z׳NėGJ;C"B)*ΰlc`<[bxy1c0ЈM`1QųO:`9la3. Qlq\|@ώln[ W0Pp@%1{%fp̱#/˱jPR^nlD6snJ\ފ%?Mp,Qsm3i8 ;C~݆pXK5Y膈舶't݊,gcHr蕠%/K ;5@li!`y׺.å,^:f3HBNlXꦞȧn5nj(qe*j5j|0@Jb[)E&V B(pْ bmp*iRЄ 77YSU>&`|2'k1Jf&TT֋mUtG1MtyiPP4A7q܋`ކnmvagXmN*)`\m螜5ngv8񨆇vmn$bЍoWп6ʆp!ؼ N,^%:h= 2~N$تh:Foυ%*Ҡj{mw}wY<m‡ v Ѱal؁ B|.f\aQ$.[„ҁ7Č"Gi۷$w%K2?,9Cx:/z*as|<"1nâ,bi*֬Zjv`nb0LTmj.޼z&AVZIѴt<9 }sg6]QIM6rI1]6%4˖m vƁvILeM.#MLoڔ&SΞ2>G>ae䭜[?8e3_5J'`*(0e j >ĂP:τ8dZE椣 %mQ$"M=')ze@]I8Ee-A=G-&2Xa]gZ5qodi{Csf"gwQw3GVll(g7&d3w1OTGs}\BP:ɼtFu3wNDr_~8\~78,W1S8^rJ*h|@.}s*;ο&qM6xDЪhx P{9J& K# . u9TS907۰ftI Ϋ5˪. ?<6baP!٤ )2L5$rBl>F4h~tH>4 Ecu( UUQ A0fP1,zqhJ:K>hC24ep[?!@&Dp]Z* HǾ"3C+MPB v0PJ+A4pb;Glps1&99pL&/ j[6ÜCSIBP j Y6>M@8;c3qq FB:GaDC?ĐFƂHB iHhCRӞl %rUwtEJ‴8rX%YrD"n<8(IuSlG)vSqtj %#ru%T7"X]Qdq;x"TDF U ;aNp$$)'2DT$#(H ޠ"9G..%pS38V2lxѓX8rqd%C FtC(wJ ݆brff6\G<#Q >p ^6EG$9 1Ռ#58](E#b\4QEhcM5FF|Ɖ4o_=  NO.i,ZtV%Q`G֎&4!2,ײ r>ۨ' -hN|\Gj *"L`+q C-p Gmcq,X! c1 h"T1?~NS,>%OY^a3NS9ݧPCP+Wbt|&>]px$zB*[0Ɵ/A08xChhu䦥 ⨨EӷC ;| p t!!1>zae ^uZ^EP4 '51I0 Cs#}&C3B 6k6!IHSg$!:b.1XzTbʖ=gC>1Q"é=-/boW>Yf9" =G6'u5&Z/ E3ٮ:qYv Y)d |?5Ѐ]Tn#9Tt ^dh}<{so]ьW3PAߏqKƜF)o>9/ʸp=(lf<7/s;5 y99K+~:ԣ.Sݫ:ֳ"UM=|NY*ሊRI\v;+|;n#Ɓj(jqL5bbۧ;s+u3>/Sֿ>~ o>>/~)?0HR~#b$HXuPH썢LE]$`DvHIh&VB !ij & Z0aM`IڂAIA `[UEN$DC ֎I"x,aH$BB\T8ĵUF5|Ð%!JG,jdCK^5#$%<",AMI%XʘeClE0`lH|ZX__ ZFM0MF`F^PAt!D fDf v[j&B+$GRB)H`F(`"n(VL .^^`%-t8r$+Vȅ8$UF`ۑAX#>VhcF \c3]V䞀R!+1>9ʝp #^ D Rxa9J4iq9lB]WfC,68ÿ@~'J?mUԑ>CeLH L_CI B >,P:Tm5@ "U C"& FY="D"~D`AvbM([Y">$B+(d+d[BȢZRC5.L/^h |tY&n!i0cۭ4R#*`#7fEf+869$UXlCDd\E'I- "RLM%D܎͒ȎJM#LLzzgi+CħH|$I]B%t&&~d1ЛS&8006$M98ܑlB"GPA`X2[G(F@mӘ"hdA'bPĕ%dڎTE{(9@N)ĚEw\R]wf U6t/8tB'J(@f(PƆtNH(@Ιa>ip,) {Q*Y<\頨Y-αBd,֑f> 鑘=8#;"j4P0jBJ1-E|ÙyN*9D#>U<ELCF T AEĉ!D0E96lK-1Áu_AExDقOA{"Dg{&zG*XgQ<,ABM-gIuG6h&nlQta$bɆpp\C%-sh#6}6.(+܍EA}Lr8d >>DŽ]6|8cxnœQ. [p~N C>C]6䱞HA8\ųZ\VCK4|E'8P1&g:G P&M_s6Do;CKC?zkBDrA,CmppuDG|"QppB|0d  008ԫU@Ӹ'GGPנpNu1F2EWK.N;W³@5j? u9GTzdg%A+/%Dla68]ewĄNނcq[${ +WƫX6p/9+r3y#8pIqFUÎp.7OY4ŕG_H,XKbXg9Vh4F8lA\~pH4BAl'$ò~dÎ8]@]_NK$z5~H5P5(FP(Qz145z0MfT[qV 1|qVSRsl&5BYݍ0` D\[ɫ&^7u3yP7Ɛb[\LWH`n-FF'|DfgȱB&B4.8L0UHElI{W8Bh|6sg3~ BCհ#C8~, 5`Ďoo0qV.CGMx9@O?NJ# "D"myKm4eFԑ%(eGFӻ3إ99BZ=02==rH2UP'(h{:#'O_dhRTFnG`2XA];eMUK,s68yg:x{MTd6_?-^KTqL-;AVlOj+E&1H8ATspWl> Eó 2HDX> ,Hn m 6tbD)RV8]܈Q1l9NØIg5ceΜ)pȏV3r'%FpޔV28['sawR|0> #TM6)-Z|hw;sC&́KD`7v^+T7s1QC~4pg2#G.a7!ܦ>,0e|ԭ[ll.m\Nw2މ.N.64TBN/se [v > Ģ +Xm-l8L0͒Ce _çcl ݪ2q&8j6<WL<E*0[z3ϫ2 BvđHL0g`ZE$\&|((!(,ْ-aLxuG|434L-:G!/=`2&= ;ʁ9mPA5LgH#Iɦt][)N(gۦHʨ*. aͦ ʉQ k[,&Ѝ"Țgw 5S /0t+!bdLͺl6)B4MfNg }} MRAVg{9XTxiX9.P:i.Q&0?F chFkc=c:C3FmC ٳR|4F|VAg!yNӝDJQ>|^<?Vg^NH T|?GBJGas)|,"(hR$Dтs%Nzi笯ߟD7@ph-ǭBi/y{BgxUɂ{&h}`*i'T YB1GeXCyM`phЇAXD#ITD'>QXE+^YE/~a#7F3iTF7zIX9BDn @.v&$IVE,q9 eyR5T<BM3i8o(D@#/%L0E/F7ԁJin;/0?%Q\R/x9G# sq |ܢ!Cp"1Q3nx= $ 1FH!9&l҃$$%9Ilb1Rʘ%G/qhM~J8>va`Hҡ1nD wN`pJ+brTH>AuSq(&>x naF| Ћ19mHI&ut,DDJ |Vy222.NuQRX]He9Z$T҅; 2Y$,G"<-t ჴnރN-RO)TF$xjP\bf9!Iٲn4s\^) [W^ѮhZF\˯3nicTo7ܱtl0RQ6mmN'F1CKޒ! ,1hBppDcEF]As GGXrFo$#J8C4DZ;$9mmR@J0Gf!QR~&O1-tzx#Of^"#d A\L_8b$#ŰL^\B =KoP !C/ަ3á "&A#"`vo l"-AlI #"Rt!( df=!|`iN N58Оna =- 0#L-#10,0"u(ā<0Eck </-`PijPgRRaQgAYAQg`jA)2`Ѯ@G u#vIK۴0 #!H!2ठ+\t !-=DbNraI`N Ԁ zHaA:SBd bNd1RJdA .@ q#<)bE0x/fQLQ3n% V!,n K\Z-! +a R@ %K-P O72Il H#=S$,΁F"k4.X2ƖNh@(\/!(oӊpm(!~H C06M"&ޣ$Iv!a0 Qr*$ bj0A/8A܌ =?;^!9+h i(@HrnDP \**%`!vrx/c0JF$1]-mB$-! 0beġXe@Xfg4.-J.To6_=4*#)~s A9&M SdF¦4Z0D!drpt6w NFcaXEf .}HsgqYLLJ!YXtK^_U_|0H_'"GZ5y&| 2s_b#Vb'PRH|.(yL WGAIyxIga "F(e[e_f+6yxFa=SchVhhhiViiij(.Pjkkv V_ɖLx"*QlA+`'b0U VFfceoCL6I6 TIJȄaq7&W"\AT!r#r3׀Pk L4\tq¢i Rg "%vSŁuUR(h6#wLU \7)(l]bl wAH3Bm'mn!'lj"5hIR! )m\=lCl4(FJ۹< I/s,+ρF3:ZmU3}x)Fu'0*\3< d'n(^PqGFa懧asZ]28 JGdzQs.#gEttzt4ZxA 6HKjŒ/2b`NR[u߁LceWJ! /ӓ6@Z!@ @u CHuy D{p7ťҒ̐šO#9rBf#.J!5Ȣ-rs~?0J,v[<^*ZC Ș &$8Dj$RŐ) XNLA^|NqKx-ܪyC\ELy FQ3e(؟ZR-nV]αjIMpx=g Kt g6}%9x+{f޿iR .* tM`w4n{0[E>iSƂ1 nl7^[Na۫=sӂf .{~Y t,??{5_}>h@ * : r *ja ("A"vA A,ϋ.(+6ވ+5@AϏ> ?SJ.dN>%Ԍ10eT^•tY/`M]ΚK5SnFxvqT1 zr JTMfx1Y>[iv@vKv3un6[&zpr-֘RrTCM)؅\umZJWr A{D|'߁,}V8s5߄& $,'8$ 0^$@/W^,cEw- 8K#72)V*[^~[U1Jk 6Jt#eՄ5/(m|JZ[1*1gr;@+Toq;q<,)EQ '%9&S5(_64&;6!+&=nbX'ȕh(" cIY}e1a#! qg;;P3|( m5I v'F8Ӯ"MjAx䵭|aΈ46SSEԶ6;Ρ࣎yGǜ&x A||;т#Y'a ݈LjDOu#L,| 5))jwR";'eS`6-l@6q$y>+sR'`do{RfeȭE:kK^#ˌW4LjUev,KK-Lp&ѯ`Q5yMplLp& qn"@di/NC DhֱH k-CB: 3!ZItәPAxIĂ@qh@]bQ"ᣊbXȋ[sEj\W ְud-YϚ$JO[el.QF|hBl+qɳ:D-a*vmcۧ^C+ZDZ-( ߚleQa qd֮x+6<I[ vmo[ [ql ps*wms Jwԭujww w-yϋwm{[ IG`Kx*IhB;Zb9eO[:g$4 RZ1"lD/ ȃM k-lfx q^OF2R^*ɆwRINt jK\*$WA9ɜ Q9RP>6/Y@dw# q, L-D.YzNsV$zҳ@ :.ie_ P9*_6ηyBwy+<ޒ"£36B 6Hlqn I,s*NR+?_|$H+6,\q@MUx5͖TlLX(1YB2&]:rߖwM%%mrlon4pNaeM* K\ָCk >q[*>p f8C]EtK ҫ-,btl:eO**M0V`.Uҧj\#ƋUjJj*`6Ni3@4FNNzdo.w~qޤ1"w[2$> f5_L+OR̰D@R@.cz騋 8AdH#7:y*ac/!H1_i I b5~ 9?N >%A7 ,Gqs)$Wi!(3VP nUfeHY7Q1zW7&{tܐsy(iN&`iM)q{$wqwgaLhz6A${!yvH &ti8qV ʷ*Qq;)_ b @ f° @ _q;ĠCa p 0 '\7_3*Vt-vG#bk0$&/`+iP7, -G/ng8ɡaE.tibb!=ᱣUh(.6.UqbĖFbIx0fے( Z*X"I2Ӧ  *jQV SY<> uSYbLszzڊgR#K!!q!:Lq(r{HJœi7 -$t37}1Aj __1ⰞK1%M`% 27bzp *J=!vConU A0`0EI (*bO61t(OP!L9iJj:}Gę  6ȖkX񅀨#ۨO~ą6ayey\^*py\9y};k!7soz Nr*j x۰}J1XrUv*y)q*|VQGzEG2gZ$*@.,"J[(ؿ39S0R{33-*/%c85lymm y۸٬j\vHǑ .S ' =Wܘ&K=8i!$gv~ S!@]<-B@.ji@ =BcbI>&#xٰ/=ф #mIf% +c 6yfGx䘛yQ|]&I 6 AH~D]]{APh' D~鄉9mcM$b}ԣHG9\htUG)!dJ OL~ :ȶ٣j6 ! IQa`mYلP~TDv0nxRLH$=dnfS钅UpAQ0mZPaiJ`ށPݰn>nN.bNm$.ԇs#S4 ?dll]O|n*QD-^ĘQF=~QR9Af\n* 6n;p[s`Ƚl>=̹\ҁkyI˜3k6*9 J1ദY&k 9|2 OXp^,oMP׷vǮg6.s鲥L NȺѼ5bLIy.ӨU|'mזO۷s6KezĂźP,x ]TbD"\WflP+n}ьo(FcGli,*I)bR3 "WE2 G%il[Mzmb k[6z,(|>;+fۺF ?Ǹl~PyE)cQq$4jzC@y ~6 Qj2p" !$ " _GL ٘ ,R~%'dMWxš,"9 2z1@HhYͥ[׬ذ'AB0-cxE8|$P8̘rD#F&GZm>BAրBjv3!>bCsU!㓒5y̆l1y"!'=DL%SJVҕCk$al*9Ł6MK!9ŃF)@|2EV9Gk} *N@A c@":!'ȚHhm3ZؗB'<.yy;4~ye$Yx,-"d)șc;OAIS$>aԅ@XQF'L (T|X*96pbèHAO2J8qA SH$Tbi,C/X'ettNYztø_OְEwtT h)٧4b;_f.قQS ,ӰvMA-FJp2XD_,%sOZ|F?؅4FQB"h[혡Ոr+fM/޵ЋoB)LY՛"=aD}*&mC UPzꁛK?vM[yHa%)ojX:'ɻ %\&FDquc h*񤉐, nt ( tǁaPC}Fd:H 1f\! sIN dg Ut0?pu 95P){|=& J3np۞1Z@}WF/%Dc BaߜBoH] FUo8ģ~5ǡD ȓtunlN3:dG`IRR2Sqvb{%9SRw=r%$Ok.ˍq|7h b)F6Ra& wCl)ؑ.pp[vx}h@S|l|(9f▂Dfdp3H(9R(~4%YF:cSGGIr A(Iec&uw^M#u­ =l4!*HpT#& \A˚LIsmwc7χ~GaP#"0Y lǹLzyH\|#J7c.rtw>ct^*X9JgP{tJY@"yji"Ñ[>Q*c ;! (u{B@OP6ÇH #=Z<;bIJ@u#DL"1/$WA"Lp0+¶X_Aw`{;;5d 0@Ԏ8 ̖cFtGHYDIĉ$؈D0{o[B㸥|#D[EWXYEqͪEZJ_d;PBFRaNa cDjklܱv>AEmGpIFho sDtTudvtwxyz{|}~|Oȁ$Ȃ4ȃDv5VdD0 t`1($`&(\B|ɐLȔTIq Ih1zڎwEH! A;tFaԎɣ˼"8X 0ʘ; B4sԑچfp| "|r5$(SRQֹ4(gHȉJx-\.<& D<$ lxt$ThN2JB)4M8@HN|20JR .MK:x_Qݐ E!t/|ZA *cI{CO$P&pp~q˺&+WMiA@"͢CY+VPg,JWфD%`ۣ\PrM@&Qh "`FERA¢]C+]||-RD LӦ9S,m() AA+Y`2qϭB4KMpa:ځګm0TTI%Pd-P]Ak!ʹ)ЏѹlXUU(sˆ>bxWb}jWpVaTÇUP̏0NeY`M#&P$pKTБ-JM9KDU*sĜ2T@pbg(VW<#R#|Uj80U [UX:z:B [#b8@ m0j`ÁBl׾n j&L;(3`#K\a\h5N1Z͟E$hՀ;C//YTY.սC5D5! J]2J*Nm0b&YOڭW4.DUB]߅ՐM^*px=DVKr BB1J_rʼnȆ[`A01*`a@&,F(Lא\=l0@He?k O|v$H=]ASlǻa2^HB#F& ^H߻Bl^)lYb(̎ W#_kQTp_rGqm__ AF0GKd& x`)N  `.e%ԸFh`b.U &T&ݽO]ސ⒭aPp!YbTK$h&8U'Yٯt #-6EeSTaQ0Qd6<,:#@I@A5#t&6Vאhr>a $~G:QƇS+h֙IG~Nގk;ٺFe xvĆE%ݮ :D-x=dh(xT³*LC=N=O.#vM`%L>+בUi[ XD0=U8U=P0UQ|WE!:c+5(`;&$Kcs}_x>>þ>|ŇD##PA;<]p`|h4 SQM8<5!iM92@CP.Ɩ!مY:; <%P$(eaA|@?Ĭ!_n@ AɕxYn^/Ά4D-iAuX _XD#߈loFb|%g6Zr`O&fb't-Tψ"f*uC,qˆ]^^X 6`]O7v"s`\8?-vl7h'? $tv p|L|PRFttSh9xr$O$hRSo~U"Yy[ /ix/1cG4v`x/wLyO?Gv`/w(Mqliq?ilv.zoD h(FSل !  !< {m]fhPWb{aP{P{xGx| | 5|&w٘ N~|ɏ]^0UMlKSe9Ko}gS|e3~hp /y~q`vksl2-;3΂8P=cBg7ow`> h'ˈ~dm):Bj \:p־d.sL! kY!Ɉ$Iq2$nj$OLre.]d&MOj6Ny2qDBfhRIjd24(>&V^ͪj"z Iנ`φ}v-۶n+w.ݺvͫw/߾~,x0ʕ&6C~؁#w28n)m&Y3smt n6f>m\e^x6cKzM˭]޿G[ tW pb%/قH|B6 apH~,TBǁ>a<<3JTF$tIbn$N;=/դ>Q͸F.6:eUUWK`ZD|K2٤OBSRY^%&De}db旫mgm)`IjYwqPZYoklv&zgs#]A螶@ʩ5+oE[t<w+t+hg bV`;ΩF- 7\#v$HZhmlIM)K*HTFAn:ˆԌM!%Տ>SVE\uVoW<# 3pa F yىG1`g5[i'tI X 1f:Y@*)rYlsi}4}ڙQM3 '9+r(+{D}ێmR-J2V24:$Ӌ.>ﺋ;/ģT"1WQG0裓^駣$e3D5N}kET8T}W0o7h["p-r h1}lsn563v߅~)QHCH@9 YȁP+bTkZ`[J^oJڢ}D.iVt+"sW8+^[\W0H^<70:!_|DJKd3MoBR޽L@jPOZ,=E6v( fA)*6)6.2GpV?{g`SB@ռ0/ 7 TLnD ppc@"e}$:G61| $Z6>Y/j@H)/"dzCA<0ز+Ȗq!NE\拔Lpьp.Fהa B~sWBs3\'a  cktA{&Yx꩖{zSw4%蓟x\G')]Qf587\7^ꏱ) ,EBz|d ;b W}kk@N۰j\'hZSᓶrI* =*Ajo@%Q|3ւIL<PY]ԓs13?ICxv]va ߕWy-R CgΣ"6],cX 򱒕!up6U-eRs]-k[6ׁ)ekTWKt3LkߖT7~mB7}R!fb37/yk7]/{7/}k7/8xآY̾#`xS!|!b(jU+ 8m)qȓ-^g|Hs8S\PsҀ7zUBtW P evCk,(o>MD$0_$U(r01p?r5'8 '\1t(KF , 3R-VU$ bC.c:KqĪk1Ywc=sts2qFn+8Վs Mĵ|S `E&Qj"Q[j4IZMaZҀFC301h..o%RY;/K-g-u+\arpI4f2F8+]8VnvnL\< 8dѮ90c*b0c:DagjDH8Z0 IZ=N2@B 1AkX]@8`솂ե&Aeg >.l!eV/uC [g&,wߟ e^du#PFӌT!vi3E a ;NLuP粟"61vpY]wqL 0=>1f8KEBp!P8V fIb ǑH qv \z =xw/12!ugCpEú_6ԉ!bZJQa݊`0HGX^R8 "g$E8SL_U`mNxX^Ku!^` Ʃ[GXelt7d%ɣ8 \_?U!&9޽L7JZXM, ]$a@+áIֺ} 8D16`3`V *5@յc F5DC#>"]vJD} E@<&%MH0 EL4K>dcrc7j >p,[HG6a, u}ܯI;[ͰȉZPKU 6Eܚ 8ʟy$m c#RkId]meHf]*$ԥ$Y]6|"amԉH,9-j`"أOd  8RF >0S7c2U(Xc6Fj66d["\p9eCJt<T ^6=Mlo9T<]؄GaՔD]9NVxؕ+@AԱ$딤H]ف܉lnCK8Ĥd)M,0dpGd++,Dpg6 pz93P`gt Ɉ5R,DFeac|ng%}e~rŵh 5Ѐ]F^l\iRw gfǍaF]=lp7B5(ghf|fDBdk.b6@A1@jC! bºC$B0Dm(("!+rT59D*,޼U犘R gxV -Nqr EXةѧ|f|%Zg8Q[@Cl6ԑ ҥN,R:47d&0>8p\OeD.Y9ޚ1a~V=V `@)f6`Im&""(`"*)BN Qe³Q`,sk f8*ę''\̠cPPWꖝڧg}:$S/:jp@.q 8]ԟ;ev͎=|DKplԫ89DIE1*!K׬dDf$ @b@)>Cڹ]Z*= |k+J VTJ‡"B- AIA%3*!A{@E{`+mR&HXz)B l)6Zbnj6x"څ񅽑n2ꅣX6.nJ羄q]_."._0_"oVؽ*oJRoZbojrozoo.z.JoyDP]@EbCY^U@LO>XSmOtOz_B"eXB]h[r0[D>pl%kFAR) ^ ίD/\oFK>\x[{8Ą:Qp`94ORXҳd؜sC=ՕT&I>d[Zaᚪ.p*MlUA#W`A$Kr nށ+a0]1/2(3V*X]7ԡ$ͤLcK%fT pq]4u͑FHĹy3[ d dTz#W-5m$u8Lj%DOi*sQoe A` z?)@C}.lBi|V.BOCDMc>;dCCgT tt6d@t0ljIS#07*ΜTlPCqCjO5G_/1 y4kYJ6`6`6C4±sE#ߵ`ԍGL;sZ%b\Z'v@s lC/Bv`&,E#)* lG)@{GBB]HC@d T@BCpB9KD>{@|w";|ۼ|nU۷^G{CK7sĈ\R&G\*^\@7ZGv c&Ql7*#9'dY~D8$ +r[=>(d-mXo&TfDrL~ 9X#vߺY$KD+ˇ<ؕk?s9]gAtCcG4`_3[ļD86PJ U:۬H C*0dF'>UA}ԫTT p 11G 0vɎYѦG *'ϸ9sY@\+7p`65!mƌUp K'V!AqeV$De"F$RLI|b`Ɣ)̚3[,)=y:t(I%"%*RO|U^ZkW_Jҫ֬fTm[oƕ;n]wջo_VNpD\|49>{}wsJn[nBF'l9U)"ԟt]ܷRRcV&I7xzpnX1^pX,3Ovp?:O5IjZduZo{9BMxYksd.Ld "/T@Ӛ5lg3O| UmAp75ao~wdco9iY ;nûad%) >|a@HⳢ/G6@;moԮ-! p(BJ68U#!0K;,IP'@ J?926YdPI?\ p$!xM.8`3m-ˆ;#81\LyB$ AzA1"ȸ]%A@&ځb,I>c!ɊJP7l-ɘW-D]Y<dbb"e$|&|iElaԖBuKaJJ,IAKcȚ'ΤSTZ@8aq۠FclÁ-ňߵg đ  S;3V!;b[T= Ole^I*B)X4s ASYnZIxӨQr,wJbZ;1(p4`ł2@#^xl:<9-L<1`T9 H5'!%^ >Wl &:] xq!|1q$8(\b.8I)^|9T"{+-[pѣ@y-yB&5Qs@t`%UqpVa J5uN uAK uT7F$,3X%%}mwA. ]la+-ž\ldX2D6]"$ !Ѷ˻rw ;׉{|[oR%7^ e) ækB0aȥ\d=8~vv+k[T{ʁd[NF]sϡOiAKEIiLv!N~QOLT'{o@\c(GI4#4YIܦ=-jPfn&gv&S`Vb>!#!4##@#(\- >6Ab\Hz+Eۊbl >M3`0InI0":N PtN!!$ Oܬ9p 0!\ /FP!lA50b >t+h0,+BHĬ!HB:Q:D,mL/!x(V/b :ǝJBqh!$rrAlgl$4GEs8 x&Fh6TxJ"Q\$ waOPARR vfPB@Gtҁt &-ܢa ? !@-(pPB"=?` 5 ,R#\> V20܈a,2*r' &Cd&OR&aºj ܸMl@ !ܺOpH Rʞ> %]R ύ +"m(r%?b%&Ac${!.#@&-  ŭf$u"'ub#$o+mo, M17) Bqbb|NZo@JL%Ńu :Xu7 AO\"ԑ:}7n%Hv1 ?6=Š.*fɠj'&0e!!^ ؈@1!a >}`ȠAAQz` B@!"1>S >!ݶA'>>^4B~PFW$m4mFTNh Brz@x Ig,.AǶބ  U! blIL-?#KT>1Ȁ@ >4V4]04TpHUUXE `PuaQBTa?[1[e(be$s",n N:37b4T4"` jK3;.i!F$JbbN!r%hz:mo [`*J[`ARB>pʱ::KŽC %RvS\P_泖`"_H : _ j!aN!A-tb {B-/(tD+Tٴk$UPL=O96"4e7a$fqV(6V3nlI#!~4$tƨ#A>hm>a,ia "Jb 'TBJAVkQd b+:P~v5ֶmW/h1t $&˘0.VU$^-UqUWq\/Z 7MQcf4`6p2)u5IdoXbWwcoH-Lǵ\S.u]O ywC^^K^ѳ rї_ݓ)XV>7&p! Āa}a2b5b-$2n{Pk?ؐ-oKd۶,_2hǢ%2f-K4/IE )Xc*íXAlG8 mW!wjMS XXoxOvUPb)ovOfI ߰ƬX8o 8>JF}pqq!7qWrrV.7 R3ɭs=6@7VEW-0ʧN |]vo8(J$Fj|&wswǜ)iwwob]JyKmyՂ$pzAFQ{:]/6u;[b*c̳k7&^>b!Z=PAن ٮzx !BCɢ6n{@e@CyCc8/xBDCCFOzm)܈lL'J $Fjڝx'z+3+W씋 Y)5Z#MV,4EaK1$Xa"u>5TG83itbO$2cxpY!4.8`RaBũ`8.$!(:* Zᩐ՛pJaآ 5̅8ײ!{v wj;q^sa&q&=J8J Rx3b c=q?Tr09m-v##{ C6 ²eGCSI3/X'[8;%x(A#I)*VLR-ǂ{FY!$'53r- bl)vR @*#)+hrq2S}|$2!]B2]TvS2osKaCK-$ā%[JZ׵Ĥ.zTAx(ֈF䏍q}\-ebiO֑$&ti܂%%{²5;ґU-kZ-/kHb2v+j j.`i=Wn;Q =-a>DCl;T#{ ]TG YȲaaleo%{{%X &@ |3GzƬl"] =U.6[9Qv6hPt2&P2*c}ơR(Qj/1l,]ŗ |ϼt|/*0*-<.$cƮ1pJ?.08>/2ZYDj|#l/)#AJ[8N/0^71(9ƞ0V#3p0p0?~yA2 eo<~2>~t. 0 Ԣ@-h8O0yO fk1<8#~.B߫P`p"[i-$K$DDlP_/O?{(+ߢ\Aݢ*@͟KFEB[9 =g=I xD] S-z 6.?02 + *\ȰÇK ŋtG G؁P#G(S\ɲ˗0cʜI&J5Ke"8< 7r:.ʭ(sJ/yt[+&kqYGv;V,s(P@AN;pt×>=ENrdÈm涫-q({_k>l81 X2aUv˜ْP 9ЛZX07>}ÔXq"+_μ7 nfVy+3(zǩp:&r{&[n"g<9N6T < S >"t;` 9sN6&TAfXҙaFg 8 A8#&K"6h\DX1XxOQ*Ok*XFR4ځ >I.h5%qd]X@gX 6 Fl%vlhXL 3Оaʙh u ʛ&>ډjiAڹjK/C_&hPV툉O789hRiЃ9Y¾4"[Z!A[\ji覫r $Pl]JJz{4F\p`)5U:kLCAkYzT&4HÂUXV6،֊dc,|%9Jc6LM7>ʺHҏ1  Ǎq$L 5Zb?sEP@!Lm36 @ĸ79.d6g3o؉Oӄ7rw99C gF#酇U (h M4Ejk Ά vsx"28$G4QTem=+mI+o{Ώk7cm>9Ż&bt/IoBρG7o As>r9yZ2@0<UEbBRD0AB  $)z;+ΰsg j`#GC&shP HO31J^s"4U|xLR]D]6s(7.n;+G5‚(b;! *Q#8иvu4gŕ$>I *HvA QxŁh Nń(i54؂ F=PҁJ8 bApD{ FD@ nz-a87/;! ?s$i^`\l 3i&Gkk@+׀D`&@: ̃De*z6ÑgLpd&j ՒsE3ib |zIJ8 ,>Q&ED r{^~&|4oK*Cő7Y* ʰNs! 2RbRIRF^)$&FYYS(2^m+Qa%=&}R1Z'3x@4Xժ C&[&ж}V̀D5Ƿ =&0Ofez+@q.Ȝ(A@{c m] BD@О#zL0ТݨH\f6å͈uarU"<yA[-/H$)}Z[2uKN8U)C) &ծ5,bhVԉC,^D;LAP\iIrɫ:vqa.de( #٠\8˵M6qEi Ԫe9Q:!>F5AF#ғ4[\_<Vup%Rơ6c" O `(@Wm1hYBz5ċIWHИAj@T ; H_f *3 Cwm`#^XC\# GT!min%H 5;AX1J gѫ^mJdRYWQo >2 ȄXsY6%]5Y*qO8\Ϊf"oܚ7K҇jӚg,ݛDM"'e2O39ԬK\wp;Kp'F ᎀ,NG<X=b,RHgbb"MF6잒PyQ Q4A@z>:׮oKeIZ ,tf'r% G9!wt02wax[6rx7f7?Fa5ҍo=?FcB G͎r+5g9 yC:LI f)Hr t_O gC }l.vu;Z>ِ :;$& 3=>jwMv68}Fxo>raqw0@ A1 "A!o[!(rAbyW##Aj" _1p=0#Q"q!1EiB %+nSv+&#݂RC|$14#sG2x='!~p&iL{~q u؃('q'M*|1ede Wԋ a*a*Ҍ)xȈe Ȉ-`ȁau؎[LJj r-dtH#ޒ&yƏwZDiUD|yaIϘ.*%7-`ǒ0294 Bm4QxEH>Iv.)TV$"b œp9IuPyXZMx"|[Gx.(1)e);Lhɖr9tYvyxz|ٗ~9Yyޤ9v921[I} &ysApKi. auyYtY>+Qh?iNXu3o tQ@iPl9! 6 qV;)V PW /([.a:djlx1D#%Y6 +'Aqu7QM> v'߲o! "=p44rMZb1v" ; sf6(Pjs9LH#"␤ ِ4L 1Xb  Qxy7Ҧۀa# [")~  . =jx9Ho ѩ‡>䩠Z6fq("Jĸ)!2}a7@+Z g 6u· P>"f{HKai9IiVr9 lJ A5n%%lu] xFDP$xCQ1v.0g Ei";Q4j9 :&{mP(t@ֲ0o2H($ګ0$4, ~ #4((Sr@&*8AF_ـ?"^ˊpY0t[[@r&K$;Q*݊+PJ;빌:`IP:Kj`PKHh/{31`6A+ 簯ѯxۆl1!s"P mjۂyHYA6@}J|PsJ2*K'ۿ'۲<-4k%a$~ƒ*"Z!2&\`:9°aѧY{\>%1=@9j[h+HLj+Q$)Mـ` A/S\\^,lY5p,5Q*xǥg̸[ȸ>R(Rxe=W#e ʛ,[Q~࠯ xz;0QAɑp%P  cKi+uml$ );Ѳ42KLw|5D|"pRqg ",EEj7G.g/>'ZH|'jg Aݶ\8PtAMgC_, `ɚNqj-2].MoTӯYzǮzٹve̺cN ȆLȨ&N9 J*s"Bye1 v;ʤ zt wEE *+J_'h<0k|p9$+@2} ɬL!}@2oܜ1^@6(vMMq#F dMfw2iR|!}iniH: $]k^KM| Ql$y]ҧ9} ꯾KdiTzԛ ~ >LǜԠc<\`6H]m}= 1q 8'r'ZY[ܗ(ʝal/`e mޜ+d(-}wO0Ҋ0=.n<ӴR[CӽP ᎄZ]̥c+p] za2aE5ڦQ@_Ɂ `] ;% R@ Ll+ͧ02?4C{q>9[S3Zٰ×A|!|̝30kAR9! )6>'XʕZT2)}豳'Omf.]Z۷Ą5 n\:Q i *6ھ$Hw2$[43[7A…+e1Bu\ycncJ=Όotћچ_qjܛ#o['^qɕ/gs$y;t5P1Gt[O(vU|6 u_NHc"'bv9'qaAR0A|!bB i P)Lb*R§RzH7|*6Jv^|4V]4ZGN)) b o0,(l2ɌEc2Y^ 5ZsFom"ll[*ˬj-37|{_x` 6`Jva&F(#pP $dQtIa@02T54,;x-lafsyg{gyJ*6hbb*($C!BYgyB*¤[vn-Yvm{ns&nfsiPdbb68mU{r+r3|s;sC}tK7tSW}u[wuc}vko}w{v;x+z5< JRky9*’Np.6"[Wh#hN?a]]1B !/([BqԠ= T6d0Ft 5Bt @if<.Đ l)aD&́X8Xd !c1!4tG5&*5qв$2dv3g{Ю!Axl>m""{v|q(Ar[F8b , Z$і.3&nvSғzwe,v5'jʌݖ&6ȔzU^@fe%kEu]¡)_73j"gZI051 ) c>+>L ~!qcKX[ ^c[<-ʰ]'Q[e;{ЖgфlW1S:ԩO> oo6& **lyz&LI2(:To6n*j6sNRczc&[:4|=ՅS!'y\6y7S w3.J׼7e6s2l-D`-(.]cpj2pi5 mq6v qLg6YldnvKwcsG,-G )lL1URnEeQ.[Gf):&ܜœ`l1Ew2{'[{hҺk+`5 ~rt[2H37+>2p0A@Aܼ{7ϻ.p)TAL9=a)3۪PPB܃* ԽPk>r5ވbp )?"c#J2\U ,Y  1;?r n؆~j;sΚ΂`ȅi;Z6DjS-}BI*#Hr" G:[((8lx2Uhs@q2/3WaćW3~ !t3hk3)kxEȒt0Չp`ؓW}h#iS2M'6Cf2Q8xHu=VsaAZ=MZ`&)A1$Vj Tp`[lMl([pZ$R^ƀO}BɆr65W@hlqUreq`ۼlpZa(F ˆgs M(WpXl mgmkg(flMkl偎mX :#Fg b n{SMd'Ƈ/Q9n6^?~ڭ60lHEi杈U5ߤk=9ajt,jYOనO`m <X`XDV xk h-]kukN-k  Vk([;ue%lF&MgƖBgq.ӖvxNg6m|@m}ffm׮VnrE푾mj:(hhOEj0كa{;p`1)Qn∧&GXmn9 mKXXDA@m8i{()$ R(}K(moYPQ8bR~P?f剐#Qs~¦k rp`4PuEmO >"%Z%nf念q?!ez^"7Znfr'_8`fAĉ^FqinzU=ޑӊ\Eo JdQLog 5  ` hle3 .e S]p0mav$aa9ۗ=φkq8uq{qbq_`oP_&Vwvwoh :ɋ: &E'u7WcWU'PE| Iz:oϊg}Y(iJ;d]?"s=U2ݱlx ]oKPr oO%ANRPplPK B k0B)D8!1.9,  3pְZ9qEPXCt`&H@RO|e\(Q\h%O,"8AAXZJ kыSjLJ@)Kl*ܸrҭk.޼z/.l0Ċ3n1d l2̚[3.I 3Lir;" soѣ_AF]f0Ek6ʗ3o9ҧSnnu3'#6N*ڧoy Mhwֽu۹5)F W\]7G * : JT"ݬ;83!^m{waomԑ| hM$!5x#9#=#A 9$Ey$I*$M:$QJ9%UZy%Yj%]z%Mn`ifV9PQlzE \Ɠ.q"AXggF;h9)vX9Dʓ.\8e 9 #3d#i*i\ps9Ҵ꯳ 9$ RO"tj_t#2v%TݰCx H*Wd >Ra#pхWVirBSQ\(]>\~6EuBAAsT'\ ^k<Zfۗ-Z:3]V88,WȎ8h'j\ 6# 9 o;+,U07U;YݝKKӴxM4}Ksi]#M.m"J=p5>慮#rmک'>Ds}t+rpq|ukI@ĀR<(Vn nt o_<<[naeSg.'Os|KP2¥x[ ߡǝ)qhbWT㇏nVbbE,_B)(U;0c`>1\y${qҁM,5x6ɅdKx/+)ƺB,ɕ6P7%--\kpfDemJ&ϱZJ-3u=%bu)P 'rSg*`/'{%Cv4X$3hi7+z¦G ΡV}k5 ͣY=Q[ 7q4XU㉿8 XS 6aj:{,U d[; ]t$Ulb >HX̂н_ZӐU6T9tdC5Ag,LUE4"6LNC<#ZAyVBiN@k@ ID U کd@ghTC,흂 ZLeJV&araPDlH D dyݽ4 HDEV4bRZU^]\$[UaId64UJ!Od89E\$Md*G@ܘdQF9# $C08O&V_RJSV(A(Nh2ƨ(樎(())&.)6>)FN)V^)fn)v~)))))Ʃ)֩)橞))**&.*6>*FN*V^*fn*v~***N#HƪΪҪ*`++@3+6G~<+VjƖmӱ\+v+^+$tG0f+g@!A,J H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0Mvk&tbɳϟ@ JѣH*]ʴelܢ;GիXjʵׯ`Ê5Bk ˶۷pʝKݻ.b߿ LuFe+Đ#KL˘*\̠CMә͢ ,װc˞Mmfў+ N0gϟ+_μIawسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\׍9@[ T8\@Ds'0@: >f8tF@Qq# 1FgT_'>35 Ө7mrƜQmchuƵd-xt*hx1MJ hP>+5x hc frMOhL!y6ۅŝy#ync@ZU%#ӥCL #00e"߀7#K5ߜΠ7UtMqq/J@{Ppg6y#X׃|1=p` kM}Оu[٘QBQiպf-_}mv]SO\,,>m *ή`/Vqn5>(Z-". iv]Pc @z㳍w>߳ 4XG<[͝q5㌉YC@g9>_]*2 :i(܍v|D% puH3P9,0Ѽ)N8G4daO{Br? MtlTGU @ H"HL&:P? <9 U,.j([$AjѾ lL9hrIN0يv)L 6bf2FX`F4!(8fA $7X48wQTX DlΞ/q<\|F&& ē9h^JCFU49GN6i$HQpZ8}iAɌ,OϿxl@}71QfY*!o $۠> SrB\  =Jr!$m0ݲ6 +/1->0u5x$lcCsr 1=8xRUV=PwBRqoҀPhj SSCB6?-p3adx=P{=;\UoX$q-1yyhAP{Єm}Q8$x1(qkt(T`$h@ x3_5Rv@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9Yy#)'Uj!3O@OI@aHD;Hbc)i z )Yש0\lzQiIOÞRycpi}p3E\0m1))rP:X:qMd=XС 9詞feND@ @1Yz2E3IOJ-ʣO9R:TZVzXZ\ڥ2d`&JTy}s›Q)lb5" Qrl X,S #,0'8q* q*3hڨb"x12'zX= q N:G1P X6um1pC84\@9㪝7uJ g 4z!)$s0:0#6eW06A'ꚧ hPЯtr Z e A *4* LB @Dz"0qz}q< p|_rW?NH/`Ӓ},۲HJL۴NPR;T|G azRҠM`"&`\HصUEKҕxz5@3:>QՐu{>mԶSN{w 10 zl6lKS !W@Q%v6sRiY!!{@> ]ฮD!w4B pBE5MY+нC B Epk! ћ?Ѿ|sMpPt, %>ի93C6c뫿Fl ɄW{2[gY +&|(*,.02<4\6|8:<>@B`*$* h0A=\+l2 ww "|m;@ռ8׌E ʉ60 htδ\E΋lAϠE^8 'p  ͠s5q6i0Ϡlhsot< l>!3 }3LНav@q@\BѾ M4Rw K-3R 3@l>g)?8J3=7Sg-i gHזCΠ `3m}` ؖ}ٜ٘ٚٞ FbL_&4lwp6F~vv-[+=}{\NӼM@}Vgs0-=mˍX1cݝL;S k-D ]ާ Қ]S6sEi DDG /V >^~ ">$^&~(*,.02>4^6~8:<>@t D.qvMK^LAT, 1 x4T~  p d>p joL1 vQI zdە'q4=[ SjNB&=icd"XH Cd!ddjH(r0>_sbKPb2 kTdVC}'r! >@ ! Ǝg!V b?~ފ>&.?qv` ^!Nn CU` Zk0 _.c a    fk5BM`&'p*V"cZ ;{pϵ0_:Ty-Е9H qBCsnFcщw`2NsHv0P!*c!g*Gz`1g3̜ ~u& CU33)^ N] *M>tm ᛰ&)Y}\[ /AMXoq{2 u ; N+/P֚߷@&Ü3J o*Տh _$mB/۽T:o?D*q = Jt A *WwNHb65"Zr6&TSRn麱Rk}y.-1̐Kg\Jsƌw3PtѴ ;A#q)>iWXTR̖5s1:[qΥ[׮FYyei-Śf ;va|5exV|cxjⰆ,_i A rۦK mGtCMd>s6 +]nM>>X-۹ _].[5՜9/ztճWKl^:.k8,rȵ{wU7m^u.+W[| ʻt!F[Z%j: 2|T(dC BK;Q+>y@p$ű^0 s Grt<oK`IFT>^*BǺK0c 13lZ1U{.,+aL: -_B#cJ/T!qʩP ̀`b2.I L+LV[u5Lb="M2Ylݒ2æqf |uX < *y9g Lg9hQhRS!bưۿfkB Ign4gEĉV߶C붓.|ti e=oQA%%p^y@W[0Fs&gsw$ƇC]j%T[搜w~Z~ sF[ls,F|  c jTwD(d!2h &=&TyGp ;pejb#|r6;L^gQQk#7`+QiySDCY5V8%L!ʬ}U22wK\6r1Dh$P8Ņ/W75 'df)lwBB7ƓjH/eѱ{B9yL J(ROz+_.ϸo{` AFC[tXKG89hH:CfLOfqZ )jcШVHt thHS)}g~E'MqIS"e/u%Tb*4vW"!q;FԟUK42&*Xz8XV4l~v"NYP,JX2m |l(8|H/ Fi5F&KO_NJ!ĹdAɳQF f?;VR>^ &uhsqˀufHD L9ͥF)ŭ|vśJ7Q;hȓyT T&^WD?c9 eun|-[cb65k[d0ŽFD"3R69J*#ĥMkc7FLiǧ0H*C)~}dSQlDP*ꖫ6hbWı5mb7-!jlc%Yv eV}OB(1(I Q&Մ@(qsB(5v#KXHF&-Z F4fnҨU#7J֌ Պ5 }]2$ӥ.E.A Fq2E8hG/oD%<[1t|6&|ɹ!D*n0t./xAoc#FBu\&|Ya eA-C0"z<8l4&ǐ*  Ȩ U<̈́T4` eҰ&uKs!63<aDc 1EA F%D l_!xp#RPTF{+~W @MϱD5m~#[BKMS Yvjp˙Ax kA}_?ڣy&ɂZUC >=O{mlr_o"nqM?y_lш#M )&RN.v`E/|%uȶ9G[I M(u7`wc' >"4XT ҍH9Y g4x5{@/ @ h@Z( =m2g`(1fjo k;)% 8wjz!|0 59)`۶|4+|plPۂkXD|^!Pv8xvG,-pxpbCY0F )ȃ؅x|P5aJ8Gt ۭoZÍ]` lqy+41؍ސ*:u(:B3##BlCEXwK|p[h`Ez,lxwBDrG@ 'FʢG CXisL0 I*쎳tP'kح)y*._0wDʄN^lMGbKƜ0MM NNt2/IT:+N 3N TNN OW9N 8B0ɡΜ"OLihDNOOO cPNi=uxdP P P P P PPP QQ-Q=QMQ]QVoQQQѪx' 0cC*4(QxWH)PR.e/%NS-K^J(D E܈8A>(oP1mD40 (^Kq6SJ̆Ѕ;ӺyM;M0 x<3 TTu,M έʳ5Uw0STȅ H}PX_Uk<QdUωҿHKŽÉ8[KYlp κkR+%V`&M\..-MS0b֍$W`U+3-D>6u78;7{brs Y(Io"pn?i7@3XGقt؆pzؼb u3X|ЅZrb0 |Ȣh0( Z vQE?qhU,ʊ\aqڋ]AT/=E m=eV "֍ఱu&`< .i#/=&MzR`c~ Sa4XN_:4@عw%'KXI@oF8/E1@GO2!M  p@ (0 05J38,ѭ) ڐD0  Z<1H0H'Ѕ'XQl&!AR Ғ$!_sC!IVV'ّ@AVi}9v = C#{]%̅8i˽\yW܃\~S)>eX;S|S.F.A+.-2& 2.J.aT6nҍLa9F EҸ`;9nyLaݍ$FS-^m8Rhb `^bp<%BGE_}s0ɄȋB܅[ 119aV '/T01c.R`q`r&T(ۚù HcpΣihpҖ[c`C|(`a{kh 1{[hUh̆UQ RbyU(V)b|^/iTb>S@:8c>7Vムi9\݃cc؝E ԱF9Dֈm/[ƠIFmX|0sXD/@G1䍈؊)p v0.zEvpC 5H-Ǯ)=[_@(yŞP1_y$(kTfPʆe PV(Cqǭ98+l(Uy`AXb\f<]ڄȐW , ;z]p؄$|6>N*Wi iN25Vi#F26Z2隆cGHje_:j'EӍƭ&o6ቒ֚: Iي^#00^ fPQoXĝ 6qHl)"(wrPI1(kS9?ifDrb8"TPFm Xm>jk٦dԎέab (-C\#!2 . ~ !e!hzq0tŇ,&it.Nho.1vii^bEX/Ƈ| 3?W_A8hE gcӒ8/P0v4yރ (Z 썐uWF ((qq4`wbq-qO0`@Vl8g[V9ـ*T(}*k spLt~M4_s)spXK8MbmW~~hà>x#J))MRJϜX΅(I( 5()Cx<@˴b) I*L.$K @Q" +s=e3a6&ey&iQ"(B$PbMI,&M; OB4G78 SEh|5ZhCY*[;숏VNWު&hB<%6:u蠄fs5c3PԤme+x, [Og;G_j -AxHMվt30X0+ n]e_ftĐEL+dۂi(˛ >՜Ta/ >髿>>???γzpCZ 4d14!9MADcmҩ_-bka6W`){hCN芇P- xAr\%!D6.V~>^>z-cI#"F! 6Rr8S(KDXsD,BMA<% ^pFP q41sTCed9N[{c#?Moۢ\&"qJQ_QHjl8FjqF*{V<s1t@tD͛fSȗUE9ğ,Ȃ-CD&F3d13ɕ0C&A F%mCfϥҔGPy MUA43&}!=#_5JdQA6Z>pcU nA6t>k/D8Jʩĩ; .[PtP MD/4 YCFN`hs!HE4u`s19,q` I4Bh `?RA8dQ`!\Dw`aud2d.>vR2̀IeCV朇us5AqRk@L+!u$W-[|Pˠ@]d!O,܊vBr @>SӋ͎ %`xE(τ(2ZZ [[Z]Î"֐h }Ȓ^4/"ĕ+p➣=4*3F# _5._s..S86:@8f'88N#BtUK 9T "I2>C#~FdQ`EQTw|ҧ :Hjn G:H[QhttH|qqdgZQ4L hPJ * PB|evR.%,u<8,{uUUHVnMSVud)HhkY%ydؽ$-HX7'&RΆi)uy]rCYHa6ٳ1dnDNIx' YHh'>qʙgi('pMffm& kfMn6 _^`A 'b V2fIA5g6fctbr& E'.=rj'vD 5a0=a@x+h?YCQ9ph6D|QNCCT bk=C/X:6Dnd6@N`GZf&9Ē>h>+ 4![Jf#v! -5j&I\^;* CoVݱ`jnRI:n3&r>4bگ5_xbg~AO+دC7G.DiVɒN"0wCF8F(Qyk猓/MM5IH"DNbaekAژ9D/C,QV8L(@CNjS4oJ:MHDC;WB7 D6zB6AWѾ DZ<<&@Gp8f>/p$DnpɵwαWw_=CUapFBToC$@42_5HH{A,hkz"lhECĖٗT?Csa(@l+)0!tCĖ [>>\@̸뷾~D>̆#$8|YVQAW c@8]LM'0{]q@B*PD{YuHYME+̳Xbdvi%1p8| 48;)[;x"w\w|;gnb2n0ą%R<`n M> tٺIsgG*a_…J}y䴋%I#x䬩9ztJg6 ]|u$ٰ n]qV)Buhj.| ϐ(,rdɓ)W|A:t+ &6϶+83a-@dOGN7AF3J;El)ss0g3WNLg`mtdetԨ٢tKQH>IkS=~qӀÚ+`pf9IE$ YVIe 1|0L) >Ŝ%Eβ'=@aԡpÇC0o`E!9a C@#S2"[:0EC(8"tp7Ç|\NԐD5\E!U{It\?GSMiPZ"@!jB Pm oć XG Q )BmLJZeMDRQ/V(#=>{ 'Q${0ĤCZjB0Lm kn\Hq,\)}'sY->I=|F9 ExduZ6I/KCa oVz#nR/vq>4wZ8!JѕK9\q9@S  0@c@.x (G*T{ 񍽝- p=K+.&tW&-wFt]KO("̞U7@tvuQ DWTcF>/>LHEچA@ל6'M0 71%iH5*tQA\pLbs51U4Ii*xar9hB<X9kYV$_NkZЂⱮr5A@z- TAгRA;n"Z\NJGŁIhA TV |t]k![8s0i̽V:%.f' shw(& / ^U$tAghbdXF۫Z"W=ݯoA:|ۢLqwC%PRCF14!+_zx>EMC܍qÍRpcD,B)% gl$ӐIH)5m< m kܘFΊ|l7^gT8Rr/#a{ZVjVqWJa"` vЃdq17k mklGOD6IoDFDjy LJRb8Zs|0KXG6R L/uEkzU|Ojll YT:#U |ËOVm[JJ1LTAwǯL4\a8cs};#)3A&ADFڄEn'"KΉd  S.F< " ,<@p&0B$$&!ArcdH!C` "C_agannqZIB$ C?! 0f 媤.#M $ t!"&"N l Bʎ0%ގ|鲡'JVB̪h'=RB <H& &7a7"_6A0 "s.s BU4K7 L8S9dBzb!2P!B P{G2dOu QasۨRa *R;\A6*S>S=TBINu NuS% 3<]ph#b b2S3CWt5TCtPjN6^OuȤx`N#h-+iXn=Jl42HaVp!56@*` s 5WBB`6!&+qa`f3|A`U7`fsz6~MUn"PajD!/j L #b-ԁ"P--*sJQ^)Bظ'N"OO"$Qb^1" i I&BPaI%Pr!ȍ*AgB W(bjqAE\\( 7RkA X^ay%cSߑ,^[X5n+hn!o B< ⣖J<"YNp9GN:<9.W=ImXq2]IC!u l9ΊuFV X*N b P#~"]d-CsN3|^`Z6hC| `W|O,a{=~CJÀx74 5W| 朣YzYy7 lxr 4c[!,\vXa>cV6g~!gJ6'pU.eT.A?3ٙ\Eg{>)玣*z1 lf$p +&st32c`titMj˲]R)67BdCo J."fTZa- ' ';46xayWZ T 2l 6l@\pw23'bars!_ F[5VJ^U :62UJN.¢b:Kh!4z'TִkHr.~t^6K!AGtLg\!p:,Z{XKB!!Ɂ -4i+9PD)\͕|Լ, AYQ/F8!c'kd7 a@bS.;qxRir ò/NnA=sbZ†l^“dLP|?̵F`7 0T5äH`%G%Peu|5mima>bmR[h@Z`AITbQ Z!#5&Gml٦XTavb`=`%_~9 AQ9% 5d2P#H"$>>DOϐ +"-c ¸3D5AZ "1k T3l)>t6k(>%tRId5+x9aN}3fc]O TDPqUja¢3eQE 1F&@q։& `tb/bvcD6Y(]Nn(K^Efukvnfm7m8'> *u>,%e90ל-N.4#ٕs7A Y㥜{'t_CrMwv͈7dG~!Q ݍ8ܐ8!~c8pMGb`cX9J?M5\Yrs0]/a-l@U.lq$QzEY@| |&0O?'8^}(}P;GO;8?s֤>h&dO  IE."8ҩ`#Z >Z񿈔a!dE|4APyapdBo:H."+Y2,gI+Zr1Jӌ}Ov^Mt0̬ty&N6 #'{j%)`_61|,0KS´qdc0Sa =c* ÿ 9b/KM\MDI`3gq3iT<*ȭEgi$5(dCH)ڲ|<i7 p'9}7섇XNwCh<):c#$ppC 0IHÞ[Npk$[rHёF9*D Bt'1<&m!NCD=)f'8wP>#ɀ.r- d(hC{-DŇ^!  avt\f#  G|,88Ư %7YCq 'Ƈkݮ$>@v)~_x >ջ|?*~+f~>U  cM~}"WqHC}C"OF7V $t k0vwjOj}==r>QgQ|&2]5q}~}L?qXxηG;Yiwaw&Â'w1,n5 vgP dGNWyo'yK bz Bzp qS=C=G1 w@ | G! Qq5PqbC( tCW(a2vrEWH Dص m0[@"$`?u@% DE^F# } bf4}h`#Ea ]ǰFQUTUI\٠PQ?#]y7A װp*;8Ƣ74M `kiph *=d?(H)xwYL9I wx3DXn7!"xcn  gnw!@\؁xĀx dƐ ȐѐՐyyooPy$ `qS (4*-` )-0j@ r2?n;'2I`J0aT'|OA8ΰ^3zP!Vi9d6a m` u{=ȆG8HS aQLҠ;s?Yh{~`}84Nsր] c(tp` |.J{!}0,[֠bV4Hh)1GDqϐw0Û>"qn1t+q*?pnF@a` d?4(YdCQ(9dxظc It.qwn|g c6 [hXyG(1G\  gp \Co!8ijy%Jɒ#` V/+ p31Zvj>;YГaCNFi z@LJHw^pM83@RSOu>kN1si yҠli@zlGmw9X_[8f~x40ItQFDQDs03 <3f~wJ.A 0.C )@  Q71 5#0¸ ݣ L0hP2(b*h؝ ،Uw:mwўynEp-)~nZ!dG :1űxAyyJ (Ky+Y& o#Mjz4*/J'*x' >m ~rh.B9SғH*BGa t @S1e|M) Aq fJGx!RKfsj\pp@v4BQ5r8 mGf~[~8 ?RJ` [{ wN6f1 >-q 咪0C - 9S.I ؠMn, ˠ7QeC␋'1G]),JA)@qwVCR18ZxI 蚮|'g:Zg;,z+Zsf+Kۑ#ˑ' `%I&I!'22Y|3ڲ:ɣAzwU1rDIGBˀx@B}>۳WMb6!bdI{`x`ʦbQpdnٶjQh1tw+'7·^VчG ڨ:LEsP @Tۡ^ axF Kaúȵ{q! !@:QCB;+ɝ ˛׺׭KҸxdKؽ(:,ƾv{d` [⬡ l_|%!,ԡ49\ l%l7B8p8'_`Z!:!tCP>s=?V;S'{=s) Q x'Mq njqp~q0N~3!]^{lExa Q=K9[jِ*li՞_=$3U:.yW>0Ɇ2B* ` c@b l?#"Jر,+Pd˓cˮ'ژٍV܀ȯ:\ ʠKxzjoܰmI'  '#̲hERN'! &g|}t>ܰ {@Ҹ"Rk~MA/_* ?A3\a7 5 ri!$@!0!}@-0ۣc >%>(!8>CHjCǰ3 CJ`șC Th = A:3P wp>>eM0 -+Dbrk@媽(}.;q h;0J  K I[\MʝMf (# "=Ne@AT )Nb!= m @sET0lOոtQTIrـ7,m^ i:N& ._Ė{Q:$O]sa 2JT:j*?l^Zb1[`U0Eֻ︪[㚊Xױ{qX7g!L}mFwO|P>Q_eu @AXy'a vDdqx:gɟ 𫯑͔A+ {ɽ=ϲ!$Ͱ( ,ϺN¼N&jsVCf5i&W&&j/%ø5=gCIB)Ki&(b3k|†Ó8g/ WTm/Oo/Oo/l&`@ATf $D| 'D-^ĘQF=~RH%MDRJ-Akx.[F]M.r\TPEETRM>uḁ Lh„C~VXe ߹Tkϧ(ҁ3W^}XXfۊbX,o -_Ɯh7vfqϬ;f֭][l CCl[m'\p;CaOcEխ_Ǟ]EX͟Gis1"'޹g;;G=~E Lm<dAWvygރnA-OG$DO q1C4PFBj' ͫ} mD2I%Q ޢ|,23!I-t G))0g@k(R! dM7lE!Ir@8S,r+"ksQ.pOI'ң* 2 ݺRQGe nnJGT4'|ޑ (xj1I5W]wW_6Xa%XcE6YeeYg6ZiZk6[m[o7\q$%7]uׅvdw- S"v;ݍ_Np°suAm "&6W^ih%cX9d)'J`)5/"&ݵȓ $!3egxeQBqnm]'ZKshB13lqZ⢚iHڽ-ކ{ |>=vaiquli": 8Rrx'WqA*c(G!m/n膦Xlw#)Bit1jZrb\-Ϩ_ۓhPbN#E@ '#0 Ш/8X8 p஌5s*08jl&(5B]FHXlݬ (XEC٨RoXxeX.= 32J^ģ-C~M\)\mw{0xk(yt**lBm827qFǚ\fGl" ΦS3[<|Ȩ[ -C*kؐ9l@4p Yz;KLCj#SSC"1ƃsFm Q\ ؾCb*#|0rd},,-6`&xEArFx9|xTа&bOȷlط}SGp@Q7BjC<Zꌋ+|w*M¦Hx/q9 :'t$9SBq0Yʌ r sPCJm'Hx0 s@b~3)JȆ(m*9Wh`|C6Y(1|2C I p824/ElhtD0L$ ;z#A`<.MpŊE|*3hH2ҭtEXȅ@k.\l]8`a=Ks(9flHFijħFô*pPOށysa@,w$?Ý%|H H\@\&OW:QTl`QT@}$;,!ҭ8Ԅ8wIJOX9ۆdJ"ʩ$Tš lpgEn/v@1ܲpHr1& ùlj@lhŌPQ͆X 3̈UXQmw2ӟq8T8 tچŘ4L J(0J@M >P j:F)(xE3[:3jꅎI X>304j`H )#===԰bNLdOxB:RK\3Y>5{4U<1྆x'ث,iy,%ϓ,š#P3P k$HXW"-?CAW`;r|ݷXhlBIj@$&mB0R@` z ',M +g8.a"*+pjh/R/%TrCv [=ό&vZ"C* bQkCm1C#i1}`؆SD%Lb! 50]t" $zlB!"m\ܼ/چB6:֐ ɛU]mX|HoX 冠XhYF{4K3Fq$gȅeN[SËB=Llx0 mCfj0MXz1nۏ` rilPej|P5Z[m0nh%ߎh1y YsяHvU݋/FCmnOP8Vn_roJVoYI#P/ˠ6GWgw pIk .(؂S6%NTHDH\pqia Arp"'Ih9@&n'n(oUrU W.G0& ؆>H4&!p98-|p˳q1sh~ב~ ![Mg kV1H>%+HjPYQgqq~)Xj̎xiXhqDV gBWOJT i Vb*W&_Aer|Xw)wrwr|r-/g.$M4H< 8:sF"~T6R&*ށH]Hbs̢̋)P7idr]mp .hdΰO? RyR7`U_S2s)X}ƈ\wKvz c@ggjR0/SS`hxw{$)Ès!mn`aX"sPx:d$J`BMX^|(m3(yKP< |ok)21p+}y}yP3A@H3vTxWc jֺ郴ÒRzD,MxL虶}y2|؆?)MO0 8Qq<7VDp!> z6p6MI$r(.>K q&M,7})S&C|KG.]T{w.['|×\n֥׎g(keХ0I-ra|(VB;mܘqCѵ\Wf{3N`uf(T| Ǒ%˴Sg;r%ztj5k|_GӨo^=7޾.8rmk.%7V8֯cY(P}" NbgC!}wq\*E~vBĜp8. e9Xba~! 0?3m\( 8Vh(fX/Vы1h7 bO6j5ߨ$%5ۈ.#9<cLMex GϘD)>>,u/m V|36`UMSrc8MVSGCl6)i]K\p\."1Tt%\Z} p(1aFYe|*3&gv¸k0&l1v8Hsls% /}mQP=y)3>=™A$7Hn(9p_&ױ &`"f3. & 0.LCsS+Z"{^a۸6 >Ib|đ#Fllҧ҄CĀ,Ϣ|j$Ѥ3C,.߫Clτ0CDWCP뉶M S#ʔB࣠ >aV3Ű^"KaL N \L ;N\}1pB4"g L LP3CXgԌ&aVLZ6XĘL:p>L`|8OdvHm'&aELθ d:oӋmeYcq$^NМtpY"#E,Z8mFq! .Tňo} H#UT |)l䶂sY\<5gB}AXۥS2!8X;ev1>bEDxKɖNuSHDtVWآz 9AQ '+&1x$D1ծMNѪ[%NrB 04,^:1CO$,bF%|0KLMTy>.}]@B|D4-l(bB/& ]hP@P(FqӀ`:|\3q* fmHdqSцbLˢq$rWUPֻƌI x|3Pj`eJO*|& M`1&e\bODN8 yMi_ =~dQ0jҙSg|1z!LHȻ~S~LA rń%F6*l\M8ZLfll>$C 'ml\#2 a WαO&k/D]j(^66.N !T-Ъ]ꔵ*!~,+-|]ꚍ)\|i""ge松c g+}b8Gv?՘a#BΚL | 76a"ihJke˷"q4b=.w dK\J\nx˹) C||$H PUJˆkjnȶ h}bI5d Gb.#8D}h UwQd&Dt I=,@'a3Fm#o(`c-(ˌm)u2' E %I>]>¯FS*>4U!XZ´i-dqF]Ů(wL&v tp1p,@moiI$7zұf6m j߼g6^0Ʌ;~c/۠uX JQ(q ڊ.k嬨H9ZKQ]|t n.Qf#q&.;#Yy$aMr&ߘ%ǻ&~φC(~?Uq91KL3܄8BfāC5HKh9p9 8hׄ834C(L>H8P_,]E d4B QQI `TfcPIUө–iHLƅHqu I]ȸڍL2I xaxP5CGN;܇͠UPTXxXytP8R)Y"$Ga>^TPF~h(n((+a^G̈́LIT6P@Ĥ;CTּoLp L(u@O$8H>H|CT)H`))>F3hc.\'Eq"'j L(⃝*YXhIpȞh΅&0(p :%@u Fiz*"@w}8`phj(~r(Ȃ@\j*j"@ ^F!^G` 108pC7lzĻF׌CJ Hk7뺮++,DIL0æ-NҞ$A^ƞicͅ5kEܔ6NH^:uPj"B*zޖ$ut舖쪊L~hz,r茚H֨P*` {_CX4ՀD֨G @}BLLCz- NZΎv-yM&ںȄšn2ࠟGE XmFO=y)^"|MOAFL<jL]vΞ$f22Af n[K9F2hNL\,>\,'>h&o~no.%$>dBBobZBvGɪ*L^pl/n숦zop`/M j{؇lpHvx|DX ,0xO؆^o6MۺmȄ--Ќ h$ M@ D|,WҏͅGZoe\M2q;noGP3AQl*:(RjLnL\qn*/v&doq3@~qq@ q_Ct]/vNf,"k8o02JrL)|RpR@f3~ mE)դGT;2|͙-VH-x m2y`-Ƅ, 3MmuVLHD@(C`ܴ>@A <O H>q1G0uL,|H,T2CN02s2SJD2I3D ^4T,ߕB3WC$OmMsF2q>ץTtnK tk7h1FGC/En>_t?jGvnbtʚl͞/MKKoɞKoMp0~:m;\raOoOL\Qrb!vL@LAy>7zG,5>\L45H`xQw_u`|A€G { ^(6nA8Co^ dM <U& _8)EdseZn&n3kS\D(q9UU.BCgo.96sncG지>[u4rrgnEMvrht#/u*t9nEN#G id7x|7xL;:G:?Lx@(x~xuSGA|C0[+zC$mTx'1K$jxLxܮdxklSA_d3tgnq71Zfywt:4lw꿃H68ވN d9.z<+|H:>Hzʧ|ˋ+4COg^_"%]$P+eX4{ُqAsǥ}sx} Z\\l1˶籽#$*{wϬo*( m2끐*J fS@ӆG6МR8G~bѾ|xGPXș+*b֮Vb6TBvx"jD7ܩPSCB$,.3-OC]=B+4_.˄sv&4@z`A%TXL1aD!&СEA:(RF ,!J/aƔ9fM7qԹgO?:hQG&UiSO6jUWfk7vHX$1f8h ;n]wջo_˜:j`ÇÄtVYX-"uğA=tiӧQ %`Ajׯ2M)' wo߿>xqǑ'WysϡG>zuױg׾{wM xѧW{{M+fo?āK&2$/ܜJK( Ǟ) $0  0,Eì6ZZie{Qo֙|))3QvT|)) 0s22GpɽZ jiuh;'igIxB&8㪦L'k!*A!TA l !&(EmtSgLPs"2nєSUQq(3gɚ`lcνQ6v|~$q"򜄶iko~$  pt1!|" h X,3YsJIlH|5sXѮ jF?cژej0J4(c֨`YXsj&*yM Tt?E:駓LQzjVSM[w]3>=hp, ijv[%wʽ7Mw6ŠN<7!$I)LJ®(V)T郍);+{ݪ')wT9k6J5o˽"""!Pd^b"T1N Ih8)Rlf0VMΌs-/?8v!EY)4_yEФ΄XpH,`ij<lnP64uw1^L @^`C>)R$F4+I^ hOdwd+<eBob*TF+RqjzXUqQZ[s4=w:Lşen+29׺x1N( Hf P"T)6oJv,lW@ga]r'<LQ$ˣ̇`PgLLapddbQ*3HG(x+PP))Zrmk̊Lu?ąejQ^U>UŗLQS_u()K CT1q(k h@Er^)CSB@mX9$WQϩ1hx? qrc5#;$یrƁ2Y0l 6e ['Gٰe;d-wU{drPfx~E"?I3r3>~qx3flTĿRY1PFIcDh1E 鋀!$49f-ӡ^TTkƪ6eiO_}[[12Y4a)g?&rpu5q궩@OܩY+Nx{ d xC9T]7'Ꭿ)o,HVMl/G>#VS$`\IPHi?n珄1:F@! ƪcp,( @ AeGg?D&Hz$hS0hȐD0.!}VK&/Cvq"4ejbᶯ%f~0D"01X` Wn|<"$%^ d1*r*%J29L(eg).f",,QE!""`*2.4j.Q/!eBB&6Rޱ*s07 s.@1S6a#`".5s39S/|3c/BBई4iV(SSr$4es6i6m6q37us7y7}738s8(`<'99S3%v^9:y;ɒb |'`-'8U&%~0&HsJTXg Hi,v,s&fNq"Di vB#kB<ۍt'ӫtji1U&%NK֦`yqu£PLVDpXs ֞sJqhD|Gd6hi&Nvgbw+|6Hcxac@8 DL!zDE{aV5vf2 Y(E5R#U%h ?A?!VHCeTavHY!Hva~gVi b7! Z9`w`I wAv~\ uUA X:4/Fx?Ц'֫6l6˛cXn|_⚝+v1'yO_b&plzpmkgtXt:l]uCibf!^гp&\Yӥ*d@ @SoΑCVY60$՗G 26q!qI>pj ~QT*Q8J&&}=~BpD}EaCJVG5|p9 ']jr,}wE*:\# AIҞcc}+> (/Tjeà_gwJ^D.kVƀox@kkebET6a\2%1g 0XN1|*\ȰÇ#JHŋ3jȱǏ CIɓ(SĈ9V+cʜIfDk5S$I$ш&%K)L|EEٜJիXjʵׯ`FD n9m]˶-Ckⲍ+WLzNjH1ڸn+^̸ǐ#K~L:x N̹V~A&|гӨS^ͺװc˞M۸sͻ Nȓ+_μУK^.^b@&x#(NG( _9 X_"ݹg:w`&w|Y< szC*`h8S~X"> X)ANB: >*8\hQ7ZJ>$x$ O*i]^neBOl)'nޕ%I׈3PyY2ޞ ɟ54 A5(=Z G|e>e0ZP)2*N)&{6jAhzjɗ7C@|g_#Z7pM;KUdMA|CmflJxMᓍC;< еdK&(3`qJqƣC>6`ҊSmp=tєNQRFRg:Tf QڍYfh)EppV$YCY+Bhi&{YʬfS64yQ3(1I{jtAJ-8'+f}0MɇꊿB$0)El6v3 ;nB P91T)nB#t-/Pæ` 뛠0]Pp,54_/<1aj9ro|P0>ݸN:#2QMʕ ri*4,Ы '8L#&@w h_XM`}A«4?O02 &NVrNB`rA!eyP*B(U*pS " W>BfPSyb6hLqF(gšN5⩆M$A#^*"A cK1wg\8@â "I.q"#юw%4iZף) x܅/s#)jà AK*ĠoJ!FvY*Yӑ9$DÞaPo1e  R(&L[lCq@=il<)U|i"=Y2ipGW0 ۬քFkGC%%_ܢ8O;jCkUg4,ԎK lPPUU/=GT$$THGPʆ ?žNr@O`PbDGK i(Y$!}ĊLّ!ft%!(% _ZH,64NF'ĈHwu.Y^ƶFjD$Ge%Em\z#E9>@w k~YM[&i98T al8Va5Fu7=~^ٿo`~L/Mq]a+Nz0dQȑ9\|`#c܆An)' Lc#j+qlgc)™.[6}&${SC  m V) +zgw̭$0,W,4px7nc0=B@C-^0SdD( 7*ĔiwBBıax;G*/ 9CQk2E2@(R! `n]1+N^M6{6SJ5@? D Pw@r{ ({G^(Ro"B A JUSf'7 bH |h'1T{H UQ4XSUP&' NmHm,ׇU+ g8.XRK2 SUHt `f# 0. UGtW aЎx 0ӌhEDh-H,2$>PLtK#E f=%8a&h  AYQ*wNpӄ%RZTbO'%7a`d5&Z(<%TQP7}!ՆOuP >BbO55QbQ*{Fo_ Q9d7)g+05JQ,Upj)q9*s)FQTœh×XlI*f+ѐ}(&UW}(UHruu#;*;b-sfI7ḀPW'p."5/9=ٰIQ<:B.󙥙74!=XW<#u% Y!##<&r<7bЃ.IBk鲃eJ )'kOk3I9DH@p+T?rBQ 4@vUj@4UUQq$:dn':@>urrqj)jF_G(DLD A4E($цhI2v7x V_" "0%f8{Y0R,s!  Jv,J&P& LP]¤$cy` b` Pc L7k7<YeWLĿ{%|dp΄whjf$uQ7& Q,b#1.dJ nkf ٻhMN-J1</VPҎTV`(!\ H/i 4Ϳ6] )ض~9Sz&== VI9t&kBmf`I ?'mPS^CpHr<b9 9T lPX!ƥ&p~-<5PYJ3ęQlj ˻;boL64Ja #;NHȥhL!VM2Ý MNBc0_^ԍY:G٭$=a-K W~&|WޛCcO˃x'm}C8dzM nɇ6E:7vq$m|vy ~Nz~1XPkX,haQϖubsE/^bMh7!H݁ 1ԫ5 aPn V2;\_.ʋSeӜ4Is&{ԡ*՟xˈ1U "\Qt^Zv^xw@C( hh ^^ pA|cⰷبD-7M8 Л"_6.ɴLZ繏1Ac3Oـ GO~𐼫UY ـL~9ʯ>bnY+46u!;.J!ܝ)'AOD- R⤗&KzՒ^x@(o%N 3M|P( B#͐7f[&@$26G;AM$¨ʯ 䙷>Ҝ ; hܙЃhLVŔ V!wjȥˆp >c5s4{ns⓵0D+.|Hϥ:N*Z9@OYJ|À[rېN% \6FebI%2m7Wa"{(TTEhYeҺ 4l@IXZTLX]'^*Rgm 1+1E&]iԩUfkرeϦ]mܹuoO T.L~*4OаDfq1+4k4կg{ϧ_}mm\\јЊPn{xJ 3OtxѨ'@B!Qs"b]is1M8 MO=BpF[uUXa%4ւbqaGR+x(.E͌:]CBRA<өpv[nrA[ݘ%VP * r4. ]"`M+:*XH9}F&r o2TJ'U!r;cQWPaАg3]Յ]\B]-%Si&CufA FI m|~棎GR2Iz94S{l"A='][8Pw)T !8Φ9Sc$(И{7sy7R~Uw ]"ʘ㈲m{s;|8@]A?Gm/{Siv٠np^IgpnT0 D7z_Pr|\ 3zL*]{V7u+fn0govn5 ui"4Q|WW"ՓK>&P}st$u^&_5x>8.qH(?n qIŀ[ X@FP;䡖F6(AP^7m E<"8ؚnYXR_l8!bdpdQ4Y#/%XP)pcxG<"id9B1(;JyGF:]@dyL`A@(|UJa(YoPșS; 1`#RHXRp`Ft'OV NV "M.2qD kJN Y RY89l1$ޕ&oƍ Otd(Tt}Z$6P'nVaaJ& uhC!щֆ0"Nqmh"nc*E6\9S{jeIynt0F4Q2VXnsń,tx%R9<$E1#.-j7HׯHֲd!sAyPWI4,aP i+WDv1rsۄ8MhIi}$lhԂh)2)Bm륉A4P֒u*At()NSe %EKW(S Aj5"Awr}jkDfsu-`+,]μ:E,B=dZ (bқ:,<!cf1D%Q0Q6%M$EU(amJDzQS|x6L.T|0"ˌ_o}58N$|E`p;k"q|\x#p3ypqh~,S#0G\l)  recݯ Dt g@slǵP@լ`:^p3"|VV-5x-hל( 48$ q D )UB n4#dR6``$BYhE#H©h9 0<Ttq/zI i̱b!I<C ʡ;!diCp < ػ;$2t",(&apK(&0'+7>kˆu"L$Nruۄ {>l,l" UhEU01X tOT73-^EK_}ő> 9k shFF ƐFb]ԦC ,1K"2iAAXih{|2â~,@,-l*~$0qANZ3t\<w೶#U k0"pIn8$4pxF *t$M.d= VR" }YlPVpC6'aK⤂`;sѰrx;-X6>y &Hg'lQ,CEA Kt(Fn$b4-m>d?4k? ˸k?3M8dMkMSt͏Ll:E@9@X:@vLj,Gh ܈87;ꄍB(4 B2 b(IЅjpN 8X8w@T\;;o Ҩ*0< JĚy***/Sc16l5SJ|_QQ |uC6phKyɈ=bd[$eQ4Ep>uDOHYLxx>cx^LadQfӽ ZĨZ> |Eqo`>\ˋ2c-E?3]Yٗ _Ԥ?S58Ç)L)HDSʎL *8 `%{S-V{%K{+C *Q$/KpLI/N@h4q0HIV0%+Q]8  3\Ѕ*|{50:ҵH5 e|YUJY [cx-Q:6@Q,RM ㅈ)X6; A bF^-k^kެ@ 8x_:YP2-MY:]SMߘuNfe^\1V;ʳV_IefpNf 0kH xK.!Md }pg|֖qVvk~gxFp|>hNh^hnh~hhqgh*հhhPC `^t1kSxF(ALڐձMNa.*Z6[ሑh j)lꧢ`><*ƇUZ*E c*ճ Mx (%C`4m4 =xvRin@7Kȼs>wN#)a `|xY?@gm@4NΩQjiWIPyֆU1ĉBDB%tJApP^tH pWX6Dv6pv=U|=Cv5D>C;f=qiѼ)vJ =tYw7[uyrs01}O@W|1hTوþx ?Q 'P FϷ0Ox[ [y^[a WVw_AT<Y(k4a Va-"hXq & ~z'˵6.DfJi'{T@A-e/n8aE 8!˕×͇`<ۥٰAߤ%e}|Oyn=}#dJ|K@ =طe6@!1O-@7M.O94RI'ٷRKրNAOXU8xR@TRU#V>jW_)M:$Q% 5xE_!Q"eR 9#Na)c0 5Atg1j䙄iy6pRzymP@.ZzilN'UG v>dɝ'^LѤW6|D| DCQ:XSH~`&D!An!bva6$&lKj~I!dc:#V7[k<΋V]䒘 <0KyMu1+CE̖kq 8܌ce` N0ej!1xb:`cC Yʲ8d+#n)La0I@4e%ҍ8ܐ>~X3Nߴ4Jk vDל$8un(|1Gk] ߹(g7uP)Y22|"A\;N8SM7}}E٫&[TQi*N9]3gvEDE"(T 9_M|D83 LΒnX/>wL QchA&s}x &D s'xG:Zo"ϰ,>I6lXr!Q B5xm&E9 m3 gE@@N(|ܟX:)Exx!"E2|$$#)I9barð&]K$P[:=mV&ʴPe|%,c)YҲ auqIa0Bx5l8JPRJ [[F|&4)iR,Kl$jՙפϩu|'<)yҳ'>}'@*ЁN5<~"T}(D#:I4+OD3)pT cBza4&bф״񉽒zɞA'uGYAI2G*rTF'r"eѪs80=ammc!qQ40i$B^="!s@-R9q3Xuం x@"c[@5pe JȎjۘSZϷ̹oUQ?DڱTP!]qړDa'IJR*]g9ܒ=Xtx0r]P *5ePu ĄJ\,SPݘ KE,|9- ~ƊkN֍m2RELpkA++ lpJCPl+[뙘 ܠx9֝#`SA@3=m1"ұ QB>I#ȁ`ƈ6&EjWLshlb➤TJB /,1ʜ\"Vf\wk wOv +S5y{ojV9~Oi)-tYPK*Sy6tl6G J.=ы~#+ ^BI( ?©h?<"`MĈM#^d0@}U q9֋u RѱyjcGdF߰L[J_"ػ;1q9ɵhA <Ry |pR(1+UJ#myB_Jf6?yO@؜ U3 7DW tE]s]{Yhګl}A:]iRY$ . >4]*U`ɉCf} W `̠&e %O}y*)U eD h7 1 , b⡕؇fj\3@X> >38V^"4#AA IaACA"=Ʊ!߸-_">$9@g8 e\q>3ikDƱCi]NmD(m\7\%efɇJ* #A s 12>\ 9`lB=bNL\D:*D7н cI uT`y:AId9P8,$uJHv|W 22A @ R@/lJwuCh[I}P-^%@4P^[B]އbabaZB D" 2؇,C#.FA>iVC'4eQ()5X; țD-&פGW+"4^fluJ1~iƵ`q *J㱂{`>Ý1A` U@dhw#>6pWW) `̦Ԡ>E6]!'{L$` `hq>_dy~y,I8hn\$2%94F;V>eQR (%DPLJ[plRW&c%H"Y!%%>%\[eLI6%"Z%𥍂["8#hő԰=Fd@Y,^^dM."D*T0QThiB\ibđN DLf a{Y6_{{(mg;IF}JM=⃠+| ARGyAI}鞚vJ>{Dzұ8lCFgGV{i|6g}~7'.%PTIܠMRX(ꀄ 8IMD@ XbVuh['bbI*H)>lA≒^^JAJ莞CcTb^"+=`$](I6db%N),$Ji6"W #pl])B `06cjN9IAH{3ls\4)p.#IJ{TR4 + @4W6J:mDljZ˵C`lC` 笺' 04Yj{$0*{'Q)Ej&n8}m % E9M@Y6BMA tC`07$I <O贈,o>FА1I(KAԬI/^BL%: SgJ \d"Y/8E8phm,ɶQfKHڷ-w1I iI- YsxF*Xs6'31AL!6GnBաmj;;Oq&CR-ڙ'B+mBӵ.̲ŗŭ$#7Y@*..ІVGEYXM5*SwW5XX5YY5ZZ5[[5\ǵ\ӏE\;5պ0M8O'o[[06 8_RqYv^@/U:_ W`]kYXn+iH-"jAF.9P9X"%T[(CZ$t_TqñhMwgD_Bo 7b,nV+ _u7G4E VnʥpZZ8vҴ7 dìd [hZ<_k Z cI8_,S(|)j,>ܮTŋUTkc4hhc]%oΉ,vŴޏCul@w"HF97>ЂF,)'8;8^+,+2u˵w\ |G|[ ~Ӄ_Erŵ$ڟ;(8,afeZ E8L@Xfx+@ YNCX=[hĄ+E(NLA4$'7y͚H25B1eg3d;Ĭ^h:8d9_ǒ.[6z6@Be'Qr˾Z/3H07T&,b )?gU{9[*D'΅:KKM2bry2EmM2MI<{&ŵƛ}hBcx&02$ 6bܼ[Y,[ol}^L3;:3{{˩Ct`p˽ 8 ͿS&aBEAD\0?!nαe.]YsbD| C]m.ݳ?ħܻsѬmCgP8 > o hsi1 :|@'1sz^,rwB64n_(3Si-쾱1 '\)Llܤop[521ו :\9rOxrx<qa3vpP$w'=ѥ#h(HsY\MRi!Zӑ5g(tUs""p^gt4-?$'8hՓ li }Cd'sBJ3NPqCR)x )T!ou/3P7 x'* BfFxQD5) W&&A՚H̐Bt,8YϪDqPyyD$s4 *LqMHPЩ$3F٨oCr[6v&_e8 +#؆'ljra\LjT3%*=9! 3jBYftH. Sog06 /_ӘXeG/"zF6LiRӘFbgx3|P b bίQ/[V)Dq^2! `o ;Ca-F R BP|d`F\I ݪz'JY/LP &EKgӋSVc9!H*n3 }ܣCnĀ)}PҳY2G<"ؐD0QNq>̬ p?#t9#JWJ4m5D^XC"zXHXrWxin '7Ec "TވnÇXAYpxXj'a&4iMnԹ0)O2e"L JTAЩ:2Nz'GYe-Dׂ* ^w"&L"tsc#$~έNtƶϕ5Q6`!&u26(%aȈ[!nyjU=nkx28<(˦(V5fb;򂍽 h5Qqb D+8ybj&1K ,4~C! Z^ǐ ec9_coFFhpLRgI 3FIۏu1f{XCdI u7Q X" )lWv1aݸyqNdnS,ֱ!leE^9aLC߭p3%<=,Xnf2C>^J&v_Ȭ, ' sLt( Rn_P8R8pt}Qt<_{"Zz9ue3å =~:tc, 6IT•_,/9عra9a=XI޿$hSzMhw;AFr}ߏ{s7Q{?g V )uGYvIj^8uuN1ֵM%Z{ù[zg:Ȏox|o{mx@aXt?gxG|Xc\2Ax u#o5D&!րSl [du,ta}LyO" A"Z#>HbPgkGBlPw{v3P A-a ġ P P "C%  pbPBPQ Q#Q'+яl@a`;?CQgNJR"OJL1^zz{^`eQk(hatc'\HHI`HHF1 8~k@6b Ƒ#Qxn@ /`6C.-ڀ .!a@nc Qh :d!a/C#d j6XQT12@%"!¿LԆ ^6^&ueq&$t#2(guqzr)ko(1qGG&$81%HN L2f-ȱOb- E t `ȞLўBHF+!aۀBAdlh* &h؁1B"_*fRC2ʎl4*2$bU($e%4jqST6i60m17j!zR~273_Re)6FP0@mr#Q+3y c_,d Ad3!K6-(:=ލdD "1IA?:BaAaB!<>R @!V M-` v0dzEh(#s|`b@+R p!tpb2JJwM!v&L2qc\bRMm. Z/I{ DtHzN!|"n :+)!1Q"bM#on9S*Fo;}d*Sp>8n0*-MI(FPwcN$ZdJgcT Q<N5I@U+(ZmBYj7Q س,#BCU (p3C/c9'b9 *& tFFƩA%f A,BU^UC8;PS^a/u6 .f!B2H] "W LQjYx*d\OAd FnhJvNmA+O~KwD*15c.!,!I/Mʀ#lġzQn5)A ATlaSτL gqD+!)^Uq67pqCLLhsE-j݀Z+$N DWIJo?L`s1HJwָtW~u)@mtah mAF*[->%"\W\(Ԁ u]9"fA? tk/}D 4FEDL>DV 7ziZBsev/*#lV86LYBF (8dK8)Mrܤh b \!dx_8!r :tG"uL Llr K|V3DGV8a)@6lXҌ )!|e,58*,UU! JXkuvH@UeMmTR};EǤR8IT+!v:gÌcMRM80H䊿s|nZO%}Vͣ}!Bz ]뤱Ӛ["ԦSRsP/2|(7"AfP+wYlnkũZ!xʁZȺN%κ}4;p{8|ī:5NS;p2D;EU&#ʫQ{HSW9H>Vw6Pۺ+dK[yMcK  w^7?f9@BH;s!fA)}PM6 jBD тeKj2;'F:^QBc+¾; r-s,MJ:v\*tܵ9] s1xւRVmU:՞]ɉ6ޫiz"^:uq;{K!kH6AWoʇnJ۵S_ͯ_ GT8A 2BΜqDM>FLGœ+kG՛KQ,sca'b봹%"jސ 8ʜ]ve/+'B ڌ1,cBb"!f̞&b<6ԓ>7볾4& <*"žBdzEs:?8b [D%[GV8S-|vt4qܙ3) me_2mX+1I"mu#MN/m?ř~r\P5\vCx?+԰ s{qra_u3W T\6 $|XAˉصۼ%')a +%($D2VFlicĉ4kڼ3Ν<{ Tఄ%x(~&-Wfv5s鲵>X{ |wN:N=[/EܣEv%|TԪ-&,AY#ws8ѤK^L2UFk_rM۾-3lRv;7@(kQM'qbnޥÜG3!tȝ; t2dECШφ!Lq2x̖E$  O @*0Ky6:D GOn!>O%'PH E6 16hM Dc:ώ:B(&6H!@D!Hf8R #{->)>͔m#I#%DXX}YT&Q^*(h''ISGnƙ"J٨$65R EI5iNJi^ini~ʩo爱y8BAh_F0!8Ed,+ndl.l> mNKhQꩨj:UI=xMV;(w}=$6[8o pLp^l&n DER] "Lr&r*r. s2Ls6ߌs:s> tBMtFtJ"$R/MR@5Af=xt=쫰- cn 7nye|[ O}7>`,V19W1 ;09>:]Z2>Wޅ?7uA G/ DqOCM玏Yb52>\9\ 5-'Ʀ=^?S&@[~AftYݭ+hsU3⏻g/9ͯ/뫉7$dFZOJ_[96rYr77n8~)$ '9NQqd ynHD O:H O 1I#AXd X ,p@񈧆(s~\{I7>qy#u0#>d6)~ 7QI1F DE΃1My'+_"n<4 cÞM @(1& Ƒ]х@.gK;Gfѹd3 3r=8,8R<lg;NvgxRAY\[%A2U0iM`ET1Jb t@fK.Aٸzy? *  ʴ+a0+IZjƂŌŢĈR lTU{#6>͈ ;‘l$( IkmkurtMCM/pf]}0S%ƉQr oL]2w}Y|Ԇ~DsL`1aZ "i,'89syjkx6"! ̝~D$Jnŕ\87'"P?p (D3 HpUJр |KB a1Fc olĠc0p}a@ ) Xع.$kHTEj\W=VZU:+u֚okZ ׺ yȞ4PWLŒ\Ow%k24Y+35ruN ےHdP~2M@;"> PZ&b='>9΂y;wۋɢ1݂˝t vҍx;Sf!:P;#T`!CV V74!ore{`>WKjf؛_ a*'T]bcG wDGaǒ63CBQTy{:ddɧEc*Tk/`zqjh#njAq*A%2,c#੩ʪꪯ *Jjʫ꫿ *JjNJɪʬ *Jj׊٪ʭ *Jj犮骮ʮ *Jjʯ +Kk ˰  +Kk :! #K%/UxD PpD&+3KBQ99;f1[? A)[7,+9:+K˴MĒcUkWkGx=_ B{9KK]>i;\˳gq+ip` |(9sFr !Z,2  H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c@swEEݻs"JѣH*]ʴӧPJJjJ(ȩtນçɪٳhӪ]˶۷pʝ۶[nEf&LÈ+^̸6;9ޜ3k̹ϠCv.;zװc˞Mmv⛬u NĻ[ʭKNسUh|ӫ_&][_{˿ >>߁& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6Rm>HObVSN9CAx3*>Df謲Xb@% B9T)jA$j9l| k*Velխye-BȷTNa0KAhP Cja`mbfexp!8S$tf?4|qM!Gy0=sBE ݴ;<hP"9sP>∱AlPtH۬aT]u5Cx͕N2j6l7 -iF5͜ދS:4 >;TS;j+#v'mgэ8 zѡf,l]30y8dM-WvnZM<>w/o9/oIүi8q , >D |`ARp` A8 >BX@zDM8E`Ѕ"9%V 6!>lXD`Ї"bHXpO,EA R1W"_\Bg CЍA$b8'$ G=#q@HH`Oߤ(>椃jߤG$,'9xP'wvWw?qCԃL- 9J K5EH8E^FQj0IL+Ә'2L2Q eG6\XnD l!1 d-oRŃ$=9c99&H ɒ8@ub%8sBiCW V4/6 :>((7\"d JSZ 6ӥDŽiK3>Ӧ"6Lff 9TmԛgR`أS="dU>wgX~ƏdhDkٗ5|1@&c9I*99ܲ5@|MF! ph_;nq#In(磞7}jg hnt[3 ySN'Cjs>})6tȡ"9:/ >䃍"?XN~/Ë,a8t5[Jo5ǺHqAzͷ{=?z'ߡ7=lkS`fuEIT}8j'j'o7z[fHfWZFzxX( sgt/(3NGz8(pǃq;hD&8F(Ӑ PIфLQO(WHaU]j[(a\8rIkHj l #orI8 |8x'c 8FzrhDwXx؉XH0WkdBWu"c(3l\Vςr̂0x/ рcrrW ۠J|  ޠ*>1*сH{X~/ Ԙgэ3HW('َ (Cka7œX<(4P0$xE5sQv} `U V(40إmP0&WCi'B11XɍQA @s0'>xbMQyA o=`=`}" A/e xX5wy'}. ِ g6''YRqǍ}3!VԐuš|2ٛ9Yyșʹٜx ڇ:TypI wIOE K'X*Yq } 1BRHP/nnrў! &,ia 2'܈** x>{!E)X]}B-H)z1dw6c7V3) 1֣@B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|۷~;[{۸;[{۹;[{ۺ;[{keX"(0BO xqy4X.2h 뉗+hFyWIۉ10b&4} O뻉KR: {ѿe|4-+4nL\>"pyy \\"w+By”hI)F"k 1 4@B=D]F}HJLNPR=T]V}XZ\^`b=d]f}hjlnpr=t]v}x| ׂ v}pGI0|=ؘmr0e* >ߔل=QWC|ڪ cذur&m טP"b Cٔm۫Tܔa +ܨmݕ}-a3Mނ7Gu=ו߂7aː#ؕ}܉Ҁ!~T~ ެ My܁&(`⡘ 1.]4].9Ή}?w Cw=>IމiV~XZ\^`b>d^f~hjlnpr>t^v~xz|~>^~芾莮(Bډmv-c&kpK[ `ѩ9!J3pE]Pz>~[&c Rz`qWŎbpb00=ۼ6}a2*dZvqǾ&0 }f>ByB .b0| -˲*۰q(Í(|!N/ ]'-yx+iϼ ?=r7nol&C~| +@#9 Uғ 0*:p#5`&i1!sgb "< tR[*@D/ c _!ΦJn qs_A*R?*Li{?/L # yQ ny aﲢpn  t qxoq  q mR^dYdDPYy  1Rِ i O >~xDZ̯fBK;pbX3w>%NX1v"G!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ[]y_&\aĉ/fcȑ%O\e̙5oy&rYLsM6ϩ8|S]m܂AK(kȝǍ[Uʍs_y+ץK:R;w[U~xկ9:>qYL@!Y";&絎=&{)ݠ !;EDd~z*hLmn2zg.jvmvDt#-qA!c 7%x';oz 9 ?|sI7Y,q"i"tmBlqyӍۆkω Y0)+[#Du! uۛwy裗~z꫷z~{{|7|W}QK)#g~|Ή}mBo3lSOM9E@ `'GLzt G ` ieDdzL"XsNj'x!0`Bj:F kd! Z/xPb1CЁu0 Tq[4#ʠAw̮2rQD(nCh|f 9⃎Yc/t}W6t!5r2]7c#HHFRd%-yILfRd'=IPRiBk,^\;))J \Rq5P7mhfqȭ ٨G$-B!UP B v6(¾EC#-l  SX(IE^|Ϯi*>sDg!IG0B#9#gTDd1[06EkaVв+㐫b.+3DncfZbա.-$# M 8Qhci'dZyl4A܆Zي>i>j@3~]2hB| 0A~"& n L&M\(+qq\< q)J1qM~y_MS[< 8c⚋38*^WBC,Dnt#`'1*YQ'fqOBZgӡ.cy"a'Gqv]'.B=;.R )lJr EN}tqk -/>qIY騆K\-_}H $8QHx 9D,"άsl`C 5472bhm~e+o!9#>30\# _s=J_jY`W'&쵫ם`V50GA E 1$X3&@Jjk"?!fd+RÛ+q*ӑ{{88 0 ,k28cK9sK9j8M0\ć~#V`#9ml&|Bm&c'J90&s:W9SC4$::8t1:;:W CW:|غCAtʢy*;[;8;F<;|hD1I;\hRE@h:'!pp`<`)X¼3.2:\`?i^{k8#k3-/=Qm=h[DǏ4|7؁csY4b%ThWkˆjd859WXM@zU3/Wc0eK,qm@/KpKGI!b')%XMHkrSp2|  ;A  9|%sAÇW0[8L89+8|pA#\81h8B)+l9H1.ĹoC CT8DK6b:ub9ԝ:x:xSP>DT`':BD[F|j(MghDѢK:MD|pMgDLDxaE8` <І8- U.C\ǂ8P  J,@yT@jq̆85h0%P6D$@$G$R!5l)%Y&pRVR|R*uZ|&AmOT ꀆ3 fZz󷮁S<B<98|JˇA2#K8ڡ30O5DuKkTIԿ.BLpNDLPU2T1UUz U?LCZ|;JM]GTMLDdE]Ed5VSy"qV6QlkݮlMEj"/bNEFxKxuWwݼKNQz͆Ϩ]O~WLiX5+8-/)Q5s s=-PG|%YK_5 YeGk&"HXbڠmS(Y%HI5bPMV⣟ڌ!A.Lgx)*-ɖ0-IL{'h mVxj0n/.Jd;=Jm9m"(ʮjⰿ,8C7lA &5af~eF6acۿӑ&hi ICReErɾ\rl/Ά0:.S[82A1c=&Êe\"\9Ÿ 0ĵdZZBc\ldK, Ü LO[тCT`L8:4;lOuVhWeDn3FUe-\b]&4M 8GYʈ͆ij|Dk.lɨG ghvmy>*:Myu o|p>#4UPzΆ23PP:uxF㈉#BB Bb`|U( 0 p *$ZΆ7S%]/dKh[)=+ml]7 g@ؘjԄ&vhVk8"t6Mck@9HrYr9JZQӔ@LOH)S7QVNzHВ+ K0\ >9(gӗIu$&8Єm6QcPDJ}Z$#5ˋU*3UJu[UTYT%N2fZ7u @q*]R4Kl^1rEm@#KwhGfTs@Èj"-Se > k AGIt4l3 Tu-mW:؋6ALjC=H<v8c6I],>꽧}4y49r_Hn)L׉)v>t@=N~uN6ր3a 2UWe'8(C2u 1"+qՍG5"QZ%OM[Js t9#GLِm},g KҙE8p6lZ U#>Ck^Ғ1 Fz,WL(}AɍY9 7Gs̟޲S0;2k?k9Ŗv4zR{@lA@q0;Pq9%kE4ې xx LH2qwrc1ؠ@(qwV"@Hȃi<*DjX MxQ5<A"(ш&1V#ώҠ-m[܉MΡTj0ʼnY@.N` |-fۚh5M*T1L" (&)hꆄEK .-D5¥mb]Er1&Ti*)aJq,rC'Ȍ C"TjaTnF=%.hP!ah$$Lꁅyy 6/IH<':de3(. 5] A<êy[(E">$kU@ddq0Fj(=y ̓K&watȱ*IXO_ ԦF8h~sFE )ċQ8!2*P3!Fc  8XP&-*I15P [TRSZxDԡDK.8*UH\F)K_)Ĭ,Wv$sRg(nkIrZEI*Ȕ +8@NP61 d'B2p5+EbVqPkI<J;*xK X%ɆD L*c 0` %I W8$Q ?h= HBRG! TA%.!KT=vc!II9Uťf5U11:!VA ^%cpek (KvӒŔDl ¨XPaZ"QY %|nw C+*V[2C7R)6a sX"("cȎ u o8/~8ce"&Id y.eeS@)኶6*[fUx:MLcu-G$JգG講7 H]cj&o8.=MI1nٖN8x \]lo_NON9Ɓ !桮$ܪ&ʹ+HEV9ʪ_P80(c8ϩ#X aRhei}I){g q!F u?]#6n f &>!=B* }Q#NJQ4+dFwNHW5EUQA T , Q,\hȍB+ V)M6tElw΀6Re l JPH\&k[e\ qZa+KD) Cn1<V> !8Ol=MȬiYkX}NK`Ҙ ͒0>h3h!`^\@U] m^3D>BE>8ZDBMDDDOx#bN`tU*Ȃ(;#q:Kt4P; 13XtBNFzN-uC<U>4:J;E\ZM|:dmTKSjdE yJuK5"N<@h DXTnRlg_I2eCᔄ$IO,EnGƤdD5qHpDH#N&RP.Daf(+!$eVe^e;a&gve Jg[J xi&lƦl&m>dnYm&oŠA74&X^50y a"ktN'uVuAuvwo^"^BJx~'fF'z'{{'|Ƨ|'}֧}'~~''((&.((}FRH75(Z&+TL4i92\4 kU( }phI0b9䆎T#Ȇ$ACD)04i0|B򑄒ckMfHP/D۠h7yˏ8xXBJ˹C^\(B7IPe_-܈@t-D@ l*hL\8DdCePPLHEhOp6*' 8Ì'8bI DS F58()C~ET`I[lC@ðrm@[[jSx >jhęV,On2i?W5)> D+͂\ˀ@@-KB\נhZł5JJȝP)h&lىZpGn~+E`KL7ŬҬ̂۔v^dmКi 8pe -Ӳ3$*ƃQ0"k<:6 /86H 4 PnF*Bܚpp08m]b f DR+(JHN쫙z‘nDt0Jʑ"DB3(e٣'xBk,q?qpDMt*2AyqP3WQ;f;.#C"C6DZ*@I@ 7Z΢ΌZkI72@FT26 _%AiȴD=D2IǺ>D@4Uq-K-7B8t4=DvpkCWuݖCfKdYp4#5>.7ߜXpU-&x;3qI:K6P•$ vq6pe33RXD4h菵&tY68<f ĀpPǢ4q5IhBk o%2G U DQ&5CCAaHM!hƼUU^V+D8mTuܚjD\5!p4[*Cf #nX14)4Z!aBbs%q~d?k.6NJ*x݈DSs0"fVohT6lChxt.}!qoٓ%.46HBHCOsߛ'CE"*Q+20L-;|_T-SB&J”FWjX-;3١4SD&|d‰Ȝ=/]IA S۴sbdzIxI(1x6te?e4bDxAKw;AE1dw:ETĴ8EKT鄆Gi;KTj tr6`w'E75S\Az@D6OOPc)xKc#9U!,Kķ@l:D[IK&=a*HKAǛD+0C/,y~;uχp3'+Zf(O8@ QKZ}x{a_a(b c&B + ;ӝ)1`ރkUK|&Dqx&>1q+ ?dGk6d' GNI*낅ų9}>l>5*i;HB"AsPQԞ#?©fwTo$48BGm+Id:L@:t,Q=?7AbB~vٵ^ԯ-;Qtٚ3ϚwfSMw2QC+&4Lʓ_Ι70UBx+%;_/SAH/La&kFF=ç(-DTYѠ^ig""g1(`jI[ ǐ6Z}VndBrFas&!|!ggjRNyZEI)]ϋs`ko\ 5rpe&ϛ. xYi_&jwp,Gl½HwEKlf#b0|sX9/[ r#~,EQA|H{[>Ld%ZZ2| eMY`B&-4K΀6grA\Pi_V5]jA6#-lSY%-mNT5h[Π&|,(1f;z NpΝq].Ġ!1AM^Z _¯8R$]->ڝ58E[ڙ-F6M-}"&ų5@e92L%#y35$c~ 4Caka 2$s.QsC L-Iٺ` dVq^r^rgڸs2t)`4ĶIn[x2dElGo[E/Y~CIMd/ H#;vã̄,؛0E Sp B*Xt1 ϽH=pěBɜ1ܓ2 e!6&,F ,XP!,5|Th0HёHf#ݎ"MdҤVnC|!mk o6/܎l h=-By 5 Y1jVb!D/h,-,ˠÃ0_q QD &Ƶ5[׷-s53קpQӐXmi,b抡#cNMѠq2+s $ΝV=-CIEtm~T 6\c(CHԼqڤCO '_TQu+JOV(X5 RAdҽ[VCl0+Č!+rVAۚ i'2p~t$ b 1@$!U;B<Ṋ$$ Y:$45&ej{̃&+J΄:@RdW8B&rȇ"DCaCETȦD݂lJf OF[ L gt87~O#$nXj P[B[–lMXkl݈$D &O BD$mm%B_8[jITg $^~ngN4i,DɕD C 4y2.p {R: b T vrB3 Ni*;*|W 0t T|ysi&Dc '41L:L!l|D|y Z[IED(f<#8&R(I@J;Ÿ~qJ٥g"c9tJ*874A+n[`j8:8ej""j R&LZ^hT*Q@1@%^)8ed}-bD׆"8Og$Ar}V:<FW1-lL!gRAC&/*Z/6\ڮ:6f6n#0:9#$gD8`y.@ !wfm/u/t;۳$ øaR?۴C 5z;D6c[gk۶os[w{۷[{KƸ[;A;X&y.,--/Z&gJe#N+|v.b 7"̀PP|[*!R%:UfgrC)hi=fP v]ŵ¹-f%[ A{) EVb<.G,-/X äܻ1Na;>8ƯDʡbnVo6n#'(%}\BD@ǿA.I KM)+xJ5[/[`hD ;UuX nb|Taߢ{}-SA;,"*=A( B`L-ި dL0 P U[Mt}/@\ P0(b("p\y">wgaOB_ ^]^`p> {AiSQ% $Q,A,؉6 < TbmAeT !ơEHL-xbF( (gD`x&,7N"VERe "ai>;+4!_4Q"֘ ; sD=Χ뵨$d$ߢ[M:Uc( f =/Li^k^"QApc"-w!t TB :?=}O׽@2 .fu03,@  6 >ubL  2F-[MvaDsF 7w!϶Yeu#"N-&Ό8[hg)>>| ܄… j‡Wɠ;z/Ȋ"K<92dI(S| 3̙4kڼ3Ν<{vFDr<4i + nҁf.n; d+`֮˖ܹTHM 5svU=Gl;]!WXM\s傜j VY@܂V躵ٳھҏgS̘fدaq?<9g*6Dpc C%FKOzrXrٚ4Qezz6YW'ZWپN{*/rJ}@>LLHj`VEl!8| CB_p) f@@uQ!Bc?·@:v@HRK+dJN*GeV^O@[Pd &pxL9AHbÁRbU-Ɖ[dUVIpX+"7X!O` T8xvW`aYVqw~UjlQj}!kZ۫an~l L@*ip3){7D#+` #Oe98O4!35z~DmY_~en\a"JX`'1V^x+2n_6IT"Da)iW'+)d >jɍMQFJ H(EɤJ,FHPtI54RD1gTMT#]HV=F Y䨫9TDi"ܝ]]uF5G'<6H.CjXjH 9k_`^jʪlM}a#y0քSX\X!6ώ%ϲ>ĵWEs!BĄM f8Wsje0i2#%fJ陓d|'xёheH&i6p`#+@t4s&d1T6~VeYɆ[Th*m,/ ]iC!nc1a-5*=x*gph ԑ*a"}j 0đjC7j(rx3GlBIp@.\mm2a"HSlR<+GST⣕$9lCHl6nmt(\ T 2T eȘ$^)M@ sdoT|d# G60ThC,\6N 6 e:Y|rh-qw{EX"E*x$ .j;K"ZFٲю YDړ]᣿JZđ . Zh_@/q6"H먘ZTIuᴐG5hռɣ?t-m"> =nN&d)(*xP*Cc)[.oIG}0wnƮQb/1%o6DY`s 'qh@P3f@:O $Alge: % CE&BH WD7uq&O임hRҮv\z׼uMf` [jMOf7^LD [.lk{V6 pd6 S"W pH7LNh|{T0 {.zdz#nk )qമ6/k|?|$/O|,o_ޠFo| VpHE*!b$XI\΁ F 7%@,1H3` Mno4gzĒs A{|{.&opd)w1u @boG5K&v^r,hf:S7.ͬ$ɇB00$L?wd 0-;Bg`Wi`', (jW94sj wMArc/l ̂]O9?q}iM'>VYF1)7R Pe^&lPVw0{Kg{䖂RWfI|YcIͧzׇ9Xr ٷ}8~?6_a{!rarEjCxKqH4r1ie'@7|'E kaiCL!f~!D&_fRXRS7>GFOPPBb{x_fY Ht+bO TV|Y7Tp X 9XpQ&U52 $ MCS6EX7DF#awhPFF~hLhCF۸b>1' "1XI:ȏvŧ}9~gqw _NVT'afty)!`'0V[tRR[EQ` 0('f"%P 3%[BVf#X!S%np > q@xr_` !xP{πYȌ8z55'(z9s ~0X(@ 8 Ϡ7PV?X;%p Ža 3@A&0䏿vAH~_ynEфyOP,]!YȑʼnعbѝO "@#UseSoSDeq@7!DcDBKCyaaaޙ=7L6Āz)Hc t"i tXw!٠|IpA ; ̑C° @ X 0Pe# GQ;.)"g"pQ8"Xj;1#[xP]jMI9(I4 QF1ቢISx =Y{  9PiO!P9_a'x+be |'kNMIq o :2 P )Ea!J#$*'H$Ҁbp? Xِ0Ș[gFAJp]JФU U,?(xI/JP000dZp/Og d5fZhv+t/Q1+IDuʲ?8 0A#Oۉ6}qZ7Z40=_)BjrJY5Z5J*"7E 7FgAdtJqa! _3A ZHتZu5Ze:P0ɸwY;Uf z?T֗} ⰯX0S>p1 ]{M55jۚg?B>?S>'({Kk +۲s/:d6k}:G8JD;Kj pKIPWP˩ZQ5ypP'Yq1lQ`!Pm-{BDk@~pQ!  O~ 42KEq!0qt Xp QG:T p??  [N*P*+lcW Qr`OW Lar!X %9ƩTY;+8'A4a $Uϙ&: 4FQ U Ġ2i\5ɓ(g#U{QS&/ 1ٙ1Xb៙VU]$e(pg6|7\Iٰ\z>A`;HH( [`uUI\es! 8#œIU昉[W>[XdXie=R[flѓ9Ѧ+m}ȃl.':btgA@{xɂcxUGm=Wavb(ò\h3xmiB-yhfkfdT`12Aoޜ APfi qԇwgBPf\HUXT$йXC (ȘDk XeF-`h kݟnXsݻm֥pL>4L7 -/D39ޕLS =,oΠ-CPT-Mm3sG}B .Nn 4-n w_ZٿIQ*3fe14 >&!i< 73 H #Kx-`W^Pxْ f=wF_6yvy`DاkgΓ 9} 0q1Q!T>4Н ΐA&9>@N7cI P'LUFq~X~V~i Ѭ6+V՜YE`܀2Y/pE2^NTȱ;_Q 48<0ၝݭ@81N!n.!ao)Ÿjх7'@Ҭ{2$ 4_ҬG# XuNX^ `W(JAXkX}UVn_VQ1 51!<0@8 B@)!*f0 a lҀHv !ƒ9ɸu㣓Y1^!tl-f߲b$q|Ȕ"  ).(b!-8q]o'8lOh@q/u|1]lC/3|LDXOsڽ;…MDRJ-]SL5m޼9\9bhvf[n$,4iFTZҔ֌&i68QHLjeKz@̍3JU.swet܆򍨋#F?Ls 9=KRT, #8h6kZlQZr Y۶ Iқݖ3bp1"AR1;ʼn+'nwֽ8f t'ݙ|&a2Z >r| &l$m"bç7$k/B￁("mXsW^W1b^0pH41sXIM6 MsR+ T1j'ň~)Q,3 &##`2 D) 9&M l†J+% "O2EWVamRi3* Өsm"< -RI'RKW;|vچT$ i(V*s@,ȤZCb,.R HJɠgE Ri} V4 j --q҉2 b7]bF-X5NHB$+gᝪɮl+Lyfl"d=L5Nb l e73i'r "41g4Qy?t#\dEpz汈YRH.O2$`s)qLF|8ڤvIW sƇm&v|Y,jo.(ڼ<"Is?ݦ>#r 0@)bJkQ#PNJRiwQvΙaxBpp8A",rfKL-yPCTR{l|{q̵!h{geSIq8"?|!<։~r'Oqp,@5$ &H 1P 40] Pql"8t0LdYIB9MiK$?t5W3PfGB0$-#-_w-yKSw„b#>$4akD R8yTIwÖ(#+$FDw*qHǕ(r+sCe"&:̷JVRO%H %]Mev'q[K3| /xh8GP9GR3=#v1R(Ɇ3ff|.q* _-8%R'v!rUkMZ)G:ġ { <퍏XZcp fD&$l(2C8ـ㒎E_7C_TRlLjA18P<"%JA3"xx=A;ҪnX9-ۥ9 +; PC;D:s22><1:z+HR”;|, 8L;SZ./CII24CJ r4-`$rl8*3D /A8@DDTEdDC,hHD`ϰJlCL8̩R H9\ˀHJY tCl 7,KHNɢTd P&K/zJY!'` a)y-I#Rϱ< 8ˌ=@t-tK{݋ :B[&72&HLx q*pQTQ|&+IXE&A^mb$%|X)\*=fm+F\#"m0 檦`l]N AgC^<1>CVfvnaQȄ Ҟ<˿޿ /K<'`N?{^ ~fN Do7q` TI Cq3v l0dC>_Y _#i }K| (P rx;kmqiA*_zD>CI  ͔IJ:2o@w :3s|h2(x? wꌛG QDpsk񑎉N( 1 uR'u'Pu1/INGNH${&g( &_W})dh .Y"Ё$iցe_v|h-`gu\F[m'qtpnw&m N *+LtflM|8,〼N AMi vLns;sɤl s:xWMG:*(tkMt!xz_uNTo UWu*Z^Co 5+^_ _ ;-̈س|t  pn 2^Q҉x|Gt?Gw`Ol_ H\ J%(Pg<ȍ$蔽ډMXz1~bώl]0M1ˈm1hӒK;Y~NHu\9qy C1 Bdh8$ŸG|IˆEf޻s,!w\8~ 1̚|;g* Lc"H@f+ZҢϦl)J瞁H]Ӊgs> ٴ":/G%k˫ږEvi7{CeS|M NYrYjZ:BJ:U>>]Y8l:|cvN+8t˷:8gO~yƏr+ŧ'/~<ϣO~=Or 'LQb:@;ِtn2E >r@3U㘣Qb_:,xN2bR.怓x8XMLJ5P0!G0I"O60bSRYSƗ[b6D {p\ff9&A1\B6r)0m$N*8$FGbf6JLT1x3F9S)p8]Q HRZP.B=$QIьB!A9L7dMP SKC2e(!m:GT)OBdy* nhXY  U!(AVh GEԤK)6m#xLk[QE`9)FʈAa \+SA*g5(j6_UWٱU)E&Gٻq%baÚx%b[KĪc JT-پƶwAc++5%ϖW3΅6(/NC&]RK 5"9EoI m%vג@ \0{k0>z)&#Hl\60AbA,Deͼ78xQs{'ӕݨÜ:SJ*d`HU zAG IA8ʟ 4 |D}`HJ46X& G7䂦|`\tDVJ EJ68}ǒîP8JԆ1M=!!A!)ޝUKS=>l E dF6K5t|VЙ$a35B-!Zmp8*>Y!5d}Lè!"!YX" !< "DC38B$RUС+M`1:ɀhJw=GH:8_4J8h{ I84̈ub5 wG.3v4R7nuXPS.!VXbPwH~ΔP@ G$C C61MpRpzGJQ  RʏqAK 0$BdIBL >pXBpD6dGp dIaM$GD}4xKYt:CneG(Uތe P_K +;UG`0Fpl|khQbGAXes4L"w`eue]b8^hfۡ絙E'pOez5hh}{hW&(hh¨(dBhBg>B$y^"\Y}}"i*2i:BiJRiZbijriz闂i阒iM隲i©xJ׬lx'yrEL樚j2p Gpy:D`LGz8*GD:cwTT4LT|:; CMM*GDå6j{w$rJ#"jxƥ>FqCr뷂+O<ÙޜtCJ螊gONz yNy鴊ǿi|)n.ڱ*® 7xXCApYC6p>p9.XÃă:C0GʂCIp 7l錃, 鰃86Dž)70Ghj,>%Ö9,R+DԚrC7~J&;1z٢-F{Ξ +kzky-FykyM:m*{0yȳ7~H(\yI|u^ywtxT>u.EP-xFrdED EQF"kvD~G(Eښn`TH3hmx )$ OT뢐`$/oG+0\)p#l[!b0n3jAHݼmrÀnjdӲv ّI{h[D.x#5u[x` x0p kEGepk@욭񊫁1G,S1#8XA]9JUJ4¦A*±2-xoۧ r"'l!+r##;0$iAj1E4_麛zdwr ({H*'S^|.2%GԺKX1x2)ÙÌ V&rEwݴE+x 8< , "*.`O*1d~=. t@NmZ624$CCACoE%&D*ѰsR)Ga1 ?7r0IK=rS6I6.SrmwGm=Gֲrk[3GvDᜃ56S7[EÉ9BKIHJ4Aϛ3=ֱjBp?4A@}4"'t,4b'BCc#2vE+*F[6bFtrMGhZ|.QWG-?^9r9vdG$ۉM dEs'X69aVww$xsD֦<>><ǷT_1U9F~fPw/Z+Y/~z׹wG(__< n(.< 9OK0@$_<dos~{>x=iݦ~þ~Gg}/+3;CKS[cks{6-zʂ-G3!ةyйNUxݴ_sz@6@\wMw➡ 3H1†u$g\H'2wF-)@A;p7^lBwʃfF88VR7Rz;X;lYg7ZE.aI|js5N> 'm_TCh`xqǑ'WOR9r:A'5ܾ[Lg1ӻ8⋴LzȩcIK{ nި&6j'%S$ڴàLfl.nQIƚmt!lb:̱MMqTS)Ho)n uZMf[KfTqm]ĞYWR#&H摇2qIr`b3b[bD mq2Rn˟BV@3G<7@dC^xv BrQ"x% r ;ΐ5flQd!&Õ+aԠq7yjP60uJ9CLQR$7"%M 4V!  MVGmf{(ʼn爝W8D7|AZDMK\'-]+3ͺt!V^Q1΀ I$[r&L4,1$mK(1ÞW&%`4ݴ F3 !_F!U2YqdK[Uj,s=O0 FBQ JT L "Vt R#_ƨjTZ|t!Z琨%F0ꀍF)P1|<+Z>U)MQU)>-*RK!RHB R fGVLBъ$$\ z6p[jZU5el )b +VJc__5$e#`⸦e1b2scH.PSc E3INs~Q=}},{`Xƌ ǀ_ǻa \/d=rIwO ,L&\k7{|$< Sf_OxB|E! xeXK:člBьS NrVRIGEwt#7HNs_$$󬥔\K9 S @S] S g``:HA4uϸzfӌ"H3!6 #.8`U/!܋`Ivb/Î- 2D?ѯAE]lAyMO|gzM5i1PɯPSPF*e0"=&ݡ}S5"_F#ӖV'YHҬ7+/ҵofNwaV_Nt`Fh$WZSr*fb!ڄVNFz\!o *O*.XP4H#L $bø].!GXl*!_%!`:2F|f +„Xi ħB He(ˌ6e #f A)8F }OR 0Z6̐f pi6Blq  1j^eq}!GjcG|P"|8n cEqIMQ\  Nbr|dQGjq#,&Daafuaqx!2QLr.1q+nؼ[1qɱ1qٱ1DaMrW`]$~$@D@|@$̍u},̂0PBFML";!9 @*8"zMK B~@~RC B'b YaCN&$pjr*)@(ۡ&7J`!QX%!L`kr#Ta'zG`.GB "0s0 30Ay3^M*a!O!B!%3hM*+*!c")7@38X3t@ 2##"./a|LKRK%a2&2 *.$O'r(8B>8L>P\pG^;QQ#<*D@ 9Y:`!r@rѲXr",jvAy!=Z:qD ZJ ,0tAXh#dA3*s62+2'W^8!}3'28F"-9ZS#{7$E$7q77/aZ * ,-(d#~ SKBk"bJc)p0!3^ 2L j MAjD N`K}/AS (0"eQ0@U&!4\J&gvg"3إpL`A ( /KLT4`DDg_6t$q#A"m4'^j2Vcl`G{N"n``U'/"5S48#;i%giObQh6YYoϐyYT]5\yaUu`nS7B \^ 2踚CyW_9*jY%cYf)!zybYT;Ý;Lc~!I{+FX_"$xm 7#2xփe +A,,"H1pp~n1 -"j '(/qqzjZe{R*b`,w=$rKȢ"l`)o[V XLo/cǻ!&|&߶0z1 ýdն"3"bv8k] H26Aڮu[`ɼ6W|`&z9!8k 'MXʩ-LM%gv# a ׀+ՄHdÛ,BܩX0ūxE"$VGJ 23ʸ:̚wR:_Zf }ȍ{Q#\sCS*zm~bl^8") x%;Y& }˜Y<04!EO\Is$^zXr9`)w("~霸Z!% -0 m&r>Fgiˁ`%A`osyPBY78J)k=OB:7ơ<`:*AN::^MbVʧSz@  9j!!5!*XXx,ܡrjR&%BoK%#saRp!o!)ov 7NwT37Y,x?t"/*4["I4 +Wn%˖ _9qeCP mA9$# C)RGGOXHo5+CPrHF0'k5eZf9p "OPE*L6l=\T)~$*IԷ!.-S'S=b:5SMل]ȴ,F]̸ǐ#KL}*:|ȅ0Ԣvk;p2فw.rޝs}̷u܉#z$nӉњQ:. /]6>Ϊ;|YM\'EX—\^;Nq wq$Ȟw"a ~H~dGjছ4hG"gj<HV i(RȽ9!(ƀ9b9j>QJSEPQ&F Wa=Ԅ>`Hj.CC }>| |R6jiCscàyYU MPI0u~$TFu|*ĒI>RPY[[)VلJWVDR\BVU]iYXhI'>~ kqy(TUk'[ VVEDECCٞ(k覫+G,nb9bI\Mh{.nሗM&MѬS)ҠZکdP8^רnuMV艷D*"j6[wȨlw6v9ܥ7F;e37<SiY3ۂ^.D 6\xtcNnġ>Nj3OS I`fSF9hN)T?) F#S1vY;BmJ!΅CkLx7ft&̰@բrspX^'#ppc4eo8ȡ8v؎(Pta5&,X/E"~iPqK烏02`ʡ11><7AaPt``Hɳ vqsJt>c<$m"S"(?rJ4%g<#躑nc*9/A8SI4GLcAq&3%k8" 7/"pIRG!ꟚbGQi6c'„t TrZqjmlYH'$ XA E.Nu#*w(O6!l w#h-E4t|/=*-e$h=݁N3:2;ܦT2HS]d kE&DJS59YMV@"f#DTFo$Ikb3 `%u$D*s 'l#rA,]g"1'*ˁ3(oEU˜%)7C Dsiؘ l|MzӍӰ.8$V1:,bGJ2b®LFa$tt)z;ˋ(:`­.K2,\2ϩous\*i|ueOn!rȐ&̴ Ve2( G8) jT'_: L̫n)))HRXJAX: QJ^Eα/N-P^Hzm_j,^%jvJt-Ņ`cgͭ ,dLlĠ6$)'vxŷ.I3%%v$l@2dɦ>Uafls!x& :0RTOa>Җ݌ j~!{H ܭv3|^ nI@).E{dkxNw8i( pRdcx!34$mÚND^')NG:m #^y[uj3z~B@V 4; Gh62Q>Al0@ yW@$x1 X x'yt0` ڠ 4M!zDG JzKNvpWF& jBZ7(=&a(|f{i|gsB9k[1q-@f[xطH\t=U~KwiiuSW<,1JwFj x6(*.2YSl>DIQ2NC"(> ̣XxG1˨bİ@BW ݠ;b? bL C ΐQY"qrNՅ vr&dXUPfH`&2qa&@E,Yz9Ʌ.+c1g'gs\ua? &t$E^`^r 8_:9" K@__UgKjؕ"I.h0UxKA>xEx > ؗ b 2!֨M#0ca^)QXڔM2}H,0!D N' IZS17 <3i0g|#W 1Z@=QVrRQ05,}.1?$ :Bu*%j4l36jsT3"9T3 [X9YG$@.' d!SԨ?N8C |G2H 3@A9"O7g= ".0NWG5OW#QiCB<B:DZFzHJLڤNP]ӑ3(5PRZZ.1Zb*[5,/!]PЦm*nPs *.}b9ёTJ .f1}Z 3c?QF䨸bal34HKZf#nx:n&Ɣ2:fE]JoU_lq"3M"! 7!  "$z04 ATP^PS? h0&}dM6H#|ޡz=)Tz9 ~P _ QP"Ƌ:1fGv~PFLVjEݰ ڗ0Dx$Fr$nA "ZXK gb@ .`+ *.juXcA!3غꭣ:џu3ʦlˮJu 4MD]d sS0 QemvxF9MA![C\ [[AV!" ї,"QMTB K_K "1fХ]Z/ $E$"*aTju m;Ktxޫ/ $U˕\!{jNi0\И,T5ҦN%ӦMP>*Az}$Ok!y'N& iP,;tA0J,b F7Gi)0æ86 ;̧@|DZ*eY4Hj`{)~iQl"^!Z5 Tb 5eGˋ&E &P_WB] B=_$IfbM ^P "t,ϙ# ĖKB`딁ty7?]Nkj)S]#c|%#PƬ.4Z HbM<4u+q,:c/|\mlULK| KLwD=8fBHϐ!ZJ}l1F Rp%U"QP `ᖇdYbG Gh+ftiR̡S:! YqRE9{vk\ ^u Ô$ٔR+<,g>lvDkX1Nw$n؈Ln}t]$Ow$}/QŻ˻aut]4[]@ Oǂ=$4{6]t:ދz@}FՑLߜ\ə![W1_] Y^mS7kzwzrMlͶcqk??ag:^UfRvz$ci|=l;U ͩE@ @>E?08&{ j5"\7s`cC%N8q7p;jwKG 5Mӕ0Y3M|䙭Oq;qm8q|=r4\=jJ36leZq}KH+XdvcGnk9M6&L+U #Ҙf) M17Ʒ9sgϡ!:iQ^Mk6~={pEܹuo'^qɅWa3ȻW=nHŰDZ"GL&Dg/yG8a .޷?Jݨçcsɜqj k#)"bCrΑ وicB ].e=^Q;c;gul( L!H$s^Iҏ?25H295Qa`Kln|Y@wB{b(*|݊(81(H<4ϣAK ¬0LEhhEb{Rb[#SV4a{|5lh h6¨1v[n[pw\r5[!Uw]vNO( 0e*FA|_ r*ݥNSva#xb+b+.Ȍ;pw}Рwϣ𭬃5tb(d{gzhݸh.B er8owaEik{l6lV{mvm{nn{oo|p/Î;Ng|r.pΗM.RfveHuwm@0"=u cH n֛U(?bp"磏!hb7-95:6h3ǭ !i(J$iI$ >hAL$G}a8K>:Ϲ\+$:vuVqfGN6ȹVnJB!qB19Nc >Jdȁp$.X^+Zq 1^J )nO7#wF4>T$A!!D| ȭY_  0$s %g.1U.!9Dt`:7k'ԍ V䅰 JP&4@1"{C0&qXIDzp= 3xrkr_D耡sHPĤl$b:q3BG"%b\ĐAO|擞LۆHL^$H3@IҤ !73N%9,'|* GTtQ!SyґIjU!Z 5T aŠL98׹6ʨ0 R= O7C,rX?hF|0+5R*:&3&S@K3+WCRpjšzBJZך+,!R!+fVNdLk-1&r Зvic8/Y&c-@Saƌc5iQD!Iۀ^q@  $}ޓA<71uaZpK !h1`W]FL*g%!FBZ[v~IL$l6Sw&%cAզY)llSԠ&,M2"1 nSEF0 r:-UZ'FaZg3ZO5d]xBj8BiV9,a- #Aw1L6+FD#혵s"ilk"8;уDnMa@0ats,ƅCφzf|<)KwwuyR<cQ{/Lk^7F]E.>3 CkX,-N$ɛǕP?i:Z8+0f8|Gk0Ɩ JVx9 -ipPqCZHou r<#׸"~L1(!Sfוe-YNs]7Ί?ްp87%8o$.)58;y2d2orcNEؼk,>vϮĔiLkZeC T'Aeˮ>leeJC|a.`:B56Mӛ}DX;1jtcFU0y+VmN^Wv],n7amlJ7D2ma^t㫕oo+yɪ-1>cCxpe&3]!E1J >ha7ؔm)yNrsuR\F4y4~? MJKk4vA$:/ʐTÀ9XY 5+0+g1°A, +<; ˌëڈ6l7w몬*ۡC+}k2c+1uAl 1xKw=ۻ {BB2$#72=%})>6<bʆ."3-l88CdQařDY=l3E yD9D9:Ka5rD:bW4[ $s#5@V5ɘYV5A0#)|gS0a;lLÔлh{<)*(,B#=C;yDB27p bBy7By#2 Ht0i)/qCs(4ÈA ڝErC,*&J:t;3>)#A-Yx0ďÙEL1nm(; y q\ȹkEԹb/0#(#Cʴ/J;$+@Up@_ĺ` )/kB7'[gK|FA6<66ʋ[0[;#p62qč88I|I:H̐IDtʹr:[]IwZJD?Kk5|&$)$.19 &IZVF ](y(ȎwOP P̗lj4Lm4v{$p< 8<{GRr=̷Ľ%{M 7|+K%*ݴDžc/CS2Ֆ~*S4MS5ҍث5S99S<ӈxS=S@ TB-TCU6=TE]TFmTG}THTITJTKTLTMTN| TR-US=ձxX :i2萂"SvrQݍ#;xlBUrK")-g=Ni3kPuw@( ]h(z63ϱ`ڍđ qnJq-FPm"4%O P8x |(B ѓXFV톩yU @;\`8LJh  )$$_ VpXY(VsQ١he%5H|䈊tuq#HqaʆnpHDshs`ׇ34:#^s4ި X eUہ˰yz PJʄPű|+qEuxu?:s u10y 5[$Ѝy@,遚]$ըu ݷ=rQZI֧ ^%|U߸4އ}^>ؿВ[ć Iͦ604z6<0 ;8Le.mQ|FHIME?r[ 안J %]u ͓(qZXedYeX :iȀ \dXƖ`' Pƀ C1 !2PÆa^ h}(mP # @Z B^ЗL`hH aR= A㣐 % ]}b0 h,> j!'v[R05%'%RpGHơd|-&VD-ȳ*"TmZVf-ĊkeF^@,i`+-I3 ]Us8=pbΆ_Y8S <2yJØ'9dTaB@yk )@چzᗒ5 $paXMkݚEb4XbCݏ֗2 VqH㟕)`aH .nC&fgp(-vA٬c|f,Ur<^bq(N?*ZBƇf,+&jbb=;RBkbŽd7a2v V~e′*&b⿮-!ߖ ?hHh(uf|IXk HLl쟢4{Eg3W<h`:p4`E L+h| (nThY ZKs j](&b(a!ԝʆ |m |a2o2o؆-=^:&p&kbդxo%0e(ju ºJ fƁ蒘s`xnHn|bN Tapbņ؄*PvƇH5lawlo@Z$٨2dbZ&(v2vp7>jPj qCYiww#%^wLJz`pu3(1#0% ed!1׸ǻNx)V+[ePybD@Fg#w}][Ty9CK8ttmK v2m(zfLEFz9 $f(YY5Rr߱@Zka_`5wdgo|剭q↠yo|@Ym/hwT w"ޢ>vΟxg.wlwZe}LJnԜ7(d痝N$rH$҉gW y򒏈7y_yl6.45Eês>kBh.r!hbDa\HbucbIpH\%̘2gҬi&Μ:w^Tx>e5KҔ҆:)Ԩu!L!(RH _sf\YxEH1&}=G,CYksH|F9z ܵ0B 1Ȋ1`b+GlX吒*WVepP3ŋ3x×r5|DVnvnC\#X9kǷq a6l,WvLm mWf)r!I)yiGPms9\TAp " -a7=p!P(am!3xRx"T"4b18#5cT9#=U$XPq8RB"$NC0jq%>pI8H7pC;ġHE4AF> Zr +)N6+!A(&>dM+mQ7B/M5[v9pk?z)bU:tQPjTH#-*Yf6j|N6V*YY eky>NBkuVx Hݴ3xdRu-bf [B`pjr&>&v)U>2T&8UuOl)w8sofJ!C Wu&>f>mDby,N[_68cMOzSDr,0_H~`FtZ UYxToXc =ػ}6iˤ%Nzm?) q/NRSq% eց:kBFg"nAP/ԎgD"#-ڴH"'9sN=I##j ?<ڽҼj< 'O<<]Hª9!0p)DeZ{9KKni=yyMvNo|ov 0pf>9B7Hb06A3rk:E`g>8fdq3(2a\x g4a>0$B5rpC&e@R@@<9ڈNtыmQn܈FX~# )A<䧴%ZKc1bN/߆l(uh(|%,c)YҲ%.)/m|*bn#b q! g]05dLBKmp q<':өu|0סy5jSvk&-agEi,b(BЅ2}(D#*щR(F3эr(HC*ґ&=)JSҕ.}Kg0)NsӝnqÒbӡM*} &u{ST|art\q\ʼnWFt)+::ΫqkXVOm$DL TW!Uqx=[`#qKYQKMڛt,-rD͘Pb0ɩa% g?a^zFUK*UdSSjRW4*[jֱiek[K]uku{T[CԧajC`a/ ֱK+`>VWB`'+2 4/* jS s0i-]S3L|ݲ.~1C CLms U#{Lc&#.Y]&'[[EQ2>ZQ}c [03B#bl{fkee٭`ŝ3-(톻 +щf40}4!qlALS#`D%l@E::ɱa^ 9OMlV&u}ЫUasuYyee/!QPķ; 3B@39bf0nlbwUgs ,B/ʲwzE'Zp.϶ / j IyOF B553nWG qܙ$xCtoMHV+`wQɢ2RW-#=-QmQs&7_;Uo=oig-hB/i7Gݴ ^vvGXnWõ-ZB=r  L!yB"_uakՉyUcz_+oTpX)џ+n{%Ba*$׭;; ;>$=u_Kw}Z tlϟiZ / Tj@Q=a孜MdW5#Кq鱞Υ]ApMLi[m չۺ1KLAUum%uIZa֥]ɖím_?ƨџ~!LI$B(UW>IvI塜ф9"YN͑E^ΥF$\ʒ]D_`d)]$ &>]EI]-߻YL]Y 9jأ=AL-zVQŝ2.%Ba_9E VW"FvᡮYy;vW9F ai$-C̞9"ǽa T v%Y͠u bTݺ95).բډGV.D9YLmᖂ|3֤MR4$#VFWVUS5BQY7J\EWANĜc;6;Yy9 ڣ=cY`"DOƒ^@Sp%UXp"^_Cڌ1q"/a&& a],΢,d cMExfVl}AI m%M&jjMH,bl>Ji&nn&oH dH:jaBdo&r.'s6P&Tqm:u^'vfvn'wvw~'xx'y>.|0yL'>'|Ƨ|gM=,)}҄~M=9BN(#-{ҧ>(< B(=@TاRV-XDy<''ćN|#}N2DhI)(C>ԋꈵ̨N$i.(OX(bD7Lh)v69\<)ÉÅࠩ9h:92BiB)-ɑ(׊-8<.mzm(JIA.'..h<,=ܧRjm0~-~>)2*20fLpmRm=LiD'((Z^jDn:D/*+lE*/^ٓh<&/(k:jԎھ^//:B+pOdpގJ k:8̂ o W5` /ާ:p!-Gq_W"20?ž}>)3~nc0nf~pڮ1D/Үޫ-O p: s.*#`q CiTC\Zr?.BH&χ$_ꦃSq+2,**8jگ9(,=ùi--%/P,q/)0>/0s-2N317K7~KW5X}s:3#O! @CX5\ +Qp\^5__5``6a!$6Tc?6d'# v,Q`c/`B\WM:527 B  zJXBd6m##(R/7F4^j똄#.Kx[x-88w88p2+,F:lÞSX8v qUyNOgZ,tb$:>$;$,3#%\BJ\>L{O;>@9yUJ@ ܂WzWO#uwH4<#<ÚT|8OƯjj'91x[ʧ>'LOcӎE<~^4> }ڧ`>θD tRa-$tWI?;p$\Dg{IX;ٿ>HT(Ű8 ӽHOD"RsKmE=zK-Huc.8ZaH!%4ysTyJVJme@ztCF8fy>]"2S8՚@iY} TKtϦ^n\sֵ{o^{p` 6|qbŋ7vr۳FhѢn-HE/cTܬ]263HC_hmF\f"h!]K=.Ǽ?f/s5vs죷]yQha:iyLؽCh"*mz kLgZ2%( t(|ZiZ 橣뺲yg&Bm #| "<$\I Jx`R2㬻hʢ*$/un%L0=lT 2)8Z撃:E(LDs(=֛=.!>?M1 P)P$H4b[iũ:svX=p%^ZJ1:Ӫq滊ܲ*/I 4&pr=]^曋YR3l6UŇ^;w_z^8#)rU+>+vj0*5{ T)k$NMk)]p/K'D쑂r=Zo3AhAuR?zdu$كA W|V|)*Z1';7ZNZA$Zj'Z~IQWY3XE ǎ>lnvbpD aK8A~!4,EPs// &~.L$zKs gӎ(I.FˎDF0WjĮ [8zg<,e!$[|R/rH2Ưc#CDW|"z G@ 8"+H >1"$H d fcMA:tca,:Q!a#.yK_2. Sr:6t2:D`s1w4YMk^Ԧ^9L2^iEL9iq*% nq {L7qĬ!@ ZP MR7dDE\ D!Q%E)kSF9Q~!Hl' IYR !U,`  H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0!h1sɳϟ@ JѣH*]zq&8n+ŴիXjʵׯ`Êl]˶۷pʝK]f3X3wݿ LÈF0As"$L˘3kެl/nLӨS^-FY|ȥƺ۸sͻz NȽZ@bɣKN kgmËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dAtNԹ9S|7O'L"BSt#)u@:y祘40xS'\07Yg7tNJYxJ(>(x*8`i^@z'8Ć'Y+@ =   fmFY$,>'pM9g*8\>4Et 'A>֙ltkM1ş 5P˾@։R()rzKLe .0oۇA:8>ŧDmH'L7PG-TWmXg\Gpg~ @JЂMBІ:4=@ЊWAE7?@ 9Ho!JWǫgEm+)|P2ͩPfP@ԢrMwԫ4N1X VrUl(ki_˸|8pc1cYp,rscMvr+b[,@08ccQ[Mp\g%JUqc/F*ۅll9^'cĖn*mgb@fǸ#ϼ7{GOzn`j30|C;f6T{utNtDnD0۾7&ec  #O:VqU2D">zo4gc p$_ BB@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8Xxcxzf-vҀ v},hmQ6c{ )6 66' 8ۀ  t# m a{;BM p tR' m0_ ''/1 | hAp )P%  ('#dp&{э׎1)&(5s9+Awwz'82 1(ybgP }b61fS_ǕHtUi|,C>l%xq6It ,i @R! }%)xy5qyzdtQE6\w 9YyyѨ!rZSH)YS5ȗUXpf)5i|q I#iT#ΘiT| RSScyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ʅ``Pt 4a=" P 8g@ p=E͠Lڤ :Vpـ`*q ⠑n`V6sbz'`_wTG }bݗ`G }1.B.`/ 4v(b0 /KuKob`1tK) lQ6:낣 &m" Z ҪCZD*`xS3 𭰉` ? 暮?z ڪ"IJC IG::K QߚjzP*0 Ӫz[pXz   du`+|t#6n&vSz En|ʧ5h.pw ) 2{ W|oz };43a&0 EI+.SDjp"Ԩ*b7(D+ p ȰkQ*;4 񳉳 㬚0 KzLc= 0㪮 ʮ@ Dz K[  +Q [:Ƞ `ț P&11nB*Z3n12 ѳ1v8tپb3 |1 q PEV* @1/! ̲ $+ htcpvcuq (YP JMh 6Op6 E8N | ˠKg*S A_ p ,ʸ4 ?:KLa\aƺߺ p ⹥[ Ѯaʯj2Պȉb<; ȐO: ;[L :఼ʪw@0)1. (l-j%pj+;{ff,(*G ֗8#X"Á[p ߺwi<Zvkl`,v;g+ԫpKp𔁂(d4:630cIe+90E<S8+OSyK gŝś  lɟ,aȳB=*@ ;{ywq8ΰѢ\*]l}q ԍ  ` ` M-: ;L CR+D2E- qųś ,} [Wl?P0ozLܤp= P : 6my C]F t|@QM8P=(bme cA Q*峫rסא|ūʳ T-{ ܻ$jck¿ ᦋt̳zXfɍ ΍h ̘!8*PI, `t}΀ I*=vBt1Mf]8ݷm4MgJ b`.-kI2Hz BLo1fw08Dݚ ٠ Sܣ.B P *y@g-z `޻lm' 51 K Яz:SmT=W ֊fl=z䰻LO R~;T.TԀ=^tuM?~NzW ikNm>RQ 0z%[lv ݳ-̫j}#! bJښN.ULve;Jtα^ Ξ+*0 "(j) Pr(Q*L.1Ð OM { |1` a)F9RbK8=Kߤ Э+=M f?,x P $O A "4haCM$&A+kl"FV idC)UrҕAW1!Ɣِ͚4#μ!5 n،cӦ0sRInWaŊV s1r6kѴ N.;wi;.Xv`6[;' 4UƌA5؁35 iL/>7ƌls]fqGtɒ%^r#mɕ/gxXrĮA|,ػ"CƚwkĹ|K!V[*U&&6 6fG.fGeZ1h0|3ȰhBhe&xiHCy,!&hb6a"d_3H+ z16#ѫmF$71eǔMl*g%VPI$g %̆6ѤXrͪӨ:rgi&(O>.B%Az7?z#JJɤ ]I%҈(ZjEHKobTZuձJ+-dxI3|g]u+o+ Ƕ=sFCà^یg9GϰNִhۦ4Dr .ҵml&YZli1͒_{.:;lF+RnbdnImVcO=0C>v=AX[1>A>1hig+qiBbʙ ?bćL &\LElt l|e*r3b\ bGZpǹwQi.DrL0gJPRNA;wKt>07t $/ՠWZRIRG'JS5' SPAm)VY*{}lf@[!]W`a@taMہw9oM{x?|o,"[{wā %)()p"FDGID+#NT(ݜۭw]RL@\Re/}K`SԥDb&5df3{yIgFf5yMlfSf7q$$f9IBS1ʪNxSg=لp3g?y ("hA zP&T ehCPFThE-zQfThG=QTa"GzRT+eiK4dcEÇLa!=JsF) 08M]zT4S >.͊+`ꐼ!0(ւ8{Q9y|05s\ |1P+^銏]1H AU[sC]ghԢU@cm__*2 (V[ 25|cpǔV1 }0K L񡳘$cMIg:i56+e,&|,Q± FǫIeo{I-BVڼ%K"G^xh^,l513{4s\%3Xjb𚐙 ^9R\tC[PR|4ÛlL`rr(0ȶ^܆3dۋ&pq㚨+*VR;ݲP]VJ3UyAuKs Cqɫ2_AZ,yI"LJ68tIF^YQi#1h_LjVØT\@Ium6#2X,1 Y.Q9;Z!2Y26/W:1)rpzt'M168XTn\kcMɪ @ 63Z1$#c38M4ɎU.=kghaBR'?UL,*jq`F8p^hDFۍr69HOLgy` Y ;:K-H vWdArȫ4@T \ l $ ((8L;eX8TnЫk$A$ ꡁT@Gqu4<ҀB|8R8#8)4-Mp6jZHJ v.A/klۄÇN8l)DI8 xTԊlJ(ʣLh`@::TKր `؊JKK@ȀLKH>0`6t6TƪPT(IHӡ&5Y  y\)`6jhjəB*4:11"/HRJG`̆A`xMɆhÑ32)80)IL>c> S1 Eh>hq9|30KED:M@GȰ`H >iq6P 5Tlq;#1;-Rkh1|pmرK_EC 40 W}(:mIBmQ sT_eȉjC YK<B.#!!g<Eg<( 11G:l69bghS8)b81B,8`P&;h)éWNSӨIbOeSFHXpO  >ؤH89"*ʆD@TENpqʾ2hп= I2lX@ƹP 0PWuU5wY5؊2٦ZʆӒ(Y)Dӛ1QvH5kmʜo5[P*z]"@zb)iH5A4aW:4Br>BN=X ]]%Vi2y $.ҝ]ڭ]۽]o:WVPʉ,!]-^=^ )M^m^}^^^^^^^^^ _kjdbV(u&e/h]TG䅄==D iFِ=`;+:,rX l6`|O 5PϩY|Xźu5˫h,+I:Sa}ZXK! W8(y4_fR߮"7L X8,ͱ(搤wK 1'ߴ0RH 4J j;`VX]&dĠ3=l dvJ;W?90]0Ѕ#=ndՅ:1 6TY0RV=]ʤf"⭐R 'F6&3( )f!bޝr_.>sˆh E`? ]{نͰ|tGv `6reYc bx:KX@|)pa|HhM J[ތ(b02l8nR `h lIۍM@. )*-l`_V81OjHػ +,3m@5TS`̫=]W@BP@@^R)knkfnfzfEjuDÕr#D0!&gp0gtf Vfe5ݼαvAoto xk^)>Dp9`NXDegq0g>sJ?5Ydq -,x3~t3{%N,d[0(=bX!~Փ+qvbPqY$T&QB ITG|Fܼn5<%ɓ\V3÷hzꆨjv$&jݳp^k~GoB)ⅺFDH4HC܊ĀkLI]6> g>MG ;xƠ`ߌZGjx ,qphelvg^]b݌ Uc!qR`H1ȼ"'԰8 &\(Lս)SÁDBbILg$kteRIHue4]ʄYފ$Xp`;hz|7.6l<vghv8ZćfoP~Ͻg{Ae >gƀ5p5H oOgv,>g ];C.]6| 2l!Ĉ'Rh"ƌ-h`‡%O%L̨-[VMaHoA[Z9|R)0ZM¢ /MfژVVZYsXu;+,T 7=&`^O m->%US'X'v v!1 Mdd|7k0BTF/ ӨIF رavp6D٭m{nܺc/n8ʗ3oBfV`5Ji)h}Zogpjjo8+z+Ցt 8׵9%l/DBh8֐<8eD%->޶x!HFa~QvkNCBL,10+ekÌNAB΄\NBÔS3cK*xN1B|3>4ve[5p`N:SyI'^W ֱ|{ںp_Bl9-pf)>e 1\ڢ ߯lB멯1K>9[~9k93Ìg 7Fö(iwQch:~;;{C1ycչѬJ;(Ι;=k={=qV#V*>ճ>?????(< 2| #( Ј5 Fl| )6'xVΐvת +bQa 9`K: QD}(bgVͪE,"Nd">Ґwp׺`p iǓD/x] ZH:I7֑ `t0K[B.⨐sD%$EE="I2"ߪ* "]8 bG BB "Bg HXBf&V2(WQl%Q>Iub䐿!GT' )wWL!E\ÊW '6@)NԐa3΋0:ec ]|Kzs)Y6H0N|3LZߘχtы9N ;(@E"Lj|B-oK>&- -. |`4MaE梑$#fn$ *mDPsl"5bsi5 J '>R!˰nrLd`Suuh!#K""qT!)IʜjL㟽3,nÅ/H6cZȰ"h35yj6TkM[{*:'xAD"1p+Di .CT..iHB& K&ź؁9,J'uq135F#iOS cUb6b"E8Cmc (a`wU[r$>|!,8%q 5= " &eZ 0`!c5Ec@E%א*㙩UD+P㕡&R>@,>|ټT$(0rs$ZґiLxsK Nuc{FIQ,VÚw5,s5Lz[F@zҡp`糠e\bs W'jǡZ}ja F5U ]뺞3\:}=Ӧ66CXfb>ڇD3JTEI b <'AX 0>X] lC*,9!A&XHL+ 88EaEY3L*x,4dC 8Y!܉b5_,Y60)BDB078,æ|Zݐ&L͵ M xJEMXڤxE,oC0ī 5D1* Bf-)j>Pqj5DA7SlQl:9LCK@9Dv@>x!AC8рuB]0Q]ByɜӀ>ąx0<#EG  HC0(ȂC."˚5BXB0Ƌ=L^T9L4!b@E5D}+4&+X4h=ݐh]B,X.mB,Q%+ ѼF]Z D_y`'%5H CDwP >$f1vbH(jXe1De<^Q+rCT,,^jF5Fk N L"mf.S6_2>93Z99.V865e߳0gQgCNzhMUչQLԅ,@OIEa@T^wT~ʰBXչX` XJU6HUaER \d(v(Z%Z ]^_j_B5t)* 3-⁦aZM,`aFD'+d梹Cje$*$+Jhި1D,b*fk~kNm:&8 ɞl̬ccf0pښvtc]#64vV'8:]2ngr'3<&'C 8D$X4.AdTAha A +`EN5&5e2kD%õ,t Ip3H|t FAkͅEB ĀʼnXdUd:CF-H8 I%*D삒409we3L{${h )p0qC1@,l)ܯE^&Dp`DO mn(X$6 -Z\׺[lm֡8dܙk{m1I>]E Y.^u-1JHFfY'E\>ˇ]м~ +O1KA3Ŕ z> zL10I&|X68L tYM:0WXBpK!y1d@Fs%-*l@ >M7 M(‘ŕ'-leWJ>FLl-Kk>t|YXY?/P.D_פ +38͈@23܍e$jB̍R7nvJnhub,/f)|zZuf2j*#$<ɮ'Kg(_P!k*bӖc?^BC"ǩ"OD\ގ(&ekh].:8Si6k6s&8@ke'GfrvX԰ٞ6,hKPC.'rj s?rԳ(5tWwrogXPj5CaIvowس@G(x爂{/B7 :Dd8CT6DħG,,Āq5xS7L;C#tsC/ItY3>܄ť38>ЁxB-F̬fHa(F4->iIDB7DHa E[`P&GGĂ/M_FK,x8]z0뭅73ɇ?Dq%1 [D9B!B1Ia"H$ȃ2M6x?8u 9?TzFAEXE/ss$ >`{lx[yʸmEdgjċ5{FcDWDR;tLyX`pM! $wBzt7:N8Aqx+XC"/GDw&_w)AJN,8C;LcT W6ET~z|Ё<C%;{; <}FHC Zu8NC11L* ) x$o;C:\{;{ xp,8<[gC):+D`Qxb^%&H&%Bр JE;~ĚCGM{Y} `s~DPx<~>? 6tbD)VxrUژ #C> PBsygΜ73ۭۆ).۴K=[t\K>S k+L$IknK&kٮ5p[vמTV7̝#,_}lw.q 3H0Ucm-|B 3NkEmN'65՗>Bfz+¦/qȯQ\qX #,6٨t7}zٷwᢥʉ||d꼶QRzȎ;Yh=(J[yf`Z`'nIj&Pta-iJEXt%`J"xr΁is,^tTK*+6a-p4 d PVM,IıcCjR8&pIz\GV2VT#9U*R0iBՄ' n}&&SRq aߠ g_qٰI +r, kWrfhPiAjG9 .$[$³5nwHG>=}ƹIPCyII xHjc 6o~({h kT ʛ\GPCzc("IsZFY W.-L 8! $)@BfB~Dks`㵂^a+R ><X$(Q:bZ֦L퉗zdѣf4fJu8"`5xH8 >7fs ɔْ k4slɫe\MK) "Τb9-$[JVUC# OF2VԡCѐr!HW|4(FB챓K*p"Nr1cQbEtnC4`Y.QH684h/"%b C‹hcEcAV=4W$" EԘ'2@#Bh5 =<ڒ453Le PMqj"c8e HQmũ^闿kYkYM6JS%63`E}#G8X1']L*(,b~ 窼*rycbu䅈l(OxqH mx1Zktݞ4zK%%G;ށa\ a$ >NB5G0gh3>Tu+P̱h46iۜY$o!1<.%y3!]LldMo N-"aHV)guAÀf3Ex:޾׼iJFcXe-Xݞ1i#QtJ2dȳ;3u9f,pHMTЭ BZҡ$cn*|a[qv:(mj{6V_l{;F1q}ø6OoD-I^r)W#D!,I2!iGtSmRRZIWҙt?Q׉a!IzR񧆼:\)8ΡlC.^wyޓr4K۲MC MlBNn}+`%%@Y,bMUcyڀp, ͲH$!`*"",-AFtHRu&% B!4Kġt/p!`–o!zpD, ԇF V.XRTl"F^+K!kf!$$J!&u!"Fbn+5Z pf@gӪ!`"h|6NZh"%[G!POq[l7D!V P7*hq~ H'\ߐn""/[1qdFUl!ʡ!=/L! e7  #!rf!0"!K"`d#BIper~o!L!A&RKbc!P!7A.R 6lA 0#* wN %b!ڰy("t"+ "RZa!r $jVg!˃74Xa}, y dHq.3|2L1,2wd!hq$cR%1,θQ!/"l6017w JkNb ` @%) =dCtO`A/dA $"-<$^mӬzd!@DD0VB&.KdJKӳ> hBha HR Ox׈q֮Tf-תmp #mZa-0 `P!F2$(e@SOX/I/ q$o=a1ij:A&:a[zQ:S;5"BATG5`BT HuTD^31!6!P!X|~B ^<6s3UYU&uE9%V5!bsmSXUP \]&W/hR86{UoLD"@ l?[#_"(dp.Xc!3AGF`}I!80\BLB($WQ@ &z!|ر&1f̾epvvpBƜޢlaEH~,Khcj= %V!k!b BrbvcrFF+bϡ,&HMR('#*"iv)~#',H *H"ݸ>q磋"(MHG.(ԉ4S,a`A/\ג+!"9q%OQ㒉G{lr5&6.:R?STUTgJ5 [{bRuUblLʏwY,^{\Y5YaC,fR𑧲U6B6a~305Ros5|~5,X{ 5@A_!_ D(B>%L/labRDC>,!c{|hv! F*${|DXBaCVBlfw&d` b8lByԠQ@ʆ&l!d.%iX&{G@gZE-qĶKPBh08D!>ޤj5x>'DV͒9$\hzBPAdm @^f!9G壎V2RxQksa%S-_B P dVR+HX0O!Q.Pљ06y13G S3!ze;bIҸ`*b3I!XMq:A/jAGrcDx0e$Y%Wpzs%vgXbS[cpA7X .,W%naB=9QMO@_"@ IC@_oX"SQo&4dafb  a4a9"^L=dqbZ`Tvea.Eg׸.w)QB t"q֎ s$"Yz)#`b/c?f>riF!aH$'qarw/48c#qGQUVphMBʣP6;%Yj9"A+šCRJB VWVɔXA[l!&iJlRa;R-J%@S>\ NTy$-B!beQ2Wĭn`oPs3cRVcMPT7|#w㰔(ca\]6 Cq§|Ct:/8G͉abQ2Y!!ڪE=6:"BX.EԚ|f!|nG }xs%r%mD`{Qu%<ɘ e"z%X.0ePBlafr!>ې%kOj7$+c{DFe!rl'{qp69_gT{3pMn߄!{y{G[*p a߹/oiCR+߲n5vDUB=L!:,6AxxkRy;%>15n| ePNv5:TmfNTG!X9>Xa!6"Zb N䪞}3e)KG"O!ZE%d|aa|:8uڐG"\| " =:s$Ad!ʒ2dתQ r),%"`Ed򥡔SBdAճӸQ٥2aB Yu$s رg JD"?J=a'F Ω$M>fda?d!F2d0Zeʉ{ڳkM+_*bk8eLjgjH&L$&+K\l̝cFf6|1o.b;uٲbtHZQ6M1֭6,KsϖɬH,-4W׮rneS禬[f XNd>*N78T$㓌YQr爅7*|m*̣F%M*Oǝb hĊlBsX_T ιE_ "tjܻs*w~%&xWs[ Ng /\|KLx H`` .`ba2ZnlƄQ 0&hbE&fF6Liv38|^04vc΁ܱ05L@3M$b͐AqL"^&b)逃9yGݴsN6،CYs-ٔ 5#,Hδ.E-m43naj+z1>E Zmaz /Z4:r46-C`FQ473MÊl6 >TC QkP--e4, 1ϸR..`^mrIO܋JI3R=SgpAIL,khcg5SJ:[5P B#>6!VRӖ[Eԕ&"U\6v5sK|r*9;94dTFfNKO?|IeWQjS8la }gg>poEA׌+fR 0nM0-J*?s48h 9N[hu.PV|;y}EB KY4ئ,o<#8O;4@UwHG:Սu#G6H}&K 4HCM:0JPB9/O2`Nl{ҒN4mj)Lx|\Eb5uM6qCpB:, ;OHpXh>W4l8Sm<i΃9`6+g4%ltHq-ItnۡC шJtEi刊G? &n5ֆD:RZuscA*QMn2K%LYt<ݔ- Ӡ uD-Q?nLI8Q բJ!nu\ץui*g3l+*4ut]:¤X 갤U:v"_cSJ6Aoݫ81jvg? Њv-iOԪvmk_ vmo[6^n w-qgҮ@\ Ѽ4#N@C"Td'")nuw'FQ(uj f DBShX-\bBmƁr(@:jX#j `< 1j>x_0aUQC%7p4,櫍˺k1< U5 dw# >}ɂ %! Y..fM,OA9&ephZX$h)Eı.[B$(yћޤ9[/y* /{ KLz}TWA.02z a`0@ȐԤ0@ctLAI\'cFqk5iFG"Tk|D[VdmƊڈgo[ӝV0ssC.C9( *VИˌ 4/M^P2A\lWb 5q,gG^ĥoyn$TTo")\A.p̬ abvEC0ۖuҁp_-q:>g#1Q:e_2FkoA\^Xfx).>Ғ]D E. tŽ@@\6 Pα C9xP WDI7r,p&6wB/RiP@Z"NzGć0H\~'(>>m$q)"- Тɱr~y+K{9Z JwBЪh"0>!"VW"F"luUtm \W'$uq)u)ˀ@j lcSW$pGyrm_r)@~ t($h>G PvAyXC=">:GfzHpL *a>@#Փd*&P  Mq^qa|C ;cӷr$rAi)Gq~8hX'TPP 10!@ -,W"rxVZ1l;x hb]X53rːvgU kwr&&=b"&-!fm9Fy7CA! BhCs#Vy0fI ĐHPQ/|&wRpS9t$xru;ct B - !'ϒ -@òW}Hi1I!*]Q H1 X('0E5js'p!!x;͇_Hk6a"8+Blle0o3X!6g؁k{ BcQU2f'=xc 舔xPЖhr ䷎ IMpc# b8\GpL0A t(QGM- !^Q,ppD 8/$y(1hp4 ~rme`& xT kq P  BWWB ֐*6qdB?w TYT $5c-I`2FIAEq"'j cb2)H' bxAѡx'(a>0Hwy˜8f) qh׋$*q'BCq=gLcph G, P'DG gI'Yr*r -IF&'p7%"0 uꝨ]0VjtՂtw1j'eI YE1 B"!1 ֠ ڠ B8Ƞx6?ar9*c 'c 1ycЁ~)JfYeIp*1fqWI1D:zyH3yCDj֚^ ) `ٛ բoT}#9')b:}*DuTQ"2 `N;ՠXS Q `;; 62*ܰ lz6UtuU'=mb7l3 qi;8x_)zթmܰV T @io8lR"4Rs i(Q*9@97Y:g3 7pR&І"rXQzyDϠ -İ t}6&})ao1Sfp_ aSLW "{cF kUWP<-y"[AZv ,+lI@DHqlj =;'M,0=3TM|մDaܻ^HeyCEa48fNKh ە Ȅ  M䭛OCI-QfOPe ͤ/|;׺ Ƿ, w,;,hr 3ه)J3CS$3L5l7&!Cds6H?ULHicMd2jxDDgr>VN362Sf0 oӰzTƋ @>D44Ns 8J >]rn 1~ ߀XD@V&n^?-E~85@SǨەG>97H n My1R˻~W3WABUFM ]~#݂ W1.w޾݃'A Z`}j0: !8+Nc ېFSv}>&_)5"> c@'N zY% UY(Qx ^ `ܴd;^ p51Q7 /ZBLgdx8MeqW aT1a'|9Pp'-QU bcp_q&0T0R5SgaL5[S1 S ^StGv8*"D# жڠfx P o'M-4jc>9o ƿ'>QL3PR.̘ i.47b8Snc o9w$$] m& U5 @ DPB|0 h 2ĘఁncxBfw ̝k9b؁H[tນK 5s(eÇEM՜LMM΅rKY䢚.r頵9?xf[[H@h ޾ F<8bƍ  !:eJا( ٓMyL7ؔO&y20ɚI|'tI3Ma>޾Zr8 6>س; MBq|lg4S ->G C%|yO"VȚ:` ]Q҄?|)BӤм):>pD87MO˪`b¥ ?o**A wJl|6ti=afAnk__ › !f")`O ъA Rcu7NrMLA(S9X'9+snⳔ]:ԁz64 ET#$BK=ieoAYRЁNlmmeK0d CRe ]NEy%>W((O'v@erC*RO %+H3r0u7g';1L-tɍz+ډOd1lSPe$N-%N~bPJ6h+jLB)6 R "KR%XTI 8g%XQ lLYd@2PXun8TKeiY>y1jq8#x!X,Vyz01c6^Ql A)aUP5|XysF%r2r3U?76BYGa1hM v":-Hy@H-(Bǁ=wq6BMiҒq[6 l`O6!8Ňm%l,$H51:RE|u[ 8M7 Ns4k4G9ϑ f|Cu:4yשEZal՝'SbbCPr9>܎ $`I6 ?/z.w8,K7pf7hC=V'.FS7ӑU (;*w(9Eqܗ^Cp  ƀAM;)Gq<w5kKj;]٠|t C^Ay9:g ;q1x/PR ?C bt}3æ !)Q@GYd}#m²b 4#B@h?@l>B4C ĵ,[Q6YN@ADĩ8 Ń(:cNTUdVt? WYřz#PC 1;{ T QM܄Le|c4԰[*i$ Fi gdmnFWpr4sCY0F{DtZ?v4y|}~Ȁȁ$Ȃ4ȃDȄTȅdȆtȇȈȉȊȋȌȍȎȏɐ+nh1gVC`I=yƘɛɜ[@p F$ʄl&n(K,ʦtʧnqZE+l ʰȅ! |@>D˴TKJqV䅭6 X˻4G.KҨI˿LsV5DWK. HDŽ4DFJrX6s¬ .$EXKL¤h=ӤM͌XpYTEZTDtjEhN /KAn WDT鈾dcN%5EUeuMA$ u jL0(-H hsd(śMSFkі+sQE$Q$Z+xiHJ'";<|v<8)R|@ChPl83xV@ '3XC6mSutp 2Ԁ[GQ(Is >p ЁQHԂ@nʰHq%2SS|5DNOI+JAⓅĈWmZ IMF[H=fQ|Rd{ =>VMIԁa{=;Vi=`=1 pHEL B!W=$(IYS RrxuHeSxi0h"zL-ڄhM8T|P hʬ|9 rְ,LQJ&'I]% 8Qn8f]me|hhY;(*1ጠҬh]0`타TŇ 'Y'fflim4 ͊ ez rmn`\ o΀ n8 `biQoΐ=a 69vP 鑶 JlY Ll@Tiq ia&0 !bh2VAh!&|Uj#U1-N|'NU'rƣT<>O0bpZ0nakcH l*ǤmkpU9!W5̾ 3I""6ׁl9RfO)etH Hmd}@8F^l ^em0A?IQ~ G$2Y(fn{>F0g OfuK?LגF..|ompmY_hFgT[N: 5{)h/ǫ!f$ k pP:Av lv 8\hA_$9vxgq|7q0#Ua8$8-VϊW FiV` ψx@?q('[9nVp`Ap&>W.çi7q{Qq%TղD;r羝c%Ke̙:;L(nNebF_IY"NBW Uxf[Rk6zWm۶l&喭YܞAY˕ٳx1ƎC,'2n<*ՕQq"xֱ:QpNJlm|atjk7sq+6QΕ ֕|8fl?iR|dV PGr~phI=SAF%r,Q0ءWA ΈA(F T"H j 7x[ahw瘒[Z=3T02ᢌ0x+/2Qe{U6e4SZ\\B%W6TR&W +PcJFԖN03LQJbF?[yڤ>% )TZDCP9ҐHH$EtU'hI&&m0 cHDS^!596Wp%S\NuT4+ i8FV"LJ\cy\"S7w"W碛.xb Jhōp.椵ZӍ9N8ڌkSc^X38|9:sJ%s/cWMÙQgv!%N?; եπLόz\9 |MvWWrU1,oFK(6*SNH@]w#{N60T8()0wc *dluNZHD'x6VD\Jj|Rr@f P :m-g$egSDVTe}UMZ|2Q9dmcCߏ)>~* y$i$yc?t\j3[3ZQVW;xm֥l2 0T'|JF I`$쬊iH i$HA xK&ȑ0k<&i 7F-ȋ ߲E:"Jc(UiEͳf6ǒ]+>UQĢ,%lB& eCHDC c P( hŘm1(.RH!s8sVЦ8r/q#3"%1z;? y#M4RYb5Z*WU4_+YjֳFG&z.~feTj׻5z+_!V~,a ם&!V1f&VFI5,g;v,hKkJ&o\'j[̺6-mkk6-o{7.qk"7].s\ ޠskb7.w;kW) ͆C8F}㸶3fĚkԄ0b^FLy~A/zS8"C~UU!GSwXTE !%eI}}3c4h1lųcTW%v^g ד%t0D>a+HF9OFP2YUzծ^g U}1cUIys͒h$۰Hp^_Ag7NJ=OqHG tҌh7i`wDUK _0$aˆ.a-G"<7&>Kb@q/ cvIQiunV%VC IRKxy7TRv WEOyi ?(gyM#XG:9I1 ~\  n&꿉NlBdDž ͑v>)`E8BF>HYRWHr'P ɚeΉ >`\^}X W-CŰAEЎjí@ѝd FIt8;Ҿ ̱pD5lJ. = EEFR`Ν`Aƚ@ f*$U|݆YWGſՠ59Kt7JWLX$GVSn ϼM6Tx>ܝh؀<GGE!d6a_`(dDUWmÈJy9@^ C8>@FDYA w&B*CDSVd Sx$bČ`rx6ξ`Յhg~n 醉 ;N@pxXG)MmDN IgrWWdN@NRl&"ɓ =BzRgv@PJ4'ֆ]+0$C&DOh)CqE(T()ʵ6*JnG[&>ɥQ*lOpD8:gv9j#s2r>>&<=cg8:h*K8jF8 z9A'Zy)gDΚvgg~y(Y`e ZdbX$.W| ٥BdGGW|0@VFH*WX&,@|!N+RSg}V+dTKJ׌fDhF((>(&AJ{-" CT)`S%Z9aT&ɂ,AdC^j),M))R W*[j\IpF9šN7I%8cqcr FΥN7Nj 8`*>*?>D6+  .+Sy'>+&${W' vPp+~sPjNtr$ڤkS&P l3B5.WڄMP>L\M,+VnFLe_aR.,V8~OĮOA<ÈTIT^A\-"# FgMMV_^i`$>Ca^T3NUCfZre^.-2|(ϛ\mUcnmf\(> \"݆9QV0jcjr4kxgJNKve-N T daƔͽp[EN3'O(O:p;clɰPs=ovbj;FnD*1K4Nz'3qVP)3ڝTt_5 LɀýV}`SH{n}X'8h%(ܫ(_6nj8))QQV*0cZ,TR)QV~8@r$K ~D6XnrDmo-N24+w'a ?DW=CKbUuԇ=?%Z^[[4ONae+66Ł#}N&p횮2ղgskCFzl6>cc'B+a ) $OA#dB#p7ro,s_Xut %uƒZvOƥywkpr77tw{s7lb)1eJ<RdDX⃉eD; ム͊{I]Uc yoPd۹Ij(bI:od<9SYcb2+x'AJ<\ {FTC1h57\GFZԃH덜 K{_t,a}a6F֡A`Ͳ~6ؗ}-4dIFٍLAXRE TG?@{wΗsKMAsҁc &R0lLk$"L7xħ[;يQCȁHH;p%uɆ8f#$%MC <')ǣl.H LՁR.MtCGgּIrgO6B|Yмzvs\͡u}Ca4gc Uԩfukׯaǖ=vm۷q&>p tĺ%PܻlɏXvv;j8IN8ss#=PqbEœ|<-e09qf"Ji;4( ’(̰ Ȱ? 1>$1QL:bZnwā)0yL RlRHbr$m' 9,' Rr$H"42?$ƒ`-Hqy&r3hFL⒒$ɏG,2*iG}&Hj(p$uL'BbsHBB5'liSL ,蠄j(_ "PkŇ|kC sfl @ҩ9\ P(cw5'gWV[`_O0R]5X-`V[aEd $rgZXg^iUڌ a'ciQ` ߤTCUUlVc"RAL6ǝyo37 0Qو]nBKqW3n^迲Bؤ_ppP { 3,)D|n,Zqv͌oᦦsqXqy.2)(xs!qI-,()$&L2HREwU(t0R}upDlϓMGU&l]v14kH"j' A'G2Kϥ,hv$"&<$mG/O=!\b>Bn(FaJ2ML.)BIclD"E>!H X[0$0+Ѩ2C9a =%;b2|zBVH nF0a]&,cB f0Ņ\Rј4FvlhQb7`8R7fuұ (|֞et])ШJq](]{$Q`ɯЩtMPȓ2' Bj+5T$#\w#R &5/`;bP6 ].1=lp]mcuO"I%D=LcBIL)GDPIP^;|OӟDlfgLSDJMHR%,II/vs& '%(+RV V2$ 3  :LxXHt;9Ԃv*<eNJapfONAǩHТjR6 B(F4kQSْ (UkD,VմOTu*`[+BٰG[AO *323,8(|kSS'X9KƢEkaJb@6i hZ 5ht6*rad A?E5` f(`@ăO3$h׾%j>@ rEWR[qQ +x!5uBg"埑l''KsɿF?bFQ9 ]ؗϪяeg>ԔE\Y7ҡT=$gG +3xHXJT{wɀ%)k0JfCu8਀U"Hwe8Y xoe`B!7,V]gj7Zp Y pྷx>Y\}hnn.lq# g#8Mڭ7$. HKBR .ۗ0v>zx5q*6 =@^$OJBJgp F%P}"$%'jlDo 8 4XL%`f3cl1A[H aָ4]bdrPJ4T)%*ʼ u6 ) SjpZ 6Y^K\ Q  Lf{YCM&!8A(a6F%h8CFb+81(l!^#bl80(l0C:c+ 5E/fHĖ g2 :ZjܡFH Cqs`I$ DM KQUOƄD ޑ@D*/HJnР%/P0q"`SĠց)0 )T,D/#;L2X.T 'v$e΃0@*#]vn;Q V*6r-fF+,C00ή$_h]1(}1Xʒ*-z*fTXa( _##*Ԓ0؎ 5!#K0.j/35lB,q11s11%s2SDQ|2-G):2>xDR Kp#L5yDkT42}F6i6q37us7y38%2-3733o 4@BUH:}363<ɳ<<5D3==&4>>3?s???4@t@ @ @4AtAAA!4B%tBiS ,T(C=CA>9@!n6B4EeC316X465K"(,BmcZ g}gm&5&}H5tqNԏ@tIYbJ{66SE$āώ&hBTD*hC@EY&6R;M"NVQE"Q;M͔-:d?P4$hAm~͇Ԥ!P50``?J"RB 4 J6^5LW BFI" D]#FcF6t5p6T6X5<)#XUKMBIa#IDtJIBY]YyDK rJc,Q6HZTZ4_#L+gP4AFDrF޵a^k#*i!qV&"Y4urnD6)H` C>OE&dGZ.D!XVb"H@9R\T3Uc "jG}fWWB}66556E•\[Y6JY[C\Si=V"iKֱ6]I!aទ=8np8Xl͹^>o-2Aj4E:C(maXVl]H b88CvOg8f$rads= A667 4C֣8?~)\>dDx=P,4w@`f-9stM HֺXumT,TNGv=bUrv7&B d@@%Qe-r5lnsPϠ{ !yF {e'2%{iK׽WKkH$~L $Dwkm&mґ'_^FE]ܥkb.]T"$t VaHb;:F6k kJSJF呟!')ڄMYEIXIii"-kZcLѩ#DC؜ e q5Ft){OnSq^d<$wqעC $oWn nɜ%#뎂o 7G?O`m5fbt10?{2E9#H  @ px#BAEƖQx+yl IxazD'{!v  W paqB)ya$^{Ʃb (JHbuABNjLvGX|yGzuIšdǸ)ՠWIQ(t"j(xBWM0GuRVKJ)zF '`v"'ph!UU[+zmҤQ$FاxxԈqڦwQ,gZa NAH:6v)AAjoj<=t_<x ,iZBmIrW,'eę}Lŧؾ6N.~5f 6 `n-XqCH_h˩HM`# ɅQwK,:)E"DT3ϡ6eC3=±R B(vC_ontѡyR]$ *vТTA J6Nk=IJ{]\HVGޤ>׷{ e~LOpJO_ĦTړ=uꮭ'j!ӝ&ٝ!8kW? E;՝ݗe.1j-\iWY ~‰8ee^ዘ%~6Jm{sT<^dp86 ̐K (00[k@aD‹1؈È6Ud7vpeF]ut$: |&s t#h".Q4'𜦃P2C3jʵׯ`b/R$Ml6JaʝKk5$ Tx B,fy[bv_g1b6r岝N-_K6X 1`n1AaA}%Ԫ_C l$^w|˱:D<1$vΆmѮ?{9AXFCg]U^DSA`&ADITQE T :5bDb =# ;e x >?( ("XĐ, Xđ,AGPV:XYne_>a9\Yךl_! BL \ J"2>p '{TS\73 F$hDbPfG}:hO|B6ؘCF~PM7M`3N6NbP4D э5Tf ͚3g kDi* >aVoaˢ(m見QFecj6j|N)f9fToY#>qNcvjaZ61>GmX,Apx "ly=Ax#jM.cs|dB3s㡶MzZ}ssfPOY䉺̱ɱ[MxNlHP.RD`TӍ[M3wK6>Ͷ:͸=RFu}WdNyWU):XZy&dku$sL\UѦC<{RF֐c;dC5 _|Vl8A/TB,_<>_LC<#;};`#wc)B,||a #mqT1+O wA0`Cxo1ȏ(8,1>&!G60T Fz1ȈdLM* ;ιgÜj,p AKaMČfB =*I?:QQR@P9$B̆"j% 춭 *8B?X@ kl0wUV+`e9H#?W>(Ke. K%|Bq ,׫a*x`9=0LZc(Nfۋ5# ?lD-,]#H/Ջ'ZDAE/!Y-Dy9u%OA:ZOB'Y‡Bg  ^ e#4eFwyj(GnvQWAU1ox'y^&ygy,T+Q$!x.܇<gWgF"/2iCFqA ~ P0P`2@a^>&At[?q hձcMa ֣XVxGWǃ՘W\, V YVc {c{ !i ZTDz0QS^Xe %6"?0Bo0)|bhyx1kda+agt"LPBU7u aàk@c]6iRzA3?8>al4 1w(xxƈGgȌθH +!\XBɍ]y}y(WFh ߰]ȎHc T 5S3؏5a3wc0 Q;Ͳ}ؓn}ƨYbA~^أG9yl%36wwؙq7I0oi7k^c!!fP %wVx&.,pxt gigp?~pyeFxĀf0KUTȏ@ eR_h^x~3WlٖQJj@s5|B0y+'*j-0vuA/ P.N 0s*&2-vRǩ \`)"(Pf'c:+1 H+P dН2(0\)TxuZH-hg/-zhFAi{e@!Ķ64-*=)1_Q.jV6( kZAx󥴹zB;1Z3;a:+!0BQT  ;~\aۜ4&w&uඔyndE_ct' X:$HNIquɧ=1~!=] ZYBBe@"Ai<ŷ"Y\˽B]|5]Ra^6`"60P:0+bH/͹$ lJ"EB$\qS/5ߠ[ sU؇y]r M29ȉВ~ٍDbYRy-ϸ,Z2m-XfiS0t;Ғ/p/Fia;3T#FD`L\SBU.UA0eN۽5X6a׌ t"8jek -6xL苾 m馜8b@!֙YiɣnuAHXs+RA28܈g!nENQQ}V]..l>ޮ,a ^ k,><:<'0@Xg2er;/ΰ =~x Bzı7!}_C [DYP싁KT?ޱ[͟dN-=noe? j_h>k*A% Dj|Ok #T ěiNn@$`X:.e9'c] ZP}^]~ݩ1|_QX߁PvE0qzШ@b&gR* BRq .-RLpN餴K UgNݓ:7D@V MʂYM׍gzD)XvᆛmMC۩6*܂lnR"uUrͥ nUlю+^)'lYqe - G' Tc|^F+fiNKETfr0;i1$/'!ؤKHR6BZ?źht|M2}; IH #?H}@"e>_b(}n cDD3n/L(+eD 3H:,#)*I16leZk  8R(P" AAfT׃aLN4||:c6Jmc6m(M O:ģfHL1~f$&BиGK,6t ȞQm&VLE鼒hhZrjB@N+B/wK`EХwL|STQf3Y" ؓ`zG 4}j _4`>tsڬ8,%18&S$%pH7/:B k;_/!%9XQMph]o\Q15ƣh!_H2(}Cam!*0ec_ 1#B10$ f^FUkt4B]nTq3l 0đ7B*_mg!z=t(5HK$>9J6A*d%(2`$'vs]"Ub-Mk=6%1u$ ӵ=wL- z5ʪS8\՟ѯm2jS9b~gT93/(!]@" K8bDQԢ[.%~GJ͝_I~&>>.+1MB fX,F ٝb}!HӚf_6> ѹ} C&C̸ HUcVL#n#S!2t.q2%:ʌ ,>2>ji 8 d6McX3O5yᙹ;d0tz[F$;Ҝ+CLR˜JmRM{n]WJJp;۩ .WOXN36+}䊝?|(@_}6[ Pz==ٱ. E8*4,፝@Za]gt(VެHXV,0#84pF0ʕFdVɐ9גtE&:䑙{TIWS%Rtn 4Shq\4LrN:̳"}@%ީ]ڲOڴܑ4k1 6έG˸3ދ̹:0;VË"fx ӼV1'ka4ㇿ6 dΒ HA~Wҫ^QWTZ+)>NYIGo(2 =*TAS1UΐfjiZGd|X5,0j8:+XPJ9d09=.;2:3>;,C:X3q;c@4"-Cr4K[C 0S {!+EȨʷ 8A bA9/[g1|,Ak"ވ s9P%p̪L4,܄U3K:Pָp3HѳH$̺01t$DCA+Zěлc;I$B4;g$TGAC T^bq| xdo(Ib(C)ӻ@IYIp;zkS1 ɒ|X (ħœH𜎉l8QD35PlJDDg> Cᩘ P "!K10p SB?E:?%8 +b+/* i3RMb*⫛!:pD )U,ZHt?LYMЪǻlBt,N;rȇXJ8I`W)\)2C sopuIq=ἐH/g=0$CMq8J앖/53|x@Q`@`xĩ 8^Q]"u[(Dg'p!% !K1lh̀K҈"}p*5"FY# F/HF|@:'‡#遺G.0%q QFc3Yd: C$̪.,M=%K1{GH%p;B!AHWΨTC5U_U5[ 7(\@|mZ yͩ+-r\r"A&`Vp Wqaq&gHk8T:CִєV+;$j!WX-X(!eyAaS0c|}Wn]LO3XX YY-Y=YMY]YmY}YVYYuBъn2 *Rp*z NPZZU"~UPț-Xi=sBex @У @ DP(el9@}[w(%t1QugY[ t% 2m1NĊ9ڪY+W.YpgZ (HjMEhZ rI4ڑg,|P핼`jۉP(Cf@ԻqA5n؆1_-^P)[(\A`AɁ Ù$rBWЊE *0 eB CfMNEޙ=$<ڳC aMHJ@&" 5\åth=ZqJ㚫ĭy뚜u=)^? d!8$ 7//\GsDЊڞ8HmFќb% o c` sҊ0$5N2jCc.+8$p1d&5"CNdd1C0Shf>#KNQ QT2ٸvD^k Np Aq\.q٠El:9Ztɶql@ʞF.-lAtd2>솥=Q9k@ m] pr:!'eJy*<0KX5?6/j T,_8p‚Jj6HC?oňt7T锠8̴>MpdQ$ pfmHd~R5M/V ] XW6 T?cUV;CSHl` ukQleNaN _rvU#JrBFvO|ثWb^9p0xX<؃}DKss$Ax"Ƞ:tE:pVB*6MLJoS!SH+H+?TV?dX UU:/e@u_lmib' cGk (ljvtjʍ mwSͦ(q13u'v?w n-NU{4|}IBs& 6|i.'}rN=! hܟx=< EdĜ>@Hyk !)Uy@tmoNV*p\(H)YGu4%EN SE,seN`n\:b b6|jȝ#HК9pAlɐ#|MB0nL_ '-jhOA؆3f1Ȓ'Sl2̚7s3Co 36s) %mŖZjXOnAp L\}9c6oYOq-;wn_ܸm{Es.Yf;xVLUP5L9Z5nMQ8TH%fSb9",bO薍߀MlCL:UTn99]$I=x8x ZM3:@)88aM;<8,wSN;Wb3qWA#1U@X3Hi@ZqUP5ވ >: hEa#ՅBb5ܓ%hJXa*v>5vz+xC8 [ϕP@mb>[HVweϱe<#@;<3vgܕIβz/ZCoTAc M~KP},k,-4M9dESpX8`dla9@">(f"6"7|=’MtٴtpJbԴ%Ͳ>VBu<$2A:BCtEjf6>x]'Pt}ڋTNomhݰJGS\#Lm$]en> *b9ı>;~;;;f!%Puv=$Wk={=?~P /<+Z'vֈe˓688LvX< ~/}>НB  Y &u C(&!(!#"HRLR(P369-r9Am<F2:egeE8qqć.2|\ R.`Y_iȇt8de \="UbƗ+U+ bgU!NVE//ͲDЂ|L`|FgIs}P@CvQMdHG;ޑnk<Ҝʌth02@"cu6A3ղֆF&`[`.dzhUȈx*GWjֱ極[!c9FD"mD z (@6x/Gh&_ddj-&KvҢ#Fj+ hl Є#̆(\|Y_UfR+b@\QӍ0)G6Ҁ!;]NnlJ t%%~ V)ઢF[@:cg~Q ?E7M9,H{^IL?+y!Yk~Cx)93yMkw9C~dYꍭ!=G"ck[T: qAQ*pYtd-Lr|Xď,@n$Grq@v$94X6JÛFAF rzQ!v5eO!9C}O8cD#__5aZߣUG7Ju%R~%X1aXI3RD+8%DHT\d_e !.A!`PZ-M[Fc7PLeݥ\avg">BgPb.fS]UTDy"Afzi&o~3܁pMAoOj.杴dLTKDHhF'wv' 8 'q.D"x$'XADBRt$N<ΕH ~yy'ɣh".(6>(FN(V^(fnhGb~(,.f$B"hyj8I6Ng4D/x(")A)AI1BVifiH_$1" >D~`Ih(: (8XЂ@[Rϊd_Eh$fDj*bj&)i)䩪C"lr4,j_XiPij#7qcC>pD0C/Hx-~k:04G,‰Eò-$| ;vF*g6īV{`ԶBM_`@gk}xj j)Ω.GASBD>R:AÒO_IȊi"#X"B$SQ6, "V+,A,W6B!CɦЂ6HaQ+,ȄVҲFAKڴfE4D0PC^͂ܫ:I(Z-歀eGm+MTx/ JN.V֤*).MADJbQځpgxBɕO"-x#P+elI4/@A x2(VhimyRZomB2"A 4`ăPM(ãDD@WńIdd@XIdߙBHڡf@LNI+A*FR*m.]  PNp>gp!"lp㞙.d`늧x0ynmC&B9HCC/D,ɎhS<#`DS$BbZEV/j"AG$m# fB6)D7C,pDSTA` !M8KLb"p4Hk׭/^0&C'.20'+)/D*?%n0 Dz fj000>H{bdps~l*M5{-4-v3,.1Gώ11AU|pglDre4`F"KA *WoSϏ30^(wr({b4'.H2.c.+{ ,òrZ2 2/!*ABNCFJx)y58<_ܛ)fOled6;/8{s?C88Gs3;mSHҦ5>!:koC8TH8|38Hd[TəpĎȟf%:Dmb(7vG{ccrF_*kjvaJc-_6LaMN6fC@ P'lŜ"u Fso3"8T,`TKAP7SVsX3[vow;5!ЂL9C|%^yx_@OE(݊ s>Rp_FstGG6/0ew2_(p2.72ͲhNKZpv6nkx>,lE8#Ho,wUpR5V;wGUd,x:9470B^:Svw9~l-ć$>HLDkXÔ`'s$FJr$dEW/7d+zO6rf˕JEYL+ x6vqG8AX+lwuRi,)1.BD+dd,l>$:DWc9zl:=!Ŵ >9e4)@}^QF. o.>௿:GktotEg2F[1qVJs8vp*8:ŏs':"(e4f_wsW>'/>7?>GO>W_>go>w>臾>闾>ꧾ>뷾>Ǿ>׾>>>??'/?7X; A˚CmN;:~SD>q4\vt#|>'t%vcF9w25&LÈ+nX#H!q4RŁqH45jTSVzkV[vlXcɖ5{# un\sֵkV j\ۧjm-g7 ;'6GQH0b|+kpV:m@k6C9יEϔ(tԕW|wÉ7~yr˙UsW~{vQ \mLף= ic7v{~ѩc/Q> C@G8f>=p - 5ܰ|EDPc-R+O+5JJgpVH= jƟy,^Q<ہ"iO:G$)4IJƎ 'yrJ%$\6|+f-87SbX0r9g +t tB'FPBb1 LR00tPKR/qӏH}4<]}XeK-ΙYuݕ׹PLqEGKN.vʯ$,3$&3)vbGS 7aU*pKmYne7^|D}`Ncm%ɦ 0 Vغ'aa9tC,l%Ziݬ83H69<7H]DO&i>[$K+g.~jz)L\7;ɝl4Sgsl%&i 2(xfH˶-?[n;B[#ŧ;x{n/jyFq3<=Et@3:-]e=ju?. !Y,Y H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0/vk3tSN٠KULXfA"8@miN98ekӝ36`7sUA8uK FSLAE)i93 S`l* 69Y'*-Z@nJhmc5m2 >rK6{c´Ն/j{)1n繨Yә 6m[6I΋3GFm扚߀7kƹ*1<׷n6mk1>XL @(x%Cvrʰmkjpk\k|= ߺ`f@ɩ@dBԈM-m۪6pĝ-{q/>`! D />t D27(2l92=.b=]3jh,S/ K//w mݭkJ:̛7$a+PӘJ1>>ٜ@7dkMNuǻvh;(Vo HL:p(5H9ukT99l2( ~"A|mDR94لaI+ؐ z.9R s-[h@ {Ę#d1\"7PeEDE*^_rS#Q )#>Ŏ:޲!B*q#p+ Q Ґh2!ɈV૔({^H2$1ك0'jLB")KZ5e1KC]$\R~ sh5c^ْ2Q #?ԋ.J@;*1'Ô9W! b2̉!1jT}¦BM X33|ԑ6SP&A, X=YRF3!ќq `r;h!E@ F.NT%dBΡAnp7@$nF!>Ǭn~wbܑ% SK_t\ jZBL>јWq>XOieH7Uxͫ^׾ `KMb ih:)&8^.D F&/__.D B`{ KXBGr7BWtvC@S?٩j">[+f6#)7K MA#<#Nx;D Vc+"(.(L7B.EYFQj%oDy {߃x| Q*GJS*`|5hKm6q{ +n/]C̥׌Ks mqE^bИ^ / ljOlÙ Q B:΢,eȠ !L8od CA l"x!zb@gbv4+s%rgLgÇ&iFȃ!Afx>| "I[q+ț@nZ"a4j= fXC4%BܚC8)O+Td>k`I F 5E0?@0f@}Cl#*~Uj]ՓHmXX8qM=9= ϸ7{ GN(OW#È8ݲTO X{وHE_-)|q*Or@ @8+c,ץ5)j27Q'3 T$—c=j7ѦCD9tvHS[i0ݏvz>` pC [jQTG^{QT7Ϩ@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋wgs@g.0T.h'.~ Ę/s=ͨ^U\`V 㸌W18(~Eqvpߴ{b@1 m4qPǏ(xI=epdQ'"y:9I2WԒpEW* -Y'0 7iDҠ 5(Db(~B. {VI!D P J cA)8b\IaZK \ Tcy6Eirٔ Ր! (k E | x5aEwE i0+89 Fp P\xpEJI aJ4q.$<9Y ٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞(b)Y) (yDipD0*)Yb\  j٠ECj K ck)3j )j`8Ha5N Zj0g'NHb@8H:4:;OTZif`'*c*@gjXj"MM L*0zJHKJ]䦟ڨ(ʄ5zϐ c:Zzڪ Bp-s "NuL0ʫGc/ѬʄT.!cZjI"`߳GXI1DLH|ʺħK}ط%K ]p K01B ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|۷~;[{۸;[{۹ '4> [4>Kp( AZU QĥQ5D=I $ 0To+2353 wwG+ қ.KQk0*Aup딿˾3{ amu(Nٰt MLvJifPXҀv` y=` ˾1|5\8,q<(F@sAH .S֙F¸6L7 [rVkXTa.2\b7v)<Ƃ<Ȅ\Ȇ|ȈȊ A×+ t(hu4 lT%N r t@ ; @{'`c $ S˻@b)(H…z 0G:͜ $1m@\L̜ $1O:Q])<\|=]} =]} "=$]&}(]Tq/Ys|w! 0;u` skQF[Pd! ሎP 1öHŤ  et PF IU=3 4 vej bmd}p! aQg't=> @LHMǀIeDaأ;Dx@ٔ d=ӀMm1c R4Pܸx{w0*]y܆]fY Q 3V :` th; Ұw p= ֠AYܖ Ȁڼݯjk  !}-y[1cȍ:iu'2[eV`6` -ݘe! <~?7s2ǔ02>4^6~8 QB^D0]uΫ p;^\àQiB~R ڵ 0  ! |~~c m> 'QDuh{n!/z.l~#1Qi}'B ~nnvB PaB *}kkmn얾mPU c.b@0 peyiԠ GPNϠ>^rni ji&t y*&$~O<.~ )3 "_ b aBa99^68:KIJs4k@h+?G_SNiuLa\r=hB  s 9ηPn'0ti p;)s?ػwђQ\ٳ= 'D~o3?>o QXBءۺߦ\2jqq YO}kٻ?-v TޟAg 'Ket=$XA .dC%NXE5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQNZUYnWaŎ%[Yiծe[qΥ{Ro!3y5recȑ%O|D7vq8en5*fkرee& 1 oAdxqɕ/g\(qޝ˶ ts;Cz/ŏ'_yK[jۿO5O@tPB 5PDUtQFuQH#tRJ+}K!HK7cnipltUVʔrTm_qbHgieV`jB[j8|PXhmjXCd n[pꚂaV\  QVt㕗k1wDW^)VMu_ Vi{CS} ^ xI_T1Vb{bK6"54iN͚qƶye{&HW1h<膉vizjjzkk{l6lV{mOmjJhį=g Fn;D#szˑpɱBSρ7sЭX1*mQ5At{ds5<5 6nqzI᡺%wx7{| RjZNg[$~| +U/OJuU}ؖQ~ ۵5#'AhX H,$0 rt[p_}VqAfP`=AP#$a MxBP+da ]BP9qCtPg!8T3qb\pji႔\zT) ~&kI6%6{օATjt uo!3c E/|A`sb08Ch@pHfP& (Rsl-SS 1H$u$1c( T_F94 EiH>bGt/~1i 'FY j@29~HĕHrL0VM^F;JYAk146@AP@ 8nE,w(0|kJEm&@GupDS&αėT— ;AB\Y2%8NsQ=}{9NDGZЊEF|1H>(F`imn`-v!RP[M0Y; .xiLy˝O*fQK>A TEC"3ҫk3q4|ˊc`X3j# "}#: ^ CL"ɷ$F.A.|:%qh> P,2_(O$%t!bإH 1&{΄Տ bwۓ&`E u:jԲBwCiK2Y=qp '@%Qȵ$ܫFᶡ t_rE r'n6yF+BB8HU#JPYGp \lG_vs ?t _`ԐTc>んJ*OۤB(p5PdeT Wܰz$8E"X^8!qYAļ$dT`s #EA'>BևZ)z$kHT|,O/DE/l $H5!uo\'x ~p'\ gxpG\ΈC܈l GH\O0@$ F +*P !9Sj1a :1}M<,5*ڴzV/"oRAQ6!yÇE%!vN4^i:˅ƄLTGa' X1D6.'(D 5X'1He#Π=GPQs q*p. ;ΝRC$fXRfPݗXMLB 44Dm}IW*T)"%R63+w6ҴsЯ[?ۈ,C+*`+,D&8x&u4RPT@Ca\ Od&f%gj5X І؄5Zu欑6#Ǵ͆gd +H]OyG4ObhjESGpuSAGgVkЉOVe=oDɖrBst"lר}W>Z ף @W]ݡ!2J{Aʊ;i"Dޔ0 jʑ$UC߇ˈK sY0-(Y@v:v k˘)Hjh +h`+O@%e00Z84,qabh(^LܮC<)9VHܵmFߠTlbTh lЄ`$61|T$6ӮÅ ku9"(Sxn U̝iefh;O׽V=`V]]g ւ(Inm=ۅHOeIJ6IKWȁSdWW'D]BBFTFl‡J(<0 p@C5I>3^gF\P G``XUԆsre@Dv\- aM"4-hPS6&Ӡe OT=abpe1TOD=E=F}ňT|cgMj[)0(q8"/LUjbq݁UMXfg$_ccܖAH@FAn:P։t}FvdgGn}PޥHuPvQ>WS (TW 0q:kI+[d3$y.ImHdCʃˮ2(1 YNTnL@:5n|~p ؾ > 1L<=Z_X&ui-C艖N]ehf\Fo\bg:ΎxfYp\U.ʆfЄnфeL-NNH4D9.͍G];\v؍=F֕ǬEdeVF~ȚKW%9vW%exUޢhX(lIPqh_k:[@H+w$Fotj0ëd|lK <*Ř &g؆nX7qX҃@+18\ޅ} 8 Y g GPӊZ]xYר%Zو_ynH[٘„X6$1Z!#Jas&F > nxPZp8xPb6ZJHnTM^4c* ir(0NYgwr78|;WS)L0jQ(Z/1Y Bl)BϢuO' S3= m|<K& B < A C52%uklcA檛ʫ+E*[> sk@->zmھ͠T컦y/>y.ˁhA82|V"xoFMNAN6Q ϝ sA,wPw K@S腺puWĸ0T$2aK^egEX3 L8#b-Q&j!{EL~g6U>ѷ3丣w9("%1di8όQuO\rAL4!&`%7>m&*r'r¬E|#N6$Fc6!_)6tZ >V|rPXA%-j;a3N6ACOEB>'!8|\K~SL=Y;Hvu- ,Hc_AG+\]dAm_L f_O!!B 8;X󘦂s"8» _rņ>,bjG.F9eh3G͊r3' !@/eCYִ馅FEf "' FMr2(JxfQl&k#ouT(dL H-pKI6&a-ŭ% I ApU`L^U:ݗ2%0yi*Ae 3 67|K9J"DXRDl&5ͩwS.b@A5F&!7Q&)Vl{ >FUEt:G(F|͜v.*,9:C6A!Sf0"`– I ]Pi#BLŇ&ڴ+^qJ$XbMš s p7iCo}GT7Hpq$!n@R|Ns|0?!'Be=&?yONLUE-a0N \|2yD!g{#:'VpR2ӻd6ն>3g,<RbC_o<ءTop E4/aPG%C"}:YBzQɇ'otW(70[!G1`ST. W۷40ALb {P"WT0"ӑCBs\7>41o5AMsB*;t=N*c$6(wQrؼ{JZA@HElBUAA [E LT)HXUϝPZL >WE׸BDнr Bq]q̟\֥+M> ]rH[ p0!Dd̈́WPV6H<8KOz| MX7|Il1|8aR@| BdCGJi" 4`6ġ%8RI77 8"F/I NE"81">LX;a>hump`t"{<UCM|0b6PA9XCY8(܂!CN'@Đ8:8"vCZZE5DUfYUVK]@!~W&PLA4Ƽ"C[(fYN4pډȮ*dñkb׉L#5_*܎e6=Ex#F;m#>gc&c ;g:԰XHK68 3'hĆ. ejD~]S5O( wgBاydDw~Z!荅$k <IZK~" t(mE s0AL3[("X4%k(ezf)&jybdD-iLFdLFj`iQ8'o(PQX)))ZkbjZCIf)m)"srnXC)L**&橣(>*FN*V^*fn*v~****ʄ Ī @jD!*FFȜŔk*AdR&Bijn)CQt Y ȏ*KlIRD \YXD҄Op@C+Eಉ.B-S.BD.&8bnV%pQ+D#5&6P&vOdMϿJĦemCP;+B.74ЛĊIJh"7lMYT@hG:L R Jd"JOJ"o^.ޔ4f< m>LGLQPmF-R`-LhhAl-|mL)NْnR-R8ȵm߲eLDY(*n.*ACfJ*`nfЏZ.>q憏'.Q.DnF.4"[AKGXqCRӦFx+UĺB`1L$@DIfYd@j/" 0L#72#E䁩 pDxD|r|+- :`tES'eFl D,7s*wA D'?հS灥K(_62 ޵MQKA8'CT8IR47>e['gLdC'L'ټ„B ?#L(zBtL)XTPY\s<~j:8PO,@L?C eDtqk6fwonLH1OFJ,e'9HMaO/$+DFx+>DrE4\AB 6+2 `,B.,r#C#K2¾D&,Mt*(Sұ"M65񪪽D6rLb9DaCp^ֆho-: E<$hlP>?O6 ͐$Ϥ6 L41Y1n[/V Z~f+T q9y m`3uOvdk? %LC5& i|[FzRK6@sƪ?O#- Ä R lw ]6Ht(PEc4zPX Ыu:@DXК8dT1Hn'14N0' QP+>kjD:H)OxlS7 (+@,oWDC Ëp$"~ɵ^f/`A#^50,r)9P)=IN9IKT tڏ(*Eb"Ĵ֮KpDqh:1 j-BA;STI0 )pK\$HSDMwg+SC:zzA0W 1̖Aqͤ0A@Ԩ}Lٖȣ@mPDJ~[~Kb`A+DR=4g(AsR͉*$EDƻLAd&Y  nro P6D&W@nR;;aǏ OBst<85˷ P5\^]b71j8Da&,:1;:,'C*(kxYХA3cA ^ Hݫ>z;O0=Ic3c9Ý& }#q{ U"+% s,=-B@ [\W{ְ! QXɻ-OAFx,n R?k |T\*pF{3nO*}MX #D+s{ZK8Ȓ\;W>5tp|ȥcF1"]F ri|tXB70+49aC5;OP|LiiRK.5S" w9S%Mɖ5{mZ̝d$P7"ToH"A+5̰l7!a{f$3cVL-+|9VMf ^A}6X=T0OE/^z|[WA FZuMn͒넚} xɯ_)| ""_QćdfDC 5ć:#94YIUNQe fH0Ʈq*Yq lmI'a?|b$v׾p8Hqi ΁Ԩ|~x'󆰁eE33>]5wV$52$h M3OB >V2]'FTjoP,;wF< ō+ajY_U\ 2;$ʈ\Cl`c(.U@RCڕVg}egQ Ro6 p\.pTs㜇 Ĺg"ё[n68.0ٴ2@VH"9\Aht3dž ŒhT miJźF%;EEBb^ʙ9jԟD0fEM0dܲA7(n(Gq1},Mo< A\DAvh' r\[ꔑ—7@|Ä/+4*.jRR(v3)qg03|,)N9o V(ȊRܕЌ%$ gWE:n2!J6Q=Ƹ8b !$!bP&,V!X|g$/HӍu#tyri,4 joE4a„QaeCc5C&p81D!b'#0|x?ۄԄ%jT^DZ1F2b$>ͪE:եF%wMP9AlPdz٫yhPcCىNHh0T>T2De2JO<*nhUjET*G[]^٭R]~eX*4TJuCKJo[૑N)ix_~w)`= cyCc0Z15>pi1da K)]b1 ,ceA `9n{\*R+d'?Q\e+_Ye/a\f3YAPsf7q3-5BEv8H['ٮa @ ,B78Zll|!6^ jGˆjB9RBgdAB{ dFk#a1G6)"?90`56to0iR dtvC>\NR8MlUO# 0/e mڢm cp bbB !%0`46 L*+:g᪬¸p, !h6 _JAhl#<DAkl̈́ B," 0F"h .5q1/: j57mmEʫx2[0/L眪9"@@hr[c 6. hZՏ;UfVgWZLB BBf!jt@LN-@Y TR?X`!H# a`"}#bx1D&Rde":GW#~crD#4b,-1W-n+g6R~ F6=8X;*Kg,h9 I.h|-="Iy8j6ڲڡU,6Rlp l?-1! OLO)7R~4!6PHB `I֎ !qs=NY*! - ^T;7>Z;c%-u Vu9~`wv " P!v3tW=C 150N&1;+ W*΁3H Mazxc Xp{Y?sx6Y|73 ?ˁUWYԳ$ RC;A!ٹ!'BGVS1N_ ӕB#LS-!tZCyud Z[X"*!Cif h#~?n@=~ Xht!8@i@Hfape GQ@LXp44ܶ$֌D&Oi?oۢp$DW:ˏ_S3/\0!ZGq$<! tt-ypU0Vuq/y@*QYXcd07 Zxk5W11!R < ;A5#Y!Nm@!y!U/9*8&~`Ѹ+C(cUg!91t'X5D.;\,c1^!K\}Gkv,X -ڿ#̃SFzh kÇ_;uT#  <أ|J bgs*9|^vu&|Z"Imْv}գxx/ o3b7S5bkv0T Y{6%в1/`ђk@_0 hY,;"P69ꚠe |{^8g/.aaμ7㨌jJ:2/5w{>cX]/>>Vh awZJy>ɇ)GtBAFP)`2){aZG}KBOoËMTHIۀ̥cb BBݓ Vt##&@.f#X5+8ۢzI()$xJ 4ST*ƪr* + [tm"~j@f<[ljoFX`WG 1[ v!ӳs <]2 Xs c2fPh;r뚎5 f!a1/:Lї՗>bM"TQ8F77JLum)JHhjk,}d>!NG@fMhE?n?ˮo{B;ȋJ)ϺPߺ0Rlì+k.*)r˟ <[l:|1ĉ+Z1ƍ;z2dE$$K"yʕLPt(\h/kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=6ڵM6ܹtڽ+t,Z389"u;`~lI=ƛr"]:-KL:vEz;dn#:qRI'ğ>h4Pn u}SX\eܻ;'\; ܉cwt3Nu 4C<6>8X;Tfݼd ;"GD > GSB B 4.AWE!BAf{1PI=tGMaf5Ȕ>VbYD&G 4DEVFFКlDy[oF4'QETq6i8 DZ YC7ߴsNN:^鄈OS߼#7݌ QJaO ֍@x7ltNF𪨐jR`*`j1}Pp#9# #X 8-MAď]j!T$gS6tZlCaztpGe0D*ũi6'Gwd'Ĝ^PByn * jAЕC )?`: [l@\ tʼbS&<}.-(=BvOϮ:59 n( Ivv~suEDf\x3sAØ(+>(DB(M q$ajx6dA\ `][B#Pd'6eyٜvfI>~پN\@?6<}Y@&>쓤~O 4&K+1RIyӝ("5`mɁ X  o>:dqaBP+\@LưO"3 wp2deG3"3"Ѭ;Ѻ3q>(Հ6scFsы&RlR2:G),d} R83p@: q109@ kl#o))$8ԕXD9eV-jJs  C L^J_7?~|IpO2O\ ;& 8*#(B*t B9n 89a [RУ#aIRP,BsU9Byr9!e8EAAcC^KD6 ?(IZ`5ֻ+OMGdf6?]$T pG>N@l Q) o8QHP Uft|YL(۹4R1 _>.?bǺw0rlL1hrM{ۄ@ >cXA JWD|zA ޷oD@ XCh8t'\ҕBB `yHq3#VT TpG#*͈,6'feAb ^`!A~zickɊ@6N\*3)*kvH.V7Ɇ F=2[9o9pfLg MUH-ic. ᡣ[q"WAL'{Poűjg&:%f9Łui#>γ}yK1K7c64p  7 "CS{0I ; spP^0 ;69]&wx&fFZNP)Ǣ"Fimۓ#/VƲ eUuYƑ2RP]L5$kshܑtt>r҃I]w-MhoISohUc0k2x,]YMےեiv[lf#$MXpb1XB!]$?V=r7A j=1 Қ!QZ' u'!oJI )`K% @q{ ,ω6I0"  "I5ɡ{ [B>PʰM= qԐ sC=b!I`ib2Qҹ&:̼ jQBd09п ZDKX2xGRbw1K aH1 Ј=-$ˠa\`-ٗ$ڧ m> -QFX QF̢ ?}^j p2Dm)Z]q0 Ut0ձҰp !1LG϶׿p~ .һR$ϴ P$PP'>E :rs =`;b Lӹܚ 7 9)Dy3#j):v:>9&>(6~HHLԳ]l.Eۨsd-ǰ5)M{ {!11ݻ` G-ݾ*~M9­,]0xCި!x4a}[k PNLѕ^DFo۵HG!LΏa5DBH$ ubJQF$PFh˪>9dUI!yL.U-E LY 1VUTU EDp@ UO>֜ TNH-`~e>񛼝& \q. |Net aaO2[ʌʎ.ѓhPNE uW =9%yӥ~ I Ȋ?-=7i&MξVV:v)q7n+ 8Y -rS}X-A8K *ZD fl X!sޫ= NgRfCYj.P %$CI%v>k |%yT!?>tP?=ۼ -POD.:,GIV/i_qaeW>'G2mxp2'> GBlC.]؁×H"nv;!>I^yPD@:çH.5JIpQD\D$ECD {STU^ŚUV9|G"ŜvEVZ+VԔ+ Kp- apw[9q` n4PnoM`aժQKCHSKQr9&>x.A EyB⳦N!9iQ_$س Nw;8>q 'njz0Y OLRӃ/}H__~0@$c0p^F1צ[ 6ڈm2J AHl0x x b~e&kᆛo.J@!$*?lH'k뭸B 03 ¼X 2 3\335v[%6q%@rڢk 3vGE39G:|M z@O+>(UoH ҂l "쓬+=(UZ>R>HTXdYg6ZijnG'uf m!s\,ksfFnfiv`~Z]|nᆜwydƒb6cڶowJB68oāKq.Ġ"̿8Lɦg#/2M7l挊@be&b%9B5vTɥeIzu7]>%:J>sz _{,w(^QTicϿe?=tGJ|Z|ہ睿b}7&SƜҡNxuo]vta$GJd Fr~x(ǟvuxj!?†dwLʼn.òX&&E -K´ MpRyQ=s]6z PvrĄe=dP* r׺Sau`27B%$Lt'AU>hGiV7!Fn6.}kB\YI?.vы_c8F2ьg 5VSԓH YQиG>яd 9HBi88ZgO6;ptR$Hpe(E9JRҔDeJ2wC@7XgfLe.uK^җf09LbӘDf2Lf6әτf49MjVӚf6Mnvӛg89NrӜDg:չNvӝg<9OzӞg>O~ӟh@:PԠEhBP6ԡhD%:QVԢhF5QvԣiHE:RԤ'EiJURԥ/iLe:SԦ7iNuSԧ?jP:TըGEjRT6թOjT:UVժWjVUvի_kX:VլgEkZպVխok\:Wծwk^Wկl`;XְElbX6ֱld؋o|BB ="wAXT$ ]|cp]fGTZ~:R"1p^8.ѲvňR[xK52 ^ q% ֳ)s&oz ݳi'!0Jpī^3J)_?9) _@ $%phx;a%qQu|Ͽ¼5@SO% 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6 X;#DPR7  3P9Aa'Q8`ٍ.߬Oјiu38%ҕCK$DLE[1wD zfp#k*g 9$2л,LBSL1L9D3 ><@|phL 'TA^@oϰTeNCx Xx38bd24לJ4LgЍ_'pvr*PN@X15m>5ڌź [9OJǽӔ' eSl5>߁38Ѡ 'ꚬU,P/酴ܘE78lex^5jͿ6ˌ6d <& IOB{/DoC 5V@;mc p62Pџ.cAD#/KC7([ǂ/Bdd[Vê1l@*E2ˠJfUp.S<>(& <8C ;UJXk@g;CW|6k1瘡H"HL&:PH*ZX̢.F%` #!pA 9;%I1JX>A*&~AXv58ƃr2CpO誕_l\ᣑER7 Fm Čq6HJ[:BܑJ|Iyep]\yiRaH\E+p;qGI9˼Ȥ8[cԅ 6jsɱ+񑎆Sb N` BT@kqڅ@4<6v1@ c n1&xt0"礒:fe'9ޑ C2|S^ad'wh<s'YJB= `q Fy!R)Z5]f^J'5kӬ snvh l4^+t ƅ >(8=8@<84xޓq'AAsӬTnPuOb`jiY(Frt9,:RJ~gx)5T(H&kOd@VJbfF|84ڌh*G5!cR v awIO?k߮UwF)5 qOB({ j G 4X6-8Vrq()@QW%"r[I}NkQ膮ʩ.]22tSva 4}?vC^L&;PL*[Xβ.{`R9n2DIy4 lE D+%Ǯg?Sdc69 Pa,aHmo9!0r:^faꗼ|ͫWєN\Wc+JsR(3}s iǤkWC/3r F 9FӻtW Z l5+bF? 4QҿN! jEXeݫ>S/nScFN9Z3s˴tsRovLO [}ЌMjξ˙n{'֨Bx5rH{̓R_}YW λLRw%(k4f'NđP|Y4:2r|+lj2{l} 6hC":t@L}pz^GU^=!&;<G*xHƫ۠g;+]ds'?$s$TtV2> 屢yAG;L{OO?B9r?%-4S{DtDPGUv|qkg?}16L L1f(2 ]GP`OC'tw~Uk#F0u+Re-h~5wu4fgUCL$(4hGXS_XX\CGU**uqq+7+u1S A='և-vGH/ʂgg]ph6` ЈL~*f-lH3@ާ"zj= _`Pf'6Q3H)$ }EvdX3u[%tC'P؋8XxȘʸ،8Xxؘڸ؍8Xx蘎긎؎8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.0294Y6y8:<ٓ>@B9DYFyHJLٔNfB ߠ!)찇P9Vp?/g,!q dY#A?v-R0w𕀹z[F @B;\6;Db@<1OPF+H*Pմџ4 99醮`1\GIg;$jY6z Os[:)P`x9U2;{1Ib KuKES!{c!Q 7)Q$˺aĴSX.˒'"P׉a~:if;OP;[{؛딥zR;|!Hj֕0kq"Cq$ۋi9k $.٪ZXbKL&Oؾj1Xp1FP0z*9m1eD30N\P"c4<< mH$\C(Es+ 1 H[x)2%az-k( VU Ȳaj1'k\:(KJ-b,өJ;.3IĐIĕ [ɝ{-I/à ̤lY4يʮʰ˲<˴\˶|˸˺˼˾<\|Ȝʼ<\|؜ڼ<\|<\|=]} =]} "=$]&}ұ*cbB]Xn!ti5+~H~@QD=9B1 B() tӱuZuL ~ &MT҉b+44, ’RIip׌?J1gMiMRq h6ŃmEJ*-w-qҐ .Π}&pLP Kt׋@P90 Cs.&gpHUW-I$R [[j[\l\ ƝD,F2/Yɱס-n\Y,nIa a߰aFUnbnf$EDݍRbۺ"@!|2FN$^&~(*,ߩg3] |.r Ղ|.0=,*BfI hm,M*KNe5^Q-%WeRMj :La^eQN}VPeތ\re ݉X6n+B@i`>^~阞难>^~ꨞꪾ>^~븞뺾>^~]WAp=_'Ҟ!Ը)PB H|<]мpZx5+ˀ"9r! ?ziNFWwӰF.풲ۼ(b֔RNN~ ηp4 DpuG"| Bq_& hڬd~R "-T!*D". qpϟ܋۷޻qiȴt6ZI Lm?tA#tPmZdxf$l3NnkÎ!Z|-kFsQ( Jdž3Mq#a3`bN*I.K0Ż)!# ҥB&Lìg#dnF43G&lnmdrNB 5PD bL/kiF'KGTptUV[uUXcuVZkV\suW^{W`vXb5XdUvYfuYhvZjZlv[n[pw^ L+\u+{g9CX9xyYx`+hŅ@ZH?UB˗ljc %K&݄0do["ȖаesxK#HxC(DtֶE0!h0Nqj{KHuZlllE#n񈙱XԵqDDnfo@%Aqc&|rsBc~ʝ}ܗjNǡ-~Qu7[!FbWME[i}W~&B{'Hl捭ъHs~|ut*V h'uHg hP$` x@&P d`@FP`-xA fP`=AM@8]| n>:")+^zFXt~-KSCxDB`!4*Bs`8!071$ ȑܥx'F 耏'dٰ`7E0Db@% MHHPT":DtcIp]5 e)QERʣC I8#AlB2[Fv1$;+LsLg$_H6L(!|.DH2ԐDL5#`sfڰ^>'T8).D؉21$%M}.Bgz3HɠvaB13Yn#'A&Y&@eԘp!T'Npq$S[FXBi%{8–3*K)r \GLāRU{k_WV%la {X&VelcXFVle1998|V:`&@% ]Z&hcDXa Sv!-C0ˊk nq]rFr,o$FA1&!~Ha]1PKϥ?a#쇐aT_58 zGЂA*!Drd*Lڑb hg펦2`T)Bx4ޥZ |D)Mm i:@NhQ,$#} b/-JE*ܒYb.uMBZ䂴k:5"h'>e"Ȱ2Bqf43dya2܋F1t[MM Sș o&, 4}%]`DwS`=!q4i-IsWyVM.e[1@8\#`Y}<2d,Yad7z߄ } f i1EP/zAsX Ȃ̾>] NpᆏBKv8@u2n,ШVR؊[Qhz4[[j{0+PZAd yr 3@CAtBsإa4/dksC"g!Մ&|cv>̢]VI2-e7.[0wC2 ޢw?q=%l&Ȫ˱V:;ϕ0d]\jPϐb7)@%B{ ?R >"Ir%P5tohC"Qt(Y7/""$/҇>4բ D?IQ=PCW"1qt0ό7bVb.-3VafSVHlxnpuHY蔁x2V?,nH0yI̔&@/k1Fi}9KSht̆ :zS#3ZAA|X  D Sk&1c'|B|`xA؄5M`2e3 X c܄_X A L-$@D?s5qH.s5Z5:<|S5S WˆaE08DBZI m |؆,&؄&>VA)9lvX$@k$ʕȆ5+\['K#,KAKM14"[KԄ4Dm8ɖ;7$hCLL Q| T=CIpIb,A͆́7숒Hpt޴CM[O39dYPL;p-|0T,EŪIEbFs.键l,hx4M|E\h Fa5е+[5PŇh=F ;0iƲ?=3u$i@9#{L酕hM1|s7AD 4\QD벐D0:yQ"|`TH>T-+3ZEJ$2|+dÎ$H Ď|zA1ć;'XS1J+,M`LC*KBu+]-fѷ3Rb˝tBDcBE6 F)3ê+R_ VxlЄĴ _KŇĎP̝SMEcP`21SV$Si};--DDoDئp83zI՜p.W$fZcƁhEWjZDX=ʨ:M`\\E/# .@<[ ja0aO*RIݐP*)GHׇPʼnbz |lR$vњeD>kPGSI$Q+Fz ! Y`*At?Y -d'=@T(22$?<0] |<#Q$fb-i&B}'![%::\ʈ3eh}a&MmѵЄNb`aUAj|j*3e]zTeR(i[UpAHVOCrI;`_aM\.YY5&L+nD1]K ]($U,XƇWFZ`DW@`PIaX]*O[F@6`6^ؓ@ cć `Flpƒ} iYpa6=RP%f 1͞{GAZDrRH$|H%舁Q/&C4 `uWphIJ%^=^BcT@ڒ]P&%Je }8%S$`m5ݹ--\8lDd\N\<5V2-͹|Fݷ]ӵ]b厐&bHjbބ"-TRxx޸cݷ:CNM%_PfbΆ÷(rx6]=n%Nఆ3a}VW8G!A`ãׯhfh >EyN^D5`: aaDjPaM:p ƋKEC/m23 G٘  m^*#lHjj ZGN)~3 ;&xSR>#SdT>հU$3baV03ɠ_=\>T<!Õm|"\p`UЊBzI;fJÃƣ83߾_o>psONae>wC]aI{}dELײ1j@&o8tnXj^¯pbNj)q5bOZ,XZ32M;P̅υ9Z->7i;?9(V`H4ڢk#0&ȾF$Js7jФl(S'll]`JDʶtMpǨ mQ]"zĎ3l؆X˦$ˍfGܘ|?Y]]V:#wCXfSJ%WE5|х̌όgˊ Lv\ beFix[}g7dG#@ֶ_Mnes+x(%0?tGݒEBahE`OTmNVkEZs?MY(M]OqxH*/%^;q·[Zz$'Ep6qKG<=:x 0 wKiIIRPs%21zR\ 4|1i(2O( v8ȅ@kHctbg(u&S2^^|$B/,[|٣A< eRI Kj,Hm|&Ⱦ f/7]w]h2ǵ0܄XLި+?#3y:OØf"$AvP*h_AQ̗sDK@T ˜ŎH̚9xґg\-;Ҥ2&˚FꬉR;qh'ώECrQ<_UJZrZ*j޲6Xױٲfgت5E/.l0Ċ3n1Ȓ'Sl2̚7sΌHF#ܦ4n8sCyWDSx?{򴈳U3oør:ڷs;C-HMҤML:Ik׈֭/`kf}`u&T&E(X&XeFtm z!!8"%^)GzD16|19^. IhۉE8WF*$M:$QJ9%UZ~h%Wz%a9&ey&i&m&q9'uy'y'ǘ%V;3մ P 1Yoff}P!FLVwxJO&r+j`)/dє `]VG: ֍S*Y ( K0(":= CAUb/uH)m ӫ!I6Pp í#)-IN2O+lEן%ΣI锨\b`T:.>HS=aĸ213Ml8SJM+sJGנ&AtlIGG'5KC+QK=+Xf4i-*aݑeSg*dl6^pw`bfEފO]NG80( H 9OEw,3NO߰37d|9>Kr7; 䒣R:4wM^ wz;܍ <1G+Ȑ3^Jxaw1i|h'ia{&/iL,!+B&׳,AKD'$HG$ґSP8ŧ(Wp9\׺6l$G[ dHL+4e+8\51*rGlFBsYd(S#CTND90@x`5'sN &f[Fp(HوT;r>cUCvy$4 Z.>kdG+ F`9FINb"{uA_|ۿpnlZ[d*{nGBLTɁ10ƀ"b'[ʰvpS%`ql$^EDx|̎,EK[Ȩ]cf]U$n8^ f _lKiMy!33Sp٨ )hөs%GXH+k/:$)S"yOR 8XZA@Nژ卐5tEHx3]֭~FqiAgGq@t}NzUEDX3Ě#.ޯ #)H|Mk½mSAɍPsWhHv}N 5l;DQ~#XNL E x@{m9 ox" L 0H>fmcF5(0 ^cQ QB58%^x]iTD\OT‹Eѭ1$]d V#QՉadYDy*di gZ(ZUȌDj͈5|.  C6^G (M8!L^D6 lDCZpeCUa&hH(9*􄯅By UŵCm[)lF?([~-!_*>_*=T- 9. F9CJ[9X0.m a5ȟOeP \hs5<FXp6@ MLODdCEQMgYQ5iTQ\B9c}$#qUbAF9RU`@`T]#젛D9(9Q6d92Ԛ-CMo9LRMFM^lM!>A5Pq0oF=oZ2Q9!L %S8U뵚Uyʓ&:k*dKZ8+֓2'z( ԹE_~  i2Gei1NXM‘9ITrlޒ&^N^-f->mR^WY t~^DMI)j-g۾-ƭMҊBS`ikJR..&..6>.FN. U.fn.F]ԭc|D tDȈäy+"h<c+SXZ]nb(tb|WCYFȴUH*mN.ȟbcbA.L aK.7$S*T;KK.-KGj*>o90L|KG9 8QH8žXD"܄Kfapx@HAG\>-8pMGii*`@ 0 'F p ۰* e C@AnBHq,dHt'`.pDDb ndox81TcS0P2LnވWSG;6Vfq/qJ *q g ɄSGc,oaB7Am k2)? f@E#bl/0`#7At>|40xZkT p*ijX'aO, QrbP UCr&'2@*΢1 m {O2KbqT,^p80A8 p 34 4&Sd(t8'qqZ.CF-`tfwqHbqTVcL.cdN,d4'>>BsXlm+py5sg:D0Da'MrH|i vjM-H@AH԰ BvG AMBԏES/bsCcK>ZY*LLGL_WAZd64%x7xwl1k1&CxE1>B[D{+x\O1CVE /5%ôB8>MB3 rDtDS:ubKMCiZDYS;/jg1m@oSx(_ϳ?DDH\#AhRTu`b0DKtÎ'v3-*du; 0:87bvw;~FR`gN_9cFCàF5gv>'z iij6k{Y.B--vn?@(6b8B AMp sWc8wG9o[w6 3x7YdC\ECyw9{Vtw\twgC7V]&>kS%r-xֶX6sg6;ǔoiu!>v;2L.c*SGtՑ7:bDQ`JBtu2l]:(WVTmOL?WCUXD$e-T6E|ϧuU zI:+2bX]62fX5V㬋cCM!fPDb W= 8؂rX;O:sAD6moz > w ; >dкG٧YwSq&Tj*h#W\6>$pFQWx~+xE6Hmm}.P?w|;Pj@4l{H'yEE;T^YsT{ķvJuc95tbćȥ3w.>k8vV*9x0j̚w&\(f̐JH,XG:9b1BI웸Z YfÜMA6L'lPZJ)Wh\|\_YMPT|uAUV˦ËZXnW^*rdɓ#0-!cʛ9wE>qՊs aS_/mnmi3}(B4oD7?7 fٳgf=7}/_}#71.~rw0B?a!: Ylš !K4\(*|j)'01qq$XlxD!Mk ar2 #yF$p2I6|Uiq汜7x McETp}˯r`婬4]=5Fu0g)VVX}Hb _*`Y|Qb&֑dŋ^w0sf!0<س L0AEbE'i贘ꫯ!J܀i)Spv!6ɹs({ړs٣aX 5 Ld ZH(B ((J@7!!RyP0"[ 4:= {þ#2EYTrJ|$9EO#3JDbQ)rHOS2H|`0&7)سM8Ntԓ.SP@-ЊgM QxzF*~ c7MfikIzhjeAVTƏXm'6wZ‡-^ŎHFS C/rS5*͌&LRTc2Y0Є@aU|M_WaPIaDzA !d3L49XLDD#8WiF-A42.IaڐaTC 5 )cy3y4;TDXHC>d=,!d^B:D-T6&u,866 !HE@ɶn" DVy&Jچt1r8.w"VtDK0=Ia9IF4ni: 0%9[ &V&2ul]099*NcJܔ XD*P!TC%s4OPkMrlh!T +⩙Ψ01CZQ@e^9(r|T'ZA"'%8GB"_jTh/\ LH {x .ȰZjMCϒr6#:UƤ*"dU8! Xjg!MCtHCzD1tYgcKqY )IHwkqp<\ֲ}TĞsUx,rX\̱93`L y6Eqp[[H $!d?#փΖGň.Gx&b#d.vDL" Iz$4:2hyfzt T4 TٰsiyͧJpS\NA !yb.nlXJ\Qtx2@)8Q׫\nhb(J?{ВF\獉 O XkT"1gKi膴S٠c6꣖GV%aC/sHM669"Al><-i@z$+q "`]#и,>}z}v u0K j]Oe j{%;ccHHPPۃV I G$. w{#b٤" Ɠđ!r\]D{E(p֡sn[A[ 69=!n%J*b!ecmQg:bBOcdTu3r{j=6sџCJ_㕅 99\fa<ܾ5ig<=Q_e7BjŎ&g2;!ӫWx?|tQfɼA.y=qHџWYz׿~TzWTC|`ͤŽg^q7iɺW|?}o_}O&o_uJ_~W~_ pr:a:..O'Λ=cS?s?b? &dy`0G::)g)+΁!*@C+ C+2,2!2Β šֲ(Sؑ.].R"b`!R/)(R4{<8&9d de%6Hh9afBD}kgӱ)(jM\b4]B;8Oi3&`j'eL UQAUlmԤU۶DAoPnEbDoEJu7aB#AYYU'Yquq`A@X8![7/Ϻ( 2X\wwda\ u;#1"-M`2`.aˆE4b4H,İ~1uH#+"`a |  Tv~)6 Af}'(~ߪ_o~V2Mu!\%>d 8S %xy ' 6X{_ iuRQ s4gPPb<0!rX=?qqsq1pZ!rUɹϨ1s\`jU#HD iX2d@XvW]aaP` Ҳh! !h8$v B-џG7a!  9&-&% $*Ԁ s@4e_.~~C}i6h"pG5c |j$iv hcg!fӀS6"QkV6! x 6lO+ J+^!0n=AW0W$PioYuJ? U ؞wRY_Πʢ!! baEbKx1Raala#Q%BFEZؔ&08bRFA2ʶa` 0M!7~ʸaI}iB Ԁ BL\ԟ  l{TMYOq!R+\8l 79-7|rR4DLv]SjB.SSn J(SPq%*E!p+.{Is4p!Yי(&uՉQB㜈ĕ12rPfD@= a&B(BA"B\Ay&?D!PPX09?.>UA$c+\[8ٝ1B\ϷU{*p(abt06! k<1 -[3-P b0}ሔ x>)8!! ld &rA?D "`@y$!000eVN*0řjȵ{wƑ u;gHjm$GΤY3' ,3MD7%$Є* $+hUa(T+4lͨjͪ0O QE%-\nUZ6竼9MH¯\%E\6g:~ y鹄"[W9|km͝#8|-69|*T0CN;p(؎Nn2g"L8w.05Υ =2Fq؁sB{OMy:ۻ1/ز-#g{wpeYn4jyg=PY>A҄tQMI&唓0#ƔF518H)RK#L8-u(#B?^Q d$[N=YsmdUT$I_IeVX>W(&Ir]LhXP{ӄV0'ic > 52Z9*5:⡗V怓mݤol"PV0"%BZ*n=xB)>ބV8~kqiązOVd B&Ff#5bH<á9fca7^ZOqi4pg%O1 5;!+,0h:A򂔍/2Kb%Gå'0j 1'\&1%I|)ј)plk2 YC5)e1+XV 0!qӭ| &j5T1$Ұ6D" &ٍz14$_/NBaMf< ՄLabbFz6ȚdȆ_4dx]LZ2/B/2Ь@SG CZ# a5e2kF;I(<0X$0򸍨p9-kQUC5$8WX>Xь ) UN,U!\( 0xFFBPqJ0skshn9ܘ^qNNF1q׷A3W\N#l#t4>ЕFtrT-(,ZCxBS q@ʆEacRYX/$&S1Vz'a hRpw˗搨P"+2cO#&O0Jkj,\(Jdm" fjMYʦf&K>HZ]Ksn)u77 Bժ(wҶ2Ii#[H!0Pk &uq,`L$,ɪ@X"A%0{ITu~%o{U1^t~KQ|lPF,^ $T," dK9Py Caۨ2uᱏ([ \#΀Fb6KAT򵶚VlN]V"V\YP$Pj6DNs:"qlCbW?;+F /r%C2MAB!/qCZWEHfm,6,*F `"4u#u׽vCnt:m+#86!9hKN7c*6nx_:z6>@ jט TbX% ❍m"rUH{^%K :xICLW<_0_g$'1h]3CfE03а"8_( &GѿкŹ Q;A+ d0` 3Hnsj-CaI^8٬GB qD`R1-rhmqb?0 #DdEL(uqΥdk:Ӌk|H]t_HEQ7j>H sc;1]v?oA0>z9%EpYU>@-!ޭJr6͔m Wpp)v Ȁvv+1l'4P հ ۠; &sw'' t(d0= '28"4(EGR;6 @ l1!B/cM A)> G2!PqS_2!`v! Z,+ Q# ֠ ڐ)ot"Cw*BRBdE {gTxD~&pED mOD"S0saia!cP c!31ei))@g>BXt2ZӄY%m!ZhZZkɁ$'[h$η}e L` 9݇DP\'q\F5!c#%]ӵ ܕE4R# Qr9P8%pL#qp^]\b%  ޡ iqـq_t`Uaꄐ $1$ U1ڴ4?o!:k Az&S# ;o A#ˢ'2+˲-/ 1a2i7@@H4b%R&$%O Q+SKU{mO 1KJ$? |1j edf]`[r6Vkwy{˷Q PٷŴ˸븏 +Kk˹빟 +KkkU' *Р%9i51-h1P%L!#"(ьw]TRBA+2Sс`P@2 Pn `ڬ>Ns# _R( Pt/tf(Prjx1S0aEŖ14ZWXX s!!EM$jQies Ǜ QWɫcaQWk(15@r1a5tKa^b8[7u ls1:/'3[k~"m&"1v#.$;5,s -Y'Q{|TE 0P1p a 4Pq !ܰ  AQtHcHzqBPA| R "Ց Y$pʴ? QáȤ;MBf1W;)"lJ|˱V<9т!ƂEC Isji<%uma[moQtK36F G 3skM:S22mR=Hqǒr{K*R$k ՟|#MM$qBEZCZ0k͓4٨k%&;/:c:P.)-A!d ' 2)>)-  /mSVp./Wtp 2:׾ȁ"܊T/]>CЯ+!+1a r,Y ;/>1'(1Q%%|Q0=SCmR #b}"="l[Gtq4]iLȯ!p01 \/cB&׋[H &_&)TA@!nc$; v,9!FPݜaB*Wdd@X y:PPgi2@ƕޱ)kcMÙJ Rq D:/,[BH@&-Ma5wz'V9kTp$.92C 6dWD^cNHHcHةCk+pqkfV[oɃ!*:,ػ̊ "ACi'"dhb%h0s;h0$(,s̕<ՈHW}m2&f6 8@&wIMX۷a3 ""΍ -H<:!AӘt–Cf2o%cšoȁSclg6/T9\ϔdB&"#,\y p"2OLQQF"t?QkoQ ˡQ1M4YMRQ4Nd'1~ Ǎ6ߌ9%^+1ac.9YIPh:93Gyb$! D"چ&rJH+QF[6 \ $"F'O4ɢn1Y>$[A6*o&{LFDTIM `+)*G1itkA8n@xbVHVr)L)Dy1,*{9+Vq`IZBCӟ B++@h68]p@ߙrB>6 b 'H0!֙Q.ZYl6/sC9_ށG8ɻ` rlc=)'nQĠi6Da@p`á11WӝfխXCϑ gG&9b23Uq`D{4!!W d_X|"fiG5|#"fO0E41TNar%hc5,kx3v9gC`)!B""mrnd&#$V17URc.*a in21)&p WMH3|:ęHj6`1pdcl *}nq髾Ag9U\^:[ r5[k*fq<}!Ԑ :YG;qYQu>\97w|.1<MnZ '[Yr6 0,rpp2n`PeـIf]|cO݂/$_4vo-py `rϰ+#7YgHhN$Hr6;%l.D9K^z rHϴ~زȄ5zea:2W0-N RJ?P ryt-2]s2 7V PHrbp'VO]pAspnHKfI$uBN+aۉt0AR&WM03B:WPX/'A2U\ modYysw3F\QF>tԥ>uWapzֵuB:JbF159;όӉ3 )F!Ԝ8!zw?x7L9N 86a qL:3%;exǧ ͹&(\"w<',|UzW=}eWSlg~V|?|G~|7χ~?}W~}w?~0 5߭dƚcrDQ񚉵!A s;7 tHo8qp@!'@>S6Oy‰pgA2zAs[Y8 )ӶR2&%) q(;&X_Ttœ=A%sM58$3#?SxADX%{\*/{/L|QPP 1 T Q>&aOȻ6L(0k8|3|xę`h(qHiFk>nRn؆f.,nh/N[?`&BF[ i4pbǚFu] E2gHrThŘx8<:?sà ";BI$(#Zƃp ٌ4Z,aD'IQ$EXŜPERSćT$S$XlHT"pF(aP_bFhœ˴\8oԄ0:t3*#K)rO!4%|dX61;o2O9)/빾0(8ФIOB_ QpMQʗ3* lJl#ʄɆ$TBz?|<1r2MĎ|,ʷ\N"A|[H&!a Uђb-ۂόG߽+\x]NGW@l@<+!ŗ0GNkЧ\2O2O|UZtowؗ٧ڷ'7G{× M4 ء姽$O$h2DӳN=(b^!mu?Ah`3AwkG9|eC@޹ap̵{Π>0hf!7\UL(X&9Za:a yd#V+ؗ&ݼW\uM^}eaX916ԊAʶ$gLgD(Dk(m]Ygk% dC&$eP;`@WDgPxyi@eN_ʹKHhR@Y3>}δ ɦgFAnAϨ Ύ)hHWvlQX̎+RݔĞ1`B47V6 yFR~`g$k,8Iೆ~*eAEm|m|fpF0oۗQ|0 Slh̒śõ%Yf,L%!Ot+qƿ+A0%E -|3Y?K3ݴO9$12@&0M]uPxd8^(P _4`ŊeӗDr9GW;DgXqS,RhP#[&aL_bhW҅+L;6@zc+ÊtcP_bFLA+->䁳'+Tnـq8o+&.1춋{;/j5웄dIc6ARWڟi&j A\68G G6G,8ns)`Ff9c/!F7jܛ0~7<Վdø1(8m;jõmtȎUBμM&K,LvG[ڍաM1 pu6sLU&fF3vÔ׷R7)U&g$O^M^A}S+[ʮI3׽MNf`u9² %/K#-.2~–L]GUF9Y֞&`F6Ӵ\B7٘!3 U)ȶr?39frӑ6.N0i5%"`ԨX]94pETpV7fǭl%BY‹jzGr S24%0BvԃMƒ MRdH >pK hB2a.vIXj ԰~kln2CdX8Ʀ'TNb =u_"DP}`&ܒS9Np5&ҮeGf/s+C7xr@G&6Am!z"1@ jDxb6) %88@.?;ȫߣ+Nz<+cěv!Lc`Lc*|ppPLNPBnC#~GJ= =TvW6Hƅy^U66+9{1,ʯ}|zB 掟AkP'f}Ɇ3?6-j3#S\F)R fOh~/ÅP-E^hGPE"_{ސo:@GG3"URO?DNR| IO #ng%+@wMT`.;Ďp414aJLTL :48p> ̎؀ ˏcݚoi lBX>`lCZ[xfD$zCZSIIa y8pFY&֎>t a"5K:0 P MZaLL.Lڣ2jRoDAA.%0ND?QaW v`]p PU>"E>ze%8F]A0QbŨQ&A\ƥAL$$Lpf|!38dL_"]o4d`ƎKD&a$<&AGEd:AID9\q(GKƤO#N&L>֥\eI fi"lej VQU6l7vfWpPn]pQLZ &eA]~F\Ŋ5(GC+x9'pfHcVdudH^f}hGëHYRCiRDiȢJkh?*P%En l >J(L8ğf|hD>NX(>@(٨('Hh>L`IiRhe !bL{PKPBC>Yd:2~LijA1d%dHDbĝ)Ý~ FRljrApd$G2jHjb$} A>*D\jBjr}Aeq KAŕfOͤCVm*L%SNjWRP(DS6X܎#mࣱ s宎6πIq+$+Be#%hjdC/R@Sae@ÑBA֎2P0>CINC"k*,&iBijL`rlfj[Tj*F,E6ɒv"NɪʂfRLfʬzj|ve*7s6,f&TRfw耖fuīchK䣬]+T':JQH,vG_4ܦ| D6-ւSSl"Y9'ZCł~HDN9dP"H:Ú綧iR,Nl`X4f֮i~d~ʡR"*ʢ/}2K, /l*,>̧ll7#>p-B=Q䭌歋GO1Pp-W.fb(HN uf"TїǑN)\ Ɋ" B~Ơ"ꞩ:,NN{nc+b:1ncĦ6.jbqon1}vq/LVFnˆlzoL݄HMfWe"%BƲ*bh?N*V%U9-,p2O/m6-O`r&:&B\fE8F8Ŏyby .蒕 *34A@d߮inq;181j,1q;3_1;q=q6F5(TBVmE$¤n :-lTrR Aec?l 3+br>FKm֭>TDRN2&2/+id89i=! 3R14d"%`1A5Pf3G63[3Rc,˄Rsl87q^qvo<q?kQgJnNrXN4(#bvfQfOvO݀0GO}1hrk1 '>Eg˶J㣵.okd6O)[pi3ws)6eQ]SU:)X{Xgғk40o.6f@Xx{D3V16{+i^#^cF`3xӳ6l8b366 5LHH5E־(XR>Q6'l->8wOxO_@Fvhm(Ka-ok 8h|kStOwrSĔc9cgbD`$QXl"H+^_T).N%0Ca}|#(TI~n\\)d5CqCWR[DW3?c3?z Ki@awR'EZϺz[):[I"o:{2쩜5lܩ{Q[Kk;c;'{{{{;,5x{&.Ĭղow ' )#K*EH|ydot|P|ɰDSBT@L==%8TH@ENCDldJTDskW `e{OwLԄ8\z,|"&>|C*0K~7>AARzӆ]~#8u[APD~R@hhFD`WD<>>L>śp~~ccwqt %wȀ($QǃO?,lz `_hCH܉SćtbP~}=Ri;3`\ 5@Xc.HA|&,h8& I8bD :ƌEB!YǍ"ITAT2wNJvgσ(Kl!ОF}&MsROF: @Ty+eCgC02\sudx· OX.|f)PȆ9gڠP|ikgϟA$]1 ukʕ{g&wZr[6Ka#bJP11&R`;6lcx3h %'S72UfUi.׎U؋ w| )O:ք 20h #,ܐ1FpD&*Nl˲KZA vFhPm N4+M*󊙽їX` q?dg~+V( braBԠM l*L{rH()/ (i ʉ{ND"@39!0jы&1/NRKH")Q$>PgJu;Bވzѳ#$0FdG!FF\K.&J& Y)d$ \/%FFɔVj/8):iJsJ%fSp  _C r$}h)ZE c P;qÀxѬh!ćlpn@n$0> ̳ =5 ԟ״E9ЈrDwHX;0'>{apXR|X93tOzXLz3cU el^!'iS4G>)iIa<#biIh a :SD(] ,U:a\y$+f>lc]$W(KWIM}*SɉGƒF  &6l]%HD+]i!|5^9Wuy, ;⣫d~kNQ'RB\,,px>rJ}20\J:{NJ.v.98`.tc#(ds4@&}oB&%rP:Z Y2q'?)ynlPiST95dm<6ʑ0Vի@lP `=X;IQ+/{V+&\YTn2խd[ Ȋ!mn;=lure#+OEEXp&'ʡbrrerrF\"${{ϝo&@O*FP|5е87>Q⭜8IbjC0r`d7*鵋}‹j .ݥf @h0cqrpDp Dcc!x$&,$G ŒŦ6cYLEެpUM㢩QF☐&.A%[h{y0*/=aޑL9& (|D< =hOřD=iLN>ؐ(?1Ys|ѥ<͛GJMBaaT`"c_S]e'8^nr H{ErۨN,7 bTpFwG`Jk0v.>~ Ukb"-//&b}pf1wˆ%_q") 6Pl<|a3Q0hiKˆ3 86Q!@jKEnHB=Cp#D^nFF߂ίmf"(<+~o4G"TOrJps.OGOГtrxGBoufxNx0 .$N'XC'B MUd d.AIaiV8A.A A'N4@!-~EI2d[ K)  JL$ 0*:4<04( le 7JQ:*,!c(!kG;ʀ&L6@,&g/T>Xf;?xoDh@h4$d@*pҥ!M(PدPdPFDM$P&Qġ$r)bI NA"e{dSq. GѴq1G1%eab/X1)#1HqM p Mm+#=#A2$Er$Z#c&b:xè%1#&.B"&b'G~n'}'2(r(2 5#%-:C&gR+&+r%+2,r,ɲ,2U%@-2.r...2/r///30s0 0 031s111!32%3(W$3f/!6s2=3A^d|C+C3*@=C4QI )a6 NB̲2"*!0S*,iA.$e :63:S)$c@F)i=%s4$ƓS7;M782$b/Ra!I8%3@4;@k@"^6 A$`+8=s+ L..,`$7!R d~v!`$;9?-AmF!{#Vp'4.G$`/ZaB.TCCCkRAorJ.)sF 32nS̭FM0u4|M;"CN9 8Jd 8 OIt Ps"3DĀ >Hc"k J:ROEuT-jTU!s&R!P@VV@ .@QDzC;FZRg .,vȪ4}*:Uu[2՜[' ~BbCU'~W\uX-X BEAK@ Z5ZS5a#- 4 UAc[LS[u @%. ]}XRXρXQnR+)0S`9 uamfAKNaY #v p5,EdxƒQFsF`3"cNcFi^`gٶmK &Efe !#>o Kȵ+(,D #iF9{$)"c0Qmm5ws9s=7UsEwtItM>}tUwuYu]ua7vewvivmvq7wuwwyw}wG xmV&(ZWH2FHzy9"OK% r)@#{ȷ|kxַy7w4?b+҂~~KW}Dm ~IL~U*cG0/ 'R S6Hn3_L6 -ՠC>’Dpuf"jTSC w!B㌒|w*}CC}}!}:nj-~1Ρ!~+hŋyb+H n-p! CXY9ɳ=8Ba!˓>"#`8V7fiam$ bi"|@|}Y̕\ 4xA3iy" 8t~7#.3 ȜbN} D!A(eRLey89@ @yw&!,ASd? $/Rue Sgifiv)z B` H @& ضNYYx"XT#d|j l§#Bt@2necFu?xtl%ŸVm$8ޅ3ą\-I7RkjNKYY',8 ™;S(⠝`3j:L9JaJ!0vr ԠkvzT2sD `9w$%(`7D1GФO7⸕|iڦz}e+ ە4Nk9WƘUɂڗ~{*o*OFL}$If0B)ǹ4=_U ;;)E\4BX ZEgBGv?u>g=`Xnaj|Cöu{šȵ┗@‘ɉ۸s<[uڦ\ۨi{Dh۷Ο} ,N6'͖X}{&=z'4&0:E!|: =)(?|f;\=Wa=d&qu&0,4T$DzZ/D£ٵI"Br!*]'=הEyQ,O̿\̍;ܨgY@%œ-q)u/ ;ٵ'`e'(~*_A'<$}ܤ"\c l聯A0a|A"F,(ŋ!>QEUXL 9s3O$aeZc~Yn MfT]UV#1ddbQ5XjM9(>M;Cg&tijA' OApZ(>~J*gtTgUЗwq ;,E74*N+U>bm >bjAc_*z { 6x΃)k{ Xbyx/ .bI&F!,#4.,C7 "fw ,.(2,sAUԌPkAYG>d4PH'L7PtBk'pZXg7d8+Sq^UX3P=tD'itmxBvZɯ- 56l=4s.Wngw砇.褗n騧ꬷιx;v]P; K$[dLo?<sF~﨑ړ x$8^T%]pm:_N+DH:A^` .-A$(ԋXevqfȭ1x0Mј!NxCb&5ψ28j/zRX}C!M DD9րʸ6 n0Ҁ np!5ʑE tzΡƜÎhLמ$f}tl 9 P{4Ʀ81,rҋoD IāU]Pvȼ'fR%.q(M|by9`H`>hEQ(bI6'Nzs*Ǚ)-$>StlӚ`v>IS'{7Y8bV: L "@nֹ]$\0+*P偉n>VXZ_=G.$q0iJ ( U\Q!H9Fʤr0}؄ʄa0iQA'ԪYK#>OG*A՟µkŇP{Z*t1H5t >Qh (vH8 JP69XjnG?FT(iĢ 'r4 |mT4ف6eg9IO0/oÁxY28SNr5! 4(+ݼmPPDVRHt6w(F3zz&-OHSKk|=&]9am#Gp( ({V|%w x"Rᑎla6S52~L} 1eY!S%@ʰU[>-PRk\RFTN5 wBXn R8-5\(z:%:1}+d `ǖd`0sC0 ODt~eJ|@Mzً:5(>@J,:v!f] #; b@ mE+#m9myD\j1&gA@o2a#yvj |(:h{s)TQ,SW|L4ar?$ݗ 0v1  XjQ&T-VV&"/hAGSʬgeOg`pMy~J}fD0 =s&tޅ"Yр2DIGzsprMQwwx$[%kA`ĂsPx.P*.9!Pw4!xJy@,x=+E7y'.HсZyz*5zlzBuVP6 g{w{|TEVⰇR}WJzȇA}psp!}tUggDSC~?ƇnV~~$"Ð @ Lh> ErPπww!lH a"E7P @ Ũ ɸhtX> 8@؍Z7uhyA'bj'n\<'r(*':09 X Hh>a&YbFp6 rLЩ cڧ{0 -Qݚ5Cf\(0 ԐؾV9.] (@(*{1 X܁ljr&f㔎:vw Ā`-q<^>n l .?t܈ 2䱸K~P[:!`NPY*9zv+ITLE;?F!j,0S1}>vA| b>#*ו𣣀ђ  5B t꩎i)p"%ݥ jR 5Q0a c,͍%~Tjq:GeFO gk~l Qփ&p[;kX+`O!VBjlP^0,z5MAil3^2r6XUUC͂u2ᣳFSO9$?_ 7zQ?O$mmm5/Y#t|Z3 _ʯqRPI#C68ܯ_;!AtPojȥ{k`n/>9|ȵ{'.ծoSw v2gZ:M9uOA%ZQI.eSQNZUYWi%[Yi L7 +V=R;p̝ke Ҭmoa*춄Ge̙5ogСEJbiflwț@|f](-YƎ6ĺb7k¦^uٵoit〫c 3qFkFB| O qH"b>":g͡}`k$,#K0sv Bkf㆛md! k$e(tkDr$ɺ+pflZ$tň :EsRL3tK >@t䂼VP0"(@Rquy)|)_+#XdUvYfuֳ|YjZlh[pw\r5\tUw]vu]xw^z^|w߳⊋ {j6cÒCHD"i_m*J.z@eEEd!e)'"mJ +臛sKHf*ق$"Uׁp 6vJ(":#v!GFlHmp(MFJnAƧEme#?B \m|,2+ybb):vcF!l!@[{ l Wf5ËqG(,"HD#ep/`Atҋ$pC!BF'0HGΑ pU'I n$b&ZX)[%o|!@$b.(U|rOp6pHA:G n)i^QAA92Hԃ-Ad! q:)G(.FbVOqlɳF|1iA +Szo?ˁag0nV2|n &x࣋@BH/L,5$2ً`zv5Xء9\V(>Oٕ'N0y[T҃BPҒM,Faۖ?6",<4^sGry`; vȠz`sZ,Hg!\8gN2Eɢ[23w6@7x FÍ0wBAPP Adh˶j1$}i\͚ Sp6Ʝ%p6 |[#h(^ [f m$Zq:%^h|bS;WX? >cғU(wb n|㭅ed7BX .br.YHPX"*Yor$tk 刼H\og9PqxqlsIvq#}S_-ti24uͽl"+U,R]t"RaDM|7 >j|UÀ@ߘlڋb LxqbDŽn|EQҗ^coϊx3jD{ӗ>š x}uJU%lȈj8E_uRE's.?NI]3nH"OG.#!?"љ4jnG9}5 ^[:os3#4pȀiɀ ɺ @F{(;%4$% '|M; V;<#]["S<ʙ|k+22ӏ 3IQ?KD0ɥ]r2m(qsb'![&)=ćسWYRЦ$+?ai `X˴thLSQv' \P9S|XS,`  H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0#F;p1sɳϟ@ JѣH*]zq& rnF`JիXjʵׯ`-]7vঊ]˶۷pʝK݊4́;߿ LT#W-ǐ#KLIϠCM4nR>gװc˞M!jFͻ :s&>+_μسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXrƖ[ F7SlXcNfj7u8L9 >S0@8Aw9[tnBN; Jϸs3`ˡ5Tq%>f@pT79p4p'AL1{ 4@r78u#)OBŪ/ 49f|A@mقǹr8@#N*^SNQ Sz¾'`SλvZB';*iԙ@N:,F<A;a^hzlLV؊E['j A_|h|a U)u7-Š*z2~ >|9oSlg6,3&Tj M9g%L*1Ts >;mOPM;3@A{)/S\iZ6AͿbV/]jx+{ߤx5{[2R30LjqgxɼN+j$Ի[A+07@^4SV8a<M/І6" TPՊx N5^ d_*G+e| c= zPiaK<ť:tCܸ8D!GU25Ituv9f:D!~UœuM Y`bkNpCn&=@R!6[R:q \@̔wd}@\2|i vSF Ii !dLc9qI7L*WV򕰌,gIZB̥.w^򗺴0`%1̊ġ qA$ f3ͅ<42 pfΩJ`@Zv4xLorF )K鸧Qa6);L*0|l:J9"  anGӌfs@#Iϡ ޕ)͆Zv[F SO6 El"+؅eqcǥD PlMdh5iӚZp))Gj ,I]q &n.F#*A-4X᳋Hl` |BNpʲ+\UX#Z!^EHg$ qCab/o4q_5%QkRa -ng ce`3Il)#t81wxZL#r$6~G? ZTl-WBzƺ TC7 N1{? e]û-z SXqN9~!(&6a[ JYAA]#v@l6-DnCUl9>4岑^z:Ɠ4g;hؘag9&OT.YqlŴMDLͯCQD Yf1ЃW'j8pdD+4˛Y4apNu^.ꩼ@tkVǺNhO{Wt=a;r+~a?x+q2DO!1aяR&m¨vpw4Βy>/!6=dW>=ͽ!)e֤y AĆ ̴Y P*7nqYSr_Xb ȇCHsV  I/1Q.;&(ς&T`nfgeDTVo6}Q4PzU4~A'v'Ґz ~H=[7x&XqO=8Dӕ (U]Q0ZBVk҂ wQ4f h6@8g D0>A_'`(xTz8*j1Zu| V8(t{868w^JRXhp$ \(2ah$z.q9\#,fPP][͗iD(Tㅻ҄czmgp 7/"~gQl؂SPkѐ6jQ)SYd0s hqwdyEvD2qXqDn0aD]c]qf%Cg:P({Q 6zJ("Ћ|7hy" yQ3_jq~&,Yy*$*qv-2> RGPZRIRs=WIwYq VYyٚm2l28xv85dabIș߀P`QUɄYZ=Qb98 zjGPsy$j**c+|] FICXe ٞ)]F|U_c P ù| yE@R9bUPǷY~ ʟI=hB.zUٟ9$9"\dmRU2E]wEʡ[T+Y5X5oW]PakSA5*7'=:: 7~? $t9V9q@ZOdQp;q*FG Xġrڄh4 |aa$<* w OPc1gQzz|KB2 a Z`u9yVP0 UVɣ2 Ao^pXԦ8CO nP— UI|&ojo $ GːG QAmIЃzQW VZ>ʢ< ck sG:[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|۷~;[{۸;[{q;.DXЋ|br {)gC OUw&*F|+̫+5TX Y %*ۼ{5`BK|&8T;8Xπ`X;25gSΒa 5b\|(n:" 0 L-#ָ0<""\q".d @@+@  ;÷iH\PYh\F: ^|K5{B' W) &r4^6~8:|1,.>S.Zmn|U8\^`b?d_fh?Ի+]`!Ҟ-Bt-el "Ym=ҟ-wm!s#m./f"1m]u겝lW>_@ܦOk֡]]d{m=*fKo>١~wך9&\atc'_7|/"ę5oSnckرef8sΉj'^n6ZXr?^uٵL>:N`Sc^kyկG\X{%?adoo?tARixѐ"CC%kit kCEcqFkFsqG{G rH"4H$TrI&tI(rJ*J,rK'0ʼn/,GLs>IsN:\i0\3L 5a-o';UtQF%/hBRJF/Yd >ltTRKmtr!UUTЂIrT4V\sr5WAU֮Is uUvYfDKqV3Sǚ[pm6iZX J|l ]xo\i b F w_Crh%5 :4`#)u >SX7cCydK6dSVye[vecyfkfsyg{gzh6hVzivizjjzkk{l6lV{mvm{nn{oo|p 7pW|qwq#|r+r3|s;sC}tK7tSW}u[wuc}vkvs}w{w~x7xW~ywy裗~z꫷z~{{ߠ4O#kx;BövÇ/k^C~ID}FS@xc|`8э%|P܏.>Fp99ޑC a>"j>8 P"B!s&a .|nTCO$ԡVӆ PtY"R/r!EPǎ#%Ih;~>2i@fe/CC&:C$H1@]6їO]Pe"I/)q s:mf(yOD5+GstCw::S =yQfThG=QT#%iIMzRxD>Akc|([R~(wX5fiiQ=dMԚTd"FA=EjR)j~H% j*\3yUJӖ3hZzZnVKYSU8d">A~V O-kX6mɆ%-OoƾASH|mmm{[Vmo}[W%nq{\&Wens\FWӥnu{]fWnw]W%oy{^Weo{^Wo}{_Wo_X&p |`'X fpx]9,[ < s -L`|C=1b3ą\qG.qBA[Ґ1=|8GϑeT,cPmFf) 1gA|01e63>Dcd8ce9-6W3 <3 z318p0h2I M `5p ȺFZz!P$0PbBuN&Ffρh C4@j`,YOD-P`>|. O&f&!EJC r j`O.L0vsnbx$M33D4hlL¦.Hd pHG!3C3B98s96Y\"t/79c/Llr)ksTέ~ug][z׽u]쒽Dfd#?Pl{6- :d "v+.P}8}ŧe`5rnhތ   8r C/Up~<XAQi {4j|*Lp{̫E{WB‡OO^1 ~8?ˌ#&7)| {57ϟi7 B "s@u6~䘹xkS?08x3s=ah>p;6o`"<+HɻL? /{6?#/;p3?rs14&J5xt k"+D\shg`sx*+$ س@81s{"(p'؅#?|Pćz(CIDJDKDLDMDNDOL 酁h g9p|0ExXELO$3$sCɣ<W<S829| 9l[QիF@[bFbćlX{FX=3k5m\ !G(5tGX [2GٸBj՘0XU83[~ HP@aVyH|HXM+;w<<7 jADjthِƘxɏ|HII@t "9E`8'q[> ZJ@RG D KrHq@KL,L92-؂5Ga 'JF0NpM<]:d=C֠ X e ĀhtGT1 \4!σYshiO <]ŒrϬOŌ8PD; 蘆qPh@gς44A :@lC|٫C|m\'&#Q"0"B5`+R xPh 0s) Lڥ؈ "񫺕=Zx{$T},l؆㠿_D9ДI@怡x ALTXVH_`"b@܅Y|m@>;*80ܦ͕cȄR @Gň]%[q5%;`]1jhȆ1M[^Xc?c@dAdB.dC>,ނI(FH${6JnK>YCdd^{R\*UV -Ж``", rө峲eb BQl\pfF >!]C#I&:jrбfTwZr ,(I[j4{l wgghh.h>h劁ؗtS1qHEWɋ$@蜨F@A^sΒhpIҁ%~hڄo4霨3aiw* < B!\nI.jo.a8:0Nj9v љ2>%j DjfX74K= Aj k:*Gl@>lNl^lnl~lȎ$AsU~)(sH RV'F~"8z+;Bt@!^]Jm ye$T(Ί9K]YƁ`_4tmnBֹn1yΕՐ*0ltō CC}gh{3n9o@$%֍iPbbPb[)n05B $.(X&zԼ![e&X%Be$|$y fޭ*hr_V ~'x 5 1+:(<>(9֍f27:'0'Y3W3G% 'sp꒾ͭZߥ^Yq ܞEN5(%X'v<͆mnp t5t&.膿VUtGNXyv\7ƒlpwqwr/ws?wtO"Acuhyox Q("`" .>P(x wgpwhxw*#&gVGԍgX|Bpcl=?paG0z B#/y'`vx'wW͞x2~ &w&xaP P Vh@R8S7@{PWhhxPz4/6 Յσ 嘻&XnMCn@ pyY|0b||m#l֏FdU4".% GzI{xO{NS_Lj0|H| |`aȅN4 ,h „ V R°w;Ck .$*Xg4C!fB2Kp.p-j(ҤJ)ϢA JP+(KeE+Ӱbǒ-+v`9qʁ\ڟbMKltˁ$-m,nSOO0t>m}3ݹl^^:p[n\a&WEˡ6nܛpdH&E!w,iSM,m9M^buSr}r4Nr&vPﺦ4ʕQ >x 4`6 A2!D!Aj8!>Vh*!B)xAf&"5ʨʋ*#A IC >QFZہCACQ&1PNPfJ4t6qb@B SzT/㇘D 0B\p3%xz)GeRAlQW]PUW6W_>%NZ45g:tG 7=s AhS7NAT{&KDc6|#N6dLEDJJi/xyݵ-wζ Kl6V7酫_u~YQ%h`>D ~`(fab(#(">"Rc57HP9*QD͖QBdRF|Z7m㵣Ăl:e\PZR)ibT(ܨB"6>D<Nh4ԉ+}FMmIiB^RÆ3{Y{=^pE_c܊¸j]^Ĉqdy%>k>Ѵ7ME:t&oL&A Al[qX\s_O5pb=X ΊYgOuʼnmy7S#cByOA- ~ȃ6әOHlg4J V >[EEp$ Q!0$*@eX K/V#iQDB;,A b8<*BHI% 0 kTc:ң0uv XTӺ8^b-"HW  #nc䮚;T33!H6X1DT +_Y\IE5YM l68.a6 a`v8͗6*7sS\ !4'8-r_pM1tbA{sA0H lCR!Z"̡H\4Pa{V҄Z%J K &4U (0D%E52.D'I)*Do&:g)P\X!{tA˓"–VK\HCzBt1Y^-fM Bj!ױͫGnVϲp3} JpqN:ߗGD~:7 6]!g:C cٗΎgd!vK݃賺5Y$ЁTf'<۳Wg;B`kWEBgB828_v'䮟"6AMC^i>LFAȍlIVbIE#ƴZ5lj{-8ڲ(J-)x6!Р~>Y2A\DVRլZ[e[ ⫍8*%|0 8s[Vhio{5pF҆|$@kb\F36fkBXz=G9WIjt:9b_|riPKW!'4SQLlzgi5.U4%i)Ix&zJ'5B] &fT( S( óJ.19%v ɸ7~ d> `xtՀgĈK\A@:_A48thGr3D:\FfdGpe8]u l׉DȾQhR SR0!N !!Ya`8H8ZNY SWQ!""&".!";#*N%^"&f&n"'v'~"(("))"**"++",Ƣ,"-~R-R"B!"0=AY#2VR(I DXBXQYRRܬd*XI*#NY|$* .|b)}=RĤpnA9@BC r9DAF3p@P9ƗCJ;CPy^:*-A,t M,"3A`rLP&,%A<4:6c1J1J-%FUQp,Q̡B [eA4D o AٹeD l#܀}z$A|#Qҧa=%E8Hd#8P%&> 5aAB8:*D%ZTpx Uµ&B=&6ht9CAJP1$BP$;7lCDN6 ]DZGɈ5lٴQT@ôe"[[D["A\0a~p `Rd`ڇp&b,$:OULfTf;*N,Af˜gT%BE0T%A 8pBj! ]lkmpmDYK>d:9@BpEfPcfmEP#>N`)I$y ]H<*f^C,z⃉/0LCjy ЄDP@Yb*+6lB (B!>xI0}Hj|ĵ\ A軪*AgmϊnOP+zCkrҮZy}BFq9fC'L'JԦRa,*>*z BS R-6QBx6IDP,ݨK@Pͱ2")G@,/(8Dn.e3/]ZqfÇ%4K0D3FElFhq0/>2y+3ʩN30h,plA4tTEXq%8GlA){,uGxO0(BS>õ\D|pQ(0Ȓ(D#HKhnYK4H+%Jg6-TYkKe *t*#$u]S7=D/`  F޾G0O:@N E~nAأNG fSc;J}TALU.FL &/&B.D.!Md)nh$}I,b3dv2>%1]Ae0#A3dh2D1TrunaO'OOc+741TqBd(;,1Us7<NJ)mQ5i6iIgA&,WP5Ad@O$B ,6&g6#[hA0g&6gtk<3\h78qwt5&s[88478 Dٶ5N@=bD3>qc;9UEyA55E;lQiCCLC=яIzIx|WBHY=1 :[)|v~w+ :AA5PD7rkv[3DhCk3v A om +ܰ3sf)0ABo0+)T7 m\zu֚ft)אiKΖ7/s爽r 93.ho׹k'Fٔj$W떚IxE0Όṻ -'.X3VD-"W.&O\h %S"8 0Q$P , c%B:<ȗ-8۞lͶiW4GWL5H˨\l<ǕU\S0,Ɯ0p$6|N8𦜂q"Ψ<OOkiw+ 9K-2⠥g΂Άe9n N8$|a.O4250| ڒA14t5 АC(HYxpBR6Ι*L+H |Jk?57]vΜSiL%S"1g$eŲvAv=̜Sxwx }fg)&Z' X1_er3Nǻ><&:\xP^f]q4/3Q"fbqgⳍ"4CyFB頟QPARNFX CV4D+D@\{{1F[4N:A TH/~lKYm]w L3U1(ݝmu}|RTJxQz쇻>"*Cc ?Vlp M?N,g qMDO4T]׀!uoHAw C9yCAXD#ITD'>QXE+^Y&@N g)*3.ui/>IIS0 8/.`b< %@  9$>,vp<-07Rp`[6DH!ScG3U`%S<#0bgQ| t*yrcfAC87cԧX]i9Ps,d[-(H|6ҜCpЩq##0@<" fFy:DtwzMlN:BԨ|UTЩNF8&1*L1Ä&V%*7aӇ\P؂'q% aRmtt*_UZ;Y9r*Swz(Gt;ᔤ3$ (R"*YCvuho)^ 0>D3ATyD*Qޮbɪ9a| :vfv{$B wdEAR0Oh t^ESZitRE(WN ]bm^HOL2& ':c{_@e(qdKS] efT1SF%G"WACkq f83t*8,$ Ec#Lx47hqw",L,Do*MĦ쨙FiF8\Ґj!M0t XNV f8SD0t"+:'=ב^b)SS[KRvRmd PnVj8G夫0Re4(| 8:(JlTK%~Ȧ\& OUd >s.ʙTRQrQdԆʒ-d&?d3qL9DCCe7a0F u6?j^>W悺'wv S5OSU6< cNTUǟYHܑ0-C 0F6̤/oi:o-΍ R7Fj*W}'RYWҞMԧMx>&WWj"cPZɠi6(5ʇwt-% U70VٮPT'Ɍ&-_wP3 &БT8aJ*Rlڎ$8*3x/"XN~L% X :d1=1La؏r#aH1<\0뇌.=4f$"L)V΁NHʮD  n|N&CTAd ~ʶ c4 TA 2/I~ˁjפba'sB Qm/#%B/%.*!&"a,^<{/1o# µ o*8 m֭]@ ,"mmt"J})p8n 32" Sd )svdK !3A:"5WRN$E<J ef&J/ Av0|# A'}2)3l#*3!6 F ?Yc" k!SE M1EI!CQ9w Z "ܥ8 S08`:e"`)*">\XYOjl7vC8Q8Ρs*a:K ^!4$;~,:- | Qp2T50 ; <@l>= @ lTZT*I> : f4% i`Ӱ!pF(rD pA2! 7^r9Tm$A*ρ?3q=D IJ 82&& ATشI3 §ٲk2LnDo[3"4Uq V [V*gSa!T*J ``2S6hˆ1I#9,+N1"`P3D./.. *x6+6C]lE ȱk!@*~ bfv,U /,G@R,"/qAi@l ;aH.a`P=/SXܰNN-##Cvo"pg+j%ztelSf3%PM&U 3^K00 W MըNMJpT"*udM|8j= @8ia+G**+2"+7-$zwfq"i4"!a] @[|q6(hV!ZR"Stf%j uUR"u4@`B k6˞.`XH(R ${P8HYҟ6"RH-TL%bU@fN"f^&מFh2w1p.RH/ &p^fWiI*G/|9, Vw L'BI9HB1hXv ¥!|Uxx]C02-H_WC(z "nD7y**Bp\xe4e!⏋e/0I'%xB p'Ƶ(`o$Uy~#`%2h8Sz˛ٝyv\y%gȜ(O|ع ڠ*yMg(]Z+ڢ/3Z7;ڣ?CZGKڤO:OQڥ_GhBocB M%z.2-<,Iiu7h8* Q ȵx'A'"B 0= vN)hO!h03’rUMH&"ںMIb03 [d)f:x7( Z%t*'id ĔlmzRVS"pN u=#_@%ZB[_+ U"b)"NM;<;*-û *%k˱d%)m[%x;"@ʗ @g v35"JW$8H*zkM[*l%­ +:.* Im7}P+e;N+- %+"L@k L E(+ CUB'ⷝL.ոN[%74?{( *:.ȃc O%:4ۄm'|*wܥez] 2#d \^RWfD7 @\ ^2#lWAfST7U]lhCN cq8 > vGB;b|Bs:&  ! ,iDlȣa<60,4Ѐ=$*ƤTj@\h ĀQĠF|x]XP>vÍYUHBڸ@/ƘM 9V(`fB`bȖM[5$Bte^yA8@n@@Ig6B)0)`yO:4 90Lu.(A6 =0Nx45=i9tAr&B㊨)1P8)IOJI185>A4l¬" 5+B-zв-,GtkLODTYlne9 XeeoYC5¬ +qeL^yc@ dԶ%1AELȓe_sjS%c">6,+ =;۲; 2)'rқ|s62˸4tG5BuY9xr=4chrM-ya]a9` Z(e;3N/ 16h#9^g0jP7=VۀiG%\6NNafS&>f)'>mYmtx9y&MC럷 79|F⃩p吰y Da-@ $Y?II bED\>a,a d {G\& &}|0TMPzk^6C\Ea ̈HXJf!!.PZ l hj F0 ɺ$d2*Lv30Ha@B/Q7A2F2~&1b#̈?ڲښmaWL2T)#-h 붂ved6efʾFj.ԸdYnМc]FhM)Hz,&hgh@]9>TCѰOٮҨoݔӷ2hߔk鸑 MlG ͍f 6,GMNAā6.Ă%((.F{TX_ǾYNp 'Tlwpݨ'E)V ~51oXsEX)@iKrS!4ҔMTe tc]k)U|\ U"Q3xc%].&)I. u'v8P+D|]m_O556c7(=C5K;[;8*-F7rFV6ddFA,)MvPx!Bu?Pg~UA@ % Y <S@'2&@PEa0"Tkvɘ "*b6 :x1 Z 5*:Qf .1*%9%  Y8(AxQ#6UxqN<^9qB EzY"u>; 9*d qCOvيrx@P£рB9 q- ڒ`CA1! #Ҩ*W ҡ@+СҡF!)0sb"o, P0 : 'oE)!dBq';xEٰѫ瀓A$dr%&RV;3J%IârN@‰ Pf09h `yZ{ej FaU)g6"X*P%BHPC{cd@T@Fpvk?"Zz=c! C1-sz6Ћy:h-؄ҘH864e!X 1{)2IdN+f4J q'pckP v P%j'*e[;I[@ˬ򬑅Nu{bvہ{ZM#PJ y~oԡD,oQj&B bx `;J:O=oa*7ᐝ+ P #JRcK# !>$AZٲ:k 0\! U#rgeâ0j1kj^w)gl!}K v!Qg *- #=Rn'P*X#C"+-~3.){+ b G/;[w6c 7 l'(6*ʢ49h91JB?Ba3=59U9[j9 0| :b1 fQ<ʤ@,*+H ԡ z]"F&S=B*&ZLB!Ny¢኶LqNji#rC oML8v\Frd*Ȏ .kC0r%7stӨk02%OVQ'C?IY`䉝H`#֭,Z4iVMw ${JQ$Ll؆ Ys0 b]Ѡo!HJt_% p:N0?JЕ-$} pRu,Ps f- -XaDe5uy2i,%jv֫<3~ \{ WE7آ~j b\{mWnAg5#Ym?qqs PRә9Onjq(+bRGжCq `HMDK]WԆ:\ OJq&}8\5>P^#*gv~72ڽtDEbnz0yP:MjK&| L΁Y裂z>YS{z1j&FMa>wz nunH@}r8$0nx.H#L(#8fBUTU^ŚUV]~VXe͞EʖiݾWnUk% [\bɪ/Xy͝T6Jbs?Ydʕ-_ƜYfsF\ΥMjM̯ƱWk]i6I7Т7\pōGln k\t3vuݽ^x͟G^zݿ_|ǟ_~_j D0AdA#ˢrFrFr,K$--1DBI**$^ "v+h(*@!Hrȉ24r"%z(Úҩ*r8't (]yGɅ֙(:x,S!{7B 23Un>1/ +| 'kqC 4)]Vƙf; eh V 1*(*[qmJדѤX(,aGI 2H̲+nr\r wrBr)65 tq=@O<niFa0Ϧ|ɸyE14Q"] _p0Я xj #CQ*Zj̽*̪[i.piޖn٥竛<2[pRwt['cM-@gMBx *L>,?%m" 4!Rj󆹾(: Km(u D5ݐP%fk6%TUa-g(#1t9F3 @$ZqwT3*$igd brt&qsAGT¤ -j|J^6t w#`v:6. K`7 - D@|R@A&y,^7aC 76řgLțM`{K贝>pJ1ŘDZ+egdLa\%Is7@զMd%©h.CÇd'HtHL4d*uqlFW@axI`FJf㒙<&́Ij.aBN(|/FBۄfY[$G/$"iX# Ҫҁv`YpIniܰK&-°I2! O8:l Avt)CP"?|D|p+V?%a1C 6It4["ᘢbԅR5 1(-qc֒7Gf_p 2VG2cD)შZ$) ue+XW2 VٯzDB)Q/%  !'5zAk7iD&ID1"%R B`_i3[: ?NuYZ|Z[Y`ωWSyOsm ʵrP%(ږ \pKڒD ]G> l8|(ZplI/VTʔ@5Vw7^9M-H})}~*X쐪Ԉ QktrVy#F242o~ɛbI,’b %a?^E,MyV$A8Hblz,>`(\KbSd孀ٲ&@cVHW2EK>Ʋմqu{o9͹MAah\S*nU1ZN4u;J%~?Vf XZ̗)Fêd >GhFrl%"وQz3QTPp0* #e%DjhC ̰îڻ{p}*ʼ HCrs8Y݇d+k;\i 0y(e>HM/AhLA9#q(+m'-x-s1M\($yLA)tUh2cHG[&ŪZeVj *Se~tW^)#=[R=!cKu"ʦ0RsHhKUAaqYZocX+< K:+v|lկ+c-R pਲkB[eHaLf|0-S(Tbθ6l!smsǼ(rm\E;y=ib?ւ4@s|1\#oh7 hfv!fcTY-Z  n2?aLrCH*A*;ND# DCb`qАIq&Lr&]rP*v&n٠+lhcJ>AL9BڹL+D"|*9' :"y6 cG5@S4Iq?(N̆ p3 /P٣\ ,9 0b|Il;|+‡1㑱{%W" E)#&rs*)+$i:A as=y䫭 E[yCٹ-؉HR㳴7>I4F>K|DyF>dɕ|uyCɖZɞɟ ջh\rs !|@LjJʬʭI #Y 8ʧQ 0 @KXK˼˽tx YLTdtDŽȔɤʴtR DD@1j85MiUL+N,&P=J0I0ͯXN*̶}DXЎTN +nM O1Os"'|pO0NqhήωA;UN-"Y}uI*NC%B~CadgBEvv̜OD8US)IR;eb"4N^qZ~ {a } 7J@-Zdc> %f8h押AuN&WL8e2Dp;i/X[Pzmf+șp1<` %Dݡ;a`5b0R /Q"dV"b,mfZffn/d%̼8țqfBU[-R^<ؔ?Ey֐@Z[9c hjzhz8vh';.Hmּa)fiv4 b~fp٨O5u'4]BLl댍jkS2)6j(\  Q*p胠;g45oMk* ~m:!hmC~f2i%iQX}=Shͥ^ #6$I@y$nn/2oo}#k˝@*QEbj+QRhj`w`4X ii0}EMhn@O.%j /l|iEg~g\VȐl簾oSo+|aȆ(%mۦ.mƇ1'sGpJfȺx >xRj@d`ofigLsn=PAhH\.`rl#ўU&oDZFuT,/nr| 3sN]?Mc\*9kX1LC[8? @q0w @fo[b"p C"8e7udnSpTx=ܻ!/r6A\0(hrF.Y\'s>s^x( er ENїeO2h,%vs @NWCnxnL?b0@z|0ڦ|Eq8?z^m.|+lHu(h0Xضݹ.?*1a/s3{0'GWgwLJȗ̏` ˿|U!=0 I8ӟؗ|4ב IqP:`N|oNƇGz tMS NOaJYQ)pxW61~Yh  *T(r 1*rQq9im`n!Am8vEЁw8+|+NMG,,ݶ>vw\8tc'[m=`㦘9b( A/cQ8\ՁL֮_&/+g1g=DDTpEVi񑌭I9μ};޿Y5fhePÀZnr:[C 3{1#_Ct>U`P6 ThP(|& {q!_qı+>E&7lPgS]bO&c%6Ad>r׃5O:cX#&=eERd oCLW`Ӓ.j2ꪫ٥ :܄ʢlCjA[SXVy3{`à^ִͦX40RP ݒnScΥٔ`YU(Z)r4"Jfy(N>c95_4G:6&)\#~oMKȱbhQ(^ JBl06"\ho"f+W%h+:ʛ! G,5 .&Kȋ-i[8tAXt-'C1!|^WnQ)]FO4q' +G40#q^d76hD|Ds"Q|qT&'%dM@_lп B> rɤЁA@T2GvYVNY]z%n v7PVZBofӛ|vU<3޹FЉь8@ }08|u {>!_Hd0 N.KnkA,\<\G8mYr jWX"n3Ue֒n]Kh`mpz#!9JB8aQ h"a6-!18Jm"TdBۓ!|1a8hc"3sA‚U$B!܀>-yJ4# !2v :XpCIڍKbȁ-)3$܄zHCR5R>P^%&XlLELs 6,SS9W-va_l-ZL>!2g&YX<$s-J7q*oڒz@g'8D0!IeeC"ݎK=cܱ(@%đ-bhtŶ!fO7Ç06yCfLM;oR 9% Kp >exFVqyDru &G6+j<w݄Vusmc=Z:׵3h(%u3L&fGoXқʁ9]?\n=z߻]v X,{؞v!tC|;><+oy]㤠):Nӣ>_=[>=ko>={?Cv5en󥰑*@!ʟ>44N7iCBEP"Z+nnx>FA& F#_ʹ~&ŴI͜[|L (DqhFƩ_TtD䍇pAGHAFD `LD uNosV!1M=†fEFLуb(Ɣ UXA 78N3LFiCDZ|.C; L9NBfYC97H xAG` `8 nDuU+VRGC.aUDuP0mPaacaaq`@|t >lN@5DCIcFCicCp`@$YL܇W@9cq` :63#;VG̜d\l(2ё\EY%,(=?6޺VJj䝱@ECF9l>TaErZ{TH<)R8N@-D L$L,nSVbQ_q0dCp Hc,caD5WZR6Rė8{ ;#;h4<hB2e18d9["͝![@9 6l[:\͢@a~1`nAf:,CJ ݝH"#lFf"fD$ 3܁h lAM ')D+DOa%,A,GT٢QZ'!elC0HQ Č%aTNcOXUP\Yr7@̠J6PG ,jR2`(ƪWU LF\Rh*>\YV$*2HGhGXi"k9h& 8@AxClC+CIj߶D.ҷb-܎kodr`Jघ"xs~LPN k.Q5d[%lT,kAK;6z\,r 3D/54h;j>ͲlFAlG-2ю(E @®h@gr AA(k6$81@04CdAj2LA@)>T"+qNmHmb).!QnboijUvYd5{{lE6,Q*m1T Kȥ#(6 7,thEo`baj@$RC8¦jbV E\&n9 YA$oE!,Tnn6|m&ٽ$opƭ n)JgꭙkuoDOJPt+(c(_ެ$Ľ[D)ш(Λ[ ٸh/崙EgWP`D~ޡA]H,L1CJ6ЁA@CBZ%qBJ8\5䉭H/˱Z-Jj$dC!f6diHn n=TZΚ v{⣀0nGR2/VcF#SVb]G[ܠe%7k i<;%O1Cc@t8@d^4/<Ht{#kHgýI軾=vçf+a:q I`jzdrqظp @÷ܹM+'Nhü)\(XE0@AQ"Cb>CpJ e[157mrB?cZ*X&dz84wPdժ6_jeDqEa4|=%h3/fu8sڰRPb&:rƋN %\dʤQqOO/:"l': XŽkɯaǖ=vm۷=8Q6(pC 8.o؁{ ]:>QrWVwÃ.볩![:s Nǣvѱ.9GIG:s9P$ΑeID0iDHgCMTq>i@lFq?8ԐO=հ*Apa??nlIจ@#(K|J\ .*|M@lΗK)CjjXhY hrQTT-%bP LeRp +J$#TbŶ1*P &F,U[-G:T#KR<#%PXGhS O23ԇi0 5!VR"uT|=a3&]#5хVYtZF}QbՖPe!ӡg7۠X2mVlt|ݖ*,a}Q>لcFq;8_KNf*Ňno6s4駗o< b*mȿ낮n)H)ĎnΫ B Ip>f*+.o["ՃsY;ś1{h2B&Cd󔣼V  sL[1S$4D49KKu-@fMz%5{YT$OJru)J S{q>ĥg''D]H+" gdEjy%Z08%M$_3ҩE,.`W6.hJW6'q$P*_יX;+$fw\SW *S琘ϭlefh\U38N,6i3ŝ:F7!D&:iM(rKa7%: $l<"E+\) #H$ AURtd"ӡk>kݖ٥=kutǻsԉg^{%@xSI^D@XD5*- >g=i{6r͝t0a6ʷl|ּ6n^3d3B D,0)jU18=E"9m )=/5A!ėL'2t/ΔH{^x,(D3Cy! (q},Mq*LP &C3$ԘP8I3 bx#@ #cA6gQ èF$!6A)*6# GYzB3dyCy#hTigCqdZ]Ԡͨ9ͩ# 6N! "Yұ րbJWbO4W  dT;No9KV aêC<|PSjT=L!3LAa4c|2p잨n Nw0QsA\KV: :BpEc|zCWZ_=.E/NO ͭQHo`TEuoҋuOXtE1Eϳ%61l sBbX$Ft8&TTT \r4#<_6X O2{J֬q>7! |`k#ԍqxlX.q%@fnqdE8A,f/Y.QRhVh< L,aUe=}~z##msh>W?vcAb NE! W;RlHZ:!!!-5;mAՏ`aړ kRR\&o bSFa~$;/_N%i;{ÇJ{uF_"@D0@j_nP."2$"^O.(`":/%+LQ0U07Vaбm &BVG2XՒ hŴ)i ."XO 0 06HAFp =5lp2 =g  %F&& bʞH. ӏ0pO&C ðSƗ̋ 16?g&h -115q9=A1EqIMQ1UqY]a1eqQm`х}1qPKΡ fk/$0j$AQgI`?K xQQP6qP `6$A 86tt*m@rqzQ<ޑSmd6 H4r2L| RF1'*6\"x'qIo1=8LwH 6)K*4)6taƓT+@ +LA:\/BĒ,]oDz,Jj+72.&6Br@0ABQ2Xva2o2#2R3m/(N$2 2#5P A\e+gc X $z Ԁ@6NRڠ C@@7F>5oJ d:!#NRndbbc%0->%A,o97l \f!*z`RZN=# OZ. P,!l@18*z@)yScKNQp="܁A!A!ƓF_ kc5ddCt=&H+<$k6)k6raƊ .h iN*N;P9&d:Tkd#L-::4EBM*C"d=@1>@{z2&TB,M*`,@E`Z$#0tKC1N}vV $g_&Ugjz OxU9V499YYW`(wKXmW3N~@\$K!q_? RlOe^ =t5,U M6t?:@,`kLL6:bg sk&'B4k:d<Dna|WrEedj0a;_b5O@K$L@6,,ώ瘌k'DkE%,S#0TVb}>j3eh%$D"}.?TzK!{dmGVK(m_׀`o#Hm:l4{cu>A'$hq"2$@&TGczׄQ8K7`U h 8ukA"crrda@H84z'CyYy z(zRz{7W5ÚY Y#SVVc₰VWTtY3A)mmXCLnm!`]e#Jt ryA3! boi Ssm2!Z2 نKrxq9ׇ78\%GhC85Kif*qϪBI9I464s5OhV21S7,>FiU0>59m!B2j%෼(2'}*DFX᷊cUqHـmbYYosY*sC|:;p r,DTBoMr+ת3sA8:6j*Zx¬88a5Ɛa/wڌlPF®f iSFd4m  #ERb{7Sm:UX,ӗS=9!A58Tk7vTV ᫜B,9nQRtQ{m-> Nz B[\z:!ralȸ kBڻƻ58*'}gcCNsrNA D;:῿.6T%C *BH{zs!!X}o!ڣ/?AԐ1.omjW!0#T;&`9"R pCtD5J,ZSÉKa{YJ =& r=.goG}tЦ(\缹A!=%ݱ"N8>$@3gCn#0.}oHyQ=U}Փh7,h>5e18ha%y}؉؍}2JIke;3m?_ЇQڱ=۵}۹۽=}ɽ=}ٽ=}=}>~ >~!>%~)-1>5~9=A>E~IMQ>U~Y]a>e~imq>u~y}>~艾>~陾>~ꩾ>~빾>~ɾ>~پ>~>~+ uSf ?jMlDaRfHʠA0# i#'<$;A4pad?pÍP?F!Gv`7d`x/  B ƊNb@ƀ:?zŨ$^V?J(! R4F!>2kzD$B ;7 u{N A DxRq؁CPC C٭>nuc'tY[Y3ifN<2NQnR6pFc5*>Xj5JC9.ۮڸ-lq˖C5KpܾKk On^M`:bRՐ;s*:ntDZ+[s.-4n鲙^ЄkְQMiٶsͻ Nȓ<ʣKN9s-R4ڬEe0qn{ڣo|si{zA16A"1b_:xġbقSH֐;s98^}eT= B'ҢXp5>nEF?N[l8P+DXjZlѤPcchFX,i@cdHSsτza3P#Fp9RIy$N晊dB&h>%sS睇s#ӄ.B瘈*Eh}bX։c)j*Zݬj뭸뮵=hb*IJv.rY6iԬ$]#gFG!e`cP q!VVTCC8W?FщH[@cA>}Apq3Pvpaŕ`%C؅ȘHS<Ři"0li3&X )M\6HɖAM K I[4>\u\4ٸd8`5f v_kx|#]ujbǎF39ն{ # }Njg6 *knIR9U=Qb-t<7#JAV E$$;󊑦Jg%B92>Z\̏=cG XeA;7L '; VG%PyAi) -f`cloR9cl, Wpp@"0$9vkqd!BC|\+[HGG؁G-AsnCQ.<]"w|^\F NfFAk"bLU F-N8⒕NiA` ).NЍjM$#4AZSK)Vi*@*U`c1.ft<b 5onzEpp;L>΃HV8Nrt|ޢ0=<&(U<x-]EpT!Ɓ/r> 6 2"IFł4%ɔJ j8C6~$)BBPofTSV#SlRj sjlRcЬHz$jT$řXDHs1m=\J׺*[|^o5w?3R=|C#ԨKa@-kA 45;0+Vؠ q#n+}TcHo(x@.*Hd!d[Ac@ʤMb P@ඤ׀P&@xƁH|p!/>NЦ'&EH~ 7sJ [K 6OgZV~ȃ$T o+g^E#p<- ,*H$2dC~c/,EɿPöMCl!8Ebqr{/da>tq _JN $keaWqAxAT&-+qrx]IJb Amiذ*M 8 WKu-%f7jpdz H/U(WT T֭~9jDm1H#[QY" wS 7BV􅾘 HH9gL:|daܝo];ox89k):g'`թ ]2HRz-3d 1 >΁ G(:tX}j{UY:ڵfp'fpO^r6JEκ rZ` g[P۶0;| "?w{EڅVz7yu}Q^H^8[%OgG:Oş50B}Ͼ?!7,3 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c2Mxɳϟ@ JѣH*]ʴ4ظI%wӫXjʵׯ`ÊKlQ۷pʝKݻxŀ/g޿ LÈ 9V#KL˘3^܍CMӨS<\γc˞M۸QM{ NqÝ?>μУKWyӳkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\vޱa 9G78l$ 99:y8 S #8S`M9'>$N4 A٘#bΚ`VJ.}mcM_М98.߀7SSdgꉏ8$Y# o~QɉzkӀx #*5Ps AWg9A7$G6mNs >l0jBo|XI9*P [U(+>Fj8ƫ1`bcSN,c9f0Ë)PāM=VUrn,]r9! Y7⌑0>' S ǟ{B עc:YCWpl7`0 v+Y d fZ't9nGVr6Kw b Zw;  Yc (#/Ğ\.VZl9~g8P7̇ )3>v=sm#y{Z87M7Q9I'_<@F3L/ڦv HL:'Hy>08 rP EA~!UXB0 $\H6D kCP?ܡ 2 o E%* hA@8LWP zQK+ èфhϸ2ьn C9x#hD>*яN%QȌXc@8DtAHEtcوØ!|*Q%dD7d <15f0<䄏HP0`k[ƴ˜ daۨnfpf87q蜣tщM$A&1 A\@E}^M$4L G'1 2]I* (>.)\T|"n j(i4xƣЋwfJu c{Z4g~3ti6pLlL#M39I;ܣ;>$"~Ցd*`LФAP*NdDO)Q&}_%a(M #P,Kwě d5&>J#: I47"CRڧֵQUmVibZ-ms[[&zշ*X "ElE IBGu4y'ۍ{D ֎tx )y9ʡÊTU֠]w:X`V:k7<6*/ B68Pu%,[ O歆w۾S WY(CCw ?PEH,b?x$KjR+d!ȽNϑ 5jɩQZ><Uɑ SI6i ̰p\a6_x;+CG=#PO! ,>kyRYLP{#, [f7>:_w0>lќm<3&1Ay]HkEk#F mOxq9As 30Qn1r(O{Gg\ kTˈ7 sB?2$Vu7\_0#N(W`-@ن@cX(ȿЀk6h HL*7NDmPNw8&"MP27qwp|Zt6 jzg{ڋ};nG"Fv=l_DNHݗ);( o (N^Yۉ&YS)Qz0@^dM=0lT^{ud{`Wcgg·l$VH_48 { xAt`|q؂_t0ǁpq"؁{dGEm EAbhqDHA2 wIH8NLM8RTxZ[h`U(\H)gFlj(m8vq/Oŀ(8EXxq؈X!؉8XH9Sx1=7X4'xKswS )dQ&QT>dS$ =0+"u5sJX>XuӈvY%,_):Q=!RFr? >ࠍ#1X^CW< 3c8ш!huYmz7") A8T ڢ b捸1xiyiHH'ĉ蠈iP@60)c$9{k A)u#Lؔ9hHɈdtY?#poiQ:Bj頌C A62#s3&b7XGbᑅy#Ht.qR?y[7B6priuysќyHi8jP s>b =LyA` A˹K{d6֙Ɏ Ivc #^Y6@ِ)1Xe‘1)@XpxW93J :t1݀+b;V'9Yγ7J-Q-1wY&i1<3 :IY<'&5(ـ <**1Zxڨs :ښz:Zک:$?F&@~!fYQL60-铩LW፱%p;w QzP-z2p azȸ NJڬt5yos/\=8suO()۹;[{ۺ;[{ۻ;[{țʻۼ;[{؛ڻ۽;[{蛾껾۾;[{ۿ<\| <\| "<$\&|(*,X1}P3c&( {Í qs" F0Z 1Ӳ&G (T?,z\ I Zy;L}en}10p$yi{ 7xƄx00"=j / \(q'Z 7q9+kTɖ|,xr01#/0ʨ\.ʪ.üdm|Тn˶\˪0brZyGghȜ:J/L$C|<\AZ HL_<&>2mLJFLS*5 IѶSSu蜒и\I(W)U&\1;p4˃29]2E @_3L|X!A ”mjԨt Q̸ӡ7)4q wf0`8]1Yo.PՎs2 @9AH jP Ր0.9P a Qz0YlL95R Pn 9c2ܰ lڵk5'`Ke } b =]}؝ڽ2".1"5LH%&" kZ&](Cz4\#qt] ~\ ƪ=#P" 2,L '&>>ɔ&n,,NF6 9m02n4^7-ANȪ<-`+-Iی*Ъ%q8'0RF\x%'@<&& -oz|~>^~>@Yp`bUb@[A鏎.D^DP].TNONQ<n~]<^ >鼁 c@\Ӟ.#>.q팊\ ώ_ ~.~L ?ϩ~^>>~^La5OP-ߨezA~GqPL>jAb07O[n^ OVnpr?t_vx-L2lٓ}#p єbѧ22S/12(A$;{B =}1-@,,+ sz1{'&?ᮿʯ` 8 L?}oϿz ۰ LTl3T2  Vgho^4g|ؙU_ "lϡUouH\f 휮sSB3TC hʰT 7$ ܛo g?y'FUm!ʡsu꫷zT;{|/B[`w}Gf~dG8~v/Pw@&P d`@FP`-xA fP`=AP#$a MxBP+da ]BP3a mxCP;a}C QC$bxD$&QKdbD(FQSbxE,fQ[bE0Qc$cxF4QkdcF8QscxGAФs\e+pЦkK1yG[֥#iHD2Kdfkc2't]AulgEq8DmC86LVƶzJ=hՔ Ô}*[W%nq{\&Wens\Fי B_IK+- nyߧGDLs2pk^/xjT g," o[hHH~{u5kh_!XŸsbUaLXs0{7vF&F[1m].Y(bX;q}c YC&r|d$'YKfrd(GYSr|e,gY[re0Yc&s|f4Ykf\f8BkE,d/栁bI{BAYtc8c9Gy1ę| 5rCq a.zy!iʂeZҋI4&qI\: ipZqu=X{ F<msb#p48qEKtraYF_Ƈu$_(49>!Nckn>HQEAcy<˳wU/$k$.A?Ԍ=gy_HΈqRcя6B X\|aRgֽ dLe qtc҈=B@]a h08xJ}W|m 5L= I?J @@,@<@da(r|>詑 Ŀ@ki# gA-Zr;xa 6` [P-KaV4((p@h*[p0)6@3(i`y>Ȍ0 YtK 8T pX+`IypxpJ)eA:fh ,:gpvjD4V0O4M0MER i1  d3>y1ұ4 EHU<za<lVWYćctgx lkx^1v!,JFdA8tAX;xA{<4Qlnx b0+#"TBs(<))B}.ghCrȆ(3 AHhÓ 9搅c1I|JăXDpGĊHLċĭ)R4ŧ+>hELm@Wh)Fii,JdYd``ML bTc@HFd.EkˏFxGdi^Яb(\lLT ;hk`@wG>/ЗT-33@dlBۼaHspc}F¨lj[PIbΘdd0 @ MYy<yh`@(DG؄Kw;?σĆPAt\M,m8LG|XjD4t?jCٔihXLFCp0E| F }18q2K $Lp}a)ш#=E +೏Ex+u2=JV)-G`HMQ+A҂8Q!K~+aK ǥZ@q@d=L\Ȱ= M ͱܴ44`*yM0լMMQ͍`,ejĺ9zI9\TlN0NsЖPДjl?qx7dhV_r 1`V|OʔPqʬLT9gW|scUDyP$|m6ǐ69)~KLҹ<*pPV3<ՋPjihQE͈/S؈Œ-]7-E !e-Y@Xȸ$QX0hg8TטqڞM+Y>YgJ<a4Lv>mE@GLyT[Cu6 qY:LMtl+^O;5wp8[UpՄJ?էp\phpSzUVe=PTiwPUj@ &Ȅt4UxU0EU8PbttkލD|e yW؄uRRzb[  l9 ܊hJJT=TTp0\ Άii%a݈@:|HS̎ka{`)[q -#Fqg0>j}KFX[/ۖ1Y`čB`1tXD؈`]U)f < ӅI dg @l(a)FVA>uaiiքܔ0aP|PgTn\> PyŇg*M+Ћ Qb0>dM-FTxu^S@䆐YyVѱt\y` NXFy:aKuV``P' _6QV (vF}biuN,_|xg怿h i!(X>{I+}fj^5MW/^VAXMw ݅A6؎=Xɐ ?K5PB * BA+v`j oVo+9k R S npHr N$&藭a,}?[hK?UG Q.5.}UHb!]&[`h6a`Vsq܃pmh^~H)}Q9cnuڼT3jhMrpRq%rlrS}]8 k(H+?Y5Nl䗴N.fV@}- v+d@VNeDYΆkU$tt|ht7a }OmcD_gfŚ}_Xqn&嬮R"=V/fl]~]rb8}^}j} sPgkYcΎVw.gi/$g͎r'`K,08[0>alu[8ϳcv)N5-P-Xpp-QՕaȿ=14+@,s `>*RL)X x`+jFd星\ gmXqfa0&ewkhl|؆rHjm$OJLJC7Wq%Pu M_?MHQiauvYjhEH$lHfXOx MÇoH?Lj ,U`a#Ev}:g /m L׈)Ibpw5)@Q]:dqr>|pLZ)0^vE@mnxF-Nx5ZF3\@rV񕒿,G1btc„ gY#4'Rh"ƌ7r:x΁#J&KV7D&n&͔BM;pec̚s(V+šY֤%ʑ6ƛرvi۴p-#L0de'Fo9q^U !_[VVRB}\[|/37ܹ\Ҿn}*Р ۵+*+|+†N],ϩ. B$ܵ7/;'^RpPi6;iyY~v;tLj'PK'+UQ![5qwle3MTZ)wy!!8"%x")"-"1nTW9Hbܸ#=^n> 9d, I*$M:$QJ9y%]4y9f݀M7&m&q9'Bec[ҹ'3| ii8(*(:(J:)Zz)j)z):*zꎭ\͡*:+z Tp~Fi|) ۡq+dQ*:-f%f/dy+N.8Π`jYfQ/ NthXmeLLM7.G14>e^Bf9j2E\O۪ g;:rl-Q!Up_8WsR9Yg?զĖk2FcO, /M7HF6P5sB9Sd: 2;7SM 9l&;w^D;z-O3:3AL 2|$d O*7&#15,E|e$!1g7W!4R i^!W d6<+ G}>!!J. ]&a%@\9w9v@.tHgS ͱ̢h8621!5[@΀g$ YX#'JI*"s"8$"Ep^Q#EE^-nQBLct"7̈́IVXD I Kis&41W`,5k(1PDS+0RA^c8Itf6Aa| WN )D@r}B=!BΈ5,rTr"i$zqx SР4 k@C-l05nޑҙջ @Y8D|N*N$:1GR[" ’\4A2YP 53 t"-(%hzU"| QYbH@p첗#5& r4&RZdB`8HE*x^H,,c<Ѐ-“U!EB)q"*|¸Z]`I%B(DU[}D-'Ed4)D^$9!3 FRдRD@}@tVF7_#8X:R{S\W!j8( #MNxILZ6Ia1 mbKy2>+BK|eJ)m,Θ=N3*Q x…VLN 2Apеp#;;=2!rBT {#ZT(D0#=nWx"٪*)'adiB?HY t58 F`ʻt ypwP6\.O:0%P 'yGF[`r qAZkFֹ Ǐ)ʋ* D- !~Ϩ0&1e4s1sTΆ!6dAhmT^{(,=%l}FtYnNb CĞ6ғ#JSrHEY Di\Ʊ9GZ'e7iFtBS5ՂP s1e)ax#DbFeu;T1АJv8a*E]$U)"4# X_ފ5osyhEz@ar$H|pڛ8 =0CGAOBAKPCNuQoc&FQ a\D/X~AHxȂ%ʱG D d@A/0q \5س9II!e]qx[)hBDHUI`S(A[E 1hMY`%1 5@*+쉙5f|^_!Whqm))B3EU2ĒfeՙBDB\,=0,Nic!0]vȷweĸ80GԅAP[B(((b"i!`BBt6zl 0tD-uO6HV߁+/Z/JYC5PAB`CQ0-*^ 6c7FUN}\OIe%Y6܇+&"ÉQ+!8O6heuF< & 2mǙjpHU1F *Bn-7L÷_5W<=MJY#"$On"b`ϩ"Tb`PzqDw}KGHBDU("LA(8TJͽ}}S6QlTO3 MύLLeo ھ S] !LPazl1a+pEWBr>|XH, vF*e1 k؃3DB/9Dd1%?8-_ Fm8NC!SI#~ +&Ma|j!@E_S4@vn'wvw.zkehm G|'{{'|3ޟP̧اyVXnƧ'W0 (&.(6>(FN(V^(fn(v~(DLא4TH20yGb*"ި܁U0)$Ѐ"0L DD)BAC&}N)BȚt4XI DQ l"I : >XAPLi&̕ ,0u9GF/"Da(EI9 8m&pMNSEjDjȉ)D*DY6J*3ͦz\*2j ݻ*P+^x"D$0<)&̪Fdm+C EDL9Di `~DE[*e8XA쫙X8'QEDlE&pSlC4@E, ʉ41UYI,ũqH' ҒLDeDҮҬf|]ng,h@E"脎M"؁h9APB3m0LbBQV-$ě ,N 2[T+ڊN` u؂VI,27AEK -BuZa3&S,30SgRh"V$hNMBXS9\+D+n;RMH7!jf2nBlvBnJBGj:GroOo_L`/E]s RBo^3/cTn&$ؓ4XEPmfU"0d-BT>bO ڱ(m4TTR!G*X>$lR)F>&+ .ncTQꄢVVZngN \DZV OS9H1- 0 XqޔEqQ!.nd`oi6>JnFR$w&n5׀PjjuRlO0,M6#1܆`e\ǜ6p8LHxt_RO)EXB2 p!'V:YD V()rK$Vnog$%T5Pp(G.BY鰢])O끉 WY(ws`L;C,=h,4,;{DDA\.߄ QaEldƽ!rngQ`8FQ4P68KZ+JVDhZ&xI&՞yfXC't.ry"wSTfur-eR +V5!E5*uuFNR%,$6?IBOfZO2D텭9-'JR[6ij<@ 9FPDRDL*, P84p#P)9Q%uBX48.X,$I M5 KDɍʱ(IfBz^0Kw΁3%,ZY7P uf P/@*BsGM`T6rf6/j~u؄Q/zPՉ1upuM(ܭf88 2]W^_DRD;]'DbxjE_@  )3B`AOC84 kW4dEۂ7pӉdWsWs+f{81WhnDy9réyDy7t&+xBxBS7ntطT wŒ(r؞B,(zj5do:QYLUS ]gV_u5x>8 )D!KLE!a6XrX;7XC5XOmץTcMTBhA6KyJwDO- w Üz}Up1 5A"x4՝d^8C3LF&q #+3E0QFyKa183n༦gu(TuГ"/(XxV[s-*׈QfODj/R3r;Ojh| ų& 778Lp].JP>Pc^K8=S::{fD;o3c4#;8|u47 *ķ+[h9;Xy0^$_)7w5abk`ugU0;qlu-nshp(WkAĺdSA\7\13p9 4|i0"'iB|aF'\3ZYEZ$\zЉM6' GZp@"5|HBf$qN6{u8J)št$Dur,&Jx*4u㒻vjħxNJ=gj3g$*DJ-L5ݔN=PERMK?oGMaN?S9';\uݕ^}`buY4Sk2EYfrVZGd:npr=]LE%t 3eݝz|ݗ~ >^~%Eƛj+ޘ=y==l %2)]QԘT>/Da7-090ZDDqdB⫚yzDND" Iot^ܬd zl9pHxΑnJmPDk|gG |p.#ty,q,֫i-q0ZԨBB  uvpW\G4ڪ-]BjP'-Mt=8đ5c9zR9őW4hq [D:+;p,MGiR9Q@(7u /βuY,~A:mRޖ"w7p0"PRDwmFd \H^uqe^8\|Fα pG:.EvWhE%( JXK'򻯤ODac7奂yB"= Į\AcH\~h5+I+>;h 1YD?x^3ʐ1 `Hȃ?KڰRt&< 7Fzջd|@?@#rAYTc#K 9WD`e 0`n^耆6FqW ]j'Q!4w5D b Ƨ`4J'X'`?c z2yds6º]7$E=Qޔ4w=YVPvRdwѰ6dpaUGN3/)Q:0ƀ1w?/ͪϭb*L?\I&=%f Z?_0.Rd@lidT4oQ.E'X۠6 6"tfCI6 I&d*ϸ9W&g1N0Ѵ;.bXɲBNP dP>sXBIT(v6+oAKl׸FHXƬv ,gk0!#H Y9cԐ5!fv0K+>p W࢏ _)e.%F쐨"$(7.rL E@(cm,&B+fV)a4"X'X>x7#@%WǢo9X_D 2{hI/X3`Mr!ۊP C; B$[ 'r#8W7Ҳm4m,ҠeE4}|J( o\< F6.w,庬n>' c:!d!Co\ (lxO:mfm{ 4(,~[)b7>*뙽I)/8aL4mğ8{SSKHؙKc\E!5͗R&q \0 6и!L}yH!`)@`&<,E?~'f`kcGv`6+hG +XD&wl OPpmAvK$zK8p&pF`٤ZťJiMm`/G OmBc~Pt XlI~/mCf6DBi&-FFF@ BO h#xABЏr!Om,/$KB+.A` s(p"mA C?!,͝0E @0) | `T"JAyX~Xhb0 i|9[jD:10l0F2E /fdO 0EBl;gY &&SdfR0rpR'-$f0%hDbܺBDAA2c绊{_)6$ ^llaEhl;fRAUۼ0=AY0naDĖ<|o[!1"0A& 20K( $# 89B|C:M! J95}#!&%\ R^ubo"0bAj<73<'(9:<'Zњ8L%֒%~%֎:s7x__خXmxb-y$)\]xG [ {z#=WߚYՀ b1di9D[caKٔ_!ntT.̜)9, +bLEBjJ΂#B?J':Aʹbx,*.%X2%W!$ƽhA($}w>QG \*,AiPDC{zA'6 B$D3KG20DB{ 僺\b d nKG⿨':Mt+nZ苐%6ABzͧ_EE [z˷`{`SuHMB̼!P!`+~l_wxiYY:Ϲx)NA,:]aa'y};A1,.]ЕUo'o6l/.BW=ݏd]vҁΡbo%Æ+ς+Q+Θ?ay|*ρ#LjG-ړ#vSll<[1ObEwSfP6! L~7<"[|M:vcIr;Zٱ n Fe`cc ߁{.8p-;貍-#nlw.QbLiW֭ldشψ CZ?i ͍,nUDbwnJE2Ɠes4ZNxߦN'BNBUaNHa/唓ld7̆0bas6s>9n 3 >Q7Xc#-de$ ҁFV /n]r /8OD3 a閉ff4X5ペ n}I9=4~*t\cK MFP&4i* nlf7刳 f1L)b)%)AO5ڗF)%R`MO'( =iyFz.4^|Us_~_y5e;vj c hd!lH 䈏`ٱ 3F` 6߀͓|$>F [M0W۲KE(X4 Ts%M{I5F@49 \ DqpڑJ*9ch=bl;I 1jD#+gC+ +&Ll#I5 YGP%ZS #&GKDx] +*?k+`)dcfaF`敽4+ͿRA06&9"bC4&G)M"41lhRTMQ! d5lje4Ao̒f8ofg zN3E3xP%}B@RqdCUٸħ@>c~ALji0bFL6ЄeH48R He nc$6ƙ f|CV2¤(i\[u[PlH(E+楤nՃu9ªxIb )E0Pj3'6[O1Ut[M7 l&բllՈcؘLtmNy#8}sH Yg?/ bl;3n$IDhs%1lD ޱRϝ|S<وK;'~ , |s ,]!MQz_&ܙ}][Ҏm+@j-P]nN-Ռv4> c|cI)L 13Bj}{#hG5Yz3R<5xPQ3E{gt ILZd򟮁mwsJT͐K|/I*Gw&qvDM6a e'jsל6e0֒DCj|笼.oD/я+}L7ag:ז9%"Lac)+`˹ knj0i46Rj?gj ~/t6y|#$ųNw 291.Ч/Oԫ~o_%o~ /+o `HBү>z!:k}< ;#!B1v f]*ºuoۏFٱ0Oe;q_!CybW 4Q}jP!d99j@.b)x@$ XQm;` qb}b:ח}'M3O>0` ˆ `]҃}r)a*ǀ=cRg~ƓiF nU!@G  E1@1w WK7/2@y!c`;y`bٱ :P1 e(9hlN2QCOLqMM L}`M$MܴMNQJA8!w'VqNcHMZPv !Z{姅c<^!~bh7d~s VOh/W!!xw.^t@p|X1xͰS7aA:=$P=0w@br#(0T=6xH!{6! w8t`$ 1`BX aA`V!45 v`` LH! P):-IZ^Xdd )!V4H#XE(~f)h Me"e"_&f&rBvexivV>c4l q ĐD`M\NMl4oce VO! M'ye8Ud$ǰ_JaYЀZ4}S  ){)tgsO Bh) So Yj7ӘAIE FRu #S@v*0f D4.yv.IY-(wP1B1ZI nIŇf}8>y4a q`O$>``&Ґى{0bO2!9ΚOP! {`kx/c`2IqIv@ l!jPA2%M2@nP :`04^t%b eb j{x8XSEE!k_ K =3C&)B] +:Cji3{ܳ$DxʧvZeODs1vwsU;D̩ EIYe{1Xx0[8Te{Y!.Ey`0 a}}yk4!ƚ#}'X  *$ʙj1F&A1qanuPUrwˋPVy2JaL:vhHMʹK*Dj0*RǀKol@b(̰'′)y0*,*b*SB3t [IDuO fa5@!kA.YAXQ1T/16f ExᛅV+sas1_2a 3j/ |z Z@Z0}#""R=` MIxPW}"}|9~3 1 *b)(Xn8ny@TۭS &&~,TT U 4Qˋ1IŬTcX$PzN׼fE7һ)k VР1l&lif@ )+0*0 k:.B.Awl 0L`pʿ4.7g!`0 ,A|%\IMC8YjU*͑ 4ͻa')<+ckF0 ϸ\ |@ ZsK1"}{P ~m@qD!҇ 0 Z"/\m$ӭq@~j0r hzkj_ In bxE,cRԫ ɯB@ "3݅!]me@a *)eͲcV!ᤇeAĠ1WҊuQ!B+Dך PY[4aWq.͑*Ղs£ڮBJy,J;t`dN{TqOmC: "Mv+}tNܰ!,H$D0Hx ÿ2 VJV$ @"Up"9 UuōSB]xOUA ۰įg1m&T X]~G!I#²=j)K9Ja*jYu2&a>,;[\hBC|EPr'T1$֌.MTղٍ ڞ]wEel£QjE] -sz!4!e;m Sjh(F9Q!zjk4% @}Myl lG#hßNMY/R {=Nh^;lM\OWCəۓ;aw zɗ{JDR4 Kp ^F4bi + ՠs!u]w}X㳞 6ٱ<)UZ]~VhثNyeY:OuC:!|h#-mIm~B0Aʭ7& 1PF* ytWE~PD| aXFB2$+b5 H8 @x(dq8LF2|І1SY\~}aO ~?mBŊi+mU2J(s# H4D @c]I N&0CDv1%mnBVD9{EQBn i84Ft$QRP1̤*;X >q눩BWn7dU*d8*S<[9SK#Çpz-xq3nTړ,q<3 x H6?~wFs`J@?RHV(/ %jTRt-$V H{01$PBr!GCaAdNy;ć^H ZF&mp%zۍ6cJNNR82__urt[#U. ܦh3..7eWfͦ_HHLCŹ=ёAnyG*W>fl芀^fѝ%5Q Hoҕ.G0MjӬ%HRPeka%En_Ld.1SxuG W$y7M.r󧞡`E/]_[ȘEO‹t?fF}R 0y^b}o PdP5x u)˃(񉇙0QZ<ڃ9 ;éy?Сpk99ATH# a>YJgx>s)*!sp2,j&Ⱥh2 ,Yyia$);A3"Aa P;3|pAC)-N(<84ς<-JLqN! R=|:Tp`={=ߑ=(.kk 됦n]!>`6oq2|*t@8y*i|zE1Ex_E\H!.Pd?e?~ Y) <ȱoP=>*![q(Z81-r  1A@{{@!K̓[42!r@Q LDŒr6VDtz![ `4? i\Țlȅ`d,{FӼƏ@^ij`9Q  pqȚ`@v< ~)) I'y)x $%8̪( !HԘc`8)iDꚱ"<O"dt&̈)|wHܓd |NxB̠8dʦ\C>Wʤ@G %GCHC9>$VC@;KlDz5Q#ڂKիK[޳XķLRLq2S-.&/1=YB1A!5eӚh6lJ8:;e!%.5B-TAEeFuGITI=KmSENOPQ%R5SETUUeVuWXYZ[6m\^_`10SBq+B KTEnc]|o3r qh+s)סH6 [v1ϱ@xx 5|0؁@،PxG؃60KuX7? up''y q{ ) آ$A"g#H[c9VH֙39 (픉Kfuk.|֘V4ٵer+q0o!9%4Ws=Y07{M11xLyBH0@Y-mǍ\>5GЃ]%l Y&ѹ(| ؅ |.%ݠH=QS5c83'=S;qVXU 뮏^nJ%tlMq@x6̘Ⱦ͈YghpB)I•A|8Q -`~aȥ;ȍ\(,#PuB5ZAfŏ@18a|4JYHSߟ(^U^m8QpްM/0VkamnMVb|؆G>fVnn}6fDA-:q `_T r0 @R{;=~~)rN ,-p`-`?* ̭G7Sc|V'y90,@ ŭ^x.e#]}#ޟf:chAH_xYMblnbYYnٰ Y$oXJK47gԜ1KXwq?^WAnE.|s DVdQlƊ~S^nM 55Y|27:neY.Y'Y) z)!).g 9yi# deVތ/ `.; $n؆Lbpmhjp$&kMhnȅ}V|Xkkv|g3}Nʛr͆dV4W8-V> VX@h1a1= 淈dp/M"͈l kбsUe|1n*H"RnhmΠjvg~+"o|pEk޲j`nykg%.Fg&nykEq@^n}vKJ<ɦp_W,\rM'@ۘ.n>|((^䠠nˆmŊaQ8^0a|D)aN$(">͈0 *OrHoploqLqs,lXq~l9?3NeI$ϔW Wt[$Xߺ%3(UUkA?!YP9^'IA^ tyH@ U ~)[W].vˏaˆ$XN7"nb$~~Vm7'wh*@ k=srwW ˲~6~JJCD_MhM0Wp йMχ P? 0H/6vNtnƛ$J` ււ ]e?.qQV mz|ś0H.Y0H^d]?i- {g4?nlg..grbH2c|C&it[lPϻȊpNcU]s=_|0uc$'9YW 50 Pjg0y#٠pP~ W]q"،lԘlh/אf2pƤa(Y)$(ZGO0o)ⱊp'b@b('0ۥe×ɛ@q0&Z9q1lɦM^*mr ć!>Uɓ,o/eK@~2MŇ(қNB*u*ժVbͪu+׮^ +v,ٲfϢMv-۶n+w.ݺv͋&w0†#Nx1ƎC,y2m!VI `˞?-z4ҦONzc=-{6ڶoέ{7޾.|8Ə#O|9ΟC.}:֯cϮ};؛4yDx^u;gjj`ȥ |g5u_WzVo'xU7v8%4UpM$.߬;DSA7SbT. Zp',9L9h‹iŰ`;U֐ޥ5'jUcX"8S" ZĤY%^ DX[{Aޓ&uuZ'Y9*T*Ζ/!UsN6hz8NR]%/jZm7#.pSkĤh98$V#tÎ8ژ T3;V> RA6f LekH5jf-ve20]8azEXHQi]5&u **ߡY;qYy) TtH8Ѩ z\$lDKO`0|  Ӈ>tSΨN}$+He ŧXіއ1sEѳ* rP{B5=jRE-m,^Y|–_d Ж*ƇIXb\ŗ鯂-FKd}g"NncP|= `AP_FB]ٍQ(#f"(mӜD9vN75 E,IFJ^Rmhe(HIZaA$%ļDeK+oUu>Jg3'3Sɳj};J4by _|:sܤPL7-#*x_4F %0J(ЋWg:[ZNFfVBQEw8 ew)§V kWRXr2.@5)Rֆlb~<sĕpsBICJ) Us̳^X"(KPR2`K˦L>D[ j#Zd)o11-+Qfl.QWC-f8 zHO75oN%ded?MUmX>)2ȼVc.0N3t>r VZ׾ACW(l|L>;*@)7`mj4b:J" j&rmc Qwx˥ )NV9' ^ n70 #KNdcG@'p 211ce#%oaJƻe1 ZQr[[5 `-z9k6#l@60*_ c<G?KO͋j~i+9L`gߺY(n&6*fTnKƊ5jōo4#U<8`VXC_-QKPUK"y t;H/߳l!b 5m*IE,M Ut"Ux$JPN "Z NMU| \]jI!e8Sh\;x 6J$1|\--+OXӿH_ݍY|PWUumN"]ٖTC7<1 ~R˳2]Z MS5K9I7S8<8‚g%5B!b=& >^+ WkŖ%Ra[U C1#$0j88C3ZZ#5M!:PM$htK!>aNɑx [8TdP >$ڲ [&^.t34Ux%>LH_VU)X`P~3ΌUQSp\?\9HLf|4D&9;J̹ei202iH9 C*|:lh Z`feeF,t3H!NSxdnv:3]nJAb&r S$d"gEZz$ P'rgr+|zeMZ}g~N'mfsdYƤD璬~2h:胪eF߆k'sXCEWt 8L|bQL,VT,BlY|TTBrEǾZVLd*0ˢW,^ >ެK K0 oB.p6\)&؎l–3ɟ*dqjVS(qK)UTDñĎB(Bf> B! 2"!;2! $St"L64\llXԮ&خUj'ǪhBFC/tN+& aŁ*erP1 T8 +HJ"9=RԠx/>81\`3Q).iX舘/HA:JEzH/a AsMFrH[->Xm3t} 8c-asN Aј FIx0~ϡVbIJ;7t ".1qC&#L'{@0|I ';&2NqGtEDßpBs)jc1_Eu>l6JZ3.q5\qvn>2!/2"!^2$O26%K]WKlS|[trfn)ӬV,Or.>4o}KXeEh3ج9b:Ζ4NElB=1Kk|TG}ƍ!s?˱ZU,"A̔hS_@@AUD4QM2sIxG}D iGD%ȂB3>P4186 B΢4)40ƒGWxBp2_L2)\,* jU' , |EXuR8,XWS@l:(BN$#j`u_k.T`##SŘ2b/6K!'MXpE.WX f{gC/`hiJzK9o0K KڞXQ3WmQ%QDՠQ-h89? \=3BYs}8Ws,@)|wUMSV3>왇PY\҉k+TfD_ܖNCDDE4A[jHi6X+)L.g3 [8";+`_x3h;nSFґ0\_uou_t5; 459[+[;?y(@cߔvy!s_ﵘfǚ9y%p4\*ť+ CŇi'ؔ&SȮkE*/WObX:g:|$xn1f3چ5wg>V;ۥgCOXAYC)Pw6+O-wzlz~h%>p~zOD#DEX+K3{>CBB@{4<;K{E{#A8M·W6V@\Ws߄/nT0y1?@ 5_ACDp!*TtD|1BqUUzA'1$ys"W P 3QFh(h&|6#B$:MI# uTlzTXmW*r 5C8nyoڦV+* ;q~f>s{jZҬ=ost`ŇrW's7$l'-g 6GX/X3H5 U~cr&-7eo"\tUoa ;9dŶUP0pߘǙ *_rnL6Mixi9R'qGoVim&ːEv[gT};[%wqaݶM,hɾ!&LU8)s5L]ՅSOGOSNPE54ϝwEQJҔF5Ԏ4"SMQ2&L4T\ R f1fx~a*gǫxf>&̆|#tRqv4fWc~A(/kЁP(.5@i"fڰ+t`` |[ G%AAP?$=I3$\.H}^>(g  y Q]Ob2ƺ4 )ۃ&ρTSȤlD1Hqd#ҌjBFt˄&i" b)ep%>9|oFA^A&4tmRSA5NrS'ݩvI(tBNP 7N !u HNR#)2MT1I'*D&?Pe2fP. -(͖9l6I0J2nD&Cݐb$EU:G!zv-uKaSQpFa=U(D``2Q.t)F4&$U:U*n]W_E #t`5YJj N״Ε@*ZW}_X5aX.uc!YNekxgAZ v@b'(3xȞ@ |tk1`:4_PF?' N8Ww]$\ٙ/Su!/nvr^nl[;)}[_4crD cҾ9pP'XaAB3՘@X !mnBb , &ATS$$`Dcf#: HxfaM|`'->|+*$ G蕅Kܧd Eos k'IOvKfVljNe3p] :&RLD©FY%u1}hHNu21HI 2O ^5K)W􋎫7)6VV}uR(ʶƄu"L͍K[9\ cD-b4[J16aI1lpQ):BӚ6&tO\|pc4N>c>HaA|Ce{bۜD:Z or.{9eL̓l:)[*VfjWӟ=m^L}IXa*Ǯ/<#-/^4Apg Q76l x|i"D8 ?,=:SD:4 a\EcX OIX_X )%wPG#=Mn<|Bh< >1"6`X  ~/.*-P! !Vema Cp,@~$FC@,@gB$ː arbdBAn~!"`!sFx)q#0m5*'2fn6`A a;at RXA!^jekbac _.q2Aj)Jh&I6ѰDMvps+jzH_j_n>khO\6_cMv5(!+!4fP! 4 b P^_APc-")&45S, S^R\jS(cv*Cڎ d<'b"-`6F\A1 9O;{(4,:`U'f0@ 2@ô6QـoѬb5)T,R"tb~1ro||$$F fG.!G o%W =X!GR4Ha/O"JVAa* qF3G=ȠDOh2&oA'2 4J?ChH

,f#sunC2+5k 5T4D XU5nU 6 NPE4 {L6k6F88Nn#؞V Yb4VmL* zu;}h~A3P^Ns(c;ѵB_0 v(͔u'">bA͵ ro/$\-0&5d3?t>\XPLEsFCH, IaII/>rJAHi $$LE!Gfh ?iOLł &!6FCQ=Tm6m= NXP8Ӣ8$-&F=opARv5/s麞 ë>*S,ڤdO5:? (2PU4Мbj%-@ bB,VU LÎ#fl7QP&-V <ߘt9Z?*bu\ 5'8ڄ\?`8̀}oû|?.'@_fu ( v_/ƕ\s,|/@C_16z' U, LqlFBlpv;VVnf`IPfHʣMiHYJ'đ4jtq@Dt ֶP /b yk4P`Pʈ*nTЦW  A 8-q=@/ lrs$-I6:7s?wz4Nw+Ԏ,R_7Q vbb63c77!X9wX{ fvZo5\bu|O\cϠ v\cû<~Aڂh]%/V9,B,2OX`Bo#*[ b-j6Z!,."py7XYᗴ/#$HG4`TH$"3;ᗢ8rZ ETtjIrjKT<>KcFD`@.l0fpNД UzuX<&P CsiUP*bԣCnrJsU=r(J6w:5 nCCo3:?bvNU[42`WV &V6 T R}Y}pyϋ9w['9 r=cubaAg]EXe9=e[*X>4 [|Ӣ|}31{`Oc%c鹟r'~t.bF)(%rFrHT f"rj sG1!W^rH@ۆBozk,h`,*&pN=,,،3(j@ح+PM1kl kAV[S}] [VF6F#Rƛ!Sݚ$˻|h5^JQtBa Q)D=$&^/'5h>;(08{YfB逜\?/hdd`V|͕|/ڧLv|[ o@{;'1`>05"<($'h~o!?vo"~A9t'20h k W|o 8" '!i%o`ImB 'mNq7 Z܈H>@t<,0 Wk &xjH3Nȉ=Um$lA( z`Pr`jPoPspu% 3KaKo4l>^M7fa/gT* R]1f޵.>'ȿ^}9cCwCgdfrN:V',GY" A}+gbM?j:O.ym': ?|???|P5Fٿ?? HI&9ȰÇ#J/5o(jȱǏ CIɓ(S\ɲ˗0cʜI͛8Y"Ϟ\0=ܹM%5JҍVM,!&`L⭜YqPY2͠T!"bۑ]&LҶ+EpႆL|I!Gt⤈h~ϠMf"t̐c=UoLk=X@9n.8k\'vQfs`x,.Pj0>w|8bL9A~wz5P~jA`72$r5_! C׈sVZkAoΈdAs]x #EEAX`8vXaGJ6ґ))dP29mf\$ 7dFlM3Pd|9`AR(Gu38Puf34PWui{oh2&$89JDAB# )AbH(~$MPfxІ멀!P3EׁBkB2wc_ TIKkSCeCdekoD5Yфdj/mNDfPE5ILR70P P@6H(ӄ4{@)eIB!a fZ;A9NP-P `7U*P-PS\gӫe %kZ%P=18 o]TB55qwA`o9e4.ٽҪx \`4"曛%١X>"*>x֯Q9$f{xѵ>L>\nnbHeF.|߾XK_ue{C>g磟~c812L'A1&a鈐ADK?";Hf(wkkaiXde6fI!#AD=ӆ(GQhXc'œRJu%!:4E'k7- rۜq)ZЇ$ YIB'PlpdĖ2NtĨ6m.L ^$Hω<8YPǩ[vab J-]dH*PP JyI4&1Lu1=U2>eӛgN @̲ H@A%wcC駟J  b  [y?Ft>;& &IRD;i"P'!0NJ`{aNp]AEH3) 6Yf:ӳeA.sy"?rƏ!ZkږPk'Hy1dYbU }`AH؋AfVlLN!m{ŊhQzىo /?8&*@QT H`L]j?ݢܦ2oI0B(nBl*rE,5lலZ):9"!EpaQV|Xؤ\5 5*F & 8xb$P )B'ql\Flhe&i9+%27OJ[ki~ٔm>~H$?ox_QhXAL E1̬ӀICc~2.zf*Bm>ѽO1iK8ݗ=kbVDt|86،.#'Y}0RT~$V9@:3 7h])CQ@b V` ~U=M)MC+oφT]T`[Zvv0j&0Ԕ+_i XWtl;.aq򋬊܋b9 A:b,;F=}gr$X211@!A@&]a !Q7W2"A!E 5 6f焌dht!䘂!CA318E^5\ A;]T~Ce6z79rI`X Fr7 AeP!8sm e9n(cga Hp|,Hb;Z =! 7@ F#,T܇r,׊|&~rFlٖnpY?#1Q,D/!(RRSz/m]91a c9,!@u-~Rs$Y g[Iy+16T_ay dŹٜ9Yyؙڹٝi/y虞깞i3(%8a+x !I b``"&V6w9"n!O"!W e3᠗eڞZe! T߀@V0 &!E2!24ufH8ʡ#I aQHN=P=`X=PU!QbPџTQshZVzz%% 1065{z BW"?2z *(Q(ܰ&)j/,&䩠i'E)b*RB(0j2 u`fNV=Pvq !#A sJ o wb.2캛 nШJQ01"s(!iJ7*qA ,Áb(d=]+s7,25C  AeQɚ+)`B40487ϰ)h*5c9mj(cl $H4h;IS`9dIt*z 9=YiGY6 L+4m!'K68d't,Ŝ.MA ]RI$`(Bac}i0ba뼞2j̪'z?3,.DFNJ>۩ǫ33]٠z˿rk:N(i7iq \݆G|FCa5[* n4bÉaSi™†֒s#0sNWtFCyK91x"$)M0!յQY3{\?n\OyR1M e#ySMn+' ֺѴb_ Q+:2 V{?-LJ] Tc* ;H iXM=jԟ K"d#'}+O"?U"!)1?Aˏzg j??__>$XA .dC!!( lq@!vXG$MTIAƔr% :ӦĞ<%ZQI.eSID&P\3kW\"ݹgZ(P +LP.> x%kZN3f\n/]6|}"g3v\`v{Cʕ/1Ō x "g*}_͜Yp o%>%YCa3ɞ+&_yկg_" [_,ruwWB BKϿ=ni?aGn&4 /=cA B ri O$bd$c6ZI||HTgvKHK.Th4)3c"j7sN:N#%)l3"HPҿ8DȌv.MOT[M0 &V ħTt1*Yar!=߀g]4Y|=GT*n<S 5&62W z]u^|xB HB| X`X͙N) X'.ib|4I^CydKrAcO u.2WӁ :H ,+kj>8M+aE2K6djl2HhV͚(],E"%,iنtY{ G^8h;\|VE\S2ޝx)O'r|:~c ]a4^;48_87]c}w{]khO1O昑! 2!|pЭ?m 21g>l^w|p V gBhb|Cҡ,g8s[Ҩd1@8K* Ҹ2q-&9|0s!`+N00x^GCd] +'QC$byW|x.S̔BG ReS¢=YEGda&{F;A"ьHxMs2+VUBٴ,Y~d+\[ @Ħ5#)!I 4WUxI꒼(`NsB2ta դ:Άáv1 ީxLd&SAX=fM,8l֥I$BT͚RCIk!XVyMk.wIkgn&6xtXɓ !ZQFvcO蒹J6rn-N$JÒPj&OfP"%8L/TRKr/LLeKdN`0Db;<0i` TKe'!є"LfW3@hfV3sP60ȡtN;T|т{5W4`u(&tZӾ5tEb)Q@ЁOc3ˠ qƃK)x륡,Q7C[a.)Oz4G=*~aзkq{\: bD++&:d7ktK8)*rlp1-A!dcn?"V. эq8[iU`dK%e\D8J!bP-APb4] Z+\`C&rrIT%s2Tj,zFv,J/zs!'vQD q/ # g C׸5[DՊ*\K<یϽЖ;Q gr%l* edaLJZksy1\\j٢Ʊ%L[K>Dzwnc]nk`[&vt(жL'|yVM![Ӧv}ml;fϨ lڸ6Q]@!V*Mj.g ԆhpghCI;} <>6V >@y5"$H!-u # q⯞C~wO>*|]!sH!Dlʨw^?Ҟq*EP8*2Y h%6S??Łgҷ2>8s)@9(;.H.P +ˀ:HDj, ?(gȠUٸd,9ma;iI riɄ?Aoؓm@|Ȅ"|lr|"aXr =&8"% < C1D<#)w`!Ɇ^ȤsPPM:),atC9&:>CԛECԽ#9SCiúYS Ē 5Po <DAJ4l l4T _g,Kd*sțmAc|plry)=ƔM=qj|gT"q`Fj<1Gr<+i+ +(KYL0RZ?x\?)jv{?)1+s)3aȺuksH.06K; @x(S)Yb(p)ts # {TǴxǂ82#@rCHD(Kp0~ˇ}sP>=O?|Jshc'LKL54>s8H o< H8ؔ2,qɌAdJQ f0Nq@"B%R-݆ hΤR"-CI4OP+f 'S+s s?>OE5U҅,PJb@H@|Â: Q! Q1SPKTs9q8$(pLe*>0? Rpxia "UZ-3 nȆTKpنURLUNLV,/b=GK0žISÂ^0p?(CQ!MPN̆‡ QI;+PsS,͠S, ԫ z|XE0*0_5#u0ÌMe;ܤ-lm$'%̆Q+ćWMBZY<ܼ ,Hq|@dRj}Rٖq<$mjM=1ZmH(C>K㸃P/qH)ٍ | CtypHYҧր0;VJĞ4,(\Cl^J/d%<$\Bq Qkć*NhY|X\Y\ ]q@>A]a*ѝ]ڭ]mmʟݕ`%6}Pmٽ]M^]8^^^^^^^^^ __Pu))_}iP7h_4@`U.K 39=p(:DȖuix`v`a;L߇e҄_&_:ᰈV_֊Za V{(=9 88. Dn0=|8(#n` 6Sv aNa/++Di'_*-=Da'<8P=!bsA⃀-p5g@69n*T Uз $ Sd9luT[$bO^2?K?$cQw"'5V۫;&b;?M<Z9Aӻ1#{EGF$Nd IfƬؘ\`Of_/'*vrn)0SP.#{s]va`汓l8Ne^PG ?];|$Pf >kC 69\n|児l "{8FȞk<l~-PhN܍I^nh = ..kOAv...9?.gg@d=Y8ho8dK!E+TWp]oe.0S!fen ~. E_*+p3/b`q [iO&.X$D~gPװ+DpgffIFĞ L6\H[-p(r)r*r+r,r-r.r/r0m2 s4Os5_s6os7s8s5;s/wlxjc=*8AT^)Xc%ґs %3 7SM$$2  >h@ v;`4NoۘbbbѺ(xl 2tAoAW DGtC?D5F:GZtE@"@‡i nOuwpw&C<&G/& |0΀u2vYXgExi*^ _c11xn x4/tvBgi7kvj Zpw}>rmzwmxYAc@k?5$ "Bk$8H{-p{-Ђ--Q /bxZBJ;[\*dMC@G 1.PIM\}gwiv8]9gDw7tC_}F_t_j5i!U}UotfB7kzj k.z~sqz2L.!C1bX3iJrD|H{1b-[$TB|'Rh"ƌ7rQFicn%̘2;!nl̝KeJt&vI #,r[cS"9|ٚ{wNm>sbZYr2]*UTჭ۸r֮=ȷKW6'x1>!ObA2cY3ϢAy4ӛOɓgҮm6ܺw7‡üV7D%BΖ94Ns )Gp=)Őq%vF3|VAb0Hو `B'8( .2D)q! ]c )4l$"DA8`'\ьY8P3DNdHOM_VZ\5\iW`Uњlahʆ qjwIZiZj睖YlŸ(:(J:iƕ81RutywI^ymD^y%^Fb3Q/u&/]*le>2'HTD0- !>_hnbjA)E[Q%Q椣 Jl$EΛl;Nص$Pb7<j5Jq^di&FmiXahN$r_rYv)hg'jV<=A =4E}nG MSEiXy +y}z58߽Q]Q1$, ĖxP m->Dj+.81 NJhőE leɲqܽRZylN0leiDeqsu1r1^%ؙoIq\Xb'FzYͩ݌g h:,}>$ft9~'(TE P)z(?B3&0im<7` K@ BX -ҒHP8`aA2-qA <'!Fza mh-С i 8$"0H*@:(T*=A눑0cPȉ[0 j4-bD;cw2"kjSɌ7IzȗN۫#{Դ&6H$&3Mə8М@jRϩ'H`*C-NV ܅M!l#( >kKKL `?e+M % 71` 6a9i8k% KFۓ].ʺLuC_9&lk~~R2vlxǻȘ9e^b ɲ8eܳNr{3͡񅶼=/zӫ^ lX/|51xa Q gQ0Pd%cE+ކYd|3'S8D}FfU"PmbhyYnW.~1k# Ǹl>1,!F>2%3N~2,)SV2e0Ȗ,1KDJSʲUzR33Ҷ= |s~U@#*EVqK"jpoɱ#&ѼQ#Z|;Wծ~5z!&ԍd6a: =DZB~c4mm%DdnJ".2KJCJaj,ws&5-o;d֯ ̉-g?׀.8>)!'zɢ+"-/3b႗;LmHE`;lX:!W"mx9ǜtٝŊ40"?tV݁`<׭'>2؊laaV6WH~WWX>0$D>HR5<Ӊ[I4 _pQP]=SC:4S*x¼ߗ~"(~b5.aۜDUYe,ȂDJ8[LGᥐ|lh_&‚JJ  D܁HR 7dPEa[ 텠N+З( #D$J%_} [=X(AV_[b\ۈFU-i5 /bc lQd 1fL#X4\؜ԡ5dO!ޡQN`"$S9BE:!#p W_P9$5EiJA$[eEZL*2!ҮED xHtEd&v˱\v^am. j6%EkUAUR p^eA;S|AAtCmiX'q}'z)li4G")FۆrfΒ.Kpؓ^~)Vنid)zD))Ʃ)֩)橞nY̞)VijcL`h&%]!X@ʄdDd@@FHjMYl*nˆ aDFTa{CaCϪ9ȏ]Z4<7lD/J}JD*<8KxNGmJ/44Kh#nIDYL+LUԡ=;2dCxbM\^DA[&84FX O0*8ME,dDs Yv6]E'ZD3^* b0qCTCU,I ԮZC;T\殤8JČK80U>ǶjR,HQ@XdîTmYZļ+םޫ:M+8-j%ˆ "QN `j\*nGBOYDBFS-VHZ Pqq DfC&8xfl/h 6F5EDl^ DD(s%0`8FmF4FX_DE[`uOUw0kxWm ?lEȆF 6 GldPjfL .ns* / K,0JME1 _l3q<)>F,iyWTHbvin i$[8C]K8,c6:UdEgBg"CRHo/>kV ka2О~/.G|88$+rBȚ6hڲ-CFþQD)EdC!'pߔS0s _P` K08ˌDF0F1MajT Orz3q=Sjs߆> q3<׳@/qeqV|RB_DLjpE<aI HJEzb jLK(A BU-m ۄ4X$%sC#_6$2Z,rZD DZKIp`6X`t|GZ 1r$Lَo4ȚD%O6$L 5.`U700P2/(E5ZO%84E(,$aD4L67F7 83#EEM=g3>@tB{jnjGl9F?s0oG,j4l;pF8q`B/loRt!brJxt:4pELtDc>H##(Ƅ!^EA&kE"alJD$? "8FQ m 4¬I5|Q5- ,r.oaƒM152B8AC/F8l8Mr20G%c+6A6WĦp˸T6'9+7+ȀF%3yl"F p lclFj;pjÙ 4KD_jm6ph0ngp 6F@q"nuE z&e@@d6hwwoAe8Gz|o|c}78}$Og$P[,N& FB58&U28*6pu8U rx*x݉K,knUƸS8g3{81r 6Ĕc [p?8_SnG:Op9A7;KFϨsyN;os _DD,nSdд袱vtofB0Tyoi)#mL`VEȂbD"d,fM/oMn",Bzu u7 &y%YD!@](,|.@04k)uYo/- ZqB)/k^3uCE 6> s90W7yϾ7;?φƕs"ȯkp9ojv|1(ĖDS<7н筡K D#9xE4=v<}R!.C."|4x D4bDVxcF9v1tນ;@kqkQ7qȽ'+eN;yVN\*oʁ[D(mP*%↖)RbPTծV8۪D4[-OC芏X=zZ̦ q (2J,(*ꬴSPK#B+=* 3R}LUŰh2U3|j:^4]G3o`(7tmKe-vxU8ks.l7e7<t]v}$z!.#_9:ˣH'Nŀal ߈mtVb˘=E^+$#e WR= sXtuhvڸ9褕^~zsg0%fSS(]5^~垛ޛ ?%_:!r̓fj!eFJ'ycu1 []؝Ƃ7:]Čxp߅P 8y68^Hy_HzÎ#;RH ,کrLHc<8GБB@ >]bYGPA+e=Ax! Y,\J!O`'; wHPRgxATWDTozgyO|QLIhXI}Kה҇/#'8+F8pC y$(A Zwpd ۶>rn1Eh-P89HYû"E%pDD{EWށ':]DJC%.E}[H8/}È2˳?5pP4F5TrB+cG}qĂ /Y;A9Bc`P>ӞA3P4g sVyD0KVF"uUBZ\'Yf#Vt<ܨr<)$y*1Iw6d&d GmH2Iϔ=Uҕ{xNN5,2]HX̰VJe1aG̴g4Dx5þp,`F́6]ćbѥ// dI'>OA2\UπQh6چh̀AYЁNlZ[ehE 2=h<3”t;ѩܴNbK#r g76vECi +*QMN0 eJJ$J"-eF=1+r,2#dU_Y%*U ,IL%bIf2BW '\4WN vydž ]z9esn 6)&'ڙq@9 De[BEWQގ8(n$bu rņFn㺮4RGfiݜBra w'^Qǚyfz^hzMFR!_D_uJC\UtwK*:x/:Xp^(5oć7+r'V,nac ؝Re-lC>|ώvmnAhPvDZT˾M=*:X̌0ZsQT7 33gyץI85F筗hڡ#ڿjňO.Zo=5T>F8=q0G.,kho9*бI@q-įSbƞkHexD yNtҮ?;lVvvqX.C-Ƣ x;x"ۢ7e-zYZ q~˩]gB<_^Ɓ:@l0F;"Q𤭸jV$!/߫fu͙/Kdї>[LЕ:DކP9P f`N8 &laC@*y]g= ZP/?Vjx+#mY`U, 2ʌm$pY77c@02wbP=<8$~'j` TA^/z#r "ܪު#\ӌL2-I hO\ #|0"Nnæi ohʯ邭I*"flL/`m oC+@ L M.z * :ϭҌ 50͎źhZ: Kl!oJ~O ѫ /Ĩ+g:,F KF/qM]p]Qn IJ 0 P,ȄlڲUF m@>P"X:t4ޤpCoc,{"d2Z&s'{';b~ro<8g%ҟc$\6mSmXs'ps4S8s0!a (:|3eSf!#ajS';w5zSN84@[E_ԅ.tAV3D@4a;!D46U"H@E)t;1"JDG}"GJa|4b6i3G4LBKI47o524By3#4G!NTJN4ǔ6!TB1D!4=MPtM"als6C}tOI(5G5DKiS5S P4-FoWsp 4Wa  SA54D DsS55LmU%B XY"BMgNY}Ls;A@HԵUU95D Q#X5NUO\iY5DߵZP/B:t_SX5>vaݕ@7=Y@6GtZucU5]U``/V;t NTWogsofsL8m`N $ȕbTiUt975[Aj4V!r!#s:vDkk9;"|koAV!ha-mvn'j55!Ak2==Ti!A3sQ6CoMC9k!#>QtiDSkl}s#Til+B:uu_vf6^4A[ÔG'HjSmwjQA5_9s-bw-l7m#t !LOSo6wqM6wQzL;#"{Y4մr)r5k$~w!tB|zLG}3vXh4gZQc{sz Dxɕxws)7QAyz3XpwzՄ"'5uaStysSՁAfaח| "5NdN7~3ÔD9gx~/Aa|d{X,xzQOSUeI9Z؍_z=k)w7XP6M57_83NVl!LWBim=V#*cUCut3wA5ZIYsxcQ8>ُU\AtCUviY\tySJz8rCiǹ$UcsLDy;yR5jCTtou$>Ly$SD'xXAd%Z7BE!4aٝATd5A9=Wb٥_yiuL遠U>?:ԦS7T'SI~wBNAD^LvtC6]U> Or/U+Us-Ty7rY`O:!O):G8d'N/#6qlV'+\4}-͗ C ۲C[G'tSOS[W[۵_c[gk& g .N9ᶋ۸'sP{#x[3{=d{<=rWe`^Kc z;D!ĤGzC+M D@;zKN#m3Jy.zaL"|9$#a{}AtA&{#MP'΁sȏl!A|N$CD<a dɉtAʏ<aʏyl5@H\A@K|iƁ4:G$a؁9a&a& }zEJҷ&H$fixŻOȁd?=<̝0Nt %6ÈK<2ʕ,[| 3̙4kڼ3Ν<{ 4СD]'鞑F;PD#%.@s \vBOeXNBķѢJB;%|zEQ`۪A pE7ٸ&CdQsqD{#F.YG9EU,hѤMÖ(7]asNxρk(i+x悪'.|ęVV禃c9~dXaNHa)-KVDPU`;2;_:ġY`&(Rf%%`6IE8Ob1؏6DAf8,vm0xlyYۍD%\n2Uw\"\A9ё{^'v y-yqb^ǸR|)U 7Ph$jj kzH"9HVkZ>UapM6us\ui` K5j,EjA#C0Yc 9eBd/&_ږژo5"]ⓦn[# [!SIy%ǧBUgtM\A$r9ǜ.!3|Һq&P"0̡:k:s> tB3d9Hl6 lJ.UX14XL?0oI䐼XS͎xؐԘ.h{X1ݦZٮ9.mkuڴ־>r[ yR!*Q"eAM,H٘l>3qwv-8')RE{ r`k[KCTSp%MXՈR{ڇ?bsD [1 s^ }\4!dgZ^pMمgэHcAۧ/Ƅ@ sթV<졡JR:܁#>I# dp < ㈓,3Id!qlSXF@M y8qtRecih;v˞ ]>0! ҵ>2R$̣$GR !ȕ&f['g 21d&=iY#ȁTdFY$ 4|ѓp\ˮ#GgKj| 'aI0Nb>q2pBu["mra!T -[< <ѓM>Ɓ!Є*t mά澆n&AN rUCF1M(uIOҔt,EI"P]|CpI>qO&9hř֔A2TdȢwTn>YLSҬju\WeүZ8EÔgPut]׼gȆ_W3u-a*vmc Jve/jvg? ZO 9ځ҆vmk_ SkpnhkvoV)p*w%wJwԭIֺ̩w ޜa-yϋem*z wavCwn2(|-`̾uA07Kx6P@!9, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c>4Ćtk0w2*]ʴӧPJJիXj*9nܶEw\:p O;9Meٚçݻx˷߿ LkYs wbq-~˘3k̹ϠC?i8bqvc5ֈW{ .6kѸsͻ۷v&wnuBe/o~[سkνވLmz7Yo˟O>JACFmg& 6Rx'cj B5&P9 ($g8\\B,Y-2V8 9tN:S`Aq@ҸEhhxSN9]8' O9hAa758c7gr{ )B#u38mg܋@⤂5刳t/ݤ#[BɢHml.Vƾ3sd@l_]tg`@0(&WӉ$.֢ɆW`+TRh s3hy9+uusY-ws&{+5"|2^_XpO( 0ҟ \)fMaq ;UF=;M< 8'X7u +2 tc4|< QMlswa#Ix;a6!mt>:m2Ȁ  ͨYoP/ mvSByѯ3N|AOmfض-;3Rb KǓ2|`FAĆ>ʆ 1["8F#Hа @N B. q XA]<@38.Hk_PNp,;ր 1 (anz 8IrL:vuOg@%e%:X.ci ! I6=ne,'87|Tn&hB0+T$~3:A@ jEtߊ/AT !;R@N= -3dQWllX)l^}hl$NDQI؃u_&ӊc.+Dz8p| =Z Wf{ME7rS"9xcu_Cu5l0(PxYa9  \ݕUZ{55ⷦS YTU qpC'C~ciQCz)5oX^C= OuJc&|:w./ sEA sjZt{*2Ee++jL^Ix ]l@&a#ȳl\5).>+<5p zU^^ @ > rM&ügF{ *: ۊXq Xt\:9I.^~Ac);QKԜjenS-n!(lfbJ>N+^H8NV̷u}:2N* ;'N[g8/*{9qm|c jCT^|6K/UMLjsa=NXb 9Nցtt oʍ5*UW(\8I}RAi?yk"ӥ{/8k&,oM<7S1e{]Aw|s'Eqv\bF;ށ)Dzexk{;.ZW~չ@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:ZzwXڪmM7 vi.:55R:muAZZxwc!"JPn! 5za1WvvW3KjZ; LJ  a:z۰ѪqXPKz hP˱#0'{Z: Hk& :VnQ(K+.BT"ppW{ *PP@! [l۶npr;t[v{xz|۷~;[{۸;[{۹K_O qCn f1'a SxP( qHk8ۻCh!M kskbP[F؛D{Ka KX" OCK O0yC<\| <"11.0 aR=)"kx$PjlgDc4* *` R䑏Gfj8G'2P09g;0q$_qpO3e< !!anZ L,#A[ [ [' Ć8$e,3z|m!K#!!Fs&ē'/ȋ kJRے 00 %ƍlMIA( }Ml<\|Ȝʼ12L /0 _̐#  jeݬ{w 0 Q!KV{  2!l,c@ѿ { qk  \Ѽȃ<]۱AI$&-*,Ӹ( )0>=], h\nSM}P\^`b=d]f}hjlnpr=t]v}xz|~׀؂=؄]؆}؈؊،؎ْؐ=ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڨڪڬڮڰ۲=۴]۶}۸ۺۼ۾=]}ȝʽ=]֝1=)5h{RÌЃ<@en%M׍qD3b5 :a..UUu ." 4| ޼ `aWG m) @ۖ3 wwpq5P9m8m [#([zWsgu JtP5'Ι U#@1>R݉7"u;1U8k9〬1U'JKP84P Da9^toPKd.vph^F^1pf! snWP @{ J.ΚA {ʸ t^@tNЉ­onVH gt`n}PRktP>^~מcPY-G9m ˚\d@B?D_FHJLNP+{w 6]g9E}i1 m}F3 G67ӠVo c  2T6򍌾]5c-p t~o}_ɽd/PaW9s3ȁoO]?_$Or= ΀ oo vjPHoq|nIIb!a-i y nmEc$-` pQ$XA .dC%NXE5nG!E$YI)UdK1eΤY#+b9mu[A%ZQI.eSOM:DfeuFWa t\q*2Zp%]]y56|Ҥ6kjc"Ln3 >]m~o μ;wI5u _;|w ,q=(N`n&4' fPL|Ո8t<^n6g+Ue#pv{ƺtFxr$I;ںa1ĐV.bfCs[<*+1-^q Ί(B eP܂$1TrI&.ĵJ!l!. {L2&[dLj>pn sjT{'idk\:uhS|qT~Sq& .e5bp徉+>|R1q(3wABqɉNE'=Ϭmr QpV|Hb]q 3$ki=_ gAtB1P;dteFu w(6#i"k9w_~פi\RP4fgK˒>I:IT-s %?2WRA7-G)RNM n 0_NrPVl^33E٭FZk$nQ$Ub(r{=}95h|.yM@tl͆yDk* 9J-yqql:a*P +JqP/gKvϊj` w* jۑ6x䏇]Ghfz| MDD&;63q՜qfc? >'N5Р{b YtKLcqJl h~q1a%TNFza! U@7h3,cK "VB"5hZcؼ:2?.fm.lR r<'Oۀ8o{Ư!dD-bf pP`RAG#gBKFW:G@ab렄0TxkH gܱ.ՠ WUaGZ"AHFRz]"lT6"E`obw0I&_A5I9dTZ1QɖuejZ },fH]Smb\ W&h&79ɜ5V:7U6 t0hp+T[8C^ٰ a@"=#IP*j ջF [i@оmc3+($.Q Z- V1!@|85E <'RcvWBR|Baq\^ZBo#>xB%1uK\*Af4 $kY:FLUaît^LOX('V^cP4xpWmE" >%;a_#1#C愨Ryr}!D(XDZ`I6vC a8ہ5" 3aVJ(>xV4`|8+h253apzJ0qM <9҅FoL*gF+tXoBǠ[.c(`=8Asve#qF|$|i? ҆bȴz/#QۆR[l7Jpc+\[0\PEr;,!SÇFz;˰#ƒ8S ʫ< wE( Iu+Ӄqэقs k[0& 8(H QJ\Y(pZ'pzؾ+T7Bl 3a!0Pћ5dXy&过 nX;|hIo8wb0WؿW[Mꊝ 0>aY#1A;;;b0AZAA \GvlGw|GxGyGzG{G|G}G~GG HH,Hb ᅆQ}lvn@#Nb*'NXm\b`8o|a&;|hZ>g g~]\m7삎U>=߆@jΫ왌no:R5gP< ۓˊ"Wx( (0F=`#mнBt@1P m@>8SfLB%AMog= O0=zz CP@&Wc5ܡ46 ߅cVlYt,?F IV1t2'.:$ x/ۊ1yAsRE)PWnMQ/xʆw,{+W+|1(YbQvdvm~-pp؁mzՈE)*ȆpMXgFu.BMv>Ӓz`2xFt]4&'uڅ=]uyɌo|ȄtyyO1 zOz_/zzzzzzw @z˟ucB -I8IN|1 {z&{ڴjhg$)Y=΋fcşqh񕝈׬$<0B0jvBيDO|| _u%ۊ`Ќi BUuw+o?qv p_}Z %+\:Moi3kn(8LJ0\ŒZXes „ .LE.]6ʕ'."B.B1&\vȔ*njRRleʜ:w0Р>-j(ҤJ2m)ԨR}aSBql&FƤ VnoJ۔q/aމK;.0l\mK3V-^3zv᰺vM n5ء/keMm.Ҋ3ۢ;э]nnƱ'di"][>UT;ֱs4YkSWM'w;JTCI)ytJGLTLhJĘA!z!!8bPVR Wt E1:4 R",L7 9N%>xc:'H"XT6hK#9ew\r&>}F  qF8imٖ. a')=t,؂/ uN8yiBhʤٰKz95O:r490D"^{P7z(>c%D`t| >Dj;Z*+>Ų*AMtgJNi}UD^i2#8T#o9#˻ +B&Eκ02& 'h"1qBİrS)K1(I'P*i(l͘3=3T8]Q06>Čq%99ds aNz2 A.^Q<4͖MBċd%Acy&/w-4*xgy-zܝw n'$*@zCg j/ z8w {d60}ڜө,ޭ#̱MgJŇ~6^*D޷ צJ$1ʲms.R9p8"]~HSW#M¾2"a V1@l!Z&$ Sb=XI:BV%C|P沖&dY'Vr'1  c(P;tJ6f%DYaMN贇E%0LzL̉qgeJ S#C,q@rѝi#ߘ drэv j83* :q-bl'(@)ͱCvN@G9ftc+P'!ϘBbcbǺ&P;plwЂd%ԪA Ò+ŇZل't幤Buy K3 S0/b8]N!B |YK46!T< 1I6! =bć [ΔhH!,> JɅ2ġP~>0a\!yTB N[c"6tik\z>#|1tPL0zb# {JAU.=pULrLA*|1buH;)v;us hEZZ}ȣT&KyGKjW:X e#D [N Y =/zrۥC$p\Dᣣ LC*R+t0W8CEG[C_^e DN5XF' {#3pzAD8'&*Ob *QLUr8Y QR :%2ԕ&1-4L$9I@&+•A_=[+'ұy.=IkY-7+ xV-Y#vB$|YDېm["N)26"0uq#xs!`5ctҍPuD/BMU5XFv'+O#(bȢJX$'Q~tŬ)8=ҰIdCbL,|F$=Em7Wsp(iUt#;hOr$QcaD hU:aWb,ɝTϱρ'@}%hB'$<LFu9j9@Z\W܄'3Zlz~gZڳ kkm"DtTqk^]pK޹2xBH&U>5 ă%KI'4]!oBZn{ wJKzen(Z*K_F*$>=*4Z! H\+P5K̊Q;Q+xtQuW%T i٩y-!6TlUT(ͻC}%D~Dl}:;30^B8Ta DOta$;C~ʩ@ +9!l|:89ܞNL"B!YRQ|b'!(N"9a8IC:8I@$f_+BY-!^`܀ K ce=J>CdO7dċ&89B3YH tPBx=d#N$EVE^$FfFZYB߃-OS\O0 `k$PJF$LƤL$M֤M5\q$!HJlIbakDSBSt8LQN@fdb$w"ľ!8AJuʙ9F~&T0hC }J0D|nGzN@23ibfBhBRTk>+1ʍ(BzD,lQg意&C-B|…ڦRT8)LofxD5D,Mc,sz5hFq6ܡ,(qrHviFf FK' Su^$ }FdgTJgFI,FpDz9 -(sd1 1HIJ>EwĬhRN,ZĈDbz&&TJb ^*Xj](C$+p):DDnX*q@z؂WFSDkh,YiHv8(训b!DhрeCw jx6Ť5$B^봥1@C !B(# YB|CDdb 6ʬeNCf*C:ʧ6ǨV+Gl^1l6 A7:8QDD#b0t,PQkCH"B,h#83|()>@^~N Kb}Ñ)X-1~-rղٔB$DiNHhh"FDX9 +D0 4nۮկE..+nٮפJ8 DJJ:Th2JD,f+9|}L9:FЖm5B®ҨbD#Cv"JC૘B AȌp!i |0,lxb"_Td`,GA$C@C6Ž-́ "\#p-98"TM:)MTf͚a,Aǣ`::"Tmz,-_4 \-v F큃 dK`YZpzg6찓@ CIc D~2*6} ,8E^%"O!ZD 4t u]y206v̊9 ^p6SB ]/FuwM›:Ws4d$;S@D^h\szO,ST 1u +> 6C(fsӸvJƹ0tG($3,S N:wTD.W6:&.>F~|zP6vdoF4EBTDFNQ6B$BCNs4#ZBW4]ps 8H,u BJuɺЉڂKV-pus $ #ªZdݞE8Hˆ+m;-F쌑ۈ_s252f2i6bgC34cyL9Eң?ЉMٮU82ey1U4ǬЉaҏ:L+1lz+1(Gqo#^谨򺥘zz,Q!BTt(r Ze[ B1;tT{BTæ– tE& Nz 8^(m/QvHUTGIzx׹T3,"eY~7ƃ9B ?Eѻ'Ŀ{{n;>nQ'|Mr,DW[o>u f9Y7">kPbˆUu@`ÆKmcJaCigA3Q+SJ(+lx$2 M"43OnQU5̶Es^dxun\*W]q"\[{} k޹ 64O8Mqڄˎi '.LlHo>oPT/c}Xlb-Ì/5m;eh/%t&SQIaQ3]7&O2q~˄1gCЫ|I|> ~ً;5"zȿs (;|/Ԉ;'|iB<|I>hCDo'jPEson(GȋqcW. Em!)rf/Q !F\Lp,5/ćL1y$3Wf[(ètqdfl8J(j|*m i:KOYu[VUp mccs)OH֦rm3@KGs5\u=-7vG]k8|:)ܓUN|:)zѵXiO&W'z=w}&lpAlrO?Ά#oa2/"&Q|nŒPqOưPt9q􊤍 YYh N4OSO)vnf'7N Y G|T[WO_&j/7/3>M|So_p4_}DQYx}ZHp0F|[C7ցtCt.xC9m$'>!#UaqC?- dW!G e F*BD C񎁠^E 0ͦE^*(F8\A2̋q 21,2(c s4ߨ;Df1GU Q4bb@O-Ē ]rM(tB5|Xh;4I|xM?{ .H,QrM0tc„XHF}S$g42A @B E(I.nJ$ (.ӂTӝ; TXQU q} #^yAq,uTCFFG C|ʑчɣPlO%0Ҁ1LiZStZJ[acAu#a$cJ]H5QBJ BYQEZZXZVՋ:J pLCWD\Eb}r!mSsSճZcV-l](r0^5^^mZwZpVhI[E-Fڌ]qK*[bLny[pK`E.d\>ѕt[]^v]~x[^}J`*0ǐOr!FDIX0| \`f9 )"1CNAJ$1q4c B79+ q2Q8ŧI !iaPЂ hv(.R\<$ZDI"p|Ap4PreF/O*h_*e .[ 18|8XZu|AǓ êV&!+\ XzoVJԡ -r@j8<` T[b`4(8xqm֫~*%Y*7 ,6n$정[D(N[e ^x0PF%w"Lu "fv`hEtM+Acpi8"0$צ|)]C'qq!P$8:?y+X1MdďYrf( h#Z-X̓gcNBLh$qEnBxd, 3z~eґBE-0Dv +hI؍$B%%8tbB#=$4Kzg "/hQVzy/< Я<'o<|-OpKv#oyh0' ]SQ/m v QO#@S2WD?~|p#Z؆ᅩ̍#3iGZiOn_.bۗȳmqXyJ2 G,6/ B,.!'vErtt屚gkG(H-!~*,bh&LB_[40gj"@`!da 4 8/k&. FrTL=n((t`&Jޠ喸Y"/`h dPf!",. bRb~K$ "+p@(k*nM AVAALh.N"> "?6!O "FΜP!J\,eP $QͲ1D$WTfA$aWP`%z&~%[F($&\"^K&`BQ.!f 0!e.b[ndGARي*s'o8C %*b"y-|й+4$L! đ 1!LO4j loMaH:N!"(mDx 3?&.R4g$nL S¾=­- i#vą­.7V(IA)E'Z !r"^72_ P6sa-B q%=1qs//0/3N!0S&*(A2ߑA)/c374WEˈ/,o"!VU,7f*f3xB\IEyt#24`,3޳ 78XI8[[8,!N<\V&Q )cqfq&yy0vQ-fB#!8' rq0t֪Ɣ&M:*MT ӰE{WZ%hTX)\|ġ?!"Yx^B,qng'T@t#Z`&cBDfW%cS(ڠ J"ؐbW8hNM21\X<Bf!qs 0aNUP@e. ]yndy*f^+=ƕ;uf4_0SdL43crTЯ\b b #"s+Y1& <\|ġI9 =vXtġ <:\ rw3zUa$IK4WZZ G;c WyND̠&>Yt f0vPիS ັ৥̙h)Ctz aI6b,]l.B٫i/~)f:~#Ndah"F kq3vwVÉ+ZXqtmG sժm0,[| 3̙4kVsfu8|Ĭ&#˜#S| 5ԋ+WN8oլ[7%Uk$l)eZlf\C5eö՚pk2$M;~I'Wn͜;oFiѤlГTkJk۾;ݼ{ <v5$7.p$yk(YCb $߻sL>qMMWxl|vĮ`0vkO {zCL '9>— <# >Xr" WOM4) 8E `Q$(0XUWdV9cV$7;Vn5MN:񥎆5 B, b(aMFeEVf*lilٚl8 hJhh.h> i-Q&5y)]W[~ jJjjjR+niEgzjk lKl.l> mNKm^mnm~ nKn枋n[0l Ko#US˯Vc&k+gE0QE`J KE( 1Y2(ƺB+ 7T1/L 96csrL>%q%HJ6t>Lc$B7洳/>| tYo=73Tp7Y.Jvψ^R=SYn8a Z QCezE`6}#,zEŭ}4~[K_#FIPf4әq1)UVM4qOp~h ;,YUQ([ZEsX<"+OLgl*_*R0q*dKf3crv*+/"$I6QE$A n"Y8H絰' Ns47p6$1qtL"98kd IL(>a*dÉ 3כ/Qt(V#`Yd}aB*x5t񆴳0;\Mw2cr:aykҤ&Mˊ:S=`jz_',B!CrNS/{1yj3?ON~s[R@b|+7c@h$9@q8cgτn@G0b"Lg0VbҬ5a2Q$l{9ûS gFΝ@.$yǙ>G~ *fCR3 *;1<8 ](hHa:iD\#R5ԍ>\dtl ARHY10/n <8J1zr R H ) @R7ܱt|k |Bh@K%b )mO\NS+^{Ĉ1p]ca IGćph"iX[(6+f1q(/&%щR6-#Rd-ZGD'/i[m'fr#pҔq#-66mC [Nn*+w~.8LΙe-smv]Wݖ `o"1k"K2`o.)̠c-'r&5"4 V*WAJ/G^ni^KYv4j /N1j" ;O"#.Ɣ)Ly Kv@vYE@:#]JR09^N̐r/gSgmb#lsU(gYd':p &OC42d1q\36x0u0『 s %2CU^a,CA IWpMdF3P|ǐ#pv,ūQ>([Ίj b8v]fcքG N):m|Ʀ:7N)ӭo=FqQV7Ӵ-봤GϘXgd/UpDc;F [[2^hH>+52e$fX'SPPf`}4|(E*'>!j˨Bd "$ʖ!h"iL ~@BPNvxH\55Y]@Y\.4rQ|9\-/< x~ Gx/`2w?1'4'F}p Pt2 ~ o 08_E$ ! @ wp/}җl2&lX1!34q1D`00_? (l7|EG$lVX_2%csK? AL<CG(E7$u)|F]QgDpuK f3'0 "0 tt pBnjCvx;c1HOy4wGeZL5!x 1pxeUT g'G5QnvuuqXFR ֠zM(NNC F:y!iP{['08|H S 7t> CH B(Zgr;M = sL0I(|'|ٰX$4)۳ H; smJ[' ppE1ϖ :Zރ1#B(#ME2/Ր0}~h1Ñcq )?ـ2 9s  _# ŕXS- 1g A`V5n2zs;70  61wH(FK1@5t!F/ 0 Qf .vhN5fP 1b_y5(N"0w&'/w! xCxBYF _G?EBx*~,yCzs-uC!n` ;{b1&HMNZU_9Zv |?␦I[!uup^] 1jZ ɦlJxda$9l Y@V4r^A] n;B =Y2iX"ʔZ)kĀVQ4iiX-7D`e 'nPʄ;sYdyI[_X*bho%kY29W4WKs Bu53 'L@ @4مЪࠑH(0 Q(HLBFtHukg`SdπbiI4H%҉OxXT$eCz$jhqH_y J*15SzeSdeZڒzzG-NI`' ɔip; v!!i1E||$a9Ff&Vܳ<gJ8 +IZW'B%y~*sE BۓI:'H0ODɁZ P?\2}H2 2D=U\Stl2Auzr"SpJ؄ո^j_J@ Z2C Exo*$7賑El2 @ f<3 dL7t32Pxл8 HKE "Fƻ[:;6&`[a0 +W  Aq@E(!q<ֺx> SK jE܀ dFÞ55|guUπg[2S,a1"ќh-k51 7! ;)B01D w y;f qڡ S$fbفpu&g2u[}E ^VuXal_ K#LlS ln<'50 11Pp1cejXr?<[SInp妫u(뤄c p[ӧJɉ Jϖo)gĈrƦ˳13>?t947Bֱp! !ԀR1VgE@#ʫH#nQK% Ή%Rya!!7!7Iuڹ/ 2"` xkTbyTRUGθU/`RHѮc2QZ" -.%T P!k%Fc"iO!DO? ewY^ $ dSsLp\ Z95ȩt_? s-s| H0 C õygEH;2z1NYn4ɚ]pt Y >I _˓XAܡ 1~&ʿ( $BiH*DgK#"481D"6/K--Y Z--="iv>*5ލfς VˁX (mJP3PV.Z\32lVbq"N5n79;=?A.CNEnG(.-HOQ.7HL<{X^A9U\JH@J* v+bj;Yn qm_AZ9[-}I6Qf(M~ s,P5!En5^ ؀cB PC^C^s nID# zzC[NЋ?J$M~CF4,,^;>2X>$z.H)9+q=5-@ B! vQN| qBTYScYYN o%nCBpzB3;Ыl.@ >POR ]YN[OY9;OPAXtVס?L<*jٛ|%HBOW__Wf܅LNQ_nD_Ÿ0O q,MMĀu>Yqj ;k/jCSFRhY(!n_TdvqwD-AkD-^ĘQF=~RȐR֐KG,c&fra5m޼\9qx"s8qz ɓI1)g*D m*NVӝ0'>_UD]ZXĀ&-gL޵;fhM .ŻM5?~J+Pm*D$=wΌ$Ě9Z̧>mW̯`ެ&ޛ\pōG\ro^"8Wn[O<^<>sܹR߁@KS,/<|;j:;rΚqc<<: 7'$ʨ)4|*@=|Xői2  2I$0 ar# |FlA!|fjx0|H/UaDbd" U24y @"7"&:S2|G#lÚ@ly"T4 R+bӻ&R4R[&j-hیPl3ފd4q1W]wW_8F%@/@<.ravαZ%/@H|dСڙoKhr17X} V: ui0ȱ&MK;jH+y M~ 1ͮL8lcqL=Xf<3t0E0BT[}tI)ze\m; NzVCMkJT ū6W)MjVN;o]CJ"r**o"hp@`*7 " ADWH{˒)P S%MqRL+d(BrH`K^boX(JQjT4bd4ʄͪh@Ug#U妛h1c89NrpeER^` <#<@ >lܭrAġw #6v4F3''׽{`9{`ʹҐXEFH9`b,% [`HD1Jz>%F:Z=b\WҊQI\Rd%>tTg?5Vgԙ%GDU^i$`5 UDL25f:mDAmKȭVL6ֱ,sh8m¨H6uNBL=/|n!8J3|cpGQ6[|^l>p#D;]bGBցtßMPc.E2#<e#V(6&>`AXȅeMQ}}<ل0mH%L2!WR-=;V^ LgDuiZӴI+2Vs *l^DT!< *ʚExSo?rt=hBЇFthF7яt%=iJΕt5i/ot q|939$Hc0Jg8B4&$ q2nuU:NȳC2 j…_ 0lx+@j3ȧօknup.9sg&9ph׸s>$8X4"StgK rVS".+n%='׹#Ouo|&Gwݕ98ZtxL" #XVŶojg/#.ֿ,,' O#_:o(@|[F3 㸩@5xolFछ:DımD;8 q XNOw|: 肈NEx\wDXgZyIE\.6Ys !v(a9NE|sl X<$Ul]˓u0l A.8r -ؼ]@ (H n0-bȀxk0w4"f(ysA`A84ۺ2B=THOS1//!x 5!X98p/5X|Pp xπK}{JX(ʣ|$ɣIZɉCdA9sRhiȸ"CB_0@BQ.Kq\-L &{Q1 1KK$ q 3m0rYC "Kv3:S8&3Uj Shap Ȓq $@0mS p@5 \gx{UETPWQ) !hNNd$@eON3Mа n:q4G,$,oTx4ȌHwP  51@lvR (xwؑI聞.yUx3X|XY=! ۚ%z"C:t$T/1]VS…Bp`4ڮM%E%(Ӆ$9dbCy3lV[|CQ̙$@[|ЙgX1(#թ͝<)x;P8H="8[Y\`ae ڦQ)W xVZ`a$FhVAFx pհXO,]WAm"$rOzG$|P| y-y ؁G$i7`, Q* 艢Uu%EY} M Yى@8݃hh&]2$AZ`2$#l/kBDaH$H%[\StS\r۪B<&xJ'vTÌڿ:I܉)ƭ4aȝq`UD<Q M)ce! 陞mE R f5 fuDمVhn=FnKfB5@]!^vGQfrw{%_OPe_U_!SHӛ*"Ȣpex. -Ɂc,".i!= )=`o.R042$Th2E=SH˅`23E$}h{/!K: c9t0)ڪSZˆ@[W[=bWh1<:"9YTTɑCMT(%$%=7c\݌E i2 e5d%ۭeEVpU)_&XŻH?Rd'Mvn{Yn_z5_m_`'UwƇoRp}M()p~!6ن'Ss(r^?JXIʉjhpqhS{əgʠ2$MNB'=&kl˒;\h f\lp5%zK Ui-Tsxcl|2SpCM+QX劢5願UΓ(++(ߪijb W D~Rq f}^W4eqV\Ԍհ]kR nžk%'^Z-l~P^^\^lƾ4d~pvw7|p4"bQ <ҚP. 4A詭|>Q|qmn-'H"Lp!Æ@,0D/b̨q#ǎ? )r$ɒ&OLr#oU\ smkfnƱsou.sY×XӧQ, [v48ЁwK, P@&Z Jw/_|35ot6ne$[4xpI> cN0u7wZa)Nh{7޾.|HI+xF_ 0@!t 406ݳ]?k Χ9se3>tc;g 9sN~u@O܁`}䐇*Ȝ 7Xa5ib؈]8ecmsP&ȘB:M Ht lzv5|u9R+M[9,`b8홛^LggW`3N6490>|#ОMFc6pMW;.[-dnGMSS~ e 4<5g3,t9I+/SfĠfU[ fcQmݧG T /C~{s/")u}1q -1ݘ.7m6fDjsy$裓5$Д7^Pte@w,3C)dfS@zHw3״xP6.\} 5^yv={N G!˛G@A1Cf1จ~*r2#e"9 `4l$m#989HTEkLf&a T`ʁD"D$AgN m4@&=4Wi9 Bȁ IH}XZ"T _WOz$A +Q7#?Dg~Q!2Fx -c{ mPj$q$$Ru(SŮs {TrohVяvc )0Z*(h7XnT)BL[GU yǜƄB*Qj]W&LdUYdqѥƟַ&^ۺBTNzeRr;ndQ9'<ʼL`#lC" t6 lGM!M&8xnHHCZ)2 I1gڕ, gyԧ@0lvh-n[}CoEzК4k5p &>^L)84jR."}}Jzgj<a&mAB Bqy|q:z/_G H]f7vĈtZ5(i ,zhurӌ w8(p5<|J}rlHKq}0_W!p "A\b"|#ZɲdA L.@!MV2t($2'hZI;\Bd< #7q܄ρ~B;4sH.~E-vI`uD,=͠7/uj_֗sN2[-&$APǑ64Zcȳ lةǶH?AVec';Da{B)r~&U7l<:;غy z>jѕ6k~O/$b~u2`:HRH.0|uxEinFl HlM5U ` `88C `Z6} _ zG$ razz~6 J4aGmpa,aab b!!"b"*"2b#:#Ab%Z%bb&j%~ Y|lY)D)c`p&b! ؁NB~x H"^>(OYQ@KOQ<!7,1z5#x1#uItb:&gbF)X< 8'ـ.0ƒc#f=F(J"if (HW+ ]) p#~I 訒j*ި5NdzH;HH`Ĭ* C`x,uU xHد*# ]#n)yjC@BJŘe8\S*xP|84ѰL*T>&="ġV&vf"kB*jBpƢ\jn棦,hj>"?"mA'>Ψf^,r΁E C3\ldiBɦ!@Xe~ ]gt*egGVڶbfmֱӸ&jB(*vf**).k6ĥ &&lš"Č^ELVlnjln5<%BYbzZD>XH OKb%LmC`.\v6q+U-I+xQ)V+fBf&kfkmVVFvj?b,RƖ  @Zp\8EYlC/7Я\HE\.q}1r,NF@7Y%1m mՆD,f1c>:o +J*R~ڦBDdFŠh1ΜjlzD1HBؑLTnT:x'a:z"Dw`wKe+G DސB <d *'HbV*!042dA*1َg6DFjm>kpgd*1N*GF(oHr--r..`.>lzq)G%/3s3;3C2F(_sRfy1Gs7{7s8̬Bs::s;;s<>s?E?4Q0=*&qLCDtFآ@@( 5N,-M ^Q49D1OB44>tX8c]H]9F@8B0#^(Q1F9AGEb)FN6,BA7L& gY_37'5C_DF@`tB@[3C]"D_'aWF+QGGGIkI8$d 7 WN73TeS@h9\Q?{ ,DfclGŋ봊mdˢDU#\`|doEdUTA6{PO*FLue:ĺ5ItaDi+bb%.XH0=W^5Bv6]]BOU6puHGyOk|@  1NDHP@e 8L-/ I;s[AT} X@ CBuK<A5B0 D_ Xrh֑7FMI9Po Ao8{Jy}MLtT84 ԧXؠ9{#''@K87 ]H Z7Z:cǖ: 9Dx\wf:wͻ L3~K$7 ι8%IL5a{D1sWBx[@ E-đ+x'S S,u {& !݈bVx7DZM46ֻVSųXZhHGV\̞CXbRUBؠuNzp@HD%IXHCS0:rȃ8|•6V)ћ*=G aQ[`pȻ.TwH;G=s?^9L`ru3#`Qonli)Q)>D}yT# X(=³O 6@>aE]`&y}bXk~^|F?/~Z$`sC̶O4+xBPws˸=@1jȥ{Vpsd%VPs +WnrK7k,l S.pW0JBFmrтBrYt٠j BWe' -wKn]wջo_ 1|Mpa1j!pB\|B7n1["1/_SBqڴ #KY=Ƨ޺R5*Fc)%%wX)1첖q0\ӷx !jwIQQq99;>Kglt^&f3pq?uNk.B:`cL:ү399'lɦե~sqISkWi̘I3⅛UI+6 5l *q٦1)(dڛP_e20I$Hn-r|Hxb8I>}MޖoלzFixE!S{E9Ri5_3>@oR"m a– %hn̒@, X`7Lq49љ] @ϋYc~Ϭg`ɳ{^| =#Yko1 <P. uBum(d6ϋnGAR%5IQR-uKaSΔ5MqS_ޠNTUjHT*;$E A`&a 0"@re5+^ CdRRBт i(* Plr +$PG xݫ٪u\Kuf-LőLg>g ̖uN=VQ$ Р (<0GzUp#hIV$Ϋ+G ߉CzJ{[tc)X*Q慮yĦ5 T Al"@7nƍn ]!m#FtZ㾱D .ҍh" }YBaZ8a-\[S]x 2ug[|a7 #UZ.BseL#d$ۘ'vt r|}M0  0[ ]T&[ef2+.gqlCq'A>GJ'f>(p H JJJaUK™Wy1cE-rɺ.ê~q mA'! `%0 ~PX 2EZkMnﲡ~owH M6Ji ޔ@hGޭ⹛# Iݺ~b[$QҒp 5~e`>Z+8YdOpnn%q=5zD;oJKsG,9e 8Tʨm:9q䖐-,FE|F8AX nb0M)aukJXA.X-av6x}](K01ªAX&H34_2Z6ڃ [HH4vfÏ[t h?ڗ!{^w[Kr(wjp"H?bпWf]& lr1s 3TXAt=oht!h8(LϸD0-T3AΦ(:UDp(UTB&XNo0.uN"`.@͔evm"\)"+ڜ"xʾʠ m! 힁 U3!rIIT4dw~q,$ML7신Tu <}.n Cd.j$A Rj{fCȷ)5/Х 7| a{wt U4#˪iTh8%XfiʀՃؠ0X0w CMfN4脃JX0scmq8uxy}8xg y}kX1JщR@%dYS…#ƊM',b m//b/seXZbSjڪb`+/jUa%"ˮ<%y@t$jUy,8XSK/2*Xȁ$WYX iRU;*3mC ·T&< 4@coQ%q3ƌɸ/̸%\.x/1/.8颛&>AJ:. /oVY"L- 9/0LF6UΡ񁞓˔i]BAAB!&R8a6tS@be!{DbBL! 3prdKO01/.0z?a μ,8Ci,^:slc)KQeFZ2c`M*`sK9 7-,zӚ,Isy7RgKGGCa?sI^-`+0g@z,qS>@™ {\Z\h]i $By|mtg ;4-c|B=.f?4: 6û<貫;6B(B23A7&߻ ޸[t` .'yM3C5o;%{"*M+rb !D.掮,t-ĕBijT/!'J;D4 SG[MZ(\[fnΤ{P838Bނ3@ LW&~&@dShʷ\? Ʌu\g mm}&A/3~C\H۱yK#':+G)l5'/,H.+bbp9U8UO*iSkw+ }oeOܫmp]xCzןݴ5\ЯJ&'pg."Lܭ;@tZϝם%]05+.*X #5z`GcǼCUFU@3,q,5=< õ?94XX <;Y l u"h_gō^!%IF0}|(:}"瓧5&ӵS^jpV%$#6BmsQ\VˁŁ/Q{`}7N!Q9"O;&]Pxj* t%Cސ*}^_/&7YM|+=%cf.w¢=L_A5S^&`Y]+r['xfEz>)&`  "w1Y3.[q3wYvR\/۴cyķGlxlp!ф-_VJgAi3ԟ 9RHU^24ݳVn[1gJKo-8M{][plWdۼ}+.Z~$21>?}9gAJ/༃8 Nȓ+_μУKNibhkv+ eAEU YEQ>V]Sm~eTW mVaƅi8mc d*Ȅ|Z9[~4k6dt+Ni@+k*'I^$dY-tEQ{ CM{h5c5瞟/pf/c9^\pC0 `C ?!b Bb(اG%/' +K#Q$K"KBQ@G]\QeCI&FB2AYH^S a%byLb=&BbXjL5qype~5y\-TfӒTe9ij)_8GlhޕWor`G.fZmqiVm9h i&+&ܲ۔Au6M3j0Kw HhB Cgpcq0p 6ߨM f8F"bIHb,hX}‰ F PdĈHqd#gE"/`! /eE,0 U5hrB g 9:⇧!ƅ\-FI7< ||kRJ$Y UW6q18KxGB'Q PEZam!W?&Tq'?CqEy@( I%pK$V)XB%(3l`V7rqNVyQcY &zKbj‡x J\E&_Fm\R 8INq@KH3|hchy3Xp.RDٳ^/q8y">X w!`C!x}CA.|zRiA8y)>![$@Ou*M?Q7ЇZ%Q (+4 HCs,5n#$0B:D2top8䒘%)'8S$z, Kae!XmB&f}f?KpXv6!+k:䕔qHi')|L6lMH7 oeK3RC'euOa:(E@ 2N'ZIƒR&P|bRy"CMP?;+zΤ6,'!"{3$$y6Rըv6kCpɀcB^29!v{y>,.q N;k pjLs>)yBBy9AAxSs+zne "s,lA Vil s/$dB;G!f ҵ>_%@e pfO =& A{u4cc{q6fg$GWmsxJq!|KRY}U }ׅ^+D-b~vkxvS"'09qw` kw |"#7$7* v h&!*RE hy#fsz"2&Љ&3/uXG$ Ɔ5&ck cc0B>@fI2UOq%8baoP@ yg \ gLtq%}8#bV.fX*h8Y @0 &(6A3xHW ؐʖ)V W  "`U8'3&21RJQ3=(37bBtEpc0=gHBxØ^VV“agPpenXXZ.~!/"mROqPb0h+!Hyɗsbȑ?a8'.@) X35";&/9d^0c1_BY5E|XPpgLM0Xۇ\/p~~p^9RxsF 0t0E(% @! zyـ`#ב')㘎)/SHFyEPMC~#Hm1cc6N^D S@%AiGIF6P X* Q*S !*v̂i6z_xoo@"6A6Oqܐ GDOpYCJ @BJِ y?V ?ĀaZR*lIi9B%tB8Cj XC0C.^*ȂSclʡF<Bs qs!po2+(pĥ;r Eqa D k8bC+<~T ro^ , 3J%_d{[\WeK)R6}H>l1_AP3xwq^!`Ne H;'1 n j{lHKO /W (&At"HB/' B9t{5B=Q:q҆!%q59q%E!j (!m??PW>P^rI^BZQ]5A DaM g<#A(2+% (_^bAѭTjdBq=]ĨD1C 7AgQ0$H<$]`AG2c"$r*a2rH[71Q'h&A^"%pgyjGmp(tOƂE!!^5^p+ʀ$P R(õ^B `Tb`Evv<.=:_Rz68Ϋ׬JC9r qك+Ng=/A32D] q R|P0W񏹝ɏ +^ &c }C[.Q^m'rѝ^WjQcm@,08! ~>,,BO>,|nˇXE$1"RJRq>)2Nl.a'_ FE3c*e?tS掾Aj*!1flƚ"j^*!/h,V{E4 m /q@pُ9"P$?jcT/[5l _PX:X*)X@PL4ZYlc"_ ><^ӎ|X1ZBαWA .dC%NXE5nG!E4xr&۸w2;pۈt*Teli\m؞f+4U|r g.\='&ҜĬFz(8A gP 9|;j!YXmfc&emwkw.qtfVU٨q*NV&\P+TMN(2eTt&l#bwՂ eTPCYJw~71>texsu +W>V%)Y_8b,/K,>rRhxn*5{(S Рb =!'^QE÷&22($);glаE[ꜝ6$(9*J,rK.r Ytevq3&)BJ!܄'r50 M6 ,2 B?^isPր,hJyh"K4GOGOOUO-3IJ MySǾ48͇M[ (hc˦9u 1(Yg2V3&!Doۆ?|2 >P*š X!|r۫FX ڰC|4wьyl*Fho.IqG 1sv&{oo|Z2q!|qƱ!7]%_ ;F|9bBfc%B3}JX _v mpAqAP!1(".ˏ}!.dB*SsRxF3N~ F8t8XuMUDdyuA\ll`i58?ndd# &$@HӐ3p6"ȡ",&b 1CO|/P18lWJdc!ð(pJ ڠ.EGTp@1R<$hnIH48dc/l[ȅ1s i+7Q~fԌYL˽o!"8P~+h#H4&hRQM G]8 U*QFAv-p Eh f"s0tiC>mYl;܁ S0"V6)Quh`uYh¢ҸgbbⴌzN<;7 c8R.46C'1>?w#hU,` _H!=WgVAQM H4Av\;)kBjdBV0k4M) *hK֚@٥|,2Umk\ݪ^Dfpm:)vQ Dbc* '-X[`M(Bfڂ.CjA|1>SdM6u'*(IpR m1akLl9-iXcJjVCt .r(erVᇞ%i,Ī! qǜMc>zHBMe6_h v=gCdƟ2~J2rW[}iqz3)PD,G+aJ(M.ipD`H-5ApU"uX*<ˆU0'͔ "eЅFUe&SPd 4,|h8k^{.tdMA`撘# ! q+x$ R!P2ț,XƪA^coud!蓳4Ms8W)h>~H$EZH>@?9[ɼz#\WsJ`Q?G)|@Hw#ҳN (T` ȜD (K"aj7ږRze.j;G)Qhxq"Ym0# iFnoCy[+58 ^4^htbh8+YCу#h(_Ɖ~&ۻ!hGp@h?ىӈј!? )n-?h @T:,p1R@p"聄(Z9rH;?+?y,(jjH؊9 SE53hP ;k:YO Ejf@&[ [l.p $z!0lFEo;F !) XsLjH)L)p/h&1^ 닔4<f- 55ŷRf B XuӅ^O pDH*'46={s`Ѧ2G` 0>t1?,}[†'/9pkIpصׁDpsJK4D8?ю* 89V,2K|Qƫ`n 8㣆Dj0 $ƧF@IK${;tT+\$FrLu 9BK0 0;H5]X%88 mXD hp+ 6m3eH&C;,"I4 =34ñlGYHɬ3STrHi#2v`N`^`n`~`` ` ` ` ` dUp+d[d3 .a > oөf!譪bc06xPN~H6Par cJ]$Kc3H`"v&1[Cc[jbFdhEƈ@dcJ^8?ΜѨdc!eBT2Ne5tV>?6qc­Xж˺X_vV֋W^@-⊻ P\䠪x W6 X, j֐ahN'KdQ>wgqz NqhpMx}V}a~=6g&纔Wy d"0h~F艶eUh]9X|s0=3 Z<;4 S̖s0 _xP7/sosh. h,iN-fcX?Iq 1P źHkS|1i?RDPg+mkRkqm8kRk |@lk~laeN&h2(ij1iao+n>扱LÉU*꾈"YN/ćgA ?qZ'pqqL?1d"gA#or4raehh_o&IxH`Ȅ#s0+w5ڶBoN$ԓ5Fs,G6c029?CoFksRNqmF\w~BFH7LOWF_MOr;]\J6*or|.lI8HoEFQpM!v;'s8g6bf\Ŗ:S7b7)fpn~mHH(H!vňX nL9Jx?{p~wxGrYX|o/ ~Ow?xuwu4BZ2@0 qBo s`PX mGjon!5lH$!sjҙiNy.9#e U8!N 'ل4B3@&yg1tvn{M0A{+zx+ccAG jVq/ma:X>5lypmN TaVm‰1xjGznfE5G$HG.WAtqVXsF WM{4O7+ddxgb1|'*\ۗ˩0^tϚǖ|,h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:w'РB-j(ҤJ2m)ԨRRj*֬Zr+ذbǒ-k,ڴjײm-ܸrҍ5s/..rn1Ȓ'S-]7v|+s3ТG7 .fҪWn5쩉IC6ܺw]2G}/n8kҧSn}5n%iv;ǓxWG׳o=ïo>!9, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cm݀diN:`s4q*79*Byt38g9vM9N%:J$NJcޚkV-xLMϒ9$"x,l{'xǮ+XfsT3Et'Y7VڸAh*8PKn2.rsJ8˼/yx08[lra J,>X1"*'3>;gr&v9d >C1tsf7ѵs,{2*˄<,6PvƘ -j mOc*+EK4kƥ$xQ68g ٘1)8St58%|B CeCx9Mʏr#\//)/kh6 N8yS1P&fQ׎BPMl(oؿ+y{>ai;6P TgAx0q1{U;>)O76o +{gĒ3Er1ac2 jR_P*0WޘQqd!c($TuzG=vcP[0Lf%3;eF(5} -)6pH:x̣> IB:)$BoFHT[hx[CMpGQ3,()V# 1|tcI>#`4^KEvn8f' Ј6)Y<H.uf _(m]KtXY&)7 ͍2}M9&^ESXmO~9xht1IgrO 4\ļsePq eR"!́?K{ x25^CLxSIی5AT29iAtPuFЛ 5.u*92`A%&@k t&Qpn_D#h@PT!".19]t+VR(bu: 5xF.ŧ k)oXW/{;Ԇ(9ĊYC:j8aCr 3@L7 |xq4w2A)G%3 E+y@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،[wTJV[DuPKNt' df@8 3D+DNCS xhQ4R;y"QKԐ)252#{!qyӠ@ rb*J$$' ݰf3XV+hӒ5i8.)2x {)ȏZR+i t ]1Х*D?g1xnpr9tYvyxz|ٗ~9Yy٘9Yyٙ%4a7b'/5' wA%2b0ycT y)cg!ɹkm1Xbw  Y cD'xb 2P @)I10۸A4НDO@6BQ 6f ڠ:Zz2"@+w!$Z"*̕\+S"L"j*ޒ+qa&b.+ӢLs0"9ٕ$%z1+LuCz321:L:ע:$:jHě%c#"P-**R*lxFpAj&%oʕ"tچwVJʧ%*$ʏ:hPkh52\#0$XhL@f^ӝ}*. J\+ } B7E'1Җ1#'z- } zؚںڭp(2+9[H]Y, -ʮU8.@jʖڅ+cv#!"#ZȒAypL5 ˑ( HYU2p +Sp*Qs(KJ0a+XDO$ KBh B;D[F{HJL۴NPR;T[V{XZ\۵^`b;d[f{hjl۶npr;t[v{xz|۷~;[{۸;[{۹;[{ۺ;[{۷iлiwI## wv@Yt@mj] ۻbߒL ^I sDm |xpp1kK+{;^ڻ *1a4yB2m# x bᑞ" y" ^:+qP$&5`|4\/ {lEG}urz Մ" |bw2݋ ؀~5dS;L+08S*\bďǑl.ll. C)wp04运ʬʮʰ˲<˴|T% > X F @[2X4`  L0eܹ@, Mp !*3~ɴ@R-@ G+ &X8L .+!3 (1.Ck>0^Q {$?.+egV9VMqg0 _ r,:%LN>̃s 2 } a-Cyg 1 1Gc &&jc57]+/1 H)1. />tMC 9VcFM M ck @Bv&yV+ Zf` '4f" (Œ Y C3M]ս  ] `~;_^FH ?iP-^fAYN"h0=2E:Y18HS qF1}'P7hCw!&"^L@ ;++NhD ! ýL NM D` ۀ  N> iė˛8 ijʕC(VV(N\UO7Be KMjulM9oӹ3#>TA%QI.eSQNZUYn5ѢKf"KGM(1TEg$y"w>he-4ށKCbjlLkK-˼SpV|[s`KW\g&L\fȀ}"WC6Tx= 9jW~.4ǎhglTn5ơM2k4n΁nȰreˮpaZfk"&yfɥ-|dhlhli%!]bzʉ"HJr?,rK.K0L$1a䬱ZmJ.\δzK,Bc ic2L,E@n$f [4F &*bȅNpPO8@r3!PDԄ0[]OV < 70{'(v{l05QHղf =e]ݪ0& <}1plzYpae:|X촤8,'C? Q阒$bKT`(ClLbE| e%$%SII(ci;cCydS'7E8NNK3̱o7;'|1O?6C' ) -3 m*i0PA.4d/sN k鹠 0ըn^0ήUVA[?#ٽ~06v@|틕nq SIXB<B]xhMܵ|=hKqPHșXI&}ʘʍQ(7xW~r^&j3Ny.""(a6zo쒆ldS<hLVpx$pٍ kB%* *Gl&Pv%Gj=E8ƛ:Elǜ 17&Xc_knT~4.V}J b 0еe_Gˈ@ @بK$ƍ("Ӂ!zeecP~Wo}{_Wo_X&p |`'X fp`GXp-|a gXp=aX#&qM|bX+fq]bX3qm|cX;q}<(X÷鸩d|d$'YKfrT~]Ƴqmd,gY[!d$qtE|f4Y N`_ dSYssA[(3ai u6;ZЃ&t RɦB hHGZҏ~- TdZt=i,W|giPZիfUαttm}k\z–~MXJOrIu}ld'[fvlhG[Ӧv}mlg[vmp[&w#kxfwݝ/+)R<1(=ݽ;+\X[ח#B: XIbLpͷcU#DЌ_!s/P#dut*> J]ق"j[|!Qf\,1tc^ׇYd=ZQv=<Ya?cPq74bĬ[*PwI99Fep|{sGp\u΀x"e,]"x5לSK(;:ܤ(Ty9'Y@\tx8>,E p8@վgG&i@GsBN!`FbݜWjbڤ@X_o2#vW ޱȷRp)R@:(ȋC7[ *q㼟P=`P9^t0H3 KMӽ"Q/I<Y@Gȅ YiyX0 В B+ {6:к{H`ȟ8h љ +q`ܯ f1< Cb IɌ'Ȍ4x;RCNp|`M` i܄I‡lim8 fPCϣTE1ķTWp\ @pśچ3U\O\),AQO4;0īBŚӏ5Xa8u9FЩ]#tІߠє?LLpH;@ :̭H?|>Q0-t#UBt@y ӼG`X|(?|v،^h4"lಋT''ɑ:|N13\ = NOMhGnA]"qDX<0OJ0rk 8MM EE E 5DE4`X($` IBIxR"Պ8eek)G, X8WH H @ QH݌SpӤć;\!Q0"@TȾ@ DM &X&hGO(0ē8ţKW\Dӹ]ʓPQPD4հ<"TWTUxJU\j=*\ \SI Ex0jj\@Ak jj|]/p"<ҔXȊiWvw}=ð Tz팶 $׀ף W|MNphIiNA%2UQ =eT؋ ϋg`,hPJ)ُK;@j`JD U9QY|KUPRP[+ʉpGEVqj1R_:EW䤪`Hz⟅3-*9 '8 ˽ 4,̥r=SkJC#C]9l]&8?Y ŌE+FDf;h}].F /$0^3w~ųKV`|c.hފ;;M/ >hh>;Z:hhi.i>iNi^iniS@iyJR#(w:fۄfh<=277Kjg i͈Ipq݃8;ВF.oVѩDkpعBj$Y\t r0s:;sȹXҥHq3Z9(@-NwJV ~j'hh0jD7xdFh "rj .XŘYq &=(p11skm] SnpIn LƇJmh&0N li ~ >!vV Sm^ڮ~Z<f88y8a0Yڜ-ܨ`Zɔ;=@k0t18e :;-3Hb(g*K6h#6ɄE0Ei~iNmbāX]|j:7 )RG1MsxhMЄpYTi(E!qgqLOe-  o>l  Ā3\ӟ&lcmŠQ#"{m1 DXJվJbV$Sޥ RS,@D8ݑsqo"޺V(>/Ԅ-v"sODbpXFmHZnRth!}2򄊕c uVZgM 0s(Kg OSvCQm@,zF0wʛYdgp+FD:T^`c+t'Qɋ_ 8rĮ3dH 2D_=PS=93n1$V'YQbt\8uLyOM"&B2TDx_6 RcRWZ!VΙPY ~&lL\s%-"18#5RB8B,ceAB8}"th 55|Î8TC3 9y6&>݌7Xhj䌍q&/] 1($ > U5gZC 6()'e8(jC"mJ.Q!D $,F8"؊[8RPOҭ`k A T6i%bhI)n8WZ{-j-HC%Dqkn!+fYCN;Vf; A}N C13D9f^C" {홚~2O&Re#F"RD U,>SUT2t8Q)̖h,3u}7y7}7wT&1ؠԁ+8;8K>9fSJF"{9衋>:饛~:㘧:뭻:>;~;;; ?<<+<;>髿>>?????(< 2| #( R 3 r C(&!&c"i= ()bV<đ *r^DM4f<#&i|#>+(=3 +<$#D0|$$q19e$&3Iih&C)Q<%*SU|%,c)YҲ%.s]򲗾%0R!"D<&2Y"|&4HɹU ּ8ėUf)q <'Q T|'!C ^]&JtOpֵ"b8ts֖x+dk+^̴ِ1 ƌ.i >ZU%n SQ\ MAղ}-lc+Ҷ-ns򶷾-pU(ka) RujȜh,j`i@Obž{[ߞj@aYf:׻H"KҤJ/yx[JP>` F¾t&!R0Zju~O,Ӹ61s>1,!F>2%3N~2,)SV2-s^2,1f>3Ӭ5n~3,9ӹv3=~3-AІ>4E3ю~4#-ISҖ43MsӞ4C-QԦ>5SUծ~5c-YӺֶ5s]׾5-a>6e3~6-iS־6ms6-q>7ӭu~7-yӻ7}7.?838#.S83s8C.򑓼&?9S򕳼.9c.Ӽ69s>9Ѓ.F?:W4gP;ָS`f_ ;V=κ?]uJ6홆B!ugz騥;~;/{ܧti+O~uPǰ?II_]Ł cVڗ-$;TiBd@<CUqu&8AZXQ"8o {ُ1k=n?m@V,:|?FOU`#7Ѣ{w"b3|?`h~&"_E4XHt|9 lC`@ָ<}H5ԋv~  Ơ ֠   !!&.!6>!FN!V^!fn!v~!)7<8CxxrdĽ$4T8t9 8jGdI7Cxx:x F@ 7@u6`C`8Ganl tC:tqFLFA"qQe"F8tbCxh(ƼGX,,jT;8 Cv1w|"749laC%E9J*t<|"5"XA*A>pBBFELD9!h`@bADbC7E}B&D/X6hkq $c6d,&%b"C.$63.!rF+|^6⃢ Jʼb/ EqCJva  D_7fƔN6S>%TFTN%UVU#7^s60bA0W#<ʌey#$ZjZFB[:ZZep%eCY%p%jB_%p]o-4 &bR@!,3 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c2`:xɳϟ@ JѣH*]ʴӗǍΧXjʵׯ`ÊK]i6ٷpʝKݻxi8sesÈ+^̸ڥ\g3k̹ϠC#|Hn^ͺװc˞-Z;է٩ͻ ~oܻ+_μ 7ѳkν)#"ӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihl _ݘ#978u8 AD#5$1SDA8'30e0ޜ w9fnf >u,֔3>ߴs,@ZNSd(KP*9AT <{ɇ'M_U[p$<ş$W6Z\  :+\Mz('Spn9^w9BիtUH5\qTcWSQ`:L9fuǺ}p`ApW >Aj\X3È&kgҫ6M[n;YutC9 uqSvϨPؑv |g8E؃:׉# 4r:n@F1AxLқ3;ʞHL:'H Zj67]l fD! UxB%| S8C87!>rhBć u(PGd!/T-|,M|bYpÄU"S zM0 cHCqfcǨF8#D9:EHяT"9iXƊl!x"  F4JH9td2F'r)L5 ( ע>ڂ{Bzh>WnLfe:lhGjΑׄc6 G@9H-ăƚ-tHF!y$RŚ͓3 ; H ϓ>P,|T%P(U! ZKFHTQ]vcO%>pS&;1L>ӥ<#Lg*ӚVgsjÛ :2T'!C cC6dJ !q11zNBꍲ.OFI #P\Jt)vmcK7ᬋIQ irWQ)6R.elL}jDVVffqzǝ1$Rԏ4<88@UcVLYɐ~gЦ,dsB]瀞-Ս_"!,> k^,MWYȒf׫ޠnOY&AxɎvmmńȖ Ȇ!e zvU'YjF:Wg5THt"A#;3kjH +XlNqy^qY T8j&ַ4@ښ6# " \eQܶ8pּWp gA7ź!lvME=+"64ecKvb 厴I$q *pn!I1wiNHլ)@!mqbĕHh.Ս%Ra{Pw E'ш汵-dI۝MXLuo -5"Kmj|064fYN(%>ZlZrvZ6^T吸lن=ZBnl>[Jd˶<77li%O1LGNctTztRX͙os۳48Hh[r3K`GHAxgl 'yQs*{{l"R3y͕*$H$ BOyOy{@B8DXFx<|%>{I`ez4Q+Kq[+e 䐇 !ݐp(5zv(8@#K'aT `paWxyp%P`R1Qpe5 %uQ܀e%PhC a z  B.p8! 2pzшH)IԸpltvQXlt{X4>j` X( H,( hgOK׈8J 81L!45g܅ vU]i (V$A @&5t1Uxxf$#f[h'frH%X6pb)Jdf8<˜》yؓk! tHeٸT#Ie]ܥg`1O$'.>iׂ)֋IpRi킐B?A9'ÄlOYTa}k!]>)?(A>۹?j6ˆ@j& c'|JH8Zzڨ:Zz2leMȔpjq"Kg?%\#Y TD%Uԁ0 /b,V!m`9qT䩣:#x ra aEPhqSBf[6ٺʮa0PԨ)02\]lPKKWV.I;:9ۊhe Ĵe:,#f}qk% H !,P,i !5kM)A*,m3,WjP |l[XQ {JbPyl*Z! ۊBg0 "mٰW%풟`Pfꩺjۀ GO!Fpf;%6:a9 {*'ڨ`=g*zc<{t V`+;[{țʻۼ;[{؛ڻ۽;[{蛾껾۾;[{ۿ<\| <\| "<$\&|(*,.02<4\6|8:<>@BQ*e4 ! h5_* NZ*Ni-D1 0\#|꺡!48{`0T.;*|ƱNm,q1 u QI0Nd4Ea.l 3~`읨s/!Ŵ>"51Ba"on /^i! @Q 0vvm,};eGOK*S=&u[AQE3!v #Lez{;gDI_oNELIYopr?t_vxz|~?_?_?_?_?_ȟʿ?_؟ڿ?_k{R'ЦvXA- t;*tA .dC%NXE5nG!E$YI)UdK1eli8nڝ;py 7rq \Ν;M,SeWaŎ%[Yiծeۍ>I3)׃ShǯкG']cȑ%O\e̙5o)b|@.["wjK:?AmܹuoGT,0szE;'T|tJUŏ'_y՛\1r;,Gano= 4@TpA[d4J/|/]qlX6:дSTqE[tE-J D848L HDhqI&tI(dҚf1o9gA <=FMrN:N<\+C|yvIJ/9Rs mx+&TRJtSN;SPCuTRK5TTSUuUV[uUXcuVZkV\suW^{W`vXb5XdUvYfuYhMv Ag Z|Yd9r TIiw\r˅H tI)5u\z^d0. Zdw` 6U})Daxb+3an:B-cCVc~CѾyEVye[M.m]\fs?G4jyh6^r"gH?ij>W逺#Zt6lV{mvm{nn{oo|p 7pW|qwq#|r+r3|s;sC}tK7tSW}u[wuc}vkvs}w{w~x7xW~ywy裗~z꫷z~{{|7|W}w}~~P$Q RIJIAA-8BċcN:10Ψ->:B6.@^n@6  E0F$^ _.llPaQ"`oPWQ"!;ЃF2F. azG<ҏg 8bC.A  C_ RHk2qxXbȤ*"QR=E`$BF.)[T"Rkde/}K`S$f1yLd&Sdf3LhFSYs\/@q I191ud$*|Q߀A(:2+SPc Đ&zfbn p[l~n7t<N1J; X 4aQE1gxRIc0 ǙH110yJs包Ay:FgRPҖ".`CqU`̰bNcwsmc T=SҘRJDKrA)SM'dUjmMSܢ < A+>~q[1'I1NG[qWa8e/zMqTKRcH=*Hcs3(sHPYR(fL8>Zq{e$ juIZB< Dɉ*nIjj0Ӛ4L|I۶vYV^Aq",YYe\Ж|SdB G o"/P7kLDɩrL$T҄7K!t U"C9<:l,&fidlH6\zϪ[re0Yc&s|f4Ykf3zZ&ds^JEnY؃!)GՊ\ OSl%(B\g&:щMڂ *,m6WdTG.ZrMI!=ҡA $%i: c%.pA]lE0$RvGkiD`J y|Vm8G6-&XaxVDzfVPF7ъc[jM;ҝ8H.(# 1q^"!pKz;0<:0c@8*YPۘJ:4NqK*s|Zh\\nVDE1rztϰdܹ ;pn&'iQC!iBa͞C㑮V$o<E bM@=q};$ҡQq%]4%ˡm9ԋFi@3. h!CNzCv׫1bODzICl0GJ;B!Ƃ.nW23u<uwH{&k‡Z@ۧ;ۊkng෌jl_ЉM@;7h3#$򠘺&BTm'b=ЃZ @>X>UQ [ps!.d4؊FOd;t,Kor?`*:B2kHB;pؿ}Cpx sȨMh'`;Ep(n+ kl@h O@؊]$ek$q|)TAwt $JBg84wBS0V8 whhw$aCHJlYbex,;';F[L@T!(㸭 Hl`ŻH8DK&cE ƲQ+ pطyFX@06 |(|ȹ0tK(Jp8ʖ(.,xD,Ty䥉D$8PL sn.p`KxT8.Ќn1c`"'S TH8lMP &`]7Qh@V%_ Ռ4|70%дHJ\ҘzÇUh4IZS|0D87AVHS!l#D""5wt9S$q`TNTHӃ)H$ȍ,OKMOL2:4Гp7O=0A> ML WleЕ@>9)Gl e'UxlD؉U kQkKxP0ahTQh7IQ_L<"mFň{ܧ`f7 +-,=Ь׿?d4F598]p5|'GqSH!$eI3gp?<|0TD켲GT2IMM0TKeY|YzOP5 Mk8TK` \6V\ŰUkZŐP_E@@3ֆh>0ۏlX[ň-ŀD7+ճWuh?;|c?bH&` Me0eȻUTxgs4R TX(lF | Q/W|\e )PAbXXpM ćݬA‡3jUR\w;4j>ت2X~ǒ= Py-ĴEeIUٙJ% b57Kk_hq s1O3Km\xaPňPmXRI0BI MJI&2 PߌR !X$(a.aՒƣ!FջEVUWX[:cc(% iwu:d*A|86na7mAȅ'B=^mA(\Kmِ,EdAԖ4`~W=x VXi&SWHν7 ;j}CȠjjkkp%k ]8MEq3F& LWFеxΤKWE 섐^> #n:0K5=l;/HN<F kv‡iЫ 4!m"ߓ)6دt E6|[lJs2vz1e31.8߃f:* `n8fo#o$,M`Ž> +8kօap VTx>Aj^ƶ6آp }s6PȔ@#Q"qP:]3fFd@H1IpmɯLh-7޹s(4K >(rf#P>8m (M/9p8n9r̳l#R Droo9$QdM>kE_t@_ns<0.N; 760*|l/FIEg r|_ڻÏ] H-6?xc *8+oćfM@ws0nn@ 9:k˦j+%&P0 8pp`EF>MX~rjz<=S0Dx[ҏZ/jf`#"@Nbx@}@@}p|stEA2A?fG |@sz6!Vb%wYVvpz_?5Pa߼-Yʐ2S2AD2>¨h 1 S P 17|b1Og{zsnd?&#@angTXlc{N |$d'xGʎV{R]T~+bgy6J~4Aֆ\LV``|ܹ̾l̥g !e%6.,r i̶#PBMLmXuCH,>k᫩as/3Khm[־Ѭih*DvK(,ٰ6V>=+ذbǒ-k,ڴjײm-ܸr-.6Ʒ\ѯ{y nYl^6D %lCx18^x j;rFQhr@#&d`7gV7p˂_US` H5PC͂ (% `WOxQ6U簒WτxS6 '#~X"11>Ob>1D$miΑI42$-01NH#JFND&BUMgSs:fGwX~E'XtS*(:(J*i^m80&t)>zcI,;\ehMNդ/%.Qt4mR0:RNL,[PH qLk"z⃁@n3xʝc)gM&κ ~3!a=Ęk %-~!`*#N4ra9]/T58hJ:8cx3hcQ o&|ΒR2ճf̗NIdN٬%DHD>f,LoL(4~&h`?0ML|tLLcn7dΩ5oVy|7 >y S4ᓍ_mXN5!mShdY⚅NRSư3A茖TmJ~W&d ۍ¢mM{uf].1Y\kMM[~lQl4ʖQfă0eH\1gMQ|QCi9P2ٰC#D>g6!aip#2:4E KIM6 [e#cFl3c26ԊX$[閨ᮊV"8yQ\68z3&Ʋ ]XL~ kTcHm}f&/1 W0!Bd1 !-ޙZx:1f1H dA)$FA3Hɋj4` Q7Gh8QqFq8l C .<4bgć\T5P Y`Ԧ z?<9L A6GA1jV9 du=,WGAtbL1|HPtB2)dl%DF(q-0vƷH.})Lcj8p 5mC$V%GOœ^ߘ 7qHɤCzS*dk!nTcj6j"X*KIHdC S1 HB$AoaYVb nd$Lwi=&zg&AX)bV:+b}`A?? H@P!<8R`&QT^VN/'*< $#Ro ц`R tqcZ zQ2P+kA R$Q| 7d*g dC@pN((ѵX{a&Τ8ƐD+]S84ˋk raÌbG%"LjŻ򈁥c3b#X{ n73DvDXx|3Y {\\mm'XTkqcbOFH΅Gg zLsJ*2V3)p?Xp'4CM6䕨g t?kOMy+/\wL1f03dk\%eن-m""G&sz6bRL8<#G*Qv%sJMi$ޛQb!p@8#.S8pP.' u9.K$?9S򕳼.9ceu}OotsDF?:ғ3HƳlrSV:ֳs^:.f?;Ӯn;.ӽv;~{mhu?<3^pLSk]L/SoKbթ_>Y??ӯ?/ӿ??  &. 6> FN V^ fn v~  Ơ ֠   !!&.!6>!FN!V^a]D`~BMDM!6 G1`8p_ơ`& t9>l%!!"a68!6#C*a=%^)"1 9T"&~"(a("*E+",Ƣ,"-֢-".."//"00#11#2&2.#363>#4F4N#5V5^#6f6n#7v7~#88#99#::#;;#<ƣ<#=֣=#>>#Rf@C B:BF.+PI$F6BF~-"" Hd,F"0zId#*"\Kd(r)DҤNZ"+N$PP%QQ%R&R.%S6S>%TFTDQC3LV EVJ5YC@Y% Qm[ %<]e@_ YQM0_&vOa.f$xeV2dN&eVe^&fffn&gvg~&h]\7PChf!jzj&>&,Z&0A0AyfUUF&Z QD;Jj>a~,(EtDTr5+'MbEdmCV6̕r8DpZFIhBXXs11|ٺ`O:\@t9C'X' izʞV@X96D8a~ŖE&\i[8h\f6 *N`TgY&'y)0(ZivSXK 0y6EͤhWd|(XBoMlfeHoeL`NM|Q<΂0m*`0H 8&NLMĐlʦM0jY6hG5of+vfЌ[B 9YM4jrfLKf+t;C:Hg*š_YL.Ƌƕ~ERHF~o@xN ^VjFfHmì*1AϨM olW*>Ao-&fNoM&$,H ̶,> kf貖C,E=mDGhP*r5nV(jU28,N՜CǤ6D3hۺD&0A-WG)`F9*Z\E$nnB/"L.._4f&h>lIoo.6lp".p*l0>d8sC8,6x>LW NATp4JC_ug8lƠB_dև>+լ$Z1>T2"toMO/8 k5ﲞX> l\MˍV񽚌fT(hWt"'r'0S!;# K8lH8hštr'W[,[j@t&p@=l)>0jw0h0>\xTiL|(@ .{E*THj%qUMo?oDLqMϪ,5j 8#|m6& C yDMs<[L|h As<SwFobEr6ϬG#Bjֲ%-B҇+Gw4(E>E)^BW "@j] ,>0*RNSO3ɦB*HT 3:n4C/~#fC&U_n5X3c|/` ka-ifM4mtmBgV(]^Tq4گ,%Nt/K4$c$_tIyy4>G8|h nnpQC`MI Z}166pNC6ha9>=mS3}-tulw3&,*,1,5Vm6-[XUE7t7+ ڮD|mcsFp"#tDڂC/0FC}gû:f6[ goלE(pM[Z>ه̀0ǕM@p8^&_MZ] rkjH&l$?64-V6\lljogwwkZWT벉3=y+ )C,d58VFc(YCcǭߓu%"B0 Bp["*nn#(mȴS)¯EKQtMfÅ΄U@4xěڟ 84@ 91ER{F/_*e 8(-Ҟhr6ܼ7-?GQ8C;\d>>z?7 zXy;/oK)xkFPI,@\~8QWd%`~E80<L%>| $@ђ4t!$xѡB9rL"&#I|R&'WҥD3iִygΙLvvhPC5ziRK6ujTSVzjT]Ε2`,1u۷vE{N9>[@7v<@`p[߂ (@9x=th>1(7Zp+کo+W AX0ق[%Z9|܆D clf%lg#P&0\]'1Ō0bt:F/W>D#K P&`\|%L+03iwL! 'lDIGCI8@$k.Vl!K R$2CId^Aٖ 7qfH4Cl&Mܢ mKڼE"&zH!DkP-@B SK ;@@STU]V]}$,C8@1X`bvTQ qEWbʌ^I1 @ͤ匲R<ɴ(۶SpK(3i2MlLqg5L 8'2fVrdGe"mH=!*$@#J7OSN=-5TF N}e暧p֯+:E2Z`:C 9Ҫ|NڦxkŚ9 sgm Hƀ(y"F8;W7 fzF* S+.X@fX* YB'2b<:qD -;A eOCNC p2$ 5@$Y-:`B. Q ) ֱ,|pB ;:SƠȆq(&' 452M0qb16WB/ˎ QAES*78YNs49͟``d  Mu.&>O@ ZP UBP>DkxF9QN4{HGlbAj(&ϫ:yQS4dPȚvDqrg>H('R[ldoxSbU]8rl=xt4kƨF H^Vx5#8qT`x}=$Vuqi#> LfTfʪq_HQD#>~B)U$>i>8{gPIM!ap9* 3H*bӌ FTè-Bjט Iph^nWbGAl9z^D;r(AҎ83i0r`l'ZͦElGJގ嵥ix%(ۺĺ9e@ @4Ao@NPQ!'$L:\:0;RvoيM21e1 I˶0`t05* fqQ0 )F;+!mZ8c|8Jj:P[R1 rZ#G6̖((%|H1/L ,4{"3L#ZN3@9-RR,f먎"o#60,TWQ,]4"+R#18C!LM-^PCr..2-0ӎ8@"a 'nGpFC!H(D,hjf0Pi*'"#c5AkRӘTR * ]oJd,&&1#Skz@Ҁŀ,p,P)ŀ3*C1 +H$<+5(#ʲb -qlr;Z Iha !i̭B+(gqE_H#A4BDC:4B(̧A֎"cˬfH jCG$/x>/|HaHJ(ʿxԠ4d}|I_HϘ||`ó-.,)=R+<@r0aq]+Ԩp WJE2Q5-o򶉞(V4Z ."O/sAr0U/_^U(RXWhE!xK!2'jp^*P!6"ʳ*8Z͌S1mbF)րLA&DI _E,OJȋT$aQ2|ಲt("Pk8,Gzk5pB8p5خx̴~Z/sZx`gTZګZǚڬZךڭZ皮ڮZگ[ ۰[۱#['+۲/3[7;۳?C[GK۴OS[W[۵_c[{x,E#zAҢ |6` ja (Hs1Gbq5bk. U4lA`f '71lA `[ ˰Lac [m Ϲכk;Dd1c|0#K2ʙzʧg<˿ 7.@㿥@1 t8` 6 4S,x{By%  aC6M:[loWsV4b;!1Q{1VbM#Zs5b7SY|epFiR1}No+XLk:s}1%jٰOŒ;^emؙVٞ#N*e鋧M;i>W(kvs7157a-s|WN5-G |=Lc4ܩ_zw4ge0Lcl1l@@5p j(pĘicN7CAxUa9p4GB&Z jX^ ^x Ԁ\ &s!3 Z`ԀGjbLJE$ZظV0*KĨ^=|R"8D:2bUۘMʈGװZ٠Zec]T4fԁm *L 1|TYagD K̏y ru,b@RL2f:Ќ4IjZ̦6nz.bAvqs ć8yNsl'>iNu'=ىeܳg@OT%@YЁ  C#EQT ]h:v2*x7G*(}Ԟ> ғ,gJeST eFӆD-:T:%G?k>BU~@H" ( XoA8IĴ^~|8?:d$뭆bW6HKiЗ+-,b;IFs:YHjEYVV K 9T|L*4ʇڮdQ+dqRGjk 8G*t}ѕIpV(E`oKo9X0Ucz g# )y׫Y9 mSE=mJH gQmqAťCM \<#PXC+#.I> dzwa*^#>lz{bʢ/^yޠ׽1R Et#O,| dtY!;Z8U!pS$N! k%Iںc6(n:rbw͋E1;ꝱ 8FjQ,áJȅ$YpTe){[ [@ Bq r9J7y s~g:ε3, ;Ac;7E $Jxʘn{JӲ@MD&bF|k:ֹ~wwMo`8Ͼ7\_bh#H|[þ"J[~9qMsw漞Kso~/!?9 ip~zәVU=xJK~1ePy])9}o۝<=$=jwGj~r F_ j#a^G\#A}6H'wTQﯚ7PMluAq\] k&<9 )Ra$˷۫ܛ#䛲P}dwQN6I! Q찮QHWS:` jd|ȏ>agǘ(AgfZjgX…  yA4 7wpkåė;|^~芾>^~阞难>^~ꨞꪾ>^~븞뺾>^~Ȟʾ>^~؞ھ>^~>^~?_ ?_ "?$_&(*,.02?4_6o(k#5na4|I\C 뇏0PI)CZ<}c$(eI!" B_ Z!cS@}A}Z"Ha q"6st*D7s$$FFq vC"a([qF2 uc('8fÝ9e p,(>v5g+ŪVH81h3)Y>|eA2 8./! P R,)bEAưfH*+:\:օe=R4^;4v `g<EɆ;Jdž*R1*)ba4bMaeVeE*L2dJCJV|(aR8lTh40'g;p4Qo" [<+#>0Z!IBLea}+[MlM~bU>έ)pz(_K."( %oR6Q" 6^! G9Cjm="5ƈ7#>d8ۂ cN!4 |% nluUBǕrE&E@2KeB (FA X}aŊzD{ T M8Ǫ =qE(5H!qziC [F[lr0ǩ*%V!NmEApb2x6@L"#S6Ј;:Qܟc x>QStc5蝸+P K O X'Zw=P:CS\6iZi~Gqi ` s/+ oVⅇzE* 2+ϊ1KV:8{5 =h6Q\` ɟ'%]`oA,KE',=pݰu/~r#6OEx^w }HxGt#y̧Ȱ,lO0@!#GM_zf^g}]z^}m{^}}{_'~|'_g~|G_ӧ~}g_~}_'~_g~__ @@,@<@L@\@l@|@@ @ @ @ @ @@@ AA,A@i\Zbxr.b.qG?):P'hYf`Gv$C'3Êʈ< /;ŃĵZa;`_|CD ֐獈X- $U [2l߬ra{9{9܄.ۈ ].bl[ረ\l܈j02q0H}Mb&vb`]-n݂p-Xip2&V|0SPXc7fS`//.ԍ݂`]W,2}.C~2ndB]W8d;P+xdH-U ^`^|(G O=ނτq?(9"$q QE_9Dy+JPtfef!YFUL`f!YpQMTgsB"nx({81._Wl~6 Ӵ9kM9[+\ƥ75cy%.)ք*6ݎcBݕ\jV@c4~c7F5Ec-~ֵ:|crdFdCD]G䃠idN^Qa ^xq!jj6.nS$Oمܽ]fCd֮quc8qƊ/.@sȅq,*i R q)?Fs'@Jt@نmOeas}Cr/ ^ѭ~Ub"QdWQ"6nn.voZ"7bhqo.b&OȤV8U<ӑ~~R[p.ZVHMbGMp]+W+o7`C|ee+)BUJS)T^|ɓ*W%̘f:V ͜9VlB#ƪ)T12E)ԨNBu91Z_bj(+|WlXG#mdD0岤r+ކԨ9knC;u[E1%ʒ krĉ]3Т='*rFMg`Հ:Vk§ |h.]-851|91K> z ҥc\:nvŧ\+|Ï?x-%^|}nD}9Skx A'Ѕ xg,Ô,wL̈́ 2Ӏgsg(FEN: ' b#t&BL0#99nFFh&M$9Pِ5mOaLfJQl.g63ڄ)<}S48(nd >la:EDŽI*5Di6%)AdEiDؔ#jB48h"jRJ&-TdVLDPA 5MļVLRQճUI5U/r KkYvduՐaXl.cnKK(5^z/>KM3RXbJŵQ* /1kO%KC$k } LP6m0u{lFL~Q*savZGt*LgM } -}E1Gy1ad;i4b"2R+ 22jLݐފt3]*蒐 9dum78fLYe^nDPc˙:M0ryM-¶y1n_up1fjFcX/6BԐ*$+TJ[%Y% Yޒ;.>4tKBy8@jEK)[K-[F1W¬uKcޕ*ZE }_VSЃ ׼Zr0mbhneX"lsÍ 6l,&FDfkTh0C/aH9Iw EhB rX^ɧ!q#/"t@']{ y(A>gY!Z:dCD&cu8,,chBp4Kf1R"QTꛖ2[LӍ"tg1Zʖ6~!#pl2ҋh. sMm4sh:z9sdCptsLpVh1kYZH1atD]Vi`LOdR m''5fԱ9oPzָA-FQXF5|$rRNdճgevTC.Y,IB:OʉO\q UI"A<&61S{Є=>!bNRs٦ G/-SV:ֳsi{ 0:̜:)}2o;ӽv;={\Vգ8 i+/`<3s]Rѓ2+}ճ=c/Ӿ=s=/?Yqr3>/}ڃrc_nMvh3"?-S$U2"XV?%7Zg7d ҲjX78ʰCڔt8 >>Yr`0 zC4gCC8e0V4S13@fý1ZCY5e*aHH 3DhW2en1V ^tUOa]mP]\glYalVL?B! E8RсfQuԗ8CfG(8LVt >xt;U7de\B.̂Ā &CE1D7D_7 f0R'2G}}"aE.nCwxV#:"h`㐘O¡ȡI}O}2">^00Ї}%5C.FAyWaGvh4vAh+Lgpe@@b1jfB&7ID!0ځTK$|Q gW01 -<$!H5C$dmBY !6>+hħ@\Dld$f0Ke8J'4Ja>\X?>_nG9lV|f4g > BB" A$LQ:hLdYU$iZ8gG7 RGXd$# cCl#^B}RLǡq( ND5n4Rh`Ktn1wV R(8F1=R3(jH+Bp0Xg"nl2O\nB' h'X(~%6 UD@R(DȀbB@BFfݠtDnt̙ĀGjuVh h] (3`AfBl^FX@Gv(u.9 !n@AT1Beq5ZxsC&8/G+iD eX h6d6%\BlA$832>B+>qD k4D)gCOC \fj^ _:~* _} P„`b^Ć;y khfW(thLDžFk}}ưkZtgëX2\ 6sgN*!rZ2gxiVDH>֙fIrS) 4LŌ%XLB*BdCy3DŌDa"8]FUnFDHC'T@T*ɖ,f^0P a.A@ėT$2 Gk^kDb V l Nk0 Վ-܂D~+ĕtOCٚS,ʍuϽ+E.D8T%rW3461`^%bj%~aP5@ ,fx c.BEyB",I׈lWeW9#KѺ@Һd^0m>Em/L@@DOv-2yk$LP-$NCH|Q2/ R6-F9܄ RDDC.E.xLfd E $`С1[RRHZu3[Ht`kZh gf2_!ଁ^JD\Ȍ~@h/--@g[t-$W/v,8cL0NF@2ETą'n>'F,Z2? ߐtR1Lj}zo-5QQB)="5TGTO5U{X9| aUwW5XFY5ZZ5[[5\ǵ\5]׵]5^ġn^__W4Ȃ 3 !}ET0e5E_?vPhȰh68KrSD")U0vu>A2GDAYBV Ln#_EfC1EV2 6I X oĶӶ"#>.974`~,4c@%(_% 7$[%&c*dAbv'kVm"8XAW7O/&bԣKpĝb*6w73 ß;_^EDwxLprSi+8ىHjƘ9f ]ćC։ot6Ĩ0Bn}ArL ̮"6:sAAʸ/S Q$cbHSFfWOo:[zH-tBg9~S08dyڵAq:,C;C:H7e6FuIJ6X6'd|cKLv:ā0l4[9) X4*Z6BkIEdeZGɇ +<[93CZt}6JDn0XHT>%D\%M|⹴T.Dx1C7'׷=lTL`JAl:LQMb0\:zC#l,B tAp3{n ;8mW~9L^`gGyP$~n&7oBAD s5 hy/Vn0Cr%s! r؈bG]lfE+t2E V}y*8Bold{8.3r ÇoA|*&bDp˪)OÃ*Ql,Y’(ZhK%GT^ǪaN;>sȐ7yl%ʼn/P?V4PV#BgjU(߰CM 3I?FS{R`9pa朋4ܪx={ԓ s{.l/m*r_͛9wthѣINțmJ IiFMs7v{ݹXpuc8sŻKT<5DU\yS`+Tb bRĭ@ZГ6L| EṯNlzWh=hL@wW9ftx2zqSk,Ɔ~y:-Fa47 嫸|*;sÚةg]I ϙ!9jmWjo7,`XG^T;G d͖KeEwxP*08&˱/μ"[VV&'9YzY2.L *Df\qLMhg3n.+0Kj&<ݶfY$GMQmj#R.f*)e |蹿gXeS?X]0oy_@( Yb Y_&?` [(]?h_.C2 - ZpbD*RgA@)0)xMp9GCDb " 06^x,,I"|$d BK ŝ 3$'h)؀FlhtTءI- ?~9$f #q&mFҁ(EINvRnd_#px(jȓ ecLܑL5ihPOC6;V_ءQ:ᠥīIDx%T'!)Ll#{f?y @r}GNBne=B t+dEҋ~Q2f2AԉcݢNʰf# .K~KL`YË6$GYSm8 4[%Kc%.&F51"&8"dt`ć.~*Í֨qv5r3!5>#b 7^uRCDɆBNIE&IǂR2EH7B^t) a6#|lBPKD ԯ-.cGm*DѤ5MlR)ZqEP%MZygt (InRncux򨑍 m&>:U#jDy'Bgˆ;sW2?V6/-R \-LJNH{lOy"I !:b{w&,%AYi儌iNnܐrVgkFEA7 h!yǒE$K&sPe(` yg7-hXTXc99@5Mm GȳΡ ?s mu({,oYgh#S*1VCJgETLbV`Ef/Ij&7R!ҜfL(٥%zKщMt{4cx& oxI|#JA m+* O|٧?)|2FZE̗nfe*%>*u*FQ_1aeZ 1]jB%&$k8D;*rS|8Z;" 뀇;q](cF}g/als( t5A9lH.pmyz2f2|.]:ˌ9I=8.LkzY;<{'/39ȝ6h|sn f2>cK߻~Vs<^ C0 ^m &vobvkيj 8-w2r/-5&\HBWC|/-"'e)goД!G$/-h,S(&τt$,‚eT(㺥R#pZl^cPgkop@HsrH<vi36et aLw0P  P BuHr^NO3' 3r( l). =P\A P;5zBPe-NbJG m#Q'+/3Q7;?CQGKOSQW[_cQgk ,M'~@t!Z@(4O'3]ɮgA11BMɬԠt2sVJR+d7,$E2fb5'C5tC1 ?YbX5L f/D?q/Zt8!e"$DG# U$ρ 2"2t-2Jk'uU[q"K5aL3'L !O@?rFFvi MI:t[OVKaqB;yh6,mQQQg;{hURcR245ҔbiC վ(CC1`Ϊj@ b@ c7IW_ny"5sYwn$'nYjcZ EC Y'<'A7$]_aLY(]H<^ ^}A_ObMTaT!30W7@ eapDsH L/gbHqeCevca+gvPz/Q'PPy",!U!h˷)R@44 cj/ɮ6dA@DIlӎ 8@6d?`Wה#IKcYbou R^pBp! ,$[qǕ\6sZbrLQA ]ޕX*睂_u9#sⴴϞ3'PI v<xW9Rii#ϠABl+e)9BAU{蘎 5'U!Uh|)=b7Fw36(8vCc=G76$ : 8Vp;Sぁ>nBH>hdzo_$pM+B*Kψ^+wK,Qrx]cs"AM)M~+7#sp vsbLu7w%>bt'X:OkHԖ#'woVkP8g{Qپ ;7aDcyCaٲ8vC*’IdN/*.aKˊ z!mX8~ yC!Bbz71C9$ӄںK8 \Z(Co ٭^!t˖t!y3\s<[^ewv ىIG7&g6{WRx"qSTiMyz b69Q z{xi{g;Z5>B/F.ᔍ, Fl!lȸJd h0d0sf&aj@LȜ ?De:bFv<&|c<v`Ubo;%yжAgЗ@y4b53,I͚MO @p񭫵5מ :$ؖyv"@M%εZ"8T\ ǟ®%\ڊeLx9owg8xgw-0u bN5:ꤎ F?(<{f1 N+88R4VaRA 6V\!#; CcC8Z§xG0'~uT ðܰ-^GKwH[4_c^gkos^w{σ~fjBbC?y6&AE#*dl(=c[^u x6aIؾ&>'b0Pf' oD}nE?cp-"ӑ=c<Hα&:4K240 H Fh!#:b,$z[!½ab+*Gg9w6%?c)<,B ܰl;c8P(^'Da ~/6jA $)?,s1 R.!F?p30eCAhfA~)<0_,"ݴ` #r}1ĉ+Z1ƍ;z1 2D\7s`㆏9|,ڢUwh2n5@=4RZYc..s6-4nbiՍ˖ = bٲG[q7.\y]:3沺8Ō;~ 9dFWl1KĆO2v(ԩ#0gI< n"YCL.ƋJp.94TkD][\dzP@=EYۻ4kӎ'^&59DVNu)`M~L`PLl" ds4Tteqm ^o5>_s45}4#݌}S%G%]E ?Q^ 3d]E :HYne"y& Z^X|P5 FOH&`FJ T R BQ3b.U9YE`fl_>O5X;n6 G7kU<'_teW ^M?&lYeasEq6;qQ-s1LLqQ>s)Ng3C%Zou^oMc]a)8wܱkFTG#J]PT0tTk/_s~Mb 9(StEQh Ea6U:Gڂ +bDMJY{1Ý w/8cf߁үUg8"Z2\if61g}W4)k5W:VF$i>)o ̪J)r\#4 __*o3`zF!WP>T\k:`Ah@5j2&ocd*du<CdQ62"YnDTƑhy<1NSCmWPqDwqGp% *sbz!tJ%T}( @%v/"b;'JhB<Ϲr'^ P 1OC^jAzXo5 EF {|D\BHd;F l+HЦK^#eٸD݄aC%% G5یa94EEL2|HYDb4\$F!,CsiqHS)w\ `jʻc;bPlTE Xa11ʮ:Lȡpc?iǎdsCIWh bImKvy$D`ЉAMxBMN^xI"{JҕJeql ДUlsiՋ14)0FQf$&Wt$g$nN3<ߢrBg)GecH! |Py[P)"EHCFݶCG,Og2Waj4"F709uY1XIKr&W.nHrH`BtH$4wF&0cPE! b0ê^X`j{3+0HU~KkDyJ+Zڈ. ި^F4{r34"yB87faJx7$+yQ7$"X, 6E=X7 V)L4zd C!w*CB3H1vwg褤 )7D{; dUXNs5=H@. j4R6XXzmU;^36AyF3,w-3+Ze xÔb5yl`yE}&4o@ H9)40m#FRD`=bQbǪ;Kkp`f2".ΦpO^4\hC6p"vPDF/ʴ+ F3 x!p82jԙ39>T:tJ}H/]y8OM݌d`8zF/IOҧAVP.pt;"$ .rIHQס \W+w^~T:,*m/a{,ǐ[ M0I'iKŒx2X([r=1J#p^~ՀR6:a5qsz޲ѓet$x0"3"׏+o$#ѯ c2 .?N9kCl/&$az~Hh Ȁ (Hhȁ!(#H%h'x-xH !.h7.!c9^1W?hGe[Qh(0-"WY~[d #caXT$gidZЅLjQuhw:Z[Pgah֡zHe%[(HI XP7豉@=Ph CqɃ%s^p!L2GUgh1ò gTl]Fal0sj)X1h03,a ,cJ ~Ϡ $A'Ѣ˚ P3X׏dua#3q*q;Ibś  .p)w.u:IDkqP3XEwE v!eXɼ= ŵـmQ) q.l|"C2ύ %0naD %$d+[1'|H&ؒRSr~1mٗây[ٟ ڡA-ڧکګڭگ ۱-۳M۵m۾}}Mp ޠҷ-큼]$r/ R:ҕa rMWfpD(|1 p$0+u3Xq@"7*s;I@MMHpQ,1ó_`fqaG8SƬ~[{Ja Gb=|aZ! c`(o!pE, ~amRܱ^uaJݟDvQ݇4pWnt!7[qBl-hP'' PwqT ~n7 * . ޡPw1Eٵ~;w*0-!qSj;4o RӍ}7l`MRLh@L=D"IqR\RL5męSN=}TPEEqђ60k96& ouG)N4ʦm3 oΉ.\sŝ[fȝ#֍]F7Ydjw.W; [_h]pF|ȡ;w1} >˘=iqhÆfnZnJ 9&yp lIdV^{0ܑ$F}qOWټ|tM׻s(Nrh$WGU&b%ae"qX皎R(# R!\^eC*&L,1:($YT%IFzOr WJ+2K-ܩrFҸ Ĺ`ʫā.|I%UvUCfP$gMPIYZ`y5Gsvu8>_oh;c%1 bl6Lf^*PҒ1(4^t 9Cc(6áI|XGWu '4g@:W44_@tQgԕ^i_#.AkKlݾ_o` RS|8D>`LGC"%6 fUM%F2pBH <n5awqE,\y")RP /qeFqp9J Z%׈OX.\T,RKePu 7M=O6s"*Qi}'ceԁ*+Xaoh\I!㣣lu)/vt8 ^ju;D _1Ny9hV)/;+JU'K?ҝ}Se `c/DHFr#XI-~#5:tX ^gxg "#@"! .tНT &kT؎'1R '0'xH/k'(08?Vx$&')ŽT!2.p36 ˹b464&P&`ʏBCz1T҄npuHqЋl8도9PQx A*D D 00hNĶ:EE>LETE^ć^l`$$!Fbb>|4>|pW5fjte,n'pH@>H?vshI?i ȿ,q?y‡ (8]\1]Ț@ r`;<Ű!Ʌ`Ű+Н#upP H8|`gxC&=XMlIP{--kB-<0D >@3 p(6h!h Td˵؆pİd>`Rh"ؿRDX0PpMKS؄t)qJ;񟂐5Ex\0 x7ŝE\|ج4TQ`a,LPSFlj$N{Fn/g`|XE8tN-+Ⱦ h~q ? D@p \p~{2@|h '|pHH9ӨkxIP2!Ru\$IŸR'B*6J~Q!|Q]:5~IJJ`Cbxh !SQbh&NPҹ# KK`@܍"P (<ҠMhL|DHp |0$T&y3?VT Q pS#)M<*cEJsԛE]>٤Q^t/] ؑ2Es030 ۴}MpgЄ9A I+qh Bl`6J>ÝTE/>\ĵ4۴EP 66Fj \΅U99% gXK`Uݢl]? y\֜3 V$}y]P^k\Iz uu#umޠ`UUt^mŘ _)#%PÑJQ)Bճ չQU* ZY!_M&QIlh [qYRD\&e'R{QƨZZoU~}Km9*F[;]R&yL ! h#MaQE=AT\`.bJ%cI4N- 7՚0TV5M 2h \K@=V1:$@ qNHϭ%ie $l] Q6VI^A s] @'ybXnv=e wm(nPbZ20ɈU"T9:YjFp/dizɽ&'_-\ҥ[I+gHqTJm$F$K])hA"0BK%b~(`9mX6$M$Ɇ>'A xb Di&♖]śbi&UP,lN(-G XXxǙ- ?wֽ ,ylt CkױA Xg姠]ST,"uպ \인, XZ/Z;S.h᪉'‹o=p0BalB8ݳ##t;m 4.AY T8Kphܭ.K=D(CA,2/AaF. 1/RJPTԑj@ T`\ūU, δ/Mdo/oބc% pbL'><^Ugw%nv}\@8[!M@ivPerR y0 ֣6w- "ǼYhl Dprx M4,YxGwJQ7Gf+ۄoxg @~ -xoy72N& GWgwyd~ў@v Q ҝX= 6Ƭ u؍58a@F ;iМ Rh8fY7v h637|֕z,X ^) (X )<(*HC)b}S4w.xz:gk^6x; 6AΗ_.`B7H,a96v6(w ByIU s_ Mp(7߉׉U8'p A_ι"([l vko"/b̨q#ǎ? )rEI#qIq9$yox`';S4ظF1عw2\&ҁvI̍_vq!Pp,x0‚t{wfS/Չv0axsL(S_6kȲ\b^,{O@Z*WΡ"gC Ʒ9nR[9ߊY G+ g9wcLE|Esr}1yw1cu+ݗB Q.)u|raahG2Px(NN@ =@@VY阓pQuwEXl c=D]>[VR`T#>'5%|bvqV C,c@b$(U)I tIKB(>t(x[9܉@D&#N6M(_`^&UdcfhffbFq:@-(>ϼ6Tx#K'eŦFswSFzho 8~Z(!!AB(H:Պ:Hr65T):䫰X ,߈A4S-sthZ DìUMR5(ԗ"DUlmX+{NuxR@S,}M,r|!;G0Pq{̂8x`e-@ xvh4о0Jh t ki Hpr(6FμC(ZJqڅy8 q)f9Ļ0G"5 i)͚ FH3c .m{#`FE YLP@РpoQI" ݈CA Yb \zHH *BIݠ ,J *1lj+4L(tJ%J- 궇夃Z Rx>^A.rN6m5 ڂal&Epu8ș-+46Y>Z0<h(L4P6P{F[U\$(> $"(GЉ%AP?Ǜ1F e(q8A80PD!8%HFF',pT8&y1&/ j]kF☑$]kDWDLdJT՜$8l@X aa; $Iv/zQ .u;AsE_-Bn,y7ݪK]|sADzuW,xK+杮ET>K!iR,~GI+*l.^$V{/c@8|/A#R*@4B%}hVaa xq?@↰(K*;K*wXh'Q-,g+Ol2|HB ^n;!h[nJP@D*jDZ" QFk | SEb9J1$faֆ^b,Ao;_ mES"MUN5h|ᗓFݤ9S 01Hn %.ibXMqV=ӣ6u j[K@$:Ⱦ ԟ5)yd/g鑶YLy~\u|n޸Lu1s0>ojkUX҉$7)_,/д4B0Oc\ `iB tUҡU$ 8Oo N\EX879$Xlt Q1/h]l f zHtCXP ~CҠT \0M<@n8Dl.eCe.SN@!Iޑ\<@^N&^mpNE2ނ8Ķc8O1`ùLG݈|K$rI`8%3  8 j_[Spف X&E5CB_0 8/Hs Pll5D6$Fq܇ _F5.8~D 5d*=ak,`N qQ@iPO6mCDK{DK Ua >KN +D@E8:T8]$>8$ 6dT)`M >!ip*ťy'Ne(zWKg}}g~~gh h"h*2h^BhJRhZD>h˹JhǩօRgH@f@@a>C~G`]~:l 8ŵХh W|Z\θ(|CbAƒ; BZjfsBm~4 D6]iGHT>%>$a%4aݏHlzu\8@R^D. .Q2jdC)$#FXBE(r8Π*df`QFjj; jތTN)H@$_яL>vxD*GDA^bekS@1BPibxHK2͗vw)A)dɚƩuxaa`$C*(μRj^&Ġ%I Ģe3X*QB*++D,$jH,T,bNkZy:C,IhGAeC,Ƅf,^ŎA@Ⱥ ܛsrPg\K2ACWO˴`moeA.;C:6NeP$Jl1RJ6k HNp鹊j,Mx۫m6!1le QB1L DDb,e8X9RD.Z۽n&,E@+F5T*% :F0>-@@^ƢZj:fj6t9fCFC&Ƃ( -o$ Dp hlO*Hlh`̦hF$hpZԈ(8&2E">dZ!]mC4LA7ڢ 3O7 8Ύ$Il4 d 30ŽGHdj<(QjOryڤJljinl3qkZ*ZJq 3 * NLsF->`R2D'gE J)*l:&[rJ4@*lr& Q@H0Ghao],w GC4](@4/sf=%@41{rs Ԯ&S ?08p@sC0>mC9G(0 *Xn!>MT6F5+FR)aT !0QH*u:jn4䢱(/Ii&/k4kj5%86'T/.TFTU$ҢΒA_!_ .6 *+Q뺦 *5*Z4Y]2F2m6t)[N,aDboZon.H6.86>L6eCQ#88<@햊Ld=  wB8E݅`@ds;vCAtV1g$gsn6trVgՈsE_n;7 7skYsmwF{@07[haB8TJ6D4cۡ*0GVlICZN݄LkM2+8IZBF7}ڧrW'Zo*Vy.GnN^# ۮF<, 遂0X6“ DCB“(+CjKqOdɪx@ۈk{F8s  C7lv`8 '3%!ix9O7=C7׈t?<[7:Ťw3w0w@z^.ۢzJ{w|B^'AB}GptB6`8};8Ǯp(`+8xl&8ĶrFzW;AB喻w@8rjA8yS*}_1VJ%('& 9H;&; ;􎹌oC`8K fYO'ɗK|Hx]52lH9nGs 54 Fyo64IosG d3g wBo3CLgCJD:>^>:psdxG=l+5B7z9HtDd18;8J$j!=9=uֳbTGlkn4<.XN,m6`088+;ا嵆/[Z+kUB*>J%&Nq+&PL o/.}gÒ'g§[g8f o/ovZ D&7ErC)*:Fi!@ۆt;WDAni`6sӸcGA9dI'QTR%, ϙb9fMAg5)$;p9ٍ8bx3MAeCSUI~ zXRD*H+͛\pni'Yr5MnrVOU6aM4d\,.&L[ lermFcFRۨGgll9fZ3vyyt6|v5J drMnff8M`8VKs^<˄ {9b05WR)U /Eآ9PrY-P 9U"B%EJ#]is^ځx n<| (t&krlF#§!aćI'grr,3AKlS( ʦ11GxZ139ttO@3K- #Q󦣻8DՐ$69)UX5 7.Ĭ |J MF-| WtMU2Ps rMlcQa"2ulom-p3t/GlˏbΒQ#Ō}S>5"076qLkfIWW|5ތcy//> +Ĭ1laYiqYgbbNLuDJK`U%ՕKc#@zVjZ뭹[.쒬n Vfĸɞ6 T/꩛E.O\o!_imB :6%hiJ-o I/QO]Yoa]iq]y߁^/O^o:'x >PL8@B$B&D >h`$-D9*)%, Q0 IZ39 9im\GƳZO1gh!0TQ"M++`K0F"pd Rݩ *Ј8GJ2f'I [XJ +eah.FKq/ >QEN0j$(& 骺ucPGdԣzj d% "?@Q=j"II\/׃jD],ժJJU"*EQʝ橬W#U!+:Ac=+BX@!DJr^:( aEd#1r2$ՊDFiͥ  Pt|w:ە84_lPT1H )2.80;nD(>1lc)3\j>1/51{- ª" H CjխP7c  @ lR QV,uk|C%M$ig`p8,FBl%اT⋬0-$K\EC,\1eaـl3;b1g:@GD#d >ТXqMa+rb$RW&(K]IsSZiBoY Gm}e.ҔnUA&xp|9ӻLUrխoI#E ܑHu8#n0oD]a{a qW]!`Bx]޳;CWH)`oˋ{뀏Lo8ܕtK|.jFk@I&RsFtx&[s}GKy]6f=  J7gLPލ-+jCB*ݪ-ސ`܌pP ёu@~LH#vQ%1 A"!")0Š$K!2PNBB!@(0,j.bmxhCof$!$MdTIa/JJN /gx΋/`6V)P>"ɧ  "bLN8L²-!tI$dL-H ,q*RbObr~,2 , `r1)BRq3[GDԧTRRCڤ|l%P~&&GvKP6-"Gāz.$jkGrdi&+Xbv:Sb'fʄ@R `;VU֚RR͇Ij+.LS%-2@QJ K> Qzs@kʑ; *A1\"ƤE#(3.W34HtH$Fg#F#sIS>WMtL#,tKKKHFpԚIMLD|!(XN7" MOO5PiH3g#δIS" SQ?DR-R15S5uS9S=SA5TEuTITMTjPuUYU]xXS$L# W`kmު2DUUIX_5YHd bBYBZۄZ7JP9#GEށ/Rb\6ABP8z( x9nʕM~Agg&)4S]g֏aD^T)HGWg5$@WMdIo nu#tuW7cE6;‡ $nNXSBf)#Ym$5h0(#a>hKi :xBiڧ돖 "萜$$B M84Ҏ\-PkB(Lvf@#PP&MgN%W7⎸b9qD,8v$R6ds$HV#NV#2we? &W"%fzVhaLD$0 .KG8P)+#yU6xkI P*f )vT` oio|mXjNbYO X#.W]!?ZW D^@)U 2eC#  7thL" j~Dp6ت0)3_Վ48A qrjz |<5 CLE4OcwUhj#H'ˤH04$~ Exe+%0%yRkHz,` {ek<+a{ s& К8U r 4Y$ a)@T#HW!2#2Y52B[#d ,(؊!a6-BL9(ܢɄLc-´^kxX#XqɌq[YxM1\<֣"'6zP4"Mb"|싋]p#@3͒nϰϲ/@ I0P;Y(ĀWD#ZoIWC 4؄dsU)Wm5 Nrx>TtÂ5Cn9ɭf ݢ-XRZRR4PCuu8+t@B|:%c<;8JL^Oc_ONGzn9k $ hzy ,IlQpF i z.C␐`<z*EJ8BQz]s 8)W#JDVw:*{"?=Xa1BnB?Xc058𢚨wX+Rx4Qgt`qqGK?T`M ,4/;Ȣ$$)o̸b,iB{gdzffȏ!ڊ}+C:W#l`%;r3Sǀ[`#X 6LQ {1H lY9tS";Gx{+S)5!t RxE›v%@Bw.> E@ #veÇO sJHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8srUY`O̝۴29&GJJիXjʵׯ`ÊJTaހњM߲Kݻx˷߿9xM+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞MV1f#f*A*ORK,cgBYܶDP\3r<@@ t3/asw_]ށ@9gET`Ce.ߨ>ktA6Ȑ߬;DM;#BvWq!Qz܈&!\80tI9G9tPs5hRAэ8RJ$( +lU>$>CcdGIS:%W"W_Bg.TIhI^`@1T0F1D,8 ФD p: j(u)EPPœ:]tyf0T]INEpD6T¹/M1oA`p&<Mta Ydi0>T-Wp$6oǢxMa!9*.R$w9AGw񒘣:@(_:vݸN:㴣a7x'@ k^B @ ҨQĠEpͼp`竢>qP6s#)N4@)!@bdN@ś)]hkrzeo0,IH4 gyGA*|L0o>b :oJh(`7ctpbAaQ[ċL ntˢSRy vACS;D)H~طFEbňW#bωh-L(I:'9pt R)o-Q2$%kLd!?1O%]ײ ^$l Ø&EK`c]M"]2rQ+b0Utę˙jHVB)E"u4  _uY/oh4N"pX0bc}fH-g=9hP OQ&@|h)I +4R6`d&E>&:UR)$h=9R;i* J _6U-p\`ъ$p)ޤ"I7agP[h&f".q3FUfÚf FDz;x\-yG0#ia4_rd"1ฒ,bЃѲ}$Eb@&¬юEE ڑ5ȗy$#f> 8lrv$_w^کSRlb(8@t)PU&"=!77, :`mPWU" BkԊUӹSJFI&U{ -U `9(/T)/A5:艙Q+RمeVQfY$US2z )EMg,T$#lg8^4@7/MTfL~n,񱆇B)&\ ۺD`F3=*yuT\WμX6 `7Cf[t;.UYBB k5c]y8YnC? 8/ Em #s# !SQ?à1cC$!8 *$zg!x듢%i:way(@Cz<[>b"cnhEɚZ;I\2&ը W9O-% (k0Մb9dċ5Jx6I-$8ɺM#jFIfOg ZRDr=}KǾmOO/˜Ͽ+Xc@e0eX2@$qnR1.'C%!Cc66ci;|V'"σ#s` =B#r5a $TW0fQ|G]6#W\Ѕ\ 8hxX'|w${s%1H)4&i+V&l . [ 2P_.Vؔ)sb$A(dT.uE! s,E7*k1hx =q,ȅ^a84ghePmlhnptXg^Ss(xaވx  ՈՈ%фa=`[1tD2ِ0~MObQ!=%}UP n5v`~nW V@^44^ ee(X\A JwnJeB]Q%=#7.S]R|x^]Eˤj A8sjyjox{ihy8~,AXlM'٠ XV'PR٠jрj#bPɒ0]4\B YmLy׈BKP=eAXyɕ1I|yh|D_YiI`yɟ*藃}ɈiAW 1j!d*q irF1 )nD 9VEt0g7 cI!%AP']D tJ \,)\ VCJ-S D99UPyoJ>07[Y19%TyYiW(r9Ȩ)tIਨ驚Y c_ɇSy5(#$R`yVP:遫B+gOR҅Om i|NĪ(t1Z FZ'+ʕ /qpi?#S@ ]Ι)ubPI]!qJqP{S[ڰxKQ2fҩq)˩˪nizzy蠮}!h58ѫ?[R@YW"(cXf3SXX@tbQYk Z1՛ f--W5 #+0W G1e)sNyp*~ ݉9Q{}x{U ${ ;&;#۱";`ꟕZmj{4Kyz9&@3J1PՁЫAujQo0 ԐQ`aB:Va“-S\[|N _SPS nQp␤\` M/U m ^ .F@m'cJnQwd+TH˔ >PS+uU[4k lkzk ۹z 0I뺵덂_5{Ķ}2 QS a90*` LU*2D䑴AitiCG&Vihiii'qXMPܐ ZK|ylH̖;`Q; p@EzЛF;e-vㆱ-rXH]}J)&ܕb;̘K <|^)<, Ĭ[(*^̖K|2 5EV!FŰYX Mvb&\+7zd), T-7! sbuP\Fw" %ìFZ5_gSSuھ2Ȧ + v2eGV{;e ++JIe󂧀+ԑK'ܩ6 [l̀T 0ƟFլzb={aȣQ{ q{yQ퇺d}x-~ɸ EbZ# l~6׊秒}~b}ٜ٘ٚٞ٠ڢ=aڤڪ}i>=tm:2ַaRa<1SRP"Ty!5q!Ѵs=g%֭A0QU`g 0lWP0n2d@,-XӱqBrLy{%1}B#rӗ1%h2lm"Nr{M+׊-=+h,*rV#r.*+P4KZƷiϲpP+:*ő&A[~F Cd a Q7KmjqB ^6i.H?"$AᐍA+#A!⌞1P\/^F~Ԑ c舩uuw.[ V5S1+7&-F[gt@410r .(+bPepS:`p95B 'P("y;B:J=cD5I%A@ N]jQE rW'W@5L,YL5ܹ)̡+'񛛹2,*gM4rփ=u&,X.>}#?sԋD|po‘=(b.d UAD`p zeoCA=Bכ@\'`A ^Vn6]c'Y'L eP]"u" Yú} _;,8Ԫ?F>XYӽx񍘊l%T[HDV;[q1c Q/A1C YH *e`>#!KEr- +o 1L4DE$ZyJI= e Xʕć0W,@bPcl6lH#6 ܆D*|AL)H)bl/Č8KASŇO I.eT)PJէVJՆ֯\.QlQiծe[qΥ[]y_jLɂ p,F܁n5C.]Ž3w.U]]qL nNjhs`ڝnV Y2'^v䨑Uus|e.0ꢹ\]:|1^޼ܹVbf˺:Jlz! 5c %&hgA,&ÂnzF0ʼn&r &L&:qJB#JIJk&BR-L,,rK.K0Ôk,|Bzˮi-,L8/7߶s9;O9=QΡ8QH#G-.*=-k:HS=Rɦ:3?|V1E֚ b4I'di"|:[q&bX0#|fہXQGGlG-Iȗ" ʲJ%jɂਦ|rɁ5,U+b3)Z'R^1fZzVέZϗAJ>Yfэ6zjR;8Ҋc澔.ѸF2iP5Y{-X]ZbmԪHPS˞5g-!m]*ִ(\ ;de$bhʆ%Hfl  L0z bi &~-2xRBv$4J7x5A- xfpMo*5m1ӵlt.8> <Elgt9PյajANA/TK vcA3V!+XmmG*Q[VG6Pg8э"=}+4 +ZcPLQd!M8rqJ^R|+rz=-{a%Hd6Z$`'%wCqaHcxGa EaT`Tq8Lc r]J+pP-8e(D*0vHxO3M('QxDp/[(uF.t=i[[Ѝu#B}=21YH - {=()Ĉk\wIqK#mDEɄr@HƲ1aS#甆FݱJn F99l#%iIMzRT+eHN.s M[}J;iO}SUC-5I/i3u`B-1,PjUzUfU[=iaJc%kYzV8bk[VUsk]zWU{k_WVZ5AelcXF Z([Y @iy פE fQylv/5bHb1*Ѥ[h!Hlop hΈͲLf:QHVW-,\cF5pKOȻh;׽|kA"[Sݢe-KZl;!ZψvVxobF4^72ҽlVwv0ҳh.r v5-5jIZ`ۼ⠘!Ml B׆wqq!Gx-H7!nEK%1m-܎7!d"v />(@>6 ȡf)rg S1>\y4dJ0P岵jUݖ u! $|>&r7ũf TR6B<:;bsSw e{L4e#nԘE50n+oi@k(- Vqx%Xӝ .*܎`HFF:-U!()Ϙ,sr!ӟ=f.C8`A⻑5p7Ql@ ~M3?-t V8ZL$ڑ8PPlEF:'!vG& ml @Gkx!B@#%堺s+fcY%nY Z[d嵑iIU3Sw7S w{|_#;>22';\-4ɱ·ߨ{) klC$n48wn1@޽Bej%j^Qi[- 8B̫\ONg9\ ?N!=ϣ1+aοy[lBeX>j?q v!C+ uI1Q7@"68 >9%*+ ҞـP9gDg 7AbsH pD1 xC BYP'K@0l F7 8(,FC0bԠ,+1 >[q x@ӑ ݸDBL8`ӎ+rclp?|p5-M$؆UXEUX:a a:xX:#* 2mj1|@:HR:Fб5|q$ơj4{n k,GaK ֨KA$[G696s>j%<&ćsl( Y C,iWɠf~2(н6 S/CRRCâ`>p8>|4_rDpD=iɢp' yyDEx1=JtO‡+pE|tJϲlk Fpyфe\FsaG)0_lt F L} 69l ( xČǷ [q2H=|&m0+>{V!hVx(I% WVp[!N[-)Q#>`N`^`- n^` `%z khҲ5ɾ)p"0Aʴ)@a-`..@EPH ^ըM cr' $N&nb`:\0p.w̺߰=8hO.ۼƂ==t ~&1V$`P7 _Hi* (1F ʼn{Fn^NaN6H'H۫ +3|xZƴMp3Ǩ|%nb&.ʀ3H q -_]}R[m >+d,54 SeH]M(pc%1drfW8 ?F' D 鴋0Rdq05d6 U} 32s聽aȶnCLXFPZ^!e(* Ԩb^6Hmf=‡FQ hZrsҐc1i! mC\ >ix]9;#D*C9 !H[9 9)Pka-\p(s(;,h Ph<Օl/aPWh$t &iٔ v3T(q=%_-ʃZ? in %CC !~5$fl]n[ak>jgԪ꫖>x@ #a X" XŇ;#@B*؜X#~N 1&CF`ndQ^h<…hB*^XN0|l| ^c> n֮I}8DqZA=j},.C ~k͔ɻ `qq&NrXg(DEW| ~L1o ġLh-J @JFS{JNCm( Pgŏg>K>ׁXWo%.QfP (z2 ɾ X@I0q8fhit c}QaX`PsF(w3m o #Gr( j` r &j58+$.Ok8@ 군3ϯJ a1R@nA@Sra@?;0Ϣ8texqtOTIWLm qPNt'RA &bDsː p`i^Ymg q؋`$g C!  qy P`,pͲj"8wHw_ @Eo9#l }#{ba(vioKvVx=~xx x! 㙬ڋfqdbO(ZyT0лh髱G ihiZ-Yu}VD` ZQwhyPp᫗W,;R;s sT6,EnNBi~x;bx /"Pԁ|V1ʉ+".*$h"ƌ7r#Ȑ"G,i$ʔ*Wl%A4, imo%h\m؀f9o΁!glNwKjTfsdb\Hy*k.^vk++ct[֨8n](P~ F?j6ʬ %9]\zuөfm\=vuXڹQf;z'+ҧK[?' 9Ph|̋; mw zb̛Ƿ{ɇ7'@:w^gA WƁAv!j!z!Kh\$M䴃;i9H?; 9eM;. T3[DVXe֘OYOށx%"Ph)u:/cKi^(^ F-F`g Y"8B#$<lbm=ܖF12Xqw漓ug頨I qFAirDT0 ̓cJ|ZN6A,_Ok9$yEi`2E+Ϊ-z-;.{.tZԮ&u!SF'90.f2|0 +0 ;0KfXKy68㕿+8BA1-21<35یU ep9旫DqyHN.@"p .@HƐamoᆱ!lF<|A=Iu]R}F{x*qıo>pѾF~S??z?M  W(7#CEmD  I.&.Ae % EN`$@F3d![hv'ayFDh=Oz@:d{>!%x(21S]_.9 p*9o-5%q`T28X` 2k2IJ2M!(9 q9bD(R{cIEzvÇ-@e{a.<&2_ŗ%FE/| #>ɾ!$7G8ʑu1 t)O60H*GS cn*q ɼNtB G8 F4# Qk!\FɳQV&ŇI_nd:AHRc)SI@,i&1 JÌ$3'?ٺ·a:R-wQe\ʱBeFliKMot3e&"8fޒ9Lo|&4/.a5IilO7Q tLQ HCwoR'jSkOb'> c=hHj,(pM"EH:m* >Wjit]ku %^ؐiH ;|䰇8N4=\n@j(i01hEu=,A[¦DŦ>To#,041| rcxъV=q#u,3v1"mC}D Mnk[T:E[F! UNR]D#%v|YiAx+7ɓ#sT;U陇XFƢ$ë >ߌg%> =Źѭݸ`2A׻ԋ0u1֗H3|Æ9amq$J5m\q!3G4n'iulV#q(&=f )Td)yF>KPFE7n;qXhs+*;LG5T6E3M,s$J`!|sU]?wA "qٯJ)[-m%"Ӫ~\ljQD?M%12X$ec/>ȣ/+ d ?;csƒ<ǯ-[cn tWv{-R(d& pݏ Edsf4/"7< /0iM? Γ# ^gσBEy[Uq:]`F gZ lHry]z׺~gW,ʜխȆP/κuM<#) BCn$'dHru bS;f;qJmm۹q[paEGJtI1"-Q L% RzT `^YYn Oy_ǩRFޣ^ D!^9e!_\\K D}9V71d}Oա߯=_ј@_jVj_y]$AbہD4!^!ٖ^FGj`EWuL ,`+ -xA<¥^V}^1h1 HHM{ Z0Vu*-QYDFT!A!\% 񕚩c9hD!Aҵ!daR!܏B_Zgm;IA!bdTL)ٽV$ A]%z܁[uךLbbuePNs ,`"e %բR.%S~5ˈEE E L5Y^m T~%XeH@t;KŴ%BLV:fY֥]e0^6 Z"i%lM%aa&b&b.&c6c>&dFd2|8T͸TevX&f>.xd&iio9Kj&GH9m_D"fmަ0uЦjfi'r&'=4JHgf*t~t:̃jGwzm"fy'z6"gpo-lO'=@'J|9&Iw*(qf=|T9\JgoH@(O<@{JlFtw]h("9<<؃60g6È>gu=C5x:9֦@= ==wExm@֦^uwh鏞/ns×^i6iL(xz)s'oZ=ܧfiMtC<94BF)4lhpi#,f#BΨ#@)6jhfk*mާ h*fjRh8x簦4Ĩ;,j*p&9(=,jT:gzgFih(pj2+m:kZn=8-C{ڃ:LZ++=$knsk&j9>GV+nzVNj:,=@,0Zo&ZD}BiFBilBmN(̦nsB55pC"=DvŌ6q6>l&hz+ %dDkB"`3kMɤl&,`ڪw3$B55XiM,mmFJtm"\B~6m#0lĄf@nB56m>VrD>'^ćfCkBj~m6Fn"@'.f<+=fjjsN-ƭ.8|h.F|(-..+}NiEHg^hr@.~/~'D|^~,mZ췾9nGB~&#xj2/.f9Ê~^0gcf:ώh>o˭k~h+'Zo&m~,0nm0F|oժ8FnD/æd2q :I{ w cD#1?h 8Gq.j1D˞J2?m vmjm/L,- WtI:#.Ch:X2F&wr%`22>x~bpF.F|q:0bn&p6r**pܞ22qŶiW5_3_nFoØFDw:<8?'vkF'ZD૫229{'=_;,9s>&=h7s֮+&=x3t?C}<,?糴ʰEsBO`[zj<D17Is3>sDO4H[Ib-64O>-U*E'o:wF) *>EjBiB('iTuګ;0FxU'w9HM6 9tKCa zU,jd':^(JG;s&܆5%wgc_e¡WY(0TmR,X1Y]1½ςyc"tC:܆F e@d9ɩgʋT40WFÏH0uɷΈ; :•CWÑieM˿B˵e4;e Rģ;HhC7Lx/mAŶ7 _=8 }ú#L}л.{s Y m{U0]1wCWD:3m#97jP-$>7`'/3jCNUX{ G!޴8|wC냃,Hچ|61 >!cߘ??ˈmY;0K@b݆>!o-{V۟ŭǿM7c];pt;'@| 2d(!;t*UpcDF4JQc 1Vt.boѢ LsOAy ŧ۹pF]Tt%]8Y{uOįeŠmijlم F,n8{p` 6|qbŋ7vrdɓ)W|sf͛9wth^u݉[s[t`>lوzí75>q>>E !P:ӁөCwjql"Y_eYRFY^)(9-騤+9gqAA1䫮+C򺱈C9F'muܑ} :Z5%jFxFm7pFć86".@k&C=:rF0 <&,sz|a"gr"B/&O 䣯$Fd?{D@jI$@:l&BIdQU C7#D;-YD/.#Z2Ni Uk-Ch<-(wp$$sPy$}+K𑛶e)}XG;yԣ=6i "9d% ff$)YIK^~؛u q,14N$H@",e#IP)Zf!K.yK_22d0Ӎu c rd.є4YMk^6Mo~8YNsT:Nw1Ax) ZxC~>ڡgL F.nI9V`;"A{P!HFIURohE`̝FgIUUoS*$=!4$imY9S "5 1-~_!g`X߷ IjABvo+<78FYh 1-8Fo`X˳2W ӅtZ]وqLaH"N^'?Q@CEcHK0-ob | [G|0p`R H` >)L !وA|a1 `# 1C# Gw! ^F5*-"eSl0,f$b/@2&!bnbʌ`4wWRZT>L8 PLP&d\w5; RF<܍nA1Пl3i tpx "54(So۞G˛%|p:480c b'6 =tّ]@}meO5tk|PiC㷪;љN\v$64 #ҙts6˂ى.@cdE3͋xGܬY`mO)Z y"|HAӾИ3(@=EV 0꼮;1̈P :I9yWBpݐbˍ=V|d}L;;xNke=ta=qp>|}dp"yJ\ +۫F3lSߧQ%$(yq!]~ Na r;@ 0L$NL2hχD Y˄r 2 Aʵx(./ ADP$zf܊xo,ʟ" ۂ̯ޭzL(ΠN键 0J204 kfp !2 DP3PQ%Iа#Q'+/3Q7;?=O.0KO: BB(_c"dsQ'wQ QjQ eQjLaQqQבNQ1!<,X H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗03F;p1sɳϟ@ JѣH*]q& rnF`JիXjʵׯ`-]7vঊ]˶۷pʝKݎ4́;߿ L\#W-ǐ#KLXϠCMnR>gװc˞M"jFͻ ;s&>+_μ%سkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXflXcN 9#MS c >1x38إ7$3 u<Λݩ<>> 6t/G"PB^ }@npMAeM9pM;l6JkZ뭹>^jQt NiY|}z$NRN9Ϥ1S06@ٜpB &ؕ!ћ϶!*[=PѪ"xP7bޔCP*NA>4mfkBYk!*1֠ťP^h +!^C #Ih]CBR*+Wh-Vk.Ɨ CX8emeޖ Ab8`PͮǢ{sɷ P9 &]bKL+\8mu؋5hיזW8r9Ĭ+Nӊ ӎ3*m~>jݖZ'_"A"UHLA P 'k. S T(q#.2  Yj (upMYц0H$mMP@XOet/aj5( 0ԢDHX̢.z` H2hL6V(pHG!:5ȁDL 8odO,;71t:ufBN s *R%9)"_‰(aؗ:wcLDts_Ґ$ w$8s k>z (`+t&$7q̔Snz "쀆Ͳb%. sdջLƖaD6 h: _Ь!/:̂p %.TͲ< s@##fڑ` D>,`+VA xG>EQp? Y0LbI [WǯTjASVzfBAqO8 HKE^y׾HA.31 *Eƒ64F3`fr; Rkղ:8(W/cAԼ#m2d9` MḛEhg'1U%9֕Mk'8&""z^b1$0fұ8Zh‡Q6B6!шVP1L1c!ojzЃg$H Э#;G0 ;xnL `jJcchN3l6?P%Lg,uγ>πl@=qb Cj4MXӐ ]Y@!Ob(RlCD|tsqGVk#IV24ԋH- ЇFtb HmW hMcߑd/#MSR"F`t+5xlfy-\.Bhk[Q&>"=GWE5fdAsP~A/Dqp05l [B  O2fmFh2,7}. 3xn86@&M_/C8q&9& A*X(@z!+SoMAwܐ,e:.e/*ql|L6۔;. ъyIPo]\D\h9u3ǟq2ƪ}*#h~ w>@N.wr;Sݾ g%ڶhVBz>7Ff ^OoA=GYC"2G>d70f5(P>&j\e}rLM'$sqSzlC7i DWIܦƷ|Uwؒ u<usa]} vs[#HB^'Vti}TR'vXPae^E6"@V"G#ۀ  #Vb7zlQ27B4c(pEKUeU`OVmz$|sCO&SQV+ ejtLhk[PkNH&D&pEt(|h~J~X!hʸ،8X : 0$;g({VITE2h6hJ k6Vsz1BtBxd q`P+%A݄qAz&,+&V`kP(@#YӒB3BNLd [S2A5(5+E5,  Pe-F1XNgUYXXi1+h3 G=`s5a$v--u? CI"WI`&:y@EUP患#_9I՘#w%{dh+R*m?SBriJ9', هsh!89V-)isW`z'~2*`q *ey0 0 ">-CfPI1Ry6w_wZE9o~R T s2 eX* 9ٜf' h!}f; AXxB90C&D6eD5yy90 0zfS E>p l3yi;?#UC C頚!&)Lΰg$SQ'c)bAyXBZrYPiDbQE q={(!fUiDԊb(14^id6)940s@x:Zzڪ:Zzګ:ZzȚʺڬ:Zzؚںڭ:Zz蚮꺮ڮ:Zzگ;[{ ۰;[{۱ ";$[&{(*,۲.02;4[6{8:<۳>@B;D[F{HJL۴NPR;T[V{XZ".е^g؎h1pp* n C`*[k_pf .P\o Xv[m{[_Ke _D `;2 mK[*07+}۵%giOúnm m D]˴2 [KҀ~@{+ B% RKK^ |zز ˷^-[hQ$";8;<&`"0Z5*pb{۽ <"0+, x]*r6}(Ҥwbˍ˴F+ w6<])<VJtvgLԕQ=d]f}hjlnX &1d+\oJ k+(ck[oͯa \lT)10#(s9ÒM8깹 a5`˗;Bt!8a$avbnj'c!0^;`}c7ؠ%Z,o{P K-]ے=pCd; ]9ؒ=1(|q̀- ͠2m_bԱ;oJ|1B+3҉tB9L"A#<6~8:<>@BN4IOq`}C0a l Da,0 'GxN엎oKAfnθVpGN~ΔL:nXrl){{0r.=?q%~`DȂD a6?\՗ @ѧ(CT..02?4_68:<>@B?D_FHJLNPR?T_VXZ\^`b?d_fhjlnpr?t_vxz|~?_?_?_t @3u&jOT qqNv^E^&*j2< +̰l!nc Vӏm-o-zqv@PmQ4 .dC%NXE5nG!E$YI)UdK1eΤ鲛qޝ˦pO&҅/3|CfSD.sP͝eюni6kP9X9|je[qΥ[]y;[tnpQE f4M]So5M-9pSUsVv/]6:3xp_رeϦ]mܹusu{I>wkh"Ɖ(PūsȶYկg{ϧq DŽ4霒p*Ʈ‡‡B 3pC;Ckd8 RĚjFL9ioY $lũ;ԎJ ArH"4H$TƜ_$0|XnIDpQ^F+nzjq;N+vLsSl @/ \h̉-8H3=SPCuTRK5TTSUuUV[uUXcuVZkV\suW^{W`vXb5XdUvYfuYhvZjZlvۺ[^4\n'z!r%-4r9G[|w_~ qlY*-9bLd,qr,|_Cyd(*O4b<.s>&yg{UEX^*ses$)gj%땷0Ơ2zFSMFl2̦k{1RJ|4^UjX:cH5 kZ5) b*e W# ͤΖƜ?M:HDƉEO,},+ 20lhV‡mI7s`S%l`Jj-KXDlE'Z + \(27!ډږ,l8UD&m]G.MTQREyav؄hހUؔה^^b읊3W(l̴ȹt9_ȹyTN P% fqЩ[acie6@O[鱑X+6OHP9pF`frk !`n&ؐxi8YrgA  G{g~gghVVoXN;v|Sj`وV,YVWXXk\ʥW`-,)Vhx&aӆHa<3j&v KcNh )&k$ 7~eNV(A0`p2jʫ_Na܉P=6ΩPjc cPDҏ%Դ-\=g(Ȭ, `kR$%ivv<:S腟-M`Yi|GoՔI(I9.lm. T`Ԝ !m|Xm.I:^ɲ) 1Ff3p^0U/)'3Y`x 8\n 9A9-Me8! aT6;*`;p m` کCMдZ+t)pL, c&Uʥ|WX7Zmq`Wn\kP8kpg,(tת3P'V@ ehMr ]p &Vn A'5B.l @fh`KHhԅj:EPܔS$uO9  }ƇӊxO:98(ەΪ|f[xc#N1@_13sjZNx4!T@oڣ|jZ:h۴P2{m uC&Dp( )MA<:sO:8A D}-ZTs/]6| 2lКs! BhBƐ"G,i$ʔ*Ib1awKVȘ;NIŸAk*cld2mTdV?Q-)T#Վ6q&bא;ǪϮ\MIϷBYuktk հrqU _9 KЛ`qm /`ʉc 2PQ9zj4ԪWn5زgF-QaS"y Ά^֖) _8MܲE Ĉai)"='ƅH=|>*"\Ք?@0CFQt,/B?C97HoYSUT_~ e)W5VYgq8jmb +D3. Bt+R3 Wa)vY95=)L4I eqǤ` G!a9&ey&1TA C/u # $gO>Q:. 7bF7pC]sh:rM*^zZ*֌7ӄ f"JXMsl3>i+)kMD`:t18 67t4 1tM6n9!XMeVW8M7dJ+PVN{3ż+,070)=2t)Ζ\>J]>2g-)2-leH Qq!svCMJTX{8_X< !D)9h}&leQVCQ=-(]!59@c5+=[=k={ʅĘ>髿>>?J\/Vӿ??(pe_2| #( R 3 r C(&*Rx.|! # +{HtǨJ݀3 ం %'hdDN"H/I(]2R# FDPAJ$PBr57$,1P!2#T%ጷ|PxGIOx%\ldp,QqhSb9љqXgArv2Ic?Qu9G*yOE1 oSVfCIRjJDy҄H Xb)bIYҖq,ˉL11)h31iH"5#CZYY(%t*tPRʆB]Aj0`XXH *.EDBEҧC5DQ`$P-n H"xft+"bt( r;H2˕ M$2ZB axϊ "HF00o[@F!D'DTtEuC ˄! x ZFe14 c+DfSnN{L| )=mF3|Z ~pK`;AuS.0>. b\4&ىS|&gUtFn#] "`\Et'U5s.f5t1b%7yZ+#zV,`"I|q@y,g!,|hV尅EbvX x,tnV!ϰԳ8iq!F`I!ˆ3"%O|f+U"] ƪB V|W6)Z]ﺽ8F+{kE5޷oI`eC! HO̰9ƅ3Tlb|;-qgqE*ZQ$w.Yt~qiOhJ|Kk#Qu14Qz *bqLCJb !>,l,!CJ-H̡ΊG-J#7Ig:!j!gUp36L(MZԭMUwխL ѮD^; U2[$;-JKNl_ُ7Hi~-bi mowgܲ3jݻ>1U\r1n |vgu䋤#.78;t x p$3\VC7옒-De*NVcBVO'#dX뛆`cB0Cý4HąHyVRcaK0BCTl1koh 6dVQpPUQhLcƈ]s]'ĝݩAPEݫ坮WyW)AuA19!ф->Oނa^^t[F~޹ߊH41߷tD@_Zt29eDZBDSX@4dK쓔D]bfĘaPd7,_E4ԘE4xS6\BGH]Jȓ$rbt%Z8p"BCD,8tzϕ\*ĸ<JXB@5FC-Е9@\9̕ƜZ^$f2Z 3Չ WP 9D*x>dB-mH5T&IB ZTBx׋(Dz#]W>^Wx !զjP9D*dBA$qvᬥ Ir3BSxaGm纩JFxVȢx60Cx䠡 7 JA"2ˣPݮ 7T0˒"I(nʌ$h9í<~>HDgM|']|Iu)5e2|FC">YC\{hD#BR `&o$Z1B&N4 .JDQCOu-dNu tuW.D|mB+k)x-ĭm&j)A"o&[S65[strP!v^Xq'I2~S"HjDBlCNdx@ g9&'Y*htK5B؋Y4A$.V "E]BB-I @cs%gFZ B)@F-6"p*,qZHHI1-Bk U` >^y1İ)wjaHA&i11t!q!Hp**l*ujGj$Ƭdm',lENO0+P1͙TL-nil^-옾%mʗBsqZW8-҆rf-ƭBm -<6-Aڦ->..&..6>.FN.zmgfn.2<.DTDE|钮%LiTR4rn$mG*D)FFѰ ⫞10@I#C#qĭNR :Q4>prҀ y%yj6`ѐ_uэEحH&ZCbCB#7&IcaDsBfCmHBnjcC&JDdd/F.A.q cD#>(S$ܰ8LB`{y9LCZ :iD 7V6],lap*;-(g!H/C-@B6x[ ̒rP2LDICE*DY^D;pM17+3Fl0m.v$B0K -W50uQu0dX"XWt N%@H"<{.OBr_D/C>@Gl)6p$įn3B0C*55eQ;C:C; Bj}&Bhoxk#gzWP  }#g14Ҍ.nC.8BCī6r-knra8"G 8bJX sp4>h$tuF$ }f4```b6GGD udlIsMDsLpDJAw M+]9#Pl_"nC!nSD")BWB/I@8F+D,YG~PYD؂1n/c/c> OHr 녀/r=^)\]D Ch3e/C*VP4]99Z 0Ȱ<ˌ F 97m?eg3X OdPtQ@E{ >駡48E 48m6LC*ldZ{s+vtHwspqZpsFuZxVUĎR4Bwo~G~t?0txStw@uثoY C_7[[iM2xBF{>J9b7/g6f b-B,@OР1áMDŰT]|VjEc'アrʾmX& gr:,*] +:~:.X*.,$K#0-5]q)D{zi:CO4TyM_+@kY:p$R;'q$ݲ'FXzCX5:` G{IuH7g⃵",_'K,8Syk\C;]B\レ L8H,ZQ >b7v/lׄcW O$ġBW͚PyMBh9y9+Cжkip:N'X#r[#I}.&̧{xzu֌5形9WK{ڣtwi}c΀Ct"H >kq8>r8C۷7W%_~/#g)Zt$>̶#'Oz$wAO$ zrymryJ 8T&MfVӥ͜MiS٘k"SRLȂF8Fq(66YOsć4pn3%Y̙qQxxӶ.S*336vcV  Ϲ%+&v6Z̊ZW-l}~^].۶E}&Tl1cʧ]hZevmaK܌əwe~|׷a0FpD EYH"kEr6 Fjo&@`>ϑ L 9'<FuqURcĀ \dHHMP8("| :Ttj(=jAPRII Γw9v+(Iͤ Db+$ôq.톫l&sJhآHcX&좭SgzF+RoˍO$r53ڌ\v ZEUrͬ#\$N6Զ"6j7qīV6Yn-nZnmܙ;-m:צ|3qf_z7ƙ!AXqQ8ᨑͽhhc=8Jب_~&>`.'Kig"9>;I\|1`r0Tsp0`61@ n~)Ta^!| g,  Wp9Qc &RnpQjOIҶ7#S|' Gr!d#(D\rݱ*`!֘LG*p)5&#UD2j2LWHq dZXAY_|>Y) Q_[P)ϔnQHt<9IbMфzpqmMf<}:YMk^6MokH*rQP;JTg&~gLWc<,~@ ZP*"v6 -O@gyfYdBF gq 8jQq0)UJYR0](5)Q>ii~rR3*}IwZTIURT>QTZU^YVU~aXɚLiUZVZV#F+&A_b(IBhb%Sy ̯P(( UofT7v//F@01B:$2M!j^ t1`Xc"<5]! ʢ 8l!,+^u<=v cXF%XF1d%( o_# ^OെVIN*incYmjMHߣc A$[Ba\k <,ЀDHU((bb-.apЂDfx+W_` zCE16J>gH|XaRBHYD' θΙt8>YT8 TX+<^rV9G=a@ 1`h#&jK 0#i,CCXA 0-$+יAVQ^9. 8+SAzV1{V-b#ۮi–lgo$7i3E5S!V& 2Jfnc5<ֽ %#eG2  <4>7WV;ogmxdθ 8ewoٌ'g~=~ W\8ər?mh.5l.1q;BtpRBE}"CIb]Z!.e T YJn$M""mL&$m#6X!>s4L"BlLAކ m#@o#ǿHqf4HO. pOn"N,N, ,P^2b2mE opG0> ROl,&)|/V$p䎊s$cLEҁhXON0J(l(Qr0 -rhpt0 |P!zp0.FL`Eq1!2t/p. 'n"*pC QlҐ:$ )h"A8 / 4r! hͅtB`d$C #AX>``!RV 'B2Lwb60Vq]Ѯjj"Q0 z1*AgYLf")=o#?±Q kia.A"^ 4qqlu 0)B lDlL"2%/ڠ =x)nd"=x=tnk#A 5g2g$O6o03Jxa!>b@nR5r"B 6s &hTP*P$S/6j:I*=ĬMX sHv/cOB,]d X>7ؒ*֒En#.Ob3XɱZO"Z/07AN s> P"P2'fFS&29J vaf""lI5;"fJg^na$BALfr #oG4x69.S¨R188`(.V"ͿFZBA=4~g"X/saf"@?l'*45k\@AQA ~pU[ 8ǁ#s5aB=U"? _2Q AnD9n1ǰ oF!Lj.r#Hk"2J歷㴊jnVQa"Fmw[oH*:I^۔C:K5Ncלt"` q6K6Q!-RE1hmT>eG(/6d? 脶 bCV#XKQ,.u +8tX;/s L>PTo MW{UJr"U[ nVnV8DnGmpWpv_ Qmߖpr#Wrp'שm-Ws7s;s?tCWtGtKtOuSWuji4WvcWvgw"vG/]%R%b(aC=CQAW' o58t ix#4a4^7>ܶc7owZiD!lk&]4!F=rd0haڐ7r}`H"b% V`C$ָv>NAv@"ͧh849"sL;'b>W]=t3z/w=89ʼP{uD*?2=l09>T#=X)}w"\Ɨ"ȷ|V JK/9pL!z$D$#ALj@dhn?6erL%wNŘtшj"Vadɸ+:  6doGJ=l5p>fesXQTÇsX?c 9Ne;sc QaP 2C89ٌӷX"A|q$4 mF#\@FpA^S"x?aF@@nxAf"d{ D^&aAS lD{J̓l7 $I bͬ@ۄZm="#z!č )*+ #>r#d^9Ͳ M B |: *-V-a21#'8b4y%:|jS%u>),؎"9`5]Y4L*!:ct"NiX>tcyZ["99n흮 =:m6"-f2$G Dz#`"{#["aYp be!Q|E 0obbT/gKn7A+21VPnapY1?Ms\=̫tĺ E$3a0)Y ؖ|"ЈI5D|cAxRw,gqbg*.5xڢZ#C-BaS~G*YFƸm=8y>X'ⷃ{#='Fo"qZ>`Kl!DPMeABRd $Fݾ'"w! fzV=no$@#~PR\#b1""#>M=#5o$lDK ^!47ϒQ2"heC2h#,.\`ɛ<MX#7BA^B!#)uTxnݙ2)?ΌYy`Xҷ!)|mO>L,LL*2Z= @Bm j=7{zp{]ؓmô}+~Zs3ۑHN&^eAYAz"s" % H4%BN:%+M Ѝ> )ɳ* +84z+$>53P珉!QNQ/d#,06cl#4+|UpP< p >TQ W$E ,2ʕ+OK0kڼ3Ν<{ysXr=nf2ȥˆO҇تuK&sՆ ۊ/ZVvp" ޽|Vj[&9x lV࿔+uvڷRM#wڱѣ'\Y[ӢB[1e7S'nzuh6}Ͷia>h: dBPqmt8 v|LhHKCeϽxS˙I58a#3˼7M} >B >WAቧ]9Nm)e؝w7"Sb67@>APbJ(m^*b(ʌ SAD%U 05B5q9IΌّFLH"&KnfJ8&݉gGBIp7%MwE% t5mU6fZl]XȅcrzIj5+* 7~d zj@}6x2jWovvA[TS*1qL_s8&`79t#6+L4X!  尧8Gۡ@ +\3. iA0dH!!&G,''cP6~816kx"2XHbHڈ(J@U^WC qݐ@`L͌IFI3Hp͒qwݺ7Zjx8]0pCS(XncKqՍ8ܐ6Y83j\rzs9,w#+&Kd5ESs]/_gWu<>|#xv-oTF`-;9Aڔ~SMM|X}԰2xcbb9MP׍ְy!GԷl;ڄ &_=;׊A@X|&!pdЂ1|cFxmeE!>@dPuԉ$u"F6v %XT{-ES"HR6yKi؆8CNyf;MN0 $~Rq1UPhrh#!դcG1.iSuQPr*AN@e67QT(IRX5DYjA3$A?b&I&wIKZDz-&z+2׼u|_ױLXAXLu&4&U,$'9~&:Ɨ2;ygq⑾ܭ2ziOԪvm1]ڣ.&5ltOx¯lf-Y:ԢE2Zʔԭujw?b۾yBM,KYHHEJt w}Xկ x.+x n Kx0Გa >Ā{yE+^ӿSC6T.Sc'ngřQє%DLPzҋo@;";шY:C!Fch^n[-> E䔈Hscͨ8ix;IkE01!LD7NnG &?D A*? j2>vA=ĵӈ踁>PdTҁ-P<2:Y.(8.DnMQ"rn G4Tr)/ȡ'Qp 8xww,bu Xo]DT}R  q~mb v-n:9vOBmz kh'䖶w('L5A xwI  jD p Ud,~2?:#\]uK,uF&M.I) Kx's|b@?!} XrQIG`MD!9NlґX5q|jrI/M v0|8G v;P %*xjxDdXf@Gg k:|)9`{?H{&9CH@q,N ńd7xʓLKq_AuHp.DJj'a>׀I`@> gJԁI}- 1yqv ^U j@=qIт .(0 d58OX eG v#Y@ umͨ @`=\Yc`Ϡ, 8wd d7Yf@Vt p aEy;hSw>p\[beW C;&; Wu)wx`y>' \x59yy旦6( Pv!860Qۀx~>zXd5f(J p!䗩) s;Q!@Wa 5A}h}~}5 xяp n;U`b)/pR)9mau H6J I iv3F`Hp!bA1 w50 L;yB M֣.{ї dWtMQ/鱠QWѧa8AP8>m:>fn1 svTBxvcI,ɕxچaAπ6it)gJcFhzxdɪj9noO(p5`.@)yN0ᝰ8?Mq:ڀ>z߷`p:@!ri8Qa hG) k>jyQq SO^*{ڎ ~ ~%'P0:12 ,Pb=c? Ck@Ma!7:Mp vvT* V*X`*k Pd,K6wf!(4ȢjM1mx:mpw5/y;з<Ѷz^fcixfsh y#Dfe8cʃKq~?iYdG'n7'ڇQҦAA*+C溜J ʆjًY0  P5!( ՠIÝ7!f<+[hfzImpnK{s杍wywyI9= [x騱+} {J%[Egm ,": H;aPM@VH-|<[IM#ٰjM. '\Zu`0 @őU-L}[Q`,u*;ϣC~ ;o"+"nxTHmvӫp ЁPR- Yd㦩w c l ,K+ 1d 9`d,iث![@ R I!l: cA(mao)iMl ȁ!9\8(} )  m{P[} ~`'ZKp"Z**R c i_ƕPƣICJݴCL{[gHEȁ cA 0cAkǓbj dhzm4^c qȩI q=)/ qQ kmZ Ha-z9sz\n +KtI l91v{V-nTxjt(9ƭ ʹ{?騸zN#2LU|=|XJRB +d,ۥ9^eP۹Jz4qaI裭(P!  XܐyaY|rQgIew   ;hVVQ0݉ .+-Pecui:B DB[ëzVǑ? <<ɍy) CbG쒢0aw($Ԏ%pP!8LJ0(Vb<}x:wۃ|J\ e WY:ɝɂB^a[lmx4.DE y5Knȍ!~ )jbߺ՟,Ҹ)ǁRARK~qwivچdrL*g ̢4T vWf <|RL5Ajm"WĂH޴ B $׉s|s{R8X; w T6|#R0j;j3LB M]4jj6DgN,]>D20 R <6"w9{(4.mnH@*aOviXǩzY0ρ_]tM{wʉws덏+O_[?%spWP{~5?j!O`?ďɯ/Oo׏ٯ /<|V'K.?1P1Y{vGlß41Q @ fܳ 6f;p-^ĘQF=:U\$YRJ- v#N&sv YХ E01𒷁Y>q)fu8gpn8.̞u[;xK-F7s-̷u܉kš"~Y۶m܇RtFY#.Ika'T-\WMG~zeᛲ;pbBnRFd݃4$(vZW Qbp%h (LхZ&!H_M8 |EYfArncU+qRE$-:#g*Ppb0c=hS ,=hRB -qxt-%{ `` <=e7zUEtߨoל")JZrY".pnY'!J, JB?ƔY.1Ӭlxؒ0WR]&ŧ\rO'byVL_=QMߓ˖>z""pK"wDib2` X/x hwUA >th0#:' c~?CLC`Cm9AOjxJG)Zr %і a($IIEX4$!HpBB#X2 TF3ՆEgq|HA 4d >ZA2T-hYqLN-qA :ly9"ИM [pr}[1DmЃ8Egĸˆ Q,yy,@k|d6*`ÄfC( s1AsP1#$\.9ǡ-'458LpdO{PYLE؆/RvGO 1ωthMZ|YgЇ"{EYGsNd7 k]'1aİ6‘TF#FaQXFRfnǫ$&Gxe8#82Pqhؘʕ"C*xlVrl#^ \p wfQV+\-;hD&ÂV.*ch K1 afeAh -[!beIˎ#mYHתKMv oZb^ ikkjCe?HN;NUZ b&8*ZYƘg*e_tLcY= B !^)D;1LGLg:FNeo*a6M$0dH-OMUC$hb6~h1X/UZ]0u=wǡh!~xXgb4#8H(n1Ԡ">(Wl;πB ep'gk_;o -Gq{,rɷ1Akz,f;1`v0e.ɮEfL8㹣yDGZӘe\zq99`I!X95e Ƅ$GC" ,C2~)T8o,{&C^3bCsC= |9Z*4]2_ 5*\RnDǁoD6Pcb3xm(00U>Ze@tC5kpl6jzs_,L %[fiU6+BDYfG-z\L'鍝Efy5$na&n͊ӦVqAG;Nd}F"T_ [\4T*Y}|ޏ\)4bG\?C x _OqW ‡?h'0n8w*# #֩)Ps8X%/<2l1@tiNP脵TlAM(:9RX2*c\jA4;Hkl;$g l=4øc4 8;B*;9A=T,;" =3=E,=B=<3٬H`&Xc55Z=^=Z3Ꮹi xS,ID8|@@a0x>hZl>]T8𚼀q8kF[hɆj V s ;rк1"Y+?hYȅ~+ ˆSiұk@x@)[x$SP%@uxv[Зj`&G|91wٱ+Ԙ2# y" /|2$$%4ٖ0(1lP'Bp87hIx!2 Cd csH<0,j`oL$J|Aj`AJiK3K ,"B2D@5*2RSTKpʋf$hjOقscɅ&A GCh p080 m:@p,9\{|ly6"r{9LVx0\] W;4AV ʦ\rj ;B˲|QV)!W3{4Ap)%Bњ𠸀WTFD0C1]ǑK?SA@˘ 9XsÁӔ:I;sHRB<Y̤l,zLJ܎ɜ=ZS ū@E?(H IqhP"; M|p ҠMJ7O[I b<` 1#$pŒ-^(۸_<~YUɌ.iux?Cc~|ȁ8s 0e;i l닜lPx[X9yq}1!ٸQX*2PQG0`(4ڢp2 # r@GبBS;JU #  Z@=} TۡW3m9"ⴥ)+2)­ JL3qO}j!] SI<uGhٵt BꑓmkyyR mi -w`rƕ^]\xW1^%5EVя0ϙ__%6FVfv ĞЏQݓ5r` [†HR %SHPaaM!9>h -<BX' t`R4 gdaX$0|H@W_1c,QX& x@6͂8hCdD~0,TPqyd(^YrH{)D(NaXfQrցX '~a)5q^@>@bYߴaɘT8N|`cofcN2Z9Oc>6?V kyXD&Fqi&v'J1~~Kdtɝ\ RY >Wph`34eAMāxx 0`~M fCPu Cz!YBV挖5+EŬf3!df &xgH'ބF>MxLpN"RN3h3E賞-na62ٻ뼾هVM%{bm(+ɅNMвRaSl&S)aN$llVbea>SqXm;Ԯ%+V /[&4P.i|`5=G9Τګ0$m1w,yoF>,|8Hݎa,f~ΖF=T놸l%ۄVq`hž2Ba8??ThNnW@qn K@m9#n2Yf~袈$^@;+ Bsax6W&.hҰmmc\ŁAN#$tpxmx0X|@ptH'mj0,ۊUuHLJF5ȴFQ&h QO0uT]kqlePfqBFR!3Rl!hvw!GS8Wp%_s Yj`I@"ӗe Pd2woKn:\S>rt ^^ߓM߶w| "i^ë|В%!3>{ xo.&oǑW}p:ߎ7,blpyM}q by7 tuYMn.w|ukzaq~a/l.dqhR6忶khi{U(w8ũKp!ÆB(q"Ŋ/b̨q#ǎ^9pOLqXrT$ P |̝{fgC ?!'\GTXz r鲩dx£`8ԕSXŚu-۶nFh*KXY w[\bjrR_1Z>{OX41< \n$ֲ> f -ojI%ڂMG2b0 &ڲ'|7׆.8MP%|޷c%~6[^ ђ8D_=ZbHKNAҧFhɲi&ZBJLtD!nJb)q&ؘB6 W]vuGC敘{]^}mP~`#B8bʞu ~m}n_}1!>Jx!#v+VWz" [d 9 S#/D0 mQ7;&!@ PljE߬;d/$V;5w U<>#tA$8?#OC.V=#>]y28bDmk]>b\de'O5ۈaj9 ' ٴ*>re6Pb؃o_h,wzO<$J^{מnB "'~k*/սl bV]CS_c7uJaR۟hE>߾/cYw$~1|݂ g"0 \ B-N{"h b0 ;A-~ Kh0*\! [02! kh0:!{Cuo/ v2hVK~@)EC€D!-?G($x IEZXd eQU6qn9@$q4"td;P<;Y6t2|,@@֘Ɓ D> xpa%䛊0%>(` =0dY0ݬJ90A5tc2X7HɮM!?C6IBJL eiAQCwD5䚅$bC']QDaYoSB3&XaC`L!`fDރ$d1Q'ENtC -<@)*3ы "х$(*-J8$I "9]Hq Әq!ӐlIwI\$ 8IaHl^GFtan|dtYU0r HvCIX7cQ+]U!FTH7d#E-j+12U%=XZY'!T~b,q8{tQ ]x"v(9s"8CQ)wrb?T"՘Bbܵ]Q B[F9ZF2$ I)Jґ"+)}?W$٩BzU!DaĈ4ɟ kH-b$fO6$XqL Ks!BE[إص(F-HReg PAptPU!]&{*8DxBBJ&$-DpDz57;mcB*ȂfobPbT`clmf (S 4>HrDteЄ2hBZe8n3ΈD%7aϞ7g MzłM+iVO|04X1f>\ɴȩÇ;֑q %β )#&IEy\Y,<& Cph( Q@u!sV [EqCv )IC_>!#1|${∬* lb2OG<fȥ`1;>HKk=,Τam F 'F$_$\EGrњ ,Ba?$d j&a T&-^ωMil׆G<8;>ߑ$b}F0,Ĩz_Is*"؟1tlccWQ7 =!Ֆ`k>/7 giCC*6_P_6[8LBhBU)du^,^WzyUZEUn Ea ><IQt, =*B~!H!`e7VE= >U*!r>-CA͙n'|qqXeQDXi^pRHC ]B8WYeIÂa0SB"R]8IAZ=DQRDܽ)RC`@,T,d@Z(],F@$(/@H@+Dœ}rTs%8et$8W$ шaKF$6<VlcPZIZ<{hZeqoVCD0+LhGGQ1#8c#ʼn3Z<I6TO_Dd|ILPh\uԑTGC9&t&D݋M@JQ'`(t ?vd(GuQPF'H1*VbVr%v`1TUC!܎)UBZ>e9Bǩ\XK&idRC\E0!&D/`CWi#q;Uel؃)4 9m`ـgP7C`&`@qDr6-1#P(8Dpb)KsQcPTZ;F(Fz7ȫ)[}Q&BZN'^Kߊ.TY]|Af  C68mh->E6I)e#&,ȓBB58m:-Xz-8xf*tQ сÚ̡T&e~I׼ݭӺVf+9Hj*aRjԦ6j\!dbVDLd.ΪX6^9Ā#S C$INDi*2XbuEB5(R4j FDP(+MpAkшQk$=Q 5QE 2p"1u)@cxr"+k1+,M.),4!í,pnCR 7]BFml&PC?P5WSAB<)q,\˶,Iid|G-JmJ%JK_fáeمT]fZZ`BB^^&rR)8tP.ÚM55h'Z~L!Bfd.$ęd:D57E@PPO3lj>x3<_Ë%,4֨Ep2C+1@!8Dh$0NK__ -^t.F.}OPp2&]F6+B5&0K롰BCΊi!I,t=Z`hHO"7_OBUV_l-r5.1B_5BWbOa-q(ur BdtlyqܦESPzQJ} QI|.84@ W=aqv)}%&o!g3Zrn($.a;6sWDPw9 :{59R(?/7N͘=7ӈkCL;UD'=w6CG[6 ]I5zc&\R!4NUBa g0 Z05x6_' EgXǃO`yCTAQ]ڌ w!q$TZE' kQ58W^c1u|DqVHMۂr:08CĂ\Ɉ PJ5)X(ZnJNܘ9+%V*r0B8BWTWov?FB(8FŮDp-bG{J$;J`ѭiWd{zk5 /pd;F;B荣;;k}Dx`8HCWWTI%|BPPOЦ8p;' |ȋȓ|ɛɣ|ʫʳ|˻|˼L]7|P!>2f<=艼b9*_^Hz𼶏^R{`88SQ&EE));=D$QIM+-I$ti.٧cwRD*%abTDX"Yy wOK.>%?thsAIC=GZ([=[vlڰݖӨO|-xq᪐'Wyrϡ#gC!g~B6k=ቘ":&1j[ b9^DX{E2E~$ȿn'fRJ*'z'|$,sL)Lq.5!Jq!+7ȿo/%E=JJ LtO"$NUYE" W!{Ҭ[5\(x|lw{P _XXgY*> bV"ޏ:pTs M!Z I؅6 mB|=7>C0(9KBm%|X05ml"ś>1GeL߲Gr| K1:È@&9n$&۝B9whn :bBfB1Vdj)Ot21&DmO*6tUE7*j _|mkc-ja˒l281ć\B M/dU RI$Ȍ-dDITRv*B aP!CLa Q*HUT &,WSV%!YDBWD (f^]ႜ\*Pg )E;wRk}̹g-qFZ?/hޙ+7M"+&DȽUA>GIUq 821NBN?t:@6C0@bo&bNX Hq7[nBLL lD!tR~TbFE2k uq[6t(saQb!]d&$!_ WsX60uB_~LҟmV0VkcRg4AcZ6MD󢇐VoeU1 f5,4$TSٸ-J!ۄb{+V>K<)^{B}j_>-&t[IM D`˞\/`Ti(>R萢r0ѓf0`8ja,((a $&H&W-R%Mh:SW`OirՅHQ9NH7z|E 2>^h1xȢ֫ċfNm~R!2V&IH"H-=r ~XeiVO.%+B+I2 4!m;q4 I5_o))U06Z& |EHs]QV)5]`+x&ʝ5/gwg[W|ͰƎgSWbhEjb<+K !dc2>̐^TiFSp"x6QIg V ETtYm#1ߩ\K+Q[\BH9DZ X,kJd99HYy)G@爝b!!$V;&qKev+!A 6*d& PzVy-V=Yb'綗[T;vm*֮{oE,G.绤 Ju|7FJ>EdBפsТhhö9B8@ICPnU !7~\ָ]!~#'+㄂'$l^B}&fBsPk*b-'!Jgq'Go?Y0BLN0+t:tgO:)Hgf"X.]xg vcjֲaQ2!U"!!wL'P E; ->Y`qs܊E6kٖEv01 4ޘ#BTТFaR";byDdnB/dAKO&-hOI D)LHBNiNDd'PK PP$#ߢ(Hրq {$eAH6^0DKP'y) a(Nlq,NN! ¶$cB P EEe  CK ]c0V (Q'c 1*#ii*! 1!+>8(YD.2/r//M.apJh0k b,/%s2)2-21335s30!8g! C@$uTzKn 2G3es6i6m6q37u3-BώqF9iBKJn!R.)y*O"=)4d*BƸ)C{Ot֡X =)N4(Z _"jn4ɜL4DL>4sO )y#A?g9^0,>J'NJ"e>+ *D"E z0BMA$4!b>aKd&P`0LAk/T@)k"K#$A))aA!%T++4SJb2{WLGf,Sj&D$$ `=Lb@& +a#4VMh.B/ V4XUW3fhsaB+"Mebh`K. Oku/\+WX"I!tLG$/*nO( 5"@_qu0,ԉ"*HkS55b#5!( !bD &@VdCdd G*,Pe G\am#@=PE"zs?li J.[s6@LG͎KDIb-/NJ@0K. T2, (/ n0b6pc!*E WJ/J+n@}u]L)H1q*GL! RydY&Ȑ ըaH%#UAy|R|SK2<)bwkEbm;,u!e"BLrݵi@%pHtI״ogԔs<爺%h|` b'T+VU'UV 8"xXR7 Yy7exͣ{-aJ o!x!H,BZp8 x\XrYA Dt/ bBrX$J "0~tL8dÎ(A!AETabQ~X6.#y\;< dZ 78|'Ruz2z8y!<|z<@ ϡƪ%Z}d㯗iBFeCd a&6b #zafYiʬ!"#1(؁869$xl0_n$IyFВXp5PG$t6aLZb)Z;g $߂>,r"K%IP1ctX2!ku/FZ\I6㵒RW&S!: i)l2&Khr{7MSġ:7!7WT1dϕR|5k z?( ᭹(jvO,pGljjwSr0:Qgṡ^K`E,a[6,7>NHUo~2p0$ LPuue]p> r#A }}x#|~?R)V'92F,.U4"8}9BN=">$k  KG|*\\;|e;( "fa:p"2W%Ysa6!JDxFɳϟ@ E:xEh0ȇK.9ʵ(6DwF1Tb!kȝc%.XcJ7sSq*8]/L$tc $Z.@v$ꍌyף4m] #>JLXhmD2e&(G67г9/ NU#ߕxS"¾/\9oi~~WM9hR0=>'}_~( `ҟ8/YTՉ(,0(4h8<G-TXBD PHcwC PI.Sw")HIj`)dihl5 [tI%*iN[I3cOzBZĖ% 褔Vj饘f馜vOuեPk>H8Sݢj뭸뮼.2ΰ'&6F+Vkfv+k.M2(Ƽbx,WcXri_η Aa qHy not:AL2Pe@@ NPaáFUmCP t΍Eن9VW;T's@7E5KW}YQSmEM#uՖVHt+gY>L&)M(JBb7B|_e3e*0Oŕ4P s[/!!chKUʢߛ_/01FTb03ʑVJHΕ=і:ÉEP;t@QB* x#A? 9F@p#\ \`7#w37H+Y>R6Ip47ȁbl#9&k߀ Gv(:r4%Im$Jim aHv72-l߂2 ES 7+tqrAߺF\>R "7BbLQ|&/9dapu[މ/X Ah !ÇT=̃DH `V4;F`F!d>r 5 IE8m ^ $ʃU .a'' ,fD>c5|0S.Tm$Ap60hro}ÇTX?X!8b P>_ξs^#yy.H7bhNt`LJ-*.sNLJ` GHUR. ݒ#HAaIIâ|<Bt"p݀h)s0d7 On5qcb46Jj\ u*aGRf68+yRj4($d=DdhmdB <,P62U@'9eǞQF!#GGGMW`֠,O0Q|1}בR7of#]Ѓ6 q<BQpolF - Pq+f4#|&{^!?fm yB\"" kl69:rE)$fKM,)d %g2á/! IbftPUX:0W$l`D0Y9e Qꦴ:]%mp#181aRa5&P0jl|]ԏu9$Jyϛ )ؿrPŗ]ܪm,Ll>Q溜MnJcp̗?Q+J'|aXpȅiΑ+1Ξ4e.-i5#\bT8 De`lYptjO^gA*A as~MT %2c8TA.qE#B6BQ]"JT4 *w~)'IűBGeC !|*9=,~u)TE x2@M0g)ρiҩRxQEV+O$F||Go}VRXdy$eAQYVIto3J"@dj8,PBTJ8jAuxg'9ysq:?kpFC EDZs'jDy<ȒMTQ?2r tE=eA&J s*Qo f>0OU PQwc9FU^:A\WmJ cl#Q+JH&1 #+JVQ2YIYĐ4/eJ+Ay 51!Hm`1Ȕ!UP\ xVʤk|sN!NSOT0 L٘%bj!ǨAP(` (cQ"'e'Jb.UI8j"Jˀ&B Q#C&ȴ[E 빫d6o;q+I'QvQ 'KTѱUA {k[,>>7"3 4B?p^a[-{v.21;,2@ |;#{"k;-B Z? R(ǽ; ,NBYfr2˾CQH1<[{ۿ<\| #1i" ANr$&#Ap!@ ch!|wUE3JWa3Zq9U",<e4J7AT#Za>Fe{S>.3 6AlzH12K<c03N{33Dz[1,;L*MA/0r :a !ZjS{|!\LnT eP^Bȱ`:`+h% ZPO*?F TIT?ȇ(p7>"@D@fF d>dԢf$Rg CS$@Ԭ58 RV>0׆[R^">p> md ⠔HmmДl\[@Q=%BvF@EViwqM3r;g +xTN ۼ.éǪҒ4!I:#S=d(# e[&vӐPv"l !n8gֳ bmҖϐ cVqm'Mm z\A$O !Vp·\d$)!Af8:_篭000D_2_!@l#M#K"0זIܛ jHEؐ|K! ÍNE0q+@d`_xNBf/: Ѧ@a#+@!v?vZ yȢr[@'0^>8J˞#9t{n \׮j/,aV߱sѥ7ΐp g@N hpهO'_p+VzJ}h|cFlM I8L#i^[c ̺ SBp ̦j*CIM- kgFqm,>F"k.)aq0a {JR`G$*2")rXgKXȢ3M&z%6a*#Knq"VK0=C?P57 F˨GwOqLj$H)D!+%ZuUXc} 3$\jrߊH~{&٪ ՞90,δj7|u\r}t.13m5w^G .=ޛJ>bn 5Տnw 4БQriF # PT@ $!`')5[Q*hGfhgJR:hEh+%pdKa\ə"a!"t;(Ĭv*8b8̹i#r'O_",N*YÕ0L"iC7IG*ټs &t$ b,=wvk40|,Ҭ5pyko^sr]TlPAym8pt&NoBۆ"J0mV}y$ś7q& x;&ìc {W8}H0 .T<5@H11d N0F+CCYL&ĈAeZ1: 5[K6nHRL `tqc*6""'n#R 'FeYJFm1c&CmNN< bDSq-AJ XH!R5%Ph:$+| ED- YJtdAXrvӝcx'.xx2fIV3n7(Y i`NEy>e `v&7<@&Kt1(f6cs٦.yNYRVF^erKg!@xslR6z`5= Nvv&tٕ5F- 8Ym5;uBp 5 @L˸>Ǫ|Jb%)k^9& 9q=,|LDwM9cyGc g`p@shw&k1"f7 >̱W,Gmsyр_}@w|FcƷL$ O*Og771=}Zs;uqMk#Mfi~S \#3ȋ1dn7_^2 Audv^VDIq*{ c b{&kol${hDžXra(8(F.2-“f9VfwK=m7ܱt? &S%|?"j߳/ ZCŘ~9jDԞE_OzE(AO-Y^Ҽ={gwanoJ0=sWX q ЙE͑r{s]1(@qڅ?׌O:K  M Iw`I:@wb(B# @7?5 ;Xһ4Em2h<>#®nw㆔ v`~pl9Z(8!kh8x ~q 9 0b -|7p})D((B0-,É l2̆WjPBGC"DC|8 ]ۆ% StЈK[ž)DJħ`,@GEcKqEŠhile3@ah E#˼,jXKK;,|)MYK/#̑HMI4l̨ˆl(| M͆$ЏnMވHqlÀa@RjЭ 98,} OR @*̆Rrl5S5MPphS0Ljh%Fuԯc\ሆ Pap)o xg]  7ցAQQ AQZp=]8pbGpXw5^K+4 RA  Y|cKA|ڬtH$0(HŠD 0ӹ'I$; <7iЖSveI߬NXi ć~ ב J 7]9E=Yi^QY 6bkAq3nk 89!,` b jL7wnx&AP9Zm+Z2|ZEĤ LpXM]tkA|1^ $q5W(T )ܼu(gHwM+ Lď{Ć;s0踧1e SH9DED<-ً D͆fЁIԥCT+Dp\H}}Յ C% DEY蝗) Α%a ql )hȀ }r,vZ)#ǎZgn&m 8K&b&k@g|S<&]gw1A'zg,[>?ߐ[ A s3]sU`=}(@(ۥX~B<3u!߬(]Xhнk^œFLNQ[͍H"#Nb Cb9cIb{<^dIdJc\ "AVǰCvgp!e/kXIeHl erdKeZe[2?/dBPn`3fedNfe^ffnfg~fhfifjfkflfmfn+nd睨 Pc<汬l$!J?*mcg"۫(`J3K:uDæ;.;f-+2g :]62.hغ{{.ט璘Nyȁ9 >]034/P.3nC/p ^. ?@{?XI ( b{~阼H>|4_8;ۉ)a^ iôM^-36rfnדe|HkB[xK(E`[Yr1< <8ljē1YI7o@;iv7xE"6;Mx:r3nks t˽򃏋 Frg<( -.sc XPjnj~F8Җj5ڔ[Ƕ Z6,S8qĴ< 8Cv뼑khdb;D ۣ`8I?Ş(n BKWCbc-̆xW<9^2@Q? Cm k^m{ԝۺs_@{UZm}(p7:Cn3 FzT.s{qZ.8osZ5P8&8s8Ќ+ > YH11i)(*Nl1)vzը,`Z3XgzzP Q N_ boycK*ˆbf)l)lvXX_x7hdu2FLNw:潁jt8s8B? ,pqu:蕃cRqXq[U:;P! " b^h@aiD  @@N݆B@ޣ\ 7uN &L3lsаsMeۥɂxjD?&PHt11F.~D{4k{I2l8XkN`zo]5]z)z z2|7$ID4p&#)s/ -X@蛌l@MqwxȀ{|'|~ ~F VME7^L lP=&E_Yۆ^~GR d؁k8nڝӁ၈Z30]7rQ83ɝ %fȥ{C(tè9VBz*>Q$g REfF`„T0ǒ-k,Y?jC} -ڥ\:hhU<'wUWTJ1Ȓ'Nk_jLD>j gIIG3>5{ht`/N\ B 7JmdvAAdoyx۽,je?Vܶ2]Ȯ7 & Ps_6ns_5SG|ܷ=҃ :h_9LZTPq1߈ K5IFeyAS6QY!j&4c.e+#YJV8ޝdE&G]z%I5EYSl_9gV)1E$DS*8u#Ä4Gu ʹ%8 79J 6";XdY2xSA yHtĔpMQX=ASUT&>̕8Tq66׃sQ瘝a'wĽAnzଗțAw_4:}5#5`693>sH&v԰N9SKP /14X4jo#FD39>Be vMp]5IDK(P8w*w4E 1 yI9nx>z$zbF!2>7tjLJr1C]e +lt+>WK,AmG_ˬ8kqJp(R3 Jb%{!aFV*0T.=^]H`S#"`DmQs0PFGϱXv.6`cG4 R-n08h&!cl ~V#e8j %2h@TG|0lduαc?c|/vQ4fCcȄ&A[71αl,Xd7bx)dd(A\& TrIF"aPJ8 9U6rHDs*0xnvp;n~eK6NU|ZJS\5=XjV簊񪝽@%4 ӗfّ,p(V .~,@x2MXP@4!5~Ԉ, 憂XoD'b<|1}Cnb;Pc  =#COHNEe,+F|MF3h &&"!W!ppudLTdQ\FB0A^I]#ӰGic,Eh})FRi5hPҭ ,h7ҟCqFL],QCv$u >@:7FQx5s (Vұ lȏ`ao\ۉ&^3üP xM*"$ܥ4p~Q bUz6 &8 B @B!F/o#RmKƣF7aݍH/pԛ&]rTc q`+(ABAH64|S8].szl̔6f;[> xl GP:UMM۠:3IFTҊ͘,?|UfYRlWpɁ-[aᛍȍ d+[."nq#ºA( \<(|wDŽхǭ)7=XЅo_Ȇ׍Ӄ, LO>k/&ӿ>XAloK=&?SXI]p]X8q_`)! FN V dY vLjy > Ơ ֠   ! Ǩ` .!O<7L6.|tX|^\)vhDFqt ) ᯤPv\jA8`ِCڨIѭ֛ 넢Q!֕oI|;FC Y@a3Qa6- /JY:p"ͅFA!Za)r5!Y@hYKŜ!GhJF!hc:T>a3B9~$$ Lp@Xa@x6$ÓԄl1D&RBp球:@I("EZdP58=aՄ4P`a>߯>l8P 0"B_lCY8$C/Td2cG6T\J]6FlMH_x9 A3eC(ZDm9tdΡHZOؑ([m[eETVN>R'yDp[`zE\6̤qMOvC f `C`qh,s2 t" BHB#@le]jLlFxFTA&Q65(^lChH!A9>DĥӉJ͇;´CmY=#QZOFxe> &%GYNG&aex >,:enDa8mN@ma9e"lLNh,Za\kFΝG]YmD[k>86B9W@W`Ojo '>q.gr>BJ P'"lB,@OڥltqDQHwKd'̔T8XnQ3 GRC淚`7ǣs%Z!nC4X6DP)TS\kÛ@_9@ jaoDC6C@'s~nR _Ll'[B=(Y?CBlCI4I6%LH܇84+6>X>`HF7JbFk3G7dϐ`DELnPL\VȵRpxL[RZ Gkjn@sիekL+%nҨA4 mþβƞp)8l N54EN&O<Ȣׯ\_ Ε0̢` K9DHm6 ->Cg pCp.F|?0>N'A vJKR%P$K׆'饂yr5b.C8^JFCLbDtMִJ,Qx ߤ F\Mm4۠㩨Y\E°p nnnʱ۱qdd%h%:/qUӓ*b"mn)NDR #/z1,>\<2)φTC3,.LkoJH T#2/#*01\T.OuaC`Fp y8lB 0 FFB mCHjFex mXPO25mdKlS*pK +mZ7 UVMpn nEA >R.65[ Z!w@$U]^FFc5꒴@J4@:4wwMY f$IBS]hp "N@cM(peC(oPzQNP8gNvW6¯w6 83i`G+SiE+fH*/rp'_'r81Gj Xu0 bW"|ewQ/j oG>F5ڞQ3ᆟ|`PXDIsB3FcZq7רز;:P"`HywtJhxtK.zzGC (F0I:W#30Y NG01#3xeR'Nnb[k >d@־&f xf&]@u_k_Cj0 [v ʝ[:Xzqg:H7yvfGGg  }"x&>;sX쥆$K|;5gDpSݵ!?;FK_sK1o (R?DIth~#w۱xzғ:G=(_󯨥u .և؟؟}#y 6_ 4׽1=#P :>>'/>7?>GO>sWo>wuia/5>y̋pAFO{>c"a<#X')rjbߨ.B(J^9`l`]jk'C:/#<X$C0ؾ 3G@{#aW77929TtqGA 6,E3]i8bBX[lAHr4dɂA0xdȑ0uԬ  ;shPC5ziRK6ujT %SXˠ(fg( C[sڊwn{ 09CGt7MnsŒ@p(J8FI6ܸ`Kk:i4}.`QCKX*`pa H&V\z],>)TYT&N7aT'n׷~D 5I  j!BP# $H!:bp&TЬPlB 4[x1]`?8FYit;xDJ1+r1έM9NklCm!$šK' Nć{Q59'w٤zɆRL_,Qjb3" %/1?VB iQ $H"?AB%<"xG"H+R{#`HXB?H$8( 1bPZs  ծ.)Ѻs4JB+2F4E8 t ݦxE:G#EczB3JF&\+Kbt1O$i 8}*KST  RJ -fg Ђ %5QA*խ#2(n3RX#,0YLc&1Q0f$B#b襂SL`@F87ԮD*-0ǔI^DehBXbnͳEgL#Nؘ<8BIGbNq<r{C#A!1sӛasRdAH+&BgwzJH SHX* !F(R1`ALWTz,JP2rCq+A=C/: 2aP 9 h$E:g J4{.R9*Vuq4A9jā $(C>0X(pV;mr)ilـ N.щ6d2%w*()ϑ⣁^[2LRqBuOx[H! 9`!|P(1d# 7˹dc'pjO2 tb_54mmwrLhRAP>V Ìd7m5MfgD5Ĉ9oq\HĻ ]hCsv!_aC&/;"YZ#t{]'x*|zQj<4 1=MB5D G^J͏dv 9Rd.-48>CȲZ|tiL`Cb>ǥDjSǩm*cDWHlUz!`HAҁ+L˛_uVeZ{8hAV9qoTv"B1ψ4:0̃T9yى\!c A8"8⣷Sw}^u_YGνx BsiWGn^wyw _xWx?)_y_9yI_zӟWYz׿i_{y{_|W|?ї_}_}_~W~_P P#P'+/3P7;?CPGKOSPW[_cP&Go_OFaFrdlP dIO! P 01ŨP PFP PP   ."  Q Q#Q'+Q23 21)23* b\BM)"#'Z]4N '-- ~qm!hpv>d[΁r!;2Nq"'nl{Q, b+81sn5)~b bgH"jA#[ iA-ބ"S$N@l!) #X"jʎ:j` B9B^ lϜ~V$|"ڦ 6&uZZZ ;ad5G1JĉFN3]c,[(a55T."24iV^?""Q@cwUE4[9~@`YvBg. 0 J"b*vuc d b0[3'Aߞa~ c6Cݘ#8[v@EGA17$N4&@Ah9 e@>7edoc8T!S)>ݴcХFMI7p9!8i'hq#.u38mKa8h*0hl)>D iB-G5M;l*S)i`,9f^+l$̆"AS, '4->a1mo68T+C (5PpMnkʥ ZPYBΑjFZ"M:Tzb?~8%9#2yq O9ِ 8oV^a l|Ey#AO*U/Yk:zBͼq-Al#w2=No%8BA&9} SkIL& ># >F7dŜ> L.ˆ1p VCI1<3bV$hجfj޹wgG|bTh0S(% TcK 1bp* ݘc|lU`V$E ?+Haba CTLaPCˠlv8rff@%*x‹j87XUYE`Z^PD؋ӹu# EGڕ d/+JU 8Ç@cSB9ϙ ґl^JZ4]J;6y$h{a>Ilc+MTyPG%l鷗mn90Ev: L“  H3}*ͨF7юz HGJҒ(MJWҖ>%sAtәt 4-LqzS79ݩOujSԨC*P* MmD#BթW@HU]*Vź e%Z͊K\'AKL­uM8饀OZTbT6T:RV N}Xٱv*[3U͞jE@ָεv@ܺE*Y‏=6^;#t{KYJUM91SH )pLng>(|* zN3WBXDz7/dK IJjiY⃴ Φu k%H"Qۺvu-^c BK\q̢d [-N! Â8t3Eʒui zKY=r}džv^~UM-X<`6sozյrElaC!%r9V1}sjܓ6ćTf PhAGHp>#h~!+پL^7^MwPW\.Ԩ&Ŝ`V @u/~-v -{CX o .ARڦr™ly^olwq66 #OgӜfʆ55\U/Yv5_4]mx![jX׸ Fc$oVg$] qR{ s[ޠ}zFGҏ.Rlqa2.dz20g:';vǣ=)0ۡ c -! ߹YFң@?9 BYFyEJ $HٔNɓDR9VXhZHU/el%xP(Bl Qٖp)ViؕوaYjP\[ȕz %ҐǕ\lqJkO9hـ>\%6)kwt5{]9p{A19b8Hp+̕'r$r 0 vɕww ȗ_1 y[b Jnњ$V;@)(6~qP9P3. g;ə>%@(FbHäM)P..G( 9 y)[y͉u}o*i[yg 5ZGK^r)IFviizƇs9Oـe=(bya!d8QR35z>ڤScPS #xZѹ<Ǣ~u[Qq SqVq9a%# 'eᥡIGR>Z7Rj|VmU!vFzxl(=i!ᛧ{!)Aՠjy -4a`Oa'qhGz$M`њȥ?鉲Z2sC/t'RU`ڙ*vb-p:Q0P':@A:˱ڬzj3ȗ&Z m`O`Z:0 vypv\/ 6NɳEYZpJP@m7o':(osHZSIEkR ![8)`^q ;W2A>Kl*'om{Q0QF *۠VhЗnѓA` ȩA ʪp{xtۏe5` V.˷pÄ6ƛ `Hҳh;*M ԮɓUlb'C0Sսj H:UHq;KA)ԶSq&[`~\ф i eQXы + &GYǓۥ%tMхF{ :- Jh:TçZ¬A wZ+ Loʢۏ6&S$ zKxˆd O鿱0<5rtQPYN<ȠŪ Hb{lLPT\ Y<{A|[Ufe K;Jʳ`ź }~ Ne8mҼ,ȼͲ|܈NՍcXTI< 1,\L|}t̐,|S =]m#o'&qNـqFp"'j)"j4 59'~g46ԦGҾmY}  W3o'`'~cwr=c}MBm/0 #f>h,"U4`P|j[i e$ [h[59q>PJD5 \v ag䀵&Dr϶k6{#9TJx&smh)o͐]ϰ =U 4G=@^ʊ$voPܪ2Fb1p:+rw8 QcxAMc~W$^:h==(B#Bo&}XU`]d+|P|uئ$™+6Ɵb4>}>*.>NeQS srA$p@`{^z(!JCJI)ˀ<^6@ Q0F, O= ֆ$ mͥ,MN A81 O}链 (ey" XL=}Ĕ*~芾>^~阞难>^~ꨞꪾ>^~븞뺾>^~Ȟʾ>^~؞ھ>^~>^~?_ ?_ "O4a y@]MREsO=2A%]vEֲ U/o3_vQc%N03{GDoVG#1e̙5oȵh*fkرeϦ]mܹuo'^qɕ/gsѥO^uٵowŏ'_yկg{̵{Ѫ!bFA>#5դ!'k4> qB 3lKq1Ќ0QDC ҅FA 5|oqfqH"diDꯛtGE %}Jʆ4ng u O}>6ԇ@D UnUU"pā CEE~5SA^ԇA鹢J mx"SǞ#/tҊTؑ tmE+芏Ԛèt 7H>Q'm74V#+HǑdӥ.> bq၊gӞ+;HZW) qYu Af Y_Ă$zѕ#F v\B~ex,A1v,L0_8QF 2Yc06&]4%&Xc;1[[68 i9uM@,U=%ALxE',r$ ak 3ʞr 8K Oņ=*ñJ¬U1@`+Y|Pć ‰a,P\ec.#>vm Y :!{Qrs|[Ђk=+*NmT:QdT _#LoCé-9!m X{E&H_\=c]M9EW^qdq+6 Q0ŢAz_- tu5A\>?wiDthcּ/&[8w\N]=0zR&mnCUXbn6`8yMt7}ǒxcIE&X,ޒB`E%Iை4#Iu_1 ]\R5|lARZpXg! B"mr eۋ_)y+k&.@~ dT#‡$ *g%[:Ys8oEYsha viC*mcHCXx1 >LAf>{GbiC2_|AFlX)zovC4:&;|Mճ !o1sC:t hA?p;!1$ha*bk>-"2!dzA )(hwHŃ+@Э-p>jn:4ۋcߊ. ?0@'#s+nxSRuAR+k:c|`B%|[M^3A0'`*|¸EdAFԢ(0@bFġZZI4J9%<bDW%aQ M,&HJlK|E^ŗ؅qFa c k$Ee\FflFg|FhFiFjFkFlFmFnFoFp GqGr,Gsnp&%Є`,SYMX׳ۉ͗s-ܸ7| ФQXW\|y[m5=ܓ]]]] ^^-^=^M^]^m^}^^^^^^^^^ __-_=2D-]x{8y{sr_[{=S8PYZ"L;T88>J_ ν=U- _j0mn&C͖oyC nnӈH:PE b >Et`s},MS-0,bYYcHybb`+`%q !֭a)>-!act)_b,bsck(Ç`ЉʆPI )5DF(8 #s=N{P=Ƈ:X$hpRsMe Ԕa6U6dd%_N=%B|Pӱ5evaHg~dHjk^E" mnJ\`^=RLIe(gn] a<|ADX$5go&fD&cghhhhii^n tHitk:^>ViF(wMduBϜ!(8/TSR$) FfnX`Tƭ`v.>M:p>n/s+qij2ńЉ 0(V๫Ѩ 2؄\阶.g@GE;-6 kؤAQc6R')iPҨŅEF/UZlsjp q>\[8#bЊd>g$ofan;0PlDL~H=s澈.<^ii@β0AVYhq v2պV`  НjSDp0a6韖u S"룑`|Q#QN \DeVr#p`*&qxlyl_X-?[a% rym>iLRd@6l0jh)>pA?0Kʴq.[ s%:yYXsHlsdp`uscd*z)aD t807^i5oq=xtH낀mF_(Jp0rO9+no1*O5n.u[-o@G"v&@7`lP0;}WRBN#'%$2) q*WBSt+'u_wxyy/y?yOymtY^)x^kDIP *q &XU|PL0zhzCfʑWRMcVF'W5i %l( v'tUdN.hzz7.h%| 'f@.dG\hy|s ۄ^Hѷ^PutY6[wfz77Ï6c!$m?pq|PsimPm mhKח2B 7u?;LJgg30?O~gtp8 l!Ĉ'Rh9g "1val#ʔ*Wl%̘/oucD(:kӉ 9x=cJ۸vlK-9pSkA ̴jײm-ܸrҭk.޼zTT\Gl!ʉƋondߍi7d AE O|}+RiҥΪ6sN)vo|bۥ×Zʗ3o9ҧSK6Uj6fl<=|ӗi3iۯmu4-ӕea%HPp=J|J8!Zx!^/'/VN5ePmR4x֞{'8cC"iAiP*`:#ځ-ܓ%S+Tx%Yj%]_a73 Dip'NɘH7pCGq%OyxT7p}c6X3SCLJBJzԢJ~K5(> NyJj4T'**]a/e*$0ݕut<#]141^CPI<CN;sN6;$)G2nފ ԤG T/GT / <0|0 +0 ;0K<1[|1k1{1!<2%|2)2-21<35|393=_8U3,O8&@EƵ2,Q'I[@VwRrݘS5^3bۀh@4P#esDw7C݇ DG/s>u,C|NƆ.8~YsyLR~ >#)OQmQFN@bkR<@ )FPؒеB%ٺK^s߃ \P'%8 S9>G x3">@vCCJMZq lMP5A"WKZRao#LApe~a\Hr+ҦBm pD.q\$ 1c>¾o7 sY:8BEkqP!(8X#YӀ(#= ZG,ɜ#j`U7qwIH#w#^`!AQJDlz6჈`C/!ot+LG4/@O!b6xRWL3_K*p- tD p㘥0 ƃM #2#\!6A#IL"iHÈrݏxՈ%I{N38ܒta@4_e^ Gn5C`~ gFQ{-| iƮpq4LJ` p'!787DhZj?zmM۝CmEfe,s,{Y@l1)G3:'~ i b:",18FgcL?c\/`  8Y6 -i 1 ݕ+D_)Y&MjM&zGÖ1 40YM, W:@dݟފ͝PefWᑐ` j9M 5؊!Ua\Iw9T ĈTlK|" A, }T\z8zi\:@ÀY<-1JlX%HG7]›W@pP̩\ȭ4Tb#JFM MϿIDƩM3}L͟8,UՁ_+,x, + ` 53TC6 #XM@1Z9BR5OYҘ| IM 02] 1ȔF|ł`-Re<ORV.[ 5LD2 5MuM7M )F@ѨH=! 4th9aX y!KO . 35%OHC#f"4Ȝ D%nI9ܪ(WNia1t"AEbNa)(PţOs8`@5 SY+R._МyH/>4Մ1]22+$]qEY O<O65^"8Z)P"Y) DYiV'PD*T5\S|dFȝ#m4]e^?r DX+fjDkJp`cD1sE=$u[9=D9HeC /L%E0$A=aȟ6²[zdAQDƧŖɶp4h>6$rUAC-2GD%W G=@D_B&1 >8J(>D0J"C4ÄOAC^bTA͈1,)1]_ՠB*TI]I&m>@ݙe3Dcy 6ᡱY6ڵ )}Y8LD5 pOk}|)iRo&8:Śc~%ڌBKs>ĿYgu^LGxjT4$BW|40Q:H|bY$Wzqdg悼`KNc$N'Eq@DfX@+8LA\(,ȉMV" }-(dÍ| >,IDu"@tq$A Ab9(UGbUYRϓ$A&hUz 0), f=:ݕIKx`dl&Yk6) l>DBlʮBBlg Ktذ,6~n- ΎsApq)dB䨶۾џCyD-5+DVmAZq 4Ʌ:T..6nt-AdUWޮ9fpR*Xúgq.-㦮.qtd\վ소gN.//&./65x*T^/fʌ BB6a]tT[XM(VUE*LlVƯ~1^ 54./ AbL/Ex8+DclC,!r9 >G`t8<1i|gdKaM k/0\UEGѺ z`A'=&œCJ1ʯ"+o/$ tDI5DGOIwADD0>}Q1`/`T<[ChҊv@SIp TpEM 0$8hA`:,8:s\&I&<1 3OC8s9|Q ۪Ĩ% 3$s+"9õS' gqgf񄭅0m[oA`gZL$.^5`>C@$ıϿ3D0EH,W蓂a/ {X{@Hj N40''Oplc-t`@EFI(Z;C:υWHY>ڧMoJ ]E8؄)B* W{OJC1^2[lkaJlbUy 8͔]BԽē >!u*C(j#"w"KxxwW/+B3d>d||w|;+K|$GK5 8{89'|d:mWwJSD: o ї}ωg,9WQD 0IESׁh|ANa-Dh}Qhݸ-LTY gź݅W'b>JKmP*C_&O `%؆SPQ50C ic'}639' 0HWX OJC<'Cuu[V#Ã0E#;HPH DNbŽX,Z9|Ԇ+c/D(%>[880AţO`g^O'nM\.> zFل?y11zXc] me ]0z6d3,5H5laPA+B',[.Đ 8UUl./.t3n*.uDvv/x﷣w7zk@B+z{xk;+8}w3H*t*D{8DxC34C3;$7?>;G$ c64x[9qt"AlyG\D|%F1FH>E.]nu\"NėN9oUEw蒚9vE^&bXx9I%i"B~4.Tz l2j).d8, 0X/ "b051>@ 6>`6TrAQ`>%l*9Xdّ|@Ky]x'De<6!4px")"yʓ .(f3䐇t˛#h@#*H5☍-#," 56 A#CoۄX$N8r\7! Hӈ$"c'-QR.J;%*N > h^iH *.[XLc11"҆D)3 "YP!,4}s81<&щ4 /)!I ҍq$*0 91K,6B9Q] tgT `<Y 2)]|cz9m|1q.hD?zh"Cq$5K:Ɇ <#I]RV(37đ l<ͽ"PeCL3ӚDuO3K5&FsIzXbqdËcOJck3$E3"#1iF2ң$CЊF?hO!6jM!\cd*gڀ b$$i2" myI)2Yr+ẒMj:2g:=O/w `RԭH]OBsHn m8qhSiL)CRNs|4tEχċ 8GHx8/Rؖ] ˂'xXL[b)N18|a0& U"bXXDb*Sд8kS08] &Rw s#:(\PK]%F^#~G,A<8 k*q'XF A_?#ϰ}173X9@-GFxYezc5MLf-_Tqkf mÒ$&q!-鶘-pI4.+\fNvt1]<`'ck_moܛbŸy,2,:=ᨢ46j8k]o ^p?pܬ9tmqw "o S&`=p'rI^r)Os)M]כI2xjsAЉ^tIWҙt?Qԩ^u_Yֹuaح޼ݝl qGĪ7XidqHyӷrid'`b0ϼh,^W/gᾈL"B#Fw8D2-9?E\TǨF{tL̡{/5z}Pp#_ыrY'9Z 1ͷ";CTt HxOBhڛ}SoA"f_B ("2 =$/"Є,;le h=У[^m ~hexl( F~1 -,ɱH D*(O?>S] "܋VL NBLP !#)%%*!a,'4DX`/:'"N 3@p !I)o8t# }pZ dhH~DS.8.S O00E"EblP ۂ# =g$ip>4 aX!ghc(]', A)QA'I6xT9!,"y Kp0 ^X$#B!$a2Bd14R.x}AB.XҘbJ]J$l10ĶXZ0XPW"R!^%!&JBfDD#E.b+2$Юe+ekA,a FC2 J$R""6A: ,6)6.Dp1BL_ZOK8'z %DKCJ숴C5wQ#j{7baĈn#M87Q%,303%0PiP\fG1Ratwnn۸%6fK@f) rDMU&Zw%5Ye[v_PdStq7 Y($0(()Yɓ{t" d1HZ#^P"<95Q;yXRۚ f-\ xl> "+<%" ƔADbƛ a)' Xbb!KSR BW1B'? >6չ"H7:\ 4Ȃa91h0 `Fb4K"E!q$@^ Ozz!vDL ζ A k."s-n# ˑz%CiP7Bq5F0r %̹q^zs6/l5;vr=9^xϡחW;wv,g BZ)ZOWvbø\  .%} "šiZ@   "ח¾Q'"ŝ' K$A%1A-(23BO],|8 C8Zt2~) b$t7 8jz& Ak!i&#! TjIo\RB?&ޘʣ > E6D x c7H6UMap1`B>t)"U؛S ݢ3`an~8z%E1/9ݓjm &BWa"}=cβ>W.-mSڠFDP%"{8@y}a1hb|Jbnb2ԡ蛛^&1M r]:r1a[;|Y/"wX#ݹl;llJ4ɚcOF`tpӦ"7uS'؁YХC/t 63*ӭ\25R *6WTRģ*^C_Y۵ӈ XpUuz][WR}W-6F&|ʁ-zZނb3 ;ٴk۾;ݼ{ <ċ?}C>K]s?`Hs[ t4uVYw\y-s p!SLT"J7Pe#b.c285 R'`IHc>.U[?b J.dN> eRNIeV^eZne^~ fbIfffjI8 grIgrY۝z's&IJWxyt4YGil"z>u"n:iR{L.'ꖀ!GoUhbCX؊O9*7R1T/Aő`@W6Nᣑ49\,-Nba7lLg0߬;kPLF۞juR )>>@A.PTW#Ƒ/>z.m]Z2W ɯR6MVveP:jl6Tn'sWiO*n,ʰJԔ;kұnX+YuW^=Kz^BFԨ1,[x=%C]3bQ,v48(t4p椃fG1> 9IkN;6L7c0vYS8[A"8F ;.>"پQտ~ 6sCenTe,C*^s<@sKQqܴyhbmJ"]6մ?3lhZ1w4\ӆ"mk/pӉv=M)X۠pE٪֗ٸdq}|+! &6m%.1\$nw`$I94z6\ R$\0E&At|[1]Jw:$etp,GPi0ږY8E#YF01[ G0|?.IЃ וB&zDIGQ(2t>"ޜdSl8r_ADrQRg- `Ph?&r"z Ԁƌn LфϕL(B\H7Df >R",Ӛ1Y 8  (<`R4 ke >:XS#<ݘP) E;%π  (,WFb0Il j%kBT9YC9r(#s{\ԓC)k8H8/r@hTCe@D񅮕 l.3P ZԐc ˩7zU* W縥pCI|1LMMEIkE|h;MLFso+tI _#`">b 5jl`<}$m H ,H((TQYT+l6lT0CW(XnΐNP(9ēTzQ6eF1l aa6C_jр,Y.{c& /\^rDԼ[WdwM< LhE‰M+lHA4!O6Bvm)}GC5Gyp["\Ѐ4ư/7>65*F1 8mji_JHc- g0s"GPݱWid縷Ұ%Cn<-SƐT6S\ Ţ$~ .~3 5m|a9lSѬjV%[ϒƦ)EpW WK&NJ#X^&J#v؏ Tl5;Ͳ+0mQګRV`bv+H vxdݻ+3;F6*8JUN75J۲G'|@հQ4 9Ίa$fAM4jUf_#$h&&H.ŹsBÔ#+9p0Q|=M`;l(H[B!$Eƶ'c u}BE+DSn(Ave67+^)-P> Q 6F:LZ"Jxsun j8Pu mp4>vcW7SՔ}$5 Bsd.9z׼z+9W­, bŵLa ^!)N K8 m<>ea6EڡX"dRkCm3;!:IJ&=-oQ?}WԱJ5fڥ(V@gTѲ/B1sW WQIqqFx ӄ?PFA us f4T@@5a=H@60t}Qt}cF 5&XJQ BtXh;ZAi!Y\&XEDAQ+oBvKqRBvwQw"T0ƕg'G1xTEUu!@_ jzLqgD0x@u0 &E&EiaEVn V%gIznLkm|g;}Wlv}Ȗlg7wc7lH~d s $zH~iraX\AIq[93S]E\5,ѤJ]t @et @/plA-!$&qô#A4 &7CeĐ)ْ6ML6CJ`7a[Tc) m OQ8Ux I!c3uY@QnATcXc"}цbnGbse'CwXvWwAiِw*"nb sƇP ۰ rX牐@ ^ 0w6xyKx@x="I0{&EXƈxklkљ ؘ ōXh|D~dT( n ([m S; ^AInaoCTU1o D3n o ` ? 6ML W ""7qA0qq3pL-QaqLDcr!liS]"*lP4)7QM M@ PNttIG0F RǕ^ 3` #au_u!*k\EJd!uwfwiw]/vWGaCuzץ kb꘾e\vxhɟq[ao\6ӱYsz©87 @˗gJ@}pQ{8za9p c %V/0x/SYw Ԙ ǝڝCp:~mZ~Ksb$Yڟoi>үKQ &_:L C\  9:Lm3TJ5yh $n`붥' Bg8F7*Ё)’'FL & wҪS3FI-uQ90Q ^g ˊ25hښCK~~PL  {s#QIлYLJQ3r0s2!ѿoK11;'taZK>e\VA0U$ $YQlࢤ$// 3rS2 " DCF aKTT`.> Yە M&Li f;_G{ KPv؄KKPey wΐ5]xNS]gTy[}i~,^3\5p; LQbAA エ]ə #ޫɟ<%:G@ja K^d"{a ʻ|q,Pq:ġʍ$F,Ll׌٬ ,Ll'9Kb?T1jqL\Ͻp w,|g^! cI"% j!-[1U Sѽ{\֊DO .G{+S(FYi9LQX&S.P,Za1:>pR s0P0}#4CNi# YI)<+:%XbN.K!Tj0C #`]] tY  ;חvM֑rז\L رAw'^!琫|V&>7_B=HW0,F6` [(\ڰ=۾ E!T* fṚcsCѥMs< 3D]o:.{wP$!^!DBkPkEPjűD#jiS,B<\/qk=R!P]PS7UJ'e) j֎`#>(.Iq<J ;q3FMMaKQϵ4KK1q%qDè1  / ABa4B@AaHCL>N3J> ŽORk8OݐΑJU&4[#", 0*U! Q+*X! ' $3h  1^QlXO /6|$; |' MrCM/Ȭ l2 k+TjlcZKBAd6fvjΰj2Jf9Xš.FVpؓttFDibsq6Qa$>L. I6i593C3;(2/WLlOznxdT&ҿFEo{KDTjBS>n^Z> h x"Qf~6b$QpB:0Qb¤ D)r qd)w+q΀ӕS)(AL#t̺ +y%_'>2jI fYY=74OT_5d|u>lìAFHWt\|ql8,3Mv" Y9|l,ج !mf0r!wmJ]D: Um[~Rn9@yů0D B2tHCKI@ֆpxf&HtiǴ{+X]Sq[{Fr6 (Bps% M}S xvDPúUH7͢NOIA> ȠW"RF1c@,Nl*zC1E xϐE7oq(وrTnCAV2=NN \96 N^ )gqé a5z=',lyd C!˝m h[ ZhYT fmD[Or,Gi;.QG#`]WT"L"X 7 ֳ ׃=( # f XopqĴ$sDtQ:*QE/)*K,J(Y(űX=u4ȃDȄT2DžtȇpZ"yH{||ˑ_܊(ȈtɗɘtȆɚIuL쵈TOț I;ʓTɢDʤTʥdʦtʧʨʩʪʫʬʭʮʯ˰˱$˲4˳D˴T˵TD?[] $! ?wC8XᨪxAA:p|PaN/ý00 LlPbLy̘1Q|h(x/KL̑+J! 28 Q`ь)Ҍ+LMՌ3pMR䓈d{Iш7u|7nH+ΗTlnPb #c;T:Q>ek(q@TYX:n F4KHئZCSg%ϴg)(<C= Jw$%&Qcl'&hLYQaɄCQфzΤWMlRT8Vxf~$62cR}i(EI{*mI(W$qCԴq L1źꂜ8N5O9Heh.YQ.|x.! 5S8zcZaZڥڨO3.4ڮڤ)[,)M +<U : i M[88"APćË́?;bh5bMnON ' P'Bݜmp95hC pڸ0bb Lf  h H)23aćj}/ҰbY(yt^`SR|0M ;zz_$_ RWsqҳ@I+.~,`؈9pDp a>q "qvi;pa4,&|ЂVPyU09 [a銿iؒ ?;BlZZ2>ո`ZZ5F1g((̔V=**ﴴt[ |-/<ωHfp6_b1oW8Lp `A ҖIBmyҲ䚕9Cyt.cݥX 01L}lXvyv4Z͔~M8gh݄RWYg@^Ip3V`oV*[RrEE V w*nWoD ``hΣWg7!HػJ\Pn q#q,16s(aэ2:pp;%Yɉapv7pЂ5Xƨ5g0'y ei75A0vvwWghW~uwy_o#p|ptOq׀w)]p@ g|/% ~3q/=x!D Je;p&Z3wnE< t escg.(fMpHऱdqL 39Ug[(͌< XsE,6^3I1c=V1ۃl)|-\q $h/߾A,x0a6X؊֒A_.g W cάy3c> O 9|Ē* $SKit|z9S`r 3xhc\&\]2[9q?kb=ڦ_LJ>A`Y0 DsRyR6iiJ*x+X%&tςӉk6XsV! i8 I| ]I,Vi >&!' .؉&?O)$>F2 `@QN`BY*%\X奕WI&`Am mIgl*4'p扊*(41_뽢(ڙr.FA>S*9 uj`27j`װtPjI`cNIv#Q* tHBJ笔.qS6B Qöy듦tD6 0[7pC;+Vo:{1,1hY$3]e?̗cpE۴GD+mfJR"ߛK/,i7d.>vjZ%!ҼftƕTSMLQsU "T]yE# U6fu 5݌GIT7>/3)I Nx?YEm ܤM;`'l6H ֶG{WwJ(hRJ)3$id ŸIhiAi2O&Ay)]xʉBvfq~&it2J+ߨV ]z/8(*8!*Lsd՝*$9 FPz8GՎw0AcaeDYOAx [r!JH0bponX#. '&&eXV@ >ZiЙI& C71L(L /eN<9z-M1r` [8?p f_Eǵ;k9ʻM 86`~Ho i0ʚ5 h*$7 q5?՘8&"EیE',8o&# 漣5k,Y7fuA2nc, S*h 9LHr^J (8eP/$6~aq=0'kdJŊY|/6$Lg\ 58iБTQ$Cϴ'$A CCӍ!.M"<0>Y䉥 {`l< _7UK <3Ł=fCQJ`9C GA1+p1NG{j ؐ`|d LPpؽ( 2%vge3ulҩY!-i9BӠ8CmϘaJ)EaIġD'6t+M])bwM)GF+Ml̝$ƛ5dH &8pb'~@b)*B "V=/rKFp^``y^ aa1rhYK;\DC@ %#`h#MTLEUD"T3 tIEx:X7ȘF#+!>#@E=C@*AMYB.$apGBDML6 HaN8PfuBHjfnF/tCINC76 ̊U!E)M[2aRQf}. čD@lH%g^_BFVC. xBpLdW:Z[Zrbϸ1@A\^ʧ2}hlkGea_ x0x0P>\&$$gJ.CaUq,h (v(DV+eC(aD0(IB|Llǀ6ĆpEٔ%Wxz^:#mRL;r/hP]SoѩelMfjN&&*R[at|D.@,`ZbljmqdD,>TICnlʪʲl\,R͕άByl"dm"m*2m:BmJRmZW-maYrmv=غV*SmFClhLffi- vȎeO`m6׺$_ *D:O Q+>rn9̪Blk%RB#BxeFUB'.>P>Pڑr)MtMAXj`LAXGka._luȭP+Sڮ`4$gmEv,}f,YwԖM n-ߒU vvJ)' Snrnrr@(Dp7֫3.K_rR^`7Zi)=oap!檁P@9ګQ&0';K7l&ńKHAqClo첄~,ƥf,/fnTcs+$` C5D0ipNd&`8_f 9ONHD @QH">8D AA = J)BFPq Eh3 t3q<! %8;C:C;ahH]q8f*ǜejS]ȱ*`$DBHÖ6ȔDthERwhpdtwlt+mI*&mرL/tN׈C)A֬ȏxMC' wG)ԈbM]vlBOS,f>-**Fn*I+&)%ĦR(mBeBp(fBH>\!2V[uHIuB03]Pަlb'c?^+Er)`M+[B\4j~5'1E85pr՜B\D!E@3OcAFahsptaLJDpC+VKiAF{ǽ 7؇ʟUA_N8BAqܪ-mN R3TE4cM6e288 -׈4lACw*h8pA0N?MYNttGP9Eb*zd*Ǣ&8-88 BLH($b39ejGWCFN30 v,65[5ad909D,*CxՌys@L޵r9D r-kcgpje.Whf~ #qwý1f -odjm_DĶ9a SsB7-ΠP9M8n6gs@Ed= >D|l@D~~-0Vm-1h0Y6j Hбg@G. 48P+M һ!~6lH?CaH*#Bl"6a=AV&0* P۵vO(5PvvtAԿBϳwނT/*|쀲'fan⃕C.)2[hpAHB=t ׫*H}AP.PsL+sDCCя}(yB$WAbw8G6SvfK6c{  CDcT ^>89"D2zm:6& v0,: ss6S F27M4@_o@DB`ޥcgĶ_Xf9:~E_PWLnw\$B]DM5̍&@z߫aesBBB| ŕC{ƤHŁD8 -] 9̄ZXȓ⢕S^Ҵ MRx "C:JSW4ĄfZ\B0jcu-Z1bd0a|a?̆DlCD5t_[eט#DWhX+UQe *]ʚ`m۷qֽwo߿>xq<`tq4ǜwtywc9涵O?`m;ᙣ]-mfXn[3wA)й!B(,D; 9-P L@0(H1;l[`tٯGxl$(<$Hre?&I$GoaK7l4 ,rr)[B21D,dR2q<f!W:s6M sMB"$ rҕH)T ,Osˆ"F!: MuMT!pHj"|:!bO<K&B֎z+ ̢հ /HLU(Yβ賉BÈ40jPWZ{-_XI{:m-8nPsǍuG=qBͻ3{f?6oc0ǖF i?,GR`E :`y@nVn- @ k9>&< 5$fʆ*Kqh,!(L|,S3\M4wCNx&B*T aY]Hԅѩ~=*HIK &jkSHtx upL,*XZP`u'X;"spB?\BYQ$ͫ=ˢeXKZqT,k/Tr0U&_` 5>ՙݏ3P 1ҹ Vٺ cA j`TEHaKr#,p6m0G:\6 | q6x1' (6wp@87HP b:H"Xc7؛\b~D!#/(CbэppCEY46jkAx/qu(Y >?KjғȩfMb|CLq$̖TVIj Α/H0u33,0 qa;ᛷK4"/'MDń2i%CEA5g,e)t BjykjpY\G&|h Aju/8jGAUbfSh.m&DqEh"M XIԃe9AB]^)!vZ q蟺5u: G;qg0 X`n7HA!N&p3LXf9$4mΉBm`jj' z{ND,4߹;QFT1_W-K&NS1YqOᎳ:U% E3c]H_d5`e,P^i]U6B,XIU򕱜e-o]ֲk-q?a͘)&R jo`҄U?XhV .LBihE/эv!/كS5Qi Ì:4.@|i  (/7Y;ەla6_杢 r(j+ڃ3kH2YF*l'Bn@6ѝnuvoyϛo}p p/ w!Ak`Fp1q+Gbhn$\Sq`ѩ 8 P᤼6T|ЅWgĜ[Kkڴ*݀ Y*G@ >{VoZ~Mr'<v2ͿՠƉkWx)iڈθi"ZM@ʃsGN9m4# {;Α Hg7Y@ #7Vqc;0t(` @w,>ZFtc Qyo' 77w#_ayFϟ@ďj@oZA8#raj(cc gܪ6b qMF@BPnFJ iRkc4 ~ hl7bfb&GfC`.mph I!OB蹐bD>"+K4pyp`D  dj pp hRPn8ZH@`N殍j?D/8XƦ* X6jvjfޔNf;dy*G@ q#dAlhɎ 0zC6{ʐ` gN bQ E,S\F#d A#7!t; !K @M'qo2ppJ N6P!.:A0Y)p.O7RN FlO8c~P>^hL7XSN,kC!K,;0,H"#"}#<.# +E# >Cj6z)ڡ1A%%} r'Nz) 6s6v@"4A.f+ /L˴A$0cc;R.<đ}s.R/+RS0aA"7eb8Knx27zAܳW6 IJoDqH$KyPa) A3B1'p7}hr+;7xH4<.m8ڱ*h77.#;Mr9fB13"rcZ#< HԊCop7@Eyp 0,nJHD~!>khey-}2$ صAA6I ̠p=Di~"GVsZH&e X膸AKBz9=ThPG6As4?/mXX dҘb0HaF?H#u961Aɉ$ٌóvO;N$ tZ[ jĆh[з66b TcbA~Þ~عcwc!7qڼr#y;@X!^ ]Vl \K֬r;xI =r6F&A9p6G |J@HsU r yTPʕa?GÕA?=<ęJ"ť#8  ,=Bʉ633GBD[2o&ށ?0k^^= ^Рn48pFygk ( 9Ѥ=\г֬=hOr׵%-7@CIL~O;8e0 S,%r|"crf.O;bA@OTEH8ᐃY1a"# L"? \m-7Omxwtd{~S9N2:Uh WyUFZA7X>&> gM٠jz8N&a&F-{cpeGsnx8GG^/Mno-ܟBIax,d.i3mdzu(c86(bO# ?{HDT Eя]^t$I-8XhAk!;g9bA[:\62eup2pn H2hLx6NBB8Q+֎\4XʑDC$oL"F:|$CHZCbDZ4N3@[;5đʣ %)#L̥.wKU00i12c&sЌ4IjZfA8 j 8IrL:v3. *ΊV?J; qzZy1XbQVSTptIYĹpT+A>i"[$-VFyJpԣ5J7ӣT(lAX?Dp1$΂'tr.# ss<#1M! 6gy1EZ ()UM΀:Xߡ!u?BfX/eq jUF>"Ѓp Fٔ-AP,4oIRjQP^9**KjrW(7JOj7qQM M[亪O&UO{"6PVR:7:nG.wEU~3}Mo"Nf8nBaTT9ZQp)7G&dÃOtqL4"aGtcU EB@s<x9! PmL % >1bx¡3e3ZFೡr"RS eik[DԶ 3U VY K>DIA|_愻-MrTfdw/Mtw9+V)t B^wnos|ǵtܪ(;ġ(2&:4\xwu1MtuA[!@ $J8 +Y2ǁm5o7) bxZt, .bC3  ǡg;`g7SR#+EHS3p61! 3(12B jcȉ \y/1㸊~׊IC1h2߸ x&#9.ķ}0㈐8A%2}q/VmV1 W-D]77,1cQf <&fvM4yړ 1ЌSUFYYYip gA.'q٠q` q P 0 WtQe`vK Po/`[° @ I[rhgAQ`?}#u}SfJxE("FS}:rUC>A@(0t!E %ϰt'4!S0]\R%[B)Rh.8Wx+E3C8~]y"*(Pnqߩi/Ŝ !CI ٟi2S ,Y"D}jWYS2!m&isyE%qƑo)J!q zXb0ӣ+!UĠ<іTV+ia 9ch;+3 Ƃ1> m\I9,)x.SIoMZ!xSXRcDg?砤'q/JsNsoG fEA4)[Y6{#U!i>.B瀑q+j”MY:Ahzlה1e!IEeCp+bA`Q q/r"IZQِr@'(Qr'b?纪L|I/QuP% + >%Zuh&%%Ċ4u=Y1Κ n2쩰ԪEٺ,5]భٱEʽ*UxgZʽaiǭ[`/Uq ib(ڱe!Kuם30lu  3vpjar6&,sU6.6 ;=ϰBu9:|Ãt(b2kkanhGInd1v+vknUդePpikBم &mh\ rQ&Bȋ l  vX[Kʱ)L|';嚥D;!/yX0UYuXtk$2Q,$:|U|u(*2LiWX{) i W1] Şqc++2w2!DC Pb zͭ>EdϮC+ucG,! 1SBNW+Bc ~(boTU,gY$ o-K9K@q%Ho41s 3 P2Bɇe4cСE/3fL]}(uLkY'tZem 2j$A]7%6$re{(hf7qEHcwկ'ɒϧ_߾TWJIf|ʉnb4#gJPߊ8X2. :|p.pt"iBRI: cQbqF^\Jl,G0Ǚ[ rrg1 $1tJC !LgڶNa25yN31 GȻv$I(ۑr º 2 ,T1j%HU#T!.L1MV[}U 2!5M"Bco؈|=ϼ]HZ( bgw\r'6SD)M(:`ćA2Hb$eI*@`z߾RE\+NLbyQ"`,P+5!k:I)fJM0k)"ML eLTH3(qD$ͅ MS! '奞`h^fT*7"9)(rn41d 1TQTT ӡprUʰiqγ!9/@oM6e;OۜDu=7!TF( 1魷 }/xsXy4%88|LB  K_~OB"NQph6A B'8*!ʈHᖨ+VzI:Tʎɘ4ĢjvB72q#Gu-iEN@jK&⏺'b !}הC]"j&Wr-DP@K%(0%j!WVժXiWs)jX{0Zz;SQd.ꗐc,X# 9sfTD'qc`1o5+!*u9j)P)=-'@MRM,(Bi/p$U Љ4BKFT=M]q=+={]1JפhK;]׫4#Mէ5lf(R Kd7MXo~PɊ2^TCjJ`4Xñ1"XVJ4<2Q84LV/_s%y#dî A`  5 a%D勜B~?x*@, iHx3TS[A5iۢ D,m6θ"wkysȭs\?{H=^*bHOaWe%7 %D=[ NӞbm1 &\(J˩İQOESvMD{BcM@ٍ̋Qj65^wiVbWAg%*lX4]iTȐqc. qbnqcC5r \ji'J fJEnG6~S`/^ \څA޲tUgƐ^κ9msr{>.$@QB$&qHFbDPUWB~3|cp8QI 9*>dTRK$|T0R] ]yt$>5> =91;ao#yPH͝*)cM*UP̜N mu׈o8?ᒧ:^.J B[%nQ)9~p:XU/[?"8">7'M`</ FQb/gz犁 @ C1+X i.@:@@@ A0@|  _;h= 2@ $AAAA B1qa@U@wAJ/!B)B*B+B,B-B.B/B0 C1C2,C3 !Xp Z?ˢFK `DM > FPCR9:9c#+sPa@=kc P3; ><Sq ʛbLa|غ[ B 1q  ؙ0$ɻ@;)zG|ć)؅]y{K <C1=)A+L x &Hȗ𓅈|E D˜iD ЄD6ą3ĔI) MD Ed ,EL,J8ЋY ` SK b@qxIz`mO:TO p0JKv`K.q`8ʄ{ QˆFGzGˤGٝ$B=;&+eOrH'E$JQl ?:NxI(|KM,Kk͡N< 挝NHʋ|MuTZ3( &@C*0+(P€0puBA1)0*hL[K 0С||L,...4pEY ڥ[q<@Լ&y 1p | k̟Ք=Nq%P p|[4( $ &cN4 7R|˭„.K ؆77;*e3*S8r̆DS:e,5ɈS4eN=ӢS!37pSLT~NRs bIUޡ5O|<5`L;C{ HƟBЄh `t!t)Ȕ0'Ɇ^`ŨLJuUWP.@mIˋc7i1pa,&.W!!U !؄' P؊X X !pHeΡye2X|M&1͆2Sɑ-H%HTTA"?ES|(ڑ$2El`ڨI!S Z@hRA|PZDZ|˗{+qhٗ]RǨ9YɊ+}Յ0J2\5!GB!vyCĭ'yW󗭸ed!)𻦻alw%T+!iLJ2T)`ׄXu+peQpWȥ0J+X2@ 2 /VH3XXXo؜›Ȅ=,ehԥلٜE( EPI`m(" &9"ap|aQՁ " z a  ` >afN+:Ʉ9eT%/[)^ 巿8ӄܞXa2OI*GBa:cVybONZKf50yADR EB\ˬqT }N(tp a[UuM^.9sh] ͆]\_V^Q q h]5ZV טXM M--On'FM܄juI)PNMPSH{cN΄hfըytNL+jYXz=HwvUOARHa&FkޜbSrwE\|0h:RBhF3*\" Aa+V\D~jMFn隘䅰vMF]RWz׹ 1^X^岮 ,.`%c6Ϛ[fႺR,$Nxh#-lVFP gzr6}~gnwVC]poچf~͞ [l셮;QŽ\Mh߶ j78CARvTg8`U Pc;6x;ʬ| d%snJ*l$P ð ǫE K$K^@}TdL*@16/1H_p]d>_S(fQ@G)2>n55 XmVla@plΆmѮE Fv5al{gfXU)66Ex brX%m|P,m;TLĦU^ȶVsq~S υ5VsO|)Xbnq?LJ>_+̄poF_dzp T_SصuN |ۆ-odKK/̵L *"98XVF1HSlp&^ ٚeq`u$hvsH UXqصPWZNԐ:u[Ċ7A54TsӑL,o0x Z1Ƿhml,Z|mtN2Ixfbb N6hӕg$hYCM;8S)(ug/X .ljOrUł. v/. |rMQi=ؐsep"g0B)qz B!|'곕kzH>Ө .T|(,N4T>u&RڤIg|xD<)P~%GCmfD *$ÇraR(n"a:t Ǝ"G,i$ʔ*Wl%̘2gҬi&Μ:w'РB-jNkč!iJIj\*bVEr*=jÆ&Ϟ6rҭk.޼z/ZHPY8$Jvq'١lGv0`a.m4ԪWn5l\f#8*[cܖk /n8ʗ3o9ҧSn:s;Ǔ/o<׳o~<r8@pH wT 87Q\UNV`S"->c|He94Y]PTh.W1ᓇXOđA"I%HRg*xi9 3MM7QS S73%]tx.|tJeӍL,[ =o#%.bm%Bv-}ҍ9&)NuĖ5c $KEe'8D!<'Ό :q?J$d9LKgn Iv$NBSp3(uN636̍CCN7qaėAZ"aM9?4mӣv$iDH׈|L_%I4>tsS8|-57#H%5n"ֵϺ">Ύu枋s;,z{*>7o"xnU;MӲJC7>όI gE15D9@RK^sN)OuOUDgq.q챻 nnJ/'& ^]2%9IT ~䃺̪;"p`'_#4CfAp4$7ꃏ@R;RxK*Uq)6$ba s3Y[(QC#W&>G^XÍC w#*)dAU@x1tcJ&9kU"W| a :l86*M5,IȲ,B=`R,ai<@ VRuz#?*=C[, ݤ*5 AJ5)'abV:K.mp3Mu#|aF͊JRC)<]&a+1 roy$T:H HtTd!BD6g&les]Yt5EMbS~ 1$ f?,|GKq$)GE'y@LT1e f\`:*s`mVP%a09L>vFSp.H4)O9Zq45 n0BR^e@ܸJ+Б,"_G[cUVpc+znB - r_ X}mDD]>HE%O`m;LFC*W <-D3VVKon'23;otV>0I+ĚJ0dtdsߛC~ęҖL`k3Khu$~R 9B>Q.;cICLHA|c))$ex\z0qXY)Yც]=UV E8;ߍJA)i-8:(_E&*!9x:SLu!72PϱHj%OiXCY&&Ϋ&UفffP0A=f1w$GⰷxԠV!7Nw:*SyJ57v lpm%*Bg7w.>BB,Ů%M} Jbq#b f:D{ fuKY!x ۪#=My4J7b ƣ%S..snc;$^fQT&֔fYŲq[_N|DO9u aϐg­{>[hphX ^ÞCjz9sl9ZqZƠMe]')q\%K U~${L}fv)Β!B玬n#h|@:k9Lh k a*s~ʵSk%V_PqպTzʵn ^cJ V݆h\*YɴS!D!"li;$ X7+gF齩;` !O"#xWE8xT 7aJߍ9`Q~a QD/|]I, Cl +uS܇l E qBA<8 8u jXCܓxN~Uh4Q]FhRh8$RPߙ04C}E;iYPOOCP8 ˶9^6G=C~`lH陞7k[Hā;"T3,Ch{CS5J ɓPPՐJ 7dC'CπãxQQ|llSGT U -Rd@i Y a _q8͗`_( 7|8. мy@|sCrbN74T tRgf]*gq'8w!fCx^udIr9D7peXW-(W ermT9 \g+H-(wmU` 1LE@i kbz,rMUdC3eCfS :DuT6i6tT٩]vv fDJYxūuKHJ& ,ug8Ԙ>AiP]DJ1P)%(-fj$ >0Q 0tj)v8pK @ 8SI^!Bf$u ɞ*D S^ S B]Ae]115X]X T'E&1m\HT7 DT'JM H#1'w_8r6'bMc2rCXrE"x1eD.DQrX.D&en)'2. 12G`@dVb,l/{E%KH383993:.;3;#s:dz<3=׳=3>>3??3@tyP*0Y@q@C;)1&6D*uNBot'O%8PhHߙD*f8 (1+DnGjfhVJXHovʉP -JH g + x J/K IfopLD4\HJ<TGDDEΎK\48RG/saୠ5\GE5J7b\|C qC>M;Di64$l@N˪D90MYvJldu*eH|,pmx5[G4\Sq^?^D_wTv ``rFgawBTQ5ʢ-FAl]9>DDg8yA%w+CTU]dC&4߀~D`#my`]@!ikeN :<&7':|7vE4@F!|~3zd#>nI4debB=6PIٸH<.\~T¥٠ސqofjqKVAlZ%+XMyZuώS;I:IāmѬh;wB\0XXu8 uẅ́ĻFDAFげ$8ATHW0>2mm#֍WK g|hM [azG|.TEB<8e6ܷZrWб84:!_<vLIr+:wDApY3_nUL rZATO t>+ eJ+YtfL 7*tӚsTsHpIyiRKSVhpy*N)VA}V PɊK5T|VF4jiіMՕ,F/h\KeÆOܦ>"n!J;T76}ffͲGٲΞ]6nۻw 1om8S˙7wztөW~r eo)I4>?y9B[ c;p((Ҍa"#!Ϡ *0fA3sP!)O%]tcLtsR rNbO,H#=z(tCTJ!D)e%EcH!<9i*;V` +K2F2VPMZK.2MDç 8 Ç[!3|({ &0A3 *VB4,ȵzhMDߌ.UyMUcb\uݕ^}Xx3W=Ja避t"T$L2Z-1`ph{"@B }AWwhAOE"J|FٛB2mǍV!]D=?1]ٓő'i\'cp2Ȑ}-#1h*1*]4,a(9)i:˙Kh|p^暱71̇.L֜ "p Lf+ PӜkW{Ku8Wk8-5ߜs%D9%^ƠmC`sFo=NVrG[ɚqlK\nfwB*tn&PP0wz3 DG(`/ Da&yݡtaȆ3L@9>4mG 99,5rmBe3HH5a"bLa C+S3B1Ue6Eb L¨Q "lgsß (E-3iK8E >$F3!iT٨qsI*PNyG=cF|D#Y,_Ea=n$F; ?g:.v+%`'PR-A78qB]d$Nsk8DQLÇjy˖+I%)Al-PDf`;$]XC1T1:(-1J"RI .i"G!y`I|pQbb0/EY2eIAmeF2l`p>ښ/tdj wFլjҘ7FcoTE;IURT>[H*U^%cEnXkRZ5ViUZڜ9c"k\7J [$Cױѯ` [XZ2X>d)[Y^f9Y~hI[ZӞUjYZ׾li[[kDIDA$"MR{K")sܘ,̆.6 |op CmG#MrRP.';g(1nk76D=9q" ugk.iT3xK9(Hy(IlF̔W#]lt`+RƖ9 M\AJa]#>]`O6܇'" ɛ\É/sPP NS!qE.2QXX#FɁvnINRR֡$nɌ rT7S@5E-RVL3[+bw",z]xjI#'1=>X_aXj0liu*`,.D 2m\/6%S|$OBXBP}C*•7A6გLHNqhȲN t"[(F7 V\6&>A_QR$t|3D)Wyʻucȉ)\Z99h< و] N4a.EA@qR^_%Fί>ŀi? -VY3D%LUuK1RdQ6znds /y:f`O]mjcھ;oڴ !ؐ!j6BDhIH e𱩤`h56X'{O X%q#Uz{oArCrN촋."X‘@Lu ).#F*‘&"0-)똮.<>b0#@]Mb2q/iS0ײ0109heZF-ϡl0Q D4ծm@9"j!'^ d@%.B!JPA9cf)4"."$͚AP* &qsX:4-( <-5"BR!r(9AIGlʊF"R)-4A#Gb#jA'"=St"tF$s$SP&C'cfF?@QnF_.2Bu"$a,:YbC!jTC94J`G!JG2%4Q5ks?_-|j6i5? i)8)A*`^B}D@~9WIH bP=$P "|κ CPOA!b%@ F=ᔏ0op-2 #JQ?QVtZ@3+DVLWBA 4Yۏ,3NNADBUG!UAn$0q#v95\45Af=$\u\ 5:KuI3t ^"fqJU"qHW6Q}aO|>ʌ|@>pP90xrZb# a&w kaPvXO%H&Ochh LbBR?!p/dgOX@06lՄL Hm hTYsf,T[o]WvkGtp^]#HP%qo7Boo[&p(DQ(B%QuC0ax]/N%`vl;*!%-&t`4d* ZW 'L! n9t!A {)z˕V}+(~R`S!WU ?NCº)A#ll^A/oX?Va1 7x v ǻ(D8n"8$2ʚ b OSYWK7" ~GyȔYٖosYw{ٗY٘YٙYٚYٛYǙٜYיٝY癞ٞYٟZ ڠZڡ#Z'+ڢ/3Z7;ڣ?CZGKڤOSZW[ڥ_cZgkڦosZw{ڧZڨZکZڪZګaa:dWIcǪJ뺢NT؜D!||xT'?B!bAA@!`KZ%ں![BWR~!,1s?W;w<}R oLb%Zc(f~{_['fZVv::cI.B ̸dGi!{d I~$*w%HYB]ǵa{|G`'{#MDbRd{;%\P'.ں(tFgh@02I:!FDBئLhDi#n!24 a'Jӡ~< ]". < @t{ʇba%V' R[b((/ۜ; ·ID_O"\6FvMH bĵ\5JN3(!Bˇ[['%a ^bDbtcMDI&D<}C"Aȯ4M zn"Go!f(o(\7?I%I|!_% E yb<o$c!B'>b'${zǾO[!=}fgW'G8pܾ;j5s TC.n ^ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4Ҕ1b4Ӂڽ;'ɦOf[Ել QD2JxWewꈏA]D88]F/;q⹌'Hw“"D aOwuNmәz2E%\4#.=<̛;=ԫ[Ԝ'.8OD[Eۻ?ۿ&Xi.waO䕷T݈Ok|#qMHa^ana#"7#|a*b.c2Hc6ވc:c>dBIdFdJ.dN> eRNTGlזG(ad[& E&>(s+faZn/`CyWRFAaDۤ]i.Z\S'qjVuJ}Τ4 GV]S3P7Fk6uZӨk:[bEWն́mЦeGcjFUA&>WeHeno_|Aašca}UvzaD{Ƃ G !ҼXdAząfII\̅#crVXqv :/J3Ao$aIp:)̜G0չfJ/g3V@ YS5Jtv{r"Y㶦rϭa[qt,K,voԷI֔3NCR8퓭p8$Aӈ5PM6hy:tyKNA-;IYjOz6i 9w nIjhy6c(5Gm:8oz6y(|nSDI( @?7 >pCU:~ą.ާd|30Fl+I΀ލ.&J=NpJ&=.MN@90LGH@f\:∆5A&p_屏O0' ըTjyϡE}rrSkGXE%Ij [ +lwC0 4@a#8y^ HS/p:WHsҚvcED=yb+p|8HA6$h)8Z~"kZ݂"Ű=%86V #Ń/  GF7qt3 2۶탂W+)F8fgZ@(w<%0QB,=!S ;U~;GD8?ߕ3N4q*DRr- =5?Zk'9mxuFsju+̆r/46'X&9lC'.'wFQXWEЅAhxuhyW*Tp 7je$@[z|DkGeZ-b :qQl[9nԦxƕۗ\gB׷פJZ}"~d LP >C_Qt2ބpS_\ 8@quCOU+)Axqa p! >s,*"O|WQ#tJ, 5 O{%-HH(ɦl]b,WF օ4rJT.r4*qM}}wB n}۷Y0_NXgTq^GS`kшqZZŁN!P0@>AqPo Fs PKVpx>$fbtc+<=Jk cDl⮩21?v4p(q5&UD:(FdfsB)J(۹Pu.xw,*[R[UiU)/D#*;q'.<"zx$%*uI2C1_JAT+ѓ,&q7)R"l*4? YCLītI)R0$͉SK؛Uf5X8 19Lel!$Bj7E\f BerqynLȊzLȅlȇȉȋȍȏ ɑ,ɓLɕlɗə\U1t*0ɣLʥlʧ<!$A8z ˱,˳ K˹˻6*+p  lnj%p3ã,L9   l,@̜Ual:9jܰ Mm#R/\| -7;glances-3.4.0.3/docs/_static/glances-memory-profiling-without-history.png0000644000175000017500000007606514432156570026421 0ustar epsilonepsilonPNG  IHDRE19tEXtSoftwareMatplotlib version3.6.3, https://matplotlib.org/ pHYs B(x{IDATxwxUC %BGRmHT`>X((E" }JhCfMf`߯+ٙٙ{f;1-xYl`#$!a ;FH6Bvl`#$!a ;FH6Bvl`#$!a ;FH6Bvl`#$!a ;FH6Bvl`#$!a ;FH6Bvl`#$sD2ƨO>_!]AK.͚5r8ھ}{E2M7ݤɓ'g9PmG~\yz-kŋ ҥK%[Wr>p88q3ry%Ν3fdW_};C!!!Uʕ5tP?WZ裏 f:_^nYvsN5iDr8ɗ<*W3p84/םe]3s?Ԃ #K?nf*THCηE5JzUD uQgIIIQp87dpBլYS M7ݤ9sd'>>^?BCC|P'NmKWrb ; oɒ%jݺա\%Km۶oֆ TB|~ݫ;w^־kK.UrtM7YU֯_/;:l]`Æ ܹ/ez3ϨK.*_>SXBO?{=WL[Gվ}{]%9gs'zEiÆ *Y5Yo6ma.\j'O֫osv=BBB|rmذA=zt'߯>H-[ԗ_~>@V tuA֯__-ZвeԦMu]+VpK.Zf>c͘1C6mRz̕/ Zhٲezl߾]TVr vm9{|K,Q5Tl<_ЦMo%K;PB%KWz>ϓʥՌ1:ƕZxz-M:U]QQQ PϞ=uymܸQzԼys߿Ν?2eWkv[pɒ%[7ʕӳ>~[ Un|*.]ҫʕ+Wӧ˺&NJ*W+Vo=}*UpŠ?z-=S*Vj֬))f[nWRke#I7o֝wީ… +44T>=v_O8p@[ʕ+?vl߾]mڴQ``չsg9rĹ4iRr-z衇/^%5k֨VZ2qF-ZTY?CݺuS2eTpaU^]RRR\p8fuY*_۪j?Zhyߜ߯nݺ),,L V˖-k.eꫪX *p{}&m_>i111r8;w{1+""BFr}3|) ,PժUUP!5n8SU<>*V j/e|ٳUxq=9<%%%) @飯Jk׮Trݻ)… y_\Ɲjׯ-ܢB i޼yYVMK[ϕҖi&5iD~~~\k<'OV@@@і-[]GFonfd] \֏-iܕӜ>9'sYV&M$Ikזpy(9vjժ3f\7}]K*V/\ϟwo߾}޽-… VZϝss]hի'AZvm I'Nc=%KPBR"sU9O;f~m9!C… ƜݻWw}UjU͟?ez*T.]TxqB 1b$x~9rΜ9*U͛cǎرC{jժ9͛7ׯO>Ĺ]iK.)::Ze˖WYK/NN>iK.'P>}-ZpƜɓ߿UP!5jH?zG?S"/,,Ln>1bnvkՙ֭6lؠxIҲeLIҭު(-[,}y/g:Yzdm裏ooo/+VٳgΝ;;F:tY|y0sQF"E8_ƚy5k֘O?TZs=. ɔ(Qt,[,YcLvLXX裏ŋwa"""Ldd:mfk駟ҥK5k;;})T1Ƥu2eʘYfԨQÔ*U4kݻw sw /TVԯ_Ytb6mMd/^ߛ… gc9x3wyYx裏LŊM…ͨQk֬W\iFi-ZdV^m~mdƏWXь3ƬX`&Md֬Yc+㏛={d>ͺk$H3tPb 3l0#̙3c̥KLɒ%ȑ#]7uTmN<|PhQe>3g9pGcRca6lh,X` SxqӪU+2˴)U߿oK/d8q}vݻ˲Mf|||͞={L-Lݺu͆ ̆ ́.+o݄iӦE&M{n<9߸3j(gʗ/oLbVZe3}t#$&&iy޿-?**ʼfҥSN@fcN:e *dO^zo9gtk^zz_N2Ӝ>ǹ9Ot3i$#̚5lذcܟck׮m"##nϟo֭k"""\αWs(Sݻo믿n (`^{5gΜ15j0ŋ7&M2s='ٕsΙ 6%J=z 6;vdС 1~Yhiڴ)]75kRJN:K7xg}6uҖUF {˗moooyӘ-Z8?SW6SNurw|LTT_eYhQۙ[QQQufɒ%fʕfҤIvaVjZnܮsK/d ,hƌc[ӯ_?#|eNN>fÆ Fyğ af͚e$I&9c6&Sn]e>l2Ӯ];`>\oVk|||߲e3wv{/رH2Wvyƍ$qFc1;wv9iݺiݺuNn{mի^wۖ~iΜ9 8,_L<;0=z0%Jpp##ag͛o|ݻwoS@:}Fٹs1Ƙ83c <.]2իWwl֬ 6qqqq;w6ڵkҾ>}zS"ɬY%&Mxɓ@_u4˗7/^t{'MxxuƄΝ;$G.]2J2}q?p@+/If߾}Lݺu]ݶmdΝwSH/ Æ 3&>>9~th"j1,YH2?sS@zT\%///7c?2r3~xj.\7tPs}9_?쳦H"17.Mإb.^hƍgӎ#.\`-j wmz7|pfN8wIL =SNnߟ35kt>ͺn{鲾ڵk]:_?J*.s=M6.ܝ$9.qvAAA.~Hr9e}.qה*U\tcG}d]6iĥnos۲e2LѢEMrsqgԨQFY`Iffq9]tTRť<. DrsF2ee/'iNܜ'sYr17|Ҙ) ,m.M4q}A/)\.;7y晰,sgʔ)pd({ܔ󌟏}v#̞=9.11фf͵ m*U;c;vs^2;M-kԩqǏtx-6I|9SΑdVZ7brRǎ3֭[^z~0:q)\vߪU+Sre^Ssս1i_v߿x)_Kr=jnӄǏoڴ3.xٽ{d/_n1殻2۷ϴ|4lb(WKII1e˖y:u)Ts=3._%2)V\9UT:ݒj(6m1ƥT///uYׯwYV|]bEq.$9_rJ(o];t|r/^\uuYg-TMtMu>^ի%)G<'S#]vUBBm}駟nݺ s3պukiy}9ejcƍ{נA+WX,YD-[T W DFF^z._r:v(///qRr1jJ7o}sQǎCi&}.U(ڵky'fp95J+V/k޽JNNv7IVJջw,_rn9?00Psn:utR5J7nԥK2-'ffSJ-GvUvrVg<~VZ]:|Pxq5j:lܸ>Ks-(44%&I:t~I_.dԩS'?mJ;m_Z~~lcml7nTŝmI}ڶmw4㊪v~zyy}.GպuKJm<>99Y=zr.]r9_tein>ǹ=OJ9,oڴI%J-✧tҙαSVҽޛe' ֬YSݻVXӧOUTn]թS˹r^JJ~\ڹ{ӦM;rs-m߾MԩΞ=e{d9Af$$TH/^<۲_N⋚1cFfMr9SΑ*URӦMP19szrN8;gL20`̙\muرcq9]S*s+WTz\ھh{>"E8Ϟ=[v/{yݱϪ~Jڿt;CΝz K|R>>>Ro/LzF י3g\q@ь?~9"ooo!::ڥz tN,vĉw2Çۗq{6@իW/5lPO?l+*m[3.+͑#G \>|8{Ӗ>K$b9ŋgz_qǏkXcQP!o^s̑$gb[n_ڵkMߑ#G2mOB) StRmڴyq+ i:uJƘl{<~̙iW^GyDǏܹsՠAkΛӧOk͚5.?7,7vJRÆ UlY+,XХ'YEVr:]'$י:mҥO.)-%J{6va۝sղ;ߤ uJffM<7o;O>]۷WXXX˼;]ڵkUH|nd,<)Y.XwI\7rĉ9rVRE .֭[hѢѣK"{Ryz<6~'qs|V_w焌Zp96s`F9˴W^ye[̙駟Vddԩ>}t9SY#}Q}WJJJҪUo>mdYvv+VDzGTD 5iĥ=̫ݮʪty>qqO3c;fgѢE2d^{5.^{NÆ SJJm8>}ZLҧUԩS.CCC3͓6_DF}V$WR%IY {;K,$9sѣ*\|}}*0.]Z ,r}j]R/ɧOVBBۤ]5X՗yA.dPwƤc%sι|i%dɒn>z׿[СC.Ɍ%J}_lloaaaر-k׮~͙3GŊw᜾dժUKeʔq!;w.Sc͛7OC ?*//lOaaaj׮!%>O駟ց4k,ˊЀ߫pjذsgYwn9uEs5gje9Y*'իW2rW.ZgI}qڽ{fΜ^zezRJe.iu9= Yظ|ڗCll˾u8zGꡇsl>p~ْR=޺۵|r;6ObXNs9yjduu:vX=]^u#'EӵVڴi6m(>>^K,SO=!ChYwϞ=Y./!܉|NsY]sz*kܜͱ߿ڶm|]Tl''K֌37*::Zڵ]/]TVOvYO<ΝիWAVZq֫W8]ܝ$jժꫯtE[NÆ S6mtAڮnr+R S3x9OI֭ {eӧuA :TCu֭[7UPA{Q ?I?C^^^\cnݺL1.?HfձwWNr{\P˾v?0Sm!cʣpB;s[nЗ_~gї_~RJy:rT~L$JHHȱJn%IfΜvzDDJ*R}QJ&eYgϞt3k֬\Ŕ-rYw}2_ |rM6)&&y,,Y $n=zԥ7NرCtV{=($$Ds՜9s$O%n}w:{s\Jzҥ,8f_ 4̙3]綾իWϴD2e^PŊ-YD{odRNrםnݺ鯿7|k׺<͗ 66Vɭz1\Ik$͟?_%KTDDs\FTJ=#ڿ*}2ʝ (66V?sܙ3gdɒ<9e%mvvKoJJ.\xGԣ>ҥKxRKMSO_~q>%^/宜s{Ƈү溑ѝwީ˗5ӧvZ9eO=&MOO?9 &dFwuҤIX4iҤfe„ 뮻ԪU+_ڰaׯmjСtwhȐ!*]=kתq޽{1nSppV^ݻw^ZUn„ ֝>u_zbŊ߿\|PhQ=C;v$6s+'|wء{L~M:Unr裏SÆ UjUiUV… `~Amٲ5j]j„ *ROgϞ@^[Uti=3fN<_=9X5kS5j?֞={_Ҕ*UJ{,Y_|^4tP=վ}{?Д)ST\,2۷O*TдiԫW,in>9'Fv.]W_FoWz駟̙3դI*SvܩӧOյ>І tTRڽ{͛^z9דVu,-^ziҤI{*Uh޽?5a„|ZիWWv4p@%$$dɒz72U(kDuYӎ;4f=Y>ᛛcղeKK+WoDΧݲ:_TF>L"???֭[Ϫk׮*_N:^{MkvUjZ|)()RDO=Ǝ ~?.]z+)['(88Xު_z)SyzgU|y8qB7nT%O_־սޫ=.?V馛nRibbb$#FyzꩧԡC-]TK.uaÆ{ԫW/4l05n8SW*:tȑ#շo_GMogϞJHHPV㣿[ ,З_~… jժ:zf̘5jhѢ.? vqa3O=۞rӧMōWo]wOw=uܹsfȑB ۄ-[:{&Sy3﮷[_rr-oooSti,sezl-99<3Xb&00t3av]9qҥ)\)^=z۷]|L- 6ݻw7Gq.@n{۷oiٲ)T)[2e^vi~j *d*T`o82w}g$i1 ,0aaa[jY1k6?u9ё#GLL``)^ẏ~1v,cYfiҤs5oe:tY###̓>honI-_52ԬY|c6ol2>}6q96Ƙ_~H2ݺus૯2*U2>>>QFk2n??&Y˴LnL@@)Z9r@z裏2M;vС uy8ƚ={SP!ӴiS?Ɲzݸq_3u1ׯwKln!22ҥ7ô~gӨQ#k*VhK|GFK/W/4͛77AAATT<3Y'u95&qv鳔q?gw1-[4lٲ>0w}6u]1]t1!!!ԪU|9]k֭[%K___S\9ϛs9ѬYL׍Ǐ}bŊ___SJد"r#w׮]]{jYZ`7|<&$$Asw癜eV.wq9ӷo_Sreg)bڴiһjV`c.~ʝҥK|0y.ѣGC=d 7ݺus2wy r9?%''#GmUf>3Nn}qnLJI'..<ΘK.m:vh֯_Il؞&s1|צzTRܕԩSO>&88ݻcǎM卟iӦsu^tiܸ)\ 4k6/gϚ>}bŊIz)G'*Ud>Cø"̳/ד/*U^z=f2KǨr֯_?ӣG\ͻn:#ɬZ*6ƍg5jdu9烬ev7L4񆔛dbz;w67rώ׭9ř03r| رH2+W:˒ՏiKØ,l`޼yTfM%$$裏>ҷ~ 6\uav1l0խ[W%JЮ]4f)RD[pcQTT/^Re|yuA'NQ^f̘~X6'm6/ׯfϞxFy2eTR%;vLoo߮;v(22Ή'k.1Bںueu`>}h_WǵfCGaӵg]tI5kŋod$?^==@s=z뭷H![լY33pn8w?A k}p[oʕ+IWhzGTjU}U\lGx!a ;FH6Bvl`#$!a ;FH6Bvl`#$!a ;FH6BVk8Cp1V'$<xi…j߾abH@ ?*l`#$!a ;FH6Bvl`#$!a ;FH6Bv&$$uBlc,#8icuP%vS,DXHdvl`#$!a@o:HSVG ;H3o}X iƌzᇭ;%A$74zBB|j;Yϗmۜ[!c锤B] wgk|=Ƨo@6 K7߰ln=|u>fͷ8jl+n-nlK fY[W&~H7_lyv;ߟGٓ({=^veoY4m|g9o|K; kMG>>> p6lpNxPiȐ!JNN0ϥ>sFqp .\%&%q!91 Y>}wyQFi…Zl$UVԩF;y4h}À=jir8r.\r pc Դi4|p,YR%K/SZud+,,L 4дiӬ=ߟSSuˡ͛ ͛7L2JyZj9+U>lqD*UL2V7ƍٳVkvOmܹs c~M0As?qȑ#:rƏ}Z]ob{1Æ ߸(VLHRMM8QWrrJ.AgqN1bN8jժIz!KV{]JԢ$oޥ]@xm۬vv?d;[&MҤIQD7S?m;J,<%2`$.\ I:pő<֥K ڰGٷo8 c%Isz2e!XDP||ڶm+IzU~}IO-kugTddN8W~}5n¨EV <1FK5Xk~#'""" ;FH6BvHiN £9Cgu`#*4J,<Nx#'t ;FH6BvHt:^b M\vl<m Gs8V`#$!a ;x$:vU+\[$i>#*4J,<NԿqql>>v҅ TN:uh֭Dy}Jk$P%x խ[WM6՚5k㓒﯂=|!!!JLLrY=z˸ y׋X+VPxx.\/Jzgyy@ `v6gM2E[i:s挒IxfhEGG;_;o>㶻8q+WVr$&>wϰpσ$yg<(+Q%֦֯_Gr*Zڷo-ZT ֖-[o޼Y5kִ0;C(5Ih-(;5n:`!.]讻rްa͛7xڵF/B1cXᩧR>}tAgn.O}@ή .… ;_+VLC'SDD4x`˪p+WΙ D]z3 _|a]@hԿTXH\ RB$PBBB]H\v aBCCujF1FC.]$6 `W$PHH#}:$N'xY=zVZƍ7ɓ'쐰C>>>ܹ.]*YwﮛoYw:<\HRJnݺU٣DCB:a6_iӦi̙*WiӦ) WvyiӦQϞ=j*UT\vyi ɓﻝɓ8*\OHիW[⋩  <ԬY3C@.J{2B p8 ;FH6B:'?~W%&&9rE!=:vE. 6L&MRFO1ɓvaڴi_TjիZΐ!C`+00P;w믿.%$$hokĈy _r ?C ڲel٢_]Rj2ɓڿ֭[>H3gμuZ$QK/Wjժ9cݻw̙3={ƎU\YC ԩS"|s :`!vg;# k„ Pŵe 2Dv҅ TN|u֭[p+nlt:>D9@*$:ãF׍y>oz… Τʕ+չsg:u*Wr8ٶmTV-կ__6m:Xl…j߾:".p`g9G@ ˁ'Ȕ)S4`I{w|O<ŋڽ{T"ooomٲEՓ$m޼Y5kּeHE9v_yGvIII7o:v`m߾]cǎU˖-UpauU#F_|X?ј1cl{nt 슄]YtիW_>s=:/ĉc)""B~~~M0A;w:4dp~\d]pp|||u8+,,p< |jر6l*UJݻwí DpV'NdT]>+W^yPxI:y**lJJ b!vdݚ;w>'j׮]:jժeuhm=.9:ŋu-hΝ9s$ԩSzg- 8/vॗ^ҥKg9[6olm``'~U2MTdI)**Jcǎq?j׮vŋ5x`*,,LC QrrrqСC*Z.]is=*U(00PQQQzWsկ_?EEE)00PUVմi\%Jp(..3c թS窖Ѽys;Γqܿ\ ]vY./qy޹QףG9ABBzŋ+,,L{+/rߧOlÆ r? vjԨv{2`#֥,..NWJR4|pQF)&&F Zv>s}g.sY&_Ǝ׎;n:?>dVZmϫPB?l2}sOrrJ,+W*!!A3f3<+V\ŋٺ;e˖u'O*$$Dݺury9KJJRjղ]^%KѣƏ9RvÇ\rz衇8ʽ$ 4e6lcvHʕ+kڵ.~UV͢J͚ѣ-aשS'uAEu;f͚vޝ2KM6MÇWɒ%UdI˚:uj3FիWWTjUuIׯU}Zׯ׽ޛΪϹsqLU-/gwz甘[={Rk%%%TJJz衽{ѣ[toU ŋkʔ)Y)efK&LѣG}v:tH/$7T&Mk)))I˖-mM3uT=*TsܠA4h g<תU+*U9n„ j۶|/zJ*eZ|r9rDgϞՌ3t}j{͜9Saaa^|MgOӰzwu֬Y?P-ZЩSlٲ 5ijĔ1ƙtI^F yy>p8-88X˃SM|UO $eI]қ0afϞ+V1hРAڵk,XL3`gU믿UJխ[WsrΞ=A\r Rr$IǏw ٳG۷WRzeyi[nd87o<.\Xmڴr.\P<6mo.Iںuj׮ze[ھ}pݻW{ի%IWv;rH˧2xbm_]wvzhh"""\zܼyʔ)sEOץhɒ%9&&L)ShժUx1z?kŊ9ƙ2e*vӤW_}ǏkĈѣ=6Io_땐gi2r20`J.] ϲ]JIIշo\͟qL?V޽}Ν;ձcG-Z^-[oIJmo x 1G$;Vᒤ^-[TOXdr9I.WZ:ws… R_}zԲeKoլY32z5n89rDG]6œƍSd&OիW+22|XgϞr*((Hoip'7ս{8JҮ]W>h*Sۧ͛7;I3gWۆ ꣏>Rbb5yd*TH+Vr*gsUBB1_4a9\Cy.00cٳgMPP9wINN6G/O?6m2mfu( :#9<Pŋ͡Cŋj{5޽{j9Y5j24kcLLLiܸ 6J*fرҥKnգGg .Ab첏'^z >>>>|5[F.TTuʕ-xru`d  QQQr8n8d'`vwqy?hݻ5ȝZRR5`!v]oR-[C=g}ւVGpj @ k5Rtiر0ܠT@)((H :$7DyyyP< |h"gΜ_|ڵk[2WGh-x8qp v |O7߬'ZOP@~pUHY]>ػw!`*p2`#Uj˖-ծ];EDD(::ZIIIVt |?G-ܢ`͘1Cs͛պukÃtOA=Z~Ο?={_UŊ4h0 #][lѻᆱVZ+C>>>ZtHd:tHwyd]M^èm8#6Zu@.цv_СChu(P%6JLL|@'O02 IKXH XS$Afͬ9 `WaRRR4aUZUZ&LK.Yl'ȑ#`5J˗޽{5~x%&&jܸqV |giٲe޽4hnݺog}e?^STTUjUM69=!!A=zPPP5f̘\cmэN'־}"aQ%JСC4i/ܹsڸqjժ]v… Ssz:uu<޳8Cp0쉄]>2e7oի+<9*UԩSV7hn-kuݻUD Cp9n:t" Ke˖a:v`РAҥ{9/^eZZ, @OKXH!CH;C.]"$P4 g#aRRR9 `Wa:~0 au.HÇYf]w%I;wgqd;v`jР-I;[6?/R tV,RN8aqd;v 88X'OTŝ}X2 X.uB$ȑ#Un]5jHWU`sT 믿_]ǏW"Ex lۖ GQbbs\PP! m&MRYQ%6O] *P*$$DV |лwou]gV…v 66VF:\6=zhѢEVO僱cn믿piϷ(*GH僇zH>>>jܸ1mՖqc#]~Xv>@Cp9 pM7)110p |ЩS'mVԆ]v, @֯OKXH>@4~xMj6o\a< |w^C@.ڰl`#$!aDtҴicuYvB6֒%J,<:Ƀ4 g ;FH6BvHt:슄<NXHӣ@&O: ;x$:[:`!@ARҖB>޺pUcu|Pٲeu1-ZTt1/^\PDD=z˸ \pm)))I/}ݧÁ C- {:t_E:u)iϞ=P$iϞ=TxI .TsqqVp>D9@*$FThh"""yf͛7L29&`_t:q{5n8~풤ǫo߾G\:H]F'NZjzH/Q1N 똷&MI&Y m@ :xvl`#$XHgu`'$!a ;FH6Bvl`#$!a ;FH6Bvl`#q8V Hy(c!؂`_rI@ `%6BvhF:((HE9Xah l`#$!a ;x/j UXX dU8qׯ/___ueZBBz衠 k̘1y:qyOQQQ TժU5m4tʂ2dʔ) .]ZO=.\ riΞ=+*$$929#8 68t_xR$qƎ׎;n:?pJ*Ç_~ 2D'On:}G9sfM}$''dɒZr4c =3Zb$ʂ'4h%$$h˖-ڲe^uIO3rHEFF xA)))94l9-«30s;w)[!/5ʴolڴ9_7M6͓鰿;#FPl>l֭kFmuXJ/^4gϞ5/ٳg1Ӵjř?Ӕ-[|'^tˠALZ3M,xD3m4s)bnjUfgxӧO8s皠 ssyʀ3g7)))fӦM&22Ҽ9^t ;x .Abl.^huXJF2\f͚c7ݺu3Xbnv:#&&H29c)SFE?ݫK Lv%%%i*[/^z)>>ݻw]v*VԩS'_~E~BBBtM7/pN}ݧ+$$De˖՜9sϟ?*,,LQQQ/]bTV-*<<\tN+W)kf͛7Oe˖_|$M2|+VP˖-uIS=.\-[ԛo[sΚ0aN<>@={Ԯ].{ͪZjq&&&ݻ~zM4Ik֬q;/+:zx ,XP#ɓںuݫ/jӧO뮻R5#GhȐ!Rۜ{խ[7;vLѹ˗iӦ:qƎ}*11Q4n8mذA۷ooܻwo=sJLL={L馛 TFG\W:u [n:t^x릛nRZ >@}w!///5nXm۶ܹs.ԩS v;V RjԨQ#nÇ#ooo5jH>>>:v옾+M4I!!!+9sҥKoq_>>>jѢ$iɒ%*V "ooo5kL=z'|\7߬.]@ٳ.\?S4k,K*UBBB4jԨL1ٳGǎ5j2=((HNv7 vBxx… $Iє)S.\CCC$k*].+WNJIIQLLRRR[n9}B r8yA+We\uA%J8w8s?(229=_kR֭)lp(huX+o*S|IM0!WשS^]^(^&O,IڶmnլYS~?$DFF꯿1&S.""B111.bbbJ*}ALW_)%%E ,P.]ԬY3gR\x xp_y{LӧOիu%?^6lΝ;=hΝyVsܹڿ1 QT`A(QB:tuqIґ#G_Kڴikȑ:}.\իWKZnXM}';1X.&&Fsm&___ñDխ[W6lPbŬ&H6BXFH6Bvl`#$!a ;FH6Bvl`#$=w|IENDB`glances-3.4.0.3/docs/_static/prometheus_exporter.png0000644000175000017500000006077114432156570022430 0ustar epsilonepsilonPNG  IHDR{UsBITOtEXtSoftwareShutterc IDATxol֙ L&CN[qzf!ͅ{0wffVZmaxVr;*hZ4 {aUb.Zli+NFt2y?%%{<=K&2ysݻw1  v )  )AyL{l/NMMMOO_|ҥKPA?tVu޽+W\x(`{{uݝw^|ڵkSSxq )>aWR~SO=Ų,AM!{{{wܙ~駧GvwwC^ <)dggΝ; 0 sr xw1rd>Ow8 g,׿~駯\r޽G"A9xpBoQFy\ReYӣ_Q|a=41 ?}GO?(np"yܹ~?яANYZ-aj'_oߦ(j{{`zի.e~?5M{wg$_O> r6BݻwQǯ맞z':^oΝ;KKKktΝ˿|7iQJ - A\_ןJ'|… ;;;(… |o{޳>gMRw]?ӑZL*OBlKs8'EV~Z7~ LX;3wO]/ tOm],4rAUmOayp8] ʕ+~/ܟ?jiiH?Ez?~̾\2?L_ynOroAa ݽxcoogmj/^=''П7E^}sw߮ѯ}Y {o}v߫'sd?no;ykNFQY߮T*/]/ݿsMLR?~WUMӎ8OH&ie89]?D!:md:Y^@PS+u`LKyҫuCnCu_K|B`=  ޶,wut]o]gyw9p!rwygenҼy2LMZͫtP6!ZV)2|=ev3ҟ$uvɴ?'u*ܵ,fi1 rjYSSSV?ڵ+ `oo瞓GGոO .Iҡ+?~K4H粂6jnn"GX+FNVr$Y ˱7CW lŰ4}QLjΨIL8yN4+W>' ii;,ڵk`ww7 MMMaAƲ> X/nmm}O=Ѯ]AsBڗ#VZܧz-Ll/裏vww/_|5@r{ٶ6-mZ/^l8iO  )AA'AS )A9~n@6#] Փhѱ}}p}z"\y2=pt~O8 6V/{r}\A<{p'哈1!=wo ~_DP4 U r~ ` AA0  BAL! )A ` AA&.s?h}m/x5jwO<׋{yw.ugkPQkP oLs=S5E{wQ}I+Nwޅ {pߢixq%ڷV<]{ήGGuazEߣپ%SmhiBoJкh78No O{A' A4*w S6tRz 8E{k a5R{nQ/`ԅ OL?1B q~tm 0?vݳ:;Khz셽+Ԟ5׻Mu?hw Γ~}gOOw|;O^>Z `oo$/N?%ߒ٫\~ڷ6oug#ymtk|Gn7wiߓׇۿ`O=uSTϋ頯T` o.] ק.?O6BAn{TAѸd_3ௗ?흠NO%=p4Y CS )A ` AA0  AS )A9P q~}r'wMu`+wv#}'_K,ܵl3ݻx_np)pP;{[OC X7GM=+P+ݽ)wo:Z^x{STu)ާ(*XqX SS/~"H`SS4vvvz ҁ|l :*j_|*h-ac6B& ka~Љ{#9uīA!)A ` AA0  BAS )A MW# XL˿ FASᩧ裏0g*#A  BAL! AS ` AA0  BAL!YT8%%MǼ;p0 d(qͱ* VMz@ yzJY)!gؿoKN8-2K1;HiWq#r)+`T Vɸj]4 rvk#WftA3BzH"k5G'5+ s[-"-+sEb")3(",% YYՎUͪY1QlπX!^НNB-{4M"IvL-Vh O'VBlXIUD8A~S"ˊ߿±,˩%k*[z>2[; {}9mxirc1r/4\{c)Ծ觹ƁlCu]gnnnr47mVVʛ-uk!:v9Pfr]{c9L:uvvp]wF/5l޸c"76]mR庮ݨ7lеnБZfB*gZk1fV_07#Zu =l.u{:\klmUwwLh߫"|*EZk|~¥͌goxs٩7_/bƻG/9R* fdRX-I "S7,4!KpR\BސrY'@dZ2 ˨d>ŠI< eZeoQ+QrBXf @|I9I^/TnTJNI,f׬1| NvADSQYoµk/֫/^RflԖß6F%%Gtnլ7cf co,r+w;ƒccpR;;qq|`B) 8bx!իpҳ"N:ZUK_3pd?La1dp cp#RQJ]nju\tF#77 DZlF,Os}w1jRS eYYg*L^ڰ]{c1̭ >4WttqM0kg͆ʳ43Rkhݚaf˶t[k1fl{齥WEQ E6Z v~3k f!'󃉡q3BG;)0C)īSH@oztP ݻyIJMްR\CS;Mݛ#鵻yB6w$/zϓ׳7}?NzO7'k0 c zA#2DzX' AR A8E-U*<"JJb)",-: jNXh)z/(wV%-sTCfVkJ-Bd2RrFq#^mn(V^R ŸZ -SgylneKU'zY9-2YDru`7oa^-BMp&Tk3E9{!hBEA 2<' ȱAS/ rDξ# mCAUsIKm Yz֚GL 2CN=0r%aT̂H|5 ˃G4rBPP* ގ7}ɺDŽۆ(]YaBK,ZkLfl[^ Lm܌0eYf>]ѯG`L>#8]tfUMXo+7B_TWWK_J\_s%JGWis9L.,pVyfVj~xV]fwc4nFB 5U E6Z7#t,{c1D^s L@~ yx|4Vl467BZٝaZհR˛g˛1:4y7H<0ڸc -~/tonihk\0y\8/+/\«o5!$l6Fm98^h2?=U_.U]oT)fiEydOdN$XZH;^zq^`߯T`BA֒yH)RUNm8ћiV%M7-KDNX9)\|Sz~}O N_{c1tD [mt<0Έ9z3#u;Lt~w͵CE@G?Pz~=>J`ϛaY]vmyChlaqٟ]DMy"&4\bFuw#i]f q]DntyJyhESdA;T oi"K O)HN_4|bGϠm:ANvئqd^RޑhESzdyTGGBwIhES0zdyU{@!i p/ĵ1#Mh=Ϧ^"~ hFS/2a{̑_dR'&4"cd" zMe0c" 1hEAȘYZܑA-.<)g8Q;bBXȡ!  ) g@X9-2/ jqQ{=3c{GzQZvg^;:AY^,9r&)`T:tI2JɬutY"("1uRN2@'@/ )UyDL%P1n:@xIvUSԊݱ**'ꎥk fd pj&iiqZʤe׵ZZV\SsS*@8;T2m3HB j&+gjZ]׊)pYIj,)7Ռ8Kz1_(K«TETb&.r1sFN),j > l:9A9"gߑ$hE-XEkUQxwI4r% p)G*YfAq`-91>4ٗO$'a=5S/ Bbp F`}մhjҊڭ,_ѱcNꞚAI!fN$#IGXKekV+l(&"9x=3aZX(Iɒٹ\Y9E%]Xլޘ RJH[Jؑ#B$Ep"O(VN&%"Bgۡ2ݟX 9óZc%U5:,9c EI'=29c)ĩ,E=|p_ypOܬ[!ǸwljZ(뎟UcˡQط)l[eݣ*AB\f#V<[k 73[="fg|#Pjΐ<I< eZeoQQ4sdtȏLAT q**KQ_zW^vWzkB5Htul6rxfӨJպaZkV3$It =gEFa֯*lC~e"rRQJ]nju\tFnir=odX|<¾]a{=29[YI$V'xD絳gX*GEFaf=VabKPx+&G;K]zOz^JcL_)[@s(.e*Bōu"RRxAENdJJ %dr@HW )8%ݾX_(z҈rxA,,U/d,/63 * K]B?U%xezUXScݣ82PάpT"rW! ʃA&3vs|5ԋ 4"UA㧐MfABy"V䈔7wt/H@. N!z{*^OVj*[wJ:m@ESo7O׫Ktnث;r|S/'!L1S&`)1Ěz8G't:nMY:P?k/0O퍥4 -zv76}jX 1vY(U+Mj҆!fnv]׵ȍMu+Q:es9LǺ-˳Lfu[Y[5Hn0eX Gnl3[ҫHhfs҆Z1.ofmL L`6ýB\ЍG{}>^ݻ;9}緸z~MV#zA#2DjqO"8G:zN8BQE%[m0rBX 8(NjX;z!!(ԜR6+)(JVwSrUK89]V &*fjk݊B-)'R~j֋Icl<5͂\,o--eeT% SF,Lta1PHժ-F:4XLlq! 3t(vcyn̵7f ڥ4זb!jGeo ]B*: g#m`Evm!^w@sLfó337Cf?˳E7gB @C3+/ hz>3بv隣IUk-FڇlhffGA3G,hq*,/g6^s,fUrm>k+&#~bjp2SKܖ\<~Y^,9r&)`T:tIE`SR2kh_#'eHLӄL.!Iq yCeUi,T ,^^X^88L˷-=*bE3*cUTNHKLAO3 #x5ӣ+tWظLrvubK/IDZf͒}StrH'T*}W;Kz1_(Kz+A{!ŝ|-nZ㙄Rr:JϋJYT:ɩTĬTqvowU=+J8!,U,ra9s)=Gz018@xɑwoN+J^,VRPAă)14iyRjq'_ F1 ˲J&ʖjz)z +'E#"cF!.gl5/2e#/s|Y))Lp=5)U_Fy"kfais͵ ̭L(DZy'YYa,6\m/΄7`B3KkWw^prm2}Ȯ30s麛aB-̆i:DWEvm!0L0 jn[ "pli~|s犉ίj-΄Hwo܌ ba7(6K3 @xF 9f4 :S}a&F 29YTA$ S/jqq"4" G;P>đXN=qɺQEs!K 2jϔ(!oSOqT?R0 "u[rb<_k}yPrCN"*t]B=;áCv q)<UhVAKfZk6|jFǎ91gv{U[ 1QօX 26qcsM!fN$#IGXeLekVk泴U:+&"9x=3aZX(Iɒٝ=`dByprv_5XͪY1QlȎpBWhܯ2zJdY^Q8e9dj O楄W;'JfFqvJ)(of|QR2d=E^dE*Dz:U͔HSIn/gEYxe9Ȗn*iTOE:Cw! _3ܐ+>bb];xf"+ X 8s]mFD[6ˋ!-bir ?Rl\ѱ[΁2a:֩s5FV7m׵[뺛7"txqaZڍzwwEen.꽵cfnms9Zٛa:\kZܯ.\׵M۵Fvc./k nʳC8UV6mU^u1An>Nza߼a&^[B*϶j3{*χ ,Yc:|5/ZZ+9@/CGolBe}=0Ϸb鼖^|Û+Q:2xH u,pVyfVjþyq~i܌jv<,mح[k5nFjsŃg {}abQ 'V'L8K g˭mp<{{ԅn5lr j6nyCjKL8DoCw!BR^]{շ^} ]l6f4*)!b(Z7VvjVf}yόs: Wy0+^yzyElNR`V-d-}&bRq TSۧ1Ӆb[ȑGcG/zFͲRXJWP>V; c>~v*φm{}.ܝu };}F^3k-gX[GP/Fi:4J7wNw[yL{c)DϬ6N "Òc׷{Hw`vm)V),GAKez'#LD$`Aa]{<'AhEAzo4"2)pSYm=%9" O)wd;IljY%=%mhyf[mk_jdRmۧQHH*G;dP7 B.1F2TdˉTXtPSɐw4/z;!Y7}N5\5d9g:pffi͑whESĘzϨ^E轻o;]ݬPu}Gt{pNދ^4dz#YfUk[DAMB\;]-.'`v w b*cm ȉ&C Bd8T9~-9'PDjqmfg6oa% 'h" c A( H84" G;Pl͊t_e~;+&"9x=3aZX(Iɒٹ\Y9E%]Xլޘ RJEQ/t&hLYVWeYN-Z9ԩ3jT⹴s,!2>"+=:lJ" < j^w"'td^ %Kk\"*4ıOƉ|\N5nc@ '8Ugo.]7o. 6ZnD|jIoڮ ՜r]x>:[u+^02-̂ ٮkyu@m׮&͔$Riki957GEe1Wre%TNFE'%YW+-mb<ޗ+ c9G*JE.UɟU"U0>+&#OLN|*]2y}$LD~ǀ)%yk62_ns9߹p}3o/^OON"GE]$,38zș@Rh4+%d:&FN, f) \B ˪<"&ӒY@XF]7 $VC1erFEw c)Y)B:%IpZ~ڂ2iu,W+ka&yP1OhDUdQrXbP4c[dȏy߀ ȑSSQYoµk/֫/^AflԖß6F%%GtnլIUYTIc2TIVRG]c tljX 5dٵpVX Ϭ6]WOg9}n,+q{UYw<QQkLCcDu C"L}?9> C1N (~8ZWIȟoc@䰉I @y8c*1 d^A䈠"ES/ B7: 9Z#Rz;}GM"R^.Qm۶[YYXoٶm;}ojBeR'xE&jŴ)$xVc$SoOK*XMeUI 5@CRќhESiXo|z%9)^.OB>N%+b6L@R^cBS/zORL7<Ҩ{%9/;SR\C2p)鋦^4{vMdm%鋦^4s%鋦^4ky%ϊƧ_#zO 4>JC11O䱟ȚDԋLez᨜QrBXf `VJNI,fߟLZfp]ee99eĊZE9I^/T3|*Q9gr%V/ %ƈ9cAG~/=Q-)-BѧDcϱ[ #N!E-jq{/Sy=n91Fy" = -nceMOmày!2^Ԏ>JC-. ^jGA@L='9Z\A:hEAwdM<ة(3XߓlL=+sEQ|kqӍ'2)*|\s«{(G#'PB~`D8ؒCs&}yfju]#/ehx"I q)<UfVAK+fZk6|jFǎb< ^'Zu͑#&5+ s[YZʟI\[ZZX(Iɒٹ\Y9E%]Xլޘ RJEQ/th;Rύ;'JY7!bm;ĵtVIeO[[[:|U|0UXiU• [ OZ)tVj xgx՟DQ4>ϱٓI\|]x \ƛ-iV)6vEQ8cgQ.n޶\~ ˱83eW:mRPrd۞DkLy.SY{pK}Z%o{xUV. s>؀,3& i3_Nk86≼`x-^yIpDJOqyN[^CD/`^$;(d3Mɡ[<}6qfl@VI HrFc㹍x"oq:5-7GD( U"&RE%f{k>-'K}~ùhMp?7t+iC3T#j@3Z24S/7~sIr'D[/"X+~w>k@F]uq#E"[au$]k(r+\Rb0th* HTt*2 j} } |ٕl@j9[=ݭI$U !;+0ZrO0kU>ZJǦBLm(%  ZJ$jϏp{з^~[Vp` AvE.` Av? ʃZ$C"hEAz7}ͲC^#3ː?o"Ь DiT)/4n 4"+TGA/A/okvC7|wޮ#ME^oA, !Ls//Z@oBߨm]0Hy9}ԋ6DN;K8b݊oj#.|StXf3ÅY+gL/HҝhESޙzc\7G8&FmBȻ9r AKwM{hde_hzJEf3~7Mh}^ԛAk.dmSPhESor7&RD'71tKzӓދ^4hM܉im{lbٱ!%L:}W>hES};g.h-oH$k=AyM z'6F_d"Gнxbs o4>4m+yAy"kB-+Z\AZܭZn$ ÐdCSffMU$wOj@a6~BFԃQDT[[bn ]i6M?țB !Žj{Yj-|ykؕENW6>i; Jr<1uhjթToT+mga][n.)~EIt#{=;jU+I+ \N+t80Vd@(U5ݐ~xH e zE"˵\m Ն&^5T#A5M$!Žѫjq7-hhh"!?ulNyB;v6FѨ]R%B(;2-QV5zMgv$敚v=; v ZMƧdӣ3O\X` WNENds|eNb6kMx8.|5wZzQlr2-d/72krf3\px+g08f)_t:}?^mAz(BG I4i%4gO,)Ϧ@h6En>{8r}Z)xq'WwO' .r\(RLFdNtj|>=;L`ys!(}:AI^>HE=^A#kȆc #6ݒX1CPEcWMݒmC8fYm=8S+@(~Ϥc #5a aR/\9NpEQ6EZ†A}FDyd򄥲4grrL+^f`JYxESeIIk[HBuR8m/f̙j>O]L rQ8'3^/ 2p ǿxϿD}iw|"} ͺ EezQmWtR}Wz#5vCv4u3j|VTIm+AյQEQ--L4횺[5c4-(դdz\?V_6I˝H[s\?jZn ):WQx=mp{yfbG{jdɲ,@xxo4ܹ̳ '~ VҤIűJ`w-O' VSohh<|?}o_ ;8Yv؆.%dˑm{^f]־ȃc ~ <:;n"M:j>W]L/|7'x`d]"jGܞd NYI N /!L?"yp7홑ַ}Ep$]&Ҍ;sTS F$Esj Vw2Qd#ONЎEoF 7[-K "oͧXu&LJ5.>u{BݗzՂ!ķ _RE WTŧMO}K4{ hp@U(]@U&,W%*V Cr0T!HAG1"0֧$o4Ua5iZi(*|(uVO@Z:ߐIzv9&Lj5YJh}`_/[bo'{g ͪnoZ6&AFxAdwÞ={y yAy"hE%C^#3ː?o" Ь DiT)/TgP" <0 QA,w|ABewUb靾0DAvxIgꝫxyՒzsFnkhEʛ鋦^nT"K`q}RC o{yWkЮ!7[,套 M(ݤD6Ŗ3 C޹;n98HҝhE% җV2_PxASo2RL*MES/Jd7*wr>~9pw"kmSPhEF%SNJF)<1qM(ݨDeD١C=B^ԛw#^nR"K`r2Av4n 4wA^E.^d;O佁<2[A6zA',kP sg^Xk?z'v ]!4WJ?ABw=+92T2}h= Ϝ33˽$C @ @ CuʟC @ @H  @ @< X( @ @ Z| @ @k=0E @ @ X@ @ @bF @ @k@ @ @@ @ D`f桇J?l5kVHա8pիW{ ]K.j6DQ [d XVl;u$$@XKM5ӏ ,HHqdLM3W?]DexM>R߫Y"Eoj,FG" 7kCe :~8lgT(llGdu&a@% ɟ390ʍOԇIYnQxEi\*]ԩS͔)Symdl;v.@ C(nwxǤQȑ#X(d(y#ӟ]EH ŢcYGjO:#Ґ# WN4)vgFD EV-=O/@W6k…KE,MƌgYFsxU%T!f~m{M&%`h@6hN5ϖO:k69_$f;1 2(KlQJ(-VEoU˖DԊZNCۮ3流M"֟dm9*^|x5ώo.K*#њڅTcǎMGB ?8qbcE[|\ >&ZB o'6vbÆ o!5q1cR ;dت^nUѣG/R ,g˅U6 kDچeBKPd?4U?yv}9 U \i+G=a!kmԡt҆޾DVJ7G:Eӣ^`b>ŴU17hf&6JG4X&@gB>PJda rH(@#qOK$`iK@ h~=nܸj}]v VS$SbPdށ@vPN b[f""OU٪':RLIH(A-6v$]OxH >TݢI|bhͯ%>$Z@ K:2%HI*SH:Sb:'*V~/~Pzgi'=ZѴ :䋊QK2kՄQ-B,Goiu4Ty7 <5G bֵg [Ba#"CNU a.NMfN13CJE AQv>4߿Q˂jHCY&1A[[[P1| y[*I@3dSgUUJ(C6aVܲRub()CXxÑ\#P(˓!CA _(i4pW#9%#q%" BKlU b쭊!l j`jڵ*oxFDOu;AQ&XKQHZE׆VPrU1>D!ŠrEyA<\(w5ݻwZ5.vaa ΋-*}5bm(B9K%`j'L`tK& ЍƍK]VP.#A 4rPΌ,zWhwߵX0  ·~)3 HSE[n4ۺ1-B#=6w)a!G p#p֢G r[ U1$.v-!Yv$`# Gaۏ@#,x'`){bm6FIr^X"jskتu([-EnUl~oE/7#eqK^0bۚW鼏eXkSȞWXmO"`w^}n-b_~@ipy&<**V"NQ[Ci]BX +e-]r4Gy%?xڶ6ª P ؅CEe%ڲH $Se `(嬜P\ wأWV[#v#a92@}"@Gv!Wf0J ;+AҋQ>Z؈UEi@kb\(bb#wY$`#XM׊Qybq~c88s5 h;%j$nl_˛+VFhY_ U׺vV.!ϥL!YvE7_KӟX]0x'%KEX[e +&ݟ٪KQnU1$ j+62s̘1F'EQX}dwq"^ ݠeFmN|*j؈e/=\**Fz[CBbƃa٫ciym?J4a|NC%*42/] GPϟ??SҔ#J|żJ>A]p~kؚzHEE}BFULbh>(1>%ɇ@^> Zbh?ؒ\$"DwF ș(jMƼ;59@ /q$Vخj>y,  h?>{e+XjyXt|i*F璕p[CD2zSõ- vsy h?>{e+XjyXt| {K V:"k>2Bg`;gypAi#[BEAtdR.`Q y >%@>kcOkml(yi>p~k}V* y >3,@>kuD 2|e2vӾ GȅXȤ \4*pݧ|kJX}:z1.\Q Ӿ ?|& T.`aݧ|FgX*-X}:z{ete휡˧}l! 6ӑIhUF%O5,6tͿc/>]˧}`LEA#([\4R+â#O5ΰT[t)X:9Cσ "O>/(B .bm.#*p:Kwk(YlbXT_|:\kcpmG;'O>/𙀋XGPR hVEGwkabX#R -#tsD /}^P>@.\\LG&U Vu>_ Pӱ;6tvڎwN /}^!3glpK >3:Rao ӱ[G`-[F,l =.@^> |d \h?L@E7/}:dէcwlS}pµ%@^>Cg.bAJ%ZA}:gtէcHZ&OYz\|yAAp~ks1TXn_t^O-@b#OZ;Zۅk;J9|y\Z=JE,<,:t^ K%OZooLn 3< y-r! b:2 ܨ|ZF VޱwLŧõ6 vsy h?>{e+XjyXt| {K V:"k>2Bg`;gypAiWܜ}O7+bAp~k)DE E >3@PէcwEݘj%pۅk;J9|ռ+4{キo!$6HWEpyBݧ|bqB V޾ȟ>?Ӳrve9e˧] .rl6ea9ȕX ,d.`ȼ(|[B Vޱuħõ: vsyy^j[nAp~kt ] z',}:'/bXQ 3-+mYkGa&MTߗTKiWs݋.ok6tӖXe" ֺ6 4|p/뮻ٳ'eWimmm5jTpی|6l"ӱֻyy3{9rd"NEɓ}g>nȧ~7ήm y k=P?|k|^p~kr 㒀貾e<2뮻*oon&˗hۧ/^lf̘aI[lR[ }^Ϻy<#7Uէcwwyo~}{[o]Ȼ|:\v:Tqƙ[H\}̇>tl~%>SYgủ'h%Kwyfk),|:yARرc_k5>h?^qIEtY߲sϥg[i/Nwr ,Hۉ'[lׯ_: 1 {w)g94xW\ag4]Qr ӱֻhW_m>?Ǒ>;f; gϟ?hl_ڼKPc2EKhm4z殻J`~-E=~z"UN3Ǐ7/ݻ7@\ ]BAE,E*=yB=PmMl2dHqy >N;drKӟ

Sҁ1\t.׻y+Y^bNt֯Km֬YE㏛78^W^yeo}˜y쳟l:|̪̀ڔQ5lzߟ>ϙA.鮺ӧy晿F?Ϛ*Kg_᝕O5/h}{?y"e%]# k:{G͵^.\h@zFmTH4;Rnnm~椓N2-"?m*jI>G=GsJEϻ]ڼ|' M7^yAtn'i^̯jfѢE_jpeN?.igKu]Aj6IF* V~tE6uvm^ϢM4=zdwۣ/o|#݆u#/ulP3PsbX݌Hh?ϴ?n'im&=DYM0[;t/\xVTm^i.Җi[ɝj2\sM= 3t櫊վuvH$ӧO*( @蠃RJvVAJ/H*{Aw;tGO}jjsRHXQBؤ"{շkol qѦW\1=RDLBpI12ءoG͝;<3xVm ϫ h6[S.bzK|w~ڼ[KEt K1K0@j„ cIG&uGoV*}6+RA,;bV'Dӿ)=C̙3ӯl-|oN'ϊf:ꨥ>*W\u?O +lyꩧ~᫯^$Ʉٴ +>'lI;FkÌ&6Z7믿Ys5UjqVn=أG&5jN[vjΜ9QrH:I$qvK#4FF>HѻP_226TΡ?LCxZMJLY Ú8e'> . gQ֤64ֹNWcq}Ul;e׿s 'z}#閧I說}k]~|6#%^p/bcM%O=וxG_UNl ƭljOw>X <@;S$T6E(8"ԇkNiUQ+ UI;N~}|joZ-h X͟pz)iUc~OtcNW`ut(VuM"iRY,iIWPĽy%6IV$o#s}_yzޅP3Qp]:f̘/ :gJ'H'li][2WRU9Ej:ߞ={BV;i"6󔴚 R4&*Ħ_}MXVDEiGe$gm~z" Æ E.ol>0 Pi̭[ b8wwqH$tg{O:K{J;J"oaY˧J:f@M"~7bĈT4s'լ>b* S٤/~70guV*njNG0ϻ>[b"EE$[EX3!S%.k8^Ǎ-j7ܫ%SKxzl=GAIG}tU3ٝ4γԪ=bm\ h./myРNB/GѣGe@=ZK\VB2gV$ꥤN!v k]۷ѫIux?OGH̊.tluv[V <ҩI:C j@NVl6댞~iUdFJ-3ZuZmWDx"vY4Y.I= jSZ$PBLjS‘m]dW}ުׄ*4Vo7]0b%ɔ(ú&KރZT$DY;QRhu~0=P3 .S:w&+UR>IIR@?UFͣJQEk|`5նRl>]%VvC C"pkvq'5עСکig3RڎH;쪫J'/hw yu]nMڪ4T qLXQ~/ARmhg6m5hNmZ̔ -?QuѢRQ"vl?/AXil<]ZUf%1q٤^h./QWmQ,6;WPׯ~qwT|w~j^R|\4@PX+L+JV5(HQEs=RLM(9ۤHE ٗ"4Ku)Cӿ i! L}M:3nIՖrm,MDmE*IUR8WTE&>tY(Q+ZFd5,ayK\B&/Jns=ږS[[4 -)GEuɀz|ުOVoZw*:EHDMu9mtVVh:}Jpd/1is칂v" ~^{faZlehzO%UvzhD#}E %ԘӻAA 񼵿$d)_$iaS_5.%LǪhQ˦xg<)ȊT?&qUsDEfǺ%oSWwIKE/U>Z U&ZTՂɚ*X⮢HH:DsKEޓ:7:~VFjE<أZVm#۴I,QZcOAn)IXjY*ņnW7u|HՖOQLd l4V^t*˧UWmWHl$ۋ6:5,cKԑ/pջ͹h[F 8]Y=RVR҂&:Kb ^qVX}:z(~PGhۭR>V"p5)TtM/!E4%|J%+(*Er$Z«^Ev2n'q-U ZUS4ʥ:injͧ`**NE]bvJ$hơ٣N5.{FGh\xTA QT>$LD$%lm3ȤϨZQn1ytH(_ 겳YE|J¤=#] G4'ھJ?&Q7wvu6vmӼUOUv-&hhvW{8Q.QI8դ,>bUL%KTnURUtkYE7N7ٶJV=۫;S KUXT Ҵ9Mt8VZOH/=}_zj˄:uTZuӠI(nE(e{m UL !khdiIu:oV¤D:-[Xjp)QWDQz"wh@Ih! TVT֕Z$"k;,F:^E#e 6BJ^E~v{\`Gr9VUV~_O^"[GM1ZAU|wH-Ի͹h[BBOgu]y*E7$`K{C; 6S{uv>[X~B§Q$Nt_Q> SDOQScs ]xr;ɴ3HHziaGfcz$qCk>q׼oyt/u]X-"%-j<>Q5OO|:zCڂv!TeRٴxZ5V^Z բ5I"!S߮,UQtE [~δ#Ws^ Vs.-xhgK# [v^R/;S h\"n,^yz\zI(ЀE` ҤN[$vG‹]@;Bb|P}M4P5(ӏ^SԩiФHRĞ;:KѠ׀K+z3d5G  0u)1nРR/RL ZT4ʮ:sw;IW p}NLߗ+.6 d;^rI$WID$'\Yi5PD5ٶgJW &%{i=7FOKGHIyhKK)gs]40ns=MAэ7^e6_O_ٳ/V(VX}:z}/Q_B}&ڒh&Zdm|Q+V}RVeMHkoCW$zg۲&l_utǠUs4adI CYqx}%zih-%UklqvQ\tNӸ^v;Dc\e*^xiP(!1XI A|'Uv4Kڣ#Kdy \Gs*oԿh gfnNsLfDE?j9(i *UcJɚ*TMy$PДꥈbv`UVO4wjGZUs<$j|]jQFBӼ1әfez9ZGhcz]w㼻SEEGC&d$]"튝^t՛ԋQ^&z)f'Wszk ? &Ao+ XCx5֑n-Y tZ?dT:Β&v5xDDksyVC%93g#V\QNۜ;n@H]vڢ"5x!A4;iϢeMO-.U;VE#M김+2WbU6R#EƮnWqq ѾOTltф˿jOJgmGFۉvIXX!Eu8=4&Z\Vz3S=wV˧tVjJcSmWpDFR+}$*UK衅 Ej^vTJB:]:P~|4TAF5~|Zu,ARfZPSS2ضS/K-_s6+{6N4V=d yw=kp>Wye5@EhQ[]h8E_f:W'5}u~zk mk|M$b~Qu=HbX=òj!a(8{{xhD ij`ZM:ʷO[EaCHy|6f>[Q:RFz9w]Z9.+MQǰNE hrvPۿɠrK;OOkEl_)@CBn^Hc%W6Y˧t]4_䙟m^-wZ\yA5VZjGk)ov]٧yw3!X  \ Bz2 Vr%Je续|wk #EJleRGmh[ۙ.{ջY6:sn2PijT4TT~Y|8Ee~$kjD ھOE;hc7OVm>L;;;/~eEJmBII;Z$Ow[D/!Ykbpm-9wiE t̛u %i>u9H՜M«u|kEi]t2b-#?<y@ZUr=Iۿ$=xݧ|c mo;)z[Lmҥ:WNg)2էcXtaړeݨ PE[)Mغ mKۏ/z7gu(ʣs%5I9D7ӡXjrbpm-9,Z-kQ]”tӣz5Z"Ӽż֕\hA@5 hsuP5|@+PI:OPUȣ6ElGU| k]iKo#z7s̙Cϕ<:Z1)E}~&>]4vű-3gY~cjWU= 3unb_W硗C<+|>ͻ]̫kaj 0Mtkn-%m.6wݾZ8|i&TezzӋ&NwVoiv>kQ>ɴ.q"cǎY$]Nf/3ʞ _>!]˖wbv?){u7St yib^XG%ha%8sYgm4iR:1 G}t|i&TS乶]7VX}:z{ߨ2Ա(=^GnZdԮ>ձ]˖wbJZiEv{1|5ZxAyy5b.H!| Po8 Ne{]v|;O6ӦM3{G} U?/kۜ.\M߶jӱ;V33du~~͡j>ЪKy\0:9^Cygk^>]Լ஻2Gup ɓk:,Yȴ|w~3bmeݚ5JEl|><UT/+rݧ| J`Ĉꫯ63,߶jӱֻE~4(ZVl|5~.\w쪿inV@nJI]Z"T` |8Bu\wufw7gq9#[cX]GM: l(yi>p~k}V* y >3l+fn;J+u[SjӱֻM1ۅk;JX@W.Ոz*Xz%y`T|i&TQcqc>kswj2>).k_@^>s3P h?;IwkY$C@#bX݈oٰa+[Zl(yi>p~k}V* y >3,@>kuD 2|e2vӾ GȅXȤ \4*pݧ|kJX}:z1.\Q Ӿ ?|& T.`aݧ|FgX*-X}:z{ete휡˧}l! 6ӑIhUF%O5,6tͿc/>]˧}`LEA#([\4R+â#O5ΰT[t)X:9Cσ "O>/(B .bm.#*p:Kwk(YlbXT_|:\kcpmG;'O>/𙀋XGPR hVEGwkabX#R -#tsD /}^P>@.\\LG&U Vu>_ Pӱ;6tvڎwN /}^!3glpK >3:Rao ӱ[G`-[F,l =.@^> |d \h?L@E7/}:dէcwlS}pµ%@^>Cg.bAJ%ZA}:gtէcHZ&OYz\|yAAp~ks1TXn_t^O-@b#OZ;Zۅk;J9|y\Z=JE,<,:t^ K%OZooLn 3< yĉ͸q̘1cN'0j(3uT3ydkˠ3 ໰D }:W)Lb^z%KE ,X擄> ^{yf͚ezk3x` 2̞=̜9e$2( ̘1 > :$NEXFٰӾk"Jk |G~}g^~Q4(x@Ёb(Y7J݅K>#>X}wMX^Di]`<=Qk_|噗_( 'oA-ޮ}d)3ݻYxqG~!z,yve@; 2=7o8pwPyg .`* n p O(lQ >u~V h;ZWFX)T+3bWBaZ$Xe-GF/lQ vW>P𓂠zFזk"s `-n\H]CwbfPMY?\٤5 6̴ &czU6 SڌD8~&OlNj2e=zt#ֶ ?f̙FB рң|LlU*YyoUl.g#8}7HYdɏQ9yJ9~ٱȑ#( PX[6|""4i9㍶ *mj̘1F3S[|#e@lV$H^SVY\fG>[K `q^+9cMC !0c 3|p3x`ΌP #OnVEB%Vf{JWy[A]ܱ(}ıوOт/jzg1تVyoU Q1`Űx""gzQ6k;N IDAT C/!Ё,\` Xo߾{>'*lV/"*l_>gVwI@t۳в:2>:^E6zב lϫUkLt `Z\#T6$تQ,*F. tf9+Vjj1Z>n릿èw=l;g-Zdԯkˤͳ `(D!%c`lU֕(Xڪ@@ 3>_`8|~;7&vXP" أ\Y/>)#d *V'caQ[Cc=CJy'ϸ'`Ӳe<#/|h#.,3'`JՄPKBx@[C$: !Df=ֽ (v-*yM,6likk3DmQmC5dEBuAgAF׆$zBF.2UkAU0 U*{2%6WdVl.%yj}T ;T2G8On$ޒ cZ,\+X7B ,Msv-3Qv9L|-e۹mŁ +Zp7xhR>=\#0yD)aԭh\ {z,g$k…JVI𕀍ST:(W&[%Ki >=ztAӳgϴ=ZxU˞U~8%؆6OPr X0鮆ڟF }*hPS(pM68[[p@[TŇ|ÇpP0z!|XHt)p |IB { +ƭ/48bm' Q>Ta[YJ/-T(ViEԪrbm&PO(iu^" 'Ҁҳ)\{Pe ۢ1PAٳ/rmct~ƍK'bJjwc{N|P<}i;8qbz U$0iҤtΧ5&8A*zu*:U5SksL ?ꟽ VEW>lUMrvi ]*\Tϋvn C0}ݪRjGkHmkkKVќ*#V[Toka7] FJ%*}v,ڦN[٪{@;K[,wfuc DL;Ql4N!Y5r_}T9z_GgHв},.)7Q{S@HZ1|F:/d fEf(v…iy5T#ת W& L$Ҫc}M'>m([&J~ubq=$cT gm\[:vj6xTeq:vn&Z%!Hc 9$hy5џz #5O+j.-vXWQ K@?yI9hU҂0PTG?u,9c>w,ygb4ɫQoUl>>}^8B*OM|eQ[դNȲk!]&2mt\ү޳>ҜW?Vk=+j~wmvۘ[QїK+}ֻF~ɖ t,|QsPv"֖O<qeW:/XjIA`Oav/%oPlƯ("VZbm>nYb&}v^M̵;-bcIhB^[fl~s{lPGj'v1( =&bm>""K­Ѷqm9HRU j wqZb{PYhKdu>fb>K[ngel; K\U%X[U6^/ƙ @[=2F`Emb`桸 Ox'd RUd@m!9@Gت1 s%0+N2Z$;E|@-,Z| Pav25a3v הAFm_jN b7!X2"֖Ù@`2;@h˹#%C@ZW!Z\@ @&dƥjQ-Gen*  ND0@"#l!@>`2(Z'@[n!9@Kr%X/;I @$dvV-gsj  N:-TZ.rY?Sr xCɔ7 hm%||ș卵%X/@*LTKբ"@[T佉(`k4ZAEF-,B| d+PN:Cr#;)?K_hά @%dfq-eoj  NB/D!Z2Y[ Wr xAɔfhmedHwR0 #X+X @LUظT-*Me!=IޛH6@Tdڂ- @L|e@h˭3$@ ?cINkv_Z P]Lk[jr\$-DB$XՊ)3p%W@Lya  Ж[FH@x' ?%X/@*LTKբ"@[T佉(`k4ZAEF-,B| d+PN:Cr#;)?K_hά @%dfq-eoj  NB/D!Z2Y[ Wr xAɔfhmedHwR0 #X+X @LUظT-*Me!=IޛH6@Tdڂ- @L|e@h˭3$@ ?cIN/,1>+1牅f=MNk#5<Ն 80Բhշ15@(> D3IB):儀W$О;~sã-1/y\Z<1So`r [,W|akg @ 8Cσ!+r8 h%"Eb:_-4\s[.G!Vǖ _zˬg5o馛/!.ږ1 .Eb:VgitΦ=ǖNJ$MޮH81$/"J:u`%W^skH. / , @;<Pnj^u%;,}O|[SX"+!%fr4 PњPO/HI=c>Ov9g^Y1Э67-zkk3 ` 4#貯8 zP/>}=zy饗RQv7Y /`^&ꫯnt4B޽SW^,i^ WQ{e]guV*J &A Fʹ9Qg@`iCGL;=V¯s~ ofg>?OJ:a2?~O@i1r $Z!⽾B*=VL]] l9.dwJ"X[h@pANJ}1:nܸ/% 94yc$87n;~ plmI/ӑ ?>C] Z 3gtgB9fڲBS@ Pf I9}ɞf h!a8O>mBj-ۼ=kcK xt"e0],v7?,ru3k9ڇ~84l=L@160O :VG\y啩+ /LϰM]t6mZz- 1h-ȉ:C v<~fɫZk?=ٟg/ YLe yIoXc}w%AuǞ'C 'Ь;,%UW^y%=V 4ۖB'=2d3$:xDX"ALUj;l7^}lt:X[$>@OXm#P5`+pM j}#l!XwkK xȍm97d U4s]o+%fDrF>g(Z޺A6  2 @[ 8gf|i(Z޹^e B5='O3=!F ;ܑ!-;C!5\\(Vu9c^;_E Pkͨ#v82[#cP@@x&J~pC;Obj~䃯CBΟ9?ԮJ=bzZG[LX=(  @ W<$38#@[vC;V]NJFxW" `[$8 {o iW1&[X-(  @ w<#%C8!@[vB;YC5ǻ2Q 2( w%fbjmdA薈3.[bK< P0=J"@[. 4$N?ɧ"jcj>ob֣XBVBuﱈm@ @@) -CTRq0xE@Ɏ^n}9AU* BmBuΈnt@@x K(m4<^@mڌ8F>g%ך{zp$B}bm^$ !B r 'j7Zs胘no|ߎN}19w#!gϙvGZ3M uO+o0WQD<  P6<C\ WrČHΨYg3;{m}q#6άo ֶBB<'㹁($@[@Ht1u;=BmcEmWLFm37zI9@@x4E@'h˸ Pۺl[gXPJ{jvhUd`YwВ1 @=6ȃm9 dڝ?TTllwI9M XPs7YOUr^~+ت [9kJ / xa  Ж[FH@V{PKj@Vx>CAm iP}{%>}iZ|͇`/ώ!˗!@1c:u>}z7" 6̌5O Fڲ_%4@-=?ZZ=mci ;{yzABmqVE--bmql P mmmfɩUW2e=z:tL"Po[ԔE@BWݘ~ ~`PP[Ξs9{X @4  O{yrN-B;3!غc_ēj|Yv71إ"&bmƧ >YdɒTh1xz!3h ӳgOHje?KM ,Z!+챢%9tS@JRP>fkWΨ\Bm/bm  ?4i3fqb<Xb- XvDF] 6l#fڽ7\+?l[bmk6 @) tXbm\@;Z Nl`-)30K^} 6BNG'vz1G"41^| ΜNg,XzQ @]x# !pvO>mQP e\kyiÑ~([l&BR^`۠k!@ƍ3#G4SLYx @F @Wt&cTE-ulH@u@#pH@Ď%:֡!r|l s`V   X[ A :x,RHDH6BS` c `0ܾ`UzhNeΨ͍!voZ?R@Z&0c 3|0]ԙ/\L> 6 P<4C +~quUf@zju&k)o8ai܈ GW^fɒ%f޼yfˈ=4hٳ $@ a؉RE +lSR5 =~sL۝i8낾s>QD-Bmq}Y6!9B ;L4Ɍ3踃O^2 !X[V2@.{3~Mc ꋲW݈`[$x}A4[e CdJ @a<@@-9O@WBm\~`[jRK[ 6$塞 :dϤx{ '?>=Ag,X Z_,A9b'P`dڍ\\=zr @VqK# P?0n83r1+J:u0aq$@ ؊V@V;e氭neY曘G&肩:@BΨR&r+U!`_K"Vţ @$?ͩSC6[Qj8gf|i`6nV[ j[cYo#"Vͧ @ %0d3{l3tPͬYF60QJ8(Tr)J5 61/;i6]g 󥏯\A$؎ZsSOD [פ` L2Ō=:UΩ]ph"ӫW/A@ `PJriþlM&%A3 w82jlcs^P3*0_Ke ("퓔 4EB1t"nI@xkó%@VեG' Q v7'QK j_f)ųsLmymIԱM[=a> C҅~} jU#lkcd@xGӣto-* ֆnA3PNUգ>,Is4E/#lBm-AMxF*͠u0?ek?ҥ: 3tOs9h[Pk_+4<ჷ0'mkۍW@j/*bmV @Qb رc;@BFkQ+!<ȿtc>`ۈ6_W/wbvu_uifӇmWCo~l)Wÿm|0_tMm[.Z6VFֽ ( @%pGͭ惫4[~t]A-@m _@lm#} jv4Br檎I8%=uoymEz盿'nw-aG4,cΓ M#4/|<̧}+=^mC3_XKxmw0/Frf͞|?=eNWnu4Mfɟ6\?a~dvFǵͷk|el< PMnJyi ۟zgJ2@.tKn,•]}6ߤ &Pˮ},m#™.^wzЍ?arY# Dn*kLÝ6GnL*AuZr׼=|pe3͇޿2H!KRX`ݖTUKoC9{Ͽ`}9l-̨JiK<Ւҋ~ g^b%G>\6+74fK |/%/=~fĭ"ww82o.͏zbJ˿g9WLwD|Om?:o$]dt䌒xB6wefX,9@n6k%¤ {}z#sͼߙ/kKqwlvzIOAr#wOx~j$NDO'ggӯfv & }SoDSgDm@4):ͣC%ݧ(EvljU&JFKM I@j *6*-Hv|mtI? zc%@Ѷ%]<&aT㟞'ѯo6`z&ѩg;{f ?j;`ϥ4J`89miJ z`7:霴ձ Y˛i~oF_6Üj䲴~B#v6%b #9wdl~_M]">EIt !1$}1G4[$G/ԓLOHglG*cqW[ \kuq?I.vy؃d+mΙ{91 K踐2۞scv譈ܝv$ϝ4뾄u]z8 b+< #E&| jV;Uzͣw48 6@($r.1W&(;:\tOw"8{c$&tp3'~ܙ:삫|>Ѥ9_>nr؎ɥr鷖y3{ϼWFѬcQ]~?oi&̼LJW%Vk~V'›-|R![gzϝqf%/ˏLJп;_|`H4xIyN1픈sXh>t{ϝ@. r SG$PP+8O%{㔣dE'PV;B>)0Eֻ@a3Y7ͪ+l*AqeK39ea陬sfD@ :us.m_PI;ZaqGJ6JuoaNmnd %gD8,=U 7F¥έ/9DD}==v ׯ餿?(o鐫o2?OUO0j_(/%y['yLJ=\,vKEf9&9 a\gmxyfKYHV$h5+=~sLPWG~#GZA<# uD"h\] <;6{^Ls5*z}=Cq =MVՆu4ڰڜ&$E(Ocm/U Q[j::D뺸F8zf2KN?6݂L].u-JC-TpM5/s ;tk:>Lեz8FV`Rb÷O?o_6=V osO[tJL ru)i~c%^ko5VeKD&gJ\T+̬?/HDoY{殒DZW`/SOUͻ*H\Ig_4=^AI4kWxLJ}ӞuZi7+N(eձ:Tm|X:gF}K7?i_c}y?`v棫6՛o#u`݃9( m,Xۈ, @5A=cɀ*'&薀DUEj6|k2K֓4!<%ig!e#՛jUG]_EvvLD $ҞLK[_1|"B7?vVϧgͪ\eu6+\ ϔ_$[֞K^ɦh!):W}:fxr9z?{goSSdV *C()PdP!A!(2 T(DShLѫ̕JҾ{as[TZg{g[2 %2S8k5X3Kɫ/ݽWzxaV^aEJ?G5շOz|/↵bm]aG{;Z ճiR)vaku|vviZ$> ~Q,f \psV$cZђ}$@$@$$`wB#`Jgg:\W7z뇸p3%O/䰏 ˓E!{NoN ( Ůz\”PF& ‘{_G&$dZxWm^u.+ 5 P\RXhn?̥ʈáNRsS]q٢8ɽq4`땟 X_6"OWQdȕ]E<ҮjT|-aj:o{poŎ,ޙ'6mz DG_*Z}!Z_(P( Bf|b1LՊo7d" tmOM-?gf?9 Ge kpVݹjgPrO)1>-&&󎚕ʭ*nC|f힟+̸#u6]"O}UC'+~%*zK>~*2Yp 'CP<ʩ PSS+e썍RnA&+YW,N7) ЯS īw16 w1"Ng!>}5f# w_]]Km^fjR'4&x >+f{Fw>[n386@_U"v)dvZ~\ AT-o0e D/u57!_WNQ&ڼHH@^!" n7ұ̛@<pQ$㳿>:ix_Ǵ/Qq iȳK[ٶr4=ٶ #?2_z}842Jkfb^h}]JKTO:ţ24#WWz|k-nҴo)凌zzH9~ M&h$v-_~tu{C;4+6 hglTA~Y\["O%n7fMߦGò%/lm3Dkr<`BX(q$@$@',)~잙ȦM%1lzvPvqW!ĕ>ZyL)JWZ-} B0 TG"5 IDAT_=VC%zx-ub٦v8c_jJ?>Tec͢xb|؇lHEΉE7Dh6نӉ| ak񡞑v@5rn#êZg`#AhUɮ#[P߫C"Yv(Uֽ(awp$@$@%ݦ1 {y:ͳy xK"~Ћ68q]&Gu7K~Y_Snqdɜ)ɴxiq}L}xSoSKsKO(؍bJwhV[ٷ`MיR6wNӬ^d}~ɗ)] š>ֈr'_eT[SFJ&}ضA:fdpk`_{yF ;?kogos)ֺ>D @P IA (u%rp>6kf ζm4PN7Op[QLEwe\ >>ùT rVd, }\nT_Y>_ʝ) (<4W-(tk/|hbya,UtdeNR&;N=Cz;# (8iՀRL3|(ֺ9: @` E!3S+GLdG Fq aa}elٰGSzn̔8"`yFٸb<2vMka-F J?!ye:Ssmf*$ӣѡ q]?5>$_Uѐ{Sj?֪yzJu|yeyN񍄟,Inڙ2IάgdK#[ @pE jߦ]*3lPtMcõO}Y<ټaq  {zTBFUh^w /MiD;5쭆bNsfۍ0Gycs3h2U gQk9qxN*;x ~\'.9g @;d@׽Ph%LPa%$w#{GqݸɆ}Bq§lw3%H ~ #/,l<(-Q"Yo!>=oA4T\ϟyl4zYe|ki#ccHUGU}FH;Bm"Wy,e|yʯz+[UZ/==Ck؅zZ,H% *Ҕbp$/aE'  tT:ny._n zP(>v PѧGܛu.<'Vׂд ^m+7.s[h"m?m=í_"}\a>C5k/5_5˾i^HMLg&͒Z]I'u~2FnTV^,O_"-*bmceC7 OE]ү),2"aS`,RsС4d[!&5--6nlU}HC۾#G7B3^W].kW| m/lNȲC@ Z Bc4v9e8R`/_8%SfP=1)ZŔks!Z VBEpM-AƢ`\}s!B@IT_iL@^x)SL3{/|Y#TAҞ=rjY2}EpOʍ(; NYA`{pidٽS>4/ᶕ+tsŽ(l6WE,S3G~e;4&p)3yNcr`ҽvUqr.kL2낞7KZ8]Nck#mѮHAVb ?-cAȘ   <۶ ۮg'frI}g0Xq8x Xٱ @-GqݮmAh8~_q &rÀ!4سhaGSys|iOk5!~twGe r^_>n9be*D~Lh"-sV_S>5ސ׭ƶj(d?ME2 D.Zhh&yB'b-̭YxiK{CO>h2VZpZ/ϝz2[ӜHd2a3\HH|MIzUDKK0h/j?<2Hkp4/A)Єb[`5Vklb̷-a.]ȳL须 ҧ_Ƚo39iA| ەULVLS?oMjw0]__igo%v/?zSDR fgZq*nU6-OV{f+=޼H櫟`DLdC|9ڛe`}-:2O$${Pp3z瞫&uˍ/OUݼ)ȒFv"!3?GT߿G& o;7WxKBיU b~[[^9R1=Ω(m}~F\Dɟ3)^Z`3,}ޫE QW^y@ c  $<%߽a(v0#Ke9*N(yrI#||{0,Rok`{R a >JURb(hgȸGoqiGYшh\G&{`olח5SA}3/QNw*ou.fPٰ{1vQǎɌd!mS?ЃbaZq!BPha %`ME64Ģ3TW/j.ANm*emgf?9 1U+D\2 c gYWf`!{mMR(w.Z‘ljkSc0nB?nhQeXQYro')UO~v{o3ŔѬbnW(&be$@$@$B.îSA`If=q9:[8=,үxD8} ha)JAxBFZ4 +^Vj3U(l8yߤzBPBic +q~6n5v {b1Y f; 9WV[=eֿR I-E:f FQ|zvZ)q.0R!E~?qBO*>+/4SV5:G[3}n1HEB(7xqLXt}!7^R6%D5~wyiL3N% d6iwklxػyEmnn!Qm-~Fѐ1*Im=^/H}>ȆH3#p2M <gmN%Ibs&{}z]Y-[C xrzk&HHH Ay!Y\!=}יP"_yO~L;^/2$^-g!K5ib~רwthFW;X [$>[<}YR\ ݭgXwQ?WX=>/^ڪWK=6R2i@ xI;ݬl^yrZ[P @jAy(p'CX-` /&I:LxΏ}{]m yaVg^1C֬]aC-19]_lTˤ+yU{W,c|JQدld&/)mNns(4)讓>lY,~<,|jեS+ 'Tψw_̬7aO$@$x^D)8A}$IZ|Z:)7|6Oub}`%PWL&u.[oa(޿ Lhڳ妀2eUs".(,UT۱E٥y3D>xcZ 1Bz\T[%s&sPz_ juլ_{C15wqȗW|d۵-ua#nGy9sL<{52ղE rg* 'mVK `J̙e  9kv7INde?1|G@{e²AI9۩83bmF}  >(mOBݿa-'g_$8۝еx{u<c3E"`/|E?9[ ueǫS .:lKE[iC--sdOw!دFȄ !sK!-RѿIe2lǦo\O)B16㧩x5Kݨz{R "o<BriO\;|m!^~A!ҩ~-)"O\__nb+c2kf}K4`=rsH\Z@.Ӓ7[Vj@G~P{:20;X&(^F$@$@P/9 ="^L>Nc!@6z)~j-. t?k5+LFu2ǜZ@4ɶ]F͑%<ٝ I3LM=WWOu/' տ^hElI;kU1B,Ddid<'rqstN9&/O 7mL}&#*ve2uo`oiV8K(~: kѰ{xXFt.90_{Fۿɘbbm,x/ A"n8B3$@֝q ʨ*ZK`Q&C>2WSB Q}*";OfYZ<얻\4g1RE(Nn|-Y6#bg$R%  ~XyThzJH;̅rt9&@i/Apg9_~Cm7-^ݺNrYM:zJٮ c j#}"]߽ՔA^m, Hg%P nn.uL=jW7\WB+fD:tar乖'=_;\I Ȃ mEKZGyasg;Ubdר/pg[+6}% ーl|wOk2Fbz g'" @P>;Hk~z"~b%CfM(<c÷fpC׸[7Ec gDs0LU` tA$7ZP%kZ7ʜ-QehS,g&IHADi~)ϊWƗ"h;pGƚ82^=(غ'~IЄZ+Ni=T\|5]߾T-=;&6𞅗/O o:o)<|^(uߌZ2KS-I E*?+8K38<~r״jA:N!?9f ^xƖUY]a/T1NnZQ\_/qVj\XX%mzO0س9͕Վa ˻78"y^Xh| P-zbǻc'= CfΑ=$3*Ԧ%؆8gfYun'E Q4U'^0ٰnb Aq` #Y3g>E%M{Hn{L}O? {G˴+S;IP V ь~V%j` R IDATc~&UʚY3W,cD^4xWd[_ wnja8y?֗ 7lAj'J-עfjQ YȐP 667uPob" $EgpSu#{}_Ea}7ъ,#;O.=RLoOgēMfs-7G[T*+kURωxA=oN}mȨXqtW@ t5R;lcv==htVajܹTd+TQw;`w໋䵛[fG:] v){L `88*L61 Lv_/+29٢#rǛX#$*Jd,[ Bkw<[PZomɾIHHV=jqBsKtzñ%v~p;ϔ=&pS(Ԧaʇkjrn.e`ZR P+gk qvbN?UQuU88  /gPu>bzgS>?c>!> آZa^COlhހlެ>yC847P;/ (:x @0PILaia%Bb)É4 `p qIU-vr^h^2/?43I8bmWjt^=xlۦҴ|pĹ #l{hl\񻡫{-[ IlJw{ PK# HʣI) {{cÑeL`ot یy ̏_T-hÛ7jO13k9C  @D諾tV dP%R =ICc}#t˾=!Nm^.o,*ljCK}EerT P_ vr NBѣ64&kݴJ9  `ѤU U)DDs{/,*{^E?^OP1Y3$@$@>&@8F3?6Q~>ah>~QB6-_=HH4Aq[sG kg+IH|@.(|X ,[iʷoަl$0j 7k?YQ^21{DW(X@qzso(Fq]$@$@$ti~;.j)x0 Xȥi_⹇=0}Dv4Zҿa>= Z!,xYBmYdJRd1o X p$@$@'`Bmy z=;C}q `_EpGC6\R'c&Kvw`saX!0^N$@$=y3'GLI{89Tc7EcH%zJx=^o279~(Ԇ )Fώw xZQTaKռ;<&bǛL^ =L.'Nh'iFمI9HHe岀$y8z(?zJ=FBqQ-> jJ 6Z©Pudt؅"ysNh}JsV  "{cQIq ]AH6婫 ^#tSTHU(k#`jo?R;~>$O {~  *i7> ⩫3O)&<~73QS 2X,OF$@$DvY*KKhhӮ];ެ>\$#K7Wo._Te,SonGt|BijU 6σ+S' ?SCD?Z%dbQ?C֯_/7oٳK:u$wn{ r'~܏Q ֜X>>pRlV`}@Y(Ə-{& 3HHJ!G!;ǽ gÞ]+?~\Ufi4i"UTJ*I"E$gΜ?OTOM{^H/>'2?)FƎW]Q o((z HI"E3d5wMbmبx! PqC= =/p|N.ZQj- ~צ)3'hN!u,,bbC @ P?c>BO<pI/0jfJ3)f%Ҭ:NʂX|( @(KŋȺeo2U2i=ɒ9Slݞ#}칐q! J][3A W/*S:381쾬xV-fj^PH)&?N$@$p:ny%p~˯YNRMwy+5cARBm*d\ۦ\#$ϗnSȜ 2j)ƴbbm @xYgFD zAC޷'gq rʜn䪋.b8\=7W>T )5Fhn%]ޜ-OP)[ґcxeؤ|)l$%E(47oJɳG-Z/^5:ZwSGA$@$B~"Os $3ێMV1~AOW$ V3 S0_AznߎvU+gYijj3VԃQuڤXθpT$@$hC/',@N!A4fl XL'*;?.UssdK3֘ 6dsKM}ryngj`(>C %k&Y3gvd}̂2 e'I `UGjT%?7 ~~vUS;bK"Z  8I`r ̿g{]ѐp`"DJww?4Ewҳ|||ogy[S1_iTXXm?ɷZtra !좻nNV%s*#[5N/ p.%q?KH37YDBfgj ~lqZ vUs炦XθpT$@$Hx[nhAƌ@.OMC=|}D.43Q}3>:hDMޭ_"o6d|oW)Hk_K{\)^{,g~uqbjlWS`+n)19Sykto۰Gٷe 䓕t''d|%t*Qx ]tЄςמZ>~fXNj\Ճ)Z/Fc& 3sYQQe6p;F'vJZUeDnng?:<ͲWz6bɒ%1\f.L~C5>{V֘xxfZs2,J~}"ZB-:Ntbi@-Njx.-iGH$@ Phƫى'ʠA"'WTI/k%^_ Bp- 91y^2X|4)آ ?jlgBW ˖Hs_~׈wL_}s]Ytr=e+9C1N@2־Rn epzFF[cbmx @ Xbmx3f%5qkk)R?QK-U?f&햛UE-<2=!.YLZ OއHz3E=NLuxK W??AV8Y zܬgrdJb]3GEҫ. emՐ ƅM*XmKVk4<߻ \`pVa;MiEnF~R$y.eRkfk7/):^poh:U?'ɹ?N~k^7㹆!'@m=~ۻ]Nh}DG HUpC5!ͭbrs ukuΙH\F. 1f֊֯N"׫)Wy,ՊVo/ Ujl~ h>n,f{3flS۲{@έ% ®` Ì_.`{0Y+D˶>k 5w;x IDAT\ۦ  U`=O3Sql{fL`^dɐ8l_K s#=M&mZ VE~Fm7hp}@m,髢Cp8Y?n%򟣙͍`Y7nAZT:O8}c^ `lR^BVǘ7 jN)# x ?Id{ ꎟp!ʩ7ꖺl\9YrS-2M!M%2) r,xhrO-U;gVU,l|R~;2c٩5Ud[e(rmg_jw\Bp99Β5WE] !B0B Yo2p:1SڈiY7pԲiR)~Wɗ]ӯۡrZkrh KEh<[#,NqA8F3u,AS*LC^E'  4CĆ.'Ȭmҵov DϿ&]wy?d+ۿ|yY}V\W, ʈTٗ Xa;yc-Ȇ=wB9/i/xHVQ?wd?3IH `e'[*{8zbk2%`1#r]i}^GO4d!S+H SXq/5eWhfF4:rEn2th]$);p>l"V'X0+\ |Pf#E!nyd(SA$f`X#wfb,({⯿_(j#C3{;? s{?ۤP {yܼK}uk""g4}GJL/~$sKzB ٗ& w?[@3*;nh N}S,%rۏSu*Mٰ˔7mOpzxq %x>񳿴 P  p H(q2e ;1"Od*ql:ƌVy1Fx8W>}GeBw_u2ެcV"DڗwmX[a#M&{2BǑ5M _m M#4ߪv 7}mE{z޳^8 H 2A܅SG }]+WSJ8N +cAzSz kMQt-4[edcFZY z,-_~gչ7Vq ہw+wl4>Xe_73.0<`/`}ֹ0=3%+/ZHiS>VQ~D>_%:|%6D[gr$faOu2|.G"i] <0A2H$@$`zൊJAkk`XqSLvmٌBE *w~~S =9TW\|^>9ot0WF.'gVSKDZ|srD?LnUKj>2+X(Z:M"Y޷9y BI5~lN_>MWl$@' `yuG-^JFzTOS?S:ƅD^x Bm_ϟCuOYV",$槕\(?Ɯ! x@uPI#y^JղgGk\d[{xuVwq4Xw!Ӷ3WtƟcKdTk+cć6NA tç6R3(H  , &~A p //EWf9VSY)kkΔHxdHJK# Ň7˼[M {ù)DC=ѳv%{ ,@p멢uK ߤiuYFGC/M)>^bĞek>l{\S;LFŻDb BBOrŦ}Wɶ@% ]!7&yb};C=N&D%xZVLcٙO֓/M A>\;$1 S؉]IԴ|i;F6cbɐ ? PIN\8񗼳vz=rT`P2RGs?rf939KS)89)|$p:mq>V5JۻIS=C#vrɆ;)FwQE9  ? =fHp;ϔ=O{CL?L<2p<@GƀSVB"$@$@$bz\ "O}?_\ $h D6X`fkHH3ʛs'gTp! Pu}8@Xak] $@ɳ)$*ksxz.Y@{8HZ. pZzG^L$@$&3\3:THR$.[wHM!"dQub1Fb&+G1q:î kdN1bko.e˖ˠAr ? pd/$@$@.!@%p0 t2njB}쾘mDnD;vŋK=Y!LWݸq/_^4)Ν;K/$Vk+HH LlyaB eyQKWHY{80H@bmvdSpa6mT^I k+u֕b/Çײe&9rPZ8^  M-߰VX"uM е^xW[jl5q^ } XĢٵ[+k=0HH 2z"׫!@t<[k18fz3zLORiXI~p@ڵkMe͚5FTڴi)qѣG lH W{gy&]T'_|ҠA;v,Z-* K$@$9uI1SKX"r޼"7:j>ULԒp"$Jh! bJJ-2>B }N0Azek׮-+W2egm3g)qQX4B$@$=vB2{{ = c#12W}epΕ5mT/S #*?~\p M4*UHJH"3gNPJ%ξ93Z  PEy;HB>n=~:pXŧAgZ/g}C}dbm2$@$@I#CFٰG#LѣfA$>oM-)(rDam}\4on)'9(>m#ꫥN:g#pZg8z^ O$@$5}f.7W5EwhyoD[#6EɳS,B?#tþ$YY;$pZg8%@k(r %ċmHK(x)Z+qƻgC11xe xg$;3d$\kHHHz 4BS~;NǛ!ttǎLHg ̇(:!@ b-  LX|_ydpuM4_SK7aa/!XpX'@!tdAp#;!  ^ƪ-E+)[}aJڈ>p*dDa$|k(3Ίbmx= PqwCEqZPB pwM,ݺCڎnK r7V Gb- ćpZk1HH !foFj*&06!z3R /H=}@`2h yGF$ pz/kAHH (o؝S /Lq}wUxԲ xZƎ#w7OFG6Q  z4u03/a<{?>v| {~4xf;; Zod#6ގGNw K9drfP!w+qIHB௿K=E6BOB2=cҕwB3>< gfǹfQKq/1pA{H0 }o!?g>vL8!ur2s`{vzR)v:1 6J$@$ =S$-(F'Rrt>ǚO"D8r3ʛsiAp ,%$t@3Z^lj$6 H{蔋 t h!ʔ9_6m.gJ^=h_k[ΌHH L"ض4-_*O VזȓK%`?1K Cbbə $D"ŰІ7k =jWMHX<ތFml"M^bhфPI<}'KsV*>~2zOn'`DUͦ<8 /G=#Ȳt^xkϜO$ !ӾjEۦg(8ϔ=FO8rv=\`~צT,T x @R 2޴rR#GFuD> F'x٢ϴ (%u|8 ĉڍ:ZTZC3쯲SSL-DHH|MBOd yo第u«Ia}f.ÿx9=\a#$0bfK޴e'LpL1Uǎ_t& KQ{>JԨQq}Qa^i|lU\wZׅ" 2[wH^SL#v%(zyoXL4V2SK0QcetHqopF!^i t(xpřzSˏ?^0 +&1Rn8r   = SŊ"K.q {A^H |0)>,<WcngZ _ DC :}^K9.~Feh{B.Wλ Mv-;Ack@(ֆ @.L\Ni114<ѯ#ޙ\A]{|: 8AMB5 ND}$NCby7,E5(ֺ?FeH IDAT! @Yi}EaKSHE7W7EhZ q:\@؅lKEZ(KB=[ky33l]"\}w| C6t  LEPo EZ6c֬]H P :{ZTOdup`1cG#؞YR1l$V^j-lݺZoŋ%  =v$KWJY (o!06*8rĵB.fʙӈl]8S %9حGX/bmXI$@$@$B`eĂeB @wÛ5b]czzMs"D@ xI`Ei7zɑ+%S5M b7Q ]"#GJ۫X7rr8v8I.kL)4?k0Sa`X/v6oݺR|٣2??KQHH & ~4)czi^, _#Luy!K9HHb&"O̡f>&}z4uస5־%S;$_{xCvf&G֊[a,hBX>tH% bKa E`χгaϏz"OS M} /g0K`F$d̙jY}u٩.Ls']SPLr%o@ ~2?(ֺ'  =E=n( P[", }VO.(=UK 4֊-:9 Ph9{Zgy7  pۄ<1pkP)G)>tW @;!ŚڡY' l`)gN);aeKc' @ t<[j 3of.Y,~bavtQ{]dlۦ<6+T(]tjÛ7U+&tW3=ܮJ{H{Bm^ B{k׭#% FmrW,IHH ,Ѓ_l$BDnoF'p"H@10$ xoz#+W 2j,ZL%5o._"!@(Fb< č]ެ]5nϲ:tBmIA!0d2yb23]ax6_c֒Ԋ7 @S'&Ԁ)aKfgh讻ȪUBK9qZ'(  H{\{=F=VlP-~fբ%:7^sb$xxۊBEn8@1P1< 3 } 9lb%_DmY(&hPMh>HH"zOVZ%|)Ժtl]gk%HHH P)s҅d6X]dZ"ϗ=;y]H  vdV@б`b^| Bd٨>Pzպ.](:+,PS3-Pu!  H:p=kv5B#TWybK9$Ȃ0C%q|l-j<ځO{E\ݻYC3!{0c׮Jť`"0j7bDlFT[#KEkkϔ- @%;V>az.} mZX*mBc*M!0R;63x ؓZׅ CG6aL];ԦX-:S>SH$@$@~'py݅|,:uRJ]0*"o7i-}H@= }T3mod'xPEZdOՇ5ްDz P[E kuohe?te0 j't BwWwy:Fwl2 @,SK?)'yLΝ;'ym ̦R3ȑWKxZyǰ2=xQNNf? 8 1mژc 8 ȤL>gHn}j}tl}ÖboU  dBD9۷kg9yMb$- Wn[֔kQ" ''4zPŤ`]ZYdC;)z#[!  xa3OKr7I_-vUX5նD$`)) $@OBmСf"j}l}ծ: jIŒ̨b9.`9p3d $@$@$`KcǎSO=%cƌ9(  Wj'ecrlzS\cϞ:G-z $__lǜbX%  K~o߾2n8[!  p&@Qo2.v`~B_g y=Zpd+$@$@$`;&M>][3I&Nhq@$@$@$vϞ-F2Sqa (sd85ж ܍*Zn  QSL^zIϞ=e!:KNHH@!2>.A׎Bm- Ŋ'6  кZ$@$@$`[SNzHz!omɁ @8PkUvl#L*x2P}[; ZN  5iӦ/ݻw~cHHH XBmDѢ7bDl Q evFTPkߵ4뤶/iGH -^(N$@$@$\fΜ)]F.]df0HHHOQM5ȮG Y WF!cMa_&Z?Pu~(:ϊW @P;wtI:v(s s$@$@$ nBK 2j)sE:i1e˄\#QQe5B Zxj  tAn7o^Ќ%  `'`26ujc5 (xڸa$];CL{bx% ?Pڷo/wy|A5vHH`]9 ]ݳg6>EP:62G6E >\"9ڰ[rNHH \̟?_iA[5D$@$@$@%(F֪% O!·̽:[o=B,Ђ` {2PNHHH>3iݺz뭲pB&IHH,'ezBPQE_t˖= = ^N6uX"  YhjJnf/J̙32yd[lYG}$*U/8`c`$@$@O]JZj*YnKtx>0j }8YJ6{k}0 7|#7p\_u0;w+J00a_v,>>^ .,+W 1 @hPK6pk(&̜)8.=DBrlzƴDo)ֆ^HHH聾_{xbRٶmM7d2|qqqk.9~x~IHBPմOD[o ]P>oЇK 2j) z3^z2S Nd$@$@$?\}rUWɏ?EbbT^]*W, >|;w2 QJپ}r!ٻw}yG1A$@$ژ6m$nĈ){,6zAK}j}َ-S͸*kK9&  ~M.r_B97_w}'[nuڵk/PB裏رc}2[}]3-[@ vy%\&>$% 8O>$QK6``#j}6`ŢXDC%  W,Yj޼ܚ?իWˑ#Gdĉҹsg5}0)]Xӥ^*76x,L+V0޸#2e?;A4iDׯ/HH!(Qu`C7k(F{Śj'RP1`% 3f_11 @X|4U<˖-s{ֿ<ٳQjoqB+"`   OP^hKֻh LG-lE B(V̻"@Ƃjr$@$@$ +WJFaÆ&@6,T2WILV eʔ5AN[o?,iiiR@s~ n[Mvok!b~Vdԩ.={   w 8tUAe92mJ3\'Lu~|G ̬ ͹ 5x"nݺfYKҿcqbe/;3JK~L&쫯je%J0 o0l/.e˖5ucǎq)R|{2}t#'$$6dHH${l6j Lq[Zl7-zB0,(ֆIH’?z eڵM/O)DUBhB,-[̶٪Uv߾}Y^_X4Q^.].g V Z2ٵrgΜij   p@!2BBz P]QKX]#el)ֆIH’Mf͚RF ٸqW2U|MS` /h",:+̙#;v쐁 / >x«Ĭꫯn0_+oQ\ԣG3VE2a„ (v x @PK緁CMҬ4}CK\; ,З+.^p@ kIHH D lݺUU&pݲeGܼy񒅧,СC2eS Ȳɯ Y?p澋.HN<)hx瞓yw-۷o{L>=ȜmӦ)RVzuo\[M;([X},ZHn&s92a@$@$,6hQՇ1څ7>[F҅m.{w ^WiB/(W 8 'JUmzv_!HH$J*Fdݶmw[ŊM*Dζ5b;p4h@/, k M6M LF.W/ Kqcſ ;koCϚ54 ѵB bz YBmY}/$)$M"٣0aKIHH`QPT)#߿? IAh8X % ' \`VQ EA-Xg;P٥ d"f/^\+&&   ,8 :(WQ˝1}TN-U8f؆`^#b׶"  {G,`pQ{ !  pj#"'aƌ>n% !յ[>PBjsdBqQ ʩ #'OJBLq/c Z763Pwk=HHlK --M'rێ#  Po_& هX|#&   ɓ\B_      m( eΩSHݺRuا BeRuay) d"Ȱe @8PΫ`*Yv;dUVRJDABa?Ruy /x»e @ݡ&Ys|\_G曥@L$̞~gò_?9uɸcT)["{,6ziGki8V  p@ѢEѣr)Rwr    b5T[vTiFFpq+oQEGKyL9R̙K`]DT',) HDT$̘TkC6K$@$@(^rX+V̵y5 {ŋ@R%"DOd`lXo]N%-ZHIg:R ,bQV\w\YOO_#N&'K <ﳷQ˱o)E Z-Dt_Xʻs# {8ցdRdɰA$@$@G qI?_"I̙A]j1Ubdv"iz*m[><rwuYZ ̅)_׵J:u$~w,iPJtT;| kgOImz;}pc{0(`3I   e޽{eϞ=RL    ̈́P <MҬ8fܾ]JjmܰaӮd-,`1 )v%R㥗ڜNIZ?T~:cݱ=uJ(Wkt|!6ysOb허$   TPAv;wJy=   p!,"k c(UE"}1L$ޚ+^N{ˊIZr< IDATW/{U-s⋦7n}J0~+;̚@fE'O"Qo=&_"HH'PJٮ'۶m   p!GKtk @"f"z lġCf-ڠODfTfVa `̝w?8uY46s^ & wko8  :8ٲe$&&Jjռ>$  ;p?@U(i:t V'Wz1TsWJ/xl8P/\(:w*(!5HDD*k,&j1߰A|w9iDDFktoYd>У֯zӓOJݥO.C?$tg3bpv/._n'_z-\8C54rCHݺRk"On1n_@z}dQpp$@$@$tQݸqԨQóx7  똶]%_a D6x8dEeWm.ϧkOXFfqabcu૯d 5C>Қ9Uv-^(1>,3GKFlG0*`HC VhsF$@$@$׭A$@$@NwF1Pl̑P!A(k"HU%O|nmmc3/-ZH%V-}5^g \: -eKnՖ\BOޜoJx0hNƾ)vĶc%(EJ~{?e;dyWdYr fFj\J]ժHJ2Qo[d=,yf9ԭ/ {{ϴUB*C`.ڸԙ3c,*54 CZqo7sCFx,FI֭Եg}*W{Y -v^ίwܠBŋmn͖]wF$@$@"P_߬7tWzjl Ye1f 'NGǏxsy}-xqR v a)Ip} 5UVʬ]ƹ?M /nttV&D#© a*>̡^>=gH 2ys9"+56˃U*bb-,3*P<*>9-Ib[W՚9vM._z|پ6r }^%믛׀-ث"aä/KI2O _X;V!Ȇ@mI-6+T&E.,RtBp(Z-[ִoÁ6⋌[Gɨ bz42e}=Dmp9rfi8Λgj [DEdWcQ;m"eS] 1sUhaQUQiv aZ;HHL>9_-[&MrlHHJ` 4]qdyf:ii{zYf5AQ}\uDuR$s !{OK. v(vvAȰ~*B,D*VzQcɁخB?mM C dJ REGKIjhjIx2›l:i^}pfxX'8G7;TVV_+GwbIF7\sMPQQ^Y<CȰ',^uj` Vc!  0%p>Co.7M   uvZ [~5˭f2G5S~eQX qT- !p$=Aug`hyfel׃]pz1{K, hOnf "jj-[X@PH-hv/*-?4]_4iH#져XfnU/[zTw O3?Buwo1nF=g`c`e ^vEz-[DfS6K 5vKyTorNV螂Rƚ=v^Vq૯d=EkC|M3&F@.,jQ(6.ۮC + Ÿ!r|F٤/2<q^{nE(g5fWXL3j)9X<`s̱X;Z;F$@$@hxcNC̵YyN$@$@#oVXd @JVlQZ;Gzdk4fAY-sy:%܊C(vg莉U-ޝV@E4᳉, =&7mƺvTSo.mVzEG+fr"WOi*'L/F!;dy#u/U9>B)`>:Qlc*T.+؛y Fe(x]Z5FDEv-l_S2բgqϩx[פf٢8_%] 2ziFzٻZ0+BJ D;sN{ X`?anjcXk ncI xo%  `Iv̠ @kc@` )oxDzZ B*;Y*UJخǪQ 婉[ PX *'l0v3Л;=kR%N?X$̘A 4CgXAA7C3hwVczZsF3uZu:vv]HH@V]h|W7;TBlHHlK &5 B5Ǩ!YB ӺKw59YGm {zO őjb^zA0vuLEVCvJv|ȐyޖHdFk,^ŃCjvJ3W#ZYj,]nG35jHq}ipZ2  ƴi#qZ-bm0H$@$@nh>S/rn6HHH  qÃj쎃 @P4Eg~_ʣُ//g=QMJ̙ڭ<k-)(X+Cxqwj[ G;` ǹ:iC iT0@u9یYdfT!XX)lCq8$@$@$M:t{O͛'wkW [3!ۚ|`̼>C|?po2P؏ker$@$@aISN2w\3gt   Gŋ@ R_ŷ0*\ ՚zjN)ѢOS,7BeR&  &U ?TjE}$@$@$!sp\Pc`+|zP{.Jbm8XΑHH l 2m4y{aˁ'   v B63;9(:HHC=$SN7xCzsIHH[(z$q@ lS&ԂZOw'  իL2E&O,={H94   ^2-w? PK֟;} @G&i'Jo-   `]O&R ߾BUX{3' ˸qo߾a2kNHHr'@6wFs*f%ؖ>2pPBH2DR7 vB mBj99  H2vX3f)cǎ Ip$@$@$`JLv (4z)&Z έd٨֯7ڙap*Z9G  &0ayǥo߾2nܸfɓ (غJ,Px+Zן^Ѯ3 ;ZLp BrΏHH LJ}穷f-Lc    5Ki$ )zg)zc(b l2U:R 9 @6^{5ٳ<#2er"  p@Qm[>܍VxK(p=_Y C8Gpj)IHHyoC|A:u7J   (rCXvϞ-۴+Bwcq]mBmƥafm*F$@$@6mҽ{wy=o- @8w1)amXDL?BW^>kæ-ZHu=nb 7*D$@$@"0K}t";w3gzYC$@$@aK +ۨf$^=]X@+4r3'Gk) ;#;v{WΝN 8G6vmI>m%F-*q#FHt˖!>Oz}I?(kX/{k ؏{':t[͛grD$@$@$ nxQ9kP Etr؎BmTz3C^^(Lbw$#  ?裏;;C>C?̮HHH ]RB4B^-Yn<2j)fq!%iA7zE{ujv$yobm/!'@$@$@X`(mڴa 8 QQ0c[ XKj>ˎGUPkP7lĴkuZoΖHH |gҺuk[e…a6{NHHCކ޽%u2`Q-PĿ*x_wmzE; ʦ%O"ɓ'Qy(tsX$@$@$ _~|rM7ɢE$   Ȇ@Z "Eo8 jLbło"!:b 3Z֏bsx %oVzo 9p$@$@$L,D0cQ S9Z}׋BkCufHH/-kŋ͸9P  floLƦKKMPG X$%Ԣ@ 0F5o()x= ?,W]u\yO?+M$@$@$@N^bϞcSjm0 } k4zhc 3g2مX,^J$@$@F.K/T~`>K$@$@AMQif؋PӦHZ{-Qq􊎟8ٛjcM=nHH%K/z?1s$@$@$J(w5S}҆>}ڸ#;X,GPuXlHHlI?&ME]$˗/9(  ua;`7Dt ^ tO;mQ-PĿ*܄IMpHHUaÆҠAYre0 c$  $(آr}lj5KW*ZZ>?.Z$a ~`[Po%  XvԫWO֭+k֬p9>  ilBmN$vР#*Zxgچ޽ΝB6W\N]@)LHH륶f') @` LN*la[S "X1 Ea$]0yMܱ@Z1X=lHHlG`RF ^lڴvHHH  #]6"*pmFٳMj}N-r`$Wtv^ЏBbزe  8[Jjդjժe˖   [!C$e| Cnh=⛥pjcX)z)$  رcT\Y*U$۷o8   #&igʂ̰~P#A,[.XGRSBwZQ WJ$@$@ {n)_+WNve1q$@$@$@ $l[{owXBmDѢ0s&&6Z`י0}D+t3x3gAgh0 }L2Rtiٻwo dI6A IDATX=XP`oz@ ?i|B !! EHgt6vmI>y pe@V2Y((&#aZfo$@$@$w3gӧ%_|~ FDra9t/^\ JnxQ9kN(؊abeF5m*&e)bGGGpe@v+v"j.^,ȨP g$@$@$ 'NǥPB~铝 O && HRLCƗU[(:oBmL6XvQtiq߾} ȉ@ jX5HHHR)Rħ}q    +WN#we˦7(آ=YM=w& WB٥;w{8l! 罢[0F" ySRߚpD$@$@$URzq6F$@$@$u+W;vvTRY͐KFJ*m\$ G6GZ諩v"+Vt!>˦IHH:Jiqq $@$@$@YVlݺUl"UV%eA-2[ ig8&&& 2HY.؞LN}g bgQ*p $@$@$C8>w^sL2>M x@͚5eӦMqFQFMZ% vѽpj  :wvz \$ ^5'N SGg \K? @E=d}z6 ԩSG֭['$$$8PlwϞ-F2 ֭k8]VA5 _O# @lliKJJ1HHHMAzjYjԯ_?f<8Pw_($2B-nlذrJW C T[G6iSWZZ#|{Ze$@$@$pj p$@$@$.H/?qNݛӵm[c oҤ|rW Kmfy[^xE` G6}2P'P[Q·HH2W ͛ҥKeɒ%ҬY3*%F-*)_l8$)`q@x{(ֺǍw @p.h&Ł @~_U.2f޽% [G6aL3 _~pe7`K+6(7{#  ݚ5k]z?;$  pW_-?rUWv^m;wb[N>[73vdzCkp\$-I#Gʞ9sLs8rjQ-۩nه(z nŊQFv.G$@$@aOe˖xbEn&WB-]wu~+ osq)S$yd[\Pjbm(&B$@$Vnj[j e˖ﻦZ58tL0A{1)QDXdIHHNn&ꫯ/oArj.f: ʗW_rѢE$mvV>ob{X'^E$@$@#A5::Zlْ.?r-ѵkWp>3[<CcĉRbE!*Z$a 5np\p+|AN-Z_ۤX_HHFIII'H[- ]8[XÇibC$@$@$`?iƽFrl#( 6alTDNKMPkpR Y h='HDb~^T=MMgMX@$@$@AJW^}q]8SXLllX A&  'pwG}$~q^[ ׾}{>pe/ +ڗϾŶ&@;HHDjժp6# $@$@$,F٬I SUV\bѰaCYbEIHH 4tMf_|ɓ'K)r*bV8ݤm(٭)bϞRW/g5޽{wqڴi IɎ?b5O\q ~(ֆs$@$@!E `OMn킹;R8  9=zțo)SN|g\{`)-X_,sF=)⁞2j}A 8gN6S" /0atddoT@M18tDGGo! gK$@$`_=5^)#t]9b|.4 [mGQY,'k&1f@ fͲ >Շw뵀!C?mDѢlZN_I6V% 9.hܸ)0Bc㮻2}S1 HW_-?CȱHHH  QI*lNT*:LGSvct,PĿj@=c#l+Eƀ,[XX1!LN6%V: ,/X Yr,^SM:*Ȗ/=F$@$@$@ׯxqo߾ȂEmeBHr5@Ti6dԺڎӸ'xp|\$h~k -23^,?sYkku9o  "`eŸ#ҎEf.HHH w1cdz߯rp\L@Pڡv8mQb9Jk ؁ɔ׊U| cʲ]{V˄Ss1>ĵ9 Pu$  {69 B$@$@aH`zR1BN qmd!6E 2dI{p "h[, &Av"vYr bÉr_b\$7-\ip> Zf$@$@$/]v3gʳ>+=\z"[o<@sNט  / ?<3CH&SD5ka͞=q[RIi7>^*6PkeXKw@]rHHlHBmRR|r5ט>՝'kV̫Zf ^ySK.; }_uРA2p@9r}#I]$xb Z| Xk(1{   9?L0=efʴuh&HHH KSOɓO>)cǎ sMbOf P ~|k}Ϙ= X%J0VNƍ'//xd    {N5  X#X+NbWX{HHJ?L>]Pt ƌ#Gڠ_ `_#ƈ>t n^)i58)))2gܹ,Y2Dfi@mn݌g-k "#FÇM2!x֔#% /( (  X,{a 2H(}|?>gH W {֑ @ Ç´iL%^xAZn-7Z x= @ߖx@~y뭷ݻ f P ~|ner299? D5k&$2!A"kՒ-=j/}Y# =3x}6H$;̜9!K!»m3$@$@$(f?gO,g;Cbm`۩WZz2uR;̓c!p@tRe@)X-\x!+駟ZlHy֛ s54jy% ;ұcG{ X, ;v_!ߏ%6O$qP3E%m[)Ry"b|?b@$dş,=+k^ϚibڵmfÆ 330!pM{}ٳM1֭[]j /w}u]{bپ}{ ;v_!ߏi+ofz9Se$@ LyʹKUK>+< @`+ҷo_iڴ,yݺueڵ@rW  p,wq~GgObNS5NbWsZ]8>P?iGHF`aA%BM/qzȑA6vD$gU ȩShB$@$@6'pBLaO?棵]Hb-wSbモ}z$ʛޖ\ p̜O>]7hPhGeہ jY`!pkIHHY-VZ7,_|񅳷,X,o& ;v_!ߏ)6ydI2Ev$̒ؼieRFHRa{zy4;f=zߣx3 gQۭ[FƏ/?gn   o!믿i_޸| Xkk7-/'Jt˖{5-='XNm=N5V6m$N < cǎ5SO=ISH "##㦥-[ 1HHHKk; P7  N7Gy kr3sƖg}jr|*w}6#d(-D{ē@K/')K$͚53 .,ǎBlHHH~++ٗ]|dKrXrKkhhDs ^kڷc-u}W6hD *>D)Xvx,R& оF}'^f|@ +!7L3jFUFFIYnϦ`_~_qI߾}m:[HHHHI'bp2z[t=$X6iĜ4b P ~|kxV[S;͐jDQYGT|.B-+XȶḰ ؘʕ+QFҰaCYbGj_ƍK'@[bJyj>i_^nٳR "XaM5gݶ#-'L`{vHHHHH֪azZFbYN ;v_!ߏbhRN-U}VRSr)\˽9 0է޽ƍ/mٔ>}ȤId>A$@$@$@$@$>^5NbWX!7?ϑ2j䑢z|"ibn;tH- -P?ڳvVnO7X W_5>J$@$mzz] 8C 11QW.qqqY?s2'~5j KN?Xg6bm.\oc2L,b͝wgjPysc+5kJ…;_]vpVHopGcDΝ:sxԎ-nNKG%X1[ 'ЃX vFիWI ]J 韬zZtl p$@$@$ m&RJIJJ !vdiۥ!@[bm6{#NΞ8U!)Q*ƫ@~0E4ݳfɉ[oID9Çe";cD[re)Ӿ'sUo Ja}"4i# WxA){.?fZ 4 ;?tԩRGCԕq5.KZo~Ϟ~({͓[HDTQO֭TVs:w)~GseWz5}|Ծ+B*IΝ1%ObaeG + V_"uV?=$i+ ոr?/X۳gOyMsGLI"~mO$/ӶJtqrms9j  Lg%Jțolv)+V *HdObY|y ;AtMh!|?kY-='>%eOŋ~I*:zN̡CFȄyI)s]RQ˗uB=m%K$YdJ!}إoL0 qҊ~=[j'%o1g7Z1~iB7#0:c4KS՛dI UɫU=/m[><}lfF\%T)6-%Gإcb|#*~-D껚'~iks$}!оl} -U{y{LG*Gj.Ƞ-QCO_$k_ViP}ΐ @9"\AM9~xڻwU2e=p̵O{ IDATŲ~N ;Tz^5gD7f٬yҥ^aYP9+1*.I:TR4[ja*R/7B-t鋯WQpTR{ n\M_[11 U[d"c_"ZL>=Y?3wƁ*) 3ȟv(b!"axTQ5_*l<ʶɯJL[ }f2^|d’,J\{mzvsVO걡U*BET~q) 2,e!8/")~eRKپ.{%Y ͆`f(3H|G`?ͦ5뢋iUI{9&`Ͳ|Õ,[&  X<VgۓXUuzw{Ҍn%5%ZOТ _)M&"ˌ geXuBx0Y@bmO]3QXQ-լ"q`IY@cY)`򦛌Yw$R{"Ν>mDPj#uQ[Y\:-[\9sO 55su R^m8ƲfͤtvsE~5B=iz-ٮY55٫! 4/iH٣ꩠUO!ՈUFv&;~[X!gUz*KQ,"+&ML+NJzk+2k/% X v l{kA$}Ȑgbye3ؚ96)?/5ٻtIHH= _OA$v̙/~wL(W?#2'@Y! 8˰ Y b_ ZPԮ]&YE>n{)GaAPM!4Sߑ}JH;xՋ٠VPXk,J\s !#hׇim!bԣ5XSo8҆ XE6\of9OT8d$JZkM"zlYklJ޲ z|q gj5b?G_ߕjqF h0x ʢZ0Wp o}KEz=É%J$ۃ*›X2Oիjgn)ɴ/[I[wi>  x̑aR]ItדӧO_ISn +H=YXuiO,4q(,2'NMLh"o5v@bm(y{a|О޷dZ _b8\DiimQZz+>M( vfmA(lVoW\a2Pjf)ثd0Hʛo6cY!0oQl[ a8wqc)sy^\懬Zd:x%’Af`GwV5Ќe+kz ʈkiCUD"92Ot_`6 | Kop@$ޡ/l,'[b-ڷ5  Ȩ=*ikYȲiYsWޛ9["  ܧls4'묉9K_sNjdIG<6VQϯIz >+V{da*:cz7p֪a]P:+8mVU @ -Gjҋ=![ZZa,g^-_4EVdl zlŹL6z~,**ܖYe~͚m aAܣ,ChD-(ZxBXF?=.٩%S&ѷ;ۦ@0-~?0HЧҰmٮfZRky 7@2x"v5@A6O+Y1S'lI>ثǥn@6c X v>` wca-$i}z !lZxY\̒ Zk4Y~٨] Tܢn*gUʷ9"݅xYKN5uE"Q;Ǝt6 F9@>xl"W~Ea*BL'P1mۦr"YY5в8~lՌW Q;c*Z[4~3 E51*$#[۠N17ZO*8/]3ZY~}4bsfRAdrrk51ꥋg@&qc]í}l,\V@sofBY/,%u]-%vS|>@ѱI c!1Be@|lYx̗6 7\iD)\i ME%\"m41&~4DW ҐeKk)X 7f 2ࢮ4>F脄9gK/T)Zz #`W6Լ¹L6F8"[ECbC8 2Q,̱dT8 rz$PjF+k#q^S ¯z#2L sz_:fS@̃ 7mr*A`Ef.2v}~!@ AFoQL2'T8o ,4u ˊLjo@ 6%?{d`EׂA$4vf"۱YyCl$@$@$ xFj'8!`&k oȔ ~7cy¶ =~FF Cu 6\-fH`cpecގ&wG-2k=i !5A`D-05ae̘1R!q&62^p_ 549V4+~-Y8~F/M$C6ܫZqca( ex]ݩ5lf𪞬3G&x[_IV+Wt  Zk2cCg^L}4L[7{Pڬ&) i%6s@n4Osɋ61-,` / ,ĐMoKȲE1 #$ p#S+=uZe۵Nj=q1 _e t…AJJJ -O8fb(Ľ-X ߿C qBw-D?GkiKZngbhv ENa^|ѣܥ6gzB{lMϜ(&ٳG^D.dm#NmzYz\>G@Xݽ{I~Wm5A (>WR%PO!}{u==کS'k2 ?ZLz>e؇]Pϊ_8v^M ՂiGV3HR'nq=bc,dUf6ѧFfEG5om!uZ8)A$:xp=ثfoj1g`7wx|y < xp{jX:kRe^ 2>*ֆ7}V=H(ue8.xQk- 9k;tz4zZ8j;u ؖZ [nHlI7E 9ƋZw`NT_?t {H J RD+VHAĥQ)Ra齗-dLCMι`n,d"KQ f!Ν[W!8! OoF4-n!"JYYh7: ΐaPԪUK~UklakZCQ+# ֓ 놸žB=zh}okΑɊmT d[C bw߿;pQnkٹQ*! +n0@ Z*{Ƹ/j!}嗓& A5p Uu$k2Wbg{jG8A5|A_ Voly՛\8P `/QA{hm-$@ esgIK7: >7ql8p^ O$@'\ צ. Wx~WڢR\qbKW\i!!c2z-Y b)5ފp3xOտ0*plr],>"k*ڌ%0gΜ9=^|M@1b|= B+W.OyN2t12]cǎ:;n \x^-U-(  +W?.ݮ]7`ÁgyF Z9x= ;W_Mrq3Lpm@ h+'U{{@~8ɒX 3WK0`6NkX"՝j;RRG}C!r1ΨՇɌm)5M@|Eq 5C["{N>;Z1lg,7 =a $@$@"`, "D%d"[b(j!N!=1zZ% <5!a"@pLEH( q b/2 dRkbArEɃ>[qޏjhxb:2}!zMU% aGs7AB02:?D ;\@4E/\pEv6,:f`Ex#^͸qd⺃ GTk/_YdkF&7 cJs-hp1GٳgB~xm&U7gܳYC~eCIP/~ K$I,@)kV[ebԖ<]HD|dXk=CN ZlCHH{΃P"-Y\9믵(ҢB=Rd.B<1Ž \@\EV,c{9`<-ߙ2e,nY^0@BF%`xBrLE/ƀ~Lwkn/FYa22Ҷ8qBht X) }hcA!(dD_l)S1cޖ nذA,@cxN)KdV&{d=n%7>g"5mZBp |0m){ nfFGN|mu߲eˤXbZE&gU{nْX&om]PN"fUFc7)͚5[w$@jy>F̊-p  o@,,Vř3gx`0G.>#؝wd ]VgK2<'~%Q @cR&J(}<'FE&7'1^̤M*{op{=Yk]3 W̰u6&zoh6SVu YPc9m 8gPk` Uvp  p>t.YDQI-/X(T^]g¯דxx›?lG5dLAԩ=B|}!B _h[ VZz5cYSapJ^ SwRx.2Ό٫AпUw!P7`lQAU<4Z}! 区 ~>PkGFa!آH?Bm( ly K` Vw=F:YexN.](P@a0 OZ n3s[5Fѱ*-~ٳΘGA$ jӫLjkUʕmդI- I`U'z~BYg IH!-J|DQ/MTRů* .5kNc I&y`dZrqfvF0>?y3fQ $HqחE Т-ƍ=/NʟvEPk YR^6uvIH \DEE [`&z?_nݺ7oX6>>3ի3䩡Db- H};S  %v̘1 hgΜF/ l"nB6]lHH@عs>|XTBxe2k,iذ!xA`D؍19""‹P" u%"sgϞβ@%D=GKaH7YZ믿bgߣGywl{ e^XrP)mѺ4.[\hݘ.`ۨlqުYzȒ W^yE>0`ˡ3̤wgeسK PuYAa+ sO4IZhq8N.FdYxT^=Աq~aHUmS|Zw\rsȜ.m)zg 9_]>c^ vׯ_? 2w(Z‡Qu o$(A$`X vҥZ9E>'0n:y$dk:Zp |駲e)Vx A.oώ p'cP%`lHH @H q"#s!'3H(:yu36l˷~+'O̙3[>ϟ^pA"""%jժeٲeRjU?ݐo P-_w?%-L  -ǝ= 8,`B`xNx !#~Ю(z0W\TR%z_\^x8q4o1'|R4h m۶uk VC|yI2۵k'mǠ0Թsgꫯb1c3g--`7o^yg4s6׮]˥KH"?S˗ͫ!K@b -VR%@qFaE`U'z3Z.=[fo$@$@"0p@ի{%3<'K/$={kݺuR\x[_tv)Gvat>wnܸEEС5JX͓}ɱctvkɒ%vri|@vd}ݲv[ RJq6?Ę x!C@c)R4lPf͚uqFPP=k!Ю\R $:)ʧA60H60+ @ 2Dxڵ <8 |ҽ{w$dk:Z79CC+<[!B\ ULϽ{j%7lOH}EO:3?ۦ> ̙S6m*ӧOv Np6V0fm+VW X7n,={,UX$<һwo_d"ǍcO?[?2!8#2Zn]ӫzKs!FO6M3 Kk4^GΘjVmidNv'sȑ Wqw-o>trА8'(:hnGlTTTl&2[YfMYfHk6x' !fArkM:ujm!BFL0Abcʔ)u4¹a;wn-;w.A2; B(2ljf*`~GfuFߡCj`A6 M@E/K,qJkqMC$`e #fR֍qw.qlq8f  o`w>ӛ\||n( w&s Pukdk$(!"{BM SI&pBB.lPDٵL\Cf-oٲE+{˔)t=*wq~ٻo>(4s5j$}>c!ŋ W/Y֨QC ԋ-'7 d(O{}@v32k!kriY"F&(Cב7 `"*e! 1𩧞uC@ 6LZ_f![apjK! 177aD F njY(bl`?_guH7 }v7 %"Yl.%`xY BWaLXm_OKaTw)%T"A8VY{#p >jJZh?3<'0qDiݺ^ p2N^b!f6(ZHǬkKؚTگ lӇ*2eC- ! #h/ ADtv ;v =z PHdsܙ~_xAdc^kqYE``GqIF`k!Ю[N $dj:mG[5h jUeGs%S7K*۬sN$`l֬ucy p2N^b8۷Oʩ'Oox+2:k,kFnmBb/ m޼YG.^aIxb]՚SDvwi`Bq5d)C\tʂlZ e0ËL o x:<.;!1JU-;>Hr\`˂P7Ww(+"|<Tj[^5$[;M13G(`O}z;[V-y@}N T7SLCdLh9tPVV k˔)#6m҂-1HiQKj88}xFҮ-XdZj<K@j`Puj; dkq> KQY'0kSxyUVmn]7֫m~Z ,! H{`qpBj׮y ĠPX,YСCk׮2|˗//(DGVy%J)Kpj/_&>ӌ|clkrz*92ΪtjRIUX44)>IWdP:t7/$*ZEU8tG)үWcpg{EU$v[ޒg$K/szǞ79 6u6*-vr"RR}[Χ2ӹ®1 PϤFRzuAm;> p2N^͒X?jQ $Ç^(=\|P_bP kK<& Т@ KkWMr6e&!Wʫhk;+%K}m`Nj5h 跐Ӏō]}j觟JVuj#N T5 l,yw cKvإZ} 6|rV{blj:uJ֮]k n;&-[LZ1Y@)ֆ2iKb-DAYĈE &&F˧P-5Xnm>ìq+; nݺU ef@ [NSnZ Zu> * *J,E 9b2D)7{1%gQj]Ìu^SV/C}wN!fSFҙ7TMQsCeUSEAU'{cea{phZHNN| ꫷L)eQs]ԩv=1o>"2C k7oYy> A Zb(zPR;*W,H8ˬ^/)\rTRE*U$xLt\n|AXk.ܭCv-DwF qZ 2@/ [ f)'Ưٮ l۶M hG6+){D6&%!S3*ܚSaO_\?^6(+EVh Utg1c$~s*$ĿHۤ<qϫb]?ͭ5qU{EeޥnNگ;&T+X cҾ}:v (to`i9*80@`PTqAj%!S9J]7vQmf)cئlϝ=bb>6sdTbUY̰QҥD*ALV%k6H@fmBP7HP#0",o˘5UIVYYF*΃ E8 #XD6XWξq[kqw^V1F}}Z}f@8>?MsGw'VAj%EBm;_ Y _ W9ڴqJܯ둹c)uxU;Ȑ]kDBlv|x5@62+? Ma~bV%XP^Wo e f*e~Yg%UdB-P,X( wOrNx*DqS턲ڭdQ@QȂ1 ΀E|V`8u1ŗ퐀`nNuS.nqBaj̄mf%x1Yq _X+Ӯ%1bD $0mVʖM[l린Cu_xSBW!K-6iRJkTX!vVf%lgVt e_;ǘ dJQ%g[WgFohRcpClT`5U ( E)%#ʒKjve;$`o^N(kzK* q|ao (.1ܼyV7P23Y+_ԲX/Ua06Wc$@0f'ˎbGw$oC>7 Wo쏂3ŎQAE0&ά^-FSKj2J-&O5-3٧2; KX#$TvdfTw(!x Mo!#jv@u3"槲g|i}gTq6"lQءv! лJe5wǎN FeLwUͣ;V[4RU]?p:uvT #GEIa8Dh[CvwiS,d(Rv^,0Q VID= O<&pR;oԦªXH6RFpKŅ7 1 й08%LZq> 0QY2C4g(TQBmVRux;#'NؼH'^ySXIb(y{(V0 Vu,"RyXɠGNՖUy= ܸvM*KxBG1]^}/<#}. 0v^ eP,K}h<E )]80 ݯID vrJ" U\kq#t%֚iCEalCgBEٴo;|ܻwl^P9ۀPPA9W~'/^Z"Œ%9Kf|>vȸ~ KM}!ʭ-к->C>`2HP)mдSޤ 1R8 !ty@;TN.oaͪ#c~{,9ex IDAT>D)ȔYH>7bV)e%|7-۴I .f[zV=E^;wNŀ! 2uVnN?ɓ{* 6memYl% $CtF3WO!z2tcH`|#bHNugW7K8n7vCd.e#Gc@ڙ4 l5 DeMu5CZ e8 gpA2$kB.$*O_w _@OGGXFZEaVYMĘkQ_iՍϴ}1l @'u  Ca\*8MvX'lO̟/_{M`#zG~$R}ae@00˴;nܡf*):Ǥ|Z7cNѣGNex7<?Nܬ;XV)  VM _8ytV37ldRl7`ۿImHn!^PfM2җ-[Gcv9 =n8Y*%D"AVƐy `%ݩYT?"nq*,CBp+jXk [rxn,֚ ^̳{۴$@6(NDo-*BEU5;^]NX!9ZOm4=,sB'gEI܌d͚UN8!UfSӶB/,fNpzL^t@ɠL"jy[f_$@"A+::Z'k$@`ФI{Fq΍X(u] C|,Q\… '5<77zUZsHw,fzQ[#f$@~ /={@iaeN΁`$az!E\\rɡC2w\-ÚkH@\9Ç59s%/pW ipx?"3)0 }qؠ@5b,Z,ZٷoٳGu},#<_PG[ƎuXK߮iIl)f< IAL- 3k$,ɒ%m߸qÓ>x @n !@M>}ü*nhR Fs˖t%JH9%\UoT՘)2sɗ%,DFuCp4=(NIKT!8CgdҨlqؾw l W.mEPuaX"#3V@tn:ҍu<7Lo׌b-nѶ7][u}C-"p76Mk1$&kMK^e;:M)WLi.(ϋc_@\B{UՋBucqr%i[)JFjH>TǗ|O,&|Eڵkak*lTY۶m_]>#Z ڕ doȇ~Hn!WOh·UW֎:>ƏD=yX"gNK@{EpႤU J`i;+BUbe&e^uynu\JmD[ 8-jw?P믿|X*)RD %.ǣ/ ӕe…eǎRdI[ՏD@ gsMkJh¯eSSa5!b0'ݱDX~!gL K@{%-ئ~ X Z<)Yf! GK+ʧֵjTȬ0;!!` Ѡ2l=M D0l1G1lO/xc(.fݿR ˜r }<÷gǸ;:R{ { )vҎڸ3XGD~Lufk$k!^VlSBY BB{MruVN16e3@od@:6< zT/_  pEיF``vow|jZ$KgGs;כ_;w\)1q4]8FLG-2l}=1b/Vm"ӑ@]bmTիrI2eg7_`A1?/ڎc'$꣯t6|Pz?T#PpC-3o8beWV\C XEf0{Ζ,=g3CX@ЃhhZ~:+bWyjK(:]kx]={Vf͚ طo~qɚ5[cK@{5-ئH#kωSkGGyDZU(W&C,7$@$00p@]aDF"C r2<k2qc@Z}孷q { رX}XkZ[j-&&Fzϟ?I<~Fztttt8p@ qڪZN0`ϟ?\~/[o^^z%ɛ7ݻc#ŊC5mڍ/0QFI߾}Zn-]tE Bk Z,w̚--TdX  6#0ci=f˒I6ٕ@`νRw(92f(R 'NIŃs5 @H0_i4i0#`C=$Ϸ0k,lt&B Hz_~j"uئp?/o|ڤN:_[ƛ.^k֬)ҥKŋ?,E)0l/^\6mڤW^-*UҢܹsrԩS{ p>?0v 3#G[BDp|ѧO-8Fƌ\vmkdrJ=?ǎٳk3f̐F`«IZ /;[ٯImZrbۏ~["l.2=.*T0m^YG:1--]"]pƒ@X֫DN`Gϝt9]TIR@^iUB2C )5\V.X&_HL!T'ڂɣu7=~ݺKڨ,3n*AUɕ]Z?w_zn7f,п˝9>sN"{]2a^1Ro(Q<3a\i7kžIW9,}E6}fϞx2,ln~V_ ;.ބI5P8.ktu. N8QoMkE[Tt xb1! ˵u>ٶmڴ~ T׶VZ3n]}2G^=ܣO0#[Y7L2E?O$<q3F@ { 60V|k)cEСC2~x/rF69sHÆ uv)w#F^,X@ {oBH˙3 A[n2dAq1d"7C5 d9rDW3bСCk׮b̙^7p'o \{M8G %Z Z6neϘ^`̸hH+.^ٳWHOFJ4eEgukxIxn{'?R[=Ĭ[4Rp9qD}8LZkP~~dZ^p^عvfj~GOp/@7NI$@aO-DŒ k!o^Gd)zeke|I4zv;}Rj$GEv+lCqF #i(u!TB- O.7Npf'mO^{BEfg_dǢ)fh1Њ+ax>}Z.~Pt lPd cm޽uF… u:vq#-Dv`f= UKUw {C!IB$ʲuvc\Y}l9"XϷX[!5][(n{/Ii9[9sV*16z?2c W9s| WnnBܙ!L{oo^VelX -/Nnל E7, }*C!|gzn\޽)8HH `p7.9޼@{ ͛7ˤI,Xv́JfD#!TZ+< )SFՋ|j]}e@jWkqi,h /K-ڵӅŐ!c a'c nkA +/28 HX j@ do9|L+E=Ktv執IT)_j{wL8sY6ܼ,۹O~Pk_,*(]X!|ݺ.QXRVIG_)oKrͲ)=jg 2 pMJtt50~p]2Gy5^A&1cF9s- bmV ٯ,q'Ȕ7u|رcG#?0B6UTItfI!*THolТ|Cq0kXwd"?!!0'5 8mڴ6lXV04C5J&\T۵$HkU 6JRFYFgsT"cs7mfekOYx(/,ӦVvɵ7tk'#S*;BY'TJUO7hܪ}#gTf6%֚LPdL<޶IH[f -^Q`Ńca$@$ `K9rH؎~qo^syN4-s??\Ν+;wkD:3b. i!c*'ڿmdƌ O;/l{1NCL0 +Ҍhw"o-|,^XW\k!b!ƂAV`=qZj$*EY9%$ : գjʵ Uh}+o2KvFeBdc9uSO&(˅Vʿvp*hxi0$y{;q [<HN l{ס/¿>‚^ͶIH"-ox4c6zbfڵ>l"fVt/kl!b->Թ%-\۷oOPԵAcX lqAV Uv- Yk;_= {C<ZVE'ϨޯUAKHzkb2듞 79 `7z!9xQH@ _W7(í!z1qZ$@${?l`裏$L+YkC&)<\٣ZܹFf)ŵ1sZG%Ku֭К?+m!֞;wNul>$`@d=Ve֎P@no&ˎc73+L<~>mnIeԎW/s_hn|IN|)D#UkeK=  ?mU ެ,@ΝeĈ:YVW_k"EX9ǸA-!dƫYve{$@$@ `lڵk]/˗̙3 rՒX NlU/-|0`G;YRcy敢E\i 6SLZ!j0";xBuS~nH<&/v g IDAT!|gHzzL<HH Pؾo߾'v"Swv[kMe 6QTRҤIVb̙ҸqcVM gf͚mvZ|p`/ ps?̐ k)غKPۦb9uc_vǶIHkFTECv h뉲  ,}pc V2bpM+YhےXۣG4hE2,iV20a QwŊRre}@ko@`"rdqϒY! ӺXQPgȞ2d3Cy @pWa]<_]13^Ϟ=)jNHH  5\M~$#-8דC5>,UTIjժwygCwz^''$k֬%K9~{>#еkWArig]89 vÁR.waۖ,dž@͝]FF Ysz$@D_]OjQT۬ixT8/HHB IlބQ=-xS/< /cǎM6ia/SF;Ђc([󈀩mNN:=ZڶmQ{:HPA$* +! Ԣ:5,p׵ n_l#|ArUp$@$@`F$7>"'M&HBOB'S "Kb-:0bԑ*iLHKD`1!qѣGuslȑ# {>+F7xC*T l߾].=Qu(Ԇs$ ⻝m@H,!|ye @>E&QM,&M6-vnD{+ M=&xB}ӲXABV -֙P]D΋@\1o hgϮ[XV0Omۦp'O.@xbꫯSNd"#` Q ٥H%L[|S<642m=/LZ^6$@$@BZ nj)?TNYdΨ~2ȩgd߮Y8-FPM?rH,:I&x-#=Dua9rЂmLLL%Kj[e˖tԯ__gL>]5jhVl`9m5 A8ڀ/@$ ;veLunIHHN*En;{J%_|gϞ";?XWʔ)Q8qAɳ>+ׯ_4iHÆ 姟~:uȯ[paٺu$O}$cƌn Su*(r$@A]m<|[ZoY$@$@$BE} e /cƌESL`]2՟Y*TϽKIEZ cV@o7Hǎu΀VN ,2qX 'xB˃_]]tтիW ;Cgؿ[Ξ=[`d ['LpUmS hZt% KRnwlhM @hhֶ?!F+6H$`[4-7r 6aPP!ٱc'M윍7Jٲef͚Ztk1T.Z5}bnCV-.gߥ3d$@ܴiS%O?H"Zݾ}GmꤣGJܹuq42eÇgYfi>իWCmٷIa_XEv- ~!C͚5Ӆ . }Ү];$Ydk 3gۄ/ HAN>}:|[`sj;OgF6S"D|:.YB>=K   GkɅl9던 9@007c !CK 1x<\!֭[W["l޼Y ׮]b(|a/^`5k&'Oe-ZX&1~x-fȐAEygSLTR-Z~Lbteڵڢs@ >\uwxBMX;fGCW?3l@2mP DH }.UDdڴV$O\2r@/Z$@$@$) PXh_]@<6 &`uVwO)$::Zܤ/& 2ٸ~z-߮]j"02r ʣG5kh;X*`,# Dfx*$E8m#ʔ)#6mҏۄknv*ʵUv#hoE8{w}9LX""UDddf0fDIHH A#+3HtИ#l 4cm/d'#akDܔA1S}xBz5LPɡWIyzjt9l [>";umswfofbGN!  P$0nd0ij!b-g 9h2Ν; 摡i=ڒ%Kj3tkl! ^~=Mʔ)^ { ذE:0CNBR̰mIӎW> j' Zd5W[LT{1#Kw{K$@$@AMb-"^ zPSoͫWzU(8| ۳|:ZdB56_rE P vj8q!n6N Ջ7H(Ԇs$@ U Ȫ=w4i@}I''MEK=u:($  0"He<:h_ .Hڴ"3o^7iҥeƍ3 jm9dNlzEj3M##Z7e'}  &ʙ>]:9<լ!/%)pj$@$@$9 3~iuz^z"X lٲZݰaChlۖc&mP/ewjvi'Qyr$y  P&U{ok|,Tܵ[O?@V    Fcpg7~>}t9}' m۶O?ɣ>١o xZ@ZlQAN"pRU%†%2QY"Ps y7oaeAF-Zxl !W_U*Ŋʔ7Lom;gB$@$`/u6ɫoWkb|C-ZD@4p 5s>#ţ:|~O>>틍7bu䮻(/Tf 7Z GCCp<H ,гOliMf-uJM<.Zҫa$  wPuV q0+ˁ^zQ)|F^̭[lRo߮TR /No@CވhQ -1H =E#lBU͗%Ljߜ!$@!L ]X a&֮߸Yr!(؆ xLbĆ ccbbdС7|# ʍ9Rûv풵kFdd>Yf͆Om`AN&3dZ"TN^*Ԗ͝][DFfP.&M$?Ϙ-_.M5sT4rʕ--LȐ>OFIHH P xW^-R^H^$O^;K.A69c yGn@Һuk{8+N<)2emvv&X {т5kOV](ǏIEPL jyU @Wyn}gRփ6ۛ0i~>]9B책 HK$@$@aObm_gϞnݺɷ~Kjժ K,8+W.3g%ZSL>@l" ={Jǎcϝ;wٲg.'N͛Ν;eܸq5kViҤօ0 ?>H^|E4h]ڱcRbEmЦMXaE0ƍ˴ini\~mѣyBk*Tp`@0` t!6PN,0 ~1 4|gȘլ! ~],ȶҝvK餟:֌= 8ZgGVZj*U ٕ+Wݻ7b… kAlWPQ ]zUZj%S޼c^`Ame]v4iPN:믿c֭[opݴi)SFy6l[\:$%KSNr0>}Zr!2d7j;+Vkȼil.\|INdEɃ>(R>}iۿYl[>th/.lK.څ ?~ V ($f2{RX (F%/_c) gM@/[ǹI**Ubw 6lbch_p   Zh]ÈȠ}Sȸa|*;@    xR74fMԋ|cTNZ:t _}Up! ڂl\E`ɜ9Y@F-1C@Ԣ., L 6O<̙7 #^yY4h C(FV,E#Gb%ÓO>XVC-؄.j!j3|CwȌf@0@f}zZȰߤ67":/'  !19NHH|Db:smgΜwyGz[|b'DQx̚(^. ͛WgRb3  ȸE,]TWZd㺶bvM b1|I0 Z@СCcݿ|ӧO3jYkEsׯ>szb3"@G`~UՅ%QD Q1b QJHAB( (H2HDE0 *=1 $nCׇ -w?<3;:kwᜧ\pk6v嗻 [b] !˗XE_bE5ʴ-, '' $YkO=TKʜmȣc޽kRuh5NSDáC\n_9O9/^nFU|wM L6,uE]QKA@kg yk3ݎ_u4hqKUqrzI͜Tj &/[rڪ1Y$(ئ]֭sqnV2e%.CN_5/ľի;GJcĉVF { Ǎwt/~s.Z X"7^qv4bMlI %kmfLNr0ṼBfo C@E6ʉGհI5#tRpOmNHYXڢE |U" {n}xr?Nmڴɉ;wt)uX7 cƌqsI}ꩧsvaO%@VUӱƍۈ#\T[шrOׯ_rlSH{>eJ:@$BGuVtZ%n}I{L, Ha)|x,F6aky9N>dSWrʭE{w?31Jyb>k:u E,u+8!F"5$*ꂂ@@IޙM[MP?d:ov @@#IO;&MXz6;X:ul֣G,Grl%R'X jfu1& IDAT҉~Kl[X19Zژ`eP@@妀 O6|f\ԐbŊֿc,pݸI"X+Vw HˌNU=t@ 2 B r[@'tb܍jU@U\ofHi^z%[TEXzծ].b+ Jz [JZ2  r@'tbkVs@$ڵkg3gδUV~"Pl-((d: cРAb'Ojdɒ0gH-,Za#paIf4[c'Bmd @| :u%iӦN]xqz7h@C,MRnZ0Bm3/ vߨ1 '13T=,Y2n[PGxv^`,xfd i`=ug>6}$VdT*/+,qh9d܀w^%Alȑ6k,kݺuqJĆHߔ@{UW]hQ";`6n-{q_CM,.oOkfΪj`R\Bz]bW6of⶟u(= 9MD ;Ե%J`3qB qF |i^~LXgUw^˳ܘ,A!xV[< ?~ oٲʔ)6 W_}l@`ۯ`KC-ԏjLL3VaVuԽX36,G\<]Y;wŅ5;xGA#pnvf3b7A#K#O Ong6ͰZ-s$(6! ږ-[ޔ͘ ڵ^r@&X}]=ql8ѩ5"17]`7HZL a@2,*6/į%Pw߻Pu(s$~ǵdR4J҉m%ЮYUe$< Yi'M.7뮻 /b$K4`fv[xW'Pҷ6ҌM/6SkS}6&9Wxjd,XA2;]NpWUW4"_8&rKnܨM%X+qG"ɓ.TpM9i|ZzᚊE;,w /iDA Hl7˶gGN?X9L`@rz+y1{6Kۑ\w"zZN,fb]άbC< ;!b=m=mLVȠ@ M?bM,X`7p5k̞ ˪H;v9VM2VPҚdfzl @Xn 0xk.66 @K@B>*?DbljJ ]͈!z 6l~;@ۼys'Ο??!:Ę@`uiH'.Xue"cx@8xGhAlF@$X H]h[hۂ+O2Yru?P 0 @@ZEv֭jVasD@ڬ,]b4o<e˖6wt^ .w֙bըx~1Bm @@bjnLAK@1yyy h[j9s.V[ x öcZ1%C 7nE@ @)@ lVyzI&^ʕJ*N쉦| bH zE,pСQKmݺlgϞ$cWZKt'  @G lv.@գG6lX$['Ov PrrrC6mڴHdw:fv[xW)qzRsvinN6A @)B dV-[t?в} "FE堗@۱cG'N:5y12@* |w@ @ Bk8ݲe˲RJ,on*Uۈ#>?B Y^j׮Z*eI曝`?)1J@mۼYmu g-m3;! SoX @ N dNr7/"n۶9߿5*ˉ:믿jժe#G ]2ezv-ɓ @ H U$`ߩU.x*ʨUA.  @ "(9V!Cο͙39{իߠnj{n+Wh͛y8 D+JuIR;@ Y<؅IиKB5yo W67SB @A6p7n .Ǝk{WVJ(ak֬ĉc6>hZ :urm^^^aHdljt0- @ qkGêWn?y睶tR֭ 8йc]UV559c6՛oi/wъho6'>쳾!iX`Zgr؎n:֭WSWKå5:?A @$ӖU IM$ʁ}-Zd5=\>g۵k}vuQ/ˬ}';cHHSъwyN<#xݺuv[naN/za}'v饗گkիvi >l2eD5N2\X+V(VNn @5'0yc+St&ڴVO'a0@ @)H ZJS&SOu97|TZa[\رÆ fͳ֤I{衇Lq*%|:x`kذo߾ / Y7~x׿elٲM51c\CZEݻ7Orlʔ)vuپ}lԨQ6}t裏).;z0` 2ĉ'*9/+cYR*LtMV|lըQ}_.J[tnM۷?/o۶͞=$8k^$K%4GY4~&^?1N`6om۽5შ*}@V#˖X$Jsg @bM mZ9[/bxcU{:)=qi֭GݱrJؔ\%Lwc~7vW:ARlڵmر֧OSܘv%V>s΅+4n6sbX\rVYYY.+^zɉjF[,R{.e DL9O%jE{v;\.X5tCG}>B=)YB -"&JO\5rHwF:>^u[!\g+!8$6qNY+V/}ĉe$ lgg_9ʖ 7A( ˧9[II, @@H[v1}ߗR^yy1=UFK͵U%J)7ܠ5%+S۶mݻw6XGv}xb~֭i+ATb gN($jy+WD*WrJx&ngu{Wg|+ w2Szy%K?B=:nZV/'W1 :P -GdeYjq߹>*ZVw}TO=F2crgJ)V{{9Bk @ Ď@ڊ^?o͚5+>蜟^^ .t|׺\z]Wj%ASN[D_*9:5%K%0Kd(GH1HU}(H/A-}-NJUnq8Uj&NKcy*.Anbrz]֮xe\B=/0gGgVZ $, vrJ׽oػ8cy];sp0ᯍV+W mB'֬慈?f @ P$kk50^I*M6X5j԰MfX* ]v0SgqB\b%Tȿ< ǖq$+iRlU*SZƔUOeݻͩ9S}xͰVʕ+)r+9B墕 Rn[ŋx|m[F@'n^i%* /tI kV xșf]l+A=3`P Bz ݖC*B0h1Ȭi]ٲe]/*1[gG[+6*ZVo Y\Ϟ=NA%|, f @ Hk۵NDJ rJPI`jΔRrHҕ,XiIj4NI՘m,gM rPKk%RKT/ * OrgFkhWܼ/X^%eڲe[֩Slj\=5?+ɗ".+׵"$ZKJ<%k-EQ̅ru*UbZ V @ @@h2B EP׮];JR^lO?<rJ nڥGD\=/VV^[tiu((UٮzI&a'.H/r{n'EThZ9_QǩƄB @ x@WN"$֪єKP1*bu&]bI }ܥK׌LboUb1co߾֧O @ @B#X'^v2ܔ(jFG9GnQɄ7ZVb=$ت@ @ ZG((}MA HlTF/'Q\mذ5S45KRnڵ].܆j:9r 4h>`$Cp  @ @H!#'QصkիW-K-[UV֯_xhޔ@{:HI, @ $@b={\V޽{-//rss^@R{K.^ga?~˲L2A2{%E @ @  , 'Hđ63933#|ږ-[ޔ5V2d T.>iж`dNrM}NhVd7]*ظh  5H #,:T0 u tm5/:W& _w'][?|xj' qM"^6޾b!) ̀hxȋ({OV̠mUHAH /`SXZhd#@̆4u#""Ad f`VnD_-l#k1uu4gvT43{(`m=ǾScTv&5bn .|u䷿}֕+'|; P*rwk`Lɚ )yjz˂ ysxPIŅW%n ;^8ii}ǟH2";}V=QY_iGxpKnڥgW[K93BA#G#܍d?M\t!Qgѭba=!ޝ6s`_kbr>W _]w%ɑpF]B7R{oϼY~=v۞6`%'w(E+ >׿XxeV- * \uN݋O%H )hND1X/gg,_2+vB] ?)SU3JsV[dbpOT#J%OnIu Q{ _۴ߒeKzK1}S/1;vDHqlk|r=KZkՑ<(||E2n4yM.d0`@g`Zȩ)u6DDqAiMrdA5~KJ pS#G*Jס{K>3$hC7W,9dԯ_m@ɸY kvO_suĸI4O-.?xI{Pɬycꈠ;?3-<QwȌߖK+7q?.]U0dޢ'MR9i~\7)R kؽwbEuIӁ<(I ?=`Wt;s.wοOק=7İ WFуz<@uGyt4kY:*YY3W73|I#)Ϡ̽S;з_8$˺:?0?{w#z-x_qK;﫞-oE jp/#=m=6,WL\u7. L&Lעo_L2ɘi/I% Ý=I?keJxreC/]A?ܟjs01ʂ{ c΋*xrg ٵf&=--p4eݍEQY:@]^R>N^XtݘE^ޢ W6G@ע!&l9s_OFO}H8Wik=I뱓r~do?u 4b߮*,Y5dj:bEGhbϢI!nB{6bV^ϰإ::ǜ4q[u wh͈֡:t rvM֯ߧR.Za-rT+ xo:x|WX#a.UsuȹqWǩ@ʐ>7 qGi7۹MVrmG71eO&ڃog tj[zjE?[x8Aah0Q9*oE)m|vvA U[Ā[x[S.OVrm@vp.]wڭ{5,SWaG_QZy[8 xod缘[4ZD S 3ha?HnE:mG딉;5oQWB_Gq|裫6mػ{ˁ;.$fiMdU_ãn_xj}㧝|n&') }v:3Ea-zsO=U8R0[.=UV ubw~^>% p.֗g9-DCUYhLol;0f\;qҕ ~Nޤ I*7.;gʼ#_uѥ_k~d {f$2G"Ww((Sk{M,jT5/F]uP [ŨK_o`lZRRjC'~=Du Qɻc瞥&ڝŒاֺnaiQۏ$-./iJg?K|~YWīaNp5Sҹׯ.\p5AtV)U*s _Ua!Ayp"$"Ul;,r ']ѐ /OȪ;i4DU'W'/Żޯ(I%b\j$FE~z|o6Q]X+ @u+^@d:4%(ݘESՆf㗃\;og0ZbmyK\ ~zd$8,IdJzrGTo#=S+zs?+Ɲ4pdgӴ 3Vmֽl;pز^f>G039SafE7zq1ö e&id!oL1ݭk=J;vXy+-'?.L1lVݣ0y*(|kQ6N%?(MD Ҡ?,22wmԭ#w>(aSΛ ޜglb:fEP&\u,QZ]ET9gtLb1;cK'!=^uҨ2 0iw|yt=%A#}h0LGKZ?󠼮(N"v[n#M{|qvL=|Փ 󠼖3g J EPKi1>c~3bd2?@HmЃ;=%+HWK^Qm{"C<]%:$+ Ѫ@ޒԴi"(љh.}O Uto \P$ciZ=tCɦob6hQoPO܋KF_pj:MlhP[YjuӘi%܄Ǐ*@Y*RDu{浄)EGE+I%hAWϼKKF]*gF~O.Q{\nć 3#ZLh.z.|[*+4_ p^^:2M/}59O]25ظ Q&<~PUF 5NOW|dLg4LfȫZٵ +:k]CՁM43A6'(DV?bz7NK'D̔44M|iJɓ0c-S&A:|,z|6ݎ&HӤ:z)zRhPv/NЉf\[yKsKJݦisP&ޯrd >&%'$ZtqÇ >ltDɯ(7%W VKӶ~2wP;OJsibV|Ź*(:jOWBa0'>KLWhJQ)bWy鴈]7[%+}dszMsD/k|֎ĭnzu'^$s VK "}ԉour?E[:͕ŋkEFߖ3Tq\BU{'y֭g0үnΔ.>pkZ 錦t&Z-A'7'$.!tn=Γ|I*q3,4m.Y|wj;@[^ $3 aCR&X@D#.Q"A7x40fYUְiKM=K͛5`NHxT&A+*x}⏻6 6|Z^Fzݮ:z{{DRm|ig\o@sK8w7*~O jvM[y;p_J@@>_L{Uy@4m͢6o?|V>.Ń./:ħuKs򭂳.-?)jV|^&ʬ łkֶ۸? xx52؁8z-8?=xI 286դmǓI?)τ3٧}&/wzw ;86([3T}f9g-|Ɂ[%'6ɂ.~A͛7k%Cy͛5]>҆6}dfth j>W>4I۷_k f^2kr\$Fd:*xGv j?|z)ŔY툴Mn(3꡼wהPc.c{joКӹYF^25k֬arEB֨ v[~-g/[ 9bjO􋗟iQ{`i#:>mTǞ( o{7nҦk ÖNm|vQN.r0+s-֢PmvDjmяsD_ԄJ;wXgE:?o>l7ݿ[?{U|Ήʎ~r[Fۻp{58ڴ}~Թe]ux}|lį˻>1.<2F@'~9C>D56fן?u!P,rל'3?Q?;G/G5!) #sB'mCbjʭ!ait_ߦ,v?aQNʼutwN5ckv,yp` J@?}1+~%%9-D ;7n>f,H(E:e>5V7w$(UVˡox=XuΨ^}^.6iXuӹ[C¶A=f0|WGSvZ͗v?cg?9m/F/2SJr~ǚR:SLV;dёR:cV UzOw\F a E -0@./8J(!vȄcRjr^<_AT2lI8qSy,m:ύ0|%dt1V3r>IAt2pAx`^E I+Y. K|z-:7r/{>Hx>Ku@ dւD\[O;σ&qRm}Dnu r55Ff^$@4&E|N(yfwX,f%dY++Sdv Jæ ӣno= IDATM(Sd7l}5xMV7h((ݸK^bEtԩ+ ͐Sg}9io3%³Sؼzd9 4 T_wN-aq.ro9ŸK^+"#pz6BK.4r;l}@BLhY>-rl'p@ԃ[n?؝*zW&&{ F-@(| 79U#Ǭo n [SDzh(ڃKs&p9Ŋ|*' E31hJ D9^7p]3&JmEzb[6*Hvl56VS+bQcp<* p@,j VN[wM4 &}Z DD"tOy-2I%r`hB|Q[,lSٛZ k7 td|欱1p՘a|Z@*evhNmLkB&ҟ7PN mhE>V&ΰDq'`U|$ĉKiJh?IJ6þ=ea[ [zGyÔև[.9%Ϋ?kf!6$ڎ],% 66Z4,b8i\cFC h'4mMV\V.}l:# h#H,ረ=@?y:?}Ƶ{(s7n_qru~]ʹ+"{n\z4q}α _pý'5M+2 xPh/˔Cw-3 x[;_G 2;K6k #anϺ@9b4' !w0A/,7[, .bH~ۆ!ЎΰKX̿EW؃"@|='r@DNͿv؅n>e78HG5# ^AmJ*x:tfzJe̢DN #L]=eĢ9gGJq?/@LO+iQ+=GC&Ygɚ w|bUCj[ IMxjH!KPz]5JHT hN>^B 廟៕'`_7MMuBI12>ɘ-reAU)i+jk29r ycꈠ;+}wE_@ԃm"ƽ˙Le="F ?l{pP&;+A[UC  "$зmvN蘜U ;m/ \,Oil{_@] ͕k5Eȹ;>_?}zkFSu>kZޖ4q$O,D.zƞe"Q+ )rn[3}LӴ !"[E@=X qP'5Ւ5fU_vk+{ĴB؟>e'X`AD$@2 /'|.Wz6/Ɵk~J=:3Z,pVLQ$rqIWU*rK],2] yr:3"Pc&HkAU26o5`a0 19 ^AB%@N*0|l63L1jdyt kH.)rݕ~HUD$"es o]!q &h@k>Kͥ^q5fuAP@Y%W F42r HgWQPI4 `e+Y}GǕ{lsy8>̋{lG,GX9hwn)អ !qaߦGh`#%X4< W(tMsbULt-RPFbC9F-m%FAZRy0("PFxȾn1 E6R09]Lژuzܜ_;s@,k2[(H $tMźizE.(s Y?ab )3r{AzbLl f,:L ĝӿdڽrzoq*nt;{xzfx-XԚ B( mXcdxa94BT@QUI]pK`CP'ؘzꄎsD.AΞ J_Ցyjulˠ gDyD@[-O;ڬ+G?N5]ō/n4rTN}7wVN2ћ;RIuY*Tw9Jҫ֖aO|,tbR5YHp+Mz؃]cE9$Ba`pOi|izCUqkV,kKY`VSrォ di77u@ ?oVFrdUmDsVb.ȿ5zetPfHρqP_@QBL1X xXޙ֑eڭ}PBe?G@JʚݯZ .sb4@k_(vjǾA4c C8{&)tE)`KD~DTa>Zc{/$VkEyYaAZbIbY=-|$\Tp[50DhʟȺPG %m?:e\vu6d(` HZ=@{v'do#D  ꞙ%7$t0 .|j1a!;; >~Y" W>@zIx |)F_+BySof{*0vB?g_b0 2 P--9 ʄȎ0p ?*!29Z]4i/A*Mq˘V_?ĎILs}W)^lچ`K, P;Ҕ*RT7[ozyHem-=%5nJ,kMSP#4㑈e-1ǔ7 Lؓ蝪NdN 1Wl6`\p&IJB |F&@JDDQL8aA˸#= DYC2PQ4e?A )9BH!z PdE&dJ剤 2u K׵sipwQAJSEƾnQȳ~7@)Ȼk7n_qʍۗYo NWw,Mv[ r{jGp~9ո V`쑹̀k',cm r4 pݩ62;|"tz {Rc x.̵"+>7/[cvv"! ݯG7[p?tqeClRWO 1]#9Eo?7oroG1R_ts'ʈE#:rΎV~^6Ryѽ[_.I;' O,m5ptUP30M  %0kF'1BM$'m4 WhVY&Pq>Ahe2* [V+6JaBz,$䫺)izոoNʡ SGYϴ(:}$,-62k0$o1hgwR24!b;㒂5XTѢ3A1J8\i-B=9ؽp{[X8&7rbi_d.+N&J3??oYVRS-uR b-H2lYf֭d=0T@Tr2w;f (r jLZw<)hs"nDk{csGXNbϓ&A:Qf_A(ҩ'Ť@.ƌ9\EY”iQT؏ۉWZV#B"|Z kxnhk'WBt9A˟7.pg9}v."굀&(RԮ!NK bwWK]t~^v*N'k{&8"eS o]!qi(x@[kOVMTp1 ?tK習x@xE zy֒̉|@{u.xEjȠZއaĢd\] %YHBo>,$ZZm5c3ja^ܳe#=):=,!mMx)(-@>B%n Wt`g 5D."3QE.AJ@ZKѪ/*6z4pfNh!bpJAA<HP@A&a7'`HgN="ut@V %YZm#-SGnLY[xiVҩuABњ}-51q i M)g"_-vT94|̰vkoX82TdDhR2hbASjp jϴKb9ɅV Tl YF%ME3|{:)BXC[Pv ƄZkgmTSbҼ sSftn,dm7&ܲځe,89_ػ@k)[??VnXDQ܂O9w\TO .3wZ=>+CFQ6T|T{.~ل޹GL I1H% !C] U/b4tG5[S2X' hx/HU^ɼyX>2_dHt߫29hcgru~y?gȊ@eN\3si@oi+!dN\UP|wÄO^7S|xji Gg/6gPW(N5ϴ>ۺ; ]m($_4;{xzfI)* B\rՙ`JbXa0DPC?Km3%F^K!qzGFlbU@*Ae<#1u|V;%%m\:OLեM8VPRx;ܜg*ːYֻ 4 rnN ^.b|ͺ}ƣ<>q*veDnܲ୰"`O]`%$aC+DV*_y*`A U o.UEq+ hˣK_fM,YeBT*-N&yC ut(~kEҞ4wuU@!%20J n‹SnfIpRD'L{prE8 &$H̓@[򡅆b 9L;3w:LUl=>x K0ê,(MBqT8y8f52X: "XRVTn#KX8֚,9FlM2D*Yok-2bIbZC* ZVq7*7/$D5FM_mYʍ7tD.ba"8 ( ]SM%HKtIE]і]Aے93mW)9 BXSb6׼\)ßȆmU0=h? "E B8<"ԗ?^4  眤UмZ(%8"6D."|@X ؠZ1B}Vw Կ`` 4pٶ}{jnE-0<05vo~3 "pg[@b2kmOPa~1D] JW%Cn$^Ȁ)Xg{!UqbSA&`V{c#}tRsaRi1 )IrD{xJQX(,PdjB_(lѬRm2_-<~oߋ_ѿSEj :}Ii~ t_w%_;v/gFs{_e5\,Z3= PC*7;zL)X) LςǪ$ G ũ 0t+-Y$4zSK^ k ԪiG)2a$6ZȸxwoU6eLMAPa/[6@N9RP:a։!6~>|i#KQF,БsvA Ĵ4ujfG{Ox┕׼>\qRS'nɻsrd@5@i\,(yb)dEL& EAqA[U=\v:1$o!1'q0;|BI120NHQ$ri$䫺WTI;~+wQ7GiQtDx<+oܻY+4$,Z6.z{ۛ}ٙ/}1-3}lk?!gzl6`7gO5CzI,E8XH א5NSѠZMkr%C}߫/i,WYIS+xR cIC̯"y'.2`$b1 J93cPJ<!3ҙ l Y{:(LN9Yl \5]ρMW Ӎ-B8\^a3(E$Ix< >ezo0:o|t'k7_3PX1%bY`N;8:LM2΅LEl,iq|*Ab]"mH[8':b5z +9 5CsIAHQth?%^^b1CMWgbdC~WRۇKE\t.;kDtB/}۩~=F ٌu:Od>b~ ]AjZ4]f)*r5 Utޓ@ ZudYw잉h-!^zo\670RIUYRsTp-P mAsQX vyr4mfb^&oSww8#&nV gs9u{ p3)hiuz>sP<9DĄXhQ@ǘ_J4A!:ΒA7M!@y5O[a %D}2 E~gkzn[ؒخ8ZbImP'F5覠}}yE 4Xxʱ]MȾ!Jl `A!z}3rai9#"d .bcWRUd`98晊}mJjukX>@`^",i`h`Vanh'ـ<^i+P@%W aV+|mXT?5ci15942մo aW5I+4&4a, T@z|P+B=YzjGvE#Ah#1ʂU_+{W%2,-~`+S)Jm-)qʟZ"tƎ4oVGem& 凩[[½&/ضaH4T*EA ǀlFè96+6&w 0Yv6KfQmU* 2Q#+D]=绁2{EݾuJK8@[;__]|o}op0<2+n+gjs {4eGZJ5]jyYWeIf|q/`~L˸Du5IGYq=w5Aͦ:esD+ ]x'{x<fzI\H~b84a։!6~16FjkFF E6jΎV~^6CZHɌk٬Onjdimo6~!w0<+ s][ v]#_HD}*GzLdB(U@>ĩz^k?u>XS[@Q) vr+VfH|? %!>K;0'_Ͽ^3NʡSGYGi@=x(A\". sw2m_–}vSCnI DVmC+B{u-؀Te`pSBse\Lb@ Rw]"JM;<3u2NRvqi?@ Px%3ulq$CU;Kӷä'.2fT"b$R 6~Ϭ25<_2֕q&w}ngU+pb֩ʪLwbdB X Ivډe=,.CYWwF#wY_=Y҉%ׯE0E$QՓyqүYLk( :hhOI]ՙ) "z~N=c%߰'6Kxȑ!G{|r<k7pHyzӜ:M^r "FM?#&u"X:JQbw7(H!GWH\Z- ߨڧ{pɯ?ѥ tOX9s{0{Л^M=1mz\̍)P4W|VGHwHLx vH+!`E1A J8FHྐྵ-HZ4@餢hWAr.`t(\\R$iw{'ubF]XF@<]pqče=!>HE`/.AJ&:0V]F4y)1y)A,竑-w-b7y!T@rȉKU:답mO8[k$v W[P_v#r/mk?>E?ݧևh 0vцÉ' sv-43TN"EONKu5A8&6!-,2Q.ΥoLWP$ꎎ̄ɵ@cNRs$ÃWB = +>m5YkϡΠJ6rrHBD:gNW;гlƲ!woڬ1EQJhlwODq yl|ЬsrR(u"fh.o=d;<1 J~qMz{}6[Di=veBv[  `mHm aa U' M Ϫ‹PavOC2J'  e0 6<;;6 Xem 22XygAܝ4GI^fAIAPČ*)^6ɾ`UXB1$ "@1]64&(2qC1QTU 좇@> 20hs:#cImޙ# ʴ[Ŏt.} 9投u"$l9٬GhCHyi&`›6@j5%< K5l["rX5Ius@huR9^uz&dvکZBnXNanXp<Ѭ܍` cS6!A OI5(W ?{:JoKs{_u RN IRs%`G 4UCI"x"GK,pCҐrvr![rE\no7k#OdC޳_MV+[5m |;]X|"R PF{ ] Go5`ٲr*KAQg{ӭ@ڰ;+@ԗx!QowCOU+-2  ǂ Ԟ`G#@8 ZgTټ%/ylucbUkf3: 1K.)U9I$ezcL+宙ENje $!>K;0'_϶2ʤNʡDI ?vD]w\JWP&> z J3}(*eDEO ˥&VW=<4(vNrʒ'ё誱CѮ\N ՛iD ayCgq|}r2@#^ޯq.)RMSqH8^E=zy-ϕAWMrKJ^Zkiԫzx鴕r;.)u {*1 )To8X3(BiSTEN*]i7zs =}P,W-̹#)ɌW7/_e8ç`f2+vxZv΁&kNlb@4F+,ƽ&=Kh&<Gi;xy\d罶 G{WUϩ%BB,E4 =6K€*7:"=ӎIw8- =3|GmU2M $d/dJ[-z}.ܳιZ,WN8pz-<Q\kp4|8\IXň"~1 [f  !!2@η8Wa '=hrXPCڷ +;@B8GY_,~xmݶ ;\Ojb@N;-s [Rޚ§6:һ>a Dyv_۱`-7&_۱r%'If1-D`wTo"!i9D#5!Wz1J٠h$*0%)b]؊lݚ6CFtw0d|ގd8}*#g7F,qk/ڶӎD֥?N[Rb^ufA7ʎݑ5n j?eLq>C'SEQD.[.1 m? 8]Am2'1"`PBUX3 ,VYIy *5d،X:KKVX(e~s-;踒hܫ^kmv@5ݡU̴ۗg@]iv-htCN-ŒK̨fC^c VGFVVZGw]]u)KhbwrstCĠ( i'fyRl:t,guK "hԱI0˞lp*s\O6z6'ڂ8󓜃dٓ,E?ڔdmAIGuhwffeX$ʶGgl Y>*L᳇꟭X=ḿXnG D1~i3nМ gusAiA:R)PS<Ќ L+G*S=ރbJ֒v~^"s_ ~dg;3tg]י߁2nUT v.c%(~Ԍ)4lav]W^"KF{"(ܑ ZFqV!1=%`03\@ T*inַi6r7Wtu 7%=*{iNoWk# 4{Qz(q8r[ q#6}*B!) ڴ*,õ8o!" 2ڥ%U'2= āhY)^D!Dk' CO z"(M{@Ѻl4.ͧHu$)))@aL+MC^K4g.qi=xP[RgN"pOEx退Ҵ S f؆>L(%KDfPY@ CGG$&  g#r LG@a|6,%3~ !Cz_c,7 QF&ZΖE&EPW|(EE:f߁DD7VЂ ;|`,80_\`hVytI"+"v()|IH"GS&EICJ*e9xgTn=C>!B eKm5vL8$3U$O=q[kT-t 8nU8TڃRX@y.$2B$Y4M*6Xk!Q~`NO=()OLDб&iYVQ4Ig/VJO؜O"  ň6" f 6IDAT2K(9I@}=͹oMmҿ\iݍ>{ߕ܁";ھgo}|ޮrګ|Y|8-8߹'[;6R+55OoLWɺ!"> +yͽddjI \‰e]ڸ4ΔХ7TQ%)\PC 7[w;-RMq1&ϝ6Α[xͅɽU)3L:Alv+1{E00*2ףw G4 H Sl(KP*:eDظ?[zd"śq-LƮ}'9DIft )w26z]+Pk_UBz\QD.xhυ7z'7Zrg0qJU=t۰ZQ}Cڵh}VB-+L*ldiEݣ|ߜܚNu_콐-_W{9#y<1{'᲏ 4c2|I-M#DcPkG %+wirOkNnR|e⢁ެC>> .p\6{F=7˖?Պ] nr^;VN.[4M3,h@wƼ]y[#\7hF_T7L6QZQZG!km:.GEs#BS}l>2 tWVۼ9azcꜲS7zRQ>>_8±Olx/|5yɝ3ێ_i34q9e&%Mzg~ _y6x ~U#}5(73p#qRK%F޸M MkH;|#q4|3Zk 8~woɼk?}j'zչGiPov7R 9VѠt^g!4b oOkrKc5q j:FL6poO/ipZLp5sާ2r}vc{mklzgiO\I}MiG“6gO~c4vL#-hԅ+lzu]cf,8XUM/GL uBi/=nT#3@Uf5:F磩_LR$/ߵ*ݓl:B:Sn_uv@_r]R{tJQ hHhO Х Tqޱ/K@_]/y ;khjO4}-m>&Wj(D_u).p##3+Kdp!n3( !NM0ǨHKzLV? U*uEbHU :-=ͻ~H$WnOXQk߳)uڂ#:zОb3jLh o8u}dT.5҉P`]NϨ12?J:LT z)b] ș~ KiC3G"HU #D -(&3R*|h8>\SHve}^%3)GIsj +}u[gWK!&gdR<(N"ҵY-Y%3@_ǹ/j0b:ZD* ƑוlEK%d+T$M(k.Z$˪' c`T\˨qTc1%48$Z XZZ9) 2mD"}JS:[mnq͇ rjH]N)OΒLY>iMe"jP|4HYTK 5ԍSdl(># A )XBzH3)E_13r8 ] sWDbq\d.Gn2 FV=TzٌZt $.#kJ#0M!q4$$MიqՖM@McLM8q$!]B.>J =!dHvKqQTԈF?~̀b%{#*o0! p`XŸ4 %t&*,'_@ tdh?_6m/]R9/_ǫqNSAu]$s\p51XbԑYETؾ`o` &$D8 Ǒ4J1<$gNOH 4V >Z(?$1&2ҭ d֚ $2cp0IL(JEE$ϼ#v4 ;9x?Ix)J`+ y‰dp*j.HqxhM;YPDʅXL ąbo iC=UT|XY#TmR<0+儤d#(ʠ)l#!~82󸑑Q$&RC-[yd`^TE2yHV`E:a_66e~y3 qбG%9@ĜV#\A'N)&"0oD(FT 2=Tl\ɥIENDB`glances-3.4.0.3/docs/_static/amp-python-warning.png0000644000175000017500000002240214432156570022031 0ustar epsilonepsilonPNG  IHDRhB"sBITOtEXtSoftwareShutterc IDATx}|yUvUvg'+l,Ġ,! 3"  DQ0"JPёU ~!+KCL;['餷{S5ft}sT=SGD 0 !CDb-[kSi "!1 3""XDDDlVHQ "DTT,Kk{(1H-[,DQ܍@0[k]9 ۹~Dܷ WzDDau@DIJpEpq  "nEEoE%= ;^?~^—_5<~u"W+_2pYgZYɘHV(m_ixYagZ#a31EQE}}ZE!wf@D_ Pڲ,- C"""ƘJBHmZa"c g'jjK덁ȝ´a%AJKT#h13"0}IoJEv@w[3) "o""2$` Ėo6tߓ {$(>e~@z `$x-iO뜇A0>l/B$qF!}DOw!B} !#"atˌ &wZ8DI5#NfF[;nOP?)uSGc\#A3TD_]Wp%HX\8xe* d@QPQ8H)0朗 1=N6$*KFEY %e#'Qۖ"!Hȫ-Vёu7!G?qGArֹ7u(Iay"", Y؟1 2 3bLևV2 LQ4e DJ 9RHY+-[E>qHȃIL$ẇ)KvД!E )(I=Z19(#l"#G2Ap' W+DX !# 9xJTZ6]j (ul5'݆F4> PAÐ H 6.-C`Z$xPwNpc6AP4(l y/ zh/T|-qݕ\p&agMj{ffX.wffm6roVZc  p;"2@$jZLGYIJ6MӇnJΡ@t81\" ;$)ޑ !t b"R+˲V>y+ܰCg:љ9 T|AnDa9 B D*Ly@bfMifKR:@) H)xX?LZ"Q2&IA$/e&+7DaZiW.A#"[7" MX Ʉ"8,Sˎy11iA߹!Ԍ!zٖL,q. XJZt g~QC=XdrU Dr*+<>7zO:]Wu ?ˏwYBs}宍+o^i-G^t˗}胏9g]#/z^O^yK*gPA#s PFv~y>WEHŸٟg?9k\#_,yu7L9}TS/={WIbn)%3""c K4&J8(-o4NOآEOפhM9o_Lm?عK7qޤmK֒ fʙ~YOmWL[wۀކtE̛5}^fC_V"T_q3۰2 y_ݝƒ֓WU$ʎ Fѣ]~"B !/Fɇ*<#C$e#0rt% (/$,$x y @!^kR=C>h(RK/FQzFL;ȉ{Z{nY6iyŝWBNXJ\$;a&rNvCOŋx7Q64L/9u w\<~m[U\O^/-ֿ7'}^UZ{aE- A%tfSv;{Sϴ9*SRX[T#f[۳e k#5bWsA fHCW9ύVo$U*n6׼ a8.ymƥ ~η઒? gG _X󧎛~s޵u>4q?~7ݯ#g5d#? E0~9ߘy寯9M7 m|W>3\|:k>j-/x [1D rgR,J e[9,HId7TJWZI"aŢ1*&L|)$lw6?M}ǘ KbPEǐУƮJn0rD1uܴ;6o)7UqF=d`v 5r8]-AU(w|駼+Yw}Sbθ2&lYU-;w鏛N?+s.^ 5h{,且EHA7 Bf" iymό{ϖM}Zf- W-sيsUҀb^#aoWW K Ȟ%4C{E9@(S?y>H&&#(JȹSjP걃DĴ[ yΖUMTA,&o4M]޵+׽N ׽zyNma#G4Џ.&)l4mՋEڱR%y i: ۵v.Nu$$[tMRiGH[_}g,1F{!GEܲhB0Tҁ:vL t1?:-@., l0#S6N9lVm\yﳵ3nW{t׎3aXתjS[BR& ,rUős'Os,_̸$Z,r4gfӪ[K'ʤ7<*2僊2^A7 xTOT޵竧}?6?л0ç\zzB+1+)Jh?pǿxlI `߷rϻ˷8uCF ~y0~a>uر]_|v( c xUKyC 2Vt8tꙥi)/ѹcV=؂YgO1ul}A$MQ]1; OiK/Y-3q!gHKhP r:ȴQr4b1z5? VgOJHtJu`&TJ 2v\Cs{/&HÄOyJMfeeϮuo6?AYgMh_ζ1RpgK7U">m,@5[JA޾fkς{3qckmOw PT B-ȏ x-e<xt@IXGD'xUX0]QCT1֞POTXCT} GDk]׭6b{l Bt}7Q@jAP0F^3 s iOY5|ٶ]<SFD-nS? .=ehzO<>갋!Kv^WdY{ N{هn]6 ַD2[[,|q x۪ݳ`Ux)KZZ\H@(,_fYXrU[`Ścc>!,!VA"pD'./nM]ɮz{V*aSxSt$C)O^h#kj;w\S9 Wn訖h H d=UIoUeIJ"B ւ`ZS1E !a0z Q'sAK-(<qB!ړOLd`τ5 w>upjavZ8вqy'¯{Q1"#V:PpYL?a+ȋ\6G6پ%piz1lY8fzEtU}T=[[l"8ă[Ic81jW7-ыN>jꗚszś嬅qE۲~KmpcW5:ò,U !.DN|N@l XkUobg*Hzlfj `F83Col.VIL˝;;(j~`$D@vPz~^>+n:sGtU3ܥ]>ؼ\V˫*ᯨ֊Պm½m:;V7ﶌ`8 ƽ()[v”7mpŒa-sj D"`قaJ;U u=uZ*j!Mb#d"`n\XIBw\ F,tdT@Ib]9%je9eVM+eu\Ҳr U4ޞa =}I!IU4vcBwaD#M`al>,+|\zk_Yٯd2,A2 aR b$Ew^~h`"VielGb/6![>v0nmUGH1ta/ .W;K&.eGOokCw GLۦ"ѳ~?Sjز4nem_~;bƧ?7mOu7α]׶y/o4M)e0guA[b2ÇHBxʑsigAL0[@<݀6SsѨ,-$Y~c3hҌиy9y˛Z;&~9طythJJ]Ga:YEd(]͏ z.喾Q|؄??- 6^oS?ڽbO> 2+9g[hd2[xFSk[;COZokѴ΢'{Փ-%""wgri敍8usFs.k~s lYڲY(P WgH\2Eab "M.TEaMS~̶wgֺ70㯹lzۗ? 9dܴI#`i?g֮R*M꺳kƚ03lmhSJss[{/ 䲴V- Mu75'}m+ZBT}}&"ȺQgtwGx̴)Ӡ/Oj; GA|1㙞L)0(U;GL Sǚ_Nw8ʔ(Yyը j!DLMyI@c/vu =ᤋN;ذ>z+$$nP0N#)Ncsg~#ܵqœJPUi (+~y 췏 ;o3Cycp>Lα9]]C; %\쁛_@6>i?|vNJQT*Z'r!J݌$ʧ5uٕ2iTD,KMabW%z}O7"SF-]8ĕOX  0 -mZRvf 6(#S:vuB]Ȼ|U8]o{`cB;;93MH`O U AVxG9e,O܄ي$m{jrv?3  5z*>`ei]?8hگ4+O~~JC1=|huXUfVݖ# M8n:=d&t(`  󱐨b Yf;9p@:Tmܔd4t3?C\:Ec8uъeQUJSR 7(l=3ԩ3 EHPI \~!dC>QhդLCETcTf@{} >!pb| n,Kt;dW`] k_ô7ri$]˹dD[EFI糬3&6.F^) -ΐԿGFb֪5)p)k2pE)ǔ(c ߪA$Ww>PvlJҨ+ADpdꁒR b*e\ 0t#fb9IDAT2>dC7FQ<֡ $tGۃy-@P=NL.EAxAlIN:'aeiGn(-Fa=p@FWI=K i$ػ,DREeԕRǽR?H`ur)kNq)vGI\XX=cs#8hD"@QZν!i9o@" 4Hjߐw)sni|JI2B7nA2]|am5Ϡ18wj߿,[ԏW~FiZ 0hd~ `&T-g@I=i-֪{-?%D0dxzͥ }DtXw|d҄AB]ex7* lf/% : 8μ # 1*/p#vŤʷαn0/d$Ow'fW4$ZWЩL<-FbƬ0IZ8%jkK#Bu w [TSYΧvzV0ԊW\wcjyjiaMvqM=O;H,"D@OylSd.U:-u ]{х2hDV'3F`ac^Ɓvˬr21"JTt]Td +if0l)IS7IQk~Qk~BNax"$B^~ffhQ(R<-1!:QgdrgĞwt z :S;:ts&X! -.ц2[4&9 | d4mGg{GJ\GY%2!u e#<|֨ ̮Ȓ*2,a 6lE$E$xho C6yf;v؊*j!bjA;WDH<MSNsU}* u~0_ L&?~|Y,J]3 Nv0/{$4AD"y'#Rx)w&b*ldºl!."ԏUԹ`K[+KgB3<0r-o^7nn|AIENDB`glances-3.4.0.3/docs/_static/fs.png0000644000175000017500000002530614432156570016710 0ustar epsilonepsilonPNG  IHDR:7tsBITOtEXtSoftwareShutterc IDATx]w\?wf 삂("hXŚD-nbhL,آF5MQ)4{)6DI63 ,j2wgN93E /"/.w|1)m DBEM&!DhG "z1m," ^CmdRJ['_tT#$З]_3tHJR@ܵuHqOS"PJQWnuꞔs5o_ն "i QDR m-Q쒢?+.QJpd7WeB>#0h}6DD3K^@0a0$p(>|?F^]|BoSД%:iyDmm+ CAh\N/1\eLaSC~|3m?!@q;b%Œv/ v(8a*B^\fL-5RoĪҋ ^ڽdPF)V![z aaĎ0Z^< &lщ[AJ)0kB?jcHwwUS4qw3š7m?iUɯmyRD?f'?~I-ܔ<w`zM7Rr>Nkվl[pvs&4ܷ0ꏚE}n-yNkE$ 0H)!Ekb9_fYyH)AnxEaCf|]?." R"^hzg]un]N/{lb Ҏgyw[vG ;`A+{+6<۷5.o;^oD^SaXB( ZfV"2 HaxÅJ) n-"(U/Mk5؃_Ŀv]ה} J R%(ދK(V<^oxǶ_'B>> z@.I~gkO sض%_S@_q:XxӏH?T|C =Q $#gL<`G:w_8o<=2QK3~ٜ{Gg2h4!&"-J)q`8@89J9qaa! "H BHyP8?1xѧn5Wﱟo/fnYOi|5}ף=֯ߘM T 2̭ſ6n~xC7iNKw-}4o9do)2u& 7L [.z[Ę}jȴo#Z9 2`BI\+ꩉt؞f+.+1]P* R^d(9u_^/VMvZ՝{ }5 'Lj tBgF*lʞgivy/Pq- X,8G9J RjX .rX8l2 Fh0 Fh2&h4Mfb,PJ-q QWcS_;c=ʭbC |KM5j`?׷b9 z͡)1&nel`&ƟCKXҒ'%=NJz𴄒 u{c( B(Z)8lܭgC,!@wedY'c0?r;Az&-lRJMfa8  BDǻ80X_Vjo?ܡ+G6 yRt\Tt\ԭ _T^UԩNhqJLũ+NorZKN¡ӗΦ bB0?CW%6-:Сëŭ;l.x5Թav&: 2Oa!2)" 5?}f 1-bfV7f^;A{W7B飝MH&(NuҶ7WX=HKء#:<~p5˽Y癟8B2 &[,JφSH]=U WKr|)moDŽtV+pk۷%[Tyw "7,s Kڝ~Vq-Kު|ҠVڥo{i\e/M?yeZb; 7.fZCa]λÌ'n'ܺydEx[Gը\Z}plT­;ee+V.[{t|}څQ0jVoWԩ&j-2j-ֲF\ZVqfQi V[{jJ͆ӂt,RTO/շ=w&4в,#-*φsw/fф ߽+ߪƲ Ym-օqضŭw ш-&vuИ?1Ͷo~uioFzo"'fZy4l]-7\Ziߍ?ع?F 5֧c<ӯM.ƭ%v }7xi#Zv̺\nz!gT m"$JIȡ`rE U(U Y"j.! aTZһ@쒒*-Z!{E{L7Аs̊>NdmTR;Tc :v>֙C>i6V9bEawSN{wHU{6G9QyT!Ϣn$<ͤ$#~$GhA鏷W7kC-~}Ýk }!nVwe3`RSP"e-9)٤{*0˱͎ Q޾tz%~o'rmNZ?OߗF٦GM'VǙfmF}#%y,#`J?\!,kkY.C'4ios-Z~uFzANR@2eρIv *\JxUsb,t&N jW ?5 gԿ] SǦ` q#ƽE]y#5MZ7 K"?li+?Yt!3S"Zגz7LD NffY#bD: Y*U<f׮^9K\kv4<дaݓ t /p,@y)ݡ|.*v3Z]Z)).ݠ$4-ں߈Ε:;skfu:/١Ȥѓe9piEMFh}^:jQb|xӡ5ӹrY͛b~f~׻o丷kb]ς"c xj\ƕ}wk=Eh5[Oz/ZŦF2Λ]w=2ϜN(N/.8UggHw#n:/]΁6AZ>.sIɲ{'щ(d0(8_S؂TC+`IM6YQ(ɍ;~q/0aphRsFsc7e1S1eܹǃhc],-hyڼʋÿ35=gsQĒsXˌǯu;n{f4aY;`.o6sZ8}7 &)╿8mFɘ@%Q J8r[;-56wmlEJȻXb߈6T$ uؤZBCB,ϼXJzթew8&R~F7ZLEv-iF`HC$EBU$N/xwlB)?-L^-C[ŜTqt2eѧl^gwo3cP,\`+FB|銣.1#HBso$~SklD=cWKyzEkV(BF: A? Da@EE9ƱSBC^Fyai$ Id|jKQ/"RA6C"Zȓ rpGX~X/1~|5zW4-HIaVbU*5|4u-?~jkWr\duO\۷ @.22`WI([ "&rzH9 !r8ˤ 8a~pHo"-6jS$kPKM@oZ_^.*V'xB R[ O-#EAHU\~2QUsg΁[=.Vq}ի l 6;0{DJ|G\qeA]I_e>AN'B`"U;.>̹9eo!f0DY sz.Gw*4%WA42ڥn̩NNȸ VIDAT]jHΝ3=cDWLql>q1, @Cg-c 1ɧk?sƷ0zc|fzG[5kֈYȹ۴krPt$oϯ1EWo0}wL6ߥ3w`5~|X|dI^筰2xnbfoJ3)2ZAbTZYm@'~~/T4+ 8eH)G-0\/V6^ۊ ժ]kooqO~J+3:Wn܅?o(*L|1ɡ6H"$Py Z\d7LyӇ} Ostҭ:됏Ѱa5~Y-+;q?56և.u~{d(mMܐon1ORH-84O4*Vj5}ԂUn&=M9;=; X j93rG$FʏwzTW2epR+Άh, UZ? h”\ke(oĞ+*,i[ǜ|Yݒ ņaå3ƌ] &~qL 2<=FgNKQz9~>S+VgЮDž$'djZժ^vXۙKTU+j3] YBP]ao֕r3*@8*(P*Mַ_woeWJN[jE[nee9dt뼹jU^Opwx{c<&\Jaj# +!>$eHUJ?Vlz0JVhޔrj$n@ UTaeS'`:ΝZ =yaVކcv?CDY$ln~(09Blq)\ʼ=[jQY_RhM܂|!܂r,+.gܫg5,3oH#^Z>YJ*3UC`r6iL),ˆMe"+ņi# AL $ գQ,HI5x]vAU H4*DƇj~(T5g%kqۡ>v$N,#,r!K y]k@j0[If_^ApQKD=\k#5LPQPD\OK8S b8CAI@ZHn JY,WbePEwqKŠȶ:k/Y4ӧNMG77Sq6Sc \ 8yKۚd8ɂ`]S Ǝ[,K7yin*gn6ThyXZrg|SnTHbr>vsi8J (ޖx=BI~t| 'L]`0%/MA{!+  35Lp+1n9hPUG]Z / qV^}AzbJ v}^__IwZŇQ~}F;:X!v@Ϻ./nq<_ϛ7}u3G#>cռ|{>?͏\ﯥ.=X&UW3Eޱ~(~ǟ1yOcxضGj}|hjuĭ}FL YquZh03eZeq2hfay]~쓋 '>ۺ>h ("«qL%4άl]N޾_C^C&Ycϑؓ.\PëC |$x+= ڃ٧W^;`\\TP|E{(h:"LTޑsǬzYrcJmѓ PJwR5*F-s19qk|QeR;c!샔y6`"8z +@pIUJ.]AN'R2 =#7;pr(e?6K;WR$ _JYu]Ii:*e(K#:pw(*~}(qn8/Vq =R#F*)P1̙TK K 5 NL!6O@D*j&)[0DrYZS^+ޚXҊBR,MJѴRl,:{J9-R-a( )E @ EhT^^ Y'EGl !XA #>O٣\D); )Q\= \*iY"Nwg o$EyKE#"+OYjTP((qU,|IW'^kn:_zL+tOd]HuQT!\qSӲ eBr#|`YZhȢ2I BG95A?ڠE\˘U: gi>ŰPj4ΗƵX%"=7Ԋ-f"-ɅMA*Bz/ױp /nIENDB`glances-3.4.0.3/docs/_static/connected.png0000644000175000017500000002234214432156570020237 0ustar epsilonepsilonPNG  IHDR!sBITOtEXtSoftwareShutterc IDATx]w\T"UF,@4(MbAc>+^Q%FFbJ4Q"V қ[m{W'a;9sfs\$ 02^1\61:F 5`Enc CFFl*5D7@&a=Q!N;(bR0fق\ME3 g",Ta;\ede44qܲFT2"Z0 [;41av+x?gƄ12[=0 DF&5[XN~fX6erb?L ._63?´I[Sc 4M,?֊" SW3 [\>CwXuO1*7yˏ'eg16{lɡZymr?Ӎͮ[c͝di2rOP>ƏL1`j YuCYd`$6Yf)!Fn!ʐySpe! 6Zee#J-߈#]^[Dž-}^B&wul±vr&-f} ELâ)\-ƞ{nWֳO'\H&,y639!n돀$<hD*Xo~X7(27 1NbgV>l$;p5Ȍ ȨossƮ-y>v}NK{ɱI[0$` 6s+Hb#iyKKDp 6qjEER}>XXV'-"@20:G+x}݀ñٍ_θ;4g}LGõG3()0fMӓS3bz ÓM9I^FI<w-=95U_zI% ;qtlF.~'5#C;!TON8Qu׍枦$pG1NnEBiI(&*~5>X"q$~H[ c7SCkeQgoOHJ}pn68+ 1iI)ǦMt~}ֽlj)Ŭgc"sJMLI|x՗N5:{Á'$^KJa&<>2S@]M.|}cR>3*I81W};KH^Ezm> s_WYYqG|d>fS#V ata !W6 ylf=i!o6/]z?خE,Ķ6gW%~7;aXTĀ`@:lQO}䆝䩌t&,l/cֵKݽarpn^M r&xq[6b&"Ml4ir;.k1.4"=͈Jo%"t,BErK}g]s@b[gW%uv+i\zr1Eqnw΋X<(q)#F[0&DM`Ă h,Ѷ nզ=Ĕ1YhC~+%`0Ggo\1.Ki$9 { fAdnjOv̩,i}vQoh `#6+r#C?"k"7xSh/.A.v}o \vƕ@~󂖅Ki~ پ9e'W'6={_o;<]xbJOoe\zux͵mkۧ$X'ԓUx[z錎l눑ðn͑HlZ.d Ҿ}pD?H_$?dԦH@>Ō}ή"\ R53B-@??18 +p*ѭc;"z?t~yg:P߫W#s\F8uQ$BfU-/c)6mRnPpƱ!|Qg;žQ=zN 3zw]QA={N:Sz}]zvgbA  ݹDc%%q=U"= dESCo]}7S)r7 @UȾ*RkLG@x,q@@:dDf)*؄޿ss* 겔unAm$C m"muiqFTCF\_y+ik0EQ>/9:D_xq~)~ۧ5-lyM?aD_s/3.fV߾}BWj 'j5~6w3wnj(2Jpީ  $8L.}5$F>B{3Wgk{:Ɍ鮿_[H0@jAԸYЂsB$=@я/3yRhWV^=k痿> D]J:8RG}r؊*K>VQyez}zS74;:4it:2Dō~:w?- /rƖtA?g`?xj;wh%x~be~պ8&(r DJ#3{ {+unWkGvGl @XHڌ&}IUY3&j{|%BO76'(fF}33Fn?0 R䞧>Cm.K:91Jtu3.F}3Ko,@eg7M|URIXe{6&|k\Zޛy2.MJ$rJ+;4>-G3_xF~"U 2uY :#ti,P {F5DC1Xl+Rw o+@[vuvz0Hc А\[RI[K|Z#̸5<>󗰄x߬w$zJ@T?K*Z:ιt9oH*_tޟ6h8CS Q15g5e @UBں y]U*ʥYI>Jvd|ǯ7FC0~WQR uj|ǭRÞ21W@nj}3+(Ղjn5eO 1 ui&%j*FZ+ij$p 5Ptm l)D?'j k5:իA*2&Oa_]8g7sfMrqi͜li3f5paa"nŸ4GMӳgacK@ڌ1m SWq uwN%[V?f@4:m!(U؄iH<:ٺ5DQhW)K5f:gC[򉙊mxCrN.oӊ5nЀFl.P+=bfOR;jJ>&ެ3G|-vkw v@ܼKͻ~!]gJBH(qo/+i 4=wlj7L RhVBG Pk͜.X N)˹`1 ){+@"ʰS7%00 Õqw\=|E#rm~WVr7;awlwZYqwP&Q_4JݬRW6vB@gb>DOw‹}Zrrܳzcma>DT)bl6NPL4OE9E"tt%` SWJmmavm!dȅZ59!"@j[s7<.Lu:%?  >!iz=ҩ{F/z5#f^".y::$&1@}?i+2ۆN;?Q+U v!KQ#+G4T+ cDM/➡=_]$pQX]JY=Bu>[-u sP'n(S[:k w.$dAJ5B)@GQbullMZ'[/WnkH}Eƛ15#l.-E~}qo9z<Q~'{ OeF$)l|F2DQigsK]fG"xՏ@UV-QV{ۤjk1[t ejЪM K"ǖB00@,$P)@dQh\HzH[.m~M~g.?Qc"{w7{++{饶yHT vޮ^[BfH]4"i?w&߳szRKl"ʄ=[7i=۲z1#mtΘ9w{GO9*1bBmo4+ Sy8WALF@lE&t 냧Iav=Ւܝy 7' H"hQ]yi٢:֯eBc;]s7{\WnzHT vn[]ҝP(hٶ+rtіkT_=fI8T? ҔCiKӪJ)#{up8Q\KXU%Q:8,~Kq&%ӄ*_=tBDk _iuε_J yx}g#!ޝV][y[V%gb[XT(Yg.;zY B- ʌ{]S;<`ɨJ$=Կ(O镪 S}&(j۪J,,빞NWYq*3샺zOٮޛ͸F:}xg>%e4ޠ"Lhۼ'> nf (vm #J`a鯕 xTMu1{ZFO%PCnSogI[C|kҰmyr4!er >/ʽ_=؝DcOԕez{',Ui5Mj*~͔/o0n3E~:KGw*eiB7UyGw"M8;O3nYN*f-O^4óFD@IB >'Y:9{VyAz:`NVvdC{q4:zNY'\ϬPw˵M,l y6ڹOFFc7;+ߣȔ>~ov&u'4__c| z Z_޽o)?t$z4 roI$Ȧyۀw%WN|w?=A2U/i![N)¾^25uG-_nd;@5:2jm@QPj^_[O$7/ٙc+b\|\f{r4mt-<*]"sׯ:6x 8PN6圈-?V.;'5xfBݺxhK%r " w*4MJjVVUh,=LP7ޛKi*ۦ7rJjj–#wsT6+[ n~ hř;JM%V  .\}7C˞2!^24/WgmA[~ҪJ5ĉ>1zo6P|ǪEFO><`y;gͿ\A AmaBD)Os=Y*dd ӹ?һ'_.2&@%Xhqrh(뮼B5uٛvs~FVvlʫ%Z9%ۆ ʳ6ʮG|ӏo=Y?0,Pm YwN_R`ؓNP90O`Vp5Ud ?>6OPTwL"0M33_1BUqr5 IEgsbe\4GzX סS.ķ îVx޵tn䨩b߬]_~6Kj9-#'gH;k O}]usoOLW2DƪIM鵟go[D`ČVW8|:-DgK|#P^}]T?=@xmlpHs3oMoz5#*׭8e͖3T}Q-p9-xh=r]=P؃2jf`iLM] WSj N,ZtقDM5y u9sH$sA1qTys1XdSFEP'ʷm7{Di0ç-vŽ*ħAyLên Hּ2ʖm>Ta#wYy֑c^œxNQ Kd) apƳkLZ'iۇξSYቆQknךf?Ͼ 5Vhfh  $o(2CwG ՎprIDATH[L'T)woFxKFHɨ"faE%[-jdMaVHW=ʊ؟~nUOKdoWtbU'“ RAt 1l=XZh?[:&|6W#C]6 zarr@mv[Z)d1& h[\竐h/nxٍf '[t1x")E{n {AMMxuАoffVUUՌptxtk%Xƴ@Ąl7##CCK3J-=ٳgiYY2͠īBKKҲoխ[7CCuxUA<+ͻpR 6j5oRQQ Ը|CCUxhs!zp>UU񈪸xwm)_j:o,b깑4~ ! 'H z,s`O )S/W )sz҂lu#zu L^<+X䧤_4 -k"俵L+(Vus|{{O^JJNJ:dˬ \9-Gd=_:6J2vڴn:iBvrpES%K+?k wxbY:H[ Ƞ'K*/TtSz授Q9&~>!Ⱥ>F,lG}t{uFPZ26v?AhWݷ~aBݏ,>c¯>ed0nx. |o a]'䤤֌-yU;}a{.'%%;WĝF9t>))9-3Fs^r.NJJOs{"}?EL':…\X /`XW~=rHQcYKFYсM8m~P|dCUy-4QOoZn7zyq(h ָa.;s\I?j=HO[˱{CDD"k3v$eo16rea&\$8i>̯W)1#L,>Wn5G39Fttp!,{:))9)ːO$&|olrRR|Nk۟vt 0!+2&DlS>t2zkYfm*zQb%|QkyQ*D,D_x}W4`heG ߳?ψSeOdbĎ 5ѧ]4>zsf1?dևAOعpߔG ?m qF ]R{5Sζr# ˻MKm9Vğ5XDD8$b[C[ TԊ\ѢԚ+]' ;R͉Gp%w]jˉ%\Id$DW+Z^7,?J8pdd@iZooeyDۊE{k Mka)cR_&"sd=z=Y{GklΞ 8bϴ4kkH'=O]/reĚX(srVC&li٢|yIQ?UYzmpcrQ}÷2?bOǷ5kmX{G__?gLhGQWQUxDMMAULc_5`LTIl(T cX*Ja@*"EnC}W7hљ7}@Iof c8|KN$-tx%K M+ȼ$<Q -Wy]gJ(j|RIFG|C'O~@eQϡ+NwTZV VWl :/q?)Bc+3Ui޶:׽ Ro"3 HQ,]{!w/ygWb7Ws@Ipbx Db?t5gf7՝^o!)*_ީB~R|%}.U^@e+(bB~z>v137G bŭ:kˆa,XPΩwj߹IAw̗q#S7m.hh7oG,s=Y ]cx=HTU&c%XaDe" 4:e<0-&2YXn: Ok+'"##}H|Vm[VzZB١a ]p*Q}틧Xfe侓ʂbۄ%Rk?y3sOvKID_YlD!QyyĞ khCDĄ ,+p9C]‚(y#t|MU*TD= HV(݌*^s &>R&9,SYZP~fa'؛T/d]$fZ?mu9;KPv^lbojoWשּׂ{wg$)ӿ]2Mz^Bk-QtS|mYAOTչ*EeE]Ռu<137uo(1零]8xM5 qÇ-,d)3gg^p]y|Y, Xkseק׸ {7.>U++?6J"2f"}]{ֽ ""]b[IUqq1znG 7vnwWtTMESAEc dqeT<`?'Tܰ*%3.b]Z~Q+"b]'7$Ŭ\42ޞ%yQD wd{2"9;/Y}EDb%r_U*\"][Aoa\/%'l/VHvcF@WtTMNݦ+]XY 'RT<]4̼c_ -4Oq™b) ŤLn?~I©z<#]DD!Ô 1J21e7NjrN) +"d_p½wy 16ʩΫnD$S[uc7Co/݋%b]rh.}#t:N҃.sEKb U e~j6qT?TwG4DG8qwON])a v)g}y99|wJ;Q9,:}䎙Fr{عw6ey>)e&1.|ϷhC@O$d Y=AB@O$d ٪*Nxp ")@}OLȪ<4P044P7iī5WNv!}t'PZZ !4^1 ӣGҲ&mUR/34䛙5#|ѹ.1ĴU/gӒGDuy$ף{Z]VVNZ]^^:5A/\8O@?$d Y=AB@O$d Y=AB@O$d Y=7*++L307&>%@;N %@ 200DO5i}BzBݭ1n +WC(ڧFw*++ǐ50 DUX hީBzs0 ! 'H z, ! 'H@#;2h hg.bc؊w.ge0@y%όJW5Sͯܔݑ/q:MBV4j]菟vG(DޯݰA;qz42@ѻ*b%S&meO[$d%/c?꺊, `//]$"݋_or,]O i,rXc3bъ7D$6*Y~q8 {2SRaO#吅aK8wRh8QMOWQTgnc6Ii{fzN ]4ۖ%ب Qq*"m8q̒й"R&z EF6~! q"J;(*;얊~ȟ$<*|`ɭ!q޵@^K?] Z;Eb\hXյ'8ѻ?:]Hrت1NQkۚteYa/ Q4kZ#6yOF ߝ Xv#58 {O]K}a7o:IYV$"R*5T*"T_O(.[g!DD)Q+H8dHdR_?dZhso7M~7=[Ai?H3ם8QO>)UQ$h>]lxKn\ddLE5qgO!rl)eZqX%Y_LQ}: ؼ}$ Y\NIJڈdi2.S+%sV*ױ7Va6qΌN3a^Nf,F&2!꣯*",[ "F̽l3""].7H?NDS$+ :vgJeضg$!NKn/:2܈1;Y$ \Fd(fH"HwejZ*qkB[})xhZ&S|)^n3[(ݝ̞7ʽOV۪?~(VRol? kVLIO؎lC~S岆ύ/ZA;(YyvU+5NC> ߒv ~/O!ƫ#T UgM,)oRr㶮MQ͔ l{za;^H$߾2tX,t8ltU"NS~h[TP#y^8y@D`DYW[eLmכB2ׅ_uv3 *8ɐN^|Ԓ(هߜ[14@'QyiY+ъ|Q&}lXUi>,:#unOPfU7UE*79hbŰC7Qvrak5yC?Sr&݇uS2{ͩ҇ű_LqA3!! c/lU0+4O+s EħBlnT'!fD| }l0}n=cGY凎}ӊC=4eFT>싓&TH+rE"BBMCN{Ck4׍LIbOe =3Vz=tijyj9YʚREɊR%@(AO64{Ta^hR%](|s!%‘༲ _ 52I*"{Y)WQ8;L`PA!! KV>~fH4@U^P3KF6J"2`&˿P|ʌQ ~-%S: IDATJFyƐ% ~DAs\޿|A]@@{ǻ K>/~m~oO-wN/Ad)[P?4wbM?^uxY3;/Wr] zY~DT{$S*r7 '_N%W CNj cЩ,pcQX}פ'~D'YPvBB@g Rό´T37w/_VP+EwP]:zܒ[^i$' ~$,h. c=(+fr2h@r@C@7yWh.DKck~^}Kb]zCVv+uoV)\ $dt/vwp&"YZC Yu"yG$N4 ! \YZch@2 & !  ٛYY])"\2ȷҲ.mD z耕''4rkQero\+qMs%+qO@"*-y $dZʸD`iRȋ2IiKC{1ss0upJXze2D4 dYVMt2US&:H9oCi+۽o=fގ6/88aeTGH}e%Y:;sHU¾A+udHH"y%f@B-nV*-x DB3Ww35/=0+eH+r?ClU'E"mʬ/~vPrɈ%SUߘiDgbDJT(dLY 35Qi3-+u{ }!7E!5K" +9x;*1[ED)ʾ"DbB&G@= W!LuI S;!.~|vC|0)ȒQVIXLh ciӬnj=W6ro,9e%ݗ;*'Ʌ%'7 Yw@3\l"ɘ/Jg|2zD>j) > pA[RTzhj!ޟ>ߢ so/LM?yښI: ҎEC>Y.*ʼGX{yXw>\ԉ~-j|=]PzǖʍWPzs#L,&``YC?ػuotUZ)"!K"bŬR|}zN}A"u!F,1n;dD$}цILo.JYzTA)%bJk6f06af&߁qpTٮ%n+k&-_X%tnQnz(mTGQqT7:\WQV*;C򇧎 gi7|67uMzY|~:"?ŰqqWnn8jqgWX4q-Kd=_/$o_")6:Fp^~Q'Ѓ?0%|з(oRr㶮TZ w44_ y!˸f"ىf Y "R%<7gVuaV4\+LK5ss c:jzw*qxC]8%&vY.vqgvW[q;]juȁWN̿qcD$KK}RozI7~0hŚ'~u$clܒD3@`&I%oߜ{l^/6i'AKyIW^S]'Nee ,,d,KK}0 YԶ#WrM!˛z eer_`֧@"Jپ9yG$NF蔐1wk7T(Ҿ;XɈ͛>|nK\ڬRȫGN\1хiK+Yp96rؓiPԌva U 9Us@8 d>v(+S#ѼܸtJH@W +dEm(-g3ld#whSu̹²<y[`jZ>yf.oѲo Y"o'nj^ @Dm9a[\34&:F(]9dm?5럫ڬO?d@0,4_El\Rg҂'$z[};47z,ky dŞ .#[d_J]HܴkYQ7eS71)XZA/=-pExԞͰ>ԅ6k&\?dyBĪh!}X"-Gr.u3<8V>DTvZxw? Ӛm j5efe+[NAɃsb"B_hi4+hMk㸑ya}'Lq7nmY+ .a#]踐f=G ȸqS< \uz`k57wR[>WJ ˬ=I_GƐTUW)i, 5c4U^ҕE1okkv?^A eeطjV+ eZ`wG7 Ҙ{[`>hEx֯]׬O? WEy[PpZ.xXZuѮ@MlvƭfA+I΃.Ceiit1I<ܣn#R<JQ(tޭ1Ҿ;(}w]%o,oRFʹf@syҶOgZ3X;[2rkik8d7|TƉ#M:s솏$?ct%nLCh|ZL|Evwpn -ϸIc\X̊=ijgo?d'q722/W݉Ou"ac ۺ;8[Ǩ+2̭O37!ˉ_ +}pkxҙc;|5r+S qDtcg-J"F;R\=MAIZxi^!µ̈́,4!R E=k՗Y cdmhj\ baE\zф E⦵^솏pMҘhi1pݜU p(+Ssʊ=io;|T\ q\K)7LS]'.f:37wuq:E|,ee:EB.=CtV冞 E=Yxfj3rIEO ƌA\3EY jjg 9.rF(ʻz%yfXӤAH_""Er̳|.JoLkfLzJ$!dYn}ۏkN(УwT~c?^DXf|CAD]x˒nEaB4>Crz**OA6BHɲxPYIWeRџZ Yh2}~^ҕNP҂^nZ8VwO7*"J߼WOUɩ|D΅ҎRi}cN"ߺIpY'fq7IN t3ZWc´Q)9Y Roo^r#OOʱBn([>7_0ӯ4>k _ףDG6K%bHn zC))/}쾻["%\W4ggr;Ϟ]2? ~f̜BJQTɔ!zڈ-Kb,=| q<^u J_)/_^s`5 ]'G%%teeطcނ!Kr=R7h7TLbF~gytb9N$ee>LO-LK-LOm^q1 ^vs.}꩘~Ǽ:x: ˥މ;k:> qI^iҘa/p)*ɻ8Y7BAvWڸBVrɋm sN0%KADwݗ;CADϊZ[*_KD(deIuE.ݱLmbӏ/e_|Ӳ9E"g<}0O%`t?\V8Lnl6) GODž.vG@jv%B]A+xśv6~E'kC>)KG*?hk'7 KUJK:tcN.-76Yb:=RR'%+*И1uʠ0Ǘ\.Ust #5#nuwp]Y?' VRoIGyXZi9w]%ou3?2:ي^RQ#3Jb.G%ok1 9#D*"F̪Z*]:>DH~i՝W+ˌWQ_fREI8t\␐hJ`7 LRpFdݟa *.z+w}H^}ih8:+B $pq$=zlr.Bs<-(ʸ: _qt\fO25G 8"|f釾Uu#\?Y'Ciw FO]iIg7?8+c!ys ~qu ]C~1YѾ;KV}9%/+z~N(ݛGd)ۆCaeG+2|pKǒ(a-`sUmTjB,4qO 7a@Sb7_{h!wmoX>6JqՌ\WDF(*z՚d=Fde"O9 1u2B3Bql|&$Ep.'uwزV>l`uη q ج?kN훹S4/WQ6(ȮОi]ظ;|wXkf!d:1=E:LkY˿`DK;WPQIs/slv>CRUYV~%I|}-K*Ճ~ɣ*5 ]Ϣ%xZJI4Px+~h`4GB B| 3$tn8*8*޸L ts!_O1oJ!o8';dmGs.(kNֆjкT*uW"靮੡$LJ7/`;|$:vl1bMҶ'~ HPYt# ;9G>oMR2ţgs(ʼ:¬mƮ6s_$]R<` n\ko}Ә܌\m{#w IDAT'k7~5?9y{KAsMBZ{\oɰ$yN?>8aeTGH}e%Z :2S{'s~V_OtAV7]DԮbMVJ6/̱3.NL.h9$byY2:WZ@K)7{-[9Yx?uXrHDyWee%y PT3i#.LK]դwY.`S K+ v xHp%q9MA;#y%L|L2bT7f+m|c0wrNuC9Y {J_IM9p}<]3V/dRjc X|r>]0$ȑUidd{SҪR1o[HyYeȶm2ϿbbL[{Oֆz bѯ$i~c?hŚ' 2-qkP:`:8QX^P8O@nfHy `Z Y "ӻUD쫑`lHO((;>A%l4t}&\azj+wbw S05tWa´T[; ~MP/ED^j.Qho^#љMyiUȶ} z=Ov`-&+^<*nUG0X;?4wԇ^VrS%oضBqSHzfI1sNg3l@S;`v&=%K+Bi iL4߹~n~ezӸIg>-CBs縟$/LM?ArC)SB]dCfN+e#KKi`&k\vwp.}솏*qy.wBc޶Vb9uޢ֯SQִareˉP͠)|Ρߞ.mqg * ~)RU^*Lܴk^>~9^6Eq i9Tߺ[k-4w1I9Y+?#VI6~ǎ@VG*s8>jIw{Y&qs>Jh:}*۵$\DdfkۻkGQfxJo"eȂ3-m+w|qT"x竸DT#vVDd!˭$nҒ߆=3t^ZRnl^)y,YK3n'KETܭ[7GGUHEGt/(5{LkK1J{bTU߉ʔ:j yg59sp~9N/X3sDTr;Cə5*e2┫b"Gͽw ޶5[ Z^pkDd7Ҷ8֬[vmyߑ246=m2dJdLMM}۷o<t,H#uK$GWךK)"!K"bŬR.WGQq˴@S1eD~'41gm^MvzzGLDz4Xd09+k޶*ڱQiDO[+qHB*zZ?<[Y{"AYYT@'JɼsG܍2v6ibZPȏxʼn}mrWźK"ޡg8?\A &U.T Zڊ[mJժmz,U[]vhC1; $33y[REC/.0_2.u;/%w=`i}yF,Ya4y~!y,]۱,gS}p Pu~Imu0y\",.]P5xуnn[ug)㎲<|f6[./ &89{VD,hsEvU`Bj6Uʂ@ TfĽD]Ho W= %h~ eOLn/ kspiʬDӔl+Q$ngrR>4\ȋx>R`, 91&W}DZ*+6gV,O]J YXtJC/T|[>}^:%)k&u5-:,6Ξ:Ϣ#o\q~ M^Y16n!]cTw`o4h傀[ReScуl `N&~ccsl|pm;5MSh,).9-!'Y WHw? fǯMk7v`[U{g~c.@ |㰮%[E2@M˨^21xigNUZYl\ĒSx;@Gd{|*CwC lNg:*!Y0PíkX0фUbcr,һtz4"j JkaLD}z=cÇMU]8o.֗%A S >v|f s,9\tAS[x V= jk>\hIOia_ٺڎn@cNK˿e]\#,W|V0  cO^[۵ӑ)O$?)WƔ9;xVV n-[jH#M)UT.eMSTՀc0e#7':u fa8\ =jԒM¼%#,+ݮ==iƲ>C߯ZGj/'@H %+nǏ5L;w C, 'ܑw` [Mp=s @ ޸ɼL-RCPa{2]=J~7j&oȸ}g~ՐЉmNFx~c MS]Mvs cCu?|$^l8okbx;Sui5*/S>#6[72hA/ l `{ZkHVuXc]waِ^Xs8Gbh8fm!HÐ {Xg8evlvڟ!KO}u}ѩt' >i u5#g'dt\!m-؜4R;T gNw< oI7c!d`Yx 59DC"ڃw(MXt5 A Q~.@ lpG{~ViiΰN4ɿ.Kv4~ -z~ kiokؗ$ZGɼ\Eݹ@a\p䬫Ⱦ*mÑΊm򘘌ὕ,ZS<6\geN\ Oc,JMvespZ r ^|曲 f_辖jWc{ABP۩^zN5{576mO @V@?eASy)5ţ'u `/_}Jo#) @bbJ[:rh Aؐ,وcI/QL"е5by>|"c\Z;B> r*=)E=6p8dѺ#]}$ aW,=sZwq2ցTbR5AUfH}F,~)ɒ_;_~-cXK0?AXvEGP-6pCI/_~IWc~]X)fn:BxGn aBdXMeJw:vzY{7_m/_ZrCrt%lM0Jsj+_!$dű}??$`V-;ij3dL3+4Y !+{+ǨDT'4ЀU@ 5j*kңKjo^| =ivgk^#ϴ ׃-~gdP[F7I ;R?ZP`G?"?@%PN[jkԧӻ9Ы, ֿkӛ^\$*!*^ĉnfzrqbR *jK3Ow0G& :K"f ard噾@<7fhnmלTJBFɀC<*3M,: 4/F_8䊛im*<4<{UsR-}_Xtxjw,:]?ls3=w!// Rn:=p[-g;OlS)]AP5ݗPsݖ!ߞBpݪ (! 2MuKvsA]7{etbCZ I=Md'جwl_j,ܟ^= %EmNi5 RffQgP7^'ytEB_!^;6mj0^𸑾1Bʎ\҂?ux3Ƚ_mܬ9n/?$So]7ΙmhI\P}HPJ@nыV`e$,nD|AYqj,@ ~.D(F -ުC*@ H?_AmXtuЅ3 }WxRbgSt{"^ Rؕ]8ڌU[w?Gyre}mɑLeq`#p*9oD~8 b/ز9ݲl\c9?LZVN流=%AYWG@UANP}βE;RO dPYwM, ]EP!]l,)?/|=KI>V:1LT*(brYlS:cԝj hz#ߥoS|HP;6vTMeH0m#܏t\,5$>4l~*%eksKokIfNSzUi; 7KÆ1wx>ׁãa 7C7ט 2:#5͡z/,|a7#NFQg:ֱp*ɛ0]8(d,I/,lψla`e>TSA L\ߨqnm~{Ʋҫo9S56`va[;:ꐑe'l3;u{wy".0ᑢ5WdW&DfQPXV9ミDm8;V?ι/\-/hszUtq$@wlQ(1Pu֞.Z@P@ HJ,‘N٥_.RɩJz)VĒw[}o?"RBm9q'GZt0hc_X7]k"h,3'a%])+t6ST,{C(5fO#R)ExC23Y%27X1m3D*sȚfhm/Vko:fF!_Jk{-^"f7k!+ϔE^[O3C{,PU<&ik)XHAl8EE`܅*A/Dsͥz ýenS}EG\\ߐpza밒ZmOPR _weǡG=@?vY`a]t_;/gAUޯ6}٫hߘkIvc¢#!riϣ(ݿWnGsL郯qPg}T_!=?`? mVPrzlV#G,**8vs/zҏ Pށx0B@ ~e.w&=.Jf))־?/xhC\+'*f> 'جq]۱;.KӍ(~u^ʀr\NwAgY*ָp_0cs/smfv l4 {2.6E5xYs%3jjY[Bxӎױb7e11sxtÇM/c0dg3Z;{YdS2x㚣9^|kitBg>pJ ։kg, ri M ,I1 ''W9@"-"@2U@ W3YרϜT90aYl\>< 3S^ޢׅ_8䊛id9֞NمEOZtDݝ5Glc.BݭoXJ{WZ*)(pi דOS fZ[Ϸ\OHk)Q^t4Q58C:u f=98+!0S6 О$?X` $qP>,@zjyo" M(CMƲօTШA1I!aHSyGjkܑJ ĩr\fHx/b3TfSr.9gs %s/e{r3]B:$^EH 900)|z"5 GRcEy<`8[ lT,]EH9[.c[,Fg\+cJCtn ^*%K꿺bQ.%b@.eMW@& +:N?J&Z~t8dQF(o@A@ Ж#0vnzlJ|x)z;Hld9p/V~IcYO}[h/@DCOƓ6^\lT ڏfto\kz!E"fji WƚvߐLVy=ˏ#N]1N}aZGm\On=ޔ%,&&p`Cog{RڮE\wZDT),[W)IBږœ,d?Jf_kx3:+ d4%cҿFʰ ғz(D,Yn_ FNR|V:1PYzZ>!N%Zk[yT:TXW5By/)˽*SFm&kj3߯=I|4]7nlVizI"cYדsHJkpi{ xXeRr-mdu)81ܘ蕒R%6]eWp)G)X<Ұ-@Mv^PywOj3ռL"fd/P{k]]3@5pl'HFG:R*B-lT͌I={F}-r !+{W_9Vs @ FnC//y=l^#bdҿ EsK"1&-N[X4t*1KZ*K~nk_N> bZư^dd\NJ{Z[׌N"d@+ck*%weXM}[NLj,g+)+T9 lOnݡ|0.l#7bs$4 [ 36$x6r砚0]5}qH1XO3:"@J]2YZkmU'^ɍ\7@" Q&mUyEu&T,H|Q!!$(HxUUy3%A&ȢcVە((ؑ2y@ڴnrU.!D9Hj5Bt͠j2ɼlTK~c_ ~mf}MP jv0 R#8bX6pKbې,JMko/G64kTjمmZv{/' (XaPɸ|Cw3`$:1YXvP𬥿F/AcJo5bM_Hk[glMӵdg|EFwVcPleX$n3C9r)ѐx@B⢞޼7i L4˥e#1 p+LʊbmHovΉ)6H{*Z!lQl~Ϗ]ӱֆF'$x*:*.d:D|g'HZ?;Y*Ax-]8fl|=|?!gB1JhqXG-Jtc6Q9YynѐqwfeY+k2H@wJKEB>cG|Zƌކ.Rv^tdB3'gN»PX+ȦQ2n|@ m߸d&X$dl\߶/f2Hk ؠדi焳ՏGٶ$ξB|V,kk8ap^jO$I ٠E`ڬO:5֭6|{!C wxm=dQ>$O[tB.esŎ!J+̷J,OZV'y@ IڴuQ8VG%>ծ(`3VK rwH`º]۔yg\?՞#"A Y)(vF Do> j Oy@ deOLxey`lYPӕY<4~9nדTaɂR,qz&]Mema>= U \Hs|ÿrޝt^BŗMI1v21IQC`J1YD>h-l`+2vf6+ Fh̷J,W[lTamo{ &HK9N;C},w3l4L [89jtVk,A w@])\n {vZ(^wS=[-t0jŮw_A#".QuaϖB<`gȑ# ڇ'O`YlToI|}*j,#A/oKC/71;A#d2? p(s+~9'0}P]RNl]YVw {LQ{܉ ~i>DW՚yO X >J&xs|B6,HG +~*T6|$JyOT`q GFp:kj-5V%ƅi8u~{gg5aC,^ƆzoQ}[&v맨bQb3>aW|gNef8J֯H TTTH_8{}jl3VDglv AB P˜Wd-(A"" HmE r*Sw-Cu~'Oܳ`wV⟲ģ_C$dR)^\vj?Uw;RF,NV.Mx߳@WuM?lְX#(Q<'lQɾZu dWaS'9r p(D}I;sr8|t~O=Gxl}W]^aP)#xS~xsۛۛN8ܨ H߂D>?р{:UrqAY4r9NFu2.g娫8a"!ZʱuYuBa#l݊0) )durlM,h W6EB C[-l1V!c1MyN̊qH}FNVUW}FƺHg)LJVx JX{)ZHm t^H?ao:6lp;a1DdH?H93)׾((1+IM T`4-=kTڮ^joBs$C*f Aqc)kC9Z=!'RFJ4Þ+Z,^s#+Dġ®n\=Qۢ ~ d޵;p-mcM|:c;w̰r H f1T5E/6|{?KOfd~5օ@:ERra,&X>%N. N(h% t^!l7Xܶ*6%ʺ%ёsN! r' 'ķ0FDK[DW"1d 1ӕ"'RW:B@kk+2P).D[Oa Ig56QB#Cl'qӦh}Ծ<V?J= u@ }EWfoS$(a2]Nw#Dw) MX}PΊȪ8$4_0 $zK.|]) 0c2S-xA /f2J~,qE\6P,o]dmo:4? OW' `l8 <|}9?@]iҁGLloavZK"H#ۆ5^)Yy<ǟ?V%/\.PU"mIŃ=C dgW.~Xc-]?pZOQşy*MgLM nL}E4ƌJ}sY; %mnbnO;Tz9T(kkwKmUZ4C/[ѥR߇Wߐ$b긌3:g>Pƿ7ׁ+ȊUΏf1 @ Z}Kmr=HL^AyCFZkېl> j/>#%^N&3z7Ao'[SX+ Gʘl҈ C02.HNg `Rӓx21!V)Y$'m-a㐺#tjb2|B2nVk<5;-4.#tDF |P>cV,ok" )hl8k#RQ7I \OniAeAmJa4ϓI UI(Xȱt"C<@M'|pkPa1϶Mv^1sV,ckXK^Q1R4WTƇ@~,izt,~y3Hm]ǧ|CVl\E34Md1^p~jO*Ȋ'~5!]I-#B @ ZЅMUN\E\# SlӕMĠ|A%:_`ޛ a?ϲ "@=}L(3vx d*dRB#gc26X!uşxZƫ%]= `@F Z(7+y f\=Lmi=Io.Z+ KЅd;U͊MyEj~JuuNA *>BDWWg R9K, T'\%'y@tv}J]$M:r"0v6Eb-m{$ܲsYkU|4\ѻ5ִ#a&B $pƶMT9NSlE)w+`nzg]' &OU#1)wEd LAV(څ.:T E a'sTXH,iWq,t"#0E<%^8UF IDAT 6SF?|mKmq)? w׷tP^vx?026S lL`f6гlRUocbvk10ւ!* |5uJ[ts VʜcRr93e&߻"=ܡkyF]n5ϟj #οRӿZnYCU'rnox4ò()QΥSF\,Yh,|w.oJKezH+uV=mYv)kic0z.I$^g>|c1*:8xJXc#WmNMk|+R;rh97gbʹV/Ӿ-9]o‡ R/K"f&(<QV?rN@ SXzM'|>PcMW*߭Ǜ:{c0e#̉{ԹJsʼn @<qc聏{B[&sY`-$w=e ٿƉ!9<);YD"w R6ViꨜFtGBOf.MW`Esa ?J̊u\,0w">}qt[m|S@R @K!̳uveB^uMFEI*ŖʩUUA5֓>+q3!QsB쁴HoPNrc0v@EI(9똔UӴ]E,'$pq{ؼtmfuupV,7^u߁KӕL Ѹf~JU7j!L`)dF"+TmX9JUl$XB&\C@Ǭػq,(hSmO:r֨BK[Z 49GSo;8x.r$BpK7Y 2py>Cabq$ Icᜥşm:0)kxR2_p\EK2ʹp@wPDsl_7U[|[&q1k]N,n_p'][w /ZkJT8:zc '|/ &vW,K侔vbJ"ꎃgcg(J4yɩEeNK>4k:NQJ-OO:GYʪ+v%_]1ޚE;w?%}گ_PV]YJ~HPT BM=5oà>dDz@ ȀA!eHkQ'W5Db-by#dHR wNM5#h]ϊML:v$ǥR2I8cqI=frNlZX(y+1ֻ?[HkX:teJ$ޅVa:3Y dAf /%@/[FZW75T(-k }IF dT꣮t0h<#%z;5߄ID|nNSc6RciSLqlOhB}qǵ*ؑ2o&D`l&+@ .#Ǩf&!G&`|c\[C^Y{D*=pYbCLDzJ0smu` v'=6$>p\ zΝ>K\3k xO@t8LJg-B*M'P%bfkSg&/@# pMAM:Bh~}"W!2gBCH_R+0! +?)Izǽ"aUeJrrP_ufV G& r i=/8h d[CY>rb5B ?(?YQ*[omҪ TD+e<*./hd 3Z$|14/HK{®Я\5q$sZ豹=)ˆM @ b& XV;buo:!3 SOMಀn95{䈆IG8*} Z*jgP:j``eU)пgr3TtF~xoڜz~iiJ D!,`sur!;z9C] TY1\_8e!uG/hLh88L*X_;+c6X~yk' 7,xԢܭktL梫Cz j+3~VڠlpV&٦+i,MסK71~ڤP^Ig6&0O3e灄,۷:T4c ,x{* ֜qiFXc>莈.Jb歈isgU})AP@ H_]X f1Yzz2#HN T7Yu/%Dž9b, ^tMtYg)ϸv=J|[>.J5_݉)+CuD[JIEZk{aYøl{nZ:f\BZ9W8J dӿ9tu gBkԑdߥJ|dTt`ˋ`hBZ eqR>"1?T #]WyCooњ:JkueqSi d2|`K驴J 7@ ?udK˟Νhiw<{_/ۖcӯAA@ CDF :`ˆcZѷ7YܑJ#1$A;4 k\K0o׉+O]1IŪ0ca{ys~^|kMS>-.XT?huc164hġѫe1O{^3 ~*d,&U p3Zş5ITV.XQɎdg<=uʿVSWkKnB,i!Y5%t!jJ鸯Օ6H@6ϟ1oJ0?ݎJ޲ 1;ardHDS]yO}Si^M5N!5G093:HN .TtTf1 ,n}=ƅTRr'w=+qk> =K?ǽ-3-ikL!&c>#a9]9G*q =v|o!]CꯜbsF5'Nqx(:H$~>UЦ/o z-)dқpɲ457:aH}7ND:X/LG kJa@z ʳH٫?S7;R_N{9}`$@ HOә>Qɭ6Eb*cB, \*B\bhFJƷ!|FJ"M'.v7Zc}3ҦOBǶt%R:#1MG:eӆ6Kƽk^3?IX :)Rg>|s.*B}>\>4!kx IMQ G>}tX0޸h/?b߀_>vsy!@-P@ @V)+gy߼aTMmdتzTHNų59ctEv#`X;늴xx =vCzm {o ׾-  Ø*"ߗB)0ie9;sy(HE j>|4tt5K ʯ {|dc{ۂl^qRl䱅2zIuc:[ޥ`7&qB8i}%^]uN̔&e7aa~-^(^?̷ϴldžѸ@Pfl|=|?!80ZRq>Td_'[+ '.O\.+VX~,ԟ/jnfr֨>{x֋N f67u3!c|h܌JU5Od}&+KGSSPb3]?PH8iMI}r9Núz˄-f@ &k8B 'LLZG"R 0@ kvgj}SP!RgBKd^uƢ잜{o ?LGґy&[!2E^',d~Vt{j5-0vԜPYuTL Jp'>N.*@ x]ȑ}נa8)t[Ry\8Bm4:ɻv]i=-?{wu'wda[2mYbN62@:M )t5 tMݷ4+>mxd{ 妔'p|7"?ZPn-m4O.(̒Ltgs)3\ZS8;z})-,q.?;e"/(w, Ei~?vFZ5ٸtcq)p"r+-#%"?'d\0vY GM>o@kt{V,v\f~/E@sSX%&94 :ٖ+JG{ċ]r+1šGftu\{5"RtOye"Y]joٚ<˖z)pTľ)d׺>;ze@@[ν_;=P7"s^r$bW~(6wwNv7r&Mu51mstf[7|Y3Ybcub_nܲ 鹳;z" ~Y{dW(OI!al,c;j[DsW[,b;%ny޿To#sd׆#GM6MCjKNMO椙R][<>/*ZIҥs3 ;'>[1Nkk5م9ġnu{9wK\l~tAܒ!m^CӕDz?6g̊MH<6٢G˿_!;~1.(=2`"z+/26Z3YzraFa.}j]Qº0`ŒؕoHQi9}rM4?q(ҬTk_t^#1“&kql :;2z@H<;29((wT>^ڡíuڻ_ﱰ Go]['~ZS\O.E9#cy6`J! YΌ=vpVG{wǵ@[wl??՚zvG:1Y$2J?;zq 3$Կ^'6L[PbW.\}pCyFaFպ"Z|YzK浈ĂViAo]yՑZ7`1>k˵T>^%ux#5]*(wܵllu33k'{V!*/hLl3\jd] Smc_ԥBM ݗj>4rٹ֕>0W/XHHS;fبԥyess{ܪK!"@Ş|GU[#+tymMiayu 5Z\o^ظg/m.]6ؕo-rtxjdZsKږ^o, wS4!"ɪ5%M5_1ᮇ 5`[~S3j؞:ZLyvY͐%~j)`L_8o <:+c:-r[;.m[5~_gVaeBkVeبl\텒:+LnaG܍w?\X/rmiGcoFIkrbԭ~|,DU6_̑(,WMN:ڱ"'|#=$[n,LdӀ-%(Io]yojG^ Hw%sl;Hc&ƞ|%#9245=y;R2R/{fب3r7(a'4NNNꪻucc|чrkJ/ΏVYlV%&$S[?Mǐ׋sG/vwje=c|cAcvmݑ&ŚS>oNoεzÌwײ¹ek_",ݘT{5+#̛tcy$fKxTDi`=-,JSm*,q=7~. 'ZS%c>u|yxعh՝ܴϐLqZW(yFacw7 IDAT$29Bw=4/jUy;=lќ>K%gXYg6k]/[HMO6%i=bǬۥ4wD[:wc+?Ж[5l>fܾ2GayɅg01qd?PSE9k#ؑMY8gz*הZotInikJ# Dr-sZ֬ T qC@0 dZâx fy W>P|Bruk>tJ񒼲\oS|ݷduඊ ̽+3jHnʕȖH'wm}Ԍo]y ֝hqhL6a.^6AQBhi=y 9aQ-6M`ӺB}Xx͂ZUP됇A+-Js ubǛG.,ϩ|Tx|FK+ɜgv¢J]?~]{lq[li=Sxnzᝳх_S:1RGBb4{⃀,`H[¢\:w5kl/7$j:)Iz'ӷõ{WfZ|"]uF-adc`(EBkniVV5ݑV =!5\ʳ9~As&kTQL5-R5i2#J@7o 8h;ڇuSLO4}\%_-RzlsǵNwRWΫ[۵P%iL B@0 Xs!:T;lYoK7upl$[&ɷp윾vNazYV,՚2Sr-Y}M,fəUYV:~-*׮שC -֯.;`S }8Y`WHDL6͈[jk˳-g*VRLW2rt}U8ZwZSg9mYԌԾ(uz־-XUPJ䍉IsQc֔rddϏ)"Wڿm[u.P&?pոoW=_S:57nzytucx:NeAy0H ɱ ++͵W'9twjŮ쒜. e95' TkJ#345ǜj]"W~!F&+(Ifq6ߣjыDLwdS]zGW{oީ:et1l%tڹ|1:J_}]~0ɾlt,ÿ=+"Ѻ{{-W8`Š!k5(H"aQBbtiol:;ڻ[ۣNp -+2-t82sK}{uVt-7-$sJ]os$X{5=;Ϳ+Ŏk]їrK q$4]!WBjM43N=\._8; Kr?-ޕeB[($]uF[߿oS'; mDlIfY&Sm)Lnع}yeY@{_?ZWW[/Tk֥ݦoRwd_ ^-s.df|QsW&уJJ54jZ[}a-&PDjb2=׏cSk~u{#=/0He<'/|R-:ŸKpE[wǾԣ+!14܍م!j1$3ܒlQ !i ϯN@c#m""&Hn%ϔg:,y;, K6ޫ+}ҡ.mno/re;җ>/k`" Ҭ(-ScmH;+_~GiijSG5XPcMkSmnNlA#˙qHMk-.TkJyb]O~]kfnl;ݿ478#0CbCC.Yly\j1$C7L5:;OVq8rH˵~}kJ s>ZHғ<mlT.햤M'ȾjZVi~ɜ%j-udLKdSZ<[\rcj~c>Jd8ҲJ99DfKAc^#+"W_nLW&]ڒsdE I6˒g*X2lUqQ^D$Z$zp榚ւr]YKu׮S)Y=ؚ.|t)V+w.[pc=h'q86X_hK][updf=oIT TZy rd4+cgZ/U=fcK}TGl~7oPy9!1DG W 30}D5宇c ʕ@l/fU>^b-߫PY5x#E]zRdJ!oE΢e|`^#+ ;SDN<͠pNt{`FY-o6lgU2G;t%2J̑L4Gglr-.tXlwX"jvIi1,L;dWbW~+Tnl_&sG鷎GG{gdLP42ks|6_>D MY´쒜!ƨHV"ir꽫K3t){)pG |sdnlv9 rBbf|Mo:BHBM6paHd<6 )z_H҉BX=ԭEG|{PgE,gFHW:%?RNFeȕb<-ɬM̀e9Ӑj4X-RX1zrMi1:eSՄ:,}Me*]9LJ S&Ȣe\}Z*s۾t̪jo</-?8ШQ`aJ1f;Χ*ؙ1ŝR)j1 F#_jӵ?\\S]hݞ<(ȴ#t`"}"W4NlRW&)*=oq|KmqXY[U_ػBhISRL k4a"fsKYY4I:?[9:/|, ]:\H{c䔌n=ku"W~4$Q\ƣit Kufxjtw.{Nׯ>#Rn((w8, g}y}#KX[(g*.m|'*)\,Z_wa (^Iqh"qX˿Ϛ.cAVH.N,$a/vRPWg!$+t/k[+WΎ/eP$i~eesg_m@{Zdϧ\b[n|y@|^h] ҖkY&Zg?pFG{穃糜G:\,Q^ uhCNX× ~dF9si5zDrPBDd}ASY9 ֜aw W{dP`"K=r-k:K-{8-c2 m=\ܞ%ysɝwQP|96,{ײLgƵշ^30} rsJڒ3 m:^Yg`v]Q hˤ0SEnޗ,%ΌVOK}g׭'9R=MG)vwz_ZASm)ݒmǑ?^+vg9;S)\9Y~5s@"! *1{ng/yq ϸ7rQQQP~YdO;$QSyqk(p ]:WIsfd;}Y.|uQY *7tIN4ߒ/BGiCәj/f¦Yѱ\֤rY5>Sq2NƧRԔuwZ]VgpNQҙ&^v{7~λ?lt˳mW]un\#G劻_$1psOzvI~~-15cV.7f6UwZ{xw]]}xg. i-,ҵ.]MQ$=WLd҃$]W$aQ¢+"Š躢HX?tE] ]t1("ҋAQ$())Mt]EW FEឰdGS (?D1HOHWŐԗ^=J*!E^1!Iš.b0J8$AW"ӵnKXZzx,DD~b6h"&)T5j">raFE.,_^e8^ I,io{ե6GZ5xEmZS~x^ACPtG] ־G>!W$H8'dn/zXP]QD܍;k#>"W5q bqGRR40=oN[M >i8U:wӗD1$bPD12+$ TE1:GfK<1Yl.ZMW%-GE,)bLo,%9]*9S.%ͮ7fI1%|㊢J\R%"Z4=ISO-"u=*IF놞dT˯D7ŦZu|3z `Mf v*ϚM+irY!=e2% [vsU="nybs~OrJ!$pD_q5>]Yi ݎmڭ*Ȋnps-=O1 +D@""=P7"s^Iܻ>;<$9~'$))i)u=EQDQ "BٵH̆7=R˱7{2H@9eA񾋀,a  ah@S'd N@8! qB@℀, Y'd N@8! qB@℀, Y'd NF:Wo߱֩=H a,Fc_mO[‰- 01d1 5eoޘ(q[緮pWW6C}p3>ClIx&gĖ i }`'@m'DmӴ6|6 SNsd| hH|-7,MfUDS_߹4wxɸ:-%'^bJϰ~r`=wqe<^'bǁj12;߸Zvu IDAT'>Ό{;_HMrrW5/o~VJ\%6`ai%qd\D$ZnCf$ZnC1'Bm)- gB n7Fb2/Zh>ط?2lRrr@ո]~c ,P$&<{Ӻ'x^EZW:E13 %N'Fm@܆-!36SirԊ-/>`|gy繷ĴsrǛmmoO jo3Ǐ+ ["*vyhIs|Ӹ7ΌWݽp>,ڃ;7&Ρn{`]Euk֫oC}gyXKԸb/.ws#e|pfy~|O˙6zg_:K܉rP%Fmp36|4vS2EQ%=JKR@Sߍ톤 hT%5;zI,YJOp\U)LYqC@vZ)iNV%Y04'(׾n!F@0Bvڸ^PB@vlEx%3+[DEQ i0@!I!QSᝄJIJ5  PHKJ2 b C>b2PSDJa("ថTꇪ$\U4b0uc RSDJ&8! qB@℀, Y'd N@81"z8ܣ:SŐdKk+EUF*Hj`HLpOww(M[ ׈a, %'Ҩ`H5+'9 WLko?f57mE1$ ip! qB@℀, YwlhITMq@\kU(J Kl3"*6n+"ԡ:-mIcw}ڗ坟^ODD]/X>{2Ml^͖C4?پ. v?I_~޵kgˑFmFڮmhZw36lr/׸˽]G[(Z00sŏRKcy5 V}A'6> ӳ`O^is5s妍'~7浿q/ݱ-[x_ˊ7ۚV;w&, -L O {M$kx":G@uxvЫ{~|48kMD$ XTF`2TS{UW?- ^_tZ힗k >7"j.0e Mkj)y(:cm՛G?ϖED^Om hhA&b3&7l@ `ހ̦-߶t[_|\py4ps4vٺi^X!V}bjZ`>z@OTkC.*mgQ ], UIkw&FQDDQp(-J-.zםo=:jo,w~# ݸnH)h`7\#CG~kǶ?^7\q ߡ! LB@)P{~E#'S/8af,Ɣ F@8! qB@℀, Y'd N{ZfHW[~pzNU޷}imW4~mG T=;,;Ӂa۴Z%_ش4$*͟^<+zwH>k&]N=خNmk}{_ݼjj?pO*lg+^;@ n46`][~|`6m{۞:֨<+l;֢5|GDDm:ϯo.xy"$,?ɚ7h3g]b2d1kc_>XM׸j?q&" G~x{ l$३ Mr9?Ɂ6X,A (""A_Дozl_Hk]L""(I&)lu 2rv aU$.l1RU0`{gOʳK.?%IIҠ%%IIp!뭩jD}v)b6h"&)Fڲ抍=uWMvuV7z`*BH)OL3FiZBd@XdWOz>Ckת}qWiUZ-a~J0AIR$F5Z6+\bu)^_ۛbMDsU=U^uo{%k`@L*ER}T9UThC DUQtMD"VŘD/b+A"jh"(Wb#!,g٢Ŧn/QWD5)(fըiZt1bC'F pPDSH;Ő"MpUD͝4*HR5mzy0p%,\53á=Rbj,.[R/Qmb |U4mf+=rU1fFtŨCXt/Qe,{jRLzp\2^": "zf}Q$=./yYMx/Ѽ yPQ=Ց#o4B`y4k̶1#rҎ! 8 տX=x/%z:9ƆKzzc d()= #@W1atHX(".2pD7FA& !?|pʾ({EE ( .]4F}$,0wPd/y}q%fp (~4 ~ۡjGe"%)aQ.Z/QK_9FXJK1)7]~cw=gvm/#"T2^bN"i r]tį{ὓ9Q؋Zcuz˂._4w4$<{4j)h2T$}-Z>!EiQLSk)~lSjDVSjA%9,o~>8 >@8! qB@℀, Y'd N@8! qB@℀, Y'd N@8! qB@℀, Yi`Ʋ9`# %6GCԒp<\}Z*s۾϶xˋE5Z|o3#;?f`ï@cUվd Dc^_Q6ӫ'c[nA zv=֢Q-Ȫ%LHӾ|ZmwvW7/ڟ, ۙ7vPR(`^=m_a㠈.{lWT׷ԱFͼwm_e۱?&"ls~yMT~}sǻ&=e`VǽǪ"ZLYa&1YLA=yiARDQ&VtECDcE,6s;R9~FMDt6[?)6 xi`d!۵B",I4[y"+v؜/2kϰ~r`=wߌyޛ)ƓG5fM4Y2,S/o0<#T@V-ٸ5%Dݽ먘]?ޞ}wsd;U-**JBϿ#"<Hu=(,8n!+;+\d'ON#uuuSۘlSM۽?ٳEccwjK^3 {/UM7WraFE.DEv?4|:4J{"_uj {#E IDAT_L@ ݵOc "BE3H-s w WY`2W}髷uiC}#6֥޻%3I {ke#t~$2g $S{g㇦K$C72Kn~nlW>ss޻d}B!μ}];9>}jkuO ydΝAـkR7uǤ5:"-mU4|A ׾EYlmoYCݖvL7mآٸj+D$^x`W~oQ)Ni"LKzX_8tSeW:}ԧn=Lm,O9~k{]sAعE'88j##F_\W!p vH:4AY{nS߲;○#Vo!}l,N\n<2`s[KR"Oo{)[9[Mό*J8Y*H«s=0`#nIHCeώl??IIL###ZOtKN | ҽR}~×'3`F3f%8hܵ!(Ysf/K]ZDvy%Y=3dZ{"y],;߿{{ax$zP3Wu}U홃<[/l`z޽{cYB!Y/}w-0>w4^|K'n?|Wi[>1 N>pW/%k=fȞ3$Y[%仾vo/X |q-Eh:3d3tV%L~¦?DVmA!BUljY@$? "qǥ;d~fA?\E-˚?L%8!Blj1 bdAǼedF삣'YY w}\Kj@Ah6%S!B!85Ś,(s=.wR/U},Ԍ*g!F`A!By-BͱJE^ ~n(MN9`w1sv(d%Y= !By3 e-oPJ2SpkEJѢPXo{YY9H[HuG)Ë=׷ Na<S>H͌|-YB!惭F5zkC{"{c6rbdF̬-Si>!Lv~_맳g8ZR[3NgWoOMTw}6yFG.B!?0!@)|omgȖcXUhMșLd#Ekd,=& tlKr˕x>tH1X $)8KNe?oO9><5Qefd"s̐E!Bh~xdPsxZ{JMXE!Bh^xdPsnHx $u0iQ\R%Llc0%DVDT#]-JDWV,NJd|0ښ( OW" <49ajY[zE&/]ǫN>Y^"D:dJ,Uef_D=y덧sL.LG"B!* Px[US 1x }$Wr'tVp"+n|sOY)ݙŔJn{KΐcQSyZD dzR3BsUCSS T> "Sô9OO굜JEQMNwR~G dB!Z4BͲE6;^턂Yv* .f s 5dEvU9S]UtLnc+2[d+s%JC^%L%tzXELʗF x^/%D*gn삣V2d5[<=_bdC-%YB!+ ,K׫usCe]Kz1„)FA\OjWq҉&UV,Z:@cnY5LSje*<;dI1ҖD$5B]̙NZgx YYY(q0e+%Ld]`jդ^g&_3oLrvg` B!B~f]K7|s\+6Tߒ^L{o"7V[KalRoUѩ!*!y%Bխaja"z3KK=x41iߚwE շs~m -B,X9Jܙ0iFZ!LdWLJs,_i㪑dyUAV8v"B!سﮯ\N(d灗ǁ^sLw=Z&۾uM{?#1󥆫EzBXbtхFZjM~i0=>f6( v2+ڃ+3Qyryfhz^ud.cR/_wFס]EG(qѧ@C+D(ikutoo]K'lCzRAjXiR/͛!ۺ9V4"<˼Hk.0bJU,땝L#kQǾ?#DyN&oV7ԕyU=|{9 7՟{WR"6^r#B+k~ΛnwqWGnK;n۷$^zv~&= ث㰣iIP7jDYR'2 D{D!{v6k*q+-cRCJ# UH%A"X9CPO_,wYR!;>iM&™7%t5Y~ȊT\8ewwlS(!¬*8ZD@>سz,^/`UdɎ}l.>򕛯o}{͜)"[o^뮽7vqxTe;|ݵ_;޷oU!B-X4Xѽ^|9;80| wO : w' v>^ 5pITҙD#qE"R㽁[Rb# 4~*Z|HEu\5\ Y[vtL Kՙ YysRtj+?3L%OgZ.YJ_):B)Ys9|~wUߢF{)Yc1Zc6:ǁX)+R?CV&b8s:dY)v@Vev=V܉( NGյjNwVWdV#ȋc- 'Vc~*x`yT__߹3==p[CJ$i˦V}ݚ=Rx~kEDYP 3 .j;6;:;%ʂ :CaWѕkkOmo\'ӵ)bP5_GOLUHDI۶F HkKGX{ODSωX8ٮ7hX:k; \JtS濾bU߸NKF[©d**$| mlu ?ʐF;Bh%;  wYBF_ʛ7 ʦУԆEI8յbՓ=kK@#0/ ZDI" 2Vvt]>q5 \w {sOTƦo/?7,MO0N٫7/?đ}jkuO y>8b3#dz.k1OO i-Ks)nc3CF^y״w7VK###+%ǎo K*B h^6G߫'vΕ y#q6r(;Ėt;Hg6ljDSb[_@Yę7^֮K#o,5[q3tru|\ESi ^aptv; 8Fisbt ]st3sEq4D.16V/)٦300ts1.e[ikkOEfraustnȡ+t{Ǣ'N  qm;^Fj%{o/RM}o0Hyw|ӃsB!BVxX~= pXջ{1/Of"gS:{(5M%7D#?nߺHA6*Lfή,{:4zJzܗd,6i*c05(!:%婞k?>SdȊʵf%MUJlpan֍ɓh1.ݢE,-{.N ZeEv,Ǎh{mA6S͜-J8'FhҞkv4ٙlQ@Q|7sLlƊjAC;+:Q $ eQeeidx7|-7ScG9ISGjg-^yU-ݣ#BWT s۷.Ow5/|һ2u1 N>pW/ ~QE6ڻ͞.ر 0‘Pn(SQ k5BO'*=PKwl楪2¤i7rΦvwve*/0M٪}}>t}8$.aϩ]HY2'0iDRf¬K TzB!* rkTh4!)Ȏf{ DC a=<>?nbk޵L,w,Df2"4D$[:(YU+.mU@WՎW"d![Ѻ)6y"[97VwK몵>tV -XyVW70Vaˆsֶ 6CmKbr(3@5☵]pZYFlfF@D,zO:d"S´|!Ba-BM{v*az;x'fbP&Д0fv3gdCq5)-e5jX"\YYS!;-$E 5ӯ/f-yvR/il-@oVRL[dّ GֽJ,FTf]mdR:LtXZt#f!;+ʦms|x&g۶@ /ȆbjudAQ 0iUJ-㚕,N%:+G!B!T"[Tknh'Z5ʍowl催smWl<+dEV`,I|m A|w Tщ[U!@ Y'UE(:ʑSfEo&/aR/L'@+\i D J}衤r5 rӑ|hH'X{a Um*dm[Pԫv V*Wjv]JN%j2d)Ljdfdm:2lE!BhXyA9,-Y J|G:SҲrvo&F6Ҧ&ǻw[BũJg:dOOqkq~ʹ|ߟ>,&D!fr5Py'5gΒPDWf3oJDxMAYY%dL(ײ1vg*ʎcRd-w&:cl3ihSSp;`?iMdS̬Viљ%qqPtf+5F (!+ĒbjbhT B!‚,Ba@&ğ~|G5-E%|C6Ώ#oOli 373Ƌ;똜Vejaj3sCE zsm$y| Yf.d^QkUk0ur[L%A"UqSVYE[ʤ^UHKH:C4X|e* |UN3;BiY02Ub j:d[7']_OD%sۭϚԫ ͜WQs~D%.ov͝Y@C!Ba氜NŔp2{AݿNʷn㊕w|/`l m+Vޝ[}1LA)\|:eLq(YoٕdMtW=훢LViZ3z1mEZB>څ̓Aڶ%>qK:dYw3gbѶ`TǜY]U=B;QȂ$4ImI&̓L^ml չbڊ40גdK<^+Wk˞)FCˉ,ΐ E¤+]vJ~H MFzdo #Z,HhVChڷ&ǏM+;Z]nQ# *6z4]YYdmkaYB!Yr@R\zB52 5ND*pLoVbF+_YI tȂ BPzY$^W'R벚dfRYGҹGLȂed] z\X!S!{t+:aI\čoUJkmpUS=YY!}E(-vQR[c5*L$47F(R˗<W~L*-sgj疯 2zq_EjYdmETB8## Uu# IYscYrA1jڅY.seG0=f6(ILWї+&*2_"3[Bi -aG%d=IT H c*J%Y$lM zB͌+Ka4EMd̜ݾ59 Wdwؿ-!jfՑtΖ.Qiy~uByF)"/\0!ڦIɡ\Lqס1Co΍źjjQ1]p@Z(NY5DvJD8)Lz(=%R} Y}7ͬ- mMt] =ʺ6,P#s5 dj _tOL^] Sǘ14!+BCzj$TfYg1e<Qdf-Ⱥ2pB-Y<͍⤡ ֡_qEgjj<{BqMU]}ϗdR`fmmvVF ;p=lDW$s=[<yggw3ŚDYDN2kCsGѩ "|1oT~%`)riq5p>1L$!8YFA.zk{owur")+3R;6յw'N8=wQe* A!eE~:O+|{ba'~5NhΈ @Ϯ˼L˦U\:E61M-!v>4\>;(:O|1;WOfݑ~ ;%EI: 3=2)S9mo9O dG N9G_=*BMYô֟KOMfVw%L¬ef.U,f6( XdAE:R fe^A0enm=?y=߱S[Uߝi]Fd=Jj4#@ Htb" rv(V/V,7V㽸6W32رo]ۑzBs,-Gλ {>4>1ĆȱlƚmҎZ=?ydEZj4\.>B)m\)s;myLŹ3"֥H'4%$KX4N<PfY ;ɓ9yC<<ڮEyc?yܟ89c[2|=HjkÍ<ܳ;2vtaDkG뇾̑'ֳв1mMe#c=>Yym7sh-޺)wb(ۺ)!I( $4_ {Ӈ'?G^>NRZZ7@ƎNG ?wFW&.y7+!Y(TIx%=\G,<8^__O0n5dj*y:di=cr:djm.Q[ KKZL2gF&CD5>'2n<'3Nxn;^qJlM/7gOɭ ?¸Ɋ'!+BXJULlj[Kbj&ܘI!xAz$ߺ)6y"W%'roxpdO$}#oO\qum lIj'VߨE!3+abϮ{SDiXy#?BQ*dj1 d .JdZS[ӖSAnzRDC$՗>8&ύĊisBhE%Oy&{];ZC udnl x`K3"6K |IWEI{heM15B52DdwT(|5_~yږܸC-TZ+'r2¥j&ln[+ o89'+ x4튞K>{#?{WC?:Vs{Y r[Ͼֳ[pRbP67V̎!hxQ^Pzѓo68.3욿~؅Wo=f O‚,Baڠ) ;dz8h0=|_]*.\E"`l@#XKO:RJӸ mn#;͜sу?ju=?zF*2^ sp78$"x T<+r=^Yw} ظB. k+a NLĢٮ[&,ziMtL e+Xz> HD^Jz-dd,3m:eWF<Ƀ]D%YS`dը:7`Y\ +NGw䒌c2D (M Lf㾙_~Dh{(0}T~ؖ]qus̑c.ȿ11Ciq# SD%f"-ZmCH$7V콟ʭiQeEzR73VL㞢SE2ҧrOĆh3\bKn@ׯ_es >g b1c^("DIE$ 8~< 7]ґ-M^ IDAT)Փ]p*#'ԶQdQFJmcL$NMdQEfU0v4]4哷}ѣSSۣ^5LKvGC1%7nT]dd~L{҉LbCDP=K&%";a圧U_KQU _=??YN:wvmo ŕT_K~ˆ8PDwí!#me?hKvl%̑3M. ]wXXE9,Q 괗6!oZP)M*z7 {/hߒx/~vn v (TG LWUJEZ9 3xgI^GxTlR,%bT|חL]66'ܑ50d!519=o~U1Ξ)O6:0Mdhiό[7ƚ.7N=~]. ?(y\=|nG їiinޝآEHCwƉ&*N|\_.mo0۳kGD%5L}\߼m;l#Q '”5u*o̜c;02ߙeI6ޛbÂ'ذp蝽";Srީg{ 5B !=d^gvf~l$M {?%SywyFUUTmi:K3^vt48~r!7|up2C 'pZFJ LP>wVj{!Z!-y^+2:L hQR~\[uG)pL+i$yq v&8یNt cR%ƶT+m;<6uyY8,N'4q0bjҘ/PPH8`z҄l]-A 9:q7oX>gHE 58EXnB|.NgxXRBIo`)A%` cq( gjdjlc>@CUW@(CVswpwΟS$ay AጻcIU=ZXF M.^RaFӠ345et)KdM'3)%<])})b$v6/cu;~ao&X$6Y$+C&*NNˊ/i03Q'*M5&Ȫ {7ai:^nir6&'rK׃PJ"z@1s2CPjEFU,wN+FU[8wYɱmA@ 쭮[}rc\aip3˷226]sts̀?1MGMMGMQnsf+h)Y_ 8 M|@8MXA34& /x rmw#ԻmqD0tB/Wep|6g:g1E0ze5++zHw"SXaN;,mYr xF"QҀI<'p,Y!(BDa8<'3#lsog4,`7Ϲq&*v7 jtTץƠH:R$v48Gf XN℈xZJ>e6 6˴bBs36%Aa~9%ft\ PcM5!w9{v7@mjA|X]Zx'ӈ;줘Х[*;%&XUE$U]Smu:Adi9z;?GHk0 VSưc\'(Äs *8IU~ifhm;nC_W_TaoqdԜ4. !:|np.48uQnG'XmHUbFgpDaGG㳵4/ >tTmҥD"|]E\o*;bD8<1gM)ϙf<^ )I0 D"mp{gyI$JZm\ozeû~t휒'nc\M*Ȓq\| oy25\AX楽V͔\ /ﱢ Dx]=T}S,O@"9dA@!,'lSm`ϚdS KZ:6Y |Gg|Afci.3%EhX :a[S_MSm](1Ojs<]Q0F ,[hwgL4~){zrVm/)!$ :8udn-%Ӯ= ^?E8yG;C͚,A8JzN Uݶ*"tu[^C2AMFrYQ z~n p HD " De[9}bbPH)?Ey|vLLtA6kJR$*^Gc axԔ fX|kmB&@Pa- ߺ4uXy$A%C"a$X(;Uz0L5ŶT:bjRϷtXiQU&V=h#W.ildM'x9%%㳴m',P^ KII].;cRN$S/KK)}WgMM>KI(  eHd<rY2;l_n՘=JOlͫ]jRSxy]dWǽUXY׭YM&;Ʋkו@f\Uו"E@ 2SsYi/ I8MRDbf.Es2N[#DAh*mӘ/XEJee8ZJیLmb^lja<%9gBTM3))!% n/0pIÝyftr*fƠT}qkja\ÑƣmHQU\DRXjtjj\{l^F 8=8x>q& l6ӑ=~'q~U33]%iANX+vI Lm{¼S쭮*sdL$[G%Y5wl͢eMCt/5@(9f?(^.Ȋ9.DdHz8G!W\nѩ˻'rI;6sr"V6XAVq}2PpLht@ +rcm eUb֓$3X\ (>]c:|=}bT-:"\'@;;qYȒ{q{+f. lob]_v@oz/h݆nu8qux~|T0X>pҙm=1M!TLjtU2-_WL)c CH\Qg vcI $)-^. `" a<'1}I~G'ʷB' | >N'^:2gfXA:KZ&]okt)y u̡c53./VW*ysK>IɏwT˻Z}cg V8Ӑ $f ^&l8V`lfɊa,z,IIRXHuIZULVP9-ׯMJw۬ oz`kcsR"/J;vRMgeH*qlh> mv#A-q+}^dQJESB[fs nmj6x<MUK[bF+ ;0/iv so_sXw4YUc3%V \*w](w ^\7B͹c}TgIy] >@ 0y٨#y!>;f*}'LΖ~M姥ח1]_T wE܅E lΪ`cs<ѵe-59&}jtƫ55-5 &s3~-{d((>]Wq˯ Q{GpkrXNƍ9j,>V]2AkxpDK=sRywLYAi9)@W@DH.6;4]64%iYY#C VqrZ;mYS_0I-i^/$d{@K~7"s,OP"Fz`5 4M{PfXCÂ+%aXU6Whďj#b,!l6I!2cfP1 py鳮+fQ21пDikqݬ>sИzW|֦2Ӽ?Oxͬu[>C :Eu<2B(QL"~ɮMdrbs>mJFl.o77tVrp_gGDM9L}Ntj((# ",c bs n'IZpyfښ1q$@ۏ]gk(Yl͞"6c|2E @0 lӞc4d 62g2x e7P>HQ+>GRq&TݬL#EdA8#pJcsǶ6^t`ñ >>` zRmP،S[+-_zKdsgVJR  idlsy#Rӆ͢;L2?%JJMŤ~~a>nouhԼ`xht%W hLCK)9[Sԥ͵Cw2>eXN"IÂ-8+βɡ?t~L-!%"h&kɣㆰysҏn9AT[jA1l\-srRlm|6 usuiW 1(uyS،RsXMx?Tv{tu⬼٩uA?qdl fGHMдF5?=QE",rG>% J4=|(w|v~Q^{^1Qλ'd @jN 82lWٚwZ}I ;e6T @ ҶOaտfWjp"[WKlŗE?J/kЍ*⏇(n 9:cd+Q^g_E|wux!eG}ߧe?aDe_y::T IDATڤ.*wVZz9`L`PʸV{צZv|΍J6J}#4A.yd&1\2eϜI RB̿uݽYĆl*kϘX>oAc_ :cB?rM1P<0B? ؜ZxnM`}V hˌCnh{R~O(i|G]RuA,.8،. LVsaoӮ??3~.M;(֧5p.JMW0ƦN i3:C$jWwY8GxH7 d-Ayrض.ϣR/8|CM]/ujlw+b Vwű<-#<`irYGκ%Ͽ\↤~~h@3mvDiuc|O?'>lQNi>ѧ}gռ+ @ 0W_cѸu}vlͽ z:dc:_%1He8fHxw)jܴq儕kWwG#iiǤt m',P2Ӭ GUE1GL:=4sv]V\fp${Ǜ0{#?u]OZRD.ydmx)U؜݌KҢXWs&2`IبEP=ͺC-3-^I%tUF8ZJK^X% J"ruxۋ"aOИҿ{ -#MGMyín7UAJ/Q [']6R,'}#IQst&u(j۾'fgO^u~~a֣ٷTrt-fm\%N|Ͷ~Ka?}V1qXG[YQ$yWKSecļдV;X^???iKwy M|ow^lzǛ!@ FD _0?)*2vxao3}Y>ai^__Dȥsvo酽mr!%4  0Z5=38NP İ@#5~" %dr3,vm ze Mȍ5@QSr~Pߞ7;5(@ڜUǜ7Of6?l"=OwngI'd Ϯ@KeGB:DM9m?uw˄,rb'к.MXimDI'7ZRA㲴eCl&2nSdQ饪8;1RL@ @,1lx!lBN $/bdfU'l}ܛLJU.WcitL[1fͯy**hcQ%c0faf},;꺔.ɞѿ~P E_U]2')Io3PcUٽE[l-C-G7Tjp!Kh3OiB}19,alZN7(ͫѩKV-®)JGhmmIM_{5TqVb̸ s.{bެ?/a3:e_k˙=-%o'ńJ/ht]Ky:6^'O/\#-愜raf&R aqY1 1ʎF;d(\}b_SķMNM")_tp+mE]/m!s2M> 0@1 ;3 {l+L_9zL7?s_hGgޕي!G׽PKq(ʯ[5^ﻺG7fL4,99ѐSrf&Ϻ~0$fuSd[*̪x9)C."e+|{o~qQ$ư%dѮ 2UVmɜ.JiyԆbc_> l sKTc;.k7UbAϝə] 1aiDIqӖʁlkqIXNv/bۇ^OТӒ@PXYf3&EpNLq 7B+"𾚽tZk0F60ețg7 \vLsZo,(,@ @& @ ^@w,H+WހE,9ߢ^"OcY4 lj>>bjOc7lCEsy!7K"J;3lK-U!20pk¿sh~.ML}nR-j bAbl Tf K-ky> "l" xVx7"0& ]*Ҙa /Uw+JU#byMeѦHմ\+i;ѣ@=h=hl:jtj ʼi2x׻G*w5dO7*bG7ڎ[v{RaiV[_=xΪ #Tn0bR;1)]O~LƠXrX\]S-hOPw V[M;Q%(|Ao{r@ @ HE (\T&GZxX9 #>lO;I8xrMbl-`.6Qa!;4fC.%S1XcSX+p|GV5If荘L6>p}lCqK긄пD`My!bK7B`uyiiǍ\4JcU uci[II5VS- ~X LIN HJA|KeGBnxOȉi 5+zsi+>coujΫFl?sNGD|+0@*4>}谵<e kƦӐ74%곝D#J!;- 6x;H\G@ G. O<.@i*39 B)aGds3GM^ `q R[d 64Xh;a`P.Ahr"3v^Br)ULK5XHcT!!hǦi"*юVnJsY{R~T1O7vlFd]YR;~ZRH)Qk)*b|߹#>;j<s-6M JegPc<,caAj13n$'4W%cUiN3S2&vZGLO&wk$*# NK,AnX, ,K># @ 3dahƜU}q G,+(JڙyΪ8m Suڢ RLPwa!2Nx"NZ>]}a$4 'ZP5mlz7'bG]|8<ۗʇ=s Yc{)>\xսWbCi5 W(ūdF6I\Wܒ4IVyЁfƠ979\M=Fծ]&YF,եKU^7+CuZ.M g< ݣԇ곴6+P{ţ"|CݥdS-{zJݡa`܈Q3?06M5ڱ!W6)pp,7kzLz{m-E_q@ ̀Yb"(lKmDimn|i_ķX l΍.zh沧j|#?T! `!,L9-X0V YؙkvF?us)"c^?h d&dE8ᗷO_>)A2'%4rԼ [h&QʸNGd#mk"!'6b^A47^[KKRU}%x>nNS/Vt%:%fG-6M*זRp톼^+zEOÑ6KCT%6EDh qYڥkX nTS蛊a= 85 EpXrz{- ~n;21v2@ 8A,1lx|CC#^' j 97Z0e=X|2/j8ܪMTZOReM0s3Dp`{5gfon >js yu7?HI'(q,;}O}|$m\@F:vbYZ%",]cfz>9=`F{Tc~c6$ĤO4u?\—4:PzthmR1څfVٳ8M%-a?JKg9@ D_ A6| $}ûU}@+] 2K~ӴKVhDm.o7rrUqƬ6M5옆:@$4 ' tJzS~ŃpjɚT6Kg7 mޢjVqz%SǛ]H8C7._ ]:K2munbD2qTnqYgLo =dy.\3d.A#])X=3ۇ\}K*qnɗW:hs"Zqma㖊vC^DEϾ~O^kS%Jm.?ӳ/::sX}³Զ׋&.i5v \Pj௘YBUJ~J'u l^>W Kؿ ^@&ϮR5W*CI 0.̢B?Œx]@ HE m,yl[Q]pDOT^3*Vf 1/ަ:g&;;o*䐍2C6Hq?}XnN?07 ^ێ[ "0/;[1ܡw㟞Oi.{^g;P)ԷqgaKoy#DF3sK-SHm?~} WΝ*>ΌZﹲG/{zȂ[5f3 MN{34vI bg}/5^͆\%g-^mFo~o-:Y ל+}}i7>}Lu}Pө.GMXblj{T0.T٫ϕ N>E]5*e);ӻʑ7x@ @ }Yb8ites~VX4y`*e~?K_C}ZvϸcǮ~ܓ$ `qѫnoomtzoS֔l]KU w3<ٰNNR~Ǒ7~\uƢǶԆفoA~? Bs7^KKܒ/՗D䥊LV8&TLV՝-狤wtxXUOX9X5x25g }UqfJc+-~wIgmJMZ`} zAW5&煷+>ME0*8Zۣgls퟼ѧ^2C~l.()#eW",Y`uY-NXzx|Ocdm\g?k[Ƽ~N4s/}o[ ;}.jJ\SGQZ.EdXXKd}&P*>V'D›]@8R|<0vD7U߰x<߸O}z۠vR V.N˧|8 YN3qZaZ sSض<#*6#&Enfݟ= zd\gw.."&at(ώL#j ̽)ߤ-FJ5rBy;1c]&>+$؛J>* D0e$yRWtʙlI4?~5 @ 31x^I*oft,Ɇ^^?EPBY"(Ktd4S럶o9v?glp,;:T4rif " iqZ-X2捔tȖ7jۈ˼C{~{+,adjk_o? r* ]x6WOh#Kga>~8VH'/npl</g/x W 7!| g h)0Lxn5Mb?mdM3QM#Ës%X<sQ\-c(۵~R_ov{/92w}S7+gExu"90**y]{>cG-Eyi91vT$ ;}W޾_lbi־{IrǠ@ $"É'H" KjPɰqbJ$U`OTܽLNjd }qO2y0vMP\T؀9\9;gaW?FS?ȏgsKҸ`<9ZP IDAT8X\wP\מ'pڎY]"+?9^biy=z[鐊d=NuC1W6b_)7=citʤ%پ?s]5Out8%)`vAd_sq{œ;_q/-_x!&*ʧkW<>p n?Zj/wwtGr/̆^Kl9ĔnDD\P~i0qw/ dZNM?./g/%nU^CwoާZKe 18ܰX]cKZܻ-",@ 1n1x" .A`A?\5OJf\ඥvy ;} bfn! ͖t_3tC־{=e[ETmXvȯUN`E|_/zF<4FEq<\gOWrl߿cxJVql*)pyE.oUxR8UOB>&=WgR 1Α|%vgzz>)ME=qw]k*$)>.@tpٴAㄮy OϧJjǮS{sQ?rLʥ#ܽLv q_ZV^;kL 9k*Q'zsUMP-?}S׭TOۊ' 'үܡJ?>qGloەO%BHR~Wt.oU%Eu!mUn!p2HظOq[nT*?WV'mIJ*$zUˣ + :8NHc1?c@b軮P<+#n;2\_SLΣd*p" +Y{`7 ?y+TxX;X^9A5= 1YѺ| ~EX e߈\>'YDPZ9:`afXzhꂇNA]ף)^Xz 9+}^ j%''sW*[p%+K6~!EҚq/: (ߍNIN;C#z||6YEQlV't}挥4OUʽlq0\ח].Yb EKN0|p!d猣{1e|@t~L - >zbݻNA,Nם3FS H *%4LԷe gbl&}龒&я^X3S0w,:A3>1^{ {IQi`͛sQ\@חOQ'/VRƓ~l (?OYutZ>6{=H0>c4eue'բkJ$4o<I avh2}k]2s(?S2ϐ,@I*VđZv>MdM+ivMEM%^˅Dw8Vn(rBui?)*?_$;p5%9U2 &~PMq<ꅒƣ*Wuo$4L̳= 1țHv7Ll7pɚpAOHF570LЩp MaǛ~c)l.W7qV)$gS )+MhY}n/Ǯ^rRA* KfJ#'EpްX+ HӈW|_C6]Ao8_:>yh_O H Wx..)ˎň$E` ZǍ ;\}c,h |O%! 9dn q͹ҽǘu95ꋦӣk,{|,X#T?j~qr{sWh_刿]g-gWɠ^ G`yfŏ5+;K؞Q9E[]w:kp]@6aC@ uda&eR'N)NO%x}NbĎbĎ?:YǙA&47 `) /$֭lk]Z}w^X[(ɐ$ I$$ ? 6hb_G=p3&T v?nn7K)3N("3>l/"ZKCϛKasPtH۝m<~F\Xt'Jy.3vs֭Ѯxvr^̷?_ԕɜ싆RL~hp_ fulof<*hdyb⤮v8}q曷><}~>h a?8Gv}M~iXü֍Ujmyj0lb S8agglDL#}Y0ƣ]9[aMwvdg9v7w%gmRWw%aF"rY[ oa2;ŧ_|#%L<B+s暯@)YlKk/='CcC73ݎlOq,:$|\^񹦫|Hq{{;Z0C|h˗_ωV~ŇCZvіϻLUע! IDHI% 6hb_G=)*ԉu923x]zt{b7]K۬ݧf1 ?o84WӷmXncM >ۧϟ'.Ƴ 2GnxG[(rr /ww:kFy;=ԡ˯]/Ac;]lz /{ɫ F=vc2Sω|}Ov^ |}m{>iѺo~b~,.溞g'Y/ӵ<1).擧V-nv@[w5u3i& }jvM.ݔs4>k=Qg׵]XǝVokʻYb_|Pu˒N{8v|`mC7+ro"-~XBu-(ɐ$ I$$ [pmѐžH{&8hLwuΏt׵1MWI>< oҰ_x̉s[BDhGN%?r^54YuXǏ' -n;}VE)>jybKԟ%/y}T[J*Z`!]~U*8͖uo_M*=Ȫ[ᖳ6?ٔ2Ilv7tl[Tsf iҡDK3'vQ@C%$0$ I$y{q )K Ȯ9ۧF/w6`[/OZjNZ|ӊ] 6}b)N>wt'/<;٪dV_2[kE<k խa_­%;ynC)T|7˫Zcy擸Lxro.Yo+/9m5+--D3kl,n,ҁ}=I=/8ԗrBNӋrB#WKWWUg\Wol[,u'zdܦ/ƃ]8ⅿוki^oUz]Ugu]/AdkbFn9{&H /GDİrn<n%s G/}*?7khxT~rw1ɿ45VP~ƲΗgg񴃓cݯ%\N7dUxBb!2iV1I$޼,MkBpҼ``g894r>wȿwV٬";ߏvJvX5'o⁃-5O^_h:JݛC!n뼁a=<-'oߴׯ<+kcCtr0H놝$9^ uk7">"*թgu}=?rM#E$RwQ`Nɟv9'v5EV]?kbt=BÙS5fooOD.COڟ٬ß!n/tDO"e]ΙeG|A/1 ǜ]ж86D_j46kbjnǠKm"ryfnŰW>2l}ENUy9C'e zcG}]o9q#x?ԗ8's-f}Uq"WH]~GB{m>iІ̶y ?"jW8T)g>h#DDtϖuԳLU^…en{y:D74(ٶՑQKv,ty:p;/LԳryS∋Y>EMDM\NDMN ̈]xg +?( O.x4=t _h,${æ=Mm.~,wL.W%rϖf*?r*7|§I{F6T;9.9}çJ;Nb/?bF~Ѭd477O޿P#`4&ekk+  sz9x!Edo?"[U2|<06xv{Vn>dG90v,cϰ";;kkkksSKSf9%0H07_֍6/ ;sp٫t_O䮂7d~%C'M)Ӫo{r:*?箧=C6֜vppȠǻ^$*bFryˊyE5bTT>.)O/pç-OWKpY,B[b~ՌO+SM/$$$& I$$DW,\oJC$mx&g;{,DDJj͡(.3a:;'RMzo~IYx1I:}A~[I&tds ?9֖!kb=ʳ֜ =c;lkm=yFd[#׌;UpbwQNr7_"2>d:T]Y1xC47Y2go7E&FܟZOc sprjk5׋DG++W$壡|٨@'w٩} Nq;$)Ɉ{3wd8W"g+D[fy{; IDATgq\"{{{FxL;=8ԹzV尮ՑQg=FU}锡nAXj;k'Lc a~Ȩkl6bU ׭--Gs1ND9qqq h RsB95‰]}ꙦSG^h"Vxx 1o>6:F𲧟znڒƓ'3D:+$I6\tsgLCkOñcmTWxU~ܭGyCD%N=?m#)'N$N6nlGM0uuk={ D"7_gMu79G逶.9J)u]j ;w(X,[fϳ|pEmͰpR7:EDVAPN  TMcM٣C\}9IDd:rXr0"U|&㩒Ń=Xh݁ߜ=d{5S%E-ʊ34^(q:rfUv'ZwM]ݻGgLufR ,H6[_jsLΊ]EL3}#'g%FL&'\Wqb8i:tPKL;:Z_y9c̙_G.g@Q!>NN ՞u-M##NTI&3W{b'wv#8cc؄6|{~{.Nh/!a#$7y7n3߿[ϝ!|`cL#Y܋|n uU5dU5lqa,J̋+*M]Bjڇ ʕRf1k  DDb|<32PkoX% I$0I"I$lo4dԌI"Yʴ?Bވp/[/`_Ǿ~E:pli5KϜSƺo4<^kFy?΁㈨X[c>YgZ[=Otmlji`ۧJwRl*{'Qݾ)qQ*elD U}mnUOzs]I}D<_}%/}'Z8#گY>Xh=/U5wd%%~Q+\gX= g˳2/Y|cGeѿ2.WÒR1F"d., $jJHFdʜ"+3V k.vZwy^ȳ2-J=] Pxe- Z$RE,jW@C操0^s~f7'sD$EHQrcIӧ=7}ƋQ3RmIxg}Ұ`CĩeRȤMK(Ŏ}3"-^⟸8+#KyVf=<XCBMEk"kǁͳƳcvZr-ZH,XԮ@"wD"Q+l7z;N (\md@/AC! KА%h4dz  Y^,@/AC! KА%hҐe6W|dɟ=(uۿ޾͟%Le$c&?+\j\#a}9ec/c}X""f_D^/[/ۗ-\2~ lG=fY//\ 73d/_jZɯ|I|> Ώ_|4i>] U?VHxR"b2-3ujfTģsD&{](h0-}!+0/7}'z"/ڼs~ ۷ٗ_}>ͳbh4f,Li&Ʉ~zug℁,h7o^xOz;TDoqƎib,k46q2-ByED͛P[;bGrz͙!Ұo]ӯ_wl5{gV_v룉m#v,i$ޘvfϾycڅ;~H_5h 3d(\`,@/ACѣG=_ኆ,@/AC! KG:oX@,\ѐ>A"  WHDD"kl.vvX4Vb9kgtڂ~e}ssjEhmm9w E- W% 6]F"l62?zj+k֐Hd B'ʢ++ud,4dz  Y^,@/AC! KА%hnjml zH$wj++uӐvvzz\Dݗ(\(\\vɂGGggϩP-Qo aYK["Uln•^ Y^,@/AC! KА%h@'#'#\v[>8F#'5ݑ5g8] ס! £3 u +WJɬ^X|[d|!C$%-/ axP[G"T}Ar""N 'r#qb"qpD%2_daR¥ZzjWp@Ct\g"fxX~.ͅQޑhm9;6/#猥)k J)0OlBLFNQ.qcɃĆ홻`GRZLmKZɂ"d\obYai&jDup=L5RcY,.-O/2X'Pu𴩓$9+b E2i׿3#OBKJEڷה~S,N-Wr;-Xw IDATl.HJ)Ə+hDɠ7F.15n_@f̌\""RF$'~ᱦ #a:U"2x"ޤ5 DFm[Cz oE,H>SȰ1%#_OTj"K,ōgoc苄CiόF7XQz^ Z'4rEFn,+,VF=QaMHC/ul!|`ENOlS? RR& pА>X\d  ܘV0)9$D#QaV&H,LD$y ~EX kH3=~$"cȶ9 ]zŜRB$^5+Jv TnjjJIq{WE[]롖vq_20i[(F"b"suCڲ"́`}i-)UWKot T+Mj`^E"bTSɰ6N:%L%S"ޤ0;:! }P-5O cE̩r֜5\WJBd2YH@ܪ`˖wY[n!"b*N5RlBHJ K$qr M|2X Wo[ ɯrH0d$ 9Ԣ|GƼ,IL+ ӊzݮiԔLӓf "Dbe[iƪ\:daI 'L:K@0o("b:I:, )ARi"F,%#̔CmoЕBp,.gb  FV *(fFO<J$)Un/5qChpzZ%sSG-ZQrmC"F xeVF3񕘱Y뾚4n,3*rb%Děx"yPppۑҩs'j4fms~ 9K6\/̺0vḴJj"X2m-%y3k{c٢y4rT#ePlbLxFaPn f: EFw,D\ 1UoNzٳߚ=Gp'a, ]~%w|1|v$Xd͕yKrjM$9#,k\0kb#W$2o_DD篔̋]BhMB $rΜ!ej  W>l7#7.}G;'r02W^375ԗ`OꒂQӋ_]ݼFP}|wZ / EuRRy~;9d,["Av;بya,o(^ Tr~XsiHd{Q&֔N().E=F!#H$xↀ`Գ7|{obt vݝ>`mP@/\`^,@/Чa= 6! KА%h4dz  Y^,@/ACXCE'}:[ʹ_ OZa}ֆiHUZ%7@^vM a Rv|̊ٛ6fo\iBŌOg"yhƎ6foژae\Apz!+?Mbm/O"G_`W0˓rpETQc9=1ťEsBdD$fxvӞxn~q@t,\jȚf'm)5/kAr}^Hk,*%dYHR֧IVefo۲vCznֆS3>_61Tlk7ސBU #Q)jTT4¹XOX0grh˒|#)"W|v Y  f!ˊżoY1u*+[>ݒNFe-9M  f^"cQMz2 ЉIg'pD:H-X5}aNqŭ4(YlXTIN@pz뎄/aw"KxCQj!JFGd4Ddn `?7]>|}}P\]}22D_6U$W/bWDVQQw#f07L2ҡe72D!b'3ge,S5U/E g uܹ/rA". S4JF[.5m<& O<ݬW^kPHEP +6t|uӅiWej ɂ&) "VVpD"(\Q NHn*^Өx6{*<. T^h -c爈U5iKS7&ZCdҦ% D/ /I ZN[2KifR^-JP>?DY9s6 M,Njp<;YϞ,!a_]4hy" ɨ<ຉ=dD""DY[\\@ܵ1/#CĈ"Fxkhg*6 L0y"Lµ^p T(_:/a,@/AC! KА%h4dz  Y^,@/AC! KА+zpCCp9@14d `e9 }C(nW7!˨cݑcKF!Fv b\ܬU_pcFQ\'/7GsrΔRgyh\t-"G~,3TR ?GЗݼXYL ?3 >BDzm%D#RſBVDʨ$"IpܪRb)LZgDN22k\ ?'aF‘t9:ws8g]<8DpDv$G ݼ,ʃdHĦ-) blቈ7c:PYyp\tK[bX֒3?*$<-.D;[G$K+$ )V}.[/8E]b OR9푡k<mAfDXjIe|}}+ y YC^J,?/5~K6h>+ O5_MDTݮQ2:"sA "v{mT٘9\م;os{dGO^;4pЭbWD"츶!vE}M{e8X\n"j[JΚͬcx6Ϡ S0WeeL{ gnm3pe ^AN=5 i YIТϓK R`k  tņ9?JN%Noגּ@dA+Q+8"Fm'7g\[ib0X8d˚mew}]meE!B YfV'QAJ4gxH#B2TVJ^(&/Op`DzIx74^V(`Z0gd ߑ .'@BP@@'@@C\<{Z#|Ap .5+2p\)YGHTuVֿ5 xZE08 3"_YDЧ58\py˳#{thY]pzoj 3< <Ex`s2tB93<;uٓg|!%{R Y~)-p'5,7BWќXOi9v540b1&שG2=p#4ީc7(ѧ֩L~FNr <5.8 z)?#eyvFEkkM=evɫlLa${U$]op:5]G\epEEr?ߙ'bH J,W<7ky}ȠEj@GCesQ<_<TLGK(`H,i1X_,9;o}eUG0P 20Yuj}tTwD!BaBQ\Y:m"_%W6;sN57>,a_jj3D@`Akno0\۷}0YϚӛw kj7. ˏdO?{m Kɏ"'X-GQG|td fSxH.L=h{f3&yx03RbѬ'dI M 89j7F,ywYz1rEY*]MwO5.JC ʷRgؑ쩔3-F3bw< IX% 1- XPF^VsĘkZ*ʹ1t1AFӥSF9sNBcVd ,,a8d^g?Zzy@@HBΏ4IA1$:5Z}_ɑbyoH'>[mYܶ'X}c_OvOoj@{}WxŤf͔>3֍+3{Ig7G5Ǜ&V],{2s*0FxZД۲J?v?4Y#]4ut'd-6R6K-UnQki|X 6O-AkR'%N16*#V.\bT/%Kg]sJ[i{rȄ& ,UMR6gU˞@YOqݙֱ ,9Hl~ qoƌ{}se״jO6ܬ~%TFJL閱 5Ӿ]ڦ6ߤUs7n*qIU !B! Y:~oͷv0ɻN?藁W{s:ޓlMilX vH6"-!(Ɲ$R%(gܓWxGS(%'&utXLY~\05wQw1cPߒE"=:Y`>wvi-܇'{4g#R5{BS̒E?{.z|aPec[ Y 2f'MYEjD.}fw} ߔ6 *~a?*,$ O OF" VgUto&&Vu?^tJ, mSwG3oC WsTsBZ٠XerAt=Y0U2erH4kTȼEn3'&t>fSF)2+i_<_|IM&wHB7=5mA 7`3zvWޥ:Uks|CPp{v巍ذ@V60 caі}lq|tf{^WZB>|xN;fZ{p@H[2=lp{RfO"҃ƆT-0Qb4wS-"^uw:,ggN+ob\p{sD)aAkCmfsLJǯ1(ZXMAN*7湋R n˞zGA9ٌZu'M3{nzΜpV{ ulKkFRRj]{CWlN8LXVUq9]3ձw/)$iH'LY=8k.tA&Dč nvߺ-wQDzo6U|]f索2ݢ A2HO^!B!M$"!\NXî\5gۣ?8!_b'h8 OWm.NuC"EQW%ejLGc1{<+VnMc.};Ma|r+07_k֤DvΨ%KJ3$k+㗦RF(&F$0Ԟ ZB͈;tL8R^k4HD!r9ӭN[dFQgɿ5t \`)Q>[ɓ϶NXnnZEks? # 7*Kki,ܞSemLNo.txh[ ꣍}nq:iSc}>}fFo7Y(cޱX *1}mYMm6NB”ct uhr` K} Zo4ŝŦԜ (Nih6ۭ6#j1+9 ˚\{9ird֞l'ݒQe]9'8;ef\'Nʏ Vwͬ;㯫,3'$qu7M=K7LE;'27 n{Fw7+}"|jV"2(eOWYMLvp ˿x֜/|.XV=,OX^]N`ch6$o2M]]I5'מ<5z溼-]=]@qӥ69IN:nr&DO4͸w\w]ZӦo2M:֠SJ"@Vkwӏ}W96^mY-Im,w}UҦ՝nNpE4髒7@cvnhlt I7fJB2ٺnuw"BRٱ`Ϫ@ ~*;rD{w4GkMY2dtJlf6aBd745&6[*;olpXȱ!IU4#K.k.ogT8UB@RUj64)(kN}?11EmS~悲t'ͷ}^s_BW?S"| 5-_2Hĺ_;,U.DgypR qAG}Wh/soVuhη >µyeGw ̹Ir$ڭFŢ9,\XEo3wNHi3zN.GƜDͅ_֊hr>GEV#wAw-J !/<PmjU;Km3Wu1,%S g[Ge9\G'DO &}?}BN}MwpNQ5gqO{sSSg޵7J4'o_LۖfN6:C } V-j+/;Am e YvNU.#t 1;jݙǨI%o_p9]cޢ3~[x󃮮0uMvyL:V>&8wAO/9yQg%E*AyP،2$E49:zB`فsnM)N-9Qwڬ »h Um#X ?y$.7zpNR.|䨐CKK?.Xjiڌ8cv7V❥MYuhoz{H Vhw:KdZ_BSweФʍ_2l܆3g/})R?zo :4ƹMtQ[;8on;! [`yu9"҂R bJ?v痭ؼ%c,zk l2MulW`QbB)s'nrψH88KM`ŞK[9_Դg銟8);eY ޻o3gEtꧮS֟n?!)8Ra58|GCWƅ$3v+͝YtHGR$-/MlLvD02y%͓n1&zY^]'ųB[mԦ9@}sN~x6#KI ]F19a"O}\jP%49R2U紖NEoB3&'=\K7zr7 S;. .$NHʏ:=LȂ5V] x>oq2ތS^x͚(W%hrOWbxsz[T8KdZ549F[ ,Uʯ:lh/=m;`k><{ܥ]6->VRIsk]3- [XE[ ˿6KޢTRj6;59fSy[!-󓸜1cCN\Za|$UZ:{3sޢUb`kUǠ?HM,-3Uɓ?@GLt9{R~T[ިx>Aqaf_Nih1M%#0*!tjyKR~.]lO '+wT '=R_OBWI6`B?;! &0L'&dE u9ytE/ROq!_*\a^{[>dD,Y)gmikxT4[nyҧ_BOGEE466ሿcJSS1#u$ w'h)zEj:Pu  ;ݧ"IYO8} #.i2Hp73t =R0O &a01?'9|4msߚ; =JjGjs}^".co|T~]h3P+ y>zi?뺟Q):M.x5nYCRu9a2}[K(0I-}v; Hɳ\;= 9 OƺV}0tu'Mn7q. 8;PRs?W>^EYHsE8ߞg ,\/5Y]o 2@Rgp,+M%ѧ6XʀˌK|l<1-TvffOL}iIqtX\ ;h2ŷCgf[f`u"YysY/l`mkw N󌄁xmggߗ2A;&{ՓҡJщ N&tzֿw=wk,q1A4%/gH$:yHם{cuV2Z&A&њl_ۮJjKz:{\:[-Q5ܩJɆd2S3;7sD.gPW%~y*|pKW8dkB_ɹV.Jr?e}uDPˤDev~5C.5v}iWFm[Y$}PޫQ:3F 2)-ERq , ͑#vCss|E\+e$.r3swىt~};~ϰyd,lsГ٧FS &KwKz sN8)e4DIGvdh;էLͧ2% Hϛ(y+Sse%GJ Jd%Lp b|y_r1osGO)4[VˉiظķZ Ue1QzdwOe'ҳ~3iMJ ?z;7ȏp:0a =py>o*sP&EJw*})KBd1-?:CJi!vN!B!4t٠)+r?9 د>򞲠gY&vℲ= {QY|}U̸cթ2,G UJR%Dz,E;pw(;]AS3fbs ?c~de>=U;;R 錏.u"k,o_K% &K"~}Bp] 0ZcTX*) `Eov,aXqEhڄ9jﵾp)Gf?ھ3GW(rXZ!%4mNq"ךLuL\EYN_b\&*T|eMWK"󵜳I\ W:(3"Ib--Uw?LES,,3͟( !7ϭ߶Զ q)La@$R1aw2xjDBi/).8ӳPIbjt:C-֙H׶Em\xcO[VK$+[ټR!" 2Wu~_"+Έf2}x}7t&1Bnasd_fNQA~pAŨDa]'(1j wΗW?OWLlNO*s[{96$*;|mڴxW,L6+OC4UZ"<sx7N IDAT+#Jƾa/ϰxId:7I_6b"7QҠUN'xtU"D^BȕLeBHv>-qlINp<_[8u*,@ͱm҄Q|M̿/m?t|V# xp|knIt1K 0L'`b< qo>O%Z\iA,xk+/0mu<1a fj[""hHȑD S fc뙴!ZE%>鰛KL|/-V44,SsUٸ:ȏ|o`nVDH#U/d>FIiLlBa?u+?%Q7jڄcKY9̂ɒ6.&~ y'[:w ;KV{J&w!D/{;W."K(+'}eYlƪYi[څ-ȧimut76OM\n2tBz$EҎs1MVrV&!D$DDv"ߍd'R-"(/ EHĮ3e߶=ၢS$M|._*ip%EY TJǷ_uY l[[|h!u/l5'˜OEM=fJ?lwq[_h'M2UIn_a۩Klr$.JLVg}jH}dG;8%"6TΓNT4*)LY-Hs% &K>9ڧ0+Z\ h/i \NSMfwlm_7i1t/EXx97f'y) C˝W) }b|.9_ku8s8VΞf-BE=.c'=IP&w̱Hy{XLvL6g!+E6_A'^Nyr$]! ?:js?v]pcxiֳIz.)=WB8U2=#XO֘`1!_NsJ;Zu)[?><~rޅ쉡Ϧ]FDvaL kFAAMN7 ^/ϰ~mW8xr.؟ܰD[iM hXZ "HT[;' ?^;Wѷvwl^w쳿-лS42rG_w/+ITAsG}~% #.Sg' &xb01.\?iBśH%;x'Jnz1y9*3Ji)}>jL3*VJwmyj?iUx,x䠟KB{|nh\g b1'b|v ~5_@ۿT*kz훪TӲiT{)A(W>[jQ sąf䈟xبsmk v%iݏZboIJOh|_jEivafNJߜwt]*_Dp̝|Wu]$S3hdytmӥIԧnoɝ5"%xDov?ycV 5q s/vnkEWWW3x?0 uZ ˊ_qiVVL.z|QPZ]%[tq[I-;Uɥꉏdb][],]9K:@]Ǭ%uq8DY?9j['F۴igOUt\/q=}<)Vs{4 D(ЏPHNr x7;{rnq[gI_|}MdICIo =;Ft=a R9Îwey8)`і4W[;K٧L=Ý`D N'+^Ӊf1FX>c@}pZw}b9V>$᢭k|^k*"Hثʹ^ZLO &xb01L US7tطxc蝐u_:ʙx:3yV&RA' a~[(vox2ܿHO|uD:" ӴQԽ/ /Of -"Y/!`1VA"O0+I#EOڳ]u6, 3s-Wn\ G<-yxbWLc|ń,[a0`"hp= !@ֶ #y n4dccR;jPXD[8V>TNaz GX=(72[曧KX޶D֠uU]=:Æs'H$ W[GrT;'2u,vj2cb/N;~Qg0 *)^>9rX7MS.%f0Q"BDieOV'+/? e z"G!B]7 YU`'h=CR)Ip:onw,PtI W]fCB!F3QAw%k0!lZXEb,B!B&dtGJ@XH݂wB!tyW!KQrE!BhTÄ,BVT$ #4mxm/B >W"X!B EhTh38dRTl,B+"tCV,NY0 :ލwGvٺ]5UE1:#xI_Q{Tf3 m/qOB!tM0!ШeqI!'DńpN55tU7<)˷o{x:N#`;KVǫץVYB!tMpF+F%,B+.J'JCQ1  @'/p`; rՋZwaR B!V"4Z!'{S/ahU^$@Eіo>학eL>mCNsd˙2{ujL|#Bk YF6s|*]*`(B] 88LQ*{*g=%eۓvezQ{~HvǖSelgS,GKMLL2**DO &示\&d-zA*[:^!JZDpxPX씆ЕխAE]#j5L}Dݿi~y ojSE%O!0L'`b<N~9d og畵4~o{I>nzy?Ϟ2Y1 !H7T/E!R5_"*pq -YB!X!+W,ViU5o nݫKzn]J,Bƺ&BW\הdKQp7Y)gmicMRlZFYy/"o/c 1?0\N 1&81ơ)~(;.!B!4&dCf=xS-VxR ,y}YͪX =JjGjs}^".co|T~]!È0_`ASkn6+;+ǎC!Bh+-kW\}ǖ:SzNWU( 0J5}g0歝I_~5 =fCy#zG<B_Cp8eB!Bv12<]:!?4ZDY#էދve.nݙUF5.U !7Dj6r25R@G/lD_OӖ+W0 y ;6P_5px\i!U='l[ުEn*"Z*/<Oq]S5o͂o;Đ0FC¸>6_RWg4ƪv^`Y\`QޭZx8phoڍ҆ Rc."ޝQCD8G/DmECƆΜ i #%lb,TkYxWOycRKqlxWOyS'Źܝf[GZOom8]# B-sQc/yO|v=lkOԫL6yG۝y#^?ޢmjDH` ֗dJYjNoFq^uj:ZڃG51#S$ }Ϛ.m,ˊdc}5{c5=7[9Ro%""G+"ze_߬k9땑LͦdI1I+X`U}7("$.{-gȬ6]rY @2i:UU&% q \V,TͩFg'9ކWuՖc/< /Nn';LI0A< &Y[hdMAvf-DD$9!d洑 KPU5ٯeʳG;5:Ҵ~x4X}<8dA:o!M&K $x~ @2b:hIcGљzH"DVVT eÆ˓mL,Yb6(b%$+J'txAm9БYv;o8}9!ݡ-ёzsQne IZDDaowU᷎w.5Ӻ*A2QVFj"XD7!{k"]Օ 6.u:|ZDD}Տ9֐VUSYleb6l2RdU2%bJ&! d Hb% (ddjb\@6 2KX-'(ddJf(Va,(d+=N͐5̐YlJk?b,(d+c֒:Kـ,@J&dZXC+VU[vm/չ 7z{\GSUuTw[W쳟>sr[0ej YnPueok8T %lLor1vtEPw~W0ܒy/J[,""դX` @݀طLoٵD,>DqzPBD"bC^04 IDATB(Łeg:̝gO:mt{8:՞"FnS&P0_CL-fX&,[CVqx|s]GnDxB=6M^uV$t$DDT5[_UXuZ/1"=+km\]s(crkMIQ,&ZxYNfnk>RRpρF5GG⹅[= bԼ`lj88O įF ϏU9$8xI. _~~z8yy_`C c:=a2qE"a$K??[9WT\0湓@}71Dd,xʡ^6M1DT-tǽU;^l~*"Z*/<Oq]S5o͂o;Đ0FC¸nh|G{O䗱+Ws`ksW "l$EQgq]Dqzjhoڍ҆ Rc."ޝQCD8G/DmECƆΜ i #9a6M&@6ޭcc}HxF"zzkX-?0^l "zB韼WlQ*;F,&=ENՈg; MUt֐dc}5{c?>a#|iEg)7[M{#s("ze_߬k9X2%f(Va,] @KVIt,ٲ3h0mrb2̐bF2m"י! d Y,i^d,@A %Sbd5(d1#j1d(ddR,Q Y +X @Jb6)d_(WQ%h<6461Q;T]$m-1Źsj7;9;^u㺈`gӉ1`Y! RiYV 4[/(a]SfS\UGk<^VZr`8WDHO3aCDD?YVxٞϭQ,Y,f$VӒNR'" Eu6iG t,bHEDY~;ιvIDŒY,jJ{O²g.TUͩF 0"COWs t-Ǧ_x^`A~~ f^QxLOIw>^XAMDD;%zQ\^665(% IOR SsDDwLOowU᷎w.5Ӻ*2QbFRIg ٛja7~8v9ociU?G "X %Sib fa vTwϫm sEDWIcשSm_/e>sr[P2ZHQd5o`ɆawMG6tEyAw@Yd E n1dZC6:~b8bH4շDqzPBD"bC "^H3WE^?Yγ'BϿ6`W=Q\jO}#p)]DHKoo"`1(3C+3C6I8 .Pm6=EDDMl;EVuV$tLǪrqy_]Ym+**{~OEx[luH,q'3ds5r)F@}ߘh[jb?:[œ-j^Iam@y06E^X|WEWĂǪkb ^ ??=¼/0!aD10"C0ƛ?>'tK~~Z+W=g"C ܃/`Y%U5Jrl}L'cӟLLLfIR%LYÄjMb%LY6D2e fԄŲxo ٜ3#eL)=&{&VNOM}} fTbY ff2`',L5HM-s|fz[& {9lHM-fӜތUޥtl2MO½ܟi@:6M7B3/"c)6L {[8̅-1fz3&,̈$EҍFd4nLxg 0wdNN*m|R>e4X[Rf1>4LiI(~z=oʧDn2[`Sh&&,f!4OL?1an&"̋͜f "Kަdno)2ci\gKǓwjߦɢciTl̻' HZ?O'ʧ朅sM#sj$Uyɱt[eLou AMdjd.Kser,eFfEpeDz9{6RM4FCn+{]^rv\f,Kd5 d6eY{ߴ`L˼ٽ-r /xZbm2'N'wROq4g%{]U9 qզ"jW>wbA<Vpx-rjx_ulQh02T %pX%Y3C3dH\'1CV YX%d`X Z8oCD_(WQ%h<646$PRDbbݵǽC*;1*?uk8xz}èm RDO\j<61Møqbx1\1a0BaDxW̐]tݦk:`}eE Z6ر_f?]Q^yh]+P߇|~py1ԶVc¿z0؉ʲ'U 4x0.h|kz jLo}(2aDx_dװ@\(h?11Dh(k6Q\]ԸQ^G?1" !"d(Poˎv.VްIFǎ? 7>cלv|oppNcvpY ? &()y)$G%S%e](fUw  Y9]UN]2|W]GK;Vw[1 =bϏ paTEc"Fx?C'aiZd|یm7&n|DxcdKn@a73O\uh"bDQgq]Dqzj9XQboeF^vc5F.(r*"(7eQ&&MDr j/Foƅn k c|'$%#%/%dkfSsDDwϩpF$l LV$'mix\HO\F hY+cZø .l\W?$X0&|'$%#%/%d劘Dd2~ = f}ߛ-KD qO\'d J(* , J鴘$-&S:4@:2)<̐UBAV YX%d`PUBAVYDĴv?;wQ;EqUw+RKV\%]{Nu~>w~hK2)-][f;U=wXdi[Y|'&s޾3a;l9__yaϿ?ʷ0yETwϫm so06ǖ@Ku] _w]~+WŨg_쇾/?v~c޳á㳺U7o6N3du;vӮӈ=6n#6tEyAw@Y]m˿i9++gTq^U7VDzw8Ľܲnݻ|OE_[(zǗk}.O^£78Ư?vqfdxO6 kj="cþPKmkv9V]~+$#?y9pM}Ggwޠx^T25mM+(+l$>wʝS^ :\(WjL uzPBĈ/&\%"{du5r)ji:JwWv""Ot>s=[ֶv9ۢh9=W T;DڏEfWtj]@-nyzR%΢౎K 4ѼG4Smy\+Mǻv.<3Pbv~C4]7O~Uߵ{҇75刈hk}>2 сCĈf[llu mB ^t_]Cp~gr+/wU.DrB˫>T4dI6Yx 2.+Ϟ[]i6Kg5w6ۮsm:w9s~IO|_]i/wug$CCar]>s1qeEUrWr/zP܍u}|su7bwi6Q\뻟x槛)}O[~}*ѿHGyOk_.l/_ɼ<~w?yt\{G[bwճDۙo~#_sMDquQ>7Div骷jW-U4x)*"ёqխ-[ܧ_X|WEWĂǪk놖{ƪTCqlqM;mu~n!"YT}Xu j\kKB;jܒ.])IDATC-"\+i: (V"DDeg>8q*_Rv:FGln %D$:2&7>vo3alv>3VYmF??[+v0|ʥ}c"mi.LZblhY`53gӑ`|G>l'oE6>?{զіc۬N\D~|/N|Ֆۘ>mW/.97ݽ,7m-w ~/ȳsvlXuU2=WmUou VUDUEboTֶ,u3|ý<@q#i Nft,>:41 Η ]u$ϱ輛AŃQOǥKS=9_UIνb{{ȭY\w"ޝUӆ]QTD4wQn,Ɗ={+87 }{MFiCTfEK+(DO#+=*"6޴jz`V>\3ݞ_6<~Uu]/OnYTu+3on>7,Y~?׻F|tИȭsj㟵Ԃ6P5wPgclQ*;F,&=ENՈmmbWFFu8wmu/U>;w'mix\HOe =W渴FϵM/1`\=zxlGG· (K2!#qsHrC<<丨v4[{xh~Fqq!!~5<~i>wg" vD9g @Uv#,qD&kv+ Z> dNv"} ]z@Y~ Atv||x'jLjpۢiQl lrh]BWOqe=Fs{&N1#'`!"ʒLs `SJ 0DD &F-knpށc1$O`DDh >{]WR4N̈́*P46 4,>EI Uu]@D1Nc1Nԧ]d=(¹l_)_=y"_)9FyBP(m4f-{-PN/8?I[c:։h#nO6Ir4b#|o5)J$4Kz5e3xH̦ϔOn6B[^*\-)|:`>k!1򜑘,i<0rhflIB!fODxOCɖv* YwK^Y: )}ׯ_I ynƅ`rR0PJ@Q5]ԬPp|!lנA 7h9x9Ӌfպ&NWYHѸրyY١% Vrt*fOjgDK,Y$̉I"BG'(z|7J|sez ٴ(x^)TՇx`^1H@oRrG𫧎_@g{- : v׉kv@3.JtL"R:lho48 i7}&W o`8CPq*urmTYlrG&pRI9G]g2ekNJp 9QE'LPG$]3˒^1V\ð$zp'Jjg]@ ry4y;hPȃpRUnd, D./*0(4#4O-J*.ndIq6E b)!5,@h_WeJ3aqCDmR["2U(qϟg9%FY;J@bbL𑣢b8mANyۅV5뚓o~|]vtح*ĂUڊ"YLpk"%3^Jh8 (12 Ŏ65mv6~Sb,_>OSKsO|3%\8|TyjuR%s~h0xn5XA~_җulWw7;HeRQ\qpk*1#CH?ؼdO_eԦQ2.;VgDA\m XkqV^k8\g%#kmygx7PNӶv}9'U9U/XŇ>%gޛ1{iw=-S)%,#AK%\9@FcR6bzl@8;n:!$qrH\!\%d*ܠ+/S @r[Մ`~H (b*̈rd}ۓ>y; YYZ5mr@I`|ٶ_6uwl'9[ma+w핤KšEk$T∈b˗ߴh"2d Ve-Ue^'Z7H l%I| !onN>zyLf sC-kkwm]~.=-!ͧ 4<9N",9ZήbEN˱ʀЍf {Pp&S}1b J4z̼R23ZPy% +F;l@óҾxRiR]?Ze)ؚ̪m{ @ڽ^Mtporvdg׮Ա^䶐 bǰ-oȰ:T/Y&y(" B*Z_BG25m(X&KWQD&]Dں)tSx#?U#3621cmTìQkyݓ6C?n(Sq]$ '$&dλtP4ZO[:7OU(;|ƺAfu ds%l19%J`:huuީ?2x0ĵa-'29RS'mDsNЍ #1Ee7aPZF&KxY%wU? ⢎{-i\)GLkpbUȿ0@Hrey-XYRA(O'z8g6WʓL8:~fxQzvj_)g #'vX7uAziæQ$L*K缜iː bc|[_:{_z{WvW, R~ޟ \XlQ^6Ns&T,Ђ߁vgH([Ϯx%ٗz@'\g-aYKCFCԸ2ʥK?mHf4gYŋ#8lhznЄ+=0LVzqN9+X8F!C}uU&ϖ)!.9ŋQ+B 5Do?LҢMyTa5}|Sp81bޮ,˥1\ Lpw4as y?mCĐIi& ȅqHs7}}v[T=* Û"=**)dKИ7JGoWdb̏P]R>1C3%?_٣խT t%_xv&uy ?w74RfS(G*z-_>UNE 4zϗ  nhR.mA^\;͏w^.]An;>%&Sp`*ش/ߑV˼qB 9/۷ؿy7uOj&w_/u5 פbcѠ)Kݵ%Ӈ7!F'펲" xnO8b+gcG~ߏ8RQ?oO_*Ykuu7wF ഭV< :ҰAT<'pԝ|dƟIedB,f܇w `g& JYBޯ&wl3z֫mben{9#:wsiU)WWJ{0^j{l uƷ.%]J>Ze<?rGm ڀ; ocmug?EIxaVԿ#g>F|g?} >5>}O7>ZG!d _Rco[>?{|R@J7ƵK1^=7gw"f(`v&~5O f(|y\8tԥ\UGI* s3 %4jQhۏ ?L"0Zn쁮i_CCp5d;'}K̘֣{[}5+gRPpGz!ϵOm[gٵ`n ~Ufš ?Dxf߼Żu?&ِ!UwZ|`9 عVPK+%mܣB \{o~lΚ<8^g"2ߣ, Y9추h6]o}˾~~ohގ |k$[$L?st{Ѳ (XHnxu 5wY 7G)TO^ k<桚q'Κ{:_t\$;o"k4pm![JWO d|d>zdʋʟ"@Vc,Zz=3Oz)uݾC zz;_&:ʗ"%K|{>92@ᓓnEȥo{Bv*M֮cM^U4C2/h' #OfgHunO3! `0{@8X]& ap6џ--/f^@*Sh &1 z{.M2^47-G r"XFdLo!iN̘;\Ye=lc|]4FLjm^^~Xfg<2F+NXtD3k^H&n97LMcK-1Xtb1FaC,8-HU'Ne3; "ҺS8 ޽MS8vE@1-lr7:}ĝ FF(YZ +vWgd/3ֹ&٩F$9 &BwDܝa"q@RFmDN(g7S^dEL*hjd04$D TcJQ M^7)1$.j?>M "r M(6 ;0B1"d,Q$l k}ˋ6@K#-H/խ]gb\&<ٯߥ OɂbF=NF0zCmٽ - id/!|o4H,{]l|hۆUtLы 6?% x?|8!Z >]rdhHs"ITU;L>[lHPr n5cSh 49!"7B>ӻ-Y4md9ĹQbku{-D./* I\ӈ휝}onu} !8'mp@ڳ!йZ9@Dc3DU?yEhC"7_IXdcG )97G@j(CFQ`f$`$qLX4~AYѷ|F[R\9^`NOs,.DK-Y@ H8yغl[P\$Nܜ_h#)1fBkPr yGdۖ_{G(3hy~}U]DMQ"xC4FBbyoKE4ݮ1pؼ^I^v(.hg=nD"m Deƒ D4i`~HP8qWCT9g 5v HI킻~2c!@XQg4f]ڛl\}Xڟ<7mrv&(h[ewoybm6jѯ-gΊ|#O(OȲ\7̘`(vilg8g@ެb2茼L2?mCzf~t"runR'~Ÿ̭fLzC&hF2֭  gғ!3Usyk#UV=8"rŵ\t90 9Y`$s&I9pYoH^H@hDH9碞싖WS:p'"ȴjc݈;UEQ$I24wMs5O\S#"uE KD@,Y?O{7t1"fhSo[u9 ȕ׉Ͳ{lU$ xջ6o߽) H|׼ &{y{6oU%=$̬7oJo_=ӽBXƗ_;j2\m׾vK ]?پgs;MREbw]{sV4uX}Y%ȅ7o=}mߜ{(~gK-ݙ$>\yMܥwoٰIUUʵ{lY/,s'"UUՒ./Zb'd(K>~ qq@\0` .`08>|>EeIQE"#c(ILOG8X|@+ ,A^{q-޸M/9ԝ@fDP{d#c(1 Пܽv0dƕ;=2XBfR;⹏ƷM;@}ݛk@g\c3-ŷ;;zH~Or3ב_᫿r~_{'.,J}S6-nh}TR9]XBAiԽI:4JǶJ@DI?g_z_uJ$&1&˲OQy6@\\\3>>>>> 4aEEVEVYeY%I%1#K cGf** zqSjz7qm EM]EjmNPx4 fTOgB&kZr$O-8v &`݂f~˾g:7{S|h^A2aɿM(䙓tUxٯRwzz+ޘ9k9'1ب!*ksstڶ,H cȐ1$Lb1YLb$I$ r}d[t\æUr0}S6_E`  `0hEdCe_& јWOJS֠\tlGwO,!$I(IL+5l@`Q/+]/;PMfxDlJGg䓍/H- 12UOesmvTmW? e J.e9SPqX"ʒS| OrډpNMS|>E "c\!'3 7A$ Ƭ%>}ÛfK^jx[x]s*rBeoj)/NA(GJ[W-a]&tzN~-,Y0ʀI%"r4 ް th-!Հ)+Ar+Rm3~|`O|!A'"+Q=7uwYFDI2U4<>.'&|p]:{0 |aoOٝ|/|2q3+kR2~Ѧ>?۳TT~;'rlW8Qd1s쯻ڼot`]#V_Z8%L1xXRmHף,~pPa杋)*̣zxp!HQ%; KKŴ"b"yl#o踜tzكcXHhRvv$껿iPDK#. -9Ms_s`}d[\#vv,ݖ% co6H!v?1wiE~DDumBZ "E hWvLB0B,*᥮ 9ɍ'q7F^R l0.|&F(('?˄C8VY]Ǯ%J$8MH'Sb"`=}(&NxEEDCΚH[6뙺IENDB`glances-3.4.0.3/docs/_static/screenshot-web2.png0000644000175000017500000010640114432156570021306 0ustar epsilonepsilonPNG  IHDRD@z pHYs  tIME  ;af IDATxw\gq w)b "*Ƅh(c jhPTDѤH$E0Ѽݙٽyξ]A# |F;99466vY`8::QYYyhiiihhMӫH'5jTiiiwJJJ222An߾mooϟ(!!>w\h"gwiiiyyyCC,m[[[''']]]\&!!2,,LpEEݻwUVVEeeeqqݻw;3779sfwX+GEE\r"""ϟ?z8yf. 哨))f*f+((466VUUu>DFFF\\osB----&&VVVE>#\\\+.K$(,,\rejjjJJǏo/^z0Tţ6mڔZ >|ԨQMMMs9i4N+W,z\LL\r5$SRRfΜtٳgvɀkDDAƍKKKC=:55b$رCਰ0;;;fnnڿʕ+xedd|I:!4qlolKKK:uj֭VVV?0`0BH]]=33$YWWgmmmmmr޽wViС#GA)++w5w5gΜ%K a˗ W>FFF$I2ӧ$9h uuu$Md2 ,08B5551LFѨN 8`|>k֮];vXݻw'N(..b tɒkkkCQwķog<<<<<<ܺ,V׉Ϟ{qN'jhhϸc#dm۶Q#%_!qΝr,www5xӧn]]]TT@񬬬YYY fSSӻwR#4*ڵkZ@ϰl,|UU痢=yϞ=2dȑ#GBWF溺Z[[?~̙/^f †/ 6F=xsViiiMMxiԩŋY,VJJ "$$4a„wG;;Kj}}ԩS---A>-ԮJEEBɓeee޸qZWTTDGGgfffdd̙3ABB [=zf{{{͛7$IjhhtbXbbbMMM]eVDDDAA%ˋ/z}>a{ɤx''1a„0}GIݹso_r7nѢEBϞ=NeFsNPIIIwSyyy&Mh...!&m۶Ԟ/b>ݽC l߷ܹS^^~ҤI`fW ƊΝYǏ3߿!4q!C~ڵkO?3R166r """Tʕ+ݹ\2_/^Y}N"b߾}Ҋ [|r;vسgׯO8\.>55 Z>nڰaCUUUnnի?zss͓JJJruu?~^^Jvv6%6l|}}wX[[+))9lذWVVN2EYYREEe̙:::]ᚚ^9r{|rw˶> *r>}:eʔ/AIq9!DѨ 7իWWUU92<EEEZYYsHXX8++:u*.WݺuZj_I&Y3c"##޽kooobb}[n8}Zd)}g/۷<ƍ&&&=JOOW}6MWWCu^Yeddgd2 XUB- <§^4"tiG` >?Ըff@MHHx:!)|lْr/^ܥS/hf4dgg3 c?{osy晛dffg,Z|ʔ)]6662f~ 111vvvK.], ,,,lll.\] 777ss9sjkk=9 ~@zYYٹs?466g9s㱱Ï?~…Ž>>>xS===;KLLȑ#uuug̘҂JLLƝG{{_~SRR毨077Bh…555{œO344IJzɓ' %%%.]"""n߾IIIxL͛۷ow9'@\\\^^kEy $''p!YYY433sԨQ ;7nLII9uԙ3gzl+slllpHohh(,,Y-ɓ'ft6op.\EkxccRIOOF㏛6m8qb`` B(88xݖmmmƍC1;v=oذ/))//1bĠA~G]]]F͜755!EJKK45U.[__/,,w322NsS$wzZuL;>|xԩ_':|OܥЂ$@9r]/_M3|~] @<|f6d3Пl9 s+n߾sŸ 6$$fJbc>3|^l60 AYwT__?`qqqǫ2[nahă'#www׎BJJjƌ؉/?=-gҤIBBBSL5kvߏQUUuww|.suuSa[[ P!B... fΜ|٫V|򥭭ѣG~ǣY/X_Ν;Gӧlv;((h޼y;VX!lѲՔ߿ɓ=vĈ{.>r84x8ʕ+ʸ׹\nSSSLL@ЩΛ7o߿O]$ѣG# @d>>JVVvܹT0:))uCꖗ:thǎTuz{{,̢Truu `+,,pB<;ߗmڴQFJHHx8sU/_v9*ݻx#++ !dhh$ݻ%%%=7aÆy{{{{{XYY-\޽{}=|֭?ӥKp: ooo.Jhjj.Y[z pɓeddo^PPlٲnܸdFGG;v,))N2dԳg:ٳ]f͞={pGnҷ4 fffX\NͣRӧΝ{hkkWSI;;;wjkkWX{-*kԩ>sssU;::֭[sqƥtwiii7ozbGGڵknyQS`0O>Me^޽{NNN$IxfBNNNBBB999Tcmmm?DEEq .ÚSdgg8qgJ$Ir=[ZZАnj3p W~\]]yLt/I T_wOlǎRγkQQQ111TJJJJnn.N3 A_f駟ƍm۶/zyynڴi۶mƗ/_RmOD?3Nljjrʇr劉juuG>>8%88׿{nll,̗ W޷oBԩSbbb x,_\xseeeӧOyӧ?Hj͛7wލů0s8ٳgG=~xg+o߾.'oܸ掎1cƨϙ3۷8744|/{?OΜ9sɩWǏ/..elmmommǰ0ڦx n3))g쑒"I^_{ |!rx1 ?CZZWRQQ~8ʺeggH4ZZZƍodgg;7neMMMϡxS>`Ģ2|pmmBkhhhkk;/pb1eʔspp~uo"hs>xJ1bɓG1rHeee*[o,aBikkO>CX,ӧL8_~Y`mfiiI3o޼#q???xg>uRUUc=Wcȑ.]9ydmmm.+ӧb,}rbxp@YYYWPPP^^ӫVʪ ZZZL&!//ʳ3^^^{1YYYTÇgeeӫ7v9"##ϝ;;555'''jFFF|0` 篞ٳgޣ!0_lll\nZZիW`0tATG:p a1عsgrrEjjȘ1cH>}yݩ}ڴimmm=Tr8QQFl|; \jUcc#N411OMM5667o^aa/^ˬ\ÇYYY镕v9w"+O?mٲ?eT VB?v7ǣ<8wܜ:iSRRjii2tD!!!koo мyΞ=UUU]&//w?Ο??h (|f{{о}cǎv%%%ڛkii8pϯÆ ۚTẃNTUU>OJJ'700|2߿;JJJb2\xΝ544B1 tǎ;vիW/_ˁ \VVp!C;؈놆mmmk.CVU[[[[[ۛ\hSׯ;::6Ͷ:t(ITvMOOm۶`!77իWaaao:t CBBaIQD!!={8pt(9lZz2qqqQXS"|QVVv8 ;z(?ֶ j:ΟE5}~zǎm۶Q7믿"---˖-[jղerssT@I&N?}4~>\GG ٟ:FrFz)ӗFUUUQO {>xrL&u͔R풌ѣGmqqqmddsNjA XqqqQQѰa]ן={?}w^g!(<9 bwFh~JyyyrrrPPPdd)5#%%y۷oݹs}w}7sabbrL/FQ]]}K.1rÇ93ܦ,,,;sŘꢢYf%&&8##}˖-nݚ2e e!߸qc׮]/^0aBYYuɍ7R#mlggg LS]t)..zT;mll֬Yӹp\\\ll,؟FW[lQTTd0>>>8%88o 4(>>ֶBmKKKرڵkSNKOO}CE#LEEŢGE٣@YX^pa ɓ'MMM4NFFuyyև$Y[[[~xhFV\\ѣwꄎ0YYYii鰰?L&so߾!h4\DDDjjjSSNqΜ9䗔rwɿBBB-((2jIEEh!$//___%={v֭ΆWE#l6?FÇiwv9Ȣ 閖;w숈3g΀h|!̛7o߾}744|gA1tЫW<fvF7[~{5dɒ 'o޼8˕\t)3f?"cْmmm8ԀNp8T8)))6MSc2%%%>A:t$򴵵\.&L@EEEq\*tׯ{D_"""ӧOwppMX?aaiӦM>w'""2sLkcc-`bbŋsrrnz)eeW^QSSbŊ={0xa###EDD.]bz(}:IaxTݻw$iii OsmWW׍7s7˗c{!f͚%KL:Of3gBhҤI=a0Zixɓ'=ommBGFFĤE 0fYYٶ6*%?ǎ[hQyy'OI(py⅋ Vi2tglll"""BK,w\55oFFFo޼a]F*..x{_0t:ݽRH 77K.Q3 #S fϞ￷3f<~ɓ'lC0BVZ{U MBHޖK43`)}Օ׷q03Ce&N%KdEd켵xEgmq}z,lF oݺUp Yͳ{^Mrrm3vyfE!!ot{.lۼyuN+'K<~aϑ)} $$$3244jkkCUUUΟ0tPiiڧO:3&Y\\\\\L]$++ZL &o ki?/{hHOQɒ'b#kBCj6^݈Yn\%~$DV2ij;aà >=BHLLl˖-o߾ gX666mիSRR,--VZ{%KX00pACϫ#&B$ 57 "#(--upp@eddhii uuuh%@,^`@+P䐈U8t⻤ o!I瓃$f=To@~9DzȇW\qss믛NJyܱcNj/򔕕޽sNvvS.^fMMM7lP]]e+Wf͚ r(aIDhÙs*rBlIWփ猜C=̊!.:|lcƒ:g}f?>jjj.\ܼw^~"##TUU}:\ڵkhii Ɓr]ʮ_ͥ?2!M!µvn;yP q/ߤ 7ZykHBW__,pZ8ÓnCo xNgu9x.}MtE]:}Ѷ@f@֪>F:kU4A m4mO<8)0Cq?qB ccF$%ْF&?=<-FLM7+P조ƺ($FY,psssaaaMMν{(A5j^Mtuu[[[KJJ޾}Kttti4%Ao޼jii544dgg#l!C=zdhhX__+2/_ĎxƱ 1jE>|nt.Dk%,DDYtǨ9iuI~o^\\K##;w9rbmݺGusqq¼}vt]]] ,Y`0tAx6BڵkFFF<oܹ;vqㆅEjjرcmmm޽;88|w^UUU*)ZhkҪUI/z6sI ^-ͨ#jڑG.6Y`j2~e}M=baNJJ MNNڵ_`KBBBTTT|||AAu } ,,, vKtZyy9ׯ_#DDDrrr,`jfG%ݩ9!!.sK7ʾyX@@s&MʚLUkii9q"u\t +s$ cIq+$8"vۭ !BH<'id쉱MM3g|aƪr޽Ww tʕ3fx{{_p0Isuvv4szz{%QSS#џ^G:jsG3#D q8jGGQ?u>wwCex<!$!!}&;;}̙3KJJ>|󄄄HaddcO h@DDϞ= -NKO./45e=kQFb|-(( TPQQ` xy/bU$TdDd?10w44J-!/*n@l{Oi$11qԩ Z_,i7v4eOiDVVvԨQ3fHJJIE{W1ڿ6$IyycǎQ$C?ꯃC?ҊP-Vx _ARR,111*ڣ<1HHHP+C:3}+VDEE , zzzf7n"$$d2qȌ3ttt𮵵!Cz>ͮMp gΙ3F hIIɋ/JHH 9j*+++ŋ_x m6Ȉfs+++WWWSLlkiiK9|1$''>|Xvډ'BEEE۶m[dHFFÃtif6=p۷'ZYY;3;w?Go?DcشiSbbddd<<M׮]/۷QŒ| p8lz !w^/6@KK+99!uVhiiY]]MMY?)S|}}ܹ̝!BVV89!C;/??%QVVF𮜜\gMlٲ@jwѧOFuttihh|x,!!鉈<~-000 ȑ#JJJџȰaø\.AFFF$I>}yŊǏ)))lnn n f͚2ؿppPBBΚ1cFkkYRSSqҥKCCC+++&N(0 }XΡjkkp$ɘ~o߾544vqqp8Gت*llɽx{ئpuu|aO8Ԙݝݼy0LwwȖ:cB |? eee&9WZZZLLI ]IIF!h4(ǃi'IڵkݻG$IT,IbF+**BCCSLrGBBKa~I/_޻w/} Oduu50߿ڵ$ICC9,…YWW$I*ݖ-[H4iBHLL$ɚ$)a ÅϞ=K~KHHȒ%K;֛fffjjjTٰapE1BHOOtСTPO3 :D'B!4rHЬYB%i^Dmܸ ogΜvJ100bg=rTT%%%=GDDO_BBB RRRt͞= ,Aw6&I;,@\\}vww~!6-..m<~АR7ouQ.A𶂂,X >nN3 & PUU600hkk{)ATommmnjGDD,\c̙T~xB?C]]]^^MGΝyqƏODNN5n|z?yCgϞ1Ghll766jll,))QTT~9AuuuO>}!v***}6 x(EEŎM6 Hqqquu3g$""" 7onhh@X6<̈́]kUVVBx@V͞=/S<_&4F DC( 6 篣"ߋU"K,~Ԍ"$B޵Rqq"A&.ߟBl6;669mOBȩ*x !$qlYYYj;O#u ^ PA#%}j8d2h4_AAAw🃍b;B4hݏ[ChB2 tc0}0k֬ÇO<۱8x=О,w5h --`u{Si7e!D"݁Y=e,Bq|bUB#̏n !`;,9>Ѓ>_fܹsUTT=z$--=k֬ 6P<9# B"4m|YR\jB!9L-B}4ڪ\SSu˃$"_ B05"to>)B *C(32F (| xBI&/ h˻~Bk> h]Gzo~?/,޻\I~庺:dccWs3gμsʂ&|3ekh~h!4䍔%)C4zt}QQQ˗/ Ǝ,M#BVT9Tfh hHj`?ghۤmW<47}onvZ~A [qq)))kbbRZZijjj*))$d2Zjjj555g344|3K2_8Cr~sm湙- _PW.aݟ? l1NKO=;P}@GfwwwOTSSeI ˗[YYݼySHHHGG !`0.\`<\~͚5"""YYYvvv111Gζ{`[F2#DG<#37*b*EF 3UdEdޤ}1C w޺u+IoSScbbpϟ?)pHuuŋB999_50X{HIfAe6w6uu**x[)BdSkSO' !at8㰞b EqN8uC62aw 555h@@vv2R,:+9dU1jG}Eqpw!, 6@)'DTłnK Q{ (Mz9n?l.0Ѡyޱs322FU7VC͵ ꟶ, J>|vvv m\&#PTJP[ZZL ή 9"!y#Gi:-'qxlU[NN%d\8x\tMݛo 'ZN4fhykg7o (w܏? ` Μ9uֶ7E(ǏTG =OO<~\o޼III!kc9Қ%͛m5yxm|K] nXuqU]1iWQͯ1ޯk_# B܊\cq^E1R5v# BVtvGQ;6FM;O3+|a BUBֶ -9u >@ `0^Bt@@Dqq ͖YTTlvYYYcc#JUWWR^x!A! Bğ! 1cBHOO N;;;3FWWݺu˝Booo.ѣ^:th׮]T˧Lڵk.]te˖g`oB]t??jtɓZZZ۷ooe2,Y/ sXX؊+BIIIܹ377w֬YDM2%;;̷nBmٲEfrҙ/\@Ko|455SE-J;w̙3Bqqq!H:mڴ#Gv`:V3bKKKРAJJJ[|>竨L&ñ/))?sii)%^NNNLL kaÆydJ)));v/`ggiӦUUՀ}vZp͌+Xww:ǍS ?o ӧOkiiM8^رcUUUҵn?dff*++;t۷=<<6o<{R*..~GnnMӧOyF!1sLt/_F:u*99رcL&wwD<bD3gΔQ333=z?>^|yɒ%...!!!vvvW^kfv)??_bjllwnn.׊655EGGX,*;җh4ٳ{/c}_pwnLY,V||H$vڀ >Pׯɜ FXӧO#?_4777ǏlH_UUUUU34(22ܤO>"姟~)?cVV֫WtttF=g>mڴȲ*[[[GG׷mgP(n݊߻woUUգG222(ʓ'O2222w^zz:F;rHAAAuuuJJJ;tZ͚d֭ΝmR?&S^|Y^^~aĹ.]RUU/_\|yQQB`tԩSMMMqqqIII|strl6Bh>P(tuuqF]|Yz 4@GI<{|֚J7n޽2[ 0@[[ӧwiu)hmmvf7oy{r8pۻIljjjJFݻwbb"9 FARNjooI>Vϝ;foo/6BҒ),,,pf:ƌlmmx<[|DPhll O:gϞţ9Ή'444dH"l]].]ȡQ>}_>99Y xxx455 B]]]:rqt!<_~s̹t@ ppp5j_0a€p1:%KٳE"ѹsOOO8%L__b={s:IMM d|JJJϞ=v5kkZm˖-AAAY3|8o@g#ZKLŋessTF}}}}}}IjfWDz<By^MOO7oޟ:(//jjj>y/ߴ.NhРAwmiiiYSSFz%NK3&Pf|>ڵ֭{_ɓ'/_'Lv*RcccXXXfffnR;ZVbWmmmLZ>.pNȭfgAA۷oeG;LLL'nJ$쪪/_N2… |>ѣuuu6l8x svvƳX`3f̈Ǐ,,, IKK:t"n3 fff۬,6 '<;,,`8qBZpB]WL,FDDXXXڶB=NNNjjjϞ=y&NxÆ ñD3_xW***BPQQrrr"H:grrrqq1^600PWWogL3>*:qĝ;w~TNNƍ҉AAA'Ol2XÇ+((^v mWa B+5+/.>B-t2TJoo^WR5| /!Ώ;vvv>|I_55SD溿̯T 2Rf+U~J$>K2jf&-˛V1U7涕[ϫZXѨnV`( ! %K%!!J,MΛ||GN\LŽ{H.]hii!ʞ?NΎս{wWYYSr?]t֭֮tlmm}=Bg .n#CY܌QߒePu|sUr PJ?.>1jAP'IPTT\r%E#22rCݳg3gΜ+WZYY-]t8QOOСCNNN&LpuuSΘat6uu͒fDEZ$-ՍmdonZ^ZU{fҘ;oDrbvG?#VZlll|||BΝ޽{VVƍ׬YZz2ׯ_HO \Q{EZ/.l"[-ᇆ禫ȩ ԽaYaaDyQbW߿k׮^zEFF޽{7l?"dx<H[xAw8@'=(}62謦&<&Ap8$@,wh5*]m׶Bnni,D,W:"RPqKjJ2|ۈm5{;$ohhQBB***2>}T$"nݺedd$1 jXKn2LGGN[!ܺ>s="j&y>Wu<}$FHB^?BwsGMIX"wfNNN9r$!aݺuyyy86իW=z ''gccxUV-]tǎJJJ&&&ݻ'⤌KU֥!qn  (!$!B-K_6c|usHqN%1]=;t\.ٹ*)))((رcL&QMMfkooА^QQ=`+ǎV55S]X 3";o iF=VKI+qlVYTo9<}D-5]V"i+y_V{)|`W QSCQ'7|i?&/4oն -_"Gl`0|>nll$:|YNN.&&f#f̘!=P///wLݻtuu첲޽SF)3+&&]xO>sN|''Çgeey)S,X'J[rǏ隚#FRSN$@[[2""bѢEvvvx"uyyyCCC:niiimmM@uXz?\.ںh kkk ̨TjJJJ;1w ={6BB$&&|܁u֔@ ҢJBP$444())%%%EGG#̙cggioo_RR2sLѣG]&ƍoH#ӧO''P(ɬ.HJJJjNNNd =2ٳg?'YhرcS oܸ/hffvQrGA>|'رCf+j蜅;v숊:sܭ[T&Wÿ; [n橩4N󏯙1 :@~~~^^t{#(**|??QF!TUUH#󫯯˦v"맏(>nnn[l!_N^FQRRBmܸ1?? xayyAnn{3l6 !$//kU===6}UZUUaaaSL122@g}Fym]]]׮]ӥH#BTTT...jqq1B!/zE!?H؋/BxU"t(Vkf*/bKZwt?idƌ{ѣǫW mۆ7H#`llxM}vS .d0'Oī---֭[n]dd/_ZĢ IDAT\XXHV:::82&CCC#"",-- mmm?'8pLhk̺|](*,lmmeh?ti߾}eutt*333dX,L:<*l6Od2eXjjjx)PHRə444cԩx 8 jjj\YYIΖѭ[7)Aϟ'_%~Ԅv`0\]]===ōf{xxxxx0 "//?f̘=zU'''\ک@Y˗޽2ӬI(+**B! bxڴik׮miiWPP|X,ֱctuu KOO/..NEEEIIԩS;w̚5kɓ'?{={gönJ522SN>|HDEEAlԵxZPhh(A|Ѿ 6'.X+V3g^??_$|>|hii/]DDfϞ-޻iӶnJ_~A577ǚJH)))144D1dPqq1.%%%?&0aAލ/Ǐ4iRpppJJt}̙3EGG^L:u;JݼyV{liiIo߾ٳ EE3̽{޺uvϞ=zzz eʕp |b ~tD;yƍ5k$&&~y|0TD{Bn@B$rl6B)))!JB$* =<޻wɓ'KgLNNvuuţ,?߿sF(XZZl",,,pfFZYYx֔={5kH״&&&ۖ-[fpހF >c)((\p̒&L GSSSi4No<. x)s=JKK tݶOکSΝ;wYYY/^hnx溺0% }HtttRRڵk)Jxx8m_ɓ'7ƍ˱8{UWW#*++¦LW}f\Vb!lmme\.Qdfxxx-MlllX,?ϟ#D"ij[5sUU˗/L.=ZWWaÆx>>.\`0N}T$"nݺedd$BDuuX,t֍TIsWկZxIclU(i+p|@@h(6.ȫT甎< s WwU·j/#a0|>f766ot,''fB3fhcJ;J:::xw!vgϞI׮] gcƴ9"࠭uΝ;fܸqW\qrr>|xVVi뫦FEUVV2d2.]t̘1#MMdWWW1uO5_eDDĢED򆆆t:ښG޽~\u p8NjR jRRP($_ 0a©SpaP(w05%t@ RBH$ihhPRRJJJF͙3.33޾x֬Y!%%G^vM,:488~ǑFONN. @'t={A"r8FN`޵kWww@rvٳ-Z4vXCC7nK'=z\őFBÉ;vJzZ:3@d2wڵcǎ#Gչ\ӧqhnnJt?I,[I˓4FRUUUTT "/ȠA޽[ZZv6WWצ7N<9 `ӦM dff())#vEN777-..NOOTpNi2F޸qc~~>NH#5yd!SL񩬬?ݻ v5ggY$h4HZ]]IeeeXXؔ)SÃ\7qkjjxA߿fϟ#vjT*tûuGCFf̘gϞ=zz 9ضm"/Olll 2'OՂ˗?XSSɓQQQ8Wdd$^ ,,,-//a2y<{37wTH$ЩPMdjjڷo_D c2D"DɉD"ߺIfQUUe2BLEEOC***™e'z5d2UUUʚBjjj=\.WNN!$߼yCn&=-޽Kff&ACh+W ?C]~h絵>|8A}َ?g8tmCCުA244 }k)Ǝ:g;NџI 3|O' Q׮]Éw>}4B~w vss[ T[B6m266\vV^Ml69},A_~3gZikknݺU FEE8p=Yf8 hiiegSUVI**H^J\.C.]JP(յCmٲ H |}}qr\GGG #Օ555 x̌+ӷoDۃ![[[d3NII'Skccӵk ;w.plmmwf^ dvN׷Д/_?̼!@|~9ݻw;tЕ+Wtuu%VssѣGq6f«{744ŘmzzzCC!ԐСC/^OR#G#ۀG4h7mz6*ԟ[555g1bm6ZsruԨQ[nqssqIي...<ӓyٳgxwsukkk#MLLL&ߧ&wLP |j*ƍF_0acG~ = 67ׯݻ.^hii׍ :.N ]}?rDD&cǎ}!EEGGl߾^˧V[[{;w)i2kΛ7oŊfffjcw\PP9sfeeeaak>@ _^UU_~iHHHKK A&M'?wqYGGgƌA_g}f@>mrr-OCCClrSSֻڵ}N8ٓ&M7oLWFFƆ dzwү_'Nt|-[0 'ӠCᅬH޿ø4x`GGǧOz]ON駟^xwߑ0OOOݻ/vZeeQȔ 6̝;@544<|>as8. pd\B iW\TQQ{yW\!̘6mA7oD%%%,]3/a B999A"}Y[ʖG/}{}游8 BBB\Z$%%ePx|yK.=ӧO 牌߿NBBB wvSLY``0xd̙3o8p qʔ)w@޽o <{… oߦP(O<]zz: LKK{)^-))۾}{sssyyp__~9}tAAA\\ܨQj9???55Çկ_sNcc111JFפ ״555%%%<͛7:::7nFffÇRRRbnܸrBaUUʕ+e^gz wHB555ϟhii~Z.yyyoŢR1LQQF,IJmr>VVV]tIMMőBBRfpM=I&}wU>}'l1 P^lllqbbb6>sε\ kΚ5 /oڴIIIdȔcco۱~MNNt>}_>99Y xxxqٳoZZZz{{HwW#Hƍ/^bggWSSSUUpB.bH􆆆B---9v^NIIqwwOMMlt˗/jvv9,"O2775kL6y .R˗/0aBvv~bڡCf͚qwwwmnnAWTT,--ţ0@P[[K***Ԅᔗ9G,#r}V]]̽zd G.!5|\B鸇 Hh46.,+!!P$b( "D3Ɓߛ#!!aɒ%8F+(( k]D)tPIIBy{*x pIDATBٳg VSSCaVUU%v*8«JJJ?W7y`OlmmqGikk+))Ƿme˖ᔛ7oIQVUU,K[[c!yyyxɩsVMMMdGj<ɓ'&L+**޼y`z;;;77KVVVՅSnݺ=Ç}7nܸpBpp0ϿsNYYƜ9s(Ÿq߿M8q޽2GRXXqׯ_C!++k֬YT*ٹW^+Vǹ|򆆆vL&ÃF!x<ȑ# t~eee///???2y%\AA!$$ 륡Fa=555kkk8MA//y{{tTWW#t:fN]]?GYRR_M6>>Av/cǶb׎E={[FdddOzX]]aÆ/\RUUן8CCC!C߿'xxPE>HܳgOEEE;zd-BPGGɓ' pȑ#'N@ZXXܹsK.ƍ7nعs'3i$yy-[|R#F8qbnn3gBaQQc~~>wP__/xrІ Ν;'$5{'::zǏz|ݻwzzzxx<7oݺE'G™2eg;HD <ܐtٳgٳ'66VzRr]]ݘ۷0%Kl۶---a2wޱcGLLt@[GGN5k˗e,}u8g`eeeggzWN>[:>s;wΎBΝ;ɰskCCCxxE"Np8qrr*1vVf600HMM%B'&&3ƒ+'L0m4P~"##q"BIOOƖ,YxbPDD,ꩩ\.޽!lٲٳgĞ={N:շo_6F߭?iOf}/~bmm-YS(!1G$B655EJJJdں:EB 3g\jU4ڳgO--!Cܾ}[GGὑFT;v,UUU?GpCr %##lٲeqqqSduu-Juuu555]zX,8qX,ן;wn\\ܝ;wBcǎxeiiiݝΝ;`FFF w1+ V]] <_SSDx eذadA!.\RcǎpySի׫W_aÆ쌌 2`@@@FF~b}A_ !gDrrr/^xoFgx<ϥ^ё`l6յk׮ϟ?ﴒk׮%ٳgd N> ˻jkkv1b"9qr;Q?1q8{Ν;WzmTTBȑ#TXl٤I*++6oތBS|ceϞ='Nhpcǔ=iG,=z8%S3VzB 6xyym߾}d3g,,,'Ooܸ|sx<Bh8}k׮%ӣG[[[55M6nnn+VHHH c$0LO>b]v֬YxyӦMNNN8rBB9,k֬ :tÇɲ'xF1jzmSSS1hii544㚙|fիxY$m޼6<??m࿣G@ݷN!fqWTIII6g?BԄbD"1̙3,6D"ۿcc#JRAPT t:[ +G?0=JiiiSS&^544vgi4Y!nBE2 '''ݸq`,XݻEEEY,Ǐ....::555T**::|Bee=zfOپ}]ʄB^eҥ+Wܷo]~~?{3 cee5|p 25YE"7|# ǎkcc#3f̘֗D"NϞ=ɤoMa2FVPP077W>g //ɏS]]ϯCױߵvۙА0(]>x𠱱NumfL&Zlf(IENDB`glances-3.4.0.3/docs/_static/diskio.png0000644000175000017500000002264614432156570017566 0ustar epsilonepsilonPNG  IHDRI@sBITOtEXtSoftwareShutterc IDATx]w|oC$!TRތH A"=*M@Bt ! @%wcw.~b[f̼y;oQies4uV5X5|`MRBf;hir|%C[c#PB}RtSgJg|z*R׌SjDgiA#\V!}RghVh _'֪!1h(VϒQ@@*UJReŝmnzJjqmJU"y-M1$敨TEIW@ `yGzJuc'P4{8OURJjɖ.v7; l c/~VXRRt~VCq:7h\ggR^rȘjd/rK_A|/]Y==%bȘ /2ҾÚ/ ;Xz$N-N) @>LIi)֓=}7ϾG3&곆}{۔l7fU}afwJCHc@x0?'R\o4xű_zjL*՞%ߎ1,`[fE_w}zMQo8PSuv<3uNSRQZ^N2Ѻ9NчjH#7'-ѣc 'A[6{{‘&oku(z7;סK끫ұۊ߾E+Akj>kr-{}wDZ]gmͥ< 2!sBϛN:Q ֽg /14So߻4Y㶞 yܺ@C}2:"*⩐U(˽ +I-FܪyBJ{«`{o t[2݃C>(p ep>Zo۹z(0:Lơ9ߏ?ô?oNˋ=x,I%t*Z[_4@\]J2)d9cJ-uwzm; Y=e )~#Gֽ)4M`*u #&*.#COtسg}z94kOhYoȺ1C<rG:s5.#"H׾A vKk3dqHq" ?,hUtF:Lc N-cZW{HޝKy:S2T%'o뿟7ih681H̯ӷ}ٰ87kX %ѩuU)GI[͟4DL'Uaa 3xsV>Žת?sO }ǪANnϮ%$F?uԪu,@w+ZCz[3&N/ڻa\e6oqŒ{#ۻ*Fh*KWh>s@wR9j6qNiݗqflz2kL[Aqmc Z?F)?}v]m>z_Ci _9s_Vٻ2g\RG)%L⟿Hv@[wx:@&7>'uX8 hGYggߐ4Z:~;.:@o۵;njGY 1/^ _ ‰2QeI;gu˯ߺwm֫n^ֆS_ݾR?mGй\{|hbAvv~:q19a{"LЩk`9zw6ruo֥3U҈Ve9r\lE?VHrϋ*@.}ذW l4zZ\ݚuCރt@Z#|Q/#E+g^E|ڸGgQPg_+piոkg.F9:49^j\` uhFLdܓcǗ:vڱlЎNo6R{#Qwgպ}=%YMx"$uڹ:@QNs US׍΅s?qQ=-W{b"J<|<5xqHH+n_phDz f^H/i5m칣{ą17Q`Vb:Sf6A.zeBkjҢ0RM.z jo؊X;;sM<|s`ˮ݌ Z k6t[f,hPP#WdרF yc]ɷqqBlCMM }2` t6J'xaˡ8k*M9g(9sɜKطBb~ Jʗ}B$ȲmM pieBmh7lsW(4wxz;T@VGO8]/Wf]wȽW\5k]*NeD~Һۺ)}p 4[wf͚5D7ߦ͛yQ_X,QR\F~=S##J-`pZ},RGөOz^CˢFF g44>6%1Phn}1_"DCMT=S/nP*FG:>k{&W>l,Z |4 (a/¥hy8X\{>41w&.~LTlĵ+~}O+j xubcb/|Ѭ;"2Qu i?#6{=?#2: #ԕ[*vd.n9|Jȋ~ӊV9h[#/^ЍUz~0w둫W7?"b⭠})OW׎w\,M̌N"j2y Xrش9]jc#Ç%l:nv1ӱK'- :vKj-q*n_ЮY}&`nQ[dˢ77/*F/8:2'ϰݻ{N=سP~Ǭ"I(z=6%%CWɝ Y/8hgxr<\s`6h<'MP6"@;7(YʙlH%j1ǘϣM̉-_/]`g'RAJK6n*e הh{ˆ΅=4,cu= F@fc` :4[C/]gZ_[q|tF:'6K< TDPeıЎeaAǟ,,iϺ-G&g?ʼAJ_WtrGd.[aHCW+47OCG7=%6~zA+Օ+ $ţ7Lj^d]}rP811-7ea4njÜ?B1?Z*@)T -IF[x:82R*JR n}6L?u]DU+y-ͩSPqϘ}aj&zJ:|wFֻ4m'$ !Hd'QD8u󂢊(!D&!2d^|>.魫ϗLMLѳB 9"ͣ}i, Dp'xXэЭib&Ij/(%u1)P5?ݰfp7TG5Lˑun(/r2Tn9YJ$|>۸/ %1b ٥lWʔY-*~wOʲDHX%g ]hLW-?ڶXà+. ""嵌fgh8zw/tgO/J5hc/rKTȲ3\ ^Sk4 R>xRJYh*p9W(4]S/W=@ٵz1OyTZs[WӴ2נ_9\'iMڐj= *XEUG3'WWPm#|FK2P3 K1iۮSi?З | K,gP1R] :-|>T)v4?JոY͚)帅*>rOY޸R%ypQ}56afwGT?m4lRjXFQjF@Q5jF0j0 0,˫2SWMkGSkgoN,&쒅MWq*Vع,M3x~eS+8?E~ZԾ_t @md0hi ~J ULXxiiKj}Oʲ]tI\ c/Ii# לQBghP22 H^ phޯ-0·&]ySrsJRAʲrdVJ}wBϩ$^ȒYrB@[[[+5DJL&S*QIQPVC5^ j1,H)5 E*² rrBIAYVkIqr[x(5xIh L0 dA[6URB˲ " 0\8+F! DE>! pXj4*n2( e D"8<{<7%K'ڍT7J\\]?2RX @eX.DD@F AeAJYJ y$h>T ,f3#>Qr ?V@L&S B@NJeX eX 1>5T|b/(ȑr%PDs}T_TDxg/,EXv8=-ANP1  .'? Fu͌]P,E@I6"nuV֑'jAMqhKR^PʲT�,j(aPHYdYYVJBY̫h¤bK>ՙ[N +8zV{ (π 'M @-O$7T r0 !Ȳ,C媝1Љ-R@KQv50Ճ X }M%!Ŏ Mux 9d#Y_Ҹsw@gKA3Xj4 0,K)dL&W( \.WrK!d2p>)7(E {5Q YDy8N~F պ+CeƐsF\8}A_JlB953Hz{)(R ë3`1 2:5KQhy LnEgnܼ}j7}O/''W7Nђm z4(={/ >}+ƭStQHV) ?̙:~j.6j^75+g_9N>K)˲/! eywnY,ò,2eYa ȢЦaڕِ/F 6Lly?0كX̞=L|H0G1)ˍNQm>l#^<}PCGF\:޺ egt+עY>`/w"ڍǷ?F[?yMZ6g K -g("j]?_LH߳"Џ[SxNCG5RTz)1ޢR'~[(r P`Ø?0/V8e >1)C U$173M9C-TǬ0!'q ȮpR]F~vѦ ġQ[QjDuVB׷ג@"*'K(xqMjd`Ly6IDAT@'"h8:}k^,*IVZḇ9@YX|Pq e2Ov^r.N1Ti^ㇺ2Db|$XcX+ ĞP6`s-91Q0V?[:\l>^ qy<* e"K(r.Pfrx eW<;1o~0~ &Y#!26qh$Tbl!43Ud>E-}q?~V|2PvƆio ׽k6ޟyC\y^MVsO8wi2-\W,}I+C_0 e.4W({p9&}QPIW.a΋yj.ݍ"vV2Z9'(=$$6|Ѥ&,#:V )6ӦiV vo܊kvtv4N'g +_B1@Y]@s1_ (#ng};ehmZze[0W/~BWԦs. m* &K;'=_NzMP~`iRD1s}STLes6'daӕey@Z~3ݞ@YSk>[}bͳ% oT# g4YJsE=R6c}An[Zݢ )3f okUF͵fU ыAwSQME>ĘB!ADF,ư#!A@5˒}UaX8$Y-9¯tXCavHQk,Da@Bllmr9˲MD;_G $ |"QU[sBIENDB`glances-3.4.0.3/docs/_static/loadpercent.png0000644000175000017500000004705114432156570020601 0ustar epsilonepsilonPNG  IHDR[EgAMA a cHRMz&u0`:pQ<bKGDM@IDATxweE6?kU'{onih2J" a cG1:fDŽ@TP949 t vC7>7}U+zʰ&WHA eCQ lC Ҁ ! qXUeB#0sFlT"vf"BuRAz8  _E Æ23h5m[ P#4NXBa%8B`Pd`L ՓҩQ$  '̢  1 ! UUZTgj 1}b\Pa ;ѨP@BwZ$jQtw%d֯tB@ `N=~.@`1<AJ V@cRS@4 5Տ73-'d%G!b3Q)a P1l IAQTĀ:N PA*`r2 %r }:Bu0s%>MBij2֩;V13 AdK_8@ #IU4!BUp@m~@0}$PCL ̅5-!AÚ@b@,`MW1DPP4r "l8U_8}`smdjiIL?4Yj"DhJ:CXk͙~ᅥI6"3{{1TaFHM)w&M%"}U|k!)kf(,EQd "Jlc&wtJW E`C)LJA*1R0\1J+C bQP1DH0 %엂C X``,4(4J=cFlCilH$xYX!( 뜈(v 㟮%;XB C b'8* `MvzAr "JZ5r}7T"$W]pS3~$)sɂFYk$if RlA*`LL ȓ+ p.,5Pܰ$#`DTpsX&iV@͈[JcPV:9=`S %(TI PXGLGMKߢ)8FP?^;+fYVU<O;o[| !Qk=/{.Kw5W\vn2Q-o>̇>ȣ[{>ݗ/zc>5^}7OJX~ o}e5y㵯!ۺGo,r~W3DoǛ>ɏ윫D =>& I@Iz!iWtDWB҅03*UJ3A#T|2~o=v3]N:]_e?#C1v3.^4SU-k<7m~3'.og3}8G= /|'RD1AW4PY@sSY'7 Os0:`"!ZV_A΀, f& R!6; 0 #BzNm/}{||ۤ3ok.}sGFFyke3gktΟFg^{.Yѵ}ʠ<3W}+/bh%OpXNL;/~8@T BPD Dd0 a 9Rd!2؜-Q 8(эT\EHl\m}s%q? _,`RF>y[6o{'pQ8QɊK%_ikwݖΝ$jbbPomSyp>CrgvR/zy+?'l0b XY?y?я/s2 ĐLIQYs}~vΏV]}q |7o__|y[2_/nU^vϗ/#xnC귾{͍7_~E͟WQ )\!3 @lIšy  B7>IiyKA=W^˲%;=렝{7n tf$63@k|Es.ͪ=|IcNy}`^z%ABqF6mo~D'_?=6rZPJm0#1K4qza 1n7DBmgE#rfëՇ֬+<ؗUꄪ}t}w{Ա'{pO=.mR,֩M@lRt׾s|"@iF˶:Kv]t9:y Ch9o2c(ܹ;-kυwd1]{aUB|~uNSg[x;}j ni}Q` PXbC&(`BYy6{9wpd5o O#klȲVnwǂyi/zW߸lnݼe/UtQu)hڕHY ;o'z/а[f |QwI_G,,]ݭo?#,6ph.CxELtxĎwM>@>gBz/5mGʓPaT!B_$E!@<"c$XC(ԝ>:9{x9['!=1l޼Uer^NayuOΚ=v[i|l5'c^9֖'%_vֻq ?|]-]U^c;n'efARƋS6o+xwy;y`07':G췞qwy P |}\xiEԐTaUUE`4[vuf 䦕7k PNLuKι7גXk)f2t+)`UypLvK57'=uK1Uonﱀ;-yx{;VDz{y,o+n \AvxɼO;ϟ}opoǦMk3eӰE^Zh*0 Tj#ٗ4w߼%N^h.e'ynyKp@1tUv³?W_Y}X'G6lcWc^?C7m4&dIyk6\yWƺ*<˲ھHy{f{aƱn}{?/3;#?JL5|ٯN:\; <*<민V{ἁY_9h'?8Co{9Q8TT4ڇYUCZd&kHjD6ǒ{oxчSߴnx;W#%g~,NH!Z7^q[^=mN՗ť^4'6PU MSag92S 뀚LM7 ep` Z; a&0@p{ln90+ .Ƙ)\rVCfnhYfn4Ѷ0@׀rhM"9-1`" c}3ԙok:Wda25KDƐY!&>BC{(Qr)Bd# "6yq59uWPJQe #o/ߣJ2 C! ڝVwpRӨjyL#]L*zP8(6B0 ̀  v6@4HȔ,ȄfePscDAb((QT!n2D!mGXDRs(j$ &YfE1z@jPeRDk(X /  T@dREB%"ܔ״Dt>/.skqnKU#"Md/O:[P5 %6UҎN*,5FͲLDbn x!,KeFnrdDB>.5jrn0&uE1\&P,y~wDYe& )!XT41 e# Sz1QbBIئ  NA68]3DM$]óZhBAD#U@øFn4>PUcf91&|eg*o^u@3cH_R(Tİ֪W1#|$7L8gޜ{\|+Qg&X Fpc4Y5d-H]uq ^p.-D`^oEsljrxas߸;^ܣ-6ҧsC4#Z!Y}W^z7 /<ole5-7^н7]W\h\ylnhΞӳ}U?O*D5 - q1 T21"bn>$q2t+$bP$ ؀c X!1QhFҴ!AH >`k_uoyk_qoin4|YTQ#_eրӈP!=S`)}}?///գwW~\l~~ݯzظq\>!#Ѵ!>*( cO:_>ёmnwW_4.ڭjC_BN$cӚ< Mw/ A;ö@@ŋD LPXkU)*4Z2} :ɟmƛA xW\ eQB: v[x5jUPG2|[6VvZn?uaWpqc]&/lziF2׮zizmΙXV Y ;2 a |O}{sEOxcY򋯿_u,uZ7]wK.V#*1]r饟ܧ;fw'\e}_?ovY)DXp᷾RW$l)UK#w~4[u׭[0ZNgddTz@PeSrPvI׭u܋^5e7RTİ 0*15wbۦ7W|'>̉?}nhc)FGLza{ңrAxū^㚝|[nyֳv^:$F P@ n/l~쉟ͭ`,B`Ӟs^4&4^jB:M]pns-|3冫;2{#f}kY T` V#OJsrJ*ľ`C 5@US71-Wbk3Ǎ7=p/{_~m:~垻]7hW-Gȁnʬ n͏~zzϟo(z6qwGyIӏ6kg~)aD5@1&ah/>]vv&E/BqUk#:-kSn۰r?POYO>:^:Y>(A$ ֌z)X&^!X 2j^ ,5:^Oa"uԌƒ&`Q;nّ߽\b?c0. kkv i6կ~ _G-qp]aQv,O}脣g*Yf<'3z>t׽?/[!F3\L Fpfi DPf"`QԐ1YU]^/pvW zvYxrY=eёḿ &45IɏPwC} % EյBV`}ɽp9 1sWOV1p&Fg B0l`w~/>iW=\x] ^s%]or^03*!1n*bh C\eOW">r%Eb+.rժ[clclH%F!lR,H gn('4Ja0%әYHoS7_0FUh qY;V\s׵I-x?;s/,+.O~tW-|Ԟ.oץ db4e`1Ȱ߁{:7l DgHlmT8b=kvhwت:1+ %"o%V,ick Va {u|]xh@ ]x_|ٮ-|f(e\EQF!2)J<Ϟ+{qq46P(47m'dylÚuOj}g'|6I'25r=ю^k7v_qQ:SN8Oi]$~t7`h4U$58~lh,oi'>awϺy^>.BVEs-x` DN[aDŽ(=~my[8stl57#f=0@),Ss-W]522inSKe ƠC jΚ&_}m+nM8F iU-E\t!lm[W잹{5ḣ>o4z܉{wʩy[=|OG Z["u(0=j0M.w 22 h:)L oöe `P;n)4 ӄi[d@f:cSv(s`d@6ar }ȁ^' g63h0m4vt?5fM1((o0fFxdQ [64! KB4 RfH*Ƭשe0rP8s n #D8NQ/fS)4NsH TR}B ~J  ` C#Cz/ D̲"ERF$P@@vQ#PrE#`pOO.RН`LbL4 $޽W1ꙭQuԫ<1eczvj8R/5}b4*7B AG$?!C E$zFS$(Ygɐs0@bz`vϨ?ק5*j-[bQĽX%D(3i9ՑXIp)FVT:i2J|BS t(d"PR8@j0l`I$T)I DdW'"rܚH O nRf~XkUDU \%!$Q&YJĺvj _Mq@\N T H# wi͐Pر9D?c( cx/R#5S[$DP~ H.h >E,P*0V}Uwh0Ub0u_VP;`Z@${KHi:T?`L⟡EkUO!qo@bo`f,$KF 뽂@SEX IĜLNUA=!!lX6P!HN!_P]Q4]'L&sQ6>d 9BQ}A%=gHf?M< (m9E޿-Y[:/*y[i.S,4 4$R4`MOyb |IӤ |צ],{@" "R`{׼ꯍD-[/ٺm45Mвk%t墑 &PCl Lu_k)[&jT08p=Wȷ}ޱYG@3sn .Z}}֣;mя1s?`؅<|}Տ}w2ă4?Xpdddomu{'e7PLVlSO' /GBq"QIر LL @Ka xo.{(F"1K¬B@ܢh%DD*@ />D j#,3h8Ϣoupw!˼x9{˺5lő Ʊqۣ)߬S\uFwՍUgl,yb^3^w#~+ ObqV_Ǎ~TF%"Mn&;wS6^uEiC0c7h)ar.JѰIJ7Yo0I|s:זtr7YF,dwa eQEp+^e,QN# ?dqIH"P{!kYZ$FlNsc[_x;󖅋W7Jln3\rn 8wsF2V \vۀG߬ϵK/ Vd$d?R k,6o[Vx՗c~;h󯯸g;>X|<} Wpm_v{Pe *+({/.I Rt0}[3l_Q   =&ĭ N=h1ZX`)ǁޜ&Ϛ䌦Oo6B.ܴ' c}id8+Yp) %VųվM l[v{ʽ=ݗJ@LdވF 8->?o}y?x1/zY599N%4vv?}k_wL,眼hם;]"OO?c*~ r&0N~E;_!#0p*BvdK}RwJA,'GJDo'_0rϚӨr{`ʹ9ؾQ} +Uߎ4ئپyٲ]_Kݯ-c("uD"Ss]2֑U|مlu~qê{<`W7{КPUNK`LF[Us.9 wH w+ovc?bw~/R ~#{ k0&{pnG.8 80#V?P=Ԝ,F,Ʊ/cCd!BkS8C9tvQXD)yeQEaMwbmgYzYgG>η{l,UAC!DAgpD{F#9Bkh)@`l*3)@{pvh]{챭F0/{8?DЧ?0 2,"дa2D#Nm.8g-cd]quOuק0Agne{B'F{HQ^omUÖx[ L`+K{9]w=1JP&p+3 2(iS㧔9k>mGP31 sh(w Κ,KRPmvU1c vH!̌wg^NS!uGNw6< E@0g}W>~l4JٴdtPT I|3w0-Y׮Ffc}_cݰV.[XTjf(h^: 4:O=H=,DA$~}>bsd ͼR&0)Lj= ] xLL$Q}&)(o~?Da#x^^zk`z0(.WWg~=Qo\Z On#ƶ-slҜ_FH~HJwɀ`Wt7\/OV6𕰁1`-@QE_:+EEe*9s@(0!Fdʐ`~z{pul.ںИ 3#3\-Gr3nK` c#V%X"HK A gKmκVwue?8wv=OBb) ,#VV+^/?>k 1zVhFJts"KuS#bpHɝ1ě7m]qt^Z"۲D{ r4Y^ЦT ʃ -h̝-ׯ0禍1/_yםwiUߦw^xZ:Na5y N5(A XJ_ZB7o=u̱y?;^}l(D .4`ےeJPkn!xxk_oxsֶ-..D?ƘxY$n~]~uJhbڴ==cԀJ"YދSc",OS?Č8ԙ,7k:A!3U%o\sn]f뮻ȣX puy`CXw_ׇ'qOyvхW׏i[S~1lxd BJhoI㜋Z18հ emr`nӠQ[Wgu1!@@͎ *5a_M7Kqؐm؋1]xl@Q;6hSI7U$dh@@fc]PT"d)an܁Te*sqeKCI 7u2T5AAQcTS tk4PW+0 Tc}A Q\@ D}0ئ^1HRPog$e3B,ydG\Pn}jKm,C}I2 NefV>+K"uF)pQ 8o}J & - t1ҴK 0ehFvNJ-)DwDRc}˖YS`w0%Mք;D!xd@tK@uFR _m )pM@ReW%lZYխbD&"QBe}6Rhj0Ճ-"u@$n.B2}'SӋVAKd<CٶZ&!gTj7| vˢm/qilfi/0XL^cmab95'sLEirwG߸^FcWh]l@e@ `򱲐3G!F-c &CSOZ D a H%c  ~MuHDTSJ'@ k(j#G0,ucsu` ec3AbEi2"P/fcccmxtTBLrnl&&$K4B3rYvj6cf +ݸsg1em['fݫ|>H*"$uuQ$j z0i6/C%YE3(@LI 9-I!L16S^  "!Kedl(I_ܿ.6moz mlJcBpNUd1S?1z(Be RV.<ׁ[&[sIh{`vUECmA<F#m%t2A1r('&tbH1u(z[ڳ`&l4vCuTzOjYHӉ DU2R2c4;{+B ^a|o~aR(˲^o @#0`ȇ0P"[~Ҋ \og34(ؔ^LjiP<7eգP:LQBPgnblXmj";هp%j6nxpWw9[#N\}%|QEPJ0k~"%9踃vgvpUuͦmk_:['ؾ{{*#S?vbN륃%ó?8'l_Σfuk|[_|ylh[7{b S TgXN, *KsG}G֏B Ai9 XFԴ#~Sl>69ذ TeѮ/?;>a£vf忼WY 3ܜ32'?cγv:碯LZ 30 FJn}[Vpwdh=g8_?^1Ce-hwt8/fw[-c3{ImtŵW}[6omRجf{ܭabR80Z$>h:1e >V$K(Z^~/bD kB`  4[R* Z^S Z~+ֹ(ﷷVKƮTA{ZӲl%|J͝7]s7_+^?s|Gްr`B˱uν7׍lm=S}w?;.6ñuڟƘM0j˹ȁJ/T jM;]Ws~@gSwk5'Y/( *ՑEJ2 ~cg~~}%^uo#9?>;-GH3/J蕯~ Nu. ?[n꫟1֍jyijGϼΛ?O,'SO` W`B[mwh3ؚcgZsK--[b=C]1o5O2Ɛ+V-ys̚ 3-Gz82ޑfÓ -o69(Ĝ)!h+ׯY{UdeR2kC9O~Kv .}ږ%??Te_?Ï8xiolw_\pѮO}=E;-|#>/ǿg(2({ֱ-X0#h:I{WLTܑ/ ,W`FGUg˗nnmZOm}ruG߸W.ۓ H X #AuƂ8hlg-[6Z6ygix΂8y !b !M'VW 2Y< 8 =X;6iŲ靷tݚCE3RRwRD?q W[׾;W⼋}A+o/ӲGUrjPE?>9r9۴iO/? Q??7pȨ 0'fK8!Bcö%3)lkV p#sbbќq>V/zpصnw1LlPh4 _Xj6m. sǡu]C1ڂ}}{Ρs7Vx'iʸ&#!J:Цryfc JM0Fvceߟu>3'aaE-P#$4ubK鍠fdLY,Cb>pm[(/~QSu]ML4hP yB,=87o|l}}{p vzU)/{F%VUHs&': Te(CdA1ӲlߥG̣ժ;s=WldC < gmˬ8jSϝGn}x uF5Mf̀u&"@ze5P*SaHh$..k~꽯gߺ!-]@D}D!$!(3F&<& 1Xe)F(*2e4@DQFgb[2Jx>hN"b͖a/:9}^|٣8><&; 1@{dkƽXA$ccMr^|䋎|Ynދ/n6{H4kb[e䍯x鼡Y Bd@_컓Ptːyh5K̦fn .2 쉧 apE@aVaʪDEVw#D$w{ 6k!Henm@n;hѺ'XOTj[77ɼeadYaۮ>yLfUhwWKfv㏯{*hf4v_6|y+kټ*Ut. z1 +4Z )*Qۻk䣩(HNLTWD6de֊{Dj#UY X>쐃zޓOm`԰`mK# !JUUwK2Z*Fm[GЬy bUt r'Rv}BρGj;-SX#\f24Qm}Ó7\si>kv%-^oSfc{seʣw7l۲2 N=Mg3N9+3YŒ=:uܼ隫n޼vi2ʁe9^bv>~#glٖr'cɸXzć ѣNмjdv <45/do/99Cg7~c#B( ւys—` >O̞mȧ>Qϸ}]vZW hŌѾU3^elQ ([~UUD3C՘O_6rp5s&ɭム7n$NI}yV/ LB3֖DʳI3Ӄ7xk ~\ZBS6s 7!R8 O;{OcJB T.CDֿӔ>SVh֠25sBSs+)2T!r>g6/;4V&?h*rڊZ*AKq_W751mL6/}E6R:G?D h Ř(C&U<=觴R JZ k:WI'[G/P_ !`ԧMRn@)Zc\r%'$ZI  UY]Swa 1[AI#׉4ق q5qq nَj]?>D!zzn8[es9an+xơSYK8hϣ|\"Rm €5~rbt0#IRJa`-@W7 h:P#CC&mP4=o_J3Sr#]HLŕzuiM #缒$}`".!_׿ϻR|ik̤տw3.!c3?r~y,tS\+7ߨ޼o\Ba߸rVMdX/Y+ΝY]3|7bo^^_7ЕAD^z}Dw=kJdǩظS?-JZw=GQ;έ.}ſ ?1>d{7y-j]/'5S.!o+&r;dtݩe;Ji$-}-G.&D>sHKƠpljcܽHoxIABm/"Km:O|Lt-3_n! Ko?s)΅nG/t"*jLԩ uN~s_k>Kql=%1dA.H[ Ғ(Q Ct#e*"[:qKץ6L[ .&",f(xLxۇ_'u/wK`)fl&wԴ9JU~̯w/ۺ$)3m9#^YC4@Ri!8>."|dWpxBߨ y/EECc4ĭHRy ᱔S7<_7 ʼ3NYœ:ZNSIӈ1]5Q_1E DQQ0iJvϙ?{͊uɓvjϝW\n$pr8}pޱ~TѬ}WZ7@o藫#\.p侲U_*cJa(v;d v"L/ԯgt̢C!q@fի{MRd Ty,xÉөOݭDUe5rHO߭ԡ8wz3'g=ތ;zUWu˿|JoWVw~YEY.(9bW >+PزS s@ݮ6,/rWʏ`l~#6iօ6Du݈bB$Zh:X `Tm3Krg>PFN{吱SNp'JAm kc,q&_D7p撹ohȿ~dݒMgMP/ |yWڏKTOe)ՐCWFtk%:SZ?R=g9Ը9|;ߟ(ѝZ;l#y`Y_;WWAoޞX?d_ş?t{.E;WH7z(=z`W֑,E+[gQ2blP]NA}#3M4 $3DτgUח'U9>U^_~MWy7U*I5q 20"NCÿ%Ml c Y^n{+ʟӤyJ>5fGfhccPfmE "SA&Dj@M/ȷyZ K^57ח Y4 "eazOIZrXչ ڼ5,)d0p~t0Ks~ :E:_>xڷa"H}}g?ĨVuA]fR(d7z͒&!$jIU*i;+v9u{$>5;u[`b_J=E5 \gԵy8y<_?GyAD^;u ogd=q5DžO0/򛝱Yz3Zkħd:~4 B|8PP?9{A9tag7E[@?zFob7EԑE?Te]gY8w>Zo\|\>iwu\}\}]f%s</آS{3K):kI2e/.Uϋf}{yg<lcr碪4~]>P|1*䉽]"{io.|gPVwrBȹl6 b/_x`oMD)dRc{!\9Ьb8Ռ jiI|]U,חCsQp=gͣXUռ~}.-V{8GZ_Ҋ"i/]tȜ>ܥ1Ɯ7N2L&w87{?Bߌ݄d:ch|Y h1D0@=T43͓HoD26CcQlIIYU J98xƼ}^\|Yq;τD *^T]Y>ccsDZOy[GyB3Z{@STFLP ƝYoȵ;{sU~eW+r]uV 6!SMo42[G n[\?kj5ƒaSڼlr)QJf){fGwt`[r 9OQ"'W<)6 <8tkPuC9}ڧ0x-Y Qۗ;l]^nU{-lӜx$h;|'-˜8QQ4$rbs̋3j!5y; ͊`G욼AInxcQE9+ rr\NZW't*ZH/rNQt~g?s.{w:Gch;t'~\Pˡ<輷ZZ>_Y9_gA䯿&mǫF>1b߃*kz3BfD( 0r`/@T;(ש5_5$)ltB͈YFI57SlWUTOzJ2SU'&/ wNĞ 꼂NPUTibUU[- wA!׬2bЯ#JGwק:H?%p)MT:1EF{fuT'I TUybǐ=dBO^x=UEAuՈPI@\""PWK*UΥ1ID%ׁL@r&U赔-ɭiʃj~"vV$y5t_5i>!C@*ԣ*+97o>`ޅqSxwF{ 5J.rPWE3 )Jd%iJ@2Rx>7m[R $|>ɉB5T:KcWFЙ_2_r؎yg},EQ1̷:rS?tlF{ »?og1l{` *$ r*jQajE# EQfrJ^eJjTa|'cD]>? ?54YUviSBYMXն(QCAtMJ` -sR Z,n<3ԻD)SH_y2^|i`Juґ{yizgJ9V& [/)ȬnvSP/YvMsKCkEAŧ"~„_Ƽ"d)jIOIIKIMK˩Tw7ƆO>al%$q`Ɣ._'_^IvHy\DBw$unger )$eRA;ʠ|~REYVrRrJzD D&)Na9:ԯ*͒yd1hnIʭ<綵|ѵNRQG'O`t^)0`䊏_]t-[ĤBfT8LItz 1hr"& k;jKøojs lL@txcn&O*x!C8E(Xy+! $lP'~ũy> T҃;uMP=+|/:xw sI;wKT6p' mߩ𩟽 Ѩʮsg\@@=/:zҫWb; '|V/ɃdgZ@AݵKڹ{eYo J3[nW妧eɉ03D^:=u4u7o'>*G6k۶aL'U5Ŕ{+u\y'T_pǎx'cjY8n{kBnyC3c/F{RNFzϟ'8焏#Zf;XXk},~ghH/m7>Eo7UȑB%L ?OHpySZd;_GcfHB{%[_ޜx3Ty~wtҐڷwpZ֯o?zt" ٪'oPV:8iPW(Q|:2+|ޤ>!A=E>~2I P~m^ӿ]zh % } ?;*sYd#nP_][  M_h֊]AV/enogOrwFQ]zIա{ |zڧɛ_7S u ן}jG#;+D^h3G@J_<뛃1y?^x.G}^g+s\9XkV[f̟̐;cx ]z9~I%szC UOb/ZuJlC?ύ8mk0D,ضc:صBαwXğfp^2}owx#7Mfo`]N5nQSz~v^ŽlϯuH=.bwR^-,qG+şNl_ njλR >psSt|>u Sݹ@H/nY7Q3-_QxDwq=#62[pإqd@ֽ!@Z@wB R4 O ()⚸2CJBƳMߖE#?.eank%Kṹ3hun8qGgC_a &P M[dZNoM{]l`ԃy ')78ւs6` .!02Af&Ñyi^CB2/@c9hE.[㖱Sw:oSp`ss kY^%ť8 6fxb5miDNK*Kp̬d268a+FR.#z{}0Xod2[a,%ZϧB8$ףV$&xawXN?euG+Y5-KסFX!2Ȧrb/Af1Rb`d!Zݜ~nԳhh &w>ny IDAT ŰBfu?6It)r'>2 f5DJіm%/z S dɂF8qSpZ6I<Ĉ%<΀I}@y`&֘tYi}lhhόY-`]`j.Qᄵdן8\ȘׄMf@DQZ|-c|͕?iu;XتYyb4v3F/z2Ƿ[H9s8|zE!Ժ6P1QA朕6GV D&gvlY7$Ҹu$zD Ϧ.}_ O,fvCw-{=W" 8t(Z%rpEJUmR*ustb1xt&QWIiqwP#rE9vv"W$` ~$=;h}2؞?5W`N VW%Vl=@ -O?'թ]WBjPdIJKG_yQ( r>)|î@??GyADE!Cۃ} 㕇4ț=wzK\م~%T}e%\F=!E&n3 2$H IVٚ}n_<&FҬY%e4ɏJrMQ.T咔 9}ynB1Y{ϺJnRt^ު E֕76g4y:wt* D *BXzM Vӕ&㲐E ,;E/}^Xw O{%')9S-+φGg ~\gBrn;Oٶ֖mRHyNn0ߕoY̪T$Ye @PuC+[п{͍X6L["C!dݱNi&c7_ P ݰ!gU`<yF  2ܜ(*+};&n)4V`EuN!z\@'[3-!ZR0h2:xV˧`B8qrZn/H|4Q,RH$24}s@-IǺڝfO 5Z#yB f=AN#Lvp[e5?{/n1rq65=Te#;5:EŠ5酳ry`RfF{yx I?p'dm{ ln ))NQr"QʮIPU0oP6)vzvɽ🙤ͮ!BH8NJ^ҧg@P]-8WUmN;rǀPRyOJkSeP+֗P9ډp}mG:gHصh38Џa 8)v N'\PFP,4R(Hȡ`8.ųql_#y˞QS {h'u(ԧ@RV:f`5xUĆ T_X'tŴ^<3-LVჺ/͕ʤRTzqֻ|QaOxzEEݎ:)m/J۱USs]saarG8-qV _`<$ 1YHrH w"Esÿɍڻ # 5󚋱Cd4e +oIy\xX[<_ߺz !0o]=k뷮^WZsCoŝ|nE!->KtEȞ$:qLX,/Q8rްHbӠA]dФ6esg|p{'_OcL\{ӆSktK.2uC?a*ҊExE j-~Ž'"rꄈϕt˛)spjlS֔톣!A ije!Č~ɾ q#Pg F?WA$RA] KoeSNij9JX)+k ,l1jnl %K<1[(BAO}Bs..?y]dYLY5Ⱦji0hהRf'WW32U-垎|່::{{|/oUq"p{@QR >W<ڒm 0kkIEU FN{([Q"L^S-ӃhjS 1bL؍nFY`<+ YŶ%1&`Ŷ (3jt'Z^\]hƎ-d'l.23ƅPGKЫHb:VBDvP>019qjPU^e];Vzj?^Κc% xK٥-$0zjbvX@ #~aoT8ŏ WGL (LhK kGXUN%bC]rPzYڍpߔmmh}CmXC*\k+Q.^o#TKeҼ!_ߌ~⿑_ Sїwe+q +|k- &ܺpckg fX|өKϗ3o4E[i0 1B=%0æA&T_XWox 㯑VV%ѷq{-YX<:j~~_:0:.zuC$)bE~G7ߚ gw6oUsde(†:kS+Y fwZ1w^F`A2F"&jG_"4dW s׆[.oHJ^0f0Fn>֯spU|^4Ad#u:< Pxm%&ݻxX(| '~lRkIR tu˂CF-/BEDT6Yf5+AB30m6w9`RfzF;QBۏ ŗ/ <5ڌ# C^=bt8{T=:y ўbDڼprVgty<]y"ggUeݮ.# Jy@de%flK9{;:vQ)Kr0p .HHSATA*B^8S#![s8#zOd0{_Y'8AMV)B7z45ߞ<6c^N- $-H~Eb:goW Ey֔\6uxw6Aև=E7EHiq89)Ջ?^<% 9] yYRFJR:ñew^IGI 6#w`h^z+RlFՊș@p'뙊 fq]bu$A,t !ȉD "tJX!̉ҔKM*1+olBT2w_z ݫ oo8GW]xصMvCg]"<$gUwHS U'};g)yضK\Z`.hhԿS 튟Hm42X!&6ke4ȔPgMD AQެH(dUKTe* @-C{h[u{s rQ^t>i/m{nbn&&} Nʁsx;Q9 s4m+{zB/~LW&HęF 6%\ YBL}/Ue(rZuH1dfEbHy@a#83!V$F YF[h^;8 +W9uzfB{JRsNe+ݓqXwPJi3a^ IDATry5ה.ށW<ښ3~͎% 2V49З2hSgT[Tq,|nZݻh_?&@V lj+n릏}n}9iI|fCaL!fWs'7)zR~-]x>U;& ί7qYn^ 0הo.̬]UJ;}^Ҍ/ovgDA8pd?*sj?lVy]S"Qՠ[2Rr3aR2t59EH owq= adQHq` ~XbD5}> 3iJ8z@fW# :1i&If,Yc3R IDATxw|NϽϓ$vl{VTmJmUJEQV֬a(GD$"y{$""'qs9{={@G!B!B<ig@!B!Y&!B!B,B!B!DHpE!B!" $"B!B\&/ kwkFq¯E?+qM!B! E+sKzu)iu$c4ކ3\qbμW#ˉ;̊ݛY% !B^+4oވe Y'-E K:e?@̕\%/w`ʸ:Q 1ebG˰8/̝vGκ1lI]~1vL[zRnҭ``2#s7nQ2o ]g|RH'/Xje(;W& 5mEqAl\Sg!NqQb=eS'pMt+Sy %Z3az6wűΎ]m^!/\I(1?\ !B!Kj=b䳁\}._V.KvF^3'ʝp.Ay/'|#29-ۢoӵ.yD_c: mՂS61SgFXÖM#B!x 8VGuwK?V%VܸZ% 캚8{!R._iJ*-7]^K?xۖZ%7_;L8mAL&ɖܟ"fsb%)xS-M:]~*+޿p#AɏcJ^5 !ky>3A#MbTwڰYLi_0#DD^=&06Ҳ}}SfnĚqB84aNwYי_`?Xj˭I巧|Yikbʹ:g coeNg1aો6ْmylҝ9-oukՠ`[CITr!bN[\0)E—Yc2F3U,slь}6Ase.l:^TvP |%;7`UI)V_2>HrS}?zMwz肆u9oja㖭U[xu”qVy?nG'oi(G!B$\1+|ӌ{*:[&7[Dk:tu,z^hGʰMTv׹ų}eQa2UQi67)iLfGʟ4p8] Q$F=z.B.5n$3X6m`繘L?+Eq}i[RAAô^8dc[0Q) Z6^p + Eг{cYe Kx".#= n"YΞx5W|ӂD&Sؔ]DŽgy7҃q/;w[ھ2S$+kJ])3\"پi摯J,D<2+h9|ʍ}|fa ;!یaM:tl*M ihwɇ< yXҶ+ز-x`I'n5=X|!݊l `lfaؾ{ob~vҳ1{&\ϸcPH(G!B$ +/˕r_*z ao6c_cxcsM9oG?*lbG',8={$~BHoʔ+ {b? fH,c 0o` eaW7$gy+vK=?l3B<;f:f5?_9EK0M{/&RW)]bjcrqp `FN}ȣXIJ8xßP쿂xI4o^?j)LFut44TUVm+{ʮ-Ky oCVl%JG#!|ݬ/dX&#54MCO֔ݚtȾ-eu4@G˳E㾶q{40Xt9kT7I!B!ʕ#{9cm|n# :N'm ԬEq#XB9z`"p˃_  J\It Gr]_hU1irdG>N%US4P 39K:+ZN#, O%C=Pb:~ә`8r#)_ڎ38sbPNQxv SF^LG [.=EXiQ6+u3ɴ} ᯘV+ʮ57!dt3Z$:΅ eũzNJb 9y46b#(~B!U /MY(WnZ!w:F 3661jixC!w/HvE՛ޡrȪ_9 : GW2J7bZ^L.3hջ #B {Q,64(Tm?Oˍ?3Ltbbm05Vǡ?R.Rt "RX!<HEN--s7ns>*6V>W}aWU?ڷ<JeI|d\m`5c~dogK1;ctOE!CnڝdSXoEm4gٶSCԖlЯodҎ1)OsxŹ/qBq.ûú{(B!B\"Kjv[kW9nN}ּeB!BۂB!B!+B!B!B!B!DHpE!B!" $"B!B\B!B! !B!BdWB!B!@+B!B!Y !B!B,B!B!DHpE!B!" $"B!B\B!B! !B!BdWB!B!@+B!B!Y !B!B,B!B!DHpE!B!" $"B!B\ɩ 47uQv^B!B' ?Y{3 zigq1i6/L5(! !/եg{JEfEx"Ԣ]f"zLr=Ib>y~=slx}9|g/k`ϗLVh8n }<|&VBq{YfI>6AsY:Nxudo%pey5Dk&L& fW:C>~hH9%?V!eX9h<6gؾ}[t>y . VԳЛ_<0] lPj:  /v_XӇTO@.]0%,[,g)szK YT6nD[ o `^Ljjn,=XVh>_d~]K.u+B)`(Hmgfx:k R(E-I,۲g$V o=7fK:iN*Jގ?whle9N{a[աm :zN9w"fFڞ8(*a'߶N/tQmҽzN|=07~ܱuP h&SXjģQ!n?x 맍aҁkhT(igN<4ZP&-Iv>nS*UH%q9cF*tMC谦:?-LU*}T#do.i橮VVYUX"Ίgnv0cp:1;I=0ѰIqn={6$7|44z4('CPtF%<I߄0{7"$?+v~svCY_H ~9 -+Fzί~/*e"pJR߫QLnx_ٛS_n>9So!w ЏDo1UW:9\whM шQC\ܓ.W΢~PK'vVL/; ݬ2oz26F\VDv"طtbMM+^ 4ͅDl;)NLG}ՙ*H|5I`V [ۡ}ѷI#ۖbc>#V|4Ј\џFDUJ{bZO1l29pChTCйʁ8u=X<ݹi3mBd#&gNP oO{tyCVj ext?yܱ6oYg`oӅdΊݜRR2W/z_Q?g6$GnEZ3~LqMW8b;2I=.gBp £KƝV~;g6"*b'jTS F[|;{3Rp\21mA:6CJ')ڤqCW+KFP] R8+`4c~`a.ӗkWaܧ+o6/[¨g#h|s#=:|]3{Z3[w `u5sh.}yk;~3u)!l $s҉rM_\֦g~gsO%^@ۺ PϠѧ/&꜏cZ0hSؔ]DŽgajAѺӭ#mGi>>~0iBdxױ YnYˊ++ 4/@D\8G{&D峜=z t2d 7`/#ORNccܮSt]z6f~ՄVԡiԼ)hˑ㗱6ɴ匙9`MIQy=5bǘND `pt^Q;;СrNI^qtI՛f~?60d:4i\_?żES5[m'3[g/w"-`(ِF0og4k1Ft|ӎp$y?:d~ }Cc츕sœ'E<+4"î`(B/%ŒĿ(F~]{|z1}ruң  f~x~z-l跢`O\OÎNi|2 >#iP?twH&G᳘a8h3 2߃`4V\%Jon'm:: h*`v(۰6QMZԕ ̾L"Թ%-f|œuٷy#w#yhMgر+oQܸG'==954]9X+Kޚͺ \8ՎQPQ/3X8tAqAS?sBtR>~cMйc;>nN39r^4P7q󦁲or.=[ޒ XOhF%ls 6'گZQ.-&h͈S9׏cKlD"u-G뉳'p|(u(Α2dڷ:| V=ݗf;Vm?ush.\& [}E30`lʋKQPPV ĂS̺W29Xfe6bc~1.l3\h('rc,e?+\0֓3@ 'g[pZim6C!? .5˚ьw&NOԹ^?i`IpF4כczgGt3k,0*Ɛt1п]%V֎9ӮfqhqmӽKo\\j{:$#1U Nu1i??+PP1(]q D꧂ꀽ}ßbU:ɭƆrM_#U6PurY1a28:W|܄9G0+SOpl^eI歏{9tŽͭ YƪNXlroOl-7~X90c6ަh LlIHHDc O_\1*0۠Ey_rB뎻SZ%m6S-ɡV5:|U֎Q>l|fΉ%x9 :XΟ἞彭Tu O%CSBիtwC:EWa4=xkcq*LKSw^ȴ} Tv(ēd@@o_Oℋs=yfΝ" q.T s$'2uXWF jY ~) \)R,׽-vRQr^,!'FV9ӣٺτ_vT}ֳR`pt0Ã9|֓>9Np{'ytkl-UU;`d:6hЛM8U1c6}KA3pT@_zEϲo[Zhi߯SW\}Db2N+bxep_^~N exNW^C?ɷ]34 |-usL=~պr1729R+ofU{bnDpT:GiۗoSd:]ޝ0փcBNg1qКgJ߭&sywu8S8S6\W\Úkֳ.L Y~fe#+XdE.G:SP=Bz~}?.jˏݧ1u>˶"lO._,g{h_ek&Ⱥ3*IRXc#uF.ȜĊ=Ww.cxȔ;Ӵ(,'4z+펯dmTRf"IC!DE(vy'O]L\±{IBbeûbm8#_Gd897~K _5j'Q:?GTz/)иG~F6ҭ>|<*OX3y.!S绲9z9|eqsw'/H7Vճ|'~M^N\9mtVM\I?UQQ[lS^*Tm?O~?37@&ұԈWq(99oaJ}YXlpUUb3sΦ _qӛu{1Ko}7q1ucwOoy⹾V27N(wbu/qڥ?g;29s@f}X=RZ?h`dʁ{aЇS~5[eAXd :<ÏSΠY6n8O\9Zݑ;V>i0Z,v$Cg֨:|M{fۍ6'z~\ͰJuG5]4|(]}MK8.M hZgtlrlbՅı^t҇>m:1Z WejU"VeϷ}5]`'s`l6Az@^.nq>͙֝' ClYw\:;`-ܼv2lBdbYsjǏX(Άn^ fAL_xeۘbm~{.gQL\ݍ>ZcѷUzoOav8*`fgj}ai-uһSQ|S?Y%VܥOlS^M+vT_qWRi}r_Z#C@pE7[+5ꖅcN5;rS>ԭƆ/};Kjaeu7~jוW|?{m1eO57f] ('C9t < t+?ɬ-}BZӜynKAǔlW\ha^UQlaqj?zvZh>I+K}o.2I8i͖n ¾;Ю8h3dۜ 9kv}rSG>|G;, ԃk=G\F7}B!ăKBSkя>z>} I)RPc6W(\& doBLTi$~3JFޚU(4sQuc~lm܈R! .*ד Vu_ qtju˶f;珌kdVuƘuˡAgռ1t;'Y i$3i18O}v>2Y !scZ, n?E{YADQͣReWyWcX^c?}ŠP >a 1-&L{XQѳS}8\ݞFN#^rvV+uw 0xGCG"?q2 5OMJ~oT<' hؤ87=3/hm51?rǥ( ?i ^4X{ Z0ygT7?žkKU9;/hEڸϙ#30qŨmgpy\+˰߰h/6 ֭8w*ofdg^Z}3dOpžo Ff)xУ1BXm >~PK'vVL/;mنަn׈ ľy#D .{3v?g$FTw*GVu(v=1i"ŵq5?=.r꾠7 KQ{-G|tkV ۘ ny, 4"WQ;1WC>y(|sb4y0Nfʪx`I0:6\ҧqI y{bg"VO[`;/&GfTpTs=^'|]U( ϘٴXK7uqȂqtnU??i].ұ.o75ϲ6iml!aNzN=Ä&_ҍ%f{b?3=ja~:k~w b<8@ %ҸMN˝*6|τPӋS2fRœ.ܯ33"kܺIQ'X?g<] 'N6μǔ&0~ 1>\jOn#Tnߏ^$,!΋KqU)T_Ea8((uMJ ԉWݍ$3q暕jc Bm(wԨW0sP\yNLٲ|qn$ol7Bu9[QymCzpqtlKkaC;&'ݚmR{@& o)_IR3׮ bRYF*O:ioϼ#~HArx('aŁϮtcy}n(3"KѦ,a*extxs=|7ヘ%SeR l|^W8{UGkW[m3ꉟ9Uux_.IQ0̟I녗~# ŕ]t&S+= WiLx+iSmylҝ9-꯬{i_Ͼ2ys,WTt|ÓCSz0n%4`n UW"W6J&tk]0zY,3YBg׍2 .U&,N;3oG䞌\z*yՄ^sL &xr>MuLx>yV-ފxBaVCT{'mԤ5bֺ?Gcl߽x`ϮSt]z6f~D䶢='鵱x".#= n"YΞIQ/b?ڛ_S7Kh5 ~̴\9Ėm:D Cy/C=wē}@#=INؑĕ&k gm:( MKU+ Mߠ')ݣ,(s`!upSS! xn`F*%_S8wsfT_[*PaᶋݩεTipkUUX:TCYzKxÎu=/*ܰbͮtgS=ЮSur6rL/Fz fwshSLFTO3Vt6XɌ_V:M Ԙ.'U}=ze\e\1+I C\y`e,Gi0xr+|vW,},+\׌=/pET981~=A_^1ؠ^!v'HVsćpY|$g ;v-?Wϊ|=Sի2Z%B}^H_rBIwW1sG}7;ĩ)2z4Ӧ ĤP쿂yId#}olM&s'6mA '^kZWcSXiO~csr3S ((Z( bGpt+a.xe+t {'󋥚֓3@ 'g[pZam:{n;u Nk`M)CAfKnI_*}pxQ]ӉU 8Y(pU#ny5 s͜* ܶvC5.XeeOSC*~ IDAT 5PJ>J4BxIB NB([\ 7rvD']<o)]'hZow`eyWQ ݓzP RDO|(Jދk)򂨠(bI)P $! 圳8!' dgf;Do]ç2i;d+. DSx~&̵HFeUGAm5+]M$DƱ/`mlWs0k/5!8Fk#;_<0Wqqqt&Fsh0[y{ȣ,y!K2e/لYx!Qt(%$.2%OX:hZj)%lug^>Lo33$C K2q0:ֻx)رӡ5[.&)|hg˙GqSU!BZVA!0!dU_\NE[y $#.%TGp X(a:vO rx۳(C * Q`1`W"I-$<=r6[m{^ 5Bʎ,Afgwhs7PW"JY£%OzSLi3ǃD;Z4/A/ d[Į,d*4\!kb?(us+';DUƫ&ND;/"dq*Fuڿ#ם(DEbg#W˴kE5IBJݹ,t!PUZKd7n/_edEՂ*s~Mhؾ kůLXKtNvH}rrȺ{FTX;WDVo DMG!6IYP%4eoLA['=e jK Qi!MƲ|hFN⋓yZ?UY鶖EjvĻ{g>ͭS6vm3y3u{d\4MA<ۀ%6lO%4: ٸ=afz<1Nw;#5jR`uL>sg($qe ȼ Bΐ FY}L۪HQ>!)T )`P f|#}Eu̐(0i5*ȸ [Į0SڵEP #xNN*'p)QxBRw,ULD>iFJAI8*} V-y)/Bw2|Ks8O~t[ <_{C=<% ukI~Fz("<>XΠZ lv]+7JWr6m 8.ΦٜY|`q13;#F{hԾmS3OstYuB?$.iw|qkURuїEqN> Gj@!'%ݼ[w2v ks{\hAbי1 0v{H;% #ZR9w_*y$cTMiU ?^%2¶wActu;c c\ zYÚR)[͜:|+ [Lrox alSe!@ϸK fC<7Gbw) 50&c ?z:؛.)Xsy+7LW<߆4v. ltB2crE-Xp,aĞQ=v;NY,:KθiCQm7tbe+}H-U /0n^$΂{Ŀ 64eX|/t#ql-U).FX=yy{lG@>ES+"ǎIz{KOc%|hKXC٨4Yw*|>uc=(>đO{ [J ":/z];>8>( \(Z=Az[BYWP ;Wttttttn?;*9(QQ\g΍qГ=/yLJGGGGDt{{O$Md/ ΪXl!k ttt4D]q?#;utttHX蔃 _Ŭs7OT{rEi@Iٝn¾ssBGۼsKxf3kyJY::6r{?zzn] KY=Lm~(7A[ĝbZ~ =UH^ϰ"8!apӞ8d^a߻X7^04UȎ.MA£kI%<Tm"`p8nηZFrM@mn*eݮ܅c;ZQE|w?Ndxm-a87ѡ{0kXڤc=iKGxzZoz[vhs:m/GXf ~x ̟8v|7ݼ)ZS(1{T#qis 䙾cYy\%j7; VǮ $(^.s+_{,5ZT[x޷ZJDc{Ze@n$Z<͌e߰;gd'k;{c }?'E/<rl 9̪A^_a4ùiKƾו᷃s<{~]Żϵo Jn2gn8ʉSG8rxax(RNũJx |8S+#-'I7ZQ ̚CRLgtfsB? /9dƖ+r&9ų}VhFϡ#B7qI_dYNv0~/A&8Zmњv=Y2gE >b<%b/ʡ[e b$l&5Hɭ)?Ϟ! $2 ` ;X$jTh>@$ ޞVM<ڨ[GW!i3__B\c'1ߞ_"-9bT Y1O+2R%rAUjRGEm09Pnܣ D&uRiD^~\ڻ]S_B ZK MY5wǒj6@s!wݙlhF.\24cވn#03gCl%֯JSqVѩl*>"ULy)}qTxr/YWW&zI:Kzz?+=< yĝ.G|(HzF /p-zvnA?̝Ţ}VyWwb:=xj0prEΓ2gD@~ZģyH4KZ$+cD.EUE|vTMؚ3XDqa!mS60 iWIھr8RؒދhRKfw)i$& Laޟ_YdmHƦ<3}/hA}{9$>a?exọoHn09zvh=ps@rd8&|]eU#_f4q4.Fc,;ac6vl^|r52&f>,:g\YTv%QDSD uûBh:(3|ZAM%x@%ƫl!_-iUƣMimwXbvSl4t;D`z}:m5d}OrBBx%<_>?g#+6j+ӳ%\p,җЄ<5}*]0i{(RԪʿ 6ANB9FHb-:8(u£*eTP:]8+gT;c2Z:6S +N4hׁ0ȴqL^Qh.`Ìe,ha;,hw,/c |;y >`o~jsER)m}/~Bz9^0^+29ɴvN_~\m8J<_$I}֓r-Xg!L)r3TMт&-b+Avo]/Ao ˒Xv3az`(4՝ёkľ͔ܗВ_wW#W`]Mh5qބG RBQ Cq=dHދY^w ppl`̨ LOo>ɉOF]~H[\M%*$9"{@5?:Ap`mzځO|H65`ğ`ϾFoNN|Rd~y>??!>kA֐.٫:^RAt8OR,DខIȸxsQ%2 v1lZ/\6Wߗ}xb8W;+ i{IB?v ' .G_}$^}6<[uV?Ս7jO(xxU=|4ki [dg ;2*=l}>٫#ޝgma9UeH…D^oY"[8ׅO}V㉍WMbt6ȹYEYA*q.UN˥ NZwƂ<5ID% m塚(@((kp~xdO"kEn_wL ؃V [l!_*B-HBYA%\ ^ƯDo&vY}icG2U2 YP"P0 J)QbPQ<)4n䨤VIۘB[{Zuhft&xϋ=P hLfa6/϶Pxfrogτ ~K8;2_vC3zG9^Ji} a_BC~R.dbC넇G"A^$ VU)KhEYb %2>]MLy'K~OWLH5w'{{^9sŁC y~8ָ%•K L|9 Ԩ ~ @BUEEF%@ {ϐyԪ&D}ѩ\̑hs _k۵j}y_ؔ.3K{BjN4)art0epG{^BuJeD qiAѳxp4 UM` cn.S\\qNEKa;A:Rj_B;7K\FcKމX.Eey? pCn358ΛۓmU)K8ǣmBC'5qKt^⾮q+ [G:>~RUB MR#ՓPpuCiI{X_b;5íh]/RV!ٽE3ӧ?-FrV $#& *ZGq^Ԧu뚥VJ0QhH8_iQD楧hnɖO0$%_ ܊N# 5$, v)B[td: IDATzfbjJY³U%JX,['JMM2Y2-~ab{|wz֞x)h%W t=x4^;^g{7XG5=q̘ .KlF8vٽ& AHi7KhM?/%Df{ i>YڹȊMvU,K; tzSDjVhn02.:vص%b9q6eI*n(}Ul{r cƲirB>?gS`<.-9xb8ϝ yȮMTM YFLŠ Ie#"W'E%]p~X{AC^;Cm78xR'zxK88'!LA['=e jK Qi!MжԺ ً./NR)yR6}G0'XO`Uj?+ݾR͎x7!c쏫̥ ڏxp: 54]!s%ĆIc9TC8Gh˳J*j661.s32@|;nCE$T ])?ZdYnǐkS$5Y#Aߞ~" 32]'ờ6 #*`}QImyA@w&!! L"E%Lۧ R-ħOCJ?M%Av@WN #۵R*T"tz@II]yz .D2%jVH j1@B B385pT ' ҞZ1|T8A7]BYmIt2x5Zȹ,Ti=pm Oj gP6o; 739g1c3b6طjƳcIJ[Q_KK_BK~IK^;|NN%˴Lnhe;k7ji{S:0CRNűʵZҵS*Yu0`ǰaJ-&c- vNar 3#oв?ԌL=!5'.⋀{s8`R2a4uE)$1FhYbv,fbKVK^B9S]jK8_N1_l'Avb_DuK%Ƿ4#dH o[VxH].?aƄJܖ6q#0rγx;Irj9aoCl;OkIk<=9vCO'60O^%s9XFƏg//leM\P7ZIY,;r֏9ˆ!s#⺝PYeUMٓ1Μ?}.OYUTrl9k ~?wG%4YDcjt|IrW,^>+ [hd٪Ngማ½] t|(wNN3u 4|@}_bRq {@};=_ie+,DG\=A2 rb-DdY@&39 z U">q嫜ʂ3 M)_c,d3˺֔*Hj[õ=x g%\7aRyn5,WUkj&}s>'qXÏ}1;Kąz28L\f 1:K-{Fm8Y2 Zҥ/- 0MKsYx#{OZw5lh$)__ LG[X'o,!D%ϓ_<,.qK*ЖCR ZVn<~)/BA |S8T4.=Aω {o.z$/Et^f/ڷAw|p|P7@lyPn.zЃAߴpѩ:iYD\82az nfAN@2Z?U9Z:::ء'{^`3'::::::ܴۂttt ٓz0x|$s.YZO]T3u:F5*c џӟ;:wL%|AY-_8ѱwW3zE7Uj%tttn5ToW Rs.ͤsGOT^{rEi@Iٝ>V#s'\ѹBGۼsKxf3kyJY::6r{?zzn] KY=Lm~vȝh;Q6W.֍]_ ѥ>8Hxqw-顄ǃ MWsS]VSH"M U,'*C=Oؾh)ĎՋ)[Nht^ͼ%ROa|s"Cq$Z4V2b gj^cwٛt?>lK x}*F]ϰrܬ%j?<#㡖up;u-䫣na?ZsC<)NP͝†ձ#6U>:exI8;K$;h0V zT JOfFjnT[xU.ejm* $ZeAtoא$9ĦOTTsL矦C.I 3/!NrȌ雺|Cz 2 {i>ε&}nvGc~#x˽vp)N)Æۣq6TIfp!0?\ڿJY:*m{utlC\H&hF}&0kb I{ Wc<2ҙ ^6/̫+o[4!r&9ų}+Qe/O)?Ϟ!S(!qj0 IVO LBE hUO%ԣϫc萴/!IOoOki7'vO;paϼ?@iD^~\ڻ]>eі_JgXlڥΪ8Piژ ɿGmlhF.\24cވn#03gCl%֯JSqfWGF*>"ULy)}qTxr/YWWf<4& L/AlZϗtWf0u#E p9CE3Rx1݇hѳu a,ʓWXO6+t<=P'&X'^҈.]j[8=VPt4`lf-%NXh]^ǯKñ\@^DGxqM,* ~ϽNxϘGfg7)狷Jnj,ם"r !8=h']hMJ/–^GZ2TMN&1a@gZ6@M,*Ȫ&yz7 wE~t~y\*'hGrkŀ ѳC 兇"7#K1hm>qhGV O g-fYl;|ZJ.߀Ï& j_-*,,1|;)6Er^A~M5?87_vg(#$OǰbԻH,*ӳ%\p5S6-%ykToaҰ؟Q٩U3lh}ANB9FHb-:8(u£*eTP:]8+gT,@%L8Ѡ]Ì"އ1yrF 㓣3xm$Rq߱LZ/Q@H<2uO'71QJ 6 zd~_⏃lqm+[|*Č95OLV;ҩC&1v{?=1DLA;S'b_C$ִm??Lvd7BHVxHᤘOrXo"}fNe4P~JBQ#dxl@(͙jIJ>~s){x!SL{Laϱ!uݖ;DE4i=i+?e9xvi2/g0~H@d=O<vv8+<>oKzIOШݞ~C!6}G1䘱sBe*FrMF0sj  $' )YذW¥L| W $dwMD%i|'G%x E:/Ѹܲ_̜\%T%jKl%EBWIJ;]³&7@Dv{m n 2s::)4d3>ABѾ HX"W\S%ArMMh9fS=4к b$N.ސSX9MWCWV<(X0֬|K)Kn<2? Lh ck8RiN\Sf2CJۂФWwGG Jy}lvGK~V{]^w6ɆBƱz(vU)Kh5͇9o^QL['=U)KGfPi (@ظaczvOUA_,o;8t8 {60fTOn&է7C'yk -krO=gx _| 8 0_ ? =@'>mAWV-'س/sۧӵ_Ǥj"_ޟOf{o,>yū|s5KEPr.@-<%"SKi1dg`&2.\T *Qƀ>M0`&⊣8\O{'Vjg!헑ܞ\9I@ǮD˶Ջ/gxt!صQcT) =O<8EnPpUK6 Z7 "la_LhQUMVJܩk&H8ii ^ l&$B^Iq?m&oŻm|Up(_Y|Ad-n\dG 殐}VEG H*񛉠]Vߐ|Z ѤLdzeծ(HT$LRtJTTO{ > 9*iUҳ6&{.]'ykFgȏJyCsLr.YK2s17Ss#,8^G04Wzͭ ܰѐ_>Գ[cog:aGH+8`ÄUUҩ8aQ~`7EE`hS^ɒSƷ[&KGfps.a0EqP-hfр WV],1c׬9 4jBc%xm$$PUTd$:glvctrpp/5:559lA¹/u_H`mնLa>En\%},ox-}Ğu[n_~Yi2l\VaKq5/д͝\yd6haF>Ԩk,<@W7q `qҶ (YvFJw#K+nH婄|`R3M_ï~9* ŕy. 2 &]UATWƵ*Ιx~3ByvtР_/TYp[qj:IL8%m)K5rl$gNUh5 c3s/T}EKa϶ J[)΍ڝ+(T,V(;kmDk"*&>Fg3䅩Md ^AEUҩ86C5(~Mhh>U)KGIMZ;E)%gG&TTUE\?y-aЂL3 ']-*8g/bX?_Dca߮ŒoW2{^'& RSIxWwBdHHK%2G:PU- ͟MK{t_ i/>U&!"0}o+x~`-% IcYqmL25M(hF;0O-5FpQ@rl Z(r9:,B jyfYRѼDU^ Ȼ(Ȼ(H=-0̵aWrMro *-Jxcs lPL M-Yn!ܟU5#zG}6#%D_Yff!D%$.2d[$7l#^+>atAz?Jl*m [Ac֐_jB,q#FwN*θ8WRs9y4sí=Q܀FRNє_%-5MYUѹܜ_6m﯅%2( #Nf]zW/>;t:f0$C ´]o=0q_ "ێc+&CCBb%Y;Sѧ&.tK׵#nECrHVOp[٨ &)|I(~t{YrӡD@UAV/hn@\T4 J])+zމy*:‘#!00 \@~@rs+Γ[BJC@AjH8T v)BwiSb)3'q*f &WKn*!bUll6Y7ʧg1 ]YUh޹moj7SK@ߐ)A9)#P@㤨 k1W`h+t s~FOP{ {g<)uKY|!_m $*ћ:iWTQ^hiw䗚įYڞTL{\n^F}|}pVG0s!VQIDATsh?*eT\%];XF1q FԲQittn6"L.zuq$q~~MZC㙚1)a'`E|pypGcBT& ±($=4K ΜیQ }w ӪcRR(b*Km ˩3161$N 3tD]p|8 .WI ӭ-jm՜ +f⑰NN*NV=8ZTūdJUm.f^NɳJF-w֜kRe{moO<܎ƺ†a(S)3$#`R;!4Ÿ,I];:oj}eH'j~+c2XMBj[KR"lgC2R]e- t[:ډxÍb VH3K؍17S7)ֽuWXP ΗU>Ovn## PŪ(*'r')A.Yj=:49ow'hHtSk^ZdK}thoJ T*خ/ -|=h9^pN8e:'!Z.sՉmumueϣ&nrwyݹaoLh+F;JL |8zDK]/VUO׏Mj[80)eJ Z?kɘ6ug/,XVx&uT8 "\LFi4odI~KsYH JI^Himr00US +6@` +6@`  [vIENDB`glances-3.4.0.3/docs/_static/sparkline.png0000644000175000017500000012174014432156570020267 0ustar epsilonepsilonPNG  IHDRFVΉsBITOtEXtSoftwareShutterc IDATxgU6|N@(F:bDEYsugg̎1E$Q9C7'T{?Nhy?5s.uvX{u+ ҃T)L$ I,yĒ@(@W$ |4`_ X <3|Y h&5@ `0@?Id@ b44HC`&8$ x` 8Р H"T`$AdZL P$' p),X ֈǔI +{DRl<0+#$ Fy]px| fSi$o HX1T< ) 30`x5A2/M|ui'APy`IH @ t x,\&* ɤrCh%i 0$Kt(@ŏVtZB;"G_Tj\iϸg (/ (ᔋR"Ã/rC祖p"Lex xWoUzV鴂ey$G?|d!!U,"  H5A@RH9eH! %u'5/}bA re Ai@,U PP MNfɂ Ȃ` &'/X:0I*Rzұq`*|rpZk܁Jލoo:! $ ւ3QiD$tĎHpTCU,Ϫ+atV'kDXUmfI\㩹DF+{-OJbT[[]Xu+•+ KIT b#c aJlց*i Zg$Ygxqr%gKu⧷%A%z6NÀ;0HT@RHNe!p!|M$2@V0YCIpcApKT;8fpxV22/I >[%[j[vxD\@LJAYYXGP LD` %,-.d;Jj?Ha HJl'WSrL|O[a-oVYo=1JwCBs3D:6/!1' J8-5ĥV:>16CAKإ#x H LJ1u(cb$0,C^BJPD&m|4^O[Qf Ŗ=6ÎXYr|J Leu^He3pKlhw $P-ɁZ9ɬ m`1#yq:UOi"@(D,Dt$`Kl 3\2sVO?8 B{{ /wKq $,R8 ga=.I 3~zKhϲa H)|ǘ&J(=%΀\شCKep}82IK[c*[zcIY&3TLsUBIˊjLJ 1g]TBVi?WJrb]eMX,4-+-T>FDR)B$D)e)Zb2̑`@[nCAd* my1 -..Csj0ⶆ%Z b҆2r%uUT*OzUmo WhЄ5'iP"jŽ)IT1mt"DJHVT 9$T\%X8BSQ䶒`rX+?yqK˜HW ގLS^FQ+W^M0n%e*xacB+bYp"Oq*IJk+$X'J,K4 ן;S`dTں9H%YKEȁl$*1pV 8昙fn6yH*)"A!|,\lu̦A2IY)0 U8%'%v{, ǰ "X|mcpAnUo}JUSf, 0à 8~wpuA>1x]Ũne*+ Wbb46T3U-O3J4\bedbG[=n-ܶLV.֥q,'VKqLJ\c%hɒ3U4IOPLlbng6a I&Ir' /Q(f)bcHE)5`QEJc.E+Fʤ\bKYjA(Tϥ4K%_-|f:$a-B(TiQ%β&Rs ,L@dስF*y>c+ .豊$)S$P͔[bbeH%g]%UԊegmYbe8H H{Ad/-t4ȑCjƆ/FXpL{@}JQ%A &*6PgUOC-ɉI$*%'tU]AW2E*vjmSgQNHٶW[-FW JI 1;$b;onj+_$ٮzQuL;ʈ$p -Fr *P,ѯqj.yG-ѧ%[%Xi8@yyQ?1b>~J8Ff̾ g(J>L$+>W*G bפzcdIN$`'8Kp  " `m /OgbF&R0S9 >a1/W\ HQSǡ#f^Y%׿;.]JpFH*O[I88%Qw Jl*U-YOXk%Iռz62e-ܒ ,T.WrPS};]- "tt@=#JJS}gAE5DA\9"S(ʈ ,t1!•%BSV?m5ŖZMĥT2$bUDYE$g?DVN"&%YQ֢El)zN%[xqkI$APpmm]RSH2Bc$SZPHX&peUh+ p [sX^pފVG\j+JNdK+\^"XQ#ҡ27 'ΏHK [e'zRZ4PO$e!@qK< 'ي8FMI$ DJ,Veb,5 !-ՑCȋTىYHN$BJu5;vmX PGR v11w3_} @RY8ۋ.nۡg/E$@|V^g}_w44 VLmFCd W,*,e[oپg/ $*8$MbHT;@;?{qL@rR(#Ha`?]0"}KT>IFcT-#*2XPBZua|S%VVn) PeI'6уP AITMgH[HEԕi`͚#lRJ4$:R!Xd9"+JȘINOquR m g )iRK0T"]MD5/s=ba9W ߊOue'`*yTZ*Z(prP D?KOs0gęsfOgM>HJy~Lo'nL]=v;y mRZ H@I!DYy@cϝ{qOjH8ʜpOp'hΘ2iތ}ݲL)()D{:I{-+Tб<ԓ TӱK{N6/IwYt<@J |/rJU>V2qq>'4AuO<24@~܅S\8igΞܟf|;;ԭk)uݾO@&ST{hWv P—1%29$ 8i^|RMHfkF1kMYsϜ#:VėBiF ګ;',t'^x~93gM[0wֲi3.:,W3v)ߍ{ͧrɵZ@kߎ;> ;^vݟv>dyEi4!bw_E_RA&RS\>O>xҌgI@v>́|73&+G#̶~xg;c'>6l 矓יd"4lckߪ $Eu!cɘ - 4?<- vR^vx ܪ/6`Z]A Z4k_a?3d NbP "h> >0{\U٣7|Jt$HCÆ?vw=漳QP)q&M[32d{.&N6ӱ?4wi}Aל{Gٽ.f}Z +wzi39bǻnle8k!< ]%5N& L 0 HFX@H9P@`YHZjZPlUsHnya }wkǏ7.qutmGFymzu{ы~A\ Ň{j{_}%\{gαykAءSmu~܆gyjNg#6B8&)X(VҲ0aL8"4 a]_!4,2NkyW|a8@I5cƌSN9Iu?wܶd05k7t֭{ӎWܡƦ|)_/[o%_ lb KeZGߎl҅y@h/kvm^ʏDJwxӦO1,cvRɰuHK?e|}IrkW.D)/N~O>x?زy6758䄣yY&???Kg]i=w/wpԃ>xXX ("w L֫E*bq\U/3$Wۺ'mI=3KV}A(uW.[9sA]5wF(?mQZ@h(.j uPa& :ux?Xv7]{.yDsҩ\ss:ie)%;ryahR%C}ُ=grwq떍P#k~ů'~I{n~w372v=CdG[9^}v2nK>,y RNP2v880L5  reD,Aq1OX d(kV:4yCنS*"![I Vٺou\ܲy# QЭ.?X*-P\FZ$0̚4~FA`> A/_XIâ,B}.>?O~Z}oixSџN qܑwڔߟxi{ߍW\<Ǖnۭ3 >-ߞ=Ӱ9(RK)S%)k A#gJ&w7i2l[0~xޢ+.xh֩u?|:# /c]dy/ulT4j7xXDxy]YaՈW| l2!o,رu#7_y leHܰ~%Ev颅G!9p(3>a:uڂQ"."(z roovɒ"'OagrtXl#o9FHn;޻ώjS5QxO<~׮]W{5M0(Kr`V, H/=5x3Xy2.N:g}˯w,XG"7}G{;8gycDyq xEm:vy7-⍫ Z  H߳V@55{G@3Qyi?,b@VrMյ}w;eUCg@3HKl(TI3N9rڄOzf{Ń;f?ړN=iQ=BY˫/3UBd'\utZ0PD曯f9瞷~FoK@3{\n㜹+ عCCxO WMK)m8"c+ asi'ID~[nK<|>̊M%[PԀO8̳+DdbYD.A&B5Zيg_~2r;_>loO>:{9 zѴ'T*s鐁AC7L\7s4 EDt1$ؠ ϻƛpi-M[nϸez)c!`fש&ܜ8?y9ߟ'r-c*3^* #0llSY"}xOP!ؤu;u>ǹ;G:`@w]]O[ tꩧ}!OlhܔN\1<D& "@H)m##\tH{19v#cN'ݷcxWO;9zP!Wgb:V 5VZAP~fӱ\~ӵ ;Q_upPBȱu)' 8[n+ϚwwK/]y啿~ |?x1XO̹yU=z/W^yṧy'@H WJI TC>iڕy%`,;e6*Ơm0 =Oy@ fOdٲ_riHUF`gosqG|ek-! a8@]:]ۯv-s;Zum۟xʩkV.k?>nXֹtGtNKOH3gznqlFKUJ{9=\ d \[3d b7Yrhsfպ]w J8YV $&h*][[87{@ 8M:vMQX_dԳM;z,_3TdX8vPld%Ur;N;naY<3qQO,R&*dto=|6yJZ$aV})rͤb*P,umkO~y4o|s]-hH5 hUW9h:)RuËBRyZGyW_}ywo>No9i۵ Z{v;غcڅsfP? B>8_\ɉV͡u)|l!h @j=zu|b* ?&% ȥϰٔaf9R3笳 "D)/A@Jy쌴 nmϽQIQ!C/AIlp1N1"wڤq T6 [KID8) lJ鴟!|x|躗G3nN'jC+ º˶_]:[1j׎) [uޢ|'zx# 5ytX.Ss. 6h\0EWqv]Z|+W MF "K"V)oQX [9j׶&JqP۷K.v]U|TH8ofM!H{B"jg5׭EY*k`- 7vXCdž ?Q*rBu6J)kBTR;.f<4qp2 :vԭS&6(MsRDuiBh|d3Bs:uKwե*mKjUPcâ_JRXclH >]׈NF3L*oI)I+@r;υ_I cO=6m|"?s't62X#5h9eO?m s&K|k|襅bWo3_AƄ2[9B0D)8g` 6[ڙ5 ]x M]v=}ŷ{U0zL6Xv=dmPh0H %s`WlN;Ǿ d*vs<,;EPq0v2~'|{0ɥ2~*Z |MsSt^;* i456 !ît.SVtc8LO|ؔ6;%u qGW_{q}) M V/k{cW>J!eKI*]Da5K!jr>?>|_n .j-Ab6۶N82ʢIڇ 5JoӺiKCKUʉ0mZ?jh8wqR~XA$)姮抏?y矉"~/<z5Nr ێ͖5m)}^ApJR9W7wy?S0 Ln]ȗ5:-X g*-r` ߞ7J 6ܹsIi AUa)"}y>.Ԑ>+}7O1pe+XZX.V2n̵ikذ^9 l @L6f05V^kWXlW_nf7wigZ[B`x\\t}vwe9O+0(\b~k7\{+")eDۡW i ?{lXjwb׮u\|b>8~V"`4K-ll1#y5g GK҇\KKVlYh%+,[dJ/䊕[֮u=qi 0TQllP- ,l>Zӏek}? 'weƜI|޺)>qR)Cs6($-TCJ}?}fΘ1g9XM[60yg͚qS`S&r{Nf2(at(6x0BBdɦ0oˁsܰy}sǯCtc>[Pq-XktT(k6CK*]U,*'` 6*Rmrqxt9^]:.)i Dbʨ8͚ٶC{!eeW VwcִQyƜܹk[8 )%sֲ0@h,[Iv馛 - `uHRi*af^b'w'OmZ.u8c V "TB#_ĭ*nwߡץ\й]-L0R3IlϤ0 fM?;~<ܑ#[`W^Ӣe`HQ[{̞uc.ys9QNwm /ثG$1{, 'r ;miXd>R~;o?uGuOۯ"9ɤ؆|Z1qk~W[[OM9H? W7|ѧ $sk@U4Z!ЩۓDz:rMM( mת30drLZݰdysS^P,n*Bֵ{_nZoFe]MzN˛`u+Vowx XlI*]3f$f㿺UV{RT$#VBB Hvѹo'w  Gz'}|?խkz#s o4 .*BN6#޻vaULN9D*|{i55ӀۮԩS/X'@ϮzTٟ%L-LZT a} mJ@9(F| _n۵NaAKJ_ Xl(H/ӑgV,HgZ3-N{~X/6zX,:4qacƒw#9pEsHx)hڵ=v_wFu]]qS?0[{~͘vd׬[׳>uk?0ZX&MR#}3I)N:ūS}qO<% ۊDI[r0o׬ZZkiÇӎjT:Z<(N`)5Op`)dzFL<}ם65n^.gYn}w.{]IiذyU/*߸ik4n[#黉O>vm?|\=+=|ŗ^Zi睻AH68(5L@2륢B1PǞxm׫M;V(B0$J_ȶ#Zu?(V&ӝz*iݪێ ]$An]֡K'{ ,{`}쉧Ջ}ͧv.۷Y"lܰ!e <^9.KO3;uۿQ'iaaC}}뺚zzgH w}s3MgM9ҡs Wc=ܨQX=;~wW^9y- GQGOEPЕ𴋂;pokohժne/>ĈQ<!P鸔6ؒk [|ow{Ѽy|2q'l۶-oorRls&LحgFQ(Bp?}OܰaoS/AyÏfs=gִ[oy+\xեî|wyن뿟42%)gl1͆ bR ;Fi-B'|D(76~Ariax'v߲zpFYfH8mz=w$2Azug}z.}}=w*N2aPJҵ6ok>6Xyjjw~X[mGO;oսӧC*e|nWZ_r;F>iE]|sϚzm7xEhrk.|_ruѾm%Ν55װVoWs8j \S!/=8%/{qSnɇz捭Zɲ7> 'wtۖՅsε{sO% Pb£+AVyFAJC 6,h,DEA¦4@hh &4ͽs{5#̵}6)=Zk1{~,BT+HDĻa t@Lj~q@GXt ',Dp ~|SOuw3LB ?_?O>#%l :Pqh{ *C!$C h@ pp 4^[ tZEh&XKbK?Nsf*@I ~C a^*Q2 4󶷽#>wU 0̔Ǒb`?M$4 4O !-@HMJEͱb+ZvPP:[ $ F,$h뎀*x R72D2I b@tPK*PѹaDP]Ҁ;8qZ$d9M- &3?G]L'8_bCCe$=d,B2(VeEOA7As4ZV'`gd,K  M!BYMb Aq[؜I>Hd![ hZͳ9u@ & 0ЁV8+?}rw'GIK~-|Q[f`L<|pS[%I q,@i.Qó~y.PE a$AD1FP4U'fk FJNMnd]+ |x&$SHiЀD&`,Bê!*~RbL0X3- IDATXY_-ng4D%p:/_'?#%4 nŬ #g|9h>i+`E ![Xõ]"4[L#T-"3@Djp(j{zWoM ^HBH ClH@JI,)Iv[gϽ552}{vUM htuGA#֦0ā8؁K5iUϐa)"6DXNkfJaC&(6Pu\f"+ 0@5.XŘPߚvQyhƤR UIh:e&E?O 8Z5R5&:wA„7 P;QBu D$)x T!LhTŹ5%!@-X1x'!"P& tmVn Ąf>h 1@ *tBi1,!Z"Dْ!i4+dC:~[ѿxo 5̲sE5i9EB Qb[IumhFĜo( Ae;r3CbNbC5i3ldZ‹ qQCP'` 0T' TC4S:p&9~'_ x.p8ī>>5wCI5Dj>aH ɋ2!˂8!5 b»1e@mb jZB=B?I#@M31fժO;!#QQ5G nbZCWGyiN k[o,!Uo7Ɔ9mWplRd*ĉ=SU9 ns״yEq !&*n 2pҦ助Vbɯ^E=3P  ->+w~_cqQq*k ;|B 8}ŶYMO&&&-UBЮꛪm> D؂'=ӱ q¿7@uLhB34G bqt/~7=.,lܶ Ab [DȔɅf>c%ACivgpڦbNh+fԝ),8ADM W&mWOvդ2cthE 3$s5)@a}ӥ{+B`PXH+q6z$]a)\!H(h1 v5>az4w)ڟq֎=Ԍk=MD# ~-a DgZ[^ek,PGqII#ȄG 506a9@&Bf[j6J.)ueJ` lB(Me$b5s9 Dnp"Oy1+==wg3 :=s0MtG\U-hfVVՑ!2S)Z{*iyM;_Mc:C@ GUA8E}\rar QaE2"'AK*@5@ yVnb@B`\-e4Α7p`2v4p'r "HJ@$!tP.pj6VޱJpKRAml#`̪n0A E QG>*H&tI Ĺu&JS#$!Gs"T@^Zvc63˕ЊȹR;V$y-lJp,GfS)[6Tu'r%H aMPJ+ Pg*MM)40@+ P">5/9U(Rp!1@8=ٙUBfTj\gwC 4:Yl6V{iNXϮTqqBO!VQtNLEkk^?A:?θz5vltz0˼n!]ʦ;mjv ;m;>c3H=<$-] ]w2kf 4ϝiV=û! zq۹2< ccR6י }![no(o=5׎؅/S PF?3OY^ }r]P˓6 `E;iJP/ Eg>}]-_k#{vQ>E'?_K O;~÷ӜhLl~+?[ցok^/?<=yo nrF>?U//X>z,NJ;AOK˹Xjqr/'~y&m81{!Ì0x!7؉4dVGCR, €"DY 9H "C;jo]/H52dwvnɲ %pC>19֊կ3~QgCqehW̵?G}ٔ}xi*Ĵf+5&܎ʌq ykt=ZWf{_Fd#P8uIsyʋ Jbh=M2*B1mܷunƸZl-ǧmuݽ%;{9?qۥ-uR}fe-ox穣ū>9Lk@:ty;)A>yʗTWOzݟy[}[]ε0bYq@ lp>faMqqXg``L APV27|P(1 ,4JXBiԽ0@jV֨.\lߩݹ1WovL48p5&IըzeJv6!M՟2YJ}ziX1 z[]F7'58!чg$Y)>7"5Ǿde:P{j?aea)!Rae,rCc\bc˧Iط6}^1mz?|w w>?|Nk_w'~qt BEфyo=zի>{k}cCtP>=} z5IJK20ݨ3K49[HkUصAe4 8&,?Wb8 u^t ]u#XS`ݜx^ .A1lb BVVssRSMU@51}ץ(Em.Ge]e#6x?v+w1cvٹ(n3-馉M۾UTl9R~Y]g]zUV煙6a .{E)5K~pteiA$mJOn16U+SPS.e!9;p_\+rxo@W9:@0Xb?o7rBq\!gg'+a:=;U:A)1f3˨p`SJ%x)l6/[6`4)y)yRLT`FeS8+ 9 +:xq.H4]-PՎY<Әק?7E[z0pW)6y-Mj?M @mX4~o,otə#oUkHs)/Auބ0ABdhCaT1Uu9tD\873@dU*4R*O].<]\>.lő.+6G7_F`BljNrM6ŏ;8Jj eҜ'>?tY?nO٢I4lƳ~4ihR׏C%L\s(^,V&#+2P@Z`85p 7؉بv@&fpWFO'gozc,(IXv*J w5eSv@46Gs"aF)πT.3, [}mzB 6[r3̓5 \,\:t5DGi.HKp(;֙˷zLsͯYT $ 0;)_>VS^^|EMU:u^uI Oc%n(972>[ײ.D{R)q96Ŋs*0F,u9 /ŲxwxIJ>ėtoWiSgO8z^Vn%G$o-&N|x~䇾36Mh2F$Fa<\%oj!1󬡘Tj,S{r+2F!3 fȰa "DsZF ՘!8ōŊ$}Y sպve=xC0͓J[mr9qJ%jMdJ)aftX*.+8L%!0#tWM1U;(S[R  cQQ[B( Xoɧ.W?9 6'PR h\DsdDhrd%~͝<mWbxZ`\ fuRXWu@{U~a_C)LP)C\< Oky W:֚!@EE%U@@[鶁0aC()Qn4; IDAT2,e71>vmӰR>nU @ 3`1ieK)=IR)L"Mga\ԩFQac)>{@2*HЬsaWvJ7(4D]n5Tl4H-bW0A)Ä ˼ŸݯڟPp_! {Ǚ&mU#,W$q-  !u )Sb@s9'Ǝ Oq2Gfz6X JQ8aoK7|}hvo{ˡ\JEpR"N:l1e#E;#Ělp+$\uw312;q$mUDL9r1Z@!6cMq,2nƇ!([BDB% bXk[TQ+s9Y?-[uuw#rw/JNlq,L]Ӗ'Y1[,A.~1lqXˣy(V|fx]vMwML}k]Iu#vutٌSU FJ۔.hs"eXQsRF αLJUYBꇑC(!SD"!,熳iVi3K*܌)0d#1$K0ՔP*M7^Ƴ3etdf̠X`¢iۜOAmݸI<<ጼMyEauI148=}6nvx\؃Tn(p>huJ&jKs\@|x&לJT$5[98B7/r2#uJ:#|nƖUxbs2V('%uBՊp(,m6g ]mepo9+d#Y!x_Ѓ$/^;?9Gp[ 뗾=[~~/|w8 z"%(`M@R Yț\ 8 5 r9R] X2m>;4w?3f|x-Jp]Cqn/uA̹!ԅ30<2 ABnyށX5D.£dY;c,@pq%i %2a8\v0"]w2jI@RKdINU8LP pXTBHdfm̽!F 4T-ۜ{ONg&ݾ~$r/ !qM 쉎`7U`F6jlچ G4ªchn_ Idv6n(ѐ(t x`#4te،QU8jJi)I-qQN5}kxb^&cESU0bOv@u/1k Y0Sx "@0jy1ZAA~{K^_[rT\ 5̧;g` Jw"ng2+o{ߠ,̪926));$X8e6=n{öI!0l/)C|#1Ӄ&>x׽㣧,I\&΍ؘ6!X6 aySvzYE,D:M V|!cj{U]@)}$0+!$JL)&}Ioeupi\䡨j716n疪J&fٍ|}gW؈3t̒7vwuoX*fv;^rz=|\>?Xڹ$$|S9jʃ_}eS숆JUtcVI'6Nhbԍa<88OC1/v"ZhO^'M^/ߖ FpG&{/aăZh!i{*RM4Azaę}a|"/9::Ljɵ<E6 77 8V! Sfi8ZSyoQ7ܯ˵> EDcV# S8 Sb=_1l1J>Q mF =lԁ)' ^ HN )c IE>|^K\}π bW~aK1Y_<"{@`4IGC %P]bMR˹ !JCD $Tژ%'JNJ"B@ ɇA c}>QZyx^.o|WLAmv){v^haEKB眓>~E _D8?M@w7ЏR˕ǧ3fL!R2zpƩ@Ҋ]j6Z=\pjkEۍ;ezurXWLp/m~K4?Sz8,{]۫_/e2\"]^(\9kqݼ|{{n2d`6Fx BH) z8$AԉAHJK61gu"6E #k7;J0̈́P|rG8?#cxtmߪ 0$Fv]~G:Ն̀*^tpNM]g?<~.ү )躹 {ޯ Cx* 6fno_r>[uŏ߯2L3~%YN:-Fҥy 77iF&mMۻūupI͔=pd~谙,9Bّ:`1eOiH9 ~"VfRQ (XX.q1 Fz XU ̃:g|֙#JCZzV}˞c) Upgoj8/BpV w{;ΛF)N VU@\\•JEﰠji$Za0i"5IewjEc!D,lKVAn#?T)Xke_ZGt!x+?A]f귈:z5;Ok$zj!?.~nV2=kY+|j~ҎmVjZDc.G{Ѻ[EBms*.S9yҒ0'LgPsS?] 4#F}5Wti.ZRRݳz+{뵎5kvP4zPՖ}HG:t3:T}7֧$1twO; 75ٗlZ, ޺?_yݥ܋.~k^+oxĈ=/ŗ>~V̼/؝~/5s}w2ͺcd? /ʇnKs_e`~[̖k0x{8ƃ;!2N$ZQk8L𞁬fG흺o>3fDiWZfy$5E1W?fv*E:-j0rԥJ'Y{#m3ڥ$2~ZnzvEMܐZW[:8+@yݠ˺3ej$5/eYZ[UD|¸L;+en@Bp": =R1%^ Z#|:\}6e ۈe%l ˛AKā IDAT7%P]M饡 +ċrK7"AQ :L !j Vlg TU}Oz\TlrR[¸o8;F5zgWxg1L,L*-3&ޗAc J,(Y|ڪ̜A1"! X57;BI*/x1<ujYS/|s}JXuʺvW{!? ت-C+KQH80z> üt)V_}XYcc M_FlO\3Fzڶ"mfW芫Ը;*mM~M6 N>߂sPq+{\8̷ 8OPV QNUjG[nw~߳~'~|Z1wz e('9.]?Ͽ_I1r;Y$(u@ZXiyռ.OMÔh6v2/+ 68Ia+D@ $TYXuZt !sur<9=k>&"< ` a⪮EҎWӕ}Ӽrr_>R:ˢQVWꄲtd0Y* SߚI4d4DePu+HX;9u)>>BSEYM:Q^ďP()N|k(aA6>/18rn%@Q,@º` ;\xp-{׌w@}_{50J)FC\߯'OTY6.g鷢%U\SkeStcBKX+Q: h@։,ĪBJXD?>:+eh!1f$M_N?˲u]jNVYi|EpȶL[ A!7K'uqcrK9L+8.(6e֑`f,lK/e""("k9)c&EDɹ|^VBvŖi@n\C/b=y}D+]󺖯:L=')gsO䊭윳_VJ{螏vkׇbpVCF c!rrGKʳI;wQce؛L(@qJֱQ9ޫY#@sWNOcR!uVq۵;u뤶hM9\1ju3[z(S c-WPBsdFo.A/ 9,swngd֤zll^.X d̠QMUŭі/t{p8mf!4*$ֲj˶b6J8B9BxF\D.G:e~Ik8Y4)G,bPg2؅??IvND6pʨU$cv۔udʐ& Aӹϲ4WDdlF֪};oBf!ԗ\UXY ޻e4mwF-l?QO惬 cl%<#Q,7 ~6C"íSR :=m,CY!F**ZZP{Aid Oꏍt7L:MVА$+h~>g> {Fg`!*8 (n:+ LDd` /ċ+UJ2D2h7؛FIqXď/'ThA/zdA_8B\(K<9 6s CnCbm:`сn񼏆r&H .i6ˇl:+'Y9t˼.moWUUQícR`i*鰔xl;wn<=E"wϫr>EbUVDƺX;)+˭Q1-w3&=MOB]w|iO<#@|0+5;BryE901tl*!I2 3 +aqd&]gѱUMqb,BtFBφPws{{ !b*P7.Z۬Fgd'-)u4V gvG\>)cUe6UB6|GBœTsíui0v?@9K 1UV)|Es4l4UDB4Yt"w̼?ًef3*QC 8ߋ!lm E$TձŰv5"14!*˽D Upr?'TA16!3#Ph$vo}朲[>{ohQ1n(%JҨF83e \UUQ[b3$5V9E(tijҊ?;Je{Gn>crkjj;cV~e!cEuUU5١[;Uʝ?f CP T,e/3cɔ8 Amo?򧏎wvʄLUÊTpn}I2 xJ Sh bXk>31D2c#?8hVUF\ղр?v?T@%B<$iTO߂k5HZ@M!u(q2 x( ӫ]fm[M.I˧\tJ+$eAƩ$\EKĀ߬UrBlMTٕ;Ed0#3WdzhH=@ m.0)܀#S#,:#YK0/ ? ˥G9"1f32F91A"DHD#]ۣm3SM@2˞ta%nUlBy^"D@ R"a@gnZeHhx!D0\U&+MosVHU J@n!Lg2"akcm|փ<4E`֎rEUK\jn=6S_S(DzN&qfVLjRnhM袽ۯ̋ڀi,WU&2sz|x_]GN/ C6ǚ8љY7* 2ֵxB۵⭀l* f`l/r5mFƖ6C<0 Yf +gl ELl8 -PV>Ec1>( G#D -OEO.EV4RU0FbTL*_1 iBf"6i ޡYvulQb\Bҥ?5]́i}'ibX{=vIKf\;QXEz˖tnm -t2( GbD;MpTKDVNS'9+MZconoG7`dp@f< n0l-8wDYb!N%tb! ExK )5O EAR2DhdC%:Z(U$h0y)Q- *RP#?V湰o_@?PA]q-nO,_f,YL->۳3I+~ZI)Rҏ}fsj d1Z"gTgp'c怊6mM9PY2/r7xn(XWEXOh)Ѫ))b ,r4N1U,BlPpMh&җ1*za@ d JE`O.kՋ""4@" D_8Q;2DtVᘠe iMĐP'KP%%He5$_|&kIJE4qRł#u _7U3-m0\ b: cjGM 1[jp ~ Z m3^:Zꢇ;NIyb׸*UDfd|H&(/rgZzX*k!NBr\`g12b?a-͂(앁pyb92Xj\I9eN=%//9H/f9@`PЅ`&!f@Ӷ]u/I~ X#^KI-=8EH?9KfVZu"&o"i^7A- 6F:aO>,KS҃44&ö~ #Fiz>ɑ {`T dZH|9/x NLC_Bp?_t|~W~mOƧGoOC1o'w|Gn/~~կ~鯿>*e~.){[荳9@Fd9Fq{ݿݧ&rם>hv PA5 *)HX pVY\HuRr稟V =FwfZnp#%]vhIjM(@Z;}gsg˛ESNgUpX5>2'UCS3ڬ$.^f@LA1mw}Olxx#/F,TqC-m-y~^_{f'pc>{ם|RՄ eT1+FyzϿK~o']v߽c /OO``??yˮLBA8Q(l׼>)'QH*II*(% 9QP7Xa0S(}RWRR'hl*NmƳ2f5aV;aRC芳.^v9iJD9DKm&(P8@#,+00(_G`5dc--wx>u5o|N%]AS{V/HR-l-0ۯϸ>} w|3ȇ=k?r{'6 7|}7>_O4j]9LKȰ D \L f]D);OGZ)w.H2g֏J.dW>=zzqCI"T 3k fns]f2PuUdHbw9ʏpßM䞿 ;u ,A *>F 4< %K׫'?y%y2Bo2َ}З=$[ Sa_䫯zU?q  (NKä\i]7mR[sP Iֶ?SWS83 Y2gۼOZ֔ )nQCI 6]UNGq?[h6:,F`[~xم}_^y?w''awnMA$od2߽3 ` 3u~{`b&Yu %|?~%UE*-"uTR-&yLrQ5 FX\u>PPJ@GRvS3$Ij!_Wga:/}oxO⊗|37 -wF_Ŋ^E~c^tb co}]}Ce;G\|$Kສlmo|ůꢌ|:kBNRI4/p2f$PngsǬiÎZh^T۴%b&Ա&ކ Bə2w|ӿWo}կ~s_9['8Q+_ҟG>{ h'_zN7cᓯ߯[6 fOtLs\FtƜ0vq M J`JmEG? FZdƀF5"ê? Jk9ƤPAJhzs?uӧ>yхD>ꖏ^->[ɃG~>2L?ۿяkXnm:@.:ƝMD$ !ji2 &,@q ;UH=.*ok?s$8AP1~g37ߺ{S|/}o`O}_臽7K7E/?} ȯ,{@s_g?K/Gob[X5WXM'`2,AA5<]B %^Ū#MP"J14=}ϫ $L FdDpYBeA&}1'H$U@aeV(!2$)Cz,ޗ'Ϲ!!ϧ>[y^m膏}~w|~s.{oe̸[c{>~tu9>6- Bb춨,+g-ko̐@ UN .$~~ ė` jK>qAO@w-T =I0g@Pl(fI} F=@gbR|#bbəs?\^Ͽ}Wf#qqq)Xr(p%Dt>Kb$OPV"q&L,L̩b (VK73w6$3Y%Q}/t?~OR6^:cual:cͪA{I5^D )Fg $6eZƬhX}!@dQ!2qr7chH$S1[89 !V?яKFDLHM  EPH2 S/p_ |4ώoI'l眻moc官 d&Q,풅"&G,Z]H m(0 k9_}C ܈Iw_ XPB I4E75f, b( vF`挱`lR31.;洭FVq vxJϬE2eS,j1Ķ-Z?я,Z᭐:zIk9C$6GlG*QNt_uFin0A#!VMI"uZ[\U+[U !%;.hTwca*e[m]@Թvws2(epdĎSiQ2x8diT<߈:ƨvRmS#G?qƭ^om\ܣя~G?я~G?я~G?я~G? 2šnIENDB`glances-3.4.0.3/docs/_static/glances-influxdb.png0000644000175000017500000002227414432156570021526 0ustar epsilonepsilonPNG  IHDRsBIT|dtEXtSoftwareShutterc IDATx{XUuBlt,Pm2وrJpNVdөg9Tsvt,3Stt,å'T6%tB/{BPA!ُ߯bwkC  4@@4@@4@@3    @@4@@4ԕ!㪬4:@(///-iכ -O^^eϘ1c6{/1 @sNIf3]\\;wN999Fzzl4ɓ' Iah{;wN%%%l:+ƍN]]iV1 tvvn_8 hN/PzzΝ;wrqqu]wݔTVV֭$ٔ &mA*))֭[%I}uѣںu<==Fm@ |Vk'N\ծ nyiꡇRjjx M2=ǜIRTTz۹s(lov?nai8qѣvg0Ǐ!\HtyyyJLL\\\秤$\zsss~zegg+11C%%%6Y_z=zӶccJҖ-[<ǩcbbL4KBVV^ :T|}}URR jȐ!ڵk|_}}ҽޫ0ЦM4m4UTTHN:%'''\R^^^z%I;ߺuUWW'XB7n驑#GXT]]-'''}:tH}k.g?bQ^4mڴveǎƵޮeaaaF\\\g9@H+"hJa襗^rwvv$]V||6lؠQF)++K#FPTTFM6)>>^555'/խ[7=#͛7[nŋo<<<4~xІ T__%&&꣏>RyyF 귿m~zՙ;w*fWL@Nɓ"I ֱc#IVHHrrr4hР&߻tRݻK&M'x2ӧOb$w}Z`$I퓧\\\ﯸ8ٳӿQQQWՆ+hGDwx8t .\p|c[oe% h)4$߿XDDۧ}^}Oál2͝;Wok_,ϟȑ#էOB+Wl_/رc5uT\ӦMEa♀B߾}?OYnM Ν1b~Hx GUIIz)!~iݻճgOM2E]^s:uJ>}TZZd޽{E|[mذAjkkuԩ>T]]>}Zeee4n޽[zu]wЧ~UViѢE'|R>>>_R>x ͟?ѲnnnZx?K6lƍ@/'&&F=9;;kʕ*** B=9<<[itzw=vkM}GLrޟ}?))IIII/ŋ-SYY ؊xn8l/^@g/Ҟ@ޭکZzC ؼKte>>ヌ4F4UVV^yNDDo9sFN2vy=1uf)""_ 뮻}׭^O^8fl٘:uΝ;V1.0)(($4@M&;v0@B@ЁaFEE1@+eee4MfUi@]=İ4@@4@@4@@3  t"\Bnn댌4Y SfMMvU]]|IRAAjkk/v]www3$$D*""*YVhh_555fNNvUZZBZ8""g9?/l*44TVU6M5zvTZZZC,7dZ,&3\{Ԙ ?Cj>>AkTwVnnnw?kn7322{nݻ5rss-lZ,o߾X,Z$zSfkjjL.IѣGUVVs_7y^AEekgZ ժiӦ9q(((P~~JKKuAB,-_:{n.((UhhBBB 7Fv1[]]59{E3͆YPY,?49P֢srr|f] 4N]phZ4M7Nv~+.[UU%'''8p?̙3 &4pc[NNNNnE?Om۶6ӧl2\_^JLLeddhРArss$۷]]]˝={VeZ&wwwEGG+==.\_]6MPTTV^h_WrrrΝ;<'eggC@@V榯qVTTΝ;tUU5`9;;_4|p0v+1c6mڤ˗DJlY,}Ǻ#gi1c.\[a۷v]wi ƍm߾]C bQ>}"ӼxJFR=Խ{w髯5zhݻWZlUWW'XBz79pTUUMOOWLL㾳Իw&=c EGG;͛^{M]t$/ƍgyF PddRRRj*kڵkcIIIբEq \\\TWW'I:|ƌ'|RUUUڶmz-ZJVzұctQ)99Y{^z%EDDFӦMӦM쬚=***TTT.+WӧO$}i&L@z:9_ٳUVVN HΝӟg߿_cƌ$^Z?񏕘.](,,L3fp|JrwwbџFV5dȐF:_ҥKճgOO<?Pϟw,s!_v?яt!}4JNNfg-gOWVdd#4w)'ƿIfϞc*55U#GԄ \-\zG[nѣGL=#իmۦ>}H미hzW_}Uwy[|@1Ms~kԨQ4iRex79rDt=X/wz>W KnIW/b 4M͛7O_v}yyy mx~4k,=o. =e+VhNc:{nnnJHHЊ+;hɒ%-ھc=$6DǎӐ!C$Is?'$}Z˗/oykСS~z饗h׮]ZhF-sNNxѣ*,,/͛7;8!!A>F *//OΝ'j̙0`@Y . /oٳg]O=$W^?1B3gT.]a|}}gi͚5QFE~~~N `Μ9:|XM:UD饇oz!?Yf***h"_^Æ 飹sjǎl=oVIҫ{L'O=#ͦ#GHݫHjذa***$}>|Võk.IR]]&O@+11QgΜaDg)66ݏѣ/_8TUU?~\?яTQQX~ܹկ~Sԯ_?Hv!6ڞ M6);;[iiiMS.]4i$Ԩ_)))d@@wkMO<>HVPP?Iv>@'|'Zt$iT1cLTBB&L ݮ~[cƌѷ~?P:x:$ooogttqqqk׮:r䈶l٢L[n_ݻU^{M .詧ŋwq㕞kϟײe4p6n!O<ɎP[oԫW/SNj:?:u㾗?."Iʕ+_:t̐檰P_Ǝ+Izg4c ̱AO>O<~k7e|JKKgJ6!={ǧMp(n6}׭ZOBBVZ1c(88XqqqW\GbvgUVa?~\jXv[y9;vqbh߾}wM4Mڴi 7|~5]tх 7ߨGHunݺJfkkkuq7N͛I&… /;ʚ{ߵ֌3_B۷o겇֠A.]$/R rrrR||u|i"@'pL9:Teeeʒ$!oooy{{յ6l￯m۶O?լYZ'NP}}7WEŎ[eeƍ'I7n222TTTJ/zn.{6lX_EEE߿\\\n{K.F35k~h̙TYYk508mٲ/../g2ƾ=1 7UϞ=^=o߮ĉZhGaaaMݻJWn2K}OV$-YDO?]V'Mj3gLTϞ=w Æ SZZ6nܨ㣂IOu]x;oϟ?ݻw7#Gh֭ oOXgnqHv3{l͜9SO?<<<ڶm[٥ǫR!!!7nRRRta͜9_W_}U^^^Z~,Y"IZv-[ g?Stt,&N={?T[[@G7`)##C111y%$$k׮c~iΜ9zٯ=X\\9s8wAZZZmd@#NOo/h[ʕ+UTT￟"=zٳo>&ƍu^W@KlܸA bbbnV 4@@4@@4@@      hh)Ieee&qy 0^nKIDAT-*&&Ff Ƨa4[Tbb$iڵƺu]mƺu̵k/ eZ9s昒4|#99ٴ턴$n&''7$iΜ9j52K||aXٳg+33Tdd[.333{Ot{ 2Ts͚5x͕9p@*22R>>>߻,++3sss={Ή4i<<}fח`7}||dٚ|!%)''xuu-[ZZVk޽ BCCeX%L,~n#BpE      hhh4@@4@@4@@      hhh@@4@@4@@4]:ݻ'O4222LWWWFgϞ${$kכ /O^^eϘ1c@[AuuyhpY,6E"hhh4@@4@@4@@   UVYU\IENDB`glances-3.4.0.3/docs/_static/screenshot.png0000644000175000017500000174021414432156570020460 0ustar epsilonepsilonPNG  IHDR.[sBITOtEXtSoftwareShutterc IDATxw\TGs{W8(`{ǂ-ػ1nb5{W;(MiW;sK`ٷeb& G;d kLPA,ʲQ{ٺ&651<ޢA5{2F4QH Z?i=a.QE44L72Gb̈ntɒu7Xa ,$W=%) m!:1F"$VbtxLUC234"`s--,=]L4d M󓒒@Q(y~[`dO>#BLc҄")ËlkDDЬ"91rUC}T)=$3e9-1]0 1 0qBlhbnGSLl (~7fi!8:L;{#i8D"TH|JNOqrD Ҍ{g%a 6ƈkĆt6Yw#D14)tĆ˶LL̲J6ZwbѤ>I(͡l :E91ܢi'TnЪ|$a+Yi5L MqD@V`i>֐U@D˲ '`a y堸̓ 7ݺ <>؃oGjg ݺytx2? ɅdWAa܇']()_A)1L7'f,M*ɳ1%V@d]ç<$٨ |ͅ}Z++,˲R!WPtJ1+X<{{ ўPCOLR)gTj'E(έ( QTa*BQ (B 鞀V<؎^ZNb‚21E;'1-r8uރdO;n HWaWwpt!K3*Zڠy[z+|}|/}nӿeL*-޺sf?x/nNQdJwl{WvlQTk`z> _8^&^C׵p0Wn~]WCwu=;Nƅh)1]Wi7|3NpHбMaѮڠ wPI:FS6r7$4mg%[L|2,88Զ~pHW!wvsWӧ]o҃1_]˶?4ZdI^^-%D?l:.J΍JK_jCq^]ܽX(:h}'BnKiSn8;Ch:CxV`Ck5s9V7oJv޼ K_vߣ~tԵ|S7 g۴:0fiSBoR.^yn 韋wn<~B lgQ|/߽wv/a [fXby"@CGYn1?~k[%3DؗӼ ?S1VЊ"Ƥ\6M&T7޺P5 [;Q~`.}Kـ}h QQ#`\m@2TZNv*,"QDȅd >!2lMqG! )(Dw,Q"! DA(d|$!rC@Cm{޽G{m= o$f;>L^_}V"_[2$XL9 2v"IĹauFvqpwF/|+3,*9`Ţ.I;'l2~U_%7H9gqR5՞GU/XIu}lbY~aM V~˽+Gƥpn̘͆QHq~gX_G9jMJ4:cǟx_sI~ה-kQrKVdom ۵Szi4lIo_߲7^z33OG#&֭uodek.=(YOO' wQ_88ΒF=xR|G,˾;B/= wed1 ܀U۾[3o`LFC[w2~u/<"Nv_ Hq~:ZL 2O,+R-][/Z'?[%G?~-[ˮɃ9`~9{vrEtުon8vU[M ^8gѿ- 6s}̒W&Q#jI_]\!LyXD$܍v^@$r?;>$r0D.e P=aeR~,ڵeLz0-ge+?Da@R8!:dj!#vDuO%\*#i@A8lQpr@ QhH9"5"c'Jz~GHc]wnJvBI*Ny,ex*twx^GM^U6fϯZLd̖2 ʤ(1$ko,+L H%W{ҔsRBpwU*|8C hGo̯G[nD]~OP%꽧>HHN4~4JSOOVzց{>zvTVhb!zdR6O8sar&P~F8Mvo?{vo#l1^hZCBwwwYz#4^M_pKpI#a EpbƠN^tnjzh'*<ڷz L:se{ w 3\ƇyRo[{*HΆLu.9lӲ5N֦6>dC>|~~{_ ;bog׎e9f͆OHaڰkMDƼbݶ( :AbzC7y;C&yo)wkp)['y!͵ia|gw}^MV85QΥZyȱ5wEr#Y7*]V#@$ߒ>tפU#m͓'.=|jӛF4rtDC}uք?tJoaDkBBvt5v $0`u B֓ ˻'q׼QE SJ+ nJS/"6uЁϡt7~ !!ک;_r/nԃqߧ\yr7ѕC|:P);cüx@sCnSP\۲? :z\J#ל„Đ9p*,Zk_P$E=ٿϟF<{'[2A;8yK{qː}Kwٵl"gOEDG˛O={YLuG~h1e^K>sتcicN$uj4nNG{5wy{bڍGBR|V*dTSTjWӔTƭ#{rhO%:|6բj6Sմ`#ՠ jP\gUx5iߡD?GY|j#Pć?KqVF9~~M?[tJ`ȅëXs^ C|[;G5(sbҀj7 (oMEÆtgaՓxn&u[1lj>xmt__[OS46ͿRxޥxGn.Xh q&N2W,vM:56{pIy7VE ϒq (Ucn6~հ2)VT(%,T--60;&u<@ᛓPTWaQÓ9vV3i>ZGqq?hʡNƵiٺïM9F%,OMݫu7.r/&8׫\ͮmqpGȸ`,T)--cĸTaZ=zͳVQE%lcTJx#׌] uF{_ˠϒ/ёi`J)nhI<61.Eܛ)qæФ<ռ)- i^$7ddQܓ.Z7m&l4ˠ#|/{jxR~c-Ӣ8 [:UUkUTZS*"ڈw].۾S7~Wt|ڵwU1MkM޼eܡI{%}*!=wq_)J.sLc3;n޶אk:dE;]lpwwre_}sΝYzguQODMI%DP[c ;D]0;;8}2BV_6NѸ.=p{3iZga*K{7"x svD0cj]8Gݾak7vqH# Y  -ׇ3y  e<犞@đs~4G6FxN>1D0*Cmo=+%Uٰw+v}WN.lSrq҃3X;g@+'*J\>IZte}҄p(nOޭЭUެ7t[Ö/U|O^y# /߄Yu.ZFֿTW"|h#~cשW"{x-S3u4I~YסFpx VJ3fIю= tlAGH7N^{B]_⑫;@Z5.k[\Izd6 Т6.W}Xw2Nb;׫<`嶫/ؾ. C?3}u*=vcԑ0\]_I5PVu+wKK>ƺjmzVu_<Ȇc/dYeF2ySʴZrƍgqK\I_wSm5"ZDzH6cJ{L̀=.M?IX}6ťRY?*c޶O=Wbu(tƧƩw}4+WX%SVĈ]itRu&gnf!6R@0Omݮw=WkwW)> {q~|}p+I@s7zbc͊+e,1Ϥ7ݻf$nUU^?x +KTUٿWl<c³;>ժTD_:ҥ'|ϒ XbsNć^ڽTJ䖧!l`ٕ#FSMtr& q}6 2Vgo^^>ȵ%e!fLjS59^ĈhhQWa3b&Rcnp”[7/]vRV&9y\ 7ql~ .o_Jb</>a"eZ2m񠗿l})1b!U[n\B*wvCű%n}e:@lދd$(x?kU?F\Bv.늱!* D`\*{Jl.B*SM<*g2+yD$G/" .pӹ?k/t:.̂[ZN>:U[je-ADO[W6밦SbN})`G\xeLlA3oij0莈fcAo$C4N9_9@[]Ϝ)\7O~ҝL;'ƾ6h_Lo$_waљ*-*O?6XǑ׆)F@N!E>YEsPKo;&{k;G(oXw @@@+cyk۝}WPˌY5b< %"ye06 Z({z'Pg n]I妊#hA+(C'> 2DslzQ3炣dgA8 E ΃LпK˟+.л~hJvVi6FGکJ墄`ṋz$Mr4|j,E?I/g_u߼z!) v} ] RRU roo; 8I\z7Rr3z}?~ԏ ;K-ob:z(%|UI|1uv8V:h>7e܄-& A(L5SgIMv1xyMK [?ͶBN Mb_c-e˳TyIe/*9>JS Gm@ݪ6 %Gbn-| _|6Rnz[aI&d.1iOh_cy*,DݤJU9)1\a^&rHcbDZWk@4fX| їm62]Gh [Ƹ6!pҦhXH x<E!"p**hi hB8BߥmRHT1ބCTr)Roʹٰ̕!'xnIݟ ive4 @ y@BX Je !ST#cv6!x,b؎^;v/(EȥlM4o;z_E~=mK8)"M^/ѾkGQdz7f`WħdSĥƐNEx&Ñ{C:l^눑~ IDAT~Y#~{ITkfK.ҬSe1 J ]W ?hTFJ:†ʉ02{S=+RHIB1_,&h%w;`*Bxpt0bU pB&Lq)UU?v zAmz>=}}{4FfϾx Y)ٕ`kVtE ' ϬzIʛx"yE݋@rBf?T=h ՕϹb =~$qo"###ƪupI~@Lw}3ʇ~"+TsqdKg'{6V,LxK\3 ]+yR4RYAE/qOjҢ#t/F?O08IȨH~c &' UT>*X}G&k#8! OlTr9Crۋh^%yMwsFvejea \"uп*w# ~7{yNp_9ZH(xUڿ:/dg_ɕJ6G}-|QqWo_;y`CzܢO~)xyDkߨ}~c @;6СAۍsi[XI}}\K64IFۻOכ=wHr>UZxdu~ &ޕՅDd@yԱ݇/Ԯ[ن=*WzUODYQK" :ԃ[; 낟=?H+2 ۥ|2hU\E(r)_gQ6ؿ}5ǒ6W>(<:nڗ)_BrET&xvxޚ(r*_\"|9{+_γ(({u\ǰɾ<ʵ;_p7c& nUݣ|:Ňc7b2dG9N۫^I~Ny%͚OMΚo@{2`Jtl:-{cG<:~ŵ:)_Br>"pط!R-X}QhyOr>*6bTO(8{Ѡ*@:9LS"/lZ$3A9oY*ID4`SIV:`AAW1}2>U YyL772>MƷr2,Z92iۤaP?٢ſPӳLX9Fi#Ԁg.6s3pi[W,U: ׁK}8LvX JޮL&)D: l=4?r$h瑍%Wy!SOѹnyOw_˳Ymi6B㐠\VXۑ"ײ+U,]FZN}}=9#{}K nRlӇyF=R cө FAuێX·Xġ3ozN]8Ǐ j֬&}б]Y6ڹ.֬m'+zG5=tz|/v *1e$e$oݿq!(;r 1!}6_;߽UmlSgO$M[x#rQĜnf2fξqg^*:_ZբG,ɂ'pȽԞ=g_*:?~ћV=cQ(2y5SN)eN[huGf=H"u|I̞}!"0JF8y{]y_^yG/-ɂKL΃0y3Nws [Q_W=g󵾟_}#CGow;bCW?ȲD)TG\Z5fՍбSa-?m!j[I_ 5ŞBy+G`/Sg9ϟz0*ywg=*h!!gI,29hьf-7yGi2]T6\Eo̠7DAuy$Z] ]go횹_;x`gbruXm>д5jFYs$œykfI#F 𲄍8kzM[ }3\>_Hi^҃]gg\ܥ[ZD2G~w*0܁nϺxU|w— >s’@՝,ƐY,y\7<1rpqoW>6SʕJ-{ʗw=1ĻCM*_="S̱ؕ#).7+8v*, +Vkwվo~>"kiZr1Iӝ*Yc\zuc=ښQvJOEtIݳ/VWf:b̐!Cr68!L`)Iy.7Uڠe)x;2FWph%YS!Aj{+|sN7tP?ׇm'm6N!Bɮ |qGv_mL`"1FOfN{y7Z2ѯnat:mM&4iRikN9gm14KN̄1cI+$c!!f#G9elS@aL=uo4ƯĴ84 yͬ4i޹-Ĝ2g_3} i~RRڭ_S^б3;<+5<}J]Bs]RnZ}h|/4vmy!ʕ׾p[6'2"Wvb΍ŢIӯ$ABm),M_ bGWn< r%3<)^Hh1GetyO^oʴߘx,*;+re2yI4?OYz }Ӭ+OM:+v5yeѷϘw9ӌ|R)ptI0&gubo]Q$7l@hֺ*}kLOU;FHG3nAvy-3ˆw;`ɳPOcK'5@fl6ox/ n>R b[Ru\/3<hA `bq.cnMVےLuв]f--Tk:${Ϩg5 {8kTz&9@_/7I&}#}b 8hDn- 68sh#3\GNȎwRh%B,}yXO-zC:6iAvB Xf)Oe"|Z)|Oq zg|ch@&&w[_$y\I&:nКH.m(~̽O^ۂy̾b|{E|(N!S"|!(;!2RpOqrIF>_K+<ήSKM#ỸeZ#[h/02ݴt_бЄ`΅rj!b>,61 bC-hyfkɿ3U*Xd8V)siF .2F(х}K4Ez1V h֘9=j]ye"~L32kKL* +iW+Is99K1< Sʤaϫ W䆹 QfGP-m?TV苘b`{[-MKˋd?^1mhAxv0X ~ xD.:RQoh 5K# @!S@Q<!R: W! P@юBF GU ȥi2iȣ9YzZD<oM<_IAj`%~޴ru:Z[h_퉔qH2 mߖhÐ bԬ!Y'] Gd )yXTCq.D)V&(!r)K ۍHF=r1" !Ӯ@"T()J8 n0o h^H(R8@9 (4פNwD!dQRS*9>C!V)قα)Z'ҖKb5}XCFr'|έ1+Ã~~l$俍ht41 ƚ :XC 7 &ҙoX2 4N"*9dG@( -!dMj͉uʶ iKXR5c֌Lj/tv] 2 f&/:XdIn=s9M)ƠZֈFHKȂ< A3~ JX#ꉚ lbU[ݱ֣fb P0[e #,vVXG!3]"1O.C䞃XB(DFIVxR4E5cQ+8* ,0x(`'zfi0ƺLSRڭ5\=Հᑓ N)-M B :ee4@;_HD%k^ͧǷ!T"Ɍz ʔ!gf 2R4!JUa "X!PT{ lǁVZT$??婂}e8?dXB?H拀!YeY+&f1|Hg] Y:wc[2F8 OPf$󥀕q(LH#UZf!JD)1ўT**I D(t@Iy2X8  43":GVTp2GoCQV -X3WGMR1ns目桞Ey`L i ݗ6d,% ٜxO!!iFR K幍1 y@[ A@!"Nv"!@8G"+"!h(B$  Qd,Ѳ[r_8LA v|)J.?< V~2,:QhE?sQx !F@ 1M6]`)ѣej &?Z &d`շjCKG7%z}BCA+q+(|I+zz}ДNtK7;>ր@iK3I=`^3[3DX| Qe%V;\m!jn,+MOYʥe>Wo Iͼ`!2ʮk~i~p$CI$bbEXiZj$-t OD)I˴y~KXP~͠v',*bCwb[#!f֐|<{g3!fE+,ܔ4$܈9h 1k b8B5"[cX=bB}mtt4_5C*C79c"kBb+F|ǢYж}dY<&&ɟ̇;2YւZdNߋ兗?ILΉШ4'Db:4 BH~X͆1; .-|K:r1"?eR7ccb񢵛{i~|Nٔ:&2/0&46".0Yx,{f!Xyqlb^p쩷QwL*4A0[s\QET}Z'F%[*"#V@󣓱 &s鐜7hn<DRz8 I>ڔ,nM.6zD[_/r:}Yk%X1qWZ+wm'9mC}d\4t7dXaC[27o: 9?3?͕ XV|9zA#y"_o@5ŷx?ޚ |~꿛Rz?ׂ}Č >b:'ā,4COM^t3/}}`S1d힑4MQzQS4_ȧ) A,ۻ"H1B(ҥJkpJf"-ogwEi\ىeWܜ+ցIl w3n]@-ט$4 ֺ; ">hR4jsw"ܿgV[h$b|2])A!WMv0w=A2q쑽D*8jn d:OYK[O^s=ڍuDq2/l*S ƵZ GgrXv:K.|6%SH\9W}7HXp%%.ymj O]dy|kf l!?>~l/㡏(מ^qws( ߻˙@}E﬘?Jb&`dF廷pj9ߗEh ,K;riJ9Ϳ)C4uJ)X>q@Kʤ9 |%+Y2lL?{4ڗ$5v"m6geGL|kCUr>U K۟B2S_, ~}vvyn.]s<>IY4@8c%s*+&WKxwtbW>^ *dG1f?՞ҌPcR KbHIJe"Ȕ˴'GlK&4t`֣ڄ!{4cCV/A׾ltVBh߄!94kRaLqv{ zWBؠ_v?xb(R y\bz,9k)˯8ĕs)BlSV٩4QJGgFUƌyDgwm ƣEg& pj9ڵE~Nޥϼs}-Nϵm3$=V\Y^/Q9'7ȃ^DfqC+(V/B.Z Uu'XQ+i{*+N3ރ;9:oGS:_3 _$b;ɤrNwnJCV3w5i6ui"WY\8NPp@]{캼weG*= V繝=[UPzݪh+3dw~ O#GkyK*dr#@8VN$ȣ)QР3`V/|uf4&\Tuxh͇ 0,qR.g)/sJ PZ{]"c}?a>:qκ{hJͫG7,Xڶ~hwբ?h%S1Z&(n_A~aVq_<ݑ_VuVPmc%1؊K ۼ|ӷ?j!w?\7Md{cJvXF@_{cUU#T*#$@8PZEE?ڠ]?o֓6 EcʾzYN_ ~x&w~ۚIjUu[\ ։u^HskZߍ;ڵA3טsDżpb]{ D b|e)nCg gU1L@XP&6u;:1u_  ƙ5;$,(4,.<5 Nm蚡dc '¸5X@Ph؍39EXx1;5CL׮G.}EkVq% ou>|t/GVGo 9rYٍ! _M o_djb)CkwWshԢQEO]VEH*VQ7)Tȭ ׏!)484mWVӞU\ީyUziȅg2`3x).}sBSG%L"Je  IQ/^y'uṕi"J"("<ًڇy=wѕJ(7B:صֻ4 j $~"˛%-[.:hNOFk*8dxR?OA<%a 3;ƣU|dҴf=g>7j;M6y١Wb ).Ufģe/ߥ" LeYk{3B67ի{Eo;5@Ȳ)~xs9uHCvu&nK9Z7I֣N-ТyMFrʻZ4i7@_7jhhI DX^+ Iۃ&o X%g[jѳEƫb>krK}y_W\޼²\twVڷљ,{|*pօWZBAY:0RIqZ.P:9eYRQI͝FOkSc3jۦWk+Zە_r̻SMx~̧:]j>+chx"]0t"],{>yŧ>>v裠n#w>VW'aB ;'e +֣5,|zx_hЋ^ 1o.m֣k+!zI_Hsg+sQ"5A]\H.Gn{p\Y+drd ,cɇOB>95ӛ,s}3 9<[S>UӴJl 4e|"n<}v3@^|xzW ¯>Hfi](.s*zuwWUj.;JBMQ8"Onר~iFc`; ?CBip{A KLsK$]ylٵO4ӑΈ$pQBG'3TR7㑘ʰ_fXs#]s /: =w]wwoNfnO: +-rfΐ\J4ڼɘ =$"kԽ?awuzI7=Nw5eT{'oJy8ζI[[Ugr)XWMY6E®\3kU(M70db&LҒ ?9̫Zu秿Dh~U?_8'%jO2[ʤˢDvWq|;慇(3h dWqR!T"qzW ymi]s7<_G6-Q^1)l%=WH 9Yc)Ysح/3h mI3F2>  $qFU] L2ʃ[ܹ#{:hMHE 6PCXZUm;2pnаqD'׷g#gشnٙe㮄Cծ_vNt_rc؏9T$Eũ__RL A#jJXt)@GU'6WχXWàd,^`.eC>`][5u#\S11g6'>"'>}z slc9 HZo_ZX:z\ln;q9OM֒NUYq~PVb.7[o 3pcS ^o-hbMḣٴ?YՆ]o=?ק.}O,Az6qH .U>"!>,{"7RJH >.3b3QJj9#3iW@Ω/݊TN LQE JeKao֠v?9v?'~Nf-~Q+.׵u.|fD5670~qZf7_F_5JN ƛќ'ŗ"\^J.H쥲ǫ<f94( c|:/JYPPPIȼ#7Ol6mߛyQW6ld=!Rb>@(8UJ\(R"['7)ˈ{5Nt>lok"(9yU(csK0Y`2X⪭}l?Y37aGK <qt d Rш/ E"@oaZX݈bH`?gּ1k׀cVs8E4\vCl6Ģ.z3Ց@\,B&Mk&~*%]Uf$gPz5D|cų-?XƜnFa5lNt$jH^d6́I \s8#g()?^~@ѰA_N~Ÿ7GyR{g:46h{`C jED ˥ȰTұ rRe!ɂAaH(ymZ9M[0E1C帜[!"aXXH$V5TGge۷n Sص7̬aeek܈IbL&QHS߼JSfy IDATi%MJ--J&Wt6Eq9s!B4o۱7&n;t̢KG3LNik?Z(EQK>=Vl_>\}/xtswڵr-4Z9睬Pd*! S&, YS}zӳ߼s`쐟o]J9YBćo߅EfRٗ}yfY[h<\ΗX^RR*driGH s\& @%[Բ4år<Μs{6YvLWی";wnU<"Ŏ.w-scK+bDQ9jX.u?h3$HNL~~|\-9UO6BljR\L'߫ }!m;yyר^Z^5<TD o/pS *(U<g |GV+7! 0C,149̰QŜ>uu*9:Woo"r:/ohi@jn^4X+a,& ql_S/F~39'}!\,ITD7l8Y/F4Ų<>~=JV}&4c=yx]NNױq=:M{NX>&{95ۦ^5ר & s{z ijذM}}wN̝}Z!\gGǨ\ zN蘏/2nu=]70u@ f͈NFU:6u Q}/?U56GI+.^2M5ww/f_7]VCAbTT\rtc~Ag-ۯCc>MzLX6˛}rH <.&{5{#^xٔg! V?խF3:٥BM,+ˆ| W_oT?y ?:++HW3_Y{2o7@a];uԩQ^8kRu$yݟH}X$Y_@peD'EEDFDDFDDFfX%*A{$D<1է?_7G=Og7ޝpu=< XyԛIfH7<'M_@f/Jj=q{}`_cs/("Ù_fqG,_Q{Kه ^j͙N)/!1j:|F&S7S)o|AeL;i#ʈxu`*Q*(C7:ؼvKg?4xهc@'1w/3 2?e/kG7?":* kwOmCQX^]~PWefh*ݵNeKwn*B{ޚ2ώшpghWOrPY<;VOoa!7i7]_1Dp`nVӇ5Js'3n9iŧCrOk[]Dr -1&8=_} bWQXP~Pձ6LWO, RJ` R`9%ymy'?Y@^ V>^=CpƪcATZ=yԨ aC`J!Q,gs{.zWRjr)Ԍl>F"MHPw@:.E 27Bvr͜Б"a 끂 Ov܊΢ qx ++V/D G'ַoȾ~K9rkW+>*ga}tR"44 ɕazh~PqYqTPTN`BW\>X)/iL2'o(wKg 3a=(#CBS 9+%_ecaiGNL6*&ZobCͰ!b0dW\* H;p.6=2^.(0I.w ` U珣W$6#\tI fHL !`9WB~?t31I)I#l2𾅪3Nha9Ly] oL{'*7!(uqRa FFBG%Y28R+~v9v"&x`#@2llFU$}#Gh,EFB# &*9^3 hA%Ri:g(ECqY tkWݘB%v#PK0EFL\Kl+X_7҅*5AXI;Y?a:0"IVhraB@$ 1P*M]DD:E&XLd1L~5P܆5'+_\\kf5Ȗ.b{*l |uvlOs!{lkdoK\Z &YR۟c0"B8y~ V߹~} i1:'ʻCT=R{sVbD|[ܣo--d\2L5/ E)dŧ̭yW).<2[! .uԩ;9Q A$ 7H5C]ls(U=l4($ӐOO3E*)8=ťx|Q')LJ,CH{XbmԩC DF_rd\=.tT:YݐC<6/ V/ZE3,˲,CS So sBn#aEHK" tGh")*aXӝs/O',؜ $BR`&\'iy"R 2H$Xb"E?G_(ֶ .D"HŅ73I!/IB ,_eѿ+''<59fsA]ZV[ ]]X9a߀]4+?yjs1&D+5ek.hA'̭M[5xy7(m YڈlRRSPl }祶>5 $_X]ϝ\3q.bǤ4Z呸oJQ@-.65qkj9y+dTW@wi3}>!ù6݊Qqzߵjfiښ#z5%NS߹B)H"2.V)Uxf۹#{o_&g( 2ʈ5ҾɈɣz5qgwq;B_!mFoݞk3 ;S#ʶdξ8Cj;sR)ooٴB5btmxf㶡tWkΙݮ( KÅ[uuŜi6Dl=b c4:v<*˶KR#E=ԫlKFp JRfw"Rq`9eBb $xflɈ]er 0`!cNPwHaB3n]%r!u B"bhF'1RJ S$ J)g1$@DJA!ȅ35mPŖ'$C)U,|@$M13kjFA*0*箘3CO׫q:S5%3,l_iG ZG'mrV?{8xtm0e6dix|"JE6ndjK>>˦~%-rc+Eu,5+÷<;ԌO:Mdk狟N<6$jbx #ߣ6vy+gYNf۝c|O,>7ie4]]c+^^b?);+bק*ڼtpRR̻W-Whac+7abg#o-l]FT9mECGd[Nuٺ˚>6=kWMte6e>|Orr4dڦ\^8{9PYAzR./R 5&ûV_,R]q mt"{3e]j7oTÖÕMVgD3EɄl+lAw <(Xav[5?dR)s#n(ÄZ5(`&' _,V]>D54xN}g1O3Z4Ϧ 0 M)$JuŤdžHM4K3-_Ԟey>Da;v4,cWؚ;OXއLuP1X A/vf, :մ!!>09RX C(Ü@q |\X;$9yk0GH0SIae|9|"x*3REE<.Ra~ 1`X|ww?l8mca<p*a1x /@_n;l9X,5 sD55*JC"XVp+TBK^.;2fD*lD˸׃LqzCр\||ߝ(f},ө^griWm[Z% 6]ژ7pb7O?@[ edșoC(5z_٠U/؎ +"yrʩɇbMlľ !%UϬɯkk އU}F]J.H'ª젍y'h9aFZ%8qdaz#lm%^oz$"3 v'zwvt;1tq|ёĮ?dU<08 0 "U+01#'FV7B|TyvbrZ}6,cn>;vs@z6#ڡ5kξJVyhek? >[,3JDg|*m>bt'<~-l (?zbCE?Sↄaqm ?=FKc}'<ٷk[2Қk.'|.~η~hڳy i]3wiŗ'x'ngczp`<.@XnV)C"߉$`}r500pG@8 4Rk L]Jjsoj54ul_Ri=\> *vmkxaA}U)A:?ڿ=˄ ɓR;; 䥧t1,H09It|\ŝي x,˱S.Ύc"`gc1L*Ô;helAU~Q:;jֿ @ݺIٱqN,me: w&ѾWvn{P) ΔJW+HڧkfrB+Bפ)TTrLG(]%+ƽOȌ#@BBl-v"gg..ut]ܱW%/+fۆKӯkI!Y07[2CjݬvX)Uw'now0Bnb};gJIkX3#E)79{v볈`+PX}0u}~S_ϱjA؞^~ȱ*zϼ/_S-/SaK^͑_6@7q˶uhٲqf0c ά# iܪMiZhܪiTk&ȲɃԍsJKtW?_r²_+yh#¢Vpԋb+idvʰ5k0MVMS}vƬN}"̬#˦ 8`Stna[8`ֻ%}j=4Ž-7idTp*~MVW93 IDATfttͬ=Z@,w{g Am 7`΄̗fXP޳"E"4ȳG7nоXH; `Q_zi ]FkܲU4ق-5ixU5ԙq^{8j:g#` nҲsiZ4oRBb̈́]6o@+O0d~A{Ξ)8un>?$v$b0`XZ"j{Yɢ%!g 7Ŕ{u~R7mȂ;.} [n5FJ.]|cҰƬ6ebG"DHd(L璫YJ!W(iC@d&4)2ɹ,U;)?W;I9]lҫFtaoߌu䠸;/>}ˇϮNA7]_<6A_ 4`Tta#w `8Pr2p\TN< DŽ^/8y@K@Y^7/b]27 y.#RvT~#8.AIϟ~HLxuiE㑽7y%=]ۻ(̺Ob(E;/2u PBo`N*ue:u[9@KœIEZXL288q|co v+)<ͣ/Hg?n/ ݶ/n9Y6X?÷NHAoMTi` 1npʦ합` Et٠!:7͠l,}2`D"%};Cm=/Ցcܼ“wQ o;AЍ I}[ŅgѨe3/s#L-dDg1'C ytb7$(4N~%Vܻï^˞]|Cu@X_= 7!ĎTwcM 5T~P"hЋ^g _\ڲGndh;E^38-_b߂wP)7w?gL>f&7'23XǸSta|# ĵuٶ|hlܻ [7[GL/>6t5T8GrYvGzH$%naf$v`,m&̱4M) 4"[r_8DuYOmqH`T]^w g!sI/)[5"XB׵na^EM[AinNJkVlBc37Ps\;!mۺ:Kr:+OP#r\n(ԝuaBn"7b:4AcUQeԃ+ϋn(=a @=Y{.?Jc;۹ٵ @Oo#:HG%:vÚѢVP%KajD<ֿ1so"rӲ$ȣuVۧ'%ASث)Z7}Eb"sGڙ76}zJtҙY#\Z ѡ5TR ωapDH4#ppl( Ľͫ$F3m̠ 5PE]y{};X>G |x5Ju, @@HHPҺO Dlazؑ$"NCA `cD$Q$",fcVT4`T`@h0DIBff11ϧR2  Y%1EX$ b8@I(8YH> ))F@4 _@]D6-n;4_gIKLHƲ" VRVMq] x: E O)F("Au=ҙL{]粯.5{ "f|7<ܠ#ͮANKuef8֒x5ndʹ=ݡz,4.$+\aYj.HYOu1TWDK.Oy)F>aq%{'3Nl.gɆt(}A,zk”ԟaEcf<ʢmv\H eD-Nb[5/L9}S.N1^&3&[Q)rl OPx6f &TƢqiA6n 4+wc^zwd;v/_,}6]\W+exLVL4r&!M_@)c|PYǂ7k0udeST=z "'GIUY~~Hft!x<< _2X$(/!"2MA((c C05Qn:0k61r!O&s,heQT10M>^s/6N =GU[:K KVyCU6rGN* ᴌߌJJ+,MmUĈk2vz 6kn5Zvi(@9OW4^4M57wm PW\8<.l$ O*=|ǹQ<ȓv' -K][_O˵ Ñ *w^BqƵ1yo4(J=s!O \wnS>SwvZOB'=FQ %|Ee?S""/ ԳrA39%}1\bGNҡ*h[@^9}!\hVD)Ui5dD'*IE|2GmWZݦLG>FN{OriZ^HXA(c^8RP=>}n@O>6(LDg@Wgj2=`~:W|w|jBjԨ^Z^5{=ۿoTӫZH B.+*FמHc|xR_:eʙVrtlEx\/(`fOUͧl<1O='+,^2Mu7*>mf+4s{.0߶M/UkԨYF1QjzhϦlZN[4OuXODRckT⫆ ``U5܍ĥ*уYMB_R֙2gmWZݦNG>udD%*IⲣbT.|j~X_/Rn`W_*yz؀5Rf~b W y/. W 4kpmeuB)̩5kz ةZjV }s)m^Z&[;~ﷹ ¯[d<>`ivGXVYU *pasGVПGG:Y5+R3_~{x|NeݞE?Lا* N~3(;vDf.3uV|a~Bf={+EVW_.V=#Lu!(S@AHK1khtM{g.=4ed¯ˊi`Yss'/=@ TFīS Q7qpQ!9 AnYnѦL雩H_#il$=$sVJPS;{*($WX͆~YtggСϥX=j8{>hsl bYqOkݡ=1g29sV|*%{La<.>~uVʫ1{{ bWQꂀ:vCքirq5uu}$,Y2d8Z+.El](*.[[uu:njk @eodq? $$!Pkq}}=\yh9qT垚|6EՁ`{arMZ)|g'Bc2ʊ;ߦ~COf}{1*ycǯ=֬XM 7ݸxɴ` '>wҳ7v.k6nA 5~)I"~[{ĬKJcPhBmFxF>1ǵYg/V3U%`Ho2 &n9伽CQrD{ x_] nψɵ5{>,$`cwrΏ6\F&"u $r_lXU>&2~¸**U5vYgϥy8Lֻ%NJUf=L*+1-X&?CIFRWm 30{]/ aKg !EO- ]WU74 a5*| ֖:WWlX0pUH/F(Tb: .cRouhެSU<+*wQ|*2XbF$Yܼ\uIhkY46.guUEN>41je5%4c's飑FVKsj2IF𩕥?^ekP$l!k1z}?Oǧ˸&?mA+Ɉ1aTpi2H_,YU8FXm,BwN‚od܂JDłoi3>JkaB QFam1#Vܖ'I<:VKi{F^܅MM8P/8流[P. \z ՓG$Qhk^ !=\Twb bPzegipҿ@Z/KA@-PT#;cZbTFTv7 ab ]bս*+hoL⨪4)$ pqY-0XKWFnWD2ji>AR,.e 8QiAbj:%RΕ̇t%G~-~Y`zЍoqX][P7^]6:muwM1P ܞ5 ˗kkoxlM@:zlh.O!U[/zr5o`88t^rB ojj'i3VC MN(*gjنO9ZߟՁ#0/y%oWm_A.PgEUr(lԛL+_ =A%+k.ZZ+Rb x+݋Q*@wiCo3`>m4x\~ܚ@+w״In,|【ɔi;G|X e18a_”l d(_Ͳ?~7x*R !Rt&ԟQs?6e}Qs<6f5Kz]0˅Z,aiӜ!AXyyCaIVa*8GB[%"r:niCX"UgNV#BfB~YJ x[@iv-5?yhÖiuI7ҥw_[_bvgɽB=窦|F gƟWT𩺖B)?#V}~A76|Qoع Q_V}ä?m>.ή{O'&X u IDATb}{撩'Sk;+5q9>>߆M*a+m3ݰOc rnU\#fG9Scm}J[NJIn˳YUmHbo_e}Vrd$1w%쇰=缣!5g#VC;w?|~ 5Q+W"`ѱ<{c<1w?Hj;tJ̼X/^ b4[>[0som9|',ZM6fIOr?14$kX!S˶?ifY~=As{~;?O;Ȏm[NlSQ ;WﻑȤ puw8|8׎\4l$٠5? ʱБXpeCuڭzTZB.OvJAKasd$Z4> B357Ɣ4I@p#Aḧ|\,3x@l_r"!LRc)F f(s,DQ&1D|IJl4mXieQeg )S²u@€@SJ+BXY֥q& 6"(6t vaVtjlxn=ۛ=ݺQha~hi'Uũү?CH[#Hb!ףhYl1cnػ #5VTrJOoQH{ aT+Œ6 XdbV,HxrvC$ǽn zG/~ߜlx`1$}@7Xs>"Vx-8vh|*Ź]^O!ȳ#8G͞~D!Yf66BfӘH{Y=J܋.3xtx9I׌yrց!d/㲭rh..2/76GǗF,U+TFЏ?] w'U=.+mON:ga`\:'Ƒ/*duw?OxL8zz_ovĚg*-8F rEOwW'n#\}\HʐkL-u9<ᇒI@6u(9/.3W!8u.=w{=P㤵F ju$YGp,3X ޳cy.V%+ 6D=б76F SG6'9d?fME;1 0yW_&s|{.0ױd!_߹zE$WfnOĖ}uAO] O/?MjWdUCxp⦾GZ7cG#ujч rHtߙ_7:;96sE܍d +88&;Ϻ?7N$wOdv& X~ xg yWfM7J@x%[s*\O8i1ml'\ވf~"NvR9.6wA#A@Rpf:,ek4NƘ( Tdv|tět XB(,i\Q~x+lcNv:0nWXc߽]m;rݠzwIo4ҷ㇩,kK AU/bK(|6 Q8,LK D̄/D=bl=tuwݘPIĴS3ͼ_j#e ]3v eUu1ˏM׵{Ϟ߱G}&yAJd49,dis YnvI9{r}g<8Q~dv2|s\ШNھǰ}j$nV1AFU0'=M7W)QĮH$A2_5{q4)ѵwQ)gE.]w8qsLa sPIx!cx^NWk8d .T`J|Сt^ecźVWW>@qw?gO\!/\:4܃k$SHq/];(gZ;@if'e鴜2ujf@u.3 9qЃ>:cX3ĐV}]a:N^]FH7ڱk$:w2JqK.z +@BϙvK=sXahvY8ڢo f|sЊ) !+浊=~ȷm +F/˜Y/Vf{6od@W}]z9܉Wp>!$ͣg7"g29NCVk{ܐ& e]SsG '{ahuu(/%5(|.Ren}R7Td4SpS|gOɮ2#".#ͨq< !S58|gcYɏ>m^<_G ; 2QeKe(,6 Ӥ; d\+Cw1m6:fX"hYogѐQO޻z vwf^L7nQ6g] '/o3֣Ǝ߱ݸ mYF ?ָ6s9?k*RTH@}H@lm2vEZ C.VZ2Djd:f1EX܊w'KiRj>k(DVQ?o2\1J=iocGb)&ڰ/~V2>*55Es@Gz>N { -qz:6*l-G&4Vk2u6O:vX׬K]ȧ q&fFZ\|ltYϻ.g >_-keU,6Bf։yZ2Om?'a#fu<ʶLdr OдgW iHCƣBGz6٧AiFe0L1yč9[΅Cv9_vp;ٝ9H!v߶tLji|GI$\nIR.Y4m8N4ͽ}ysU$hv"IBSRIR{3&ǜ;u6 ii,Ĉ \,~úsrHuHoDd%P'֮jퟚ5Z$YC]^rn5%7xm-{ 2󟬟}@rߌ%sV]yj]j14)JObVR~QĵJ(鄂~dKO YED,/->D!LHNQI`&/~K`ozĹJAgT"Kbd_G$daQǀE?%(Q1H1(/D<}x!v~mu`;I!$K0 Sp3R[kfy"ŘbAf0 œ"8ieaSaL3)5c 4PR٫Ucs֨Wv01Cũy ѧnʿۨ^8>Yˡczɗò1/n$-lw Vqf s+ŲlYp8 HÞElUy;Q575|86)S?!u䥗c]ۆW;p3Uò@}O/^$E5}ۉ]?YQ*O}\yo9[|fXI)1r)062_6k5&@ĩ߿l>h׭uiؼ̓<5Afz,ȼ ?MLN+w iA\D K|=.BthRG݋r":^}Pƒ컯wRG#W?]̌×4᏿P9 :W-XlnCG0Y_gRjp>2\mp&;=`K$D9냙ݖ {i:Ww3&6rz6҂+ul9&(%"1ڰ!j:8}7}UfI(\8U:{jO}w\yRvUxp68M/ j} ֍t0F^b%eB!Y:1kɦft5[yQ)Ҥ[7Ǧހ$04'H/_߿2x*~x  Ya*/z_SڲEL}(:pꃊ~' o'У˗&o` !"Tzp\}*( Ltp b!a0`H 1[FJF xf. c)@"d:;X^$W$jAAQ 3y crYFR䋱Y4j`?Z=u-|g+@<_Z{qn?+4&̴j.g^M'e֧gBUJi)0pݴo䅙əd-0zk]MG*\UT8>]ysz#XLJ@DytЅ[ fA+T"C=Ic)vBqa~$|Wzuhӹ״_m~.Ͼ1,Ҷs6{MV6^E9xBp=~O+38yW}j/TPRbK)yY`g)b7"-ף:YȞ:\z|wI&vikN ! R,l3}7MQB"5qn}'Z P-J>P HL7G|jվuӷlv.MA;O NS`h$PmM!Z~y~j=(MoI*-/)[fxMC {+l_u[=jרUkS ,MmY/Ms:Kڿ]OO qyiQyjvO,/6Jv5s{φg(}᪲ !:*Z0UE 3f~+s(`elotgځ/d{7LO!JS6wKօI}*紳J~6^ bjvH |2munwpN==x3%( D`L*O#YZx*3t1ƅfS  c1r⨷:Vx E eTbS(u $#9B]ؤYJCWsJjNe% 7y;!1A_mumaC ZV>m(F~KbY!wT~HնD22Py|W$%1Nnvv0d\~cu<,>Ҧ&B#SKMX)woz6+.^N]^:R*';M}IEB2CϽ߿rD5i<0 FUdFDUa;:ڋ5Lm׷?/ `2&^ nXdle)K9RJ-{xX`Po뙮D$AAf@5vuLZ2Q wha@F$JIm2$ y B.p4WMs^:sєGdFdUccsBݐb6 @rlبFȦIz8'9Q΁+w8f[,Q1yIyIys X$Q/}o0Nɢض_8)2uԅ, 3b[oXP? kD%+QZNG/:뒬I/V\Uz!\"ìQk.ǶecW24FҳIT"Xnɦ~n/Y\2f@f1E{/y#Υˑo3G cS^P4|j4l@w7lc*ibkZ3uak̵(T1*4e ܣ9 ҍ:F$:xQiIL) 8G}W WW^޿*@OQݴLL~>ҾximILG=;<))9@AKV_֚=oCEA{M#I VP-]ʌ/:u ǽ?9 rȔoe y]R=Gں3k{T Х0D"/ܖ2s7Gpˑnz%F<vsfB"kGgOLݹL@jԸHJLG=;8?WIT6hϑiDP_cH~3gF~vM*ˇ-1t#k*R*ƫ[ Q|s!_OQ $9|xf8ڪa>n" IDAT陧s:4$qZuwl4zhPܔ2[gF(++].{@k3}qt&)pr%~#%n(tirgmؗ1d_uG> ]EɶBFv!I=OO1ࢤ׹u5J2k7l3;-ِ*$/\r?|MƙG)TH\em &1_ς~w5nضOokKD/ha[MzR6 kcx6k!5V2wNĻiv捨xy nF zwtͼYIfns .d$d E3Hfb lF>tI6Mx|Sln {yzrob&imt5TqɡQ1W:PzaoAN !J"_mƏF,z] [q5P<몍_zW~ E ރxVy)VnCv:cT1?#)=f|#~$7Mf:klM)QH0yq7->_μ=!ߺRVE3<}૫KEn:_2C"Ľp&e kn}Iūgσ"GxibC}fM ݖwLf=c >t&h{}  _myA87=/ y:܎ə{Qdhb1?غƚ-쑈v#ng8(q&U*gub+b̀bwI#Fqw ukar|SYW NZĒʬv,۴8G3ǀ"O_<CD ω{s:Κ埯]x2d4子 qM"B(Sg!t(q%tTv݅1/>@g}?} dTaMV]d擩9poLt7~oyyVF<ĦS_w}xvŒڱ+\qh9q>Iƥrc̶Ô; &/ƶd'VU*e#,]WD<#id@?`ݪy[N"r#0;9=4kp@~ĩeP7%W5<+޹?c_Snaj Yii \^a}| 7+цQFmhY嵻[˪^kR.%MW?ⵂ@F P7)AwVUna-?>]_XQցt^\~Mƭ?48A Ts4h ` lPTuV_S GW'/7JcM\J<'A#M5ŧ ݗrf26 kIxd*O?'w>]'6xˊh̳"f\"j0MQ#- Z\PEJ0F49cXY2.c+{j3L!Luç)^Ѐ^7k˲4́z\eRŻYd$e>\('Ie`# TB 4H TESZE'\.ER")JX\>M0Cer5X|3JQjZZ$u78M1|:m JPq>2/y4K3qTv~ReBcP/t},~ȿ6\Jݺ#;j\FnW*{zRpdNPW%f'JO)bquq4%38<$4OˤrFCi m?]r**CU;mU]ZUaK!RPr.ղ"d5Hq_ض'0OrzFJTY0F+ VǏˠfW߽ɽ{ONNomn #^B<Ҷrŕ!ڠPDkme`D)sڎh{\+02qʛ ^K',ো!C?/_CX-I|k?Lri)Dv1Svdr0;Š ˇuaEm+vɄHcJ/4)UbqfBP(4pD HM SLW7 _[Pׄ"*9WM,tjeAMnIHbo_e}V ˻vkݗ" 9N笜3.laۭdRwE _3,Q1c%fy;eϜbckd?Z [X[7Yk W?2.-LkIe|Az1"~󋭧{!\zxY9mQCHyDG\BW&Em鰢;/ U^j ?w6~gӈ_/LubR!bBYsnY'xr|ֳo }z.*k&y`8w?ifij~=^8f;t|]عzT@Q﷧_T @>_2^۶7Im׎/r 6<#P#3|7)v Aۡ;;E!~{_~>xᢉ[3^p?~i΁ @BBm=Ecg\[vE*`!8 BHg8ffyz"H@p?.#Sy|C 1S" x-̩5u!dp^أ%Ήqdӆ7ll щR@fPt/c;ꚭz;3⊴ff7'=blG_u`]ow.Wi+/M0`9²4_0 ,lk nbK2eNp ɩ5uќJÞ)`N.SOT ĹnAG<'![eELa t;J 8/)Zyrwф~li-rVz'wBboGŠS;Q{ً{|nɥsbnٸ+"6٥wOEm;tÉW~R9].3 zqnǪ=R(@'[4 pDG}ѦW:7=ں;*<86sE܍d +88&;OGyNۨjaI[d D <]U6Q7ˡ߯7fpYֆI?Z?_f%|ċ tU%QȼĨ2 ?Y$[ulN>&Ї'onvC43)"xM[N:}C2x"8p0 @!0yly fg;@7 h+/ŷlEس:,"v^ΧJz;ȃK{c=3g'+Ivz´Tq !]բ+7|oK}>ADXnrx}sryM헎w+t2/7К]Z1ф,GC1T䕘jU k =eX*%+~qɏz?*fᒉzZF!~Z56vBMҾǰ}r5컭XhyuJ9styOs҂:{o %dqŃ=8aXu]+Qi( ZDŽȬo l7Кq|#Q'cumۀ۟aNcV>>8uVmoPygjߥ߳ҥ}Ne2Hd5R;j9Rz,0>5Ym{>kӂ"*6xyp.3a-)LE,8idllq pq،[aai1KT{e+áԹ T{]Xqndc7g5po1R =g^=w '{a@t/뺧RJHs݆pp.BC_˔l{C>xr|6v, H%@_'Dm3ǭ[[价SdU>7lɍ#w?d;, VTUӇǬ-[`I#w7m]y]KV kγ|l. HtRO7t5`W l{7qzG*4e)NM>BW^#(I!@n=.pU_@ {^΅O)VyIȉS*q}w|s@]N'D=F̡(Ijb˄}^H@&s -eBC;".ya-dGk~+f &Jk,4*-`Sv{qwYN6bv[΋(y-#}#9% ulio.N\[;FWz p]6V8&'8)(4? `#?q}s2Hݱߥ=]N @\ 9Hoq tg܌}Ee#vLڲU0{vү{ˮ/]m '1֛x$'÷DQƋ]L$Q/Te9Ho'~ٳ.ˮ6ӟd&8LZ(A{֝~u;̛c70h]r)nÙ移5ts#,TB+l-4ʎ+(L^sp,q;wK:@HAiYAhTu-]qbt1n]~\3{BaZQ` /).8,UBp=;ZHN@jIJ%Ku-")Q&ۼ>3cbVI*O4 Q ^(q 'ΠtjiM{,/"u>V=F#c(+- IJ0Y2E;`քσwN"44߷)G~q_S%? ,lGx7S -Y~^kUJNˢx6-'x6-QA<6mH_y%gL*hIt+c!u:pW/i,Gq}@IxPæ?'=-<2ΙC}A#, ɺ'/}̡0SfSYB\",LG=&[\ݵ+\J$ i jߺSi|6L?+VI5xRpzI36OƲ=J̣v_YT+;=R,dyhq㏾?B1:~Gp`9MqgWÍN%&Ll4!8U3 quKYɯәNVl҄ș:oP+?*]*7)Գ& &s&dcm럤ZvyF&|(!uw=c*0E6x4T+瀁.qup c !:*Z^Y8UO nO; 9@MmUH?R=>7)ֳfAE漏Wŗ>LW&%b۠ 3}z_~r8@|eB'`CYvú5 ;UjB` \6^g0|ɜw9Uφͣ8#]f19enp1!BlcRy@AX3cc3̐45<ٜF=F"u2aA L&53 l6PT+1-H1p34Ej1dj1@(=zl@=(#ulɋdJF ihaoasnA~U{%2+tE&eUz!LysXT뤱! Ҵښt j0tƶԷQ˥暩#z0¢l] -6 X?;މjlI޻ MzQQ"JQ џ(Ebo EDTT.( vi[Rd&r/_잜2gd\ު@,׼a-{BHBfʕ*daϗ՞c Ml?7uyc:U!P>7\Wby fE_Q?_?Wa(נ%B6oY Ȫd*X>^Mcfg}R'K*F? ?_Fٛƒ.\n;Le'c ۜmW5:/da;+7UO]U--Z/.^gAk;T=1~.iJE/V˕87ɨYMZT’H>mR|I9$+jb:eBUN>88>B*Yn^HU NZ ںˇVo(کC%!C) YKy~)2U/X/"FU%8U,7$y\BBg Hml2xyVnȯzUe%y/S0X>Q!cr$@< QK55;y *rO (1 {"pl\Bve8_ OR%- T%kծY6O&:|R4\r.}ۈZfgdEvv8wZ(y7lS-zCL4?ӧ`wKьU, (yce]ߐ_9] e˖tp@E޶>7ںժn|m/=(O7aiq"`>kWV>U:p|Vt?շ]B(^*Ǒ"ID8/7[|u2hyS:;t[ZƝ|f.`Wiעs+Z_+kW([#FQisO2G1))5輠ΰ~{Ha(jx_eW d8b$%`' @э32Iة^굛\gC~sw@v5}™wvP:Qc#t{͚ns{eXi~1˨T~J;]Nk Jܞ?`ìY;~^m۪֮sjjg]eK#6QJݫ~NRsWi׼swW?0o檃_յY^uףwwZ7E+=7zժirm/ i&cYu,z7+X{*SpuÕ-4!DCu;YbͻfA5gênժ׿]e:<샷wjӼi{-/l5sGŇ'=swۆu궾}5>%]7/W?ںիnک藆4wQsWZ&z?9KmXY{w/ww#]ގ}?^~AS+>vpF5j^q݃co)srodl7 Zh߸ًKwG&}1$sq^ѰatW8в?sE[.e/4ovy6 h4(4lwyNQ3P=sv~7 kr=rOOsK<Խ`}?Yi]R &I4v8D dq G5?6#:pLzA{joOqO^s''}9/[7/7᳖/smS܇H:oVȤ*|̸/@Ϗk.cW??VĿwL|ב?<'Je>JݿͧfNEҹ}yysqT~u>?᳖/xN],PvC KTQOe)QD<JRnU+X~Ne­Syd@:%Vp딇G{FO$RU`aw0[l0tڴ5;&͸κ%ݱɿ0||C#MzHw{;l)bHʑ9O 'F=:R7SV*5oLX9==rda8j#--H|Jp˔!=c m贂^'}9/[4HXVh"ΝϾ߳W@!/0~3yh ޼Gfm>fG~qTب&}4F󻗽3=JB 5 Zmnã=ca]c{^8ͽ?c՟D-i F}E=ٟ< or{>:vm}wuWfCG 8Rn9S2=kva[nwoAZM 7v*-Ɔq`1.Lf?&Ϥ@0!Jb,}*%zUS["l%K1&",%%(NoMq%P N9>B-tM0CTv jgtDE QA`h[Ke`[-9Iv`xg窗2sE<mȆFaX&F;KhF}F/١0*V=d`82Rﴲ2 z eRTkҴ +am#GgI}MMdo;/BRڈN~߬V 3j#^qTk A@47`'q4hڴoDc25ũn0u8 6dht]BY.)M/+$Ay d! hf`*Q,a5} !(AE!1#˗d4 b6N01 $s4c*M2E4;=x~"1dk&&x Mbw66 T՝R<)aVAG`,)`ch %jIf(Lϸ͡*w8G^ί hfB{{Җ7 MΚ }, BYCAi^b\ 4cF(^&o݉`)N0%79^"+-:(4*1}ywl J|cS5!@(9=1oA&nKbЮ6.!FdP&5fGFdUj CRدIP>@5aŠ?$ SyC`48"%@ W B CH%IlLQU_aEI`L~1Mbf=M@K !F ׈,k BâHCD,!d}qpM(k,Z䥫[K(9q2*’n5CKn3<D F2g.'k LBdӂ`>+.^I((qArM*"^FrVx0ձTFG&TIbty'0H5SUEḑz)󂅴 YL}"nC-bs9aK$haQȼK #X(a%J$HDEZSě!?bfbGџД ng&v:f4}Lo`ܱX7T}SE4P _916TY KċnGd& X<ɲ@QtJ2cBDTpkt"y U9 DƯ0O䥰vK.:8XGwd~O @ yWUxPex1UNp:<@L%IV ^t:E)2E^ze"xQw3eLBe%+BE|S.(~9YU#`J%) 39\N^|^N'>9UTTFۂt5cR1="+R}]LmY,L8Di\p*1"t%+!rqV1"xX4€zF({0$|ц[)RwgñeĕcR-YK  @2FX;Lֹx"0k(![]r]qYySFPtg88PD*I cȋ&GfJ^vg8(CF_t#¢N@&]` \6I6 >Fdp*cL%5O,/,PUxP}, [0/ J! (˔.ZR`!"z4~@rK78%f4٣4UN3/4,|ј rO ?LVHvPK1dX$[!D 6%gdp!s:aJnatLi(\Y8 a)j++ɑ "%a1-L(F;}1(` 4t(SId`3"Dt\uM OrS0& CͶ] 71"dYے,KuQd)r_xT"@I Lx% Ȕ1rDA"0dT#W(ʣw8F=fXmLi&ik1q- I[63nq0#h7P/P1'wKO ߣx>-'iEi}rbc2CZ m@6Ro `qcR52$prMQ$fص:bVJB$t/A GIDOU^8DvR GmQ}' <.QFSwSOF1 5@aPDВI% Wx`y87 K%QWY{p|Z&1\ȅf%R dn$ZXä@A3X8`cDB?+n]w)4)AH'l]̐K+Ro%{U{DHa YyĘ'yM`k(N E"NA>x)7;zRh AW],S s$;p" bS䘪|9P*ppzL7կh Hr"D e1 %10UO(g#WI Z H$݀(($Exp #DrHUTp:_f$ N$r TТOR&!m2OhoJM'رIXtjL21-0*n1"Ic!sH]OX/.%L L(vItY}f1 űX̟nz6&cc, ڄiíO"b0mhAhiv[ciA{~JXPl2ZU 8˥[ 1E~ H>I! 9!hL}~-th$5oA&D 1BD"+"D^,ԡх( J$Ts[gt03!] 'SeHdY&GJ>?9LxLD)RML3oi2 W"&3ZvS,F&Phk' FZJ^CH gژ]CWR 'sT"-F@<$˲h0qZVi IDAT b4N`R0Mk{\gn+!Y6ESv,;E>t+]4 % sGA4ɥ<&we`MH0E*RKTB f̌F?bʷ?LL WO-TʈW CU瑴4GФ*T)az"NH"N:}ڰtۮ] 61]`o ?´ m9FO%Bh"@<SLBhEVIIu"^|\,,~J=i*d%)?q#Pl-섶˵7!EJ Ƒ# fSF ,[>`tZ ):[]*-c\Tn i/o^,,/TDĈbqO&[i}vb1§qDMbGQNdn O FZa^t1V;N x\)GK$8`0CXD@ m%L,dcݤHx;4**h} 5:QJ JB>.uI\p:|k$st LZ@"5>OihjL8 9YqYh|PZ杼hQ,V G`Nbu!Քw܊a1h"1YtsW;IK tӦ@ 'S>eB 1Pajw?=KSh99z@fkΉ0P}d1-&=  W"6!~t ' Zbh,BaoZo n78ѩ7rzu崃'~UP=oOYݐOWX),lw zz<+ltso.\+}P ؆F/`OwjW:T)鶲 ּnXBAud =gmm_߾*|ܾ xW%A05WG9{sL6E%{!D!S8v!?± FqCw 7ȺOF/l;mܳ_ Ěoνphf*CȽ#54qW r~sKI$=yCt$gww]?v@μE?3Cwoݡ-9I;針/?l'+H/fwqk~k:#c *듘t* '<}TJ,O7Q0? 3r?w-Ͽ딏I9;#u* Nۛ|ۏޕUV~KT. pfoZf7J79یM{ ҉r\ּ^~yjaS!<<hziM6s5ݧ¶;$c 5 B~eƸ"hk|V].w-]MF>O{'ޱe/]I_qZbn2ֆ9cA5r@gphk^sd߷++ '#jV_S߱3_O\[N~Ò99kthwkt6MqԸzzL\DhZ!M[>òUS=}@r:Ķ $=8443M2aŔP,ngte')oOI Ь?mE,)*#@^t.y2#R˒J"0:ψ!fkz"@+%ɰXy8/domXduEl- ؛'e0B'Cpp{vعcy ٹ{ݻQɫFT뒧)1b* jhu.Ӕ=_kV^X_DcaP&Fdi%ܜ94j;hCKzLK\zJmÏP'Aud5 bQw]A=kiݢMa%]ӢMsR g;ܵ@vn; п-]5[[4q7$4teBVظE&-5i~=3*oCwر}eֹKU_nTZ;&Zl͡OO5m^p +uh[Yy]2G~ޚk3|V^9 +#ޚj?3sDj%/t:f׿YwzWq|w{Vй(>e'@b2{UW,1K@;2g\Ϛ*|+zs:Ӂv۝K]8\ptͿ}֓O~ǵڳF{ѷZ^,.oG.[jղoP?A@L'ǯ*A*\Nj՚/ ̖o]GO~ޕE_ŷuƢtwܽ{^q~Gs'dnH|r$؊68 +j`bA+iyMA7q0[)RC%!"F8(. td\(cz[[`]$ck*~ ](.(~*tFy"YR$O3U/3prB) " =ZsDMC 6 IQ)6 *'^R" <!@8;t:DSqaG"Vh$ɕ ȃR+ۢ2@- ˻4,9؉? nVZ^&J)?tz,9e 8*p>fAG^ ruń6і|f6z N^w3yFtƞknÛ[77_dqţW#c~wm+ZNMщ}{vV?֧rOZВEkt߸!-n-v_v `Vomg{ hqyzIn푽{:uT1A*1woNqÓ2>sΗ{םwӓJpᲮ#ֈxd4Pi?bO^ܪoYv yRlܙWIݐ l>]MR e1$1fž(7F N"E+YA;߇GL 8}*BJNepe$21iX`3Q֑霄qBL}o]iiv"F/1E>C`x x=ǯjinJJDN.RoN$g6apy42R>/ y+%bABĂnތ~};kL@Oz?>=⊎)[A>4@M .a,8X wB̲2`ħK/kQh¼C>_%@ۯӚ;@cB +X!?(„x%`GDy/|u?S泩o1r!uO?ߝ+qά*%ğm9CxdH"CIuB@Qˊbyo?{%[j,\9ۧʟ39*S%iSGl1O#Bąaj *1H,$@B:eІ#*_ :C{ l wO{_gn25ԕlݳ _77qe0u{W_krY fun?7_yl8'h3[d!9E”x*2zuϩqJu*QTx;O09ovdn~yt~\ ޛkC bkN_{θ}:lwu+z~jcYJ*y'u7zW~cNuܝMظUWff? j'!  2ڳoGeDJS\:oV;Yݿs9༽#2B', a3f9۾s\6}}r\|̬ G|;9c,N~pƙ|]>ӺM=r;_^^S:d(э)EZh者N) J)W 0YQsM(!MӒ@BXBԃOfXL9$S:W)jyH × D^I,=@!4y"P a;F[~"D΍,ET/8,#NGrc D "rxSeʊp jr%DpCl# ja$sE|{ʖٽ'mܦM}Vgv!PЂP IDAT[UeS?Cq3Kj 7~3AC[ZO@CU@ԥ1Pe=yCH'Zbx?dʮw= -\Eф o>d4|Khkޢ3\5G `^Uʘ6oO/\‡9YQ⍃:~ *ȿo=onZk{q!GvŁ@QCUa!"*/l o=iYO<:`[5-EYSиmMJ|Kn8wӧ_|P\i9Wee`럾{OTi ÃwmtjU>; :J_}ݟx xx=n~Knغiw߯=%*6]ʬ_dmuٖ. 58X{hiejW){ DAE<4urv5[(WeֲTP}15I d?8Ӄڼx9d@Rᙓ'!_hW1#1gDI)PJ+P2"ӢR(g1֬j3hf9*"ah40v c1B!rLUp@3BH @ׂ(c;~% )"r@ t-#ȇŁ }=\ H*T@LD*(|ȹ9PQ2Ih5NW-8!yHUTt:_flJr9"H xA@/1*c Fn|O?t.r|J3Ur&tieǓͻg|?1K&tћ{MB-V By\ 4?4:@ڑCc*xbP O>kKUU5l\it֝[]Dbp~7.mwMn53tI%(S #:1nx (`?-t@FjغWt "k6}x)1UUmPUU (eY {Cqڏha$; 7Tٺ\)KT.rXfJҙS:oCm bjwgdܷ}ڽ=7oY/?#_5M ·XΘv>uUn]mMuΨjES[K>Η/TM=NVS_f(4n(-+ dCy+͒wvM+[w2tʽ]_gؼꮷo4焩Ko$>gJϤfon)}n/욪c @UnfD3Dx$ ӫ>[7RZ6}Pb pb!RQ |N6']S`(DQlYn$]v%##p9Nw^e )~?rdd8*K_8Y&.J>?9D[ԦZ };\bOfI897fTΖRy l'~۶}>({y6{Z^ZV*uv&y]_ [a[>R TF #D>0'(0EQdYK~IE{\UE%IeYjᎹl/{{YLEz䋌_)(:۫+"+cTPP?׹3_{l= 㐵n#=Gs9Cr\ ]?t Ct8CK>!:47}K7Qt8.WFﭾo2IQED^SطRK;ϻ\.t9EQdDrbPl:u'rD*~Oy];:}VAj׾-5:=sfnlvm)TKe5˗-_zu] ̨ؔܬoS|rE|.{ ]řLwM~ ei"<|$2rnE=vȈE]f*Pki,JbÒK&7M[Zkrj{[=+Wb:e?F4~&V@RJpriP=~ގqw3e٢^+5aVQr je5 n?մy%!ɡ@=bεL\AWH:R]l"ru̸mO33e\|`29+6U *U%")[Vp 7>e!FPzli|yh(l?9$u4!Qd(9g-j̻ d7Igsf!'t.mj %Q+$b8:yH<<ƔB4IeUW%m_%7_fI'Qc2(lI~be,(+yri2 io9؎+re%gM7R}^0SW Hzd2̏˲#T: (0u {HD'O\fiEG)s[mݺm۟_=t`fQ@P;&7:#918NuSHK'}̀K7\+3|z2n8U#UU.kv]9!bH#S/  ,0 z T"LUh?!b$ӵb7T7%w-{.b1*+Nʪg02AQ5Slz)qf~|>z}^OOx<@y=o~AAAAAaAaAA(z^<`~]_?ݷqEY:sq,ɒ*_$gnT)[a<^(z9 l뀪$˒_%McxAyUeDL=^ 9'5N?gp\?y˱[y_@D#r(}iwKqknQ];TMF,ڴi[]MSג[PAZڪ7oٸy˦u_F?7@GRne;n_/+6x?-bh>}y ի] v/ r}ޢnt:+wIoqvWZƝ<Ґn yDz~c(}Pn[76TZ:3\GV~+ TLE #mv\G__jv>޵ƅkva?K:]Q̮V^?:[h{_=ۿ^k[WҨ- "м9>4aTצ5*T:$kuD׼Qswe@3oڵy|'-i$вmyq˷Yy/(Z2蕔cp1杊j1b09;}JBУTr@Umm,шDzW1MS1.+u8DEQ@rXQԜ%oh k.щ]9Э~Ϛ#cOy%yݧj\rw,xe/Z` EA7v'V{J+JѬ0msw5 ֋%4PD 3tQ8O~}f|3xڟyDy3;8a7+5WE _*qCdq,wג7xgD~#c i  ;0F*88GO{Οz3.7um(8Բ| -D A B]q׿JmOOMGiq~O*uHѳ$\!Ϗ@T}ʐ11? s6`\~Kw^ҋlXa?Yi@=gOxeOr^< Aͮ㼰dur~W #P!f] k{j1`[SO=1Ppyc$P3F=蔹D)g7SVyuCrvݛ~=+xoH3Ps0CN.zN~xfMW[g!Ѕk{@9z{oB PGS@BE@(Jo!AlW¥i!4Ʒ^TYACld1aEHC_o|po/0H*~qTHz؆ gb'?:pGstԬ4JImQJ腤 tݎu!"#b6%Zt”ORB5 Lcly[ص LB #zoŅ̌ AĘ;S|3-gJ_$eTt!#&c }ӂ*ں'ȤR=8FrDJI"0{D|G ౔fvᖮ[Z`pۤYjYB2ybJDV8gF_J "0HfoC@JUQR56iS/K6prK$JB"W>OVЭI6N&.5IR04 ֌gߑ1g>pՃO}&)0)AfF/K3CA)% 8gu4W<9B)T3M'292t.scBH^ssrY4RI" B*D") ,.2:L'H1d t\GJ{ Qz)Ir<)qJ"tlk[Q~ݺdQ@Γd4짆6"@4/ZsZHzVXmcջU&C`4fZ"-Q.9g ιR2z,NNݚ@?)I>+LM]`Mkaڊ3-8NᢂФr;pu o9BJ.Uil<+VF.Kno&͊r;a< c9%F$Y}Kl+QG{1Uk)&$6gpc>?È $@RJPx-J0"OȳjcnQ:U墸QJ07$*R?ƨ$ CDzTCuW$j?`E,E)9:ቢ*@%%ed.y0ZM}o䩢?+"1ΕTXZVJH  tjWDՔlwsS::RFVud)ĀY_E9;(R)sHX)ꛒ|`vR0Jޱ ;EDr9O\{7uӖPA(.􉐁H+L)RjznT)kl}cNFM)!ct,#Cg 3鴷"ʫz嘹f6Ĩx&+]JITf Ԩ}Rl"1VpI(Ua Dr3RX j<`AѹSbN 4,'"n)v*G. C1RJq- 9WJq0] &o)",)8Ƒbq0GEAE s Pe,2P7b < P+c␘b sETu*Z9Fk9ݢf g1bToRs%eV&BQ# 3`%JRxۻѻDu)8q Up1SJ7fLnV&K *)54KẮ޳XwH zR Dէl( W @ 8\_آ>L9J*`dK)P ^tNr uy%-1mJ!&RvӹC"owm/KCaS2Y|HAI=:,Ð1΅zWz>` SR gH1ˌy}k(b>ƔLsdS}䠅RtHWj"NT2!Ns֥TPK+/Q>I]R6GNK+yIQN>^[LU(;E\F)/C° a-~_pZ}Nz jm9 L#1J1D)%!=`LޱSFRb]}  GђME R>24a@$C 4C)Sb(D&Vd[Wbi z!t":Tcq9w 3P)*JB!:JJ^w\W¨lCc#2DRDg#z]F Ot8^IcH{nk202:zqE B$I.2 c\hg^ȿrUH[](!Y}F..-zq IDATNH*Ҙü1,K!2BJ%PRumѢ!w11D~8B8Jg0'rYє w>1?i>H19营+*@6u!NUrۖc6>,_1'}+5>cըe0B^N4l1&r%YYvbkF:}=pP;"ʞcD%zl Jv~Z* )!ٷ(O*" mQ_^SBt`0䄐EB)HIB;>zcw2s˨\J P.^9\RK3"W  V)Q) w:ס]te[]813K!?t> +`M `9ѠF 18NZcEid_ؐ'B0ƥ ´$н>): Ѧ0y%M""!q8"v6ϣ iMqcAp!LBcH9g1 !#KĬK,H蛎{HMFP9skat #JK_ 2DΙVDvä1!*"Rر^Ƈ9P@Zt, S$ V̏EJQeW="If52 $lKIg3]G,-0/j)!= X c] 6|;fD0t\'*^_C¹-p4Ҕ94fKsGyR{^f +@JPuESA&Ib_rƏStU1wE3K Cm#3 yC=pd*Lšr560CUk `I2A |8D>KK=*SCd뀈W=pBZx SDhњ4!&TQ2|߉i /Y cZMA!OkavZ\*)}!SD^G#ZLO DA 0f#N!CNqp'>kAf^B2 "d(,< 㸊@LBJ8B*Ι1)u*8SREP:E& B@p S+nX S?NlMECHq{eCAReH*RJR'y^G=TL.Y*|4MʼfSܟIm« aT(sAِ:!08$RmtuGlam {[MnעnPQIDM #&q]e,fKO(?bڈn/BVβ]d# |w :-ԚmhZEȑ} !%gn%?{ ㈊9.ZMD&}KEozmKe4@^(c^r!ՉU)Dp!@@5BHRʨrWup=!J'{{}t*]R|\!(AG#t*]%m Og`< f^B`<1+oVୱYyf+ço>t͹}?IJ2uH~F!Yw;>~ .)JhG@L:_뱛)Nq\da$Jt4Hz1C?0dBJs QA i@@#R: "( IO28EC7_@h}Fd~`s 6s]G-Wj8 +~ э.K 1u;qGJ9:J* J))$"-> VWs!dݦX [($E@T*gIL3ݣ ``\kh(#[VMBU1MB I`RH\kHGOU%L(M 4L&>IKؒG!ϒALcRj1eMQY "KW(V\Qp@Iu(3&,6 @,pbYnc<^E=~\,d?d?F`Á@rH r$¯1JT m31# -R:`ښthGP7yV( tHXF"μ ^IyӁpU]B-Wy-]VPAެH9)7wvp>}vvg^wuL~ ?[(*j^!C:KdA7ar?χ6Θ&OpEŞAw&i ^M($̡(H̱DR6ڰQa,v' ʟ1sXhEfɚE нrMhwDqBeCRJmSv+χ3gGdݚtD{zs"S*LVHD!Z>DBEty59M`(")!t9C퓗,E2|Alˎ:qle;QSjkQMӺMZ7)⫴^?w>?N3fJ@_qď7~W&Yh4ߔ=u@ +_⟍~z =c#1-)\HPXo"8-V82* q2R3ň-98" V`gtVk;iq^ C:TlJ^N tED )7\-d"<$ڙ%gXXhȘDV`lRejK"3+Hqig냗s'ԛ O`gz.9ayMpo g®'xGlmv=ziz[Z:C ;iU6` [f7"4?>k۵vq?ԇذ+kVnQ[`^{1}/'ח~waVo;{!6+gOu jh}*K8sεsS*YT&* .b %Ż( #uT"kޒS&%?S:Չon"Rjt 3keEx٬oѠOxEL3 u??18 cʴ;@KF+ER)EJkCHS[ dL߀)M(XJ8ajD0PNfs !3?_8B+Jix ;\'HJIAI2JYlCI"ؘReFC(0;<@I_zR; {|͍51#e4Q F3~i1}\moT9O}{#}z/clKյ[.p)HwEp}wUa-߬M۹ˮ >abͮzE8hٷ4oW~5{c>]vE#ywj0z]%^?gUA?el!7[㯆0^e,y:nyl&<~_L+mʟQEH|+_*=qpos?씓`aG  "@1P c2lې?j"hf%>ȴ]j6ŸB\NR4>Ka+lܭXiV<9%IQ= a2%|UzH+,B7ia BPZAA/$ր6حvb{Y7h"#jHh[OEFaٽZ'#-j}p?:i6Ar|1,h"oFY=%oqԚXsO#LD62b`}dƷZļl15^tGRy ,$kŔ1l5$~ih&ǡ\!mNlBupZFOqy  :&D)ND*h\z5 tEyO3Rm;hp 7?rkUYsR5ouc/,^+.nGE_;ODꭺ׺mC?k9nn"%~cniq ϛ3_bT_(y N@; տU|xO~GS6XŅ9DٳfR.h#Jz3aI(Z p]הߕq$Lr-`a,X^H 1c186o!h }9+!&6Z]IYZyi{2$O)%Iby Jqcj-"H`TBmrŎfTVa,Z,%)ѷ`,E91cX*y0Mߏld- 8c =Șs.B.K)ɹ,8_J.TNR'#ūècהl0jn^j;P_MOVK@ x5oI,j.u8:K"F)*J@ޞA;&"c@"tJ.SRb d]I!J0B jODE b` }9rd!I@h%Dt]X@P'U?6g/ EyH(lF)uګW 9`k ߺlm3CЛ0Q?^+w}# e,x#P>^݃*?{g):~I9+\3,Bjɼuzhbi$&C̫'b)ep:>8DQ\rI)Lorlr8=jkrϪ[;3M,^*qAԯЛEm#H 0/F~SXDY.%D" V!BT{k-d!n"C$b;_ QPX.Ii˔RrYtX;cB0pŠ$ɰM!ED)s4cULJȤTZYIaQd?"h yK5RH"'sǒk7bRa?"[2jSK]넱X;~8^vn`>K' 1;*jZ%ۆ :Ky]R- ] [RlğRD [ҡedZK^ "Â+A݈"+B2"7bFGt!:`$3+U {+H˨I& D>*\H@(pGU*aStTPv wEOϑ|mswVם~m `y \!7mIډ>է=z%>57 v̞O|!x}Neo8w67(I;M^_5 Jo*y2mx~b(ufϼo-C׬;>7W9 ( )iO@zvRDKO D*"r;i9#hU=̐(}#n$ s!rP$Dt:RV!P*Ҳ nˤS(/a!V |B hrE{ũG5̑Tz1X!܋BWӈJ#(%!BP&K72B,q~r׍ny(Q$p)D_1CvBtC5"YHZ,YD BQΗxL,d%%iJ:H0N@,@bKV['k?:*ߡ,_pon{Q{NZA:)Q~bIˠ20Bو$+et?W?3vj5= +DGɕ8ΒWod.6Yw׷eyNټdk*>8}C:| s^kGՖQ%%⬇<İ Pzۭ6#9z=:fv}Zm{Y?0>Oc/9k3#a 3=:fh{}õ<ՇBm5g m ČhZpmer\FD/^וD$uJ%u9 Q)HŜjRdE|ZXJ*%&+1ִpeXF(Yh`ȕQJ))*~IY󣷐B iJj2T$eK()J)R()4J M0;фkgGDcc:b:aHNS%Z!s;|nEwиD8"Cm BH)Br"% 0y Q )U*<-Kr\򺺻RW\.*rR) IDAT[۠k}>A(JQQ$6fqӁ4(sB:$AQJB~A_ 께b?|ofV>%`BK1 u2mj[!NG]Pj5@ mތ$.קVjD oHߢf sc=O+ ~8VD%ƳXg)v1\H#mJS9EWuĦ ]8#U{ʀDF_@>lCkiaߍq&.v(ZخZ]NSa!桾;ʟk03Du ~=%W\Z2)Z[HユO wABQI{cxC6 %%cL rgBj5M%[K8:!:q!ihO|!۩3htV E3qC QH!2Ιz39.Zd)49.ƲT2BPؾ0"TR2\"΍Vuι!VR?6K73F&>t=k>oTtG_+-o2QآNvޯc&p.Bl]S<_u-m tR)x!ELضK!ٲKZk|%G˘";zwYs?pWڇ5lZMmnve0|IvSOl1Jm:а b,AS*}JVj݋/L|!p+b:-4 ?=r+1R !9׊ ZZJ! 1cn\QySb\l8 XAʄN}0}+ 1m Kj-eQS0mT=gAsOWל`7_nǞo<GC㷓3j~mWCr[zݏM4}xlLxeW&e3cqT8ߓ%ra{KunmĢpu%Ӆ7EHJ5Ds8 R2DfYoYS/ö5Rb͘Fbcl՘uhں^p[|VLYq2[9-s,C0c=IڲΰQW) ߪ \{}o_MBnt- G9w]gEg ŋ-uQ|c[~׹N LU|߮U?.-ˎk{)mx7 ^^׷u4CZ|-R*E%|Q?t+]j!C@xT*jM$&Uzd]偲N h1ȢEH++%p@Zblj(SP( lb )p5E63R$`R)% ]D͟ ;"\ p5_(kZ7=DHNW P)՗TB{q{<.m_ʼnQKřEY({_WͿ'Ur;vf~TZ.sۦ.2xFky}KsUDz8k`d>5ھ6mf;vˌmj{{54DBLU ԜJI#D"TZٚ9N2@:=~̅VfkclXxUGa1"M-}$jNnJC>#96mO|̭O`I3\9n<)㨿S{z;m9d9O~w]vo.Vΐc *op^c<])uwq}my |~AËG7}|lr3gswV؉ŅOE"0o^Y_^bh>i5;?n >oNߎE2EҶ'Xʕî_}}k}>[zK.d"UfԟUw=xF9mk׼o~;߬w?#wb"RU1W\ٜED l}/1W9pxd'98!6W:o?HƍUþxˑ .Q\{'x/b;xG?蜇ذ /'._/3ÜoKwsȚWP;$+_Ï?R_l?|끉g{/\[:ki;y_{fy/OnQ>þZo}y'þĿ;r!':s e8h:zngܴ.!Ïw}psxwK-J#ER*}(f%7H'F(XSTgCvk?qE~A[Ѫg7?Ȍ>:1S͇9&{:m”o2kA {g~=If͵i-d^7f(Us2b-KJCF@亮zW~(dwvr3LlaS:?G0n\D}O=֘LB ayYL 7\?iIw=nۭY}})3?p?fjipB!"*Z+G~0yv^|2{*Nw8j(-*:PG.'V|qω]9l9i<|:{O*S?o~s륝93iԩi&xs5W?6a7&Zc%>n}l┙~m13=wݯoC}֟q?oG猺=vL-L{NRˎ)E56KZr#nIOT%`LDU*Q (V CYǽy#]2 IDATqV @J_0s޺Û֪|LPuO]HWԑZX _Q݂_zgg(箑_"A)7n(@A/ 5Y9"+mVԫ_^ ߷{\xƙ{|c['Ww'{|wA ,ROYN./SXaʒrq74H+9bfr̊fgɷ=}>hpKڅm=wߴqK~;}s泷==HEPJ⺃7Ry2zG:CZk~qDs\_V,5~"`Ə٥%nl.|6S)7lx'j5uPr-qB\ׄ/Pݱ[mC?la2_AP3sn'[̼9~қ?cfW[Ϣyk3CEumN9˽~^~gU6xgr>n9}/+OgBr-zqrZk?֫kpig0"J.uK}~ Mf 0PpALŴ0DN;\ oN'S-pO/vo9rI[G{o7|ԣ{ {YAeKO=aǮj!v\n֯ɷzY(VpU `bn456bT$5(gEkQ{JK6@'䚈RJ)" jԍ ڬ[&!16 )6p^̟c"`hijSlđ+Hma+-[D :k|쟼y gET]j Xr=TfdRԈh!t-_ BRasmIϴ<΂@Fz "d(@[Ks:˭>[N| g?Owݠwӓ<,Xi3fk`€wW֬E }t!_pշFS,;y/&^'/=KV2ħ/?˟iOOVCv:>hu{8 hYV5AgC>7cA`M1w}}w|U93[لIB&H"Ut"MDT:( U"X)Jj鐄fmfvfw6 o>a2;s=y|2q0PO[M8kɔk fx)٫fcŒ7O'>(tr J:g=@<;0y9y>ñې O.MY<Ɠ* -Qp&+[rL&(c2['/q 6p؟fut [[ͦyɛ+"Ś}Ry+*^,D`vCG\+"fQԵv![=(oT}ez.~T &TVFjC (/ssMвk]tF>jW܎ϼGVS_*竍w*UUJdIȮ$󥕳YM'yeV+4A"8B$O Ɍ&z45Ò$iG(1rըJe"*GUR&S[N54L2VoBb,v9aZ@]d{:yts0'S_YyW {J?j=k$P^ehjð%AOA&p~jjEeBjEAsyfRp];%8x~*َBgO0ZqW^, <ڱ״$>^kuD ś5l}v oҡn2%CtrQnDlS jkna/* ӭ×:ÇtxRگ @{%zFAY8j{6S )[%jTTըժ/Grc;4Tv'y10'~ZTt]zx, )Ŗv9:%N,%: J?tP~M4-V<81CAuY#U5X#- 2Zy=FJfMez;1Wvc.xʈտ?lkO`6g]7ǑmZϹ(Z0ek-COki{iou(o%"UV}a@׏8}dv-OǿE)R~~çK $Rr. yIfP8JR߂L[y`ҵ^qȡ.9fԪ'thR ?U열% Q~tѬ}&g\F-_u+ߝ3q%%=?&[}Nk:*v2˛#_E~߹` K]R<(PQStK* _Ef!,vU>$~2r\çÙvk~C/@;fZu͂hOj$[c98 y~t}&rh\F_V_nWp}l1g&ޓ[n4C?F얝7;#Sb 74i7-]9O{#3}87BkV)-甉?`oOfPvVH?#G5 '}GAozP慅cL<|Bu1 e+}mLхϙi6RJK=ꬉ?p/Q~[{ݢO^@5l ];{!ϟ@ .3|l6s5H@uBśd/YQG<:k`#}(B~i+2 "9$K+!l{?eHփFJR~( yGOsEj+uH6$"CPpD/[d<z.PۓO@I[KDz]$_D9S_ѿ)V9`U*^E 22x%酒i͇O^rY=+deuiii3!aIɘKlre )m0oKrпI%B?r]x'uT` K!q/ܡ/I]ռ=08]ΐR#%_ ve+0q"r B-gWIcB/Jӵ<7GT4rK^`VpEcQ<_TQYb7U<>oy7ȄЯ2L,e&o |"^^ <}a͞+PE{wpU2']y ];CU}G-x5@') ^l*`qq7T1A>k~(Bu>dʟwߘ|X \:Bu\@H=IN)Usw>Gٽ*u; q ZB<As==5KԬA"q"It90_Gy锷%δ;oN2C]WDH@ĥ$1(;ы7Au Dr:Qe;MPS"[ ׵_)!FČs_Ir.&@AB}mLWCOI񈪡4|B"3rYq%T҄2ֵx{EoĦy|ü$fm1H9EdlVi8qVY^)j6sB<V_F j&d),|?<͂^)f2ZgRDfr2W~O>oHUQMNC{l>yPi 2Z{]]9Y0j-RkL 67 ո J ~mE*}fn;}"6f I4@@AtUv0Dl) .h ('7˴ZTROE狕㱵#x46{4јFTQ 2"VR ݅ 7Mt'RZ*^a`}RXƂbiE >=D;FB u<@P5⹶ĖsС;N/UB~@N6l HrYoJ6CvRr찀=$vt,Ɖ="bqs~zaoN!;v9 11ǣc5/;s"ף0DC-&χWQ+GXPcz;@ۤէW U7HHWQ42ƷLX\JnNk?ׯE.tW-QFQ#]wTo'7f~Nqb7l:eŤ*M.۲/䩣'c0ᵊh8w=~h\#Mh 'nZF -;t#k<@kAuRYP C? *]" B GhlY- 8 p(!`2A4 5V"9@V@_GӒ%7';dFZ朜4:S1dg RO5?WbnUxrۻKN*y3 nA'rus]yOnww7cj4len&"@eIW'=YIH`m_l',_']@0#j5[oΩk <55oƂg W޵(Y2#YⓙSO1R2*] e?J2Mo^kٶg-B4e-e7{)|DMҥ y+!%9`ނK9& ;n3-M~/6R'*s0ջH (RV͊UJ x:l\>0Xi堿 M IDAT~\+2DIWL[< GH^AWɖ(w_MA#ܮڨYX[Oݶl_C+Lhrx17yx˦>|Ͷu)r+fb` KX#ǝEe]&ux {^drUgmύ>KJIk{s꼽gJ['n|c}ƅ'/+wl('$S/X١Gg?Y{,K+e+ [u;Tѧ_ؼo=*w%e ib৫Y4lVn8xc:9svɈ8{#+6`{aVQ9lIKG:?ws -h ۄD mrU9q_i.I[:r~׳І{7չs۔5%Ӗh;zuʇ踔kq)%ڎ8E _l]B{?mCwVl[|F槦 \7x9?8!{-52do2y!m# cƝ+?lei|qs,zsxřԋU~Oxb4yDۥ,RoϞԿ^1.qSZ 2y;m*FkFb֩~au+zAx#"`Z/ zL2n/M'w) U(_I DF-2HXԴ}o)'t1uRP m(Ww A)'?7ᴰ{?y۩H15 mӫc>+&^ c7 W8,JL>+ ZIG$R*!ëfP l{+&lV 煾׷EmoTzg찶^ջ3;8̍ڭV6mmb.A~eˈE+z凬{s6~fyc.'mY3;o,6nlզAD@Mh 7^W-(zvsyDz-li-EktTi)ow6 dn `I ɨ۫wxS ,HHJl䏚yLs3!P o1ܨtF ܥȮ)Ov?vjVguނ30V#-T dPIYqoʁtfa/TB`KEvumzs7+⯎ ίv{}v63oL6^]yP"#WiR鹬6>O \xwPW[hE5k=t$5|L{[^/R-}z<Z}؀@ $G{ɫ/Mݝ߽+6k\4Vlf[ o4gE0zfS8l6lfo2 1Zk/aElWݧWV`| &O3G~ۋ`B 5ܚN߲3EcKKv]vCT[Ts nҫ__=v: nh٥1r:CRO\ѿaw<ުqM^7}9C,[[͠w}8lWKlk,VT>kN/ۣWO_׎lfuBp>' 4shg<{i˴oq]Sa|u;^ܳl2ZfOIq ;urbңk\֮u_ԕĤG_sM[A (nwF>Ϭի[.}|Y]䯚FC;تu9\`kGYGA2/{KZv(l]2^\g|1Y.@GY ;];~Um:7^ӃCwo`Y|$eaΜɃӖA@(x#yװ@HeQ OGC{.q< /.#DxtVrw !ukk H=Pn~k C@Xq}ydu+%TDʊ'>} kҮiwK1`Y PJD-@g>{t&oeX RI;&`szN vN}ra(v Qd̊; Ǿnɞ_-iN΄RAQ;bO)[Scoڜw]6L[:$ؒo9y2Ж-8>GATY{KqF--#&L@3@@X{ˀK˿,_zN߲{mg3Ie!ص2u)#z#7'%w2H.])L/N/G\(_GAS6a9]J `/{w20qLk7~ox?' ш=< 4x"ҹ5i#ȴR7 "ٞ}·q>pcȊ&xZٞ}χ1y>`,~L{h֎o^Pq aȽ{-Y[\! 4 6T[2o+e;ٚUA`ayBNe3sFZ^K1VDgЪ )ڬ4gu( lqF঵Xko'λN{01/9[Vco@Fz{;$%釧= `h:23yse(n{J,1+ZiX\zNcqCكN^l Y8C詼 $׺<$ Sq;ņPdɜŠ:Ok~nf:iIF X4E217~?p׾$Y҅υ7s׾~cئ^sKv5@ں#⁩ǞHLj-5X0΁9f5[sh;2ީh{+ 81f*YTRr+#G+. -Ǜ][W-r,>J=19w|ڱ@Hƺ#w?:fսIp3OItUIzo}GnI F@"@pA]$6wpTQ49ˑq󋧲S 23c|`ĝ8[G ?WX;(~d{71UF g\d-Ad_>4k_\%G7@up>IvOӞ kmh@G1's}% BiFXܐvd!gC"BόG%8e4vC"BVSo-65׌zޠuPxkϵ䭦LA"+"#< H>@Xd)D!#B Y/l+0l@@xCa2:Ax6!PBbJ??L>w.7ɓTK]^Fl`Az%b3%%= ݽa9dM,njKT*a#tԳ[:=@&]5S5kܰPB@WfNF>" Q uxAggISFydPHJxƱ Kp |9\ap``KMsvppʀ:]dS ~߁IӎaKMwg:$hP2##hk{~N ~RF C@`HDdXbV{)7\nI1z=Ѐ9٦H{`%YzX^@[ŨoCua%4УA1e *V2H z;;C`>_/lvl{y[ ${`sϺ{\K*a}p'ݹ/(#^5B))AtϢPmULݸd>'aw~%,Br|stO,"3i>!>7;K?qVSvNvdZL998SɅ*fssxkNvNǔf0{ VZ|QJFV*WD lwhTN>ז;6>pnY-""Ձ-6XӁ7znc.~`J=).;-µ/~H;G"IJLu+֭[eX퇙v9qRZ@C.U/߲?n 0IJ/Nۛw0>x]հr ~Zs;=%eEڈ^{HysL,vn]~*Vh{̀;`^9U"8w)jY \N so}ҼM.ylw n9#ϊ VD9aLJԻ6Jz+'QkA5/ݤ)qN 8K@SvXXam^gYo.[@K4("4'v>c\1\g6NWw[WERV-_DRUU-[D>WTqӆkjYq'nD-㾎aJ?uX녗_>sl5WM2]-Ulҍw+UYJn ]("%%1FjT:Hisk|S͈5:UWFתRDd[J1ATr|g2}1wUFߧ@'m>=ÿqU= V!Җm5v؈>>Ky0_[5jV'æӿ~ lCG9SP G\'V]0u{?U;M;]n;693+ο4@#۫L*9g7gR/n:z,zˁVVِz=0(hUfZPM@ny>)/ fRnt;UfS>{̉(,vVP^~R̷;'#ZO>\*mtMN>fm>E k-O[zXMC }uوq}r@YSڻ&^!h\ꗇ+_hԕȚ8ru7|M~l3mq[^n2.s`8{Vi`Ǜ߹`7ȵe^\тS]iԥpߢӏ.Mfߏ۲K}y¶9?՝ꮤ:]#n=qIO.>Vi/Z7xw0#çڿx ;Y/D(3L* k 1Rq/ʊ vRw,]Zf;[Br ޏ0'+fijj/n YmW"<>ITw6 f69ÂK0q^gi9$]MEn> k&0~̊ZR\B7<{TXPIGD] N{ln-Kt-tQpKꔑL,[E"_ i^.U,YCʼn+gjVO?.1cu2[?hMū%6F?oؚSӂh'_x8S\g'C X/'s*m t]W7S8 2+뽯V79uWVAq 7,~HB)ev5l\;xX,>zH]OG$9gVivO=@rNDF#\:;; ԚLyD碴2wE쁄E%֋%$y_%b#^olSZqjGEaQ J\J-X!K 6QPnW)( /k zpIIG Ap*S +92Bdp9l K)ϲNb\rP"(P - gUXeӷ'Q_Չi=x16+tnW6#Z*yC\#u% .Qwq;PRN] $?{|  .~DE jS%"}!DB4H..^Q0fzQ("c6$ CxvRTC3TG^qR0x}TbR x-%Ct*"nX%-}ņx̺URwMFŃM=VmQ7ݵϮUoS.1T )p 5WҊF=I8 kͪ|lVd~7?TGU<>ǒQ M$|q'Ge0)Tx>lG"*yBi$04! ,^bW TkuPPx]Yn9߾0T@5YPvj~F:kĝmj|rL9<?$hXFjXay'1QF[uf[ HXI4[ ͡ GէQkUj%={WK&L,BEJ[7R;%7V#I Y/p٤vnCy"Kq ~/HXnKy @ ̓@Ot1aFFPjPrI݈ FX2=T6| ȓSQ9(bZV(1G_ 85z-DYl+E\9V-y( X$]Vɮ<(,tnGB!BIJE‘!ǴIl1P>+W|qRp)9!.";A F:J,g:uM%?0%OT utFӱ,àQq 9TY!vZ s\3'# 0 NM9Q6`$(=D$x! C3 ϰ< oDyHq$j-8?QQD"ٳHKU - |ԖkD6Āi_ԎjA!T3!ǰ,H9CΕ17dߏ/"oݨ7>׬)ijH›J^)#](&w[HY>bu8Vo+2"9sI#\;0'K"o; .'DC-&O$EQa>bO@Ev}wӍB|0p* R,VM1O ɏUI{uIz:DfX8dOo>@V#.6D^/ A^B,|_AUBbϖs̶!ee}EsS Jnذ~O>':lXmRV#X<=2bƗ(yIO,64!'iݡ_i DTtn[纃(I}fl9xXL) UJǼ_s`cPE{=rd2;ɗT>(L}"6|k:b (ь#1qGb60ɜݧQܬ X52+dP[& -EZ7G { #u؏r"q yCGW^FuZ%E >-DqǪ'; Q-$>y=`J )~Z˪zqɘ \t#!V1$RSO1u| uBG6!G;pj$Lb88bd윔 ek88MG^[\~lJ4"LGJSL!dB FnK+!eHEu !!SQL?)` kX`4h2g ;FN  4cDD1^<(Qw:M\{'m~|Zo#xӉvg/ݹzZNJoF|yυe-tۏWxŽ?Mmxx0(Fy ϢCbHo?r+&(Sxv ^q<&Zy c/?sb ixc;v .=|,gל:+ԫCovojxxmʖhuF9q+ToiLǢGG5ӲM?ԷRcu# 9$p$u[ &s&i,<1Yf7k#[yӍûE4m>P'!vL hw]Ч߀y\sYX"?8AMJB5VM7Y Q/OXpPn&'W_m@+3K2vߪI|hH  c!? c?H$6UlH[3IVwd?Nl%QkKGOmĖFXkouhܩHcwݱS3#r'zd0-&qG - Ж#F`e:45Y<%`xH=:MJٯr@Z@9dX8 @^ǺG5`p3en! !g5hŮ5V":dU@whtZdRs?jX, Gί͔mנrd%S~݃tU-1=c 2tތEipǢ{1̆9ko%eBg&=5@1pxwe0y=2%>q y`XyBK_z\QXrk |lCOsƀsv0Tzoxvץڞ=g .[MOm3;n3-[~9gݻTfL9gaML +x{652zW+wݱ;5n՜82`_ź*uTJ.5vXQӉ$h~}Q;D#.r :${Rn[Q-nATR>{HsW hY`kj}vӛT!SAgjX,B:M1 JQ`,HwBJו9Qк[tN]9fA[(%NC+h˾5NUcŌEZqǢb%&0 qG(>,h'o m7gI}\t9o{WRU$@ @aToY ZPL|(PL,/|s\= elS.1^6zYLA bQ @D`ۯ@=e: x3eGC`l爮g@,0A@Y%2Ob|Đl+tabHAvĞ9@Tvƞ9v"f㚅Ć6j뭧n?wn#;֞&ݽrTR,_36?rb ^( BuegΟmŤ,5-W._r7~-qxFw|ﳺí&.*%ǘ7٪{R9);}?mqĦ\qR;xtM!*vQنݺaẤ2];Vr>'~ºGwxE)F&O5OA8oMwڵkׯ_~nu۹g5RFm?xm]kvc>vF(XGX_m;xq&K''֮޲/̅s{~\Gzȋ5)7Cq֣^n+:0{WŤٿF>Hlܑظ5˰:Xۉ#1'vQT{ff7M@ B/"U@bCATµµpE`]``GzSi{Hh-3缿?n^~ˍ3=o} |<>  &C>9]<;OraQO~8,/ihWE :3k(z8?}~}O}^|vOaI5rQE,SuyY,5=Y=s,)@̚7{Ѭ^~n=eD:A2H0 삝={*CiN"&xN)js1ȕmm R:0%T7Ψ'1M{?ڌ_SLy-d+C{_tޙaOI-r)rlظ'&jܷw0U^bů<6/~#j:`\ϽG9Q/:nɜ %%|:jԶn@1GԠ9b̝ӰM}ko1KW= 8&Z%krz3jY^ @n<Lng,1qE٘Dy_ Qj_t{]:$ > ፘssDvajڣ3$}|?4^F]ndPlxy੧֩ڎ|fLuo^7!/h?ɑh[@ O ͺ$$;㔳+鰲H mwYkd;YBtrgĝlCY-Hvgu+7>ueG_Lyvѡ7}^9qV+)p drTؾE59]VPb}%KW*hߢl n4./@&7\tnsmQgrUϚޤI,_ng |dlnNuN^n@!/֧Fv7W.wϔoYzP˚9}Xoa%g2g\K!L$* pm1F#h$GF`JS@=Jj y+q9D,cD`$x"*._F_‹߬ڸjn ׶Pp]O}l~'A+miY^N\s+[D /xܾqᤧ߾oB$ADR+>}Ւ_?~֪< |܀+GZqǶs}zڸ,<?Yz8.6c5߾ߛP^+907!1ws߬ٺ~}y%H`4BxePzEAΐG 0jg~BOcyF!_?۱q{|>] *T@bMFi>~K1;X? T+~v:~˷ڹv'/MY@m$Rzuݷa=nvO^{-N|_Vm޵Y'wn<3gxd~_ܛ_/Yxן&OSi߹.E^xe~0}t-@~17y΃Ky[͇]k*=^08S,[-X Pﷷء:s'Eힻ\}/M\~I(`bsʛP`v[%6f[&Oxcϫ6ڵvQ:tn 6f,qkRË,Y{cwGM]f>_7wϽHHX27o;v.>O?_/WNS^|ތ{@ѡ&tX ;5ݒ*uR?ߵb_bFں9T">=:z];;0?_7~QmY]%\;gnEPxRYpTI0zw޾橋~5aϢɨ Y]㜊v-\?ܿo@~qŋ1jX8fvӀ!u5śMWa0 zNnj:y,E{RZ‡4CKO>3!e|.F=8N9GqU=9vU"v }Ƕzap2/7%I9oO{rutyܢ'%F8=敎]%OFs<'9xs$|>}=C.?ɡP8Imm+<# A(]]u7n#"{𿙺oCi@) 36jSŚ-{iM}xޤv6=VU;*@ݵ[K8LsoEkM'?WE]r? se1բ@]IfBp!J$h^":QR{8(%T`8s).C ڞU+^U 6/aOkg!ÿ!wʰsu$:?ߙ$+KF>6hSe.Le8[E`5>zO*E^6gS}kB :džF>rsG~mW[Yeզ!Yxb8y-IҎ-/v;WYʾ߫Wo~敷71-S'm/9?U[8XS9'9{m; -En9c~9{l.ߺTԸ:w8e/T}CuCAfCG@mw-8M-}pߟ!?pOOFVZ2C*?ƹZ\9G|qL9UM<jQƞ+K~Z`gI,"#BU{iiehJsPQqF>nNuzp,#D+ʹ}2Dd!C7듐nosaurb JsP{(1 cIXD!}aME40㞘jJVOư@8ʄҬ- KA r`;;_C`|~9,4?]Ͷe3bs3t~w,8}p6WYXe9u4"[z0o1}2Y臽f@w2!uϡ߮ > h x'eM9Ε C"N5BBK&>"5p(#8F\eD RNw$0(B 2H?#@DF3BUӟԄ*DB$4M g%ܙksa׫Jkhu8We%'^9yFHu}W)jS'M첒9 oco:|wi[~Jf#9P۲ІŹN. (uNlWUiAP6ux]8|݊uEVІ%' )[Y u=}r6ux}F_>e9-.]o7&Y{7jtJf5.߶j}Ǻrvd[:mj;hjm~6BZ ! J6(qNm~4~ysUQB=߳~(lZSWJflwafs֞we 6v+ ¡F%@ 7jUrP~PmsaN^].Pv筛܍TZ8k'5Rrt8NH/tyCp Pի&UiWn*L]J4VrV̧6ɠDc7f/v%_5Eh =0 sM~|c#yE~~Pn28>ux Xߢ6a"u K@5Z44?mA&H^ ԹZQN)ܾVC@@ cjĪD 녣/~qoc ,kM'#j >޸$r܉uy}B=+'J^zEduٸ$r܉uBJa{Vi;#]yEW8`ï{(.W;O1VV4q0g/wѴ@HLa+mݞժIzx2]m Aצ.o} OyʟBFT:/ⱊ GgIj"f_O[~Vo8ͺ]5{i.0-fPZ1;Fgr:c 4mu2#2c~#}$ˢQ7ۆ??p R3aQݽt=7L4CirieNU`|CndɊoͤn<v#ޘ^KN^:N' <OC3!>[|Wl3viT7u҇7+>7uTD^Esbnp<\A#C&_+JP?zl}>3iۿz꽣&Y`jC^y}Vxb H~wvq6tCwI?/}q3o[F(ɒ_LρӒbΪW?!@yG;U883m7#X黫OɵpC|0$c2\~H|1GeO9{螩~9~H۟w;ETKWgr56\m[poTӦtRCgXc&|fS1ɷ?=;e&~0q3bZ^雃W邻6vɵw,۾wV{,ߧ J!%Nx*A$`f&tTSe3;n'F!d* Gʶ.0)EGG)hF)O5N9h(?z6>h (Oo(Yr0:T) Vja}I7= 2 I&`Cᠻ(C XqoCFN3ɬ]g|-5XK(fqRhYh( 39$g|;"BB?drC\#3EGX^ ɭP :ӻTe4𨙷U5VjUMQ)$ַy8_tUqb#a.O#hp肐Ե(cȅ@D+05峅kjbȈq&I@$a6sBrFs#ty 4)KvvY@>hu4bxՅn~o_"hmqv lDt0YQSYbS -#@xYH/JL3R]N<$y)!ruU1SR- i. a߾ߗIp7O73?W;:YEǩd!F@\%T`l`gP@H,/XapuwCSNQcHQ.vf\jqK#yY8HNDY}5 R=3H|XuU;5?0P:4wV, VB\)kG'!˒ųO֨aEe֎]I<""dL/!cL!HS=p]^#$r Q6iH.K?&`:fEzXZt8YX6Oر",t$s12Qp̆w&A$݊Í%v1PDF :q7|XKl23ڠaE^;, J=QyҔx,O.&6|1¿ S۰O'FWJ]uibDyxFDOC{n#fzP!0M@*ٟ 'e[/ais15H4"93c@@i*5FD&1YáP8' E$I7EE$I"˲$)ȊĘĘ$Ye& d'-RB^;Dflf[C{.+& \[1D?^ " U~VeG2tS`'>WgܟR6(-f ,Fȍt&S}pRle;ʛK>#k˰MӅ'+^݅ @{׈X&ΆB22H_e&GR*#EW{hq*ioϨiD;j@@/Zq^2km ~H2T5U\MjsW |H\ӜD}ze^^Ru(RB!,PvƟTGM%G2Va#Xuƪ!<ƪ3 #g:cy ,' R877D#9  Cs#C0+H$D2r.#7Fh\u*S9h眈k;v9'cI ? ²Ha4<붗yEOG;Ri7n9֝|n6OSweOYQgvl20Xy84c%t qO9 y0&4+*qє K=WJiHccF{ }J[6t 0;)@h84`M ҇N5+l3a>,O+1fMqX\&imcy2d* wLM*@?0{'$@^IgN3$j 'ҭ>V 2[Gh:()I8h$ $t[ɑh$V!!\ 1Ȍcy2q|ߺa. ȸOƧN=`BxEyE,eI$***bIC!XEyyL%JsftE]Jsa#V/9OnefYz'Q x+ghԃϕ$T 8ʯp3Ox7V&nثb`'$@izӏ7 6fƒ$;׮5ݍqVy 0"YjY]`I |Ay=pj=]NdYR xI76uWtSVdXفgdr솑 Qd!鎋$5UeY;׸Ȳƹ$!2F$} ݘ뜚*i $g,-5Xbad wcsdҬTEB)rdƙ8OSJ3ɗw.3mϬ\HҲ ջ} r $j_dɷ*gc?sdWyK#Eۉ r]N_K\6Dˀ֣b{R )HM=53TzYRGN[F.J d"Ђev`8tYLn,׻1CAqJ/| 2}\#q: J S1"x2 ARrr SP "_a:Ls@1C)F´$!CA:8fD SE5r9di"0\JG2UUs;9sƳݢL4uIdAǠ3L G0+~uw6/i V,fHQƕORK~KGbVgR|z]a'I Jh2JF\监 ,)si# U *)T-i!*BkXMlWLQB 'RO7qz m*)#M8`-IpXa;r!&80=BBp&0*%HC "OF.3#ʨ\%Xqj3g-U(_>e#(FZ9`ԆE"H$q݇@-7*M; ،$ku$Cdz135c_K}>وg蘇lrųe=F95;N;bBKVݡE5V ro!,yՋw&KV9 kqO?vȣs=ipY[>a>Edx.'*bz#1Is.YٵiPa2g]LKn&hg~= sNB(/>[3l;>K׳7t7pi\ӴD2;Z$դij2i~I5 YSj2iDHUUUUIUJ$ɤL$㱸jְkhTar22d@%d<O$r¡$1. o߄!2T^);Q=#~4viE/:"Gz}TI٧Pt==+T-$1ƌbWm0`gF_N)[Y {}zR vUf_UfJ;JATo)HNjKŌER`0?/춲423fdly}\2%yDN\g-rB˙ wDpxJh/TYg{B!dB(m%(7HAx+MF )I~ӯY\zDx"*ZV8n$Pť:5`I lH{^{@8u }ذcX>!B?5 b/6[W; 9.:ґAWť7Q b_9 k^#5~Y;ol]?Ǿ< m"/5.`LBD ,ń "\$IeAFVnyCO̚4:qX、ו{4JI~\mwf}N!m=Kc 2BI1]3M8h^tNᓪ+Bi\\$(T5**4F[ 6эUm,"&@CoZr3dsYV¡,K,KC==0I}LdIb^y@z-Rw$m0ly6Z*QGk"8լ&K赘,$O4nhPn74GCsu){=V" =̛V@C A#YCK8 +gC ]HsmP7r9)Н'⧇ ((|6$B R3Bg0V P+-Vvŵ@$Xƥp\.tߏG,V&RL?|@03POf]:tac'L>Y>]?zztRC3hT` 8LP-5_>#pQb:(?IP8$c$!\F +C&+! e%%1IRaU~& E#cHȪ12V Qrώf@ |QY Y+3C&gXg!jꍿشhk%-l|B5}!nPЃ|stAm<=y~D "fѓzáC_J\E~H 7p_]5wC.9H٬WXϕ?׫7=;\45ْ3z 7Mg RdIS54~ t.w\d_tfO?Y7Gyίc~ڕFnIFEţD9 mR"DzϺ bBgދ! 4 ! }I?,JGdYѝ"I8ׄ$_9Af.h*dNBbL$IquɹLf=_OĘ@EgbU fy'nk IDATZocOHa& RuI {"@0*vFNSq5)?)pĠ:d51Fl)9G?<9VFE*Atr1vRXxj@ WA Ce]H %ֶ C@8\> +"O?4  EY&)#Lt>)oru#LON\C1uu`:4ErdpNx%se%%-OjFI'0 *Մ>09$+FD'QF"tGÈ %0@X(p"ؠ`b AS+Dj%3CWMR8'"i9VBs2%7$ F"KVLkQ}=+ӓ_rdL/ji÷g/BpKjbώڸlwIEu**OlW:σ x+0zK+UjPІŹ=N. -Xsג_ NXF׶.VZ$@һ#dEU5@f !ILU՜E2DM bNƅ ʠcFwmץBUڜ `uZՅhfQ9K4Xu\D̬4 "X p.0z!#;2vtXw M>9gD$qM[b7!ױ9EVH 0&1 D1Ecz" qD`4Џ0yv`9= :v&kEwN#(8M6bs#DY`ݠERbՌ\SE/"*[>.05Lic W| rhV*Ǔ-F}\p C$@|\0*OHYD^w ?si'&፽L!j.g ra7IR  %HxD,Ǜ|\*ĉT(k0VPrwxLW_'cd* J-pY\P2GQe(#tr+Dy׬P߈cl*bU:Hj%gd%dLrrǒS4ꅈdE)!YHIH_BkAR[B7MuQoBƹ  @$I}GEo \S$W5]ntzxUScx,(++H&fQ h4/WɊ б#wj̊V,*&{ذh<80qͬہ"v A_`KFۋ,˒,3ܑzSt%Xh=1h6x,kuŒ|9)Fh`V3RXcd=Lh;,!|DE:jJ)O$=5RNL6) `oqv:{U8Rɑ0) "yXkx&6̆T7~0|KW=t/J{c߶7VrU*3^Ψ; nfW|3oGdK_qfq#ɤ4%"3|϶U"z9@HOm199 &"+BI1L>pfKz [RJt|bQGYL=BF3G  HbM?)RD˧7;[Чڢ%~F+/hge^}P@.TxvcN!}<@qrK$UٜI)*EлuL}J>Rf0ɵa\̶ҖJRbR``4dWZF 9wfZxrW _S*y9:UMG]~!DBJQ&7 0 8Uj-THr8ǜs f 7DBB.:RR_wTQ~g0 0Yy[X$ )AC陷(xCi7X= 44Bq%J2a1.D D4M|0!qPtU1"MhqΕ sM5'(k7u;4vqW 9WlHўo[n`v7HT2*!`UZu)!c9w @PBӎ7$\ĈloAr,Zn0ɀQ!X_~nѸ1"@4MMT ;qڅQD@B, It!gX* %jN`6]SVDޏZhUp(U=[NpLm.a#C|ŪƲOx\UC"8td&Pa>u-o0duZY[6hsJ^5ve+^gU(E(O1I ]S(YXޯݿB0#QQ8 Tڦ1m/G>t!sEЅ@`6) 4yb\/9QgMwLr|׊$%(hz˲N:_״-ЭD!I$@$;TPkvlIWfOKQ $wRp&1eDD)a~/ 0ebRK †JRi bEd 67.\ETtVu8BHƀsn52W4ֹe*D28^Ǘe㰂-L cBڶ92&C. sB`?HEQ,iqMLȃ Gw\Fi%F._Ʌ&2*RB="BRɫ(.('q-@JRx!!$b1@j2`*E~raLl8gDR Bf $a tI ti)xb3 sdSL_q4,q.liƐ<B(-Y1 0 {:C!Lk&CV,@ªtvK)8 &'"]E"Xb 5-/ǹ P" CP‘L'd8k#8 ȍܶnYR5!)%I)PݚCf SI*a\ AqH$ "^͈1R0B "`Ze 0bih֙)RCRbjJJE0%A?&bbϧqP)THI3_U G(VWuWqKπlyQ IzCf^xX%+\1FQX2lcP dwwBJ\sѪXP8_X"`}cV6FU1Mv1@B~s!g8)i0>:I@u@$x PHVmDHi G%b  a*J.!H8q d*4VJ)5 PӸCBrͱK)QX>ƹR50MS w*!f!6a@4MdA/H* lo(C L`s !$fwoK"2M!1B[ WU<a< h0], Q,ymP" iJyY -;еx*ENA7lb3~Wuq0$1&UVlPCOg i=4M0 @p)Q Q%Ķi EWGT8H/@Qx5Ì "#I,#:""8ٗj@$!xK^> {䓓oĤ;#60J*NSW8')!Jݦ~h=?=h 2fkGVk*!HD54sGa'He1J@(Bg{0,tia*Z9()J cL]4PTuRMZ!%LB3fK%Bc3Ćv;Wl[R[ [4O{`qeƓ/1lm*b8,% 1y%9%ן-}V6t[TȅO{MW:J%J!A͘~Jχq}YD}]zqDI4QXV6I/)h{ 1h.b*j5IɲKa)ܗ4D"!0A2|P1@Ja}C ) )>QXA D0"@OF5@f$6U`pA,L2^6 tĨfr)2S+QxA{I. J]2G<$7u29!D.mp =8,)1zRn8թY= A iX ٹyٹ9܂eg=Z0|8_=u6̉E+2 Ag}gѓWO{W-@ápwgz{/(J4S.ܒ}MڷfƿzԤT #1 p15MGr}0g kV,1vȍ}*-pn_~۰qܚ 8 IDAT^Vz@6jp[T+ / 5] 1龚ݞpهK S>զ6]iMmZn`0  aݦMIMMIͨyo~66/-LMM^)))`0 RR?===v o SR)ƘOSԔ`J0%% RSSRRiii` ##==#-##=--g^`0LM `  5McSagMt)Aϯk眡KylI)U'O4`[9q e㼏Pl0===lߜ8Y/ke ~߯ Ve_ P)-%%J Av @  Zxëm[_V^Xr9i[]/!7|ݘ^Ttb2f~bi7=.DA\aXzٙ+ǶMD:V )J" cbᳳVk T{颕B[ 35AA};gض=M"v.P4H|8#A?%5%5%йK~ݸT 5tA 18#KGHhk_a!g@ ^IH [ͧS$T_P6d1GpAAAa4#U,/4.$g2Yqܖ,躡D1bv!^H񗢋%Ą=f"*%1΢ԺwAkxbO pB;O;AOa Cqs&'غ[ Zuh 9' w204O7sϜa^ڂ/C[6^tinC#ѭ6!> X \τ-rk~_k3H|]1k6s;׽ d j41'%Ab-ڻIda B+1;E!_\ h+6DՍ ʑ5Mt bc8##LHL/m߼5yq{>bU[^n7;O5o~鑣|0<_w'#l: ]\׾q\N J <,c'Jѫ~~KDo}~(@Izck^%jK:%TXey}ǒiӰQ\I(UG@9+> WwC*lL01G\PfifPҡ#;9Z1d(G1UL E!0KP,WGt(P`;2*9]TJ=sˡ3%&=(*֢^2nr0=a+͏ ΌHA~?LJ~;WP:?`,zm]Ӿ@З^ gSڪӥ~@D7uk/kz]y[KGa~pdvʵ i}M]6Fu 0 31 ӌD 0}(k ǽC^ͫh$"G>ͼ7~ބsϔkzeD2wGuG S,皦i< ƹ0M"I$A6/:3ș;ǎg3~6k|NܖO</êΏ[]SK%biR)iBI4 za-Zird*aʸϨog-[<幎IH oO^SXdcWHDSgx ]TLJHi9 =>){nݿ{];wڵX뺪/3_d̲E:tzYY+je=AM,X$iҲYY?[d +iz@ @2e>RE˺gddTf.-\߼FXU7v;?Wn}m%&@зyC_|/˲vޗtR ԻIsWXy߼9hYxf6xV,=_rt飾^c˼K gҠ˰IsV.[=/Oc@j>2yʟ'v7eWر _i1Yx rN8_rU.7͇ǔ]Of yaLzţ3k=嚬%u_3k&v-fiֲ5g}M,:^dMOS_vmH,Ww-im֊y_z鈀tۇk,ğ#_ugY&v4Rw6yekN4Fј+V0_&W@陷.qMֲU>+YG']gwTЯxYYu7|b֬Keyz>|`5k7TՀ-ώv᲍kΟ<i Uwqgu5:M^5Eߗ~.CHתw7?޸zOHk';"@j1~~Sg>:kRci4e벲@]'U[ ;mY֪uNxC5 Wy/<0e-bxG[nkF,Z.kԤ(B+<%x7RȘr~ !uSPAD$a}J>(dGB iRcp9)`iR 0x6B $yY@y;pDmtq6`y?R\O[$bt%bT<{ +{iۯ/{f3cUϽʬk$ \!Yψ$y35  G@{݀Y5:^-o'ks\=9B>h<.[~T]߹_uZ|ӄ|[r^|3 jimos،=! $D-'+6"14i)^wH-\j)<ڬ"G$d M@*Ok?{S_;MCUot}t:4Vi !"! tYZZZjj*L纮:u]Lj'e9R4s"_"oyrs^3\rQ,&@6Ɏ }{ї#&9ڕ mk}Km*8 mT)/#Ʃ;r+\Y7)e oG?{/#ow\ L|{ex7uO*UkE/}hL~ː'JK^Wn㓾=z˓oz!ck~;~UC8=Zbim~n|3vߢUsNwhզEVpR`jw{wAm[h/@E7t6'DcrOݳãj?3XL9?Vi準.:E~m~ iv{{{|w*wYRʚ;>w?9Mڧgρm۽F5,lP;݅~m{pwEJ?ͱOA{޵55|n[:wLnJ>y9el|V7\׺?QǃEݰ8<&N,zEVwox[l?rcA2 ԋ㮇F5g!4ousN_U< []< /3yKktynW6y7۟D[nyt7]j4싺Z+/ Z{ Wm&-G DGcDOq񩦿J#ÅU6]yb= -ԽEӕ_wO&+ 8J}$B0,hɐY^H1'ƅ1<ĕDplna(lw[00M^ ǵ~ а{$|nĺSӷ8fʋ+[ݽmY0愅|~𷿟RplӊMg\9|+֭`uuДvmLleSK?} |l+ӎ;>յ f`fCyFؖϊ8\.b0ZtPaEUg!)0ÑbQ CB0 aF0"H0"pq[[Tv5uLoХn\&D?aǟ{V}=z+hY 9+ھ.R/mMDR*.Z|¨9sZ"9b~mf !nВK؊?e2?x;_}y̢_;cȸْgmo ߟFȂ +5ȥ޶MHI5Mb5Sߛ8ǎ\:e_f5|B-ͽ[f\ݭa; {@e?o~n~mwnڳD&5y+뇔TDaD/LTHTH2? 36@w6qKOtQ7OK+ocVC!80ھ d(ځejFO _K"65LV+aGs*6]%6UE&J7( wF 8 W]ue'MpX 9C… *\?`SRJ/go=ΛBt]ap]5 /#o*{5<]#]/>U'h rxOԧFmȗGtK&3Z*Tٽ'CDf(( BT\.n1iCA-)! t`ÿn;Z\{ꧻ .I?{'K0=8wb~hXF %I1뚪n1pX߽/'GwGGxQܛ͓K{ N~+cnۥEJfB_㗾z_~߲bu5o fcKs8md(8u3jdN8pC;NMjaYy2Hޓa ?_,tE{?~+,\{3jdN8:oZ,wluRΉD`Z:{v',b3`:3;F4MGSCz|yfOWhܵ 5]*q 9[DMTqjϩJڛ-.a.$Њ~9'שa`j,W'p

]Gd>]t2RSq氟E "šlq8hE=ɀQ/~/'bL}W-sq].$z̽O4A $"}˶&4HĠ kLU桙3y9.:`G6BaA$)D QCD"b"0 ";%@a% *LCLA:G&xTi[}\i H)IM*)"Ma l0 #O+u]0A-FvՆ7ؙ% 9%KEj Q .aC v܃1݋E {/ i&RZ)p{2j.R@Ii:T:T(ܾjKVP]:ܡ=*"s,m w˞٥2HV~4\M4M]iN$ ߹ۃ6j@P_PP@K1>l&םm`f8,*^RǴo|E{-B; v=sïfC3}ey=yΣ |kICiU^uq<94z8}>])t]ӹ55qMt582ΘzYqdk6OUά^\P1řkkAt@HhO6*_^>Q.V+#mĴ-aRu3"[Ar+WL.0ƐT Ew"HQy'\}JDe=Gsw1RͲkU/ Nˢyfy_}|EtIc; Hvy:i/5]TR4ӳ @y~Nۤ@/߸AƩSlJSؾW4ȕ)$d@//qf?5/KS(pt 7h9+[$d+D0OloָA:z+hԞBrq׋ڜoxEYSV1|WYUHAT?-ݞֹʂq9 *4"moV5$7s$\wHgRN.MB+@ݗ}!:̲"b:@0k{JnH,|wҁp;Uz*G@/2DtWy; -G0j\ӵgR@ I*nA03 |b=hee}bvy:iض߬tV$+RgҮ檼!8ܕv?sO4Dg2Fdr+UHTdy]q_=_8$j̜b_n5OljkILg%k-Pn5̚=u"l!D*?>ƵC;aCܝNWm{KuJkݮEMqR* /UTQnfrgʗ2WDRJ ۡbd9R#r ( ʓ2G)[n*2I2G\{q#y">y)s$XUD(??, ZD [ ,,(Hm^RN< "c vݝ(};'#C*Fd<*/ )2Ia|dt~X\?%@o8B"+C%9'hD\@כ;u}Թ冪zFW>U6\Bm3!»?}_C1ɫ=eu/׿X̲E{j&og#jA``K]ҺtXs#Ầ7+C( I5/Қe}P^Kk\sȐ%$cWԽoٹ?5SZxϑyh F7,L[^T Kq.s:76G24M!a0M #p8TRB pjz=w\޹sϝ?_hfzi5BD4MCd\T|¹+8Gxmy7zd왹hoM lvIlQg˵nYwuEb_bs+ IJF@5/Ƹxڡ5wiAe/`Kի_^݊A3AvOӼvftCaP/ͬX~NMrw9eСMٕz]Jew|T'el.'z_mFnʀ+.} wz s]Z|osJ YjĀۮȬ6j{Xui~Oc^-k*Uw}i90evEj o?jsX"q 4n]Ϲ_+hⰇnYmz?9A 37x4k@ԄXg#5o\Ity<nXwudyV]O40:0tlּ&9y5uޞgo4uСZCn*U/my砞 s Wk~u%zU<П+]ڕ*+Rtڔ]u+U(_ǬB[/e<<=8SZ%p݀GխZyAmdƙv{mE"vSv[cU7΍jUlкǓ,Gz.^}ۧo,L pm;2'KဌwzMfm}i8MwA?ܦ^ff+o=v͛C3ZёOwnTJzz uY_+aqKl{ϐ7*RzAדrkX5.J tΘ%*{o쩃KtT E)<) ][ԩT|GTƕt`]*0?u_WòŠ' v[k^?䙶nuga_vŗ\}SG=89a=[w]ۤp8\ ui1*M6{7w @VEBG3⣓Hv|LMLU)RUL.!@QGmy_C?|.o&/ )lT<7gVfɝ)MْT_7v"+O?_;zo5}Aޡ߾;x\r$Y2_n:1<ٻ]שϿ= MSr+DkIAn/|ru}G#yGJjQ$\Y7dξc^t_t'M_sR7v{'㳖h}?a.HZ`uk"GUж֭ߏ'Kk" {L[ >zxщӟC?}vԦsłOᤶy2_40&yrȗfx~Cٿ-[m6(O=;csr[Sޙz?>g{[]ώE'Gq{Ͼ)P rWYr.Z-{mlA_YY/ǃ_i zۋȉmsf ܬF4=ۮ۵#{goOo'T9wȯHƝ}?.0Y/Yp%y˴?R#FxLXpv,Y7bWΨ>:<ㅁlА~[Vq2ƱK|:W- r뷿i%OY9kn6wz`Ogr|0umc{แ&=3{7Is<3UOԐ͸ȺNw{s{~N:#c*yX)%"c?Ͱ׺)[$,vpZqĐﻑ_5y/ n?5fs9y؁Oj+iv#VmޚOs] B "PU` $P_X>$ I!8犇XU<\皦I)M!BL5M~1 d3,}܋Ү{~ʓ>.BCO[cY, uaa( )YZ8\>t+퐥vO7`q_\8uR'$%E]8\IK24rSt3&I ^ԞBq>{Sr%B}P( ~?XClry1?"q1TQa|)Z퓿{~0Fu|GCL8U9oCy{B&u '[w=0@ b!ǛXDLnTмP f5Y&ffpdY9Z#"@kqMh<&8tϵ}Տ3 ,M)1r2[RJ&f\"#' RGJ3qDVâ |^nq^w5XDit eyi$^I$i*4hZaaŰ>5O=Y+.єpi{׺'t%-G#C υPi(L<A3ٕj8c5U?3 p,F'n|qЦ-[ @瀹vgG0G 2e;n옢HosO;e/]lTݰ{#d!E[7χEvm ʐQȩ2"J%m#XP!}Rs}&q Y>]d4ʈGqOLcDXzW7CnHbq̘"q*8W0Tx:̤Z# )@ 4֗)܈fGu l?% > ἛA)Z$TeM4Koi˟M?)@C(;tq =;<]A`bbsu6 7M;@,bMX_arS> *]w ۳j_ RiJXkH4MYf3mevC˰70NRJ&&F? Y3Yd`##՚HKH皉@R$"@4rW$4T.M %IeBI! l`:YfdR)5kҖX &hѐ L8\lrWMFK-F^x IDATҝ烈`ugfB!v%Ij9qIPæ`/#.;tA"3Uy<θZ%DuQc\uo@ǪWհ97~l saT\ D "qN3K7[&bC+4gQl%88|0,XK22.[@Hap,\|˲jR4) {Wي)?8v\MU=:BP;Z-4 #^a8óZkY4L3r +2`\UX62"h5<l`~V#C&|=9^XURC!"TNw^_qm]@)\} hv:P )A";1!28XWFv zuUNX`n&pz u<86q*؅* Ĭ5! !`[̧ Rn({:1[>bB0Rk`5A'0`lMMIX  Ḧ!l` M̤I)M>z6K53K)s$!M:ϥRL$dkDJJ/o gDjw2 EOύ0Pq40Z`0{?i 5RǴ#A3Bk2lv-\*-_yT(ov0ォqG_|5Wꀒ)uJA/E=ӟG4Ou}+ @@v=RT.8^\u@, P1 {$kddYUO]Mo>bƄKqptib.W W 90r"@ z/H΂!*c4hxPO DFF@vDp2rȦL !$Mnw@2H2 wE$m% ' gIr~pѨWV0ڦ%#X/s⹍=;l Fud:36=0X!C4*De 3°i8Bu'%w)pP|D.-?ƹxmչ>1OL20dyT dvX!ĜIBIITB$I-Ϥf4J I)mx&֚~?00Bk6,S SQp/GDѬ E5$ƗLe#Ll%BDgBH!&38H9by,#I203W%"3!cGe b.AraG C-TTJ:6k[_FR,ǟ"dHɁnai6C1NXvw9a߶P](8C腰"GG:׏5T6D `{ۑ1k @efC~ 0ڍpy˒"baG [Eφ+<̚l}JS'pv.3y"$ "i-68 ƚ$PfqH±S gZIu>LZ6PO 5 =̀h8tSnKPBo{g8HCy=@l ҅І\ c,F;XY#<l!mxQ0Q)s I,Bυ JIARߏ5=v,Fp*y[{phgWDj76310kMDa7ר|P%|FP`pbȑIkd̜eRmf Dd^*r3ɻ @Z)eYpM :'D̪!co̠cF.$sY2xV|O J&öOBvXǨ :8of5DGZDd<Ή2h Q!$QL\|;+H2zTJR6D/$0bԴlf=AV0bHo %4uBZjV犁;sIHw@):Ima|aeYM±D?e×6%O396?&[,hNEHP=:a~ZsEU) @Kp?du!"W6#of-N,4_EfX ЏD1,m| p0`5]Ġ-I/"uD5LV Mu' dbfC1,H ! 6c9Y@$[z0peJ$d48KKk_AZtl!NTp C8h|,sNH}.Gas\,Pw[ gިS-8Izeړi 1iO՞Li${Y384jOMHw"H@3vk;OtZ Ż =4|by_yߝQK0u=1ݛj6z8FqZ}L3tzNyC&MFE7\}ڮH̰OWw#+تȹSfK*Lx !շn_k?soz6UV씋o=za3lC`VZFOAa+": u6,RMI+(`^ pHZAFC5LadbdxTA"mM(ODBͯAÉ~ !&ƾ G@ʹxhc`dL]W7hxh{]Ya~(JZ>43 '| |9e[O It.)w?yzbUI_}^nWt`wf⠇_ d@ã@s+~{YuO_|F+vڑ~]So_r?ӧGG3  _v~8r~^\vZ?ubSW}ٝ'N=ßy5-$*U G6"Ӏ+l C.V`= a6,׆$ ,sG¯fJĄRHi>2ItR*h`tg$b%iܑ-i rѪQ pŠI~"3)CsoˏPa< G:R)D(%>%S+/)[Da&N(L5f&`o@cl%*RI!^in;333;3;3;RR 4\8'c,Kf؏nhyk53 $cU!AE'CW/ʹqWT H913N抁Iihxp(*J*/Z2Ʒ4-69GeءzeH Ĩj0ohQc='XT5O5[* i z;bU|41:@hWW>ɑ'V"0Vg/9Va?}bM0t`uq%w8xVRQUZtn&cЀ@NuQ2CT~n@j>."u`(blq_W;y!8* :gmw0M5oȥz-o}?Qw?2nhpԡM1Kxu9>] mw4Wģ,`w=rGs/Tk_͟˗#+n㑵kVs-dԮk˷YX|։'rʜ포%xtn9W2^O >!V0Ә@-윧;n11R%[lZcAD7̃,sM_|3qQ`Ρ!ysϒB]'ɫcz)OT9$`Z#2 ۙ-!=a5~BA$I?$EAn{uwB@n8 SH;u,iC'@(27A` M:`T+ND˜ T)&dGӘdS80 \7><G}t>d^px!G>f1V'Fl&LACvLv^^F.(- Y@&T<|m9 qXUbR;\¿EaZ'Xy4?)ЭRTBKkKRe9n)fDinA])yωcS&@(s@3`䆱"ȶ61367}b (F;cCH!Yư-x, \џ7_,Ug_r'l|` FV8q<}O77^p6KU>ơpQz:w;c;Ky 3W\ulzw/|3=dSaΝGްd]ɻ=m[py~₟#w<˜s:ϹGxj f"4o|bkqa 8R)NM;a^!9< 1| "* Z+QJ(@ލiJV=1155hjj=9њHJJU4P(3C7KJoh`sz::7(4*&'''vیǴV+M$I 1ʸO""fr*hgمs}qgb,YH53BH,:lZPGԜ:ip&yorHf./ A vEp+Xd?Fh 5l[ƶ?Cjh۴Aѹarq L}D q"_ |⍰6<˯r"Vgn6Lxʻ ?Ԫ&KgLs< 1Tb7_D'P3AXLwI1ˁ7 ±Y@G/ o毪J%Rk`i+B ARaPL!N!=\$ps#fr;`bEBl 1:Θ5@"D=@DEB,rK!Zsif4I$gQX|{^=uǿ|kg׬w~`b >0wGu붛#8i~=/Ak.ofS]c~Ƕy;Y=HfcpȎnXu/ng~G<=<4r+jPO🄴VY=~u=F{,PJi|JH3 aWu[ARJ)ͰWhat,J78_ IDAT!^S:  d<ϳF!p՚lESSTJ*#r]W@ )&fVֺu;~vg;%KL(՞hD{rrrr=ٞl'ZTI% lzM&]hq0;`zM]r<|춛dwMy@fZgye`0vfgfffnYIAT`a!A7 ̩tOsPpD$% O޹/imW7+/|y }Wq8 ӿvk~׽ow~={/x#}.~7wm_osYp˿|>?}XK?==^: +?CsZₕvT]Izq}S_m{py?_Nz_~Ӗm3?]~Mi`L05`7 W}"h)}Io{rϳ*@\+> z , cEJ%4e&팷DnegR Iff$`;I:E5BYc("(֚CDFL0ȳޠgݙL3=;,9$Q2.5]\k!%Y"2aFL!`<g "u!3 E4 ~ʿ0 :֛qjZ 8LQ|aL?ے [7\yԏi߽w/]뤀?OwU0K>wd#sϽ̏G|Xb;ۗl|m:%@tYrmQS#}/|gngy9 9i䆫ΗO=j.^[JKO"AV]w]͋$~ ĽAt,w5[CU'Rj"p/>wZ\i"^kCa26cKQ)BK!5} gwaYBR`fm:ΠvhzzN;GtXt-4!$nk8,,ˤƷl#(ЏNpCS퇱QQ8wnd;WD,dfulmk d+5r9 cN"PRReMP墛T)ǣsXXX;+`%-^j` , ڒ&&4H)RQaA7Kϯ;Ǐ1jgc}^@d9_}0a46#l뱌4A (.1$RnK3V&KVV$$n h9gkR%JXcd׷<VW,p.ؠlm8ʷUdufCIpNOE&܁o5=̆M-YbIIJ&Ϩ۫e w^@Ɵx;x[N9mH jb pąkTfMng1^h:ֳξO{U$Fl x8}aqů-ln3A:|v'_ui/2/ˋY-Q_V9OzǺE5gK_>|"!H8x mJe-?94mW5&m|겳UnebPNw9|5ܱeυ*.@!,-XMDlh]nذ+&@Wv&5q"2Dө cxy3K5@zϻ!M{J^<^U1eJ)NTBDfii PRYauf @ys%˺H\y9ˏ!6qVbèIz8l.h# jr.@kzdC[e}A8ՍTlq;;V8 aX\IZ4{p"ͬffU )/09l ֆ Xpv5cGmfCh_/1CŒ  `C(Q8,䒭3grD͖I̾<,^O\9!n\*P-YfzP3b'CuҘQZUS-' vI nBژYk0uXB;ب!X$ȥ`gA;pEt'sM}HIk2iz-@nJY}bm%Vlan`xXBJ۩8Lx-`SdXBx`fd42]db!1)ϝ# -TJ!9_R xL! 57TNgkx!^Bsf#nLJygh•FO89ƄpUQ)b'] `uCC1[$?,uzʅ{-`uU8Dt/ڇ62nJ6H0mz%vEWop\W(? QB?i #_uSch!SyNֆ^l(` '}r3z%Fu&q羶⯊nw^[qt_Qq3SBE \JgSjq'yޭ!@+_bif1܏CtevN.bɦB MM@! wQ]uWS`8CS 9Bex>x/ڼ;v)eO b>[i7f_X7w'"!@7HHIȰOPKstuJ ~!AhܒqT}tk u#PS"8נZ X`#GU`舐_5RE4;cdcm#am8vf<|"q9tgQq5iG #+|v)ơa&ѻ;dyڵma-1%tcO"[I3G]]b'Wp<"PNl "T@,]Ou<({ ϗ94w clI)Z>+m.0BtrR :l!-!E+Cih* E}8pMLVʅ Ϳg0na c.ygM˅o~퐡͂VweP̈çQ(Aȡ@aG3"1Y3ZD4`)RQ`$4Etsn\#ɺG 8P Oc#M-h]Syi)6vȲ{F:IDHQ"OsYA(b@l1j;rm% n96$XmH%VC DKРߣ* j%:Pf%!l@<9O*: O R%k*6E8C W7yX[Q6E!LcO"qGHRRp \^=EQT{d[&؜?c' n.K1IҼ)8n}ݖ[z;s٪%zȸ#uN92B.g6I8x@'KNEW&o>{ L䴈,(Z UU:QK.(5d@I2 ˴&)3q_i$Jy#f0 M Y&3dS y>J51,Dۛ RފKM εF%.@k~Y*IDIZ-,4Um?x;M^A4-{CN6(Vy%a8i=C];9K(3xNoEg;5U ł Dt*ACC0+tB<,n. Iycm#Y5ࡂuv]]=k)Rl4ˤ-"*u{83HdPgD%PL NarPs;kI sY _b@'2b ?N- Q,( -D qQ@`=2P4tĀR5= I"(-ZP՞ԟ?AK J}, P?e O:o^~/~o OmVHNZJ\N@Dlֿι.t+?Wz]ҲӘ9ss?^ˋn]q˭WY/%Ź H.m}ӎ-9GB/W sz8*K4kn3s`0 Oܳb_H׷5)Os$:[s gmZyۊW7_uN;d;˿v/>L(!jW^-'|} @Kn)˕oBL:?o)I%}V^_y+k/ w:+KfיSwW8~v_{z3IDC"'wЍBH@Ay,ΦM6nܸqÆ 6lڴiffz~9"$iDJ[d{m-Dv`#3f*6I)L!!$1-I(1a$qpPG?Mcy;XxTx k*zgǴXjbnԵjjr,Ƒ}SpF 5bwڟ2~|Z,pY^5ѹFzV*G6Aޝ h"/*{)gRR?nqi}`W#dyiz@2C[K5~g,ZxƥbMx/+@^s)m@{٢g^o9wɤX,pe(dC%Mĭzی:jsФk?{Lݮ; @y݉"z`( 1ue101"Hx-px1Gxۿg|Gn/+|I{sԞ*0:='^qڷ|![O+UZJzavQicSeo$pbд kCncEw*>㈎Pi?/9-dņQq;YV4^ȥ0*꫎^=8ɕ3 Is\/ "r$vKQ7@@vDK{hMNM-lׁHks$i7"N 4&M=@B@hѴAE-!Rc]uLffp"v͌3Y?ˉIF~>ȈYR*f,:.NsK}U~ڹ}[7&^w9w"Տ}c6Mz//A=sǓ޲4PG0Gu*=̪ K{Z1KnusM+?nW|W 77hk|9k~7?z/={ӷ6kEk6o1;>3?r`-BϹiE/D5o=3n+w[?''\Kղg,Z?q\sܳ՞;v3u7S]gҽ!T;a'GQIű۔( \Odu4!ڌg' 뛎uuDW"yfP՗&ȅy+d = 7ӫ.}~pekݼJ)77"ͷ_|3?ց.A?6@?g\u'.b@>tˀ~b'^t> <7;ow߹'6$Ƚf"^[a`}[iyY&5 AĀ I4o- o)ֹ:#y{xwW%yV) U22vn! &L5ff,M.&v#Ҁ"Sa3a63-Enyk(1zo +OD!%aʞsV!;}3a.~ E2s$`V7$/K" M,X%tդb0^2aypJ# pjD!J;3doԃL&91DYjMs:|bl9a6\DGH(U!)f1"ND,F\S6i"ց(4ϴe|BgY$;{;Z7U8:mmι'muf.[S[w|5ǼS>,1 0 0D!\ L3ѹCA}FUՕuFSzs./{C0dkV>ݳ^C%wl콖s7|Ӄ/ǫG/_Ox3w3v5w1moBGMv!c6JFRJ)¥}U$1i0<ML'@G,b +9eEp l vB=E/1[buFDZKлo<@7vA#aoD!>?l:?IܢhW/~ڟ= JS)eT4IR$I&dL:'"L&ZVh>lsp`(JR%@l%ID&*MT((W ]*]8eD`)I>61-<ϳ|0J$Q}p t'@"&,ϲ|0~t:lgfzfӦNzy{b%ޕ%RI$u0{<⁨ثY3zpeCU Ǜ'qC?vp}ou :?1yx@p!ܜks-6fjXp͇'y暡!PF}zm[;DDZDH(FԌ{a2UZg~*U*W|¢R`fV}4,fk~t岭+n}w7ooy6\/}#?7?{}#'+ȫ88ҼD}>b\ak-M\Ţm^>n~uC \,֜_3W|zm(! iv8re Ş;g9%?H/>=}~~}Hݳ~?o){C/]kO_?Ӛ ~ž'ƒknX8;8[,<9ͧDyPh !Xk .CABa4ѻ"2`jRDSc-Iè g枅S_B#Wz|_k^}c{d1lt&~Jm7²mF^t I&az*oLxl<|@gfJʕUX D3P̀9C 8jż;p $t6V}BDF5]ty334S"N̳uɿ|ozvj ;⣷?ÿ)|򟬸+)ZsZ:#+< $qY1K#q1_̺?fSs}Z4<TEz]>gljkލV]exg:y \wE yfg@sͻ>(!ݏ>4]ibF Ik+DΜۄ<3.Nدo.<-{Hҹ[zCݧ;/@\.h+JN;T* b[T( r\.9z \x .q! D !$ A )<iDz0e!/dL8r R9I#&]L>eHQ5'"k<&Y~TZſϐx^0\w.<4.'`RQps V*QJ7tn6WB M6{-eb !R\@yΪ|e oWzd2][uoBB~d,0 d ШwI@ 0:JE-Q>q^0h[CCdQ^# 'w#"CQ4@}#V=\t~k5D5e5E8p.5S!IC*>}lB㆐ydU-c}Xa>Ř)-,C&LW4dmK2Y HP6s78#&x3g$F1%@(!/zH>4I2doHU &C_$b: d4tW: &ʐ!;@md[>K2d%'T12df@@Hg-kҐGz105*X Ύ;wюXE_Jߏfe)IP_y`I /9%DBlr-G/8$ZxQx)A-Q!]*p^ЍV"*% X^K8W.jAQZ]mZ$:ѩnngw/^׼!4@k?7咫57Vn~i7RvWw߱SK?#oQYl9h6M~ ӶEv7'-w.飔"HlQuU^F CHƮ+<,Zfж~  !|גpsw}y'~v5&} "~Q 8S? ui7ᔩoxg5e ]ƑP|2JP }g/:Bȃ%c C|#_~zok}>3vY/,XiϷmu.}mھhm@K'_hyzx?XDDu꽣f>qm#Դu ?I>M%CwO~n-C{ Sϋ=0iO?!EJ!BD.S fBjJFJ(1^3* oȠSZ 2vCDf H"yXBGT@)y;)XMbB/ c9EPX")]KjC{3iAH)ə6+X!q/ vEu1޴'ю1^ 7aĂx >l$[>}ȩΈ=Xܜ~Di3)~Nε}: 8q[Nۼ_}WL7xto޽0bKׯ]gvCλe? XtѧVF!K4dM澕Q]L$}6UTc4XV|/+|Wl͌\p|ljy)܅^N @iq'twKA/]ss7m!M[_W\qϏs^VwW设Sٽ.5xg[SK_xYKK}sG!gi3j+ @ ٪Gg8$D=t]&#/RAPaU@oQ@d222fVfȞ*%!Z#A1=G=[\1C݇/o}.|mPx&Tg>b; hnI~sės1㳆8 ; p諲b YEG0QpS/ "K깏RWU 8 =Ш!g^?Ĩ0GKTc(kJG"uw!d `V.AV*0T1qεb[_JG 8fh4KyXc mـ9-& #cSBu\Wkspa!XAm >B*c!jTY4b'Ԉ(4IJywQL  Ќh<"Dň*(vUXORNaprL~bR~o խ9orpt}#3xч~Ig1+J#(ze&%M<`,56)ծT$mMبӗ]Sb]{-L97}y9ڣ``o$VU H*gS[N`R4: &&A@Y$MlLrT)=5KxFX)urm!bV dϞ`܍'YZd2Bu1%8cNm8#f$ * ᱤC1hi"DO'~΁CD qԏ\@Z _M{p!D /\*5"ԉ !-Ƕ-=|?K.3:TB^ob`&![JfH>lgpgC*~#FacEHuYC 6"l4/`4ױ dv~6W]4k֮][g?ҵW'EN}3F1bE[XGZHMѲAMK+9o/ n<j ֬p}ZBśDPl,aq%J3;JsH^!"l;6`Ddg2HKB |6VUc IDATA(ʒHc(HZWd y:|#8  5"x0{ tréZCQoB- (Mㆴq;5fPR|St\BurJX!` vϘ|L=BhX"V+2 0@jh{*-QpƂweK 4bR[ZO$"'(%iH#J=!Oi.dĀHLh .n !",QF"&$@RdЕ`bsF5T%ܮ[&Y9&u|kTX-O|Hà:NOI-疣;6uJlR 8nT 8 :1T|}-kxNHJ*lkb^YsRQZ=jh)f*WQQiFO>$[%[i1dB33LM0E Ar” ܣioYTd*h/]UvJʁg*(Gs.)< x d+&x6KF"SKh^s(JQH70;`ps@}ZPP<`D\YVHkΟ: a$Ӌ`Q >#/I#(٤l 2VF[<(I:u1fI}h69ʅ' d#gum(F xR+2wd/A$1$mɟ CQB'=1 EHv%ů^1*5>#a/N:-*Q.֡lgDݤ%fMS(ڝ#"qD^w, @7ǭe.S[KF=,P6h lagB0˲,Km:ΞY'3I Q0){]]k+'F2T;JbGIc%%Eӂ#qJTPR)izVd\ֶ, B{_v6-@uʎot\.k[@+ʞ @dv.w*&bFN ۄy^v`1i'z[ kP|SCSe'Su,Ud(qf^$"~DqoIQ# >AVJY3?@" 6Az_-ylBMtId@2D% iJB:XǣR"X"QY3օo>G}e(b uPOmC@ILhsAB['ׄL2BM#L=R]uAB" &~6,d„lTV[- #`W(gWkG-HRK;Á $J5=Y>^) πѕRɳM8)YRIDٱ,Hx%m;ԧVe3!eYg7s:4ݓM&@D{c8 UVIs*h7T 0 Ņi"G;PĊ1RE_=m;0& %05} p+* AL.PV!ǸS*qR2i)/=hp1 M)5%tH?V6wmo-'mj~@Cocv;cmbW T bJlTT~`PLcKEӚVm!!Cu1ܯsG^@YU"?Z-jzr8ns<|W0 R*z 2TJ f0uB1d2dV!kmk5 WS NsH|h0[=VR^g4ǚH;Q, f^ Ș 0ds 5F'Dc5ȧnόu3 Jo@(udDhHlej TyK*yﻢ,Y$g!@_T RA3@y?m1q) 2ddsFӽdu\Ƙ s&=@39^4S9Pb}H2[cBxAtVB$籿)֔.3@( Uqk0$zɾi){f}n: w (0):$, u\O8vc62?\gȚI<<p" M-F6yDmDX3C,H9'iTS`elִixpӧ|2a[Ϛɬw_}[d4pjx<婙^C??x]OWsדfx"W<Пg3n۩CnZ:  ʑHL_95-Շ'F V A&' ֟#Ѕayd."UD. :-D_pI0GM9e'?{dg9>'<>sʴOgdwO:s3LI[e2[7ߘiSgL6sԙS͜:C3`[/ϳU=>5Ěs7uƔIKU?QۯuނByc:+k׮~Пm ,˰|SN}ћ`{lχo={g|m7ʳw[ݓ nY p.] \@T'?鏞1|{aW;)=pa_;IUmPˋ) ΅\\\p.N~b9^u+|4퓗ygU!CD+s+G=ϘGύ氁 r&ƒWtS# UFCÀǕZUqRf6DR2ƆRX{RJlPI0dY9d ,fDߔ0h#Z,T$"<@ b#cvo׀c4D;kSlkk+jfh[T.dVDc")Wjkm+8X-dDپ?-.cZz=1)nu'HD$EY VgWn>?u ǜD7el@ν 3 m3_﷚m>[NUA_b#)tmGUJX=ԴM=6hm۳_C5Bk>u!^[ dMDUf~@~N:iw5ҺLdᵂjsV(,r 0L4i '=pg>#O<Ǿ;n='*yz_lv̀AٰmWpг4 qg{WMZGAG j_D^G:}KmBvye '0)Ndfl6kg2,)B);RWpЃ Yr&熜} uo;ԋ|oySzIW<ch ߤnbʺ(?_HHOJAH+>yӥg|׽*~E#N2>A.qE27І\D%hb_ PfhܫN?=_|Q׾B?8g[wF]yX@Z Br@RG˲-۶-+m7%d7eq29y6K;sM/ڮt+O}z/h&KvCd (8=qR)rs=ysK5|L)e1f[- GY̲%3n?8#T,iB%8úz (1odvE֥^=ndNq䗓CKA~ 0PA!SD΅f,!c{D @ 7r+^S<ԘyYubl@"2+a@1@9_o471@-BrHAZX'pcYWD!B JYKQV!ڄhMbĿ]OTyZzˁ'bTw$vC!G̃vCw^usM8+O٥G?K!\y~;(W{[o׌V?=M]y?~]_,rC+J,pc11 dHE_Ս@bf5qxЁK>~_8~/zJ`bnD{qA;.fvve-)!}3lqf\8M1|a;Ɏ_䛈i㷽ڏ] A?nSsgCsV⹟i4uO\]h vZ1/ϧNJL@&>JCd纎"Z"Ga=@*u[Ov `3n=↧pӉq^7 ,(ukA''crvsMкzUX$g]!<8=j_ We𥊃1߹^2m==o 969kxt$AB}8.2" ~[2qt~} GoН}9) b]__~\|D9`M{4am2Ie؁9w-_1d_guoT6#e0wWRe>kgcvݾ-9'dw˕ l"#-ǃ'(9e[BCX_& V~G>rR'ZViex >}z_nOv_XhoTn;TĽ+BP6̶V(ĶY22c ^&<"c(,` @l<&^ 1;3@e#!+X !e776q#CƽBܝyYݛh2p Dg#PٿHvHq mdbJ*Tjx}($}LC %NԾ9cvE2KwaGqFOoQn\s3i>>6f_s&;4GߥVC,kF\{QGA14C)>)ĊJi4 7R#vd'2p~˦~sA]1i`nCW ^{ ld,oF͎>*]:˔]Mo;o{p7?xbՌbκicWMyx'Hm]BЭyvnعC%m_zzt4쾛٫eּo7n'?.(zB ÍB@n~D7HQBB8xuPp 0#J)* SaN4| wb:2j?Jzu~?L]Zi޸}®]ͪaI'{ew$ٵ7oMl^7%Iےx .c ˶ 0D$'dMd`^%at#ձi;d0i)SOj}P`,xB3g:q :lPl0-&Bhc,) yiY-n߯:$΅ tg2`#jUΚ7?\:ѷ޾c|S`["@ySl7mmpOwWx%n4׽3HT0\DU"kŔ͕־C SBm0\H IDATW c,Er/^PH3J'yĽ6yv wO~sI{w<'Ľ?[]Tf-E-^}?{8q{'sI/}h y`aKl(w7 ?Ds&P䂇|CCj#FgC/Q逘ծ`р2uzXA)G趕 !k (%z nOU-|YcQX 1a]q N`14 LHlٶ T/l9mH q r9@H LDMQjv X%y( LCcl'oZoX)RߥϾkwȤf|/H`z3\ޒ2XT5ϱ\vO. z^ּM~?['Fe,Gj"=Ubu趮X iSl^wǙ O_u_ï:WW7gw]9I?TTG.mFj/~3pg?*vj.۸]FG Tr׷`oٸ @uK4}Vپ_q$ࢭHU!@hI_?jQV"BbNkZvqp=J =ǰpn(2'ᤴoeCIמ ʑԓ=Ź`B,*goc>?\oKxx[< ߜ7y091J?C!`ٖJΌƙ>dz"&j'hADso +2HDsRB*ki }r.,S:j=-Ws7pI1"c2qAGl.#LF!+쌍 `v6gWr! 0AD%F.q}R!Zu%6R+7#or8(6 jK6BYBdU;"NhY @+ ?:cJ_6ӕ'wrK?s]r;?wܷ@='Ĝ+e6ro&-\ ~kgvZ)jG:/j)GoX5ʜuE 4mڸn5'NDh.вEԗ`}pӽN?؞p]/N-MЩocytsyG_=i[=z*vZ85W.- /;\G1Mv~%_%uf6vxS?f+ﻻ^xӳw ,zoŴ bŝ9禪(M_?w:݌ٟ.h cg7aUAGLbͪ fkOy.в|ARBv_ٟ-^9l1W1g_˅GO*vύgC-ѡ^rs1 FUVnP@52NMJ6o Bׅv LUJ!3mu i*Pm`}&tE GWLz_`@2]zm[/mᆍDD2 ;#m^ޜ~V^=b |S [٦,㭓oztwl{ۺ 3_!L-FXRha*#ݿ"j.GArL|3L=4S斢,ĹF9?ZL &ppJb*NHtuEU-2K!> ݍoTJ@XErU$OPqK,aCoBx5N`N$ [.W*x0D g@%XHG ^+zcQcg wL mzxߜ)A9N8mmNM{ L.~N۳6{K9KKç47ll=U[uy=v Rs/ ͐l`1B dE8%uȯD(,PDIj՜~ɗ ɠA0bxE+| &m~U64d!7bC ٦&My{F^~r>g\~&K{qAC2`,67?0>Yڮ#x iS|ukF/2@Swk#+<_·[:륭yi"dT}Ǩs1[>WtAϷ`$jiLnE̽9dƙ&q 3h0i>SR>?:5!^{>Г9w>vz:=Yo+g.ywnEPiȚj&_Gf !DDZ}on7~tA^ `Xq3q_sN[ᠳ~[ Tnyg_xY4ZßԢlт ,\`]*jѷBF,>I*zx;=vaG|ߛœ"[t Y p]4XSGK:Ac jJ{2#B[m3d9yTHnyƒϾIsAKdǏˇX}{f^?&{ᡓgT,f>h zv~tyr{w nߐ JAwP*4)jm@!G C il@@\7s뙡b@ .繎㹮n9.q.@!)f<?S!5]BMV#ń͐ _W/Z췝;Oaf1~R\qsN@oMR{[=B#,J*_ET:GdND%lGݹrra 2V*D VO+"O{~-7obb~x4ⱷFOe6?G}k0Y@ =p>vgO( I`Eu11 8{p>xɈ7\qbkf8U ݯF?xp8E/s6^ލcYמu2$Y irȽ^JWM ]k,|jђ|xö4_?/zj=/Ҵ%.ʕnxWc ?*gSmj1jD$dPDTW?=Ï]z_r嘡MP\v7\$*utKw>voYFF;zk cW\8ܻ3n{tdV׏㦅1'X5] aS٩|o]9z~`:a\LAVǩ Y>[Ϻy c)N_qK2K޼ ˹GetɂDLJ7~ {胾}E>Ҍo'Kyw=+fk."mZi.'vj|^9R(U˧\sQտolٌxԪ5^mÖ@M *Y0#3;ap)9š'VNE:%r[j)w j"w%f0 5%Oԋ79h`Pdp bT!0HX ]3#vz|%("TlȈZLz)$V^p(6~ Q]+ɿq#m aR@@6ǰ/`Ooxa$3Q0B"dl%&D Df~4qLf]f)LSq?2`-'^%{0Pƾ㠸KsӚ5k}],ِw|f}ڠJ*EJ֖pYԞ'M5nf5~Wic 5g6n[tݷnm 뼋v U-R{W(GcU>ɗG(~ײL3VTN3*Hwjn0$A+z V0q J*8Rc0zŔB FW}b.7ﱑb2VeAMB0fQH72zh|IUP|&ēd(VbgAGII%&KhwPH6.1z0YMxYƣ1Լ1OaTN ˼0P<2H.cs81Fµ,[IvɽÃFaۧ %XR牫'Am|23( I0QB~C&c\T !,"1Bdmhxyt9]f(AM. èCf+GOuDֈ+4|,+de(I/k ̛k\Q|1gmB1m]Y{}qϴ &X)70mMj4pO@0q}i7z\\. [ PM6Oe#40Mnkj_@m%f#O*YHdpw0XX{J%_Bʤmv ofMةkn3)ŧ) ם$rT ҥ>BJ_W O:lnB)cF4A )ҼR2,zt@Jbb !c+(Lk 0_3YDƞ(6p"!H" J(4Ĵ{CiZ1/ΨEB|ӛgdž@$B",X00jЗ|.Ƣ3DytMWMmVUΈ* y0_7\p'iZ 9soCdRT9>,4 1Үʷ'"!87 }>:I)mw:Z\ֶ,Q׷mIXw dl8~奶Gv60n(cEؚd'Sc!ӿ ǗVbY\Kċd2޴ :g&b.EW`':kgTY-rƴ'צ=ZzʀRZ)-@T9í<qN;1TrLG-2$B-D!DA=VX)ʞRPQ'o#@*D7RM$9h;m :$TeZ|E*&CiEwQ૰0J@NtUE=XXy54C+Y/BIIE#!Oo&G4QFʰ<)b[ IDATp+fs\.zD,RX!L9X&ϐS*z`<7`> =̤`+0?_P~`dz1(iڜsޗ LC8ClD)~^G# #RLR}XKG; "6'(TA Fj6 KBu,= [`UHN+#k~=Z˼ZCn,DAd0e.Y&- e'Ә0̩n:Clbhxa @## '*p[ my7Dmu m" *wah rʸ]JCh74P&aĝb1 fXp8`1+e2 AxR8TykMy @c_, |Y?ONx{&=#~;f/;# 6K7̡ȫW[m~U釟|W'K)4U9O7YWvO?ӗRTܪ(D $wŀsŀE]3qͺFPW] 0g1qYHVarqR{~ nUW 7{nx6ɈzpH9D=hj+Db̯pRqfG" R'94 o'rˤ  dDE?u,,^Y\ǠTXFLS8sjzRRJ1Mu!4M״8GbٱynAGDSQiYJz O`&Ei;)DRzw"%$7]SdTȚ&]^F4irɉHc 2i rw<{1&tb8s"n4"zY^QcLc9=Bb yLu$șև4nZLPc #[bRz?L Qj9C:潢@)YNd_r(0׏Q`Ō蠞)[_[[[Ιy?Q.Cz*Aq#][S[mlYЩ Kc`}k_ /jng $ՉG>E>4NɆ +}7a@v62hguz8ߒӲ_'@2KSLNdET*fYx@Lȫۂ)@:+{S@|3VX$P=,gr܀|IqF6g$C4ed IB.s'sۗN}Ͻ/WewyհX[v$- zu?>SM`nVi9!$}c@LquŴ:q~߼ga#3edE<5L-u6 [ƅ|( vH7ΊTpzT~6S.+C=u%;Űa *J!"Vg:h`C^@8=."Z21N$J[v2!_-Fu'!cG5j>.0M\|ƘRW<=ΪW7 s"@ѻ|^56%w3s , ?{ɳL-1$nchE3"t0M M% kwF/0 SH)&36c("6 ?1h4:d(\:%##㯜+f8.:B2 X4@(c'qv+"$\gl)t¼QNE'w1#ԋT,0uiSNҼqKFbйiKtzviɪ}m˭N+ըxQsWnKv:c#Xr֐5{.[Tly 'N^(2Q6?=dfrfίaF*x77E;L[ȭ1fo*FY2Vo9K a06Ry)|rа;F.GX.Hi2}^y < ю4QbW @) )Wewj8=%9VR6N :1N "ht9Cy[3fXw8(P'ևt*@C'0̯seR.M]chp@MCj,yrP d ҄L 0R)Ĭĺ]AXxs} YXv,xOB0g7QYyud2OX?u9)kzu?P Ͽzwkefn]K}+_XTg: *UT&:W8ݸɖGTPf5PSv !9șADӘYYI/5W۹ɾ"4`!]a![5! i%0 ;MDD 4Ƙ^NTSȜdޡ (qBd 19$I20Б ̌r~5fu%'39eIҵlUfjGVuiu3nk`zӞ\vB)ۗY= v[lOKէ:.{y,SS1=dۧ#̓ 53pΨ $ccne(iG$ cr)M+Et?HJ9 ǭ9{4-'2  <Y`SQPԼmzw64qp؀N/4MjY m`d>'桰c!঩1 {* FV-pv:@(jEnHwK^~v +mh2w$K{(Qi}a]js(J!
DhJ"OTpC$0`3)F8Ha}6Q]VJI=4!CL$NMȊK&aֈs@PqFez|1X<KX]HA~__Z re2-z^+*e|¯F1jq̍_o|g |3q_ ضjU_[K(c0?6qӪ׹ )Q̠DQ})[lz:uCoxyI6sH nWoՃwb6BxO&%ߙq/ٝq" J{FU&enudY4%˓#dj0oH&c QB,79}yIhFA/xCKl% @&ĉiL2QN 0=yh'prDOEIy(TLJbEa,ѝPY ;V p"} 4>wec`%hV?d"(&z_>bʂ@De[n囈*BY7–_&82WEJ(BDICJ 7H=9B75b!R4(aּTMb0r-Dʣ)0GrX*,ҁd 9F)6n;+('EiX$ E99HDEЗ[2{ P(#Fdk2n|O9"[FP%2 G@$NĐU d 8d/V 1Iir\{R)L<+i.T0Z?g&qSCAU gF< s0p}ɹ5#x buyzQ J-e&n@"$ ,2uuzB ]&|>)SRsE$SiM pB𤈐I$ 30ऐFɤnVyT& ltnh;,Q(E+7j1t\9ǂ cFc7^G1\t,@!J D))!r;}A/"jr"j#"'EA#U}f<]i!cvK鷶$c(gܫ5"SMF '!~4SmBJYn(EYrjDt3#-ڔ$+Of)Jm9GlqJ8VEDEL#с!> u1s"V|x{5<wQdS9 4UjjA|J$ li pt@)^u&J>$Knʕ]U'Sy>Y"F0LS;ȢL@fCٳC.&V 1Ц4*~y51 !9` ܯIzQ1Ier!v Ue*|uOM ]\X(vN-+Y0:DQ<rAMR"uRPa>hxٟ:j^ӈ|\ T{CE`?8x.Ϙ.E$yvp$߁xeIMɛu1щHO)Ddy@-@@]"^s!ȲIPgIąrSM IDAT(kIChtG/'s!E!:= 'PۍJh*#psND Y_0MP4`b-0n&CfS%i$'j7PX {ww[8Dbɒ=[Wo4&[Պ|CL|(|"P!@2{\*dIa!j[ cF>I]NBފflPeJHMTR%ףK.#GߍkP|7u/C|RNXLgɐqW@'6.|B VWLPqLwrA2CWg# Nͪ*ImRΈ8:6PV4\s>ZZh=TvO.㘳[cQ B QN=V sn,ĬG!. 'ipb!24u]':+'P5M*kl ž2h7EeXKv3G+8cLSP{ &Mx/*e(|A;`,x1+,5raĀFlIɷP6y$ R91ݸ1b[1$HHd!9sI~¶ߜv6&fǡKU\"-z(v5 X-ƨ&H+Zbs&@rP̩ "nEP+ t?!/k숢iT(@ ј|/ w)ƨW"I{ [ K,vQ"äEi^tE${,T1ԳWD*4"q#kj3sBm=U .Éto89}_ H$n n(^CפT 9^рD^ 1¼6m29b5&2[H9URK `M&TtY߮𼷗!/y/Ef @ Oadm>3KL/4DNDD-U)K B"0rvC4°6p&UPp#@}N&X9C e eH&t⒤QW%DqiҬ˚$,`Ȥ3P/*-x ZܘCˤ(b硄*HHHrvhJ ^L)̀!d^_@H] #|k 돨Nb͏7rw݅u9'+'+ѳNt> DΞ;}ZL=g9f͙:뗩~yoFϞ;:CLvbVLdn)7[O.ǿ6}i36i3LI1d9fFO4dŇg͝>sδYs_fsz+UQVYϝ>ssO]qT+ :ݙ*fH? Ho}O0qYە(/H7n̜5wƬ3f͝O J# ܥ3gW̘]!4c[ ^2zsg̜;i6IO!}_=KD_^;{wQW?93fWLSw̘5gݤ3|FK3f͝>kY?}ޓWO+ yk)n`1P C?bOc.i$\Op^9{ 秷N qUgh窧ޛYs?;N+0^p (g3;Omu1N 7{ODDLvYsg|ty[<kή1{r*KZ̟*fT1S,?{؛_2c q~2o:ӗ=yQ-VS?1vvD̓B@ϱhOIaS~|rX~3f>2y6D{=]r؀rg{s;$ R1&cE@S6&F14CƘi1{fHR,hw.ڼLB2]בL_%t0rf#bT0Ĥ~ Y1bft3ԅ/[3d9Փ{ 0^]1II<'u֥vejk3Z&隚ںl ˓*mҊ64Rޯۅ4#ae};xR[ wwxM5o+~xL/5f.h3b)+淍zwu$ ^nˮ'nK '7ߒs;';e5#Yz;PnKo+8΁e^z7%g=荇MzlZJvw7\u{M`=j-S^iC.߮r̚]Or}]7b>ދ.*GuG+Ψ57R\'gɪi-Lj' j^־c^ZN@<욑~[@d{+뚵?W6h&5AUs읎(Ȗ;?=|K+YY=~:v}CfT׮f]z׽f/qo?/6r_$v>=ro־{^{7H<e fļhYj vz/O>埬3G'@"&)$pޟw|iTz=r k#:fO§G 2~hАt{jL59,\D@uL @q{Gݑ|3jvf/*+;Q#2vvb{?i‹@~2b^ZPmXWЛkmj]V \x{s7t uï`~n:n \ 1EH*ÛLcbsB1d65"0384 UƐ=RCM0RKrȬ7Q( Ns* d3V,E &j-C y]$B;8p r" yveL@k@ٜ 48$ALftqz!G YjX3Ei)Cϯ<׫]LۻmO<-~䣾K](+j̞:.%e?3 !hvSν4^Y9ZpVV[P-lY|rc/y9NRHXCP;oʼfe|@*ͯ?Sr"UbxV9T1Ыz#>s/n.rx͊PֲNoY7_cB##OwWCoaN>˛, cnے߼Η*3J+oo/w'qd8)-v6—[<O<'L\K5@c=fv?;23~ԐK-~gj捛w!5'h߫{)l WH)|+W>Z3k }ܴ]"h߬m,?Oa1HKO}~ҩN}Q+MQwӦL1c_VѻnXrR(uʭP'"ܙ2-OGyc[LOqnĉOďz Oc?TDC@P~U []=~">Ron_;%c(χ'*2`tCheˠvsinVe ßCo3$nZڙ?[Gm~v?:ڴ`=~v|PV-` 9=j軶 bhόHأ(iAK%RGy U#;㰩 rk8w>{cޓ~Y3[3f.NX?JicO/wSY _xa`ϖ2[]z{Dv>qjۃBDžt,*n31w"]H rM.Mn CԐ 2 H!s@p֭hI)52`M `scob1渇1烎9a՘b;bb?Y\᷽0+!!IR2 ̒o±-{m蘏Oa/3'~0;)kmm֡V;!sЀN6^ ۥ]3T e7%{['d riL,Mj} 7yڀDΘ^on-R[&w6!b`,J4HO\ݚ,"ԯhl>i!ܤc1 @t6"c4$ PO&7LN̗vq5QC֌ԑjz+Gd" uN94a1fH925LBMc9joXbZҩ[Y/VS^,Ǩ`ڶ?L%We*(XRL)(o\%2 z֡HQٳX &XoRgxm\ NؽaRn f8cϳE=ef@fDDք㟛0d/-z<&ӳcU&& 슱?_K.5ؾbAkb.˲E=3^%n:wrlIJ<}cf =*hnshG]uf%}ʊE;:q7[$qPvz”Cslm⪹Ui 3"wEU4j ']8y/}6쳧:Ǭ/mJ줇||nmz ; y*]7ߣl_6?ϙr!="3-\5yl䱯y18f#dT IDAT XP'21^+TUW-]oWf l/MG&ѹE0,gY?*Yn[x;o9yW6 fAmtޕ1<1'X1=Xel1s[*7]pQɍSvuPij^yΟ[k{ fֈ 1=s6ݝMDuӉ6{7Ӡ,re c}R)1`idLeYPr #{.amct@E{熩vUQ4;$U'3TNd%QgǸfbD*QTDZHčlM (HN~zND9 !jkpj% u:',C,A! QIi䊋Kč\CI=R%6I/(Y0+D:EvJL",b{R˃/aN "4)sT|DL}g?s_eϸ2 {M7ҧ{sxjRM7v|{c#/~1Gҽ=6?`lч7yT;~=Ut_n ǝpk.a0MzS=zaVnG YZ{iL +EUd(i0]Z{΋7%jR: jq +-^~GBB9Hf)ޑJ-+*M;2;xzkAaoߎl`nǾ}ptc)2D~q5?Ov$W~{|iv.8(cnP,]O 3,S>eŖ>pFQYH쌯uق**ldX/ݜ#@r2!#gmnnZhlh^ӚC|Eܼ~{~y+ra]4^yA?;NYH>& `t:PWXRqGi*mV.f cD?\s4C\ݘxeNRsE1;XWLڱLCdv2zeE"]Ӂ@Onf `Q{$Cguzظpٲc -k A\X| QѣY=ښ>̦9SZWF}mM_B}D&jjLմj9 6o5vNa_jje-9m?þ0Vsi<ښںL6[_S~\]mL9~L~.2DY_y6SR8˛]o VS+򾁡xbP-  GҀ #:omߴn˜Vjg+] <}~μz2sb圃^TVVZ@\2ɏH<{{ySzvvҵsv*W\ !eM3΂]6]`qv)5]všWdB+k۩Kڕ1,o{@Ν5Ga[S^vЪ@ٱ$V2PV3pK4\S^vbk ҩSNtܹCQC_6ztۯS> 6F0>x?VֶSΝڗ[6v9o}ozaV䀀Pxל~|57ϛ숡/ y~{vmOI4o߹[.ݺt֥K|\՛S:5 qӤ@?C; Uw \֓ a-4+];wnL&yJŇ{lnУ!ڬ2}و$E*8s ?WvzT;uܥ[.ݺtұu1CZ>CճYyN]ujWưMn]DB͜wnΝά37SS-{]zۍM0֩{v9Ûm65^!belKuԮ\g՞.7vj-KVN_ˮh-UHĵV^هz8綴y{m[٥iG4۲`` CMMc7~;u]g٭s^_1da4-=?wgϺCs|TQ1IiX8ܾlEfJ{@U]mKO^ L;eЉe7lջ/áx<~Sf \~M(\Q PҡBzܫ?dVu0"%HFC a(Tb&XJjGk7ztͣvA6Xү\Nr= n3eQ}79ydxN43tl}L}~E @zZ9ɷ&L| >#*fgOa}>ᱪzG,;7=D7z{O˭>7_?jY?0%*Xo=T:I&ڨ,nzR_Ûd ]=u^kd=ט{znAwVϒ-SnԠƒaTNq2sj ~μ+*`_2''0~縋Ǔ%ɪ~r9#*Ũg|6QmU$!z5;w=T&џ]4n+ 7E~#3ɿq{vY[7Olş{2r>S R&@0jlE{Ȍj0.^FmƒZX6}a,&ۜya7s LQyV5۞YhPu424Mgۮ,jߑXݜo{;:NY6ɛϪF,/m8qEC{n޶j;[vHoi3ᗯYotv!•U@^SgZa>EoG~7++FivE]~;R3]-ݔQ a|frӯ>0*4Rb%79b0 >`:,@ icGYB3'?l(%4aC$Fv")I`KS(Wk$rbLK'T>頰/*+m|Qcק5 l`8J oywU},ɩZVwcpˡP]]Q%,ZvO7sO F/̔Z+HE2ctY͞nǃ>k-Hts∀Ȭ:r"r5Ms˥of $(i99#d o--?_OL*DTYdV[nx-̛W#5q,YIǐwY"Z^0a=>cC%"BVS%=B'd<0cⒸ5Q.irvbv-ILJ"lk?Ƈ$SOrld3BR< B,:ao8qqHS1jFS ֬|;GlB3gUy7oTM7Rbee}9*!Za1DDL,0871t>DIEHDȐGD[0BK#$iIsuLa9'Ng=_۝qώnDAX℀0Pf^{!i&qed8u]H4Ь d@*Xg p1&'b"K+C u2 ":X{ؙB_'D XЋM|c媠T˜xpDD%ؘEEg= *5?"p2D\iqDaO>$wBR9<))ApH6ޥ|'"kC/CrXs 95!0'<ĉ$ X'g4"ƙ|rLJ4HAaP+ l p[+@Ț~@t=BH;&f!l#L[xz-$B\؈}, _I\r$l~3D`"8qd蛊Φ&asI,d\,'D4F\ ;\BF4N$Lðܪ 49wfɹ&P ZVNYm jd܎Yij.z[Ӑsu4 Gd3jLu89bLK8gxmsUC" >\@_H7MMc/ ]ӏ1M\MK%PZ"0MS+i}-X%=5Db/xH`;x*r栍S4'`,xؐ-C $d%4zDouyJ=p 6 q#kjoG6ls'RbuNd]]b,NA%dM,LC}]SCx l_ua&y[ZwHVX%)!ɳs"y@5E8fExo|rrCrzoQ&?j)LҞO|"X<0c7I*<~W2/ &QHvGqc'SB_]H :(0uؑq*^%ϑS*oB8F#=+89ЅGP^@!O`IJ_ }pfB!GƮ7k{]QށQUsT%t.誠kC"(vwa v"vQĮ4EĊ( H$@H d<֙Iuw6q-OzNaUV*5Нd)xqh臤2@q+vZ`҉f_H83MU@YQbI^"c`Cek̀gBMDds!%J :u0VXr[Xa8cl{Wsb;wTC3 DB]O i<rj ÐR C1VGC5{}AC2ƀ33D uHIR@ F5MSG"MՕ8٩y\\q$I)q1/;uЫi{.A&tLf(a}4jd|J)(ҚXK3$^SJMHf$lr4{d3b1-sDIH .E}u_\bSj&Qw_2$u9) գe,XV;P K*'ITA rre.KeUk-95@HD+%f(!@=9塈ԓS 13i+SD-)5pܔ"<]rԶP B/Jr?ɝ_ V#ԋ?o< -v6L,à=V~閖ΟK#'~`-sƒ;֢='*#g4#A\sd7 u7/ps.!e]]Oyb>;b%R$&y{:̡4JW2dm̡iRo:`eU,r]^q-lέ/yy-߰uLճU2hM^eCZz!_ߺz=5ύ z]OpӚ[>w"=FLYi?NգnS~ܴvg-?9;BԳ|oo\m bƆx_ݰmmfo]agۗqY5a?<5V')XVkPǒKTX8;Gfn1AuIm lc]{h5$\myeԑ-Buz٪uW[1׵Ok6X. `Ɛq ]W]9ggsQgLynpsH5MQ5]1]]10 "2 CKiqӓ_b&?qiT]Yvpz4/UŘT&0n7E^7֛^ć߮}o>uY3:3\G "vwxxjᇕUT@1Q :?[n;6l03׵KQ=GM]mm?:g3j&k' $IC4<[%# i\ 3$ !r,%"QS~P2 PP34*,p,&-`S$e)HF@cq;))PIed(wǞ:VW|`p@ G+}R{IAu3_bSzF9c7yS||3_|_$^M @(ohcODkD mOFF>0;Ƭ/-WhRMԐf+ݸm͍^lR/˂3}A ev)+$V0pM DLaOHzQ]̆W֔q_%6kP>&43X1aly9kp|Ψ68ߏ~S%<$8@hlWh}ۨq~[]d)Z|hev|[|75P65v&:'D1 ! /T:-竝X&#߁5Zndŀv"c|Ց"9P' )c3F⠄)T/ E͗mn;dz~[uu -D󶘼yrfz7Ly>VgT"n!T,h2` !6 rH2AԧáMֱώ bR0b*jRm~rƤ#E/>8io<]MV[ zB"QYD~M:pa:V@A@c2R#ox1=9%pyDcTff)컐swJɷdwvI_ $ Z̚0 MdƒH4D$C2d@DKGL2=\R-h8*$qu3b aJ0 sgc+W_z7=f7_-֤a 'r.2W\ `3ʎ0_.{}{?޹?çyUeFkgWwD~CA?Yϡ|g1-cF6٫>yr]aCGffG07Xh™xmAPH҃w9!(X-- ]gZ~`ʵ[^yRor#cݣK C5(6vU_VJ'_F$¥GUV {֪թpd ȕ<%jœH'[Қnl$JSݬP0t59Ю{^O(ڽ+eSy֓Pk_֤EzRv[.Q~1kU]+?xq%g5wX#ldkGikg)S-ܥ˯l1c?\q\$, ;,^{f%@ois[-La^~K~g>V"!6*6c}U6u q|ׂ)/|[/?Fa;gE^O{޻`3ͭ7/J,팾#GvXӤV"n"?0 ,sB!pU@CpB蚆t]Ww.ׄIMᬁ3gEkog-D6DbcKrs7vc)̴dQ, j#iZ ιiCIę ˘@D`7o[OVf3>y{{BٱRqfF6}<~;629\a̢}{*,UY#"r΄ BgVNf us;#=_T6m@ i*8'P")֭"pn+9פ:D "R9C iJ"IKnw]>m(?97]vCJ,1NDFYоD0-uPPu}[~6r?9}m{;*Xӌev=@ს/d|tRi=5@|R Nz^ښ8ROv]0\_l\HYKH">^Ϸ:ZdU[l-KDF I_'}dȦHכ۩ovGflO:ߗ7]ÝDa!4F,%(A@@{Y|2@V:aELX!l'NN8PCkS-قbUyy d? TNeSGRhkN,œ08үnq@Q s?:X-=}ꀐDbz[>q {'&oM?xCol[h,^OO{{+=r Cyi>}7 c>}n:B4{ҍ;ȺG.ah; :MgF]k $EX&>g_]]${kmoyt< >YY$!,זH5VS0E*S%)\@`Ѹgvn EW>H)bԽ;#6f!2o{{rcL-ҨuĻO}y^uM4k:FR `F 32qsm~ jksi}S}IzꋽZϿqo_FN\viiɷ:/룻{u4 S+P-)@-u+\h4(iF͊ ae%pB"jFeRsv<Y~d`fIBӌFшBJ *<7*8"rb vc`ȒbR CWp&D suO?ahk6fvPG5-h)mo3n;=U:׬.=<+VK-_ ϯT(U[1TI‚{p[^|C78.Q$Y-uw޸zR E4WfD4AqƀY-g•1͔ۆkjfL%K3ȪvnP<1D]%j>T"%Sm,RJf|B2ћ]G*W!´֝XA07,ߩ]:4F\x>;Y}m䑒 sOl߆@{J;ivYQSi^G?,\P7R96N[ ܺNmЦ7NɅ糒W*_hV_jr?YfZC<3:zhKBXU cB k-n:l{>}{pZh h/6`‰^{Y%4koN9FfM.].{ .8[4# ݃(bm/[[ M`im4*߹:7 \O3n[}ǿ%̭) `R1] ??Ir0-H]TgZЪN*1yO.uyhC+gM#,[sg}A"|5!C7ZkZ'q?P&(b{x cfp5sZ]8~ՎynyMѯY}ho^[khan +qp_5WKDWr[J]78 ץ*FpoʭYw.6i{9ln׊Ue^xr8 py9ܪev16FOkyn U.Ma192IΏ %RO"L+)p`v, ӌ$(t5)CѽD$F !BXPfۻD$ov' @:sU}e;խ!kH/Kd;F.P46B\2XZf:Vd^ޢ_?6<ڴHg=5TxwYau`>gt1k7z!nhuۘۊmq,篃&>ݺcol{_`i ҡ ~]yAHoONT5oGA1UF@&Q]π0Q8V@} I*'a!jWг_\D Rvs,Jv'>Y˯oȿ~^m9?Ή?=㙟l3GT5_1_^mpD47Gjnq稼zc{ol͖KnEn9Sw[wnky)^C .&+rCWR):;,hYa^MX}3TA\.`юGmF\%z K:3"0+. Vr|V޴NſBjiw,) OV.6F!c @FJ#Hf8B4!ar9qá aZUh5h<ئXиY4$cĭB%> DP{k<0DPVZHL4 hо9G4v!juNk|l2i }; 6(TsZkT]\ axH+Ekf#Թ~P0(6!-EJ810z:ß>W4U]HJq&w2\Ǯ+EByyHWM}fnښ+7zsۮ#uLӫgjGg X sK팶e U^ &q5Zo slUmz+|tFFy8ۤ;FL=ץQrCe'AX 3sNs).4h_E[S. r-0x$ ktnp!MiRUJmٹnQ%?GX*OD{4c/h]`k[|̺$LruD-Q7yC^ԇZED@poac좶9'r؎ ju젲ɷrT@JGϫU3~~e~<~%C@ˇRfLB!Q!x}77h+]Fk:+/<+J`zA E di$x TA@I9Z$T*}[Q"1$E*B! 3$9g(%r]ߨלX+jqҧ+blvكpE=Qo& fs7L٭?r[O/Wٛ]Qeo͛8uW 'vF|g ) 0" "_Å\5AهWz_y'u IDATp!i,rIBS $N3ic깏Y?mȲH,zڡb8 d܎қq,!ˢVqО,}w燃G*,}X@FE%"hKdZ n/~HDv],pgmP1%( #QTw$?W1% H&-/ $HN}e@(q$-tn~ۤ u @`ޒ\ؽ3qgVU楗hhRW/h1ǫ#,0Ɲ$CIPaRWs9QR׫!x<(W%uceĒ觷f/ܹ?1ʵ/1r(*jZd!Λ:u\IY슑"X*2Hj{qz:qw߯ymZ@$r;PhW,Uiڭ:q^!XLbc uðXJ=r‘><8F1cfy1tMsDuq XfnX*L:q6Ӹ͓JG!>$T93@rk1,?SNw*!XP*T-' tH9YsQ|vKR8La rbwB026Mnyqێ^M&T"̅=4kܚR0Od7 z`0AW#z[4@*rJ.^ݫszCT|I׊ǧtb9CvOıDN?ߵ 3H~9k]zm=<5IqLNHAאX\MHV"G^ʞN'~۶ J_5[*x[2,?z]JF: UXى@MsZX=0TYu:kO]Ǩ cp}{pG.d &4+C"Bn$閰) s$7;pζgrY2{AGrs]1%5`%q[! k|Yi{|P2-?@CGVDҳk#ch]H/morAW~)yy3[hKҐ!V^EضXi^]%9 :l)=Af: g !+^~ջRdCI8KMD4RP0gGe"4̀tJ_9 k fmh9~3 U;m(13g ۽:. 5#!pAxw&&~woIiP\F-[FIA7N"H3VO Y M vwV? ;\vݩ}׽tGG!tpioˎ+evl 0ulDyYH( zMjĆ7A([>Ook 1×Z99[ GeّY YeLZ;ox~߶=ntykq7(L| ]Lyf;o;"uhOQc ݢfgzතGDg78났H]Aܰe)ٺ)eGV9+6e)~cgF >+܆^%xtaZTҰeکܰ]%9Wd}E֠}K̋ɾUNYtcֽDv{> 2i=>ek^Xh(-Rr@$rThݽW~Go~ а޹od]>E,}pSPp8hfwl牊`qIT;P=\@ -u o5sV/ rqR~aC=Zyω.Ԗi;:;*kp`Nl]"$! ghH {o-1/z&|jgZie"v3\qIEp>ask(dϟoo8qs?~Zf aS?uO.'7lբvR:&7hszԲEi-9EN~}-z7}r bŁ[Vur!3|sũ[_[sq%{yj)F\F|)PLVAGxvޢXlHr=|&~ʵIJwiS åQk*!)f}TKB,ɯKA:rghrYhhztˌ3'*e릵O%ϝEn~BX}|Yn#]9_|-xMIlwG c3]3 ϯ."}׿veJ͙d[,ۗm}a $JcMAf \{u+7amm{$>;! {ϓw{e}->k<%P_'Z"5޿aÃ4=]'OkUVTo"E 0|RE֯f@<2rikPzp{jqcdUX:?7נ9 bɉJ?4?Cٳ)ǚ>bFT(?|wX D?i*Ż|BH0sH:];j G=}k#Q~tˢEy晶l\ [ {WȬy4 C_X[0L.|c/Wqſ{fy3]^T2f~ԣf[ i$b ]aQ@ IB$>R)]HhJ("忖E5YZz|TQ I{: hTi)N!JM!;iLT*A@MȞ[E~Iu ƹldTR余ez07y^G~M"2_;X|D8 pi|4ya߇71xQ;Fj cC`WƧѠ2j9 =ΧYѶ/<45;B73{YY9ct"(xsK7=P$;+oIvdECg"6nv>CQiҶ%XJN_ޤ5]UM8C:p]&%001):7w Z;5#&wAsj<Ȱ#۾_{d?e w]^~eF;_}'~0qO}ђC~^Ʃ Tp5ǖ??r #|ӌ~Pmㇿ>b}8em*UJD"3D}9TL(铣3y]_=،QdeT+3 /3fXND#8OglЬ'Fg>ϣ3GObM0.W}Snkhk_W,7 qWG j-C'V "{cHYc1W8HD 0=_}tƁDxY^HUYbT9*<6c)JoLt.2Kǔor5Iz'`9G*K*ˍIRil,yJC5n+&وGM&(e!bG1tP@aMMT9ޯJ4_,XWW-5RqL$,e""iJBIe ƭ9gLJJ8UҸe7_9-A*B#vG}YtXELrlpU,'clf맡{<>t"MӢ:$(.Y8z{$ia,= #,i.@+ux2u,-t]\V %zf?cݘ†q\9u21Rpo;zh-TZh'|s_n x/yXl[EpA^#uO;?{kYY-?9jN1.B ̊crQ Ԣx t0s^ǭw~JWvخ!*=VL|OV⺘;@JQ6bW*h*][$Ȧ:5~g*\>C|6xX_k8L1czѶ6&+YL A0NDiX)$zjd q\:-,&$[>e'|?BiiW7 C teٙ/sؖϺ8 !F5;c`\smHS*ẹ~DQ︅vMӄP c H6-lPltd?vY";!Rn4G;x% )6j\uPìAKv(l7 YH&@g=BIX Buib'&\d+omK/e?#Յ%b -"{],mϡC٪>`r?;sZRyg0:' (ADБY㛃Ar5bcF'v%DP bJU)*'DML՟qRL;4Ѳ]R-D?&Mؚ~J?@(Md*$zrijbMZAqr>ӌ)QH8bb!Bo DNYB橧!K#I@Vr@SnqmT={MeF l=N`3!1Ɛ!'0ML\WF(~ L_Ivl`e RhUWɮIqLл!E{F6C v8'3Pxφ[ jF14tCHJ!%CƘrc3LTqTc2 @ގO2Y+ KPDޣ@$GoHP2>D"HH)* wrq\#eɡ܌Y/AeMY)_LDÍ2s2qPjLVVF/FKf|.X4u"s*̊?Z@;ɔ8+%C% ̅Tʺ ;o\jF0?]qxY5p45QY5OOcs#\Dr+H#TF TqҌ nn 3iz 2@fEp'f$VMJ__6D?Zg 9ƨ S;7ᶁfp᭟ricrC>sj#J)K8ɍ02GEO/AiH)=U|T{C7ڧOuc]UTe W`h̋#q32NB!$`p3l &!RYȾeB BRRc pظ֫cs}ur݊˵Qtp^6@,}mu?⼇JwR Γ$Ϛ@4cqgsqιsc]7t00aOnm뺦3DqMq@ RH5j)D{R aTdê#g8Ou=)x/6z ~*)&\ 1g?z㻿X2WClq4M)yyHdGW^,ʬ:p_\nv߃tqf{Eln*jU@n*Mzw)"]D. ( Л)$lcfwgk6~޹_+\\߾L+? #d/8jt7}dFe\挟*KƷfSmcH{b{ Vd8ۭ\EQѺbeY^D_Up~ȥ۷:aYU*lVUfeX"ˆ[.'wiFۯòx0>uNٺ݆٘zADlȻfnSbƔ;lZD-{ǯʧns 3("سwHkzݝY"3c >hrt͟}3Q#ecg\;2Z9g$}ř$>3oް뻘|DsAN_CU|ː^Dt`8i7;4M2J!\tTGó3/ d/\柹4 .RmW> 'WBhvr*n I|q]BC+8dY#Q_"ʻ0bRBed3u-> 5uMٺ٘LaZ{tyc-Gwv/φ6?bՍвI7_lIƸ]ck>^eȞ%oҴ< mR|,Yq ȣ|maAB~f8d*Su4V5|Gsw[&MuS0|ڹ}MS s#wbmjQ?D \FsYGuSF5 cZ E1d9ib3pfeX`]Щ8^Yۭ^Q)Q4X&*H*Ớ{?.(vŒ?},{lTW=]v`Jun*\e;f^u+ruS+ǣGLLgqL*%IZFգbsA8J ,H Y]Y^m@Hś8B yĩ$@ ^O 99`vrѐ-;>[tLA]K &*Xa!a踨LA]Sd F"Z%T*El1bҏSb%# @+w%cZÃۯ66YiK e 6k %|},ЪyA9-JaCD/W^J! *עyg<t¹K ؒ`eDE>9y)ɨsd5lsTV9UՎ%Hi _ݿ ӟ~75"-hX2=r3NroeP`lr0Ytp;\TPr9, Yd(4(rKD%%MkOvLxo2z3clI0q s=4(z .]<X4so:fܥY$<(Z}g?;@\~U"tT图~=Sڌ~`5*TqҫmUsgIf- F'rle)xUe,kOOxk2fܥ1$y]6{c@tA!F k_B( k#z&-(hGsOȓWZB`e(㟟3g-ĵ{,[Ual loWeIɦ] @ Z{Ak;02j Oΐuf0 BH# D l d,2O,t,[-CT BsN埦X x+{|UN"[5 TYo?;y` kO 2+%,>4u5OO>z>{RxΦ^d9eh:o?}쿨7cV׺ʩw9 o8ۨHQ]Zc;[>e0Y3@-B"E3jIn k Տ n?b;8i>6řnK5>Q3w' jZ#@ 0VP)9 ,+Q( "xD(^edԪ,t/$s]Qey@DsvĜ$UX \X9skG yQbI]&aivS}w r6B ^0,0,Xn[. )_L'r;Zhn,]hN|#!ף6ws? >L\EJ5ǧ^ޱMzOިN"'EZ[ '$(I,)G%ixq5`kGVvfuw͐lw}:Tq}ҮK3v]|nWٵe1e}vh?& Ht!' Ub)*uWtnsNS ؋k'SPo=䝂f՚EH|Gx]f,d(-2X*gc}=[ R}xR8OjH*AĖ=w8Cv̔-T TY1'v,=[6XvoWR;ɾ|\Λ6q9؏|ׁ}~noT=?uCu\ *ZOվNLlw}:Tq'M?/?S!2ܪ,煪J{q^znĥ;ԡuR0ڷt/貲 ,NM!_w#+M>zjp47Vt[nnv n{N$v*ń﫼rvM5> q;wtߌ.cv$/B/׊ t9RGZ)s]MtW;Vݽ{͎ j>/۬ȘXpWM>JQ 6u8kt)U61~{|? BigJerK  `Aұt  ˋcs^k) ^}S|?va]GggĄuؾHt_ hwZȄ.08,*q1SWT;WzLe+/]kǶ. PjPhN޴Q㛝wY?Tq'ҩg=yiK C)/*dl`&A 2&Uʆwpzb+g7[FRh|} v7'af5|/ds[Go[($nx'm+=}8h;yτ滁AǦu>}t -e}֐]>R1k~3~  *㦮ωkr^:`k۲b@ `s, %D È "q"k"e-Б ˪dXԔ'DU<_qL*ClP!\`j!mȄh# ӁOπRBT( ʸŁ(XHK]|'DV<"Yӌݛ_n"BJ?ZHĿ2 M:6 Ⱦ0S\'܋3쇭+Ul\ql"'ž,=[^$T1+\0KA3a7R͈\Gy![I1!o*cJ7f[WfZy#Zx%)SCgDʝgv_[{Kg=7umf?v2 |?H(UhzI{m>`EGGkkcI=փ{9rYcxK~u/֡{pK&wm)Ѯo*~r}Y1b[Ƶiզ ?}5tiHԧoK4zb%c;X=*7-]ЯbüzUoZ&+MJʢ#NL53n> WD$wCUVWwDXFH"C A7H#_$s-]? eČO^#o=*.Feh0+#mTҐϕɩ&>&c:9r'tòTj|kSB-=zO|CMmPW:Kل ˊz9+1V+4 F`]Q9KxC2o| bTXRZ0QnfaBm)59?CVo4|=}6<38-`9jBt0P(w;㐞Zmt#c.f vb@]fG^&d˖)[ohsGˮyܕKS?[nɻw]9,L#AԡE7@P(X㥢dp,X1 PFt k fMm){)QU`$X^lýjȶN*T~_ry vj.A 2#puxU`TZU{2B!A^E ܲ} b$'.[ }g!z-K@%\$+;@z sj09gקH17w*vȜ;/􉅡-mˆlȇ0?Ahil\:dcz>D3`FU ?]$AM^X@u3v6m߃_E;=G~e޿hmMn^j1^zJ 1$?0wP-.[][7^n83$u:_<֯jfFo]QH@Vnlk[唷%,z5݌N,wMo=@Oxm RsowsyHZM]Xz]  *囦0KUiW0 %ȬqpGCG_  IDATA`ilf@^jҎ4޴ϲ0c,]j3xKee ,cF_֭R89],SR/˾t޳9Y -EMS՝L="Պ?!0 eޯ'0 LՇ,gѬ>BЮS4CnOn=Hg8R?@pzXs;3sIr28`[PW=oAѹB+)Yғ،un(A0?2Nχ:a~l T*d[AdY"@GFTdQ[d$"@_d$Fda$[yDE)@dé؄ n2#_3c#ZT`6rn 6_۞vƙ?_L*$PT-)gTx7(E2ojg*Ren2y@ы/R$s!Jr%R@PXad wd1#m&Xݚř{'<2}kXă6W<uF7[ oL6jbEJ͙ওV RBO@@;l<}qo[H;Ok+#(h "HBFDx Vy"ZP`a8c,ga>SȨ;Ub&w0)v/pje/,#0o T5U<h[Wt Urd jXJܛX5olᚁ1 Xol$SuϺYW=k]9| ڼ߄=E. vH0 ĪᲠA*f&Y">#%͎X)悌TЙmb}a'Nnwei[Xu=5$: V=f^D/Ӏ|l26/ʎK=ɶ<@0͠U3 CvXDj߹bb@r>CqaB>t0ںثEҢ\elMl|(lhpL>$ӹ* W'f)+U dE%uՑ S(Ca{73SR,c[]Y1ם~\zm+Tԣ~>=c\ @L3zr& FoKʢHcPU xu.ɱŲ>o杍-mZCv|R.]A%,#t6aμy9_5r)y+( n@ۻr$? Tbē34v#Ⱦ}g_# ,pg1e&dCp~W(t)3iLj+6g6_HT} I0VU,INF F-!ԥ}K#@ĊOr,FN9m<ē|b|9P@Ј! ~lގ?rfw#FȗWANu:9FUD5ӎ.yf=Оh+r>?)6? >O]ς8`~~t=7kjIwGI!ڜ l3iͽݠ+!?]/O?[l?)xGHYf;)jZtN ?p7]2K$@}},N̆e켭ԨdͱpZ8$(IBF#lxb s9k|eGe0N;De r6<_-ʷ(t]il U7VhѠLy?u< >=|C5WbYX^6"H``ЊYޜ=tcQn[kF8.C=ꯐɞЧϗ)m6c$\veUö~&>ya̖ۥD[smժ kFؕ؁X$$UD`r_I v˭RF5V\[jхøߜݧ i=ak rfDVa0 QGq!OfuKש{dK~?zv!dg90/~խ0.+QF@(}4J̅&"BVUi8BY&_{d}|ۿF_P7Y B@dL$ 0>,@T` kPZ g%^RH臨E#0  (Od~rU0ͬWEgPxMCȨSAe\$8ףܭ凞s1Vk3R&rT SP"/?'>9smlSw_r~Ƴ?Q H6(CSޝ19:v GfyEK&>2z4xBE2)`?8ӏtb .*իsfic|NE@!Co&eoYA̅o|K (sjW;wmVty7Ԟ]Ocީ8[(K 4oL;w=]B"ɲ֚%J+B˰/d!D7F|*CtXJL|@&h\p@<+TJvJK 1fD~ʹ'œ?vcJ.PJȆ^fwڲ—_143YT(e% Q~!`|>;. _,'e@]퓎a)V/,Wm3UV>ʡ-WL\'XR(?voFeTWL yƙy$P4 bR$KMS5x2sD Z g⊚V)t$0?uO;I9t,dԺ؇l iyzFHa{ dI\K|a Yɏy++5$7qԨlc„ԩ=crUx2*|apOSmHdOxP^CjV[fs} #urE\'3<G_xoQAa'SL9iJ3D\QC~z8:aL sGS󳥋\KVmp@GmoXt4_Y}i^- . QǧN?r8;UnPBu{u+>w1b;:ʓY~<{qSNI&UDpJ9Ƀ`*0RbA e F fL#ǫj[mGO^ Њl)AZ d|PhvgAz` #_B~sL S/£\tI0<}fb rM?_8o] PorMV?L=乖[0M%;)첂?N85(нvn['daۉy~:u& d_m׃>>dfDd>7>~П_*}2WY)NYucC*>Z2e?K+$̛F%([%uކ; U) _\{1߭}fT d8|GOsêLoR"8M7Qlņ1\Xf8nln+6 >>syl@vC%>ߓU+tRs+7Kg콚ߤI9#r6Kפ8 #: $r*(2;(Ⱦ[:xgiTA }J*7WL y0lM}D 6=cҎԠ؆ܙ1wh=r ߠ}n<7?n^Sq-thS\V⛌O-C lcS%E[r@JT QSOKk:jDe uٚ,dٿ{n{jB E W >6}_V([@Pɘ2_7\&c<oľV暌g| ];燀seqM{siɨevayr YU͕>Lk5)lVۧ\R]^i&V0jE|gP#RE#k7?KRӂGQ?Ҿ}-d1} ?1cѾ;Dٸm2fD]1eMhw+WHn.Xe,`$$::q0dLe̸4}/H6ք`L]5g~Uti>gNx}iɤzj/(dDz\oH`kSp|&[sR,h n2j_FyײIO?1kzE~9?͐vTĺhE_rnJ^v}5ڽANҽj  }d޽9J(  Z!> c,^3PwSό%ߎ}R|T!֍}ﭞURuBtk8:"9Sؾ[Z:2n|Jl4u< h-fa8֔|e'`~{`nKZ%d=>rft+ -yryFr#1Vx]y H:D$A!"(`4S\53|G@2֛iU@d^W\ɔd0_^C ^;hTꞺ*׀rmsߗ5N *1gN;\=޴ey;x7CEkַNۺږף"l<V3MvP.ScжsҞ3CgOX} I.Me|X<7g\=TuoZɂlM0}CXS=9ēnr%Rs2b_/>qWp܄)Mi_u{K'-/6%NVb=07/މt|45'M{lb~+|NO q)d^?}۷_ӛkotڴ[N]G=SfΞt i=<7yҼP[} uԘth =aALs&|n *kX|m>h[\!P/)a5>zG JeimqRcɧċ3aWbTre~'.˝ &1O.}_Md 5+7O_DnSLT:ăÞ>AB)XNLzK7#0nڽTRM'Y?HiJR 9Ӫ!?쯬ȹgS<"^ӛ37ܯG;:j؜X@4B6I`Ez|}wb;sZђ!+' cv! NmWa7ɾoƘLꇊ2^u}!oV^uYgww5ʇ&ʍ'Xu$VY)N^)ؿ!regr\%ge9eP?EH\Ubw]].=e-R^cAߘaA$ v^Q>'/NYI|DFq`K AD2C(\ ]>Y=m<]pM)8n8˾7]>Tpt}6)v4f߶KMϑh]%D-ɅVrW젽AoUQCX۷|C'h/G\`sPqڽAD(jˠK+yMr^#?ΉNw: raf Gi!pBYI JZSD^asUX[䳻6ԁ2=no{OMs}29Q`zw7vr8*Rf ?;t-fHa,+Z#bXdF YV.9]8!6t_tjgd 3 엛T4 ^8R!#nNw K< _偄E?mݝ0~>syz pUxܮH}7k\$[wrJbj>ar ILwPvD^_jW{8ӉFtw yrtzDHsnN"P~ݜΖN.A&\h~$wrɒNl*@$TSdąlQ`S " -WJADi(E NWr֏utBLtTvo{bŋ.>>o#!yDK-Q *ZY5y IDAT,4@HLDvȀJP֐d'j$tŪr.$E&B9+Ê*-~EF0O^$JXt/ObE 9r{+ړa Ћ_8TpmɈK^mX D^.7o^*frs(X M7hUF 8=]-ЍJj<$ϡ(rݓ;ۨx;K!N:اAob&tt,Kh3 pȐ Pv.2x\Z}4 VYJVa*(ă{Odzur5x"H [׺! $=e+$':8壂BuFA-תM[t-Bz yw:&8/!5  mHH:?'joL'A=iHt[ٽ ʊH45yH8,r[;ѽ J. NGŅ57`! 楡%OY6^QmBO;ɋ<*-ѵae[Hn,1ԝD:% sL߂b{ma=?+A܃MEM-a*DEܨO%MW?/U rwbfw^\"Crw]5?z8+ AtaF4HXh02 o28rAAX!ib," g*RF@BVP`7 xȨ5j0KXbG)qӡKeS@?Cȿj'0l.:5:XbyT}9wf^<׫{?)úeӡT ]U V*PJ oMM "MnU& w`Ųؽ9W R(Yؘ,DZX6ZWP4Z____PZAՊA$Th|jZVVXΰ_)y"=FPDQ2P՛׵5׀_E( w 3n؛um.Q`V?9gt 'CY~sq_`aL/w_qβ7> .;qGŀ?-o( 7>G (5ւ7{ikrʈ\lar7M0RIuRup5M #]f*ї`"zm|6Zs~Qs{s9YKrK?B3ο0 lD$ ~vm w5R. [[=">׋g^l昱aͭRmZUܸ)Th&(lNdXB?,uO7X#,HD+A,OKR OM3Lzrf*> 4\`#e=Lm昶FA Z#`eVzSlµ 8B&dTN]r}Do]6!74:bdOE W^J̼۲=q:l_ZE ݗp>}3(߼_6%rҢ}8kA&>߀&PFZ}IV[9ry+?SD (JugS?FJHLqJ8ÙNj+?\lhj|u ϖX4CZӋNEi;Еj)ދ}s| .Ɍ%Os=4(z-.#yvLx(s> F@ kd$XhB>㏨FѼA J7M5Fu r&o@0 (\m&AN[9FPn^kݔէRy@mͮ3f o_5b<_mfL޾Zi7 /~>8",=7?"cdJ5=s|龤*b{UNåu50[gg:@ѡ{|[?!mN 'oMn0,KBT\c A[SzZD[ۤ^F ^Q -45EWpb^ǐ{tQ"/2& ,uBΥ/n-Q璢O-[-[ 'O'*Zt[a>#UK~ieA`q-Y2;'rY]̸B?Re~sTLR>Y /BJ6ΌbY'+=,גѾM?%!?-U~uZލ6OuM$=\RV=ӹU1&>׽6w↱zBՍKNdad;K4n*b B˖~g^xx!ƥ}uɒ*]JYfvwשC'-ɖm7mЊNzjp0aie[WҶ~0dɄG@P7[{zxGRm鶌O٪VW_}>d!ma[,K&4~{༯66}ޠw 9l]pO]#tUuLv]*e흾s$.q_U\35[!,#!4\MT{,q~\w(}}AY`1?|#+СRĬ[j'2~|lq5[>94m nyC3]CLUEH 'Q:kC-RUiߵr;/ś aɮ?wXmF>b^XwX%1Qyfv7=$ E ^Q,4(("{ Y@)*(ME f-3yݙ&{<9n?,RUL r鷷g.#lX牭X蛆DċW}!Z1V^(v{K.sOw+5͛l*O3oGm:DWY@ Թgcw"}90%݆E 1@WJ_8:&q]N,s޲A f60A?7z W?$Yh"RoG]CXм_ _㴃7 ZRI[?>7$70 d$D ("vd^r8g1y95ãfE!"*B}WɲG%Y3bþco(\1d7. < } s ^rGTxC,`L%m#1TxC,Y:rcsnFKvˣ5(iʢz^Y̰|jQ֝olv 797vo]1s;z]yWxHGDtʞv3j]q,Y O@Mn\ݼ,l|ݳg:}pS֬vwxbyCoKN` EW  jatG[,'Ήqr_uջI=ao!cLA) 51nO((\9'7X)hEQl Y ] # @@I J$I=։cfpx˧.zY^`|k֎OrYFPC^B8Hs; (?9vJ=ȩ|E\ڵS޳Qŝ{.zE0;buJr;@9]оy`7k1q ]>q"DYD٩|@8G /Y{~%Ad7)ĕ޽}GcoL*k[{{?2kSo9tI h֧O2xȄuDi7uδΩ5C4R7' YQ mu| SLNIԃ9n@Oޑ҄cA"m;pr$M`GL֟+n%rXrр7/ ehOk_hb2A պzS:DT\;7)*+~QeŊT2_}2n,a8'3~ ri)ɑz G/E`л VԻVK__3"4G ٥->yRKm,>Hxw-v{xh뼰A:VGX44Gna%=֠(R): ~pl':>KPJdZbUa GDԗ2ںRMI Ϊv $I%Y9IJv8L Fפ_4Pî cbp㺦"PW0s4#,IƈX 洚*@1,0< כoґvmPρ߬2dz r _9|$7]gVÛԎ2(3bn/uB9\ ˩JU5Pfoyn$W~|B=U`2:h&ł#ϙpל~wڟh &S򶿗s˿2?_mF/IP=W-1 +djUĎd.a_ժym D1T, JS}nʲ_߽͠_p$DXCSX'?ȾߞBC+~8&JopKMf f:jTOWG/HU'I\NDTyJ$Ot>nGOcqXp\*9ǟ*< IDATobZVK^z_%?BDF6Q@@@%-\V vh59 Yѐv9% a`W[oћ4 Yf_{:<񩗖;2u3px>w,M\CI= hFZ5 9 ]_HUȮy7]wS?=@]Z| (wQrӕ}Z *J&sYժ1@$8  %ĸD+6蒳|Jh=p}n'j?Vz̑.;1ho#]̮ckH>Iu;\VWFo}io< "]m)XETƩ$Oy(GۅӋP;ﺰap*e4jP\U* h;QnЦ 1A %2Cy΍vn& ѦVg>]v=~ţ7l[jDٙ'5=tsyg o=!'_ŒdL䄠Q>ѓf`5 :t;sdTi+.}c]w?ZvM juш/: *۽ r|0,Q[D䌯?:S64_[vɑsў% OdUz. ClM"xnc&߱խ\{Ii\CH!m;P]hlmj; [O| ixKڌH)]^N?%g5ʰ5O%&j_Y9WUޫu~7I) 'Bje$˜0bc ;e"")iԩ۶?|EՔ^^΂"8d$* a -ȢDBQ1N.RT CE ^ad@  @"DETAQ*TFeBQ`nQX˛=OtvIG7 Ψ%6|`9+诲բ6+*ߺޜh⠎43A3 J~hҠMbFU"2K%7ji)ǶISXEzim_sPţt" ?p=2AP1a1Δ#0D + .Kkes&Je# !2'RDA-GبNt,<MiLn^\_Ps;_3mSc@ΑxR]%J#(#Wem%^Lo'*8(Zd>brԫ!F!B&nDo|jӝ䔽=aMKJW KJSceY%A'/˳CtBTw󮇲z!x {tsO/Wߴ?kw`?!>jnZ˄xk-D1"n>kűҼooRc4Nc㖞.*Dz4W`>< TnW_ ݿG T "ȵCtbdwGh-;RͺF|*B2_BQRxU8,I$K`UD:cUx -C[NPg9VlSpo(,ˑ$yDbmbQ Dpa3~>X4XZx cr ֭((oırbq7?ErIb'ehx?ֆ 2):a5K+ {3Q~kY辝gRS˸vNv47o:Z{+l*gֽ^ ۊyà>^5,BHBhukOٹ[l?t? If6^$=$\ cnTW<.y{%WB1L 5j蹜QY$["K(&n>/vVL K͡>[vDm(*JXh [%z.g4^_+> ҎF׹u, ZL1%vYIۋrX0AV?ިcg^!F'%AY^^AE׌CU<ոOh㳯m&h%sW\8o"yENfV@eNީxW KLlJԥ drJ 1^ zpȡ[f-ϾhGp|DܑfpL?R2`)Ήus=럩nԹELޟ'K ` ,rro("*&T4$dWtHvW8Cq{S ҇n6Qb'OoKg읿6}? V,<顋+PǦm1Vm_~:=>Fox3=swwm+nYry8`oS[o勶j>5XxeQmA&O]Rw4ʼn S4>6P{koI]5oWu>%4`^U]2^c PDW죔 -ϐ"5 7Y;F~rp_gKGopZ)wdqz71Prœg~}S{o?RG%>/N5,Dzq˿~2Gr=YV'䏹lu?M\7 j,Â?}w^~Wo&ُzn֋/[uåUhO-ޘ2kVtzϯ +9O-9]%y&iߘ2{cJ\pC(*1K .ꩬ~-+Y)>L `{Ж=&?dwWv:jI<Ւ'0ZiBJWkũAetBuCP)KAs4A3>o5s?*}j8Wi)T5CGE&j^ 9#$;L\X_ V)EOfcj3)PO=N(6xha? Robf?'j cQ?Hj]]KNH#HeNiI0. uOrb>lsi+T+HsWէXf^g>%btJ•6Z*_jN+qN11d6nj-9V+ڽ sXAΖUڬrHG?+= Ɛ!y} ᥩ =3! WjgT=@U3#D^CZ?$܂/F)wδ%aoQhZxʰH*oo>:tCN9X9@֨U!^M 5]ڹlT(Y5DMּ*W$CP'Ww,AeBcUʸ_aP v*+[FXَ6`7KtqEFuVց2/ar; 8up!6C:n? #Zl fP$IH 9(ĉC%띈Nh5)O.b"jK`aQV0o,~oMXS`5 Uzz?Z !ÿԇ( IDATNW;/W{.fn?(<k$ā]r_Ad qHKzzkn ܜ;|`2[%QqZ* ׻0uD| \ z*Mx.XmVQ**v0!] DFY/騐!jQ0L)ry*!4o8wJ@) # 8sͫ>]C"+, h g}A;p"`f^< )eHõ{F? ( S}j.U6Aodk^jLw1vƇ8H!'T1QJ|:ՒM5I 6`$UPx|E& "nS2^ivR5*F1d2qETUD8ceM”tc_P{Cͳj(+ֳn|I^T) N^K|lk/b?3t0Z&!/!ʽ$?ŗW~l٠F^.[6Q Ӥ*|^yzu\ isv7aiȧTEB#1a(sHѫX2GcrsNs4KA+ OPW ^V\@Py11oeKlVxefb Ȝs S'\)ЈҁBR!h"\ #UhEnRm@"F1Qr9 ІhS!)rkI<1Њde$Lp Hv7GAZ-O=NWLQwmm1M *fs'2rg3#e`H mT艉K"ǐuU3lZPaBogJja eED "pNV< TEJ 䆓V ٠<wFX։Aomߛ-:0P_}мIH,om[$r"#׼V=""/DakR^,1(;W*B6/^׫U~".8z}wƽwڃ"ڍznB.Җ zbun4cbvj9g~)& [G [v'CFɩbIVh7'{رQm!mOꢶ&wI$B͟,wv<~#ڏi?ϧ_wYU3 ku5yxgZYw0iOG=?AgX}IYc,0^:6)Y ]RǤhswdYCPAKr3&h)>w%wUbF6h_tv|Y vҒ +'$=@̀]-QaeY\zAD5fEG=j]&c0}t/aLE$I&!C"8{?8{R;d0:u'%ULNC2QO"P@*$ b S}PD`3E#EfXFPDD E$@-(\Q"&"m6^ᒈEUNLL`W'9*~hT5UCI1\l)O9E D þDz] F觟nj8o}Ld]C5Jqh(ڃb( ^dY9'De!5old^⩚.\׫߸>uȞJ6+~ζ=dx vW~pKߢIX)/d຦MPraϗecғ5+Q'1d[E-8aw%>Xo!Od)w뛣E)ӄ-'kKT3e]=YSL/_)3>3ػ7\6" %lPpl]wqkBz>x&w}7>.5zE7$K!o}غ_t[Vő5oJ"#i–Ƞ_f\2nF ^kpY}uo,Lty;S?G$tS9 W ]2K~h*u{7g=OS[W2~B-;ޟ2$^ҰH穟V2ɚ;ߟr{kj>z•ϏMo*H9>l`>CDvS_P;~ܣJ]Y飖]pWegINwz Z"3*e.C{A dd. Z]Dpιr(IFW>2VL \Bc(\.FzwMZv)$97>}8*?T3öyM漂 O̍UsXCrYe.F2̆r9Ec Zx {Cs@2]I Ȗ2_G@eD A4%5 +U!f*AI"a(B4LɁu$mf !S3)t09e*E@UlP뙬XR*+RD)̍R2zĕs\O CEj&/TpղUlu@3Dd)I"w7kh!W!^,}뇫קA[t Ow6wD87U=ژ&V.0W~mtR pi !e c hȸ񹼐(*Ku@^JKBj6%a'VmŽt<]d6yr_WK-mwmt'|yv޳gC;/wkpt I5/ ׽v\~}$xq}=ԷN{8lٲj 6i [&T-)Z^{6wpݷj>uΕm-g2%*OP_?&t-dl9壭lZ@<~Ƕ\H8,Sj]Ruo'GnӬfl_{OQpo5Ϥ{tjo ӶѦv"^;s?9M+:6_gIn+cn$N{ ۗSe< Bk*Jl\+kpC5}|SN 6,-﻽^膉2Qp쾁M ~u͟n8kMovIxk׎‚rxK>bGgOuw^ M~d|M݅SOs8Tpdmz_ n8km|}ݏhX?}6)5f5k>=  xM Ew/퍧-(b`/MK-tIc}]fϻcn/Y省Z#˵bn}n^(v{KvLlj.mE@מuU~ e$!'4taԴ8yP_|hꦔVwT?_^Dk+kϳ%l=}7qNVp0**3c֦xa_^|uȠNP/ci6n{:2 Z+p\Dۑtw:wHf mzgݐ򾛇m܁"%GT1d@HmD("+HvXtKdP1HL@ʣ).I(Q,y$*=1ճF1yk]DCUT#0XGUynjJaXs,^Sy0% Sމ8\eY,e% dI.{CY#B.˜8qIst#j'D)9q"N)@Q=NJV¶U;m P 0eebtٸag/'YvOHoIe92s ."QAQEQT Q/岌|DK n'D9 1H_ʀ~f17tJE/j㊎+jҮb .s 3|[/1M;%99]оy,>SоWH׼c}E5r&^k_ u,w;"v{{\w܂kb>֧#s{Oy} <.qbbá/Ƀ˷C_{$0`;zjs[R _s%ʚ<ŋ.ۘ]HeHG8PkMq3~V$}kmģ)Ai54cg#r^)n]'>>{=3tu20WWƗsK UCMpKiaq}%$5}Vg v=iSlȓ.x QVѷ=|Ē|;4KA#*7%_[G$Fcc~J޵SbL9g lK,)AD۱tΆ X훇LzblVgy0 ' MC&=1kk㫳P}l0&1w6qu]UL ;WccqpeqcK\?_xT*N~2/eƌi^,ۖ|I<[׾ÙG9J8Z˱jv57uzS> (ڈ#/}PPwԓћ1bAlg#f|ރRsߟw]޳r[7b/ qy bT^D@ }=vh- &ki{V7|ϯo=r1&)*Xt6{'yvh a! @( .@"!Z\<0G."FGC.XWp*BcZJ 0oIs_KIEE <êxRl9@ UO沚*5̿&p}`Z˚̊c|ֈZO)FHTI+8G8&pqRh$"E{k]cHμ_zjHO4I!# TeCZ/G $i` `xr:Wo|bZ Ǿn2w5)?,7w5>""]7}ԁMMsȀ_r1&( Jto J'3Gu'VvЪңt u]C$az@C_^},.ٝ#L{{'WpoۅUOG/W Oy(bۅӋ4"؟lHv)wַ_t\kIiN86sYd674tw&Lئ_ߴ#݋Ks\]~G5ے-u&#P=-w܎Bmj= -O|>Oe6OX<+DW *k<ᥫq-[8(NLDvW6&=Fm-4J*2A6DD _x4nۻ:O^-(/&;mu$-F"auD$BwD@8SקHF$ 'a$8< C}F.!oUty8VeQ$˜ T>"6nզ੫Su|4fQP R7cE3Hy<C&|%94r08w˯Pr5]mt!#cEPހPպ _tInCKKp TJ՝V}s*௭CnmߪC dTx~$${f{S@3J 2D_dVm-geTRչ4pMqd>0 IDAT @1B[lw\[LrP`_uiEaw_V[?Nu.@L yY,H=6WWU̟f,=kTe1:/ԫ!}w`նZ3B7iD"`7 (EJQ)*ҥ*sr^Si){{oٳgWriƉ g='PQV!آCu & ]2`)Β#ܟ@ νJm{t5ckŅ̿3n5(1(k<1]/6x{!\<4c)gV##-"@ޠ%8^[ %N*ܫV,TC b! :7ԴSoL}gFIC#G^w$#OCV`X\v`H&gS֩xg^jˎyߺOe-Vt|OAaru@M%ZˆЀDn%@NƐC " +aPB!9Q !ĀC *ejR`Jd"s;]"!ǛF-T*__[nOIxz@:xoa,mtEl h# )BrB+з5uy"!1mmF 8NiD MJ9'-rB~1( mC)o]'A RHj D֍ܶ  w:m5wD{ꣶ4zsjq%fCkvB\q8p;E@F!Eޓz/[`]a_f|Z7:'BaXTp ayNB>.Iͯ[=NLN*S/m!>T{*aPY,)[ =Ƣf4q$*-$2Z5P`>Yи9t#T5 c!dťS5̛ئ1R n92x]`;?H:i+VMòܿ!*{sRcVM²`U "9sl*\ޑrIޑ .Bԩ(lp;`Y:@WѿkԐv0NQ( yߤ E?8ӯ~EdjoÑ+k1Y'@ :dK%HA~z!C9=/DuzJ0!<4(bfg [uȼ1n o'7),znPrziݡ# )䯗L-ʑU2EFqe9[Ĉr ŠCXO*Rj2~rfdH ڐ)SN 4QJrI {ȐnK~M.ڢ_Ϳywj^~zԠ\2 Cb֊ԉ45~ƶ̄t\|T㠩MəK4wYKTDp!U֊0׉25~!YɹHԡg;iWn=qȩ|O(]!n);IjҞnr&LSGۢg>Iq8 ;9r FͭߝҜi;e߱Gs_nf}cŤO?EMn?N$*~p+΂|KHrj*懔,lUW5[>6ꑙoT;~i>JYZ Z?|1} }u Aqe[Qӆ^O8~DlƟ@L×{5p{ ]7vmK>j0?R6|ݩLu|az5q*7jQ&Viи83>)7ӄqo9â/2KFs˃!#g&$v0ѭ#rvB/?T:@8wmK>jڰ3K'Mٸ+΁T0: $K;NQ2_DQ?|uNEWF6xg[3mX~E%'eLtr7>vw+daX=w_JnsϽ0p&n\>|5odwY_̤NuF՞S3X.'˭__ yp`xjJX n ==9Iư|793o'͹L};!{G:GD I ozZQot}@}s܈^yj>1Lsx%k>I:&hEFZ )0!ȲhlZi~`%jǧF>eپ5[ǤDY'U): u+o(jAV脚.(N^ 8xSh)E$EցHz 0먺Y,uŸأnN_v'3@RJh< y~?ͦ,0_XtXB5W 鄀&rsK6W)YҎ"9wO?.q-/K7$8jm^nn!o jCtg]}%ECWB /[g| 6ɝYѳ,\;˽}%o_oUx~2oN+)啧hѿS+LctPgnNo*w%4VS2ɘ-_*[ p^pK7>LtKѕya"_7|iwӡK_Z s6;o}3jwF_} ։-/=08+>2gߚ! ; /7Ǯ5(J.lR,mw7GqWچ$gOp\\eĈ]9+kJ)al2~ʮʾ7$0rw'^~zd(_?+ M xU!q̀QksTkiK6M3މyo+{뛮 > }Tn{=pkļ7uB YcKzlq@ygxSi{~IkV.(;yśF=l +tλČai8fuP4@6OS_(3O R34zӛy,č 7jߠq~JZ1& LɔqH*&Yo Wuю{.*abC9pe=e_;*sX$.晓>zT< Hb2uI \ H k @qnn(أ}'8zrC@  \HMz33[N7p']9=Ȼ֥FIMZb1#!E$}#S"|cUpF )X8T] ֩eS8 m(")Y<8W.!Vl|˙Ȧ`&KQaRr„KyבLvE}gtP@1aQΤk,|n\*]:W]zME,׆EGwKQ(0!()m.:`0O}/އ %(-HWSSZ45l8见C7ez"Ò)R 2CN#A:ӥg2J\1[#@\A; 5Uݿ8#z=[OH MY]xptXeʦ#HS,$,JV|R@ ЇN7V۞25`#ŒF-rZ"uHVe>g=آ01P< fO~,~ 8"N ?,iw]jț+>5G QW_rd*/H_ q͋ _vBY>ٽҥg\5z|2'"µ 7RȿePGeҒQP$K/>R]81/G>9hwSWí~Ydп:CL.1vx2#z1L }Q黠g:*gVS`ѿ><.o2'cc@eCީUL"?r\~epOu.Pk ]&Buj&l򯤖uN )˄d4r: V+dzQ_ĺ$%"N=+oK3P0h\m*^԰9-1Nrzɟئ2:?OߝW r1(3 S#@'_[Y7MP(0-&/Ibr܌$?D @h2<s{*ߧb/Xƻy\Tv;6iL7^^Կm)Pu(F,T,|n]ˇ3LYQ(lcfĘ[d(ϪCȒE|ŀQ-NѯV(TțJ Z94ee}w'Q _@c_P !}@H~(y!G=-jN e PO,;mmCp3XHMeFmx3 {pXjym(LOEeWG#"d5z2O%ƩɱhRߊ .7st3"@b;Eb3YMV3/%"DS4s ,TG2ICβ=]NZA!oB`w/@ҞZȟ!6ʋ`ˆt:c<^eKuHZ?,i:j#yjx6_ttvtv]$@΢/ǭ'֌fa —IĀ{yO=l0$p I[C5$sŨJ4m`>zUKEnj샇?t1'G " ;k4n7/'+|RZnt }^JiOKźK=́-#)$D/l9 | /EDO,"X]F^""R-㬶>?/~#K$\nAEQ\.7!ou'(bs Y{'?/ʓ([6P (qhHpN#Q<sarފ gi'̞@.xqRJ<4XCmb Yg 8厐P/g Mf-4444bh0ɍ 7 pLT$tMG\aϸws1i%;M'9JE{WG@c9Vw{JJ7|р&i^#djqӞzzӔQ{߹(q?qWMhI Be< U9@OAQ͏ߨkSdKOT~p"?TaLI> -jsYӀ@E<}w=k{ߨ`iA\on>qW;'ٜs ΍n#+QB}nk4RYg~/475a2u_>x&j0jvxuQmpugƅo_hʆVmާ ZxgņG>vx NQ,W;xHsxޣ|G~cf<;cَ;Ǐ+f l)]ά9v?zоoN~IXx{zVemi>>x58@tr[˔2suHmaoݡGR+Z}XI=o9:uOR)ڏp=?<NS]#4N|E_ck uС{vk=+P>e|>{=:!??ϗo>QL?r!եqCI?{9A/>G #Eu JUZmjƣ5wע(kꏾU(}óCAyQ2uPmg=qvm!vo cެC̵;3_ݲx wY&< hZw?qؗ4[afLt¼_ u{κױ֣BsX[T7\wszo jc֧4pu;!o1\ܽhq* nÐjڙ}ګ\gϘL9dyb%_7P86>0ɠܥ󓇓WO0K~blUpc!>x&w)v8oœ#V*h{Qy^s׼xpB?;mJ(d~wQRWK os~SOgZB0f9 ih>cG%8$S/8͝6Q ٭̰$WP#*@..PVk1xmBIf//,%\֊oT#5Fd9k Q#vE9#V'o <Xs_n CG)-Cz "WٮD7O>ƝV+2AWlW_/O Ш'D2(0( rD #LYo4QCHp8Ev"} }5ES3<%"DSZG5k$%o6[,d/qr g4Qc p%ā*h8 rfFD+$9'VBn_@4phAtk'0RND! FF$ G W[=o\s@L=uRڍ?\n K~D3_{\ZJg6bmf17J\yG?wW9[yr^6 ch4:.)juu  ~+>3NW#o_p=[TY4m4Ο6|w̞ _7xʔݚFglg&OOcLXps>q3<1GviU/$ػ~^9Kh.lNuWz`oƞ'[zpþ)4~7h ?'ҍԠsrD$/}jq4걆Yܸbk4b]1IP9u.^lTE99vmsCo?S~{wr\sj+kW9k9J%)#/ޛ4y+սJtAҢϓl\qY 1SyӍLNL + m|O6ܸ}XГH\xǑOp}0"_ǚ^<0lК[n_;Y>U{<ʚ#/KewZ=Ө':(q JzY7Z>PBV}Fl:^X|rJo j7{֯so܆&t^Θ#lz! 1ͮ֩)c'sL9r:!pz%C^ j`2,T{U\|帟U{ڏJx?efwi@Wyrx@`nF݌ʭKI "Ф1n@NH"$Mo_7gј&wt625rN1TvAuqjXQz.{v#x`EW ?uf Mȏv@ݛ EۆI!RIXQNFߞ;4<6dz/<Ֆax7QP[C뷪Rw*:} =H\bmZ#RS#r\Bw}{[whצE:Ts2nst˼ߝ+FwWq^=guqp| XҝC`ڽEG4Nl[\{nsŀ` ijzn9[xZ︶"l^`0i{C)|CR3[[N gQSG v<\ﶴmFLojI<.'\u((F sZE?Jh]Y<ϑT߂&F[;H_jȩѝw4]E]8R掠S"}\ 4@bN"mƜvCW;yozEw&!gtSGɱ*:껴{FodဘmƇJ;r;J$-PV `fg+!yܝ)ԟߝH뛷of:beA%P&N;#R WXiKcDDOqshTpq_[mvO}3} +CNbH`1fcnJT!IWyס'r?5Čӧk<޿]JmZ9D\}he}|8ov% rn7X,f0F9FD}^Pw"k x{xK泲Qn8ɑtxw1FݳIu2Y~fz[Wp͉`mާ?]zi׊OϘ>wiKR䥄7jlN0sۢǓ%ig#F>пƥ$_Of}Y/~ُoݺkӦϵ;!Bc 8uɞ=KWqfBXL;#e&۳ktRqo~2ە'~rFc7W^?ۣ:5pϗ%oΘ0v;ߦ3fa5MjRZM7gLxQ}}trR8VhَnKv*B Ξ eSP`ńAqvIL%{~]XGv!UQC>Z=F \u?N-Cd(L̔woqmRQ:ܞ$.~ro\JэK~mѧCvOx]7伛\;oIrkժ6qiM_v=d jX̄*uqi_?ssݳn"iHzǮsܭ{Mͪtl Un~7&nF*Eu#"h0q x2CPrfEʮY k{|Vu5g}SP-[tnw~׿~WP9S{^y-j]:\!J5" -EBrH6)36mrκ93fg}U{}mRMQb>1Ef udOɊ#S }KP9sԘ/ޥ;[8uuJsjHxY1Ǵ]'tǏ}AiU 'kmI(slyRۗ D$ࡥc}j&4`k.(ܒJFQ9c"c(iFƼ}3΋6T$&Gf|q@G!u_==^`fkt^yً!ћ'ӕJ'icE"8K~zs4Ժ #EH޷_?V>Kh^y=\DxMk/"DF"JZ}]Ԟ\ǍZU3nxa:q&nݐ 3*m]ݷWo PLܺ>Q]Leuߞ6}uUqO'6;)ݥB|`poͥԵҥ1`q6Gr{SGO{W۞Gp잛B%Cmm-CȾb'@!R:'B0yrK'OT>rۏn}lonfp,Ȱ^MQ[;ۀh/p<da׏S:uQ]vv"gC=kUO"bL1kՖoow!=n%ڮniL[).`Lgi`uN^WgZpHZ3 !xEg8 hB.#P9CxNDhp"h@*I37h8DB+r< Ѐdb]"F@Sǐf# &Sk x@ .\hoچiDFC;#(c <[xcu<_%~2`U[$v5愼4֠_ qc=\w?ѧIq.ʝF<&| FҢv=W{pK^Rm|=!NAu,\h둟zcZH[\^1VtI= d`Bƕ;iv8tҼ\“tJX_®^?bv ^s0/~3B`߹Y&Ͷ9Iiv๗~ L>g}ff|yф|fQP.ۓs:/@EY`38M0(.*%Tȍ;s܉7Y:z+סO34dqN9I΅UB9htj^\.+y WH,H=zU4ߑ"_pz?e߳ j&ݛYhkޱG0YEL[ XOҟ^֏wZ6_ڤoq8У9ONz٥]w|l'Cz,:~kPce;z8mTxnTxGȰZO6m۰ ɫ4Ǵb:bJ+7j.ݢ1% p%1K m1.qc7:GU&3H#b R#^ I1`Oo4Dp BǡA"!Ԋy#@ ¡ώ+! E ᰀ1Ђ(OiP6nj3nF&FДy,P ( D*#P}t[NeA̿PaJ V 6_蒫1o IDATcL7H+\2hzD?oW~\LJ+_7/5Ũcmr2 b~b|>@ekYNPsdP*(VdM &_aZ("I/4`mip4G H梐)Ր|0\v9\F!)C{((r: 4yVL$Wf|pȔ1s9!r-"s1|0I8~C7hE%vW#l&GDgىy3R @6GXp+W4)p=P{zݡ۫/uڽDQİhp^\ =% P {xt[,8fٙłB٧s%g &CM摿}SUSrWNwjb>2QÊnʹ=ѦM+j}Z!+e@o#+jFR:(f_;׍4 Q5" y]LL(fgIʨ謡Og5y涋LfU#yGJLfIh fU#yW[^]\o_Eg3mV5St&a +%,S$Ļ;&MӉ$[5 ޯ_?[ WIZ«$\;ӵ?mV=5=?!ѐ.ޙ,l44ئ[)-5*~B_̒Ij2`lelvń62'1ɞêd'1="3&z/dW!eg 1[+EnRx%ږ-"yۈKNҢ-#ዊŅ` s0T,|q`"؋DBr0r|hW#L-"*E㸔BŢǢ]%vUpePR,j F\%Qg_?k`*$̈́5-[|By}r칡>cdڊs%.f>]|Bi-`Z"8~[9M:EǗ,:;fAWm' SŚubˑZS ߋ 7!2 ^Ri)R_M g[;Z7ʄ* 7e'ˠIcoǭ~~8>+:_SUOyp<h/רAɏGgn9&Ԛ.oEK'C5y ,ha02|+:+/)1Zc֎ԉ45Aƶ̄\7_Ӑ^.QN#>>)ĔS<>yl3J : T8`0p!SQ}Sޭ7rV߅OuMəsf$=)Q7 MVX-Ǚύ`euQW[/X1~S)_VC&L>d#*}p+|OLrj*,ԄU!8mމ-LMd4_ھϱb℧S֟VC'O:_\u zErږ0|Դag;@֐v*}ߩk)F]'dzВjWֽyl|znAӚ3´!WWmQC%k[FPpHѾ3~׶D?)w]w5*wտD-Ы8|nN4*}jpsM}4)=;nU붟_k}rXiG{!=Ca߇eV!W#GT2|gh Yl8Gu~}1Ǜ֘7223״jŽ=}mW+Π{; .ܕ\w!}1*ל?%RZ)u<s``DTA~q ۵-Mw}=}okyw̟ʎZL֧y{ZmIfe2jyU`DS4I 581pVBᩚAV%9ˆԂ]o)IE>b a*9Dc MRBHcC5[Hnh4% < qqY"}yAQXM fq۷#""ok`%_UJ"+~Vdi4<3F!+b".Cyה2#%AOHuu0hDUI)asbڵ D ]TkQ%46be03UH\=`Ԛ:J/./3yBk^c{k놛}ǹW_t ;ukISF5#^;q"CEh-Ə?hxʗrO M}y[,$8zMbZNytg2u_y'D!$)KWٷ 0͡Um2/Y?y^lUW?+ĕmګCBՅ~r֡lX"@SG54ld_*9b7V71_2qH+⏟ _/7 EI,LZucۇߴup>/?ɇ{ߟݞiopA2#v["$aGrv"#*hڢ7נ(O^[p PH~zSN{S^6 7]>pe-RN] :条U>g+N{y 4GnnojНyf{3'|EޕyrӬIٕv<3B(_Y-P]Dv<1NwxezSQ nwP- j(?׭3fF7m\m>{f#qa  F@FTT *Y#T&TADdH.l`Lw3= W}{0S]]}<ϐSDb8@x@,=drBBZW6;>$@?_ÐSD}ջgl*wg0"Յ~͜[h‘ڗck,kCes@Ghۇ+^y>S汾j3Ϧ%He~YI՗mh֪> N^AW o_ݘ`AޜAyRl&˺YdAzKwHn^9'vQs?s/QPύ@|q⵬+oI9; yF~Rb-:3 :. !NEU󈷽}|OBm%ڴ`mI#5Y !2 !$5#uDj|$rh[O{æ(Lc*q(zRe9޲(u@elSS@z}F)HX. #m%r!AB$|pdq ,@RTH0rJ `S4'>5pТPgwB\fv+K!"KcsȆ~>#aеV f\s¥cCS:85k{[ Ը#xFPlK$KB7 AQjy(ą@DM4MSƹPU'( ԀjaT8*ۊx=#:[^@nZTlHl<%Vu۳'ΉwcXWӛu_hS…+CS[ӴM;#I3? l{rgTM:Rr3={-އ]ΨPpLMy~Պb|r3@)cL!EsCQcLj D"$%T^N'7k+ϽnݪV큙.n@*2 C9'"c^0 Vūl% mw:.cz23h/ JV{ztq?tF[:%۟.+o^(F^1$"xn煎4qubab*@aq"$ EΒ/'^z_MN=ΨEN ]Rk._Ee%_ !tED6{p:WKM46s"\SR^ض}'hnf`fͪILˌKT:1U1"Í(Tndۅt n%zZoQ^Xg oTpgtK<4]0;煂XVMy.8"#c E2DdLQUdm nF +5u,4Mu/hg}5fYtE6G[p3S6!,AȹF!"'bgHDgƘFɌ"K,dI rBLJ} &їwfE`^9z&=ebbpC G"1nU*cL7tpEUD$$&&"qC7t! !ELm4KcCٿG$uJUz TT,:g"$!aԽq`D誫6Tq(R!yW@ g=w`~W[0۱]Xa & ]xh\|J+XEO;WG 'q u!c̘?}&? }JyTzNCH"cA2ASsWE-ON&K=G9rx(b2ݨ褿pkRlYܕ.FR5fm3rAW첋D?]2Wxa;$7%!$He5qΉ(:dup!DYiYRR0IɑpX UUQM hɢ:C\@EgV X1f"YMzsʃ]a'Dy7$dD (FzƲ.a}BP %ȓFD;('2t]%__VX0r5(tP+@հ8(`"Fp?BmThWcZ:Mj8@./D SxR! 5$&%*, TV(*" CE޾g/t:06LʽuVVREx:s0T9*GҷbV_nlŹͅ8޼"Qn ָl\z"[:($~D n%-U8=N1\zgȅ0CHttŐ1o˜{ӬpMVTE #% D,di`B@Uq=Y 1)i^^20>F࿯ZdL"cpzt쥏0y23MTMw(KTm1U"0QmF 7 䝣s^ ;1acheAM#HLQXrr2 B!y$&&r!8! Ap)*E7l^"qAivmE!05Oj$ I%fDTc/$ei! N?P+ J9Ү$塛 -0XJJ dsy7Z/vG󄀎^x^'mk<$F9vXa1(Z\QUf )HKQpw"%5%CeerZmeOf  %WqQ?7 ^GDg 4 uӬV5L^RǏxVv1څvZy\ai;EsEFSl?x\&vyP O.@J$ ),o*)8)2UB|8ʲb˜WP0 o1B07!"'#$Kb)@C\F+7M\A99{ $Ae IDAT0}忯VJalE,Hjl;|ӃF>tj.COś"![NBt; >D? zr۟"j $XoB1!@s^ZBK5aHV."3 ]7tP5U;us!ܜjMRNۍ ).q ʚ YxQ( YPDG])%;.0 CJi(ɗ"$"TEg0Ud@U-5UbLINN$r|iY!37h̐Z[[ĔϽ6} svS}e8vTUl$2npEA!pL!6w(G( X}P*2(KOBBȋ<0˫&urJș:{ ]I1kp=?cP5b[ߓ'ɯ7^V̽̇/wƂh3IoEug(6Nv/ݓDl7`XeBUvc{A&|R6#ҊQRB6,.bl`Vnsf\AcFu px]] SLL( .c2%qwU%o )0TP:FB6qaj061aqH9z4Ut "&>ٴ 1 Q:2S@aA!"SN6 S*@! ʉqiSp8b^02-T$.|i=˪I$ ae~D.}r^ .o~߸foz5ToZz D%H [G)npeYբߗ,6AVo]y5?V3bF_E\ڷ=5翹yXOm5|o𽭆kv^ ?"{"TTf4C%1EXa*2)a  aZZ@B"s-8hVgV7lvԄ1Q@! A0+f fy ι) [u֋;/'ޫ\ \78B%p&O>o q+gMxẬ@t\ZkǕ˖5kJF>鷥kXO_S?B[)W?k-_O]_W8'^+~9U-Jyu䦌nf|#{h}Y+X x8#?m;'{_g?XNJ'<m}juD^ы"/7} A[Z|Ӂ1=O:`ڨw{nਡcN0ѾD(L"8A)Ws~8uTAf~8Az~lnhz:*/׉pe?'e^qi7==#݇m/=*BG?^}" S_P):/+ ( B'Η{U}_yS:xM`ë.K;e7?5OnGvɧ2ᱯu?glȡn S;IzdûosKFWQw%cSkE)I/{lԙB @0pE0hdP%fN_Jko;sHP&βZպqѤ Yq|ki;z-m2hYv{={{?4oGNۑ7H=aAyz|}3g1쭡oOGY]㊾o>poqO%[hB*q{>.{v!A^0i@F}}=??{&֡@Nq^ZVwݑ?i@/9N1@W ʷi$U}ENAQ$*9~H6=Q\5gR•1>č~Y!J N*xbmnEu80y3L0#ύ<ض~; /ys :TW ̾rO3j?]?@;?v(ֹz9N_7 0s;~cwDr'bݶMmsAaoZ$%|hۄM;ul{?1a5,:t!ǂ!()-bϭY3WFm&kul^O׆|#ᆡȹ!r)oBkZ5{1Xrk /~IG>'lzg=׺З{_\[5?p^ݿ;`$д<0[o*I/"4S_9l'+ {=?t+K~ۂz%7̀}B!3mu JIxFLuMxͭ$׮ %' t8AS|>nSUW^Z!ʀ PFKv țϜ['ӱˮ=k?"͢sl s#|PSvtF׃X/BGL8[}_aLvVwlqgv8Ϲ_K׬cY%]%_z-^g=vo:`z!Vla =,;6q P}WzYVq|w_#:scU}|۫Gd"N`4M!#͹L},n& 2`mtH)'墘yg3@V5o*@@H&%s`{uj}=fF>w Lnط͞T;|bk%㒗}>]OmТwu9[Ժ7jm/2lT cNm4&{:J0U?' 5?)gϿN\R5 sV㮺slm)枚$km? ={5PRe@>**AwJ?)ck˜$iV}hayB8v5gYGrrkh]lv}H=A$ˊa;s$Z?ufٶUCEl)Ni )ԝyUGm6[Qy&Mo~Hw/.9D5#?Km:lǚc ={햒gVs`nr[D]߭-6iƑA/<1(0&&CܨݝW[9O'b  9am>k0TTxO240Y7hz͝W:~k!)r02)P"u)wSMn|ً "ksAۻ><#J3Eah~8_c;\S3R?~ޏ{vۘm;)".Ćo{^~Ɠ# yXʵ^<;wv>㾇?/sfa}fs|[be@X_(WbHR(۵6;dgVÊg^U#޴5:viSʿԦ2vYdR-!иgMU”&2#rR VJB ry<\Ax•Euk$aB/Yxo)r}x9:7N|@:vT|0]Dܤu9?ۊ/8(\-{PQsMv@?n?.OwUUk%_2"yMQ<0@µ3Dj @_ȱ/ܺv4h7aے%릖|Kj)DJ1nQK:VvR̮VKSNlsQ|KUw lO^}r6=~ չ斎t9ZDJէw+Ҭ\X0)i a7ޣW6}W h"vhy{_pQZBi3}0ታ~ݝ;f^BR.|v;N~-7?kgS %F{ۍ7yibj#pD0MS\N S5F>^%B~91*ޠ09?Ӊ#Py V}iKܡڈ;r`?`[f5Jw,߸c&~tvy񿔴tI t9][ @3яVR~wpuѰL~'gI+(@+|ϏT6KO^=;:/!e#'go|!{.I  V^׾cv,Z6 4?>sՇJ"c.Yk\re%&ȾE?Zl#)'nY'c \שe)dmb[NHҼm̍yŐBL4/x׬tf\Wx$O_WS4/~}pcz8R3RX8T(-O~o}pczyǾkM~mɼ+Eclh&ONYt'O8ty>#{E;{i ۽@Jd'uu\OHFNRh~n ۵q/mcv,̝a3V=|`ӏ#>ڨ 5Vtt튿dڽ~ﶇY/ƞi =!8Z &mJ|KA.&ˢA&*#dI6;\+D!G?]K17E) `gZV{yMMZt^j )a=RΉxvwF@ۓˮ<3]<8K"*›ݴdJp*(.|hb˛Ffq5Djz1y\|(}s"' τˠ$sp]h@v IDAT0Gz%Mح`\=N>ʁ7>o]|Z:='־q~}RS. !<$\rLjEJwz=Zބn[zhW')ev_ύ;P"8熩$2v7g3bxG(`egcnᮥJQRE"̎Ň9tĕ?Vʾ#+SO3[$NLiʅ`VGL鑫J(@)) ( v_bY7~1# E:ttmi#t "fɍf.֪욇^zax}?pXоxb0fݼlibIցZ s.r4nD?CH" 0,HXr$Pr "BTU*~WҚ#T@a!B7\%Pú@5EƴJPQ ?64Ewoy\䶦6/e*d0U\ЉǏ6*Z xWB*!~J%r-+BHxN-x1'k>)bUTo46=vB6 !){4?]>)ݕV" RMt276 `iSa9C}n[?*Sh. ,ֹۘeJƞ>Ql[)KࡣEƘrLQnxI)B2%ʘ؂$N.])))jDʊV}ujUl[+& CrFC{Ԧc*骪0RiㆁP_Fxw@$!"'V?wO@@828%"\c*!bHNO*Z>R8Dİ۳*D^ǻZ0~oD ,='tW<%*sM ɣ&d ⅕ejl^chZ`r?nYXx\_/cJ+>Jvc~E ]Q"E1   PTE*1  `0`Ea-($˜j K&k.H 6HI>>V ^ydzએ~-FHʌ^|ͣpaR'~_Pz W &sT835UןCIT)cz>s<+Z\ѧz1A1Ճ~⨽*jhiW-z_67پ⯎>ziXanya+8V,(B5B.u3R)d^oѲ7z.#HC*/ F{3`ff\-=T7M%r<ˇ^T(-:DL>I.(Khi^YjS(0 ǼoE_>rbTDxMX Mz5(/R'E2fREG?__P^3Akl1:lh ݾ>*|f5׷m~cNǾ?VVҁ-<P҇T4E86Q*A0*"[E0Q1|M^*PrgPS I*`-7oTE%&2 vJ@Hr?7IF229B${^Tc6bo@s~D " ;e5'57OX(kCFǀ9?hb=$|v 횿hLҩ/+*M_n~-G /Jk2wQ@̦ tzXO<4d ȑtP+]@D"?t`[({[({[y^ee韱)WipI1 Y=}6Ks!䅣倴Ln+@=-BQ?amiIɵT2j^Z5!ddHjT,S^N*0DPF$Lz!œHs(yܽ!'y0PeԼ 1US%Ynf*\UUD*uΨ1jeՀMeFpk$Vi&e1I-^#><)H%{7OnvaF"b ٩yw9jjfzg&umf` F>D^V9{Dd:""(ʂ)L:G:v~?n,A4 ^w sé:]I54T) T1i/-A[ ^r[LoMȃh,`}I#i U=?e/-j Th]T,Ptbn}D)$4j_$|S~`VU^xP-Ď%%][E}"4nZhH|(%wJ"RDߖqȸ̳?~ꑷ0PQԲW:19` C!~z2RxƁj*='cko ӝ14F!`r_PMϺ5Jg.)IYB'&_Y̬ݹrF@ɸ-6W~&xlRT~`= 瘅'{94mΞBtlclBvF `xל99?86ɛ[[`^!c8Xd.U5m~doC?>XYjw<3gƾ}vsB޶_:UnhݟN}My]p^v}Qݡ2i.1jP*4>bޜ@h.LQu{轵9a^x@^HK{fL:5K>ƴߜsQsU7/e%6:bޜ`v h!V(Ԙ[m@$ۍ6 o6퐵ye[\Tq'n=2e-dkcѓK-3:q' "h}Jq86.WPz[z{vz]?,,b-^o!! u=b/`x3x`@?U91^11o규q_'o% #1|ڐ=sfY>ٳw[ְgcwKG ٚm~~iwԬڿ @jQaϧ=&4~D`]z䉞X֜Mt3}Q@IͩuM|1x-ͨQ DR=c_>{}WSgϻc2$/5%L%&_f Ը4kXvrV9+"W&f;LznYjּ_gֺ⌞?IY 7`d;}6@xpPVgvAȖjjw>xw]6_₢/w 9ΚL009I_Nto6m]n:gUΪq3N~⃹g]z-i?!l.p8[/~!Ft gx8C&ޟp7/Tm2ҍPB'? =kg~I]moM_ȄYM?z !?i R>&?}U1Dr|򐹇9ֱQpXOpY3ɰGo!ܠ?AVmƐ_8VcUv5ZpdC@ƋBqp~~}LFԏ_|,,z/M@s;cg>ݿx@k'^'RQ;|0q} ؇K8! R6{f2C=wۼF-΍G\Y~bLiX^ga⇾yq|jc"Ƿ4f9#|Ň'|,\0N jZ;i;I]S|x_^WaEXXI^~ƾߦxy.8ށy<\Uў臧=78O tO-}Fh$6_#mQA=~h҇ =!VmƐx|>pTG!y|eȭmn9WDd~o$~i=0k㶔gW#9꣣ rk 7};Sc> J^CxA%q#>?8}Sf y [t%Hl0‰U Nb\Aدnx֝= #!uݘ<A/8XG PŹ[ҡ/Ozsvŏκ ;,~7tEoĶ E|c[ënntaR$~'(/9pΟ3FT>O z歯Hݫ5Wx& 2򙏶ی!PumThe]J7:%pϕ7sʠ Fdu.lM.8nALT!$ (W {ɍ~T:=ډ>2vDd sԀbhQ +N/NMqt*e Q *nݪ|ܜ6q6b}nte) l1Dp=,Omgʲ|-3F&P [Ox3` \4yS<Et嘣5zKvm^|hMψʼnNw;lnפz!TMea=Q5MҢq@UUpZB$*+` :!* ǹ+X|!1=zO~;ň-/(@#[vU0f^x@zTܑ8 Q>}зxm}ZgSȕY;ӧ~RT lVVuN1`ț,`gd[ãaT%hn]c Hhw[ȣ'rgams]8Y]nV^}ћ%?ںuzچg#4A*)6"aYNU)%ILSWwJv.Psؗ)G r;֗Zx!Um]{IXRh`ehek7ɑ (]`9 cV% @{_ս̬'H $)-i){)Pܵ-.Jq/Z]I"bij>s~$@߾;-M&3w{9ϡEЮ[5,ۣ)BD0>+>o)%xP`@ĸ02(me(x ͞ Cy:I0gg6ڨaPH,@m" f -8BV<';$Q Rޕ BF8^`!('_ 'n-QZ kfLf6XUahKRY9=?u^bӝT'b+VVQ[o.ZtCRB[7/ Cp>_-{,ޞp[XHiV(ioscߗo`R2i!g+Et"6?_lN}JF4bZ$ :L56ty.KAF E 4ڨ`1`c7d@mcj#v2ow4Kĺ%nJب*ea[F ljEyD^CBRm#X8qw8ְ,qEDE ff8²,Y#Ng\j!U5wP%3[IE€#U-dXwM mU5>v/)!8>ٞaͻ@@"bL26s gr>EN%@:MjE"&c&Z` HJZZsfgp  M&ce -䕜uPES2N=ӏ9tUwp|@QC" #Ap"^fO MPɵ?vZVH'A@i@Q4ML& o/O!̚98%, 5U9J9ElĶ7LDS1ĐpsYg=DWqixF'`;Q%74(Z%J-DVJ0IJgx%vYץ IDATf(zHDV{&7:>'Q\(xaNq1b' vSl t-LzI"*,9{MwԌ%a LI'H"@H\ v1I5*Ra=1atvT\@dwYHkS1 c8~]fkiD1V-{<:Pی8".rUL>Sm!e"C}^xvAw$D6aRQ9&gkAB%zglSq09 !"cI(R (G[͕VµhsZ*!6v{i J:NכLfr O$sP:厠w Mz q|NPzI<(b нlB$9|@#5ӢbtRKo`"H3D)%:{wwb" qրUa%)q=bhӚ8?IHbXX̝G0Sq%dK]q8(-Dl̀v)Z%Br)Q5Z0 K#k2&(Z-+>WgFQ(2h]LTD_l`a~${+?+$TD-~M DF;7\ 7oKs&0.%h)c㏣G@:0y`%|NeIP'R25íN1l8@8ںP8,PID9)|AFlP-D٦_ưYpvDV$%&GKЎP'B no<[88(4Asu$Ʊ(:lS fq(vriǧr3Zo̊!)"&$گVED NjJ#Kf8cC$77WTE4jRŚY-Lh"J\T[is'jSE_ra(m9ebd78]tmXir/:#08-!o%MڪAk'6^Pc=u\M8N3"C%Za4 h (iAOF>!E_Sm׊} ș,3ɐ5L*Ьq'㲕 0qPR)Agb)J%Ǵ[EՓ , $ 3L$tU#$Ǵ@A]Ѷ%-19[o_ ֞#'?VK0!I{EցCiNJУ ȲH`HSOUvN "خQ(*I"cg"Fq4RhKx~g6ݖL HēMB[Y.sl '. Dz!A?h^*b9P:9urR4W67W:#a8ȈW Boƛ:=̊,+$I|1& խꧬ{iK nGC7N\?\L# Tޢ<ͤslEҀl5iE92= Cnm2ɫeׄxV]OEgSUEpn%!-[7S* ~{&d?oXGAmqk-o.tD幬SOQ묅 s#-,a;lCIC; ĵL(+trf'  'k4%Q5sKw_G?i/h[|AFB PN8!k2q2M3L .z=bR,GCFnPJ>KQ+rH=fxhPt=J(_Ѐ:$ \*X1؍.ZQ(X i9CqFF4E3Fs-I2_/%,eydroĚ zc~2P(yq'"V6[ @3pֆ#goDG^ݻfLcKa_oKU&z&Oׅ4z{rx= ŋF&ԯb H4S5kG_{+ %|Nt5t6AVɸ"E0ĩmAwΓ7E?gOe.e U38zZx^%xQ""7 *z+t~=zK`ڣRNX{s6.H W6LXĭ7Lh,GDڿU/^q`U ,^mDyo>ᑑGLj"ciu޳8vֶޡ U谛ύM|+꼒Aqn%޹h{ZgiFFt 3{G 7|rz_|9>|)i\Fm,6vd݋g(+ZG7r`Ѩ1B(/&WsM/.ڡv8ѕ&LQVoV?Ήu|B;1.hX ?sb~{I #.FEni֥4jߩ4OrEi KF봮,R7$=@&TРhU7SMi/y/@C2X*|Σ{+2J!)^QDb{w^6I9Ԡ0ï1ӺE,9;X' [:m4Ypz+3y+t9lvs; }MlbLˉe撌؞ 򊽗MlrN ̥=%" 4oRb֧ڸ[^@yhڊ݋?J6l1lU?n6}~X0kQZlqZ3 hFm^ =6 3wZq| i̕GTWuB9?Ϟa l4l_&"/(\֏KI"<&sԄj^9+ ~iLlZYu/nƔldA_v/Cf<~\ap D2RwƈZC%]J#Q2#y)XTMpk)X040|JQQ-^.bRzC^us#P6zϯ;bdcpÁSgqm~LAUq)YW&gYɞX?9s1g/{ZACtJ!2J{Gu:G-rLUyR˸?H^:SR'nu/΂ELIg8uxo1k:lUs/ 9r,ש74!$io9ѣطVͻ,=Ũݷ^es*`^\]kO| PޞFgAaTjFJQpFރ^:ho 9dlvQ̀JRJ!#xG0!!e#p4P(Msϧ?,@DZHd g2Zl4drf3ijpe`hd229Lje9D@̽ :n0e߯$,` j-l]`N|k4dshҌ;w!6Mdr7]kRe]S^{aE[r`:𛭇,t8b@Tj?iV gkʯδmo[ d%z73.ڙ)ZSǜO@iwR"\hہ<JZmX N'-]*hԥAq/(tc؄Wr 6jRS\ƍgG=Pp(4I E ԞZRMؤĿE\gC؜3g])YVhC"ᆏp^[, XX0|Qc(‚nE8kC jP0">~2qJZͰfeMf6,"vw9v]Ou 9aZhz~m7|MBK2rue v\{Š:U L`R6uIfg5)J;ӔMKaյA ( s xa }[9+nce]MTl1{""' f薶l(PS6$!FSs(xkК Sd! Z!,*VHH|R56 X" o nW0%0rP/ot^BDIgIg+48HB ZflDoH ,|޹\Rj&\`:$@9~.C셈bMQ,Yyb @(d|ՙIj4MkYg&ŪSTJ5oL AғY|(}L)fT/.U#P$*QTR fW-`t)YMiS@ #5WVE(ez͊^k# _VK=e~9v_VvN6 T:5*[;^yG#꘥k>Y׿K>}?#xJZglfJS~S栗76~%YvTF(S@oJz]z$8IQ'Ŀ|+iϻ4k{"mˆn8vOç ZƢ0]/J;事Ȃ;WoomfyoafҴq6S|lMfB[gם\A8. Sq5H]Saw~μViA2w\3tG?A IDATmԬy㹑ZP DMQ5Ic&Ɍ%]٤#ݿ.˟O~hM-ek=]ӷs^(5*{+j/&y \c˦zla|IX 2 DVz9g6]OT}fO^UQ}J6(M_M7k5_l ) 99m] ?df_P\c70#\rʶq>;~ιd7~ qU(բQ^cM]r΋ 1WwP]C3+V;>Un)fZ߼~taǖǵBe6ZrB,xUQ֥4ﳎ_/-^qB +/`훩\y&)z-$eB?^͗:EQCJ6qaafGn9srˊ9; UQyo.R' o K6Gƚ3X+R> )Z t,ii<~Ed*㯡-vC<;h߹,a=h^TVA1uR-;}au"l t//P\o ZA$:~OLݲH~}y`v6CQʪ]p0ލ; B% ÛF۾QI>q9F[޲h_]Gm6}L޽{pC7.??=OMzoFZ\.iLx:olrwg7Q5F}bo5F|iIq9 h9P I[Ĭns'EkUu/.aAxvU@J+do~8Jcn".\0[HJ4/eT6K2ݓ^ȫR\#`jơ1/Agy THOk?C8TbfT~h@ZJ)櫊'BtbP񿼹& (\oF֑Ŧܽ۠w>=~^*j֥Zrozolv( v7e@ՁYz0g@tLtWNM(~lî^>5zfW_ΝPЭN jE9h[hMM|mB" kM}mBBR*r:̴n]Iqs{SPw=p^E3O[6+>ӌ\(4 JXhB?*sVIl Qy eL,TJq\4U;O|܍Wo\=5\+GMv1)_$ϋm)|G!!Js\?"&t'D=6^I#hMMLL V/wiUѿyDu_矓jF%~HZ|3ͻVK?/&WxkcƶujYd]S9~9ȊeEk\mm"| ;+'osʄ²SOLԩ)۞}6>9Y=,JQЍzc/ϝe<&cMtPO3OqZjV "_/pG)Z{v[1Ws0N4}6@\~fIPD!ะ >Mo'BѲE k.?bARoU˨lp#:FtXi*t PBCUo>`t/CJcN:>3}u!B4Ҋ>R*xu02%FK3rVNJhB*>YP#S0h23e4~fɱ5}^2R,d%4 72FoxCJ+ҁ`;!1E څҤ UBQag0%BBh񡨂% ʹdr2PLn33l4!-Wi" 9my MQP Crhy>Zܦ7B'Pn,h+뺎_.oWL:cKd؜C Qj6=}u`^ѱf_KC֝mxvaVz5 5u} Q)&Yև_[0 .0>!o~+f41`̓l>d ez-}!;5C6949}qV _N44MQjb_<}yh~lkҏ/u2FOn1l kMj悗dBP3qo@z|y_|~Cbh֙. m}6mqD"}:08QKzo۪nhHóN>LgL<抢(!:V3s&dj ș z*#.m, ~5EUuYHu ghf# ṳX' `!!DEЌ`Q;|FE(ZeF)g\ 5 D58ZfE zBPɀ3M(RQ\Y V |9`EJl8$F[t?Z#_*/NѪ!|JQJ1L| D] w5O\}%]Bqx)1ͣ>q=9w-@ѩOoK,ǃWy 0'ٙIYq^kKDYJ̊F"U{Ow8ŔPG':e]&QN/]:;!(dS FNwޠ L j3='b o@M2f쉪re ',:p łj{z(rPQo>|55jdvpdct!NU(BEQX'YfҶŵ6g$'mg4 `x@U҅ 5l9e?.W@Poߏ8.'?/C$DΟřfe98FAiTIfB#'m8,1㧕ˍ{'#l8zXJC8%*1&<`-M1͜L%[Pϓ}/?0r(('9I"Q**a,xR>,Y)ERY1+m~z'I]fe>liO#E: ~rIaJ !be%:(zWDڧhP">ukæuЭSn:t1r6m{LsN:TA~g \:AA>>B_/L\taM(5 ^1ŰgjYWO+e/@v r; zu3$l;_\ntPW)/VpFdj/@ ϦܺA|YN-9D=A]{ǐۛzhdFJ&Zb J1E> +YG ePW)XnFv\cMu*;fǽW.óҩJU0&#  .w }dѫPe ݲES3W?v{_YQÿJX5Qs#2-\5̕/ XMqIR=Kre*Y`zW%83㠎TKN7%@Ϊ)HLV}[f}v{-h kKc>= 3N f3)%/ ;Ir>:N^}iɦALCܛ_c^U]b?ъg ߞ-o$ljg?T9zŁS vo#OouܲPVۆRz~ *!^݉M)J62{cCkzVOv|mD_pרsJ|Q7{yqlrՄaFXI{_}{kwl űg@4Jp3 f(י/ ip*U@czd!=qk^Aۏ<gG1]n &"bx޳}^m?č@]{¢3ΜITrD7RXW$JXTa9Q-W&7)6.͈ޱUm'MwnPjCxO~oo|+ f}2n=K)K75Z"@/v(`xvholc{E/ݧ{ܴ(u`qIK3hwjdTHH{w̽MS(4o` `@K쨫;`;i #nB(Ko)(Y>v)Q'=o0%wǫfp]\trx _nMވ!_xrLK_"P Ώ~7C 3f~?-TvN\}G/dt41 F5/אeWM2reT@_/x_MET@` mIJڛ'_WUՐ/|UJTƫϐ槩~yS> DIn%E<‑<7_̌Xž#5 aDzP2C8#ԓDzgmh:o ldw 8r֖A`L{ybc~7=Ҳ[;'M;в@YW_U8uk|,k5Ce4z؊)Cꣳϛo(D,dL^z2%ssSGY.](G{FFh+ 1euLēoH͏4eB-]B я>^vTWh@h7n%oHKsjb>Y2lE'~5:7(`ɹ7Boz!Q,4^/9m9G=u`L}xu(+la~Ĕt،!+.e"?>cȊKx)TUl4A fmqSl*c6E*LZde[S-Cc3>4rzigWz`Sb|N>xc23i5槑/$3$=Y8zєC7.9/.ktMe2_~9ymɜs'9SVF} Ɗ)MW.hwg]oW)~)E5v 7&܌Q0W7! ] R$۲J~_לË{m|aIF,9\d" L#hc⍝w{!J|5~~ĘtAK/d>-@3zީE=BiCsEkۺ`WY/wM}re'68k(.~j6mZI{zYu 'ݳ]z8^G#nmGnNxm-E*o2T" }j'uG>4MJ]2xvY1YԉM)f$qٷ^0e-{ @3F U lDfަ[m-cLVWFUots ҋɨ17=Ak!f>It0̆+hZSS'H6%5 >_t2r:emg LP@֤כ94>')bv^Nvv<ܹ7+x!B쎂< ?{q|_h!'yY]whϳS78E^=*-ntDyyg ]saߡE@ʼDTڼM>䊼lkyZ."ǚ!^IG\aر4ώ IDAT!i9nOC|:ТRK; =.Nw'N{|2˾v, Bmq2EĬ xJpOXéty9߿ϸH^m (MI C߯Io*M<G,~wB<2@Tn^A7}Q[z?=t "{#;$/bf:y_=ںR&+.=XɾFjD0ɞl@$^@@a4P=Mn$QDD)ʍL8x%S7n;`W$qKD@(7%?߽\}6w1:ۀ=:$]z~(KO寧 ';&~Q%PAx*qT'+\8¼Փ?Z+ϓvN,9FNnBb/(xGWf?$ONb=T#- NL3;Me\x!~!yXi*>_G(qhGCe*5c,LqN֒My{Z%UwF\K'MR{o3f{̑7fT[k+y;d{nGo8B_,9=ٔX ЍE' P2B޻Cr)WưK\!gRșLTj\5hfBPDtqP HqbLV]b]Bwߨco#?)`xURB<`m"JKlbiCE F'%pZ#h6ltY+`f(RpFΌ_=A;ާEoow\980T8b$+1p_6t~kX{Gy5ϥ ߵ$#x$8ِqqOwg+4 ?{:."/!`4X{ k2,˲h4!i d<Х88hX%BF!ǚ&0 @E(_G0 EPJV[GzW%}C"d\KQ)$T8Vj4 FW_'Ja'Jc "FQ+d Z߬*Fb FLu9qJCeN`:7o߼~ֵ ki_<~>Rnuj7uۘsEj!o=uOom~1W£n>])Q u񛶏ce ['x3V۴}܊y_7I$rw }GUf=}MO{.#yڬGUl S·g*3k;ܬ2#ʠքA(u{XDI]?vq-묽ګZ_d\N#U =grnnp%ikνiQdH[lxf|ga2e63ٗq`טhk5ǽ0̧⪙^^+l?=qo*'Ё9{oZT9' "]Mwi/G1oLu4uܽoُUw'$ I٥شMyxt˾ݴr-b3LγJr=O;S<>z^˧Z}pт)gQ BUOz.YXAx jj=mɧDu#mM3|#E@Qh9K |Nn(ea?YrfT.sMN49~|$ՄjhYpPb[qUw)Hz6E:ZXm`Bq2Kb78)!1J(4@ڧk#YM2b-i| #1ɓ5AHT 81)XQ|)UO$J4XR"H:@iB` _(&HJՒy=(UG )JNNJ{uDZDam9xpH l?9Ztub.X-&:<(46ٓ~C"B#«&Jw̚T\s󀈠g7vOl] " zu=8"qV󒔄'1  ˧~q]}T3[NFpp0*y~=)FcCLk<@ʍ^zP?1Cf*Oͭ+\~r;28KE5d ԠI#=Lqn4I2f&gUDӐL^EhkԃԈGGϥ;e` |8ȂB0|)QQ-dIY7dmGMɿz5 !M׫YVF7HTԊ^@SeeepIG*̸J]BnnrU+bآ%VnSgI$*LMgvj% VP ϫG=qz) X<, (ͽ-9ṟyyX`P{'@;<ݕq \nH4Z؟T5ǚ=h<&Io\˲r݄]~M=\{'| yd[<.>\ 9Rh&mP{9IwncVp Ty.^"0çPO#O tjmH~aԴo7S>j$*ܚ Zc&5ιr?!!˙6vZujC 1p쟐( V+)A)<hgH9$PPE݂_.m@]Cyr}k_EzjV˜3g$OyD5ao.d$ \ 'haL1{c ";ҔPX5 @;xKʼrE{Z6lKNbQI5zOlwBbW2ia D4} f1Us۰O]9AA#t;s//)AVL {x} N> }g٦MEؽ9K^#>}}6Ê͝z5SσSZIK1r`5cȋޯ7gP?6oյQ!ۇR0s/aooM;THa9 zmު/"=vL4J5rig}%S>ˍ!Q!;FM9*?UF1Y媗pNjS{-W }s8[yr{t>S>UⴜOR<;`Pb(W<Tin:fi7?Z=@oˤ(؞|/|Vαf=fJsr}ڱ* ӑ}=d㸅G u@p%_.o[4ak`eGwiT^m{f4iYuAas{̑͡btp;jgp6kJ,6,=bʹO}, F e,6u}dx4&_[obpRJObx2kmw?wa3aۘ“g q;8P( e^%|12ncFD>^DAփS|Dvjжmoč " U2&%ϐ3zp%xRB"Pj e"B˪>Bf}"Kz/= ?mrWZFg1% ?p̦;q|qڭ9sٹ':#d7N=z/ دgN=z8TUqlq²*щ KX\(nЪD=nA|10+d`o[A0 1+ I*eЭ.=21]v dB7>}Y#({}y8YW'I1!<4Џ!+Vva,DOlx~SGUn:C;:.aU' v ʽtGE:>ö vk@HeLg|@{yQHѵ*KKS<q:;Srg~JZpTj'OzF%Ey_Do֪@Q`+n3 ( +}tVNzB5S&MiynȔh@pY_23b^fbApARdO&rwšK{. G _Tml%, }!u@%1XH[=q~|+BXz)R1 \b-&_k6.m]btK O)h8;"lS7:P :Oni&`ax،%^ T{q ,pWN 3䕀v#EbsJ[0W4lƌwrxԮn] ) ݽuU?k Ace2l^ģ+,9d>T5R/Ow1 槣Ǟ~JOAmWOK!ߎhQmZ$؆Pk8LJ I(0eW޾rbR*JIWC"{/\@Zyf@k97VAI"|-`zǥK_dQu?p>GkO!`73ko9v lgaقZF.~፤r[Pf *;zELjB{7"qW~91#-,2MY}I_}+,@V O|pb M%y똴g"l5ޜ2"ކIX';xчo>==:B);<%᾽Co^O[0uR|R^tI!}s1HϙG4̋'QWj&&(〹isV5טּj;_rњN7-v Ӽs&E#_?&_rEQ>$ap/7h%'JFf[3?eOGez^9kzSnZ;h,d_}iD0 D^o)חiiv?2ggCWb:ȩñ\gi2x֯Ob_̇;H&Ý׹nM;s}L1Du3}O{`6?-5nqEMka,RJ`޷vqWР#3ח]E1c @Pi $ Fj)be`5jjBdӨb $@RWDRQ 4Iʃ,9*F,`0*iEb@1Zv&(mP)]x\DKNËi"6,xH ;ݸucV+^#E #*"$%B8&;kG dAs}xR1^۞$P7?HJc>e *I'qn5҂YXFЩ_\OfK@.d% ܽhL$/#X\ξHRaw?z_#nF8t"ȴ!gȊGuZt/N+.oY E_o$bUhg"˲s4+Smr`iъEsKytxh]V*HU6Zy)(ğ5ԟMmi,؆tBV'}Oo\~y·=Q%[ V33 .&{P >N8e>73HZT!.:?0Nneɨ2zAwl=N wKSnwC7_dY3:ՆRV#߶~Z :euZr,gO̍<cEǥsXM: ;_,Wg>y$D߃?ѽJ%LBI#pIRTZO* fzPW&C'ֲscynԁpqj:ߠ4iY57f6[ 3RsH#JnJVGUH9>%sXvtBI\1͘Y ,]uat tX+G6255ҦP|3\#T*jiWUtIcO)_ @dIV&tFZr?L9f2 T/{zxkb1åG ) ƖNP\`c~aMY5j9cy-LYs&-!;>Q%,$WO6e$]JbÆQJz`i ^yv#S#>䰚c 2SpS3 iTV拏2<հuN­?gt񄒲ym ʸ<ܲ ~v`+݅{f(7.4nkJeeeCJ%y6o) 1F,^l벯£Jw{PwZXZ60xƃ3nn{5Rk??Û[V*\7ZT i,|SAϿ,0edagh˳d#t#@≱IĩW.BN?ԧ r>=>#pj߆{>k ߹4ō*={FtϑL{g_Iڶw|s?yy[U{'KJW.=6QǾqwI2_=<3|Pk ,H}y4 k;yŒ3K{8<)ϼ c "QN䳭PMMi-w!m̋Dל7n_u޾B4_ULLidSgna!@.y@8w6-~c&yXr@mLyfytx&d<;GB@Ս:V^R`c?ߺrzv#`֊F;Qܐj}fc\RTDictι;aU_w=N4FFa 05Z^Xhcgwι;#:Y >n͍^fK͗=[mH<>fLU)t7nw>~}1+.& q(.uQ5K] k_)mpB^PH5ar TC ibW=xpM9&50Hl/-VZ e@UƵQX7E)k m?`vǍ9=F՘aӃV(=؁~ÕDㆧևz&K_'pb9HKk]myhؼ?hׯ_P][߬-RmIf1G"PAK=v94HT^k!Sߣ,HYM3GusMA/!h\O|k~Ho@{̫y& 7QCVɸz_ejkqDf5)!NQt8w\ABN>l~@1186 O[ _c?MT`ZNzo&O;Q Rc(Ճ4fJ?Ҝ/~u84sI`@i)I!*֯"dCug&µz8Pmkc[*$J~y8I9PEn9X-T*ÚW8%T5 ן5*vsǝ2yIhy+ʸWx\g/Nm~!!`UZR'F{xAS+jnz܁7GӢBIUù 4ۤZ5V`qT]hV6Wz Wէ9*4Z:&R5֌)Q•Y Ӣfvy`A`;P$`Bƣ1YT1'GEXJ_&K~<) Of |{ 9*P}+vHk";ꓗEBu`aoUތLR)Qc˕*=o=iݗ5R9*BB~T1XsaV=z.K ׂfp-~*vU#VV_eF˄4@y{ITI**rcw:MB+AQUP _ 8U[]q[n5R"ƠS))dmt* BYC8DP \ZQZ "i]EB>2?`f>*"*cԧ4=LT)x/5{Uz̑RrCvk~u(T42dTHC՟BXT'qַ~?\;[\2%$v+C=z9/ }ׄ4q F&`&B AP$!1"4 $W ji@HLдZ'&1t--yеZXZcwKF E@5 !cM֯Y6Trpd]PBZHOV~/^TRϿwmTE#~2.;KP};R%A+ƨpUUjǦacft]~ӼHU ?] w=cFUN4n?H1YdnøϏo+ȂY= (M\nKb l'Idž5DFX UbR, EbD" "(Q"DBD("Q`@F`@$H"4rc U8Gj %h3Fϲ*ԲGk_<A Li!=Юi˞E>p4c2Yl6Ң!DeY4T&%mL6AK2TTwkO,4ŏqƮAAAw֤ ^w34($҆Aft|{k- j4-`:rW^]6ƜO3v^NZKQJ^^o]w&AS^\{sǧNg@=M.V]MDzF5e5V>߮PTc:O%f:i4֘V[#3e}0l\ < a4ĝ[?1ga3z`Pifx,i4E2*OeC̶}@@ՙtjkaUũ( {8X@h!Ѵ[a1_?,<ayN?yd6c^v@3z9Ƭ=zR9l;k~o@̍yl5z)* ԻW!;? UO xFJ'EBꀧ Xw +UŰC7_{?wy1M'J'yD>8aXcf i?<40$, |c6^ ~ta@sz ʿ͘zG?|fC5}3*#q>MȦϾp MuxPQIWE!FPT%0)`BJ` %/X"Hܥ[!G,LI7tD0 $@@ D 1PaD'CcK Uaca%Ȳ8bR+++ j<,ʠST <.OT&B,WRXa\x܂&_3}5$f @{?3+lk`YBŸ78]K6mWe=}6-9;Iٕ3fu>@7CB/v`IQVA~na^na^n @\* (,f@7hDpM?U5`rj`6c:݌ڵE1ts'Y_hTQ<j3ƾ)˖'d:r蛠DRԞsT>e ^U4k9T*lHi.ƈ1uͲVǧT+Y4{LX:-h./譧V4g;lh,&/33=aX&8.3d{~|0r Kn~t50;Qz_7rl?:ۆR&eYp zbqd5H섪6G@ApKqda>/ V12BsbE9 YmM3&`,r.a Wu ;UIֈ86ExBh/Y $ ZĈd4xPLD4\B$&+!-$c `"$,Ƹ$H,QAD$-0Yq&K1 H\1P(=lx@K$p.H %b(D]4;DRX( Myv2:=+@Y>OG}p?D8O-5ЈwMl)CGs <3Ŝt~+?  {~១f4*y7]$$ti5NfH@AQ|W% z/juxSSoE>G.8:vչu[E8!BDŽQsk\?a.qmlSf9R& qh`QP5ŤWoN惎CSViU5S ..:&)|/u1`M!/e$ t=/{Zߩ!U6ffęސYPo3%jY7g2x&x>XB8ziHgc7h5r+ƑVaa﯍On.?}. vsWyRPZk vsBϋC9qɌtsohۛg{J^V1;>gB)NCU lo^ HL z5r&Z\Ц.<y<-_F$;/C?|t;A'}Jm`Ԩ!(Y;r{E:q~&&eF<<|.a-CѸ{?lSB3S#>b0–TȇϦXaKw+kEOl{r@BbW21pJD@c&6νz?1!+649I:[~OZpKZ0zQI cㄯ׮^GzjNS5T5ohDjĬC?} e߈"_ [~[fo!(ᦑʖ{Hy_V[o+UoqwяBGg6X4hMh;̆@1qŶĶlncрŠ"&!ݶ([n-vD퓰K0ƀr{ t5ޚ&4Suy%,ӛ;$]uVhXW 2^[7oӏwf!b7ww_oJ*)FoƋ#g>FEDF\cXћ;{F )*GYn{aB\sjF$Ŗ]Z|.DIyCMR; Y!~;p~pbcy"fQ,Bz[50z.MiLiP) Jd$<1aƆ=AD$b0ncP[x_ciF2hv0Ɔf Mt~aT5( ڕöv:f9z~;7?0|ֵc?ju?TƇ%n 3qr/0[1AK98:#&7ҔPW}ǟʨVn2mҮI}O=\4t?92f9z"4{be\c?b.Qf -E/2ʽKOgHfulTH#I_s#ϚYhZ/51),#bt2N``YyEZ.tdߧ/Jct?lp3,h鬓 TB fn¯/.6=*S qrx'NK/6/3a`t AN8jێϴ"dcM)>2eɸ1t^bcOr8]n6Cܶ;:.qu'麗y/nײ۸YJ c91o]z-*x@uk#JT E4aM"r<.+GFZъNtL_ntApMș/#YLBFPk8'7畀v#mJ!;T_(BQ-;,!_AunQ!u@%響iZ G[n8EE[[%BBV]iҘmNq9-SI_QNJkKnyz>OQ '] {p(b|% 1cw$+uZLvNd ߎSn\UG 7䬬Xc;_F܇ާ yI ߹ye\8#0A/ǏNqH$cvl\.Q߅ yCzsbX#A^ h7^B _yɝ;`.s(&] ~s`Ňrk/$Ef#͠ ;Pn&tD52e!"Ύ,2͘/j}pW'7痀?Vψ|N 7~*)S".w>8D͌ +_p˸ˮEm6Tfd'<=ѬU#Z5{lp{֓YqNq'~=}+0tDe$AsSOWE&}Hw|b mMap}N•[4K8lM Hw7;eA7iط\1LJFMaצXUM0.,)uRsqiq/Ozo?GAQIy^}fvfnW? ILNgQ,i + x!(idZOvӏ韟>=tR[#޸=oo$jhӈNa/ vvL\^s" Ѓ\N~1ȂƩV&1Ib$KBm|lu*f϶cc*>(,8&I‚Y!Yj`nJL>. ӱ%9 ͸ucVCӋ>~d5yĢ,(PM )FR_׼>-]^iPO$Bi&mZ|K M':oK]|94wIg/}*(VUIZ,P@ *Q+M_t5q'裖^;kZu(5ʵL}(M,LU*^QȜO*ڍhLb=y˳r$@2xaG]&gY{Vs Bxo[c[%pfzmh8ziWg{HVa0^3֬53~Brm &iB)μ%@܏g6ݲwX2Ӧ (^?p'S 1\:aߥ'y$@L 6ZU!ՋmRcdrz9kL;YdDz QvI8ORQ^#~Uto65Fُ2ϊJ忥VAtryֺRR[UWKXʮi_œr{WvzwڵόS=g析7I S?5?yYˬeaű=.,>O@rzS.\0p?wwW^daOv߽}\ޫaQY~VF P\T+Է! z/B}O^tO|rqB>Tē~Uq^0|,W@ÀDYQЫ!՘B"<re*4:HN )?"A4ǭ{x*̒~TWE}L]Jۨصkk -vbbw݅ b%LfaϬ;{瞺ZM ur4_1u,9RXYغ#g tF>b@k n_Xc0rBJ): @1͙g {-U1 EKSW1lR*"O=ږͲ|i$f?xX>x< PƳor$@Y;0k>zitsq }:.@YBRۍGЮM 5SI33e WG>R8VJeg6h¹tcqx65cCX@-G,֠UU O2 =|Vە43&\z"[$WwcGoӜ)[U=[*g" )Nǁ aɇioZ +ٷa ;[u3g}8> C۹U7ofjȔ[YW Q_%>g|n|=V _F|; @AJN*qKy73nܠE"N@l}~ VwX5A@JgF#6fDa33DRkTʼ|p]2iHVUľZ>\7EbuߝeRMXèz2 ,ϖSbVf* 2/ՍW7<~omz}- h#T1ndajla*D}w~ivfur* n(¨^Wh˚핟^plY {(kl5ح@U}zJ? 5c.'θ`rQw:t]^8BvwĪze>K!I>D#CKZ/¦Aμ&Sy R[ 0T*0[9y@aGD?/xBJG5A"IjI)1a4THqI"XfaȒaCP̒le\dh)F$X1kx_}e*^() NJ(J 00ƀ,[2&MGJ=Vݗy4IJQ'_IH 4.!K,6ҒM'%ISb$6kj4|eZ'oJ#_7uE)2|kqkdHM(0ȀʌO!?x]H72}Z;0_%(aC]TYVYWe?ǟ}_NZ`\]BvՉqZтIejNDK͖+QQWBiZ!rpSnb_26 77@=f$M{wR+}A|rᓥuR3uq1#i9GOlI*Dr(`xLݻe>i`Iȉ@LҗV'2ǖUDorF|"rmdLM,4SKU=kēsLP|p`x#GU1#| a4JK ^?*~\>۷=#4Q ۖ1Ei(J+s&@V]T:gNʷ0;?1HYA ym%"?h;;n~pvGer{q`JTîecA!UmֈnūaJOPtm;I:9042KeSF]v꫇]H/4%$y梤B Z fJP 4oΫdXXtLXu}"Pi2^@^O]4e %WfQSr`5phrҊd5E<ەm&F9'(DOdd)\+ {(R(Kd M8̬ۙY)$n[ H/KJ(qzb^4-C})+& ]&n]k@nԓ{<i@B 2>+GV@%E00VbOR*e+ Sd|Qdҽq}W*pbϐU' 9OQ04JHi7F3G%dyŹ wl4jg H-TO.ڶ︶ IDAT%׮J"/?;gcy?1Ž_]zu^ʲ^>},^Նn^v{ qɧoʫ?P9A'Xu%){vq5nӒo>U1${Ķ حE䅽5`] EP3^8Dnb%F^r19M|-A{27@#L4 Iͦ9aqS6vAqXi|$7R Ck^k8:sʿ6)盬rQ̤X.}_ː:{a+JI*3EJ,KNJUP8n7K&mؐ+JHΗd&kaJ,KNLF"0嗃gG ?Dz͛]|kմ1i`IkYRfŻ?S:eeճSU[3&R^ayfvu6⊳0bMth竁}g v"R8X;fiJDݰ_:\R(//TP r-m/eg~ .b?qM̂t@Hy5Polu>s[g[bSB1}!aD߈䏳J9}3ư s.s'QEft::[U-p%&a{BȻ )۽c2lŗb՟:ЙQaGG9݊8vzęy MiT%?L-9#N.C2 cU˄E}SU>1:b\CyK Fl$;_+Q{5$~)w8 >O0?ju)}GK>8]mnG: sJ$Vi]󃞿Voٿ i6 .Xet=wΙ#6TenSRuc@ޏmXu @wV{p²hF\zu)D\Z4ݱUis$EUJk~C>8ȰHQ|ʉ qк؁$T^Z]F]dV'~M?L9.8pU9C~io??⺸6Utч;Y:q{MkidABv6^0 a C_.:aNҺAmn/kq䅇  I9[-j/}4 3n__Y\.P L NZ #] Tn|HIEJ͛iE 5‚D=:DoX>E3%<1wc,_dSȋ{snRO2k<3ȏjމ8qkDiga'Y F-߲; _I*aD=ۼ^"/{wS _̍*URY9ʲ$TY3n+d\wWP$OpLp.2 tB]Ǖmh`Ѫ7y/|Yn$#Tk1}ߡJl9 $6xR%o|)>?:klf_/=hұjCVdɢny/Øo9Rfz꘬<*vJSdk;$FPwC!Ȱqt=*RΙdfiWWزe©or~44ݗ,̏v[-v(Ҟ@ʸKδS`׍Y}ݣuK._XT-҉vz0I YkyҰIa,e֥_G;jdE)]"U N$(B"5+wo^_]=9pDpK/ׁO"+['1=f:Y#=HaK~̑"Uv>-0*V1f^7[~3T~ov<+r&pu<ʤ ٮ]4"?Ҫy'հgQi| d^NZgEgۮ>tVr&N)WXwWGP/<+6Ƽ/)Ӯ^2HV9Osȇ;o8daC%9I;Vm䬼@)2 $/}Gw=ۺ2/:̦&FCZ%VB9قͶ,RGk;O?أf9 (|!gQ*N@Sod}3 ύ u$H 6޴ff mƺPcIZ }FHfe~C~#JO%NW&}#>BSzm2N ?:cI'M j.iX`/4QM7132Qۼc(}02rC&e*EBbιpa3i+8oQX1Q`T%]){ Ҁv5X ne7n6v~Ȩ7?|&(m>6d+"ֺ{LX ͵ &hd0U8H:B+H\QTs 'k' Au.f7En,D$Fe54TC+_Q=fv~˅ǥxSHFM'"94~eșT /pWc9:l4軔^?}S!r0tBY3r?=Ԫ)MCA 4v#3Mϣ E6L$ekQS5hشmĒR(5RJjc: ڲZI^55O_• ;4tU$fe+#ZrrF G5L\LŬk"JAX22Tʕ@Й,(@l(e%f)DIϿQ _d cAzef,To{:b+7b]G.c=iL?2&] :ߞV%As; ~܌zoPpIH#utTL2pE$6W5Vl@/*QM gZ?2@ ҫQJ#W7"L!)V)rEeڷJPT$IJBB4RIREJ M|އVjɮzO nj/([ M,h4K͌@ 4Dh4K͒Fb!ͷxJXAȌFX@4’F*Xzsn2̉y|>D!cjD3bp<& ߳,.,FUDИ J5J)8Q![ˈ_<wf!:p_s/"ΌsJZ?8'VrbӬ3C޼}q!nLS;wUG_G?.1]Zޭݱ= ^kC.. Tc?h'ʍ0>4*tf+MW}i\Y0ʅH.Xu.9q3(<Ջ+䨅i6nա?o|sjs= G~"wm@Ex?rHxȅq+L,_v$]y!:UnLt{C.iqr~\mٵzCB5#l~sǝ=!/^yn]I\:0͏ ڻېcDIb}2UʋN:^^QFuH`TeQUsñC7^ yliwGfi?N7/B#]ڶT{Ŵb:XraoXÉY4N^|"K 0i_E o#?hǮb\}ƙf=2RX,)+ iX.rLg1ijf?T5b3J&HΨh1`%mw7ebzY!A5 @0lGC[ϘiSPoGAYg|>];0gK 5uƯbˆzZ!QQp6Я%;:(;4Z3+ge`;&S=NUnF4#a?m~PkBrzFe<VfJd|mS:ɫo9#Zh)7 .,w>KK$Z0YŏS6^?pˑ~sU3Kh`2]F-J_g'c'b[/|IָsY8a>9f kS(վ>OƂOѓFYΝڱgTҵό%F튕cW7)ju=8yxWI߼rhjP3-$vԎQ*>3lK+N侹3qo{p?Hub:42o ~'8R?\[#lAD4f>Vuy1g͙:| ٍSWEK\whF e夡W 17 ?:Ӽk2"ε>!uq) !eUp/H .۱>r2*SwίScPߦ<}x9ƪdEum2hl8<'ݑ}(Fl1>UlYd|0sÇT5~ tڧi:[Ifea˵D*TAC*Lpx,m;>*@ Za q T8F !Ho\{//PRD}B," S!@ HY"dX"}$پ A \EaT2P)$`HL!<U2@ `#EOu9>u?mǍ4?h5t~,PQ#6\<ᄈ`vșÛ[fMɬey#8qT9o/mT᝕* =)MjMaSFH c 4: AW߱u9u?mpSCU qUe慄c$̅8p>i~-sjj pSoң^БO5
\vljP"??e*+:?n$4ʸ J; 9_*W^ieT|zCo_܇*#{w3 н80 L^I[~qzps(Л;ڄ7؞Tt&~A=~j$>joE{ҾeG5E =>Ѻ-k09P^W2bMx.Hfé?6Q1-Ηd- 8XH wnomh_6;,io5WƖ q{|5)}ZćG7nYh$°7 [3ɼ؇'\{r[`viMw>UenܺZ+ytB|% .Y6o= TȦ߯D q9y0fy{_O'( y˩wjg5e rnN8tb#ßTa0=ͧ\:=|hV‡"ϟOIV7|-iXƪ4y^Bԗ(Y*!TkUw:gO+ )?;RGɪ >e  S@tҤ@S?/b}_#V.ڧRĿ:t(aϝ  GĆ77e1:^~+{ ha=O2Iv|G l7fM|Ҕ/G_ss{螺<i,:gC$&5\!9L ~Q9S{{$_-h,t/$ǻ.f%{Iadީ[_YnȎ |Z[iI/OP$ ɔ#LOQƭ 7 n^׳)@Z欜ޑʋwٮy<(\S8bfj%.`UԤݑCi= >Jˆ#.gOtܿZ33i p`͙dޗGo@~ojauw ^ѫV%< 7icDpjId@-Nw^f ~;~macD6߹¬EGum1R щ P֚ɪ&stMFRIj~KH7)}A{,(ݣ'Dnn=џCV^Q+~hp협~:wbhMX:^}lſ|Ho X&- nK{I 2+жY}E*&mx&,*!Ab|m76'0M=뙡RiP'܈S4!r؁/ž1m '0]-%QKGF%utT_Px0e9~>`8ZMNߡ?!fg ҭkEK)h{q+ǡ=ǧ"1|SmZt/Yw#:w^{o֓}DY@dZ3O^Iuh9l{A+Êpr_zJgyÏWR.`R.ypjY;9s Ĺ>Xz$,8[jg{ʲ Ua=4 <xu]m3?c6聆O,^7q ̀P)bs1z}w?8}| +Ec1oJ(U0|x y%=[l3uMe]tUP!I}[,M#\-QQ{?:%-w ұ% <~=FFɒLd5jb(1ٞzHON:?K|M^AyzdQ|އD s,O{M ү-M67DUN7[<؉kZ]e_̓$ZڵoXټkK3bTn3c׿U[ZAƛԌ'7T?qX6Y Cu[˃v%96ȦE-u#^\|!3<>z+FIdz5e`00<}|@S 2o?y(?ǿϝJ($Pm eaYQ_smYȘ>=q#VJɒ_c7jbGS[|ɱC9-:1 >[^yրPnj0sdB#CƚOػ`} $k9ѱIIG݄\}:\O3%Je;nlڌ?yK r"M@].{NEѕ*dh5%F%1o8Y1*CxݥGѕMJ\ mްshS7 S*e I_q}S|~{='Buqr'$`TÒ*O- Q+|D''S]*% 806EiIJѝ$N9gbww{ z.\~lXm>&jxG Hsak; /}oa^۸7;#5>YZRJ`X!1 scKeN9 3g'NndFf3Z!JpȻ{cku! qOʒw@׾Y,U]0sqb~MkMhjN ^i*6ԕJqNz:Yoӹ}v}wy\;v|zRQEܱ?3={o{ z&,Zq\C1Ҋ!8/쀗j~_8]dPfiVs2ts>֝&b<,B^xlK}C^|έҒ^Hqi~)=EH*б-)'[FH ayJozy)(U[@p&RuNL4 ˴ȹR[*E7e"10VҰ Ȣ^].ni\)jW6?g904Na ht&Uїo&YyFߠW_?}7B K)T@*BhV!vS͍A#,"uUnĘDN C:\ڧLR )!tRJ#R!UQJat})$F BB"Eal{6XM2R0wvūe'|avr $)i, ΤPUנK paQf( LŸUREYZQM8:ˍk!jjX)c9 ,x>-XzflvaфU^dz/nT&<`߃4E5m E)dGOHq:PdȸAXDH @9Q*hK&uJBJf.ROf*"=+Iw6 (Q,.$h1q&n4ZZ5Mǟ6ʼ)FQ:b]"VM:EKn! k5aW ٹJ,7Z>\>u%;t62e"=l˙XRvʌ,!l/֌{jGl!etHz̫gNpuïeaCt/.&%ϖ[f\0u_E!%>K)HBԗ8hqWfgVJJiAKkDHTtw\HnȀ*5^QzAk%qVצ 5cJ [ uXfC&J0R` &0UQĖ]v٥C^4zDR+Z(fѥ8c Y}0XJa #X.:%@=cAd^Q@}K1#FȨ}|cX+6~] 5+( ujJ&*kxfWN$2Sq;o1ƤJ!UqxFiDP\!R:g?Ε"Qf Ȗ .>+j Xan}à[XilNR'ĦJzp&eY Amy!/Wz3gBHkO5 *յkr+Lb\=g>V>BY{VXvjM.{uګ2Ij훇=$,` c !EӚC9ݸom4za5pa@Y0?_S>t`d֍4rVGcRW"aēsLP\ 1SSaa7u# rmdLM*5^*XW{ɭځ mX1ZH&@4;,{dP)YA"\jٗ3ƗoSn]#u; M !8[ȪԞ(H-TUjǨh/1ȰH).۠K>:e,6JGM; > Hwǯ9ydEm3Z)|䶅~3ɚϫ`$ƾTfvksVcȈΪZb+LиB f.t0 (4pm 13$*!e$܁a7HN4`*USa9Py$ \" IE"HƶfkOD";_73aRR)G0sw툣WDMgnYRa\DQ"')Y,Sid>I ) &T"0XI$1^ܱ HRݾ|~ИR*ԁ K"XPbE%iɏ=sL9 L&%Cagr̺quj,7Q&P%RDbX&IDeﵧ \E[ע$vsy[q@遹s};[Z80%G[=:p7VeU]ޖ{'C=m:wK&ke'+Km][~; 9HC'm]zvuy[ 2(wqe B>dyyo65"}{=˓XVo%+Vky)"y&c,Aw"7eﯓ?LPAù1E$潏< 0%K.ZM^_.>->y'6Ͳ P*oYҬ;|LjuGpڻXp,cWaC(+>9_B%%'h\Z5B?$3@4!kbۨW<=8:~kbm߰W^  {f[[7_aCOIȒ7-L)˭2lm(9Mi{f8 3޺Iz `EAJB̶n/*F#Ox7.US_.D#͙50D8n;霏",IS"JByQ~*LH{uhi{9- 8s=(.Ћ_0qMĂt$|-Po'q ﹭T?qM&A.'N}=8{\7b?[O£R 9{u>,[Uu4}'}=8g\7caN:u#h,ºԣy*]\ ltw0+0gu˪?fjZo+{.3m6cO2:͞;Lu~Br rfu)}s٫6Űs .zIS 7O+ yQ_b`yBL.B-y$qAaCR\geFcSlLݟX6EG:t#@]ḫyAO% 7}&|5.sg<m5h@A쪸\W&d?QTɕ. =|䆍~Ԯ;1J|;i. !Y^S-0}xfq䅇  I9[-j/}4Ә_էԽ"O-?s BH X|ɋf Jxco0ƀK^}byqoVS23>i<|xpﱤ jC Ni?ƀ_:, 3VaJ]WN},U֍k[ cp= cɻGKE;So5>3mӋ6M* QXcr(ǝϼG.9U0å s|{{մ]5knjzЭBac'57%jf;d!xl5r'ޮ9 {w` Yqxny/xYk'"m3h d|Tg۞Ĝ}:ԁ3m|N.JѴ:teqL8$-}ْ!x}W oYeٲiϛ(N").;?Ni_72vfau-paQK'"yŐ}~ى+VJZJö$Ӗ[.r?X9WNq&)]"UOB8{.ⴰg*,bcEEm.yOOQ9L>pڅ;Ody+}("l90Z} h Ny{L |094vHbe \-(N/ZfvѮ3SK/TEEl.ufZEd^-V֦9p͚A^1An(juM~yU`ry/)7Pe@ޔޝ]^ j8qZp2]ǝL3y>e67EviL+~k<&7Fk•?Rj;] x Iڕi(Nψew֗ dìrC.I3Ώz[&yJ}6!Z˭6ÑOP_n竼*@rwsr#,Zr3`5Z+}ZUT-{ErgS∀s%~v乱adW!jxₐ+noe¼~n.Ky#mi*s@{oیuE5K@}=~⤉%\PMoR݈e 6B5G*x$41uU~2pɽ$ƪn-"?Ǧ@g1LCݨcJ}PXzֳwX`b; boTA6QD@!RI IH wQxΘ|3Læ}d'M!C\zVC&-:ga8y}ipE P #7K06;ER\rzwf^1͚/S.S(w^U IDATqKn-h肟z杙Ѣ ]7 #]n}eb;F%|eeqitl*xj}XXsuoI828 BПG%*NP1%5H6}$TPӠ-!8 .D3&H2q)Lwr-)zCSݹ#}fƥ#lӒ!;2| R7:1\V 22&7pcJ8!D!E,rԢ^9*CEnW4tU\lAE|ha&6Ł|AgMq/u%FwM@H10:!QzО2Th욄g@z m(9A+6Z]Yv!<92GвOEfY#϶p8J˒t~SS5*dnE"\cؐm%pQ0Ge3Hջ>hGNkfQDw+5ǧx!Tpa& 69*2 QsMzѐk\"o33g0]SWK)=Fډ ,$$>w5G@-ӛs H!!Eec=3AE!lJvS6aa2ka06Ӫ2*`}MTN@tZ&(Bc{DPl2߷n{|" ;&H8l$ H aS$2D*WEpXD*W&6&Ժ=덈dy$W,ƅ(wb)RM8;犫E?ZQsd wlkl sofTgq=eH?gd p+TXyXf=6#"^e "f#Jm]Dɏ"^*6fRhǴ\*ɓY~rL"X\//\`#JMJɍpH3<h).PM}MQS 52xXߧ11+-я܆H:44;{ =cO?C,-#ААSQ&1=*=Qs"Ji뭊Wʻ'I0Zbͬmb#.x1zX:tı^*`Nj~jTUJ*L/(Ț\*H崦 3rT*4-I2H!@$F&ahD"~ع@oWRDr|䭶~ ,OVdd9,Ob!vȠU' ڦSZ?VQXR$Y$aKK

iM9;^A ]z;R믄:>1pͷ []uzxmu|ܧuFU,7 z2 ~}{^z3Qҝo[ԮMqv^ wr묶 owBC\3%a!m[=А{'jV {;!ѡw ĩkѡagwkc!ѡg&3!ѡ'H6tW{'jVo~0*QnğZHUb,sYsAXx ;8.3EqF ʦ帍o< zzYڦP1ҀHKc".XuC!m{/x#"&A) W`1a/Qҿ>zjS? {vaW7նLٵݘ1/فe%5cã.۱|Av,o?W@O7$ YLGj5uiXnL;z M(ϞQB998 Uڛ) ) a3rI uU,}|FvP|"(a쩐 c(8!@iBHX`0T 9@bWbwb XKI:C2Rq^^8_U93Ygyޖ|Cƛ{W\lC /[;Z*3]im;prĤǚU^€CN5ZcΧeA4XHϧ\ҩ rq̞Kd:.YE'XKB vh[e~ɓ+%A_:o~$p[n%I@?ߧ|襨^CP ,z(qɻrѳسϧ7/abmS CHݺzЫqPMx?Z%ʷӝ>nmç> UWnj#A _k'vZɾ8pJ}˫ژ3hڠ ۝>;8QXӝ?JnǽM JX1R>}/TDo.Gv'Ͼ #+g}}l(:ݵ;4-Z-sh݅'oQY cvJv_[ [Q%*۝>N&Cx[C|+Tsؘ $5lkCoo#ΝSy.h檯6R";@F4ptm6@p= Yߒ;@NCs {ë ٰ$-R~-oݝ>NBz"A~|yT/dYGXpd_GҖN RO\{$$wa_;M84Y'oz e}F\L2!$CAuv}܉'Ժ}P߶ZzhДu*Y֌t8ـHRF_.fmq~Ay 6}ӂB7h9\4z~MhHVW 72ZgYi"a V9]z9`քZJAȮ^@ |hשrNw}HHj\͖Jxrҷw"uhCڪ(2i盧Rm;{fHǖ#6}Jǡ~;'Ԍ:cAޓYR!wǦ~`t`ORE  _uFHؕfMj\]Q)wmջUFL9oZUrN9o$w6=hCHO2>$֫̾P ~XE˥ws8 -{`MʪÔ^&kӦ/\zz78$,%&01pH S4hGT{!]Y9uau?P|ф/׮$rF{ ,n=UvcӏʸMunV#ȥbDZP`) B:3U+kB/Njǧҳǘj|i={hc72ɦ@sL(6 }郆,8K Zң"D'֯մϖwE5հސ@hN&ݪm` h?{;LYDrlrs11-+ByIz/cjZ7ڢ 1aֵ}} Hns12ǔwO4hֳ迿,C^[ttRJKw?u\!k#ދdO3[@u6&dO`雳ˆvm۪+8m0b״e~ϞoW,BF3y& t!ʔy]rM Y\.j/%oo Vu$IhV۪EJ*q@I e@4߮epd^AXؗwWclwvM7XULi)?25d&eNDDU*:.cwj-EGd2@ q;eN^@ͱːfvlY@hW;we]<=|U#J+Pg=X5{5#YUE^3{߱kԱ13ͩg5hT( sOf0l. Y˔}JT^Ǻ:m}J\M1 n}U+@d-B*Y@|[F =-|(ܺ~hiCZ9 Q1trֶ$_aX)ھLB\nu73eK8=!m snE&m#@[YӏDCxtvqtXS.}mB~nqk["1끛1rOhc]^Mo+svpK0"Sڇї| g“sdycDgЪ9s/>,tk/>$~V6N`=#s |1SN%;!Æ;ӆ?wYIg~Z[!&yװwƽ ۴ Fͻ塹)_ !z(zÇ;=,+f ctx\J1|.84O;jgHr, 'z#F89iȖ_>rVM- e{eV`"VJʃdGps& 50*cW.:B 4`mó֪gV%+yHQM+K&aFLhInsɅJ{/6Ӏ*A F& 1 fL&嘠3,h&x?_IK_͛nR܈MQ9HXo?Fvcw2_,:n*|ђP {4M#Pv=*ޖZ_3Y=ͭљ)Bu9ûUlͱ6BJYND:O^F{i6|jͪڱʊm|ba֗~$JE>*wcЏ:6]GEVl7~|>¢툽:n%wNKvxmDϧ'`U&6%Bi NC IDATn6=nRr`2Yޓwt_V,gotXrzO~"Y/龭W ^Pu@jkT+X7#S`{q~`Tܣ3|#D:ZTOZ\7wvPc>G..G=.l?k1wV{]-\qr+c@#s DZ[7tqe%)%W"Cuha\ww] _Q/Եv(50E)uvfx7y:RTl<6AOYO#+rNQ5]w|vj֤ikG:*(IJdXŲ/@$Ӻ'K<з߫ ܣ}#r@@{?!a׺=+߀Ag^[8qrڍjW_IVyz_y պ[a nCS_!{ vP('2 ٯD^92lT:f [ywf]bAO vOw zsrPxKtEoºάMWߠSS|*fCAL@yJyn5eld?|`i2hAw&Veދ!H!rdF;֭wl>_υ!QqO.yK#0 pދ' I(:}ݩ3e,@4YD3 $%.~jM2 DH_-*1`QDՙ_@e<{͑ILpb(Hз|TP?b9@BX?cA3 tȶƯh@5 @H H"V0(c@$B ain$Mbo.SD9JRy2⺏ׯjy/n%X/6sTGc1 ao}cz)lZV,olB4.n3~zmYS$64T} [ir JjJcwjпDEB7tvJbv Lx .-Q(֣\޵Ql>2ew\صjIgr;T<)d"H$˗J5!fߑo"(7OnHqRe[RSK¯5>f7ltH0,{WNt&z7w44frh:a34OьS4MQ.1"΢,f;DP%#M}FܲTg(~ 6\QZ2_%y"(/7O"ERiW))T|_Ihg*UmgƔwrd_&KZ4ĩkP;3>U;lesX[8y 0_Kpvryk&5|ya^%`X LJ2S"z [zK=m|ebEH_x P\ ?e0hܼ3r~ g\uȽ¾Wdz|#O+{*@]"~(w>Uu쩪`8<0r|3.U5FO^}Vh!g_=JQ@]}wM 8"Ok^g ϮjMw؈W{Mw *5]9{~**_xٽmOd``96ր$j5ݫQ>-ܴf:Dj\YٮYN=mn}mwj5jըQRPͪ8UmF޼Af]]ӕF\(znn}mK;j5kW%SN׬^stHJγtkV׊iar}jhT#~IOƯۭ}f (7z3XǴdg&(?9s6}VbפdCXU{Mb[ >8n5{lvN&*W57:ӦP䙍w>UKSiފb3omlt\/g/ a& v.ԿͯVۄ>G%u@[as^|ړ Necʹ߶6$YTwY˽$/x٬{ѿ? zbw=gQUD.s}&Ԭa{M^>s1П倫2{LZN5zfQnV)ߐxMsFVй^g/IMk Tlؼ\x LYګq~87qf6U8GߣQ J5[wobaEMj.՝ܚ{9bknM1zn50f?| qvwvsge5ȡOi^.Wᾎ}|*U` f/QGsޛ/;V#ʦʄ#nѳ'nRɡv۞ͬ2>뽤8mi3+|9mfNVӹo>^XOjp:Z5_)3Qk+W-{-LvU'tRa7lCiiL9B__ԝy_?D8olaղSVl+E> s/=mćW(v C2ӑֵn.Ka?HY;3=ͳs@IIY7kLߞ<|HY'g)ESs`Ң10IбsKm(悌AEޯ dԫ7W|"7'"X廊A2`!yw_ӶDJӢ\J ktmdo_gQٓ3zyo^ҊayfP{\ qYK-R9*OK)4`ri?g$+$KtֻLC0߽ks.@?5o,G=}K^d_GFq@х$,nb%:^Ȁmvt(;NjE.Hw?s'so=S%I{y7oѢINXMsD7WnC1KiB7bks}޽ `~ 6Z5Ь843&pxbs6&>$U B~TS(( 9L]\<,16-uN*6 25׉F *o0"Ӂ~Åֻ7soJUA[p%}wd>,9Ѣ\7ɨ![Y_^|nq3BS|_󆠑խN}&^AU;r:B\|vbfQaxEyk%IFԪ.b㖲sQ뉨sRV@[qk.@ͬX5R_@*`X'"8`)K `CG&*(e/*J nG<$u: ~SܷjQRS qfAv.sI6]_d)tOQfjc~\Mv$2tF!;u;HK~ne^KZX|8wVAD2c6.SIKa ߓ7 RUK+^䀵Goi')Gi9dNU**=Ca 'L9T=?#6J]g-K".X# lvR.яfMThD.ȀY`4AZK̭FPSkakWtukF(nȑSE]H5R70.bz¨lPRs`%/(yfAgsDz>{`gWY6~zLdxdRF:?^ +uҫ;DKoh& Pt`͐=nSkVqXeKߛQZa ˭ .XE]$"3/A | S )e0 m5 ֌MBaVIh>Ip1$Z?:) D b5'`f7H . ؘ/*l}%2p+*4J~4f2b zQD_V^DigM,2p.dҏ h"q5ؐ^>-r)Kq̘n"Y6EF'V@)@iT"U&EpXD*g0xZ`87A$#$bqbU|yi.˦D;0"X<`yb*bʀKY-\yR&!@6QK~fQD̃u¥RZB%Y;dD&Z#%"BAX5jHD$KL d) 7sm+꼋^k;m~t: BKiֺL˥2X< Aq, X\.UE=3kTzWbyrQl.4 ~8,^BuBetQ触uj`o(|l$ (%!ˑf@+:>) TԽ=lɒvo"$~TSFWH hAF0^ҳ=Ce2Ip~{gG;Vr:X/[˺+m]xklrM}pqz "aAI҂0#.A#$iI,T}E6'IaTF32A,Qe1" }@bX[BMb.e[#?n>q믨67҄זrcޚ#_sM]NSEչu&Oʶ=˭ڜ:>.g[L"įtK"r"?{KBo_Ԯˈ{aaavvı3\&zˁ~MK^rĖ: dWG#BRyCS#BCNpa' =@2dn;~^xthD T*o:nѡNlU?inӷCão5BG*x?:4֩(R3U(ag=XV3MRs,(7n05urs<2ptXыACi0#1AQNFB 4\ BS lذ~E/v@&QcwAL "@(@b eB| `q8$#剕sg6l/&?WVm-`8$BY(7W,@T[W $RP"_܊ޖ-).GO%qqQ%=-`.NbIΨ0W(d(۾N#gs )-˩%/MȣT\E'DTa;rA9.]ٿHrg3+4sǚy#Ekn9G8dOmVLBiٹ 1ܮeܠvnՔߢISfozۤϏrp~s֚,ӢΖYdĜ?{U=|ϬlM 'ϟ8ew('^9Csb5INћv9:{ASvZQҙwoXԭv黲,h֨3Nt_~AĞǣ*B{7)ҹCGVf-h_$4iᖀk?8ȶu3{ #R8]\Lknf#wn>z1k\;iSYNDžZx|kFl(@l q٭k40fuEoOa'Ob\س1iB>ĞÍI_5o_S=H`;BCCC#a v9ɯg!QWX[Ha';e1Q/X>=4tN9qqk{ȐKF:qe߽E܉ϪH%= ߀b{Be.[U2?6O.}{VY*ߠs/A{DLظ||"8oMG<|qv+"6 mR`m[Z@9+zCo"|}r׳:+gWg7[w?F@@ϟx")K\ljAmKBJ f[] B_'FگW5Ə[=?㑫uȡm3̡Ϟ)NLߛ 2j!ʷ۝\PQߊ ypfG[JA;ED?9ֻ >Ő؈гK;҈(ߺӛrZu˺+"x%@dőcoYWu]tn+ظIryUo嫺KnUَTD%sꭊvh^Um=փ'8ҶϱJ/47ԚHPkGo?yr8wgu ݈}|P>ڌN\SOSB&<0R' ObT'i;tsN 9!EQ.&=е]r@l37_xYVA[mq+1OnJZ7JaVMZpn(W Xop泇OoVSHI <qyٸG܊y#€!,\|g#/`K)[~,:qBݣwf)"j O-hG!58p%#'(9 x6)Zֻ}1Oota)}?WܽCXٵc;2c\J1P7 ϲwo:Uܩy[=eVq_>$Iމfס!kND $ʕD"ˑ]*evfHV#7}j6klv'*R :Ywi_|˜*+Q{7nUSLQ#=gKu&kjd=-kVσ̯5hqߢ-b̢­2p?wc^?K_і_y ptfCvG \uaNNY|:޾e"-^ =y&k J9V.&ii 3^Rn؆fY?SW\y&7ȧg@FdT(J!"IDpvI lGxL^?T:dgv_ds$n̘xuOٮq;utD+ !}&C .9wiVGӬoK "qm[ XWm7M=y$ . jgZ>x.KHZٹ[IzGKQc&WlU |-ҒFm,:,ԟlo=?Lۧ?ݪ3}%HG{6d@`vk;Q>}rm4U͛ -X5o=a돾~\2t}?ޣ  IyaĀ~#6%7gy6+i3'o3\3='vܧlڵdΑrKmlо=?*@E×~yĐ>{_Lѧi_FwtԾMc.BGX3N_O oi ;R &ofƃ]3Em  HC76MH)38GD `rW Ժ۶dJx$Ѝl !oh{8|U{m9ɑAcWUc~&CVǧ#H|D@e_ރ~5l-/uL V!~y,cxfm8~߸tbYg+&K:&w^s`Kn;17,ծ[!mzfĶYٵ}Q/X_/H8ů9xh̝ םx,l2MQ^N8y}~lYTi7:}IjVֳ=#х+` =vO\zzp^!SAkw]IH{?Z,lܿMH8K}n\pSc{Eb?+|F2 <%/lx{lZ>eHa[v5# Azaw\U#?)>x~*-С?,ebxc:5zG_!< r,ߍMX뢒D?.^O_%NcF8[ZTOS  xoWћ^x:9f__>lN^{*I*_^=o 3远 KɋsHZ7!ش9O#+] G;r^P; &GmpF 8HTU`46<ޮ4NdȌ{EG =r{lz%ϸvvH7tvS݈ti]+Jo[deK.3Q*_^>,k՚@tĈ;iːW|4.uÓk$dnߜڻ[ITm;Ͽ\}*ҎUQ=߿v矱OS23^޳㱰A<`wNR˧ Gz%~p R!v八N%?zӣUƖ_xx|^JFz\PufӘc;<Ҷx;dXFT*1ƚ ,Tss ?ز 9K+^\/eCǖ<&siUGBpgwu -;M!J7[@VuqpMdB9WtoNaK_CHpõV>ϬUWP~d6:]Ko :-▔5l-ltu˜Catu3e^]?L#zU9VNB̻_}x%~u{vW#_Um'2eYٸn &0s(kbXt=ys@§øO 37l{!t֓lPח,Lky4|㻓f\3 .AgIԋ ^A#BNz#! TϮ; u=Ѹ+ًsW)2E^XEǁvߝ{a?;#ei{<~;];s:Ö=7^Mvߝ{~5yJTfB6|\Ϗ,F",VU\E YU8SӮ$0M4-k̠ኲ`B51o!yR"$NɣٰߏWKW Ryf0i (l[n6 ƘAK Q&E5i0n~.(9x}6 > ?WfSߒwh ħ$aXvr Ir Fy !_&" Ggf Pk,XxC|z#aͧmo޻;Ye ZCYb0\cGbIY$3Da[@R"bZVi:#{P2Z Ŝ=GYa>)+s3-΋w`3IHKuudR h¶'c}gW.iY)H.̀g#Z|[I۴Ect ߧ^lhkǨdK6O춫QxoEYe,5UlPk=>k6WOi~ǤӼiXt!d"(1L++c*x2X[b_QɭnZ2;muab\Tb\ԡ}_7wN:UJZ߼I.%XWb?aqQ1=<,OujݸIԍ9Ӣu]ܙB8eEƿlU ӱw~;SIH-I|E7 XЪJY'$elh楝iyZߑG?e]f]ct l\cl:+a4l.7ϸVt-(*asPcZ``D ̤/KoO%:MׯϬc' a úվs;uudϟL=SA +G?u!gdc=#I D $ ihO H`P4X}l?ÓP@JAyw\ dմJE,p<#FoX Ev[eVsGOULl;ɱ&<c-c1IhïөbF#Nfa.Q/1 Pb\&.s`<mt4Eb>RB H\aQ))V^PK]:F/Dvx'3^1h̯q[Egoa6pl#-:1 VQ]vrbr;`o 3KOܠ&2yF.}Ԫe (j51TmlZ~>&s]RqjV:ށU4O$Fq/b%9E*FZKҢLݭ?U@°#f;,)<k-NN[Fk²WO %ﵨf| ӆB ~hC?*#Mh3BSB·qSqCדix XIh:/)Wkj 5N_|jJ /V€\N=9ccqJ-Ky#*@6o(+r3KA'*HÆEF X=q C=nBŸ~ kYQ5Ns-^MHKS2j":lI:vȂ{FhgΩ z,6[&KU@I W ONqrY'T6Q_bxGxԐ /n@ BWq5NzcFIQ0R#X 5-JRR aQ_ԸГT*hSُS6uxrM2ao X5;42 :714W0E ȟ\E6B IDATİo^N(P2qj$C#2, Pb勛 Ya yR,[0E S0,Kc`)^OJ~)ӑxYڣ|;鯔>a!|L&!/^#LM˔R4 մWu|L%S3R^&WkSTK49|qYXzv9vo _.KKCyغeRA-45\&t !*{V[P,Od4T E bapVUjH"gF ԟvެ!|0zTEryq5{TiBdQzxD$jpH7nG#Du4CB:aa ByIgd3]3 t2p;&Jt5v[1u=;.f+s>]eG^J6hаA:B=]!C>~!ʋo`BXv jyпnXXt-€ ԯU~uxW ɲv?NM3qss2|䑗3wnfTd]}8zFߜL5ǧӨO۷h޶U+{na*@6TiG{6 ^i_c$r⪲鴩}6=ez ډ>w߮v`U5ڵ'1͐=ocxg}ajAGO~ K8uUhʔϚh{Ҵ̵Ȋ`D|>m7J>s]@RD<O`Y?+D\v#k덚>VC7}gYJj: _yݨ< m7o{ۮKv/pO6 ۢۈMo/եHmpǺ| ٢#ќ &vWG_MHjtl]$o eg Ƙ :{d/D?h%cl:L:wT5 N-H́׬os&Ysn:^T<:yA]33 җ6Z}T"*ز-W:0sٜ..٥ůKx-0[| N=W 0,eZ;=юkY & Z9 Ί<8(zz|Ѭ}sdD=Aey& '|vi +6^x2JkOԫs[:'xEQD)աN.yϖi|s[:g DѓcfMS== _|_}Qe,ozeH:r3Bg*Ϻ,;zjh=sw@>gZ%AǴ9Pa>eTPqA*|Vlqox&yvQW(]BSedz.³?0=s /f 1=pU9~nrɢٿ鋿M^WN-̷ԬR[T>(!gf5$ 㜋?Yk]uXT>sM8a̗_sUFء<E h\b7likkBN"~#4G-5B2Fdީ.ul)NY{Kb=;3zqYsѽ r-Jct cZ՞Q%]I^%wDl]D-Z[sgm,+[ΏZ[sIUd\6A\pz]1`D\T\<*aMAk}_k8uz9 ScLoq%)DXkAB탎ܑ;T1c&\"+mܩnhN!O#]6(;V 9#Cۘ֔g9GU^,`JB>$iҧw_{NyoYTGUE,QoZm;}8}׆Vq\ T7\yʂ/UJSb%H%^D*rjy>T|rνV{&r lXBdHzvލ}yH:׈wg,Oޮm&V[j$ K1vXbqݴ툀uKy]EEO;_b2~;sEʱ\X\6wqȳm?o~asl>w?ڸx*B~ T@7WB No-ykɑߺ+r;lbq<Ͱ)r;`4!7iMqtCy|O#;ʐ`;Ҍ%ch#WF' 2Ξyt[ӲB_ 9S/*c'{lEF@[w^v޽ ;&'_$@JVW`;R ͝>iFTLp_>g,-ahhbbalQ׮">-C5v, BDG %-K+DHtT|FzG\Hl,U Wxa|F16',5•3^ q"H>XJXABqy|ChӔRYJREf:/Tt[ m9AV޺o2Iio,dB-6?ro!n?ϵ[ۈ–s؅wؔ +R;_\Bf,0fk9Ȑ*g7RJ% }˻2A2nMYIDW&i"{Vpe-i>TA%cKZFYS̰eL*Tت+fyn+a]2)hVaJlu f]P#hV|*[5na᮴MPQ%dl,a똀l HE[|Ȑnı4Vp<: .G ]1[E8^RQa-ŮUQai5ð,(#Gc "yJaXaj|aB'/HBל+\/KbH/IbX_HX$ D"{f^ߦu?K/8)2*`G-=kyɫVBUL򚭬;=ɒĦK6+iһcfi{*H(xoy9O,~6iWڤHoΜ'?i0iejBmXl?}=6jǼ.dU"k|ͱKMFD~,vaۜ/owD݉svw]I;fv_xV>~IgDY3od`owN}gDF/y\|Fsxq?ܼ}/v{Զ>HPwDߋur.<=펳wbn9o~ {xݾW|3{w-m=5ȭ\7p̑j8m9~f['v-YKhqڏ_;n쏂2A(q\.aF9C`HH,z5 %\&SV9, %0D*\.W'sl̘jc U*5qau8| \Lqq1dr% .r\Aa._@3Y7d/0C N556􁫞o^oR+4sO 42|?cO yXLF;".U"/2xyEazu#wj](97tPdė& ys@O.d#WF%#V/=ceuǙK7$a Oj_+w>-5:~V' +*joe䂞/#g 'JW-P2bGdȈtf3xf5'Z>Ulw fE/3fF,]_<\\utcuE9c;¢#GTwÙ40{GW]ktp6' kC>l+H8f߳luh ~ƌ!QNk'1`0梂P'U wB$h\֯O[1`j f1 f2g()%Y <$V,\>Q* ]qHV+)5(JM LV* Bf)+"F)0X75%.`+d'/W⑷_Cl9Vx$lo%DI쓕O[ +}Ή[%m왑 6'ʉm}6N['x"qہ\~/6I=^:Uxdۇ Y]~šo}y{d큘䔸#BVז"-۾:רLaLn=GyݑlюLCMˌ S?}gϒ3}ϵG6]Xڭ׼c:4QXeן60Ds?l,A5H|?ZQ(+(.tJuz8@trJܑ52CFnѽ~UO|%;+ us~_y#LNux}!G+{GlIܶCWgѿc<׮ȨbVMn#FqzdwbÎԠj|6V)9gܑN#M~|5{:xévQs;ҺԂ.} q/ݿU{O뗗w]߽&4Nv݌ɛUp?co?yno~eE>:vUէą Y`ro۹svSEޭko@qz?m S*ˬ,V+ RE$ faYVMQ p\7`Gf1KY/ |"L#X,  I"Jh0$"DpZtfsq 0XO14bX,E| Cun\Si2"[q<&|Թs%*_w$n6㗟d6_ɿxaI=^]&)=ΝL!C><ef$, DB4b~ _0*L&dJ1Ip"B Fp!au%DVEc)L&Ux@y]{y?ؾmWrCq_-Ǎ"2\K?p8Cfq5 b$Ě}FB*ZZ@` XIF -\ԾhE'KR-T *w㦨G^'ٴហfb]'onTr¤ 2,\|d n.\_+X$vS IDATm\Mr \0!Pt~I8#:p$cӅ+[zjFn&^FbXvO˚" kAʷAAD7D0=uw'1:vJ/0orlU#Ix|5Ӹ(~66<hCڐwsjOOXk^݁t+ͥ౛lR{*K+J2Ha4R*jLp g!@,M3Ʊ >ב # "HJ%x|Ij\.bj5rv&blFYVF&|a8E`HEJljS73r&|ElԦ "V¡f6,%Pv)l$.pve̗2g|ʵ-y MҪ:=l ZեBҠ'%K򳳡v c;5Hi= F>Rs-4a GJ"cBTͯث)w>\9j ܔb!κ'*YU/B۵iiOL"Vz G􎻘geA-O%~/򆀍s#@?W;Iw&)-\~}ߙ[f1-ҭOyt|ڌ1Zhc7i)1^7?E(5Et?<|:EMuj‚)+O{{qLsNٳi Pj\Uk\[qߵ~孊^{q0#{(6;Oݹf\3$ L a@3)ca$ rC= +24Mgǵ;5n$l]өQ׺.?lʌGlUF"2QP)cjl5;fguYmG#Kut~Ų1IqQIqQ[qbv9k,C.5ߑNשwICZ[*2s!}ƵcXsi24{fi!_ $US4K)׬3`Quk ۣοwlͰUSa$&If2?l٧6,~ J`k1`@YpGM?@~51_)CPjUݾ^V"RiuAM{ÙI+ kY裇[?#M#Bee1.K~+Ӫi#QV_ʌ1Ř-K~#WO) dA&O"!G :jMbS~~&VԸ AhVk\?4̏xY,Uwe*b+ "-k0GTu5> oʰ6C?c+,'0*1V+4A^k-h(Ts=;{!@H5j{UQ/ѹǒ;gtapb̖R4=ІTFZ{]6:F(ǮSQ!A|i 4x^4xeD GnZ7 c77 lCۦ 39Ue pJ\YZRȤ2T&SP ph*L*ɔk1UrM|\ܩkPrL**VHe/2*L**J}J.KP2ݟ,Jj L&frc.C+2LPivR&Wf=cR*t;4\iL2L&W`Bo>iW4:bdF;r]c_8Xdh1o8a`vM}ح̈geR&un9VٰW@z ],E޼bN?}=lT_yU3~Doɡ2]*̉/gp0etOP jT֬CB:aabinJzqOfN 9[i䀙WII)UiYR;N~aj!z߳ޭiS '*6Oƾx|Եid@~t)L rݺK1juO>*cW֝WrxjWG[0et K^'cQo.p%yF'S=>ASJ Ϩ{*qh;|ЮDJ0f7 ꄅ9)U?C%f>ShIm?#J4}s|:#Q&=k/fupE'Ie}UM'X2D;Tɧ=LicjuN+Y:F( >QIJGzbKo[vG]#A;__$_#kpbi^ͿՊ2_CvɍuK/nŨ+w<)l%_νP{{GGpAª:Ϭf4k@Y/,)S;F, = S'#TNݘz3AUB{*ZU*uDJ Jx#0qh~Kf?%Q9(`W=cba+!=LKI8DW.[2kDgO1k_vtkwG-.*0<@B *7kZb):o})AK^\:m4X{oqz؆]p5/wO]0kR e#fY9kRn^ܸe_K|u>6 d+qhB"%_4{*eqWy0|"dwN.f3Bnׇ.[2;8ų l8y3Èkz<4`Ou^ιvčЯ]d-<B<5;V3!1霍&EO-B+lIAfjE0m$~`s7(J8hT\^1jR^ *\vo?|?1O\X?绥"[xsK._>0Kݴ'xUמ<[VV2ߘ9GG>4VTE8*l7,lгA{k_k̻`󃌢vWbޕ6✑{~$G6*ETk~33K(,BVb+ Av}1rs=ݴ*r±+sU"VNpi ҳ!dwdc@KQO"ivX#*rb{EbաvFa3rj/dȑ)=@Pr!'?Er`*-SZ.G*B'RvG;*vMs8BO 7d'6F\6tIg Yxvaibqqq_!C8ŕ;"9 GEd ]>;v#]޽WT'_;,Qcǚ`leyR:ب"#2bȶVEoL>RGغb{*\,]m71T 7ݱjl;%Bβ: 2(!doW]d !Ķmq߮6mV!{%V+²<\ rFǰuu*7V%mpEmȍ{FR(Ey7Ʊ,r>V*n .-q9*0C7dT}iw $VXwd?2YU'[G{#+^ꨖ #Fqպq͉6؊>ds`;!)QuT| 4 dsBΎ3쨵h\I:ټt B.%ԋw8@p\;]<ئ:]*l)fvuESa5lko=ȥ-r^'.h)vq~dM-ylnCm6Έ ,FX:1eR$Rr\ R!C5v|H!$3oV`o]9Brmr/`40qAhB2ܡ7v.Q!H'W!L؊~qEO= kS(ggE& E+*XA ABu <.C `)ye y#y\AS*J""qsF)SӜ"얽Kêj?Q &3ZIFIU"_Low`2sbAT+O *6/gXLv%w{O\r#[e5ul%->1?Lm;1-c+\S\D啷%S&üvX5piR3jfY )cRO|Y{ȃہJW'܆y]ހӷ{Lxnlm`NĄAnİ2h7ڟ݊1Oj cVjo !<9oܺv[mEwjNA81&%C'uMޱ͖'j]=RQGdUF.0CӴaXQS4uXeYaYq`h*}Tz֩!\0 &zxl`]GAT!OF,5DBdak>EBK yDue<L;{nyC@, DbH#BX,$5 .O bX$@")bODb!sx<1._ߑ\vӢh'oStHĺv0`eQj8c=u~[]~.=~77e=XT1ֿO}Ioף뻗 c*ύ _KOd0Cdw_z^oz8MA/e=YPJok]zt~y6O1FJ}.o*h;zFeՀ:lˎ?=XX˗Sz7EϚRx,^ˎ??=XQUa}2&^=.KWGUtpL%^$+w@3'^=ޕi~uSy,ƑUTʵk %D-iy@XX")]DT9I0f:OWf\D~(U=؈"@)R2!67CnKon<14`"cBHE*. cEQuM*UgbR)H,$2Ēk EJDBP$6PtjճB3Y* kRH(I1T:aR9 <25\mJpYѿ'W10u$ w  *1YNy<$3f:s،>Bf &ACJ\WQ |lpmk_\Lf&L&H*=_&[/io2,:Nwq'<(ə3fY!rCYL2i8i2ϴww3gc{/|`;g$J_LVQLZ Nr/ç{o|Rsu:8wjrm煨Lҹ˷&/C-:t(I`<(3gJ|&X{'o*rؾ_EY3$f̂* ,q;6 ?5i P5tju1Q"S;ۛ2 s%,q |,8w]y'o1FTEg=Y=6G%GB8n!Mu}\+ou % 󸝛柞8dž=y'H+!rܹyXy^Qܰ'W=<<>L +ӊn}0AGrnyx}0Q-~*d 6fw㥊R#Lq2\uplD.;@*kWdJ e. 0 @@fd}λ$X50Mlz"hL0AL%纈be4־7{㕓豌i0E#@MJicI*YL0EcJe,#ŀlD JbyH IDAT<4D Ec ߣ5.WO W6SOyNqՌrp GOE`򇥓".6w:84f_8 cVlC <~,!1d$a 4k• >:!JF]kg<:|C|zr}(}OYgNx-ݬTKG'&ԣ';kd]9,%X-:f尸C>`UNS*̩>?9AyK7k&YKGO'&өGOW]AH{?.? x.j+W%*KTtE̩Oƒ5Seϕeal^|so儥yr@mr/?}-¤ǚ}|\?>ᰍ zri{c=>{MEo< |pn{Ӳƭy?Ыw}~xxh= cn^\]3auc(~>AO/l؄P۠5pwͽ_l\ӝ o˳4uYKEFy]޳dX/S1bGfseyظ+ |8066eD}JŁǶt?0Mr,^,HK/QQ)VMA 9|oqwO.A'!@A#\s.<pe: ϩҒ'm̮7xdl>Ks>Xet E' Σa;ʻ^Ydٍ8}h֋/C޾cʯJ74yϠ'>96VeEXtMz98p)FuS^x> ` L/;adȻ+ح7| :J`wZxJP/\Z:܉ ~~϶̓W'=;?s&)n<=~ 9` uso՗{ss@-=uPdȧv{f}f)2$|ok9&MFl8"6rԥQ6帻Ѻ&{#rI0@Iy(1\A_~4Y^hD  Sn=]\zvcxIg?):tԿ@JƮ!h͚Ia; h#gdk[/^+ࣳ Ǣ3W_3X~M;Q̏jOsM+n[G豷嚲gﭻ}ؔc¤^ [atPciV>ŕUgɻOqeu Piɬ/E*q%~¤{#FJ /ET\ٓ JV!]4+Ku_¤d!_Fe9EKyF[&zMZ~Sz=g.:9k.W\YǙ΃ȹv 3/AؼU!4 gny %v>6n̞>Pa-r]T2T n$ŲZ{j7 za`qeI%i@GT_xvIjsK&p94aJúOI,J"_H9 K r2E+e6x< =wEǂsH`HNE9Cg{Wt)񳜆huǒ}rGxbso#jXzFצFH%f "y)lar?pz)| cO jܲӘ9ҠU[unںӘy[|lcϬG8PJ<XE''޾}o92&Nۓ/?>1g4knQM1wh7nOa6TKqa܌'7miliмv-5n|l^oY4zwۂBVLIOL޽ǰ5bEUHM:I%t\۬$3Ű7zig -tg;;6bZ=Q\Wa5ܻwomu=BŰ^o>}^i4՞G)\\52ҴI#}y{cg*шb><dY\dƔy7g>zywr|fPa=WkW~K&%I>ٿ4aP8.4K;rӰ/o-mޓi) 1\ $|>">=-ҙ/m0n:\LmG8::%7b5'7bS??<7ýqq?JE=?~8LlLl{M#*!e" 䈬z).cB3`e~ʊ Fy +M$[d{Z7 :RWV'A6&P-{ūl$9`bc̨͑~*bl#:F53!ԝ$R\0-kAzp̔o.܈R u{$T[ƌu9u[͢B8<*9Džh&%^9 ڨxeMnju9yF쯤; n#06kՔ ߇ 1kVfn.}J*.ʔ'H(|~;r3$K$}?)8#,;(-Xo|{o6~)_ ?12$ )!gSe=<CL UNv߁'_~Q N6r>KF"թ1"$Ixu/ΨaSk0c艛 Χb<dW@x2 e}]R$5 L}H cǀt5G'Bw$aQL >ĈWl$aZ!Gtt^؁?%&?ص=gTscPM}%UYa [mkJG;|Uѡ`f5TӠyǿ>IvX&)驯!ŨwgִqJμ0.v ?Msm//lff_t'?Ȓ^d^G=dt.WyOʤi0\FI怡Bvhf.gBeb\GiçBwT]FrƹxynvzxTM=g\yn/<>fo"hf^ۄK7OvHBO)p;7%.Scdّ9įủwZWKhb)'Ay1*2)QtxYLaȸ*#N̖@N/ ~]bF9u`$'=I@tuԮuƎ3o–tYc$'=劤JcpV,Tp.G-垯jz%|Rd}⫲oa$;=Czä '<蝰87zQ}f[|?yO5“~!~*]ʲ"RL̀ X U\(&/+AXvڇY>@(9eЁiDuUH6yen s0Ի3I)ɢ#ī ~_)q?գ8AFMǰ6sق790`yN,@64Eyxa탇~ yipT&V|#I:-]g'VEd@,H`$ `,n^r  8| j;y!`BLME&1bWi]wT)ǜR(&E$HBJE2et޴ S*;I+WOٸ\HP р!0sr K"%~a_ƀ,%C`0e*G%o&Fx\ZjD6/5%ŕz+K`?xv Tqtѻlߏ͍]m!!J!ݗVצ$c)ƌ3Iin!*h@(hKp. <0 s+30[|Ӄ?ɋTqj\Q D{]$xvM$UNMk5izg̻^ /ܴV|+ϺcݰTC*J-J诱2'Zңۋm>|6SvHl 9@TyҺ"uHT.!{-^:/t;d*McPxw3LƂb[ 6L`kz xbܿx[zJidS"JiB!$- >EQ%>cc T⣛nyl&vh@cZiE4-|VF (i M1!.I)*i̎2L&i*HM4]@QE4M*| SniIIT*(J (Jh D(!iRn.zZP$շb.)*Q$FD$(I(4U,lH [+i,ezaAI@(z E:o0gCHh HZTz B)+Hn ++"zIIM_l R8mB-Ɏ/`8YyI4?\9L>dW)6 H @II-d^l yIFc ;_ⰻSyo%ZMj2x 0 Okw/y ڹ:q]j׺^_y &e9.,lD*  3ݤĒĴb #Qe\LbI^R|@)y885~)d{tD 1۵؅ QICvctD `2?9>Kdiάɾsi#44Dx\ 6kؐ/ȌK*pk_Xlcdg 5>d`W?eq+aٜ9}I2}K[iYDj%.|#u+nٻl0⮷9RZʼ V+c${x+sq{NOO!U6Yk`A_S zuCL=Gq9>56X*Hފ3dq΄Ljm#_It?SAVٜjF\d%I5){f#[\z&epc)>h,ߡ l`aI샛qSEu;>|y|~G* Eu7>ob-lê_Wު/pI<k7Iɑ8 y0C\Ƹ$,4IU({.Lj IDAT> ؍f9<1N?[g2v*O[cI"_{w6ŰQ!kF%WgNla[Y*ڷ'):Ϳ3cΏR΀YC'#|~Yq3hQ: 'ǟ)7'ŮY;)@|1*w˟khEƒRe:v+=:lJx&Zh[,I{Rp v\15S$ܻp{HљB]_ (w_ %ƹcuo\ߍ+l^XYwmKXkŊig/A˽Uc @dū7,{q E:"r=o#$O~ OEtE"-U痬ްhũD~͵ &HUq".,.kk킳Rz;[Io'!p VyWiLDh PK#d҅%+/qZñ"d+7,i:qs3:a9 :Biƞ~3oD|MQ(X>{T{>A<۽hDr6uuϏiwӎݫozO3(NùMP+b.Mr-Wޏ͊zsWrXw{1A|}k:MmLt !,{ EOL-oUy6 |Xm[ǘ{tI+l<$?<-4\x-\s'`Eq^am'j龛eǘ{b\aׯ]t)=={c`M8;QWΟ;aV}U"BO0ҫ9r*9<Q+U!m#N>Tv"5Q w9d+USz RcT{~vy4>'k_#ƲWDe3\gu֦ZJNPEF)ȀH}sՠ p6 ~w>a>].3i2= y-WWĢ!K֞@eLƆRIRߜ9R{:j` ?3U=\9 sH5 Z&5d{h~hH/~(͢W5yXD~;%l9}ZE*_PúXX ' MXO\#Y7=? .AjըPl5nADs38*KUE3 ~ڳLR2U•|n(,Q!ѧTخHUiCXo˾CjpQCwT$}ӝe^h\10HVS>;U+ |G䑸#9 "^G d0T'<^ܔD$Z#氙 HDJ!bX ? VXacD")-5 $ biŸY~mZ5 vqMS[1U?QIH?rO!T?d5i2C@s-6@ FK+- VpHxǬJ \5f*FC2)U H*?rJoUl/W@$$1L6ZDЁ}Or/lq(:U[y!X,ʴ!>*ebVA27jՌ3Z#pVjHZT. R Rj]"M2)[^@ U}EjɩWV-PS)6*6lze9u텁6f(ou//L7~ָoUK Dz KXUKqE*QN<Ȫ4,[S]AfmD+};l  wVYn_bPaqI,T\dǮGo߮m+_gڭ˃mj"Hc@G_=v?~)0w][4ڱL"He].AM)?4b@ۓZmk1ߞz-JI(JI =GpV.*D1XF<1e3BNbF"=ITQ"&76669|c['$Dyu΍x<#br<PtdRLp|prS"i|ψ@YgFF<_>mK#S2ke]B@B\jIk,QJJ]Q^Һ2kb/ˣoi<{Og,vm~h)٦O5*%]^dd|S_np6s[ΗwE5).]f}rꎹ|nrw#^? {Ԋn0;,>to߻Gq [ӜY,i}>^=Nݑ}8;^/fw[rNﻀ'p`n /Gȴ{[Ӵ[~A7&hLJavʺc\;#[a@6}Ϗ/T*AmÑ܃/@c˿Wwv7jѢh'oSUB:{j,`Ȇy fw[z{?N-ᨇ~aqςCܽdz0۾㏂=:O/GimoBއz?>=ú_N<|8ZGXfU9 el^O<  ~tnSA}'|~tvE7tx"m+~r%K۷oc}K I*LljWUGMoqd>l /zB5Q?u{woH]jaЦL1=/ߟRab #)Z{9'> 0EU)="XBHLR@,&&EBQTMQ̠I)f![K6┩^aIP.`qlLB1T, ERy+8bru:L’8LA(L>ߛܴ aoWu=ToՒ5+C DuGf@KsjwP,ڳAʡ:$&˹'fD,gUWGdJsuŔcxhF>A.N0LNllB*ŞkэsCr]rgǥL]kऑ۾y;> 2U7-8jH~Y;6?pkwzHj%# l=cگdiuNN{1:5rmׅ ҹ˷&M3E>>zlKue[柎%Is~I|aɏw"QxB%G*aP>6dV\\uFZ9>˻rعihdذ+7*u:{wL.o&JdԼKSdfb9۹yh^:߹aOnq*~L'ƽ:*Kv:i/[mޖ9v*M,>ܹQ2dugsIM^!Ǻy=wnVpr޸ײ vm؛qLziVb9{<Լqdڰ'1ê.zx؅}@VR0 ]އ*-}pwv!湍a"ahү&Q0P97xWA$-*8adҮ&њ^DB2幍ci |q=[dֈE8`D$էE`G E4eKRDHF熐8b0 4ƔLJXFz\ X,%L&%)( l!ƈ`Z*T\7HBRac1Ib<cLty@-Ǎ +^2)I$d xD0c3vj(O1ۏ`O[M}kb`M#`Ń+>HXpM{mm8re!7w>< 4rA+Lȕf h`bXf"´{3B :'nNK^2dw~&,L@<_K ZB+]{vtB/MTO vN,Xڌ<ؼdHhiE{W,rl֟rIXǧ[]"X#Ⓑb\2b@aaЅ؛s .[t!*Y3LL3=;[sB d<F`a;). X{e BpowB0\ou36)ai_νY<.x|Erp4mj'>{oJ{4))((= yKS|Ə9N\>u ~?ׯ9sD[Wi)/y藿Di4TZpڛJ-t * Z_ 22Mu-)"u .Vq5 l8ZSM}n0u svnh#*L~Zw>%.:w4 ȑQdѭK^oI}c퐢CGU%L군K/EVU25ѭKnoIWk2)sy,*?S@M4s?}i6l'O)dWC|o ʊim-q-hns>uQGӤ1F:2aā9#F~Gbg-ܳշ5pDE{47%V| *#Gu-t5Ԝ^z]}-FDVolbQSuR.ڻշSSFx(][hGUڠ9zø^ [a |)nVT+`iQV.ʞiH*DVANϲ/3eye) "dVHdIk=;Kގޱ񧨴=}\ :/j_cEVC00tj1 _/ֆ~˽vcnX-iA&-?XӞޭKׁ+EJEXrWk?AD=MS+xrX{J}MbĖ3ԼATSǴmz82f-ڷ>HX~;OYكNN֥o>2t֑2mJp[uZ$D\y؃Fw [ w/d3oiVev2E+KT6g-ȈRN k@10"x=N87GȒČ>]^ˋ+lYlRBJ񻬳rꊷvr۬~Fa 9Yw9iׁF”du_l\Ȉgblnm%€?PQr>\*ɗPˁFDY 8\tXP(,ܶmr]ךY2XF4ۗ?{ImG]L"d{ y-3IÄ!j1qU]w_r._EXc7,kadhq9)T!zgkP_ /VJu1a%8le~=8 a/vaɵqdq 29]d̒㲯Ɋ<>zfʒdDJ,ßΓWsU9c֌+8˻@DfRܨv)M͛mG$S^۹lɌ)W_h0uOG,34СvvlĴl=z\}cKʙϰ}L V@/%gӒDG_0uq5Yډ%|}{h &=N|J/=}d|zZ3_8^(SŤ(-Mpevd{ώcROsmGnā“S#ތHUV; 䈭z`_Ivy)'r/4N<:JEV}<u8[7=}xum 7?Ŝs/RK ׿UKҀ:<;W5) !M{OF*|}x[Tc:0-kAzp`dzfʷG ʺD@RT[Mnju9u'IVFCϢc|\쏎*7#|MWb uRaZ\ڴa'kwtfjF ݳ{wq{hp+Z޹pᎿsr^ ĄKo@ IDATvchhUl ,[f{`JEw7$(\knI12V 6bpL B V&Y[#zMeK1kե}O MxDK %񷗦F y,}fRI_2/΂If:ׄ2zdr*œ (&0eI^fQ$Yslvy]#@w8$ƹxanvzD0Ȫ.n32ޝZiWYZi,;-;s5 TAc$'l@4W879z_{z[>y/UT%IERٸ*xI"dzdtl`4|lZ+U^ۮi]U3C䧘1d5sr h LnbF@ ,ٷwM (U xM ``l0%Ҍ` tX83DP ` L+aL0,1jsDBDI:C/YP@0h\"0b4de95YѸALc:{Wi^5Ē{5XҌ%ػػ1Ơ"XTwkQ8c W IB@kAYKVM? f"n ]}iZ$4)i8AaP "DH "1N7u36A𧦛rh=3;#b"c91A?3I)"λ!rYwџR3IE "H,b,8{ЧΜ06zߜ"VY#5Ypaهh[ UiگZ"ko`^ Lh@Af]~xLDzf ?7zxvb^i֦n a5|RN#8$;6ָ97^\t}X*j)#>'>2'ŸGB?z[qVȅXVŵ:6֨_L=uaσS we4E;PћK&+6Je֘"č:.ཆU8YUQr7MŁN6|~`o\D_/nJ%3d-μŊ;o}+ǜ3drQBmt|DiX}ntzSxe5𳖉?R%4*t}оms)Gr4^3 muxKDdNZ:-|2xK3j+Ś"%"yVKb4YaW=)IŠTN1.{!5: 0 pbcx R_ hu[!Tm 55IPO5An lJHG{!;c˾,K&łq` l}}1xX6F?M%:8rRUEA Z.&4O.#i =-6QC >D >߰y'pLYV( Ү+#"EuW(Rr9b|0P" 5nՠrmVި: ʃf'k9Z=\m,$uu?q1JWz f(ڵ!zmr0 ċlا+m -S2K&ڥ;,;F$ xп'h$ ]Ez)^)eʧc@9Y`iqF>LjFߎari.zD"E) 9 F%o;*uUɲ(( Í)zu;P(9APF>HhFߊfrm]Z`D@*$`#aH/ܪہ25YAVH|B5md Gm\30~Syv `Mul;mύzb!|x@烵b9 FaJ/ riGlF7N{m=ɏ&f[³a֞-, km1nQ5eDL6;t.è1Ul)n(v@w&e |bVʸWZ熵 _CζTB1<g4ґBthvEea Gqa21'<ʈH%<-'zNqS$4wM,qPK6+tj@IGSQiWX$F=v9,֥IT EG҈Oz,gv?Zy'] >s؛5bߎ#f7) X?.PX+ <"lO/k0=Sc`ہQD#k )Qr0Fo2Q^}VnM:IN4V]<79*.Ka n<cfdNsF!ͫД=,Kqm[OALf&¸Ywӿ̝yމt@R?=<}'f?VU-HHuD9_G̹oV}u9ҺNrn*_6VKux9k3ՌwqwƔϐ;G ?E;?q{kGhO >fK΅ڽrN>v+6Pc? oOy[eEb6hLflTF3b&HsDŽ LʶZD= <{DXJsO{ Wf*AK.uE>9\)?_[~.j2H.oPx_T0݉lmNF#XTS>L;{N/eAizTpXR @ۻNv-\럑Szt`C- Cvo_zWn>~V+?ğ'9Fso&_.Lpԫ1Hw<ָ^@s`wT uP)'[HsÌgW1RDuI*X>ۘ쳨7sӑػFΎNёoh6/E ~r lQƺWqhZ,)>R &2ǹI]*k6,Ɠ{κxI^aJ-N.}qDOwֹO8K>W3>S*Z~!S~/"UASY{3/ [6긽wR'K:x|1b,x1Ң4y'z8\򙤓,jmd'@.t[bQcm80d~x63nn 1)O/j*OVٸ_w]8{ D 썵ԟj8m>bv pތFe^?ohyOV=pVcVo1ٕ|zo~y}i71͙4/ZAE͇urzD+4]s 5]Nߞ}Ցso:DY#ʇ+g~ޔ=G!7u y--?ϖw>9;hOsr^>7콑6Ov/H.Ҿӯ +z޼Iܸ̅]a2n"}}`|ų@d>?`Ξh@PAe>7;MLkQ#G:on80|z|~u/vN](qCc>8ӔߞXaʹ{/E|:ڊqYYq{s髍?'2Î/K^UcpΫϗ-Cy:蘇LD[q݁#"?5u".zk΢x7uQ9po+ ij%FK5~fX|82 rc1{M8 u$͛g\y\ /iwWf<Xx9o/;Ȑ :h{J02t+~?}1{ȍv{9X"i}ųQ< %n0BriyG]4*>ѴjmʥN3;G:pۓſxw->RҩoS8(pشw.RsVb6, ɰ=eJhcpn p9BXٱ'9siIe w -^Le׎y7W:N3LPBgoza/a6?̙9v ֗+AU֫XeU =dd_dcf ncdQ!7XGk*XbۜY.%$.}EoKJ2=B04ẠE`fAE:p0mn҈8<2 աV䛝mZ~wnSϛf:-;w)&էX򻳫}b?*'iX떴VCܦL&*~Xy/n\oUs)~>);Ӕk)GRydg?Fݖzq?暶xןy+wqZYϛA_yJPҾm.HK D#](=Kd.ڞK0ungv-w#@mոRG\uiJV0gz%KK[TJhfQFʋ JMpY2 YY{QhA-T0bƨT.* в*BR|Rߠ2ѥiʫZUhWoƁxWb(CJVۑMfoC̕-Valz[;~qJO@ecinIHH*9LUDd"Fp!hi:ፅ0,,LT.e`Oupjioק*Jeiq9B%;V`M\IRI^oaK7K09J 32mCJ;:I4%YKDX`-Yz(.XEש Lt*-ob1%{i` rj\*gm3?WoS m0*\j?}k2)9b߽&?nVor͓۾A/گW{] yo_u17MI'n ::Y[unP#W3ɼ|A9G"_tS'"Qo45͐cc Ãqn޺g@ qo?%PDb>9|䶯xRc{A t^Эؙ۫a’APG\Z[fQCvDkrD*]Nݹtoz%~×ݺz5_vK<^3SôGo|;{Pۨ÷NZݾ~^{IWe IDATB2s?@{tv{w (ŏ<}b {/~0.v#,6 eR_+cW~/P1 D  xH_Pǖ(i5Db4tkT*)rGIhR`4jZc&hT*kU*X"ַ0IKdD3JֱA3$)8wPc?ks+&<;HeZ]S,8w>d380#-1 )D5_M=ɋ#Hb{Nf&a /u@wuoifhvr ]] s\Orlx6.޻D]>dCװoX;&-CQIJ\ӄy 6A˞k x0{5=dFKP)aUV5̸y鵊4U& RV/s,W.^5f{ cD>׮{f:zؓd{%v}ok#Go.}F+Ho,3J˱XSHR#_7+*W-韵s_^6=ro TCµz7wa֥E,%+22<`hJD@H ")sZa8JRwXaD2$XA0s,KKE$8KMk%U2'V6e)ˤ@.ޫ^YM W Ai-1ɋA&k3P72j^"sHg zZm̵ I]{ @T#'F6lwv\{ wo۩F҅No̸^-tu t\¸{k'3r/"Yם2zLz_q G%Hܰqjۑ %9 ] W)&A[A=5Q֑s5)7w2AIュvn pj~o3]V܋,}Hnd#>taH:6U#=G'=Tk`f.D3]L@y˕>zB(={Dw(UvޤQNK|`Qnf~;k ?xyy'[?4{!S5r!2|\/?]g6wo{jc9Y~i:('_|[<ŵzK?hVst'um o*j?.{mE`mOq X:EYFv[}hRucZ̥`{pFYu|>xj2+Uf{A@uxy#"%'/DL02E C $ rq:_"¼Pm")A!@<+cR1N}NQݒx0owY_;j:`I2ZO&r7U E$yH8 ܛ)|}}@\{Ś%n3sv;x\|kAΙ#gzx?D>~;Sd+QLԇ}6ot!~X@xbܖ.a\MOs\ֱ7KB5j+'#̶%[_5Tڴa0L}L0]k*ԭqo }6AK}!X -w{tmZUt'L|O*s v[LڴE$ylWvyVЎ@6zaX.zu:Zi-ĿAw6>Ql==xSwkQ7yKHJm?ӂg}!8RkY7Gw JN @k,m=?8:=?[W SJsP<21")DkL2 ¼N!^-}^OE`*qQk,ȤsD"\_)6cUH *.*ߺ/,PPaMMoW 5hUTMZݓ'3x%Fφw&5S IgI<儇tm7pz?ۣ65(96.EFI=z kN#sa( ^LR5#|`@3TS;8CRQQ\ Ϝ8u-ωU4'A#CJ&1ST^^u,(ʆ]/OoD.ܜ8q?7s/5X{B,]WK ~CF4MKbt,\ XxP7 >zݗtLaaC붟4:!yfM rrۯ&{{C2Vn'<>MW c,m<4ls_Ňe](mP3ys>RTUƵ놿.mKS]u +w_7<}XoaKD(\|ͽ\%GgnYYؔ+jΤ3?Xc)?+1rW;Pj]{l|eK/#~Ȫ~TcGVپ`X/wumjIۋoF *⏩roRХ}3@[G>1bAWs>)SF )>?9D91g֤OaE-wRThtiq~Ϸx}>FC_21"82' A q5#zldz2c峿J쟠$ 4:,0I?K0>+,[4s,h8 \]1ƚv A JՂyV@"JDغ{"\D&`B>ZKB8rTKL.znUmO ;_c&ĪlJrX~R2ݐEl]{Q;u~*#5hyes4'7& 2(-ˠ ]qd` D0% 9&wlOdj|nxfRMSppq SM:3<3Ѩ"&ŠHXA]u]V=UF.pYQH.U&rSʙ]!)ݷ̤ &+s 04+ƳlI펍5j|lig.>'>2'ŸGBߌjz`mir.DvOg&cE0PrB>IT&b[jTB/1[N[; bl8@h]P( a%$`U.c=@+ÞԦ>|KNmwOŎP5GvLMRcjM׻w 9h_?Jzt4w7 d= |aIATJʲn,4G(Z˩?҂(mXĐj0yO>;$G(|t-ϩk [q}O^dliXi] w*,5XZWA<}2قSR;Ҩ~hhv#f3_Eht'tΨkf'wҍQ=O!v31S8Qp8~NNxVgY"-.G?_:'mZ{z>v4\v2@i}cf`xGڸД=,[ Yqm[OALuX0܉睈9hJG1$uӧ}zOn>jf .`cU{-ud9 1g#tf,Ug_'liJ9rh.(sCgKm qh sԀm,I1mb]z\LBu9al /9X{!*(~MhKtH/1VʾStQ;f/'L^-:L1IU822FwSI fꪫ|a_7|XGk$w|KL9kw睺= r^|ssm9;hOsr^>7콑6Ov/H.ҾS꿧|ry&>2r^?we6kAϾ?wL 2X0wIQS&sg?P%9ϵ66n]ppY{T4pO?AgiJ'Zt<~xF#'2xb͝W6Ld˲hoN߻)|.|d*`rwRqmၱ\Xґ]7)og>h]zwFA7CͩwS& ]Ŕ7PLM퐷H J* 3ZJ,ڭY̱W\ [Q獠kd[".x.iCi+̀U2r _! ̋o !wXJ7?DgJ*(uN\u,dw <\.GG"9!K4K8_f2L[@1hET* +NƥUحJٵr$,@vWlu?TlL265Z5M^ IDAT4+{++"ɲޚ|Qrn|DoAdZu!TLgT&"񛵄UH:= h''kòqz5l0.>#9`]j 9tr8l(;DLcT:hUﲂXiHRu9 j6߻.Hޠsv݃!T<fvKxTͣ~Kߗ@pVwt>y\C]\ $y˛F9-6&*f,@VRJYU&?1(A'&ySzEy҉wiv"]ޟ78$A2l# ($(y8@7q3 uȦYx@6͐''ytfHб5KbҥM}VHP}Q<8)._og7]=)=m~y^Э{ABn]z_o urW]<򰋠z1[^is@}>!SBTR`_o;u;v|ͣ3dޭ[W/_Uow,"dM-~BHxl;bʣ7χ 9鄮5;򰨱m?[wn2Oqvx/΃cȪ_~fo_|={Vy4 Co^}y;|ZT0 y=|Z"խ۴ieƜ|pU)dDy4sRg-cb~n= ?Ҡ0ݱّU's>=}t0v膗:F\7s1W3W,Z=$J4O/zT}qݻxt/)- 顧WNR 5;`|{?n_֟f ^ػ{gGV%6v޽%xu>-@zɕ8'[ Z\Kf5 aE3"lp1tqakI>[hMVe5k^x.*^~{fõrH1f,vx//{5Þ$,(*2酝Ns~oUKg9 UצGږWe1oғū=bm$O<9_CFQR&zx*W/韵s+\YM[V9|W-퟽cƨ+|٫Z9JxdMFxb@++$|jř& ciѣkͻ5uŶުI pދP5ﺳS["Z K;<oP4 qrl'uo ۿ 5N)`v:] Wnc4[{v~l{O&qy~6vUG{k>54۬Nmj-ty0v$~Ml{N?7[>osɈ~dIj$]h߫ޭ3t绂j ̅|Ʋ<H:o -;|2GfٳGtljR?i$~o}ֳ#ʉsғaJl^"Qnf~;k ?xyy'(K2eP#"gU{ouf#w~o7A__SV~z2$\ռNmknf˂jR,D0b*W| B_S߸#Xz 䒨 KAՎ]qUwIX sxÞ'>9J3+.S0Y{sh^ʼڮ,`@ܝ(f3Fkʿ> Z8!&GZ8:G^ MKަLpE N3?HެM07W"0ip?Zb?GX/?O3q] o3ڍqJztzvt膸%(z*'2dR]<+TI @* 4 v( '@T?= *9S*1gP1l7Y6q~3q7-hY)`\+J [KIܳ ՛~(.RmօGԊrc#~7׭3Eޫ\X]J8\ KD~u yHؼ1F:?+Hؼ 0NiwKqF8po^ Ϭvegc#OokWjW/iü\ FY7N/ӝMi{KfѴ-=vkdWOi_xf5Kߧ;Zm8_,T~莃&=w0` i޳E 7)NsE]eq h[\;wd:\²md4هtaՋrN;Y溯9ߵS}T3v *R <9P̰uQP-X\'i[yp۩ ӵ ʒe{F}oTV, L7AjZJI?{GK b캳<$@P%AX;08Yd-VFj|l$maRTi{N%SxJݽ{rҪ1kfn6cNԫî& NÏoGG{L ft*p6l3ηITڹ'_^#f͌BCZVf?ط_8ŏS6o 3_(7}=[5ߊk<?:^ɏo%3i,4Ϊ9;n=9*5͝[_zxVy¢3cOahX.O~)/QuywPl<06-ѡ^=9Q;vuc̞^,MVg #P\{wwr:=ݱY9;cўjK۪kPvrE L1+ؽQAu f3<>& HpwZ/OԪ߮ (v1c#]2Ap !Yo8Ne P?M)$/咆V +vC|эZxu"Aw^>M0%N} {Y7.\~mqZH,EOnooi\Z۰acѻxd=G:bX]Ѭt-~;ĘǕ`YKGݱre9q*Gh vsl`̖Aiz\K뇧*֮O}kêsK@kѹRr4Ac"::]=ntt'(Rߐ* [$+ H .~!߼Mpőtgs ?Ob|JʢN&2]:9K\rb0i@c2 Ll'ҫU֭8)s6a@]w+zqvҪ1e'dJUktIE/=@u7U=Ib2'=])*^GH۾(=]%a)UӼ;Ss6P4 +Ź Rbl)U3`fUK7Yp /t]hVr} FdУtݿ{Z&4g8 R凇h'fޱT-*yqU3F]ܼA 7{E%$Ox,Q˨z;I䞥oxnz2=!'ӊE X<Q#cc/23stI*49&ٜQs)c#^8GKu0ʏ;HJcdYCtaC[@d*7@~yo5ʒ0ںAh_P>Ba0/ud)~~6ڶ_fNRŦCXzNø;QN4_x䏋={ƍ4ii/8A%A҇qo^@NƇʎJ`eFt&x6b {r)4WhVY<:5²Wo&A^G N4a9޼G+]"AAa8cW)]|=nL)`G^ -8i.Yn@EKR;):uA`L18<6'PRH5:FT•>LcVCL!D!>-PYm" xST-mPRBL-)N9Oq:R| #)(NPu¥+D,qOO$[<+n?'<`+QNI -R&Z$)LpK4V~mvjeXey%R&kr?@}>$ Aw|޷4C7ÓdE)Y_ o_6?2LOXUDY,]:*9:VDQş~ 2eOl6j264M{mfm)s no/FzVI w-ߒfb 䈀g) Y5>iߪBŅ^;yK[&wj66-Rjr W(b5ܴn7~Ѷ{q?GVSwvE|:Yg"x(d\?Y$; &J8`-czv=Q?KWW#}38xrzQ54RDe5QSkKw6+ l@b0J˜L\vsan]M=ᝓ31*d__5OJ ^P:35r fNXՎǮ"=Pn}{ @AzF? !5 .ƆU+Ab}+WP={ !$d4&Kbtӹ=0S @9b >zˆi' !Q9|^}59]eX`HwA2YM B&eY2@m~K+1@}L ,]ت#*AYjH`QJ݅OQBEZr* &xqO>/VLdVeR9eH<5k(%Un^O+=ʴTm$ЭZyr/9 )hmU]9>Gfqe>MTCتi^vmo_j*kE*-1ff~X$J7Gfqe$*!lX$NDUM H+ߧ-i֭<Uh-WL1J!$vf4]wW?XqmoxҋONB\[7碤" zm!/G0Q['Y <&P*=ɕV^/Q[$L:vX؁ I c G1@ZE'd_ɀ:A 1gq H @N.2bJqlݞ[W\i*K*YK.(,4rhJQ X]W"p+%cA e ~K,oExB,>z1E:u|ܚs\0($R qNbdxmizG}a 0GcHIANU Jt. \`R% ޙHu_{AGq˱s[.:FR"fNK;q=N^ mhcR8=1\qWOm}:ucݝWROO'~).&p|fU9R_ XXy)I]5=8J\ݴ{ݕۓ @Q%qm]p[@pbfd풏_}UTBd >~O>v-h,ªs =,N|/ڽ^1#[ӻ< x*N(xu.dyrrDd[r^T8K9g9`A󈿂r)@]&7gZoC8X2_ص۾wc]<~zfV] E^ǟ-ןf?4EWh=n@\"%Z6 Xֲ )OIq\Bi)hx/+*:'uFlG~2 v>73ʰt7:?JJ\`)dVL'l, ɼ:]YiJUIYjh4 "蠮N|7Yt5=)M|X InE"ūmY+óB\,}R .L8kI5V \\ 9}-͜X̫KvQJ^eY6P*3n[8*ܖt̡pʺyeh$=鲙C_/ʾyeSŗTQEӨo6ai_peڠ 2eEK+l=#QҊ4`0gSo<=$1fإ6<)mޚ!?4ٲYODSd=;dŭ4רo6e5Ҁ #;ߥ6|)oQ2%+l=1Y>H!S99>\9O*Ց)SSg#e֋˧m(G`J8ܧ_:f骳cTw_ImԎ00S[%)o['`ʴ,yIDḀ %)PTw6\aWV<#n1c澃2bq*ʔ W-~j*Q}qGjr6KbJ"eP5>[yCaO =p_v(# /*/\l/;NM# .1 3Nlu7L Egڮ<_rV(,;0ŎGPw7'NnA܊X}tP_~țZvS/*?.RF0>ϗ<^犿>LR3mW ɉ}|QrN37LՎwf3qu y~w0@n XP ~2?9ȟhK_c9-liG2H<¬m;$*/9FJ (d=,eK)1֔y [;`L8-R,{YYHYU YX-W2[:I De# uDctĹ%O&heE#yÅcYeJX 5&jм揟0󩈏tkVF&@BW_e QQ)np{˥#ߖk)2qdrt+j{kr U'9yڔQIO\Kd 2 ts3P,:7HCH+q%I=W͖z},}} s@EMZ6©ֿmv5ƧOwΛf(*W^>p*5Ҷ<^aaˤ!p!E Kδԭ;E}]?HDEE}"6 5YSl{IɌj=I~ˉ>܍c`o觑 qDO!Վ!_k()RV87M H;ƒOU'fyH7pהA&!43Eie-JZCs:%MbQV0\A_L>Wv;>}̉$ǀe Y1<٩+P[ejʼnxpdf~DZ*?GIJ5܀Ϯݚ5A볚UkɏKF`lUkUM:RA%3Us }#idj9+bH ~I1!#Ԩ:G/ft R)1xSDmŨڧl+\͞*I2@6]Nk9ULtPKUL469 Z1BbVV]j?DUo8ӱԻ+ii-VbptDj•0fdb9g2UQԪүI?EjSQ.DU1VϹ*B\Nk7>H?fc&%o*{i:$kWl+}Y*|`pL[^IXVcd(T]1NczEvPb1h0TdDctQ|Ux IP:4¯x ITL5:+7R6 1A";ACD4>'!(6 T HCLjYղcD?BFjU19!^Gmy/ek\\ȒJ&-7`rX\PD $U;\їf3@)*)L0l"`RPR`8@ITx"\!TJ4F !;"ly'jW~LiSYeCDžk>1R_?aկv3 q;ƨjW-j hC5Ęݚ3ZxL}FS_ (UG0А!//j(\ 9=Fcq?W Tc0>f.RGQE! Hudsy<â`8\q5Xe@_.e8LvnQU :a1 O#Ҧ0ƤBIA#*oŇ⨿`¯vkR"I"U #Z/ia`3(,+on'ǫoI\Te+=8TY8?V0wl~4UyD[~)4 պo~k}YpjWϚo:ɼ6͜ 2q qW7mӕ1c5 jmNHn424ba!OLpUv ] ~Lds$<(H_xn~0YÛ03 b{1o̴hРaĦHf>~t=n3LpxNt `Gig<~<($r (Ӯ= ~7 }3t{z=ϱAO? j3$'KOώWTbQha7ÞQEjM-g<Ϳ e´ہ!7˞Y}_  ytq/\m{9 2$,szE&0eՁB"C‚/^݁U*_=;pyHGa<{~^ 9S^<~?x;"4<ֱ%jTb;}_ʨ1jƗoWקc$ YԡC+"jQHzA:JkgJקmR(5)V Az ,6dRT_Z,ybwOB*Hr3mÔ\"ťM4>^pa3,vRB09,ThN'JEU^+RTEG+I\>&8bpx<g'`3pHJO7f`7&i/Mo)  T8.ݷqE kH[ }m*}O7kDFz=/ p-t'+WfFI$t6Iu>{lcFYѲ< ݲ:e)-pQ 3kø k(;h8c&MUf/DNZ tk-<짱?p?ױ%Bg;v̹MOkwԀwC~ǏsQ4` .&LQyd”f;N{(kF\\|F (Dgkʽo/3qu!rn5B2?`/NP?_e؏P卟}}g_(jDНl2hO|}nʵ7*>66oϬ L40|76wϬ󢁫P 4`p^n FkDYN۳le9Y{FC|9n\3Luu3ϗ0e wZ}|&2Oݸvܱf/Vm6v\FEܦ{u/YUNh窽EI`œfcھ:xƧXqϭ*Xљ4=OFaBARR)0)TƘ"*J~oma2L0luN)JPP11))@a!Lq*i(PQ"r1h\*\&Jerb`HAW%ק>j8̹ۙƫЃo) GU EEƠz"-eaIT_~|pyF0$l`eį!̆5`fv<8>!̆5d( S޽y.w6Mg,4'-5 K쮻ƒÃBO 10F ~˱8㷞>nxcqa ÃBT6YջWCnm~}=YgM>6>daA>vDcgY5Fx"(>1̦-{{cQNo^y VVyx,}Bȩ ҝ7`-m,+7mk G?=nߐ _8tl,vnRψ,ya-'< KtP˗ !7KwQ?֟#rNm8>>ci.^C>5nGek9h! ٦CXt4wQ>hC^@;, SG 17î;!ᑷq`T ߘ'<2ydH1/=0<2ѹ=lh궛FXdȓ˧r!g:f'7~!A 4sXsDiK@}7?5k BNNiEyihxd?C< gGEn6V,s] x_z6/:"P+fۭ#^"$:/:"h!GB#^?<7ԒT`0 !WM]q^XtD=/d~ѻ"<<9\׈GCj<7*: pJ:ŋZP^a7ݠE<{4ڑÚaթ^zn,;gw ࣇo==^<}|lR3.sϟ~tiO>ƀht0Um޶RE:A0Yo7֘G7}=zMs% $e@}Yn<_3uDH8_㯴XyDݗ֑KA o./`0 V_AUWh!#Cݦ9؃u1]. `m'Gԟx8 IDATqB67UZf/dű3(M TX |Ýg<\җ3&Ćg(od\v:C"[AcTyMz F@􋌹LˇpGn\\zu= H!NC:翈U7O΋ !p5x_n%UӦwuzv9՞,`FFMWFM{G3{Ĵr3:o>˯m8zQoYR%x+fz9Ϳ#=OR|pv.;'Ke&Y_9vԔŝiCd_qݯ[ߴ+W$pki#{V.XXQ\ۤ Z^P5⻵{hyC->2ߍct)=$VhyçEzvvų(QFp*| \[Hޅig=WW=D5}t}+2:_GSzOフYo˨ 4pJ^Vpoc~~;RdؿyϙNڹgc)j$UL-;{J-zɰ)?[ {/ےz߿5q;[.ܾZMGFfɱv`p TTwpfd| urLJ,BUPYg-qT{{;ZrE lӄ/`[8YB~R>0Bೠgv2 7Jɧ ΕY߲f:,WgS@>3'.fh h̑ {o{g_O}QT"iŽ>-IK/Ԟ1C^FSn&3i"m]V}ol6΋2Mھ77wl}՜_ E¢3cOahw@ٗ7 RH3^Q+o<065ѡ414ɉڱ`j3AʳF|Ĺ2ak-ϩ`§;=;{'=ӉK ڔk8ǛP#qe̝7`w(yO<=j@d6>S|| Z4j|h~8ЌתwrD ЪA3,"JkY> n6f}ġ+ViN~w./iH)I{Gjԃ_N*LBP}/65![E-: Kd7cqr>nw]K#⤔,э${Sk^[]{Û6szhmxd86uܫLI4~gӒ_زӀʷTu-qzxHtF^fkG(ErWW7rQ` s@) -"e%=X3hQ1@:[B2>=;~>CB4i7#bSb诋&cos雄Էn#y)Y~]KHK~yeî(= L<"$恩ieU”+ũuYui -kO ڦ}#u{Y8KsK'?91qXZtnEYtFz4W'(SeI*]B0UBx*c^z0\oa>{l{'knȒxRӔ1+N6cK;+I\Ws33AT<9akt[ߕPyq׃Wmeu;95gcH oJqnfFE *clɑY$?RL@;1I![LV0w~ҼNn.Z3!nr)^LP-UAȢ"D ,i sllQE˅8yoJ(,Kaq1'DQ7yM,Չ(?V#)}]Жȼ Gg;m߷9.DP )u>32MYٟ߰g:>f̕քZ~VIW)rG\y IC~ۼ2e̢Uݪ,=m:9k}R+KLϥMϴUR>T9YGxгnN$UTÿ7QL*;*Uљj}ϰTsT RV/5z 9:r"4.Ies1EPJcBTJUf0mr< )E Md m bIb/%\~o@7z)5Ҟ*FͤĈ qDc24@l6 Q ,L-4*gZ|PYL\C6B$V^xb}B^>}yV{%jPePt\*tK[]Էg+Nf`MMS#ƛRJe DR)e*`iɑ(hL&].M~΅O9P :J)јlahw1LD)Tzs3Q.D&I2X,`hpeK PąNL7z8JA*D856.\t; p';25Gr{E> x9YRb)B|Z0 K஑ = *~R8 JJeAUlwHƧp9y E0(QPn+.6I VH" N`+Q֎u8MHOU:Z W%1a+F,7ZIKE9!ioڹi&M?^}3#iLÓd%GY_b_6;♎>&(GDa /[MCYSsϸ Z2S'*Xv^lpJ0ML hgxSGýyqB>䗘+fEAFKϓOtTEm2/ u&JAb؞:t}2T:[莃'ɼURDHO/.GF90ٌ4%m4lFBE@I 1.:ޱsy{^5|45u}}/341" FT1E09\)\Udt Dɤr%PDL.L:ҷ@rNGGvۥgv0hϬiq-RQPdR&W0` R1<aM [^E6tҼB%;A.#1 mlM,T*J݀ú$tVc 18l6  [R*LGw~ʷő D)dr%f(tfg\IiDL6B* Ѐ@091 D6H6SbQx I[IW+>A~Z gkH>$i.BF.D4y.֯yCs] cJ&3R"{'I/B^b Ț'5G qݐeZ7g1ː^*ǕηWϚO/u_fqUWj!}[{X M~;AL~ľ PuhqGn蕶~ƺ]1g]V'eǎ;{eODrzĥB^ S}{@0y,P,n6 ױ",PÆئ] +[)RRe. rv*Ғu0Pa4 Ӭ4]<8PAݖiSeR4b<5S#JI[!T55b5U!95gWK.~Gتq~XY .!2а}\1E0Zi$:<÷g#Џ"ǘNj|>eG6kSA1QG$J90xL&PVxؖSf^5 w fpMLnlEzm!3.G贈A6ʵxR>,=\5qRwec¡$ I IIb}ʼw];k´Ky J&L!uEbDPJX,%R][ˆr}B&Q($I%RLX,+cD!SǞIbRЂ"g9~%qޮ,J}>D 1(s2I+WKB! s:tLJªi3N+fnuvߺ11ɔ̢I0`Q7vt\)JJ@(L"rXK7V=?xm*K* D#:R.+RA"XLnbE[-1*D"A(\*KnˋyMR8'o_5g%#>ϧj!pU3 #Z,jnJ(;9'X~;Ž1ZGKV.m^ jRL,f ['%vS_6x`ˑw=>k8fm,1z]m[WF\2ڭ{#纺byL/]=8ʕuu ~>}sum7zzk5own $z~@lְuN޾51a]-8oШGFnϦ˭.ͭ//]}e_LpBG:|n!U{U}Zh!D@X@AŊ`Di))bHQDZH BQ$!ʫJ߻˥aO^͛ٙIWgxfk: ZթRs̵åb}v%Fz_rlyF{?z[_XHuUw,Ýլg;C PwVk7 8-sp{OxujOrW_ywשZۖ8}٤nRN]z |3}uct{A.{?Cgfe̠U߱[Nw<:}n׻wXEY)59O- 9\]xynZw|j^eZeΐRzlK uYb>"%nn%HЌbHҵ-&L!ؽVS礬/Wk/]EJ)u !@N14oUj I[3vLJ!Wۇ,X^U׌ާ.$@\z*F^yz/ |CS3w]uߌ,+b1/?]q.7mxrܢ'qI5.n٫^nAx"RB[ffLǽ\DxC>hQ&u*W\1w[poXڷ}>c̘˾ yw9-(Agը>ywTX̃㖞3_ WnӶ /^U#}2rTu<%hptyge)"IK7|4h}yӎ8qu44^OKM=j. *亏YRU.e)DI E(>|.1&n[g׾|\L^9}1u?z8{FJ:myOZJ |3~Eϧ} ӓuɰM+^qʇ_H≾+tuoPyc*~k_> _}eS?%.VQMδqㆭl#9?3?c@|x4>kPb;5sHMf2cI9W߶ywoƀqϋӜێz}L>Nɲ嚌ܸ.,Ɩm[~zŔ1[QHL6jY>IGo'O<ɐЧ5HUklx Lb *@,=SE KB9bqaP@%@ ?RZ]u7u2Kph,hh*DH_4rB倿1v~&HSJtll Pn';?ZބZ]>Y.aʱbWT:&S[}}IFT_cxI)t{xOnb]]&_W=|+֌ ©)AN52F "0±}m39 Lwp{9bК1T–\/~1@Ϡ p$Ȕ F@NS( BAR"2ES-QƂ})Ǩ3$0=0/&ox)$ SD:smIޓ݃S=8x;c0tbˁX h4>5I81C"^cha4kwt!ghmRfD%]y=/F)+$B,!ZΨ@-VM3a FXepiQdj崛"Q.@ ˱53#Og[fFnh0zO"Xl.%F0 `#  @jE&֦ʲbr٭b3 at.2aDǂ-;JW!6r3l\\([2~@-rK\&JV,5M>&vj;T$vteA)dtmb@0r)w!`Cd5q== WP4UNK( Pq%RUt4TT=?A( PrvWB*VU*$ ,O23- Ψk/%AEU`( )UYuUC-gD( wB/&Y꧂ |/u@*blB*bGetFO$i`-@_-`5$5H4J0R.@ .dRx~0!AZrB$"׃kaI@Qd=Q2 r*]AY2?Gr˪#2mxӢ i^ѲbSh/ n%([lJhtdͳ9BFHV9!MTRMEֵ$7R,FwHA.P0(/hfF? U7B=< &1J"QXt_-Jè7 KS@dI(*)"P{䑨*T&QUP#*IE_KU)h.\[WD=AH,ky7(d >ɋ 4Q 'Lߔj&1"s[ւ0fmۤ-ٰaA3 t< ʅ$tÚϐ0*e-&ʒq<20!D̹@#.7xm #GgRċBb߫GG:/h,y'8Ic x0c*V$7RIǨx( IqdzDy{dhHĠ?˄ԁƺXR:j6Z*R,PlM"JTȺ"e-SL P.-*AXo!M*oG{Ѧ&0P(j5bXJn)XE|@mX"ܻל,s UbHF[Bs@dPNNVwȁca`쎁| rP[0"5`H(ïzvΣ"C AnDU3+ˠ\5@:c$X3ZP'f~QbЏ]2Dž92#$X=d,Z#x0[jgyE &2^^*yLQ-܋r; . @DBHK襯ֈO(ibS! ֒ åXQZYSC EMΐJ-q岲oOU$J"ax1!2srDɍD6TWw=l\1QW(P! E4-7b kK!%M2R?X 6\zDVo`eU1˪n70*q>ܤ$"e;MFF°C+0&/hFJMtc2Bhֶ55?OK,cjsaq + raCe/3"axch,+aGU rPڂ %ԥoBX<)6-::lS"J4,?Yj8exPE75t|n}e=qirG\AuݵLS?u<ֻkMM߻AhN1K@p QV,V<%T,FMA·F"򍐀3M ?pPj{QYFRd՚uzREMA AO*+MEDUrNVK< o| %|eUqqR,w68\UMnMFqih4FsVXGUUUUTUU M"+~)‘zh4 C<'4UUTDI*0h2zq&g}EœLFIϻRWB%QUUE,EbY %QUE)s0bu*On(UUTEQEuhlB:A+:% :;CРv=ȭt&Kb@K$`( (A06[,?l̅i$fO0︚wyK{ÉptʏO{mה"MXp=9pr*xCĿI)nλzTM" K?G QO[xhAH_ -bh)TFAc6VlUPl6@{YV(EZ,EGjs(BszjXEdx,8?aFdYrA#\P(DˠdXm:K 'axGdba&M@uPQAA M&^TfҚhhKVv)Lx0ߍaYA:\T/}є^ IfeÃPJF0N´0c&@O ȿ>>լnVQ}P8p`.Fy2 XIܘЪ a ~¨sV"ѕWms& +uW`qAw  3zq;V*}f)IH1akƢ-ǯe-朋Vh_ uxw͡Ky%#iMIσt9~=3eKRbd{b댮PlOzvEZ}b\=툎qr`y&ut'aC,y3{I]}R)<ˁo=kgg*뮛sLo ?HL7[rs6=^n0/%L~&˒kcmo1[.ier6l9iw Bnº24}GP;#:z&~vh&؂$bH~LÕcd#LKF#L7,GNE_mDqg%-3cYhQQUUEh2ktH6y,l(rnMF@ aX eyU۳ɭ"K("I69F]6k! V*H| :hgZ$]cjvgO)ol1^Qc#)$Ɋ(褏xVdYzH-)hC?YPvʷPkTQī)^ϷrµL^Nhkt^ڥSMxMRs^g@Jme;879ަS3ǽjd뿺v^w|=?ݺ~P#֍( }?l=/r\5SjC*c8 }گu˿ޖ8 뻗/[׸6/Yj+ȧ~\rŊ\@e+rݾrkVrٖ_,^|8\p-Ywn556hO!yƼ^t8nے'_ټdxWXK]+uzs?a(:q Lͺ6t6IeMۤ_QA|?t+{{Fx_mHEW m'|K+Wto>}&tjo%FruӒ#޳o]p4rW9Zx@"P*_Ch /f)dDj$|' )EH!_~CP]*<(VcM*Zyfbs{nx^CEp\#yG+tTsBhY%UUTYd`\BmEZflBUt=6ŦxN1yd2 3 }LeM H M~@&w ?xG &8&A}Vn3URT'5Z$킣[7=I 4K)lk8&\R.9ILv̠b{B|:?W_R./<ݣkԖAG5 \pԖsLw^oDu$ٝJ "QU|R5P߿`*֐}wc4iCVܪWW7}> K)e|ɸļ48z]k|bFrBMppS(:=?ۍ#0J԰M"yE(|Lh0j"U(CbzVh TUS@꺢KS@hP,KPϝ!;_"E)?M-/ ˧X8UTdfh Fh" bqax"I^.8Yf %G{gSUܼmɫV$[<:"fзgmYΞ>{RsbeEaK. ?u gC7D" f/|!Ӊ<˙-enИ[v5BmHژ,Ygdws.siO~R.gKʐؖNxdb*1T_c[ \s<;ҹGwT5&Mbn&[k1[v`k5̺a%y$$]zriȆLNqF$k׾>@ޟ$m5gKDvOo1\K%wgnHnaDTd{jZ\Xۍ|E#asS:?kѝd񌠿[DV$l"6Bt/QF™-(ɞRXA[8UYFY"q QatzȢȩR1!Y0pBM%yKShyWYG yeihXJj_= axE,TCsCQfy(`\H aXq0N,4E^Ǡ,7DUTr,C s%IEU5Ldy24M (Z1D`Msgs?g<^X98H^?qJ)I,?ZZ+(Ֆ ~%:~Įq$H<ճĥ:A_lKc & 9p En<R\K5lȶ4ctnsD.ww<15cZ1@_QOA6?pDES=WN x󉒶}RNM,•a,ifE뒎֩.q^uh3iIX:1-׽HS рc"I,CToG;"ZGYtEI:`UETu}VxNg>*k>(˄x@U !*MVdopphUو9;:rVD^U měpnD S H8?1ĉIv1ϹI8 ?[ď/"WOwnwz. BRJwlCW7*'欥C ӣ޲//H@kؐA-TGG YVdž܎pjwDRD7d/Uk7 q͖mJu*2p%hHbc[[ ŖeJu]p0\b*&^8ni]s3w!^V\9ѯ?Pէ{c7a9ԙz<ܰ_)@}73?61ߪ`3q_߃k~㔶coRG'Wl>c|5_0HIK,tQJ<.nV)V")/`c@*Ms+!kWk(|e* Ej m* VI {~ʢM]刺",~Ǥ*Œ[B{`;4' ^6M/~ԋI=5wc^?1IC?z17h qF5!s]@Nͫ^2`j/>ŷ{×5knOo~xc/ķWAZռkOɭƼSC,%I&U\ur.n2sgpSbr1z¹p$T}s\ɽÔ;W?k_GwnLm 5:S UJv%x+L::ŧZ󯻎]1ut=ez6՘)2bw,:%h{=,PG?][4.Ajpͯ-+}G3YEw"q-;eHw@MQZH$QB0iC8%-ke9Z]N P:3 6SKY-qb7:OXar'G٦f{_~"_{70tAi..aޚK{5纎p*=mX~S_#}vQ٪c;0qöˁSg KVR+^zj{ߞ?W16{vȀW{/5Zu| ϤMt73 #6#4Lv\'3Omk瓥Xddk<ȧڻvOqOkzop0Ko6ayDW oP 郞[8,9 -Mڭjٺe G>p@_\xvj?uyÑZ #+U *[W7%X"0@A7pCu[ah :hrB|+HdL a@ȁQzJEBZ Ơ00GR`ܖ5Fs:BE fD1-W!.ylvC5۩=t|}{NCXiȻeC56H-[@= _8F hjK#Zr63{RaA-mG ˱53#_a 11j5"zO"mz,Wnh<@.Kq,;(< .)|1CY#Bf| r^S\[AM"˿!=&(R$0WD_c_(z!NO(\H'a!FK0c~5E/4,MUI(D\ e :#MUe3fB+EsG*@nF %Y9"=SL=ie-$bvBWCbfO{U)%HضyY+kE#{:F&[*&$VOK[T >1XX ܲ6_k:"#t:t'@ah#m,ѤēRG#B~S K )$*2vM@+! ! !')BTBTB]M`4zqf$d4F[O(V7FѠ P,7&thBpz'hs@ӳBs:h4y3XX\E=X-n?+T['1Ua\KWJŘ Usa8O{~|ˮ#$~jqek>_$&l^5s-ֹմow$Hp䧥toޟa &ܴdc t`B▕.?Y#L2fɶnqo񁄿Gmj}pd]87WE[:ˊ1.~D{DFn>ៗZ_=ƬeC~X~Zk^`M?`$r@ǵ}mŸO`/?X6\WdK5(@ \'[#߿qkrD7jvU& E^o[\ŋV_0g-OVlzԫg՘eXP?쿺Gk}du}͔zp&ꞸW_o8 4AUumd*r^7bM!ßo`c`.(Xf 9b5'z=G)bXxZUTiN!P$ 1(ZfET 4lZ"2l~ߥt’odzԢҙ 4*k( hلn 5tt(fg8VӖIUv}gO<+[Oe/|륝}#gNkYNn^WawǧNvk-=) >foD>AD3ZݱӖNu}wܔJg& {esSoOf$85-'6/j[UmǤ|>(x!^ʌO,5yv~ӱן/?*՗uN'=>;dNFr)"x_wuKH~iEo<`.kwj{M0;3‹<ʖ]^|A (\ѝvʤTNa'}}v9_+W1ϒK-rygvVff]\ W'-ȃ <(tC81[{QꭝS# *^%T>$8{^E3ƱlMGHGU ,Eg?],8ttIJ|C>8kUJNoK;.ݙnkg 2azfrEq9c\3UwOfd]xه\3}bϬ%7Ofd$]"?U98G/.  aMA,(HJmwBc~ [^!oo,zi;N¹NFQ+q~:f1P*ͮ6B,QQ%TEV(j ٝ,QVQo,CAU@1 -(A $Er 4J~,J?!+@(_E9΄.t hI=C8C)hE!낽bɼii}J&3DP̹ie}YUs4Kkp6eך%a}YݝulW㋤A⯯yq"\h|IAkg׬kC㼏3.9}ƦIΩ$Nrww^`KJ{>} &pqʲ'6>ۣ'i||㯯~aX=uӈ$Ϝsk7Xkwn9Iƞ%dn}=-☓)6y.8||㯯~a"\ v-G 8✯$]>ؾI),]Tƒ0B>ww^P_q۪qAgz4Z6M?5ڰ*~-|\|9eYh|)}.Ϣe92U''Yc_Mx5/.{AKӖ?'{`.'mDKgwuZڱmΥH'/|196P=J6Y5X9[Gc//;kl1o<ְɹ≟?@WgkЫ۝͓MrURk hSYL޺@Wo|o.O'm]:={ߟ+O/oa7_U_4/|]0sy瓄] --0'#Рwy|jT IG/JN$$ϫni(OnfRyɔifOta5yϻ~p {n߭ʯ:;"Aʆ-Cn V~y&ݞiMUE4ck~᪹l\ 9'HyzD`Xt!tw2kea|.$DfTi:axG" H*!vAF PEߓ3D(mBQ|QUh*y\&]!Svt*Vx}7p៚e|OhErlj뛜{i/VmzOv~D򗭫6`$O|zO댌|35W}J;|*&j|~8|*ʝAA?q(qs owW o}0ϵrz3_ A ۡkt#tn\1(yfzF'K7w}̂=f6qU\Ygniyp3yt'AdtJ7Tk^HŦe}6'_ӝ#g?˓w3gd[GZ\ۿ4+Qoi*S^c *㳮]#gyDz{Hۖ:W?{{{zt[wygWiӼe.<HH 5 u-2l9D჎ "h[-5NiIMrչkڟiHL]U-9WZ霸 c\ƪѴ*mU(0>ω+!V@²C_"kiN"U) B;_q4tZՄQD4hEZfs5t2%fFzͬLJIMḪmqmx!VX^ MkhJ)% H+]3k1)M\~(>g⪂@9nzES'xՇéWY>IgDUBSNSՕO1BQD$EA@#gU^JxNf(dʸgS] 4Q DIڟ1n.*QsNݟ8%sڵk$pns=z"҆>`ռ$ wZ0~|wpO:|$nޚ8qmGϮ:r&6k3o~ R_jƮDJ^= =peHݸ*I%}%VWJuqAR^I}#Ϯ|sڟjfF~FϮpp['NVڸ*I/Gz7ՓnpUWg%P|h7QTٞ[T/t "Ȣʖ8cD@M5l2 x l APވ3$ $!tNoU]U=t_|ISsgܾi&g=,ͳ&mIშ[[lsnvLWVT]w6m;,]iԏ%Rg1̡eQTe㍙Or rWg札KlvݑPrvw۴s/=;--ݲj QImU[0cf5'Jߴ'Ҋ+N8J!@ޞ.vggajwyDR%;MЧj-&pk:Ai"Wu=Mъr`eҿj)cYʳ.oU؁['UYjޛԕofWC'l򃨜ofAAe?b0Y -i#I,T$oeys+I @![, 1lue%mZw,ˋ1FPHp ZA*&<Á@,=sD+c{K! d@H 0XIbH2 T0yV̾9G|ITBf(+$ʥ\a̚MPT^PU}/.Mr͈xcq'C:F]-_Nb`!{R6b||#W ً)#S:w?ąKO/@s Z vwx\~ۛ)Nk郜tѕ{vY~N,I~j0jmY6>샾N̰7M[V49/.r1,7kc+V1 B:C{X]Sޅ @,s3d&|VRLIw5c\nKnˑ:tSAtTiԥE͡ oΟxS\y9G# dڶi*FfOv$3o}td+xUҨ6W3%'|"Jz=mtO6a& TK)&-ß&XſNO 70}C~f;x,jwҜ\Pɫz7:jfzB}r~ %i/yakΥWjc[7|:ַU?,@ٮ9^[D-F~-%IJ:E`0ô/?7&<%mD74PY]ɫ^OGjFL7nM 'oрb}LNAJzƯyH6_; f J)&[S NKĭ|Lb;lrB4쎷^)b{J}=Of-nؒ{.V$o-;˴U5zOd0p|D9p47n"/./qYi6y47~浻|秸=g;'ܞ"@ S)Ϭ_E;6Uݞ**W U7OG YĽJuFBo$nD"\dOM4$#B(D<c2 4/e$\ -E0lU0ʣ~C=iV.-ڡesv@@vkK ɮѠ2trkrQxݭSgWĢ<3Q܊C;y/à2OL~iMI[r7Ws(jsbwm<|zi{.0ଥ?}}#ulq [d=XOR^ Ec+Nhׇ~xh,[p"hQg8]N8k.1ìo2'& .b-C'_qEogٵ pС^X"]vh^qnL=që3p(S^'Ra/?meMcb  ->9w=B\Ͼsp9u\ﬗaU pBn-F-/ <} Z;xho*s4sG?G³0ֽX2LAc 5(b=sssi #~=ǡҿWCSXx vj/nK-P+CIb:D~Xn5'd_ڧJ&Q4u 8G͟\F2$%!PP :fقQc&'􈽖@ߪC+w!Kby~ m!)A8;ҬCvBwrDy}~d| %|uj'aˊAFp}SQ#*+;=Q׺舃z̊W_W3|"I?xJ ֿBW;2AgE<)-WWlP=@]1:𸪯Ԣüo&+3'[zP I,րj9HBO *' :qN<73ÅvcV$&̞O=+"l.nj7 @1@ |,Pa6]X?u†64LƘW uu9uAk3rCRμF1b3a4 V[aANDb\n#o[+|!nMi"&jCBZ_CCgM{2? O :ݙ pž~kzғg;kn4K>A݇MIDs+B,mm QDWNhS Yq G90ˎN.n0Dqn~.]76Vu%yYIENDB`glances-3.4.0.3/docs/_static/ip.png0000644000175000017500000003071614432156570016711 0ustar epsilonepsilonPNG  IHDRh$UzTXtRaw profile type exifxڥ[ E /H\ށ̬tMX =RIWܕL?Ǐ$}&2}! ۭ-_]}]_x)ǯfw%znK>=M Α9dwqkjhJhe Ao?R~a_W_-{|ƋPǩ/_wñ|".C6d5".V1]-)EFj6s!XWjQ?f_lW][6TymՎ='rֿ|PRw`F~M!WN BbBr֋,5%+bd-`ޢv_=5S "w~ںeh{g j2^ik.-;ye'do>Q%c؎lD[V٥#qQtޕN4Ad5h(a#d9Y9@Q!; $XO<驣\摲 Xsà@CvS6MIi["t)ĦiGA}\ۮGX>hR7* pYEt-1А]bMFzxpT1 5;XSdwSuP+ hb(XL7@yh<B m: 3ښU}۶X}$_g4p 2aSj>̑nED se_HeĹZbT H<(K0I Ey 4DxA:nbۉس<)MnK;l]$\dD%kgq|r^[yx`4-678xkM[d׾6Ӽxn{6t] 64ualDp)s!7L+ljZq!FG[k҉ت呌KJQPXݼTJ&}"WI\ &56^JJ3G67ox5P.1ld0r_F°J Եm||Z!Qb=X M 逥#bVJDGRDv!G]Un<>#ͦ:a~ [mҞFTBpg\mg.zPuhԺ6̠ Wl24X8!w\y(^0I80^I])*(,2jԶQ&㩕==9՜rA~#(k!h'J8Y6\D*I'[yYř{}f4{VG1e̠PFv5ba`D\jf.h,͇-٠G sR!\7 ( 81])f+5|js Bm("k \AN;%5YaJWBA@IX M65;{t8G{ B+iCCPICC profilex}=H@߶JT ␡:Yq*BZu04$).kŪ "%~Zxq}w^f1eq!]B/$fsw1]Qr&|, xxz9GXQRω #e8̈NGBm̊J BbKGD pHYs  tIME 4IӥIDATxwtU3(PQ(!("MЫIo"JR,!H&$t{$B FU]R:ĿmB6/5v1tD|Uر+6N)N%SpMZM|[55]GXSi C]'0oXdURI |Կ= ]$R滹 z!퉻7-`ɴNZI6e e@ ~p_*:Sޭ\;+Z$OJVoҀ\L&#Dd3h΍r@4ɢmu~B X JXV{.NP&{Ldg( Ҭ.kje^ ćG]B8+H.8K]$L8H=ekpс!Zo #Uli :װJč|5.gqC_c%^pi\šrYs4U` LOzo(*zBtOr' .-Kvmazde^5u\v y-.R^"$aI̟p VhuԨ mkDZ˘wt.džĐc-p`K7?ho"W}(!$be$5:K$>_Rtʓ?x=&6p7?- :.[ cI˙9odzL.Ù2kݙ}"lìlO~uճ|{<{+hkɂCsO .wd9gr Ul.Jǜɪ<;,tl{9Y#?k= ɧ<oeW=mbo"[L;c8i(7w`S7k1 iæ^?-\#o5crvזuD~sVjĮθSءvKS ?X!~. nbIJĪĆ ^-"X+*6/O:$>E|:^o$zjv_7^ G| ^E7jK>Obљes|^gdk3lӗ&O=1lW84+< BĦ~*5N+#<.]:#Ά.wj<1q6aʽH^Bl: N?+BC_%>h\t]diq|Fygc)vP2L$g_1cW8zFxRuv}a-=b/`z8kվj1-!")qbY|Te.9w; ߵzdXy>X GOͅ`5S[l ;.VV4?xw qvsQC.8fB|,~LXUi%f{'?'٢VqtiGE|XS4o]mtS BVN%ȉ*T9>J<͘%$V6jҋ򳜿!x~]l'F#w7lyT=ʗɎSp0͒p}?]!SJ"1Z e t5K/bDs%8 v.e(K65QFBO%ևSbWXf ;R;}̙,;̪P}'G ѷⱫS|Ȱd23(F$U~BٿC|kj[R~CW$v3wDo2{P 4yyg4ܖ ^UAܻu%,/Y`Qr˜g*q\vv4,#:[g;e\|&wM[:e eU8,neҌc=hc֬,: XdJ4g ©E/&_Y=3H\@]eߚ5.lɑdҬdGˢ0C^>/(+rW5 plQf݂WQN+|'6 On$/9E"a!!a\sYt >$d`x3}2li_̥i۔CGbxbD5E]q2K֧:NTTR6R#dH6˗ɸu&' Z]A I/ -7%υvۼ lTq{^j! ($8DZR,7S2JX:ƻST˾hkJGF)A%I(O!0 L~-zRfoeb35h7~I:HTXoK[> χ{^H`NEOK=?xH)udPOz B_|3Hz`?}\̩ؾC4l7Nگ'g?Ϳ#=7=,z_yCYeo+f长v"x߭_4{9hwGCfC ґ-1)]SHxgYwtV, ࣮?1L.kDw\Jm Z6v*P@*x[;4"L*T\ȯH"_Nf|V-tdt$.Ue*RU%n^FG$).LY؊ڟs.&$cһ$STzqpCoJ&UvGy2c0&v{ϥm``*AaSG˵Y~N[Y(gH̟0tL}-/G{ɮt`Ofc$)ÝeNo Gq Z6{Zxז<]d:x{#h?2#?;2d+#R.vSK-{4] Z7zX{><]>olȘq[K.Y?_wb ^0GJC%tn.Ԯmt#Ӝ\ WxiA$٩NP$I GE.YFH_F1U`5̭5cI>`'>WM;Uryl. ]RR5k,$ c_<jҢEU W¹n,%B칪"eKeJ Ls,˕Si# "7`þsN('(CNx.~ػ*@e.UF&NōD-Ih\g?9Fd%\ .lY`/ w?+wɺqy,HŽX偟j0k܊k[iD6z"=R¶EIn;:R[KH&yb6NtBQ/uwtfb~&e慷gUj6j;oߌY: t;㰯CxNFs6fܩ|PX_뼰G(ʓt3ٟX&гF4\rg[0pzpkD %=21]cS9y74l>M×hc^Q2贻yOb2u8]*!k3c.̑h΅Щ+>\к:i.>TE6sG)/+7 -ZX36zȈ#6MyZi ػ`CQrAC(Pr I2-!n ܿ 2 +vvM}8!1Lˢ#^{{𼸥[.P Ͱgl> ^I'.*,qSBɛ֟Oe) 6aհ/(C $]-c 5Ie$* X'k?\M hKm;\,kF:tWv\ ; a|>7+~RڸPq0 RvtY=A;BX3~y%`a P?cZ*.Fu\ YB7n[Sw'VDԺ5 2/t7*V$sZn!3X3GC;Y 2"v2 G~uŁۡBeUZ Í~U]UPߌmVB *T*TPBPB *@ *TPX?lIENDB`glances-3.4.0.3/docs/_static/mem.png0000644000175000017500000001355214432156570017056 0ustar epsilonepsilonPNG  IHDR C UsBITOtEXtSoftwareShutterc IDATxw\SWǟ{o$a!KQāZ"WUWh{@lT'8p("*"3` (K={? PE~'7<+{mADo@5^AQ{;6탪Bw6r}{Ae;)|./#*@eTpyKs{Pn0nˡagYȾ ]u[H"?V-e O@Y)ģ(̍ }l C省)H McaK;pM=Q vE ?eyԏ!ݾ9pk~jop2Pͪ/kf+~„E4:"'l)Yx/}i?h_"i_㗢V>kɠےC?|@ZB [" rwћ trj5A{st%oMPM:4i:X{ۣ '.Vsp5_YfYgj^:_‚凳Z菉T4_6n<6{Ʋ[1J} ح B, P  8 MC:XL#{kٝ-dS]J-A7(k*BIv=]S]\߄8)Ztmw~?[c6y~m9־(qU6G[lՕP_ ^LFYP/0ͦdӯݽ ~ۭ(CƮTֈ`^o)]QVfvSۡ ?i, };r-S3Cmݾ3dZ x}3`}pRJJ_}>ZJr7.v_8s %6vy!fjۺ敡{Vu)WYߖ( 7na+}?z"l`EEvo;BWc1V*2F^W`5mڇY3'yϏW鈠|<ސZ@0hۮE4DȃS+ 3մjqz)>yvzo hA%-'7?X`ae9tQSN2C@A[rgǞ޹r(g,^E?w9#zwzwl=Y{JAi~OU1VP]"sw_ov=[V7@;[i:JT &*@x{?UGI\.S>oWٳfIf7$;4%73/3nأ=cu~qR7 FAQu8xc:}5* 0`6-L;2 b#tO &ÏAfuC(R B>cƌY+ ,`]_owd6{ǫӃgȺ ž:)C|Ԕz(nfb!y ^(;GQ)/NwD+M*2{q5^e_f&\=RU62DbvXn<3zRщjX_#2;-uνGtjiTV5!,,(~"v*r jN;wѣ=D䅺̠ʁ?}FU5~JڅbTٷ]vs\~[ӟB Iqlu]”|a;JSf,<O"+z^}aHEqa}q:>r#@T<ݱ̋' 5qUV}KUm˘b:-1ɹךy6nucJOY}݆؊}WёDaNA%({@FGSzuHS wƛ e_Qt{ OL#ui2mW܇woO'tt)_'<Ӥ'Uι3!w_H"jrB|W}Q7b]o\g|(a[=x3UuPɵsu<2wʡ\!6u/"&sDDdžc>1c\/$cED=h|./ߧ0'Fen9~ߦ_y?Y j2E)*HO_^#p&/FytȺiM s5RDCJLA:N=}.R5 O /~s|z#!{۫&4\ޣ |?@>7fR۩ z}Ù^JdlsC 0Op{4{Ʋ1x<>wˡl) ۆZl݋s#<,o=YԲ W.Qy|c*u8Dž.Xm*U]k"wz}sO 6o8- HI:O0RBוXdj\f> JL:BǸ(zNs+nLmu]#;_]A|]TSހtSV@!c1Ԣ#Ր7>]GA[<aG&ۨ]Z8_%}SE(H UTִ8{Tc̮Sg:1twn^!&tn4yQ+Oڙ׆7J_S p6zk8|uE"PA>NɸBT.v6RDsEkjЕXh哬ZP zǞ<@Zڿ,52\!j㬍٪fWZ$ڎD\ߺn:6Q:J;:Rt%$&G]\i"(݆821o!Gz߈ x6a)&h|Mg㧆o1g|޸U{4>ᣑ߿٭>\7~lTF;M%ry|nj]^D<:m1?IHHHHHHHAS~&/HH@H~n|/?1^H>u {_}Ue/Nqf44J. FMUАd ގ :4>Op(Y# jFkm(ơݨ&wfh9f`(QQ=ُ.w-wMBz#AuXb.8OOYvR~wnHS+qjwLgΒ+,:5XDrKWոW_BncRJOIQ8*M}/@å'bqU-{2(oXT-EٳC8]s ȑ^JPvt|'ALOč8`4gt-Wem_\{z鑓_V LyDaVVjL"*"N ub4`zDYǵ1R,.AS㸨A~uX'_[΢WӺXE7A۾Wؚ*ڻ}*4hm76Ԋpqad WuL9*tt6S0&tֈ -ޯ)=]=wA&hxu#6z7K`3-i+/"nTa%\xN:mm7=.n}ZN}&3Q6=uyYo#߾>v4ٿS{NWG_ؐs03V[sTK:l7ykf|t%>3d~ס/EBnH?!!!!!!!!2eeI<>7$m|=G]JYlDO.>ǐ^Q0vvN ˈ >6}!ήW^j.Rz2kzژjqL~ERtJ% @ naCJQYem)4=,+-&CYoBw&ի򓄰&WQĥOr~:K~hdG8%\7(<:".1d"HӖ՟:ؚEWJH,ytˮZXW5&]dɗW~kڵt03\*/1` QӚp,6Bk `8'2מwhsieO`-# Ո4 =;߀U˹^EtH)h.gtU|FIVQUC-+/P ǣ;me+4Eߍ9<݈Ҙ,o`}{`RЫ=H]u FfKߠ^Su0:seyo!iyڡKԭV^F舒햓p|b{vYZ+'K"W_-:NZ6/̻sꢯ{_m`֫A 84d\ ZG!4./.Gj ZieWuժ.mέիmg--O[Z}BGiKO.}]]Tˮ3J^c\MW.Z^~MWWHƥ :(OgȂ}K<9 PE$~_TmM2nb͛n`P_rcӲOP}yxA:#|߁9r#H<UK784퓈 ,h@9בEzCHc_yIENDB`glances-3.4.0.3/docs/_static/hddtemp.png0000644000175000017500000003411714432156570017725 0ustar epsilonepsilonPNG  IHDRs/8IsBITOtEXtSoftwareShutterc IDATxyT}GQAPQHiTĈ&4Tj&6icMM]BbwKjjqן !"^E?{.%~qf>s;wϝy !B!B!B!B!B!B!B!Dc;vljj72337mԷo_CSrr?pvvVF.]jXNKNN6e@pp\駟jTPP,ʕ+;vׯYMVv^Y]feeUԼ^z>lh5TN:d!DpN[bСCkff,+W@Cet+KK޹sN;y򤧧3 pPzlَӦM;wn.a„ {vѣeIG'$[c+<FQՔq0^lσƧMJ  KJJR+e8XF'Fp_jl)ؽ>y y֭SN[.++K=kHH۵kwڵ[c2dƍΝKHHtIII@jjڵk-,,f{ ÙFXkG_iN?pM)PUM)GSseر%KZlo+JbŊTkkI/X͛/믿ꫯ+J *?]-Zx7=== dSTn)] ޽*IQ8rHBBBFFFYYYnnnrrϝ 7aÆ})))W\ eh4Vξz+{հko~X !+=PR {(TMt:)77!C 0](PDnݺi4tyeҥK>>>lѣGgyfӦMǎmC:r!U$XþJu,#FXdɱcǔM~zuK)---++3:995hժ/|iCG.Y` qP~Spv_ģ>}۷JשQu~~>P]L$`ee9] eV^{>۲yQGSCVU.ӠMşjUY MO>ID#]tQڶmkggO?"JJJ,-~ѝ:ud"!ùjf[i>ui:۷]hhO<)77w۶m>lppw~@L?~|6m\\\bbbrssmvp/!O?g:uJ !) ppC Xā ޹ӓbcc /̙3;w3g;s_5CBBڶmwd,}3@WU7 kZbHTFKSI4V9eʔN:[FBwlWvϴJ~gVi䩧9r>,ەx=UcZe[`aTlKZEyyGߑ*50gJEB*Md !!B!B!,ÇR .]uC <<</^ܹƔ ͞={Ι3W^6-<#%%%߰a!Bd,ڴ3R9 y3g\tiJJ|bcc?'Onݺy󬬬>cY3Aڷ)_VX7xf,Xа pvv^bEaaazz͛,[hdn0 e<[(6hlU'l_|U;>YFBBBbbb,YrSܯ_ѣGO?֭[-N>bŊ˗/kGzȸv2z 333 h&·^ֺUV}!ѐe /̙370QQQ۶m{,X[y111~kVv:uݻwO4/1bzim۶_r֭3fL6(..yMSLپ}{lllrrrDD_۶mՙp۶me7t ogZSLLΝw2e2dȄ >ny>O?yÇ;?jyyy -[۷o?𴴴СCF[3;;$'O...tvvvmFc  վi_@aaK%Y HII1%wQyyܹF;1WQQQVV޽{Ax{{ٳgMNh4-ZPB! |B4qP^)VV.Yq͡Ck׮ .dF)(-Z 6Λp 4Cu{OEEE666ׯ_4iJj B4$w[oi5g%r={ۯٳKKKdNw {{{۷vڥyi_ju,sҥ֭[Fa40&Ά\zVVYgY痗TnfdGuO#qlqAߟX*5Rʚ3 +++11188p7ep;;={hƍ&MrwwԩSlll```?-[t駟իWPPMIIˋS^ݻ+DP״JV^mnndY.YdΜ9&NdYVw]z/?ի5/ԩSK,=ztdd?_FEE9ȅ ZXXdffzkbL i478dȐkp !&-}:w섅ݻwBgMTpOOϼ~7oޔM!B!BPЃ;`Pׯ(DIGajW3!亮iw ܹ˕3g(9F}wpرʙ&>I~aB,s4`!rSpߩuy;,ׯ_WB'dkkޣ)---//5UczfJJ @"L?P[Q`VeGVliiY~EEEH+++33" ;5̔G!x+eD3r߾}4.\ҥ۵k׮DS>(DbGOA0^z2uM43888gggxzzΜ93+++==jCOKKsww!B{eP :ȁ5K0:I|!rfBVZT4v)a(}ѱcv͛GYjUYy)0nݺ2%SRRL0 | T+D`VBV"!NVy]~B!B!B!B!L*tdcc3u\̄#3x`֦iwq!a;@/{?U.[ť-gnݺzjąnf5gW*iB!B!B!B!&V6|G}%''g;v}|lBԂ=@UT`!ڨ4* V`zahiÇ4N0aƍ5\-0$~4ւKu9UnZ!4Bj4-[!D 'j5CZ߭[rrrdc., ~ 0VjOC}Ze׮]{gϞBX qp;@p0a>X[wZ/n:BXнbΓa9A.| ; 5|֬YqqqŲQGpa:i=C~LA;h3N2eJNz뭬,6W˪߉*kiAAA/>wlB4!~;'h S?Z״J3ÁCxxxvvvNN̙3V;tP{{4wwɓ'kufBCC8P0'###""u֙eeeޣF̼{ꩧ/_~AyPŠX@{'p[_ !裾}ݻė8p`ҥyQ i%~nLuy 2666**j…ݻw>}l!BEuimp WM5CsMTQܙ>}ӧe;֪L4rJ3N4,B*4״J:Tg$I9Ĩt~YUΛ7XY.!!D/Ri3 (8cZϰa|}}ZmjjM eSjN ##8exL$iB!B!B!B!; ><**J.((t֭[:T'Xx  .Zyz9gΜW^y˝<<cY3Aڷ ~6dT-*O[bE^^^`A;,5`gg+Vo޼yβUFZ3 Rof^˗/juРAn:uԺu벲Է'$$dڵv?C%K8p%o...?Sjj?>*OfRR2Z1ŋc=q5eĉfffLoާzUp(;v\d /0gss7xC TDEEEGGo۶_\`A^^oņ|ᇆYKڵԩSw=iҤ/RI4gfdddddd SLپ}{lllrrrDD_۶m P۶m+hL+l}k]*,NNN111;wT9r$!!!##,77799Ր 6lذ/2%%ʕ+_ɓ';dȐ &|O7o.,,<|r0Zm^^^BBB˖-[O!<<<--*,,>>/sUk׮ׯ߮]ԑQ5,Y8::3 YFqppy難&M2TII~?V[wZeo߯xIDAT>5??pvvVr={ۯٳ /5,YݸqCnL=7n_ju,sҥ֭[Fan!{ڳ!ޫzUں0O[O:&///?ٲe˘?{yuk`IOOWߙ=z}-[TFo߾} EHHտ?HU8jhi&U#G.44'Pn۶g wuu>>vvv={4I~u!8CFb! B9O0)_º<۝~ׯ+UUєvZ=3%%QG~hΰwdRpa:rߊ"(÷*tN?Zϴʴ`KK*+**R'EZYYfة1g$?z:.vAJj:v:ܼyȑ#V|>;C>F٭[7CdJJ'+g~Q7C0?z<|`3h!6:V/%4E"B>-D{(ן5"hSEMB{zUU\4,h!UqY!1tB򾪸H ahcUq'kD IU\fi}WLҥKpppPPԩSsss3 it 4R.x"HMk*7nӧq׃Ä o0 .fnàU[xH? L/ M3[ KJJrsso58cR,ߤ$0Hߚ,*?n~` sךmT,*o`72RK㣯y1[p5R) r vBfA9lS+1R, p} ݥ ܪ}+4RFq`'AGH~=h`zTِ SJ3M}#Z>x`pJ*To߾}񁁁^^^qqqJmڷonbƍ=<<&MneeթS@vE 2TYC Xā*-[Rᖳ[n]zlOw=YյJZUW-n:!DCyCU\VI īˇ: BT-Y#B֩e!lW0YֈAXv}q)eTsxWSKtss>|>⒓{;vܾ}[>6Ѹla>YMC;\o`KR`'pjVy׸qVZջwo+++//6 ?~|||׮]zzX٬ES?bBk V 0E >`!ڨ4* V`zahiÇ4N0aƍ5\-}ݧ3RXp/4I R]ihi[Vje˖YF !p mpև!֭[999M&"B [|~Ӕ_3~o'zC6SfVٵk=zٳD6ht\?n MGajW3情?U:88֭MY45'`((螰 6W QWyҀ9,<ȅO~UϚ5:..Xcg+ΰєHP <ӏ6)St魷ʒ-X4Y{  a~Gi}eVxsɶ+(``_eC?z ڨ5BO!!D@IֈAUq)kD ,ߪ:B4 ث/.e0FֈA8B܄~tZ}HHHPPիW-[4KZ^@1< ƴʧॊoqYZѣ#""<<<fϞ-xp\ާ/RiOA*JCK\hepQ_\wabZe͕YU !@?8d_nN2doܸ![xP@k^牫LTHuJicZ}''f2U+?~z6%R^f2`HT.ALHH裏w^_bBBpKv)c;. |8pbZe o6߃,ӷ:An]HZpaݧO.h@ -. u vB0fhi3*;ӧO;}l c30!u 6TUZ4wUqZ? xxxHeF2Jh ï{{ J#F{(5RCU @[ Ã`(҈GhL7o^YYYqqNYfM ]BB0SxxxZZW_}UXXx!u7pȑdWWZ !0U5ItU ޭ:FQ9.//e˖g:y{{ٳgqfȐ! pwwV&Ȗ!D݄DXa0+o=rA9l+OZV>bĈs.\㏕pF.011bDDDĒ%K;VXX QOBm [́0}J,?ըgZ%pÇ[YY=c&LPnt7nݽӑzӧϾ}P!5NkZ}{{_ŋ/Y?>p@LSLپ}{lllrrrDqeXX[o5mڴ7oΟ?_*hr, ~ n Peul(S5@Z%hV^uՏ?ťO>9 ф$ZT5=ރ >rXʑkZbH|mmoG}9ٳg+/˗󽽽 (X+@= `3Li?j:Uީ,JZܹs?ӿ{Ueeeww i)#য়8a eSֺUmϏ~]\\f̘q`+077;s)h[GӠ X֣)jOTfpwwwppPҹMN ?^6ÎA#U*ڶm۲e˘V[W8Aopkx[h [V18PVo/88xȑ...,cƌyW#G>k֬pppYhZ|`3h!6? P`=RH@ӧU~^ߡB!B!B!B!B!Bq{YIENDB`glances-3.4.0.3/docs/_static/mem-wide.png0000644000175000017500000002227414432156570020005 0ustar epsilonepsilonPNG  IHDRFWnsBITOtEXtSoftwareShutterc IDATxw\Iǟ4BzDE8ED詧r;g,@Q RA"*V5d?@œ E|?ɰٝ@ @ @ @ @ h'DB-@ JQ3h=צAW 2=`C ali{\^]U*?H>nКnc\BcYJlo-K5jͼմUnˋqYkAԪCs:INWڃSMDUᛘڪQ׊ 4es-de*#A2k+Ȍ|q^mP;h&ח3{ʞp| ,2"έyW`m MbJYGܦtHO%_3D5L\Tu 4­C)^ ][ޛa} 4QSU3q9ZT8#4QcIj`N_tevUYLD'Rtilc]Fp_@fD.N:v iP:`&ן3gي͆O5{7Ϋaө o֕6Z,bW/]kKQⲗ\| V҆M:y1*GPvĝӬ(X XMSbT5}'麳\ Osyɏ߀Y牙v5)Zj,Ք0>wD&'$EӅZnћ*WL m]Bn\6"<'\ Pc4pcrSqDw=}&.b5R JrJEx%gLc~Vx~z#i o]_l?p2L\CT'_fVcP=t61p J ?4ZVQIH0p83*ۿo =.~(WT4֖c2g3pрb'D ֟jB64u5pG"ϝnBq{M:=QmqvWSRs̯/-`k?c}B^U<(+(0}bᇭdD\ #2ۭ:~ɧw J\U<^&}](^m ##⿬CT~ -.}}{n ;xWюWb~4j4&x}'2ҹآoO#dd6X~Ju .a;CqC #)ǖHWREYa9Ί%΂Wg [^&%UĘtsn/=zL#N3Ƹ4ayńF^Zzfq^Б붻nI2|PLߝ'rkub\Pݸ|ӚGYҌͱwT븟ŠW<0z/s?1]N0Au?V87zʶs/oJ,Kڤ *sG^;EC;ظ"P0pN)$ pq̮9+ 78ЙU)Ǖ"m#j?H\a[}3sy)6 Ř='n|RB;59%rEz:ں׭ceuΡ7k#L}ϣ* J|N:.+i#&O:]8>~Z!{hc*@sDlvj߭qyF}Lǿ76rкJ.=1sf[miیōߥ\6Qր1ڄs1 L8SxP 믮-*;4X|ɺlb?n4tU=Admx A aoeTMI-3LqLxq)ߗ⪜h׳ϔmlt$MJ\dq%9 肆-q%+oWتWPԧ ]R{\ {6x%$=퉭WJF.N'?3DespA]K-3͜geکќ**Gkhj[2TMdOT웗_&T1Hj/ MhxeG5faߗWTbLJ*Sv[qL]a AiXD`T &=q2 \wRӲG:};̂ J31zqJ[ǹtdRw0"^<޾ٵ@s-3-VTєpiEZ74GZу x. ~O"pj]"3tf:_I+^Ets0 =6*x3]a/u]MemecmecmaejSYTaY)O}%U|t/r+_'-3*184w% }٣ӕif>xUIZܥ@T@TW-"6a~]UC'shf_Jg4pΠ9C~UY Y=l&R><nv:}&T`slc=Tq"Ƈ\__RAU_K kJ:k9 }5MPz4'ryĀF_ZdWu6*5ﶏ+Z\)\B9+݉İ{ o+]ё1axMYhZi8Gr{bR:v=&=# ֎ƞOWԙef<.5kT'[q99o'<~d =0ix!z2:3V`s#-6S@[ @ @ udG]eW} Qz!&: z@ m#jpPnb5mZ7KtS/)`Ub$l[9ꧾlQCK=wW;Z|rAcLة|ك8foKro_/hit$%Žx׸J4~/Gʠ庺TM,z ٻP6[i)T%hdynVrS^z{B8-'VP?M.MQQ;DNǩ??4C EiȊ1OORCwS!WL.'oq>zDW&mX#/񺖸|4] t^huO3H =|+6sq;>ܢMp4AI! jEw DBYEKMFz HS!5#4]sӇ.6S.{Oce}m)'[-{eb,.VZW{;l1kw4m/ocf̡F7]Ɯz&g"t"=iR}Uq2Rql !&h =u1+UVl0ʙh7). y{YXNmΈ.{3QyItKo=h=d4P @Xx)0 viٱg0 RPU#2]'gNEy_q1P\LܒP@>>y)P .y2,m/]_l?p2LܨrI! SheJ N'r#CBډ]Eb)EZc.H=zuܓw Ӄ\orM,R8l0POJmg]a#v35\ڗd}]HԤ+ԇǜi$&]|uTw&^PZŚZ @\_ Ic%_ מc.,Yۭ*.W`B { V$hD|+zU(v#p{HS;HOQ /8-|м1DeeUBp xm_chs|iAgԸLq-sJE"*[Qj)5YAJE4E/hv ?oU$)V?yL"*|SDIAwU0FY(4Y > hjla~@,iĥN&JVO^cҺfT|\Cv4-c dFթAeJRbq%g7$W*peMYReQ]QV),Vg՜0;f5݌&Uvα>1wï e@'/STnsGk'Z1! b6cVA^~P@/{gt5&IYzBDyZ&x>Iv߭"U{s|/?o:rJrD7`D=;\0*0Sl6@[lw=68f/=Åo>& kQc7MFRm)Q̍mRf#"\ا/ʾ.)nsO,Lz^6Ҵ$C@I /bĢOb!L }Oc@ʩ=z,64AYy@gS휪725)XhI|ػWDzVZ M=HB>L?eW5c3[OO󹉎7vS_;,MU i-o / @ʎ@ @ Ao|9 rCE =4q+񠙷Dv/&\^Zk 4>u_xשs9!KUhCs:IҪ4F;8bO1Tr1|./*Kr0z\.memֿ1[ڀ^J2=(2zf ude }{}$pΨ{.㽠aNw<}Uvc/9L5f1 mfcv)[LKCQQgr/^cWIbm MbJYGܦtH(hoyyQgցLZ>ok\a#'󹼄ຮddn.FyUܨ?I72zuu*t7g6%鳲j/"hcV'IwO-;kd>s}&>Es֝v Q7$]7=놊ɍrO?i./gnF!-ox!zh U{uӫV[)vXD^S9 骫Hڄs1 L8SxP kHk9*.syO.jԏ`!Q$p,g(;@,} !`MoYw?mh&ңy{."gF*7eoո4"lXIoʍ_<iy Փ&'>HWH:8bLIDATכ)~+{vE [qHh -e4z-ӌd:賉A̾2{26yg~'~ت9s2DE1$_S4g݉]ҝ0XwM\51ّb; *E]QXi1$&K5p8g4iy ՓȾۈQF=;su ^5#o=t%slEu o"fL }g$վ-VTZP2q(L94!l15F3F 2 $;Bڰ떌3fS(,S<\@bJAP)rמ\*%֬H9tI* XBГ97ovmk0PqzU7\JIa6"&A2-P Ca/jeEvWiC9wrJ?T4DeٹURf)}S&뭸9PDnyug^3HLa).}dW>H+Z*^:E;4=*18Uz'n\7pm5McMud9,NJ̪jw3S\EV xfh.=եy%nђƁ"sXCCH,`˄//|~SP)ar*Agp2U-f{% -ox!ڂ'N7Hk7qgxݸ<^5#o- Mdr$D`> RI~[*wqEy#Qr1 cvYQaŹM 8x89{Zw\>fĸm%@Ġ]wr?NjKOIP1ف gtgC=s;bنlńʌN ֆhiXz"q,A7G?(/Oo8^E @ @ @ @ @ DNIENDB`glances-3.4.0.3/docs/_static/disconnected.png0000644000175000017500000002345714432156570020747 0ustar epsilonepsilonPNG  IHDR$sBITOtEXtSoftwareShutterc IDATxڽ}wT9LwYW&QtAT/ ]Q"  M"7V-$d2هܜܜ{9\i-~`u 0xPA~$>sPzb|PM$gʳG"(OA(B*B>a .CW1BrD#_D }Mj*ys%D_]H "M=@b?`_B|&do9CyAU b/3BQaׄa=_QeP5a.%ml5Ë (T6S1WDPQ0fiPLXS7ILeS, O 98 )/S" Ro `aR1L$T%sIHH!JW Ru9]ɮYr >P%nN &o ggtl X9J14}{ԵoM;^)AyQ,vDi%!jȨ'gP)sۚ'"RF}Og,V9' Dɂ 58@˿?UE)4 }S-)W|lO]}f}]ߺP*RWT_g٣X"JyށEuNxWi>PѴK\JKtDpKucZO}gӹrR ,/mIGcлnRA/ŇBPFkm>vn_0i1x US mj8°Z;Fսi՜khey3f>dp:LٍφIH%3`;Q^9*dQ"j٪V #esW  ځ9HJ~oB[a@ʨw:^V CR4;.yzH3nLgϦ~ywSz ЦzPws)g3e6v27 yz/*Uag6>#ƗxV7ҭ־B&Sy=q(G~(AÚ+>Vctg-jܙ֣r٤fnF`xc[`ʄwm-}l{=jAzH? _<1@E?6c'#G|H?U'5&L}Msޛ?ess*0. CD@c1tOIӼIuM-8Ru5=d!P h1&ɩ*geѴB騁z@:ѽ:X X]Uq4Cc. ~n*\˙^BG-q6KX5Po=sm0P^ƶStR c j$*j7jK21ŶmԨ Is6Wc Y緕;"5e_ 4t@= k_lh_M IJU0>=6h༼2,\e:<Ս;_^x4.O8lٝCӱ-M;4/Ì-h`%֟fr ŁP2%k{͂-#FO*eGnÿ=qA|&=PN2<Q#(rmӡ&+K{CiO_sprI{֋lǴc_tфJ1c,0Zɺ4Ig,^{~,N GyvOF!+DA%'W#l8e3@]F[g*5ԼOu?46F?Է3ut{tOy,mo~!!4H:L _J~Tܿ{6.6iݱ !Z&+2/?OdɉB29fѺ᩵it3x:}bhC:i)d|ٻ,1%`@vpF4jdϕc- 'hnWuʠ pqYY0tˇ椛Lʹn%!y 2Z;)t]Z[]~\1 \SбNz7w-;ΩlߡrHO5z-0<8l-_ : Da:N [}aQ*> _|cdoǎ9 df/p;,/H0Q8<%M廿~ۛ>arqeщ'Ö ޲>)Ua)I߲_[Uq2ꬭW) M9V`RosHYUǖ}x=*N7myHj cK?̉s lmy.I* G1N==%4~t{ v/ jju۱c~DӾ|yάSf:Xv'ݥ7+3Wv n)Ea6͠OokϹ^Ƣ4z,- rt:`:\@ܕ 1kˇ*Q%aG2$q lGʽ j-8vY% D MCyRHu%Q%D7􍟵L2NA-(kh=nG+h} *\raE8-=N \c4nFnu0"4SDFGxz9Qu:xv cFA8N\=B IijágձNh]DhEq'!%<L>eJm4P4 \^I[yV37?'nץ]esoY:/l{n\H|z}ll^dz’0v1۱N" Şj5og4/֨ev$4H5`6~Ya 41Q%x0R4C&a|N&w"syq|_4֡9KްW#Ք`GeW' CɺK<@'6m`fa҄x;5t$nƯL7md>4 S)ol7;TI3\\c?;?Itk2Pe E_5TWd|Sqp/9GK^uwed&unMR=}hސbb"y>MŌu睹A1_{둻$Krՠmv?ʓQ׾h&H9֭~.kxWthmXJl˧+=eguKBY p!vF>3FĬzΊ"^`RXX$mF_vLsxWןa[f?\p`#epxUk+Om>crkC+f |P m*w%%) x+۶H|Û !?ҿ{ t6Mu9/4I rJy,1?:k۽ƇzuM nD1㕫dG'aꦻr;'Pޅr#Om\v;Bw>jLJ~edX-7:+qmp2y̕|τ^>PЧ>6ZlrѮyF=5⏯XU>a-ynWٽx,ENN1vо^V:(@$9>rd\l히=bK#vOG=BD"]ZMܞ{[CsJժ]굟zvgQt!| D[V[= tOEen- -dG ױ‘GqĚZ)bwavM:_V gfKYQ p8ΰqEO;UotODλ}ިkC17εžd0QRP2@u6avb_2Y@\^>"& {1wɔwiK'9E [>>cWc&)@cbh`.mhWqݗ{?>& %)g :Rh)a t{}uou{g e:{pө8a{9oXN;VIѳy}No+>aZw; Q0-M=ϣ(+q (v$m G~oٕ=_8Rʊ9 sLg,YYx9 3I y}7 ('r %T5"Jؒ_5wĽh|J ~oQ~z+kws?>vAol|܌ 9n" f3#N2Rq0IDATubg* UNޝm0N6K)ܽxYW&~<-W.yO<I6ugpV Iw[*c@7}aGfR婹1RWv9I9㴉/>̛\6GIw~ۤ cOƔ~o Rb.WbF9)23GW eB. 'oԫ'&L&&ʼ[,(x[ҺY LyQ݀Pr:x(kie.d21qū(|˴ |VX5"|$%WgOܕFju]v?J\Y;-` ɲsŀn}Z@H2orkG$f{,>3XwZnm03$sڨY}Cdtד t`oiN$I(F{sy/$Wǝ4/i 7C7> 1St Ul mDsS 2,7{rFUg٩i#G5'^Kn@=gs\!H"w?LsV-! L,w"z/{Cl>H١/`L^h],wڕF= SHk)ZVN򘗕bT%_y݋2ٲ!yͷB;eւ̖o87K!Co_V?qa!gԧyL]>ꎘ1WW&z/H+K_|U1߾f/3f^9O^9 zc{6Ot=-<>.T:mj 9rBܶxS2ϭkqԹ tݥs~^[/HQcͼg)20HeGi}+\IQ^#W6qYk߇}&f+"`)8\) ;=@ZYQ]~Yݥb\ћ팤dgk|^YTij!Q~ȥhT)5ʍ^6¦q?؏;b z}yB+9㉤])j~כ0Y$IdҲCN$I` ͋f44݂Zoސ$RQ}uz g@|9`|C;Ak5P+8!QߙȨ7 7f>7',FMG} cf r>N~.95d})[< e~(=Y{:0Yorٝ m׀ @:m uyʲ+X[hF#=uUi)kȭc|ooٖgMN(]%I`W<$I[/@b $ N4O1IR*ާݗ&fe/)`P 5J  f]LZjJkV&pԔWCSUʉhWN忿W%r1@ ~[Bb)si%]qVG L;_%`޳\9)l"_Lfu}j?`x޽zIs:!To0I;#RI1[4)ZWzM95+at#OGpOĚ)r>'pY/?9c X\}1l0:F繸"~ͳTZLӉ-1eN=pBϭItR9qwG~Oe{ V:!>?jĦd (no`fe3zB㌧{ގ9?y t\XѮ՜3#ۇ7Y:jIb#Fx\=Le)Yi>;ڴ)?h!mf_&IN(r.+} reYGNDLpN a(UdEr@ s̲q e?KB^@u~p2d@pt1SnGH@$.}ۚ~O qC_nf ZgjcDK X:[ *uDkh -q}4\%;鵝XNL7 =Wc(]>椅)cu!ѩ\'wOa~+op~w_z&?zæ Sw̘b^aq\6'3kvV. Lܶ+1zv^2,r"@ _/J;C$&qsoM4l,>-@|QE +~rFfQ5cr(mE[z#׏&& 1VA㟠>GΦ/$)&4Qՠ} ~ RʏlRql(mh LfsI1r(͋ ? @ ? {ģT ؟܌pٜti/|g;}8\vR>t/ H4"hն\bi!IS1񷫡I\6'|~>=c.\s39=к/89_:wǁ&}_l6f4yׅ_,9PM cJ=*o(shK=ZYK~}llLϸ䓪:ʔӴ]03%?׏٣\M^*.n1L¶g .@[a[odD()hg+*һ9?aՐ=Ө\mSC(,23G俍mF~Rv|joC`lgS\SRNNQKN]5৓Z󬡎D k_R8mI6:ݐ:~'@T OBH\WȫZwtMM8Jpqm (Ѝ.}yKei}3R|?zdb&hFwW46{AD.KK]`L^Oop͂ßrnlL6ڿv[|/w-69iP5Q]؜WWn>n̨I CkZ38EAM=\L;V-Ir76C9mvG$f &fVkai[G|a0I;#RI1;7o觔f'8?/%r}?`=วQ?(-Df.rEΌ`hiؕNЎ4}=VE6j~wNm]X bQ[Ѭ S 8)LѽBtUEդt%mI J_&x۝q|o3BP2g{`{0X kQ~7(:Cg+p (tNFdQvGMQyV /y^7wB K]OY=!)=*W^`@jeV>W||qbZOd@ Q4ή` .o\1P oqwDt>hmũcpT70J6z.Y{{+ߥG{~ϗW-#=if\^ _Ef;H;~ td:lbWZ-h C˧ \{R`Lpk"NgX|ч) ѽlkpZ qf;Ngfq˹[-'<;IG/l`:X2T-Vm֫ aIl;p%e +HM~yH^F$?d?dG,yW#irJ^K4k# yl{ՕJn/Lͼ.Lcn8~e fsaHH+}\`|_a%LtyL-/N61i*:[>ƈIJ*t:<#23*情MBq)r2 zyצ ^VPyzu=Ro*3r铆tW& oa57L;;ϸzAa:PuL QjS_Ծ37D$8s8sg`뇌T`8o:@'7[MJJ2Jp-lY86usͫ:F\qo[qR᫻ѲzdZTқedض֥eh5~ m2viH^0YGSQ^ЙgfSM͈_# :ܬ< 9UB3Fb!Ni4*Ai4icJ+_dJW:(8XjbؕdӨaΚ9c|7]L(mionO>ԿK3}'3Gkhњ[]\wA'݌^hsOGTHS^PCulI@~wc>*-:ޓ43;mca`>kEWۏZ\R]P`/BnB/:T5))"zڸZ+Msy5rWm7@ @ @ @ @ ~e_r ylwM+ȷ zČxt>X@m&e=LA;b맚h#A9ε|b@R}dny[:6nTS$kyE-lj|ʹ6Tȩ_5܍@3v͹ST<YSu) *:AB+IEM l9yG֕EM'm *28TE&'n߄뢪Cu}ځ#rDƋs] ?N%E$aRG.ݑ%,MHRL$8@eTkTSϋKkћ8J~)|Tkȏ IhӕV$$$ZW*!U J$nȽTQ,R̆SQ-m$|}Y2ZJGHIkT+q$}K׻S0bh5v9K~-7nϷIDATի:=,pk寲6S;+ y*=n*+yvf͈'T*ГvFmNjhYɪK/\0ߧ_~=8J81f,p-1ABnYőq*ō>EN?/N~ӈme>% t7Ri5wFxnC_?a[4bѠW \^6OVXb*- ,N I ۊJ=K^6QWN 7y_~Dܛ2z.}G$'QI}+ۨG7Ka2DdECx7T=h)?qlS˳ $cgM~?6"Jφ@ @ ?V2:RFIENDB`glances-3.4.0.3/docs/_static/events.png0000644000175000017500000006035014432156570017602 0ustar epsilonepsilonPNG  IHDRV7sBITOtEXtSoftwareShutterc IDATx]w\ӟ{WRX&Q&XcA5hѠ&j=$vEl(v:wrg?wpИ77| <7ζٙA6 B?ic@_׾AhPRP[VR10`mtbkeF!PKhd(5^'V. 7PuOuzF3`\WKir*P#no0. WoS}5_g Po"*o30hg @j( *٩xk.V͟ՙЎ05bZ_|ckXEA;H_Ywg r]O6 sq}÷['L2Z*&*Ww| }MupMR1#0`5Xjkj?rd(X'Q@wdܴ6W 0B 0016x%X,sa3Õ/˵ߩPsg3@HU~s΀ u`Wq3]3N U!Cvq3}uGqc 4rMWNiҸ&^YT{H^IU߃l"Pu[ 0` `;MǕe@4H^O|:#0Sͥwãuv 0`@#n ѱttܮw#N[LcY;VAƐC5s]LG2`+iUsTT#j08>ACVw?W0B 0З0:N':Y+%{6`Dk%6Ml!p**ڰ 0σ 8Fz*OuҐagd@4^Fz-=7*5C!p8lL'Aûr2_eIwP` Le(Up4UQ+y*` $3B,[)zH_vzaT _|h.Ȳ\;ڏNW1xO#U?4 j':uC,=燅u\D{ pe_&A_P**2ʝОz T\{R NҚ+ W>7X%G*FO I>=}SINrjahcSb=1oDbQQz±C|ycߣϕ}z+ {ǚho84t q n .n: UWcckwݩ;E䧏UIdԩ}0sdokwW<.ymnВ΃?O1%uꗿ KۏZ9g$=Z41so\.U;ϋ77r`C_0Wy|[$uk @|/`R̙iEyooޖIYJ~?s٤S}H~o|¢?VvgX)O,ZǮӦT E% |rb{;y RNQi;:q9<.DZ)EBQ+B9κ6m7(u<๷(-nb0r$I$]񔢨k;ؒuE5$ ^תz $A$ׂV5?KUzcV%I$) y Etң*M-+jyyXl\4 jE$I$?d3cGcvP ItܜBQ%:MC5׾(΢v I?(Q.l[=_&[( 1^X{L(*1*O8TƏY{ka2JZޔyh1?A>s\Kc6Sž5mph=iϣ䤇 W6V.h/_PX)Wj d -H. #}'<dz/(,bj,` ߾¨^-u fڥ*Wqg<="P}U+Q;:fi{/v'٩/waf},o1x) $@LWmz֥*{D֭fƴycch{j ~'{kqmTŬ khgr0 hNמ+.ֈim8*Ś곺Is^B{v~/\;,iRГƧA}-oߧzuqzL+,A*f}oOaO6Pk-iؼ0#}fNqBȿ ؑn<:,q.q? wEJCF~ں3~֫1xDm_BPw.䔛qLɲk1qX B:4 S//#\fd_%( rh.y$~ʣJS[͟U21FHWgőx<&Ӝ?Jnm]wpW燎 ?oo]:@grk֏31ݬ ?Ptt E];ȷC[|yۘشn7}F\0pM9[MRV_1>^rO&GZ0@ (=(`i{8XjM2_;bLZ }|VjҶl[JL=Tǯs[_QWN̤:unMWgeΕ|0Uϻ"LWn"aZҿø?snʍҷ`^{Jߝ6ҏe%Zwn'}:9.شЂ2T E:/:OQTۋ;~{&p~ߑk3UٿuW]jpr9<?+6z! -յUNo$ scEQُ/3_dݶm%H`d\U_~A@bFZG97 :|[Mic2)=:a^&,(wg?Nx;/&{msؼ$!#07q9\6}j(q =BWBgyUՋUؿNFlq+fw6S~)ƪn| F_g vxlM'p5^hPYiwH!X!.u 0`F%៨xU!Zrz]HUc!t 0`.!dz)ިz )bC]O$k3"\m@j1 U~ǀ RSB ՛I5;2jɍ^/ E6"$I BX:a,'qtCGaGB5bM-n^/ŀ3߷" 9[sg VEn#%)lԱ=(jl̾\ @?!$Ö:<;L.ю9V͈B>OWwsi*)MS k-TįTai^,V㿌 &@Vѝo eY4YdxH-upҳֿ˛I9[F.|VEn;S-A<.?QSqwxR~;hzOϤ@8>etPg.H ~^~͎,Σ .|ǰ$#&+ +\>rV)6\tvEBKXI%-K/+X<N\EyވBXIaּ90^CZM%@ˤ.Wʁ7ùXɍ۝n^'tHI)Y^*N8[igх @z [=%;n9/2~.l yqS3ǭYFᾩLsufD]Ws_,kiH1Sr]q0ۭe7 ᑟOZ!ҭe'ӡcL[P@8)7O< 1^-εA^ۣ!R?YnL(;!*7=kesdPߵ@(˖1hzYvjS9"&#G9Ԧi7&Z5&O՞'\L/].u/)P U+SY3X\qڻnj3fF]ɫ^^i?,xS?J_J7cK2]b@K0˝D◚ͯP./G?7IW_~d?B ^Ve˕Z .b2UF$ۛc#:9X!zDu)곿0pI{ȦY ˒?n͝&zgW_}'U]??ŗO _X?u#}\W/zU{! l: ë’O䐽L]JᲧ<y{$2kr70a^Cuϩ5y >Sl.=Xr6Q(gDw~P"AZjLcVPy!z_Wt^$HQģ4xdmcM!x|(ڽŞo_?|. luӡt!vֲҭ'r755 =5M?(&QƑ3 i(x!}x?GLto^xuB& o`wz9ˡۚRN&zw`7wy+_ &d/3o};8粕F,9/f,P%Y@pٛ[=ezjnkP^^8P";n9 =`qY$kKKfbz]97^g$R~_Kܝ"^+Oiv$kGfWpnڹڦI9 k;u - E؝NEwcG}6͡i!*ucH#z>A3rY.IyhZY $i XBiBS5wPC@||f=5["Y' VJS'mܚjBK):9s;f>,loNo[59Kw?\y>'Ťgi>Tί1cnٍӝMvbc4۽ҏȺYϖR~Rw5r]+te{wRrS1ʋ bv,h/+߁BZvsG}&)=v 6.!AAr޾\EPۻU+c. `11T4:s:~&{V| #Z:Dedu4qZe?s=7+D\t`kq>%< PVE]}k{Rvˤ3R wy|,,Xu jl6(}$A^kG];s#d4YpD27f>#=N->z྘_5$vn]n8TG}˾M1vx%4 q i>v^ι'R4f+$%@U]NNxO{4{"Y2+6%Ƶ^M_ڭ,,w_%FyhYyv)nj9[[nf 3e|{,M^Z)NwڏlZ7}nD / @'(!VwmbsZ16BGut|!9vÊdж'+fL_,|H.2n`YqD/I˳Jkeye*/ IDAT*Y8l}C'Tp_I󓋔&锛V{zgR%\j6*fv*wDEr̪~!QgiߒƩhR!%TU{.z,)(U]fcdCja_?>9?}1.l^/ߓgbotĹV,os§ت"@3-?ni.F,yypǵK^]R6{?nTzwj9y^3I#uu5d4/[ضh20В ,,J܁bp[5oӮ Fkm_Y HrDz1+ EJQZb}U@;[r@<)E<d!MfR[?IOo"fő*GR>"P䊡+Is_N. V;z%}wN+sGEWU׊PňufjV\W曒?/ZCE%& ݐW)˗ U"2ɱ)VM%GJ$Gny=>pr^K>ϓE8NӦu)U sz/4'Pi,-E2n$@wVԥ¼&cn|g뒵er^oM'xldh˞4On-,f%~1/8_@:4@~؏lܑ&5r]s_\BY?磼}TTET"^`'2Q !ȏ_(j.W<ٶp>Wu+ϿnLa@Vfjʩ|] kL& @8faL4qn*{ZXL ڪ !b8ﰆ;*p},-oOԯZSm J "ݗ7];ҧJ@l>wvB495WEQJ2$tYv׃RN/,5:9KcW|%Ouo6st^jamAtEPP]m,k*$H 珤OAldf ]<6_yS_o?7;cRe1GιWn L_s5Jm7ƞZ6ie!Pd}9˱=CzsZLriiF\owpEP P+Q`8';_Tk-1@.v9IEYqs^ϒ#dbO>j~ԙ=2.6A4[a=B7:OɟR[Ṫzڲס iR+o&{-aʾZLvxsYV ||}}|<|ϡz<$16FlZbhv!aivP¤GyV izNO4+$3yNΖ|%(d{ȈA, /* DZTT;pjG ȋ_^1 lyGU={] Yr*ۨ4V<:<<ݦԜ\1},؆)E 9暩K/ )<` 4#rH~|v瀼_M1 ]r-O 57$woŤU,Au7vg @%o>=}g 4S`'rӪN/O)n"@YKI_=Z;d\yXn:Ey;n蜊 6KwmsXE2Il屲<=ĂۘC@<ңcC6)X~Y\>nk]^aVX>/hҽ,yk1:[s篑ꔿڿOG}j(N(~{蝟JJs^<6o6o_^sU9xs"j_ {$D *%.}?fsz1]^6^%1OPM~0P:a,0` Y,T** i2}]az2y]vxqPX'պƪKfX/.~w*B4㑾לbX$I$$I$4b,HUCA I:dV¯sDKo;׺a]zCd4AlG<IJ;ily!J¢kxeSSze v,Rm-0 ZIc] dzKvg*::_owLEU՗?4cd$dHʾ_?R&09q^#_Lo3ʯ Efud_|]3Ck 8ֲ7}S ᑟO_DG-ːo􈲓1s}-ZzL(q˓oH 1Ҿʵu{ϻC\#utn p﫡CPޠSer D,\B ;䋩KqΜ]R‚[rxbjXy`ҭ= '\L/]Ŭ>T( ©ˬ,.8R cR0ٞJa9xt9_e-9e|B+__tX߽(6nbKq?t oa#EqZ1u&ҼvCw ܆훠2 ܏H %&?h,ػG7qizuĒg1K-&/Gĭ\RSMy {|r?G=][5%wg+\O"sYrHOy_<& o`wz9ˡۚRN&zw`7wyˤ~Oiv$kGL,_qh⽼6w F(K.TjrIRtHR.^PXU6]gϩC'jfگZUI>Eʾ a}oyÚ^^޲kKo۽gLYy˪~aqyRT(Q+'mݵ~&Oʜ۵"xJ=MԴD~No3hr?o!@ۿUc|}O 3ܱwg~TǐF{*/\\ZieۻJ3 etk2wRVDoH^f,ֽ򀮺!sk. ~Є5<5ҸԀq>c;w uq> &ȍ==۷5sW7MЩHn^)er!f=[KIu90=h dz/3#ymIVUstS7}TrZK7~E==snĔlµxT&:庾lD>ɧ" ,%U8/MGY 53RܭoeaqAEe% {7jEtw#+)=Wۏۤzo]Ҏۈw-o|"(wt._<  @=51j}֍_~)f>|_d/+߁o4FɆiH㴸V:xzdl{E"k#ע[׋\(X@8l VZQqCn`nj[+o\oҷUmW [7 E Cc8֗4"q{qy{#snXF<"Zfg'\}kj8˜ś4Q LIW=跿i:!sOQB=:/ڵbM T $]UتmT&H5޾\qGeV. xeZRr c0ܛ/Jhr>Df. Xڃ0 S6~̅]GB^ʳJkeye*3Y856";kp8 [|`kL:F21X{7*?2nO'ϮߺJsX߸O۩wM"@G)}O.[H=k/w\۸u%5ˌu:_Gh/z։LkbۊXu*XBE_p:ARR]rdձ7ǫe#F~5A|Omz ԳoJJ QE O Hs_Vq,曅< |Tr3\HOɂkt$?ዧxiBŚPGٵؑ_u+@ﻛvZѿ?Le45藥 1Xy':,$W +4:*Y`$O^kƛqC|z 朒g"V-xEJ`6 o@zGnTWq8[+9Y)f+ 80?#q˜j7P*Wr͆BY$A2a0S5Ekw%;@V>_7]Nt ޵{›;Rb/.+5`t;[},,|mr}n.і=iJ[X׫X_b^qtho OeuFYg>(6* [Gy{~}TP|]kNȁt?L/3Cm qU}E=nշ*jJ.T"^`gS*Xǹ#iR}PVڲ!b8p;*\ uGǥ#*}Z4b,=k Mӈ԰T*#8WMىYr ŏu{1VzEf6T(H[g+K-TJ|ImL9rĥx+(Uup[Oe6l+SOts`X^&|Ѷ aX-ΕzQ)uv0Q'uwQ8{͙+7:ҩiԶ}oʏY^.0p,2/y((S(-m\uf3n7:+~I|awCܰ^>~KWM||@`y%]?hB~>\ \gl^! tιz=S1:z4liF\{o__w[6BaP%D9ZN/ژYjM_ mASfJtSm Ta=B7:OɟR[N޾> =mوÆ4)7Nye_Q9&\]>>ގ\`rC yC' ri;xL;I2[Pd IDAT>(R ERh,J+11W.j؃% /0w=4׻[g1́*^o'HjˠmkCKR~5ۺ۷>S}g>LbUg`~3-iCGɿ|QU˫BW^U" *fa8aG񼠙[FVWO][wK?,VvY}hW?$Jutد}]@@Q;:IYJPyYvjS9"&#G&f[f?N+P8s1tA61۳$Uh~Javy%===:>:vΗDYK=atWv%/%~ɒ~puo6 [v! 5qɴ{#,z!-yd)"hqDܪ%eY̒| |U۟W}Jsorʀp?gl#T=eT9ߵ#Z}*KZ0gobҤ[ZP" 2w^V;8naEU)J8kBRi+l?u#$_ l8dϽ_d|جiKu|Q$~WL\(A~E8u5c_J{̘=cv^jԕ<;.SkU*}jti`ۨ!NҲs K<ΒC޳]w>s8E<e;1ll'Gb1Yڵh^]zx_|Q{NwУ9\,HOɆLMG'^yU{"9GJʛClmP.C2"=߾P<]nyPCB%{r0.64(to^x64&*L96XH+ͣcL76{Hٵw< K Y] r!hInz*m%r3R(䦧XXS4k>\{Uԣ}7^O{s4yXxkDe>˩Xlr2ѻ{{$s[&kâ?r,XTFԁt'M*TR? ]j7hޣKYd-x/Ƶ/+ f _u4 ):Ӱy;gQ~^XytR`Js@^J7 ax ]{{mLF$/y3:ԭ.뎌v Gx^]q.ʾwr!{/DHY|lNjW. lVg}^'yefNHSJj+*y]h'{c,<'z 99\M7N8k-uH >/ǭG:<<#kt!~ԕ b|7pNn?\W8)nz&@ӬCQjX^ڪ}GhC%;!~Ϡw'z?NRIiCг<ﺄpZ{[a2 yAI13r0=Z)LHNM[/$;&7L˜# ;qZr@") ol Zv[^vӎ3U$c2,!={?;e/;7cSIӜau']Ӿ =P}Y˄Ҵ+tǖ2~֕ՂG;m9Cx ֚j_m\(9Km5ﲼcz %54sǬIeES' x]Yvӫ;qhWO6bu>:݉ꪫ'oקk>q"xBrVOV瑎.?O7ޟ4iaR]1OngSkO_Lҹ6=i^lJ>m(/k VmƎ1cؒO,z91I.=V]iKFsN}: 3Oȴ'uFkRTU\mM{;iiF1`m$ku*e]uVN9R 9w'“Xq>?(%m^wP]{I1U[׵͵Z-ݾP\%R2 i¾& rіeJZ'Ȃ.g'{u{[ՕH6dQquZ G/R>:U7NeWko.=s.~WPy.Gvekpdm WYk|YC\xTd y;%MY]ohU2%ۧ3MZKy䩲Xuݔѧn*nn.%!0is$hrC-l{UwnHڨRTWtgsdhZ^SWUu:^<yc=n|Y ]o3 /Z7(PviWQc1yb.V2^<5yr+SnKT;q^m}utpA5 k/"d8+ EnI/GlaX'7kmX Y9*` #; jnϨk}4_f@mE̖[s&TbSxrR`(88UR 7זU/[x-kb~(/6ųY5|Wx| g"#7*ڻ8kY،3EC'33yرqBOH'@'Pj9n"NKGp* ?.,z}\9er0Nvnvޑ'6f'( }_ؕ]xC=Grc;t JLz{h{ٝ|w!HC:_6^\V5SlÝɐj yݱ$O.cu/_o?}7P]Afڦ 4)9!%׏~y X^3j#D ]%s`B>YOsCAÇ+3h]{w#0o?.~nیGǦ '!- O_+ܹ)Dztv[+&AXy,8ac㌩o-J^9c9M+ "ȗ$VPXU\h־_k_ <?~񆾋]*#wߞ~3(JܡI68Δ8veU:Ҿnwr";7,R颇nVw3tQuzi:Xm׾XEo(=h/j\ź<=cݏmuh|x𳯚fN~T{5 K{MTԗ~@;=i+zzGj%_9╆.nȘ7x؈L=k{oX.u)iw楌₪៻SN<Y!cLX_̞a6`,RL h3SwA JJy*:8 Tcyt:;::|>_{{;!$$$D @ cLsss+|8N0z谰0Fc6 !.󵶶;vjN0AѠ]WkkkXXp_][[HO+|#G;K.A 'OFDD igϷ{n0yd-z޽;!!K/v<_~40EFFpR)SDFFe߾}%0NjI&l^z`8t 7ܠjtĉm۶]{.꫇q8L/++ꪫPݱ50yQFmݺ ?Y#F$E$! 9;s}>|`τ 0 CYK/aϞ=h eYEϙ7|>_]]ݕW^')..8n6y;vL8Qׯ/&zp@BBe楗^ڲe !rzjјP^^>w\={W^^^[[K;vlJJ 7`N!!u/ㄐ. :th jY}>yCffٲe8"qV^=gaE' 3gY?ߟUz}wW ^g׽9:>{}a$}>޽{vzW̝;c %Igʟ,2ḡ>/̝;wѢE98@EF n70ĉ1CqP,ˮYf\oz3t:{}FS^ڱcǘ1c$Il~!e۷]g?}7vXBHmm{w]w}w-9 W yin ~]|R݌H)S'iv޽$IRcccccԩS/rT507n&?>eG}4zhBG}D;.L~;~ơ=SO--->N n_X,z>WQW_}uܹ/|z1|`m>{ntۻxH_>QȘ70`Hnh̙h}$ӧ)]]]rdzZ XCKJJ/,,dY&lڴvO|90rqKƝ,tthZ .<?xNgm۶>4 ~JR111 Wh Cmmm ׿>Sݗ;6//G!7-VXaNʹ A[˳BWY0T'\]ZRZȟ3YQ\GےR3f~ >-6eA/g YsicWqI%D=15##%J…]!{YM"eՎ&1F&df͉#*VWU} L5EyTYV&ئ_ЅQ0}K^m;^TAçS=P{3b-3<}>z޽{FyVk?޻woTTT#EgyIQY%"ɩ)! g5bΊ 8;xQ9x#GƎ;%˲}Y~~~{{;111,[VVJ7k֬'Fݘ!=c8q7 0k֬y|I4qǠZvOM=л)RTm/RsdWe+#bX=~\ 01)S0 &kӨ[neΝjoKᦛnj{njjGCs{{ n>4zoYvms?Sg֯ø]˲ZXo|2Ohr/BG>uJ'[NIQXH+l(/>Z/Tbbb}Wigg={&N1v$I;w"%Ku]i,EQ$Is=^wttP:4SF.\0==]e:ߞ͛7_uU=?zͷvۏ);DܕbNȪ/(I[jwd %mNžz7dz!\8x}۽XSR$!~$flD W!{9BqC~XNo׸RN4(gk';:qd:z2L'N~YYM칙6B!͞vp 744444@8==eҚ{eؙ3gΝ;| waa+䈢xQW_~OZoǎ#444ڗ3=Rρ*ذaË/(b4e9!!W_=\xyyy^^^Z:7pC~~@Ϯ5y+uU=%s5y)fB (,;Dd))ȴ3s m%a./(\zN6[[^]ܼ¢UzߋX]_GDTz 5}jMKYxBᅳ[l|UUdqx#SlHQS;6t~:,:+JOfD,wQ&b6Wib_c(,oj]Xœ̬96Ay"b374ʺؤ|⚆V3Ƨde}7RsUEΚvxA™ gꪩi?lyzݯxWMcӿ;OǚVeX{ߑZEI5o$<ǓY˳xT&䝧xp !5WU9Z<8nR U&16%;':R- yʦ{Ľk_Yk8 ܙyى¹+[j zvȧ쬮oS쮊]U91=;32Da&V,gi9K!rMњg-Yh0Wz,Y~Og,}>CafY,/+wfX UtU;]lK< gIAa`fg(\QHj'e妘]%E%əv": 8.Q0SmZJF!7++k޽^Ws=;rgggʓe9(Ct1s͘1#333??Y,BHSSӪU͛7?cjjj>eĉ=ʕ+ə˗/ d"ˌڰBfڟ01ً6l쳢(޻G I;::z_<89)i;n͛7oܸ2rȅ |͡AlteSiaN$:F c܆9)_2fSlܸqԨQ|M.VZZ=90hTTT,ʲl2KKK&MpYX7>oloo>/O?۷55}q,ՔX+9/͢z쮊 ʄNGɚ7 ˬi~zΉ-{_X e٣{~<<θHBH!s3O=4˲ቯw%>?+Ç{_7|7:;:,Xj7wygJJJƃ'eIyvæO-g3B/*rӦM{9ӦM JwvvyLa 0j(pIBB A4mݺu3::H!bHH g/t:uEiiiA([׬mET+!Ě`ŚKW)Xuet!XOO̶@ٞ!g=7/;U XsSިtRfյVU:)g|nf,9#?LIY9M=B& uw}B5=l./;jN:=rn,vE Bx5ЉS_9]BtfE 1R23NYMFY$xBiMxs3N瞩ee,IIVlU9]T\vt@Dڕ6œ#BR]IVU4IO$gyQQhZGiWզELt& kʫqA4j9WTP 9%C[j#O`1ݗt2R6;DKܙ]Oo[FxsKJʝiqT_^MxۚI <N=j '[ջ$+?a%&E 1Y33XH̡4;:E 5~HC2ŤIo>o޼@i턐^_=f{zTgeYYYjq9Ś{ҕjv?5SNHjBJm[9%n#sM(wˡ?^*++Seɒ%g|>Y_O>D-[K/oE wă馛n7q!!!=0 YhQ{{,o vmK,e9+++::h4P֮]iӦ>oC###%I2 ^wŊ+V?~?h'|222`0ȲZ zh_Rx\gtZ2SBȡsS,>g~s $ !_u{(˲fu7.+$$ܿ3ޑ3fyזکu{dz-٦s9.gSgwq/_QPVYlz Y_y^DszQ+RGn\fM^j#y)D%^Śu͂b""9\.Qg6翾QQ/-gq&S?~vU:n,K-#qEzh5)KҿK?`ɟ~%~%wlYǒ3LDiywV*W[yb_tf KL d-UoOZ]UTT,n[ %dvٙxK4)^ԝp{5C~yb_Tٹ<>-#ig>kIL)6^ʲ:k3,!XwUȟЅNVvXF/ܞSmaCSݻw&I?Z}3krzvrz(͚"ۊlqD,_q.|zWQ^RV^p(bANVsGH>7ILtҗ_~_`A 0̻ᄏe˖{gҤIUfϧ6Fb?U  ݇*BF(D IDATѣEQ~Y ̲V5L,JA1 <ϛLSN|o„ _~h '<ƏO9z6y-c!|>V=)))۷og{t@l3{K*$tQӭju{`a~jz~jAQy*8/-55j{!3Wdpe_\۱&_3™S-n}Zp$!D'q' ̂\pI \o2&ZLt^jÙ-!nڦLIC2}*gL444=*Oys L"%ݕ59 i܎fٜg"K׽B. G܃hZչK+ܑe&j K ;nb3x=m=]_U5weNs줰J=.!HCf8%K$I#wI;>麫#I`?Q_~#F:~8!$&&fر(gddk<`KI6Ae/J]W2[vN^U\%+Wr?At8]Ԟ $I_~}vvɦٳg_ve~X7sg3fL2~ڴi>K/hC&F$G7n\pi0L ֶn:B]wq6gk>3A83~'/Yy0dYnook2Ӵwȝ˖ս/&rfsoL"$[;~!O?W\qWݻ_/))!̜9; v}&ݟZBaQFy<v]w|uS~^occܷo_xxxBB!DENndh:ļ`hmmU[U=<,ˊ^80 ~@WWWQjoqg2f̘#kkko JKV̱.5-pWM(*:dJI ;ݎz!i| oMIu%w9D(f$- !hXJZ_M}%2BW9{+~yKJhSiM("] 譢x$WԸDtTU:gSaq83f^0TDW[U.*)GƧĩ7oNJ4645%tarKlJչ*69.]|WaC<RymwD|cNtKiaIu(It%ʡI.GXLZK5ť-ԕx;0zҸ!䢳LL \0)g2 p&iyMťǛOBmj~mthwg222;3##c„  *_vrVT@%k3w%lr;\m՚juT-"8;}7551 cسg0Fbi0I4߿rʕ+Wʲcǎ۱cG3tURRҲenw]]]w_Suv3ۏ={v xZhhO?Z,p~={vllv)Sb!GLٻh; 0 iѢQa_ z-O@/Sϻw1c5\aÆɓ'Zj˖-o1w-[,\pƌ7n"E8Sjk 7qaÆ+VL8ܥ֭10#t),IRcccqq={j@"󣃜&fٗ_~9==}~?/꣣>HO@F@5k(r5ѣNb4Gy䩧 U}ѻh4/Y}!Yr5./V.uEI3r2FVb2ޔ1}T]SW]݋jtZ(..V-%f=9;/hgsjnPTT_jOɴ Ě,_Q"dU譳dN%gd--@P9NEQ\|yUU!$))keYt&%ן7$i„ o_xx`WW(1c.LM$Ezlɒ%ǏLn2!Z60깣#:::0!?Bfmg`.S^q&?6<OP$**jƌ[n}衇srr~_^ !W^y@&Ok4-a1 gY6a0Lcccƾ曁WEO6Ovƌ={lQ5mHHHDq#CnaK޺uk|||:x&~^@8.6 mmm>>nMm۷9s 9w}yz_F]U|{ᅲ%8RȝޟTMB΃YqLϜ_~vzߟI.jփ_3?C83큥ɦb~>Y?=*72zKϾ]\}˖-9yd =cƌd4x1Leyҥmmm]]]6Vr^{2}ġÇǏ,{&wNwԩ G-I+A<9r"<0zH ,{w=rر_/A<:a8[~ݻ #,f9s/ ]]mjjj87o^JJ͛!cƌIIIYn]G=9ibs3 ; ٯ`. Qh<2!%?j ko۶mmmq]}V5XSiZm`ZzSτ1c{曝o%>>~H˱,!dGks !oEza3 ~-JOO߶m[eed&:::99y޼yA;=1 !_8;j\(ei7y| ä2Ř#Ix !d„ ѣi@w8n…Nx<#G?h4vm䛁,fAtV4MpB8vqǹm˸Вh5A["q\`[n%4440]%Knᆿeee.S+5aHdV^M3!d˖-g?0ȹ .xb57@I@_糢rss_)ҟ/P3MY?m gb3ȍ{nIs)BvE?.\gаDQab]]]I(gF3f̘Ϝ9IY_ѯS! n xWC[rRaz*Åp Ĭ .V ,`5L|6e2rss_{ށn%II$[z1XS?XeZ/p40AeаQ(}}HyvC?>>l6hBCC###qvLeb٩k,Ga;?N>d NVgWPCTP>>A -=J[I[:|߁0 3xPK'˲$IrG8P;uV]]N - ЎhpY G'Zui4DoT]DГ/˪m%[ r&-uEW!}dY}!@! 3|>@! ǟ_%w>,rIlaEdNT1Fj(rBB,RAGAtR(~?R29jTcOtyN׆VT=FR>v ð˲>SXЖzi=NA 﫮T+D"Dݢ~M('g2G{8U^~z߃aYʓ>Ch)m'JvJez皏`G{z$\=6Jv7M43鵔NI[aU%wXNWMD ^Qëz-~QE=(zn d%="-h Zh'eq ei{D=PXN|kW9CT{3PIGFҞ?;1%КXҖvvuJfyDeez75"*'7N}L[V bPO?GɷiW}6z}him52lTVh6Ҿa QϗBGJ?8~N55i0 fsK_~{z~J;2<|L頴yͪ5D]s O}VOM/u҂GҞ-].Z0V5G|yjfIU+.Ly]StUbHFhMU6vLG,kxggk-r/jh  eLkKSê_@rTψPojZoЅG{&~ɧ D$IR>SϷj4Q=9:xrWDkXͣZ=-G,h=J=֫v˲_w 5  PLR_F#ʬ[Ry]?%*˲8ZZvMuѾ',mEGh[CL&ktj;Zۜ)UhNtVNÛ#|hıN;u je:Nz](yJ2n-<5 $_F3o@! 3|>@! 3|>@(+itlh( 50,aT3jUiF-h5eNRԖ5|+WhR^,xTʴ񔥆IOY?J_2yiTKiFC8Ղimh"TcY-x:q P-3Nx0Ӫ:Bt h56 IDATj9ڽJH[l4z7~#"","DcPo&Bi&e5*Ya|SA l^-V^%)WBC}i q{i2i!Ю-aӲjxDX"Ի[ZIe8C! E9N~I9Nך'$/2 (3^eY&-JHB"2yzeZW=(Ef%Q@(r C{!ZO Kxk k:݀ԄКI(KC [L <H(i q<&R}iU4W[ի8LXFY= @kK}F QO[̆"eA477h}ꍖ!1]]](g4VG$J~OF?(ZR,CM>-4-!0̰ğBPJKa $OT a)[u$5]WW[[s@}>j ˲DyQzK]bQZcF7 wD,j_& - 8< .rĉ:)r VY%K7LQhoުLg`T",?N1w۾[LJecq(&asF˄rcY YI'#\nbW{{-7BZ@WdֆZ~}rWW KBo>BZeY%vuS>n$ yAy`Qt>@! 3|>@! 3|oZaގz^DDɓ'QbƎZ|>@! 3|>@! 3|>@! 3|>@! 3Mypa&Glۺ;:~@>>@؂12&!aU}{ͦÜ捜ܫ<>[p6>|ѶZ?u1W/cgDтJbYy:opײ8ݭ>"1Lꪙb-&^]M>x:w/! ;+g$XM<] G>x[pS:諗-͍zw-8 y+\3ﳷO㣍ҡB^ۦYWLݱ`9ַ7lxb5X9b .暜[kk_]b\?yX`+%^BNB.ղZ7 կ|J.LKpx֏{'ߕcrr$69f,?#jEWۊnl(63[ͼn8遦Ʃw]g%>^/:=4򫯚k$=;?gMB"u +:;;_}zL.fUW͚o$6ݳcí?U]Ϥ%f6NX`k;=6#nG6^|YMέkڢX쪙;q eqфVv,/:k1N]8^3.z ^[L1꜅ґ=}\;m.|wWM-r,oZڳбɓf,v7>Saz5R}a'ub~mMC< $w#uݴx=˪|Y VnطsֽM2! 9y3lbퟐ=Lz~qyWN5螭nʌqrwQQwߖAa+SSQ"CLbY1.[!{s#DiHQlmKlgV7:B1 v  ` |~9k>|?4x[.rKSv~Цg}[!ݭuÇO59# qsoN:Õuz>Dݭ5M-" /^[6Ev~KƹI1DG|o*+^W)fm.y9_?6Fܐ>%ӍדGj߽Tsx<0ԳfҋSƗ +z=˛zE*-kiZm֤/ >搩v[Ǘ~.|ԅ/66H&@mn{."k׼9fʩ!hw\1'FYZi݆ՁS*,mRkc47S_={sfEdG0*0tyz÷<_ZZ%oz.%C^|Yy6񢠆w=bN~fQhc{~YYZv?t$$$,{2folOVsl텆f%i~8G¡:rjpӇ'mQ(F1&`9hϳo9iEA_O]yE71Oi-z^v R;hH|;zįBhoPB15ḑEV\Ya̙3c ߆w uwijk{DD]z4\˥jTtv\c֏$h95RzInn⇇O= ow߭+ة]{aSk+ED?8\y.yϨq齷v_=/lNHնg#7ќ9sn9x̙#G>ϟXH72}pm 57^`iiŢ& t74wzv&ҟ>غoZn}#C-_E~2˝{|wj+kq~}wkÅu5y):Om֚ 1skkG=]9tOK:o|br:K]mMmݥqݽGފԵݞ"Tr܍[pm{Dz,Sk |c\3籩"ܿLOOoD͖SG,D<mkkV;ڛED3S߲MzƸ$ٳ+NG9ϡo6\OL2twp^eЗȠbhp=1ѳ؛m9ffؚq{j"N >[.]ԾiEVUo{s+ҥizzcc}(R\A=[Zlm|lИ<7.oguAs_ԏ R[t77w{On{(GSw+GwB3'_xTm+Y>ͤݩTc|'f.A̧ 'zSpWD>+`̐}wg{<컇1/9!f=:V+i lT Txz瞋\<φζ݋P.x["qY3gy?ͽy\/#=~1ߛ3w OޣgyԳq0&{/}ޅ.YWs]==lcZ|؟.f>|:y / lWΙi_UOOyO<.5ڦ/RS?W% sM"p>\-}j4t>6wK? :{]4g>'_:~6==U <ʱ RީSoV-xݷ˚jQrv[WbNXdBz:k^8/>m?[=_8ϻiޭ"lS~t1=Ƴt'„v}x=""~cr~Sf͚5aa}jM|ϱ_48HRϜ@gO {O5s~(۶/A|Au{ J*i/=}g*>gaݶ:sYGM?uNqzNy'hIAGFw„ *=~Ml)8D<|C{jNBz[k+ƩoK%\bn"Ɯ>_D|}!kg>܏~#}3HG p?g>܏~#}3HG p)\vQ;o܏~#}3HG p?g>܏~1bEEE1}O1oL2]v_x9}V ]aĘsdBA [rEkQJjKqJ@G:'ETe`Wҡzk_Ngo2 \\~JVG;:_&Ŧ6gߓӦ_Zv7o8i9GMY:Ƴbj5ot)>go|Y׿IԾ3'HM45oܦoʚ5l5e˷DԹ6pegޯ87koU]S[RLk-N3"NQT} 4mHZrMDq.7eKffpCrf}F? }w0o`wtЖ٧6l2w8eoKytP~ԹH&3;Lrqv@RΚAIyy |u5)>~hOYi~;C9~;n8?d2ڹĹ+@.i;[ 72b.*Jۚj/EZo%kܸph*?sd>%ZV5Ҭ}7rXdDE$tI2SwaSUYNr2AQ_?cÈ5t8f)pZNYNe8;6ܶ>Yryxժr{}3vx ݕg_dKn!}q]ۦ7&'9e1aK0DD:Zrk/GZ7x?wr*#LNY^BQ|h9SYY۶&,بZgV|CQmv|N k$"//;ui=l:[Eu//?!"MM7SԖ#LM"3uq[Mfd2Z2㙝.?!i[Ì)Ʋki+[y~[g M٨u/9`n!J6Oٙ\7">>䦽2|t!x˪2$ee=os$lX驃䭩]`[Bs6|1U貌W2ATf2rk׮tUUܹsͬm'ץľQ88E@c===gΜb(;o|٪[] I~ﳳd"s}W^T~㦇!ڭeK*]zubF^D.Zr\ߢ ׭wJEю`թ}G햣; K]SLNMשDh*ܱ\Rť##R65uTzN#r,勶o׊֥ 60/ZRԱ$ƀ[KK~zEvl߈..=$uR\߮ x25+-MN YSf6qk9iz[s,Ek%y-'31xs20972 bQXi0{I^Jޑ.r,oC=25ײkwgo>iqZvTz-^ZVj:dj9>~YNNbeo_c!ZE*-}MU7do2x0FCodƺoggx}uDap/g[eYZ8\%:ve"qCFDtJs醖 q`rZbV$019X&R]lrEK_ IMo*8v,i K߾4R#":ڦWbm6e2CLVDjx;mI{c!ZE*1[Ey>]A X(#XFtʏT(lWh=PD.0Պ( R*Žz{vY9`3.;[5RTޖ S"Sr J3MDo/4m(.^[.v]i%o<͐-Q¥dm +oƥ_r3|ǾϪiX9ZtK {M 9g&"uʮc\6lڠ 5ii- ΫjL룵=isz_ai&_8(82/JzgkHqe}q|v%[v`'/Xe]Y3EvؘrxxwctGU󫎴[7tnMXev$5y H-ہ^9ҙ,vhayWpbkj*K=ߠq:; U;NYNe8;6(]YyKqoJFZDB$./:Fs=WP'$":8DD|g\3{>x9BUWaWUDfqy'WVerK#e6ػanrjPTz(oo4+MONhΖc;TWkyW>;LgmM8 2n=`ԉt6>Ň3mk΢%T3ԣ/1,vXM}Ɉxbkwjݓe,I77wc>˴cnKrU!܍c*^T4nRTޏHe99 QEgr>u/Rx)cHɈ9aݶg^m3tyDZ:֘Z47y (]S]RJXO>9C7UzUө#gZninP0mTb5Y: Q[׷9}Br}B2"^Saȏa}NUvC&l9eK|^I1ׅΏ78'"> jěYJ19^??Kؘc\C:-IN3nzސP%/Izk#܏~#}ϯ]8gL|+SLa-`-y A 8CַFXXXOO< X җ5LJ6x@LcFΝPbcGQQQ pc3˹sDի.\hjjdX3ڵk}poZEʕ+"r^x@ܬ"裏>#>>>m>skjjDdϞ=}n?~\V;vo< X [9sQ(5)}F p?g>܏~#}3HG p?ŘJA TUU1u0L"ɡZ{ޯeo|cʔ)L |AjeZZZ+L.S]6_:O߿GF9<<\P0\7ŋY eiu8FYP>Kۇ+Qd4};0cN?޳>w0aX& ka;0}~zP`Œg k?s?{g{g_Tцo'>.qo>-M/2NkJM }h0se%-|;}|owΖ~zW7k:â8fjU,UQ2 0Ɯ>g(#ZGkZ_&dҐdBO}L~?].|XDD|#Zyz9]k?޳bO"y=O{VJD|#JR7D#+6S"O?yT5Bٻd3Va^hu촥/`L/؀hڞ^X[Tm?n9y]^x!5{{duSA1}Ҵlqտܸr7}ת(ݘn|czƓ}0o?y}!.xS7]F_DJEQnfoj+ K-*+Rt]xvK@[u_/78z8<֏trS|k'f.TaFRu/(M|wќMX(K-+~ip1^So*޹20972 bQXiqZvTz-^ZVjvRkY7O]M%;J`4f'ƳൻBT]ѐ.?Y7^_i;QXҗy[q9;-[N*zV6絜%V핏[{wUCR.ܥOy='5X޺{7+-- 8wx滃-?ۺJwMqyKZbklQ}i3+#ǫ"Һ?叏>ߪxU3Z.s>s[O`rZbV$019X&F2x!&\+mWz1,}Htk^=VcUkQVijUu)eӈnQ\@J6 w -ue&WőcW"7D&3B4"SK7EDTC7x FrV1SWuKc"b\_Yx~ٺpr]bbZם;w&֧H۹c)<:|JlVK{WCoKVDk&6_sR m_TkK.lmt/x&ܘ~I8tKGh0^rM.E GLVkQĻt=&z}`>Agx(gz*"i??_t]/&JWcīۏS{7V79EDTRT&XJsц"Sr JX&bQJw$]6q9נ{Hyf\!6θ(hnA׈c"N5d@t//t&z}`}bU'>G""]jl_WGS[GS[GԈܔ?Eo~&3f <0#Ju ͇o0NDvZfz_ai&HՍ1\L7-Qս. Uqu-?;6+L]NxD'No.mػՃ]^a6.>2ڵk/{DCG.SUU5w\Bp8D}o,^8**$r}2{f}a;0}~zP`°L>?@ w0ac==k=kuL L>q}n>mOq_Ϙ`D_MvK? ?9yUUULL(gF+ HG p?g>܏~#}3HS/N~Κ5 F1&c;yCsy~#}3HG p?g>O1.-Ҋv_(ep[j^7퉁9*Wm?>IGCکzj}Vt\NaZ!}ܜf%jJugnNN!Ɨ;?\]S_a5FE95}G"cb# KE29 ҬP̘wD̂00*Nmg$:+y zMdjnVsdҸՅEKֲ% . N\:1D#NKAڛdS}WPtbź:me%vqjC2֢zyrg ï@K=NOo,_%~,R׫*G3~!k=]{Uگ&=;7#D=l%][֣7?;sp{OtZ+Dd]dd?$v5(h(wwʹĵ9d&o.:J{sM,''sֲ7{I PX4VNJyGa}wwU47g= 60GeVu?|֯\Wc+IpJ>;WEcs#VꁽDg٬OjT0yRj5᭳:y(9{ED\^Oqj"W !)ͥZ^U"!ږWKN^] ^8R+x&qW{:E9HWs.EO61ަf̛#Q3\C%"|qWW2C!?WVuXt0i9}Vj\"*U_u륦<PԚWWvIbh]ji.Z4U8kDdjΫrJwP(-rS-Wv6(b =u)"V^_50gFp ܊˶W^A x-&7Ϫ)6c#5""i}5۬]](+UZNͶyf\!6θ(hnAא+ED\njbJ?_]p4*ǭjO\bhŶ6 c#\"_ՊY7+>0WL&nY& ތ^o_}v|3{M 9g&"u.נR-i5[]pո߲ˉ jGYk$|M;C]9͗Pa+kh5#eqdQOwgޝy>C܏~#}3HG p?g>܏~#}b26;b8b{mUU7)S0WFpڵ/yS!4a&f(ڗs u jB@4nb!P)$/`0&%}u|J^ro'Yg._4!_=u˗Xp||WZuǮ,)UÝb iD-Q6=X[8\Û_ƲS#*M`pttd9ij @ IDAT1\Qfb!u8""V_ɉ}XlYޝq\"uSO=SO4}IQUwuVS~~߇Zo*M 但PU~|=_Tq[_!LRc2z+ծ0p/kuZ侵MU ow`&g7q֗^g ]4ewg .\pvTWmy[g-ore=*mHdVś }Khgy*cU4mizج-n"Xۤ mхk5W& )3!yNzut0J:7OƄs$1a p6ktƁDm񪭱7[md f pͦjj[/4X}MD7``[umC]hCNc)-JJ'Gڎ ^8VԱqOiؿ*=Yz/ITJOXRyfwjbbB>J֊ -vJGgEy;!U{k['W5e<5x Gu.>+bm8:UTvq.eQ[خ ֕V6tyE'v;u+\UlǎܘɵaoUU˗~9toQbXîSEDT!k'|]u)wy-| #cӉ{0NsS>nVo2]ǮD?M۴N̏_Yܲ'phH__lQU"bϨqseI!Pe.?٠*,'O5 ?;[^ׇ;WYm8mNG"3|}oվ>"[;FQ53@]So] 6厬ЭepO-[RBխٛu8|"yyƈ뗬+~%lP]6O@Ԓ)2ijm06yh;ĉ!g.vWe: wgn_ӷ/xiHH`r&Jnnu4Xn9`C">f~ᗫ6ݻqфET$m60'6:qHR}y"vZK~U"bmپXhM30isDb ^:fIbm*J]݇HkY&8kשII9rxy$_k/CeCuJV U/VD*'q2hrhhݧj?GyU+U"Ё{;U0hΗ-Yp;|c `h3ْu/DD$dΝˎ{`/Z&ZZomt]}?zt|@YXײb~ O NK)Ӂ3YIfZzܔuMɤmxduV4d i<4w]ro$<6FXr -8:ϑt_lK?Ȓm}bH}Bfw;i\[ !7zm6םcx}' /Ǿũi:/txB(L}l!ay6p};O'P(ؓBaP.5PUo>y~f`7-=Љ9eccc'+"M|O]}ekmj 7'iБb)cyhye 6z>?0Z ei]~p6sh]!wSWmWcL⃺LhmJfN[V;vo/v_k_xw͝Xbo?Q76o{ Bʏ]}Bkel׾Cc/ P}~φx2'Ýԇx=O~kn/O}/>пՇ:?퐽͛4>ϗO_筏ᑰ;Oc] s\UUUKK[r\}7蓖os3شλwӞۺ.Ӵt_^ dh[g}^e,{O<Ϲ=]7A2MнH̺; oLw.t;)Prg2KWytvuW€m Wg!G5z/w_{]ɻu_xNd/~w/< !=Sot?_S_87oSO|Sۢ]_{7N&&&f߿z6m`׍7XSSqc~^ڼy߻m۶~wuWcccʅLwBz% /{Z,gB~]s4ެFFfYKKKss󫯾z677h nuw9Rl9]_hqHgnhll={kkk׬Yc v+sLϜYmm[`n,g 3}`๽+B/`V:}`צMCgB~R AMy;s@]4111߽իW[5 4>0L?g3g 3}`>0L?g3WǽuT]tErN]tQT̋&](@lٲ%u9Mm۶E8p>?ڎM6Gmllsm||X,VUUYyi h R$OMy/}?s~3zf梹sP @ A +ϸtttLqgfjUu nhh4*s\Ay4x{z}[AA>nGc'A A 0qHo'A A 0q JfmA A @dq JfmA A @d5 &sm=ӹg~,%W\u5Wd^}iMD`ǫkk+k_;r'g}w0:s[Gu}E, 9:BfɚM!Bޝ{ڋWzIۓ;O\W6Lo|3?i?$ٽ@P*/V\\}W5\lյ׮hvUoyewNy>|lVi h /q;\wG[Cag{2ϥuv-4\= tv쯺ͭ a]/+AU5#o_uaizZC5գ7hef|pK:nR{ٰ֏~Y85_p_=3Ug|}Hm΃ 7޶v%s}n}cS}u}=;wo^1ݪַBiw|cSA@A@ @`F\n|tt!SWBMnpMkmW=z>'C(vd۶w >ţdeKCu =EvExwK! F."{ {m{qOģz'?zf+ST}5׶ԇBCӒR~l<=nfղLuM+W=NrțWnX{D9R:ʏytLp=0sU͵!nް|=on:j/}㵗Wε$A@A@ @`}e.W_v~}瞞6Ost뭷rM{FjtKNzSݒl8z/_ at)Uݴ%/  +.IQzKnK o~-,ٰ76O^9zFuޞ. cSk 3?Fͷip[o3g|~Hibum'~^;X9q}eHW_bSκ$A@A@ @`F\VY+FG=6{[7}K\:PԎB.Pܾiuga%5UmCTeW8+]_wp{x78o</Go|0*{`׎pM- 8{} ssEumCCalGx/=p77Uzq.2{;:o}t<Ck[UYv  A @H)}vF}ePrŪ6z7v,x)^xtkKw7/Ue+j>7X}ykjQ,9jOF|̴߲iEߺE5pb`F U 퀌7l9{=N!յٚM!Tg;' k3- o;?aJB4W\V[_;{B)PxpEUյUXihQ)ҞgDCˊ={V,F.4vՊLw'+RwX{ma|BՇZVftV\BiCWmxTU5d//!s^/vBZrZ미wvض3Wohǥ±ULy|Jyc|/nXr{GX5͇аrWo{\_vu|_C4W;$׵bBh4R^z>{wzG}|z'};-Z{￳mQZW;(K'A A 07 y}/ ]ej{7ׄ[nZԻ6  h T>/Zs'Ozxm,jZ<64tғy;sB/BcyBi|hUgxttԠiM㕟T,BHK.潽 i?N̏oO 6mttԠczttL1.޿ի~[]w埽p˿l}o0phWv;vK/{Xg(׹?z V.dAa֭[lْG2q77^~ j{o44,aWX~=WGyϞxcͽ^(+.A A @d5 'wS=o Vnhh4*Y%6({*8  3}6(KU'A A 0sqe`)?d%I4h̍s\A4j$49.v@ @@A@PLb 449.v@ @@A@PLb 449.v@ @@A@PLb 449.v@ @@A@PLb 449.v۠,凬*8  3}6({*8  3}6  h T2m2h0׵#]z h -m  B%3}6  h T2m  B%3}6  h T2m  B%3}6  h T2m  B%3}6  h T2m  B%3}6(ֆ{*8  3}6(k2B)$4f9.v۠ Bh\z h -m2h4<B,$4f9.v@ @@A@PLb 449.v@ @@A@PLb 449.v@ @@A@PLb 449.v@ @@A@PLb 449.v@ @@A@PLb ʦlBkU'A A 0sqioυ3AA>nB㪵AA>nhh4*s\춁AA>nhh4*s\춁AA>nhh4*s\춁AA>nhh4*s\춁AA/( IDAT>nhh4*s\A95XB'A A 0Cq`}Kk` NA@ @`Lb `sg!n'A A 0q JfmA A 2}|mց90}6  h T2m  B%3}6  h`[9.v@ @@A@iW0}<>nhh4*s\춁AApOE`Lb 44X6JE`Lb 449.v۠lh[AAl>nB㪵!L6PYXp 3dm ZUg[Lp s`mA A uL{^63}6  h *IfmA A @bU0}N6m  B%Kyl`o<ȣ>7~98ޕ ,=٪Iڵ遛>O{>۾8+k 44X6J!l%55ccǏP䯬6  h TM{??;Zw488믇|fӼw߾} i?NL=o!?7uiT/yرc^zi|f{;?}ׇ~7]<9!;r_____WW={V\yJK.$ɏ1g߉GZ?/W<.6ut<米:8:jQIЎG{^Mm9!jPwg\Y }[. Y/իWjBck?Mg};Hs/nk5_y,۾_o{}2TO!<\Bc{%|"nݺe˖$nhh40 }93}6  h`>3wq JfmA A @b5ЉfmA A @bU,B>nS-I4h̆s\Au!d׭58  0}6  h`H }FR9.v@ @@A@e#Q/.1}Nm  )ץ2}6  h T2m  B%3}6  h -B>nhh4Xv[$3}6  h T2m  B%3}6  h qu`mA A T+Bՙluc&P bm C mkޒ]>amI4hX!{CmkWO9mT7X !dVAAܘ>nhh4*s\춁AA>nhh44 Flq $>5!R>g)9.v@ @@A@̻h\ݘgmA A @]tUk-E>nhh40Ն{Cu-,scmA A TqQ:CքY1}6  h`yȮ&/y3gmA A @dqnp, ￲UB'A A 0qnp;te_-8  IL6u>nhh44 Flq dE憶"Lb 44ȼ.QZ3}6  h`v-scmA A @dq JfmA A mBůs\춁AA>nhh4*s\춁AAO㪵!nKX5 &v@ @@A@̻ѥC|Κ$>n\׮B}[l h 393}6(3 Up VB0d,m  B%3}6  h T2m  B%3}6  h`ye)m  L"05 &v@ @@A@̻B_$<9.v@ @@A@̻⑾B]Kk]KLq LBCZK>nhh40JB+>sLb 449.v ֜c'A A 0qm8PY|W !v[[p 3amA A @dq ,*{&Y0}6  h`و.PYaDSDb>nhh40z|F{^MuC>_dmA A !d7X 9.v@ @@A@PLb 449.v@ @@A@P7}><裏7veAz,BuK[-#8  IgLRBcjw{G/~clQII`!ǫj; i?NÝg.9/4߽ ;:NܴiuptԠwB梷-mdž{QE?.b-X|FL<#}?aLb 44X6A[ZbmA A`܊98 ^ֆG5kiMbs\춁AAq+> $s\춁AA>nrQK'A Ku'AHm6].*Zm'A t[gpL[ucRs\A5XV$4dDo^"q I0//aE0g5 &v@ @@Pr;r]g7&R~ /9m  Bunhh4bu']>2q}+ y98 B>nhh_f~8$emA A @Qtя"-Lb 44e ׵K$HBC!LRs\AJ^SYrkNA F[jI0>[}|>nU<-'A |>9 FO-+8 B>n_ֆ{Y^p B.Xu-B>p2}6(3Bix h*D,d6=x+]t$s\춁A!0 8 ݄0is\춁AAIvY̆s\춁AAqu w%!Lb 44$׹#Q Fw%+Kq׎B}H m  B'5acqpdCՍKy2}6  ]/ d`7W>nhh4*s\춁AAYdp0}6  $4=>#$H:80fs.Lb R`sg!n5'A 0&oW%Lv )WGz-E>ne AP!ofus `c0'e p>neцI4hXs];B->iamA A rR=ׂġx/Pgq]^yBᩇ8 $zoCZKy2}6  ]kW_Dn& 8 $i.Λs\춁AA:qW^w%'AH(m  c]4K 9.v@ @@A@PLb 446kN\gH m  B tg7;.xUZ L6P dmA A་]jID mk,E>nB0I4$Y=)̍C {h&'(ELb R`0ypI4hXFzC 5.-mlnik|~4$VQIml0^ h^tƶa2[4N >nhhFtY.z!>%$`mA A`LRBѥI9.v@ @@EscppՍ0Wp>nhhR-ֵ, 8 glt=\ 9.v@ @@j#䓋aG)?Apd:wɛq ;fXrp0 }ar ·s\춁AA+g׭$⑾BݙN]2}6  h0n m.u NTh/`Lb RX>A@=䝬`͌/H NgmGzY^^8 5N$t o9TȤ|>{ByoWWWcڏ78{AGǴ;_!l=N8$hNmM~.E_*Tg=ï?_W~_̽ʼnzT?~G2>n~泽W;^՛῱V}|{NjՇ>֡~}T??tttt_^՛|⿔D2jD|G_zo$g};HXc{;vK/{X}>7?={s;^_"ühoF4x{:Z^ *8 ^/'b/}k_\׮kX}9<[nٲ% dV#*E;  W)?{Y8 ^e9%uti.A AHBvD5XzgO8 Bys\춁AAqki !<8 B>nhhIuc&L>X$̄s\Au!d׭$NѸjm"I / /JIcmA AH|.PYAp4mW3=_eĽ>'s\AY6 NA(w#ai0׵kn Em0Lb ʲ$S]8."@>nhh4*YZϯ}Adm !:wj+YtA|c:}uL#nC$Ȕ  6  WtOk >nhh48{=O݄ЫIE;pՍK.q ^mkC>Ne,ځAx}]mA A('u-fI0{E}c!׵˧/iR<}N6  T 5'19oApLs*Ε7b `L6/'A ThRYAp·s\A^TQZ@p Ik0zDoVI#\׎$?nhh(zyt4^$is}co2m  BE:.|܂(+Ew:ȞNHmA A(33IbmA A @d)>G.ȕ@v@ @@A@̋|>H$YѿBRv@ @@FjIGuiqm:$Uj=aL FO:w3"8 23فN̄s\Au 7A)i Bgv$LdsO6om  raDpsb 44ȅ]D cmP ֵ, )8 Bȶo 8 )hاmrm5PG>nhhOCų.^EO:݉ I"@F\춁ADO:l15=*OWɆJC>A8 Z4Bhh[c)R':'m  BE?fF?rj+k`/3dN F\  ̟GN `e~ WmA A vX 9.v@ @@P~N\a9?Ap௄}ފstIc 44姱m?`kWz uCNOEIJVtOky5tm[肓 h*[=a˓Np卸m5X?BAP٢ [Z5NK99HmA A @Q} |lv@ @@A@\09 $]\y#.v۠\̶o w}APiZv\gr!/')9.v@ @@:=ar{FMH F*n4'%$"#}!:gI a=d 44S{ҟIq ,?p>K9>nhh4D( %5 W+"!=}vZ 6  sApddݩ &h%zm  B vWϡq4X?Bd=c?8  qL_\oS}ߵ4=c:8Q Bmk=՞N+ڄkYf)RL dᤧ%ݶ~t~$48]RB[zEJ'O$~ynN*ϗ~s1VIV2Wވݶ9ia>}ƑBG7|.OjŻ3nW,jx~!-jȽ|?:80׿m;/S7( .蒾u룗s QuCv tynNYzʬ^"@p(e4Nf3{3\>W=ޒc{{{OB=OLUW7^.ۻۚ8&03BDoiolvϸP5j,ň ;LqBW:qvӦMV/ǃPj5~Ԡy'B`L NLL\gbϦg~<ᡚ%͍| ̟O9Ei߿zx'σ~n]'}g};ϗ-iVc{;vK/'Cm]n_n^o}[W+~/_O;_v]S'!֡-?m&S}_U'Ϛ&wHl;Ypѯo\}L< ǯ47.o/\gx".oSI0Rb^gB}>֭[lْG2qž<Թ/ w~g=(`}C3l- 6]7)?ѭGmfs7oƃok'wV7tL3=i1Bx7a>sFQ0n1okY~tup;@Hb" H$ b IFN;ng쌅#mڝc[Q[wھf~3tW& <@ $/)7M5/'%|yy:F!$ZgOd6|spi4I'B9a42!:.|">8d{ ۯä%{di@e8z.>vo;8[엥o{,G{U'9#01Lc郝/J/X$lyE,bC0M_Y R7Y9a% 710Bcl/7s; }DtTV2_ {d~2BnjHXl">8aGP9`H}^#6ߴ"ijyN}UB(x/¿t5O!Vs_w쐩FST+e#x2+HE(>8l2S]5 !ky Р:ji fBU|P#l܂ YrB72%a1"13@ÍSbvs $G2뺼=t #~]m+.C{#8 47mP+ڂC<#gs#Ucum/ƯYZIX"v8WU 6 d9gUvCai>T|!}ho%:DrŪqZt"?[̄ XmNg 4thGܚTr #zF [[~24= }R'h KKOjX"6Fm?F$M\yxu¶n@Hy\l P'D#9"N1)Â1 %BeΎ{=\9ΈGR^.N޴}J9osوފ8߀[DV8W;#c"hLjVsC HkgNl^}e#@Z5;JV<ғ[#t"F\9Py`7O DGPbvR}A|[wR&/OkEQUo*w+rf碰iNP|{D, (CY&hout !wKMD v-KKw٭O9H&!гK2_!H櫑Ge4xIE eJ^P_EPǮA>>"e7n*GůɏHH"s̏j[0ev]WD3@]x|@$­c`f}nKwNрS@ _?!Ȅ# $?V>]Y]/O#R)PH$y 6F0Qn45,_  ӟ*5 @*7}ML޴ = Xcq6yX!< zgy+ j}! r'$U*r\v+."F 9 ;sC-BhaF8Fn}$-:pҫն?x,Ma1xEb#Vfγ[W8w!f흶l4g0>!gS"g߶a(6m-}^)v]Wok"[}GBI_H,IJchMu> p| D{+0gK`9Q0}eT9T4Ӹ A;䂌A!dXi 0ol!?Xcw;>.sϚ$ހ4Ԇ .  Y)vfbfwBtlB._uʪ9/0w9ou87#H@EJU "B4am|A\M g 4ӗd~2B.-#.suWo5@igj<!*8_~™5[Qio0E:h_Pfj֙_J:Z2K'HD{k >eo ̘{Zş#)b,Mu;vyXoQfmj^sCh^v lV_7 kK l}6BngsdL*gzc~M} Vr.xOk|wehz,ݚ܁,m7xЮW+g/\62sTH^@ϐ Ae\6>s-1' q?3j76{BI)KO o\6Z}=LAP$W.8(WAdVe|^H)^3@G&]x"L9Pg܋m!6;rB %xO XkKs:xªuDr3;uqp"2)`aSݝ/mϥ~!s%R %ms!7 }hg 4TمBfAy04C1a#|@@f/GFFW㱙^2:׺B{ezFCn2.G?uhզ&Ɲ~&%Vo|:CU6\5s}-G{88E,<&>Z[O֮rوP`3ZlD6{hs3(KK_~x?tgP|QX"ay^]TW u~swҮ|Zg0K𱖭C4d2(jFKyS}m$ pGB =|;{i%vm57.QD,MCM>y*5Ż"<;ztާ)* C,- -ӌ`-sGb~#mKKTtD}%6y3M8F))1s3kB!IDO 8F6>9&^c'dc1ztK_Z6'2&CeU1*fHdT;Ā)4էVA@ƿK e q[Ac Bu @VegP2_qB I9Sƨ y w \ lJz9U !-+<.IJZMṀqn>ZJ 8Ÿ#ARPBI/`kl<r_uUP܊2w@%ܲr~,%= in;˘ef$S IDATه%5Pi6Q̝Ry5DB[=^HQUP &%FxPҮ]H(TDȄsl% 򺎋!hj`g C2G1H٤LH %Z?Ba[h!_ Vp%|RmV>(Zjcݣ~O1φCG#)E.H ꖼF5k3GP++|b)sq=(YQH(iR33X k=1FE/Gxlc|>L; ;v~,w%(+Oa1TeVORc/z}8GI{꛰+/=LZ|@RIRf{q+_;)zBa?Kc }UE7i`r{+~fδY>sHn e1[=JĜ3_::"dp L&tz]PHR6Azv>L).0\|^>7S0 3"N* 'Iґ\lطףǮ !tLLR΢?îȿ@a R|8:;ZpCM#ӻ`#x9\ N)p4v!.H Q w ?S@cd!]vT9c[q4"VǧFnkavΧ/yG^~S2LG<i;?hkb,,D׫g/B;&[$^AR͎}96Ԓ_9P4kB HsJ>)|R 6Kg--1@6V2P&a;!05?4'y!Bh P3 $I"Bq3Ux$ld{pgNӀvn~\7><$V% QV݇vsSB>](%Uy&>4T#bn!Xd7p19ݣ.At1H'-#yy*G2+GB4?)EF1+f(УW@2LB^v}zvw∌]6"H4'f<XF}prmde轜 9kN~pLm7["O>ƭ 2  Z S.34p2+gٜh?p#3Iic  y.G|_0j?\[voxUFb@OdnĊޢGӃRaa g0V$dG?.RUP^()*~̃'ͮ1 OҝoD(~ |q]lt cnΧO0߅)vi7/ ?968|Bn'CybxP llfjYO1q %˼PSc݌?]CoqX| NR z?aex RʾA΃m0H>,Fe;p 4 J< ApUDho<v?G"q@< c UUxzgɲ/t)@3跬y7,㪼B~dS3lpg+p[ޑ]\4H(;J4E%W,V\`1t]ڵg}>[s}' I-d.a Auފ2`2+pbW8N=zWM@R?h4ʜLRKK ^Ql#E?(%H EHl/k3UuL'9S]M_QbyRfG I{H^uACXVR-~ sOFUPu-b\=BB߭]v!l|z#)) qY>q٬p1%Վ."_+ݨSSS.krrS6BCD %_QTMf!cg/ϔİ!37% vَ5CXϓo}d!\"Z,vl,:eS{>]*5B(v Yvr|qи!M^DIOZNKOnW{]˪B>,KKWfj|zTПbbMH;E e";s(shw&88)l ГU4p N(Lؐ`BRlt Dnndps}r荁 ~9#̞ tQpe- ]O1QO$Hc0 jۗ܊A_a>>:.L)FnPl WSO)7\ȃ=:huMр`^ɼr# d!]?pƀɵ& MHw.Yťz|xκk\@}P֫T\cX&Dz94;JV>>666::p8R915޺sjjSȐ+Y!$]@sPL\H.2 9h:>feԸ|~r|\{wKgAG5=Xu[?37ܥhi=lp}5 ':%5bL>}g Wq{f%:ڸ2gy+ YSjg|K)ߚ{pG 3"ZΆPPPz>$[ah6Y nUCk铑UhRK^8,)y_Yyn.VrG"U? R BZYYNL!H4(FpI/O;AY?or,uD49>NLG׆ۚBq$*DN\!nUH.q7+[4<49>.V'nkvS~ &D8>X-PO:̰dx, ev.3mþ@/l{)էq׉1~)<88ӟ*' M(<=Q4(ǸE :I\![%^@)"zsQ a5Ȋ DGۥ][; <}aG)0h/Pr!m(> Pv2_wYf!SDW-bXLpXokMstK-ދ UAaKKjrd__~y͓? C͓HZQQQ"!sXu\BsWcoX"8MF8}V׮tc{M@4m iӛtF 7l_uzwn#CόgJ`jx~3>q kfd94)Yz !3ᓂR`JciݶX􉒷Pbg5ږe!і pρU@DGNB__UWQ&.\i&H~.n $raPf1}dKK%V*5hj+]i4pa O[y~f:zѩMɵ0/DlȻ:-YhݪFx` ;o|p/YqmpUg+A)q݆;Jߝ F^Q8,J ---6Q6pʏU6&2{Y|ujS̃ǹW\bl .0TS΍_|(lg+(IEjh3755䑕WsCSLuՔCÀ 2" ԥ6¾EXPy픏쟤Ӌ S}fG \~:&v1Qg|t灟mܚZZVԪBs} qƩr hoWV*YS]5rY1;g85@AySӰx9' `e#z+`sf5%JXV‘ *Wj6sQ}2yZۮhp#vs} FPN+x@9Z-Hpoa"mN)*q٬8 ovSSS::fz9ꮕcSc98>8#B;~?9}}e)KƇ[G )6-ǐ.ɋR_p N7^ȗdF%%k^Ƈb,>VK̶v5%d[:^W|b2>D%+桋UTW 9&%H#BI\s0X[ϫ7m}g#uz3ƶ`sv)T0ۋX6WͧOUPHj?5gc0N; H?|MAɑf{1` {яďROL (3x)Zs72. !pB"3;/%\ciOM Q`y(Y/suWsdW;Ө.R( OUMBՄ|K{HE|6=>-T1Wv-_X3Iqg1/%aBHC{; D-8dj*H&ncseV.Lç?0<8i!bFSTLf8<ŜJ_!…;J څ;JFX.\ޫ4"3;WkUFS} #`:°[15cᎧ;-}$vgbÂE7N/diiJ+.I0膇d7 eH&C6*, ;Wo*'){{WQ.R Q0WgDԖEgX~ [:͕NmSSS.+?~m\;zGO&Yk5ꈹ9sbbb>J,E}a99>}f }1u9 a6(ې{`<)o6^J-Q%9MQuFD =;zubî4M1LGߵ!{ rĒ+Y\u%v ?o,N[~EÅԒpG6cPRH[bH1+_ B@čuimXڛL<}Ǹ>})AbrLjPWvtCJ/bYzjM2_́A'8GS$)ء'x_rd)bPB2k Z).ݨ"Xru86dh#:0L%rOL_'/0)IRr~Um`ސ9hKScokUfmpf rmt-?xL_YkQՒ-Td0[.àr& tă l pEQE&qqsPzܾψi q ^;)_d EP <\=sh~'Uq4We]tbVn+KH\lDa[@}Zmaaarrd[[g("#l2UO7ό>O;7޳.W|r\TΊ;p@oooY٭ڏs 7v{qD#R%Q?:EܪQŒLhllhh!lڴɍFEM {c4y˖--D%sW5OS;+D9wy݂wE9׿9ߡŋhL66:4ݼI}b IDATM}}}iZTTt[n]lB(&& :t @KS#kl -I;d;˵{/Q;k㢾TWYq!AIRg3>GA[?xL~~Y}ek.<媄Jixb<<).JA3t91n&ׂJGa9bsU l}eŀqژh01-}#cGPs[{O#BʄU^ڵU$y)bjIn۷}?ܻ1Vf/JTbx= A27hyyjT;_(u!9vS}퟾ Hd":" d~#coM|iO6>Hec>wٓ{E\>^;Dyv@jE^'1;naa=D-BLct }*b,:[k.$rouWXKK Ũ !](*FBSaL4]W,_paկ/Flh4 *t}qs["-e㏆>w.]_Wo.+..Sj6zkMSlѢE?/M!TkAɋiwYz{}'y??2<4гJя~t=܊hPyڥrכe.7.\O~B=N36 mwW.O}O\KwC#[G}ٳg_⋟~}ϫkwU"hZwEEž}7<<__o6e׻'W@G;`%pT/Sf8)cxmؚ|O+r:0l1apIZGlZr6f4͓_ ʘdxLsf캮ܻss Ft`(h][!e@B|5b-}a #_vX\$G9.qXBHS02m{|S}mxz'PX)vNMۥZ[+|' 6%->/_[{ˏr]1(3eA'p(5Ô/9pғ['YpPѡ_׹İSQFK1N]ckW&R UqBPʓg` w=8>v~Xʬphob2[|d/;#k*(\y ̸0{b!;Vv4Sב-_.NOF:Jsk+lU J&E~2j|rΝvwP xa6Ɛ.L^Of1P<-1i-׸ rN*ܶ>[ k 1T X?R!kO6J-::Z,GkR'uWm]_'.]n~!DGG#^?RX;/E"D"1 SSSr։[+C%Kv_RRRl2000wؿ/C+bMg; !Ս-M˗/?bx||p=C.l(bYkxx?<+K,Ĉcޭ<;x|rrRP7r8VU$W|UwT"H(^O~_9sfjj[%AШ-YN+-4;9w_[[dx!_7(W닋ׯJT/ќVҔ{+0)n7޼?#l_]b5ׯ?rhs_\F+V[路2<ߏ_M$6^bٹ'C }4dyEP˥#}tmAЉ "| sfnͰ!$O)rE e3fy qQvS~ ?TNka߳LĦS }Hg^w=Qʯ1Mi)3Oy%M[ҮZUFstو1?N܇}<yZㆃ}Rw_&k\)dFAg+ɣ.( Ӭ#o[(3s=j3rL]cUnJ"|\llX1lߑ 5E%r>!YCH^4]6XU7w * g'nKg;p=8[e b6X}[hJp8, i}lUj>=`1P c7 {OMrkcEleCSYgR#pqк'9(VAݔ;3Ro>a#l.\NT"賟 ;J׬ zFӕD"L&Y&Z;jYΙ\&V&D0r@''H9sf׮]fk/MM:dD$''0sϣ>sN }Vg]XSs2jݵL9fΉ]fMTTBX,sSmk/|e$*//{=ǎCi4W_}d2MLL'fٌ'~o6~96:6dȈD"dvÿ]4~%KaSCyEqwU?wB(%%PYYڵkѼyQm_.¨¿o y߂HTUν{h*1qW-Zd4~RX b5B(55uxxgwl4b *ϫW_7!QNH14g\GB*o\6<(i:m3 7m4=~`O4O?V/'yP=lCɘQjJ!#^UFb`;nx[hmwA"}\}|lI d;553 x4>sXɓ]ci7f? ٿ u]IF q/IJEފ#oR>1Ė&87WST2q0Q˯:ε4io(S+OjjčXwVG+ɣ$IɤJSA]<OP.@[׹nח6XTݑR74d/H=[%Iv7tgA:Ydޚڌ2<Ś/T:'c]Zq2i4PyH5͎S]Ӆ%%Iʽrԛ32E#v3,F&%1ny("l1jMWZuDOe }>Wx0ASe.a  D{koQGO7fj"ov}T'; wD_8n͛?[ Չ mJ%C=Y ASTl;5j?gz1%& ڐt}/w3 ht͔ks|/~K"J6WLPf; 슾7P`J)CG`-K@q%ފ25gRw* pP3n8J!~}lq4bW}F6=n4}ZlVd$G"sY&-!x7[iUM(o(ؤ㢼I  X, l999rK,)((~~o/ȸ;kF;ň% *eOyS_auEŪBqB-88)Y egTo~~a+z]N[vnU2RSSKJJryoo~+yo0f9T9njŲZCfS]ʜ/ ϢƐ.Ʒ~oZQZ[[3T*BtSmc/]bŊ+W^t)/rl^ #0 E%ȣ˳pJ~ AHlu}(:< 3 i_evGƣUizo84/Ue4Fs_$W0%a>ey+ ܂wq}~Rc(D()vRl٘ುurmde\5iJBCO*up#e.6cH}e֯ <, \v+s 8n<] ,)9R ;vy+O[<IK z_i">rîb(`E0b>iݙ*(LybBw°Bo : xlukR$aKU~ȓBbSc{1e97{{C8.LNѝXU!4Ɂn܊;v,]T$E -̼1Žjoow<~M>E0 *H>θSð5GO|@F¶HP/o|;a]57 Qt!)cFBJP2ymp٭vS˺4"d:SB 2RN^i, Yw6H%p8-"l/dy˧*tѹ{PJ<c SfB) (j\X ^G⧸K f-MIR2 xS@NAhoD Ą}24ۋx+lG~ʠ*" b% H1G mG#6'b)sW|'ms<Ԓ>_-x;@l;6|Nڌ'0(lBn@2ݹ!gi>PVn=n_w(. -2}x_ xs'J  zNt\-?Hl%,ӓ4111RtΜ98qg3֯_aÆ?&b${'~ט=4}qɩj~.2.\PRR"Xu&J,v.Ef,mMXn:.\b/^ܺu~#uuR)H/&//oܹ=c=6]K bb|W1Ͼ "pP_Uq|">lWmOcYm:ev.R}[1&EOZt[7Y#ț8c;H.C/2yH)`?9P=Tq~[2m[\sd+w 0n(S܂`zA8@#&] iOO'1Akn%[{EN%I<]@PlP8{_2٫PխJM2_-\TX}<~TWY yMFz{.r'ȵ/?k>-"~`"S}[#/PR-&ޛja)Wg4] jB  ϘY`}GyGδ(2ӫ]vmɒ%3~_o_w vmEexQ]zrs?L;?OyjZ;Gښ,Jt:y=[%ޱ)G]3;Nj9FAƓ Y;9?5(tg`|T#>}z۶mp%>Aѳs:Mٻ24$-F ;cp؜XӀQ=#D eB^zv(8!/_@WEŷ yzsL;E ES5?47+H&R(AT?0HG;I׉s =ó2){,t`ҁaܢ5-M!xg!|sC-V੠{G IDAT@QvW3eVŕrA|i4V\ҖY:% tnd_d꘾\_KɵN}?9HC7qBbܪ'>pg%{/h]@\lԸ!4W>[}_r~MHlwYl~]Qe,y*199-~'*RCvFkv)#O*&,#MJ8[91n}z87Z"MWߨZƮY_<-# [7u}2L˵;qF6z$';||^-\}-9rb>yS.k 59Y9_ﴍNh֖il֑M#BAkIf`JY9HN oɲ9mF̫3 beg^5^yZnn(\XT<#&MJ~"_KCGq1§_ZiLtiI(NHWV5^$W!GXs5EŚ}YYYp%>Aѳ1c^]͡Ag]qrkrKOe!4a_bڋhqmIB!"V ${[_@[UPsp 'E~atCt3}e-;[VZL47L;Ğ19\Atή:,[FAm~9 Mv]7߁U >qn^{U\.kh/@q@6C$W84A*2TW nU|qF9ܠg2;7 =O!KOn8WA`T&nCt\Ag/n!GOt}/Mm! 3VM)!N;K$m FKg?e?;`MoQ7tdB |FmFT;XOoKQ}RL9 pN(W}_ =-*g+BME,Lӷ\&{dY7ף1Us B(F(MX&Q:E DiĹ٫fY8J,u!3|0BIRrtO#-"$]Ӥ!L(f )BRՊeRC1ʓg@\_3;=]0t1r.y \v]4@3& g 4%J_Nq %qB"T_k{،=3_SP |4BrjI,/qߒz4LWfUvF cV`O@PsXE Дٹ+O #6,xdFKH?9__Y׬ AIP?nCaQ \Ҕ!&dgl D#&T rI}GA)sq9Lj+Wo?}hx(Y[?BXqlb09`.r[ c%J r:]\c.$ T\/MpqEu:zk<A*my4SzpX4MUPJYTq|IBbBH~2mEl 倒}՛diϢk`gY6߈x;W |:wћܛg;|S|^~V蘩r'CR, D#-QcKB0G \1S9W&J%+!=9 5[#7b sY9W;TfD mSHUl$'+耡Er٭!"NMA-?wܹs?ܟ(YiL>Y~#԰:pMW?5(x*UAkvgui^PY4_+_{wu306" n (⒀5b``4{clb4{m[۴EY4 f+D-(*) QD͘hz||91o;Աjw^h}}'M޻˰߲#Gz}@nS\~C&M~/(]{TJTPSnkۿ*Gyd˖----嗿euu͛;|4zG;v07xϲ ѻ~wԏ7#uuôAy2Ox q|?}O@mX$E࿈?ȿm6K}Ș8q͔4CVN={޸̒%KڛӪ-}?NNN+Vx>{{{={Ct/?>ymnK>oPgϻ+v߮͝ih|W p 鳃G3, Ƣ?-la2#|6%̗OxoT~lსnb?wBOn)"Lvw?~ȑ#fsqqСC׭[ɓ'8PRT]v9s_~񕕕w.,,ѣGl>h4;VPL]vUTTh4Yfكsܹ^uMΜ9JPxxxڵ… SO6m]ֹ3f444ٳGDCBB>eDGݼy;\K~f̘QUUo߾OO .l߾]D.]9sZc?~G{XVV׿NZ֛Ce}!"j~y7Ak a~o/=c8S{ uU?g& pQ}e]PPȑ#xz{{FDDس>}l۶*<<|ĉ~~~&MZ~h?~=:a„7L&__ٳgO lׯWT:`0tUڎ;SSS/]kevnÉ{ZF/:پ}{DD[o;_}|>K.͚5+::zƍNNNO=ԁxg&''_xqҥ{ZYY9tٳgƌ:/Dҳgώ=ãt3ΞwM[፷nhhpwwq 5577?EEE,,,{lyyr77O:˷+qOO;v sgϞuuuss ය+%oYYYZmVWUU+/^6lX u=X,#FDFFz"ү_KJJ֬Yc '|jO: /lO4lذ/~ngj z{ܼ}vUUU?֓κk#002ׯ7;_Kk4hJj;u=ի#<_ٳԩSSL?޽{CCCda;߯__wꤤ;vxth4+n[.S]]=nܸ'xBD ۿ{5mڴvq+8pӧ:)** |Gc|sw^z͞=R>swRT~VVy dX9y'|RDGFF*_o߾+ &:.??ƍӧO|իWZտcdžDDDZjժU^^^ Pk֬y5Mhhh>ۣGεEGG^ӧNʪX,"r%`06l0|Ak(O>ZZZz!Bh/o߾:thVVVKK#GfYfTVV644L4O>ګ---߿/^흛k׮߿?SNyxx(l6[2ɬj'NXfMTTСCϟqO>޽{<fٺNTH~Jl~ꩧl6VM RZmG<== 4{Cٳ)ε?~ŊÇ2eʪU:%##?3gVUU577ܣGexbiӦ=䓹[lZnnn<788gȐ!O?V觞z?uF^}U^^^k8uTttR7n\~~~~~~DDJZhQ>}BCC>YSSCعiӦw}_}ջRVJuQ]y' N>q} Ǐw.8kW233|Ivȑ?9//{)))/ zg^|ǧs%iӢ?>}G?ruuݻw_~)"/R?J277733ӾŲe˜wܹy 2jwy9ksww? /`ZnP]]rʕ+WڻTTTtԩw6m۶m/^O?7R/\ "p E 70((NwppTWW`]0%ڻwo7A7"bM>.3x 6ta6l0p[6<<|…w wLee֭[+**\\\8wCpw={ jkkfΜٳg{… 2ƍ[pl~1ٰaÒ%K C[=>`DDhήB1gV[^^٪3 IDATuСwlѣGMM͛oiX㣣Vw)"wرc E~~֭[ϟnZ?ü.Y'O|Wzӧ744(ʚ-[Xӧ=f=z?6lԩS{})OO* m+; ٶmی3~_ <==ׯ_?sy=MMM?hl;7222 _tqqYbEvvj5k O?jZ/_ܼdɒj*3>|344_X,? juIIɶm esW={leeesCBB:dX=vaҤI}h4MMMΝ.]rww۷#GfYFDƍl2qvv6LXxwnn]HHHD䭷Zr޽{ N:eo!!!MMMYYY---"𬬬744ܸ򚚚>?IK!bS\Mgxj=5ʎ_,VgGDDR}kX>|ٳg:tgϞ2 -llltrr/o."6yŊÇ2eʪU^z555߻*C R˙;W̪gy렓=KKaJ9zҩkf<]бcl6?9sʒGݐD˫}n{ɨ(R[>|833&88ɩϏpvvVT-ӧϩ3UIKsxO7B1iӦw}_}ջmO;8uTttǰvy텟}{_fIBBBt:R3f̉'g9;;+q Vju]xxqbD@?7=Yʫ(S΍+ZQ30l>x0c+G?8hkꪤxڌ <ݾI ',(`yO;gvjoiƃ'n|ȗa\ppntu"b1XKS(Dflܸ1>>><,_^p=Fi)E+ٝSaVϟvMmL()QYY^VZ.%UƲwtՊ[@4{5R'mOacK;f\?/7ekenG%kV1L/7G͞fؐ9ۓ3"RV:1Z-3:1 yqYĜŐP:4:T.PrQ;fqWU랹=CNA9Y)]07vuYvHTf[{yf]3[vĐx<:oY)qkmȘʿTf]tG7Qn>9miإY*-9h]ܼ)ANWjoBuu1C"5~~̉vl]E2f] JFg}+aU ۵GϢ^X4vLQ6-Es]H9cE'oЬ9}y|Jܦʈ)ի(S,HM^ؔKdE<-yu^nmuӞ3 4(<<?*{Β^Slؽ2}c[BD?`Uy nq }.?oWӐhio{hgO\ ~'ҩoՍO[*l_4^dgmP#1i4b:$-y]`U"'L}z{gEYvoyQ4mά))^Z/^qo<9̬ #1䘺A(4+K7jm2A 5 x餲wCYK쬓ԡKuĘk3<YDVC:eyi*ui) cfht~e},;oi)KsbVd>ܹk}-fbQѾ;u?#Vt>7k⥱V?V,V&!ʚ>Ϭ^niVn/+6Bhcd-HIX*S+וs]WEP(hikl~ЄhS܃FLN-ֵ؜bC#5/DSiVfYD N-hM21筟1Q!k֦ŊF) Ԃ~3J_~_~֮.WU("[RD`KM*+NW(s?uNLJ kn ,5t\W98HK7Ǟ/*5*N*Dj_*R]}F3%"&i Wfʊ ~Gf4J-]TO7 $"W_^*]%"b5t:RE hR1^C|[ ?*ipiCsź`u %%("e^''21e,y"N2ҳ׭,c;UXtqlf ) [a*HM31;-G*OƭtUm+37W4 ܑsrH܅6zmZrHV-Y1˻+(""M>&"݋cGj^clz0"ͦ:|Jʝ _snn*}TڷPnp-9Hڮ1ʨ`"ҹLi)vZ!7QD/iu{&[J>zYc,밙rjj93J+.-.M춒N#fϖڴ7=.Knb7=l֯BJCҸFߤ݉,5H^#b t.& bzbL7BƯJ[qrq]DsED1t~SرaƃcuDt]RD1عD}kY`alb|d[3eibъ6zn|u/6+Oֿ#+6Rh]7WeNu-k\NϔՑj Z=c]dS{vfgs,CAiox( DED;8TRlѢԈ[@x3*q%ym,9X9qJpᓵݕJH@tRD?Ƚ}_w,ee@Uf>~=FTvn3}n2U=n""ڠUiS+o7AZuSLj1Z,^ܔmc֖!jmD]fQ/\&kO =Kp^D7vA&+,"X_HCffLmW,^}Pt]sE8y_+ Qh#"`!3Oh4ݴ] 1ee=;qhkvStT7fP*:>Ҙ|䵙SeI y)kS֦gTLҼJMF jΜjnuiW /q*=qnZ("˳"[VŬMLrpCAKEG%>>ERsF71b/f U/?_89 VAb.GXع7\GbNVi,ef.U:κ~M7gxtb>-Y]yPcʬ3"Rm䔬1.]nuSu,ԑkӓenbӵ17yڴUbʬ˳JSbEtUsDNL &1$/FJN\^a,^"-"C~̼r εk>^ {xY1d 6(,, m6IZnSQAI1y,xmhhhnnV( &OQ<2uۙUCw|4M{*,2B~?%tfl6fsqqqww >ĜtV$ĭ/':*=ٴ0vu޷Y3U} >&RDbn4̺b24so#gfwKp8g>x#}83HG px#}83HK]PP;kG p:XXXȨnLacHG p<CW|Q }:a$Oߦ7+]\zj(Cjߧ&-oV@ ]?Xj6}] i,G3SK-UVʢIwppMƠ@Mg.r_ʑ5{G 7vqiQۿiےz3Vȁ?پIٸ>>+oV}K )""W^T>vzY?1i%_xil=ŷG^EDG嶸4'wa£>;:&uܚ0E2!(ULr~UܽMS  z1!p:+-f}ߧ6ᭃЁ| cmj<7SnJ}Іfsƥ<ԯU>ks>Z6&Ea|^g_;y<2:hFa.:"""M5;K{2_* h}\Yڰ!PF<=UZ^}ϠY?'((^U]ɲLqGvǗO8U[D>uyG&?{EL*{d8W pd}T8>t$Ͽ(Tv"梳iͽ^3dVDt5-aƢ*6nssY^xMƿUsU#FX^*"Ң;%,aoh Զ^L7{DbRp?'EDd԰_N,yC>B w`Ocy]u?VjW5Yz4eJ8{eZuesπ٭޿OkzO蛻!!QÝۆEjZEED4aH}y;teq:Z[TEVL7ʖDQ\ɐ5*'-"3\[}j~rbhAׂU'H7iM3vvMfy^jD54/O;2uWW*oo ~Uު;5+W&٭ǏIв.itcgJ< .<]y6[*㮮{uUC

eہv@Pˡn=]WǗ}ƍn߫+^4hF1;lorWL6V9_jWg 6__ҫHk֣Z6}|8`D7\}eR{zΘƅ{$=>ZROVYJ=|d-νV.ԦZuԸQ)Sn!FSkhGn!OWrOݑ%Ķz'=NrHӒ;5|O:|W8zrɡ^)"*sSSS^2t}㦰l<=d:3-ώxc x#}83HG px#}8J Ywiv[=YۛQX @v83HG px#}8M=ELJ?#GnK/x) <]TS%"IDAT7u[gUhFD|:* ʒ+Hɧ7^q@E#&zp+uL,_h0Hm5&5/xԑfcU/-znJO.pg鳇X ;~s2_ڰϣe靈WgiZ0&)U2v!'>j,\ZtY#>mZSҽaO6$j_>ceUYyJVݾ7TaK{kWvg~yqeoUx;j@1n?x}EՁ+ 0@u5ӏU[ -,0)Zh<_ٽЂwCR3kLJH->+g mKτA E$bݹfZ˒6o):L?qHvqִꯆALu囖QWBo!:׫+tN9nQCd^2E0pKق׎,;PdvqR_P;ʵ}v6%t-kcMi_ʯ֝m?1H\؟ԯSc|n䕐XǯgNۚ;ia%=e_V4)WW뛌=i[9[US-"9x#}8VOh1V3jSl6FXpx#}83HG pAfDe<^֛Z"xdfd @KCb ?PY1q4{z 10>?cpOE H9w!UY2*d-ʚ,)C>ڶ AB^nBntA >!|;Fȭ=EɃ`y2ȠC0L 0 5^P& @%n\~b] u:py&=E^D|1 $4-,v@)DG9L /aaJuhY$`>\ĵrFYHfrʥ)C5d'*.`FPpWș(BDZizX #.FBOb +g>6LY )"gHhLDqNGF)Da9 ;I_!H X@DSZ1PAAwg;?>G6ĭg0)<&$*g M@BmgwAt(h9$ OCM<=$sEuZ#/) ' Fafc{wPXC#OkQ\s3;kR{00r33kčxҪ$%MT1h݅1"AVb:"mh>vSrͭ0Du-aL% E(H4PK _ZYҧ_s^ޭ_\ _G"0:3S!/Ս7"X醾}A!HRP`Ay` Fk?!!PRvǝe `1/ƘR1 5~μff5@xx}d+2G91B"t/y0-)h Dϩ4E\fn.ޛyk|o?嚏v?=.u;mޙh.z9`Ew<=$1ˣ˽-2aL ?f6үz,Q.KT ? J=/}1k/)dx3*9YI<98ԟx1PjwgyqKLC+4;g~yƬf~e_sIlg Hwz[@2C +')3'"!c' ).4?Ϙ?.e%&W'w6]eVckɘJCC+FCD>imN{m [bi޼'N\1zgo2oKo[oq覕Oxw>u1wߛį!g2s䠨/8)|k;&"n~珡i1Ξ;[#6 ;ʣG 1a 5U裀Q շq}Pg?Pa!CDmCu䑡3:ղ@X9:]W Rn!w J6$!s@!^kR=C>h(RK/'y2⡽=b<H>% ojeWOÍ~Y\u3](ܿ3>顨UD@w:[(?oi ߝ9qqxѸ W}9ߘ4 p9""böG_:ve1EWsǿcg50MG]rR=';7s/\5 uLjVLQi ZԒ$_Ig65.dM-%yם5qa0ju@jkw/!ߚ9Tj904V9#9{x&Růt1KSK}~qKuFJ4hqBṓǎjqF\pie tuh_|镶I okw4Tϸ`[j~?Zv޲B]9h߃^hWN_?] 9]mڤ}"RS3F) % [9, )x F8J˾|#IWw^$:XTC F%ۤ/Ē-צ/sww۬piM+T1$iga &~MmK/%^O?z^ CR962`@ol_B\ۦTǍ?|-).ӈn$B&_-vge aOPDܯf{'"qk!`b4d/^zGմE<^Ͷ.[DkmV~G0y拟GJޛh kt+nͅݶ<&"8@(58CzK&֞U "iصf1'D4%Z?M_ר[4#6 zk+Zxh#Ȃw^k3︢ -\ɦB훆dte棷wg]MT0@c=/o1|~n=,~CV-ͣ>ۛ}ǵO/vC.{~eo64c[5+,#H)괋7&]BUcw'Җ^Z:f: B:/%^4P_ BHp:ЈfGLyaߟ~}RD$SPè8@3bTʪ_E]EqcO,X'nwrD.RD='2{}h)E0^+#:>r=r~qwc6[Y}ֆUr:1(K`kSRmWN~|9N8pW>pᷯA.9[;D._QۿI@l|>Q1Wn)vܵ+zJ,~iw>yJMfHcA{xc.?~ӴO+VWvItgV>*[;,iz@xڶa02K/Rjj}#@: G~Tk)%q递鱸N*z`88(b=+;)=E>o~zQކ7VKcΌ/k"e&HRQI`-f5{aHsIEx8D4K)ƒi8:Pq5imNǘj*" N m_,j|)~鋎k涣b`shEGJu=55nijeWð-[ ͹[t_, \Eh -*8cWDMW*Iӈ}w󮏾pAx|?k285RP6ssgn>^~?<}N%oWÍ]! ˲W1@9!;1`E@S>VU>쥵=qd[}6ZEg&]KʒjH˴ܹ󱃢&0b9 B}vî?<qΚs9v9ɛw,~7"R*ս:+BXm/&\yrAG6r۝n1Pk̕anl ڰ/&=xhd2;V,YZ.bK2d俎)1eA-͇ 5ZtP !UvVb+@((E$n4kOb[t|WϗX!*Z[}sų栃v< ,-FշYx?k0د_ԕV Gk`x'f nSԱ{%?t(S"!'2%JV^D5)ZSSupK֮s?7q˫lBA26J U$0uҢ 8O:뜶w/Ru'3PU֝r+soK0KFcH7Ozgy6ǃHiR)w9ɣHX2yIw-0l۷ߺ{_Ŭfj@CoEZ{2P!k̫T" X%oGPSSRDVɈxȺv>㞻G=%Ļ[1D@d ZG-r *8Y+m]}njXD+!adn~Ƴm GYSB(*NN@Df8.R&1 eb)L*DUF$cˆ%[/rJ*',q DL|[^O]DL6qM)RgzzTΕYwzceezSڑͩiB$]opPqANa%wtPrA;HҶ&+wi3㛠!ΞPf[Hگ)7 \+2c{AD7JcUA2#[u[Z?S(,@4kICȻӉT%b+r$B1Dd-sPFOc]rS_}xjmo ^6r g7Zq֡, YiJ 1aUҖ't:u#@9PjSm U"N$ Qj L.?nkҡAtjQP"1*T3S}y !pb| n,Kt;dW`] k_ô7ri$]˹dD[EFI糬3&6.F^) -ΐԿGFb֪5)p)k2pE)ǔ(c ;J8IZ)y|xu4 1bP#QWHd@BW@ttgC"4 #jpUi.vR۷?ؕ}3||(AP~v#Ab (u'&A"Ѡ[ $'24M|g7ge7\L!R.%cI%8c"IDATJoRWjJJ Y}j`(:EP8Y (JR¢&WZ3U5v-X_@QZν!i9o@" 4Hjߐw)sni|JI2BWUcut9Ad?^ܩ o.y&'ˬ jf@?LzZ΀|z6[8UZ~J*ѥa020esi|puG6(M$(Ե]&وwf6R 8̫0B*1 7bWL|;OX{&J!o SJFqwbVqUZIcI{ZQj).Fi̊sdS6$Y1"!T>p%djz*4N ZjTki"Dޅf`g]fm2B,Y^{SM&=pXگԙmiKk.A#>6]ac^Ɓvˬr21"JTt]Td +if0l)IS7IQk~Qk~BQ!blKdvxukP&EQf(J󰢳dDz"Bt"Ȱf=Y=Ju 2>Gl lڹd bj,aBޑ43 $D7pD}Q UW`T7D:Tvpj߬<El0ʧ$d1P٢1qf_jE2!;qϤtB}<߫"l{rAS3S ͊eq [ Q,mmݛUݳcboY10sF#I610LMM !D 0 { =tV]u]Eu]Eo DR(:T*j`pba =b!BYD9߯[m˷1445Kc/_R(./p0Œox1SeYl YD mmmebbb-+{^%.\weVY,pͣ:;;ED ~T `0JJJzzzBbXT^^bwh?Gx@ g/KX[[[_7s.*r52|X`W]]kNYX/$(OR-[zzz @ @mڴI__?$$!z75uRi,*siww7kkG6j;>^p$i'i N%DH$J}Gɪ]ð Ppp;wPNN:<-B%-#!+;9yz) F ^ͪ!9!Ef25ʝeSycyT7:;;]\\@oCD"reN `h'YX[c@?cqۣ3)ip;kk՚`G'CAK|\B^.y-(Cvz siyYE1FY@яge{!7x󼒛ee5JZM#4c6=W&&L2dm3% o;0L"d2܂ 55$X^BRܼ^8h0MVt|4B(rKA'Uq땚ZBZndl4$d*cܸqn"+ll?aB!?tR WΘia4^&9 !yi:eW4:B} @þ)֓ ŢBh䨈hPբ92|O.*)U'>zN|J; AU!2*f,+;Yn:--- qU/+)?٫ԻG@H@ Uxzeo- SvsrD*:Jn.|L&Ddey2>d|m&&L m)Bbx$aryqY6@=| qԴl{`'{]]ahd.kqkǎ>{e5.ٳjIA|Kh?qrU+e =; ŢFIX{N.ȇ2)(;j"+ MWlzʗ @F"vK#uu:'@}] BT[:>Վ_(}lMM:BQx0>1g=1唇lYy~ε5uHqx0b>km->PW[/+Jj'X_>ǭ!q>M&|&D m6xQ(7RO$BwmE[~z  ‰ᖘ#wn11aD|r.&4bIJM^BV9"{eM_" +K=ڠp8!ؾul ~mC,gwYJ--|;Gjdh\=)5O"Y5(ֆFm BEOajp&G;g2oxh*oxFoKMXGm I2U,WV)^0熆.8BU {i>|"?y3}ip)ml,tpPȭDyg]LMK6e]DEz426`Lvnç@Ygɢ=;TYX jkkݐkWܹswhPXa}ޘw,,!T\V`>8/..]S]]݄e۠I͐{_lBfjf:fB1Ҹq۲5$oYΫ$~XKOܻ{?Ow 5hL&S\^8|ߞȽ>K p SQ˫Jbjʍ{$[6*2Ojjj_/R)m*" YG2޾yK e~۷4 z}kkIUMuĖostTe <%pIP(,D^9 !t:9~D"tMM<na1~".^>믿0Z( qp0~7o47|̬w-mDb[{f_K7>|ipAU^׋. `LZ[%%$쪌g->#g?q9"Y魣9>ցկfMU9+k d{XO.zaEy%hH;:^!vhij}HGGT:*Z ߻4}ueE[1兽"|v\Gf?yJk@Qy Myȯno\R\ Ei`d_yQw=jk<. rpU+hQaǘD]]._$$Ł*)*͊e.D"?ڱ'<4FpԔK&xcy Iq{)@8:::gokTˮe.(5-#υD6zw@=d dP]Oάo rm0 KqF]af@\fcP+JM>P!oWT\;r(GG ݮw\.gNS,Jx<ӑ7?zrTՔɊ%! !d Qg!nW4Վ#D LࢥU]WziIrTZQԷZ"I\f*:qRjlW(Hᇵ Abf־0ϜD"q]{v/<{79oW.;7HH.ÆeXrp XbccM$>yRVZ.8T%>Y,O^/=ve5.ٳjIA|KCV/[&%tIENDB`glances-3.4.0.3/docs/_static/twitter-icon.png0000644000175000017500000001437314432156570020732 0ustar epsilonepsilonPNG  IHDR\rfIDATx xU7O&3L[@w҅,\7QEDTQE>(-nW@(U@ZQ3g{Dki,3}<1i;*{D Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1d9#@|ؚșl@:N {qZQB@އߦ~j+󵪑lRg71zӯ{#Oߤ9aK闻 *)U8b5*hBw=~!Ac;GVigTc9{-K6/? ~'*7fV:1ML8ns`Tn5rf\eo=i|~Cgu=qg ;y5*ݨE! ୫ڹX8 *8YѼV3~,w^3Ss r!oˡY!cc=GE$^먀o^|<~/ Fz_-Ţ1t]q>%# ϒbow?å`иɂskpV~]G <߶qOL .?ՓTsSpPA~R9ldwG3x)^1hάjʮ4^I!#?U,.IKmyH9~W[}ܗ5lNd尠`l7/h:;[,Spc>61fU_G oK/jٝc1ZN/M:28~+,#e8c;U!g||XoQ- Sx>$! ,a?9/%3[xz4zK?TWfUŸk_Nɨ'f|˸jrO9Pl9QN`vUWe]h?ǟF]ru~oɜQXb9y>޼VPQ&3רsfqIp^ܫqٌ.Z5G*>w tXcH]:0[}&S[Zcv;ˇ "S}j(X$g)Nxz6ܱ1h}4]&ngOZmj"5T;6zZpJ.+ЩCڇ]_'8)/vd5WЙ6Pq` m3$0ۖď_xy}.2ۢY A|DX1,'Reu~:QrͽFaQirj0Ļٶ%r{O)B{IaĪd;E*;|s~fLmeLq݊^8cuveǴ q0>Tiڟ/ ;vǍWVQΞNܗ:JD2~Z93:]iӟKKo_vČ]hb>-+33zaA*?v`]uFfŤm.za-&X䈫܍TwAi߀L9zkB R?T}G oas .]o\Mj[j?@M^в-dw{[IeڍvxCPu 㽍.EkQ,5ȧl1e5lFВ'v&sQ<HJ}y,\,2{RiY ̪Ɖt;R@樛 p!\(m~8 : .vZuQ1eL;W/^(rśz߬g7M] YZw҄W2l)NYof'\|?bRؿ4@?S 47ި~{9aN:bDpS%=ĥvsϞ\-9m*"m4zq j\*G D)WR5f6re­FrY4 ml?f:}NG e>NkRn0쥺zCcaѿjԨؑ7 Q=ʅEAV ^6EpQ@D Xb[ɜQuI.To_n0B5?gB%>25Ⱏ@yYBaG2omT#"Oꁟd1]~9H$ţ HQ=6xg`R;a]TFX `rej1bW=e:Rb Ad r {3a[ `"^v>ScCmބiO0QIT/J}` aHcӖ'Uw)Bal͢:TX0Q;)ob0r= "<Dݩ9{4(\|F6UV{vXzX? 1bi{4rkk q:1G'pjīM:^[i @ԺBZQCㄗAlEVO~M3@L: ^&\FPT._텟=Wz~(ԔCXrHyv.(@HE!yz hX~a (YŋB_ j Ȥ:|T\'?f@C;DTfE$w d~T~jΔfcѽ-5޿boo1e Hdqsw`?T";P$ut_=q|m=ERr`퉍p;pYK4]#)hxuԤRa)iSpcqfXE䒏s^U*@j}ij_ԍ'{S_},*j0h5Ùk;Оѻ#2e #q^S%~;kwĴry~n_jOՑ,HrPfQƵۯ&r:1#ěLjؿfʴr^uQBVVMQܺz(rQw["^_'w/2L} 8*{Kqߟ@F9P\ p74/omz> qoK-fpͶ(Z拄rlʴ X,r-=W2韙m>6ʓoڟRigkz05Y6|3ɍWnRBD97ϫo3j$>5"H[zQǁs&TܦJLc% ӽFCLi8WY b6dzX'ۓgA5j9ڃsk__9<]uHY*5= W\tpWTԫqRwZj({ò\#H5^iruht  \8B奧;sN׵^9|n棾dV떹5Rs#ǮTyt@Ȩ`ۉq8`lʩrU4DM#~ʃ>]ע,_0jx: K-]KZ7&::Shcw@4yk~ C_ YeƋUNצY4Scs)3 Axq0]+F^ڋ>+o -#eBnRSS">_ @WWҋ8/ ![Rb-+=Z.An0'9ײwն(ݓ~q"QhgT <ڑjȿ+ͦ_L Ah@.➁$۷5߫ӢlB*|bR_l2S;wǍq-`Pǁq, $C+J0hAT>2?vpӎ^Y!\13 "%֓ ?כ\4 PX2ǿmWܸA$ 2%ܔlAȡ_Iph[/PA =\,,9˽ (go,8)oHF-z:X70N;j 88=e}'0_w}9a C}^7Jϭr#CGQCz}e0 M'8ևȠY)xw\#y0 ^cՏ :3ylKdwϨXsmP HY}, {qd -A VDD 5gߨz-|^ޞ!@I("nPӅN n9T>d ;j.6ճKQ i6C}h^_ HjrIˁ:èqv9eNN2}Q{ kKvt޸3GXR@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1Dci@1s lJ8IENDB`glances-3.4.0.3/docs/_static/amp-dropbox.png0000644000175000017500000007113114432156570020525 0ustar epsilonepsilonPNG  IHDRf%g6sBITOtEXtSoftwareShutterc IDATxڬ}gTZU{0dQDC+ajWx kv1?!%1sP٬7R3FRrƹǵwbK-v)%g1T[Pˀ1Drs`jEA(Hy@,Uк <)Ğ8-*EFuc)%.DH[5v1{*|%ZqmO/g?EgilI/;`R+HJ!B)gcwMϟGT)EVތ1H ƌ9 9Id3dA{k٭q@"<%@x8Gc5]$@KeP5uRJI<qD {7|d2偬 ƘѦ]+H2g @KYꇂ3 ~T,ZsHB?5!~ʝ׭U14Gy2& I_lj zRd^0r\& B}RH3FO16@i~YU&wa 爈!F,_(IE:a2U;c&B7YP"rΕO&β3Y$pKJ#VD 2BH2ldҸyΫ%'8ș'- cXI I,T7ot832+ƼD O(5#'TwLp6.Ă#ɵm<\Ag)3%@) $ xsS >:`2)Bl*$)%4$_1蕏7a4:%~괅Ad*ͤA!*jWEQFH j$) Ð$YLU>)(pUoʒ%YūdQwxq:`) DGxf %~1D&4qe FpYdcD2ǥ~ >9q RLFGDJ WB ٌHP:N#L aDNRJ!EB !WjaO[բzVMJ-(Czͪ5ޖ FcS҃,׶4!%'w.Sye9稬E&741__ZpK*i-ĝb2=?}FKҔ%}d(Nmp H}ψ)s,eٜg ؉l|۲ЇN:aB.f6xJzUQ*"`jzWq#wTŅȸPtxOƿCS#>YPGW9ED/.2KE !8羟r*j$!7M)nO'EIKOS0*7x3*)BDoz,Ȍ*"Pldp}e6P<|_f(ްMum3jw)Z2lB{kv( QN1yS9 М:J iZږ3Q"邫 )$&kIIs1o}H(?KYho9gt-I$IL >TDgMjĢ[7."à@ImaWGߝh-7}3*xDg Rxs/MP/u`T47<\o]00UHNzy y~YKIa QrEqˮ "*sv3,/x_)ի:H&047QpfIYX[>4& (W>0gҵkwIrƍtےvvuQJIB/`BV ~`h"X4{dmu.S2X䃛j[ZnZ UUo _ms`H3]}z=^KJ1"`>7PD?^e-(E% )MAL!^(Tsj!Nq1rľN=:P趃c,Nx*TxLŁO3jw+䪢FͥG50ctS3b3N{3X>>Zu۟ٿ|l.IWj6bɂ[_ļrMZ:Ň^/[*.oݘ~ٴjQ3` +W}b 2`m;>UK׮ɽ}(R_[|9߾ֹ^r&.9cXn)o.[|tłUK T]w ٣v; ٿykw5,U1uU_^&䝥֭_v|ے$ G6\aI{Q֋zu‚+m3;e1^Kf_b 7_̝G'!D73Sʏ_5qƪCt h8X r~,{'OM[r]Y->\bǵU-,잗'"{EߌмgVI+5e٪K'?Ӿ&d_ Vz\r)SZ<ԅ VG`&oϝ ~ɯK|e}C36 ?O]0wv._oOKg}#m.:o-R>gϚ҃xdە/˖0"ʴi]q/vlPrm>yڠ|4y9z}yC6/Μ`KǴ(5Up T" WM0m^6s]V"un?[_|^H;`u/_͝^u7>$*zoܜ=Am+%L=oM^iW-iTiD|MVݥL;lؘ뎥8Kg?n5VwD" ^?<ӟN_jҩ/ts|{$,{݆UklWL^o|tKgگe90(ݯh\臑=jK_}7n;<8g|q]ι9 v:x>B!B0c"(5uǗlEVRxd֩ A&ָeeTqҞRKi染A̫*[6TX_2Yv /ѨmnE=+ݺgR<:mT^V>E?RF]E*KKM 61#N(L Ԃ%AJQ`DC$xo*bxR%4Ed:a4#9Y$Tat*~ZxxjX3’ W+b`{b3/t-viIe;w{93㽞tã痿HTxEz^_Ex|֫uo2y{dE/jԳn7]6e6%p{GnfQͯnI0 ɤDջ ju=nӾӟm1*>nhNrϛ+?3!?v4M/:* -}En}01 lt7]6g./yBKwrUsͳeZP,Q'7n?-S{.I-<2lXÍ86oy5n=:WQczޝ'_U2<Y] HCv|nWǜk׺ۓ"B=Sy}[s>cw:egR}}zKקj: 0q^it{; [rl5ekosm6W= ,R<#-'di(sc݃o=^jd:YrZmcڗ;i٢mG(zt*[e;=7џ~{ jto7=gݮꪛ+Gܾã0jWgn뮎7OiM;hr̀k^֠ewp+MN.wt]V!C(ۺWiQnzYO}z4Vͯjʇ~9LPzGq__폍>pðTȫ|AWn{m?gr"0-돕mZT 6P7SDHGĠc8{{STLƘW S$4Ģe9Bh_n߽l'PjD#c+2̪W95^JYVf78y:Dr{lhMv]Q#%i,_Gqzȸvj/+䒓?!lϯkZ; ;v^j-ݗ/u/ ^zە 83~yv/iπWذ+{.=ڂBުѣrZl?q4(>>]O2ٰ"MlxFЁQm;Fo_zم~ؙW ߐ);BDDm0r9{aKRspd8V 2wnvĨpm۾tǥo]vd΂o#ط=__;t jkœ?ع@τ j" WJWZw]z.o;'nTt?<1qr]aJŚ>t+wn _tˍKwo]?8a6(l1F_?Dm_ ?Dpñ7O|cx+ǿ׭z8|.=!%~=K׾+K&3`9t[ߴ't [7.r/}2%8?O||jEv*gׯvu% XEmRMg_8*FTdON"X`/9p-w[3vXXX @ZrQ/J/v$|+_Ζsy[KX7s~nz͚]7F> 3<ޥC¥6DM>p: )r Q$DPJ7+ȩ>'vG(-3Ĺ H2[BXrw":w˱D%@*2²{2>cq/Θ~,erXцw=NS74ՇQ# )޷ (ZrϪ%y~c+_ĖWjL -3O]0E?#A~y7Y" !%NKQgFRJpH! &U}!@DV N<$yy٠ m/[FFν5铇1 A"oǟG.R!m}ϋmgx)g5zگXiٳW'rdUYzܲnq?mAqPN@Ұ1 IDAT2s1pK/XX>>pX]}˳=&o_wqV߼aWc &7Qt;;mE oNÏ헬mg+{1m;a/]qݢ~Z~0W'A2 /0f2^UFC5B#2MC>EH/DJ 8wDC8>FIq x#\aWB]\Vb~>[/MUmPqTNQ1Uoe٬. !CF A]2cL&oA#hB"#Bhʀ;"Atǣ DPThO>KDdREm;0)%mCD")J0Ltx@׌ض|3&|1kďl1f-|͒mDxRwϞ?p*Ҭ*:=@"0UܫȲ:,Iޡ)jƅ?b FnqJ`W-&sDi=ӉȹgPKߏ h4o&@Ph=G"HR8rbm~|n:sqX+*gE')20zg+UZ#@dE-<1G$UYlǷ-nO]nv22 f4~u+$)z2+j D"Mici)Iٻ?TY eT[:ypiccY S9|vOGKG1. / ! fNijt'e!M'^ڨw!i@knVnǔ>Ǹd$O iRoGVNw<0 ۖ{'QUL66TۧMZT /Ul"0GJBXD|e 9yB1/QgMbdg-cQ+|MXOSac[Mb_iA@YzgYTY;L\봐(YtZ{J%rtoAx~o-t!jDqjУw]qկW[.<0qDKRv 0H]%!$D(IVw{?r;pI*ݧFXџkVDj&|bNvΝYi|YiU:x>g$wX eMcF~lv`i 4 / _+YC'"3`@g|ƙUU{nwtV^{o$څ6JԑRH2\;-/)wIuL`FKԭ]dH1%jB+"~ I{R3̦C?}7\Yf(\8vܼ:-$M#o Qj_sxB,Q"CwYߘѥnvt<:8ԾXk*HOOpV~6=a/?ܲN*5/o}grΊp`7_b7Ҵ퇅:5ng G7U:J[޹.PEf "HC$BJ!  #\!a C* pBKH̋ jI8OiXN7{{ych- V0GDk*ff_Ƀ+7w08w`Ռ>ޔٙ SVq[A$X|'>xw,J] ~ !I~C^xbbpv!6Ȇ f>V^sS=wAL&Om'?ܖ^{i.}+G49Ǔ Gm=╩KqXf`u~ge?~ܾ5c [ e;mDճGc5 E<P^2uk{0~ʞ@Dޟ~C>{>g{]AsfE">vZǦ}֭Jis;߿2?G3<یSOCj=6S;N_,1wy*dž|#'v0.ld#+궸B!ѹM<>(>?E2H/}UU`y>|pt_^_4߽=|k_~gN̞:q{. @xEدj>?Y|Tn(Fx)qd-NYtr-ʣ",(,+ {}Yi?* &:͇L[XgGC0,{o?Z!S[~~9j2?_N/{WM䙓WNCd>A!^ Q_4s^|έ{G>wQ?#{GBy#g2yjۜGo;/L]+]ۧ/[„HK Z\ EIRBo,zE1aY'`%IsqU0'ԑxR.-Wя[ޛ $,jyu<0&m.|ן4Uȯ KaZ ,oR %s7kdžSBi@f0;oiyy ` ŭj-&""@Uæ>y}n HԂ$pw <'|ɤ0/7׳`)GCp p8gx36b ս"(? 0L}ޛ&f4M69xD]2bCTnD:75YI)2X24H|!u+ cMΌ=Bpa )@Њ4 2&֍1%UTN :D&jntm[iRY|")Yg4iRE_1ybr,: #eKJ()Z5mI#(u@3"F컈f Q(M9( '7H܆iW\ߪgQ{! !VEDS#M tIrsڡi %y!RdelS\E'6A gEezC;m$-LtYf!#n֨wk ztD)ݮD9OKOɤQ̯[h6`xAN Mh CCs|ލ+mٓt4wGK.-hi.zf:M,v/` p\&obg(Exȗh]i`ڝC>V]t&PN}A j\rlƋKHEPgw2y'䐅qeZ!C{2$Q |O^đq%=d]pHuRqtz`B(  %*^Qz.?=52q֘v( ̠2Qݣ*9>Si"0Bt1F=GR?a8WsS b1qRBAξ%;8P`f'2Xt #X4F5ʝ :;1#nz185c5MA`yfL_* z":$RBC !d1L:-Q$W:~cUg~vҞPIa NZy,!u[rs)U6[bnXF BM(\whB Q긂'VRV(H=RX]!SPј/PJ|`d  -*_׆ǽEiHa= D@9ҜFY/kէ Y2N˒|X# J;ZvHLR,|bp?_%D\R.v("\Hw8B,,WC!#L$o H"YIRuoo TFT0Xdkv@!qX%ـ־!D)87F؉6.98% uxњsYCU*p@DB "4t<$θ$"tgD\]i Ðq.MV" q>$J:1EQUMȐR&c>LsD,R"j,ϣѐ$S $ )Dh8<"f\UGGXuoҳN*̈́`s [_dt#"Y!gyܩAD.D*FctS* W6alfcLLŴ E?IM/1%BАk)%vL]]XZJ-MRM;3-B,ЖI֋ةrdD5^ׅUbʠK&+XnE'l(#)/"4! S`8rqUE%bG41G%}$7#@3Q)% `#X\l2"KSQrH$-P{Hۨ&Lt1M;z-\93n`]ԭkbcxny59W  !Ӆ7_J*ՆeZc9C$e8gAiqvc(Ƈήlg& \H- R!UU:R$˝Pm5(R[&i0[&@jq4aFyvKuMGoyVfwEq҃BXlځV啢ts#l*KK!LqLZUގ1h8z眇j t8H5Dj(83] qZ>AI fA+}l!MGhw> QSW0 oF'wQ2 K-[id*$lLI R׌D ,0ȁI1ƣ;nz 6Ix\gD$e^^>c"0ƹ둙sA ZV4SFB)nFr4ek*3GqD9Tdl&ƂD*pkIJ +/ZQQ)Skșs"T ĤTd2q5CMє$"C}h0s&yJcV~ ҆-2F#?R(dZtA.+AAj(] 1 JѼXKWE5 Ձ*ZXTƹyƺf: g<4C5aϩA 1''7TeVLا*d%5Z>[9[J,@vJPZS`E6SB ].)졨JdB^cs1%oh U|Bt!b*Ppᖸuj._0 |;bRk M$|C-\nrEz@70x\@Ң<35)OPn2QI]RjƜ[v !}Wm%٪[ 0By{>G@kvzl u= TWFhf'uh1Dͨ&b3:rV H)&CmAfa FL6Z['WG[$Z[j^4ъRq4SZj&f!r|seƉKJ \yrgBEn6}Octn>!C$rsssssE(jBBFRH!}Mx{sƘ" ;?Rdu\6 &QNBI4x%#Ҏ1H$G- i4?cte2[Zf#I=YJQhfi$XY`JcI%i֘ԵOa23[ODkNN+dM9р$36/X$`S jSC+B8Ԫ1)wDU~"!J*0F?I)"y^zz:< )BX=we䙴w{<{BR*# :S} 0wG͋U*ai~zrt؆hꆶf7Eh 66pC=9V4Lhz2gʼ1Owzp,ަe*; xkse}D͛.mIƪƫnEo{~/_$ٟo$׻>K{i_7Wi4mӷ#m;Ү3#ƈw+P1>^v޸^{E+_}P7o~o|>YwWwJ-9s%t_F 9F<yzz9㲛zX$SKO݉{#[4̉YⰗ^:M KZd}?}ߊ.+C>Pq% )fbu}[}iYX\bǿ n+g%$`plݷOq ]ѡ/J:ߘU ?`~~)ڊ$&Czqۺ%nJݸ,.D"PH BA9xd'gķ$ Ljr$ιَ8DU0DBuˣKĠ۫Nyw>Pja33b ĻHGSEK @0BnUUn]g0dR%d\jU9c)B?"Q0vv:A h4ّ) v:/1tW揊٦Z;-A !!k8*QmKYYPDBERFPQ 4 )o&̒e߲iK) d^y]Q4;}&.sK!=oj\xB:gWqV/iԇ7]3_;bHݻ_hKcpjʉ |[yNxxrfj;l9Dxו2#릾5_RJƊ^scf'׏|t@-㾹*p?_@ZvB5F<ӭI`/_!"VǞgJyq/:Fd 7CfuEZ d]FG>W{ pۖ5 byEԼG& lOeiẉׄӫ>~u%%\PQMxxqJ7l;?t#/kEswv )𮭇"7&kHٿvڕvx? lwi7<һ6`l߶n!IbUJj)iDkWPFz+xUz?Z} ОϿ[itn΁c6s|~{%u7zdT„nYό^u3':G@8`7U+g[37}U]E~ԀnR߽2b_urRAYRu[]zWW^Z۸7'|Euzqw_=g[jRoSg$43G JFz|dgJ 6f枤$ɋ:th5cpzϪC~-`zLMQ˲oz喞Jlǟ~Պ%ĉ&s$xol#[.~͗]3_;|A]O+wT[z_+*7LO+RӠAQSWML9xV?lkLDNIAD{suWT?tyt=# =;M:UIJѺx8H{E%MZႛ~fN&UIRI!Mu,XWptk1SFUQExGT|Kki HGvK4҈ZaE*,W1!CKShGkRϢ#AKoׯ9U慠0mnw*Na|ϯ=KFOo廌lYJח54쾧dU6+wuɝz\$2=9kz凋6}d+yB4tzU|o׎euLSad F<$df.E@˶:{)v`GTN?xwoߙM~契't-P ;=4$ϛbKonB֢iуsL'UXdոܹ-kNmy%؟TP6IIXn^ĊQ,"8y8G`TQ\Va HV+|EĹvxf㬰ЙJkCHv9]=6,z>oF6o=6GynΌ7~;܀Fz3Y^Y ): U֢% ֠"B "ja\^uHFWW)j̈*d|~gqiܯN*ʥSNNR(wBh8ITJ'[SqDE$90 f0{ukf>~U=\?k|1t*uu߿f=mG^jjvØft~[Z6e}˄T3M|@:V}󓮟vq9=tѓq'r /HjsҔ93nWP-pʃo?qV|l.q[k4aJ'x/5/U瞙5CWIo=߸.VߺC(l⡝yU]Wiy')5֮l +',FG F$m$ȁ2\>!WRNZLtl [:cS; " (G-# A%#b 5Efs^%#*aj %P#1` Ai*˹ŐpmৈOA0?.p>% {?<}ض}hCł79ѿeUB߽U}9VF)*Vi/G^[1Ϟ_ZÅGZ23vr8OPJ0D*{\@ܻ{̯ Vl?lݘ9Q"8?9okZwCB ~{tĆbf7_DR5 .\N`s{l!4+"!krN1~odkxȎE_%_4RڕdN3t jX;{{Xͺ@j\j9{`DRœka|no͂h,xu?5YO/zd@kp{aMCο߸bζ{=TO/(_ Ժ\I8 y{漳fw޼뮉]-E7Z]s/NխX"77'k'QFe_MjyL8K |AXrtٶuoN.o-Տ]]~pk6gT9Vҿ'v̜U;}8=>s/<^ 99?M\Qؼ;7R^&0 9Q31EEb9-f#3p!MzydY i MG5a>R+0.FaX:ᤣzP΅):=Vx !AzI&MŒ-0P-!*yDL4*L8lYb& 2E[Yd*#goƠ*\kӏvp6K(ss@^(>ꋣ˞teͿھ[N\ F .tR]ɡ#:@p4p.C } A5'JzծmPJwSƸ)FGL$6w? %?"ZWfSW(EgN`Q{,oSqɽPi_9C;{oѳq3-d#"\է~|m{Y4apzՄ{ynvgaJw]FjR+1ZSˆm>=C'^Q2Qc_z؀[syR*?fW7QѺ?rw3}=SF/ Nrg(wy^+"ZwkwϘ8d>i{woݱ׭52 "y_Nx`{wG9yIl;^{dɳ+WvqۮfbREBfDA'L(bUbv_g-xݽe?|qmbXʵ22DUY?Ke$Hi_m'bzkkM9V^p~9,byW_Sl2Hbߢ܇bDvѨjSDH!5S#EjQM0YEE h$K!4F=tUa>tU|I j +͕ڼ*MB]Y%jjkc,ߪWnV8{ Vn} B"4UF7iaQEXJU,MR<-fׯĝx.o}UփE;>xۗopw=f3<[v*/?0UT% &@0WGp.˖s*%ڔL7Sflyۨʊg~iV>p/%7n[Q^>{l<+D@T[)Uo~~ʵyE"N?ydN5] 2S[7oS[PD%uIw xy`o**{2(@Dˇu+3ʧ샇.H Q7sIhatJjЩe-_u}"~d kmߧk aŀ ..P;ҵV?xT! ݤ- w׾ͱ:n%'1TV'>|+nۡmo: ,hX`C#8/nvcMԍYp-×*1;[ws}=lEN`e]N9\M~~>>)i ""^j߻vݳ injoOsֹxR&b1I'@<Јa^{`ǧT$蹾]vm;t9ݯL`]*Tꖆ@Bf)¨vb5$;3q}H@hЖ[&hBrT6edUk)́/w:i$l{*6C+I{O!֨>g㧋_7hg%ͻ6L1'1Ɉo2u'uPA\Pj1IZU .a2nEG|@hA[1xX̋1~f5>ik]PUkRؗ/ug-zA@1#վpGb@DCV<*+\Q2NRy–(tgKD. 25T]&[Ex25Q$*B XFYA1 "b@v5/k7U[D#% mb\`d1ݥhT,j @zB1Zo$7k# QORGٶIj5w]Z4m/dMqgizZwyd78SIH#gwvW\EB$HORkK})^eg:<;u୍j׾溿Vxy㸎+}=,NMKeZͯmPe,b\ξgMMѡC $G?Xdž ?GktbVFC=]QUUԳڮMn1'~s'XFM7oڬQds>@!з{ vn;DP]xަ5 ^~.^s\ﻬ\&ԯ 7mR$cG>uE>)"oWu&5j7wUn'tv}eLR7 Nz>}jwm >MK6"0zH+wɌ.cDtK{Wo >5kkM┫:Zò_8PxOMkx;k\J&j|`nyN/ɒ-IMd0mX;ois 6o|uwL$bRGٮY}vv%٪IDATμ ՗rg@; UE??KzӳGNArM;6jUޤSg,xؠKZ)1/cȘp4-xI {>ѫK'PaA[%Œ<$"57MҿSOMu]{שZImR 8}|2{.X,D֓=B yIE 45 XSMgjJA[0kH3MJ>dX^IC4!sA`Ud2,܉휑g7TVUJ!PҹC9caR^ OGt@FzUCZ(eFłsTZ=: e!h"sg>gVnXlNjvWf:FHg,)Iz^7g[J0r#P.xѮ_zj(ڸJQe6L5Nz=I# ?S'79qƉŹ;7|w:h&ŝ?yqiKAI~/*Y;J!f`̂zMWrij??`<*cB3ɁQ״1, v:v80Hj"={λțﱥ L =13!]7%!7g{^oI~}R%.ߺd[E O145љyTppӂ !}2?M?Jdɰ;uߌŏ {CplO\ғjr$+6aǼХ$ :(ܳp=?~ߦmWƏ`8(^{y;nxgMǫ4~fuKD iE>T.=V#A:U(kߚ 8 mHq90q6z7|>9sCɤDw„A`Pǐ5[X&UwB cE/ʉ]eZ0j@);<%㋈\ybP@W ,?Q =>d-HbQЩeY(L1Ed򨌿 u}JD"c Bpp?ND 4a_ʺfpb(|dRENGB S U48셼B1=Y?0FI:4O^ RaMsi@ 0ʆŸ 5bE"'wИKUdG {iل{"'7kcDڶ ]Z:ҚRVKQѧ#ޟ0c|;0Z.R!<@Ґz>DN#HlOA,-(cBc}Iy|e)ln}b%@d_WcMNݍV>eƖW 8L춙O5Gr_eMk lpHXˋ{"cLL &0t$:Z:K$o*PLClp .@ tγ*dҙz,̚"ׅ'l'ʆcBa]:?t*ӔV‹9FF\s$‡!*]'ߦ&qb,|iB!"Ńe3y!TʴKWejR<WrIʹsq=dI~YQS?s(-~D F, md#1(&ĪHH!YkPtb lZ [Tz JJ7WKCĕ!ĈMr~d,E3A@8F(⌊_dvSV(?e8 V*$.`HNԖv9j3!1.c, aKTȅPXbĜtCCIVw! 0&8)+MUX>;ÌVV 9Jwch8uhLd4`Ȣ .aiK!#y u%0QhĻa9=&dch(::= ^NaV_:\2Af !dq(]'2LMC0 =` -sA:he R0 HILDԝ]fI OiQE'e;|k(b+۹Vڙ^ (@8WeoT9q-#56-jfItrI-HLSDD9&ošP2f8k <8~j& '&#h*iwMHH,(:$cAYgYi/|k2ENXBbeFB$Ψ4!"`VJm`%Fh뚁h {׺ZdJ"?Q(h}JR4$!>xz.C:ݭ2&DN0T ЭǞIENDB`glances-3.4.0.3/docs/support.rst0000644000175000017500000000050514432156570016404 0ustar epsilonepsilon.. _support: Support ======= To post a question about Glances use cases, please post it to the official Q&A `forum `_. To report a bug or a feature request use the GitHub `issue `_ tracker. Feel free to contribute! glances-3.4.0.3/docs/quickstart.rst0000644000175000017500000001350014432156570017061 0ustar epsilonepsilon.. _quickstart: Quickstart ========== This page gives a good introduction in how to get started with Glances. Glances offers 3 modes: - Standalone - Client/Server - Web server Standalone Mode --------------- If you want to monitor your local machine, open a console/terminal and simply run: .. code-block:: console $ glances Glances should start (press 'q' or 'ESC' to exit): .. image:: _static/screenshot-wide.png It is also possible to display RAW (Python) stats directly to stdout using: .. code-block:: console $ glances --stdout cpu.user,mem.used,load cpu.user: 30.7 mem.used: 3278204928 load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27} cpu.user: 3.4 mem.used: 3275251712 load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27} ... or in a CSV format thanks to the stdout-csv option: .. code-block:: console $ glances --stdout-csv now,cpu.user,mem.used,load now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15 2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04 2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04 ... or as a JSON format thanks to the stdout-json option (attribute not supported in this mode): .. code-block:: console $ glances --stdout-json cpu,mem cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0} mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416} ... Note: It will display one line per stat per refresh. Client/Server Mode ------------------ If you want to remotely monitor a machine, called ``server``, from another one, called ``client``, just run on the server: .. code-block:: console server$ glances -s and on the client: .. code-block:: console client$ glances -c @server where ``@server`` is the IP address or hostname of the server. In server mode, you can set the bind address with ``-B ADDRESS`` and the listening TCP port with ``-p PORT``. In client mode, you can set the TCP port of the server with ``-p PORT``. Default binding address is ``0.0.0.0`` (Glances will listen on all the available network interfaces) and TCP port is ``61209``. In client/server mode, limits are set by the server side. Central client ^^^^^^^^^^^^^^ .. image:: _static/browser.png Glances can centralize available Glances servers using the ``--browser`` option. The server list can be statically defined via the configuration file (section ``[serverlist]``). Example: .. code-block:: ini [serverlist] # Define the static servers list server_1_name=xps server_1_alias=xps server_1_port=61209 server_2_name=win server_2_port=61235 Glances can also detect and display all Glances servers available on your network via the ``zeroconf`` protocol (not available on Windows): To start the central client, use the following option: .. code-block:: console client$ glances --browser .. note:: Use ``--disable-autodiscover`` to disable the auto discovery mode. When the list is displayed, you can navigate through the Glances servers with up/down keys. It is also possible to sort the server using: - '1' is normal (do not sort) - '2' is using sorting with ascending order (ONLINE > SNMP > PROTECTED > OFFLINE > UNKNOWN) - '3' is using sorting with descending order (UNKNOWN > OFFLINE > PROTECTED > SNMP > ONLINE) SNMP ^^^^ As an experimental feature, if Glances server is not detected by the client, the latter will try to grab stats using the ``SNMP`` protocol: .. code-block:: console client$ glances -c @snmpserver .. note:: Stats grabbed by SNMP request are limited and OS dependent. A SNMP server should be installed and configured... IPv6 ^^^^ Glances is ``IPv6`` compatible. Just use the ``-B ::`` option to bind to all IPv6 addresses. Web Server Mode --------------- .. image:: _static/screenshot-web.png If you want to remotely monitor a machine, called ``server``, from any device with a web browser, just run the server with the ``-w`` option: .. code-block:: console server$ glances -w then on the client enter the following URL in your favorite web browser: :: http://@server:61208 where ``@server`` is the IP address or hostname of the server. To change the refresh rate of the page, just add the period in seconds at the end of the URL. For example, to refresh the page every ``10`` seconds: :: http://@server:61208/10 The Glances web interface follows responsive web design principles. Here's a screenshot from Chrome on Android: .. image:: _static/screenshot-web2.png How to protect your server (or Web server) with a login/password ? ------------------------------------------------------------------ You can set a password to access to the server using the ``--password``. By default, the login is ``glances`` but you can change it with ``--username``. If you want, the SHA password will be stored in ``.pwd`` file (in the same folder where the Glances configuration file is stored, so ~/.config/glances/ on GNU Linus operating system). Next time your run the server/client, password will not be asked. To set a specific username you can used the -u option. It is also possible to set the default password in the Glances configuration file: .. code-block:: ini [passwords] # Define the passwords list # Syntax: host=password # Where: host is the hostname # password is the clear password # Additionally (and optionally) a default password could be defined localhost=mylocalhostpassword default=mydefaultpassword glances-3.4.0.3/docs/man/0000755000175000017500000000000014432156570014711 5ustar epsilonepsilonglances-3.4.0.3/docs/man/glances.10000644000175000017500000004302314432156570016411 0ustar epsilonepsilon.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "GLANCES" "1" "May 20, 2023" "3.4.0.3" "Glances" .SH NAME glances \- An eye on your system .SH SYNOPSIS .sp \fBglances\fP [OPTIONS] .SH DESCRIPTION .sp \fBglances\fP is a cross\-platform curses\-based monitoring tool which aims to present a maximum of information in a minimum of space, ideally to fit in a classical 80x24 terminal or higher to have additional information. It can adapt dynamically the displayed information depending on the terminal size. It can also work in client/server mode. Remote monitoring could be done via terminal or web interface. .sp \fBglances\fP is written in Python and uses the \fIpsutil\fP library to get information from your system. .SH OPTIONS .SH COMMAND-LINE OPTIONS .INDENT 0.0 .TP .B \-h, \-\-help show this help message and exit .UNINDENT .INDENT 0.0 .TP .B \-V, \-\-version show program’s version number and exit .UNINDENT .INDENT 0.0 .TP .B \-d, \-\-debug enable debug mode .UNINDENT .INDENT 0.0 .TP .B \-C CONF_FILE, \-\-config CONF_FILE path to the configuration file .UNINDENT .INDENT 0.0 .TP .B \-\-modules\-list display modules (plugins & exports) list and exit .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-plugin PLUGIN disable PLUGIN (comma separated list) .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-plugin PLUGIN enable PLUGIN (comma separated list) .UNINDENT .INDENT 0.0 .TP .B \-\-stdout PLUGINS_STATS display stats to stdout (comma separated list of plugins/plugins.attribute) .UNINDENT .INDENT 0.0 .TP .B \-\-export EXPORT enable EXPORT module (comma separated list) .UNINDENT .INDENT 0.0 .TP .B \-\-export\-csv\-file EXPORT_CSV_FILE file path for CSV exporter .UNINDENT .INDENT 0.0 .TP .B \-\-export\-json\-file EXPORT_JSON_FILE file path for JSON exporter .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-process disable process module (reduce Glances CPU consumption) .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-webui disable the Web UI (only the RESTful API will respond) .UNINDENT .INDENT 0.0 .TP .B \-\-light, \-\-enable\-light light mode for Curses UI (disable all but top menu) .UNINDENT .INDENT 0.0 .TP .B \-0, \-\-disable\-irix task’s CPU usage will be divided by the total number of CPUs .UNINDENT .INDENT 0.0 .TP .B \-1, \-\-percpu start Glances in per CPU mode .UNINDENT .INDENT 0.0 .TP .B \-2, \-\-disable\-left\-sidebar disable network, disk I/O, FS and sensors modules .UNINDENT .INDENT 0.0 .TP .B \-3, \-\-disable\-quicklook disable quick look module .UNINDENT .INDENT 0.0 .TP .B \-4, \-\-full\-quicklook disable all but quick look and load .UNINDENT .INDENT 0.0 .TP .B \-5, \-\-disable\-top disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) .UNINDENT .INDENT 0.0 .TP .B \-6, \-\-meangpu start Glances in mean GPU mode .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-history enable the history mode .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-bold disable bold mode in the terminal .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-bg disable background colors in the terminal .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-process\-extended enable extended stats on top process .UNINDENT .INDENT 0.0 .TP .B \-c CLIENT, \-\-client CLIENT connect to a Glances server by IPv4/IPv6 address, hostname or hostname:port .UNINDENT .INDENT 0.0 .TP .B \-s, \-\-server run Glances in server mode .UNINDENT .INDENT 0.0 .TP .B \-\-browser start the client browser (list of servers) .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-autodiscover disable autodiscover feature .UNINDENT .INDENT 0.0 .TP .B \-p PORT, \-\-port PORT define the client/server TCP port [default: 61209] .UNINDENT .INDENT 0.0 .TP .B \-B BIND_ADDRESS, \-\-bind BIND_ADDRESS bind server to the given IPv4/IPv6 address or hostname .UNINDENT .INDENT 0.0 .TP .B \-\-username define a client/server username .UNINDENT .INDENT 0.0 .TP .B \-\-password define a client/server password .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-community SNMP_COMMUNITY SNMP community .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-port SNMP_PORT SNMP port .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-version SNMP_VERSION SNMP version (1, 2c or 3) .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-user SNMP_USER SNMP username (only for SNMPv3) .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-auth SNMP_AUTH SNMP authentication key (only for SNMPv3) .UNINDENT .INDENT 0.0 .TP .B \-\-snmp\-force force SNMP mode .UNINDENT .INDENT 0.0 .TP .B \-t TIME, \-\-time TIME set refresh time in seconds [default: 3 sec] .UNINDENT .INDENT 0.0 .TP .B \-w, \-\-webserver run Glances in web server mode (bottle lib needed) .UNINDENT .INDENT 0.0 .TP .B \-\-cached\-time CACHED_TIME set the server cache time [default: 1 sec] .UNINDENT .INDENT 0.0 .TP .B \-\-open\-web\-browser try to open the Web UI in the default Web browser .UNINDENT .INDENT 0.0 .TP .B \-q, \-\-quiet do not display the curses interface .UNINDENT .INDENT 0.0 .TP .B \-f PROCESS_FILTER, \-\-process\-filter PROCESS_FILTER set the process filter pattern (regular expression) .UNINDENT .INDENT 0.0 .TP .B \-\-process\-short\-name force short name for processes name .UNINDENT .INDENT 0.0 .TP .B \-\-hide\-kernel\-threads hide kernel threads in process list (not available on Windows) .UNINDENT .INDENT 0.0 .TP .B \-b, \-\-byte display network rate in byte per second .UNINDENT .INDENT 0.0 .TP .B \-\-diskio\-show\-ramfs show RAM FS in the DiskIO plugin .UNINDENT .INDENT 0.0 .TP .B \-\-diskio\-iops show I/O per second in the DiskIO plugin .UNINDENT .INDENT 0.0 .TP .B \-\-fahrenheit display temperature in Fahrenheit (default is Celsius) .UNINDENT .INDENT 0.0 .TP .B \-\-fs\-free\-space display FS free space instead of used .UNINDENT .INDENT 0.0 .TP .B \-\-theme\-white optimize display colors for white background .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-check\-update disable online Glances version ckeck .UNINDENT .SH INTERACTIVE COMMANDS .sp The following commands (key pressed) are supported while in Glances: .INDENT 0.0 .TP .B \fBENTER\fP Set the process filter .sp \fBNOTE:\fP .INDENT 7.0 .INDENT 3.5 On macOS please use \fBCTRL\-H\fP to delete filter. .UNINDENT .UNINDENT .sp Filter is a regular expression pattern: .INDENT 7.0 .IP \(bu 2 \fBgnome\fP: matches all processes starting with the \fBgnome\fP string .IP \(bu 2 \fB\&.*gnome.*\fP: matches all processes containing the \fBgnome\fP string .UNINDENT .TP .B \fBa\fP Sort process list automatically .INDENT 7.0 .IP \(bu 2 If CPU \fB>70%\fP, sort processes by CPU usage .IP \(bu 2 If MEM \fB>70%\fP, sort processes by MEM usage .IP \(bu 2 If CPU iowait \fB>60%\fP, sort processes by I/O read and write .UNINDENT .TP .B \fBA\fP Enable/disable Application Monitoring Process .TP .B \fBb\fP Switch between bit/s or Byte/s for network I/O .TP .B \fBB\fP View disk I/O counters per second .TP .B \fBc\fP Sort processes by CPU usage .TP .B \fBC\fP Enable/disable cloud stats .TP .B \fBd\fP Show/hide disk I/O stats .TP .B \fBD\fP Enable/disable Docker stats .TP .B \fBe\fP Enable/disable top extended stats .TP .B \fBE\fP Erase current process filter .TP .B \fBf\fP Show/hide file system and folder monitoring stats .TP .B \fBF\fP Switch between file system used and free space .TP .B \fBg\fP Generate graphs for current history .TP .B \fBG\fP Enable/disable GPU stats .TP .B \fBh\fP Show/hide the help screen .TP .B \fBi\fP Sort processes by I/O rate .TP .B \fBI\fP Show/hide IP module .TP .B \fB+\fP Increase selected process nice level / Lower the priority (need right) \- Only in standalone mode. .TP .B \fB\-\fP Decrease selected process nice level / Higher the priority (need right) \- Only in standalone mode. .TP .B \fBk\fP Kill selected process (need right) \- Only in standalone mode. .TP .B \fBK\fP Show/hide TCP connections .TP .B \fBl\fP Show/hide log messages .TP .B \fBm\fP Sort processes by MEM usage .TP .B \fBM\fP Reset processes summary min/max .TP .B \fBn\fP Show/hide network stats .TP .B \fBN\fP Show/hide current time .TP .B \fBp\fP Sort processes by name .TP .B \fBP\fP Enable/Disable ports stats .TP .B \fBq|ESC|CTRL\-C\fP Quit the current Glances session .TP .B \fBQ\fP Show/hide IRQ module .TP .B \fBr\fP Reset history .TP .B \fBR\fP Show/hide RAID plugin .TP .B \fBs\fP Show/hide sensors stats .TP .B \fBS\fP Enable/disable spark lines .TP .B \fBt\fP Sort process by CPU times (TIME+) .TP .B \fBT\fP View network I/O as combination .TP .B \fBu\fP Sort processes by USER .TP .B \fBU\fP View cumulative network I/O .TP .B \fBw\fP Delete finished warning log messages .TP .B \fBW\fP Show/hide Wifi module .TP .B \fBx\fP Delete finished warning and critical log messages .TP .B \fBz\fP Show/hide processes stats .TP .B \fB0\fP Enable/disable Irix/Solaris mode .sp Task’s CPU usage will be divided by the total number of CPUs .TP .B \fB1\fP Switch between global CPU and per\-CPU stats .TP .B \fB2\fP Enable/disable left sidebar .TP .B \fB3\fP Enable/disable the quick look module .TP .B \fB4\fP Enable/disable all but quick look and load module .TP .B \fB5\fP Enable/disable top menu (QuickLook, CPU, MEM, SWAP and LOAD) .TP .B \fB6\fP Enable/disable mean GPU mode .TP .B \fB9\fP Switch UI theme between black and white .TP .B \fB/\fP Switch between process command line or command name .TP .B \fBF5\fP Refresh stats in curses user interface .TP .B \fBLEFT\fP Navigation leff through process sort .TP .B \fBRIGHT\fP Navigation right through process sort .TP .B \fBUP\fP Up in the processes list .TP .B \fBDOWN\fP Down in the processes list .UNINDENT .sp In the Glances client browser (accessible through the \fB\-\-browser\fP command line argument): .INDENT 0.0 .TP .B \fBENTER\fP Run the selected server .TP .B \fBUP\fP Up in the servers list .TP .B \fBDOWN\fP Down in the servers list .TP .B \fBq|ESC\fP Quit Glances .UNINDENT .SH CONFIGURATION .sp No configuration file is mandatory to use Glances. .sp Furthermore a configuration file is needed to access more settings. .SH LOCATION .sp \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 A template is available in the \fB/usr{,/local}/share/doc/glances\fP (Unix\-like) directory or directly on \fI\%GitHub\fP\&. .UNINDENT .UNINDENT .sp You can put your own \fBglances.conf\fP file in the following locations: .TS center; |l|l|. _ T{ \fBLinux\fP, \fBSunOS\fP T} T{ ~/.config/glances/, /etc/glances/, /usr/share/docs/glances/ T} _ T{ \fB*BSD\fP T} T{ ~/.config/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/ T} _ T{ \fBmacOS\fP T} T{ ~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/ T} _ T{ \fBWindows\fP T} T{ %APPDATA%\eglances\eglances.conf T} _ .TE .INDENT 0.0 .IP \(bu 2 On Windows XP, \fB%APPDATA%\fP is: \fBC:\eDocuments and Settings\e\eApplication Data\fP\&. .IP \(bu 2 On Windows Vista and later: \fBC:\eUsers\e\eAppData\eRoaming\fP\&. .UNINDENT .sp User\-specific options override system\-wide options and options given on the command line override either. .SH SYNTAX .sp Glances reads configuration files in the \fIini\fP syntax. .sp A first section (called global) is available: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [global] # Refresh rate (default is a minimum of 2 seconds) # Can be overwrite by the \-t option # It is also possible to overwrite it in each plugin sections refresh=2 # Does Glances should check if a newer version is available on PyPI ? check_update=false # History size (maximum number of values) # Default is 28800: 1 day with 1 point every 3 seconds history_size=28800 .ft P .fi .UNINDENT .UNINDENT .sp Each plugin, export module and application monitoring process (AMP) can have a section. Below an example for the CPU plugin: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [cpu] disable=False refresh=3 user_careful=50 user_warning=70 user_critical=90 iowait_careful=50 iowait_warning=70 iowait_critical=90 system_careful=50 system_warning=70 system_critical=90 steal_careful=50 steal_warning=70 steal_critical=90 .ft P .fi .UNINDENT .UNINDENT .sp an InfluxDB export module: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [influxdb] # Configuration for the \-\-export influxdb option # https://influxdb.com/ host=localhost port=8086 user=root password=root db=glances prefix=localhost #tags=foo:bar,spam:eggs .ft P .fi .UNINDENT .UNINDENT .sp or a Nginx AMP: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [amp_nginx] # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status\-page/) enable=true regex=\e/usr\e/sbin\e/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status .ft P .fi .UNINDENT .UNINDENT .sp With Glances 3.0 or higher it is also possible to use dynamic configuration value using system command. For example, if you to set the prefix of an InfluxDB export to the current hostname, use: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [influxdb] \&... prefix=\(gahostname\(ga .ft P .fi .UNINDENT .UNINDENT .sp Or if you want to add the Operating System name as a tag: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C [influxdb] \&... tags=system:\(gauname \-a\(ga .ft P .fi .UNINDENT .UNINDENT .SH LOGGING .sp Glances logs all of its internal messages to a log file. .sp \fBDEBUG\fP messages can been logged using the \fB\-d\fP option on the command line. .sp The location of the Glances depends of your operating system. You could displayed the Glances log file full path using the\(ga\(gaglances \-V\(ga\(ga command line. .sp The file is automatically rotate when the size is higher than 1 MB. .sp If you want to use another system path or change the log message, you can use your own logger configuration. First of all, you have to create a \fBglances.json\fP file with, for example, the following content (JSON format): .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C { \(dqversion\(dq: 1, \(dqdisable_existing_loggers\(dq: \(dqFalse\(dq, \(dqroot\(dq: { \(dqlevel\(dq: \(dqINFO\(dq, \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq] }, \(dqformatters\(dq: { \(dqstandard\(dq: { \(dqformat\(dq: \(dq%(asctime)s \-\- %(levelname)s \-\- %(message)s\(dq }, \(dqshort\(dq: { \(dqformat\(dq: \(dq%(levelname)s: %(message)s\(dq }, \(dqfree\(dq: { \(dqformat\(dq: \(dq%(message)s\(dq } }, \(dqhandlers\(dq: { \(dqfile\(dq: { \(dqlevel\(dq: \(dqDEBUG\(dq, \(dqclass\(dq: \(dqlogging.handlers.RotatingFileHandler\(dq, \(dqformatter\(dq: \(dqstandard\(dq, \(dqfilename\(dq: \(dq/var/tmp/glances.log\(dq }, \(dqconsole\(dq: { \(dqlevel\(dq: \(dqCRITICAL\(dq, \(dqclass\(dq: \(dqlogging.StreamHandler\(dq, \(dqformatter\(dq: \(dqfree\(dq } }, \(dqloggers\(dq: { \(dqdebug\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq], \(dqlevel\(dq: \(dqDEBUG\(dq }, \(dqverbose\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq], \(dqlevel\(dq: \(dqINFO\(dq }, \(dqstandard\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq], \(dqlevel\(dq: \(dqINFO\(dq }, \(dqrequests\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq], \(dqlevel\(dq: \(dqERROR\(dq }, \(dqelasticsearch\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq], \(dqlevel\(dq: \(dqERROR\(dq }, \(dqelasticsearch.trace\(dq: { \(dqhandlers\(dq: [\(dqfile\(dq, \(dqconsole\(dq], \(dqlevel\(dq: \(dqERROR\(dq } } } .ft P .fi .UNINDENT .UNINDENT .sp and start Glances using the following command line: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C LOG_CFG=/glances.json glances .ft P .fi .UNINDENT .UNINDENT .sp \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 Replace \fB\fP by the folder where your \fBglances.json\fP file is hosted. .UNINDENT .UNINDENT .SH EXAMPLES .sp Monitor local machine (standalone mode): .INDENT 0.0 .INDENT 3.5 $ glances .UNINDENT .UNINDENT .sp Monitor local machine with the web interface (Web UI), run the following command line: .INDENT 0.0 .INDENT 3.5 $ glances \-w .UNINDENT .UNINDENT .sp and open a Web browser with the returned URL .sp Monitor local machine and export stats to a CSV file: .INDENT 0.0 .INDENT 3.5 $ glances –export csv –export\-csv\-file /tmp/glances.csv .UNINDENT .UNINDENT .sp Monitor local machine and export stats to a InfluxDB server with 5s refresh time (also possible to export to OpenTSDB, Cassandra, Statsd, ElasticSearch, RabbitMQ and Riemann): .INDENT 0.0 .INDENT 3.5 $ glances \-t 5 –export influxdb .UNINDENT .UNINDENT .sp It is also possible to export stats to multiple endpoints: .INDENT 0.0 .INDENT 3.5 $ glances \-t 5 –export influxdb,statsd,csv .UNINDENT .UNINDENT .sp Start a Glances server (server mode): .INDENT 0.0 .INDENT 3.5 $ glances \-s .UNINDENT .UNINDENT .sp Connect Glances to a Glances server (client mode): .INDENT 0.0 .INDENT 3.5 $ glances \-c .UNINDENT .UNINDENT .sp Connect to a Glances server and export stats to a StatsD server: .INDENT 0.0 .INDENT 3.5 $ glances \-c –export statsd .UNINDENT .UNINDENT .sp Start the client browser (browser mode): .INDENT 0.0 .INDENT 3.5 $ glances –browser .UNINDENT .UNINDENT .SH AUTHOR .sp Nicolas Hennion aka Nicolargo <\fI\%contact@nicolargo.com\fP> .SH COPYRIGHT 2023, Nicolas Hennion .\" Generated by docutils manpage writer. . glances-3.4.0.3/docs/make.bat0000644000175000017500000001612314432156570015546 0ustar epsilonepsilon@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . set I18NSPHINXOPTS=%SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. xml to make Docutils-native XML files echo. pseudoxml to make pseudoxml-XML files for display purposes echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled echo. coverage to run coverage check of the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) REM Check if sphinx-build is available and fallback to Python version if any %SPHINXBUILD% 1>NUL 2>NUL if errorlevel 9009 goto sphinx_python goto sphinx_ok :sphinx_python set SPHINXBUILD=python -m sphinx.__init__ %SPHINXBUILD% 2> nul if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) :sphinx_ok if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Glances.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Glances.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdfja" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf-ja cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) if "%1" == "coverage" ( %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage if errorlevel 1 exit /b 1 echo. echo.Testing of coverage in the sources finished, look at the ^ results in %BUILDDIR%/coverage/python.txt. goto end ) if "%1" == "xml" ( %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml if errorlevel 1 exit /b 1 echo. echo.Build finished. The XML files are in %BUILDDIR%/xml. goto end ) if "%1" == "pseudoxml" ( %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml if errorlevel 1 exit /b 1 echo. echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. goto end ) :end glances-3.4.0.3/docs/config.rst0000644000175000017500000001314114432156570016135 0ustar epsilonepsilon.. _config: Configuration ============= No configuration file is mandatory to use Glances. Furthermore a configuration file is needed to access more settings. Location -------- .. note:: A template is available in the ``/usr{,/local}/share/doc/glances`` (Unix-like) directory or directly on `GitHub`_. You can put your own ``glances.conf`` file in the following locations: ==================== ============================================================= ``Linux``, ``SunOS`` ~/.config/glances/, /etc/glances/, /usr/share/docs/glances/ ``*BSD`` ~/.config/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/ ``macOS`` ~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/ ``Windows`` %APPDATA%\\glances\\glances.conf ==================== ============================================================= - On Windows XP, ``%APPDATA%`` is: ``C:\Documents and Settings\\Application Data``. - On Windows Vista and later: ``C:\Users\\AppData\Roaming``. User-specific options override system-wide options and options given on the command line override either. Syntax ------ Glances reads configuration files in the *ini* syntax. A first section (called global) is available: .. code-block:: ini [global] # Refresh rate (default is a minimum of 2 seconds) # Can be overwrite by the -t option # It is also possible to overwrite it in each plugin sections refresh=2 # Does Glances should check if a newer version is available on PyPI ? check_update=false # History size (maximum number of values) # Default is 28800: 1 day with 1 point every 3 seconds history_size=28800 Each plugin, export module and application monitoring process (AMP) can have a section. Below an example for the CPU plugin: .. code-block:: ini [cpu] disable=False refresh=3 user_careful=50 user_warning=70 user_critical=90 iowait_careful=50 iowait_warning=70 iowait_critical=90 system_careful=50 system_warning=70 system_critical=90 steal_careful=50 steal_warning=70 steal_critical=90 an InfluxDB export module: .. code-block:: ini [influxdb] # Configuration for the --export influxdb option # https://influxdb.com/ host=localhost port=8086 user=root password=root db=glances prefix=localhost #tags=foo:bar,spam:eggs or a Nginx AMP: .. code-block:: ini [amp_nginx] # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) enable=true regex=\/usr\/sbin\/nginx refresh=60 one_line=false status_url=http://localhost/nginx_status With Glances 3.0 or higher it is also possible to use dynamic configuration value using system command. For example, if you to set the prefix of an InfluxDB export to the current hostname, use: .. code-block:: ini [influxdb] ... prefix=`hostname` Or if you want to add the Operating System name as a tag: .. code-block:: ini [influxdb] ... tags=system:`uname -a` Logging ------- Glances logs all of its internal messages to a log file. ``DEBUG`` messages can been logged using the ``-d`` option on the command line. The location of the Glances depends of your operating system. You could displayed the Glances log file full path using the``glances -V`` command line. The file is automatically rotate when the size is higher than 1 MB. If you want to use another system path or change the log message, you can use your own logger configuration. First of all, you have to create a ``glances.json`` file with, for example, the following content (JSON format): .. code-block:: json { "version": 1, "disable_existing_loggers": "False", "root": { "level": "INFO", "handlers": ["file", "console"] }, "formatters": { "standard": { "format": "%(asctime)s -- %(levelname)s -- %(message)s" }, "short": { "format": "%(levelname)s: %(message)s" }, "free": { "format": "%(message)s" } }, "handlers": { "file": { "level": "DEBUG", "class": "logging.handlers.RotatingFileHandler", "formatter": "standard", "filename": "/var/tmp/glances.log" }, "console": { "level": "CRITICAL", "class": "logging.StreamHandler", "formatter": "free" } }, "loggers": { "debug": { "handlers": ["file", "console"], "level": "DEBUG" }, "verbose": { "handlers": ["file", "console"], "level": "INFO" }, "standard": { "handlers": ["file"], "level": "INFO" }, "requests": { "handlers": ["file", "console"], "level": "ERROR" }, "elasticsearch": { "handlers": ["file", "console"], "level": "ERROR" }, "elasticsearch.trace": { "handlers": ["file", "console"], "level": "ERROR" } } } and start Glances using the following command line: .. code-block:: console LOG_CFG=/glances.json glances .. note:: Replace ```` by the folder where your ``glances.json`` file is hosted. .. _GitHub: https://raw.githubusercontent.com/nicolargo/glances/master/conf/glances.conf glances-3.4.0.3/docs/README.txt0000644000175000017500000000043114432156570015632 0ustar epsilonepsilonBuilding the docs ================= First install Sphinx and the RTD theme: make venv or update it if already installed: make venv-upgrade Go to the docs folder: cd docs Then build the HTML documentation: make html and the man page: LC_ALL=C make man glances-3.4.0.3/docs/Makefile0000644000175000017500000001712514432156570015604 0ustar epsilonepsilon# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = ../venv/bin/sphinx-build PAPER = BUILDDIR = _build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " applehelp to make an Apple Help Book" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to run coverage check of the documentation (if enabled)" .PHONY: clean clean: rm -rf $(BUILDDIR)/* .PHONY: html html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." .PHONY: dirhtml dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." .PHONY: singlehtml singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." .PHONY: pickle pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." .PHONY: json json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." .PHONY: htmlhelp htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." .PHONY: qthelp qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Glances.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Glances.qhc" .PHONY: applehelp applehelp: $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp @echo @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." @echo "N.B. You won't be able to view it unless you put it in" \ "~/Library/Documentation/Help or install it in your application" \ "bundle." .PHONY: devhelp devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/Glances" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Glances" @echo "# devhelp" .PHONY: epub epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." .PHONY: latex latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." .PHONY: latexpdf latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." .PHONY: latexpdfja latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." .PHONY: text text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." .PHONY: man man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." rm -f man/* cp $(BUILDDIR)/man/* man/ @echo "The manual pages have been copied in ./man." .PHONY: texinfo texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." .PHONY: info info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." .PHONY: gettext gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." .PHONY: changes changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." .PHONY: linkcheck linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." .PHONY: doctest doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." .PHONY: coverage coverage: $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage @echo "Testing of coverage in the sources finished, look at the " \ "results in $(BUILDDIR)/coverage/python.txt." .PHONY: xml xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." .PHONY: pseudoxml pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." glances-3.4.0.3/CONTRIBUTING.md0000644000175000017500000001370614432156570015446 0ustar epsilonepsilon# Contributing to Glances Looking to contribute something to Glances ? **Here's how you can help.** Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved. Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. ## Using the issue tracker The [issue tracker](https://github.com/nicolargo/glances/issues) is the preferred channel for [bug reports](#bug-reports), [features requests](#feature-requests) and [submitting pull requests](#pull-requests), but please respect the following restrictions: * Please **do not** use the issue tracker for personal support requests. An official Q&A exist. [Use it](https://groups.google.com/forum/?hl=en#!forum/glances-users)! * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. ## Bug reports A bug is a _demonstrable problem_ that is caused by the code in the repository. Good bug reports are extremely helpful, so thanks! Guidelines for bug reports: 0. **Use the GitHub issue search** — check if the issue has already been reported. 1. **Check if the issue has been fixed** — try to reproduce it using the latest `master` or `develop` branch in the repository. 2. **Isolate the problem** — ideally create a simple test bed. 3. **Give us your test environment** — Operating system name and version Glances version... Example: > Short and descriptive example bug report title. > > Glances and psutil version used (glances -V). > > Operating system description (name and version). > > A summary of the issue and the OS environment in which it occurs. If > suitable, include the steps required to reproduce the bug. > > 1. This is the first step > 2. This is the second step > 3. Further steps, etc. > > Screenshot (if useful) > > Any other information you want to share that is relevant to the issue being > reported. This might include the lines of code that you have identified as > causing the bug, and potential solutions (and your opinions on their > merits). > > You can also run Glances in debug mode (-d) and paste/bin the glances.conf file (https://glances.readthedocs.io/en/latest/config.html). > > Glances 3.2.0 or higher have also a --issue option to run a simple test. Please use it and copy/paste the output. ## Feature requests Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to *you* to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. ## Pull requests Good pull requests—patches, improvements, new features—are a fantastic help. They should remain focused in scope and avoid containing unrelated commits. **Please ask first** before embarking on any significant pull request (e.g. implementing features, refactoring code, porting to a different language), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project. First of all, all pull request should be done on the `develop` branch. Glances uses PEP8 compatible code, so use a PEP validator before submitting your pull request. Also uses the unitaries tests scripts (unitest-all.py). Similarly, when contributing to Glances's documentation, you should edit the documentation source files in [the `/doc/` and `/man/` directories of the `develop` branch](https://github.com/nicolargo/glances/tree/develop/docs) and generate the documentation outputs files by reading the [README](https://github.com/nicolargo/glances/tree/develop/docs/README.txt) file. Adhering to the following process is the best way to get your work included in the project: 1. [Fork](https://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes: ```bash # Clone your fork of the repo into the current directory git clone https://github.com//glances.git # Navigate to the newly cloned directory cd glances # Assign the original repo to a remote called "upstream" git remote add upstream https://github.com/nicolargo/glances.git ``` 2. Get the latest changes from upstream: ```bash git checkout develop git pull upstream develop ``` 3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix (best way is to call it issue#xxx): ```bash git checkout -b ``` 4. It's coding time ! Please respect the following coding convention: [Elements of Python Style](https://github.com/amontalenti/elements-of-python-style) 5. Test you code using the Makefile: * make run ==> Run Glances * make run-webserver ==> Run a Glances Web Server * make test ==> Run unit tests * make docs ==> Update docs * make webui ==> Compile a new Web UI 6. Commit your changes in logical chunks. Please adhere to these [git commit message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) or your code is unlikely be merged into the main project. Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. 7. Locally merge (or rebase) the upstream development branch into your topic branch: ```bash git pull [--rebase] upstream develop ``` 8. Push your topic branch up to your fork: ```bash git push origin ``` 9. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description against the `develop` branch. **IMPORTANT**: By submitting a patch, you agree to allow the project owners to license your work under the terms of the [LGPLv3](COPYING) (if it includes code changes). glances-3.4.0.3/.gitattributes0000644000175000017500000000007014432156570016076 0ustar epsilonepsilonglances/outputs/static/public/* -diff linguist-vendored glances-3.4.0.3/.mailmap0000644000175000017500000000175614432156570014640 0ustar epsilonepsilonNicolas Hennion Nicolargo Nicolas Hennion Nicolas Hennion Nicolas Hennion nicolargo Nicolas Hennion nicolargo Nicolas Hennion nicolargo Nicolas Hennion nicolargo Nicolas Hennion Nicolargo Nicolas Hennion nicolargo Alessio Sergi asergi Nicolas Hart nclsHart Nicolas Hart Nicolas Hart Floran Brutel Floran Brutel Brandon Philips Brandon Philips glances-3.4.0.3/docker-bin.sh0000644000175000017500000000005314432156570015555 0ustar epsilonepsilon#!/bin/sh /venv/bin/python3 -m glances $@ glances-3.4.0.3/tox.ini0000644000175000017500000000051614432156570014523 0ustar epsilonepsilon# Tox (http://tox.testrun.org/) is a tool for running tests # Install: # pip install tox # Run: # tox [tox] envlist = py27, py38, py39 [testenv] deps = flake8 requests psutil bottle commands = python unitest.py python unitest-restful.py python unitest-xmlrpc.py #flake8 --exclude=build,.tox,.git glances-3.4.0.3/doc-requirements.txt0000644000175000017500000000016114432156570017233 0ustar epsilonepsilonsphinx sphinx_rtd_theme reuse setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerabilityglances-3.4.0.3/Makefile0000644000175000017500000002363214432156570014654 0ustar epsilonepsilonPORT?=8008 LASTTAG = $(shell git describe --tags --abbrev=0) # if the command is only `make`, the default tasks will be the printing of the help. .DEFAULT_GOAL := help .PHONY: help help: ## List all make commands available @grep -E '^[\.a-zA-Z_%-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk -F ":" '{print $1}' | grep -v % | sed 's/\\//g' | sort | awk 'BEGIN {FS = ":[^:]*?##"}; {printf "\033[1;34mmake %-50s\033[0m %s\n", $$1, $$2}' install: ## Open a Web Browser to the installation procedure sensible-browser "https://github.com/nicolargo/glances#installation" venv-python: ## Install Python 3 venv virtualenv -p /usr/bin/python3 venv venv-dev: venv-python ## Install Python 3 dev dependencies ./venv/bin/pip install -r dev-requirements.txt ./venv/bin/pip install -r doc-requirements.txt venv-dev-upgrade: ## Upgrade Python 3 dev dependencies ./venv/bin/pip install --upgrade pip ./venv/bin/pip install --upgrade -r dev-requirements.txt ./venv/bin/pip install --upgrade -r doc-requirements.txt venv: venv-python ## Install Python 3 run-time dependencies ./venv/bin/pip install -r requirements.txt ./venv/bin/pip install -r optional-requirements.txt venv-upgrade: ## Upgrade Python 3 run-time dependencies ./venv/bin/pip install --upgrade -r requirements.txt ./venv/bin/pip install --upgrade -r optional-requirements.txt # =================================================================== # Tests # =================================================================== test: ## Run unit tests ./venv/bin/python ./unitest.py ./venv/bin/python ./unitest-restful.py ./venv/bin/python ./unitest-xmlrpc.py ./venv/bin/python -m black ./glances --check --exclude outputs/static # ./venv/bin/pyright glances test-with-upgrade: venv-upgrade venv-dev-upgrade ## Run unit tests ./venv/bin/python ./unitest.py ./venv/bin/python ./unitest-restful.py ./venv/bin/python ./unitest-xmlrpc.py ./venv/bin/python -m black ./glances --check --exclude outputs/static # ./venv/bin/pyright glances # =================================================================== # Linters and profilers # =================================================================== format: venv-dev-upgrade ## Format the code @git ls-files './glances/*.py' | xargs ./venv/bin/python -m autopep8 --in-place --jobs 0 --global-config=.flake8 @git ls-files './glances/*.py' | xargs ./venv/bin/python -m autoflake --in-place --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys --exclude="compat.py,globals.py" ./venv/bin/python -m black ./glances --exclude outputs/static flake8: venv-dev-upgrade ## Run flake8 linter. @git ls-files '*.py' | xargs ./venv/bin/python -m flake8 --config=.flake8 ruff: venv-dev-upgrade ## Run Ruff (fastest) linter. ./venv/bin/python -m ruff check . --config=./pyproject.toml codespell: venv-dev-upgrade ## Run codespell to fix common misspellings in text files ./venv/bin/codespell -S .git,./docs/_build,./Glances.egg-info,./venv,./glances/outputs,*.svg -L hart,bu,te,statics semgrep: venv-dev-upgrade ## Run semgrep to find bugs and enforce code standards ./venv/bin/semgrep --config=auto --lang python --use-git-ignore ./glances profiling: ## How to start the profiling of the Glances software @echo "Please complete and run: sudo ./venv/bin/py-spy record -o ./docs/_static/glances-flame.svg -d 60 -s --pid " trace-malloc: ## Trace the malloc() calls @echo "Malloc test is running, please wait ~30 secondes..." ./venv/bin/python -m glances -C ./conf/glances.conf --trace-malloc --stop-after 15 --quiet memory-leak: ## Profile memory leaks ./venv/bin/python -m glances -C ./conf/glances.conf --memory-leak memory-profiling: ## Profile memory usage @echo "It's a very long test (~4 hours)..." rm -f mprofile_*.dat @echo "1/2 - Start memory profiling with the history option enable" ./venv/bin/mprof run -T 1 -C run.py -C ./conf/glances.conf --stop-after 2400 --quiet ./venv/bin/mprof plot --output ./docs/_static/glances-memory-profiling-with-history.png rm -f mprofile_*.dat @echo "2/2 - Start memory profiling with the history option disable" ./venv/bin/mprof run -T 1 -C run.py -C ./conf/glances.conf --disable-history --stop-after 2400 --quiet ./venv/bin/mprof plot --output ./docs/_static/glances-memory-profiling-without-history.png rm -f mprofile_*.dat # =================================================================== # Docs # =================================================================== docs: venv-dev-upgrade ## Create the documentation ./venv/bin/python -m glances -C ./conf/glances.conf --api-doc > ./docs/api.rst cd docs && ./build.sh && cd .. docs-server: docs ## Start a Web server to serve the documentation (sleep 2 && sensible-browser "http://localhost:$(PORT)") & cd docs/_build/html/ && ../../../venv/bin/python -m http.server $(PORT) release-note: ## Generate release note git --no-pager log $(LASTTAG)..HEAD --first-parent --pretty=format:"* %s" @echo "\n" git --no-pager shortlog -s -n $(LASTTAG)..HEAD # =================================================================== # WebUI # =================================================================== webui: venv-dev-upgrade ## Build the Web UI cd glances/outputs/static/ && npm ci && npm run build webui-audit: venv-dev-upgrade ## Audit the Web UI cd glances/outputs/static/ && npm audit webui-audit-fix: venv-dev-upgrade ## Fix audit the Web UI cd glances/outputs/static/ && npm audit fix && npm ci && npm run build # =================================================================== # Packaging # =================================================================== flatpak: venv-dev-upgrade ## Generate FlatPack JSON file git clone https://github.com/flatpak/flatpak-builder-tools.git ./venv/bin/python ./flatpak-builder-tools/pip/flatpak-pip-generator glances rm -rf ./flatpak-builder-tools @echo "Now follow: https://github.com/flathub/flathub/wiki/App-Submission" # =================================================================== # Docker # =================================================================== docker: docker-alpine docker-ubuntu## Generate local docker images docker-alpine: ## Generate local docker images (Alpine) docker build --target full -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-full . docker build --target minimal -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-minimal . docker build --target dev -f ./docker-files/alpine.Dockerfile -t glances:local-alpine-dev . docker-ubuntu: ## Generate local docker images (Ubuntu) docker build --target full -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-full . docker build --target minimal -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-minimal . docker build --target dev -f ./docker-files/ubuntu.Dockerfile -t glances:local-ubuntu-dev . # =================================================================== # Run # =================================================================== run: ## Start Glances in console mode (also called standalone) ./venv/bin/python -m glances -C ./conf/glances.conf run-debug: ## Start Glances in debug console mode (also called standalone) ./venv/bin/python -m glances -C ./conf/glances.conf -d run-local-conf: ## Start Glances in console mode with the system conf file ./venv/bin/python -m glances run-docker-alpine-minimal: ## Start Glances Alpine Docker minimal in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-minimal run-docker-alpine-full: ## Start Glances Alpine Docker full in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-full run-docker-alpine-dev: ## Start Glances Alpine Docker dev in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-alpine-dev run-docker-ubuntu-minimal: ## Start Glances Ubuntu Docker minimal in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-minimal run-docker-ubuntu-full: ## Start Glances Ubuntu Docker full in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-full run-docker-ubuntu-dev: ## Start Glances Ubuntu Docker dev in console mode docker run --rm -e TZ="${TZ}" -e GLANCES_OPT="" -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it glances:local-ubuntu-dev run-webserver: ## Start Glances in Web server mode ./venv/bin/python -m glances -C ./conf/glances.conf -w run-restapiserver: ## Start Glances in REST API server mode ./venv/bin/python -m glances -C ./conf/glances.conf -w --disable-webui run-server: ## Start Glances in server mode (RPC) ./venv/bin/python -m glances -C ./conf/glances.conf -s run-client: ## Start Glances in client mode (RPC) ./venv/bin/python -m glances -C ./conf/glances.conf -c localhost run-browser: ## Start Glances in browser mode (RPC) ./venv/bin/python -m glances -C ./conf/glances.conf --browser run-issue: ## Start Glances in issue mode ./venv/bin/python -m glances -C ./conf/glances.conf --issue show-version: ## Show Glances version number ./venv/bin/python -m glances -C ./conf/glances.conf -V show-issue: ## Generate output for a new issue ./venv/bin/python -m glances -C ./conf/glances.conf --issue .PHONY: test docs docs-server venv