pax_global_header00006660000000000000000000000064141221633230014507gustar00rootroot0000000000000052 comment=e0f35674308399bec0701fd163c4316aadfdbec3 screensaver.pyro-19.0.0-Matrix/000077500000000000000000000000001412216332300163505ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/.github/000077500000000000000000000000001412216332300177105ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/.github/workflows/000077500000000000000000000000001412216332300217455ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/.github/workflows/build.yml000066400000000000000000000044461412216332300235770ustar00rootroot00000000000000name: Build and run tests on: [push, pull_request] env: app_id: screensaver.pyro jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - name: "Debian package test" os: ubuntu-18.04 CC: gcc CXX: g++ DEBIAN_BUILD: true #- os: ubuntu-18.04 #CC: gcc #CXX: g++ #- os: ubuntu-18.04 #CC: clang #CXX: clang++ #- os: macos-10.15 steps: - name: Install needed ubuntu depends env: DEBIAN_BUILD: ${{ matrix.DEBIAN_BUILD }} run: | if [[ $DEBIAN_BUILD == true ]]; then sudo add-apt-repository -y ppa:team-xbmc/ppa; fi if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get update; fi if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get install fakeroot; fi - name: Checkout Kodi repo uses: actions/checkout@v2 with: repository: xbmc/xbmc ref: Matrix path: xbmc - name: Checkout screensaver.pyro repo uses: actions/checkout@v2 with: path: ${{ env.app_id }} - name: Configure env: CC: ${{ matrix.CC }} CXX: ${{ matrix.CXX }} DEBIAN_BUILD: ${{ matrix.DEBIAN_BUILD }} run: | if [[ $DEBIAN_BUILD != true ]]; then cd ${app_id} && mkdir -p build && cd build; fi if [[ $DEBIAN_BUILD != true ]]; then cmake -DADDONS_TO_BUILD=${app_id} -DADDON_SRC_PREFIX=${{ github.workspace }} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/xbmc/addons -DPACKAGE_ZIP=1 ${{ github.workspace }}/xbmc/cmake/addons; fi if [[ $DEBIAN_BUILD == true ]]; then wget https://raw.githubusercontent.com/xbmc/xbmc/Matrix/xbmc/addons/kodi-dev-kit/tools/debian-addon-package-test.sh && chmod +x ./debian-addon-package-test.sh; fi if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get build-dep ${{ github.workspace }}/${app_id}; fi - name: Build env: CC: ${{ matrix.CC }} CXX: ${{ matrix.CXX }} DEBIAN_BUILD: ${{ matrix.DEBIAN_BUILD }} run: | if [[ $DEBIAN_BUILD != true ]]; then cd ${app_id}/build; fi if [[ $DEBIAN_BUILD != true ]]; then make; fi if [[ $DEBIAN_BUILD == true ]]; then ./debian-addon-package-test.sh ${{ github.workspace }}/${app_id}; fi screensaver.pyro-19.0.0-Matrix/.github/workflows/sync-addon-metadata-translations.yml000066400000000000000000000031351412216332300310260ustar00rootroot00000000000000name: Sync addon metadata translations on: push: branches: [ Matrix, Nexus ] paths: - '**addon.xml.in' - '**resource.language.**strings.po' jobs: default: if: github.repository == 'xbmc/screensaver.pyro' runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: [ 3.9 ] steps: - name: Checkout repository uses: actions/checkout@v2 with: path: project - name: Checkout sync_addon_metadata_translations repository uses: actions/checkout@v2 with: repository: xbmc/sync_addon_metadata_translations path: sync_addon_metadata_translations - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install sync_addon_metadata_translations/ - name: Run sync-addon-metadata-translations run: | sync-addon-metadata-translations --multiple-addons working-directory: ./project - name: Create PR for sync-addon-metadata-translations changes uses: peter-evans/create-pull-request@v3.10.0 with: commit-message: Sync of addon metadata translations title: Sync of addon metadata translations body: Sync of addon metadata translations triggered by ${{ github.sha }} branch: amt-sync delete-branch: true path: ./project reviewers: gade01screensaver.pyro-19.0.0-Matrix/.gitignore000066400000000000000000000011601412216332300203360ustar00rootroot00000000000000# build artifacts build/ screensaver.*/addon.xml # Debian build files debian/changelog debian/files debian/*.log debian/*.substvars debian/.debhelper/ debian/tmp/ debian/kodi-screensaver-*/ obj-x86_64-linux-gnu/ # commonly used editors # vim *.swp # Eclipse *.project *.cproject .classpath *.sublime-* .settings/ # KDevelop 4 *.kdev4 # gedit *~ # CLion /.idea # clion .idea/ # to prevent add after a "git format-patch VALUE" and "git add ." call /*.patch # Visual Studio Code .vscode # to prevent add if project code opened by Visual Studio over CMake file .vs/ # General MacOS .DS_Store .AppleDouble .LSOverride screensaver.pyro-19.0.0-Matrix/.travis.yml000066400000000000000000000042051412216332300204620ustar00rootroot00000000000000language: cpp env: global: - app_id=screensaver.pyro # # Define the build matrix # matrix: include: - os: linux dist: xenial sudo: required compiler: gcc - os: linux dist: xenial sudo: required compiler: clang - os: linux dist: bionic sudo: required compiler: gcc env: DEBIAN_BUILD=true - os: linux dist: focal sudo: required compiler: gcc env: DEBIAN_BUILD=true - os: osx osx_image: xcode10.2 before_install: - if [[ $DEBIAN_BUILD == true ]]; then sudo add-apt-repository -y ppa:team-xbmc/ppa; fi - if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get install fakeroot; fi - if [[ $DEBIAN_BUILD != true ]] && [[ $TRAVIS_OS_NAME == linux ]]; then sudo apt-get install -y libgl1-mesa-dev; fi # # The addon source is automatically checked out in $TRAVIS_BUILD_DIR, # we'll put the Kodi source on the same level # before_script: - if [[ $DEBIAN_BUILD != true ]]; then cd $TRAVIS_BUILD_DIR/..; fi - if [[ $DEBIAN_BUILD != true ]]; then git clone --branch Matrix --depth=1 https://github.com/xbmc/xbmc.git; fi - if [[ $DEBIAN_BUILD != true ]]; then cd ${app_id} && mkdir build && cd build; fi - if [[ $DEBIAN_BUILD != true ]]; then mkdir -p definition/${app_id}; fi - if [[ $DEBIAN_BUILD != true ]]; then echo ${app_id} $TRAVIS_BUILD_DIR $TRAVIS_COMMIT > definition/${app_id}/${app_id}.txt; fi - if [[ $DEBIAN_BUILD != true ]]; then cmake -DADDONS_TO_BUILD=${app_id} -DADDON_SRC_PREFIX=$TRAVIS_BUILD_DIR/.. -DADDONS_DEFINITION_DIR=$TRAVIS_BUILD_DIR/build/definition -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/../xbmc/addons -DPACKAGE_ZIP=1 $TRAVIS_BUILD_DIR/../xbmc/cmake/addons; fi - if [[ $DEBIAN_BUILD == true ]]; then wget https://raw.githubusercontent.com/xbmc/xbmc/Matrix/xbmc/addons/kodi-dev-kit/tools/debian-addon-package-test.sh && chmod +x ./debian-addon-package-test.sh; fi - if [[ $DEBIAN_BUILD == true ]]; then sudo apt-get build-dep $TRAVIS_BUILD_DIR; fi script: - if [[ $DEBIAN_BUILD != true ]]; then make; fi - if [[ $DEBIAN_BUILD == true ]]; then ./debian-addon-package-test.sh $TRAVIS_BUILD_DIR; fi screensaver.pyro-19.0.0-Matrix/CMakeLists.txt000066400000000000000000000015541412216332300211150ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.5) project(screensaver.pyro) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) find_package(Kodi REQUIRED) if(NOT WIN32) if(APP_RENDER_SYSTEM STREQUAL "gl" OR NOT APP_RENDER_SYSTEM) find_package(OpenGl REQUIRED) set(DEPLIBS ${OPENGL_LIBRARIES}) set(includes ${OPENGL_INCLUDE_DIR}) add_definitions(${OPENGL_DEFINITIONS}) elseif(APP_RENDER_SYSTEM STREQUAL "gles") find_package(OpenGLES REQUIRED) set(DEPLIBS ${OPENGLES_LIBRARIES}) set(includes ${OPENGLES_INCLUDE_DIR}) add_definitions(${OPENGLES_DEFINITIONS}) endif() endif() include_directories(${includes} ${KODI_INCLUDE_DIR}/..) # Hack way with "/..", need bigger Kodi cmake rework to match right include ways set(PYRO_SOURCES src/Pyro.cpp) set(PYRO_HEADERS src/Pyro.h) build_addon(screensaver.pyro PYRO DEPLIBS) include(CPack) screensaver.pyro-19.0.0-Matrix/FindOpenGLES.cmake000066400000000000000000000036331412216332300215340ustar00rootroot00000000000000#.rst: # FindOpenGLES # ------------ # Finds the OpenGLES2 and OpenGLES3 library # # This will define the following variables: # # OPENGLES_FOUND - system has OpenGLES # OPENGLES_INCLUDE_DIRS - the OpenGLES include directory # OPENGLES_LIBRARIES - the OpenGLES libraries # OPENGLES_DEFINITIONS - the OpenGLES definitions if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) set(_brcmprefix brcm) endif() if(PKG_CONFIG_FOUND) pkg_check_modules(PC_OPENGLES ${_brcmprefix}glesv2 QUIET) endif() if(NOT CORE_SYSTEM_NAME STREQUAL darwin_embedded AND NOT CORE_SYSTEM_NAME STREQUAL ios) find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h PATHS ${PC_OPENGLES_INCLUDEDIR}) find_library(OPENGLES_gl_LIBRARY NAMES ${_brcmprefix}GLESv2 PATHS ${PC_OPENGLES_LIBDIR}) else() find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES PATHS ${CMAKE_OSX_SYSROOT}/System/Library PATH_SUFFIXES Frameworks NO_DEFAULT_PATH) set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers) endif() find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(OpenGLES REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR) find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h PATHS ${PC_OPENGLES_INCLUDEDIR}) if(OPENGLES_FOUND) set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY}) if(OPENGLES3_INCLUDE_DIR) set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR} ${OPENGLES3_INCLUDE_DIR}) set(OPENGLES_DEFINITIONS -DHAS_GLES=3) mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES3_INCLUDE_DIR OPENGLES_gl_LIBRARY) else() set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR}) set(OPENGLES_DEFINITIONS -DHAS_GLES=2) mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY) endif() endif() screensaver.pyro-19.0.0-Matrix/FindOpenGl.cmake000066400000000000000000000024071412216332300213420ustar00rootroot00000000000000#.rst: # FindOpenGl # ---------- # Finds the FindOpenGl library # # This will define the following variables:: # # OPENGL_FOUND - system has OpenGl # OPENGL_INCLUDE_DIRS - the OpenGl include directory # OPENGL_LIBRARIES - the OpenGl libraries # OPENGL_DEFINITIONS - the OpenGl definitions if(PKG_CONFIG_FOUND) pkg_check_modules(PC_OPENGL gl QUIET) endif() if(NOT CORE_SYSTEM_NAME STREQUAL osx) find_path(OPENGL_INCLUDE_DIR GL/gl.h PATHS ${PC_OPENGL_gl_INCLUDEDIR}) find_library(OPENGL_gl_LIBRARY NAMES GL PATHS ${PC_OPENGL_gl_LIBDIR}) else() find_library(OPENGL_gl_LIBRARY NAMES OpenGL PATHS ${CMAKE_OSX_SYSROOT}/System/Library PATH_SUFFIXES Frameworks NO_DEFAULT_PATH) set(OPENGL_INCLUDE_DIR ${OPENGL_gl_LIBRARY}/Headers) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(OpenGl REQUIRED_VARS OPENGL_gl_LIBRARY OPENGL_INCLUDE_DIR) if(OPENGL_FOUND) set(OPENGL_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY}) set(OPENGL_DEFINITIONS -DHAS_GL=1) endif() mark_as_advanced(OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY) screensaver.pyro-19.0.0-Matrix/Jenkinsfile000066400000000000000000000000371412216332300205340ustar00rootroot00000000000000buildPlugin(version: "Matrix") screensaver.pyro-19.0.0-Matrix/LICENSE.md000066400000000000000000000355061412216332300177650ustar00rootroot00000000000000The GNU General Public License, Version 2, June 1991 (GPLv2) ============================================================ > Copyright (C) 1989, 1991 Free Software Foundation, Inc. > 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble -------- The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. Terms And Conditions For Copying, Distribution And Modification --------------------------------------------------------------- **0.** This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. **1.** You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. **2.** You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: * **a)** You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. * **b)** You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. * **c)** If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. **3.** You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: * **a)** Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * **b)** Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * **c)** Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. **4.** You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. **5.** You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. **6.** Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. **7.** If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. **8.** If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. **9.** The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. **10.** If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. No Warranty ----------- **11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. **12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. screensaver.pyro-19.0.0-Matrix/README.md000066400000000000000000000037631412216332300176400ustar00rootroot00000000000000# screensaver.pyro addon for Kodi This is a [Kodi](https://kodi.tv) screensaver addon. [![License: GPL-2.0-or-later](https://img.shields.io/badge/License-GPL%20v2+-blue.svg)](LICENSE.md) [![Build and run tests](https://github.com/xbmc/screensaver.pyro/actions/workflows/build.yml/badge.svg?branch=Matrix)](https://github.com/xbmc/screensaver.pyro/actions/workflows/build.yml) [![Build Status](https://dev.azure.com/teamkodi/binary-addons/_apis/build/status/xbmc.screensaver.pyro?branchName=Matrix)](https://dev.azure.com/teamkodi/binary-addons/_build/latest?definitionId=47&branchName=Matrix) [![Build Status](https://jenkins.kodi.tv/view/Addons/job/xbmc/job/screensaver.pyro/job/Matrix/badge/icon)](https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Fscreensaver.pyro/branches/) ## Build instructions When building the addon you have to use the correct branch depending on which version of Kodi you're building against. If you want to build the addon to be compatible with the latest kodi `Matrix` commit, you need to checkout the branch with the current kodi codename. Also make sure you follow this README from the branch in question. ### Linux The following instructions assume you will have built Kodi already in the `kodi-build` directory suggested by the README. 1. `git clone --branch Matrix https://github.com/xbmc/xbmc.git` 2. `git clone --branch Matrix https://github.com/xbmc/screensaver.pyro.git` 3. `cd screensaver.pyro && mkdir build && cd build` 4. `cmake -DADDONS_TO_BUILD=screensaver.pyro -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/kodi-build/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons` 5. `make` The addon files will be placed in `../../xbmc/kodi-build/addons` so if you build Kodi from source and run it directly the addon will be available as a system addon. screensaver.pyro-19.0.0-Matrix/appveyor.yml000066400000000000000000000022571412216332300207460ustar00rootroot00000000000000version: BuildNr.{build} image: Visual Studio 2017 shallow_clone: true clone_folder: c:\projects\screensaver.pyro environment: app_id: screensaver.pyro matrix: - GENERATOR: "Visual Studio 15" CONFIG: Release - GENERATOR: "Visual Studio 15 Win64" CONFIG: Release - GENERATOR: "Visual Studio 15 Win64" CONFIG: Release WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0" - GENERATOR: "Visual Studio 15 ARM" CONFIG: Release WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0" build_script: - cd .. - git clone --branch Matrix --depth=1 https://github.com/xbmc/xbmc.git - cd %app_id% - mkdir build - cd build - mkdir -p definition\%app_id% - echo %app_id% %APPVEYOR_BUILD_FOLDER% %APPVEYOR_REPO_COMMIT% > definition\%app_id%\%app_id%.txt - cmake -T host=x64 -G "%GENERATOR%" %WINSTORE% -DADDONS_TO_BUILD=%app_id% -DCMAKE_BUILD_TYPE=%CONFIG% -DADDONS_DEFINITION_DIR=%APPVEYOR_BUILD_FOLDER%/build/definition -DADDON_SRC_PREFIX=../.. -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons - cmake --build . --config %CONFIG% --target %app_id% screensaver.pyro-19.0.0-Matrix/azure-pipelines.yml000066400000000000000000000035611412216332300222140ustar00rootroot00000000000000variables: app_id: 'screensaver.pyro' trigger: branches: include: - Matrix - Nexus - releases/* paths: include: - '*' exclude: - 'debian/*' jobs: - job: Windows pool: vmImage: 'VS2017-Win2016' strategy: matrix: Win32: GENERATOR: "Visual Studio 15 2017" ARCHITECTURE: Win32 CONFIGURATION: Release Win64: GENERATOR: "Visual Studio 15 2017" ARCHITECTURE: x64 CONFIGURATION: Release Win64-UWP: GENERATOR: "Visual Studio 15 2017" ARCHITECTURE: x64 CONFIGURATION: Release WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0" ARM64-UWP: GENERATOR: "Visual Studio 15 2017" ARCHITECTURE: ARM64 CONFIGURATION: Release WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0" workspace: clean: all steps: - script: | cd .. git clone --branch Matrix --depth=1 https://github.com/xbmc/xbmc.git kodi cd $(Build.SourcesDirectory) mkdir build cd build mkdir "definition/$(app_id)" echo $(app_id) . . > definition/$(app_id)/$(app_id).txt mklink /J "$(Pipeline.Workspace)/$(app_id)" "$(Build.SourcesDirectory)" - task: CMake@1 inputs: workingDirectory: 'build' cmakeArgs: '-T host=x64 -G "$(GENERATOR)" -A $(ARCHITECTURE) $(WINSTORE) -DADDONS_TO_BUILD=$(app_id) -DCMAKE_BUILD_TYPE=$(CONFIGURATION) -DADDONS_DEFINITION_DIR=$(Pipeline.Workspace)/$(app_id)/build/definition -DADDON_SRC_PREFIX=../.. -DCMAKE_INSTALL_PREFIX=../../kodi/addons -DPACKAGE_ZIP=1 ../../kodi/cmake/addons' - task: CMake@1 inputs: workingDirectory: 'build' cmakeArgs: '--build . --config $(CONFIGURATION) --target $(app_id)' screensaver.pyro-19.0.0-Matrix/debian/000077500000000000000000000000001412216332300175725ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/debian/changelog.in000066400000000000000000000002721412216332300220520ustar00rootroot00000000000000kodi-screensaver-pyro (#PACKAGEVERSION#-#TAGREV#~#DIST#) #DIST#; urgency=low [ kodi ] * autogenerated dummy changelog -- Nobody Sat, 01 Jun 2013 00:59:22 +0200 screensaver.pyro-19.0.0-Matrix/debian/compat000066400000000000000000000000021412216332300207700ustar00rootroot000000000000009 screensaver.pyro-19.0.0-Matrix/debian/control000066400000000000000000000012411412216332300211730ustar00rootroot00000000000000Source: kodi-screensaver-pyro Priority: extra Maintainer: Nobody Build-Depends: debhelper (>= 9.0.0), cmake, kodi-addon-dev, libgles2-mesa-dev [arm64 armhf], libgl1-mesa-dev [i386 amd64] Standards-Version: 4.1.2 Section: libs Homepage: https://kodi.tv Package: kodi-screensaver-pyro Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Pyro screensaver for Kodi Pyro screensaver for Kodi Package: kodi-screensaver-pyro-dbg Section: debug Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: debug symbols for Pyro screensaver for Kodi debug symbols for Pyro screensaver for Kodi screensaver.pyro-19.0.0-Matrix/debian/copyright000066400000000000000000000016541412216332300215330ustar00rootroot00000000000000Format: http://dep.debian.net/deps/dep5 Upstream-Name: screensaver.pyro Source: https://github.com/xbmc/screensaver.pyro Files: * Copyright: 2005-2021 Team Kodi License: GPL-2+ This package 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 2 of the License, or (at your option) any later version. . This package 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 . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". screensaver.pyro-19.0.0-Matrix/debian/kodi-screensaver-pyro.install000066400000000000000000000000261412216332300254130ustar00rootroot00000000000000usr/lib/* usr/share/* screensaver.pyro-19.0.0-Matrix/debian/rules000077500000000000000000000011731412216332300206540ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 %: dh $@ override_dh_auto_configure: dh_auto_configure -- -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=1 -DUSE_LTO=1 override_dh_installdocs: dh_installdocs --link-doc=kodi-screensaver-pyro screensaver.pyro-19.0.0-Matrix/debian/source/000077500000000000000000000000001412216332300210725ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/debian/source/format000066400000000000000000000000151412216332300223010ustar00rootroot000000000000003.0 (native) screensaver.pyro-19.0.0-Matrix/screensaver.pyro/000077500000000000000000000000001412216332300216605ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/addon.xml.in000066400000000000000000000020221412216332300240700ustar00rootroot00000000000000 @ADDON_DEPENDS@ @PLATFORM@ GPL-2.0-or-later https://github.com/xbmc/screensaver.pyro resources/icon.png resources/fanart.png resources/screenshot-01.png resources/fanart.png resources/screenshot-02.png Pyro Bildschirmschoner Pyro screensaver Der Pyro-Bildschirmschoner simuliert ein Feuerwerk. The pyro screensaver simulates fireworks. screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/000077500000000000000000000000001412216332300236725ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/fanart.png000066400000000000000000001146541412216332300256660ustar00rootroot00000000000000‰PNG  IHDRp¾ËrsBIT|dˆtEXtSoftwaregnome-screenshotï¿>)tEXtCreation TimeFr 08 Mär 2019 18:47:12 CETe`ù… IDATxœìݱmAEÑc sÂ"T¡Š`âÎÆðhCµs)ŸîÄkàâÏ1Æ@·Ý€_À"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷6Y/ïûý|ýœüÆ`@ˆBÀ"€0„€ D !`@ˆBæcíܸ !`9vÞv]ïûýe~Îà\.@ˆBÀ"€0„€ D !`@ˆBÀ2Çk÷àÆ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷à¾ëúûûež³8 À"€0„€ D !ÇîðÌ®ëþÛež·ø:\€€ Ìaøÿ¸ !`@ˆBæcíܸ !`@ˆBÀ"€0„€ äØ=ø˜ëºÿv™çíË`@ˆBŽÝ૸®ûo—yÞ๹ !`9v>æ2w/>ƒ À"€0„Ì1ÆÚ=¸qBÀrìŒq]÷ß.ó¼À~.@ˆBÀrìðOëåÏoóõüp€ D !ÇîÀ—¹{Pá0„Ì1ÆÚ=¸qBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`9vHZ/oŸ¯çîà¿ã0„€ D !`@Èc¬Ý#€€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷ø¨uçû=¸¹ !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`…!H IDAT@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€ëô€g]³?}Ìzñxž À"€0„€ D !kföéÀÍ`@ˆBÀ"€ëô€¿èšýå¿Ç¬.à·qBÀ"€0„€ ä:=࿹fx{Ì:°€"€ D !`@ˆBÀ"€0„€ D !`Y3³On.@ˆBÀ"ÞØ»cÜ8Ž(Š¢¿ˆÞ“·åܱsoK{ LÀ@"E[=S—â9!(¼ðÎBÀ"€0„€ D !`@ˆBŽÝ Ž9ßý~›õ¤%|u.@ˆBÀ"€0„€ D !kfÎÝ#€;€ D !`@ȱ{Àoéóº·¾­ëÞ Ï`qø¡cÞþ¥©Ûøå(x€ D !`@ˆBÀrì4Ýfíž_’ À"€0„€ D !`@ˆBÀ²fæÜ=¸sBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀrìðóÏeo­ùó²·øü\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„¬™9wî\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`9và¿9æ|óÛmÖ—ð`àá«ðq/»¯À"€0„»×:æ|÷ûmÖ“–ÿ‡à“qüÞÀÀà Vàã^v^ € D !`@Èš™s÷àÎ`@ˆBÀ"€0„€ D !`@ˆBÀrìÀÏsþðï·YO^À£¹ !`@ˆBÀ²fæÜ=¸sBÀ"€0„€ D !`@ˆBÀrì4s¾ùí6ë‰KàkqBÀ"€0„€ D !kfÎÝ#€;€ D !`@ˆBÀ"€0„€ D !`@ȱ{|Ø_çuoý½®{ àB.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÖÌœ»Gw.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ äØ=øEÇùþ÷ÛzÎà.@ˆBÀrìÇùýßnëù;€/Í`@ˆBŽÝ€_t[»Z3sîŸÂñÆ¿Ü p€ ½ì¼@ˆBÀ"€53çîÀ À"€0„€ D !`@ˆBþeïŽqÛ‚( ö{^Fç%0 6”œÑœGº*Üÿ-€0„€ D !`@ˆBÀ"€0„€ D !`@ÈuzÀ;ø3ûio}ÍzÚ[|€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !kföéÀÍ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀr|¸kÿýßc½n¼ € D !`@ˆBÀ²ffŸÜ\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èuzü{û‰o­'¾ð“ À"€0„€ D !`@ˆBÀo*¥ IDAT"€0„€ D !`@ˆBÀ"€53ûôàæ0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€ëôà?uíß¿?Ökw@Œ À"€0„€ D !kföéÀÍ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„\§êÚ?¿=ÖëwÀ›qBÀ"€0„¬™Ù§G7€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆà›½{Ém㊢(zŸPç? ŽÇ* "‘£b; ß–¸ †Jjœ®Dìº"€0„»°×ùííçëûîàÆ`@ˆBÀ"€53çîÀ À"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€¾ªãܽ€ß°fÆv Â`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„»Ðu™óÝŸ]gÝq ÀãpB\`‹÷®Œ»0<:0_Â{AñÄÅÀgð´{ðL !`9v ë:k÷€‡#` /xÛÓîÀ30„€ dÍ̹{ðs./>æ¿ÎÚ´ø¿¸ !`@Èš™s÷àæØ=ø|.o¼oü:kÃøzžvž € D !`Y3sîܸ !`@ˆBŽÝÝeÎwvuÇ%¸ !`@ˆBŽÝ€¦Ëœ¯ž]gmXÅ`q`3—•ø‘ À"€53çîÀ À"€0„€ D !`@ˆBÀ"€0„€ D !`@ȱ{ð˜.s¾zvµa ´¸ !.õòB¬ë°À#pBÀrì<¦ë¬Ý iÍ̹{pó´{ðL !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D <¤óÛí jÀ²fæÜ=¸qBŽÝ¾Šóý/+øì\€0„€ D !`@ˆBÀ"€0„€ dÍ̹{pã0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ äØ= æ2ç?¾¿ÎÚ´€Gä0„¸ ð_çëgß×ýwð%¸ !kfÞxå?Í`>б{ïòâ]Ð×|O»Ï\àoÝr~ÑwŸ²ðq\€5Ïž€Í\€0„€ D !`@ˆBÀ"€0„€ D !`@ȱ{ð¾Ëœo>¿Îºóà^\€0„€ D !` å8w/€­ÖÌøo9„]ÞøHï:kÃà\€0„€ D !kfÎÝ#€›c÷>Ÿ÷Þ$µîºàkzÚ=x&€c÷x$ç‹ï×–|´Ë«¿øf®þêà7¹ !`9vàóY»|a`¸#ñ4ðoÖÌœ»G7O»ÏÀ"€0„€ù“½;Èm㊢(øé,2_ IDAT¾ÐY÷’…f/\A'Pd ¶KüÇQ@@Mip§„pø@ˆBÀ"€0„»|v·9_<ßgmZ@ À"€c÷ïüëçÿvýùq;ø–`³û¬ÝyÚ=x&€0„€ D !`9v€_qþççµmÀûqBÀ²fæÜ=¸¸ !`@ˆBÀ"€0ïâüçÀ¯@È‡Ú Ã`9vö¹ÍùÍ{÷Y–ÿrBÀ"€c÷Zns¾úþ}Öƒ—|N`øÄ„ÝÐó´{ðL !`@Èš™s÷àâ0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷ø(ç~¿²>—Ûw>‘ß}ø).@ˆBÀ"€0„€ dÍ̹{|„}à]Yð6`yÚ=x&€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷à}œ_^>¯?öì~ À"€0„¬™9w..ðéœ_®@‘BÖÌœ»G€ D !`@ˆBÀ"€0„€ D !`ø¬Žóz)`Y3ã+< Â`@ˆBÀ"€0„€ D !`9và[·9_<ßgmZÀ£¹ !`ð0ç—Ý úÖÌœ»G—c÷€÷vûê{ï³6-€·{Ú=x&€0„¬™9w.Çîoõõ·—¬-+àc<í<@ˆBÖÌœ»G—c÷àmnßùŽßû¬.>ÂÓîÀ30„€ D !`@Èš™s÷x”Û+ÿ&¿ÏÚ°àu.@ˆBÀ"€53çîÀÅ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀrì;Ýæ|ñ|Ÿµi ÀÅ`@ˆBÖÌœ»G€ D !Çîðp›óÕ÷ï³¼øÝ¹ !`@ˆBÀ²fæÜ=¸¸ !`@ˆBÀ"€0„»À×ns¾x¾ÏÚ´àñ\€0„€ dÍ̹{pqBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆàoöî %b Š¢è/Èþ7ì ÄAÓ źÚç@ !“·Ë€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB®Ó~Ê~x_ÇVÀ÷¸ !`Y3³On.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !×霷¿ø·~m3.@ŠBÀ"€0„€ dÍÌ>=¸¹ !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`À“ýñœ €5Ž@† À"€0„€ D !`@ˆBÀ"€0„€ D !`Ú9Ú ÙIDAT@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€>±ßN/à­™Ù§G7€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èuz@Ý~ú^GVð*\€0„€ dÍÌ>=¸¹ !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ ä:=€¿c?¼¯c+þ7€ D !kföéÀÍ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D ïíÝ1N1EQ ÌB³A SL‘@@|S<ÍÛÀÕ@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀrìa]¿þ7/÷Ûð[.@ˆBÀ"€0„€ dŽ1ÖîÀÉ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ äØ=ź޾çeß๠€€‡³Þ>¾Í×ûï€ÿð²{p3Çk÷€Ÿp€gæ0„€ dŽ1ÖîÀÉ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBŽÝx>ëúùû¼ÜwÀ#rBÀ"€0„€ dŽ1ÖîÀÉ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„»Ào­ëçïórßÁ`@ˆBÀ"€9ÆX»G'€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀrìßµÞnßóu߀ÿä0„€ dŽ1ÖîÀÉ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„¼»­çÌIEND®B`‚screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/icon.png000066400000000000000000001622101412216332300253320ustar00rootroot00000000000000‰PNG  IHDR\r¨fbKGDÿÿÿ ½§“ pHYs.#.#x¥?vtIMEã5ïõR]tEXtCommentCreated with GIMPW IDATxÚì½i“ãH®-x8))—êêÛoæÚ˜Í›Ÿ1ÿÿߌ½í¾î®ÊÌèÌÀNŠÔ¹Tߊ¶êªŒŒ(Ò±Ðýþ_Ã7ø"”ïÖïåÍß±ïï%ÒŸÉO½^»û á²€@ïý¿!  Dg€Æ+i|®O0:ƒðÃôðY¼Æõ}\Hwÿxà}hñ:Dåêi½úËÜýQ€Êœ£÷eÝ=~íµÎOžËo÷Å?æmÓÂØ^w1ÿ£×±¾‰ãŸ›‘åþ‡pã_~éÊ8mõgçñ¨l݉×èÿY?ß»oüßæK7œÂŸ_?Ï×wv²qÝTÒ”:ãÿ~‡I¡‹ˆJ+S2@êÿ`(ñÏü=ÿ-þ¦ÊŸŽÓÕE{ýÓÖ~ʯôs\B^8Z¤¿[‡ü-Œ?=è¤êñ€dvãº2 [¥èsjø:äv/xלèêµy£ôZ§¢üí3*ÐWFýŸ-ýÿ3x³,@2FÚügmüòm®‹Š×Ä͘íÊPhå Üðgã·øßú–Ó+n=-Êå?³ñ¿môÿ3Yÿ6N‰~–Øûc¯BVÑ©^J¾q™òʘŸ:âè!( ã§(RwíþßF…€º# ‹°í˜€‘¶¨K_á¯_ãò¾ÆpL€þsg$ÀþtODä›sïÀç‡>òýC¬­·O pOa˜š;èë} 'p ØÑ« …ñ¯A]+“{0ûÂUvqë·Ÿûª­ÏéA)?¹MPËÒ[åér°›ŠSiO7ÓßüêË›ik­÷ À¡„'¯HA(P[?Ý&í<š!ÙÓµ5ßýîÁ|ï¾e£N6¯ê?{)ð3düÍ ø«_ÀÝ?°±9…í÷ cß"úè$׿×EnýG®erß±Eø=kí×”?*Hßë†Ð¿Öü³ñs­Yxµ•VÞ.ZPlí`n¥ÒÚØ€Vÿ›V×Jð,`|„Šk7)¾9ëÀ@»ê̇†¡e Í ¼Y»N°„ÿ¾%9I~˜ñ¿þZûLß-øn.疑γþ»N¸aiq}xlèòj'°öÖÚzý[©¹ ¶gn¾G~^4í L»\“[)áÃax׎ÀÞ,9ãøÿuG`}OyU:¼±s]¼ÏíÓò]8ßmÿºŽ€´3Maøöiæ?Žx45Úžf“,@âÁªgôüa}ümüRoDWãÂkG°U}.ky{³²àúOÖÝWj§ÿz‡Èf&A¹[Ü>üÒe¼iªØxíø¿Œþˬ›Nl¯ìX¢0¯ZÜ4 æiHn޾Döölé¶øÞ h ©´?Á=të¡´ÿ~åͦÉ7£éíS"wÎæµÙ’/`­ÇåßͦD«!¡­X»¦ÛX7K~X×"\–!|÷A^ÿîÞõä'Œwß ­q nǘÀmó53wž»É+±Ÿ?3€WxʼñçÔjø×§‹eU“ê•zíü~½a•Ý(r3]´-²ÐÜ⻾]™ÊrŒVïyKVÞ\æèªb«±ßg¸[Í|ts(¨—/œßÀ€†ˆö01Ì¢NéÖYÀ¾ÃLïàϲà àwý¢ذ:²Xô¦{G`ý÷ékÐÿ[•òºfÕ…yéÝzV#ÆW‰ðÔJêôæØ°½/à~ä¿Æã+H÷êÎÜ¥A48w †ÜÆ©—iüƒNÀän†ò¯üeß üºÃV¾ÂðJ«‹©ðÍ zcüZ.7*#ÝÈHf×ÄO9’¾Owëî=gðÈßzݹU‰@­ÑË ÷p»¾ôÙµL‹à{ŒJ‡JtÙ‘õ%á=ÃçkgýšLâÏ àç{¹Û†ÿ=amÑú­£!mP„™”§'?ËýÁ¡ûéûôŸV‰ÔnJ]¬"P›:êôu‰´í­nQ³»û÷§êÐë,öm꣯HËl»E´åh]«ÕÃ.(µõw5‰_¥«WXþ3_ÀØÕðëÆŸ~…ÃêþnsáFlh½úG²i™ŸQ›š ø3@ä.”Ÿù¼² Ítë?Àw Ùo÷RnhpèÁÚ!¬bá?lÚqf7Ûˆ;ã¿ÛŸÑšRðvôÜ ®H6ëk°ÐåÕOÃpáó‚°sÏ X U9GýwÃðý5«=è6=àVöîo—ƒ:ç¬v[jë™ø– L¯›vÝY°çà[?p»£±bì¿âõûïqH‘?nœd¼Â–ŽaΞØwâë8äk'°÷3•×nLÕßµ÷.@¨)j©k•òʨùáû¹ÒúóëkòÇF;ÿÑ«îÈ›]5o~îæ+ñ+jóEßXoVØ[¦¹NÜouëù ¾ÖËt÷ÐÏÆŽMHí÷çŸ$°g+ǰ_]G[û•ß6~»q'üºÇp0F·`ظƒ{|Þp¦;Þ:íݧ?¾“IÛ‡p«WÚGÙôpä¶@TgÑK¼­£À•çèÿ ô×äê5©£çnEû[Ÿ‡Ÿtƒûï5ùnÙc· ¥³œ¹ÇϨö;{²`U/Àó¾Xë9¸ÁS[”€¾v³­ú ñW»öʱ~6äÑ{^ÞÈøo9ÌY `+Õ–ñX®n×ÞYP6N ¦ø[N˜Ç‚yãá<›}l)ñ>ØK茟šÂ­òƒíþ#¹K¡óÝ÷´EªíCBX8޵ ¬n”1óB•m‡}·¶…w,Ù”óðÕÖlÆ×1—óø×fôÇséöÃߦϾN yP–Åñ)wœÀý´ÎçÌ Cùã™_hò"ÞɆ£ãnØ¥Ï18Fm÷Jtßø©¯ëŸÇ?ÌF] ·ÏöŒ¿Ç&æLl¯kÑOOÆ?$0£»ø!5 ‹òHwÁÓëk[ž¦·ÝAï|?ýáœÀÝàîÖŽÉ›çù¯g½ËêØJ+.Ö·oéî­Ù>€p^]ß²ƒÁ­Vu} ¿®Ñ9Ró²ÛÆŠÿÞËê«qÅ·ì‰4žÇH«(ª»†¿5,5ÖŸOš!ÏàáõBÓ*wåÀâo‹õç.TºŽì¼ Ëb…!\;†¯+ ñÔ9Êø,Ûú à6 ¶žA¿ßÀyðv‡XgÿÊ´—æâ€ºÀ£ÊZÝ~‡×yëÝë;ŽQ³æøž]¥û´0ŠeµÚ×ìŠýp'Q·Î€ì"0i,…ʵ¡¦[ÇUOp©É Wõÿü©úgÝ»ïÙ¢:Œ•XŸØqTý•ÝǪ¾¦ 8ã_õ+½¥ñoWÀÏGÝÍßlNÀ\ÙˆqC<ä)~fzê½íæÈ-7rKýí!þtŒŸ/R—ÂjkMñÕ­WT^\­çeÃö¿ïéôüy-^ÁvkäÍÏÜv*L2ÑVQÄ+c[ß‘#XcÔJ¬Eyìý¾ºZÞuô´SUUºsF{lèq'ð¬ñçïRP TýX`Ò=2Y=7V½y;ä)W±ŇMS% qà¶dÌôiãŸKŸ9òûñ§NÀ|Ör}‰¶[°Ë8–ÚOµÁ….¦+íè{)´Dÿgõ¢¥Ùo9 GáÿÞï1yGrtëÞ-™3X`6Bp -p¯§0Ïàž]ùJ}ùJä´ÜìýkK‡=êìxuCyÖ–íÛÓŒÿÖ ×°ˆ¼ÚÙô‰õºÆ¦UÄr'pÞžƒ†¸[hQcštEG}G†áØ]e[ð±Òe€Ù óº±=c¤n'B=ôÖ=»2A ãgÌT§ê<7¶à3©5gd†_¹ÔÈANÒ‰Rǎ΀€‘ýÓÚŠÕW;´t³߃øך‘ØíýgV J„w+ƒègìÏ€ $xäeaŒr³þ6“Y¼ -{ÎstÍðÏ÷ù¾¹›ú"â÷5<õ7 ÛœVãu½Ã=ÄÕ ã˜¡€[sè ,VŽ˜7®Y"sbûË<`è¿ïB–Íв@¼vâ=Þ ØVS.œƒuVðìÊ®ô‡Ê,’á´ µ?ì‡ã|•KòÃfZãå´¡ü:çÏ4íöâí^GŒ>?•îÏ«´†S‹úi¿uÇ#Ѻj5¼áÆ € Œ³a˜®?´ÿö>¶,ô©rEÊu‰ÕˆÛsýKÃèÊ-s'F› ½YaG ò˜Ê-œáµ%yûÚj²* –0·C²A´cåìöŠ›ÙЗ%‚v¿ßµƒÑŒ<£Â›¾l|ôë픓G£ê¹+]É¥[Wt^E¶»aæ:Í÷‡2m,žÜÿxe7ý&S¨m¨! é¹¹vÂ!ZfÜõí鿣O4ÿ̯q×þ·¸P‚‚cèec€xªýš0#ovÑXV¿[Óœó {já(ÅÜ€øšsA”ã9o÷!{·b–âMtTKŒªbàBFÂàÅ%^§Û d|Ó­ßÊ7m œÝƪ£D.ò¬§2ß0zùÃé&Ú"°šÀhŠ›vbbËšüe•hn¥b¼Š]Ó®üÚèÛŸMBïq¥Ÿ'­ðR`ˆa“5m›ÚL8‹ŠŸ6¯`oÓûבlÀŒø=rZgÚRL kíQ|甙ﳴ{h 7ÐnA]4ÒïXæ×ÁÜ>âY[Dh€(ïÆý9-—î\,#hIÍJ×µI ò,Ç0Àð ÿ1;/¢ÕÁb¡Ÿ¦ö‰iÁuîß¶`PÈœëîÀíþàºö7ß«¸í”G^Þ¨ =ÙÆÃ6遼&Ìpµ ® ›*. :èuO·:Îå àïÑ’cŽ†Ô²–9šÝÙš6 Š¡ÛÔÊíЮ÷÷••ñ·ßŽP3B1€ñ ŒdŒL„G)À‘׎cÝY ƒšÅ3R,²3m¸~]4R¯±Iyg1I5/hPd| À,ÝÈñê} †­ILµû1F»*: Pò!Qȳ ¢¼ËJ|.÷[KÈ×O0 ®#[”•O9;øA/0û&K®Ê²N•ºôÝFT†“Ñ¥Mç-wÏëUÝM»È±Do~Ióm¢“&WYoÄÞ~âŒrÞ)ŒÁ%·,h¢1s×O>Ü8D}ƒ›àX™”E¶:’ºiã@‚Á<é×fšþó @­"éÔ¢+5ªp® TÿMÚÍ?ô$ Û¬õ—‡xy±\Å9Z K­yÙ^hÈ n|ÿ·¬DêŒ?Ž<@0†³K!@Á#ˆŽ0{ñ©Á*ÒRoÚŒ5uèñšy¹¯Îp£“ð=K€¯ÏR²ÿÅ¥©#ÔöWØùú±Ö" Ô„µæ“ÍAs4ÏŸ¨"zQà ¼Ëâµso¬|uµžžÏõ.-*ü0(È2@ÔTûçCÑÛ_:7™·ë6\/%•Žo@mšÑ)Ìc0h:JåDÚˆ„˜Þúދ܈… „.‘g†AÚ|¯,šz Ê0³]&çmã_o=ê?íNÐZƒÐÕ!˜lvF®[Žß3 è»1Ç8Ë÷yIÍÝþ\?¶˜æß£KçYKŸñ¶kµÖky¯¥†\Šì£´·nZÔ¨}'Öʼz•žYÇN£ŠÜÒ—Åï,÷Û’HV ¶Ü ÕI] ê4Ðj]nðÖ¡ ¤`«Ù«Uâ=„צ Œ#*Q ”öŒd§)À<#â¥Ýc^ýñ¦º.ÌfõÁ帯™BÔFF0@ö !0˜9º% ç|ЯQ¶p”)hÑ3ÆA_)u¾'Áþ@æzÕ•Zo^½Æwî,@ZdNû—H$‹E:ø àÂSÐDk‹(o,ìX¶úf/¸t×AOÑäŬƒEŠå„-?œ-ëfß %?L³#°ú-†Sìðe£Ýu œõŸOÁØÛžàíîÑpUÆô¯_˜µs-36ÒøµZ£û!œ]ˆ÷ò‡èvȬPË#0¡›ÈÆ  —«ba&qç`xÆŒ1O2x9@”;@p„ÐØŒ’„!Ô·*sƒ˜=›ë[w>éÆ Gí篬ž÷ºD¼Ÿ\76ëïqÌf<ãJlù§Eé‚ŸÚ $mzñLçý.Ñò›"j«ÉèÎ*®%­˜o” eÕ{_»øÜ:¤Ñpì“Ïã}s´™4€(Úhñ ñ>†L•n¾î6#wõ-&T¡ lŠDNþ´Ec•lÓb´MËk¤{ ™¬@inúY' Fô¹ÙKÀ–~gÞEìÌCDò]½ÀX“§ ú¤5A’ø˜gÁ¦,pH  êUŒ Å2`µ:”;iô0~ãpx²pá·ÏÀ#ƒ^ë™Ò9½'¾eüŒ?úW2úmŽœ°¨‡û¹é~µuƳûëÝr³a•U’=ƒ~Œƒtˆþ+:°f@¿&ÌÑ`{S±uÍ®Í=r-†¥ eÆ÷u·¬©Bk' ‘Í”j ¬ 8`´øäÞ‚ÊÁŒ+Ý€P8 ;4D4]•3ñɺ ÒUïk=¯è¨< _Æ2ETïJZuFšöÍc¾$îÂå`:á4Œy€1c€@MP`>£d÷B¬u@è¦/Ýxs5̳zNÏ7Þd7Øê;¬ßÚ¯óµë×~ ð˜ÔßÛ­ k„õy`c½Îk/{¨ê¿ŸÑS‰ý(˜'².ËMz§ÆÉ¥MF!­ppk%‡m¿nê Öøñ—Šý`Ôz ±Unÿ¾hxnö¹õåÆñcÊ¡ C€`XHÕ÷ªe—… ¸v†¼äFôŇi b4׿îÏÕ½£L³C3J Ø2F ’@FAŒÁ…ñ¹(˜þ¼<8¹ µw ú¼â%\?ÓÙHm3Ó||Ü[®êÿ­¨N7Ÿw!ïzV¾÷Tà={×ú»óÌí´ø´³ÖœÞAøoÿÔ?°Å×Õi¾DýÏÝ‡áø»îð.V]ÝÒÍ0Y׿· qKã'Ù– Hé—àë¯E6F¢¹µ¦f(ã‚1øüA[!sA jèêúiu¯G>xç­Zòö™ˆ–CíO¶T ²ÝcLGMÓ.ˆ`6-³†9xg‚k»£='@ÈÙ#0Ž$9^ÀÂÒE“>!wO6à®4ðŒUGæVYÖë¿FóáqÃß3þ?ÞF¢D8£àË’cEÄ>ß}•ñϨz¹B™·oú |f‚óâ æA…xífü÷rì:'«Ž‚¬6%À1¶oüëÇM(˜ñ‚±ÛÓ}rbˆ}áÔ×e¬Ò•Ó-Vgû©Õç%–ˆJ7‚ë5wÕ(õ/Q~¨·mã8ÓÒœç{TK´rÏfØ ýRO¯Ï±ì¨ÐR¼Ë*ÅœD<+'QF1 ©ïH85ZQ,­T‚t‘{ÍçËî¢üÛŒ ¼‘ƒà;YÅ# H~©>+ϲÚíUæyþÇŒ¾ÇÁ·Úºj•øÙÕ…’ []4þñÒ`:.¹2Εèâ붦ˆ4åáÇOPœ¡!H Åç†D •Ä(ÆD†lì륾¬«³/0š§`ÁAªC`SœËÙWmÃ)ÂV×o“‚ÌVwƒVÝ–H÷Í”ÀHШ¾u÷3·!Qûo¡XvWbŒ„‘g®šºfÓM·Ú³£Xb#´Å@¬ÀÙ'HIâ}•ZïA¯îÃÞ’°{ ÈüŠŒuÍ \‡¦½×ý™€Ô¸1·>5Ub΄~Øê&ØÅ|üãÑŸVþwÏ…ÈîïŸ*nOnÝ<°Uå†4þ™b9ÇโbpG¨·”€JÓ¤ÑXK¢úßMçÕ–æ›eÌÚ?˜Ià 8"­†‘Ó©£ßN^ݽ&:4'cÀ°¿IŠ6wF0ýáYÀÒàk9Pm+Ý7|iرí²if¼iz<§Øvëoký·`^ÃÕ#ÁÔEŠ{‰ÚEk’OÌU#aê¸XÀ‹»tê3¢hä…Àg¯Ü“(gCo wZŽ;P¤ºJ‚Df‰ë/{¨ A1pÆH&dH~VA‰ù¿â( õ§¨, Ž6Gy±›=u.ñ‰”^»,ö>–p}]ºÊ‚^\ Ýþ{ÀŸ>Ùg’¢Ü5ü­¶ º›þÁ>“°=^ÝÙêêO0œ‘bÜg>*óž€ÔP³õÚ¦võà1+„Aÿ{ nBBÈ+¿íãµ®{4ƒµ ´q^&BŽ1ß%áG›K«uø–ÓlʃÔM@’L0uIo&?Ä…§TÓ2¶`$&’yq*°fWA:F>#M”âNL8c´„¬Rƒp•r¥`˜‚³±iõîSµkد IyDäL7wóÚÿ6ù£‹õRWk¸÷0­‡°ˆS·º«f{Q¿7|Ûð¾U€R®~žÆ`ïÓ6" Бè²ãþ|\þÌ+ßBÓ raòƒgÜ8Ûœ¾ë,ˆ€cw'„ϘH!b°ÊÔ&ò‘aš·ÒZwTk7Dݪ¹!¸À AȉôëåÞÚí©ÓMD‚»Ã²SIžÂ–î5ÆÕaØ4~ÎäNÂL¡dËH4 p0oçcnQæP¨†ÎŸ§Þæ>4oAÓÒ#*®FC;jÆý(M¸èü܈8’@£&¡ø‚/ ~çä,?›€%Á¥È¢“¨áO`»@(ƒrFÎK,Ìgþ°”—ÁÀnbÿî¨0o—í xm|݃;úÕ¾jÖÀ¬Òá›7`£"'àÜ7ãzŸüB¾+N[Ú5<œ´÷&=‹zyé’0oþq3J .—>1d!†­F|iÁZâîÇF) Æ!ÏaxO¿á§`›×+0q[9öDŽ7°³ /ƒÍÆGÖ Fb†ŽtÙ\Ùȶf&ha^‹O —‚;a`Ñàצ%öwttâî𫱋PÂà0fèÅpàx€Â&¡ ¾ø2ù|!àSÙ†c\ž¾lŒ¥?V̵Ÿi‚ë•bü˜3Ù¼‡[Nà{îx#°ˆ°;À-f¬Ë]r°‚‘úš¶´)‹pž¦Pêös ç¥ÈHUŸçöš(¦î;zó˜ðf¹áv¶ä•ûxê\Ф;ž•¡È`ßAd †¼ã lC8šWJRW]“WèÌ@"ŽüÈ üŽJÖ}¬ US_¦aŠ-î¼-ä=­c †ô&]¼ËÀ‚‚1Íú`ú¯Ê/˜—¨X$Vþ À€Ä’½¸žhqûÀrbÙk5 ¦fÝRýä\côª†Ë(^ntncæ[aÉBÂL7É\º™Ñ~¿y€{ÛŒn¶Ë•3” ?vg-€”'à]yÁ¥,³‘÷>[$:B?…Ñ{ýœñ[,]½°1˜Ú¯<»š”ÐMg¹>Ÿ¼*3¼’÷oŘ—¨|G7 ÿºXEÿýÕÑ1XbÙî¨õûò®RòµË¸ö±}ª/í`h÷š³âîˆ*Ã=¿Ï¥CèKË$¶#}gz&jèÛëŽ\Þb¾RöÇb_ŽQ ˜ˆñÁ.ÈœðÎ;pf®u0f­,MLÞHÎ ¾ XUÎa@5Þx |Ýïrˆ×I=¸±ëj(DÆ1ôú’Gl¢(¬Rh¼Z91MøË$‘‘¿lWò¢Qÿ3À:Ÿ;/dÊ«`´ Î6áãF]ŸW‹mkJl§ûŒë­H×Ó•îêÎJî|–·u[Î4Ý7þòô…›Nà‚#¾XŤOEï+Ê+€m¹µ‡®¨Åþ;ÇpŒ!2‚/Èwð ^eÎוBYô·}ZUˆ—041E±3 ï Á‹WrUV©fŠ_‚Á$¶'¨·MGÏŒTJ­m3‹C¿u m©‚º.ƒ%…Pyèßi K“™Ýè `_3"D(8ŒÀ|8e È(ùÊ_6º#Îøaʈ £¾lÞAä«#hæ ʱ,ÖsÅžÌç’ôÞ«o剳pеŒ³\;ŠÌ´Ýqà7úÚëï{ \šùHÔÐÃÕm÷Zyëoþ¡¡ñUApjزÄßL`œ0á †ö~º‘qôZ}k@pkç+_å0¶ ŸVWöÉ•÷ÝRA¶ "ÃÐ9Â`J,®ƒ¢WFæ¦TG^h Š)3ˆú@´‰á4¯Ü  ÏÆœÆZ6+„BhÝ" óÎÞòdó¼ˆÙbp.püxÆá|Æ»#0aÊËÜëŒ#”¾ørZU¯ýïd[I`+1sõg"í´×Π[Ðb{\‚ågåØ3¸#­>ÃO44;€SÿjätçïaÒÚ;#‚5‰m¶_ #u÷›4u·lr#ãè PÚŽi˜ƒ×z xÁ1pÆ!fò÷üž,pÞ‰-º‘þo7û€&:aÂÁ À c‡…. ûóFBÍ•ZË­îD¡µFsñR/0³ü¶z€6QSòœ›þ‚ÁêPa¬øªƒ¸ÌpGÁŒ‘;¦„ßå=†ðå÷ù½/õ†ç­œÙ€no¡öÚ )8¢Üɉq GV5$Ý· Ÿ᪻ÎNjiü?žt GIÏÿ#_–<±Ò¦«ÕŒ¸àKðè\oÝ£(P oX•7‚g€†åO0˜_ÑÔzÍSKÕú÷Ü3~yڣ⦃ð÷þŸ¥êF®÷+Ztâsò ÂášúŸù­ÂB¾±‰)ÃJ=àBŠlv'’Î8î•ÏæWNe¨``8)±µtK`± ȯ ðë;#p0|øü.ïñáýüvQ`rìCëý0Ãy£_ÏàX¢ÏÅ4ÃõŽ1C’Ûfhÿ³-Z¢Ûžr»ý×õlšº”­zV[|ÕÌêÛuòãçõ–ÖÉ=ãgÌ)>‘¹Ž‘ ŒíÆHÛiÏVp‚âÿý£¡Í-Óþagqqã§uðe£³ ‹z#ŠÜúÖºðס`- ¡þ :Ewb°ß ø‰cÂ_;W#%Ÿ‰ÏðK¤cÓ,"3'êäŒbæKIí⥘z«Ti¹¨dè¦ ­NŸá¯³b†L3ï@hËV,fÿÝøÃðò½à·ić üSÞá Y€ó¥ÀÆ3´4ˆy¦¶}XŸ, (`ajkÍ$ ¿4²ÎÜZìie†í}“VÜ•µpj/*ð%¶çîžý„¢ o%rÔ; @¦‚ÔœÀ2 ðŸÿcBµ ¨Û¹ëL›àâX{T0 /ø„cèsˆ(Så¹øªì’Ú=àU«oßðŸßkѲ£èªÕò€˜Ãø……Ê‚¢ ¥º2°dó]È>,4¡Àl Ô¾K¢­o/À4t­íb ìu<‘‚Ì[¶e0”i •—浉oF`Æ»Œãè R—á#>~ü çßF|,^`ø‡œ ŠÕ S›iÅTù µ^m7ÞNý9Œ~p”É‚‡JSçªL–+=R#µ'<¶¢Î‚oI›Ö£áJJç^SÎ|{Î@êM^¶ÿW‚èœÀ©Ë¤“bcªmÏÝÝ—ñ¦&Øáæ. xC[8ÍqBeväæ §àZ—$Q $ŽÐ3Îp­ 8ƒƒs¬¹€£ðIP¼ÌÎcÚ/º&2B¶„b´’‚O1#îÖ³c,xÕŒ’îèY[ðéò\L³t—‘„æ S"ƒrW#3mG 2¿id(ŸÀ üå|<`T?ã „|1ègϦ&1ØðÉÁ1+•ÓKMRÜQé4nõëÝá Í ´Çñ™{G@q~lñÜ´3|[x³º¡*µ{Mm7QY9 -´1kø™“Œò3eòÕ§¥÷+,˜±€1 >ð‚‚#¤µïV¼=’ø;×+BF#™ÆC»x+iõ°º¼6øØaŠ™gãX2>pÖlA»´þÑôsíz]€ +Ý%ö‰ÚÀù˜PBf†)7ãwâÏÌ*°lŒàð{’kmÓ0A«_è´æ]sûϯñÊŒÈ0f,§ÉWµÜ]ÁB†Á|d*Ù€“Œã‘q¹|Ä{þò ãŸÁû”ñ?“‚ÈE #Á.®0-ÌhÙ_^K1Ž=ãËáp¿Gdc4]®pÜÉÊl.oæŽàà  Æù³5C"„¡S+ ]Ú úE·C8‹Ö©Lý4à±-âÏ—½˜ñÐqf†(ãsKÕ†«dêÜjo×Õ¯/Ç{‘¯ô´*öYÇ_êÖîóa‘m « 2¹rÞa¹o/ßýì¶9~Só˜)öV¾ø€"# ¿úÚl²Ô؉1&v! ŸG08ãNïuj¬Æ¶²êpH±ú2'ïø·qðbôà%}r3)yÛ8†£K—I>áã‡/°âYØç—ðé˜ðòÏŒ¬/¸è ² (z‚Ñ'¬+)³¡0E!gWPÛyÈ«Å,¾ÿ‘0ø¦fü¼ æ¢6†ærÍs›p Ôvß¡ÄÕ5|Šõ"ê¶öN p›ƒã÷ø¢[Ùt'ºàl‚ÔEñé €§ÞŒQG³M#µïgÀÏsÜ%'ï&«hJøû³·¾âQ\l ܤ'n·úJÔ“eú8M•»”WÍe«ïEÿ]/Kîl>3"OU)Ã÷à(LÄÈÑg×h+%çü÷âûݹ‘ÔL2¥„áÛ5?Á>¹Ãbw‰<÷e†A<§Xñ„䄦œB'Ú·øûÁS Aï“`ø+`'>j¨Œ‹q¾о ÅÙw0µë>ÎËGßùI2ø1â…0ˆÓq«Tœ8XÀ¼3¹ºh?7 l1ÒE¹õ¢ú­CÜ8™ ¶´€ª­Ó-0£%HHõ4ЂtVw[X·WrÑ‚§ç wo”üw$úr¬oÞLã_aôë×H‡O]ü›å¹kÀ¸”À–ÛNQÖÚž;BñH„kX@yËvš”Ü…ÖÀ?غë%r6aEôµ™RlËJ!Gñ ˆ'ÀFûHn¯\hF(‚yÙÇæ¡˜¹O@Kt¶"ÍK7ÅÀ+$HÄ01„͵ðÉ€/ï øÔxÀ˜š>©”@Àá$Ä%Åÿú pùÇÄ@*9O€eÑŸñR\ĤÔkµN¸´~– tjвYéV¸Ì*ÕÞša±±3~40±N4ÍNÀ¥ÖÌB7™¬ŽDuÎ…‘pºmИ’]‘‡:܉úÒ‘»iF©Ëá®w[Üqß* ˆGù¿ð 2ƒIKX¦M>[À# àxeŒóšg_Ü‘¢Mx ŒÞký: ‡úVµíÂÕÑTL¾ôtuSP°+Û,êIŽ[7W[iPy^ér]}š"È$ÆŠû¶.Ì cŒ¤0\È\ÊKr¨Ý@ÞzŒ·ºS.H¦øBvsе;jCã>03dd B81p0Å€Ñ "Ð{v£±bTU„’N8É ôWÁ;U¨Ô“(¥À…Èš‘áLƬ±AÒx^ ެ ‚ðèóö¹m©’†úûáN`;v}úÙ¡F8/Mi–ó¤õ‚èh™ö]…±A·>jm´*ÿmn'Ûj©n¿#Š;àÆLùÖ¾éºPù{LÔ($ÝÇœÀ#¡1Ìð¸{8/`s¥½füX/Z¯+ÈÉ)òœ(.•¥Kû‡Uø7ã´ %ÍÆ_F}Û p' ZÎäÀ"üâ%À:GÄ´Ûd`öãR¨JyûNá7¹p&3 Lt}¯¶ø hÓ†Œ‡wðo’²™glQÞ^áòÞ È°º” XÒòËï®M‘´Ž÷±Û°àó$AdŠ(Û蹎ã:IɳÔvRK±£<´jÆÇÀf:—á‚ÒÄ:¤­a·¶ûÐæ=å€LÃCyÙJ¼òÔ¸®q'#óœ_g™ ÌEHmgÖöò À6qncæ-þʧÖbGÞ$¤…Þà%öþ9Ù¤ÁÕMjóŒ±nì%‹Ô¾6‚Êø6ÆRñ>ª*Q̬Í=ʼÄDcã/TâaÏØ}S"oÖûÀ {Ö«ÚÉ„¥ÎøË‚]h¡ëÏ`*ó”ØpBÁgóxWÌëªà QWÍlëº *b¡„•\ζe"$Þÿu4 LHä |`Ã'«@ÅùJUÚͯdà_@§wPðŽ€b ª†âú…¼XÁd„ €b„I Eë£ObH ä!nx`´Þúb(3ÎtÂÈŽÂ0!dF#ÐÁUyÌŠÏ)¬à'2Ã,o(¾=È(Vœ{&àÔe`Xý4RkF:@èŒ>4]>Î%SüÞŠ¹z’ÍXvo&âàJ$W• #¾žóU4+†Ó’á$  +îDZѰ&eôZÏø¦Ž@ví.õÑ_:J4+¸àôöb†»åÀzjï@ìËöíP}Ø"‰“Dµ. èª&ãU4UκÕH¥cyUñiB"Æ€¶ú©¥J^é'dè’”¼á´tóö?ë;üx!r¢Æ¡3ع{5 x”}FØP¢åœjöAÀÍI¥1ÄÓá=þú¢ø. µÍªR!ȉñ^ùðÇ!ˆ.J¢îOÀ{>Žzm¾·…(#ø±sp¬ÆÃQ²/-ÉÒ’â—Ð(°6©8¯+dˆ0T0BáêJ´mqˆ„‘SVG@>b0üÉæ¥féÁÅI¡êxö†~"W¬é?Ó ita_s—¢I9tÒ ¥Â‰‹^¿¾Ë £ÔÕ< ¾¡¬¨làT£þ€à£[‰C<èâÍ™S·¯·¸É<-ö`ä—6õ?o¨uê…Ây%ëHè(š]>NÛmÁ¹6çùçºJ#â Eœµ90d»ëVL†÷«w›5êdW⨧ÀAìõú´°ï|äsÿ¢ÎÈ›¨v¨á  !EJÁFŒ||_Ï_ðÒ˜…G·D0§ÅïEðþø7üå øU¹Ä8ǰOJþß…ïü´µ jNPÒ «DÔ¤y©§ÅAÉö™E÷`$®ôdvö$v&`¹L‚ R:BôWˆ$ŒÎ›˜ X ( vžÅKcUyå.è>Z ÃÁ1êû^AhðE¯ø¦ßa±QÛ]_¡ßÈܵi¯)++"û·Þ'¸”¸I§ðACë‚Ø|•õ2ž;cwÙàcó°?«åÅ×è;L¿ÃH±:j¸VŠm–ƒ?¤Î@«B?÷Þ'êb®x3RnNÄ£ZW[“&o¢Ò£k%¤…Ž˜lÀÀ•IF sðq0EQ¯Ÿ©+˔ɇZ±Ä“Úá$ ɰ2¬˜Ž~¹œAå ðÏx&~}wñËxÉæfÂÁ7ƒAÒ EÅ_šïä‹ ˜ctÈà×7¬î"~ÍÅ“qcÃOÅš\T„âµÇäd)­¢Ü-d1ÏÞR:â ¿bHïQltz˜:©Œ´ÎqzÑ ÙÔ®)ïôI)½„"ßûì¸Cic µÈbG€^âøhÇÏ¢Vä•bw‘ؤw~Ça¡ÄAM˜ý¡ÄMr‰r` ƒ–Ý* £Ø’[¬º²QX/ cÞ¼[3” Š2®w¹9§›f×n©$7íº¥Çõ¶¢ƒNBS¬µ\þJäQÀô@1¶¨~™î¤o òþ= ¹¤ ûFýHŸÂ#ð¦>DÝà«l€ÆPOZS”DPŒ8èSQ£dÅûþ‰ññ—1Ž„ % ÂAüþ$ªò^¡Ÿ@>@U“ÙCTzÒ  -ÈF«Úƒ@s^оA,φa˱eiãÀ¶ªÕÉÛ”ÃÄ Áü¬ìS’(H8ãŒ3„\WªX­í5„N¬aH¶2A¿£ˆŽ¾öDÎ[0uÜÄW½ŸaxÂï0;FKoê.•–e*úÙÝÉ~Ì„`6“„:–™Û±vùޱeeEò©p~ö IDAT_‡Þ«Žˆ¦EÝOÔ¥× H0E2¹èd¶šm/½àŹS²5°9ï€ã $Rˆ½øg¶*!~†âà™é‰nµPîå8UÔ-A…” ð4 ²(fd» P†sçìØ³ëæs´ÿª6—Å~2 c„"[‚Šbˆ[õ û†‘ÞÙ$†Ñ€”£ŽCÈ|Õ^ž˜]”ÅŒƒ'É¥¿D 2L˜Š3/ð–ÞÈäÏ„‹.Snš‚j>Ãaf D`€¬¥‘ƒfGЕá‘ïÒÈ_`z’Åå׊ T`;w’©^FRœoêº*FÞúcr&Eâ,XÂTÔ÷3(@8ÀlŠªÿ˜>…Ø}5í—6C€…¨)·òS¢"iˈæ”Db ÓQ 5¿²R]®²€ÒEúÅo’“vŽDÞ¥§žàŒÆžrRˆEê«sô ý8õ=|½VÅ|©†g—øå¡ Øœ¯˜íÖ7â$ㇲ€‡oö”q¡ãYÀC˜d(’@öØš†ÆU“KŠ BZ}•b5Ôù9 E! v²€­Ì2¦Ø È^Ë’Ù_OPÜQÂq6÷W„¾™Ø"<&ž`Ba™§j«º£åØŽdõ¼©ÿÓ—u ‚Ò<”¦‹ÒŸÁ’ Ì ;Bùÿ@’Àc›”,lxaÀY‚!ºçõ©AÆŒ;Õá€!b²Ð3´!%Lùâ|K œšÎ‚Ù{ã¬äp&Õ\ªß2þòÕŒÛçÏä¢8ªfoQ‡•ÀdÀ¾ ÐúX¯4£¾<Ü÷ïLˆf6s¬¼ëKž5莭4Þ/¶FÎàæhqcÙ€N"²M ˜ÄÀ ¥Ë2,Æ…/Þ6Š6(Û„BLJPŒg¾ ì?o‡QBÕ7å4áb-†‘C0˼]:X1Ø ¦ ä`H™÷ñ.{*˜Ô“ñ©B&¯¯™“ I!±€ ã,À¥ ‘À# Ù•| RE² ÅGžò‚±_óg«¼W› Ã$ÕæÂ­:8fs‚@œ0ð¯`~ðàY›y ʤ1é;ˆ|rµ5†K±›g×Ä_gq”0~ º.‰k È Sù‡—F(† š¡Igô“Y¦Ví¿­ø¯o ‚üê D %¶ìÍy-§ð Q1–Ò”v¼/;>+ÞNhÞñë²%ô€A8ÆB¢Y#â¢7• ÿ.(™\ £'{š×ülIa$*0®‡h/7»@ˆQðÞ'ýØof¿+í8ÛV0aÅ$ˆúÜ;T g$hÑ&Õxî$hÞBQ" öÞõÒk‚Zò…‚ÈîœÜaJ¬ #åÙÙ0ª ‰Ï€Cš¼µ'e"í¯Ç§n«¥öáI©¸0Óò¡,…—e}{™<êWj°%¤ôK¤3õ}·$HiÄÁŽx‰r#É'w* (•ÅG+7-!Ñ€Ä.(âÜo­‚ Ï'­4y ÚÇ-¡^t["žú›ÖößÜpÙm1m,­ªLoAÆX=‚¾tñ„2½}³¥©kœÿÎßguq/y-ˆG èÅ'- 8€}ΠÖÅž ‡M'QˆÀ¬˜Ìéã%þ €ž=æ’¡šay‚©ëúÏ/Ö¹+@\Z›±ºŠ«Ÿâ+u€Ò€A @¿âÿŽU_Sαկ–Fb(¥ÐðצZ ƒxt€aðmÍBÒ¼£þùùàÂ/2 ÐKtu(ÈJ£i_3G´itÓø¿L˜¶ÖN`4Ã…mv©›ÕÔàÖÁ_£ÃF™R#;íWU“’J5afo+†(±­Âˆ®Þ›˜câ°fþgâ »I¤]bPí§Äfª§„€çÔRùûÌ£y$¸l” "ÕM¾ä ¸ÿêôßZ:hDà2o0*ˆ1P€—’Ýd»ñ J°#Æ_û‚¯b0c¯ñq¤Þ7k+’L`Ë(£`p\… |~›ÌuU¡æt›RÑþè¥gS”³dű«­¹®yfb*Y€]6ßZÌ•: ö-Æ5ý£äTë Ðô49xçÛ†áûB{Bc–°¶éˆ !³3EI@ÌÓ¡‘“¤†ôLz5}ÁK8ßsý8¸ý¦ö_ùnN`³“ÕÓigR5а6ÆÃï>\; ¦eéw N˜ œñß~3Â0Šz>ÔqÌhÉý±@JQÀÄÍ[q6švl#–Áµ­d^ç!ÕÁü¬mIöB•†‚ ¹û>âD ŸŠ •¹Fø¾jcÀUöÛf²µ§ìÙgly¾ìèXÏŒ2r~@íÎM:€‡PÁE £ï®YÝ.O:žAª;=ó:qYðAΞšg€‰Á2"‘_.$`ØÄ8ÀðB.PjÅQn²Ä†Ëtä³mhö>}Ìž̧#û󅤌b¶B $Žuð$ó!Uà˜„ÅNxù¬(9aÈ#2&/kéJò;f!bðGq`G3IF9`½eJ(øýSj[‚‰)èÙ ÂOwúýûÑ¿ŸâÛÞÁý† W¹y*5e%Ö°yyp¡~žÜB°ñ†Øê ¬dÀx1ƒhp°È`…´Ý.{ç§1ØS̨õ…!«0žñüRMù¢à=õ*Mûiê〉“ouYçÂ)†•lGnc¢h«¦j$Õ•¬¸FÚZº{¡6Å>,î]¡Šedï·à…0¡ðˆ”¦ÉWv'†fß xÅKy˜!§Î EŸ8¦ýÍ“·èøeÅbs“ò ,q4@åÆX޾¬›ÐJ ÍÍ—sQ¦ÓjL†‚Ï£ënX-þBÉ‘w—GuÄ^ŸWg;¢w8Ž8 5ÆËËæ†¡€ ¸ä4IQk2ä­/`µ}Ds˜1%Œ2`”$Šó íFu«rjVuz±QEïæŸ!ÿ|+G–Ñ:ˆDW¬¶J­Ý¾äËÍÆß5¼Œô(V1Ã{Ò¦T[÷³éŠUU<ÚÍQòëKÔu1d³$'6°¸Ê°˜ <ªZxržÓRH¤­DÅÓm¼vl‘~ê£=mw¼•8gÌþ-eK3|Ýi•ÚJK?)µ ò\tðZS}Ž1`2 dÂþðÉòNK "¼¿4À5ÊB鷸ż±cØbìòŒ“¾ ›àb3¡Äy)(Yñ¥(r1äœC0#Wã·Œ¾_1 ~ÎÇ¥X†P‚š7YHHtµŽ^Ç4ÄFÉ•1ô|œ_p Êw?UZßQ5$ÄÛfa³‚E ÌîÌ1R+0Š(}†E+po¿n8zhëñή™·viîÃZ;ÄÚíYiÆoA ͹¶Ò…Bo/Ò™r‡ì³¥g(9fšCØSÜÅ0˜6ãB´Ü®bh‹£iˆ™I˜ß²ˆTiÃê‘þb ºk5.ƒEÇaîsP’K0‡ !¤n8ªÆ•ËFmUÃ…2†p~C mK{Œ«SìZX>ú¢Ô†@ëbfDùpÀ˜Ï0$ü_—‚ÿt§¥E6òפw!·%=e[; E½‘¾ñŠªgŒ |Éï1]”œ€Dä^€Ìp.Àt..˜&ïÿ›¹ÐzAiÏt¯^•ýÜQ 8Ê!¡ÐÈYõ'i˜1LŒ“×µWéà2iÓõ›õœ­!OdÜø ’*8:Û¤@5ãœ3&›`ô£ÃãÀ[ vr+u°@köåm1·ÂÒ"_´íRgꩳN,¢]šÇ1éœî’‚:E «¯3+³çðÂ&)1 .@‡ ÇA+!ø0’Kb·]gÑ`§»yú~uS+›«â\!rÀRìÂólÃ1ÈYW@[{lÎ+£Gýû%¡½,Wå&*(Ýì Ó’¹[—åT_5ô 6¨˜„1Žg%üûYñß(oÒ‘«Ž”>â8 øõHAep½ÎNhŽàêuKÁt0ïï“ã(Z¬²![Æt1hHÁ+Öê…{$˜*ÄEpÀ°,,Å`5c<ŒHáýðeò#À£`,¥8¸§k×U[4¦~.À$´c|¸¦ô¥ „A\Ì ú;&|â÷µ_`øѽO÷g£Ÿ9ÄCn}èòº6û«J€.…Í ŒfÈA¡u@ †]Ë@põÝb/ n0/>-vùiDùPCáK8†Á ,Ä6êq˜i¤†¦À"Îÿᮓ`]Å`ž0ó,{5 G½Íж¼Fz+f ¢ë¾|ë]§oyq¤)áÔmÙ¼’õUŠªuð2EÁA ¦8¬bÁYå¼Ç?ðïç„ÿÖ­ÓjÍUþï‘q9ýþò×øõK’'Ê)­b~ÕOŽÆv uó ¦ ŒïQT`gë,dEaàsñ¨¢-ß©7 }bëR¥1»ÃN¬@Ee`d$|üÈFàË 4à`åÿ§îÝ–Iv$A`ædDÔ¥·gFdÿÿëVveNUféfö0sw’qËÊ93-}ª*3‚Aº;`€B¡ŠÆ€šcaàšÆ Nkˆ¯øæ0ª"B•´Z³.+ %HYNp»â¯Ë¤—àÄÐ÷xvÈî1“l'm~Ö_×ÅÿŠ* Ì;ëAK 0p8œÁw“ËBξ¸·®X|ÙY€Ý'ypnÕÖ9epˆÓt«á¹Ëé7?#Á„ÒRâþÖGn@'X‘SMË ÜQ4=a$·$Å5¥Eì±~à¡ô3¸'ƒÍ2ò‚ o)"êɃR]„¶Q ¨èXÂòª-Øœw hA1@Ÿþüü7þïŠuÍŠ…KìY°úŸxzY eÁŸrÂéÜ`VÁÞAæPèúo9éÙµÚûUù ‚Õ$ƒÜ3¸I$€W £Ï¡~B‚¯ïTüéÀ:…¿¿x :k[ ( Ö ÄŠKë¸à ¦[ î•{ îT¿Á=a; ]ÉîÿB³ï¸øk:+è®üç»jŸíÿÿñ—â³®–eŸa¡À*IêûÍ¡”Púã\Àü‚ÿþ{Źõº7WF—‚¥ÅùÜ5‘€B?«Và|ž×Ivõ¨»Ã/À÷¸v\í íÁ<0#b§Þ®Ÿn ¥?ceÌÉè£x‡,>¹?þV]`hp7po±´S¾ƒ4ƒŸßSiÉ`p/xj¯ø¾¦×„š^Ðð-8#XϽ ÚÍñÇáq,ÿí3åÎOœøý¼•n; Úªº9;o¼¶‘›Þä”KþÙò cùÃÓÿvT¨4’@Hœ§ð]0ÊhÝ-©­É(d‡›äŠ•Z7Ÿî-ê3³LÁºÁÐM®LiއdîŸÛ ʼÇ"1QzePÉSÄ"à¯8…®œn%å¦çrpš`EOL8á·ç'tÊÿgt­ø½TÔsÁsaüù{P¢þ+X–‹W¼®@å>IQޱ’Jë2œK¸,klÎU"¬£"r`íñè_WüGôωCQùŠk>+?QÁËR[P8ÕP€å%vDæ’ï \¾½¼¢_¦Wx¿¢ØB+”ü®¤%x  8HCÅÓÁÉÝñ €ü5hñ½¦Ó¯‰žùáLÞfImòW>=ÿÿdŸðyùðÇmAÙ‡3-Wl9ÕT²Ýˆpè4í|„ÿ/`¬—~ïSÎ$ “bž}ýªa®ÆW0Wˆ°EYgrE•S[PòŸ¾­ûVôßæEüóäÛ,¸ñ_hèœîƒÕ1݀Ȗ°§ä•«KªÙrXj[ÝZ'gÔó®ª'ÒŽ,€ˆ€'Á3X//‘äE b„µ´ÅóÛs…}§»‡Ë=ÊÿîQŠ›Çª¯ÏKF‰]¸Æ4`íŽÞ4¡W­?(',|ÅÕR¿ÿÁÉè“rVPä?ax†ð J-`ò¬P5 dçŽöC±È_X»Â=@­·DÀ™¡k8 ‹Hö…”Ôògޑ־ÍÙ=e091`qI¨ù•4³ø\ß­€LÚñÉcÌ>”J:øR(ÒR-2ÅSÄ­ž‚~Bâôø‰ éËW™P«€xZ‚èÅìS›N[˜’t-x–Ž¿– ¾H„$N¡,±Ú ‚=1~¸à ¡¥Ü…P4ÝCŸ ŪQeÅ2¡`AƒCJGé€Ú KŠ÷1Äç,òŸ8—gˆ¼àT¿ŸB³rý˜RAšãÇå5)»Bô §0òüžÝ]%eKy°¡çK,ÇÉ?Ü¿»äYGQ0e5%Â×ä*ÐøxM#Ñ÷p¢ŸóÚ è®áø¹* ç•ûÓÉoäØè ¶’ï¼W÷¯3°nÆQ3¨ÜLÊ?n1™(IX¢»÷»½QrŒ° =p J÷×êÙè»w"M[a€s+Ì‚«¹G;¸üÃHÄÆÅøýà':\úùˆ•”Îv$À½¨6]*Nt«<†W†ÉfæBXq†Yî;t/´0j é®’RÖrÊšÌR}î\›º‚æŽJÀËb…ðMSÀQX‹«eÆ8qndr(âˆ'—DÍq}m“X[| #yûoX  ]  !ÍyŒ HÑ ÎåÆ/XêžN¼Hp:†€)ˆ ¦º û@ƒ‘fy¯ýÎ@qmÛî¨îÕwd3…y¬æ=žÚt.r÷PÞaF”Ü6\¿ÖŸç_Xø›³×ñ–B^~|Û÷i™d§¿†Ÿî…rkkoÌôè No9uB#4\¢:@¼óP´Ýü[UG$DIŒ Ñ\›ÕøÞJ@ËÀוÀüƒª=oŸÉÓØÒ(J ™`&–t/s/¢ ó”žZûsà)á ”¥À±`/Z^-VCkЂ ™ë¹à…Ñ5·éˆñD>Á#ÂÅ(/%Éd0{v8J“׋ÖÓ•/»m*­±J€ý7@ Ä;ºÅ‰©¸‚0£ÊÆ/øíü;žkÅósKHƒƒr£3?‡u‡ºáÚúä/¸‡ÍÜ3WJ oÓò[rN?±{ïà<‘™€î‚Š×ôÀüD±Åª‡Ùóô£Á_eóuŒÉÛ˜ûÙ´Qð ¿-±e²œ ®„•J–½ôàÂZp `žòœÙ?5á*Á”‡ý{¾¸d@ÓÉvßÔÈͧ5Ú6; J*Ð(Ì…Š§ÐH*a°—T¡áœ3K ±ä¹gÎà²À©F;!±á˜ôüä1Œë–'§Çö¤©ÄˆŒ ÌDe›ì?P§ájxñ®1s‚¹£«Ã{¶€ÄÀP'J µØÏ_Ä`´ ¹ƒÈ‚—ÁQU~ÁRO5} RlÚwRŒˆ‰ ¤Ñ šï\y†)HŽõ^xÂ&ª3µð,„é &M³R¤³R¶¡¾ó9ÒpÅ!Tx6ætñ#ÒïcmûÿÏ}=˜|v‚ø( |º~OËïÈPÇ$`)Ä} êM2аéèsU}'µ´7 %çÐ|sG‡£¸áN.(ó¬„9Ø`Ù¤ºS’lôÿKþÙ9V‘,EBxó¸»È¼ñð=“Ìà,»¼¤ÜV<è ˜¢$gEÂÑÆK°öÕÌáÐ#JELx©.›Ç’™_ƒ‡/­‚Ï` &|ciH­`s—ÐÜOcv2(°´õÐâ—’Ó c4-Pe¬ÍðíÒx•@سEÛ' „=8wœ6O&/(å„§º€ä÷¤K¤\(Öt…Gòv0wÀÐÌ!f:V³‰•ª žå¯ÉHD.™\Ñ-‚Ÿ,‘¸‡ÈˆÅRSsšVåC«¹àdžV³¶ì?1ªÃ„õèÓ°Þ?«>%m¯»6`°¿žk,Áóa 6=ó#ÆöÎ+PªÁña‹y? ˜j2yk=NÜ©¢É;Ñ&5Ö5§ çÔÌC(RyüQd °S(¦TñÙñìÆQ˜ P~}Dz†”u³@IÀIB¦ã‘ g^#ÎauDQ ìõ÷” $GŒF¹å8”l«†–Qx(;°ZA;hÑo‘(R:,*0G7Æ K‹ §˜ ¸ ºt–£)â$æTô¥žBß\ô†â3!®’c^J9£ÊTÏSDZŒþ6 ‚{€€ÖÑIÁì ¯@kŽ Jz²*)FŸL s\Ñmð¢¸®Ž Ò*.Ÿ÷êŠWŠkLŸÆþ©q]Ë$€]ïo³÷ǹÿ?‹|. ¼I¢7˜÷¨–¾CPàwh½Û¯÷Gدð$¼ÕßÕ´xŽ*@a¿¡ì<çúcÎÏ[(û¸o~·Ç?pÙ+¥oÉ(ë‚3ÅÊQ)ø+Š¿ Ùxˆ øC#‘ ¨($($p:aášãÄ8Å-û|Ï3äD„ç—cJŒÆÎǨŒ‹àçŠR+ÔJ´AšNanÑTS¯.×^»‡^ãhs†Ùþ:é°öfŠÓÌû[¢@磿¶!‡&èD£°—+Y—èÆˆ§ñ$„Þb-',Ë3N§hÉ(‘~pzI:K´]‹xøª¨‚Mcì^ ø IDAT1G!MŸ‚ɽè^\qL:œzþvËÀ ÝÿÅ[ŸÅ x—>»)XÞñÔ¹Ï?ïœþ÷ØÀÑoõà±J|~ð›¢×¬ÇD¼&A÷Tö}@Þ7J9±w P-±‚Ã>ùá§±Tã2™U…˜BkXP1 Ü—]8ôü¾%¤!6Éx‚ðâ(û£¤§,é÷Ògžh?¥J˜qšÊÂé‹È?"ÃÜ"úzÛ°œÓЮsÄÚ$*®¸$ÝØt)W¸ŸÀª¡@ÝÐ×í!°Á ä˜@ŒæGC8ñ‚ç üp‡öèE`;ÁHpAdÔúŒz×övÏ"“cC¨ºéªAè†Z Ý‚Ò[BÔ}qpÊ/Y‹¯(dPµ ¨¹âw¾—P.z}_¤äZ|쎶4Íà§–ÌÀkl®Þ&}ªŒÿçUÀ£¸´À[ÀÝ>líðFug"ò–‰¼‹jŽ"j¯¡óè¢ðÝ+ rOe‰‘ìf\¸O ‘ h;Qœç˜‡L‚ƒ À4\w)6sÈ Þà¼@Tah8å'í\};µÇXЧ߬Àùç +KT"ÓH2ýbÒ-˜rþÌı'Œf'œ(^k‘ècW/J訨.À‡e¢Y ù¨z W"¸È…ÃNS-V(Dÿ„ÞÃ3!‚=å½løû…³<Å8•— ¡]G«Èp,8UÕÜz:ùÔ+Ôˆ‚rlÝ¿þõviÿ+’Àƒm–¡Y¢7åµÒýY®i„;a“{iH"Ÿ”2ºû bcÞwêºÑ×w¢DøiªšØMÕ1na¨…ûОàéí¾û¤Ù5ØÐßóÐëñÝ”<ºF„ NVŽ âêÛŽdp,Ã|b¬+§CžÜõ2lÐ$fúÄ ‘IP*”~……ÁÏÑ^t C‹ã†ã HÅD¹q¥˜tõ ;™D¿ì¡„lɲ¯%¤¬ŒÐZP:lϤ¤@È ¡ÿçæh CÀˆ|ÁR8|ºƒMcÍ@å¨É,§öHbAÈ|ø÷T&K­÷+í¸ ìÍ{I€’Sàt«Ø2`Na’‚òfç0øMKr•²:ߨ £d>äÖ âñ©£ÏdifP˜¼,’§8t)hRàZà^B­ÖS&,ûÿve”bi:d´%;O½\­¨åºµ ¾%^2M©¬žF¡;WA°.Mp]“n÷#xÿ¹VK%—Ç‚§ºÍɼH&Âãt‡6ñÄÙ©y‚ˆKNn®i{D>”}ÒÝ8EgA &ÃBг¬ðnhœŽDù9$5nÏbøÞ2uš¡¹åÒï0q ËÓ‘ãÏ6¡:àVþ5UÀ{¯ÅŸL·‰©¼Ý§ó þíÔç]çpdò Wð›I`?³ÜNùÃùKÞÒrºæmàyvDNÐÍ]·8a“ÐáÛ– íôÌzNU4¬¯+Ô¬+„;ˆ×4¿Œvço]à—ZD!ª™M%—”‚kí˜ Ñi~ÊÁ_¤d ·Ãmó Ù}aÇ ëû¼[ßåP4æÑ6ø‡ b†Ê-†Ði[dT3ÂØñ¦eîèdX3øÿÙÀ?Ìö!î¤þö´ûw28[ïr;û?¾9ú ø÷I`ûºÂðœQ¯'Né÷]…ô&åæ2 Ppj¾“T,OÉŽò’bû±Ù±^¡¹MÚ§@“M„„ÐÁα^«Qs†š m«»yúoÞñ²Ñ­\Ñ)m·s¿Þ¹„½• ž<Öpc‘€Î(ì`ËåœÓ”CËϲfIj¼;]oæÔ– _€s¹vüè½7pûÛu§@-@-§3ÜÓ±ˆ=⑵$¹{ÄéÄD ÜêÂhݦ õ°P“ý“éQ W(óP=më,Ù~ã{cWÀÁ¤X¼C<¦7”=“£yEAÇêœæ2¶±9“ңïÌ-…ëcîo_5¿ ½aû«±€Ÿ¬|öìv ½MaxKÉ-h=OXiÅ’ IòïÞ:Ü'½Y*~HÝUº·8¿ý¸æ~7ZRSßn}¢´uáìßT’rlæIuÌ¢ ŠlZO8ݤֽљO^‚1yÈr.Ñšƒ ð kôNÐT¨x”µf›¡¨{òøÏð@Á@qBçÜIpßíRåHšnÀ¿\p}½â„¿Â«áæy ]þ¥p(†=££F5_²`‚›c)[’ñt~ 1˜pÜ*âÈ4wšË)›†ëð}°™dTTÈñŸv˜zP“;r XuûŠî>GšðJŽ«§0(Y€k€Ôó^ÿìÄÿf0àŽsêoYèÿ÷gÄ~ß’ìèÈuå°ßØ'GÍíïu2ÉÚ]ÀŸÄÌ ’Vd ™LÃ훂›ïÔ@¶sûÇÓ@šò£®h4øó8¸ñ㨜‚vzhF˜`¶Uš%̵…釲£6€«åVd"àùð[F,I,…Ó®ã$Û®”[õ‘¨=´ʵáb'ü…ošÂ™æwÉ÷â”~θ…pè\ºÚ]‚ '훈 Ë„n6ØgÒÚ’0‡‹ Ù¸mŽÎd¡#b[2eÏgEƒël®èæð×. \{Ø„¡=`wŸ§ÿ&éMQ{—ê»éKÙ;'6OF¤hK} û7WåþŒ*@6+Ÿþý÷½$ 7\v—»Òý˜€ýBÐqR°Þ$쾿ÝTQë²ß?¨ûÊ`¬¨/£>Ohf‡YÉ)b@ÛzäN&šB˜±y Kf›e¿?@a=éªá8¤9yÀD¿”’£?³ð6DsPQèJàEѺ%e9NÅB†µ9têÛm¤¢Ú!¸®ŒÓ (™\<ñ…¤UÀ:€Uq튋Fàw÷{¶ùÇ ùàÄ×ìÃg“§Å×S©‡\b/?4Þ®86‚ï£åšqßÝï þX:9)¸„®ÚCÄ=G{ÝнZ` Ýâ‰j:Öy¢ßwW(õýù›s³[¼ÿ÷r=ýóÎß?Y-‘lž§/¿°¢äim»^~3îä¨lo£á³ã=ð6™~·UÀÖΔ»„Ðý„+·<1hÓ<4™Bœ•œk®âòöØ'@ ð † §«·„ÿ¶•Ú„ÇâZÞyqNÕžÞtIõŸ±âì ¾‚Ú Z ÞT;lÝÕNü–d„¨±Á¼£J…”‚ë5T†9? ÌC#°¯èÐtõ7$ãR€e`g$D+`ç”òN}}:öÇàâå7It_7!m?Žc#¨'Þ¼u‰'ŠÍÌŠ×Ýφ’S þÔîßÍàݱš‚ÙÑÝÀÝÐ[rJêY+ «)¾‘'òŸäê ï©ñg *ÌíüÿÚ;‚`ØÛy³qÒO$€‡Ä>7¶Â ãŠþnÿN°C|+õí L»D§½¦ŠðçæB`¨qJîÚ£z÷‘ð³£ceÅâ P‰ÏJ2•5ÕütwqÅÓ¯6Ìú2 áÎæ MÙ©¾óºE/˜„––`<­Á°k¥×üÌWx\`{-ÅBhš\uØü¥!–Áh=®ü sÁÒ¨c„*6~¾¿®¸®ßЕ¦Ñ磓ƒS%Cóôe2˜HªÂâh0Aj<=¬?tžŠcô?’@”ü¾i>Ïi§áTÓ$ ^/˜6/ÃORÄ ëºâÒ:®®ðÁø$½8º®%äÍ P7üPÃû‚b¥N타z+Øïÿ|4v ¬ýûG€PÞê Æ[*»GIa¾Î;pO±¤‰H;h0ütŒ*à6,ñ:tÏ—]žK‘FÏÝ}ò,ByHÇSÚy[TÚ*‰š}r\#%XØ‹/ˆ[A¡¹hÆYNÒ~º@“/æù;æÊëX hvöØäÁ·Fެ&=gʺ*ˆtÒÀ˺2´Ç|Û•+ãºU¬\£šÆPºá& ô]"X9w ï.Zn'Íy|½üVpZíªb0ZOQnò9"…O5Çüg…À¨°ÕQD@ÖB‰í׆Þ;®«áÛj8ùÕd¸¶˜ ˜… ¬ÇÆ£{vû=”©í¶ýFËhYºI› Ãþä@OêÏVòÁñø©À¿5àUñÜ©ÿ‚ØçNnz0t{<Pz[„lͱ̠Š@ai*«¿²ã•qH‡xh×Ådœ&n 7„v&!d–j¼1u:£9£3åw’ʶï¡9VOÍ%öáa%ª)Å2Íøy‹Nô²*Фçµ(äZ«§ƒ‰—À¬\rß$&6Œ= mG*`îaç5æ¢À]" ÉGœ /±–Ìé~9)K\޵è—çë Ê`²ÙMk.•çH6R³m)™,ƒ/Oxæ+.k VX 5ü¥ Þ¾ã»û|J¢c#>Ï¥KoøîþŠ¢¾3ÿ|´èóåçñw¼ Úåcú^Mð+£±Ü£þÛF•>•ÌýoUçù`”r0A|ÈØ[w?óöGÕÝ\>R†äÌ;Á‰2¯(¿qÙÌ ={Õš¢›qEê})žeº§&?Ò)ˆvnˆû(‰±_Ý7qzt0düîØ·ŸKºÒHüî9aU˜×Æ8מª¾ûï±ÉØø S‡õ‚&ŽËÕð¼Är¯À_Ýáìu3HGØXôX‰@°sYÔwÌ›ïJ˜xÆ+<=E žž£^¯åd(WC©[‹AgÂù„èù1L±D¤N!éE©Àb ÕhÉ~¬ ÿêk¯hÝohÑc<‰®æX­áÿƒá’,?B`&1žôãšïƒkŒ{þ½e˜ìT…ß® %ùäû…àT{öÔ? ø=ßÂm;p~—ô¸ 8ªÂ”CPÚZ× ö¡Õn»àß eª¡Xœô9¨J¿Á!°õäÐKb’Á/.ê6¶ÿ=ôÆÒd³¨ËvïßÀÌ.–Œ3³À+Á’ò{¸ñ»rœà ‰“³Ì…ì·O&VM™³¸ µ+yO‡³‚Öu.3™•€sSíÈìh™ê9Δ©ß‘þ‰†à J¶z€Á8Ÿƒ{…RŸÊžN†³lÉÕ: Ã5ÙÒÐDX1'L†Ö:¨5¼®‰Üïu)ØŠ„(H÷ÍW¨)+š åÿNÞk Xû´ÐÇ{ –÷LÒ‡[Ð×O{ýzp›]òÝØpÝýpy07(™ú€àׯ×]àD!Ò¹ý'ù¿Ã4aº! \Ê-55Ç•ã²Ô›iÈP •Å-Óþ Æ"—HoN31Æ —˜PVI†¿Ám nB4k±…§™|ðkÝ54 TÚ±æâ‹º‚Ô'¥¢àZÃáWR.kúq+V4&´òǸhÚ1:/©=u^rµW‚œF¨†ç±‘À"=–fÙ¶ØlÓšôžêFŠ÷·5¹¯ëе sO÷Ã*7粫ƒ}EóŽïPwOû/šz¾2Ûmê; ÿ>ÞôÿïHíý¬eØ€?x£‡]Ò¬莖›KÀw-‚Œ¯P›ãÀ]8–ê÷¡}Ýa‡õ ¼(%OØuB…£8Šƒ½7ù u]Ãê'¢Ù¼ Ür“¹ý® £ü+§¸§E¯Û‡2¿ÜC´"ŽËhªùÄ©"˜·Vå\‚ 7d uúÜœ&K áž% îpuÄbîîX”°â d â»D0î-‡Yh³'ˆG+Óœ3ŒÄË›%;ðåä¨%ÀÐÊŽÖ ¨ùY…+(¥ß¹Ñ³#u…Ñ’ÐSœà \É!¯ŠÿçòÖþ Wõèýoy!šgP˜.Þðê †N†îƒæ;t'6Ê/$¿>·èvˆ-z8 üEIàðìw$ùŸ% 'GEÿ ˜÷Fx<:”yš¿·Øw‰`Ÿt·n,ä£-x™œìÝ{J<ºkN1åØÿ783<¥¨ÝLŽyìÉÜNa|ÁaÍE"P¯!«• BCiØÀp‘<ýsĘä!-‚;FÝÝ'‹eŠÙ8™…{úüÅž? 8³b¥ #†w‹Ä YÁÕÄ’Ó I‹³¨(¦MCÚ &é*LpIîFjÒä€1È6ÉvG,(­Éÿ¿ú¶Åè ¼ê‚®a~Õï¸(ðÃæ,xörÁ§ÃàÖqñ+^}…¡AÑažn¾c'âÍàÿ‰¯Ïô þ8 l„¨_[”öEÁn:Ýøè;‰Pœ RÂ> |†‹ôY[ÅN:/ÒPH_’Á(Ä%“Þù]eêrKìä½É3ð°çyerŽãá`ÓH’ÆÚý~·Á¨€¸àd%kÁÉ'¸•©3õÐ`(™wƒWïÆSÊl2æüñC(D)†,Ã`Ù†Ð)¹MÕ ÊÛÃJX6Ý*íDzh‚Ä(E`(AJÇÝ)‡â)´"¨Õj`KBQÚ‰õä(b©h4uWV÷0æHöîðL$8V#,|Åÿ¼þÀë7Çõ³F·ð4W¬¶â+:®©1³ÃŽÞv²1ÿ§F‡`§¨ùÉ­ù_ ÊeWg‰ûMaû¸6)ñ(dw¼ø<¶×›iÁiˆ¶£ ëï~͈1^oŒOƒÀüN™«Ä’Žu ·@”Â'Ã> #À[<–c•JxÁÿò’2äáÞ;jÇ^ä J8*´ ¤HX{[Ae•<%dµhméjkcÆnó¤a.É8m*’®:ˇJœ)vÛçqOýƒœ~–¼cÃWÎX@56I,Gº¬gä¦ Î%®ß¹:–ªXºWàZ†A¬ö&À¥åúMÇ4$ °4W¡‰°àkhú=¦^FÃÁÁúîkžõº› …$¿~& Ì=GÓç_Âýÿ•m@é7X÷-¶]Ä’™95S>ÓÐ|. Àí® øhrÛºÔ]¢ŸÄc³Í÷=RÀ£›PÑa¹o ùìËdª¹ðX0b±‚ Ã9œ~ –4ç˜ãÅ|o4Ô…¸â\LÅŸà‹ °À¸¢ÔD§ðäh%üÐ: @,·Õ2à‰€Zy´“oÏß­ì9“×Í1Y &'þè‘n“@yóâÚ»ÁßÞùóJ)ÜA¡S·í,‰J`i8L jÌv±RÅiÓ®™2ç–ÛÓûÎ+U–æ<,½ NN ‹uáN@Oãrª ¸@„Á¾`9äÌ œH©q…Eà&™ÆnÚzÊ`@–ø  ¡Jˆ‘”C×ã³4§t1õ¤0³….iÏUÀMÖ{Œ‚÷cÖ7·Ï= ¤Ï^uÿ}‹t<3£.Œ°,$sý{a $õ™ì†×!ø‘æ){pÐòi^/k¸ ‡$xŽmŠæ!ð©¸&Ù§‡§¯Û!Q9é§çûWoh&4ƒÏÊÀŽUEuõ™uÞ_øŸV‰`$I”‘Æ¡„/TºÞUùïïdÅö‰×lSGƒÄ÷ï¼çÝ´¹¤DáÔÛ½ PA¬Ø§Fß® Ø?N{”Ø4-è4¥ÿŠy”§sÝ8ÊW’®ÂàªDjôü¼ÀµÎqWÌù#š(-½çMåÞd‰ÒNÙ§@s í<òqߦkuÀ€j\|¦m„îåøoÌú‰J†R £ +9p”ü7é:¡&BÏ =R"\ÓJ¬{J”uÃwÛü†Õ¹§;)9°¦“$+ðL„Õ¯œ#(€?3¬ÞðŠëÐù íÀƒsߦ×4p§­5ø¸û¿·×Û$ålkæëŽ'òŸ „þlð¿Áßd6™ÕÁv:Š& \ñˆØQ&­XRónûûåf ðéàO,@n¦ çý ñ¼(§»vÀ\°º€é„%OͽÙgÜÐòÛ…ÁBXAá5øðc§¨¤ÜåAp"ý.â ‘Æ ¼€J—%@®2Tj&ì@¾„h.Ó†Q(‡­8•í”äî3ðM£`^áuÂÚÈ5+…Zôä'ޤã©V4:h yÐhЀ Èç×ꎎ†ŽØžTjÙ7ؤ õBºAô? c“”v·± û! 0)lÐÉýŸ&€·Ñ û àí*€n’@XE/cbàG«¶ùÿ¯úb(ÌâŒÿŸþî­”&¥¹Œ¢nP2T²øÄŒî)¾É1Ãï΂CP `ÖH’º€¹Õ >±äL´pÃq*1G— £¢[‰ ´ô$pÅ%‘mbŸ§QMsOÒ\U ÝqŠìÆäá×—¤ck츳7´6Ú¸ÚŽº¹ ¸·âÚ3Ø<ßx2e{(Û7»~«Ž? À翉aá Î ¾Â 'G­q’·âAô!åæŸXLöò`4]Žåü ïá\ž£1 ¸oê¾ð\ z£ä÷´ŒazïW[Æzûl«PR‹xH‚ížw ÂÿÕ}ÿ+€·IìJ[o(Ž»õ[Ü ÿa{ÀOn²× +‚ŸaCo­ÄÚçy¾^=$¡¸Åuždl†• ì%2$ÙÕmc1Ë¢Ï|£Še,ÝåžþZ IDATÒ‚M À5©®'”Rb4æ¡×å–c>W\S’‹’Œ5^[q0OvÂ_VBÿ>H¹Qè©ñà7HS4M7v› DºÚ[B½Ç)íÐùî©X(5ŠS‘…€ûôXxÎgç$Žf,/„§gÃùå·§?xœÀ5[‡¾Ö´d B*E‹±ó?Ùõ.îŠê¿:^Iï0 AÌù[üóÀ òVî–x*£ß%ß!#޲sç•©}aoU£ ÈåøÀ8ô—Vöó €ñïüºM›êƾö'¿ö*ƒ { ’Ñ ÜW [ùÏá|ä7e&‹mòvófíÆ{NMr ³ÏÕÖ9ã­ˆd  a´vŽS‚8Œ0Ì'OßÉî| ÍB×~±M›‹¡8ÇX>Ÿ í©mC kS¬(ÞçNüö¢º\@^Á.韇éÚ%;¦Î×Ó.— û Aå!ŸSüóüd8/Œg“Žn>Çx›%na¨"¨ê‘~óqKß²vM¶>g¨Ðð„B+„³dèëré=C{³iõ91Ú ï‘¶¿íŸ³¯—áñ„ÍgúÁpÚëÉ´v€ÿûÄAÊ×_vÍí~KõÅõ`½%1€kþ´¼]Î1 ”ãMy.ÆŠs¦š½/Aê %bËøì¸ à‚“ÅNA cTFòç6Âá4ÃÊÇܘ'[ ôƒ„"¨`¸—ìãÿA{ "Í^ûp]’(³f~Îk5Êv)9ÿg‡QGëüÕÀÂ:—›×3®×ÿÈ Ò +¹W¼~Å¥jì-LN'X˜åï`a¢XÚÁ®Mœ‰bìè¦&<ÝõŽ@ô3Aüu¦Â.4TÔ_0‚``Áqièž ü¸*xü1ŽžÂçÐ̉@rå¯ìûàßàš!uå“/î0~8p¢< :@âSºKœòœ&¤9²ò›Õ6o áFs°ÿÜ+˜b Ð}§:ïïU)Ë 4wÈ ð“BJ”ÄÑŸwQÀWøÕpõûÀ?<ÜûYý'×–’^s¹† Tc?ŸYQr³ñ‰;X–¸–H*çÜßC~—ª£R,v<|7Cw÷± 9”Â[€™áäø~%œO„Ö VüFŠWœÀv½®¯gðEq’ß;á‚ÀëlË>$óä}„i„0ìLH‚³” QØ·'§²‚Ÿ²þ¼¯ô <âgׂ?N$%EòŒ×w^ÊôíGQ JëC°Q\ô Š× ®|\ J½Im—Üãô—ù(ûMIÔSÐru ÃSÒäÊ\AU¢6ö}‚7†:ƒ¡’úäø{f”Zà%õ®ð†‡{0œÐ-ÅBÀ ÷è£YÕ˜ëÁį™cËàÍÉÕ² ~P ÍÂFÑîTN¦]B QI¶MO¿'Ö8ñËŠn$À1–쟙š•Ü0Í5áSxË7\Ý-—‘j$Ž?+p2Á·B¸J€¦V'àà夸»ÿŽoµC/ Ž |ê3ÐÆ! ÏÌöq kŠ˜ìA@J v´yDøÓB{wéŠm ×ÝŸ³£<9ð/ŸÁÿAW‘h¿ƒEQØÒCÀçfa¥çÙ»1T,L?9I§… ä9oo(Ä ZÐr¯ß\Ð “/7&SyñLÿ©šÅ¡øAgÁ™Ú Š÷$qÝ*PŸÀË Ñ5ÝŸòšîžž1Å9ÒÄÕîx’$ø½"Ò˜) Dt3Í#$Êþ–¿7V‘±ã ØM ú‘ûYnÌ'U÷ÿqÁéa8OÿcÐ7'‹c%ç­'ïúΟ}¤/øQðÿÓ/ˮߜ !Êúгã¹ä”àå²Ü Èb o‹ª Ü*p:©JÛúìPJÁœ“ûo•DµÙñ\㟱<88ýY TSX?Æ¿ªD[³’ã©8ŠUœ‡.PÉŠ é¡Çh)6r†Åú16NDè ¬9õH<±ˆìý÷àò3 ]‘Ë‘ . \cÔQ·7âýô„år—´Œ6MÅh·®û–|›Ï½‘àxŠŸn?>Û•þcz`Õ'´\9Ž…+ýÄ mwp²|:ð?»s8_ûü`F¾/÷ãß5!·@Œ­ˆÞºïcH_ùG«¿WàS„ úAð3ôÍwúÖ¥ì»ïcd~–ýË´çv/ÑÝ%Ÿ@³ç_5˜}JÃí'eÀ쌂"T$‘(ÿ\òpÐÅt âƒPÉ,ÙÙQÈQÏ+[Š Søîý~²dÁÜÖ|¦ þ|ÌË<õý¾T…‡Bo “ YR—‹¿‚–ëîýíˆQn`J srÀ¢ôï¹H9duMóS„ŠQüyRŃ¥˜¯5öz©Í„Z ä\Áò”Nðt¬Ö›ø[ŸáÎ$Éã’\jÏÒßÇI?Jï‡à²_¿píŸHýǧþ<€Ó»!yòÛƒ|²×õþœjŠ}®QPš5¨ÃfñO²Ù£lvѧœdα£ (¢è&9ZÑ7ß„²-ráBÀ©:^Nƒ‰ŸI K~!ÃËÿeøÖ· ¦?xÆB‹pˆŽrvŒ¨‡I€(dËÉã´¦´jYÄìNM¢a‚˜ÿ.Åû'«²“\ aÛ=bLá'èÝ¡m¸&EºîM;5yN úAX¨âG–òžv0¾“û ¸7çü9æã‘» îð jÍÒ?f).êšÌC…‘þôŒÿh-ñ¾›ýL¸*€Ó Ñ~'ßýAˆ9çnÀ~±ø~ wýÒ‡—7“À¦:©õÃðOTÛ.÷ÐíÇVý8a¶ª4F“ÆìžÛpÆ”ÔÏ,(ý ('W¸- I ó™@¼’IÂ<„wHq¾ŽBX ðòäàj Áªc³¥¯…°JlòyêFÒÓ™ v×Ú3H†v ¤€ MkJëÓCFxðíyÁÂg_ñªg8…'€%¥}ÈwŒç@æ–¦¼—¤€˜ïX}ÑÙÛ]ð†¢Ÿ™Çÿ°úŸ$D’  zxµž]¥<Ïè >À£|Õÿø³öÚ¿ÿÙº dƒIÿøŽÈ›h°B‹À÷ ›Nb;÷üC£oúÜZ8w{ %ÅA³É i±RánÙ¶¨´$ÜÄëò)(¸E²$>uÈ¢Òal@®Äù[ÙÁy1èPJèþ[ŠÔ8 ö-Q°cj>|xrN ȹ…`àK°ŒÏÝ÷ZßÛµ¤¡f4¨ ð f-·){*>û|„±ÊÍS3gq’{ 7å™ úôs× þêÒÿWW%ìèz¸± ØND"Ø¥–G6ýᄸíªÞ‚ç_žýê¬_Ž-‚ìôün«šG¥<øÙÛ!í˜Gà º5 ÿ|¨™¨.Õ9µÿRÃ)DÑ„`VR/$°|éé1¢ÑÃ'¢_ŠË —öÜäèÝâeK0 )à'š^ÓwÌ3y—ÝV;áHÿÍ8)tsKi;NN•pJ\"›þ¹Q9¹l™8B¡úË» <ª(cº” 3 `€IÑ:p}ípÓI&B©€AM¡-–˜CI˜\@\AæP}:Ò˜ù36'†xÝÄo‰øk}cÞïè)²:àÕûÿ3¾ÊmðᅳjÓw¡IÌé \` E¢øÀïzýREp»õ·àVñçüvÓ~è;É«Œ97m“Xßt‚眎º. ´7¶Úù^¼äL_ (ðÔ¤ZAnDD'!w¨1@%OÖ8!ÙùŽM9‚H>ì¥C9FL '÷Ê\ã”Õ\ÉUJYñâ°¬&Øšc5Úõ:# ò?°Û”HIƒfR²Å-Tyܦ÷9"[¡¨)YN°ÝšßŒà@‰´U`Ó´£ìú¦Î¿mOg©x¸÷û/O*>þ“ U̪»:kHmS”oª¾Ä6§L¡X†`ž6˜1¼D"„®«¢½"eÃúvoЮ03¬½‡í9yŽQíSØÏ˜b B  #?j»‹¶Ó÷ûåÈÿÿŽ`·%ÿ}"ئ’Ü&{Ù°(FxkÁç« AÒdúök´2û²Ÿ³Ä?ß§, I¹RŠÓ?É=rñ¨ !! úi°Ø‚0“K6µ¸§ˆÈPì5rî Ý;qÃÅBIgâ51Oî°FÑ‚‡s$@ë©{µG:yÃì–ÆÃEÈ·òçðüĨ TW0Pµ¼[çºw õäQÌÙ“”䥱Ԕtå 5GU¬J“:=^CŽçzôëÐÙc˜åµðáV0Îëݤb É[:ô®“ßgˆVègpÝH´÷Tà¿J Z· „F"¸MØÝˆ- øÝä`ÿ ö•ÀÏÿ­!ÈÏLSù&”<™z2¾ÔË0ÿÞJúÜ ô„Çm7ù’$®^“Ù'¼ òò3^žN(I»YèÆ1êÂh?Rmh@’ÄòQ¼b%ƒXŒ£š;„Ͼ=~¡?I†,€\U‡1Á»ƒŠÃ;!ý¿`m¾ª þ§žH#«Nð3 Bx)À©äû®¥7j¸QÙ(K òä+ 2›¨¶Ÿ·û4%VçøþîX»árÄOÀ3AC£8¥»š®€+œ«®èÞ@~ -ƒÝó»É¿ûö»Ýá3Ð3¤2³íÿqJš‘¨á¿ÊWy·¶þðÔÜW~g*‚Èp‹ã8±¥gÀ?ýµ7ÐûÏ~• J,{òÓé¦òqâ#XFøË@D)”ù –H=Ã\àvQ ¡àtvH E\»æÑ nJì €%YV¨;Ä «jêß;j¾ULÁæ¨B|3í½±§¼EË;JS²:üùX‰€sà!¹)PeÔ…pzZ£·žÞ„váä“E$KYìS?ÔÀ–FªÓ)uØPÒ«X•ÑÍqQEo©wž´õRXÃÚÖöŠnQmöÖaÞ ¾bu›æq;óˆ©à›‚š‚1äÛ‚¿ÑÐì[ð'Âñ_êk&€7«|6øô˜Æ DÓoð­ð‹pý?à=,`´ÃÁ9‰õÝnâp¸çC°%ƒ†Æê“V@[€Fæá–¸1a Õ}ØŸÀòŒS9ƒìE*€®ŒºÏ/Àò”ã·ÂÿÍxí:„ì÷™äØ" ½wxíÑCÃAP•T̤U YJÅà' Íï‡59\@‚ªœb~Š¢¹1QöÚ4­ Qço$³d6A±ä-KÖÊ1­Œ,ƒÑ–å`óÔKOjÜ­©h"ƒ-½Y-Œ©!iÚ„ ÂGÖÛ§6ŽÐÎÄ}ç>µmÝI0¨I̺jJ2 Y£“¬î’‡  ?Õˆ"Š œšÓ ±Æ÷{“Œ©¶ÑLÓÎ!×t¿\ˆ­K´RB¸U©ÌúDÔª†  >aÿK‡«Jf:3@I¥!”„PÆDUÕaa=»ïS©/ýÔ€—š½âo<ÖjŽNc˜WœÞÛ¿qs£€~'PGž,± RrÙ¡jÞ œÏÉð3à€Ãåò+®xRBÀ9GQLOϰeË6?¸™›oº/éÛ<üÀ¶y7'=y´é˜¡]Õž1Öq‚Ã4Œ°ƒƒMÊ½Í ‹D€IK,™5ÛÂH‹`,ª#´Û–vÖBŒ Æ’åÙr[I”ã6Öž ‚i4¸¨‘'oàIòcõƒ(½\Öø>Xƒéáðkç[yaÇ™›ð§Nß3˜HtÞí¬÷vcüZ ¤ÆA(ѸK¥™š‹+èA¤¥ ÑtŒIWÌöO…JÑàcšPÄH!„ÑÓ®1¥nˆz¼ÆšB¥•Ÿ!hçJ‚/(]EP×”¨.ïw„䪴lÔH¿^Þßq±E˜>±sêý5‚½Ùø"€…œ@¿#€…ùøvTœëvG“ÄC«Õ¢Õj199ÉêÕ«8á„gò²Ÿ)¿ó»ïâÎ;7pÙ¥_ãÂþÊ€#èEfN$З«Êœ¨@;™F-Q 3†ÎYŸLv\As¬ma%GmkbkœAD°ÖÐéíW³¨zC'~ÍX]+ýEê¦Àj`GçÜ®ŠƒB>20Ì嵇ÎmˆELOÆLÚqjÖ!—ÉŠ­ó^‰£ÅH2~‰a½š4߯`xBØ%yS£‰ë0± $õÎú` «3hQ×Þ !xœ³t¼ÆsVCˆè&B!º¥´Û¥[vPíà|sUlûည ¡‡J@hGa¤-{Æ/nYg¿³¨æÄ‘~·¯ü;cøaw|‡j¶ƒ–Y6ðÚ'P5 ‹ðŸîž­ÕÊ9é¤xÿý_ûÞgøåןÙmtQéñ0à,d ÖSމ֫f|G{†Ì@f,!‹sþd†<3T¦MxtáYt0µŒW a—f½œ)ˆ%$οV(‡]WÐYxX$ÔKU+ÖŒ‰í¶,ýA:+ú™5X+ØÚúsb§Á¦ÑçLËPïF¾‰óñµŠ‘JèUÖER!/}–ø Ô$ŽB“VzÐNÕJ¼vñÎB£…:‡óª 'ÊS]:® h—ÒøPáB ZáµJUü>Ú fõh='U70Þ+ Œ6]¿LÊ“) VÜÆ?ÔÉhÈæúÒ >ßã¼³ÛGÎ_üÕŸò—÷¾lm2@½%m#i*Â=oí¡è’Q‹Ôˆ¾6’Äç±zžÁÄx('íº4€cˆsðY Xa¬gl‘T(¦.´Sß¼ææ~}5¡öòe¹Œ»j#i ’L –‚´;K=¡ aÄDGÐJÀ¡V¬Ê«@°)W‡œ‘ÔÿíkóÅ=ˆ 6¾ÔFG§*ÔWxQœÆö[ðûàÅÆU_ZxDà(œ£*»¾Àù2…þ]¼‹Æ¯Á5…¿FÍx "Ô$¾R5Ư5‰GÍ¿éö÷F~¡ŸâûÉ®ü;æמÍéÔ/ø!ƒ¥Oõf­åW~å—ØoÅ ~ë³`QÐÔâhR] $3–&g ^ù¦'HÞc‡Ïó¤‰@¢Y\uÕDj’\šTÝôOËj¯hbL$<ÕÜǺAZE5—(!6eÉÊr”‘vÔ½Ñ6QýwÐWE•‚Ï,6³ØvR8®ý¶Ä&[‚͕ܤZ¹Ñ^K.“Þq;¦G/ i®X™z¤÷Mü…º¸¨Ô=ü4u‚‹_ÐRÁÁ‹R0£9ÝŽ¡P/@§ì*ÞUTEIåK _P•AK|¨õtž¨§$Ó†^5ù~H*À‹Ö`åÿ©5þݽxîúÂÓaâKÛ^òsgòóÎ'µozÓjA¯>2ÐHDíIÿ4‰s™DgiSxÆóØW·#É §n­:N­°YŒDѲ«5qÕ!R‰df Z"’¨)¤Q$ šeY4³È¨¶Á´33pA IDATbk¡mÈÇ„,tÞ¤ô 2ɸSk?d&ÎX鈤tÂà3ƒÏ3\nq¹â3!¤A¦ é%Æ`ÍSt  Æá-ïPßÅyÓÇ}ØÇ.¨ž ê=³ê˜™ xWQvJ¼–øP eG‰AÄÓWaœg<½è­ú/mŠÏ ¬ü~Nbwm{"rÎlšrÞ[6ï=§®=q ÝèÈ"Ác_þ¾îøÃ8ìðÕ¬Ys4'?ë$N<ñxV­ZµÃý¿æµ¯âšknàò¯Ü2?RrkêÊ ƒÑ6rQWO˜¾y°ÔId¼ž,_¢$X6‡¤žë¯I13š¼ÜNĺ”M¤”j”| ÔYG†(Æ[ª0‚†aµ±Z‰1Jn µB0&#›0é; !‹­c¢òîxÓ[C„µ—¦x ¯±R"I-8àSeÝ$¿ö«õˆ·iæ·ÞbÏ2@hØe‰—dü!õÿÓµ*øN©ªÀt7ÐqžnᨴćóÝà#)Í ×C?=êEAAª¾Ö^X‚Ù†¦n°»[}OGÚœõ~¸ÂaƒÛå4`ç·¢9:ƒÇ%ZÐ ·ßφÛïçÛ_¿¸ÅrÞoÿ oǯ³ÿþ+MÞõî·rùWþpN:cæøx3<F¼MCo)1ª•Ò–Š\}i}5ßÿyœœJã^À8 ƒw6åü!¥ !©/ªKsâ<§t OY&دºØë÷elzjï/çöï{­ÓXä &Í2¸40ÿü‚Ÿ_Àfö^ãoR»¤r@6çßÙN§;ôÆ2qég¹`^ö‰ž7½îÜqû‹îöØc×ðK¿rê<ã¯sNÓl$Je¡bL‚ÀªOÜöe,*õAµ™³Ì{f¤i•G¥ÝI`4ÕF@Ç-Ïö†ÆlcÛʰÆbI~†\,&3Ø1Áì'd+ íe–V–‘· ­LÍ„Q1ŒXC>"ض`2ÁfÚ)5}¸§#'—ec JDV6:•'ö¹DGbÁ‹LÿçËLÔô *œFF_¯^Î8/Ž*(A<éYGY*‹|w%Þù±„fõïŸÌ²j_¢š×Ž1Ìéú?9æÃӻͧxö­HGçRálá ~ïOæ]çý<ðÀƒ‹xoá•ç¾dÀøÍ\œ¿.<%úŠD¡é(b¿Ù•i€4h³º7¯YÌ­Ã%1=.~±‘cLòôý-A[†l¬5d’““!Ú´ 2ša'2Ìx†¬ì Á,3dX²–vn™lÚmC+7´’ܶŒ‚mŒM¤ uÁ/¬’º]4¨ŒâÛŸY¼‰í?o AâËg‘ùXM(Q“Z~hAS ‘(»î3ðÛK‚*μ58kðÿ€içqEàñÊ1åÝÒ7ÜûÎT!¶krOÑÐÇåÛóÄý`ý:;^¿k'ÃÿÅ~fYý8Öl'šYßÅÌæÔûwCiPç:‚,jî,ê|ðq>ú¿þ©Ob{þv ÇÍ3~Ó¬þ w †Ð×2*5 .vC軉u¯_”²‚~¶5"*.R c`ÚÐ6YDæ-C>n9`Ò`Æ2L+G²6Ï1yN6’‘YìrCkÃØˆaåˆaňÐÆZ‹!kÅ‚´bkÏd=Þ~úÅ2%VðÊÄKP&&!…¾H ï…Ä÷“Ìy$SÓ»ªA B©81x%òì¨KA<*pÁÑqt:õ%•W4¨w)è­Ò¡ÑìÓÐ_æ¼×»5‹AÆÃ@r¸”Üß,ás³,­fx,›ózRÄ'×PæNñ4‘ÀbÛ\üM6n¼kÁÏ8`ŽN(NTœ:*ë©2¥È •©¨ð”&‚tŠÊQÎx¼KÊ»¦Œ)@ðñJä¬WêзêKš8ô ¢ž…äQÍÂÙ Æ3Äà÷ßg½~nî½h-dp”§_axn1p÷7ã ñR¦o¹ùVÖ­[;üæà ^x<üä‡óŒ¿¤5Ž}@2 DL­¤šV=¤“f÷Ë‚vÞEƒG¤@£ô––­/oœ%seœÙ×T#SŠ*þ;ÊXD„‘Jpj"Ö&DX–¨z<92ÈZÐÊÏéwv‹˜×Ô¥¬ðv/Ø Ú­àŸ¦‘2FÍÜ¿õ…‡ð¬c˜÷·ÓÝ‚O\uCÜoøi·àÔƒáØU«k·–P‹5Md À1GÍ3VîÇÕ?øO‚ ì¿ÿþTIùĤÑaÛÎyÞsŸÇôÖ)Ö¯¿­<#¶Eå*ÔËVL`Ú–CYÍ×ÜÊ#o£°Bal|Œ³ßô ®þöøþw¯'ÏÚœ~΋ؼ¥âÞ¯ÜMªTtu´n‚?ú«7sÑg¿Î…ÿü ö;h”w¾ûU€òÿ÷¦x—Ô³fÍ!<ûÙë@”Ï|úkÌNwxõkOçýôNÞüWÜzãXïÿã·°vÝѼÿýÃôT‡3Î<…™é"ufQ)Y·îh6l¼‹‹.úw&&Çyçy¿ÁÇ>þ!^ýËoazªË† wó¾óßËg>ŸË/½²¹Ž¯üÅsX»n-7ÞÛÿÇ>þa.¸àSüýßÿ#«>ˆ÷½ï½¾níZ&''9óŒsée—sýõ7íJƒ}¸fü:ô,âê(`ض³NÀaSsq1'°ãíÞ{ºèçããcóVþo~óš¡Àï¾ù¥üèškæ LÝœs<ªŠhI·Êɳn£c ‰¬Rqý)@Ï<Á 5~€6qøG“4µC;¶-´L„׊]Ø|5É‹‰ŽY¹œ3ÖÅÄÈÈNøÝz0ÊyvÄ!ÜvómLÏvè<ø`_o=ºÓãÖ®e{g†[n½*0!à|=ZÇw$߸äkl½¯ “äÖ8í%Ïáæõ7sß]÷£TÛ¦¸ê[×ó¢W>‡o|åŽ(¶™˜…Þô›gñÝo_Ë·.¾*6Þ8pÕwøå×ü_ü¿ëRƒVÀÛßô?)¦+‚(×—9åÔã9ç§qëú/¢b8ãŒòÉO~Žk®Œ+îMëšbµ‚E̸ø¢Ë®ÏÆ ›øÒ%Ÿk ~ý w²yóCœyÆéàÌ3^ÌW^ÕDçŸÿ.½ì«ÍŠý w²zõ*ÞøÆ×Í[áÏ}åËùíßþ}n¸áÎ]0|·;ºnHVà,æsv]õ½ž*øÄOîy`ñÚDž7œ~ªqyü§ø6Û¶múûÏ{þɘ<-£ÚKfM_b+}}?bPÒ BP¼Oøö¬ÅÏ‘G ¿®rýÝä‚Ô:˜qÅŒŒ Ù¤ Ù­ÔÐ2hËpÊ¡«ø…Û)ã¯s_ߨÝÛ7³îصLLNÆô#iÔ/2ëWqצ{zü~MÁÅyãyô±ÇÙz_Aa|œìÄV²Š©­ÓŒMŽ0>Öfl¿¦·w™˜aÅ*ƒS—@6Gs(=¼•CŸ9É¡',稓&™™é°lÙ‡3QšxD”»ïþ ™.Aÿô7$-?æpËÐd6õK)©fg¨F'É[ÊGåÞà=UˆlóÏ<Î019üšÜ~O‰s‘u7´"zÎfJÖVL+ÕÔjªð…Vpž}ÐJN?æÈ]ºŽ2p¿”Û“ÖÏ ž÷\Š²àÆ›naûÔT/.Ì"i¶è¦¶Ÿ$*3ŸF|3(»…ñ—f ŒŽµAáôŸ{Qô8p•Rx"ÙXä ³(>‰ˆò†·œÝ5'×W["¦À¿ÿãüåÿø-þäO~—éߟæ#ù—_úŸˆ”Ís¾fí¡|ð~€é©)~tÃz¦§fæ]³Ë.ý&ç÷¶&*8ó¬ÓÙ¼ù¡¦N°víœwÞÛ8ï¼ù×|rr){jjz·­úK*ás2Ô ô÷Ü’úv'¨S‡¦ÚNPÕÅ‹€‡ºzÑϧ§gçT¿cMü_.ü:/}ééX;ß(Ï>ûüÓGÖÏáÔª'Å™WQw ZŒŽ•ˆ8|Èqâè9ãN©‚pÂÉ wR®½¹BÊ81”ÛÈçrXtYÔ:1ÆCŒ¶(¸ËãÜ÷øãLw»Lu ¼zV´Ç8tå Ž;ä&GÇæ<æ{ë·qç†;9樣xÁóžËw¯ºç¢CuÁÅAk)ñ´,q¡JÄ!!â:*§qX¢øiý鋟ý2SOLÓÝ®l{ÄóØã3<òD‘Ai¤¿ÄÀŸÿ×O°é–Ç)BE¡eêÓGRßÀ‚(¾HVwn¤žìôLO¼÷=dÕÁc¼ï÷ߟþé²aÃ;¹{ã}ÍÊý±ˆ+®¼Š¿ø³hvuÞyo¸¶m~‚®_Ï›ÞøÚèÎx1Ÿ¸àSóîÁ®…õ»Çøw¸Ë"f9lå¯G†ý“dø]( KwÌø¼çºèç÷ßû@Zb ©óqý÷æŽ;†·×{Ï}Ñ3úzY½j­hŸX^=ùbK:ašà"ÀÖûÀ¬ ªŒ,=|ø¹<ø°ã¾G|”WAƒ‰â("‘¸&©ùÈB÷P8çØ£°}¼å•÷\wß&>}ýu|ëž Üµå1ž¦ë•WbýOïç¢ü€›ïÝD=âÇœR‡@ •z6Üs7 ì·bEsœ«(ʂկNó ‰@4Q)êÁu”àbOT$:ƒíÓÓt::|ÝY¥³=03S0ÛMÉ£¸X â;·0=3Ë)/<’B*ªfª¯ÄS t¨(ðRD“¤é=M¯”Äè @éÆPŸ‚Í>Æ>ðDଳ^Ø\»µk`rr‚˾òõæ½:ÌŸ»]zÙ×X»n-¯8÷Œø7—}§ùìúîdjjš3ÏzÑnN|w’¿ÃX\–\s‹ì{Ê ô¶4¤;v'|âÂymüèæœibÊÃW/¿fÁö᯽åÅó'$}šï^âï]G×håQïÑðª¼à¿Ø‹ëo¯’à%‘.;˜XP«eÄ…DÌ© Þ¤ñvÎ~£½t¦,ø·ÛÖóƒ‡~Š;Û R¯\¤ª¿(?ØtNmožƒ091$EŸ‰É ‚(Ûg§QQ|zýxÃyÄìÿŒðI\@²ɳD|šÒ‰”e>‘„U®¹úzž÷_žÇGÄT·¢, œ ìwH ˆ­¿*|\öÅïðª×¾”—üÒ1xu:䇭iSRèè4†î)Qé½âû¥ƒRñòsŸÍø¤A¨8ó¬S›ü»Þ6o~¤©èׯÿ·û§C¯ý•W\ÇÔÔ4ç÷6.½ì«-A€‹.ú϶% ‡cÕÁ¼ï}ïâOÿt²É¨þõ¢ãª+nhþâÁÍOpÁŸä¼óÞι¯|yjÙ}*ï`Þ>=ÕåŠ+¯âÜW¾| b¨÷uÁ319Îùç¿—óÏoóù¿^t1úûOíñÕ@?âD]0ÿ-™gÄvA/$ 0uØj¾uÅ7‡û0ïY·öY0Ç DÃÏÈ– $ºêàýøìEÿÌ¡‡²àï|ï»Wñî·ÿF2TGQÉÉãCBù¿þðëùÅW½dèßäCsÁGoL@!ÁÈ6ËÓB$Ge “r;‚É„À(cã+Y–D–2ºbœŸ?»Í[ß:6¼õw[—O}½ [©€5‘̈G—wh-ë ™Ç¶Á¶”s_͉í¿èÍþú]¹{Û£¸ „Dä)ê#Ñ'›$¸¥ðF™3›òœVPŒz¬*#­®p¨Î‡×šÔ~4’1Þnc¼â‹Ì:œ/yôá.åÖ.U¨’pg(”à3U ,<~Zi· SŠÇº•Ù©"š/¤B<¥s˜‰ŠÃ׌¤äî25]Ìy€Íœ§54Ä¡aŠç|ÊsŽ” îczzfèµ\}ðrV¯: ïgvjç˜2çâû'&GX—Š‚6Þ;/RXúV<À\‘í~lÀHc¾qpca¬ÀÐXÃJœ5½÷a 9lþñã\Ôø.»ü»=E é‘–k-X¡–O~â;üÂË_LžÏ¿LgŸó\.øè ø%ÎÇGùs•<Žè’cŒ ä)ÌŒˆµRöi§-|&Wß\D1Íš6Û³Ú>Êf'XÇ€e¥¸@½cÛ6îÚöFC#!ZÏÛ F^‹LŠTñlÐfµ×TåìV„„ô¨Ä@"H|*,"Á(²ƒ £‘K0ŽªrMšAPª"êý¹*œ§ìxÜtÁÃOÌRv*œ÷”q>@©oáÕá)éLÍrçúG˜‘’ž\h²Æ$u¨~¶^“õpOMõr}*Ê-Fê±ùÁml~pKóÌ?xïôTw7w£Ø5©3;'P×bíÖìà;ûIÄç÷ ¢˜~ûo½†ßüÍß`ÿý_ 7l¸‹Kþýûm|ÃýÞG­ÅrçmÓÜzëFN9åø!ÅÀ#yöóW²þº­L”X¢ÚmÞHdIMëEjCøYu°pÌ1ÃÀæG*6=\ øÕà-6÷ؼD+ð9˜Väñ7KxúÖ?´9Òd%Ãoax$ï ˜Æ ˜Ú0S àMt0µ‘«(¹‚„hè*=š„­ì?¹œ#VÂÊe“ŒŒ2’·ºÝ.EQðÈóñÇ›ØxË}TÞQ…@7Ä)¾Âyœ+(¶wqe{ö•‹B]WnŸØ‰Õ{¼: 3ÌH‰¡2´UËÄÕôðý쎵ñÏáõ_R>½óÂ5{nºÏï°x¾‘íÄê9¿CÙÞa•ò¨µs؇²nÝN~Ö‰œtÒ KbòÞó±}*B8Ð]Ô«†mÊžñ›¿ü¥ÿê¬5¼ù­/bý/GLSk ¦ƒ•yn´âh¯šX±7œsN»ÀósÃ3`Îþù/8‘¯§aƒ°br9Ï=îV.EÓ­SÛyhËãlÞFY´³ËÆÆYuÀì·¢WXmµ[<÷'sÂÉëøö7~À·/»qÝîA³®KQUñÜ“žc§pA¥³ôÂWŸ‡§@ßoϳ`ûE¢÷]@.=üïü5½g»â{Wñ‡ð¡tn±‘'#©¡®“®ºòF^÷ú—ÍÛßÊ•ËyûoŸÌ…Ÿ¸ “e £ä™!³Ñø…Éâ°Q>"dšc3áçÎl³bÅBÈ¿Y¦]<†¹øÉšâðx|ÖÐpÿ-¶=:;E4sVþþ»,˜Æ Ô±WRÈS™g¤>1}Oµ"}ð!œz܉c(«Š6ü˜{z02§^øHrÛm·31±ŒÓžûV,_ÖãèèçþÒY¬Z}þÍç)· ×¥[•ÑÐ¥nßÒð† 8*Ê~R]šñ‡y¢piÿâw'ÎSGïv9*0 \%ÁÎÒÂx·Ûò‘=æ½ç’K.åíoûoÞM(©Z/‘ C™Êtš ÿ†O^p E1œŠìœ_8csÄ$®¬ä±ˆ‘(¶¢`³ m’/³œõ²Ñõª›fðÚ§;“$°0ŠØ¸âyb«Ëæ=¿Å¶Í³S‰^7ô a¿³Z³ ÷E^¢ÊO,kj¢l¹ <óÈcxÎ3OnŒÿ»7_Ç]ÞO0µT-š’ê?~úÈ£\ø™ÿ`Ó¦ùÃZÏ}þ‰¼÷/ßBegé]ª; !Ä—ôý[ñ‘8Dª%­X½•?ì µs ˜yZß9~×ÔwvÍô=‹z\n§²} ÿ¾ûîçÿøÏ9ÿ÷ÿGß÷›æÒ5‚šXáU=tïÂÞO‡×¯ÒwÜ<ó¤å –<Ä$™KOægÄ`h±bÔpðakŽ{豂Û: Á!ZaL…±®y…¬ŠÇ*‘íWZ`LH:u otf9tÒ9Æz€6ʽ= £4Õy/50*õâ%ª÷Dš¯ÀÚÃçÄ5ëšï¾vÃM<<³o4Ò€ÛÔ Òx5BGï•íUÅ…^Î<2¿Àzü~÷/ßB4aûæ0ï…ÈèëÒx™vê¡êÅ ~Þê¿o­üóa¿º»‘€ =Yú4öb[UUÜvÛùà?ÌKÎüU>ÿoßYä$B#Y‚ˆÖpIëK_ºvš…áÍoyvªú·"ï?62ýªÁª0j24ocGGxÕ«&Ȳáõ†Û·-x ¦Dl‰ÉKL«D­'Ø8`’Iß(’ ¿ú>|Ý¿'4"»è-—ž¨‡œ ¸crNxÆò<û˜^qôá­±éñÍC£Å@< ž"”¢o);Oê2fffçÃ/y!¯{ÏKåÏëBDYtu\BüïLÞ?Ü<çÒ|-% Æîótÿ.u)ö>§0¸Ø¤àNŒë?9/Þû¤<Í–-Oðàƒ›¹åæ[¹ä’orÿ}[—ÔÆ }MIш5Wµµ§µ’|å ÷ðî÷<Äa‡­R \‹ÚÒƒdÒt^Ò´6J…Û6c§>krè‘”Uà{·lwÒ¢,QËFu`1ŠÉ“(gs³_ý«à{EM5CkQ]°ŠXÃ™ÅÆ°_´^ôÌS£N@]»x`S¢‹* 6²E¼¡rBð_¹¨gж?1Ã÷¾ó#^ù‹ó§/_÷†Wð…O}îLzЃÇ!õâ! äòv‡ÉghVÿ¥èøÕÝ¡Y9u ØýԦº ![l:‚½÷»öÉHÄJ¾.a^ öX1 0ˆÖŽÌ7”ÑÄÔ—+¾wo~Ë|°ÿþËøµ_=’Ï_üh3ŠjŒÅZ ¦…šÙòQ^ðÂ6û­^wýÖ¾ IDAT½sÓvž(ª¸ºge,tÙȵ]`Vœ~"ä5s}'°ÐõL½õº/:·L»ã»lše=ÖENX½†±v/qÞñÓ­¤½õÉ•ÁETZ4ª'áÀ«à³H òíoßÀi/:™ý÷„]ïÀJÞóG¿Âßý·Ï6µËL#œÊ¨K-À ­y ZÝ Ñç0'`\“Ÿªâ÷îYýw˜è“>Ƚy³ó¶ ‘ú"$¥X/årñÿüCfg‡Ã4Ï>û¸Èׯ­Zÿ ¬Å˜Œv;Çä–3^8¹àÑ\yËãW”­’YQ £x© U`­QA6Jº‚¢ù´×à `ðs;ä.‡!i@¿z=ÜÎ2Ö®>bàwŸÚŠ×º”šR'•(Ï¥¯ÎQ¹¨¢Tõ±5{ºeàG?¼eè±¿à…§€–ÍË¥Ÿ^ãÜßÜÕ.’ÞvM¾[±ƒ,P;xžvµ˜øT¯þKªèN…{‹ÄØNjµ7°¸Zª¦Z@Òý<ØòhÉõ×/ü!³f$p‹µÆ´0£mÚËÇ8ø ŒuGÇ<º¥Ë­›§p&aêEñÛ€Nµ%FBbý‰Ã+b5ïÙ”%}ôè±87¿ü¥óVLI‘…A¸ô?ðHZÙ ‚qª3ë ÐH}©SÔyœ+QWá}œ7P@œB*Š¢•ré—¯Áûù÷ëàƒWsÒ‹ŽŠ4j}-$GãuxV>ß Š{û]22;Äè-OmÛ{÷.¬fgìco*ô=)Ç0ð0˜ùY¢j* zTJ">Ø_¸øº¡zÖÞôƵ$ÎÎÔ¤7´Ær$ËyåK'.þݱ1±º?·˜ç€*@7½ßNÆßUÔ†µ¨.~÷B=Ý—”TêtëOøÎw†Ó2¯\9Ϋ_}`S|4Ûi/:µÍûüÙð“ílíFnæôIPIN 1Ø€ØÀìx”ׯÐ@Ùõ~ñ§@‡é«Ì½z=M­¯™„$šaÀÏ_> Ðt0¼Ç©â5\€J/x/Éø%ê€vBtÁc¬C§’’ÙÙ]W.è–¯XF)YR÷GC"ýbz~a—Œ|Øk±çpØ>öl¾?T/goqO϶kQB\ÚÌ‚{TT*¼¯ð¡‚P¦bàLMÍý«sÎ>1‚‘žÈèKÏX¶à×_}Ëcˆñd¥I³…˜€:}ª6ÆzÄ„8¤/Iý}í ‹e!ø‘K_™ûË T?¸Ú8!£ŠÕº.˜ÈÚ Öbˆïqà\ ÷ƒ‰ˆ½ ø2œRVï+ŠÊST%nºÃìÖŠ¢Ã–'†·nó<‹ - tÅQJX‚ñï¼áïíé«>‰bßîqKî º9‘€šÂRŠfh'F¡B%F!t’Ù™À¸P1ð@Ž<2oŽa¿ý,Ç;œôc˶‚›~:I1Eš£ÉLêÏÖ¼º oBê„T ɠݢ^Ïãã¯á{/ HÓ(.!!c{IÒÕ¾UÐ{ÆóáçѲy$õ)}cü®6~PJ‚8*_á½ÇW‡3|U~ß2Ülß>•’xO–þ,Šï;†ï—4سFOW`aœØòšœ@IÐ’ÂU Tÿú¹ëb1kΖe†×¿öðÄÖkx͹ËÈóá—yý†-Í䱯ÛôwÉdItH®Ø¬‡OšŠyi…^¤  "zšÔίÙu¤:GÔÌs@¡ÈTHð<Ƴ`±±•ç¨ ¸à1ΠÞFðOˆäŸx‡«„Ò•¨Fæ²ë Z1³¤Rf¦*Z­áiÒ\ÚíZ¥`)+{¥Ë=ß½ßðçæ÷{Æ–v«>7°w´Œt)7@) Ú¥¬:J®½ö16nž³žö‚HGž‹å´ç­î}à;·n(CX#Ñ ¤ u6#Iéh›˜$:/R«0Ä|x±•QjïMZ¿8G5ræ'à!`4`ƒ’y0Þ0ÓŽX16ûÿ^ð¾·ò«øPá¼P¹.eñ®pt ÇÔl—n6K§ˆÕüýö[>tÿ÷Ýÿ@ZÐcÛOeY‡&2ÐñŒA÷ã÷{܆2t;—lÉÆ¿÷ÖÄ! V jñ ‡Mìéï}F¥ž©bxÝcåÄrp •§   ž"cOY–t+Opná(¶—Tå,[·•„­%eRH^691´¾pùeW7G:Ó/ ¶÷¦ågïÝvèO¯×õ Df‘bbˆ]Q‡¯:SðéOßÁ–-SË?¿pö ϵ?Þ‚d“²l&Hf Œ1d¹0b…V[ÈÛ犩¢ñ«ÆJ½HÔûCÂmÀþ‚¦h¬Õ„ptЗ÷›0AÉ‚bƒÇñ‚SO<÷?ñØP IJñIÆ[-ªÊ;S{Òf O·òP:eEQ”LufÙ6Ý!˜.A”,/1Àä²ùHÉÍ›æÎ?ÜÜ©WxÝqþîçÔü>d˜OÅê¿ô@]ïµn5÷ÛB¡‹2¿ŽÖï ´™¤/¡Ce¥\wÝÝËǭà™Ç‡þnÝî¸é±‚ö¨&·˜ÌbrK–[òVDZ›Å÷2mùXÔÄÔ$'hÈúúóí?æãµñ`5¤nBt™Fì>Þ¸Á;œlíÎòØö'†~Å ‡. .þn×:…'$ãŸí8º³ݲ º8pE ’8íG`(û~tãÜ¡]RÒ³¨AûN}ÏùË>åö†`·UþiwƒEDÒé¨Àÿ×>îõ”ÞŸýì­x†[­á—÷Æ;;dÚÂŽXtÔ`G3ã#ÂØˆeÙ¨eÙ¸eùrÊQXV“Z?ÇMùæ¿EK*IH(übÑ/®öFc®/A±}+?!¼`] ðR»ˆ«¸÷¡‡~ÅÚC§ë3Î3íUAÁв¢Ó)™Ý^D•Ÿi¥p-=¾„"±Y~ø  F§Óá#þ—¦f!ꇲþøy¯°Ïåûû˜ŸôË>tÂ"åÐ*²ªÙñ¥ÒžTߥҷܶßþàÒ] ‡+n¬ ËQÓ¢e2òÜ2’[²–¥Õ²Œ,7¬XnY1a7˜\i›€Ix€˜ÃÇ¥úµ8ú!ªáJ*ðÅ—¦°_1!`CÀ‡­çïƒÇG‡ JLa(œòý ?¦SÌçŸ_61Éó?WzBY⪠ç<3³%³Ó³Û :UÁôL…óÑŠPÅMðµÇÀÁNZ^}õ¸ïÞ­}iØ|ƒö‹ÀÂú£¾Ÿ¹ÝêöíÒJOéÕ/b8f‘÷A \èRùН}mã’¿{Ó½ÓÝ€µ‰×ßfˆ´ÐÐÂk ¥… -ÚmËȸçB–'@±w/Ä›×b!€×?h¤¬]£C¬†&€W‡†.•ó”%xÈœ§ªf¹qãmC¿çE'=‹eyŽVJQz¶OwÙº­à‰í]:UÁìlL¼ó„®Rz¨’ºÒ[ý\²,ÈýÿäOþwäþëÓ_ìx/ù€åÊÏÌ÷G»¼ôï7#’?> $™úXõ. .þü½<öØÒ䛯[_D¢‘ª…%C$É/› íQèÍÈ3!C¢öŸ&oÒ°Rÿš·8%–Ñ% 3C~‡Õ™‚‚'óž<‰f¢±ÿ[AæBœ¿×¨køƒ;näGçGxÃË_Ž«`f¶¤˜­(‹×u…Ãó~_9œ÷TA >pôÚƒ8ûœžSY–üõ_”Çí,RÔdIÆÿÿÆæž&°¤-Û+/™¤ ¶‘õ×¢—iKªBÐ.>”eÁ~ÿÞ~ç¶mž[nuäUb *sZF0jÍ0j™°–vnhM -#‰¤Û4öý‡Ùy¿Žß|G•Fgƒïá’ˆUÿ@ÀõãC”àöuJ–„7p`¼Ç…8ÌsÑ•ß`ÛôüÈ!«VñÖW½Àž¢ã)œÒuŠ+\t.¶ G[–¿ø³ßcYêEÉGÿ×ÿᲯÜT“>©Š“ˆßçÀ?ûN°ËQ@Ø;œ€Ôi@µ`: I,T›÷ŸFè4¥+ø—Ïm¤ªÀ~|{9´UhyËHÕbL3&­09b0dÆ yˆòb©zm\®oœYâõ4!ôñT ¾1þÜ+ÖGã×àÑàÀ+ê”ÒEx¯ñJUê…NÑá3ß¼”G¶<>ïûŽ[s ô®·qôÁR–*Á„½w”]G· ”%œ~êþõ3`ݺc˜žžæ¿ÿ÷òýê“tìóCÿŸÿ\ž&¥Êöê“ø8»¯ b‘Zá·Ïø{gfšs꟨ Þ᪂~:í·>Ä)§ ×$ þóÚ“†ÄCÖòÑrK–ûHòŒL–‘_/X2‰üü^“Ò°Îá KÒoùÕ(øé! > ûôÂHUÁ!êEþÔ/Iò‚CР<¶}ûâ¿óš3^ kÖ L ®:ðüÉüîÚÄM·ÜÁ½÷ofûöYX¹ŒÃ9ˆgŸ|Ñ÷iT#%Å4:de–í¤÷dÎðWOÝègÛžOМÀ⻽ÿþG9úèç¦ÿ³O»áKªye³!iN¨éA‡•Èä œ«8唃ü–ë×—Ø1° b¡¥†Ñ Z£uíÛ0>!ˆiQ¢X[¦aŸˆó±bq¶ÂxIźøä‹ _¸ãÇ|áŽÛzçŒ dZa‰ƒ>Öƒ ñ`‚K X”„&Õ ‚Q!G)Ó>#Ç‹8ËtUPu=ål—ë7lâêkïä°ƒöãôSNâøuǰr¿åŒŽŽ2:Ò¦(ãÜÿôô ?¾•n¸•¿äJîÝôZV‹æ¦a )h£øÓgü?Ûö”Xh> v·êØ÷"€: 0 ´•NÉÄsѹcÃÒ—‰²Úqâ ÃÅI§¦·Þî0Ë– VÉ3A2¡5*Œ‚fB& íiUŒJW¡4!}GÄê« Î*ÆGuÜÚXú˃CN SMÆ’ñ¬O­?ß7^« ‘ø£ÓÐ(Ž N§Š † rÊÒ33]àÔ3³­@]à®Mr×=ߤrßÀUçJf¶V”EE¨M`žP…4iÀ-lâaXqVæäÚúïcƯÍВ݇ÀŽê²3NàéÕ ô«â„d¾ù¤G¸)¿™bÍæØßöÖãh·‡Ÿïm·– #90’ F`b%d"´²è²6Øx£¨ÉQ)c‹O4!}…\2¼–‘ ?Y‚ÎY5sB*W:DËÔÛÆo¾_|w¡>©w¹-Cüx¸LÓc®‚`œâŠŒªÓí¿8§ žJ51y:³²¨¨’ñã“Q%Tz«[Ëüô@Äï“Æ_ÿûép»æÔ-:%Ø“›Ü#úaª ‚6™…æØÞb$ŽÓO?aÁâß5×ÌBaÉ Œ¬Œ-ÀÌ*íQÉ…œXhgQð£$£“—„Ò¡®'¼!˜@$Î÷I- Ò£‡j%ioi€ÃxM+¿¯ˆ±Ò¯ .M6´ÿ8éÍFøTht!J¦ª*ç(C`ºë™í”Q9؃jÀ©â\l÷¹ÒãÊØïWõ½=Ô¬¾‰©ÓçŠÃâ«ÿ ŸcP{ûó¥ 8Ù'ÀNuö%'àûjLUz íÇ$X@¿ô‹ÇpøáÃÃÿ{6uÙt¿gå¤a$F ¹`ÚÕ£ÿÚVÓóŸÚ!G liÆ„7ŽÅ¤¨¥6œºt©|Zý…ÌG°©å'>…Pa*¢øgŸÕ«}8=a0qŽBï-U7cÛl—nå05œW5}4?žNåp¾B]2þŒ?¥ýnÄt¾`N¡Š¾ˆßK«ýNëfîœp{¯èy:·¤âàÞ²¡¯#0X’2 µlF<«7ÿÚKÜ×ÕWÏĵØG8¯ÉÚqÞ¾¦þÊLì­yòƒW4”hH:~FñAk0ÄH* ê­þÒ£ˆ4‰ê+SÁ„ÚøSþŸV~Bú8u‘µ'$œA¨O±©~PŹclˆmÁéYOU¸¡@$ÿ¨WïqA©ª€/UŠ.B1bI«>>f1žÍ«˜DG¶XÂ6ß9ì«ÿ®;$}ŠŒÿ)µÈ…£»ܪ~÷im5o‘2áÏÓ*)Iú;mgy4§œrÜÐý>þ¸ãºk*dÜàÕÇØZ”l¦d&Ê|û¤uëq޾ÔWÅú»1àðõ©ŠÕØzé wÔl>J<¹OÅB¯à#›jD÷9çÀ)ªêãûjRàŸ8û‹ÁÄk!´"xKÇyŠÒclÀuKÀ‹‰¸ ©¸éÿµ†uïíÆïvÁüöüÌÍ®;€Ô¯ ì+Eš Â­¸\õpAe„?øƒ_&ˆ;±+¾7…´R^­Ðé*û‰Ò²‚1‘ãODQ›äº`=^K ÀùÈhDq""6f R!"ôPÀÚc÷M«~Ìý£‡Iê¼ê£‘⪨؛†„"JX!ôº`*b£ °µPJuPžŽÅSŸŒ¿*¡Ò¨ ØU\NWk,¡WÛ ½ŠË°Õnø¿ ÇÃ^ã/Í€Ý"fèžçí!ËYôÀµî©?Å]€qæ˜y7ÑFõ)<½ê,{œøð«8ñÄ5C÷·eKÅe—vhÅb.I©ÁÅZM£wIÀ„˜ó;GÙMé¸s 5 orŒF¡Ô î|ªÈê¢SÞGÒïð!@(Ðä QǯÿJEžA%v ‚ ÝÊ¢‚uT³!¶)+‡—@á=•‹¢*¡ ¨ñ‰ Æ:ÄR#ö`H fR"`´Ö,2꫽¾ÿÞµpì¬>}ÓµOÎìB0Ü <}†¿°è·@5cÙ²N>i5§Ÿ~/{Ùi¬Ysø‚ûúâÁ¡¥±^в—Æè­Ulžrâ,æâ>‰€ã™òU(A›xz%9ïc‚’ap©ˆfú"£>Rzù€qŠø |\ýÅû¨ÓWhHh>†ï*ÚP~©Ô |ÅFí _YªY芃zʯôhbrB¥ÐTˆê‡Mf ¾¡<›Ï°·FO…A»½Ä<)'°÷>â#3çœíƒû{¼öµ¯Þéï½ýö‡¸ä’)VîAZ)LÏFAŒÆ¢žQÄz*b$à½"6®ž…s±E‡GLPħ*zêC¦½`Mð‘{0N±Œw¨—$Ô¡à]õeä8Ôõ‰¼S£î^£Ùg š%œ€SÃÖ`' .†ú.sQyT•J£#‘*NWú…&,{YGohà©2(¡Çÿ7gP+ÌAýíáÿ¾±íË­¹%Û «{j£€¥Ý<»@°ômÛ¶Yþìϯ£œ>FÆ!Ë& #¹†(F%JU£árEÔ3[Vø*zúHB P§±'Oäí³ÁôÂ~¯d©ßŸ»ò«*=øŠà@½‹ùP¡Î\½ÊÇ¡B)Š&2ÔŠ@¨¼¡[zºeH\ûEðh7²‡$8RUŠ–Ê‚t$©óS““ÜS•kîqN9ø’S””?$»3ý‘C@"%Š%ÈöV¡XA,°;oO¼ý¶dß~4°”âÆÐG»¯»âšbŸN¼cÌW-àA'©Ç†±v]¡Š]› Ý!F” §ï2±è>ÆwO;62&€!F: Ý¡êàƒÐSýèÆ¼ƒc–ßÏ»ÿ)€ÏÜ× xgcÁW_ý›?þéïüãŸÎÓóËœcׂfÎ¥r&L+ˆÿþ|ˆ‘ºÒkÇD±´; ¾öƒi× Ò…wÏVœá¶+ÎSË|¢¸QÌ…Ò3%¬_ß wK¥ß®xI-÷BHªëÅãm!¨çpÏlPº®Ðâ“A(mÑäà,›@fO£³Ë²f‡äŸ›Slìþ¾Wà?ìü.=e˰k➟Ÿ TÞô˜à> ó€ãmË®wež^¼ø–¯¿~ÁŸÿò/þú·—œ­*ëKjLL" ;z{:Ô†*²ÊR`U˜šÓÏ:sèÇL ˆNt`ÉøÚ=èz¥âSÆ€â°\¸f¸ N1E½g’Oã~ Å­ã­§ÂØ?ŒP?@Î1Ô¡QѶÀ6&¢9 š¡DMš¯tg~Ð;³ÒÓS± hIš£ Îx2(}ß”»¾s•è“;@tm÷¿¥øóñ°C~û»?ÄǶ/ÂÙÇ ®I}­o}I¡Êí øŒàKÖë_PäR?§Ö«ó'œ—KV<áò³ç”é)¿üì’_ÿ~âÙ¯ —Ï`ZO~ïLŸwt=£šj=ê£× sGPÌ £k‚¦6Å‹ç@œ•i/[8÷Ô¨mÁµQ´Ñ»Ö[Æèî†ë‚©c6J]ø‹ã%½-Í…°‰™lо³ŠDaëÊ÷Cû‚öβ1¢5|´x}PÉ!#ù'š€÷g‰~~ºý×¥½oþô € oö]Ñ÷Ð…{JU€èzX¯Àý„F°.¯.ä$¬K¥°¦>¹ d¢Fö ØaÔ7˜8-œÒ-c×ÕdÓUu\SŒ3jO @õäÛ›¥€È^tA‚½÷\¢a®LšyÜ#Ý|o„p£wÜ–Ä¡¥×áѱ9yÚ *àÞq¥ð GcÂbEŠ K}¡- ³™hà›‰L2î×hñ’ —!\:´K §H?Tä(¹÷&×ÿGÓç/ïøüƒ“['näšEûHFàžåqjˆ#ñí—œ­ŸC$yeU…zçÓJ¡L2*¤©À#u`` Ûó¤Ý†>´÷´;Š¡Þñ”2b±=Ù¸W™bdË=e¿]'_Á{vüià¡ ~m¸Ö ïŽÒñ¶`ž¹k`eè"I°_ш” AµÐ æy¡mMg˜!v–!Kó<·ÞX¯™ç<Ì'´AóÅoŒí’×ÕïrýOÇí·›ùß+S…þ8 ÀieqêýŒÀ~¼vlÐxE/2 '0Õ ªpV„²ñ@,MGráÐ,yøÍqW´.¹\;XÇ–@Ç(0ÃíJ¤Ì§Oqð0¦èYİAéíŽ[Òx2ñ§x(Ö3 ¨t¬6 Ë0Ý Z„Æ… ñd.Qp ¶ ´mc§3Þ‚Xvžª>-ãmx¹ž(¿1¯ïÎÀm€?½xÿÓž‘1Þ…üˆ^À[ÑLæÅ!Yõ [¾¥ž?Çå<›i¤æb—B]å‚—‚ÈˆÝ ”IiÛ½¢‚ß< vÚÜéÝ)VªA ½¼ôš‹$@ª+a%³ý¡L¦èÐðÇ,]úV˜j]ÀçN·†Ç¢æì¦@M˜Cè!§hÁˆ¹ðý.©Ê;›‘Mª°UbkÐG /6EnI¬Ž7¬öfà'b÷|9I}¿åýºÿ?5 häý‡KG¢ŒF!#ØÐãÔžåÈ)¨C-̼#@Šq!;0ûÌ£l´ç.Ú JI·ºßp%‚³šL>£g»o(Åuü~p_2¼pÇ ÔkÏJÕëb´º")<²Ÿ\¼½°3…îìtÁw¶øV‘m‡ž^J¢ÚßZN1¹OÆN´Ùç‚ÿ§çÜ^<=kþ.FÇ×yEôoé«çÌñ9gµt¬ 9‘1µ+®Äöðuƒæg5Á_w֗줒\įT€÷¸ÅѳdÉU ˆ$ôÔÈ–_ï9ÜÃ;f WÃúÓM¯À4 æJ³ µJ÷«MƒEóÿf5B 'yÒÓíÏůþAlJ¿ü?—ù>I0Ýy 9¹Pà!ç2ˆ’J4ÑØìñ¿WœIDATn7Ôó_\ aŽÑÍ’Ý~³ —>ÚùeôðK2ê¦%E3#ó”ñÉj UÞãxÚ™zpY jõ  çã=/FE g ¨¦A¯5Õ-˜­MÌîxÀ⎴Š3`›d0ª·,nr²/‹g/¾½.ì·ÿµ<ü™(5píC뇿h~øQ"0A'²ƒ²aÙl’ß¹ßp“×gðŦU­½ã]޵ Ú]›”‘<ô«çˆ«²ÝÕ',„Ë¡™(oK’c¸l J¿®ÂûšÉÖQ¶${ÊNñ>ž?Þýwø|77öì¼Â‡dN'nn½8zÛû G<’;(Gd–°ùJæêµI¾ÀY }"VõÎT‰ŒäÇ«s¥8"z…;ñ;¯ª© Z‡û_034&Ú2²‡Å˱û¿uY/>$ÉO„öQÎGOýø?Þ”»ÑÞë¾IEND®B`‚screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/language/000077500000000000000000000000001412216332300254555ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/language/resource.language.de_de/000077500000000000000000000000001412216332300321255ustar00rootroot00000000000000strings.po000066400000000000000000000014561412216332300341050ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/language/resource.language.de_de# Kodi Media Center language file # Addon Name: Pyro # Addon id: screensaver.pyro # Addon Provider: Team Kodi msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: https://github.com/xbmc/xbmc/issues/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: (https://kodi.weblate.cloud/languages/de_de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "Addon Summary" msgid "Pyro screensaver" msgstr "Pyro Bildschirmschoner" msgctxt "Addon Description" msgid "The pyro screensaver simulates fireworks." msgstr "Der Pyro-Bildschirmschoner simuliert ein Feuerwerk." screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/language/resource.language.en_gb/000077500000000000000000000000001412216332300321375ustar00rootroot00000000000000strings.po000066400000000000000000000013451412216332300341140ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/language/resource.language.en_gb# Kodi Media Center language file # Addon Name: Pyro # Addon id: screensaver.pyro # Addon Provider: Team Kodi msgid "" msgstr "" "Project-Id-Version: KODI Main\n" "Report-Msgid-Bugs-To: https://github.com/xbmc/xbmc/issues/\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: (https://kodi.weblate.cloud/languages/en_gb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "Addon Summary" msgid "Pyro screensaver" msgstr "" msgctxt "Addon Description" msgid "The pyro screensaver simulates fireworks." msgstr "" screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/screenshot-01.png000066400000000000000000001143311412216332300267760ustar00rootroot00000000000000‰PNG  IHDRp¾ËrsBIT|dˆtEXtSoftwaregnome-screenshotï¿>)tEXtCreation TimeFr 08 Mär 2019 18:47:14 CETê % IDATxœìÝ1JAEÑ_Òkpÿës e0ˆF2X×ñœ¬;h^Þ\þš™=@ÂËéÀ0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB®Ó¾¸öççÛ:³pBÀ"€53ûôàÎ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èuz<£kö·ïo³~y ð׸ !`@ˆBÀ²ffŸܹ !`@ˆBÀ"€0„€ ä:=8ãmöþõ:ëa߀ÿÎ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èš™}zpç0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D üܵO/€§³fÆŸ8ˆpBÀ"ÞÙ»ƒÜVŠ0Œ¢UQ³&F^}XHÍÀˆžóNÒuíœ3KµŸ”ñÕ„€ D !`@ˆBÀ"€0„€ D !`@ȶzÜcÇ?þþcÌEK>— À"€0„Ì1Ʊzpå0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€mõ€‡tì·ßçåÜ<€ D !`@ˆBæãX=¸rBÀ²­<‰c¿ý>/çî€ç0„€ D !`@Èc«GW.@ˆBÀ"€0„€ D !ÛêÀ7rìïÿí¼|ÝsBÀ"€0„€ D !`@ˆBÀ2ÇÇêÀ• À"€0„€ D !`@ˆBÀ"€0„€ D !`@•[‘Z IDATˆBÀ²­Àƒ8ö·¿ÍËy;žœ ÀÀ]ŽßW/€ç$î2Y½ž“BÀ²­ðSÇþö·y9oœÄ`q€÷qià`¸×±ß~K øˆ·Ð1D Üåeõà•B¶ÕàÇþãÛ¼œ¿ƒÿÏÿ €oÆ`qîå2-ð\€€>ÂX>Ùc«GW/«¯À"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€mõ¸Ë±ÿø6/çïød.@ˆB¶ÕƱ¿ým^ÎÛÀSðµ~LŽ!šø0I8 <©—Õ€W`@ˆB¶ÕƼ¬^À7à0„Ì1Ʊzpµ­ÀB¿þÇm¹ßæ9;øÛËêÀ+0„€ D !`@ˆBæãX=¸rBÀ²­À;ûí÷y9w_Î`@ˆBÀ"€9Æ8V®\€0„€ D !ÛêüåØo¿Ï˹;þdïnSI¢( W¡ŠcÒ`Õ)M0“R¯HãÅñ¤š 4cÀÏvÓ÷ß·ìFè¬-ÿ\J €à'n…Û­‰·€o9T.ÀD AFõç×>êÙð†À)úR½€‡êÀ… Àð.7s‚€ ˆ‚€ ˆ‚€ ˆ‚ŒêðÍí¾ëWßî»>!࣓ʨr¨\€ ˆ‚€ ˆ‚€ Ȩ¼±ã¼ýîÔ÷ÛA\€ `"€ `"€ £zÀ[;ÎûïO}ŸÄuÄ­ðÁ¡zp!€ `2ªÀCüêÕ ¾Å`"€ ½µ6«Gg.@0@0@0Õx2s½þ¼/ûîxQ`€TÇyÿý©ï³€]ª.ÀVæzÿ}_öÙ<5€ ˆ‚Œê<™¾T/xi.@0Õx"s½þ¼/ûî€wqêÕ (à0q¶â2ÿwœ÷ß»ð À.@0Õà©Ìõúó¾ì»xY`þœÈàáÕ€ 0ÕžÖ\?>ëËþ;x)`€G9õêàI¸ AÀ¤·ÖfõàÌ`"€ `"€ `"€ `"€ £z;šëíw}Ùo7¹ AÀdTØÌ\¯?ï˾;à\€ `"€ £zÀ+mÞ|÷»õ—|¢/Õ ø„ À¤·vçl%Ä`¶â0@Q=híï67û®Zß컀ý¹ A\ØÀo¿ ÀF\€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `Ò[k³zÀÛ™ëíw}Ùoq\€ `"€ `"€ `Ò[k³zp6ªpÇñÎí·Sßo»9T.\xv®¼€ ˆ‚€ ˆ‚ŒêÜqêÕ Ø™ À¤·ÖfõàlT`Cs½þ¼/ûîàÛÕ€ 0@0@ÞZ›Õ#€3€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ ˆ‚€ Ȩä™_ølØ xO.@0@0_6Úl£Íêð’À¤·æ|ð__ùcAØ xO.@0@ÞZ›Õ#€3€ ˆ‚€ ˆ‚€ ˆ‚€xJ£Íê Ñ[óÓÂ`"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"€ `"ø—½{Ç#‰¢ úR¨÷RzÁrŒ6„‘ú Ù"Ïñ˜Eãz”ŒÀ€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€ëô€·´çþê·5·'.€?ã0„€ D !`@ˆBÖÌìÓ#€€ ä:=àííßøÝõn+àO¸ !`¹NàçöÜ_|_s{òÞ› À"€0„€ D !kföéoëwþ›³Þmü € Ä`qBÀ"€0„€ D !`@ˆBÀ"€ëôþn{î/¾¯¹=y ÀÇà0„€ ä:=þkö¿~þ:ëЀ·á0„€ dÍÌ>=þÔõŸ?c_gZð6Àòåôà0„€ D !`¹N iÏý—~oÍí—|..@ˆBÀ"€0„€ D !`@Èš™}zðà0„€ D !Ë5-¥ IDAT`@Èuzð¾öÜ_ý¶æöÄ%À¯pBÀ"€0„€ D !kföéP¶çþâûšÛ“—Ÿ À"€0„€ D !kföéÍžû‹ïknO^À߯`@ˆBÀ"€53ûôàÁ`¹N¨ØsÿîmÍíÀ>3€ D !`@Èš™}zðà0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀrôí¹¿ø¾æöä%ðñ¹ !`@Èuz?·çþâûšÛ“—ðÞ\€€€ŸrežÇ`@ˆBÖÌìÓ#€€ D !`ðk®}zÀ§°fÆ¿¼ Â`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB®Ó `ÏýÅ÷5·'/>;€ D !`@ˆBÖÌìÓ#€‡ëô€ÏjÏý»·5·K(ùrzðBÀ"€53ûôàÁ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`¹NàãÛsõÛšÛ—ô¹ !`@ˆBÀ"€53ûôàÁ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ ä:=ào³çþê·5·'.à#rBÀ"€0„\§Àóì|[O[ð#.@ÈšŸA€Ä` Ï`¹N€ï½v©×•^àãsBÀrϳNø)€ D !kföéÀƒ À"€0„€ D !`@ˆBÀ"€0„€ ä:=>‹=÷ïÞÖÜ,Ê\àöîØ&¢Š¢à³´…Q¥P}˜à§}­«™Ðu8z„€ D !`Y3³O..@Èãô€ÿ`ÏÇïkÞŸ¼€Wç0„€ D !`@Èš™}zpqBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB§ÀíöÛ}­Ïûþø€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !kföéÀÅ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`Àí¯Ó €W´ffŸ\\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"O‘4} IDAT€0„€ D !`@ˆBÀ"€0„€ D ðÍÞ£6Qì=¡ê+Ž‚M+’檢…à_àÑ"€0„€ D !`@ˆBÀ"€ëôºöÓ÷:¶໸ !`Y3³On.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„\§íþ­­NpBÀ"€0„€ D !kföéÀÍ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„\§|ƒýûúÍúyÿú\€0„€ D !`@ˆBÀ²ffŸÜ\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`öíX`¿õ4v”GÀˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #¥†™IDAT#0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ #0ŒÀ0"Àˆ µw‡8À@· ÷¿0¢ˆZ úf’šª— @ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èãö>³ßü­Ÿ¯à[\€0„€ D !kföíÀá0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D díçyðOÀ²ffß.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀòˆGßÊ–‰žxIEND®B`‚screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/screenshot-02.png000066400000000000000000001137641412216332300270100ustar00rootroot00000000000000‰PNG  IHDRp¾ËrsBIT|dˆtEXtSoftwaregnome-screenshotï¿>)tEXtCreation TimeFr 08 Mär 2019 18:47:19 CET°È” IDATxœìݱ0EÁõ‰¶(媻R(ÌH\Šð“˜ X¿§]3³Hø9=x@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB.§‡ìß÷ýµþÞ÷|9€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !kföéÀƒ À"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ ärzíÛÿ·uýüž\€0„€ D !kföéÀƒ À"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`wöî 7±# £hzÛb!Y “ 3a%½/ìe`EØiÓéNcêÎÙ }–rõ!`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€mõ€›ÙÿºÝ{Í?o÷^ð \€0„€ D !`@ˆBÀ"€0„€ D !Ûê\±¿¼ÿ}×ìà®\€0„€ d[=€+æqõpBæc_=xå0„€ D !`@ˆBÀ"€0„€ D !`ÙVà‹ùc¿Ý{}›·{/€á0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ dŽ1öÕ#€W.@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"cçŸ IDAT€0„l«kœöŸŸç}wï¹ !`@ˆB¶Õþí´üü<ï»VÀ“Õ@ÓaõàÂ`àªÓ~ý5„às¸ !.¼áÚ)cüøs0†Ïð¹À@ޏ€gvX=¸@ȶzÜÛi_½à:0pÕy®^Ïç°zpá0À®°šà“öŸ‹»üo€•«`ÙV€gwÚ¯¿vž÷Û4€x:Õþ(~ëþVx6`€úÙ(®|2Xø‡Õ€ 0„€ d[=à‘œçê|E>7À[.@ˆBÀ2ÇûêÀ+€ D !Ûê+öŸŸç}wÀ?\€0„€ D !`™cŒ}õàçþã›çyŸÀçpBÀ"€0„€ D !`™cŒ}õà• À"€mõ€ßqÚ¿vž÷ß·"¸·ýåòó<®Û@ÒaõàB !ÛêOgW/ lŽ1öÕ#€Û8]ùVàyÞwðÿV.À"€mõÈþòþ÷y\³à sB\€rž«¿Ë`™cŒ}õà• À"€0„€ D !`@ˆBÀ"€0„€ D !`€¿Ù»cÜÖ0Œ¢3³f­k~SÄ–ó›s%Sr\|. øâ€0„l«À+ºßç¹;€çã0„€ D !`@Èc«G7.@ˆB¶Õþ­ëñùÛ>ÏÛ?É`@ˆBÀ"€0„Ì1Ʊzpã0„l«À+¸ÿü¶ÏówÏÏ`@ˆBÀ2ÇÇêÀ À"€0„€ D !`@ȶzðÚ®ÇÇß÷yîx.@ˆ À¼%Wi€*€ D !`ÙV^Û>W/€çâ0„Ì1Ʊzp³­ð‘ë''Nöyî8ÛeõàN !`@ˆBæãX=x.×ÿ}¸ÏóvÀ+rB¶ÕžÕgP]?àÿpBÀ"€0„l«ÏgŸ«ÀëšcŒcõàæ²zp'€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„l«ð{®Çã÷}ž³€Ÿá0„€ D !`@ˆBÀ2ÇÇêÀͶzë]¿8%±Ïsv â„©¼›ËêÀBÀ"€0„€ d[=€õö¹z™cŒcõàæ²zp'€0„€ D !`@ˆBÀ"€mõ€ªëñø}Ÿçìླྀ !.¼˜G—‹]-èsBÀ"€0„€ d[= jŸ«ðŽæãX=¸¹¬Ü € D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !Ûêïèz|ü}Ÿçî Ç`@ˆBÀ"€9Æ8Vn¶Õxo×OÎXìóÜ—Õ€;0„€ D !`™cŒcõàÆ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆB¶ÕÞÑñÅûOYÀG\€0„l«¼£¹zY.@ˆBÀ"€9Æ8Vn\€0„€ d[=ÆãøÍŸŸ?²`=€ D !`@ˆB¶Õx Çïó”ÏÏ`@ȶzïáxð6O[Ð'XL Àß]Vî\ Áµc€€ Ä`¾Å£ ¾Çi+žŸ Àâ0À7ûõg­þxt> àGšøS M °Ø;¹ïð;|0À“pÕà=\VîÀ"€0„l«ðýæêüg.@ˆ ÀOÂU_€÷à0„€ D !`àOöî U­% £h•œdþ³yóÉ* „GP.ÄSûx×êȇ6eó!`@ˆBÀ"€9ÆX»Gw.@ˆBÀrìÀgZOÞæi+®Ç`@ˆBŽÝøšõâ}ž²€wqBÀrìÀgš»\”€·[/ÞÅ·݀0„€ äØ=€¯™»ðV.@ˆBæcíð‰žý 3O[ÀÕ¸ !`@ˆBÀ"€9ÆX»Gw.@ˆBÀ"€0„€ D !`@ˆBÀ"€c÷8Ûzñ>OYðw.@ˆBÀrìpëÉÛ `€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !sŒ±vî\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆàûv,0Èßz;Ê#€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€`D€F`€€Ø»cb‚2äÿ_vŠKÒç%Ì€FX §m IDAT@ˆBÀ"€0„¼N@×¾ñ­uã[ÿÌ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èš™}zàb0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`àËþày`YãȰBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ äuz€Óöûõèp±BÀ"€0„€ dÍÌ>=p±BÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€àÍÞ£0 Q\ïe¥p0¤²d¦³«= D !`@ˆBÀ"€0„€ D !×éûë{Y.@ŠBÀ²ffŸÜ\€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀðöéÀÏÖx .@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@Èuz<Ùÿ׫+Þå0„€ D !`@Èš™}zpsBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ" y´!IDAT€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀðiïŽm„ Úý·lrB{A3é'×ÀêBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`¹Nø’õr›ÛVðg>@ˆBÀ"€0„€ dŽ1ÖéÀÃ`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€0„€ D !`@ˆBÀ"€ÖL©þÔž0òIEND®B`‚screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/000077500000000000000000000000001412216332300253235ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GL/000077500000000000000000000000001412216332300256255ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GL/frag.glsl000066400000000000000000000001471412216332300274310ustar00rootroot00000000000000#version 150 // varying in vec4 v_color; out vec4 fragColor; void main() { fragColor = v_color; } screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GL/vert.glsl000066400000000000000000000002401412216332300274640ustar00rootroot00000000000000#version 150 // attribute in vec4 a_position; in vec4 a_color; // varying out vec4 v_color; void main() { gl_Position = a_position; v_color = a_color; } screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GLES/000077500000000000000000000000001412216332300260555ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GLES/frag.glsl000066400000000000000000000001641412216332300276600ustar00rootroot00000000000000#version 100 precision mediump float; // varying varying vec4 v_color; void main() { gl_FragColor = v_color; } screensaver.pyro-19.0.0-Matrix/screensaver.pyro/resources/shaders/GLES/vert.glsl000066400000000000000000000003141412216332300277160ustar00rootroot00000000000000#version 100 precision mediump float; // attribute attribute vec4 a_position; attribute vec4 a_color; // varying varying vec4 v_color; void main() { gl_Position = a_position; v_color = a_color; } screensaver.pyro-19.0.0-Matrix/src/000077500000000000000000000000001412216332300171375ustar00rootroot00000000000000screensaver.pyro-19.0.0-Matrix/src/Pyro.cpp000066400000000000000000000304141412216332300205760ustar00rootroot00000000000000/* * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) * Copyright (C) 2004 Chris Barnett (Forza) * Adapted from the Pyro screen saver by * Jamie Zawinski * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. */ #include #ifdef WIN32 #include #else #include #endif #include "Pyro.h" #include #include #include #include #ifdef WIN32 #define SAFE_RELEASE(_p) { if(_p) { _p->Release(); _p=nullptr; } } const BYTE PixelShader[] = { 68, 88, 66, 67, 18, 124, 182, 35, 30, 142, 196, 211, 95, 130, 91, 204, 99, 13, 249, 8, 1, 0, 0, 0, 124, 1, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0, 124, 0, 0, 0, 188, 0, 0, 0, 72, 1, 0, 0, 65, 111, 110, 57, 68, 0, 0, 0, 68, 0, 0, 0, 0, 2, 255, 255, 32, 0, 0, 0, 36, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 2, 255, 255, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 1, 0, 0, 2, 0, 8, 15, 128, 0, 0, 228, 176, 255, 255, 0, 0, 83, 72, 68, 82, 56, 0, 0, 0, 64, 0, 0, 0, 14, 0, 0, 0, 98, 16, 0, 3, 242, 16, 16, 0, 1, 0, 0, 0, 101, 0, 0, 3, 242, 32, 16, 0, 0, 0, 0, 0, 54, 0, 0, 5, 242, 32, 16, 0, 0, 0, 0, 0, 70, 30, 16, 0, 1, 0, 0, 0, 62, 0, 0, 1, 73, 83, 71, 78, 132, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 15, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 122, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 12, 0, 0, 0, 83, 86, 95, 80, 79, 83, 73, 84, 73, 79, 78, 0, 67, 79, 76, 79, 82, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 65, 82, 71, 69, 84, 0, 171, 171 }; #endif // WIN32 class ATTRIBUTE_HIDDEN CScreensaverPyro : public kodi::addon::CAddonBase, public kodi::addon::CInstanceScreensaver #ifndef WIN32 , public kodi::gui::gl::CShaderProgram #endif { public: CScreensaverPyro(); // override functions for kodi::addon::CInstanceScreensaver bool Start() override; void Stop() override; void Render() override; #ifndef WIN32 // override functions for kodi::gui::gl::CShaderProgram void OnCompiledAndLinked() override; bool OnEnabled() override { return true; } #endif private: void DrawRectangle(int x, int y, int w, int h, float* dwColour); struct projectile *get_projectile(void); void free_projectile(struct projectile *p); void launch(int xlim, int ylim, int g); struct projectile *shrapnel(struct projectile *parent); void hsv_to_rgb(double hue, double saturation, double value, double *red, double *green, double *blue); int m_iWidth; int m_iHeight; struct projectile *m_projectiles; struct projectile *m_free_projectiles; int m_how_many; int m_frequency; int m_scatter; int m_xlim; int m_ylim; int m_real_xlim; int m_real_ylim; #ifndef WIN32 GLuint m_vertexVBO = 0; GLuint m_indexVBO = 0; GLint m_aPosition = -1; GLint m_aColor = -1; #else ID3D11DeviceContext* m_pContext; ID3D11Buffer* m_pVBuffer; ID3D11PixelShader* m_pPShader; #endif }; //////////////////////////////////////////////////////////////////////////// // Kodi has loaded us into memory, we should set our core values // here and load any settings we may have from our config file // CScreensaverPyro::CScreensaverPyro() : m_how_many(1000), m_frequency(5), m_scatter(20) { m_iWidth = Width(); m_iHeight = Height(); m_real_xlim = m_iWidth; m_real_ylim = m_iHeight; } bool CScreensaverPyro::Start() { m_free_projectiles = nullptr; m_projectiles = static_cast(calloc(m_how_many, sizeof (struct projectile))); for (int i = 0; i < m_how_many; i++) free_projectile(&m_projectiles[i]); #ifndef WIN32 std::string fraqShader = kodi::GetAddonPath("resources/shaders/" GL_TYPE_STRING "/frag.glsl"); std::string vertShader = kodi::GetAddonPath("resources/shaders/" GL_TYPE_STRING "/vert.glsl"); if (!LoadShaderFiles(vertShader, fraqShader) || !CompileAndLink()) return false; glGenBuffers(1, &m_vertexVBO); glGenBuffers(1, &m_indexVBO); #else m_pContext = reinterpret_cast(Device()); ID3D11Device* pDevice = nullptr; m_pContext->GetDevice(&pDevice); CD3D11_BUFFER_DESC vbDesc(sizeof(MYCUSTOMVERTEX) * 5, D3D11_BIND_VERTEX_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE); pDevice->CreateBuffer(&vbDesc, nullptr, &m_pVBuffer); pDevice->CreatePixelShader(PixelShader, sizeof(PixelShader), nullptr, &m_pPShader); SAFE_RELEASE(pDevice); #endif return true; } static int myrand() { return (rand() << 15) + rand(); } void CScreensaverPyro::Render() { #ifdef WIN32 m_pContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); UINT strides = sizeof(MYCUSTOMVERTEX), offsets = 0; m_pContext->IASetVertexBuffers(0, 1, &m_pVBuffer, &strides, &offsets); m_pContext->PSSetShader(m_pPShader, nullptr, 0); #endif int g = 100; if ((myrand() % m_frequency) == 0) { m_real_xlim = m_iWidth; m_real_ylim = m_iHeight; m_xlim = m_real_xlim * 1000; m_ylim = m_real_ylim * 1000; launch(m_xlim, m_ylim, g); } for (int i = 0; i < m_how_many; i++) { struct projectile *p = &m_projectiles[i]; int old_x, old_y, old_size; int size, x, y; if (p->dead) continue; old_x = p->x >> 10; old_y = p->y >> 10; old_size = p->size >> 10; size = (p->size += p->decay) >> 10; x = (p->x += p->dx) >> 10; y = (p->y += p->dy) >> 10; p->dy += (p->size >> 6); if (p->primary) p->fuse--; if ((p->primary ? (p->fuse > 0) : (p->size > 0)) && x < m_real_xlim && y < m_real_ylim && x > 0 && y > 0) { DrawRectangle(x, y, size, size, p->colour); } else { free_projectile (p); } if (p->primary && p->fuse <= 0) { int j = (myrand() % m_scatter) + (m_scatter/2); while (j-- > 0) shrapnel(p); } } } // Kodi tells us to stop the screensaver // we should free any memory and release // any resources we have created. void CScreensaverPyro::Stop() { free(m_projectiles); #ifndef WIN32 glDeleteBuffers(1, &m_vertexVBO); m_vertexVBO = 0; glDeleteBuffers(1, &m_indexVBO); m_indexVBO = 0; #else SAFE_RELEASE(m_pPShader); SAFE_RELEASE(m_pVBuffer); #endif } void CScreensaverPyro::DrawRectangle(int x, int y, int w, int h, float* dwColour) { #ifndef WIN32 EnableShader(); GLfloat x1 = -1.0 + 2.0*x/m_iWidth; GLfloat y1 = -1.0 + 2.0*y/m_iHeight; GLfloat x2 = -1.0 + 2.0*(x+w)/m_iWidth; GLfloat y2 = -1.0 + 2.0*(y+h)/m_iHeight; //Store each point of the triangle together with it's colour MYCUSTOMVERTEX vertex[4] = { {x1, y1, 0.0, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {x2, y1, 0.0, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {x2, y2, 0.0, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {x1, y2, 0.0, dwColour[0], dwColour[1], dwColour[2], dwColour[3]} }; GLubyte idx[] = {0, 1, 2, 2, 3, 0}; glBindBuffer(GL_ARRAY_BUFFER, m_vertexVBO); glBufferData(GL_ARRAY_BUFFER, sizeof(MYCUSTOMVERTEX)*4, &vertex[0], GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_indexVBO); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLubyte)*6, idx, GL_STATIC_DRAW); glVertexAttribPointer(m_aPosition, 3, GL_FLOAT, 0, sizeof(MYCUSTOMVERTEX), BUFFER_OFFSET(offsetof(MYCUSTOMVERTEX, x))); glVertexAttribPointer(m_aColor, 4, GL_FLOAT, 0, sizeof(MYCUSTOMVERTEX), BUFFER_OFFSET(offsetof(MYCUSTOMVERTEX, r))); glEnableVertexAttribArray(m_aPosition); glEnableVertexAttribArray(m_aColor); glEnable(GL_BLEND); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0); glDisableVertexAttribArray(m_aPosition); glDisableVertexAttribArray(m_aColor); DisableShader(); #else //Store each point of the triangle together with it's colour MYCUSTOMVERTEX cvVertices[] = { {(float) x, (float) y+h, 0.0f, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {(float) x, (float) y, 0.0f, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {(float) x+w, (float) y+h, 0.0f, dwColour[0], dwColour[1], dwColour[2], dwColour[3]}, {(float) x+w, (float) y, 0.0f, dwColour[0], dwColour[1], dwColour[2], dwColour[3]} }; D3D11_MAPPED_SUBRESOURCE res = {}; if (SUCCEEDED(m_pContext->Map(m_pVBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &res))) { memcpy(res.pData, cvVertices, sizeof(cvVertices)); m_pContext->Unmap(m_pVBuffer, 0); } m_pContext->Draw(4, 0); #endif } struct projectile *CScreensaverPyro::get_projectile(void) { if (m_free_projectiles) { struct projectile *p = m_free_projectiles; m_free_projectiles = p->next_free; p->next_free = 0; p->dead = false; return p; } return nullptr; } void CScreensaverPyro::free_projectile(struct projectile *p) { p->next_free = m_free_projectiles; m_free_projectiles = p; p->dead = true; } void CScreensaverPyro::launch(int xlim, int ylim, int g) { struct projectile *p = get_projectile(); int x, dx, xxx; double red, green, blue; if (!p) return; do { x = (myrand() % xlim); dx = 30000 - (myrand() % 60000); xxx = x + (dx * 200); } while (xxx <= 0 || xxx >= xlim); p->x = x; p->y = ylim; p->dx = dx; p->size = 20000; p->decay = 0; p->dy = (myrand() % 10000) - 20000; p->fuse = ((((myrand() % 500) + 500) * abs (p->dy / g)) / 1000); p->primary = true; hsv_to_rgb ((double)(myrand() % 360)/360.0, 1.0, 255.0, &red, &green, &blue); p->colour[0] = (float)red / 255.0f; p->colour[1] = (float)green / 255.0f; p->colour[2] = (float)blue / 255.0f; p->colour[3] = 1.0; } struct projectile* CScreensaverPyro::shrapnel(struct projectile *parent) { struct projectile *p = get_projectile(); if (!p) return nullptr; p->x = parent->x; p->y = parent->y; p->dx = (myrand() % 5000) - 2500 + parent->dx; p->dy = (myrand() % 5000) - 2500 + parent->dy; p->decay = (myrand() % 50) - 60; p->size = (parent->size * 2) / 3; p->fuse = 0; p->primary = false; p->colour[0] = parent->colour[0]; p->colour[1] = parent->colour[1]; p->colour[2] = parent->colour[2]; p->colour[3] = parent->colour[3]; return p; } void CScreensaverPyro::hsv_to_rgb(double hue, double saturation, double value, double *red, double *green, double *blue) { double f, p, q, t; if (saturation == 0.0) { *red = value; *green = value; *blue = value; } else { hue *= 6.0; // 0 -> 360 * 6 if (hue == 6.0) hue = 0.0; f = hue - (int) hue; p = value * (1.0 - saturation); q = value * (1.0 - saturation * f); t = value * (1.0 - saturation * (1.0 - f)); switch ((int) hue) { case 0: *red = value; *green = t; *blue = p; break; case 1: *red = q; *green = value; *blue = p; break; case 2: *red = p; *green = value; *blue = t; break; case 3: *red = p; *green = q; *blue = value; break; case 4: *red = t; *green = p; *blue = value; break; case 5: *red = value; *green = p; *blue = q; break; } } } #ifndef WIN32 void CScreensaverPyro::OnCompiledAndLinked() { m_aPosition = glGetAttribLocation(ProgramHandle(), "a_position"); m_aColor = glGetAttribLocation(ProgramHandle(), "a_color"); } #endif ADDONCREATOR(CScreensaverPyro); screensaver.pyro-19.0.0-Matrix/src/Pyro.h000066400000000000000000000010721412216332300202410ustar00rootroot00000000000000/* * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) * Copyright (C) 2004 Chris Barnett (Forza) * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSE.md for more information. */ struct projectile { int x, y; /* position */ int dx, dy; /* velocity */ int decay; int size; int fuse; bool primary; bool dead; //XColor color; //D3DCOLORVALUE colour; float colour[4]; struct projectile *next_free; }; struct MYCUSTOMVERTEX { float x, y, z; // The transformed position for the vertex. float r, g, b, a; // The vertex colour. };